{"version":3,"sources":["webpack:///../../../src/components/VGrid/VRow.ts","webpack:///./src/components/shared/core/report/ReportingCard.vue","webpack:///src/components/shared/core/report/ReportingCard.vue","webpack:///./src/components/shared/core/report/ReportingCard.vue?8d62","webpack:///./src/components/shared/core/report/ReportingCard.vue?e412","webpack:///../../../src/components/VGrid/VSpacer.ts","webpack:///../../../src/components/VToolbar/VToolbar.ts","webpack:///../../../src/components/VGrid/grid.ts","webpack:///../../../src/components/VGrid/VContainer.ts","webpack:///../../../src/components/VResponsive/VResponsive.ts","webpack:///../../../src/components/VResponsive/index.ts","webpack:///../../../src/components/VImg/VImg.ts","webpack:///../../../src/components/VCard/VCard.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","attrs","_c","ref","scopedSlots","_vm","fn","on","download","downloadReportType","asWord","key","asExcel","asPrintPdf","staticRenderFns","components","BaseDropDownMenuButton","BaseMenuItem","BaseButton","reportModule","iconReport","iconSend","iconPdf","iconExcel","iconDelete","iconTrash","iconWord","computed","displayHeader","getReportModuleTitle","commandDownload","commandPrint","commandPdf","commandWord","commandExcel","tooltipPdf","tooltipWord","tooltipExcel","moduleNames","Folder","currentDate","Date","methods","downloadType","$emit","eventNames","downloadReport","component","createSimpleFunctional","VSheet","absolute","bottom","collapse","extended","extensionHeight","Number","flat","floating","prominent","short","src","isExtended","computedHeight","height","this","computedContentHeight","parseInt","isCollapsed","isNaN","isProminent","$vuetify","smAndDown","classes","options","call","styles","measurableStyles","convertToUnit","created","breakingProps","original","replacement","$attrs","hasOwnProperty","breaking","genBackground","image","$scopedSlots","img","$createElement","VImg","genContent","style","getSlot","genExtension","extension","setBackgroundColor","color","$listeners","unshift","VGrid","id","trim","filter","startsWith","length","join","domProps","Grid","fluid","Array","concat","mixins","Measurable","aspectRatio","contentClass","computedAspectRatio","aspectStyle","paddingBottom","undefined","__cachedSizer","VResponsive","hasIntersect","window","Themeable","directives","intersect","alt","contain","eager","gradient","lazySrc","root","rootMargin","threshold","position","sizes","srcset","transition","currentSrc","isLoading","calculatedAspectRatio","naturalWidth","hasError","normalisedSrc","aspect","__cachedImage","backgroundImage","backgroundPosition","mode","watch","loadImage","init","mounted","entries","observer","isIntersecting","lazyImg","Image","pollForSize","onLoad","getSrc","endsWith","naturalHeight","onError","onload","decode","catch","err","consoleWarn","message","then","onerror","timeout","poll","complete","setTimeout","content","_b","width","__genPlaceholder","slot","placeholder","appear","node","role","themeClasses","modifiers","once","handler","Loadable","Routable","hover","link","loaderHeight","raised","isClickable","loading","disabled","background","genProgress","generateRouteLink","tabindex"],"mappings":"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","file":"js/chunk-2f9fd86d.1ffe652f.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","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('v-card',{attrs:{\"flat\":\"\"}},[_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',{staticClass:\"child-flex\"},[_c('div',[_c('v-toolbar',{attrs:{\"dense\":\"\",\"elevation\":\"0\"}},[_c('base-drop-down-menu-button',{ref:\"refDropDownMenuActions\",attrs:{\"icon-name\":_vm.iconSend},scopedSlots:_vm._u([{key:\"commands\",fn:function(){return [_c('base-menu-item',{on:{\"click\":function($event){return _vm.download(_vm.downloadReportType.asPdf)}},scopedSlots:_vm._u([{key:\"iconName\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.iconPdf)+\" \")]},proxy:true},{key:\"tooltipContent\",fn:function(){return [_c('div',[_vm._v(\" \"+_vm._s(_vm.tooltipPdf)+\" \")])]},proxy:true}])},[_vm._v(\" \"+_vm._s(_vm.commandPdf)+\" \")]),_c('base-menu-item',{on:{\"click\":function($event){return _vm.download(_vm.downloadReportType.asWord)}},scopedSlots:_vm._u([{key:\"iconName\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.iconWord)+\" \")]},proxy:true},{key:\"tooltipContent\",fn:function(){return [_c('div',[_vm._v(\" \"+_vm._s(_vm.tooltipWord)+\" \")])]},proxy:true}])},[_vm._v(\" \"+_vm._s(_vm.commandWord)+\" \")]),_c('base-menu-item',{on:{\"click\":function($event){return _vm.download(_vm.downloadReportType.asExcel)}},scopedSlots:_vm._u([{key:\"iconName\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.iconExcel)+\" \")]},proxy:true},{key:\"tooltipContent\",fn:function(){return [_c('div',[_vm._v(\" \"+_vm._s(_vm.tooltipExcel)+\" \")])]},proxy:true}])},[_vm._v(\" \"+_vm._s(_vm.commandExcel)+\" \")])]},proxy:true}])},[_vm._v(\" \"+_vm._s(_vm.commandDownload)+\" \")]),_c('base-button',{on:{\"click\":function($event){return _vm.download(_vm.downloadReportType.asPrintPdf)}}},[_vm._v(_vm._s(_vm.commandPrint))])],1)],1),_c('div',[_c('v-toolbar',{attrs:{\"dense\":\"\",\"elevation\":\"0\"}},[_c('v-spacer'),_vm._t(\"rightToolbar\")],2)],1)])],1)],1),_c('v-divider'),_c('br'),_c('div',{staticClass:\"text-center\"},[_c('p',{staticClass:\"font-weight-medium headline\"},[_vm._v(_vm._s(_vm.displayHeader))]),_c('p',{staticClass:\"font-weight-regular title\"},[_vm._v(_vm._s(_vm.currentDate))]),_c('br')])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n\r\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!./ReportingCard.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!./ReportingCard.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ReportingCard.vue?vue&type=template&id=47e8b384&scoped=true\"\nimport script from \"./ReportingCard.vue?vue&type=script&lang=js\"\nexport * from \"./ReportingCard.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 \"47e8b384\",\n null\n \n)\n\nexport default component.exports","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 },\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","// 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","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'\nimport { getSlot } from '../../util/helpers'\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 }, getSlot(this))\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'\nimport { getSlot } from '../../util/helpers'\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 const slot = getSlot(this, 'placeholder')\n if (slot) {\n const placeholder = this.isLoading\n ? [this.$createElement('div', {\n staticClass: 'v-image__placeholder',\n }, slot)]\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","// Styles\nimport './VCard.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Mixins\nimport Loadable from '../../mixins/loadable'\nimport Routable from '../../mixins/routable'\n\n// Helpers\nimport mixins from '../../util/mixins'\nimport { getSlot } from '../../util/helpers'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n Loadable,\n Routable,\n VSheet\n).extend({\n name: 'v-card',\n\n props: {\n flat: Boolean,\n hover: Boolean,\n img: String,\n link: Boolean,\n loaderHeight: {\n type: [Number, String],\n default: 4,\n },\n raised: Boolean,\n },\n\n computed: {\n classes (): object {\n return {\n 'v-card': true,\n ...Routable.options.computed.classes.call(this),\n 'v-card--flat': this.flat,\n 'v-card--hover': this.hover,\n 'v-card--link': this.isClickable,\n 'v-card--loading': this.loading,\n 'v-card--disabled': this.disabled,\n 'v-card--raised': this.raised,\n ...VSheet.options.computed.classes.call(this),\n }\n },\n styles (): object {\n const style: Dictionary = {\n ...VSheet.options.computed.styles.call(this),\n }\n\n if (this.img) {\n style.background = `url(\"${this.img}\") center center / cover no-repeat`\n }\n\n return style\n },\n },\n\n methods: {\n genProgress () {\n const render = Loadable.options.methods.genProgress.call(this)\n\n if (!render) return null\n\n return this.$createElement('div', {\n staticClass: 'v-card__progress',\n key: 'progress',\n }, [render])\n },\n },\n\n render (h): VNode {\n const { tag, data } = this.generateRouteLink()\n\n data.style = this.styles\n\n if (this.isClickable) {\n data.attrs = data.attrs || {}\n data.attrs.tabindex = 0\n }\n\n return h(tag, this.setBackgroundColor(this.color, data), [\n this.genProgress(),\n getSlot(this),\n ])\n },\n})\n"],"sourceRoot":""}