{"version":3,"sources":["webpack:///../../../src/components/VGrid/VRow.ts","webpack:///./node_modules/core-js/modules/es.map.js","webpack:///./src/assets/addition-black-and-white-black-and-white-374918.jpg","webpack:///./src/views/NotFound.vue?75d5","webpack:///src/views/NotFound.vue","webpack:///./src/views/NotFound.vue?c384","webpack:///./src/views/NotFound.vue","webpack:///../../../src/components/VResponsive/VResponsive.ts","webpack:///../../../src/components/VResponsive/index.ts","webpack:///../../../src/components/VImg/VImg.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","collection","collectionStrong","init","this","arguments","length","undefined","module","exports","_vm","_h","$createElement","_c","_self","_v","attrs","staticRenderFns","component","VBtn","VImg","VRow","mixins","Measurable","aspectRatio","Number","contentClass","computed","computedAspectRatio","aspectStyle","paddingBottom","__cachedSizer","style","methods","genContent","$slots","measurableStyles","on","$listeners","VResponsive","hasIntersect","window","Themeable","directives","intersect","alt","contain","eager","gradient","lazySrc","options","root","rootMargin","threshold","position","sizes","src","srcset","transition","currentSrc","image","isLoading","calculatedAspectRatio","naturalWidth","hasError","normalisedSrc","aspect","__cachedImage","backgroundImage","join","backgroundPosition","key","mode","watch","loadImage","mounted","entries","observer","isIntersecting","lazyImg","Image","pollForSize","onLoad","getSrc","$emit","endsWith","startsWith","naturalHeight","onError","onload","decode","catch","err","consoleWarn","message","then","onerror","img","timeout","poll","complete","setTimeout","content","call","_b","width","__genPlaceholder","placeholder","appear","node","role","themeClasses","modifiers","once","handler"],"mappings":"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","file":"js/chunk-38eef0fd.f4dbeaa3.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","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Map` constructor\n// https://tc39.es/ecma262/#sec-map-objects\ncollection('Map', function (init) {\n return function Map() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","module.exports = __webpack_public_path__ + \"img/addition-black-and-white-black-and-white-374918.bc489ecd.jpg\";","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"text-center mt-5 pt-5\"},[_c('h1',[_vm._v(\"Ooops!\")]),_c('h3',[_vm._v(\"The page you were looking for is not here.\")]),_c('v-btn',{staticClass:\"primary my-3\",attrs:{\"router\":\"\",\"to\":{ name: 'dashboard'}}},[_vm._v(\"Back to dashboard\")]),_c('v-row',{staticClass:\"my-3\",attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-img',{staticClass:\"grey lighten-2\",attrs:{\"src\":require(\"../assets/addition-black-and-white-black-and-white-374918.jpg\"),\"aspect-ratio\":\"1\",\"max-width\":\"500\",\"max-height\":\"300\"}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NotFound.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NotFound.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./NotFound.vue?vue&type=template&id=5b95eefe&scoped=true&lang=html&\"\nimport script from \"./NotFound.vue?vue&type=script&lang=js&\"\nexport * from \"./NotFound.vue?vue&type=script&lang=js&\"\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 \"5b95eefe\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VImg } from 'vuetify/lib/components/VImg';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VBtn,VImg,VRow})\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 contentClass: String,\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 class: this.contentClass,\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// Mixins\nimport Themeable from '../../mixins/themeable'\n\n// Utils\nimport mixins from '../../util/mixins'\nimport mergeData from '../../util/mergeData'\nimport { 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\nconst hasIntersect = typeof window !== 'undefined' && 'IntersectionObserver' in window\n\n/* @vue/component */\nexport default mixins(\n VResponsive,\n Themeable,\n).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 } as PropValidator,\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 hasError: false,\n }\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.normalisedSrc.aspect || this.calculatedAspectRatio)\n },\n normalisedSrc (): srcObject {\n return this.src && typeof this.src === 'object'\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 src: this.src,\n srcset: this.srcset,\n lazySrc: this.lazySrc,\n aspect: Number(this.aspectRatio || 0),\n }\n },\n __cachedImage (): VNode | [] {\n if (!(this.normalisedSrc.src || this.normalisedSrc.lazySrc || this.gradient)) 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 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 if (\n this.image &&\n (this.normalisedSrc.src.endsWith('.svg') || this.normalisedSrc.src.startsWith('data:image/svg+xml'))\n ) {\n if (this.image.naturalHeight && this.image.naturalWidth) {\n this.naturalWidth = this.image.naturalWidth\n this.calculatedAspectRatio = this.image.naturalWidth / this.image.naturalHeight\n } else {\n this.calculatedAspectRatio = 1\n }\n }\n },\n onError () {\n this.hasError = true\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 this.hasError = false\n this.sizes && (image.sizes = this.sizes)\n this.normalisedSrc.srcset && (image.srcset = this.normalisedSrc.srcset)\n image.src = this.normalisedSrc.src\n this.$emit('loadstart', this.normalisedSrc.src)\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 if (!img.complete && this.isLoading && !this.hasError && timeout != null) {\n 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 const data = mergeData(node.data!, {\n staticClass: 'v-image',\n attrs: {\n 'aria-label': this.alt,\n role: this.alt ? 'img' : undefined,\n },\n class: this.themeClasses,\n // Only load intersect directive if it\n // will work in the current browser.\n directives: hasIntersect\n ? [{\n name: 'intersect',\n modifiers: { once: true },\n value: {\n handler: this.init,\n options: this.options,\n },\n }]\n : undefined,\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, data, node.children)\n },\n})\n"],"sourceRoot":""}