{"version":3,"sources":["webpack:///../../../src/components/VGrid/VRow.ts","webpack:///../../../src/mixins/registrable/index.ts","webpack:///./src/helpers/rules.ts","webpack:///../../../src/components/VForm/VForm.ts","webpack:///../../../src/components/VGrid/VCol.ts","webpack:///../../../src/components/VResponsive/VResponsive.ts","webpack:///../../../src/components/VResponsive/index.ts","webpack:///../../../src/components/VImg/VImg.ts","webpack:///../../src/util/mergeData.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","generateWarning","child","parent","consoleWarn","inject","namespace","defaultImpl","register","unregister","provide","self","this","required","v","i18n","tc","generalFiscalCode","test","iban","sameValue","vSame","errorMessage","maxLenght","mixins","BindsAttrs","RegistrableProvide","form","inheritAttrs","disabled","lazyValidation","readonly","inputs","watchers","errorBag","watch","handler","errors","values","$emit","deep","immediate","methods","watchInput","input","watcher","$watch","$set","_uid","valid","shouldValidate","hasOwnProperty","validate","filter","length","reset","resetErrorBag","setTimeout","resetValidation","found","find","i","unwatch","$delete","attrs","novalidate","attrs$","on","submit","e","$slots","breakpointProps","Number","offsetProps","orderProps","col","offset","order","cols","alignSelf","hasColClasses","some","startsWith","Measurable","aspectRatio","contentClass","computed","computedAspectRatio","aspectStyle","paddingBottom","undefined","__cachedSizer","$createElement","style","genContent","getSlot","measurableStyles","$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","loadImage","init","mounted","entries","observer","isIntersecting","lazyImg","Image","pollForSize","onLoad","getSrc","endsWith","naturalHeight","onError","onload","decode","catch","err","message","then","onerror","img","timeout","poll","complete","content","call","_b","width","__genPlaceholder","slot","placeholder","appear","node","role","themeClasses","modifiers","once","pattern","styleList","styleProp","parseStyle","styleMap","s","split","trim","camelize","mergeTarget","arguments","mergeClasses","mergeStyles","mergeListeners","target","source","wrapInArray","concat","args","dest","arg","event"],"mappings":"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","file":"js/chunk-37899394.37b473f8.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","import Vue from 'vue'\nimport { VueConstructor } from 'vue/types/vue'\nimport { consoleWarn } from '../../util/console'\n\nfunction generateWarning (child: string, parent: string) {\n return () => consoleWarn(`The ${child} component must be used inside a ${parent}`)\n}\n\nexport type Registrable = VueConstructor : {\n register (...props: any[]): void\n unregister (self: any): void\n }\n}>\n\nexport function inject<\n T extends string, C extends VueConstructor | null = null\n> (namespace: T, child?: string, parent?: string): Registrable {\n const defaultImpl = child && parent ? {\n register: generateWarning(child, parent),\n unregister: generateWarning(child, parent),\n } : null\n\n return Vue.extend({\n name: 'registrable-inject',\n\n inject: {\n [namespace]: {\n default: defaultImpl,\n },\n },\n })\n}\n\nexport function provide (namespace: string, self = false) {\n return Vue.extend({\n name: 'registrable-provide',\n\n provide (): object {\n return {\n [namespace]: self ? this : {\n register: (this as any).register,\n unregister: (this as any).unregister,\n },\n }\n },\n })\n}\n","import { i18n } from \"@/i18n/config\";\r\n\r\nexport const required = (v: string): string | boolean =>\r\n !!v || i18n.tc(\"general.RequiredField\");\r\nexport const email = (v: string): string | boolean =>\r\n !v ||\r\n /^\\w+([.-]?\\w+)*@\\w+([.-]?\\w+)*(\\.\\w{2,3})+$/.test(v) ||\r\n i18n.tc(\"general.EmailMustBeValid\");\r\n\r\nexport const generalFiscalCode = (v: string): string | boolean =>\r\n !v ||\r\n // /^[a-zA-Z]{6}[0-9]{2}[a-zA-Z][0-9]{2}[a-zA-Z][0-9]{3}[a-zA-Z]$/.test(v) || // OLD, NON GESTITA OMOCODIA! (Trovata su http://blog.marketto.it/2016/01/regex-validazione-codice-fiscale-con-omocodia/)\r\n /^(?:[A-Z][AEIOU][AEIOUX]|[AEIOU]X{2}|[B-DF-HJ-NP-TV-Z]{2}[A-Z]){2}(?:[\\dLMNP-V]{2}(?:[A-EHLMPR-T](?:[04LQ][1-9MNP-V]|[15MR][\\dLMNP-V]|[26NS][0-8LMNP-U])|[DHPS][37PT][0L]|[ACELMRT][37PT][01LM]|[AC-EHLMPR-T][26NS][9V])|(?:[02468LNQSU][048LQU]|[13579MPRTV][26NS])B[26NS][9V])(?:[A-MZ][1-9MNP-V][\\dLMNP-V]{2}|[A-M][0L](?:[1-9MNP-V][\\dLMNP-V]|[0L][1-9MNP-V]))[A-Z]$/i.test(\r\n v\r\n ) ||\r\n i18n.tc(\"general.FiscalCodeMustBeValid\");\r\nexport const iban = (v: string): string | boolean =>\r\n !v ||\r\n /^([A-Z]{2}[ '+'\\\\'+'-]?[0-9]{2})(?=(?:[ '+'\\\\'+'-]?[A-Z0-9]){9,30}$)((?:[ '+'\\\\'+'-]?[A-Z0-9]{3,5}){2,7})([ '+'\\\\'+'-]?[A-Z0-9]{1,3})?$/gim.test(\r\n v\r\n ) ||\r\n i18n.tc(\"general.InvalidIBAN\");\r\nexport const sameValue = (\r\n v: string,\r\n vSame: string,\r\n errorMessage: string\r\n): string | boolean => !v || !vSame || v === vSame || errorMessage;\r\n\r\nexport const generalAlert = (\r\n v: string,\r\n vShow: boolean,\r\n errorMessage: string\r\n): string | boolean => !v || vShow === true || errorMessage;\r\n\r\nexport const maxLenght = (v: string): string | boolean =>\r\n /^.{1,70}$/.test(v) || i18n.tc(\"general.FiscalCodeMustBeValid\");\r\n","// Components\nimport VInput from '../VInput/VInput'\n\n// Mixins\nimport mixins from '../../util/mixins'\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport { provide as RegistrableProvide } from '../../mixins/registrable'\n\n// Helpers\nimport { VNode } from 'vue'\n\ntype ErrorBag = Record\ntype VInputInstance = InstanceType\ntype Watchers = {\n _uid: number\n valid: () => void\n shouldValidate: () => void\n}\n\n/* @vue/component */\nexport default mixins(\n BindsAttrs,\n RegistrableProvide('form')\n /* @vue/component */\n).extend({\n name: 'v-form',\n\n provide (): object {\n return { form: this }\n },\n\n inheritAttrs: false,\n\n props: {\n disabled: Boolean,\n lazyValidation: Boolean,\n readonly: Boolean,\n value: Boolean,\n },\n\n data: () => ({\n inputs: [] as VInputInstance[],\n watchers: [] as Watchers[],\n errorBag: {} as ErrorBag,\n }),\n\n watch: {\n errorBag: {\n handler (val) {\n const errors = Object.values(val).includes(true)\n\n this.$emit('input', !errors)\n },\n deep: true,\n immediate: true,\n },\n },\n\n methods: {\n watchInput (input: any): Watchers {\n const watcher = (input: any): (() => void) => {\n return input.$watch('hasError', (val: boolean) => {\n this.$set(this.errorBag, input._uid, val)\n }, { immediate: true })\n }\n\n const watchers: Watchers = {\n _uid: input._uid,\n valid: () => {},\n shouldValidate: () => {},\n }\n\n if (this.lazyValidation) {\n // Only start watching inputs if we need to\n watchers.shouldValidate = input.$watch('shouldValidate', (val: boolean) => {\n if (!val) return\n\n // Only watch if we're not already doing it\n if (this.errorBag.hasOwnProperty(input._uid)) return\n\n watchers.valid = watcher(input)\n })\n } else {\n watchers.valid = watcher(input)\n }\n\n return watchers\n },\n /** @public */\n validate (): boolean {\n return this.inputs.filter(input => !input.validate(true)).length === 0\n },\n /** @public */\n reset (): void {\n this.inputs.forEach(input => input.reset())\n this.resetErrorBag()\n },\n resetErrorBag () {\n if (this.lazyValidation) {\n // Account for timeout in validatable\n setTimeout(() => {\n this.errorBag = {}\n }, 0)\n }\n },\n /** @public */\n resetValidation () {\n this.inputs.forEach(input => input.resetValidation())\n this.resetErrorBag()\n },\n register (input: VInputInstance) {\n this.inputs.push(input)\n this.watchers.push(this.watchInput(input))\n },\n unregister (input: VInputInstance) {\n const found = this.inputs.find(i => i._uid === input._uid)\n\n if (!found) return\n\n const unwatch = this.watchers.find(i => i._uid === found._uid)\n if (unwatch) {\n unwatch.valid()\n unwatch.shouldValidate()\n }\n\n this.watchers = this.watchers.filter(i => i._uid !== found._uid)\n this.inputs = this.inputs.filter(i => i._uid !== found._uid)\n this.$delete(this.errorBag, found._uid)\n },\n },\n\n render (h): VNode {\n return h('form', {\n staticClass: 'v-form',\n attrs: {\n novalidate: true,\n ...this.attrs$,\n },\n on: {\n submit: (e: Event) => this.$emit('submit', e),\n },\n }, this.$slots.default)\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","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","/**\n * @copyright 2017 Alex Regan\n * @license MIT\n * @see https://github.com/alexsasharegan/vue-functional-data-merge\n */\n/* eslint-disable max-statements */\nimport { VNodeData } from 'vue'\nimport { camelize, wrapInArray } from './helpers'\n\nconst pattern = {\n styleList: /;(?![^(]*\\))/g,\n styleProp: /:(.*)/,\n} as const\n\nfunction parseStyle (style: string) {\n const styleMap: Dictionary = {}\n\n for (const s of style.split(pattern.styleList)) {\n let [key, val] = s.split(pattern.styleProp)\n key = key.trim()\n if (!key) {\n continue\n }\n // May be undefined if the `key: value` pair is incomplete.\n if (typeof val === 'string') {\n val = val.trim()\n }\n styleMap[camelize(key)] = val\n }\n\n return styleMap\n}\n\n/**\n * Intelligently merges data for createElement.\n * Merges arguments left to right, preferring the right argument.\n * Returns new VNodeData object.\n */\nexport default function mergeData (...vNodeData: VNodeData[]): VNodeData\nexport default function mergeData (): VNodeData {\n const mergeTarget: VNodeData & Dictionary = {}\n let i: number = arguments.length\n let prop: string\n\n // Allow for variadic argument length.\n while (i--) {\n // Iterate through the data properties and execute merge strategies\n // Object.keys eliminates need for hasOwnProperty call\n for (prop of Object.keys(arguments[i])) {\n switch (prop) {\n // Array merge strategy (array concatenation)\n case 'class':\n case 'directives':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeClasses(mergeTarget[prop], arguments[i][prop])\n }\n break\n case 'style':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeStyles(mergeTarget[prop], arguments[i][prop])\n }\n break\n // Space delimited string concatenation strategy\n case 'staticClass':\n if (!arguments[i][prop]) {\n break\n }\n if (mergeTarget[prop] === undefined) {\n mergeTarget[prop] = ''\n }\n if (mergeTarget[prop]) {\n // Not an empty string, so concatenate\n mergeTarget[prop] += ' '\n }\n mergeTarget[prop] += arguments[i][prop].trim()\n break\n // Object, the properties of which to merge via array merge strategy (array concatenation).\n // Callback merge strategy merges callbacks to the beginning of the array,\n // so that the last defined callback will be invoked first.\n // This is done since to mimic how Object.assign merging\n // uses the last given value to assign.\n case 'on':\n case 'nativeOn':\n if (arguments[i][prop]) {\n mergeTarget[prop] = mergeListeners(mergeTarget[prop], arguments[i][prop])\n }\n break\n // Object merge strategy\n case 'attrs':\n case 'props':\n case 'domProps':\n case 'scopedSlots':\n case 'staticStyle':\n case 'hook':\n case 'transition':\n if (!arguments[i][prop]) {\n break\n }\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = {}\n }\n mergeTarget[prop] = { ...arguments[i][prop], ...mergeTarget[prop] }\n break\n // Reassignment strategy (no merge)\n default: // slot, key, ref, tag, show, keepAlive\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = arguments[i][prop]\n }\n }\n }\n }\n\n return mergeTarget\n}\n\nexport function mergeStyles (\n target: undefined | string | object[] | object,\n source: undefined | string | object[] | object\n) {\n if (!target) return source\n if (!source) return target\n\n target = wrapInArray(typeof target === 'string' ? parseStyle(target) : target)\n\n return (target as object[]).concat(typeof source === 'string' ? parseStyle(source) : source)\n}\n\nexport function mergeClasses (target: any, source: any) {\n if (!source) return target\n if (!target) return source\n\n return target ? wrapInArray(target).concat(source) : source\n}\n\nexport function mergeListeners (...args: [\n { [key: string]: Function | Function[] } | undefined,\n { [key: string]: Function | Function[] } | undefined\n]) {\n if (!args[0]) return args[1]\n if (!args[1]) return args[0]\n\n const dest: { [key: string]: Function | Function[] } = {}\n\n for (let i = 2; i--;) {\n const arg = args[i]\n for (const event in arg) {\n if (!arg[event]) continue\n\n if (dest[event]) {\n // Merge current listeners before (because we are iterating backwards).\n // Note that neither \"target\" or \"source\" must be altered.\n dest[event] = ([] as Function[]).concat(arg[event], dest[event])\n } else {\n // Straight assign.\n dest[event] = arg[event]\n }\n }\n }\n\n return dest\n}\n"],"sourceRoot":""}