{"version":3,"sources":["webpack:///../../../src/components/VAlert/VAlert.ts","webpack:///./node_modules/vuetify-loader/lib/runtime/installDirectives.js","webpack:///../../../src/components/VAppBar/VAppBar.ts","webpack:///./node_modules/vuetify-loader/lib/runtime/installComponents.js","webpack:///../../../src/components/VApp/VApp.ts"],"names":["name","props","border","type","closeLabel","default","coloredBorder","dense","dismissible","closeIcon","icon","Boolean","val","outlined","prominent","text","value","computed","this","data","staticClass","class","setBackgroundColor","$createElement","color","small","attrs","$vuetify","lang","t","on","click","isActive","iconColor","classes","includes","hasText","hasColoredIcon","$attrs","hasOwnProperty","methods","children","$slots","prepend","$scopedSlots","close","toggle","role","style","directives","setColor","render","h","origin","mode","module","exports","component","options","extendOptions","i","baseMixins","Scroll","VAppBar","clippedLeft","clippedRight","collapseOnScroll","elevateOnScroll","fadeImgOnScroll","hideOnScroll","invertedScroll","scrollOffScreen","shrinkOnScroll","collapse","app","currentScroll","threshold","Math","min","max","application","height","parseInt","Number","computedOriginalHeight","bottom","computedTransform","fontSize","marginTop","transform","left","right","watch","canScroll","_b","opacity","computedOpacity","computedHeight","isScrollingUp","currentThreshold","arg","onScroll","components","dark","undefined","id","light","theme","Error","wrapper","themeClasses","domProps"],"mappings":"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","file":"js/chunk-vendors~4a7e9e0b.9229085b.js","sourcesContent":["// Styles\nimport './VAlert.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Components\nimport VBtn from '../VBtn'\nimport VIcon from '../VIcon'\n\n// Mixins\nimport Toggleable from '../../mixins/toggleable'\nimport Themeable from '../../mixins/themeable'\nimport Transitionable from '../../mixins/transitionable'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport { breaking } from '../../util/console'\n\n// Types\nimport { VNodeData } from 'vue'\nimport { VNode } from 'vue/types'\n\n/* @vue/component */\nexport default mixins(\n VSheet,\n Toggleable,\n Transitionable\n).extend({\n name: 'v-alert',\n\n props: {\n border: {\n type: String,\n validator (val: string) {\n return [\n 'top',\n 'right',\n 'bottom',\n 'left',\n ].includes(val)\n },\n },\n closeLabel: {\n type: String,\n default: '$vuetify.close',\n },\n coloredBorder: Boolean,\n dense: Boolean,\n dismissible: Boolean,\n closeIcon: {\n type: String,\n default: '$cancel',\n },\n icon: {\n default: '',\n type: [Boolean, String],\n validator (val: boolean | string) {\n return typeof val === 'string' || val === false\n },\n },\n outlined: Boolean,\n prominent: Boolean,\n text: Boolean,\n type: {\n type: String,\n validator (val: string) {\n return [\n 'info',\n 'error',\n 'success',\n 'warning',\n ].includes(val)\n },\n },\n value: {\n type: Boolean,\n default: true,\n },\n },\n\n computed: {\n __cachedBorder (): VNode | null {\n if (!this.border) return null\n\n let data: VNodeData = {\n staticClass: 'v-alert__border',\n class: {\n [`v-alert__border--${this.border}`]: true,\n },\n }\n\n if (this.coloredBorder) {\n data = this.setBackgroundColor(this.computedColor, data)\n data.class['v-alert__border--has-color'] = true\n }\n\n return this.$createElement('div', data)\n },\n __cachedDismissible (): VNode | null {\n if (!this.dismissible) return null\n\n const color = this.iconColor\n\n return this.$createElement(VBtn, {\n staticClass: 'v-alert__dismissible',\n props: {\n color,\n icon: true,\n small: true,\n },\n attrs: {\n 'aria-label': this.$vuetify.lang.t(this.closeLabel),\n },\n on: {\n click: () => (this.isActive = false),\n },\n }, [\n this.$createElement(VIcon, {\n props: { color },\n }, this.closeIcon),\n ])\n },\n __cachedIcon (): VNode | null {\n if (!this.computedIcon) return null\n\n return this.$createElement(VIcon, {\n staticClass: 'v-alert__icon',\n props: { color: this.iconColor },\n }, this.computedIcon)\n },\n classes (): object {\n const classes: Record = {\n ...VSheet.options.computed.classes.call(this),\n 'v-alert--border': Boolean(this.border),\n 'v-alert--dense': this.dense,\n 'v-alert--outlined': this.outlined,\n 'v-alert--prominent': this.prominent,\n 'v-alert--text': this.text,\n }\n\n if (this.border) {\n classes[`v-alert--border-${this.border}`] = true\n }\n\n return classes\n },\n computedColor (): string {\n return this.color || this.type\n },\n computedIcon (): string | boolean {\n if (this.icon === false) return false\n if (typeof this.icon === 'string' && this.icon) return this.icon\n if (!['error', 'info', 'success', 'warning'].includes(this.type)) return false\n\n return `$${this.type}`\n },\n hasColoredIcon (): boolean {\n return (\n this.hasText ||\n (Boolean(this.border) && this.coloredBorder)\n )\n },\n hasText (): boolean {\n return this.text || this.outlined\n },\n iconColor (): string | undefined {\n return this.hasColoredIcon ? this.computedColor : undefined\n },\n isDark (): boolean {\n if (\n this.type &&\n !this.coloredBorder &&\n !this.outlined\n ) return true\n\n return Themeable.options.computed.isDark.call(this)\n },\n },\n\n created () {\n /* istanbul ignore next */\n if (this.$attrs.hasOwnProperty('outline')) {\n breaking('outline', 'outlined', this)\n }\n },\n\n methods: {\n genWrapper (): VNode {\n const children = [\n this.$slots.prepend || this.__cachedIcon,\n this.genContent(),\n this.__cachedBorder,\n this.$slots.append,\n this.$scopedSlots.close\n ? this.$scopedSlots.close({ toggle: this.toggle })\n : this.__cachedDismissible,\n ]\n\n const data: VNodeData = {\n staticClass: 'v-alert__wrapper',\n }\n\n return this.$createElement('div', data, children)\n },\n genContent (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-alert__content',\n }, this.$slots.default)\n },\n genAlert (): VNode {\n let data: VNodeData = {\n staticClass: 'v-alert',\n attrs: {\n role: 'alert',\n },\n on: this.listeners$,\n class: this.classes,\n style: this.styles,\n directives: [{\n name: 'show',\n value: this.isActive,\n }],\n }\n\n if (!this.coloredBorder) {\n const setColor = this.hasText ? this.setTextColor : this.setBackgroundColor\n data = setColor(this.computedColor, data)\n }\n\n return this.$createElement('div', data, [this.genWrapper()])\n },\n /** @public */\n toggle () {\n this.isActive = !this.isActive\n },\n },\n\n render (h): VNode {\n const render = this.genAlert()\n\n if (!this.transition) return render\n\n return h('transition', {\n props: {\n name: this.transition,\n origin: this.origin,\n mode: this.mode,\n },\n }, [render])\n },\n})\n","// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nmodule.exports = function installDirectives (component, directives) {\n var options = typeof component.exports === 'function'\n ? component.exports.extendOptions\n : component.options\n\n if (typeof component.exports === 'function') {\n options.directives = component.exports.options.directives\n }\n\n options.directives = options.directives || {}\n\n for (var i in directives) {\n options.directives[i] = options.directives[i] || directives[i]\n }\n}\n","// Styles\nimport './VAppBar.sass'\n\n// Extensions\nimport VToolbar from '../VToolbar/VToolbar'\n\n// Directives\nimport Scroll from '../../directives/scroll'\n\n// Mixins\nimport Applicationable from '../../mixins/applicationable'\nimport Scrollable from '../../mixins/scrollable'\nimport SSRBootable from '../../mixins/ssr-bootable'\nimport Toggleable from '../../mixins/toggleable'\n\n// Utilities\nimport { convertToUnit } from '../../util/helpers'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\nconst baseMixins = mixins(\n VToolbar,\n Scrollable,\n SSRBootable,\n Toggleable,\n Applicationable('top', [\n 'clippedLeft',\n 'clippedRight',\n 'computedHeight',\n 'invertedScroll',\n 'isExtended',\n 'isProminent',\n 'value',\n ])\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-app-bar',\n\n directives: { Scroll },\n\n provide (): object {\n return { VAppBar: this }\n },\n\n props: {\n clippedLeft: Boolean,\n clippedRight: Boolean,\n collapseOnScroll: Boolean,\n elevateOnScroll: Boolean,\n fadeImgOnScroll: Boolean,\n hideOnScroll: Boolean,\n invertedScroll: Boolean,\n scrollOffScreen: Boolean,\n shrinkOnScroll: Boolean,\n value: {\n type: Boolean,\n default: true,\n },\n },\n\n data () {\n return {\n isActive: this.value,\n }\n },\n\n computed: {\n applicationProperty (): string {\n return !this.bottom ? 'top' : 'bottom'\n },\n canScroll (): boolean {\n return (\n Scrollable.options.computed.canScroll.call(this) &&\n (\n this.invertedScroll ||\n this.elevateOnScroll ||\n this.hideOnScroll ||\n this.collapseOnScroll ||\n this.isBooted ||\n // If falsy, user has provided an\n // explicit value which should\n // overwrite anything we do\n !this.value\n )\n )\n },\n classes (): object {\n return {\n ...VToolbar.options.computed.classes.call(this),\n 'v-toolbar--collapse': this.collapse || this.collapseOnScroll,\n 'v-app-bar': true,\n 'v-app-bar--clipped': this.clippedLeft || this.clippedRight,\n 'v-app-bar--fade-img-on-scroll': this.fadeImgOnScroll,\n 'v-app-bar--elevate-on-scroll': this.elevateOnScroll,\n 'v-app-bar--fixed': !this.absolute && (this.app || this.fixed),\n 'v-app-bar--hide-shadow': this.hideShadow,\n 'v-app-bar--is-scrolled': this.currentScroll > 0,\n 'v-app-bar--shrink-on-scroll': this.shrinkOnScroll,\n }\n },\n scrollRatio (): number {\n const threshold = this.computedScrollThreshold\n return Math.max((threshold - this.currentScroll) / threshold, 0)\n },\n computedContentHeight (): number {\n if (!this.shrinkOnScroll) return VToolbar.options.computed.computedContentHeight.call(this)\n\n const min = this.dense ? 48 : 56\n const max = this.computedOriginalHeight\n\n return min + (max - min) * this.scrollRatio\n },\n computedFontSize (): number | undefined {\n if (!this.isProminent) return undefined\n\n const min = 1.25\n const max = 1.5\n\n return min + (max - min) * this.scrollRatio\n },\n computedLeft (): number {\n if (!this.app || this.clippedLeft) return 0\n\n return this.$vuetify.application.left\n },\n computedMarginTop (): number {\n if (!this.app) return 0\n\n return this.$vuetify.application.bar\n },\n computedOpacity (): number | undefined {\n if (!this.fadeImgOnScroll) return undefined\n\n return this.scrollRatio\n },\n computedOriginalHeight (): number {\n let height = VToolbar.options.computed.computedContentHeight.call(this)\n if (this.isExtended) height += parseInt(this.extensionHeight)\n return height\n },\n computedRight (): number {\n if (!this.app || this.clippedRight) return 0\n\n return this.$vuetify.application.right\n },\n computedScrollThreshold (): number {\n if (this.scrollThreshold) return Number(this.scrollThreshold)\n\n return this.computedOriginalHeight - (this.dense ? 48 : 56)\n },\n computedTransform (): number {\n if (\n !this.canScroll ||\n (this.elevateOnScroll && this.currentScroll === 0 && this.isActive)\n ) return 0\n\n if (this.isActive) return 0\n\n const scrollOffScreen = this.scrollOffScreen\n ? this.computedHeight\n : this.computedContentHeight\n\n return this.bottom ? scrollOffScreen : -scrollOffScreen\n },\n hideShadow (): boolean {\n if (this.elevateOnScroll && this.isExtended) {\n return this.currentScroll < this.computedScrollThreshold\n }\n\n if (this.elevateOnScroll) {\n return this.currentScroll === 0 ||\n this.computedTransform < 0\n }\n\n return (\n !this.isExtended ||\n this.scrollOffScreen\n ) && this.computedTransform !== 0\n },\n isCollapsed (): boolean {\n if (!this.collapseOnScroll) {\n return VToolbar.options.computed.isCollapsed.call(this)\n }\n\n return this.currentScroll > 0\n },\n isProminent (): boolean {\n return (\n VToolbar.options.computed.isProminent.call(this) ||\n this.shrinkOnScroll\n )\n },\n styles (): object {\n return {\n ...VToolbar.options.computed.styles.call(this),\n fontSize: convertToUnit(this.computedFontSize, 'rem'),\n marginTop: convertToUnit(this.computedMarginTop),\n transform: `translateY(${convertToUnit(this.computedTransform)})`,\n left: convertToUnit(this.computedLeft),\n right: convertToUnit(this.computedRight),\n }\n },\n },\n\n watch: {\n canScroll: 'onScroll',\n computedTransform () {\n // Normally we do not want the v-app-bar\n // to update the application top value\n // to avoid screen jump. However, in\n // this situation, we must so that\n // the clipped drawer can update\n // its top value when scrolled\n if (\n !this.canScroll ||\n (!this.clippedLeft && !this.clippedRight)\n ) return\n\n this.callUpdate()\n },\n invertedScroll (val: boolean) {\n this.isActive = !val || this.currentScroll !== 0\n },\n },\n\n created () {\n if (this.invertedScroll) this.isActive = false\n },\n\n methods: {\n genBackground () {\n const render = VToolbar.options.methods.genBackground.call(this)\n\n render.data = this._b(render.data || {}, render.tag!, {\n style: { opacity: this.computedOpacity },\n })\n\n return render\n },\n updateApplication (): number {\n return this.invertedScroll\n ? 0\n : this.computedHeight + this.computedTransform\n },\n thresholdMet () {\n if (this.invertedScroll) {\n this.isActive = this.currentScroll > this.computedScrollThreshold\n return\n }\n\n if (this.hideOnScroll) {\n this.isActive = this.isScrollingUp ||\n this.currentScroll < this.computedScrollThreshold\n }\n\n if (this.currentThreshold < this.computedScrollThreshold) return\n\n this.savedScroll = this.currentScroll\n },\n },\n\n render (h): VNode {\n const render = VToolbar.options.render.call(this, h)\n\n render.data = render.data || {}\n\n if (this.canScroll) {\n render.data.directives = render.data.directives || []\n render.data.directives.push({\n arg: this.scrollTarget,\n name: 'scroll',\n value: this.onScroll,\n })\n }\n\n return render\n },\n})\n","// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nmodule.exports = function installComponents (component, components) {\n var options = typeof component.exports === 'function'\n ? component.exports.extendOptions\n : component.options\n\n if (typeof component.exports === 'function') {\n options.components = component.exports.options.components\n }\n\n options.components = options.components || {}\n\n for (var i in components) {\n options.components[i] = options.components[i] || components[i]\n }\n}\n","// Styles\nimport './VApp.sass'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport mixins from '../../util/mixins'\n\n/* @vue/component */\nexport default mixins(\n Themeable\n).extend({\n name: 'v-app',\n\n props: {\n dark: {\n type: Boolean,\n default: undefined,\n },\n id: {\n type: String,\n default: 'app',\n },\n light: {\n type: Boolean,\n default: undefined,\n },\n },\n\n computed: {\n isDark (): boolean {\n return this.$vuetify.theme.dark\n },\n },\n\n beforeCreate () {\n if (!this.$vuetify || (this.$vuetify === this.$root as any)) {\n throw new Error('Vuetify is not properly initialized, see https://vuetifyjs.com/getting-started/quick-start#bootstrapping-the-vuetify-object')\n }\n },\n\n render (h) {\n const wrapper = h('div', { staticClass: 'v-application--wrap' }, this.$slots.default)\n\n return h('div', {\n staticClass: 'v-application',\n class: {\n 'v-application--is-rtl': this.$vuetify.rtl,\n 'v-application--is-ltr': !this.$vuetify.rtl,\n ...this.themeClasses,\n },\n attrs: { 'data-app': true },\n domProps: { id: this.id },\n }, [wrapper])\n },\n})\n"],"sourceRoot":""}