{"version":3,"sources":["webpack:///../../../src/mixins/loadable/index.ts","webpack:///../../../src/components/VProgressLinear/index.ts","webpack:///../../../src/components/VProgressLinear/VProgressLinear.ts","webpack:///../../../src/directives/intersect/index.ts","webpack:///../../../src/mixins/positionable/index.ts"],"names":["Vue","extend","name","props","loading","type","Boolean","String","default","loaderHeight","Number","methods","genProgress","this","getSlot","$createElement","VProgressLinear","absolute","color","height","indeterminate","baseMixins","mixins","Colorable","PositionableFactory","Proxyable","Themeable","directives","intersect","active","backgroundColor","backgroundOpacity","bufferValue","query","reverse","rounded","stream","striped","value","data","internalLazyValue","isVisible","computed","__cachedBackground","setBackgroundColor","staticClass","style","backgroundStyle","__cachedBar","computedTransition","__cachedBarType","__cachedIndeterminate","__cachedDeterminate","__cachedBuffer","styles","width","convertToUnit","normalizedValue","class","genProgressBar","__cachedStream","setTextColor","normalizedBuffer","parseFloat","opacity","isReversed","Math","max","classes","fixed","reactive","themeClasses","VFadeTransition","VSlideXTransition","$vuetify","rtl","normalize","$listeners","change","genContent","slot","genListeners","listeners","click","onClick","e","$el","getBoundingClientRect","internalValue","offsetX","onObserve","entries","observer","isIntersecting","render","h","attrs","role","undefined","bottom","top","on","inserted","el","binding","vnode","window","modifiers","handler","options","IntersectionObserver","_observe","_a","context","_uid","some","entry","quiet","init","once","unbind","Object","observe","unobserve","Intersect","availableProps","left","right","factory","selected","length","filterObjectOnKeys"],"mappings":"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","file":"js/chunk-78f0cdff.463ce158.js","sourcesContent":["import Vue, { VNode } from 'vue'\nimport VProgressLinear from '../../components/VProgressLinear'\nimport { getSlot } from '../../util/helpers'\n\ninterface colorable extends Vue {\n color?: string\n}\n\n/**\n * Loadable\n *\n * @mixin\n *\n * Used to add linear progress bar to components\n * Can use a default bar with a specific color\n * or designate a custom progress linear bar\n */\n/* @vue/component */\nexport default Vue.extend().extend({\n name: 'loadable',\n\n props: {\n loading: {\n type: [Boolean, String],\n default: false,\n },\n loaderHeight: {\n type: [Number, String],\n default: 2,\n },\n },\n\n methods: {\n genProgress (): VNode | VNode[] | null {\n if (this.loading === false) return null\n\n return getSlot(this, 'progress') || this.$createElement(VProgressLinear, {\n props: {\n absolute: true,\n color: (this.loading === true || this.loading === '')\n ? (this.color || 'primary')\n : this.loading,\n height: this.loaderHeight,\n indeterminate: true,\n },\n })\n },\n },\n})\n","import VProgressLinear from './VProgressLinear'\n\nexport { VProgressLinear }\nexport default VProgressLinear\n","import './VProgressLinear.sass'\n\n// Components\nimport {\n VFadeTransition,\n VSlideXTransition,\n} from '../transitions'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport { factory as PositionableFactory } from '../../mixins/positionable'\nimport Proxyable from '../../mixins/proxyable'\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport { convertToUnit, getSlot } from '../../util/helpers'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { FunctionalComponentOptions } from 'vue/types'\nimport { VNode } from 'vue'\n\nconst baseMixins = mixins(\n Colorable,\n PositionableFactory(['absolute', 'fixed', 'top', 'bottom']),\n Proxyable,\n Themeable\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-progress-linear',\n\n directives: { intersect },\n\n props: {\n active: {\n type: Boolean,\n default: true,\n },\n backgroundColor: {\n type: String,\n default: null,\n },\n backgroundOpacity: {\n type: [Number, String],\n default: null,\n },\n bufferValue: {\n type: [Number, String],\n default: 100,\n },\n color: {\n type: String,\n default: 'primary',\n },\n height: {\n type: [Number, String],\n default: 4,\n },\n indeterminate: Boolean,\n query: Boolean,\n reverse: Boolean,\n rounded: Boolean,\n stream: Boolean,\n striped: Boolean,\n value: {\n type: [Number, String],\n default: 0,\n },\n },\n\n data () {\n return {\n internalLazyValue: this.value || 0,\n isVisible: true,\n }\n },\n\n computed: {\n __cachedBackground (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.backgroundColor || this.color, {\n staticClass: 'v-progress-linear__background',\n style: this.backgroundStyle,\n }))\n },\n __cachedBar (): VNode {\n return this.$createElement(this.computedTransition, [this.__cachedBarType])\n },\n __cachedBarType (): VNode {\n return this.indeterminate ? this.__cachedIndeterminate : this.__cachedDeterminate\n },\n __cachedBuffer (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__buffer',\n style: this.styles,\n })\n },\n __cachedDeterminate (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: `v-progress-linear__determinate`,\n style: {\n width: convertToUnit(this.normalizedValue, '%'),\n },\n }))\n },\n __cachedIndeterminate (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__indeterminate',\n class: {\n 'v-progress-linear__indeterminate--active': this.active,\n },\n }, [\n this.genProgressBar('long'),\n this.genProgressBar('short'),\n ])\n },\n __cachedStream (): VNode | null {\n if (!this.stream) return null\n\n return this.$createElement('div', this.setTextColor(this.color, {\n staticClass: 'v-progress-linear__stream',\n style: {\n width: convertToUnit(100 - this.normalizedBuffer, '%'),\n },\n }))\n },\n backgroundStyle (): object {\n const backgroundOpacity = this.backgroundOpacity == null\n ? (this.backgroundColor ? 1 : 0.3)\n : parseFloat(this.backgroundOpacity)\n\n return {\n opacity: backgroundOpacity,\n [this.isReversed ? 'right' : 'left']: convertToUnit(this.normalizedValue, '%'),\n width: convertToUnit(Math.max(0, this.normalizedBuffer - this.normalizedValue), '%'),\n }\n },\n classes (): object {\n return {\n 'v-progress-linear--absolute': this.absolute,\n 'v-progress-linear--fixed': this.fixed,\n 'v-progress-linear--query': this.query,\n 'v-progress-linear--reactive': this.reactive,\n 'v-progress-linear--reverse': this.isReversed,\n 'v-progress-linear--rounded': this.rounded,\n 'v-progress-linear--striped': this.striped,\n 'v-progress-linear--visible': this.isVisible,\n ...this.themeClasses,\n }\n },\n computedTransition (): FunctionalComponentOptions {\n return this.indeterminate ? VFadeTransition : VSlideXTransition\n },\n isReversed (): boolean {\n return this.$vuetify.rtl !== this.reverse\n },\n normalizedBuffer (): number {\n return this.normalize(this.bufferValue)\n },\n normalizedValue (): number {\n return this.normalize(this.internalLazyValue)\n },\n reactive (): boolean {\n return Boolean(this.$listeners.change)\n },\n styles (): object {\n const styles: Record = {}\n\n if (!this.active) {\n styles.height = 0\n }\n\n if (!this.indeterminate && parseFloat(this.normalizedBuffer) !== 100) {\n styles.width = convertToUnit(this.normalizedBuffer, '%')\n }\n\n return styles\n },\n },\n\n methods: {\n genContent () {\n const slot = getSlot(this, 'default', { value: this.internalLazyValue })\n\n if (!slot) return null\n\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__content',\n }, slot)\n },\n genListeners () {\n const listeners = this.$listeners\n\n if (this.reactive) {\n listeners.click = this.onClick\n }\n\n return listeners\n },\n genProgressBar (name: 'long' | 'short') {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: 'v-progress-linear__indeterminate',\n class: {\n [name]: true,\n },\n }))\n },\n onClick (e: MouseEvent) {\n if (!this.reactive) return\n\n const { width } = this.$el.getBoundingClientRect()\n\n this.internalValue = e.offsetX / width * 100\n },\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isVisible = isIntersecting\n },\n normalize (value: string | number) {\n if (value < 0) return 0\n if (value > 100) return 100\n return parseFloat(value)\n },\n },\n\n render (h): VNode {\n const data = {\n staticClass: 'v-progress-linear',\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': this.normalizedBuffer,\n 'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue,\n },\n class: this.classes,\n directives: [{\n name: 'intersect',\n value: this.onObserve,\n }],\n style: {\n bottom: this.bottom ? 0 : undefined,\n height: this.active ? convertToUnit(this.height) : 0,\n top: this.top ? 0 : undefined,\n },\n on: this.genListeners(),\n }\n\n return h('div', data, [\n this.__cachedStream,\n this.__cachedBackground,\n this.__cachedBuffer,\n this.__cachedBar,\n this.genContent(),\n ])\n },\n})\n","import { VNodeDirective } from 'vue/types/vnode'\nimport { VNode } from 'vue'\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, vnode: VNode) {\n if (typeof window === 'undefined' || !('IntersectionObserver' in window)) return\n\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 const _observe = el._observe?.[vnode.context!._uid]\n if (!_observe) return // Just in case, should never fire\n\n const isIntersecting = entries.some(entry => entry.isIntersecting)\n\n // If is not quiet or has already been\n // initted, invoke the user callback\n if (\n handler && (\n !modifiers.quiet ||\n _observe.init\n ) && (\n !modifiers.once ||\n isIntersecting ||\n _observe.init\n )\n ) {\n handler(entries, observer, isIntersecting)\n }\n\n if (isIntersecting && modifiers.once) unbind(el, binding, vnode)\n else _observe.init = true\n }, options)\n\n el._observe = Object(el._observe)\n el._observe![vnode.context!._uid] = { init: false, observer }\n\n observer.observe(el)\n}\n\nfunction unbind (el: HTMLElement, binding: ObserveVNodeDirective, vnode: VNode) {\n const observe = el._observe?.[vnode.context!._uid]\n if (!observe) return\n\n observe.observer.unobserve(el)\n delete el._observe![vnode.context!._uid]\n}\n\nexport const Intersect = {\n inserted,\n unbind,\n}\n\nexport default Intersect\n","import Vue from 'vue'\nimport { filterObjectOnKeys } from '../../util/helpers'\nimport { OptionsVue, VueConstructor } from 'vue/types/vue'\n\nconst availableProps = {\n absolute: Boolean,\n bottom: Boolean,\n fixed: Boolean,\n left: Boolean,\n right: Boolean,\n top: Boolean,\n}\ntype props = Record\n\nexport type Positionable = VueConstructor\n\nexport function factory (selected?: S[]): Positionable\nexport function factory (selected: undefined): OptionsVue\nexport function factory (selected: any[] = []): any {\n return Vue.extend({\n name: 'positionable',\n props: selected.length ? filterObjectOnKeys(availableProps, selected) : availableProps,\n })\n}\n\nexport default factory()\n\n// Add a `*` before the second `/`\n/* Tests /\nlet single = factory(['top']).extend({\n created () {\n this.top\n this.bottom\n this.absolute\n }\n})\n\nlet some = factory(['top', 'bottom']).extend({\n created () {\n this.top\n this.bottom\n this.absolute\n }\n})\n\nlet all = factory().extend({\n created () {\n this.top\n this.bottom\n this.absolute\n this.foobar\n }\n})\n/**/\n"],"sourceRoot":""}