{"version":3,"sources":["webpack:///../../../src/components/VToolbar/index.ts","webpack:///../../../src/components/VGrid/VSpacer.ts","webpack:///../../../src/components/VToolbar/VToolbar.ts","webpack:///../../../src/components/VApp/VApp.ts","webpack:///../../../src/components/VGrid/grid.ts","webpack:///../../../src/components/VGrid/VContainer.ts","webpack:///../../../src/components/VContent/VContent.ts","webpack:///../../../src/components/VResponsive/VResponsive.ts","webpack:///../../../src/components/VResponsive/index.ts","webpack:///../../../src/components/VImg/VImg.ts","webpack:///../../../src/mixins/ssr-bootable/index.ts"],"names":["VToolbarTitle","VToolbarItems","name","props","absolute","bottom","collapse","dense","extended","extensionHeight","default","type","Number","String","flat","floating","prominent","short","src","tag","tile","data","isExtended","computed","computedHeight","height","this","parseInt","isCollapsed","isNaN","computedContentHeight","isProminent","$vuetify","breakpoint","classes","styles","created","breakingProps","original","replacement","methods","genBackground","image","$scopedSlots","img","$createElement","staticClass","genContent","style","genExtension","render","children","setBackgroundColor","class","on","$listeners","h","dark","undefined","id","light","isDark","theme","beforeCreate","Error","wrapper","$slots","themeClasses","attrs","domProps","functional","Object","key","value","fluid","mergeData","Array","left","paddingTop","top","paddingRight","paddingBottom","footer","paddingLeft","ref","mixins","aspectRatio","computedAspectRatio","aspectStyle","__cachedSizer","directives","intersect","alt","contain","eager","gradient","lazySrc","options","root","rootMargin","threshold","position","sizes","srcset","transition","Boolean","currentSrc","isLoading","calculatedAspectRatio","naturalWidth","normalisedSrc","aspect","hasIntersect","window","__cachedImage","backgroundImage","backgroundPosition","mode","watch","loadImage","init","mounted","lazyImg","onLoad","onError","console","getSrc","err","pollForSize","timeout","poll","naturalHeight","setTimeout","content","width","__genPlaceholder","placeholder","appear","node","modifiers","once","role","isBooted"],"mappings":"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","file":"js/chunk-60626da8.54a3e38d.js","sourcesContent":["// Components\nimport VToolbar from './VToolbar'\n\n// Utilities\nimport { createSimpleFunctional } from '../../util/helpers'\n\nconst VToolbarTitle = createSimpleFunctional('v-toolbar__title')\nconst VToolbarItems = createSimpleFunctional('v-toolbar__items')\n\nexport {\n VToolbar,\n VToolbarItems,\n VToolbarTitle,\n}\n\nexport default {\n $_vuetify_subcomponents: {\n VToolbar,\n VToolbarItems,\n VToolbarTitle,\n },\n}\n","import './_grid.sass'\nimport { createSimpleFunctional } from '../../util/helpers'\n\nexport default createSimpleFunctional('spacer', 'div', 'v-spacer')\n","// Styles\nimport './VToolbar.sass'\n\n// Extensions\nimport VSheet from '../VSheet/VSheet'\n\n// Components\nimport VImg, { srcObject } from '../VImg/VImg'\n\n// Utilities\nimport { convertToUnit, getSlot } from '../../util/helpers'\nimport { breaking } from '../../util/console'\n\n// Types\nimport { VNode, PropType } from 'vue'\n\n/* @vue/component */\nexport default VSheet.extend({\n name: 'v-toolbar',\n\n props: {\n absolute: Boolean,\n bottom: Boolean,\n collapse: Boolean,\n dense: Boolean,\n extended: Boolean,\n extensionHeight: {\n default: 48,\n type: [Number, String],\n },\n flat: Boolean,\n floating: Boolean,\n prominent: Boolean,\n short: Boolean,\n src: {\n type: [String, Object] as PropType,\n default: '',\n },\n tag: {\n type: String,\n default: 'header',\n },\n tile: {\n type: Boolean,\n default: true,\n },\n },\n\n data: () => ({\n isExtended: false,\n }),\n\n computed: {\n computedHeight (): number {\n const height = this.computedContentHeight\n\n if (!this.isExtended) return height\n\n const extensionHeight = parseInt(this.extensionHeight)\n\n return this.isCollapsed\n ? height\n : height + (!isNaN(extensionHeight) ? extensionHeight : 0)\n },\n computedContentHeight (): number {\n if (this.height) return parseInt(this.height)\n if (this.isProminent && this.dense) return 96\n if (this.isProminent && this.short) return 112\n if (this.isProminent) return 128\n if (this.dense) return 48\n if (this.short || this.$vuetify.breakpoint.smAndDown) return 56\n return 64\n },\n classes (): object {\n return {\n ...VSheet.options.computed.classes.call(this),\n 'v-toolbar': true,\n 'v-toolbar--absolute': this.absolute,\n 'v-toolbar--bottom': this.bottom,\n 'v-toolbar--collapse': this.collapse,\n 'v-toolbar--collapsed': this.isCollapsed,\n 'v-toolbar--dense': this.dense,\n 'v-toolbar--extended': this.isExtended,\n 'v-toolbar--flat': this.flat,\n 'v-toolbar--floating': this.floating,\n 'v-toolbar--prominent': this.isProminent,\n }\n },\n isCollapsed (): boolean {\n return this.collapse\n },\n isProminent (): boolean {\n return this.prominent\n },\n styles (): object {\n return {\n ...this.measurableStyles,\n height: convertToUnit(this.computedHeight),\n }\n },\n },\n\n created () {\n const breakingProps = [\n ['app', ''],\n ['manual-scroll', ''],\n ['clipped-left', ''],\n ['clipped-right', ''],\n ['inverted-scroll', ''],\n ['scroll-off-screen', ''],\n ['scroll-target', ''],\n ['scroll-threshold', ''],\n ['card', ''],\n ]\n\n /* istanbul ignore next */\n breakingProps.forEach(([original, replacement]) => {\n if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this)\n })\n },\n\n methods: {\n genBackground () {\n const props = {\n height: convertToUnit(this.computedHeight),\n src: this.src,\n }\n\n const image = this.$scopedSlots.img\n ? this.$scopedSlots.img({ props })\n : this.$createElement(VImg, { props })\n\n return this.$createElement('div', {\n staticClass: 'v-toolbar__image',\n }, [image])\n },\n genContent () {\n return this.$createElement('div', {\n staticClass: 'v-toolbar__content',\n style: {\n height: convertToUnit(this.computedContentHeight),\n },\n }, getSlot(this))\n },\n genExtension () {\n return this.$createElement('div', {\n staticClass: 'v-toolbar__extension',\n style: {\n height: convertToUnit(this.extensionHeight),\n },\n }, getSlot(this, 'extension'))\n },\n },\n\n render (h): VNode {\n this.isExtended = this.extended || !!this.$scopedSlots.extension\n\n const children = [this.genContent()]\n const data = this.setBackgroundColor(this.color, {\n class: this.classes,\n style: this.styles,\n on: this.$listeners,\n })\n\n if (this.isExtended) children.push(this.genExtension())\n if (this.src || this.$scopedSlots.img) children.unshift(this.genBackground())\n\n return h(this.tag, data, children)\n },\n})\n","// Styles\nimport './VApp.sass'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport mixins from '../../util/mixins'\n\n/* @vue/component */\nexport default mixins(\n Themeable\n).extend({\n name: 'v-app',\n\n props: {\n dark: {\n type: Boolean,\n default: undefined,\n },\n id: {\n type: String,\n default: 'app',\n },\n light: {\n type: Boolean,\n default: undefined,\n },\n },\n\n computed: {\n isDark (): boolean {\n return this.$vuetify.theme.dark\n },\n },\n\n beforeCreate () {\n if (!this.$vuetify || (this.$vuetify === this.$root as any)) {\n throw new Error('Vuetify is not properly initialized, see https://vuetifyjs.com/getting-started/quick-start#bootstrapping-the-vuetify-object')\n }\n },\n\n render (h) {\n const wrapper = h('div', { staticClass: 'v-application--wrap' }, this.$slots.default)\n\n return h('div', {\n staticClass: 'v-application',\n class: {\n 'v-application--is-rtl': this.$vuetify.rtl,\n 'v-application--is-ltr': !this.$vuetify.rtl,\n ...this.themeClasses,\n },\n attrs: { 'data-app': true },\n domProps: { id: this.id },\n }, [wrapper])\n },\n})\n","// Types\nimport Vue, { VNode } from 'vue'\n\nexport default function VGrid (name: string) {\n /* @vue/component */\n return Vue.extend({\n name: `v-${name}`,\n\n functional: true,\n\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n render (h, { props, data, children }): VNode {\n data.staticClass = (`${name} ${data.staticClass || ''}`).trim()\n\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n const classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n\n if (classes.length) data.staticClass += ` ${classes.join(' ')}`\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(props.tag, data, children)\n },\n })\n}\n","import './_grid.sass'\nimport './VGrid.sass'\n\nimport Grid from './grid'\n\nimport mergeData from '../../util/mergeData'\n\n/* @vue/component */\nexport default Grid('container').extend({\n name: 'v-container',\n functional: true,\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n fluid: {\n type: Boolean,\n default: false,\n },\n },\n render (h, { props, data, children }) {\n let classes\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'container',\n class: Array({\n 'container--fluid': props.fluid,\n }).concat(classes || []),\n }),\n children\n )\n },\n})\n","// Styles\nimport './VContent.sass'\n\n// Mixins\nimport SSRBootable from '../../mixins/ssr-bootable'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default SSRBootable.extend({\n name: 'v-content',\n\n props: {\n tag: {\n type: String,\n default: 'main',\n },\n },\n\n computed: {\n styles (): object {\n const {\n bar, top, right, footer, insetFooter, bottom, left,\n } = this.$vuetify.application\n\n return {\n paddingTop: `${top + bar}px`,\n paddingRight: `${right}px`,\n paddingBottom: `${footer + insetFooter + bottom}px`,\n paddingLeft: `${left}px`,\n }\n },\n },\n\n render (h): VNode {\n const data = {\n staticClass: 'v-content',\n style: this.styles,\n ref: 'content',\n }\n\n return h(this.tag, data, [\n h(\n 'div',\n { staticClass: 'v-content__wrap' },\n this.$slots.default\n ),\n ])\n },\n})\n","import './VResponsive.sass'\n\n// Mixins\nimport Measurable, { NumberOrNumberString } from '../../mixins/measurable'\n\n// Types\nimport { VNode } from 'vue'\n\n// Utils\nimport mixins from '../../util/mixins'\n\n/* @vue/component */\nexport default mixins(Measurable).extend({\n name: 'v-responsive',\n\n props: {\n aspectRatio: [String, Number] as NumberOrNumberString,\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.aspectRatio)\n },\n aspectStyle (): object | undefined {\n return this.computedAspectRatio\n ? { paddingBottom: (1 / this.computedAspectRatio) * 100 + '%' }\n : undefined\n },\n __cachedSizer (): VNode | [] {\n if (!this.aspectStyle) return []\n\n return this.$createElement('div', {\n style: this.aspectStyle,\n staticClass: 'v-responsive__sizer',\n })\n },\n },\n\n methods: {\n genContent (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-responsive__content',\n }, this.$slots.default)\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-responsive',\n style: this.measurableStyles,\n on: this.$listeners,\n }, [\n this.__cachedSizer,\n this.genContent(),\n ])\n },\n})\n","import VResponsive from './VResponsive'\n\nexport { VResponsive }\nexport default VResponsive\n","// Styles\nimport './VImg.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\n// Components\nimport VResponsive from '../VResponsive'\n\n// Utils\nimport { consoleError, consoleWarn } from '../../util/console'\n\n// not intended for public use, this is passed in by vuetify-loader\nexport interface srcObject {\n src: string\n srcset?: string\n lazySrc: string\n aspect: number\n}\n\n/* @vue/component */\nexport default VResponsive.extend({\n name: 'v-img',\n\n directives: { intersect },\n\n props: {\n alt: String,\n contain: Boolean,\n eager: Boolean,\n gradient: String,\n lazySrc: String,\n options: {\n type: Object,\n // For more information on types, navigate to:\n // https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API\n default: () => ({\n root: undefined,\n rootMargin: undefined,\n threshold: undefined,\n }),\n },\n position: {\n type: String,\n default: 'center center',\n },\n sizes: String,\n src: {\n type: [String, Object],\n default: '',\n } as PropValidator,\n srcset: String,\n transition: {\n type: [Boolean, String],\n default: 'fade-transition',\n },\n },\n\n data () {\n return {\n currentSrc: '', // Set from srcset\n image: null as HTMLImageElement | null,\n isLoading: true,\n calculatedAspectRatio: undefined as number | undefined,\n naturalWidth: undefined as number | undefined,\n }\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.normalisedSrc.aspect || this.calculatedAspectRatio)\n },\n hasIntersect () {\n return (\n typeof window !== 'undefined' &&\n 'IntersectionObserver' in window\n )\n },\n normalisedSrc (): srcObject {\n return typeof this.src === 'string'\n ? {\n src: this.src,\n srcset: this.srcset,\n lazySrc: this.lazySrc,\n aspect: Number(this.aspectRatio || 0),\n } : {\n src: this.src.src,\n srcset: this.srcset || this.src.srcset,\n lazySrc: this.lazySrc || this.src.lazySrc,\n aspect: Number(this.aspectRatio || this.src.aspect),\n }\n },\n __cachedImage (): VNode | [] {\n if (!(this.normalisedSrc.src || this.normalisedSrc.lazySrc)) return []\n\n const backgroundImage: string[] = []\n const src = this.isLoading ? this.normalisedSrc.lazySrc : this.currentSrc\n\n if (this.gradient) backgroundImage.push(`linear-gradient(${this.gradient})`)\n if (src) backgroundImage.push(`url(\"${src}\")`)\n\n const image = this.$createElement('div', {\n staticClass: 'v-image__image',\n class: {\n 'v-image__image--preload': this.isLoading,\n 'v-image__image--contain': this.contain,\n 'v-image__image--cover': !this.contain,\n },\n style: {\n backgroundImage: backgroundImage.join(', '),\n backgroundPosition: this.position,\n },\n key: +this.isLoading,\n })\n\n /* istanbul ignore if */\n if (!this.transition) return image\n\n return this.$createElement('transition', {\n attrs: {\n name: this.transition,\n mode: 'in-out',\n },\n }, [image])\n },\n },\n\n watch: {\n src () {\n // Force re-init when src changes\n if (!this.isLoading) this.init(undefined, undefined, true)\n else this.loadImage()\n },\n '$vuetify.breakpoint.width': 'getSrc',\n },\n\n mounted () {\n this.init()\n },\n\n methods: {\n init (\n entries?: IntersectionObserverEntry[],\n observer?: IntersectionObserver,\n isIntersecting?: boolean\n ) {\n // If the current browser supports the intersection\n // observer api, the image is not observable, and\n // the eager prop isn't being used, do not load\n if (\n this.hasIntersect &&\n !isIntersecting &&\n !this.eager\n ) return\n\n if (this.normalisedSrc.lazySrc) {\n const lazyImg = new Image()\n lazyImg.src = this.normalisedSrc.lazySrc\n this.pollForSize(lazyImg, null)\n }\n /* istanbul ignore else */\n if (this.normalisedSrc.src) this.loadImage()\n },\n onLoad () {\n this.getSrc()\n this.isLoading = false\n this.$emit('load', this.src)\n },\n onError () {\n consoleError(\n `Image load failed\\n\\n` +\n `src: ${this.normalisedSrc.src}`,\n this\n )\n this.$emit('error', this.src)\n },\n getSrc () {\n /* istanbul ignore else */\n if (this.image) this.currentSrc = this.image.currentSrc || this.image.src\n },\n loadImage () {\n const image = new Image()\n this.image = image\n\n image.onload = () => {\n /* istanbul ignore if */\n if (image.decode) {\n image.decode().catch((err: DOMException) => {\n consoleWarn(\n `Failed to decode image, trying to render anyway\\n\\n` +\n `src: ${this.normalisedSrc.src}` +\n (err.message ? `\\nOriginal error: ${err.message}` : ''),\n this\n )\n }).then(this.onLoad)\n } else {\n this.onLoad()\n }\n }\n image.onerror = this.onError\n\n image.src = this.normalisedSrc.src\n this.sizes && (image.sizes = this.sizes)\n this.normalisedSrc.srcset && (image.srcset = this.normalisedSrc.srcset)\n\n this.aspectRatio || this.pollForSize(image)\n this.getSrc()\n },\n pollForSize (img: HTMLImageElement, timeout: number | null = 100) {\n const poll = () => {\n const { naturalHeight, naturalWidth } = img\n\n if (naturalHeight || naturalWidth) {\n this.naturalWidth = naturalWidth\n this.calculatedAspectRatio = naturalWidth / naturalHeight\n } else {\n timeout != null && setTimeout(poll, timeout)\n }\n }\n\n poll()\n },\n genContent () {\n const content: VNode = VResponsive.options.methods.genContent.call(this)\n if (this.naturalWidth) {\n this._b(content.data!, 'div', {\n style: { width: `${this.naturalWidth}px` },\n })\n }\n\n return content\n },\n __genPlaceholder (): VNode | void {\n if (this.$slots.placeholder) {\n const placeholder = this.isLoading\n ? [this.$createElement('div', {\n staticClass: 'v-image__placeholder',\n }, this.$slots.placeholder)]\n : []\n\n if (!this.transition) return placeholder[0]\n\n return this.$createElement('transition', {\n props: {\n appear: true,\n name: this.transition,\n },\n }, placeholder)\n }\n },\n },\n\n render (h): VNode {\n const node = VResponsive.options.render.call(this, h)\n\n node.data!.staticClass += ' v-image'\n\n // Only load intersect directive if it\n // will work in the current browser.\n node.data!.directives = this.hasIntersect ? [{\n name: 'intersect',\n options: this.options,\n modifiers: { once: true },\n value: this.init,\n } as any] : []\n\n node.data!.attrs = {\n role: this.alt ? 'img' : undefined,\n 'aria-label': this.alt,\n }\n\n node.children = [\n this.__cachedSizer,\n this.__cachedImage,\n this.__genPlaceholder(),\n this.genContent(),\n ] as VNode[]\n\n return h(node.tag, node.data, node.children)\n },\n})\n","import Vue from 'vue'\n\n/**\n * SSRBootable\n *\n * @mixin\n *\n * Used in layout components (drawer, toolbar, content)\n * to avoid an entry animation when using SSR\n */\nexport default Vue.extend({\n name: 'ssr-bootable',\n\n data: () => ({\n isBooted: false,\n }),\n\n mounted () {\n // Use setAttribute instead of dataset\n // because dataset does not work well\n // with unit tests\n window.requestAnimationFrame(() => {\n this.$el.setAttribute('data-booted', 'true')\n this.isBooted = true\n })\n },\n})\n"],"sourceRoot":""}