{"version":3,"sources":["webpack:///./src/assets/bulldog_bg.jpg","webpack:///../../../src/mixins/measurable/index.ts","webpack:///./src/components/payment/failedBanner.vue?e131","webpack:///src/components/payment/failedBanner.vue","webpack:///./src/components/payment/failedBanner.vue?1ce9","webpack:///./src/components/payment/failedBanner.vue","webpack:///../../../src/components/VGrid/VCol.ts","webpack:///../../../src/directives/intersect/index.ts","webpack:///../../../src/components/VResponsive/VResponsive.ts","webpack:///../../../src/components/VResponsive/index.ts","webpack:///../../../src/components/VImg/VImg.ts"],"names":["module","exports","name","props","height","Number","maxHeight","maxWidth","minHeight","minWidth","width","String","computed","measurableStyles","styles","this","render","_vm","_h","$createElement","_c","_self","attrs","staticClass","_v","staticRenderFns","component","VCol","VImg","VRow","breakpoints","breakpointProps","type","Boolean","default","offsetProps","orderProps","propMap","col","Object","offset","order","breakpointClass","className","val","breakpoint","prop","cache","functional","cols","alignSelf","validator","str","includes","tag","cacheKey","parent","classList","value","hasColClasses","h","data","class","inserted","modifiers","binding","handler","options","observer","IntersectionObserver","entries","el","isIntersecting","entry","unbind","init","observe","Intersect","mixins","aspectRatio","computedAspectRatio","aspectStyle","paddingBottom","__cachedSizer","style","methods","genContent","on","$listeners","hasIntersect","window","directives","intersect","alt","contain","eager","gradient","lazySrc","root","rootMargin","threshold","undefined","position","sizes","src","srcset","transition","currentSrc","image","isLoading","calculatedAspectRatio","naturalWidth","hasError","normalisedSrc","aspect","__cachedImage","backgroundImage","backgroundPosition","key","mode","watch","loadImage","mounted","lazyImg","onLoad","onError","getSrc","err","console","pollForSize","timeout","poll","naturalHeight","setTimeout","content","__genPlaceholder","$slots","placeholder","appear","node","mergeData","role","once"],"mappings":"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","file":"js/chunk-27af95a2.686c348e.js","sourcesContent":["module.exports = __webpack_public_path__ + \"img/bulldog_bg.6005e881.jpg\";","// Helpers\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport Vue, { PropType } from 'vue'\n\nexport type NumberOrNumberString = PropType\n\nexport default Vue.extend({\n name: 'measurable',\n\n props: {\n height: [Number, String] as NumberOrNumberString,\n maxHeight: [Number, String] as NumberOrNumberString,\n maxWidth: [Number, String] as NumberOrNumberString,\n minHeight: [Number, String] as NumberOrNumberString,\n minWidth: [Number, String] as NumberOrNumberString,\n width: [Number, String] as NumberOrNumberString,\n },\n\n computed: {\n measurableStyles (): object {\n const styles: Record = {}\n\n const height = convertToUnit(this.height)\n const minHeight = convertToUnit(this.minHeight)\n const minWidth = convertToUnit(this.minWidth)\n const maxHeight = convertToUnit(this.maxHeight)\n const maxWidth = convertToUnit(this.maxWidth)\n const width = convertToUnit(this.width)\n\n if (height) styles.height = height\n if (minHeight) styles.minHeight = minHeight\n if (minWidth) styles.minWidth = minWidth\n if (maxHeight) styles.maxHeight = maxHeight\n if (maxWidth) styles.maxWidth = maxWidth\n if (width) styles.width = width\n\n return styles\n },\n },\n})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"dark\":\"\"}},[_c('v-img',{staticClass:\"grey lighten-2\",attrs:{\"src\":require('@/assets/bulldog_bg.jpg'),\"height\":\"300\",\"width\":\"100%\"}},[_c('v-row',{staticClass:\"fill-height pa-3\",attrs:{\"align\":\"center\"}},[_c('v-col',{attrs:{\"col\":\"12\",\"xs\":\"12\",\"sm\":\"12\",\"md\":\"4\",\"lg\":\"4\",\"xl\":\"4\",\"offset\":\"1\"}},[_c('h4',{staticClass:\"banner\"},[_c('span',[_vm._v(\" Your policy has not been renewed \")]),_vm._v(\" We're sorry, theres been an error! \"),_c('br'),_vm._v(\" Please try again \")])])],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./failedBanner.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./failedBanner.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./failedBanner.vue?vue&type=template&id=1d1c22de&\"\nimport script from \"./failedBanner.vue?vue&type=script&lang=js&\"\nexport * from \"./failedBanner.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 null,\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 { VCol } from 'vuetify/lib/components/VGrid';\nimport { VImg } from 'vuetify/lib/components/VImg';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VCol,VImg,VRow})\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 { VNodeDirective } from 'vue/types/vnode'\n\ntype ObserveHandler = (\n entries: IntersectionObserverEntry[],\n observer: IntersectionObserver,\n isIntersecting: boolean,\n) => void\n\ninterface ObserveVNodeDirective extends Omit {\n value?: ObserveHandler | { handler: ObserveHandler, options?: IntersectionObserverInit }\n modifiers?: {\n once?: boolean\n quiet?: boolean\n }\n}\n\nfunction inserted (el: HTMLElement, binding: ObserveVNodeDirective) {\n const modifiers = binding.modifiers || {}\n const value = binding.value\n const { handler, options } = typeof value === 'object'\n ? value\n : { handler: value, options: {} }\n const observer = new IntersectionObserver((\n entries: IntersectionObserverEntry[] = [],\n observer: IntersectionObserver\n ) => {\n /* istanbul ignore if */\n if (!el._observe) return // Just in case, should never fire\n\n // If is not quiet or has already been\n // initted, invoke the user callback\n if (\n handler && (\n !modifiers.quiet ||\n el._observe.init\n )\n ) {\n const isIntersecting = Boolean(entries.find(entry => entry.isIntersecting))\n\n handler(entries, observer, isIntersecting)\n }\n\n // If has already been initted and\n // has the once modifier, unbind\n if (el._observe.init && modifiers.once) unbind(el)\n // Otherwise, mark the observer as initted\n else (el._observe.init = true)\n }, options)\n\n el._observe = { init: false, observer }\n\n observer.observe(el)\n}\n\nfunction unbind (el: HTMLElement) {\n /* istanbul ignore if */\n if (!el._observe) return\n\n el._observe.observer.unobserve(el)\n delete el._observe\n}\n\nexport const Intersect = {\n inserted,\n unbind,\n}\n\nexport default Intersect\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// 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 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 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 && !this.hasError && 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":""}