{"version":3,"file":"js/chunk-vendors-c3943e85.22561f93.js","mappings":"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","sources":["webpack://ida-jandaya/./node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js","webpack://ida-jandaya/../../../src/components/VAlert/VAlert.ts","webpack://ida-jandaya/../../../src/components/VAppBar/VAppBar.ts","webpack://ida-jandaya/../../../src/components/VAppBar/VAppBarNavIcon.ts","webpack://ida-jandaya/../../../src/components/VApp/VApp.ts","webpack://ida-jandaya/../../../src/components/VAutocomplete/VAutocomplete.ts","webpack://ida-jandaya/../../../src/components/VBtn/VBtn.ts","webpack://ida-jandaya/../../../src/components/VBtn/index.ts","webpack://ida-jandaya/../../../src/components/VCard/VCard.ts","webpack://ida-jandaya/../../../src/components/VCard/index.ts","webpack://ida-jandaya/../../../src/components/VCheckbox/VCheckbox.ts","webpack://ida-jandaya/../../../src/components/VCheckbox/VSimpleCheckbox.ts","webpack://ida-jandaya/../../../src/components/VChip/VChip.ts","webpack://ida-jandaya/../../../src/components/VChip/index.ts","webpack://ida-jandaya/../../../../src/components/VColorPicker/util/index.ts","webpack://ida-jandaya/../../../src/components/VColorPicker/VColorPickerPreview.ts","webpack://ida-jandaya/../../../src/components/VColorPicker/VColorPickerCanvas.ts","webpack://ida-jandaya/../../../src/components/VColorPicker/VColorPickerEdit.ts","webpack://ida-jandaya/../../../src/components/VColorPicker/VColorPickerSwatches.ts","webpack://ida-jandaya/../../../src/components/VColorPicker/VColorPicker.ts","webpack://ida-jandaya/../../../src/components/VCombobox/VCombobox.ts","webpack://ida-jandaya/../../../src/components/VCounter/VCounter.ts","webpack://ida-jandaya/../../../src/components/VCounter/index.ts","webpack://ida-jandaya/../../../src/components/VDatePicker/VDatePickerTitle.ts","webpack://ida-jandaya/../../../../src/components/VDatePicker/util/createNativeLocaleFormatter.ts","webpack://ida-jandaya/../../../../src/components/VDatePicker/util/monthChange.ts","webpack://ida-jandaya/../../../src/components/VDatePicker/VDatePickerHeader.ts","webpack://ida-jandaya/../../../../src/components/VDatePicker/util/eventHelpers.ts","webpack://ida-jandaya/../../../../src/components/VDatePicker/util/sanitizeDateString.ts","webpack://ida-jandaya/../../../../src/components/VDatePicker/util/isDateAllowed.ts","webpack://ida-jandaya/../../../../src/components/VDatePicker/mixins/date-picker-table.ts","webpack://ida-jandaya/../../../src/components/VDatePicker/VDatePickerDateTable.ts","webpack://ida-jandaya/../../../src/components/VDatePicker/VDatePickerMonthTable.ts","webpack://ida-jandaya/../../../src/components/VDatePicker/VDatePickerYears.ts","webpack://ida-jandaya/../../../../src/components/VCalendar/util/timestamp.ts","webpack://ida-jandaya/../../../src/components/VDatePicker/VDatePicker.ts","webpack://ida-jandaya/../../../../src/components/VDatePicker/util/pad.ts","webpack://ida-jandaya/../../../src/components/VDialog/VDialog.ts","webpack://ida-jandaya/../../../src/components/VDivider/VDivider.ts","webpack://ida-jandaya/../../../src/components/VDivider/index.ts","webpack://ida-jandaya/../../../src/components/VFileInput/VFileInput.ts","webpack://ida-jandaya/../../../src/components/VForm/VForm.ts","webpack://ida-jandaya/../../../src/components/VGrid/VCol.ts","webpack://ida-jandaya/../../../src/components/VGrid/VContainer.ts","webpack://ida-jandaya/../../../src/components/VGrid/VRow.ts","webpack://ida-jandaya/../../../src/components/VGrid/VSpacer.ts","webpack://ida-jandaya/../../../src/components/VGrid/grid.ts","webpack://ida-jandaya/../../../src/components/VIcon/VIcon.ts","webpack://ida-jandaya/../../../src/components/VIcon/index.ts","webpack://ida-jandaya/../../../src/components/VImg/VImg.ts","webpack://ida-jandaya/../../../src/components/VMessages/VMessages.ts","webpack://ida-jandaya/../../../src/components/VMessages/index.ts","webpack://ida-jandaya/../../../src/components/VInput/VInput.ts","webpack://ida-jandaya/../../../src/components/VInput/index.ts","webpack://ida-jandaya/../../../src/components/VItemGroup/VItemGroup.ts","webpack://ida-jandaya/../../../src/components/VLabel/VLabel.ts","webpack://ida-jandaya/../../../src/components/VLabel/index.ts","webpack://ida-jandaya/../../../src/components/VList/VList.ts","webpack://ida-jandaya/../../../src/components/VList/VListGroup.ts","webpack://ida-jandaya/../../../src/components/VList/VListItem.ts","webpack://ida-jandaya/../../../src/components/VList/VListItemAction.ts","webpack://ida-jandaya/../../../src/components/VList/VListItemGroup.ts","webpack://ida-jandaya/../../../src/components/VList/VListItemIcon.ts","webpack://ida-jandaya/../../../src/components/VAvatar/VAvatar.ts","webpack://ida-jandaya/../../../src/components/VAvatar/index.ts","webpack://ida-jandaya/../../../src/components/VList/VListItemAvatar.ts","webpack://ida-jandaya/../../../src/components/VList/index.ts","webpack://ida-jandaya/../../../src/components/VMain/VMain.ts","webpack://ida-jandaya/../../../src/components/VMenu/VMenu.ts","webpack://ida-jandaya/../../../src/components/VMenu/index.ts","webpack://ida-jandaya/../../../src/components/VNavigationDrawer/VNavigationDrawer.ts","webpack://ida-jandaya/../../../src/components/VOverlay/VOverlay.ts","webpack://ida-jandaya/../../../src/components/VOverlay/index.ts","webpack://ida-jandaya/../../../src/components/VPagination/VPagination.ts","webpack://ida-jandaya/../../../src/components/VPicker/VPicker.ts","webpack://ida-jandaya/../../../src/components/VPicker/index.ts","webpack://ida-jandaya/./node_modules/vuetify-loader/lib/runtime/installComponents.js"],"sourcesContent":["/* globals __VUE_SSR_CONTEXT__ */\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\nexport default function normalizeComponent(\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier /* server only */,\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options =\n typeof scriptExports === 'function' ? scriptExports.options : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) {\n // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () {\n injectStyles.call(\n this,\n (options.functional ? this.parent : this).$root.$options.shadowRoot\n )\n }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functional component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection(h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n","// 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","// 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 hideOnScroll (val: boolean) {\n this.isActive = !val || this.currentScroll < this.computedScrollThreshold\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","// Components\nimport VIcon from '../VIcon'\nimport VBtn from '../VBtn/VBtn'\n\n// Types\nimport Vue from 'vue'\n\n/* @vue/component */\nexport default Vue.extend({\n name: 'v-app-bar-nav-icon',\n\n functional: true,\n\n render (h, { slots, listeners, props, data }) {\n const d = Object.assign(data, {\n staticClass: (`v-app-bar__nav-icon ${data.staticClass || ''}`).trim(),\n props: {\n ...props,\n icon: true,\n },\n on: listeners,\n })\n\n const defaultSlot = slots().default\n\n return h(VBtn, d, defaultSlot || [h(VIcon, '$menu')])\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","// Styles\nimport './VAutocomplete.sass'\n\n// Extensions\nimport VSelect, { defaultMenuProps as VSelectMenuProps } from '../VSelect/VSelect'\nimport VTextField from '../VTextField/VTextField'\n\n// Utilities\nimport mergeData from '../../util/mergeData'\nimport {\n getObjectValueByPath,\n getPropertyFromItem,\n keyCodes,\n} from '../../util/helpers'\n\n// Types\nimport { PropType, VNode } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\nconst defaultMenuProps = {\n ...VSelectMenuProps,\n offsetY: true,\n offsetOverflow: true,\n transition: false,\n}\n\n/* @vue/component */\nexport default VSelect.extend({\n name: 'v-autocomplete',\n\n props: {\n allowOverflow: {\n type: Boolean,\n default: true,\n },\n autoSelectFirst: {\n type: Boolean,\n default: false,\n },\n filter: {\n type: Function,\n default: (item: any, queryText: string, itemText: string) => {\n return itemText.toLocaleLowerCase().indexOf(queryText.toLocaleLowerCase()) > -1\n },\n } as PropValidator<(item: any, queryText: string, itemText: string) => boolean>,\n hideNoData: Boolean,\n menuProps: {\n type: VSelect.options.props.menuProps.type,\n default: () => defaultMenuProps,\n },\n noFilter: Boolean,\n searchInput: {\n type: String as PropType,\n },\n },\n\n data () {\n return {\n lazySearch: this.searchInput,\n }\n },\n\n computed: {\n classes (): object {\n return {\n ...VSelect.options.computed.classes.call(this),\n 'v-autocomplete': true,\n 'v-autocomplete--is-selecting-index': this.selectedIndex > -1,\n }\n },\n computedItems (): object[] {\n return this.filteredItems\n },\n selectedValues (): object[] {\n return this.selectedItems.map(item => this.getValue(item))\n },\n hasDisplayedItems (): boolean {\n return this.hideSelected\n ? this.filteredItems.some(item => !this.hasItem(item))\n : this.filteredItems.length > 0\n },\n currentRange (): number {\n if (this.selectedItem == null) return 0\n\n return String(this.getText(this.selectedItem)).length\n },\n filteredItems (): object[] {\n if (!this.isSearching || this.noFilter || this.internalSearch == null) return this.allItems\n\n return this.allItems.filter(item => {\n const value = getPropertyFromItem(item, this.itemText)\n const text = value != null ? String(value) : ''\n\n return this.filter(item, String(this.internalSearch), text)\n })\n },\n internalSearch: {\n get (): string | null {\n return this.lazySearch\n },\n set (val: any) { // TODO: this should be `string | null` but it breaks lots of other types\n // emit update event only when the new\n // search value is different from previous\n if (this.lazySearch !== val) {\n this.lazySearch = val\n this.$emit('update:search-input', val)\n }\n },\n },\n isAnyValueAllowed (): boolean {\n return false\n },\n isDirty (): boolean {\n return this.searchIsDirty || this.selectedItems.length > 0\n },\n isSearching (): boolean {\n return (\n this.multiple &&\n this.searchIsDirty\n ) || (\n this.searchIsDirty &&\n this.internalSearch !== this.getText(this.selectedItem)\n )\n },\n menuCanShow (): boolean {\n if (!this.isFocused) return false\n\n return this.hasDisplayedItems || !this.hideNoData\n },\n $_menuProps (): object {\n const props = VSelect.options.computed.$_menuProps.call(this);\n (props as any).contentClass = `v-autocomplete__content ${(props as any).contentClass || ''}`.trim()\n return {\n ...defaultMenuProps,\n ...props,\n }\n },\n searchIsDirty (): boolean {\n return this.internalSearch != null &&\n this.internalSearch !== ''\n },\n selectedItem (): any {\n if (this.multiple) return null\n\n return this.selectedItems.find(i => {\n return this.valueComparator(this.getValue(i), this.getValue(this.internalValue))\n })\n },\n listData () {\n const data = VSelect.options.computed.listData.call(this) as any\n\n data.props = {\n ...data.props,\n items: this.virtualizedItems,\n noFilter: (\n this.noFilter ||\n !this.isSearching ||\n !this.filteredItems.length\n ),\n searchInput: this.internalSearch,\n }\n\n return data\n },\n },\n\n watch: {\n filteredItems: 'onFilteredItemsChanged',\n internalValue: 'setSearch',\n isFocused (val) {\n if (val) {\n document.addEventListener('copy', this.onCopy)\n this.$refs.input && this.$refs.input.select()\n } else {\n document.removeEventListener('copy', this.onCopy)\n this.blur()\n this.updateSelf()\n }\n },\n isMenuActive (val) {\n if (val || !this.hasSlot) return\n\n this.lazySearch = null\n },\n items (val, oldVal) {\n // If we are focused, the menu\n // is not active, hide no data is enabled,\n // and items change\n // User is probably async loading\n // items, try to activate the menu\n if (\n !(oldVal && oldVal.length) &&\n this.hideNoData &&\n this.isFocused &&\n !this.isMenuActive &&\n val.length\n ) this.activateMenu()\n },\n searchInput (val: string) {\n this.lazySearch = val\n },\n internalSearch: 'onInternalSearchChanged',\n itemText: 'updateSelf',\n },\n\n created () {\n this.setSearch()\n },\n\n destroyed () {\n document.removeEventListener('copy', this.onCopy)\n },\n\n methods: {\n onFilteredItemsChanged (val: never[], oldVal: never[]) {\n // TODO: How is the watcher triggered\n // for duplicate items? no idea\n if (val === oldVal) return\n\n if (!this.autoSelectFirst) {\n const preSelectedItem = oldVal[this.$refs.menu.listIndex]\n\n if (preSelectedItem) {\n this.setMenuIndex(val.findIndex(i => i === preSelectedItem))\n } else {\n this.setMenuIndex(-1)\n }\n this.$emit('update:list-index', this.$refs.menu.listIndex)\n }\n\n this.$nextTick(() => {\n if (\n !this.internalSearch ||\n (val.length !== 1 &&\n !this.autoSelectFirst)\n ) return\n\n this.$refs.menu.getTiles()\n\n if (this.autoSelectFirst && val.length) {\n this.setMenuIndex(0)\n this.$emit('update:list-index', this.$refs.menu.listIndex)\n }\n })\n },\n onInternalSearchChanged () {\n this.updateMenuDimensions()\n },\n updateMenuDimensions () {\n // Type from menuable is not making it through\n this.isMenuActive && this.$refs.menu && this.$refs.menu.updateDimensions()\n },\n changeSelectedIndex (keyCode: number) {\n // Do not allow changing of selectedIndex\n // when search is dirty\n if (this.searchIsDirty) return\n\n if (this.multiple && keyCode === keyCodes.left) {\n if (this.selectedIndex === -1) {\n this.selectedIndex = this.selectedItems.length - 1\n } else {\n this.selectedIndex--\n }\n } else if (this.multiple && keyCode === keyCodes.right) {\n if (this.selectedIndex >= this.selectedItems.length - 1) {\n this.selectedIndex = -1\n } else {\n this.selectedIndex++\n }\n } else if (keyCode === keyCodes.backspace || keyCode === keyCodes.delete) {\n this.deleteCurrentItem()\n }\n },\n deleteCurrentItem () {\n const curIndex = this.selectedIndex\n const curItem = this.selectedItems[curIndex]\n\n // Do nothing if input or item is disabled\n if (\n !this.isInteractive ||\n this.getDisabled(curItem)\n ) return\n\n const lastIndex = this.selectedItems.length - 1\n\n // Select the last item if\n // there is no selection\n if (\n this.selectedIndex === -1 &&\n lastIndex !== 0\n ) {\n this.selectedIndex = lastIndex\n\n return\n }\n\n const length = this.selectedItems.length\n const nextIndex = curIndex !== length - 1\n ? curIndex\n : curIndex - 1\n const nextItem = this.selectedItems[nextIndex]\n\n if (!nextItem) {\n this.setValue(this.multiple ? [] : null)\n } else {\n this.selectItem(curItem)\n }\n\n this.selectedIndex = nextIndex\n },\n clearableCallback () {\n this.internalSearch = null\n\n VSelect.options.methods.clearableCallback.call(this)\n },\n genInput () {\n const input = VTextField.options.methods.genInput.call(this)\n\n input.data = mergeData(input.data!, {\n attrs: {\n 'aria-activedescendant': getObjectValueByPath(this.$refs.menu, 'activeTile.id'),\n autocomplete: getObjectValueByPath(input.data!, 'attrs.autocomplete', 'off'),\n },\n domProps: { value: this.internalSearch },\n })\n\n return input\n },\n genInputSlot () {\n const slot = VSelect.options.methods.genInputSlot.call(this)\n\n slot.data!.attrs!.role = 'combobox'\n\n return slot\n },\n genSelections (): VNode | never[] {\n return this.hasSlot || this.multiple\n ? VSelect.options.methods.genSelections.call(this)\n : []\n },\n onClick (e: MouseEvent) {\n if (!this.isInteractive) return\n\n this.selectedIndex > -1\n ? (this.selectedIndex = -1)\n : this.onFocus()\n\n if (!this.isAppendInner(e.target)) this.activateMenu()\n },\n onInput (e: Event) {\n if (\n this.selectedIndex > -1 ||\n !e.target\n ) return\n\n const target = e.target as HTMLInputElement\n const value = target.value\n\n // If typing and menu is not currently active\n if (target.value) this.activateMenu()\n\n if (!this.multiple && value === '') this.deleteCurrentItem()\n\n this.internalSearch = value\n this.badInput = target.validity && target.validity.badInput\n },\n onKeyDown (e: KeyboardEvent) {\n const keyCode = e.keyCode\n\n if (\n e.ctrlKey ||\n ![keyCodes.home, keyCodes.end].includes(keyCode)\n ) {\n VSelect.options.methods.onKeyDown.call(this, e)\n }\n\n // The ordering is important here\n // allows new value to be updated\n // and then moves the index to the\n // proper location\n this.changeSelectedIndex(keyCode)\n },\n onSpaceDown (e: KeyboardEvent) { /* noop */ },\n onTabDown (e: KeyboardEvent) {\n VSelect.options.methods.onTabDown.call(this, e)\n this.updateSelf()\n },\n onUpDown (e: Event) {\n // Prevent screen from scrolling\n e.preventDefault()\n\n // For autocomplete / combobox, cycling\n // interfers with native up/down behavior\n // instead activate the menu\n this.activateMenu()\n },\n selectItem (item: object) {\n VSelect.options.methods.selectItem.call(this, item)\n this.setSearch()\n },\n setSelectedItems () {\n VSelect.options.methods.setSelectedItems.call(this)\n\n // #4273 Don't replace if searching\n // #4403 Don't replace if focused\n if (!this.isFocused) this.setSearch()\n },\n setSearch () {\n // Wait for nextTick so selectedItem\n // has had time to update\n this.$nextTick(() => {\n if (\n !this.multiple ||\n !this.internalSearch ||\n !this.isMenuActive\n ) {\n this.internalSearch = (\n !this.selectedItems.length ||\n this.multiple ||\n this.hasSlot\n )\n ? null\n : this.getText(this.selectedItem)\n }\n })\n },\n updateSelf () {\n if (\n !this.searchIsDirty &&\n !this.internalValue\n ) return\n\n if (\n !this.multiple &&\n !this.valueComparator(\n this.internalSearch,\n this.getValue(this.internalValue)\n )\n ) {\n this.setSearch()\n }\n },\n hasItem (item: any): boolean {\n return this.selectedValues.indexOf(this.getValue(item)) > -1\n },\n onCopy (event: ClipboardEvent) {\n if (this.selectedIndex === -1) return\n\n const currentItem = this.selectedItems[this.selectedIndex]\n const currentItemText = this.getText(currentItem)\n event.clipboardData?.setData('text/plain', currentItemText)\n event.clipboardData?.setData('text/vnd.vuetify.autocomplete.item+plain', currentItemText)\n event.preventDefault()\n },\n },\n})\n","// Styles\nimport './VBtn.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Components\nimport VProgressCircular from '../VProgressCircular'\n\n// Mixins\nimport { factory as GroupableFactory } from '../../mixins/groupable'\nimport { factory as ToggleableFactory } from '../../mixins/toggleable'\nimport Elevatable from '../../mixins/elevatable'\nimport Positionable from '../../mixins/positionable'\nimport Routable from '../../mixins/routable'\nimport Sizeable from '../../mixins/sizeable'\n\n// Utilities\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport { breaking } from '../../util/console'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator, PropType } from 'vue/types/options'\nimport { RippleOptions } from '../../directives/ripple'\n\nconst baseMixins = mixins(\n VSheet,\n Routable,\n Positionable,\n Sizeable,\n GroupableFactory('btnToggle'),\n ToggleableFactory('inputValue')\n /* @vue/component */\n)\ninterface options extends ExtractVue {\n $el: HTMLElement\n}\n\nexport default baseMixins.extend().extend({\n name: 'v-btn',\n\n props: {\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this.btnToggle) return ''\n\n return this.btnToggle.activeClass\n },\n } as any as PropValidator,\n block: Boolean,\n depressed: Boolean,\n fab: Boolean,\n icon: Boolean,\n loading: Boolean,\n outlined: Boolean,\n plain: Boolean,\n retainFocusOnClick: Boolean,\n rounded: Boolean,\n tag: {\n type: String,\n default: 'button',\n },\n text: Boolean,\n tile: Boolean,\n type: {\n type: String,\n default: 'button',\n },\n value: null as any as PropType,\n },\n\n data: () => ({\n proxyClass: 'v-btn--active',\n }),\n\n computed: {\n classes (): any {\n return {\n 'v-btn': true,\n ...Routable.options.computed.classes.call(this),\n 'v-btn--absolute': this.absolute,\n 'v-btn--block': this.block,\n 'v-btn--bottom': this.bottom,\n 'v-btn--disabled': this.disabled,\n 'v-btn--is-elevated': this.isElevated,\n 'v-btn--fab': this.fab,\n 'v-btn--fixed': this.fixed,\n 'v-btn--has-bg': this.hasBg,\n 'v-btn--icon': this.icon,\n 'v-btn--left': this.left,\n 'v-btn--loading': this.loading,\n 'v-btn--outlined': this.outlined,\n 'v-btn--plain': this.plain,\n 'v-btn--right': this.right,\n 'v-btn--round': this.isRound,\n 'v-btn--rounded': this.rounded,\n 'v-btn--router': this.to,\n 'v-btn--text': this.text,\n 'v-btn--tile': this.tile,\n 'v-btn--top': this.top,\n ...this.themeClasses,\n ...this.groupClasses,\n ...this.elevationClasses,\n ...this.sizeableClasses,\n }\n },\n computedElevation (): string | number | undefined {\n if (this.disabled) return undefined\n\n return Elevatable.options.computed.computedElevation.call(this)\n },\n computedRipple (): RippleOptions | boolean {\n const defaultRipple = this.icon || this.fab ? { circle: true } : true\n if (this.disabled) return false\n else return this.ripple ?? defaultRipple\n },\n hasBg (): boolean {\n return !this.text && !this.plain && !this.outlined && !this.icon\n },\n isElevated (): boolean {\n return Boolean(\n !this.icon &&\n !this.text &&\n !this.outlined &&\n !this.depressed &&\n !this.disabled &&\n !this.plain &&\n (this.elevation == null || Number(this.elevation) > 0)\n )\n },\n isRound (): boolean {\n return Boolean(\n this.icon ||\n this.fab\n )\n },\n styles (): object {\n return {\n ...this.measurableStyles,\n }\n },\n },\n\n created () {\n const breakingProps = [\n ['flat', 'text'],\n ['outline', 'outlined'],\n ['round', 'rounded'],\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 click (e: MouseEvent): void {\n // TODO: Remove this in v3\n !this.retainFocusOnClick && !this.fab && e.detail && this.$el.blur()\n this.$emit('click', e)\n\n this.btnToggle && this.toggle()\n },\n genContent (): VNode {\n return this.$createElement('span', {\n staticClass: 'v-btn__content',\n }, this.$slots.default)\n },\n genLoader (): VNode {\n return this.$createElement('span', {\n class: 'v-btn__loader',\n }, this.$slots.loader || [this.$createElement(VProgressCircular, {\n props: {\n indeterminate: true,\n size: 23,\n width: 2,\n },\n })])\n },\n },\n\n render (h): VNode {\n const children = [\n this.genContent(),\n this.loading && this.genLoader(),\n ]\n const { tag, data } = this.generateRouteLink()\n const setColor = this.hasBg\n ? this.setBackgroundColor\n : this.setTextColor\n\n if (tag === 'button') {\n data.attrs!.type = this.type\n data.attrs!.disabled = this.disabled\n }\n data.attrs!.value = ['string', 'number'].includes(typeof this.value)\n ? this.value\n : JSON.stringify(this.value)\n\n return h(tag, this.disabled ? data : setColor(this.color, data), children)\n },\n})\n","import VBtn from './VBtn'\n\nexport { VBtn }\nexport default VBtn\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'\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 this.$slots.default,\n ])\n },\n})\n","import VCard from './VCard'\nimport { createSimpleFunctional } from '../../util/helpers'\n\nconst VCardActions = createSimpleFunctional('v-card__actions')\nconst VCardSubtitle = createSimpleFunctional('v-card__subtitle')\nconst VCardText = createSimpleFunctional('v-card__text')\nconst VCardTitle = createSimpleFunctional('v-card__title')\n\nexport {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n}\n\nexport default {\n $_vuetify_subcomponents: {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n },\n}\n","// Styles\nimport './VCheckbox.sass'\nimport '../../styles/components/_selection-controls.sass'\n\n// Components\nimport VIcon from '../VIcon'\nimport VInput from '../VInput'\n\n// Mixins\nimport Selectable from '../../mixins/selectable'\n\n/* @vue/component */\nexport default Selectable.extend({\n name: 'v-checkbox',\n\n props: {\n indeterminate: Boolean,\n indeterminateIcon: {\n type: String,\n default: '$checkboxIndeterminate',\n },\n offIcon: {\n type: String,\n default: '$checkboxOff',\n },\n onIcon: {\n type: String,\n default: '$checkboxOn',\n },\n },\n\n data () {\n return {\n inputIndeterminate: this.indeterminate,\n }\n },\n\n computed: {\n classes (): object {\n return {\n ...VInput.options.computed.classes.call(this),\n 'v-input--selection-controls': true,\n 'v-input--checkbox': true,\n 'v-input--indeterminate': this.inputIndeterminate,\n }\n },\n computedIcon (): string {\n if (this.inputIndeterminate) {\n return this.indeterminateIcon\n } else if (this.isActive) {\n return this.onIcon\n } else {\n return this.offIcon\n }\n },\n // Do not return undefined if disabled,\n // according to spec, should still show\n // a color when disabled and active\n validationState (): string | undefined {\n if (this.isDisabled && !this.inputIndeterminate) return undefined\n if (this.hasError && this.shouldValidate) return 'error'\n if (this.hasSuccess) return 'success'\n if (this.hasColor !== null) return this.computedColor\n return undefined\n },\n },\n\n watch: {\n indeterminate (val) {\n // https://github.com/vuetifyjs/vuetify/issues/8270\n this.$nextTick(() => (this.inputIndeterminate = val))\n },\n inputIndeterminate (val) {\n this.$emit('update:indeterminate', val)\n },\n isActive () {\n if (!this.indeterminate) return\n this.inputIndeterminate = false\n },\n },\n\n methods: {\n genCheckbox () {\n const { title, ...checkboxAttrs } = this.attrs$\n return this.$createElement('div', {\n staticClass: 'v-input--selection-controls__input',\n }, [\n this.$createElement(VIcon, this.setTextColor(this.validationState, {\n props: {\n dense: this.dense,\n dark: this.dark,\n light: this.light,\n },\n }), this.computedIcon),\n this.genInput('checkbox', {\n ...checkboxAttrs,\n 'aria-checked': this.inputIndeterminate\n ? 'mixed'\n : this.isActive.toString(),\n }),\n this.genRipple(this.setTextColor(this.rippleState)),\n ])\n },\n genDefaultSlot () {\n return [\n this.genCheckbox(),\n this.genLabel(),\n ]\n },\n },\n})\n","import './VSimpleCheckbox.sass'\n\nimport Ripple from '../../directives/ripple'\n\nimport Vue, { VNode, VNodeDirective } from 'vue'\nimport { VIcon } from '../VIcon'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport mergeData from '../../util/mergeData'\nimport { wrapInArray } from '../../util/helpers'\n\nexport default Vue.extend({\n name: 'v-simple-checkbox',\n\n functional: true,\n\n directives: {\n Ripple,\n },\n\n props: {\n ...Colorable.options.props,\n ...Themeable.options.props,\n disabled: Boolean,\n ripple: {\n type: Boolean,\n default: true,\n },\n value: Boolean,\n indeterminate: Boolean,\n indeterminateIcon: {\n type: String,\n default: '$checkboxIndeterminate',\n },\n onIcon: {\n type: String,\n default: '$checkboxOn',\n },\n offIcon: {\n type: String,\n default: '$checkboxOff',\n },\n },\n\n render (h, { props, data, listeners }): VNode {\n const children = []\n let icon = props.offIcon\n if (props.indeterminate) icon = props.indeterminateIcon\n else if (props.value) icon = props.onIcon\n\n children.push(h(VIcon, Colorable.options.methods.setTextColor(props.value && props.color, {\n props: {\n disabled: props.disabled,\n dark: props.dark,\n light: props.light,\n },\n }), icon))\n\n if (props.ripple && !props.disabled) {\n const ripple = h('div', Colorable.options.methods.setTextColor(props.color, {\n staticClass: 'v-input--selection-controls__ripple',\n directives: [{\n def: Ripple,\n name: 'ripple',\n value: { center: true },\n }] as VNodeDirective[],\n }))\n\n children.push(ripple)\n }\n\n return h('div',\n mergeData(data, {\n class: {\n 'v-simple-checkbox': true,\n 'v-simple-checkbox--disabled': props.disabled,\n },\n on: {\n click: (e: MouseEvent) => {\n e.stopPropagation()\n\n if (data.on && data.on.input && !props.disabled) {\n wrapInArray(data.on.input).forEach(f => f(!props.value))\n }\n },\n },\n }), [\n h('div', { staticClass: 'v-input--selection-controls__input' }, children),\n ])\n },\n})\n","// Styles\nimport './VChip.sass'\n\n// Types\nimport { VNode } from 'vue'\nimport mixins from '../../util/mixins'\n\n// Components\nimport { VExpandXTransition } from '../transitions'\nimport VIcon from '../VIcon'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport { factory as GroupableFactory } from '../../mixins/groupable'\nimport Themeable from '../../mixins/themeable'\nimport { factory as ToggleableFactory } from '../../mixins/toggleable'\nimport Routable from '../../mixins/routable'\nimport Sizeable from '../../mixins/sizeable'\n\n// Utilities\nimport { breaking } from '../../util/console'\n\n// Types\nimport { PropValidator, PropType } from 'vue/types/options'\n\n/* @vue/component */\nexport default mixins(\n Colorable,\n Sizeable,\n Routable,\n Themeable,\n GroupableFactory('chipGroup'),\n ToggleableFactory('inputValue')\n).extend({\n name: 'v-chip',\n\n props: {\n active: {\n type: Boolean,\n default: true,\n },\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this.chipGroup) return ''\n\n return this.chipGroup.activeClass\n },\n } as any as PropValidator,\n close: Boolean,\n closeIcon: {\n type: String,\n default: '$delete',\n },\n closeLabel: {\n type: String,\n default: '$vuetify.close',\n },\n disabled: Boolean,\n draggable: Boolean,\n filter: Boolean,\n filterIcon: {\n type: String,\n default: '$complete',\n },\n label: Boolean,\n link: Boolean,\n outlined: Boolean,\n pill: Boolean,\n tag: {\n type: String,\n default: 'span',\n },\n textColor: String,\n value: null as any as PropType,\n },\n\n data: () => ({\n proxyClass: 'v-chip--active',\n }),\n\n computed: {\n classes (): object {\n return {\n 'v-chip': true,\n ...Routable.options.computed.classes.call(this),\n 'v-chip--clickable': this.isClickable,\n 'v-chip--disabled': this.disabled,\n 'v-chip--draggable': this.draggable,\n 'v-chip--label': this.label,\n 'v-chip--link': this.isLink,\n 'v-chip--no-color': !this.color,\n 'v-chip--outlined': this.outlined,\n 'v-chip--pill': this.pill,\n 'v-chip--removable': this.hasClose,\n ...this.themeClasses,\n ...this.sizeableClasses,\n ...this.groupClasses,\n }\n },\n hasClose (): boolean {\n return Boolean(this.close)\n },\n isClickable (): boolean {\n return Boolean(\n Routable.options.computed.isClickable.call(this) ||\n this.chipGroup\n )\n },\n },\n\n created () {\n const breakingProps = [\n ['outline', 'outlined'],\n ['selected', 'input-value'],\n ['value', 'active'],\n ['@input', '@active.sync'],\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 click (e: MouseEvent): void {\n this.$emit('click', e)\n\n this.chipGroup && this.toggle()\n },\n genFilter (): VNode {\n const children = []\n\n if (this.isActive) {\n children.push(\n this.$createElement(VIcon, {\n staticClass: 'v-chip__filter',\n props: { left: true },\n }, this.filterIcon)\n )\n }\n\n return this.$createElement(VExpandXTransition, children)\n },\n genClose (): VNode {\n return this.$createElement(VIcon, {\n staticClass: 'v-chip__close',\n props: {\n right: true,\n size: 18,\n },\n attrs: {\n 'aria-label': this.$vuetify.lang.t(this.closeLabel),\n },\n on: {\n click: (e: Event) => {\n e.stopPropagation()\n e.preventDefault()\n\n this.$emit('click:close')\n this.$emit('update:active', false)\n },\n },\n }, this.closeIcon)\n },\n genContent (): VNode {\n return this.$createElement('span', {\n staticClass: 'v-chip__content',\n }, [\n this.filter && this.genFilter(),\n this.$slots.default,\n this.hasClose && this.genClose(),\n ])\n },\n },\n\n render (h): VNode {\n const children = [this.genContent()]\n let { tag, data } = this.generateRouteLink()\n\n data.attrs = {\n ...data.attrs,\n draggable: this.draggable ? 'true' : undefined,\n tabindex: this.chipGroup && !this.disabled ? 0 : data.attrs!.tabindex,\n }\n data.directives!.push({\n name: 'show',\n value: this.active,\n })\n data = this.setBackgroundColor(this.color, data)\n\n const color = this.textColor || (this.outlined && this.color)\n\n return h(tag, this.setTextColor(color, data), children)\n },\n})\n","import VChip from './VChip'\n\nexport { VChip }\nexport default VChip\n","// Utilities\nimport {\n HSVA,\n HSVAtoRGBA,\n HSVAtoHex,\n RGBA,\n Hex,\n RGBAtoHSVA,\n HexToHSVA,\n HSLA,\n HSVAtoHSLA,\n RGBAtoHex,\n HSLAtoHSVA,\n parseHex,\n Hexa,\n} from '../../../util/colorUtils'\n\nexport interface VColorPickerColor {\n alpha: number\n hex: Hex\n hexa: Hexa\n hsla: HSLA\n hsva: HSVA\n hue: number\n rgba: RGBA\n}\n\nexport function fromHSVA (hsva: HSVA): VColorPickerColor {\n hsva = { ...hsva }\n const hexa = HSVAtoHex(hsva)\n const hsla = HSVAtoHSLA(hsva)\n const rgba = HSVAtoRGBA(hsva)\n return {\n alpha: hsva.a,\n hex: hexa.substr(0, 7),\n hexa,\n hsla,\n hsva,\n hue: hsva.h,\n rgba,\n }\n}\n\nexport function fromHSLA (hsla: HSLA): VColorPickerColor {\n const hsva = HSLAtoHSVA(hsla)\n const hexa = HSVAtoHex(hsva)\n const rgba = HSVAtoRGBA(hsva)\n return {\n alpha: hsva.a,\n hex: hexa.substr(0, 7),\n hexa,\n hsla,\n hsva,\n hue: hsva.h,\n rgba,\n }\n}\n\nexport function fromRGBA (rgba: RGBA): VColorPickerColor {\n const hsva = RGBAtoHSVA(rgba)\n const hexa = RGBAtoHex(rgba)\n const hsla = HSVAtoHSLA(hsva)\n return {\n alpha: hsva.a,\n hex: hexa.substr(0, 7),\n hexa,\n hsla,\n hsva,\n hue: hsva.h,\n rgba,\n }\n}\n\nexport function fromHexa (hexa: Hexa): VColorPickerColor {\n const hsva = HexToHSVA(hexa)\n const hsla = HSVAtoHSLA(hsva)\n const rgba = HSVAtoRGBA(hsva)\n return {\n alpha: hsva.a,\n hex: hexa.substr(0, 7),\n hexa,\n hsla,\n hsva,\n hue: hsva.h,\n rgba,\n }\n}\n\nexport function fromHex (hex: Hex): VColorPickerColor {\n return fromHexa(parseHex(hex))\n}\n\nfunction has (obj: object, key: string[]) {\n return key.every(k => obj.hasOwnProperty(k))\n}\n\nexport function parseColor (color: any, oldColor: VColorPickerColor | null) {\n if (!color) return fromRGBA({ r: 255, g: 0, b: 0, a: 1 })\n\n if (typeof color === 'string') {\n if (color === 'transparent') return fromHexa('#00000000')\n\n const hex = parseHex(color)\n\n if (oldColor && hex === oldColor.hexa) return oldColor\n else return fromHexa(hex)\n }\n\n if (typeof color === 'object') {\n if (color.hasOwnProperty('alpha')) return color\n\n const a = color.hasOwnProperty('a') ? parseFloat(color.a) : 1\n\n if (has(color, ['r', 'g', 'b'])) {\n if (oldColor && color === oldColor.rgba) return oldColor\n else return fromRGBA({ ...color, a })\n } else if (has(color, ['h', 's', 'l'])) {\n if (oldColor && color === oldColor.hsla) return oldColor\n else return fromHSLA({ ...color, a })\n } else if (has(color, ['h', 's', 'v'])) {\n if (oldColor && color === oldColor.hsva) return oldColor\n else return fromHSVA({ ...color, a })\n }\n }\n\n return fromRGBA({ r: 255, g: 0, b: 0, a: 1 })\n}\n\nfunction stripAlpha (color: any, stripAlpha: boolean) {\n if (stripAlpha) {\n const { a, ...rest } = color\n\n return rest\n }\n\n return color\n}\n\nexport function extractColor (color: VColorPickerColor, input: any) {\n if (input == null) return color\n\n if (typeof input === 'string') {\n return input.length === 7 ? color.hex : color.hexa\n }\n\n if (typeof input === 'object') {\n const shouldStrip = typeof input.a === 'number' && input.a === 0 ? !!input.a : !input.a\n if (has(input, ['r', 'g', 'b'])) return stripAlpha(color.rgba, shouldStrip)\n else if (has(input, ['h', 's', 'l'])) return stripAlpha(color.hsla, shouldStrip)\n else if (has(input, ['h', 's', 'v'])) return stripAlpha(color.hsva, shouldStrip)\n }\n\n return color\n}\n\nexport function hasAlpha (color: any) {\n if (!color) return false\n\n if (typeof color === 'string') {\n return color.length > 7\n }\n\n if (typeof color === 'object') {\n return has(color, ['a']) || has(color, ['alpha'])\n }\n\n return false\n}\n","// Styles\nimport './VColorPickerPreview.sass'\n\n// Components\nimport VSlider from '../VSlider/VSlider'\n\n// Utilities\nimport { RGBtoCSS, RGBAtoCSS } from '../../util/colorUtils'\n\n// Types\nimport Vue, { VNode, VNodeData, PropType } from 'vue'\nimport { VColorPickerColor, fromHSVA } from './util'\n\nexport default Vue.extend({\n name: 'v-color-picker-preview',\n\n props: {\n color: Object as PropType,\n disabled: Boolean,\n hideAlpha: Boolean,\n },\n\n methods: {\n genAlpha (): VNode {\n return this.genTrack({\n staticClass: 'v-color-picker__alpha',\n props: {\n thumbColor: 'grey lighten-2',\n hideDetails: true,\n value: this.color.alpha,\n step: 0,\n min: 0,\n max: 1,\n },\n style: {\n backgroundImage: this.disabled\n ? undefined\n : `linear-gradient(to ${this.$vuetify.rtl ? 'left' : 'right'}, transparent, ${RGBtoCSS(this.color.rgba)})`,\n },\n on: {\n input: (val: number) => this.color.alpha !== val && this.$emit('update:color', fromHSVA({ ...this.color.hsva, a: val })),\n },\n })\n },\n genSliders (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-color-picker__sliders',\n }, [\n this.genHue(),\n !this.hideAlpha && this.genAlpha(),\n ])\n },\n genDot (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-color-picker__dot',\n }, [\n this.$createElement('div', {\n style: {\n background: RGBAtoCSS(this.color.rgba),\n },\n }),\n ])\n },\n genHue (): VNode {\n return this.genTrack({\n staticClass: 'v-color-picker__hue',\n props: {\n thumbColor: 'grey lighten-2',\n hideDetails: true,\n value: this.color.hue,\n step: 0,\n min: 0,\n max: 360,\n },\n on: {\n input: (val: number) => this.color.hue !== val && this.$emit('update:color', fromHSVA({ ...this.color.hsva, h: val })),\n },\n })\n },\n genTrack (options: VNodeData): VNode {\n return this.$createElement(VSlider, {\n class: 'v-color-picker__track',\n ...options,\n props: {\n disabled: this.disabled,\n ...options.props,\n },\n })\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-color-picker__preview',\n class: {\n 'v-color-picker__preview--hide-alpha': this.hideAlpha,\n },\n }, [\n this.genDot(),\n this.genSliders(),\n ])\n },\n})\n","// Styles\nimport './VColorPickerCanvas.sass'\n\n// Helpers\nimport { clamp, convertToUnit } from '../../util/helpers'\nimport { fromHSVA, VColorPickerColor, fromRGBA } from './util'\n\n// Types\nimport Vue, { VNode, PropType } from 'vue'\n\nexport default Vue.extend({\n name: 'v-color-picker-canvas',\n\n props: {\n color: {\n type: Object as PropType,\n default: () => fromRGBA({ r: 255, g: 0, b: 0, a: 1 }),\n },\n disabled: Boolean,\n dotSize: {\n type: [Number, String],\n default: 10,\n },\n height: {\n type: [Number, String],\n default: 150,\n },\n width: {\n type: [Number, String],\n default: 300,\n },\n },\n\n data () {\n return {\n boundingRect: {\n width: 0,\n height: 0,\n left: 0,\n top: 0,\n } as ClientRect,\n }\n },\n\n computed: {\n dot (): { x: number, y: number} {\n if (!this.color) return { x: 0, y: 0 }\n\n return {\n x: this.color.hsva.s * parseInt(this.width, 10),\n y: (1 - this.color.hsva.v) * parseInt(this.height, 10),\n }\n },\n },\n\n watch: {\n 'color.hue': 'updateCanvas',\n },\n\n mounted () {\n this.updateCanvas()\n },\n\n methods: {\n emitColor (x: number, y: number) {\n const { left, top, width, height } = this.boundingRect\n\n this.$emit('update:color', fromHSVA({\n h: this.color.hue,\n s: clamp(x - left, 0, width) / width,\n v: 1 - clamp(y - top, 0, height) / height,\n a: this.color.alpha,\n }))\n },\n updateCanvas () {\n if (!this.color) return\n\n const canvas = this.$refs.canvas as HTMLCanvasElement\n const ctx = canvas.getContext('2d')\n\n if (!ctx) return\n\n const saturationGradient = ctx.createLinearGradient(0, 0, canvas.width, 0)\n saturationGradient.addColorStop(0, 'hsla(0, 0%, 100%, 1)') // white\n saturationGradient.addColorStop(1, `hsla(${this.color.hue}, 100%, 50%, 1)`)\n ctx.fillStyle = saturationGradient\n ctx.fillRect(0, 0, canvas.width, canvas.height)\n\n const valueGradient = ctx.createLinearGradient(0, 0, 0, canvas.height)\n valueGradient.addColorStop(0, 'hsla(0, 0%, 100%, 0)') // transparent\n valueGradient.addColorStop(1, 'hsla(0, 0%, 0%, 1)') // black\n ctx.fillStyle = valueGradient\n ctx.fillRect(0, 0, canvas.width, canvas.height)\n },\n handleClick (e: MouseEvent) {\n if (this.disabled) return\n\n this.boundingRect = this.$el.getBoundingClientRect()\n this.emitColor(e.clientX, e.clientY)\n },\n handleMouseDown (e: MouseEvent) {\n // To prevent selection while moving cursor\n e.preventDefault()\n\n if (this.disabled) return\n\n this.boundingRect = this.$el.getBoundingClientRect()\n\n window.addEventListener('mousemove', this.handleMouseMove)\n window.addEventListener('mouseup', this.handleMouseUp)\n },\n handleMouseMove (e: MouseEvent) {\n if (this.disabled) return\n\n this.emitColor(e.clientX, e.clientY)\n },\n handleMouseUp () {\n window.removeEventListener('mousemove', this.handleMouseMove)\n window.removeEventListener('mouseup', this.handleMouseUp)\n },\n genCanvas (): VNode {\n return this.$createElement('canvas', {\n ref: 'canvas',\n attrs: {\n width: this.width,\n height: this.height,\n },\n })\n },\n genDot (): VNode {\n const radius = parseInt(this.dotSize, 10) / 2\n const x = convertToUnit(this.dot.x - radius)\n const y = convertToUnit(this.dot.y - radius)\n\n return this.$createElement('div', {\n staticClass: 'v-color-picker__canvas-dot',\n class: {\n 'v-color-picker__canvas-dot--disabled': this.disabled,\n },\n style: {\n width: convertToUnit(this.dotSize),\n height: convertToUnit(this.dotSize),\n transform: `translate(${x}, ${y})`,\n },\n })\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-color-picker__canvas',\n style: {\n width: convertToUnit(this.width),\n height: convertToUnit(this.height),\n },\n on: {\n click: this.handleClick,\n mousedown: this.handleMouseDown,\n },\n }, [\n this.genCanvas(),\n this.genDot(),\n ])\n },\n})\n","// Styles\nimport './VColorPickerEdit.sass'\n\n// Components\nimport VBtn from '../VBtn'\nimport VIcon from '../VIcon'\n\n// Helpers\nimport { parseHex } from '../../util/colorUtils'\n\n// Types\nimport Vue, { VNode, PropType } from 'vue'\nimport { VColorPickerColor, fromRGBA, fromHexa, fromHSLA } from './util'\n\ntype Input = [string, number, string]\n\nexport type Mode = {\n inputs?: Input[]\n from: Function\n}\n\nexport const modes = {\n rgba: {\n inputs: [\n ['r', 255, 'int'],\n ['g', 255, 'int'],\n ['b', 255, 'int'],\n ['a', 1, 'float'],\n ],\n from: fromRGBA,\n },\n hsla: {\n inputs: [\n ['h', 360, 'int'],\n ['s', 1, 'float'],\n ['l', 1, 'float'],\n ['a', 1, 'float'],\n ],\n from: fromHSLA,\n },\n hexa: {\n from: fromHexa,\n },\n} as { [key: string]: Mode }\n\nexport default Vue.extend({\n name: 'v-color-picker-edit',\n\n props: {\n color: Object as PropType,\n disabled: Boolean,\n hideAlpha: Boolean,\n hideModeSwitch: Boolean,\n mode: {\n type: String,\n default: 'rgba',\n validator: (v: string) => Object.keys(modes).includes(v),\n },\n },\n\n data () {\n return {\n modes,\n internalMode: this.mode,\n }\n },\n\n computed: {\n currentMode (): Mode {\n return this.modes[this.internalMode]\n },\n },\n\n watch: {\n mode (mode) {\n this.internalMode = mode\n },\n },\n\n created () {\n this.internalMode = this.mode\n },\n\n methods: {\n getValue (v: any, type: string) {\n if (type === 'float') return Math.round(v * 100) / 100\n else if (type === 'int') return Math.round(v)\n else return 0\n },\n parseValue (v: string, type: string) {\n if (type === 'float') return parseFloat(v)\n else if (type === 'int') return parseInt(v, 10) || 0\n else return 0\n },\n changeMode () {\n const modes = Object.keys(this.modes)\n const index = modes.indexOf(this.internalMode)\n const newMode = modes[(index + 1) % modes.length]\n this.internalMode = newMode\n this.$emit('update:mode', newMode)\n },\n genInput (target: string, attrs: any, value: any, on: any): VNode {\n return this.$createElement('div', {\n staticClass: 'v-color-picker__input',\n }, [\n this.$createElement('input', {\n key: target,\n attrs,\n domProps: {\n value,\n },\n on,\n }),\n this.$createElement('span', target.toUpperCase()),\n ])\n },\n genInputs (): VNode[] | VNode {\n if (this.internalMode === 'hexa') {\n const hex = this.color.hexa\n const value = this.hideAlpha && hex.endsWith('FF') ? hex.substr(0, 7) : hex\n return this.genInput(\n 'hex',\n {\n maxlength: this.hideAlpha ? 7 : 9,\n disabled: this.disabled,\n },\n value,\n {\n change: (e: Event) => {\n const el = e.target as HTMLInputElement\n this.$emit('update:color', this.currentMode.from(parseHex(el.value)))\n },\n }\n )\n } else {\n const inputs = this.hideAlpha ? this.currentMode.inputs!.slice(0, -1) : this.currentMode.inputs!\n return inputs.map(([target, max, type]) => {\n const value = this.color[this.internalMode as keyof VColorPickerColor] as any\n return this.genInput(\n target,\n {\n type: 'number',\n min: 0,\n max,\n step: type === 'float' ? '0.01' : type === 'int' ? '1' : undefined,\n disabled: this.disabled,\n },\n this.getValue(value[target], type),\n {\n input: (e: Event) => {\n const el = e.target as HTMLInputElement\n const newVal = this.parseValue(el.value || '0', type)\n\n this.$emit('update:color', this.currentMode.from(\n Object.assign({}, value, { [target]: newVal }),\n this.color.alpha\n ))\n },\n }\n )\n })\n }\n },\n genSwitch (): VNode {\n return this.$createElement(VBtn, {\n props: {\n small: true,\n icon: true,\n disabled: this.disabled,\n },\n on: {\n click: this.changeMode,\n },\n }, [\n this.$createElement(VIcon, '$unfold'),\n ])\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-color-picker__edit',\n }, [\n this.genInputs(),\n !this.hideModeSwitch && this.genSwitch(),\n ])\n },\n})\n","// Styles\nimport './VColorPickerSwatches.sass'\n\n// Components\nimport VIcon from '../VIcon'\n\n// Helpers\nimport colors from '../../util/colors'\nimport { VColorPickerColor, fromHex, parseColor } from './util'\nimport { convertToUnit, deepEqual } from '../../util/helpers'\nimport mixins from '../../util/mixins'\nimport Themeable from '../../mixins/themeable'\n\n// Types\nimport { VNode, PropType } from 'vue'\nimport { contrastRatio } from '../../util/colorUtils'\n\nfunction parseDefaultColors (colors: Record>) {\n return Object.keys(colors).map(key => {\n const color = colors[key]\n return color.base ? [\n color.base,\n color.darken4,\n color.darken3,\n color.darken2,\n color.darken1,\n color.lighten1,\n color.lighten2,\n color.lighten3,\n color.lighten4,\n color.lighten5,\n ] : [\n color.black,\n color.white,\n color.transparent,\n ]\n })\n}\n\nconst white = fromHex('#FFFFFF').rgba\nconst black = fromHex('#000000').rgba\n\nexport default mixins(Themeable).extend({\n name: 'v-color-picker-swatches',\n\n props: {\n swatches: {\n type: Array as PropType,\n default: () => parseDefaultColors(colors),\n },\n disabled: Boolean,\n color: Object as PropType,\n maxWidth: [Number, String],\n maxHeight: [Number, String],\n },\n\n methods: {\n genColor (color: string) {\n const content = this.$createElement('div', {\n style: {\n background: color,\n },\n }, [\n deepEqual(this.color, parseColor(color, null)) && this.$createElement(VIcon, {\n props: {\n small: true,\n dark: contrastRatio(this.color.rgba, white) > 2 && this.color.alpha > 0.5,\n light: contrastRatio(this.color.rgba, black) > 2 && this.color.alpha > 0.5,\n },\n }, '$success'),\n ])\n\n return this.$createElement('div', {\n staticClass: 'v-color-picker__color',\n on: {\n // TODO: Less hacky way of catching transparent\n click: () => this.disabled || this.$emit('update:color', fromHex(color === 'transparent' ? '#00000000' : color)),\n },\n }, [content])\n },\n genSwatches () {\n return this.swatches.map(swatch => {\n const colors = swatch.map(this.genColor)\n\n return this.$createElement('div', {\n staticClass: 'v-color-picker__swatch',\n }, colors)\n })\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-color-picker__swatches',\n style: {\n maxWidth: convertToUnit(this.maxWidth),\n maxHeight: convertToUnit(this.maxHeight),\n },\n }, [\n this.$createElement('div', this.genSwatches()),\n ])\n },\n})\n","// Styles\nimport './VColorPicker.sass'\n\n// Components\nimport VSheet from '../VSheet/VSheet'\nimport VColorPickerPreview from './VColorPickerPreview'\nimport VColorPickerCanvas from './VColorPickerCanvas'\nimport VColorPickerEdit, { Mode, modes } from './VColorPickerEdit'\nimport VColorPickerSwatches from './VColorPickerSwatches'\n\n// Helpers\nimport { VColorPickerColor, parseColor, fromRGBA, extractColor, hasAlpha } from './util'\nimport mixins from '../../util/mixins'\nimport { deepEqual } from '../../util/helpers'\n\n// Mixins\nimport Elevatable from '../../mixins/elevatable'\nimport Themeable from '../../mixins/themeable'\n\n// Types\nimport { VNode, PropType } from 'vue'\n\nexport default mixins(Elevatable, Themeable).extend({\n name: 'v-color-picker',\n\n props: {\n canvasHeight: {\n type: [String, Number],\n default: 150,\n },\n disabled: Boolean,\n dotSize: {\n type: [Number, String],\n default: 10,\n },\n flat: Boolean,\n hideCanvas: Boolean,\n hideSliders: Boolean,\n hideInputs: Boolean,\n hideModeSwitch: Boolean,\n mode: {\n type: String,\n default: 'rgba',\n validator: (v: string) => Object.keys(modes).includes(v),\n },\n showSwatches: Boolean,\n swatches: Array as PropType,\n swatchesMaxHeight: {\n type: [Number, String],\n default: 150,\n },\n value: {\n type: [Object, String],\n },\n width: {\n type: [Number, String],\n default: 300,\n },\n },\n\n data: () => ({\n internalValue: fromRGBA({ r: 255, g: 0, b: 0, a: 1 }),\n }),\n\n computed: {\n hideAlpha (): boolean {\n if (!this.value) return false\n\n return !hasAlpha(this.value)\n },\n },\n\n watch: {\n value: {\n handler (color: any) {\n this.updateColor(parseColor(color, this.internalValue))\n },\n immediate: true,\n },\n },\n\n methods: {\n updateColor (color: VColorPickerColor) {\n this.internalValue = color\n const value = extractColor(this.internalValue, this.value)\n\n if (!deepEqual(value, this.value)) {\n this.$emit('input', value)\n this.$emit('update:color', this.internalValue)\n }\n },\n genCanvas (): VNode {\n return this.$createElement(VColorPickerCanvas, {\n props: {\n color: this.internalValue,\n disabled: this.disabled,\n dotSize: this.dotSize,\n width: this.width,\n height: this.canvasHeight,\n },\n on: {\n 'update:color': this.updateColor,\n },\n })\n },\n genControls (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-color-picker__controls',\n }, [\n !this.hideSliders && this.genPreview(),\n !this.hideInputs && this.genEdit(),\n ])\n },\n genEdit (): VNode {\n return this.$createElement(VColorPickerEdit, {\n props: {\n color: this.internalValue,\n disabled: this.disabled,\n hideAlpha: this.hideAlpha,\n hideModeSwitch: this.hideModeSwitch,\n mode: this.mode,\n },\n on: {\n 'update:color': this.updateColor,\n 'update:mode': (v: Mode) => this.$emit('update:mode', v),\n },\n })\n },\n genPreview (): VNode {\n return this.$createElement(VColorPickerPreview, {\n props: {\n color: this.internalValue,\n disabled: this.disabled,\n hideAlpha: this.hideAlpha,\n },\n on: {\n 'update:color': this.updateColor,\n },\n })\n },\n genSwatches (): VNode {\n return this.$createElement(VColorPickerSwatches, {\n props: {\n dark: this.dark,\n light: this.light,\n disabled: this.disabled,\n swatches: this.swatches,\n color: this.internalValue,\n maxHeight: this.swatchesMaxHeight,\n },\n on: {\n 'update:color': this.updateColor,\n },\n })\n },\n },\n\n render (h): VNode {\n return h(VSheet, {\n staticClass: 'v-color-picker',\n class: {\n 'v-color-picker--flat': this.flat,\n ...this.themeClasses,\n ...this.elevationClasses,\n },\n props: {\n maxWidth: this.width,\n },\n }, [\n !this.hideCanvas && this.genCanvas(),\n (!this.hideSliders || !this.hideInputs) && this.genControls(),\n this.showSwatches && this.genSwatches(),\n ])\n },\n})\n","// Styles\nimport '../VAutocomplete/VAutocomplete.sass'\n\n// Extensions\nimport VSelect from '../VSelect/VSelect'\nimport VAutocomplete from '../VAutocomplete/VAutocomplete'\n\n// Utils\nimport { keyCodes } from '../../util/helpers'\n\n// Types\nimport { PropValidator } from 'vue/types/options'\n\n/* @vue/component */\nexport default VAutocomplete.extend({\n name: 'v-combobox',\n\n props: {\n delimiters: {\n type: Array,\n default: () => ([]),\n } as PropValidator,\n returnObject: {\n type: Boolean,\n default: true,\n },\n },\n\n data: () => ({\n editingIndex: -1,\n }),\n\n computed: {\n computedCounterValue (): number {\n return this.multiple\n ? this.selectedItems.length\n : (this.internalSearch || '').toString().length\n },\n hasSlot (): boolean {\n return VSelect.options.computed.hasSlot.call(this) || this.multiple\n },\n isAnyValueAllowed (): boolean {\n return true\n },\n menuCanShow (): boolean {\n if (!this.isFocused) return false\n\n return this.hasDisplayedItems ||\n (!!this.$slots['no-data'] && !this.hideNoData)\n },\n searchIsDirty (): boolean {\n return this.internalSearch != null\n },\n },\n\n methods: {\n onInternalSearchChanged (val: any) {\n if (\n val &&\n this.multiple &&\n this.delimiters.length\n ) {\n const delimiter = this.delimiters.find(d => val.endsWith(d))\n if (delimiter != null) {\n this.internalSearch = val.slice(0, val.length - delimiter.length)\n this.updateTags()\n }\n }\n\n this.updateMenuDimensions()\n },\n genInput () {\n const input = VAutocomplete.options.methods.genInput.call(this)\n\n delete input.data!.attrs!.name\n input.data!.on!.paste = this.onPaste\n\n return input\n },\n genChipSelection (item: object, index: number) {\n const chip = VSelect.options.methods.genChipSelection.call(this, item, index)\n\n // Allow user to update an existing value\n if (this.multiple) {\n chip.componentOptions!.listeners! = {\n ...chip.componentOptions!.listeners!,\n dblclick: () => {\n this.editingIndex = index\n this.internalSearch = this.getText(item)\n this.selectedIndex = -1\n },\n }\n }\n\n return chip\n },\n onChipInput (item: object) {\n VSelect.options.methods.onChipInput.call(this, item)\n\n this.editingIndex = -1\n },\n // Requires a manual definition\n // to overwrite removal in v-autocomplete\n onEnterDown (e: Event) {\n e.preventDefault()\n // If has menu index, let v-select-list handle\n if (this.getMenuIndex() > -1) return\n\n this.$nextTick(this.updateSelf)\n },\n onKeyDown (e: KeyboardEvent) {\n const keyCode = e.keyCode\n\n if (\n e.ctrlKey ||\n ![keyCodes.home, keyCodes.end].includes(keyCode)\n ) {\n VSelect.options.methods.onKeyDown.call(this, e)\n }\n\n // If user is at selection index of 0\n // create a new tag\n if (this.multiple &&\n keyCode === keyCodes.left &&\n this.$refs.input.selectionStart === 0\n ) {\n this.updateSelf()\n } else if (keyCode === keyCodes.enter) {\n this.onEnterDown(e)\n }\n\n // The ordering is important here\n // allows new value to be updated\n // and then moves the index to the\n // proper location\n this.changeSelectedIndex(keyCode)\n },\n onTabDown (e: KeyboardEvent) {\n // When adding tags, if searching and\n // there is not a filtered options,\n // add the value to the tags list\n if (this.multiple &&\n this.internalSearch &&\n this.getMenuIndex() === -1\n ) {\n e.preventDefault()\n e.stopPropagation()\n\n return this.updateTags()\n }\n\n VAutocomplete.options.methods.onTabDown.call(this, e)\n },\n selectItem (item: object) {\n // Currently only supports items:\n if (this.editingIndex > -1) {\n this.updateEditing()\n } else {\n VAutocomplete.options.methods.selectItem.call(this, item)\n\n // if selected item contains search value,\n // remove the search string\n if (\n this.internalSearch &&\n this.multiple &&\n this.getText(item).toLocaleLowerCase().includes(this.internalSearch.toLocaleLowerCase())\n ) {\n this.internalSearch = null\n }\n }\n },\n setSelectedItems () {\n if (this.internalValue == null ||\n this.internalValue === ''\n ) {\n this.selectedItems = []\n } else {\n this.selectedItems = this.multiple ? this.internalValue : [this.internalValue]\n }\n },\n setValue (value?: any) {\n VSelect.options.methods.setValue.call(this, value === undefined ? this.internalSearch : value)\n },\n updateEditing () {\n const value = this.internalValue.slice()\n const index = this.selectedItems.findIndex(item =>\n this.getText(item) === this.internalSearch)\n\n // If user enters a duplicate text on chip edit,\n // don't add it, move it to the end of the list\n if (index > -1) {\n const item = typeof value[index] === 'object'\n ? Object.assign({}, value[index])\n : value[index]\n\n value.splice(index, 1)\n value.push(item)\n } else {\n value[this.editingIndex] = this.internalSearch\n }\n\n this.setValue(value)\n this.editingIndex = -1\n this.internalSearch = null\n },\n updateCombobox () {\n // If search is not dirty, do nothing\n if (!this.searchIsDirty) return\n\n // The internal search is not matching\n // the internal value, update the input\n if (this.internalSearch !== this.getText(this.internalValue)) this.setValue()\n\n // Reset search if using slot to avoid a double input\n const isUsingSlot = Boolean(this.$scopedSlots.selection) || this.hasChips\n if (isUsingSlot) this.internalSearch = null\n },\n updateSelf () {\n this.multiple ? this.updateTags() : this.updateCombobox()\n },\n updateTags () {\n const menuIndex = this.getMenuIndex()\n\n // If the user is not searching\n // and no menu item is selected\n // or if the search is empty\n // do nothing\n if ((menuIndex < 0 && !this.searchIsDirty) ||\n !this.internalSearch) return\n\n if (this.editingIndex > -1) {\n return this.updateEditing()\n }\n\n const index = this.selectedItems.findIndex(item =>\n this.internalSearch === this.getText(item))\n\n // If the duplicate item is an object,\n // copy it, so that it can be added again later\n const itemToSelect = index > -1 && typeof this.selectedItems[index] === 'object'\n ? Object.assign({}, this.selectedItems[index])\n : this.internalSearch\n\n // If it already exists, do nothing\n // this might need to change to bring\n // the duplicated item to the last entered\n if (index > -1) {\n const internalValue = this.internalValue.slice()\n internalValue.splice(index, 1)\n\n this.setValue(internalValue)\n }\n\n // If menu index is greater than 1\n // the selection is handled elsewhere\n // TODO: find out where\n if (menuIndex > -1) return (this.internalSearch = null)\n\n this.selectItem(itemToSelect)\n\n this.internalSearch = null\n },\n onPaste (event: ClipboardEvent) {\n if (!this.multiple || this.searchIsDirty) return\n\n const pastedItemText = event.clipboardData?.getData('text/vnd.vuetify.autocomplete.item+plain')\n if (pastedItemText && this.findExistingIndex(pastedItemText as any) === -1) {\n event.preventDefault()\n VSelect.options.methods.selectItem.call(this, pastedItemText as any)\n }\n },\n clearableCallback () {\n this.editingIndex = -1\n\n VAutocomplete.options.methods.clearableCallback.call(this)\n },\n },\n})\n","// Styles\nimport './VCounter.sass'\n\n// Mixins\nimport Themeable, { functionalThemeClasses } from '../../mixins/themeable'\n\n// Types\nimport { VNode } from 'vue'\nimport mixins from '../../util/mixins'\n\n/* @vue/component */\nexport default mixins(Themeable).extend({\n name: 'v-counter',\n\n functional: true,\n\n props: {\n value: {\n type: [Number, String],\n default: '',\n },\n max: [Number, String],\n },\n\n render (h, ctx): VNode {\n const { props } = ctx\n const max = parseInt(props.max, 10)\n const value = parseInt(props.value, 10)\n const content = max ? `${value} / ${max}` : String(props.value)\n const isGreater = max && (value > max)\n\n return h('div', {\n staticClass: 'v-counter',\n class: {\n 'error--text': isGreater,\n ...functionalThemeClasses(ctx),\n },\n }, content)\n },\n})\n","import VCounter from './VCounter'\n\nexport { VCounter }\nexport default VCounter\n","import './VDatePickerTitle.sass'\n\n// Components\nimport VIcon from '../VIcon'\n\n// Mixins\nimport PickerButton from '../../mixins/picker-button'\n\n// Utils\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\nexport default mixins(\n PickerButton\n/* @vue/component */\n).extend({\n name: 'v-date-picker-title',\n\n props: {\n date: {\n type: String,\n default: '',\n },\n disabled: Boolean,\n readonly: Boolean,\n selectingYear: Boolean,\n value: {\n type: String,\n },\n year: {\n type: [Number, String],\n default: '',\n },\n yearIcon: {\n type: String,\n },\n },\n\n data: () => ({\n isReversing: false,\n }),\n\n computed: {\n computedTransition (): string {\n return this.isReversing ? 'picker-reverse-transition' : 'picker-transition'\n },\n },\n\n watch: {\n value (val: string, prev: string) {\n this.isReversing = val < prev\n },\n },\n\n methods: {\n genYearIcon (): VNode {\n return this.$createElement(VIcon, {\n props: {\n dark: true,\n },\n }, this.yearIcon)\n },\n getYearBtn (): VNode {\n return this.genPickerButton('selectingYear', true, [\n String(this.year),\n this.yearIcon ? this.genYearIcon() : null,\n ], false, 'v-date-picker-title__year')\n },\n genTitleText (): VNode {\n return this.$createElement('transition', {\n props: {\n name: this.computedTransition,\n },\n }, [\n this.$createElement('div', {\n domProps: { innerHTML: this.date || ' ' },\n key: this.value,\n }),\n ])\n },\n genTitleDate (): VNode {\n return this.genPickerButton('selectingYear', false, [this.genTitleText()], false, 'v-date-picker-title__date')\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-date-picker-title',\n class: {\n 'v-date-picker-title--disabled': this.disabled,\n },\n }, [\n this.getYearBtn(),\n this.genTitleDate(),\n ])\n },\n})\n","import pad from './pad'\nimport { DatePickerFormatter } from 'vuetify/types'\n\ninterface SubstrOptions {\n start?: number\n length: number\n}\n\nfunction createNativeLocaleFormatter (\n local: string | undefined,\n options: Intl.DateTimeFormatOptions\n): DatePickerFormatter | undefined\n\nfunction createNativeLocaleFormatter (\n local: string | undefined,\n options: Intl.DateTimeFormatOptions,\n substrOptions: SubstrOptions\n): DatePickerFormatter\n\nfunction createNativeLocaleFormatter (\n locale: string | undefined,\n options: Intl.DateTimeFormatOptions,\n substrOptions: SubstrOptions = { start: 0, length: 0 }\n): DatePickerFormatter | undefined {\n const makeIsoString = (dateString: string) => {\n const [year, month, date] = dateString.trim().split(' ')[0].split('-')\n return [pad(year, 4), pad(month || 1), pad(date || 1)].join('-')\n }\n\n try {\n const intlFormatter = new Intl.DateTimeFormat(locale || undefined, options)\n return (dateString: string) => intlFormatter.format(new Date(`${makeIsoString(dateString)}T00:00:00+00:00`))\n } catch (e) {\n return (substrOptions.start || substrOptions.length)\n ? (dateString: string) => makeIsoString(dateString).substr(substrOptions.start || 0, substrOptions.length)\n : undefined\n }\n}\n\nexport default createNativeLocaleFormatter\n","import pad from './pad'\n\n/**\n * @param {String} value YYYY-MM format\n * @param {Number} sign -1 or +1\n */\nexport default (value: string, sign: number) => {\n const [year, month] = value.split('-').map(Number)\n\n if (month + sign === 0) {\n return `${year - 1}-12`\n } else if (month + sign === 13) {\n return `${year + 1}-01`\n } else {\n return `${year}-${pad(month + sign)}`\n }\n}\n","import './VDatePickerHeader.sass'\n\n// Components\nimport VBtn from '../VBtn'\nimport VIcon from '../VIcon'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Localable from '../../mixins/localable'\nimport Themeable from '../../mixins/themeable'\n\n// Utils\nimport { createNativeLocaleFormatter, monthChange } from './util'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode, PropType } from 'vue'\nimport { DatePickerFormatter } from 'vuetify/types'\n\nexport default mixins(\n Colorable,\n Localable,\n Themeable\n/* @vue/component */\n).extend({\n name: 'v-date-picker-header',\n\n props: {\n disabled: Boolean,\n format: Function as PropType,\n min: String,\n max: String,\n nextAriaLabel: String,\n nextIcon: {\n type: String,\n default: '$next',\n },\n prevAriaLabel: String,\n prevIcon: {\n type: String,\n default: '$prev',\n },\n readonly: Boolean,\n value: {\n type: [Number, String],\n required: true,\n },\n },\n\n data () {\n return {\n isReversing: false,\n }\n },\n\n computed: {\n formatter (): DatePickerFormatter {\n if (this.format) {\n return this.format\n } else if (String(this.value).split('-')[1]) {\n return createNativeLocaleFormatter(this.currentLocale, { month: 'long', year: 'numeric', timeZone: 'UTC' }, { length: 7 })\n } else {\n return createNativeLocaleFormatter(this.currentLocale, { year: 'numeric', timeZone: 'UTC' }, { length: 4 })\n }\n },\n },\n\n watch: {\n value (newVal, oldVal) {\n this.isReversing = newVal < oldVal\n },\n },\n\n methods: {\n genBtn (change: number) {\n const ariaLabelId = change > 0 ? this.nextAriaLabel : this.prevAriaLabel\n const ariaLabel = ariaLabelId ? this.$vuetify.lang.t(ariaLabelId) : undefined\n const disabled = this.disabled ||\n (change < 0 && this.min && this.calculateChange(change) < this.min) ||\n (change > 0 && this.max && this.calculateChange(change) > this.max)\n\n return this.$createElement(VBtn, {\n attrs: { 'aria-label': ariaLabel },\n props: {\n dark: this.dark,\n disabled,\n icon: true,\n light: this.light,\n },\n on: {\n click: (e: Event) => {\n e.stopPropagation()\n this.$emit('input', this.calculateChange(change))\n },\n },\n }, [\n this.$createElement(VIcon, ((change < 0) === !this.$vuetify.rtl) ? this.prevIcon : this.nextIcon),\n ])\n },\n calculateChange (sign: number) {\n const [year, month] = String(this.value).split('-').map(Number)\n\n if (month == null) {\n return `${year + sign}`\n } else {\n return monthChange(String(this.value), sign)\n }\n },\n genHeader () {\n const color = !this.disabled && (this.color || 'accent')\n const header = this.$createElement('div', this.setTextColor(color, {\n key: String(this.value),\n }), [this.$createElement('button', {\n attrs: {\n type: 'button',\n },\n on: {\n click: () => this.$emit('toggle'),\n },\n }, [this.$slots.default || this.formatter(String(this.value))])])\n\n const transition = this.$createElement('transition', {\n props: {\n name: (this.isReversing === !this.$vuetify.rtl) ? 'tab-reverse-transition' : 'tab-transition',\n },\n }, [header])\n\n return this.$createElement('div', {\n staticClass: 'v-date-picker-header__value',\n class: {\n 'v-date-picker-header__value--disabled': this.disabled,\n },\n }, [transition])\n },\n },\n\n render (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-date-picker-header',\n class: {\n 'v-date-picker-header--disabled': this.disabled,\n ...this.themeClasses,\n },\n }, [\n this.genBtn(-1),\n this.genHeader(),\n this.genBtn(+1),\n ])\n },\n})\n","import Vue from 'vue'\n\nexport function createItemTypeNativeListeners (instance: Vue, itemTypeSuffix: string, value: any) {\n return Object.keys(instance.$listeners).reduce((on, eventName) => {\n if (eventName.endsWith(itemTypeSuffix)) {\n on[eventName.slice(0, -itemTypeSuffix.length)] = (event: Event) => instance.$emit(eventName, value, event)\n }\n\n return on\n }, {} as typeof instance.$listeners)\n}\n\nexport function createItemTypeListeners (instance: Vue, itemTypeSuffix: string) {\n return Object.keys(instance.$listeners).reduce((on, eventName) => {\n if (eventName.endsWith(itemTypeSuffix)) {\n on[eventName] = instance.$listeners[eventName]\n }\n\n return on\n }, {} as typeof instance.$listeners)\n}\n","// Adds leading zero to month/day if necessary, returns 'YYYY' if type = 'year',\n// 'YYYY-MM' if 'month' and 'YYYY-MM-DD' if 'date'\nimport pad from './pad'\n\nexport default (dateString: string, type: 'date' | 'month' | 'year'): string => {\n const [year, month = 1, date = 1] = dateString.split('-')\n return `${year}-${pad(month)}-${pad(date)}`.substr(0, { date: 10, month: 7, year: 4 }[type])\n}\n","import { DatePickerAllowedDatesFunction } from 'vuetify/types'\n\nexport default function isDateAllowed (date: string, min: string, max: string, allowedFn: DatePickerAllowedDatesFunction | undefined) {\n return (!allowedFn || allowedFn(date)) &&\n (!min || date >= min.substr(0, 10)) &&\n (!max || date <= max)\n}\n","import '../VDatePickerTable.sass'\n\n// Directives\nimport Touch from '../../../directives/touch'\n\n// Mixins\nimport Colorable from '../../../mixins/colorable'\nimport Localable from '../../../mixins/localable'\nimport Themeable from '../../../mixins/themeable'\n\n// Utils\nimport { createItemTypeNativeListeners, sanitizeDateString } from '../util'\nimport isDateAllowed from '../util/isDateAllowed'\nimport { mergeListeners } from '../../../util/mergeData'\nimport mixins from '../../../util/mixins'\nimport { throttle } from '../../../util/helpers'\n\n// Types\nimport {\n PropType,\n VNodeChildren,\n} from 'vue'\nimport { PropValidator } from 'vue/types/options'\nimport {\n DatePickerAllowedDatesFunction,\n DatePickerEventColors,\n DatePickerEventColorValue,\n DatePickerEvents,\n DatePickerFormatter,\n TouchWrapper,\n} from 'vuetify/types'\n\ntype CalculateTableDateFunction = (v: number) => string\n\nexport default mixins(\n Colorable,\n Localable,\n Themeable\n/* @vue/component */\n).extend({\n directives: { Touch },\n\n props: {\n allowedDates: Function as PropType,\n current: String,\n disabled: Boolean,\n format: Function as PropType,\n events: {\n type: [Array, Function, Object],\n default: () => null,\n } as PropValidator,\n eventColor: {\n type: [Array, Function, Object, String],\n default: () => 'warning',\n } as PropValidator,\n min: String,\n max: String,\n range: Boolean,\n readonly: Boolean,\n scrollable: Boolean,\n tableDate: {\n type: String,\n required: true,\n },\n value: [String, Array] as PropType,\n },\n\n data: () => ({\n isReversing: false,\n wheelThrottle: null as any,\n }),\n\n computed: {\n computedTransition (): string {\n return (this.isReversing === !this.$vuetify.rtl) ? 'tab-reverse-transition' : 'tab-transition'\n },\n displayedMonth (): number {\n return Number(this.tableDate.split('-')[1]) - 1\n },\n displayedYear (): number {\n return Number(this.tableDate.split('-')[0])\n },\n },\n\n watch: {\n tableDate (newVal: string, oldVal: string) {\n this.isReversing = newVal < oldVal\n },\n },\n\n mounted () {\n this.wheelThrottle = throttle(this.wheel, 250)\n },\n\n methods: {\n genButtonClasses (\n isAllowed: boolean,\n isFloating: boolean,\n isSelected: boolean,\n isCurrent: boolean,\n isFirst: boolean,\n isLast: boolean,\n ) {\n return {\n 'v-size--default': !isFloating,\n 'v-date-picker-table__current': isCurrent,\n 'v-btn--active': isSelected,\n 'v-btn--flat': !isAllowed || this.disabled,\n 'v-btn--text': isSelected === isCurrent,\n 'v-btn--rounded': isFloating,\n 'v-btn--disabled': !isAllowed || this.disabled,\n 'v-btn--outlined': isCurrent && !isSelected,\n 'v-date-picker--first-in-range': isFirst,\n 'v-date-picker--last-in-range': isLast,\n ...this.themeClasses,\n }\n },\n genButtonEvents (value: string, isAllowed: boolean, mouseEventType: string) {\n if (this.disabled) return undefined\n\n return mergeListeners({\n click: () => {\n if (isAllowed && !this.readonly) this.$emit('input', value)\n },\n }, createItemTypeNativeListeners(this, `:${mouseEventType}`, value))\n },\n genButton (value: string, isFloating: boolean, mouseEventType: string, formatter: DatePickerFormatter, isOtherMonth = false) {\n const isAllowed = isDateAllowed(value, this.min, this.max, this.allowedDates)\n const isSelected = this.isSelected(value) && isAllowed\n const isCurrent = value === this.current\n const setColor = isSelected ? this.setBackgroundColor : this.setTextColor\n const color = (isSelected || isCurrent) && (this.color || 'accent')\n let isFirst = false\n let isLast = false\n if (this.range && !!this.value && Array.isArray(this.value)) {\n isFirst = value === this.value[0]\n isLast = value === this.value[this.value.length - 1]\n }\n\n return this.$createElement('button', setColor(color, {\n staticClass: 'v-btn',\n class: this.genButtonClasses(\n isAllowed && !isOtherMonth,\n isFloating,\n isSelected,\n isCurrent,\n isFirst,\n isLast,\n ),\n attrs: {\n type: 'button',\n },\n domProps: {\n disabled: this.disabled || !isAllowed || isOtherMonth,\n },\n on: this.genButtonEvents(value, isAllowed, mouseEventType),\n }), [\n this.$createElement('div', {\n staticClass: 'v-btn__content',\n }, [formatter(value)]),\n this.genEvents(value),\n ])\n },\n getEventColors (date: string) {\n const arrayize = (v: string | string[]) => Array.isArray(v) ? v : [v]\n let eventData: boolean | DatePickerEventColorValue\n let eventColors: string[] = []\n\n if (Array.isArray(this.events)) {\n eventData = this.events.includes(date)\n } else if (this.events instanceof Function) {\n eventData = this.events(date) || false\n } else if (this.events) {\n eventData = this.events[date] || false\n } else {\n eventData = false\n }\n\n if (!eventData) {\n return []\n } else if (eventData !== true) {\n eventColors = arrayize(eventData)\n } else if (typeof this.eventColor === 'string') {\n eventColors = [this.eventColor]\n } else if (typeof this.eventColor === 'function') {\n eventColors = arrayize(this.eventColor(date))\n } else if (Array.isArray(this.eventColor)) {\n eventColors = this.eventColor\n } else {\n eventColors = arrayize(this.eventColor[date])\n }\n\n return eventColors.filter(v => v)\n },\n genEvents (date: string) {\n const eventColors = this.getEventColors(date)\n\n return eventColors.length ? this.$createElement('div', {\n staticClass: 'v-date-picker-table__events',\n }, eventColors.map(color => this.$createElement('div', this.setBackgroundColor(color)))) : null\n },\n isValidScroll (value: number, calculateTableDate: CalculateTableDateFunction) {\n const tableDate = calculateTableDate(value)\n // tableDate is 'YYYY-MM' for DateTable and 'YYYY' for MonthTable\n const sanitizeType = tableDate.split('-').length === 1 ? 'year' : 'month'\n return (value < 0 && (this.min ? tableDate >= sanitizeDateString(this.min, sanitizeType) : true)) ||\n (value > 0 && (this.max ? tableDate <= sanitizeDateString(this.max, sanitizeType) : true))\n },\n wheel (e: WheelEvent, calculateTableDate: CalculateTableDateFunction) {\n this.$emit('update:table-date', calculateTableDate(e.deltaY))\n },\n touch (value: number, calculateTableDate: CalculateTableDateFunction) {\n this.$emit('update:table-date', calculateTableDate(value))\n },\n genTable (staticClass: string, children: VNodeChildren, calculateTableDate: CalculateTableDateFunction) {\n const transition = this.$createElement('transition', {\n props: { name: this.computedTransition },\n }, [this.$createElement('table', { key: this.tableDate }, children)])\n\n const touchDirective = {\n name: 'touch',\n value: {\n left: (e: TouchWrapper) => (e.offsetX < -15) &&\n (this.isValidScroll(1, calculateTableDate) && this.touch(1, calculateTableDate)),\n right: (e: TouchWrapper) => (e.offsetX > 15) &&\n (this.isValidScroll(-1, calculateTableDate) && this.touch(-1, calculateTableDate)),\n },\n }\n\n return this.$createElement('div', {\n staticClass,\n class: {\n 'v-date-picker-table--disabled': this.disabled,\n ...this.themeClasses,\n },\n on: (!this.disabled && this.scrollable) ? {\n wheel: (e: WheelEvent) => {\n e.preventDefault()\n if (this.isValidScroll(e.deltaY, calculateTableDate)) { this.wheelThrottle(e, calculateTableDate) }\n },\n } : undefined,\n directives: [touchDirective],\n }, [transition])\n },\n isSelected (value: string): boolean {\n if (Array.isArray(this.value)) {\n if (this.range && this.value.length === 2) {\n const [from, to] = [...this.value].sort()\n return from <= value && value <= to\n } else {\n return this.value.indexOf(value) !== -1\n }\n }\n\n return value === this.value\n },\n },\n})\n","// Mixins\nimport DatePickerTable from './mixins/date-picker-table'\n\n// Utils\nimport { weekNumber } from '../../util/dateTimeUtils'\nimport { pad, createNativeLocaleFormatter, monthChange } from './util'\nimport { createRange } from '../../util/helpers'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode, VNodeChildren, PropType } from 'vue'\nimport { DatePickerFormatter } from 'vuetify/types'\n\nexport default mixins(\n DatePickerTable\n/* @vue/component */\n).extend({\n name: 'v-date-picker-date-table',\n\n props: {\n firstDayOfWeek: {\n type: [String, Number],\n default: 0,\n },\n localeFirstDayOfYear: {\n type: [String, Number],\n default: 0,\n },\n showAdjacentMonths: Boolean,\n showWeek: Boolean,\n weekdayFormat: Function as PropType,\n },\n\n computed: {\n formatter (): DatePickerFormatter {\n return this.format || createNativeLocaleFormatter(this.currentLocale, { day: 'numeric', timeZone: 'UTC' }, { start: 8, length: 2 })\n },\n weekdayFormatter (): DatePickerFormatter | undefined {\n return this.weekdayFormat || createNativeLocaleFormatter(this.currentLocale, { weekday: 'narrow', timeZone: 'UTC' })\n },\n weekDays (): string[] {\n const first = parseInt(this.firstDayOfWeek, 10)\n\n return this.weekdayFormatter\n ? createRange(7).map(i => this.weekdayFormatter!(`2017-01-${first + i + 15}`)) // 2017-01-15 is Sunday\n : createRange(7).map(i => ['S', 'M', 'T', 'W', 'T', 'F', 'S'][(i + first) % 7])\n },\n },\n\n methods: {\n calculateTableDate (delta: number) {\n return monthChange(this.tableDate, Math.sign(delta || 1))\n },\n genTHead () {\n const days = this.weekDays.map(day => this.$createElement('th', day))\n if (this.showWeek) {\n days.unshift(this.$createElement('th'))\n }\n\n return this.$createElement('thead', this.genTR(days))\n },\n // Returns number of the days from the firstDayOfWeek to the first day of the current month\n weekDaysBeforeFirstDayOfTheMonth () {\n const firstDayOfTheMonth = new Date(`${this.displayedYear}-${pad(this.displayedMonth + 1)}-01T00:00:00+00:00`)\n const weekDay = firstDayOfTheMonth.getUTCDay()\n\n return (weekDay - parseInt(this.firstDayOfWeek) + 7) % 7\n },\n getWeekNumber (dayInMonth: number) {\n return weekNumber(\n this.displayedYear,\n this.displayedMonth,\n dayInMonth,\n parseInt(this.firstDayOfWeek),\n parseInt(this.localeFirstDayOfYear)\n )\n },\n genWeekNumber (weekNumber: number) {\n return this.$createElement('td', [\n this.$createElement('small', {\n staticClass: 'v-date-picker-table--date__week',\n }, String(weekNumber).padStart(2, '0')),\n ])\n },\n // eslint-disable-next-line max-statements\n genTBody () {\n const children = []\n const daysInMonth = new Date(this.displayedYear, this.displayedMonth + 1, 0).getDate()\n let rows = []\n let day = this.weekDaysBeforeFirstDayOfTheMonth()\n\n if (this.showWeek) {\n rows.push(this.genWeekNumber(this.getWeekNumber(1)))\n }\n\n const prevMonthYear = this.displayedMonth ? this.displayedYear : this.displayedYear - 1\n const prevMonth = (this.displayedMonth + 11) % 12\n const firstDayFromPreviousMonth = new Date(this.displayedYear, this.displayedMonth, 0).getDate()\n const cellsInRow = this.showWeek ? 8 : 7\n\n while (day--) {\n const date = `${prevMonthYear}-${pad(prevMonth + 1)}-${pad(firstDayFromPreviousMonth - day)}`\n\n rows.push(this.$createElement('td', this.showAdjacentMonths ? [\n this.genButton(date, true, 'date', this.formatter, true),\n ] : []))\n }\n\n for (day = 1; day <= daysInMonth; day++) {\n const date = `${this.displayedYear}-${pad(this.displayedMonth + 1)}-${pad(day)}`\n\n rows.push(this.$createElement('td', [\n this.genButton(date, true, 'date', this.formatter),\n ]))\n\n if (rows.length % cellsInRow === 0) {\n children.push(this.genTR(rows))\n rows = []\n if (this.showWeek && (day < daysInMonth || this.showAdjacentMonths)) {\n rows.push(this.genWeekNumber(this.getWeekNumber(day + 7)))\n }\n }\n }\n\n const nextMonthYear = this.displayedMonth === 11 ? this.displayedYear + 1 : this.displayedYear\n const nextMonth = (this.displayedMonth + 1) % 12\n let nextMonthDay = 1\n\n while (rows.length < cellsInRow) {\n const date = `${nextMonthYear}-${pad(nextMonth + 1)}-${pad(nextMonthDay++)}`\n\n rows.push(this.$createElement('td', this.showAdjacentMonths ? [\n this.genButton(date, true, 'date', this.formatter, true),\n ] : []))\n }\n\n if (rows.length) {\n children.push(this.genTR(rows))\n }\n\n return this.$createElement('tbody', children)\n },\n genTR (children: VNodeChildren) {\n return [this.$createElement('tr', children)]\n },\n },\n\n render (): VNode {\n return this.genTable('v-date-picker-table v-date-picker-table--date', [\n this.genTHead(),\n this.genTBody(),\n ], this.calculateTableDate)\n },\n})\n","// Mixins\nimport DatePickerTable from './mixins/date-picker-table'\n\n// Utils\nimport { pad, createNativeLocaleFormatter } from './util'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\nimport { DatePickerFormatter } from 'vuetify/types'\n\nexport default mixins(\n DatePickerTable\n/* @vue/component */\n).extend({\n name: 'v-date-picker-month-table',\n\n computed: {\n formatter (): DatePickerFormatter {\n return this.format || createNativeLocaleFormatter(this.currentLocale, { month: 'short', timeZone: 'UTC' }, { start: 5, length: 2 })\n },\n },\n\n methods: {\n calculateTableDate (delta: number) {\n return `${parseInt(this.tableDate, 10) + Math.sign(delta || 1)}`\n },\n genTBody () {\n const children = []\n const cols = Array(3).fill(null)\n const rows = 12 / cols.length\n\n for (let row = 0; row < rows; row++) {\n const tds = cols.map((_, col) => {\n const month = row * cols.length + col\n const date = `${this.displayedYear}-${pad(month + 1)}`\n return this.$createElement('td', {\n key: month,\n }, [\n this.genButton(date, false, 'month', this.formatter),\n ])\n })\n\n children.push(this.$createElement('tr', {\n key: row,\n }, tds))\n }\n\n return this.$createElement('tbody', children)\n },\n },\n\n render (): VNode {\n return this.genTable('v-date-picker-table v-date-picker-table--month', [\n this.genTBody(),\n ], this.calculateTableDate)\n },\n})\n","import './VDatePickerYears.sass'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Localable from '../../mixins/localable'\n\n// Utils\nimport {\n createItemTypeNativeListeners,\n createNativeLocaleFormatter,\n} from './util'\nimport { mergeListeners } from '../../util/mergeData'\nimport mixins, { ExtractVue } from '../../util/mixins'\n\n// Types\nimport Vue, { VNode, PropType } from 'vue'\nimport { DatePickerFormatter } from 'vuetify/types'\n\ninterface options extends Vue {\n $el: HTMLElement\n}\n\nexport default mixins\n/* eslint-enable indent */\n>(\n Colorable,\n Localable\n/* @vue/component */\n).extend({\n name: 'v-date-picker-years',\n\n props: {\n format: Function as PropType,\n min: [Number, String],\n max: [Number, String],\n readonly: Boolean,\n value: [Number, String],\n },\n\n data () {\n return {\n defaultColor: 'primary',\n }\n },\n\n computed: {\n formatter (): DatePickerFormatter {\n return this.format || createNativeLocaleFormatter(this.currentLocale, { year: 'numeric', timeZone: 'UTC' }, { length: 4 })\n },\n },\n\n mounted () {\n setTimeout(() => {\n const activeItem = this.$el.getElementsByClassName('active')[0]\n if (activeItem) {\n this.$el.scrollTop = activeItem.offsetTop - this.$el.offsetHeight / 2 + activeItem.offsetHeight / 2\n } else if (this.min && !this.max) {\n this.$el.scrollTop = this.$el.scrollHeight\n } else if (!this.min && this.max) {\n this.$el.scrollTop = 0\n } else {\n this.$el.scrollTop = this.$el.scrollHeight / 2 - this.$el.offsetHeight / 2\n }\n })\n },\n\n methods: {\n genYearItem (year: number): VNode {\n const formatted = this.formatter(`${year}`)\n const active = parseInt(this.value, 10) === year\n const color = active && (this.color || 'primary')\n\n return this.$createElement('li', this.setTextColor(color, {\n key: year,\n class: { active },\n on: mergeListeners({\n click: () => this.$emit('input', year),\n }, createItemTypeNativeListeners(this, ':year', year)),\n }), formatted)\n },\n\n genYearItems (): VNode[] {\n const children = []\n const selectedYear = this.value ? parseInt(this.value, 10) : new Date().getFullYear()\n const maxYear = this.max ? parseInt(this.max, 10) : (selectedYear + 100)\n const minYear = Math.min(maxYear, this.min ? parseInt(this.min, 10) : (selectedYear - 100))\n\n for (let year = maxYear; year >= minYear; year--) {\n children.push(this.genYearItem(year))\n }\n\n return children\n },\n },\n\n render (): VNode {\n return this.$createElement('ul', {\n staticClass: 'v-date-picker-years',\n ref: 'years',\n }, this.genYearItems())\n },\n})\n","import { CalendarTimestamp, CalendarFormatter } from 'vuetify/types'\nimport { isLeapYear } from '../../../util/dateTimeUtils'\n\nexport const PARSE_REGEX = /^(\\d{4})-(\\d{1,2})(-(\\d{1,2}))?([^\\d]+(\\d{1,2}))?(:(\\d{1,2}))?(:(\\d{1,2}))?$/\nexport const PARSE_TIME = /(\\d\\d?)(:(\\d\\d?)|)(:(\\d\\d?)|)/\n\nexport const DAYS_IN_MONTH: number[] = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]\nexport const DAYS_IN_MONTH_LEAP: number[] = [0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]\nexport const DAYS_IN_MONTH_MIN = 28\nexport const DAYS_IN_MONTH_MAX = 31\nexport const MONTH_MAX = 12\nexport const MONTH_MIN = 1\nexport const DAY_MIN = 1\nexport const DAYS_IN_WEEK = 7\nexport const MINUTES_IN_HOUR = 60\nexport const MINUTE_MAX = 59\nexport const MINUTES_IN_DAY = 24 * 60\nexport const HOURS_IN_DAY = 24\nexport const HOUR_MAX = 23\nexport const FIRST_HOUR = 0\nexport const OFFSET_YEAR = 10000\nexport const OFFSET_MONTH = 100\nexport const OFFSET_HOUR = 100\nexport const OFFSET_TIME = 10000\n\ntype CalendarTimestampFormatOptions = (timestamp: CalendarTimestamp, short: boolean) => object\ntype CalendarTimestampOperation = (timestamp: CalendarTimestamp) => CalendarTimestamp\nexport type VTime = number | string | {\n hour: number\n minute: number\n}\n\nexport type VTimestampInput = number | string | Date;\n\nexport function getStartOfWeek (timestamp: CalendarTimestamp, weekdays: number[], today?: CalendarTimestamp): CalendarTimestamp {\n const start = copyTimestamp(timestamp)\n findWeekday(start, weekdays[0], prevDay)\n updateFormatted(start)\n if (today) {\n updateRelative(start, today, start.hasTime)\n }\n\n return start\n}\n\nexport function getEndOfWeek (timestamp: CalendarTimestamp, weekdays: number[], today?: CalendarTimestamp): CalendarTimestamp {\n const end = copyTimestamp(timestamp)\n findWeekday(end, weekdays[weekdays.length - 1])\n updateFormatted(end)\n if (today) {\n updateRelative(end, today, end.hasTime)\n }\n\n return end\n}\n\nexport function getStartOfMonth (timestamp: CalendarTimestamp): CalendarTimestamp {\n const start = copyTimestamp(timestamp)\n start.day = DAY_MIN\n updateWeekday(start)\n updateFormatted(start)\n\n return start\n}\n\nexport function getEndOfMonth (timestamp: CalendarTimestamp): CalendarTimestamp {\n const end = copyTimestamp(timestamp)\n end.day = daysInMonth(end.year, end.month)\n updateWeekday(end)\n updateFormatted(end)\n\n return end\n}\n\nexport function validateTime (input: any): input is VTime {\n return (typeof input === 'number' && isFinite(input)) ||\n (!!PARSE_TIME.exec(input)) ||\n (typeof input === 'object' && isFinite(input.hour) && isFinite(input.minute))\n}\n\nexport function parseTime (input: any): number | false {\n if (typeof input === 'number') {\n // when a number is given, it's minutes since 12:00am\n return input\n } else if (typeof input === 'string') {\n // when a string is given, it's a hh:mm:ss format where seconds are optional\n const parts = PARSE_TIME.exec(input)\n if (!parts) {\n return false\n }\n\n return parseInt(parts[1]) * 60 + parseInt(parts[3] || 0)\n } else if (typeof input === 'object') {\n // when an object is given, it must have hour and minute\n if (typeof input.hour !== 'number' || typeof input.minute !== 'number') {\n return false\n }\n\n return input.hour * 60 + input.minute\n } else {\n // unsupported type\n return false\n }\n}\n\nexport function validateTimestamp (input: any): input is VTimestampInput {\n return (typeof input === 'number' && isFinite(input)) ||\n (typeof input === 'string' && !!PARSE_REGEX.exec(input)) ||\n (input instanceof Date)\n}\n\nexport function parseTimestamp (input: VTimestampInput, required?: false, now?: CalendarTimestamp): CalendarTimestamp | null\nexport function parseTimestamp (input: VTimestampInput, required: true, now?: CalendarTimestamp): CalendarTimestamp\nexport function parseTimestamp (input: VTimestampInput, required = false, now?: CalendarTimestamp): CalendarTimestamp | null {\n if (typeof input === 'number' && isFinite(input)) {\n input = new Date(input)\n }\n\n if (input instanceof Date) {\n const date: CalendarTimestamp = parseDate(input)\n\n if (now) {\n updateRelative(date, now, date.hasTime)\n }\n\n return date\n }\n\n if (typeof input !== 'string') {\n if (required) {\n throw new Error(`${input} is not a valid timestamp. It must be a Date, number of milliseconds since Epoch, or a string in the format of YYYY-MM-DD or YYYY-MM-DD hh:mm. Zero-padding is optional and seconds are ignored.`)\n }\n return null\n }\n\n // YYYY-MM-DD hh:mm:ss\n const parts = PARSE_REGEX.exec(input)\n\n if (!parts) {\n if (required) {\n throw new Error(`${input} is not a valid timestamp. It must be a Date, number of milliseconds since Epoch, or a string in the format of YYYY-MM-DD or YYYY-MM-DD hh:mm. Zero-padding is optional and seconds are ignored.`)\n }\n\n return null\n }\n\n const timestamp: CalendarTimestamp = {\n date: input,\n time: '',\n year: parseInt(parts[1]),\n month: parseInt(parts[2]),\n day: parseInt(parts[4]) || 1,\n hour: parseInt(parts[6]) || 0,\n minute: parseInt(parts[8]) || 0,\n weekday: 0,\n hasDay: !!parts[4],\n hasTime: !!(parts[6] && parts[8]),\n past: false,\n present: false,\n future: false,\n }\n\n updateWeekday(timestamp)\n updateFormatted(timestamp)\n\n if (now) {\n updateRelative(timestamp, now, timestamp.hasTime)\n }\n\n return timestamp\n}\n\nexport function parseDate (date: Date): CalendarTimestamp {\n return updateFormatted({\n date: '',\n time: '',\n year: date.getFullYear(),\n month: date.getMonth() + 1,\n day: date.getDate(),\n weekday: date.getDay(),\n hour: date.getHours(),\n minute: date.getMinutes(),\n hasDay: true,\n hasTime: true,\n past: false,\n present: true,\n future: false,\n })\n}\n\nexport function getDayIdentifier (timestamp: { year: number, month: number, day: number }): number {\n return timestamp.year * OFFSET_YEAR + timestamp.month * OFFSET_MONTH + timestamp.day\n}\n\nexport function getTimeIdentifier (timestamp: { hour: number, minute: number }): number {\n return timestamp.hour * OFFSET_HOUR + timestamp.minute\n}\n\nexport function getTimestampIdentifier (timestamp: CalendarTimestamp): number {\n return getDayIdentifier(timestamp) * OFFSET_TIME + getTimeIdentifier(timestamp)\n}\n\nexport function updateRelative (timestamp: CalendarTimestamp, now: CalendarTimestamp, time = false): CalendarTimestamp {\n let a = getDayIdentifier(now)\n let b = getDayIdentifier(timestamp)\n let present = a === b\n\n if (timestamp.hasTime && time && present) {\n a = getTimeIdentifier(now)\n b = getTimeIdentifier(timestamp)\n present = a === b\n }\n\n timestamp.past = b < a\n timestamp.present = present\n timestamp.future = b > a\n\n return timestamp\n}\n\nexport function isTimedless (input: VTimestampInput): input is (Date | number) {\n return (input instanceof Date) || (typeof input === 'number' && isFinite(input))\n}\n\nexport function updateHasTime (timestamp: CalendarTimestamp, hasTime: boolean, now?: CalendarTimestamp): CalendarTimestamp {\n if (timestamp.hasTime !== hasTime) {\n timestamp.hasTime = hasTime\n if (!hasTime) {\n timestamp.hour = HOUR_MAX\n timestamp.minute = MINUTE_MAX\n timestamp.time = getTime(timestamp)\n }\n if (now) {\n updateRelative(timestamp, now, timestamp.hasTime)\n }\n }\n\n return timestamp\n}\n\nexport function updateMinutes (timestamp: CalendarTimestamp, minutes: number, now?: CalendarTimestamp): CalendarTimestamp {\n timestamp.hasTime = true\n timestamp.hour = Math.floor(minutes / MINUTES_IN_HOUR)\n timestamp.minute = minutes % MINUTES_IN_HOUR\n timestamp.time = getTime(timestamp)\n if (now) {\n updateRelative(timestamp, now, true)\n }\n\n return timestamp\n}\n\nexport function updateWeekday (timestamp: CalendarTimestamp): CalendarTimestamp {\n timestamp.weekday = getWeekday(timestamp)\n\n return timestamp\n}\n\nexport function updateFormatted (timestamp: CalendarTimestamp): CalendarTimestamp {\n timestamp.time = getTime(timestamp)\n timestamp.date = getDate(timestamp)\n\n return timestamp\n}\n\nexport function getWeekday (timestamp: CalendarTimestamp): number {\n if (timestamp.hasDay) {\n const _ = Math.floor\n const k = timestamp.day\n const m = ((timestamp.month + 9) % MONTH_MAX) + 1\n const C = _(timestamp.year / 100)\n const Y = (timestamp.year % 100) - (timestamp.month <= 2 ? 1 : 0)\n\n return (((k + _(2.6 * m - 0.2) - 2 * C + Y + _(Y / 4) + _(C / 4)) % 7) + 7) % 7\n }\n\n return timestamp.weekday\n}\n\nexport function daysInMonth (year: number, month: number) {\n return isLeapYear(year) ? DAYS_IN_MONTH_LEAP[month] : DAYS_IN_MONTH[month]\n}\n\nexport function copyTimestamp (timestamp: CalendarTimestamp): CalendarTimestamp {\n const { date, time, year, month, day, weekday, hour, minute, hasDay, hasTime, past, present, future } = timestamp\n\n return { date, time, year, month, day, weekday, hour, minute, hasDay, hasTime, past, present, future }\n}\n\nexport function padNumber (x: number, length: number): string {\n let padded = String(x)\n while (padded.length < length) {\n padded = '0' + padded\n }\n\n return padded\n}\n\nexport function getDate (timestamp: CalendarTimestamp): string {\n let str = `${padNumber(timestamp.year, 4)}-${padNumber(timestamp.month, 2)}`\n\n if (timestamp.hasDay) str += `-${padNumber(timestamp.day, 2)}`\n\n return str\n}\n\nexport function getTime (timestamp: CalendarTimestamp): string {\n if (!timestamp.hasTime) {\n return ''\n }\n\n return `${padNumber(timestamp.hour, 2)}:${padNumber(timestamp.minute, 2)}`\n}\n\nexport function nextMinutes (timestamp: CalendarTimestamp, minutes: number): CalendarTimestamp {\n timestamp.minute += minutes\n while (timestamp.minute > MINUTES_IN_HOUR) {\n timestamp.minute -= MINUTES_IN_HOUR\n timestamp.hour++\n if (timestamp.hour >= HOURS_IN_DAY) {\n nextDay(timestamp)\n timestamp.hour = FIRST_HOUR\n }\n }\n\n return timestamp\n}\n\nexport function nextDay (timestamp: CalendarTimestamp): CalendarTimestamp {\n timestamp.day++\n timestamp.weekday = (timestamp.weekday + 1) % DAYS_IN_WEEK\n if (timestamp.day > DAYS_IN_MONTH_MIN && timestamp.day > daysInMonth(timestamp.year, timestamp.month)) {\n timestamp.day = DAY_MIN\n timestamp.month++\n if (timestamp.month > MONTH_MAX) {\n timestamp.month = MONTH_MIN\n timestamp.year++\n }\n }\n\n return timestamp\n}\n\nexport function prevDay (timestamp: CalendarTimestamp): CalendarTimestamp {\n timestamp.day--\n timestamp.weekday = (timestamp.weekday + 6) % DAYS_IN_WEEK\n if (timestamp.day < DAY_MIN) {\n timestamp.month--\n if (timestamp.month < MONTH_MIN) {\n timestamp.year--\n timestamp.month = MONTH_MAX\n }\n timestamp.day = daysInMonth(timestamp.year, timestamp.month)\n }\n\n return timestamp\n}\n\nexport function relativeDays (\n timestamp: CalendarTimestamp,\n mover: CalendarTimestampOperation = nextDay,\n days = 1\n): CalendarTimestamp {\n while (--days >= 0) mover(timestamp)\n\n return timestamp\n}\n\nexport function diffMinutes (min: CalendarTimestamp, max: CalendarTimestamp) {\n const Y = (max.year - min.year) * 525600\n const M = (max.month - min.month) * 43800\n const D = (max.day - min.day) * 1440\n const h = (max.hour - min.hour) * 60\n const m = (max.minute - min.minute)\n\n return Y + M + D + h + m\n}\n\nexport function findWeekday (timestamp: CalendarTimestamp, weekday: number,\n mover: CalendarTimestampOperation = nextDay, maxDays = 6): CalendarTimestamp {\n while (timestamp.weekday !== weekday && --maxDays >= 0) mover(timestamp)\n\n return timestamp\n}\n\nexport function getWeekdaySkips (weekdays: number[]): number[] {\n const skips: number[] = [1, 1, 1, 1, 1, 1, 1]\n const filled: number[] = [0, 0, 0, 0, 0, 0, 0]\n for (let i = 0; i < weekdays.length; i++) {\n filled[weekdays[i]] = 1\n }\n for (let k = 0; k < DAYS_IN_WEEK; k++) {\n let skip = 1\n for (let j = 1; j < DAYS_IN_WEEK; j++) {\n const next = (k + j) % DAYS_IN_WEEK\n if (filled[next]) {\n break\n }\n skip++\n }\n skips[k] = filled[k] * skip\n }\n\n return skips\n}\n\nexport function timestampToDate (timestamp: CalendarTimestamp): Date {\n const time = `${padNumber(timestamp.hour, 2)}:${padNumber(timestamp.minute, 2)}`\n const date = timestamp.date\n\n return new Date(`${date}T${time}:00+00:00`)\n}\n\nexport function createDayList (\n start: CalendarTimestamp,\n end: CalendarTimestamp,\n now: CalendarTimestamp,\n weekdaySkips: number[],\n max = 42,\n min = 0\n): CalendarTimestamp[] {\n const stop = getDayIdentifier(end)\n const days: CalendarTimestamp[] = []\n let current = copyTimestamp(start)\n let currentIdentifier = 0\n let stopped = currentIdentifier === stop\n\n if (stop < getDayIdentifier(start)) {\n throw new Error('End date is earlier than start date.')\n }\n\n while ((!stopped || days.length < min) && days.length < max) {\n currentIdentifier = getDayIdentifier(current)\n stopped = stopped || currentIdentifier === stop\n if (weekdaySkips[current.weekday] === 0) {\n current = nextDay(current)\n continue\n }\n const day = copyTimestamp(current)\n updateFormatted(day)\n updateRelative(day, now)\n days.push(day)\n current = relativeDays(current, nextDay, weekdaySkips[current.weekday])\n }\n\n if (!days.length) throw new Error('No dates found using specified start date, end date, and weekdays.')\n\n return days\n}\n\nexport function createIntervalList (timestamp: CalendarTimestamp, first: number,\n minutes: number, count: number, now?: CalendarTimestamp): CalendarTimestamp[] {\n const intervals: CalendarTimestamp[] = []\n\n for (let i = 0; i < count; i++) {\n const mins = first + (i * minutes)\n const int = copyTimestamp(timestamp)\n intervals.push(updateMinutes(int, mins, now))\n }\n\n return intervals\n}\n\nexport function createNativeLocaleFormatter (locale: string, getOptions: CalendarTimestampFormatOptions): CalendarFormatter {\n const emptyFormatter: CalendarFormatter = (_t, _s) => ''\n\n if (typeof Intl === 'undefined' || typeof Intl.DateTimeFormat === 'undefined') {\n return emptyFormatter\n }\n\n return (timestamp, short) => {\n try {\n const intlFormatter = new Intl.DateTimeFormat(locale || undefined, getOptions(timestamp, short))\n\n return intlFormatter.format(timestampToDate(timestamp))\n } catch (e) {\n return ''\n }\n }\n}\n","// Components\nimport VDatePickerTitle from './VDatePickerTitle'\nimport VDatePickerHeader from './VDatePickerHeader'\nimport VDatePickerDateTable from './VDatePickerDateTable'\nimport VDatePickerMonthTable from './VDatePickerMonthTable'\nimport VDatePickerYears from './VDatePickerYears'\n\n// Mixins\nimport Localable from '../../mixins/localable'\nimport Picker from '../../mixins/picker'\n\n// Utils\nimport isDateAllowed from './util/isDateAllowed'\nimport mixins from '../../util/mixins'\nimport { wrapInArray } from '../../util/helpers'\nimport { daysInMonth } from '../VCalendar/util/timestamp'\nimport { consoleWarn } from '../../util/console'\nimport {\n createItemTypeListeners,\n createNativeLocaleFormatter,\n pad,\n sanitizeDateString,\n} from './util'\n\n// Types\nimport {\n PropType,\n PropValidator,\n} from 'vue/types/options'\nimport { VNode } from 'vue'\nimport {\n DatePickerFormatter,\n DatePickerMultipleFormatter,\n DatePickerAllowedDatesFunction,\n DatePickerEventColors,\n DatePickerEvents,\n DatePickerType,\n} from 'vuetify/types'\n\ntype DatePickerValue = string | string[] | undefined\ninterface Formatters {\n year: DatePickerFormatter\n titleDate: DatePickerFormatter | DatePickerMultipleFormatter\n}\n\ntype ActivePicker = 'DATE' | 'MONTH' | 'YEAR';\n\nexport default mixins(\n Localable,\n Picker,\n/* @vue/component */\n).extend({\n name: 'v-date-picker',\n\n props: {\n activePicker: String as PropType,\n allowedDates: Function as PropType,\n // Function formatting the day in date picker table\n dayFormat: Function as PropType,\n disabled: Boolean,\n events: {\n type: [Array, Function, Object],\n default: () => null,\n } as PropValidator,\n eventColor: {\n type: [Array, Function, Object, String],\n default: () => 'warning',\n } as PropValidator,\n firstDayOfWeek: {\n type: [String, Number],\n default: 0,\n },\n // Function formatting the tableDate in the day/month table header\n headerDateFormat: Function as PropType,\n localeFirstDayOfYear: {\n type: [String, Number],\n default: 0,\n },\n max: String,\n min: String,\n // Function formatting month in the months table\n monthFormat: Function as PropType,\n multiple: Boolean,\n nextIcon: {\n type: String,\n default: '$next',\n },\n nextMonthAriaLabel: {\n type: String,\n default: '$vuetify.datePicker.nextMonthAriaLabel',\n },\n nextYearAriaLabel: {\n type: String,\n default: '$vuetify.datePicker.nextYearAriaLabel',\n },\n pickerDate: String,\n prevIcon: {\n type: String,\n default: '$prev',\n },\n prevMonthAriaLabel: {\n type: String,\n default: '$vuetify.datePicker.prevMonthAriaLabel',\n },\n prevYearAriaLabel: {\n type: String,\n default: '$vuetify.datePicker.prevYearAriaLabel',\n },\n range: Boolean,\n reactive: Boolean,\n readonly: Boolean,\n scrollable: Boolean,\n showCurrent: {\n type: [Boolean, String],\n default: true,\n },\n selectedItemsText: {\n type: String,\n default: '$vuetify.datePicker.itemsSelected',\n },\n showAdjacentMonths: Boolean,\n showWeek: Boolean,\n // Function formatting currently selected date in the picker title\n titleDateFormat: Function as PropType,\n type: {\n type: String,\n default: 'date',\n validator: (type: any) => ['date', 'month'].includes(type), // TODO: year\n } as PropValidator,\n value: [Array, String] as PropType,\n weekdayFormat: Function as PropType,\n // Function formatting the year in table header and pickup title\n yearFormat: Function as PropType,\n yearIcon: String,\n },\n\n data () {\n const now = new Date()\n return {\n internalActivePicker: this.type.toUpperCase(),\n inputDay: null as number | null,\n inputMonth: null as number | null,\n inputYear: null as number | null,\n isReversing: false,\n now,\n // tableDate is a string in 'YYYY' / 'YYYY-M' format (leading zero for month is not required)\n tableDate: (() => {\n if (this.pickerDate) {\n return this.pickerDate\n }\n\n const multipleValue = wrapInArray(this.value)\n const date = multipleValue[multipleValue.length - 1] ||\n (typeof this.showCurrent === 'string' ? this.showCurrent : `${now.getFullYear()}-${now.getMonth() + 1}`)\n return sanitizeDateString(date as string, this.type === 'date' ? 'month' : 'year')\n })(),\n }\n },\n\n computed: {\n multipleValue (): string[] {\n return wrapInArray(this.value)\n },\n isMultiple (): boolean {\n return this.multiple || this.range\n },\n lastValue (): string | null {\n return this.isMultiple ? this.multipleValue[this.multipleValue.length - 1] : (this.value as string | null)\n },\n selectedMonths (): string | string[] | undefined {\n if (!this.value || this.type === 'month') {\n return this.value\n } else if (this.isMultiple) {\n return this.multipleValue.map(val => val.substr(0, 7))\n } else {\n return (this.value as string).substr(0, 7)\n }\n },\n current (): string | null {\n if (this.showCurrent === true) {\n return sanitizeDateString(`${this.now.getFullYear()}-${this.now.getMonth() + 1}-${this.now.getDate()}`, this.type)\n }\n\n return this.showCurrent || null\n },\n inputDate (): string {\n return this.type === 'date'\n ? `${this.inputYear}-${pad(this.inputMonth! + 1)}-${pad(this.inputDay!)}`\n : `${this.inputYear}-${pad(this.inputMonth! + 1)}`\n },\n tableMonth (): number {\n return Number((this.pickerDate || this.tableDate).split('-')[1]) - 1\n },\n tableYear (): number {\n return Number((this.pickerDate || this.tableDate).split('-')[0])\n },\n minMonth (): string | null {\n return this.min ? sanitizeDateString(this.min, 'month') : null\n },\n maxMonth (): string | null {\n return this.max ? sanitizeDateString(this.max, 'month') : null\n },\n minYear (): string | null {\n return this.min ? sanitizeDateString(this.min, 'year') : null\n },\n maxYear (): string | null {\n return this.max ? sanitizeDateString(this.max, 'year') : null\n },\n formatters (): Formatters {\n return {\n year: this.yearFormat || createNativeLocaleFormatter(this.currentLocale, { year: 'numeric', timeZone: 'UTC' }, { length: 4 }),\n titleDate: this.titleDateFormat ||\n (this.isMultiple ? this.defaultTitleMultipleDateFormatter : this.defaultTitleDateFormatter),\n }\n },\n defaultTitleMultipleDateFormatter (): DatePickerMultipleFormatter {\n return dates => {\n if (!dates.length) {\n return '-'\n }\n\n if (dates.length === 1) {\n return this.defaultTitleDateFormatter(dates[0])\n }\n\n return this.$vuetify.lang.t(this.selectedItemsText, dates.length)\n }\n },\n defaultTitleDateFormatter (): DatePickerFormatter {\n const titleFormats = {\n year: { year: 'numeric', timeZone: 'UTC' },\n month: { month: 'long', timeZone: 'UTC' },\n date: { weekday: 'short', month: 'short', day: 'numeric', timeZone: 'UTC' },\n } as const\n\n const titleDateFormatter = createNativeLocaleFormatter(this.currentLocale, titleFormats[this.type], {\n start: 0,\n length: { date: 10, month: 7, year: 4 }[this.type],\n })\n\n const landscapeFormatter = (date: string) => titleDateFormatter(date)\n .replace(/([^\\d\\s])([\\d])/g, (match, nonDigit, digit) => `${nonDigit} ${digit}`)\n .replace(', ', ',
')\n\n return this.landscape ? landscapeFormatter : titleDateFormatter\n },\n },\n\n watch: {\n internalActivePicker: {\n immediate: true,\n handler (val: ActivePicker) {\n this.$emit('update:active-picker', val)\n },\n },\n activePicker (val: ActivePicker) {\n this.internalActivePicker = val\n },\n tableDate (val: string, prev: string) {\n // Make a ISO 8601 strings from val and prev for comparision, otherwise it will incorrectly\n // compare for example '2000-9' and '2000-10'\n const sanitizeType = this.type === 'month' ? 'year' : 'month'\n this.isReversing = sanitizeDateString(val, sanitizeType) < sanitizeDateString(prev, sanitizeType)\n this.$emit('update:picker-date', val)\n },\n pickerDate (val: string | null) {\n if (val) {\n this.tableDate = val\n } else if (this.lastValue && this.type === 'date') {\n this.tableDate = sanitizeDateString(this.lastValue, 'month')\n } else if (this.lastValue && this.type === 'month') {\n this.tableDate = sanitizeDateString(this.lastValue, 'year')\n }\n },\n value (newValue: DatePickerValue, oldValue: DatePickerValue) {\n this.checkMultipleProp()\n this.setInputDate()\n\n if (\n (!this.isMultiple && this.value && !this.pickerDate) ||\n (this.isMultiple && this.multipleValue.length && (!oldValue || !oldValue.length) && !this.pickerDate)\n ) {\n this.tableDate = sanitizeDateString(this.inputDate, this.type === 'month' ? 'year' : 'month')\n }\n },\n type (type: DatePickerType) {\n this.internalActivePicker = type.toUpperCase()\n\n if (this.value && this.value.length) {\n const output = this.multipleValue\n .map((val: string) => sanitizeDateString(val, type))\n .filter(this.isDateAllowed)\n this.$emit('input', this.isMultiple ? output : output[0])\n }\n },\n },\n\n created () {\n this.checkMultipleProp()\n\n if (this.pickerDate !== this.tableDate) {\n this.$emit('update:picker-date', this.tableDate)\n }\n this.setInputDate()\n },\n\n methods: {\n emitInput (newInput: string) {\n if (this.range) {\n if (this.multipleValue.length !== 1) {\n this.$emit('input', [newInput])\n } else {\n const output = [this.multipleValue[0], newInput]\n this.$emit('input', output)\n this.$emit('change', output)\n }\n return\n }\n\n const output = this.multiple\n ? (\n this.multipleValue.indexOf(newInput) === -1\n ? this.multipleValue.concat([newInput])\n : this.multipleValue.filter(x => x !== newInput)\n )\n : newInput\n\n this.$emit('input', output)\n this.multiple || this.$emit('change', newInput)\n },\n checkMultipleProp () {\n if (this.value == null) return\n const valueType = this.value.constructor.name\n const expected = this.isMultiple ? 'Array' : 'String'\n if (valueType !== expected) {\n consoleWarn(`Value must be ${this.isMultiple ? 'an' : 'a'} ${expected}, got ${valueType}`, this)\n }\n },\n isDateAllowed (value: string): boolean {\n return isDateAllowed(value, this.min, this.max, this.allowedDates)\n },\n yearClick (value: number) {\n this.inputYear = value\n if (this.type === 'month') {\n this.tableDate = `${value}`\n } else {\n this.tableDate = `${value}-${pad((this.tableMonth || 0) + 1)}`\n }\n this.internalActivePicker = 'MONTH'\n if (this.reactive && !this.readonly && !this.isMultiple && this.isDateAllowed(this.inputDate)) {\n this.$emit('input', this.inputDate)\n }\n },\n monthClick (value: string) {\n const [year, month] = value.split('-')\n\n this.inputYear = parseInt(year, 10)\n this.inputMonth = parseInt(month, 10) - 1\n\n if (this.type === 'date') {\n if (this.inputDay) {\n this.inputDay = Math.min(this.inputDay, daysInMonth(this.inputYear, this.inputMonth + 1))\n }\n\n this.tableDate = value\n this.internalActivePicker = 'DATE'\n if (this.reactive && !this.readonly && !this.isMultiple && this.isDateAllowed(this.inputDate)) {\n this.$emit('input', this.inputDate)\n }\n } else {\n this.emitInput(this.inputDate)\n }\n },\n dateClick (value: string) {\n const [year, month, day] = value.split('-')\n\n this.inputYear = parseInt(year, 10)\n this.inputMonth = parseInt(month, 10) - 1\n this.inputDay = parseInt(day, 10)\n\n this.emitInput(this.inputDate)\n },\n genPickerTitle (): VNode {\n return this.$createElement(VDatePickerTitle, {\n props: {\n date: this.value ? (this.formatters.titleDate as (value: any) => string)(this.isMultiple ? this.multipleValue : this.value) : '',\n disabled: this.disabled,\n readonly: this.readonly,\n selectingYear: this.internalActivePicker === 'YEAR',\n year: this.formatters.year(this.multipleValue.length ? `${this.inputYear}` : this.tableDate),\n yearIcon: this.yearIcon,\n value: this.multipleValue[0],\n },\n slot: 'title',\n on: {\n 'update:selecting-year': (value: boolean) => this.internalActivePicker = value ? 'YEAR' : this.type.toUpperCase(),\n },\n })\n },\n genTableHeader (): VNode {\n return this.$createElement(VDatePickerHeader, {\n props: {\n nextIcon: this.nextIcon,\n color: this.color,\n dark: this.dark,\n disabled: this.disabled,\n format: this.headerDateFormat,\n light: this.light,\n locale: this.locale,\n min: this.internalActivePicker === 'DATE' ? this.minMonth : this.minYear,\n max: this.internalActivePicker === 'DATE' ? this.maxMonth : this.maxYear,\n nextAriaLabel: this.internalActivePicker === 'DATE' ? this.nextMonthAriaLabel : this.nextYearAriaLabel,\n prevAriaLabel: this.internalActivePicker === 'DATE' ? this.prevMonthAriaLabel : this.prevYearAriaLabel,\n prevIcon: this.prevIcon,\n readonly: this.readonly,\n value: this.internalActivePicker === 'DATE' ? `${pad(this.tableYear, 4)}-${pad(this.tableMonth + 1)}` : `${pad(this.tableYear, 4)}`,\n },\n on: {\n toggle: () => this.internalActivePicker = (this.internalActivePicker === 'DATE' ? 'MONTH' : 'YEAR'),\n input: (value: string) => this.tableDate = value,\n },\n })\n },\n genDateTable (): VNode {\n return this.$createElement(VDatePickerDateTable, {\n props: {\n allowedDates: this.allowedDates,\n color: this.color,\n current: this.current,\n dark: this.dark,\n disabled: this.disabled,\n events: this.events,\n eventColor: this.eventColor,\n firstDayOfWeek: this.firstDayOfWeek,\n format: this.dayFormat,\n light: this.light,\n locale: this.locale,\n localeFirstDayOfYear: this.localeFirstDayOfYear,\n min: this.min,\n max: this.max,\n range: this.range,\n readonly: this.readonly,\n scrollable: this.scrollable,\n showAdjacentMonths: this.showAdjacentMonths,\n showWeek: this.showWeek,\n tableDate: `${pad(this.tableYear, 4)}-${pad(this.tableMonth + 1)}`,\n value: this.value,\n weekdayFormat: this.weekdayFormat,\n },\n ref: 'table',\n on: {\n input: this.dateClick,\n 'update:table-date': (value: string) => this.tableDate = value,\n ...createItemTypeListeners(this, ':date'),\n },\n })\n },\n genMonthTable (): VNode {\n return this.$createElement(VDatePickerMonthTable, {\n props: {\n allowedDates: this.type === 'month' ? this.allowedDates : null,\n color: this.color,\n current: this.current ? sanitizeDateString(this.current, 'month') : null,\n dark: this.dark,\n disabled: this.disabled,\n events: this.type === 'month' ? this.events : null,\n eventColor: this.type === 'month' ? this.eventColor : null,\n format: this.monthFormat,\n light: this.light,\n locale: this.locale,\n min: this.minMonth,\n max: this.maxMonth,\n range: this.range,\n readonly: this.readonly && this.type === 'month',\n scrollable: this.scrollable,\n value: this.selectedMonths,\n tableDate: `${pad(this.tableYear, 4)}`,\n },\n ref: 'table',\n on: {\n input: this.monthClick,\n 'update:table-date': (value: string) => this.tableDate = value,\n ...createItemTypeListeners(this, ':month'),\n },\n })\n },\n genYears (): VNode {\n return this.$createElement(VDatePickerYears, {\n props: {\n color: this.color,\n format: this.yearFormat,\n locale: this.locale,\n min: this.minYear,\n max: this.maxYear,\n value: this.tableYear,\n },\n on: {\n input: this.yearClick,\n ...createItemTypeListeners(this, ':year'),\n },\n })\n },\n genPickerBody (): VNode {\n const children = this.internalActivePicker === 'YEAR' ? [\n this.genYears(),\n ] : [\n this.genTableHeader(),\n this.internalActivePicker === 'DATE' ? this.genDateTable() : this.genMonthTable(),\n ]\n\n return this.$createElement('div', {\n key: this.internalActivePicker,\n }, children)\n },\n setInputDate () {\n if (this.lastValue) {\n const array = this.lastValue.split('-')\n this.inputYear = parseInt(array[0], 10)\n this.inputMonth = parseInt(array[1], 10) - 1\n if (this.type === 'date') {\n this.inputDay = parseInt(array[2], 10)\n }\n } else {\n this.inputYear = this.inputYear || this.now.getFullYear()\n this.inputMonth = this.inputMonth == null ? this.inputMonth : this.now.getMonth()\n this.inputDay = this.inputDay || this.now.getDate()\n }\n },\n },\n\n render (): VNode {\n return this.genPicker('v-picker--date')\n },\n})\n","const padStart = (string: number | string, targetLength: number, padString: string) => {\n targetLength = targetLength >> 0\n string = String(string)\n padString = String(padString)\n if (string.length > targetLength) {\n return String(string)\n }\n\n targetLength = targetLength - string.length\n if (targetLength > padString.length) {\n padString += padString.repeat(targetLength / padString.length)\n }\n return padString.slice(0, targetLength) + String(string)\n}\n\nexport default (n: string | number, length = 2) => padStart(n, length, '0')\n","// Styles\nimport './VDialog.sass'\n\n// Components\nimport { VThemeProvider } from '../VThemeProvider'\n\n// Mixins\nimport Activatable from '../../mixins/activatable'\nimport Dependent from '../../mixins/dependent'\nimport Detachable from '../../mixins/detachable'\nimport Overlayable from '../../mixins/overlayable'\nimport Returnable from '../../mixins/returnable'\nimport Stackable from '../../mixins/stackable'\n\n// Directives\nimport ClickOutside from '../../directives/click-outside'\n\n// Helpers\nimport mixins from '../../util/mixins'\nimport { removed } from '../../util/console'\nimport {\n convertToUnit,\n keyCodes,\n} from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeData } from 'vue'\n\nconst baseMixins = mixins(\n Dependent,\n Detachable,\n Overlayable,\n Returnable,\n Stackable,\n Activatable,\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-dialog',\n\n directives: { ClickOutside },\n\n props: {\n dark: Boolean,\n disabled: Boolean,\n fullscreen: Boolean,\n light: Boolean,\n maxWidth: [String, Number],\n noClickAnimation: Boolean,\n origin: {\n type: String,\n default: 'center center',\n },\n persistent: Boolean,\n retainFocus: {\n type: Boolean,\n default: true,\n },\n scrollable: Boolean,\n transition: {\n type: [String, Boolean],\n default: 'dialog-transition',\n },\n width: [String, Number],\n },\n\n data () {\n return {\n activatedBy: null as EventTarget | null,\n animate: false,\n animateTimeout: -1,\n stackMinZIndex: 200,\n previousActiveElement: null as HTMLElement | null,\n }\n },\n\n computed: {\n classes (): object {\n return {\n [(`v-dialog ${this.contentClass}`).trim()]: true,\n 'v-dialog--active': this.isActive,\n 'v-dialog--persistent': this.persistent,\n 'v-dialog--fullscreen': this.fullscreen,\n 'v-dialog--scrollable': this.scrollable,\n 'v-dialog--animated': this.animate,\n }\n },\n contentClasses (): object {\n return {\n 'v-dialog__content': true,\n 'v-dialog__content--active': this.isActive,\n }\n },\n hasActivator (): boolean {\n return Boolean(\n !!this.$slots.activator ||\n !!this.$scopedSlots.activator\n )\n },\n },\n\n watch: {\n isActive (val) {\n if (val) {\n this.show()\n this.hideScroll()\n } else {\n this.removeOverlay()\n this.unbind()\n this.previousActiveElement?.focus()\n }\n },\n fullscreen (val) {\n if (!this.isActive) return\n\n if (val) {\n this.hideScroll()\n this.removeOverlay(false)\n } else {\n this.showScroll()\n this.genOverlay()\n }\n },\n },\n\n created () {\n /* istanbul ignore next */\n if (this.$attrs.hasOwnProperty('full-width')) {\n removed('full-width', this)\n }\n },\n\n beforeMount () {\n this.$nextTick(() => {\n this.isBooted = this.isActive\n this.isActive && this.show()\n })\n },\n\n beforeDestroy () {\n if (typeof window !== 'undefined') this.unbind()\n },\n\n methods: {\n animateClick () {\n this.animate = false\n // Needed for when clicking very fast\n // outside of the dialog\n this.$nextTick(() => {\n this.animate = true\n window.clearTimeout(this.animateTimeout)\n this.animateTimeout = window.setTimeout(() => (this.animate = false), 150)\n })\n },\n closeConditional (e: Event) {\n const target = e.target as HTMLElement\n // Ignore the click if the dialog is closed or destroyed,\n // if it was on an element inside the content,\n // if it was dragged onto the overlay (#6969),\n // or if this isn't the topmost dialog (#9907)\n return !(\n this._isDestroyed ||\n !this.isActive ||\n this.$refs.content.contains(target) ||\n (this.overlay && target && !this.overlay.$el.contains(target))\n ) && this.activeZIndex >= this.getMaxZIndex()\n },\n hideScroll () {\n if (this.fullscreen) {\n document.documentElement.classList.add('overflow-y-hidden')\n } else {\n Overlayable.options.methods.hideScroll.call(this)\n }\n },\n show () {\n !this.fullscreen && !this.hideOverlay && this.genOverlay()\n // Double nextTick to wait for lazy content to be generated\n this.$nextTick(() => {\n this.$nextTick(() => {\n if (!this.$refs.dialog?.contains(document.activeElement)) {\n this.previousActiveElement = document.activeElement as HTMLElement\n this.$refs.dialog?.focus()\n }\n this.bind()\n })\n })\n },\n bind () {\n window.addEventListener('focusin', this.onFocusin)\n },\n unbind () {\n window.removeEventListener('focusin', this.onFocusin)\n },\n onClickOutside (e: Event) {\n this.$emit('click:outside', e)\n\n if (this.persistent) {\n this.noClickAnimation || this.animateClick()\n } else {\n this.isActive = false\n }\n },\n onKeydown (e: KeyboardEvent) {\n if (e.keyCode === keyCodes.esc && !this.getOpenDependents().length) {\n if (!this.persistent) {\n this.isActive = false\n const activator = this.getActivator()\n this.$nextTick(() => activator && (activator as HTMLElement).focus())\n } else if (!this.noClickAnimation) {\n this.animateClick()\n }\n }\n this.$emit('keydown', e)\n },\n // On focus change, wrap focus to stay inside the dialog\n // https://github.com/vuetifyjs/vuetify/issues/6892\n onFocusin (e: Event) {\n if (!e || !this.retainFocus) return\n\n const target = e.target as HTMLElement\n\n if (\n !!target &&\n this.$refs.dialog &&\n // It isn't the document or the dialog body\n ![document, this.$refs.dialog].includes(target) &&\n // It isn't inside the dialog body\n !this.$refs.dialog.contains(target) &&\n // We're the topmost dialog\n this.activeZIndex >= this.getMaxZIndex() &&\n // It isn't inside a dependent element (like a menu)\n !this.getOpenDependentElements().some(el => el.contains(target))\n // So we must have focused something outside the dialog and its children\n ) {\n // Find and focus the first available element inside the dialog\n const focusable = this.$refs.dialog.querySelectorAll('button, [href], input:not([type=\"hidden\"]), select, textarea, [tabindex]:not([tabindex=\"-1\"])')\n const el = [...focusable].find(el => !el.hasAttribute('disabled') && !el.matches('[tabindex=\"-1\"]')) as HTMLElement | undefined\n el && el.focus()\n }\n },\n genContent () {\n return this.showLazyContent(() => [\n this.$createElement(VThemeProvider, {\n props: {\n root: true,\n light: this.light,\n dark: this.dark,\n },\n }, [\n this.$createElement('div', {\n class: this.contentClasses,\n attrs: {\n role: 'dialog',\n 'aria-modal': this.hideOverlay ? undefined : 'true',\n ...this.getScopeIdAttrs(),\n },\n on: { keydown: this.onKeydown },\n style: { zIndex: this.activeZIndex },\n ref: 'content',\n }, [this.genTransition()]),\n ]),\n ])\n },\n genTransition () {\n const content = this.genInnerContent()\n\n if (!this.transition) return content\n\n return this.$createElement('transition', {\n props: {\n name: this.transition,\n origin: this.origin,\n appear: true,\n },\n }, [content])\n },\n genInnerContent () {\n const data: VNodeData = {\n class: this.classes,\n attrs: {\n tabindex: this.isActive ? 0 : undefined,\n },\n ref: 'dialog',\n directives: [\n {\n name: 'click-outside',\n value: {\n handler: this.onClickOutside,\n closeConditional: this.closeConditional,\n include: this.getOpenDependentElements,\n },\n },\n { name: 'show', value: this.isActive },\n ],\n style: {\n transformOrigin: this.origin,\n },\n }\n\n if (!this.fullscreen) {\n data.style = {\n ...data.style as object,\n maxWidth: convertToUnit(this.maxWidth),\n width: convertToUnit(this.width),\n }\n }\n\n return this.$createElement('div', data, this.getContentSlot())\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-dialog__container',\n class: {\n 'v-dialog__container--attached':\n this.attach === '' ||\n this.attach === true ||\n this.attach === 'attach',\n },\n }, [\n this.genActivator(),\n this.genContent(),\n ])\n },\n})\n","// Styles\nimport './VDivider.sass'\n\n// Types\nimport { VNode } from 'vue'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\n\nexport default Themeable.extend({\n name: 'v-divider',\n\n props: {\n inset: Boolean,\n vertical: Boolean,\n },\n\n render (h): VNode {\n // WAI-ARIA attributes\n let orientation\n if (!this.$attrs.role || this.$attrs.role === 'separator') {\n orientation = this.vertical ? 'vertical' : 'horizontal'\n }\n return h('hr', {\n class: {\n 'v-divider': true,\n 'v-divider--inset': this.inset,\n 'v-divider--vertical': this.vertical,\n ...this.themeClasses,\n },\n attrs: {\n role: 'separator',\n 'aria-orientation': orientation,\n ...this.$attrs,\n },\n on: this.$listeners,\n })\n },\n})\n","import VDivider from './VDivider'\n\nexport { VDivider }\nexport default VDivider\n","// Styles\nimport './VFileInput.sass'\n\n// Extensions\nimport VTextField from '../VTextField'\n\n// Components\nimport { VChip } from '../VChip'\n\n// Types\nimport { PropValidator } from 'vue/types/options'\n\n// Utilities\nimport { deepEqual, humanReadableFileSize, wrapInArray } from '../../util/helpers'\nimport { consoleError } from '../../util/console'\nimport { mergeStyles } from '../../util/mergeData'\n\nexport default VTextField.extend({\n name: 'v-file-input',\n\n model: {\n prop: 'value',\n event: 'change',\n },\n\n props: {\n chips: Boolean,\n clearable: {\n type: Boolean,\n default: true,\n },\n counterSizeString: {\n type: String,\n default: '$vuetify.fileInput.counterSize',\n },\n counterString: {\n type: String,\n default: '$vuetify.fileInput.counter',\n },\n hideInput: Boolean,\n multiple: Boolean,\n placeholder: String,\n prependIcon: {\n type: String,\n default: '$file',\n },\n readonly: {\n type: Boolean,\n default: false,\n },\n showSize: {\n type: [Boolean, Number],\n default: false,\n validator: (v: boolean | number) => {\n return (\n typeof v === 'boolean' ||\n [1000, 1024].includes(v)\n )\n },\n } as PropValidator,\n smallChips: Boolean,\n truncateLength: {\n type: [Number, String],\n default: 22,\n },\n type: {\n type: String,\n default: 'file',\n },\n value: {\n default: undefined,\n validator: val => {\n return wrapInArray(val).every(v => v != null && typeof v === 'object')\n },\n } as PropValidator,\n },\n\n computed: {\n classes (): object {\n return {\n ...VTextField.options.computed.classes.call(this),\n 'v-file-input': true,\n }\n },\n computedCounterValue (): string {\n const fileCount = (this.multiple && this.lazyValue)\n ? this.lazyValue.length\n : (this.lazyValue instanceof File) ? 1 : 0\n\n if (!this.showSize) return this.$vuetify.lang.t(this.counterString, fileCount)\n\n const bytes = this.internalArrayValue.reduce((bytes: number, { size = 0 }: File) => {\n return bytes + size\n }, 0)\n\n return this.$vuetify.lang.t(\n this.counterSizeString,\n fileCount,\n humanReadableFileSize(bytes, this.base === 1024)\n )\n },\n internalArrayValue (): File[] {\n return wrapInArray(this.internalValue)\n },\n internalValue: {\n get (): File[] {\n return this.lazyValue\n },\n set (val: File | File[]) {\n this.lazyValue = val\n this.$emit('change', this.lazyValue)\n },\n },\n isDirty (): boolean {\n return this.internalArrayValue.length > 0\n },\n isLabelActive (): boolean {\n return this.isDirty\n },\n text (): string[] {\n if (!this.isDirty && (this.persistentPlaceholder || this.isFocused || !this.hasLabel)) return [this.placeholder]\n\n return this.internalArrayValue.map((file: File) => {\n const {\n name = '',\n size = 0,\n } = file\n\n const truncatedText = this.truncateText(name)\n\n return !this.showSize\n ? truncatedText\n : `${truncatedText} (${humanReadableFileSize(size, this.base === 1024)})`\n })\n },\n base (): 1000 | 1024 | undefined {\n return typeof this.showSize !== 'boolean' ? this.showSize : undefined\n },\n hasChips (): boolean {\n return this.chips || this.smallChips\n },\n },\n\n watch: {\n readonly: {\n handler (v) {\n if (v === true) consoleError('readonly is not supported on ', this)\n },\n immediate: true,\n },\n value (v) {\n const value = this.multiple ? v : v ? [v] : []\n if (!deepEqual(value, this.$refs.input.files)) {\n // When the input value is changed programatically, clear the\n // internal input's value so that the `onInput` handler\n // can be triggered again if the user re-selects the exact\n // same file(s). Ideally, `input.files` should be\n // manipulated directly but that property is readonly.\n this.$refs.input.value = ''\n }\n },\n },\n\n methods: {\n clearableCallback () {\n this.internalValue = this.multiple ? [] : null\n this.$refs.input.value = ''\n },\n genChips () {\n if (!this.isDirty) return []\n\n return this.text.map((text, index) => this.$createElement(VChip, {\n props: { small: this.smallChips },\n on: {\n 'click:close': () => {\n const internalValue = this.internalValue\n internalValue.splice(index, 1)\n this.internalValue = internalValue // Trigger the watcher\n },\n },\n }, [text]))\n },\n genControl () {\n const render = VTextField.options.methods.genControl.call(this)\n\n if (this.hideInput) {\n render.data!.style = mergeStyles(\n render.data!.style,\n { display: 'none' }\n )\n }\n\n return render\n },\n genInput () {\n const input = VTextField.options.methods.genInput.call(this)\n\n input.data!.attrs!.multiple = this.multiple\n\n // We should not be setting value\n // programmatically on the input\n // when it is using type=\"file\"\n delete input.data!.domProps!.value\n\n // This solves an issue in Safari where\n // nothing happens when adding a file\n // do to the input event not firing\n // https://github.com/vuetifyjs/vuetify/issues/7941\n delete input.data!.on!.input\n input.data!.on!.change = this.onInput\n\n return [this.genSelections(), input]\n },\n genPrependSlot () {\n if (!this.prependIcon) return null\n\n const icon = this.genIcon('prepend', () => {\n this.$refs.input.click()\n })\n\n return this.genSlot('prepend', 'outer', [icon])\n },\n genSelectionText (): string[] {\n const length = this.text.length\n\n if (length < 2) return this.text\n if (this.showSize && !this.counter) return [this.computedCounterValue]\n return [this.$vuetify.lang.t(this.counterString, length)]\n },\n genSelections () {\n const children = []\n\n if (this.isDirty && this.$scopedSlots.selection) {\n this.internalArrayValue.forEach((file: File, index: number) => {\n if (!this.$scopedSlots.selection) return\n\n children.push(\n this.$scopedSlots.selection({\n text: this.text[index],\n file,\n index,\n })\n )\n })\n } else {\n children.push(this.hasChips && this.isDirty ? this.genChips() : this.genSelectionText())\n }\n\n return this.$createElement('div', {\n staticClass: 'v-file-input__text',\n class: {\n 'v-file-input__text--placeholder': this.placeholder && !this.isDirty,\n 'v-file-input__text--chips': this.hasChips && !this.$scopedSlots.selection,\n },\n }, children)\n },\n genTextFieldSlot () {\n const node = VTextField.options.methods.genTextFieldSlot.call(this)\n\n node.data!.on = {\n ...(node.data!.on || {}),\n click: () => this.$refs.input.click(),\n }\n\n return node\n },\n onInput (e: Event) {\n const files = [...(e.target as HTMLInputElement).files || []]\n\n this.internalValue = this.multiple ? files : files[0]\n\n // Set initialValue here otherwise isFocused\n // watcher in VTextField will emit a change\n // event whenever the component is blurred\n this.initialValue = this.internalValue\n },\n onKeyDown (e: KeyboardEvent) {\n this.$emit('keydown', e)\n },\n truncateText (str: string) {\n if (str.length < Number(this.truncateLength)) return str\n const charsKeepOneSide = Math.floor((Number(this.truncateLength) - 1) / 2)\n return `${str.slice(0, charsKeepOneSide)}…${str.slice(str.length - charsKeepOneSide)}`\n },\n },\n})\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 './_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 './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 './_grid.sass'\nimport { createSimpleFunctional } from '../../util/helpers'\n\nexport default createSimpleFunctional('spacer', 'div', 'v-spacer')\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 './VIcon.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Sizeable from '../../mixins/sizeable'\nimport Themeable from '../../mixins/themeable'\n\n// Util\nimport { convertToUnit, keys, remapInternalIcon } from '../../util/helpers'\n\n// Types\nimport Vue, { CreateElement, VNode, VNodeChildren, VNodeData } from 'vue'\nimport mixins from '../../util/mixins'\nimport { VuetifyIcon, VuetifyIconComponent } from 'vuetify/types/services/icons'\n\nenum SIZE_MAP {\n xSmall = '12px',\n small = '16px',\n default = '24px',\n medium = '28px',\n large = '36px',\n xLarge = '40px'\n}\n\nfunction isFontAwesome5 (iconType: string): boolean {\n return ['fas', 'far', 'fal', 'fab', 'fad', 'fak'].some(val => iconType.includes(val))\n}\n\nfunction isSvgPath (icon: string): boolean {\n return (/^[mzlhvcsqta]\\s*[-+.0-9][^mlhvzcsqta]+/i.test(icon) && /[\\dz]$/i.test(icon) && icon.length > 4)\n}\n\nconst VIcon = mixins(\n BindsAttrs,\n Colorable,\n Sizeable,\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-icon',\n\n props: {\n dense: Boolean,\n disabled: Boolean,\n left: Boolean,\n right: Boolean,\n size: [Number, String],\n tag: {\n type: String,\n required: false,\n default: 'i',\n },\n },\n\n computed: {\n medium () {\n return false\n },\n hasClickListener (): boolean {\n return Boolean(\n this.listeners$.click || this.listeners$['!click']\n )\n },\n },\n\n methods: {\n getIcon (): VuetifyIcon {\n let iconName = ''\n if (this.$slots.default) iconName = this.$slots.default[0].text!.trim()\n\n return remapInternalIcon(this, iconName)\n },\n getSize (): string | undefined {\n const sizes = {\n xSmall: this.xSmall,\n small: this.small,\n medium: this.medium,\n large: this.large,\n xLarge: this.xLarge,\n }\n\n const explicitSize = keys(sizes).find(key => sizes[key])\n\n return (\n (explicitSize && SIZE_MAP[explicitSize]) || convertToUnit(this.size)\n )\n },\n // Component data for both font icon and SVG wrapper span\n getDefaultData (): VNodeData {\n return {\n staticClass: 'v-icon notranslate',\n class: {\n 'v-icon--disabled': this.disabled,\n 'v-icon--left': this.left,\n 'v-icon--link': this.hasClickListener,\n 'v-icon--right': this.right,\n 'v-icon--dense': this.dense,\n },\n attrs: {\n 'aria-hidden': !this.hasClickListener,\n disabled: this.hasClickListener && this.disabled,\n type: this.hasClickListener ? 'button' : undefined,\n ...this.attrs$,\n },\n on: this.listeners$,\n }\n },\n getSvgWrapperData () {\n const fontSize = this.getSize()\n const wrapperData = {\n ...this.getDefaultData(),\n style: fontSize ? {\n fontSize,\n height: fontSize,\n width: fontSize,\n } : undefined,\n }\n this.applyColors(wrapperData)\n\n return wrapperData\n },\n applyColors (data: VNodeData): void {\n data.class = { ...data.class, ...this.themeClasses }\n this.setTextColor(this.color, data)\n },\n renderFontIcon (icon: string, h: CreateElement): VNode {\n const newChildren: VNodeChildren = []\n const data = this.getDefaultData()\n\n let iconType = 'material-icons'\n // Material Icon delimiter is _\n // https://material.io/icons/\n const delimiterIndex = icon.indexOf('-')\n const isMaterialIcon = delimiterIndex <= -1\n\n if (isMaterialIcon) {\n // Material icon uses ligatures.\n newChildren.push(icon)\n } else {\n iconType = icon.slice(0, delimiterIndex)\n if (isFontAwesome5(iconType)) iconType = ''\n }\n\n data.class[iconType] = true\n data.class[icon] = !isMaterialIcon\n\n const fontSize = this.getSize()\n if (fontSize) data.style = { fontSize }\n\n this.applyColors(data)\n\n return h(this.hasClickListener ? 'button' : this.tag, data, newChildren)\n },\n renderSvgIcon (icon: string, h: CreateElement): VNode {\n const svgData: VNodeData = {\n class: 'v-icon__svg',\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: '0 0 24 24',\n role: 'img',\n 'aria-hidden': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n svgData.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h('svg', svgData, [\n h('path', {\n attrs: {\n d: icon,\n },\n }),\n ]),\n ])\n },\n renderSvgIconComponent (\n icon: VuetifyIconComponent,\n h: CreateElement\n ): VNode {\n const data: VNodeData = {\n class: {\n 'v-icon__component': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n data.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n this.applyColors(data)\n\n const component = icon.component\n data.props = icon.props\n data.nativeOn = data.on\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h(component, data),\n ])\n },\n },\n\n render (h: CreateElement): VNode {\n const icon = this.getIcon()\n\n if (typeof icon === 'string') {\n if (isSvgPath(icon)) {\n return this.renderSvgIcon(icon, h)\n }\n return this.renderFontIcon(icon, h)\n }\n\n return this.renderSvgIconComponent(icon, h)\n },\n})\n\nexport default Vue.extend({\n name: 'v-icon',\n\n $_wrapperFor: VIcon,\n\n functional: true,\n\n render (h, { data, children }): VNode {\n let iconName = ''\n\n // Support usage of v-text and v-html\n if (data.domProps) {\n iconName = data.domProps.textContent ||\n data.domProps.innerHTML ||\n iconName\n\n // Remove nodes so it doesn't\n // overwrite our changes\n delete data.domProps.textContent\n delete data.domProps.innerHTML\n }\n\n return h(VIcon, data, iconName ? [iconName] : children)\n },\n})\n","import VIcon from './VIcon'\n\nexport { VIcon }\nexport default VIcon\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 './VMessages.sass'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Themeable from '../../mixins/themeable'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator } from 'vue/types/options'\nimport mixins from '../../util/mixins'\n\n// Utilities\nimport { getSlot } from '../../util/helpers'\n\n/* @vue/component */\nexport default mixins(Colorable, Themeable).extend({\n name: 'v-messages',\n\n props: {\n value: {\n type: Array,\n default: () => ([]),\n } as PropValidator,\n },\n\n methods: {\n genChildren () {\n return this.$createElement('transition-group', {\n staticClass: 'v-messages__wrapper',\n attrs: {\n name: 'message-transition',\n tag: 'div',\n },\n }, this.value.map(this.genMessage))\n },\n genMessage (message: string, key: number) {\n return this.$createElement('div', {\n staticClass: 'v-messages__message',\n key,\n }, getSlot(this, 'default', { message, key }) || [message])\n },\n },\n\n render (h): VNode {\n return h('div', this.setTextColor(this.color, {\n staticClass: 'v-messages',\n class: this.themeClasses,\n }), [this.genChildren()])\n },\n})\n","import VMessages from './VMessages'\n\nexport { VMessages }\nexport default VMessages\n","// Styles\nimport './VInput.sass'\n\n// Components\nimport VIcon from '../VIcon'\nimport VLabel from '../VLabel'\nimport VMessages from '../VMessages'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Validatable from '../../mixins/validatable'\n\n// Utilities\nimport {\n convertToUnit,\n getSlot,\n kebabCase,\n} from '../../util/helpers'\nimport mergeData from '../../util/mergeData'\n\n// Types\nimport { VNode, VNodeData, PropType } from 'vue'\nimport mixins from '../../util/mixins'\nimport { InputValidationRule } from 'vuetify/types'\n\nconst baseMixins = mixins(\n BindsAttrs,\n Validatable,\n)\n\ninterface options extends InstanceType {\n /* eslint-disable-next-line camelcase */\n $_modelEvent: string\n}\n\n/* @vue/component */\nexport default baseMixins.extend().extend({\n name: 'v-input',\n\n inheritAttrs: false,\n\n props: {\n appendIcon: String,\n backgroundColor: {\n type: String,\n default: '',\n },\n dense: Boolean,\n height: [Number, String],\n hideDetails: [Boolean, String] as PropType,\n hideSpinButtons: Boolean,\n hint: String,\n id: String,\n label: String,\n loading: Boolean,\n persistentHint: Boolean,\n prependIcon: String,\n value: null as any as PropType,\n },\n\n data () {\n return {\n lazyValue: this.value,\n hasMouseDown: false,\n }\n },\n\n computed: {\n classes (): object {\n return {\n 'v-input--has-state': this.hasState,\n 'v-input--hide-details': !this.showDetails,\n 'v-input--is-label-active': this.isLabelActive,\n 'v-input--is-dirty': this.isDirty,\n 'v-input--is-disabled': this.isDisabled,\n 'v-input--is-focused': this.isFocused,\n // .loading === '' so we can't just cast to boolean\n 'v-input--is-loading': this.loading !== false && this.loading != null,\n 'v-input--is-readonly': this.isReadonly,\n 'v-input--dense': this.dense,\n 'v-input--hide-spin-buttons': this.hideSpinButtons,\n ...this.themeClasses,\n }\n },\n computedId (): string {\n return this.id || `input-${this._uid}`\n },\n hasDetails (): boolean {\n return this.messagesToDisplay.length > 0\n },\n hasHint (): boolean {\n return !this.hasMessages &&\n !!this.hint &&\n (this.persistentHint || this.isFocused)\n },\n hasLabel (): boolean {\n return !!(this.$slots.label || this.label)\n },\n // Proxy for `lazyValue`\n // This allows an input\n // to function without\n // a provided model\n internalValue: {\n get (): any {\n return this.lazyValue\n },\n set (val: any) {\n this.lazyValue = val\n this.$emit(this.$_modelEvent, val)\n },\n },\n isDirty (): boolean {\n return !!this.lazyValue\n },\n isLabelActive (): boolean {\n return this.isDirty\n },\n messagesToDisplay (): string[] {\n if (this.hasHint) return [this.hint]\n\n if (!this.hasMessages) return []\n\n return this.validations.map((validation: string | InputValidationRule) => {\n if (typeof validation === 'string') return validation\n\n const validationResult = validation(this.internalValue)\n\n return typeof validationResult === 'string' ? validationResult : ''\n }).filter(message => message !== '')\n },\n showDetails (): boolean {\n return this.hideDetails === false || (this.hideDetails === 'auto' && this.hasDetails)\n },\n },\n\n watch: {\n value (val) {\n this.lazyValue = val\n },\n },\n\n beforeCreate () {\n // v-radio-group needs to emit a different event\n // https://github.com/vuetifyjs/vuetify/issues/4752\n this.$_modelEvent = (this.$options.model && this.$options.model.event) || 'input'\n },\n\n methods: {\n genContent () {\n return [\n this.genPrependSlot(),\n this.genControl(),\n this.genAppendSlot(),\n ]\n },\n genControl () {\n return this.$createElement('div', {\n staticClass: 'v-input__control',\n attrs: { title: this.attrs$.title },\n }, [\n this.genInputSlot(),\n this.genMessages(),\n ])\n },\n genDefaultSlot () {\n return [\n this.genLabel(),\n this.$slots.default,\n ]\n },\n genIcon (\n type: string,\n cb?: (e: Event) => void,\n extraData: VNodeData = {}\n ) {\n const icon = (this as any)[`${type}Icon`]\n const eventName = `click:${kebabCase(type)}`\n const hasListener = !!(this.listeners$[eventName] || cb)\n\n const data = mergeData({\n attrs: {\n 'aria-label': hasListener ? kebabCase(type).split('-')[0] + ' icon' : undefined,\n color: this.validationState,\n dark: this.dark,\n disabled: this.isDisabled,\n light: this.light,\n tabindex: type === 'clear' ? -1 : undefined,\n },\n on: !hasListener\n ? undefined\n : {\n click: (e: Event) => {\n e.preventDefault()\n e.stopPropagation()\n\n this.$emit(eventName, e)\n cb && cb(e)\n },\n // Container has g event that will\n // trigger menu open if enclosed\n mouseup: (e: Event) => {\n e.preventDefault()\n e.stopPropagation()\n },\n },\n }, extraData)\n\n return this.$createElement('div', {\n staticClass: `v-input__icon`,\n class: type ? `v-input__icon--${kebabCase(type)}` : undefined,\n }, [\n this.$createElement(\n VIcon,\n data,\n icon\n ),\n ])\n },\n genInputSlot () {\n return this.$createElement('div', this.setBackgroundColor(this.backgroundColor, {\n staticClass: 'v-input__slot',\n style: { height: convertToUnit(this.height) },\n on: {\n click: this.onClick,\n mousedown: this.onMouseDown,\n mouseup: this.onMouseUp,\n },\n ref: 'input-slot',\n }), [this.genDefaultSlot()])\n },\n genLabel () {\n if (!this.hasLabel) return null\n\n return this.$createElement(VLabel, {\n props: {\n color: this.validationState,\n dark: this.dark,\n disabled: this.isDisabled,\n focused: this.hasState,\n for: this.computedId,\n light: this.light,\n },\n }, this.$slots.label || this.label)\n },\n genMessages () {\n if (!this.showDetails) return null\n\n return this.$createElement(VMessages, {\n props: {\n color: this.hasHint ? '' : this.validationState,\n dark: this.dark,\n light: this.light,\n value: this.messagesToDisplay,\n },\n attrs: {\n role: this.hasMessages ? 'alert' : null,\n },\n scopedSlots: {\n default: props => getSlot(this, 'message', props),\n },\n })\n },\n genSlot (\n type: string,\n location: string,\n slot: (VNode | VNode[])[]\n ) {\n if (!slot.length) return null\n\n const ref = `${type}-${location}`\n\n return this.$createElement('div', {\n staticClass: `v-input__${ref}`,\n ref,\n }, slot)\n },\n genPrependSlot () {\n const slot = []\n\n if (this.$slots.prepend) {\n slot.push(this.$slots.prepend)\n } else if (this.prependIcon) {\n slot.push(this.genIcon('prepend'))\n }\n\n return this.genSlot('prepend', 'outer', slot)\n },\n genAppendSlot () {\n const slot = []\n\n // Append icon for text field was really\n // an appended inner icon, v-text-field\n // will overwrite this method in order to obtain\n // backwards compat\n if (this.$slots.append) {\n slot.push(this.$slots.append)\n } else if (this.appendIcon) {\n slot.push(this.genIcon('append'))\n }\n\n return this.genSlot('append', 'outer', slot)\n },\n onClick (e: Event) {\n this.$emit('click', e)\n },\n onMouseDown (e: Event) {\n this.hasMouseDown = true\n this.$emit('mousedown', e)\n },\n onMouseUp (e: Event) {\n this.hasMouseDown = false\n this.$emit('mouseup', e)\n },\n },\n\n render (h): VNode {\n return h('div', this.setTextColor(this.validationState, {\n staticClass: 'v-input',\n class: this.classes,\n }), this.genContent())\n },\n})\n","import VInput from './VInput'\n\nexport { VInput }\nexport default VInput\n","// Styles\nimport './VItemGroup.sass'\n\n// Mixins\nimport Comparable from '../../mixins/comparable'\nimport Groupable from '../../mixins/groupable'\nimport Proxyable from '../../mixins/proxyable'\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport { consoleWarn } from '../../util/console'\n\n// Types\nimport { VNode } from 'vue/types'\n\nexport type GroupableInstance = InstanceType & {\n id?: string\n to?: any\n value?: any\n }\n\nexport const BaseItemGroup = mixins(\n Comparable,\n Proxyable,\n Themeable\n).extend({\n name: 'base-item-group',\n\n props: {\n activeClass: {\n type: String,\n default: 'v-item--active',\n },\n mandatory: Boolean,\n max: {\n type: [Number, String],\n default: null,\n },\n multiple: Boolean,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n data () {\n return {\n // As long as a value is defined, show it\n // Otherwise, check if multiple\n // to determine which default to provide\n internalLazyValue: this.value !== undefined\n ? this.value\n : this.multiple ? [] : undefined,\n items: [] as GroupableInstance[],\n }\n },\n\n computed: {\n classes (): Record {\n return {\n 'v-item-group': true,\n ...this.themeClasses,\n }\n },\n selectedIndex (): number {\n return (this.selectedItem && this.items.indexOf(this.selectedItem)) || -1\n },\n selectedItem (): GroupableInstance | undefined {\n if (this.multiple) return undefined\n\n return this.selectedItems[0]\n },\n selectedItems (): GroupableInstance[] {\n return this.items.filter((item, index) => {\n return this.toggleMethod(this.getValue(item, index))\n })\n },\n selectedValues (): any[] {\n if (this.internalValue == null) return []\n\n return Array.isArray(this.internalValue)\n ? this.internalValue\n : [this.internalValue]\n },\n toggleMethod (): (v: any) => boolean {\n if (!this.multiple) {\n return (v: any) => this.valueComparator(this.internalValue, v)\n }\n\n const internalValue = this.internalValue\n if (Array.isArray(internalValue)) {\n return (v: any) => internalValue.some(intern => this.valueComparator(intern, v))\n }\n\n return () => false\n },\n },\n\n watch: {\n internalValue: 'updateItemsState',\n items: 'updateItemsState',\n },\n\n created () {\n if (this.multiple && !Array.isArray(this.internalValue)) {\n consoleWarn('Model must be bound to an array if the multiple property is true.', this)\n }\n },\n\n methods: {\n\n genData (): object {\n return {\n class: this.classes,\n }\n },\n getValue (item: GroupableInstance, i: number): unknown {\n return item.value === undefined\n ? i\n : item.value\n },\n onClick (item: GroupableInstance) {\n this.updateInternalValue(\n this.getValue(item, this.items.indexOf(item))\n )\n },\n register (item: GroupableInstance) {\n const index = this.items.push(item) - 1\n\n item.$on('change', () => this.onClick(item))\n\n // If no value provided and mandatory,\n // assign first registered item\n if (this.mandatory && !this.selectedValues.length) {\n this.updateMandatory()\n }\n\n this.updateItem(item, index)\n },\n unregister (item: GroupableInstance) {\n if (this._isDestroyed) return\n\n const index = this.items.indexOf(item)\n const value = this.getValue(item, index)\n\n this.items.splice(index, 1)\n\n const valueIndex = this.selectedValues.indexOf(value)\n\n // Items is not selected, do nothing\n if (valueIndex < 0) return\n\n // If not mandatory, use regular update process\n if (!this.mandatory) {\n return this.updateInternalValue(value)\n }\n\n // Remove the value\n if (this.multiple && Array.isArray(this.internalValue)) {\n this.internalValue = this.internalValue.filter(v => v !== value)\n } else {\n this.internalValue = undefined\n }\n\n // If mandatory and we have no selection\n // add the last item as value\n /* istanbul ignore else */\n if (!this.selectedItems.length) {\n this.updateMandatory(true)\n }\n },\n updateItem (item: GroupableInstance, index: number) {\n const value = this.getValue(item, index)\n\n item.isActive = this.toggleMethod(value)\n },\n // https://github.com/vuetifyjs/vuetify/issues/5352\n updateItemsState () {\n this.$nextTick(() => {\n if (this.mandatory &&\n !this.selectedItems.length\n ) {\n return this.updateMandatory()\n }\n\n // TODO: Make this smarter so it\n // doesn't have to iterate every\n // child in an update\n this.items.forEach(this.updateItem)\n })\n },\n updateInternalValue (value: any) {\n this.multiple\n ? this.updateMultiple(value)\n : this.updateSingle(value)\n },\n updateMandatory (last?: boolean) {\n if (!this.items.length) return\n\n const items = this.items.slice()\n\n if (last) items.reverse()\n\n const item = items.find(item => !item.disabled)\n\n // If no tabs are available\n // aborts mandatory value\n if (!item) return\n\n const index = this.items.indexOf(item)\n\n this.updateInternalValue(\n this.getValue(item, index)\n )\n },\n updateMultiple (value: any) {\n const defaultValue = Array.isArray(this.internalValue)\n ? this.internalValue\n : []\n const internalValue = defaultValue.slice()\n const index = internalValue.findIndex(val => this.valueComparator(val, value))\n\n if (\n this.mandatory &&\n // Item already exists\n index > -1 &&\n // value would be reduced below min\n internalValue.length - 1 < 1\n ) return\n\n if (\n // Max is set\n this.max != null &&\n // Item doesn't exist\n index < 0 &&\n // value would be increased above max\n internalValue.length + 1 > this.max\n ) return\n\n index > -1\n ? internalValue.splice(index, 1)\n : internalValue.push(value)\n\n this.internalValue = internalValue\n },\n updateSingle (value: any) {\n const isSame = this.valueComparator(this.internalValue, value)\n\n if (this.mandatory && isSame) return\n\n this.internalValue = isSame ? undefined : value\n },\n },\n\n render (h): VNode {\n return h(this.tag, this.genData(), this.$slots.default)\n },\n})\n\nexport default BaseItemGroup.extend({\n name: 'v-item-group',\n\n provide (): object {\n return {\n itemGroup: this,\n }\n },\n})\n","// Styles\nimport './VLabel.sass'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Themeable, { functionalThemeClasses } from '../../mixins/themeable'\n\n// Types\nimport { VNode } from 'vue'\nimport mixins from '../../util/mixins'\n\n// Helpers\nimport { convertToUnit } from '../../util/helpers'\n\n/* @vue/component */\nexport default mixins(Themeable).extend({\n name: 'v-label',\n\n functional: true,\n\n props: {\n absolute: Boolean,\n color: {\n type: String,\n default: 'primary',\n },\n disabled: Boolean,\n focused: Boolean,\n for: String,\n left: {\n type: [Number, String],\n default: 0,\n },\n right: {\n type: [Number, String],\n default: 'auto',\n },\n value: Boolean,\n },\n\n render (h, ctx): VNode {\n const { children, listeners, props } = ctx\n const data = {\n staticClass: 'v-label',\n class: {\n 'v-label--active': props.value,\n 'v-label--is-disabled': props.disabled,\n ...functionalThemeClasses(ctx),\n },\n attrs: {\n for: props.for,\n 'aria-hidden': !props.for,\n },\n on: listeners,\n style: {\n left: convertToUnit(props.left),\n right: convertToUnit(props.right),\n position: props.absolute ? 'absolute' : 'relative',\n },\n ref: 'label',\n }\n\n return h('label', Colorable.options.methods.setTextColor(props.focused && props.color, data), children)\n },\n})\n","import VLabel from './VLabel'\n\nexport { VLabel }\nexport default VLabel\n","// Styles\nimport './VList.sass'\nimport VListGroup from './VListGroup'\n\n// Components\nimport VSheet from '../VSheet/VSheet'\n\n// Types\nimport { VNode } from 'vue'\n\ntype VListGroupInstance = InstanceType\n\ninterface options extends InstanceType {\n isInMenu: boolean\n isInNav: boolean\n}\n\n/* @vue/component */\nexport default VSheet.extend().extend({\n name: 'v-list',\n\n provide (): object {\n return {\n isInList: true,\n list: this,\n }\n },\n\n inject: {\n isInMenu: {\n default: false,\n },\n isInNav: {\n default: false,\n },\n },\n\n props: {\n dense: Boolean,\n disabled: Boolean,\n expand: Boolean,\n flat: Boolean,\n nav: Boolean,\n rounded: Boolean,\n subheader: Boolean,\n threeLine: Boolean,\n twoLine: Boolean,\n },\n\n data: () => ({\n groups: [] as VListGroupInstance[],\n }),\n\n computed: {\n classes (): object {\n return {\n ...VSheet.options.computed.classes.call(this),\n 'v-list--dense': this.dense,\n 'v-list--disabled': this.disabled,\n 'v-list--flat': this.flat,\n 'v-list--nav': this.nav,\n 'v-list--rounded': this.rounded,\n 'v-list--subheader': this.subheader,\n 'v-list--two-line': this.twoLine,\n 'v-list--three-line': this.threeLine,\n }\n },\n },\n\n methods: {\n register (content: VListGroupInstance) {\n this.groups.push(content)\n },\n unregister (content: VListGroupInstance) {\n const index = this.groups.findIndex(g => g._uid === content._uid)\n\n if (index > -1) this.groups.splice(index, 1)\n },\n listClick (uid: number) {\n if (this.expand) return\n\n for (const group of this.groups) {\n group.toggle(uid)\n }\n },\n },\n\n render (h): VNode {\n const data = {\n staticClass: 'v-list',\n class: this.classes,\n style: this.styles,\n attrs: {\n role: this.isInNav || this.isInMenu ? undefined : 'list',\n ...this.attrs$,\n },\n }\n\n return h(this.tag, this.setBackgroundColor(this.color, data), [this.$slots.default])\n },\n})\n","// Styles\nimport './VListGroup.sass'\n\n// Components\nimport VIcon from '../VIcon'\nimport VList from './VList'\nimport VListItem from './VListItem'\nimport VListItemIcon from './VListItemIcon'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Bootable from '../../mixins/bootable'\nimport Colorable from '../../mixins/colorable'\nimport Toggleable from '../../mixins/toggleable'\nimport { inject as RegistrableInject } from '../../mixins/registrable'\n\n// Directives\nimport ripple from '../../directives/ripple'\n\n// Transitions\nimport { VExpandTransition } from '../transitions'\n\n// Utils\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport { getSlot } from '../../util/helpers'\n\n// Types\nimport { VNode } from 'vue'\nimport { Route } from 'vue-router'\n\nconst baseMixins = mixins(\n BindsAttrs,\n Bootable,\n Colorable,\n RegistrableInject('list'),\n Toggleable\n)\n\ntype VListInstance = InstanceType\n\ninterface options extends ExtractVue {\n list: VListInstance\n $refs: {\n group: HTMLElement\n }\n $route: Route\n}\n\nexport default baseMixins.extend().extend({\n name: 'v-list-group',\n\n directives: { ripple },\n\n props: {\n activeClass: {\n type: String,\n default: '',\n },\n appendIcon: {\n type: String,\n default: '$expand',\n },\n color: {\n type: String,\n default: 'primary',\n },\n disabled: Boolean,\n group: [String, RegExp],\n noAction: Boolean,\n prependIcon: String,\n ripple: {\n type: [Boolean, Object],\n default: true,\n },\n subGroup: Boolean,\n },\n\n computed: {\n classes (): object {\n return {\n 'v-list-group--active': this.isActive,\n 'v-list-group--disabled': this.disabled,\n 'v-list-group--no-action': this.noAction,\n 'v-list-group--sub-group': this.subGroup,\n }\n },\n },\n\n watch: {\n isActive (val: boolean) {\n /* istanbul ignore else */\n if (!this.subGroup && val) {\n this.list && this.list.listClick(this._uid)\n }\n },\n $route: 'onRouteChange',\n },\n\n created () {\n this.list && this.list.register(this)\n\n if (this.group &&\n this.$route &&\n this.value == null\n ) {\n this.isActive = this.matchRoute(this.$route.path)\n }\n },\n\n beforeDestroy () {\n this.list && this.list.unregister(this)\n },\n\n methods: {\n click (e: Event) {\n if (this.disabled) return\n\n this.isBooted = true\n\n this.$emit('click', e)\n this.$nextTick(() => (this.isActive = !this.isActive))\n },\n genIcon (icon: string | false): VNode {\n return this.$createElement(VIcon, icon)\n },\n genAppendIcon (): VNode | null {\n const icon = !this.subGroup ? this.appendIcon : false\n\n if (!icon && !this.$slots.appendIcon) return null\n\n return this.$createElement(VListItemIcon, {\n staticClass: 'v-list-group__header__append-icon',\n }, [\n this.$slots.appendIcon || this.genIcon(icon),\n ])\n },\n genHeader (): VNode {\n return this.$createElement(VListItem, {\n staticClass: 'v-list-group__header',\n attrs: {\n 'aria-expanded': String(this.isActive),\n role: 'button',\n },\n class: {\n [this.activeClass]: this.isActive,\n },\n props: {\n inputValue: this.isActive,\n },\n directives: [{\n name: 'ripple',\n value: this.ripple,\n }],\n on: {\n ...this.listeners$,\n click: this.click,\n },\n }, [\n this.genPrependIcon(),\n this.$slots.activator,\n this.genAppendIcon(),\n ])\n },\n genItems (): VNode[] {\n return this.showLazyContent(() => [\n this.$createElement('div', {\n staticClass: 'v-list-group__items',\n directives: [{\n name: 'show',\n value: this.isActive,\n }],\n }, getSlot(this)),\n ])\n },\n genPrependIcon (): VNode | null {\n const icon = this.subGroup && this.prependIcon == null\n ? '$subgroup'\n : this.prependIcon\n\n if (!icon && !this.$slots.prependIcon) return null\n\n return this.$createElement(VListItemIcon, {\n staticClass: 'v-list-group__header__prepend-icon',\n }, [\n this.$slots.prependIcon || this.genIcon(icon),\n ])\n },\n onRouteChange (to: Route) {\n /* istanbul ignore if */\n if (!this.group) return\n\n const isActive = this.matchRoute(to.path)\n\n /* istanbul ignore else */\n if (isActive && this.isActive !== isActive) {\n this.list && this.list.listClick(this._uid)\n }\n\n this.isActive = isActive\n },\n toggle (uid: number) {\n const isActive = this._uid === uid\n\n if (isActive) this.isBooted = true\n this.$nextTick(() => (this.isActive = isActive))\n },\n matchRoute (to: string) {\n return to.match(this.group) !== null\n },\n },\n\n render (h): VNode {\n return h('div', this.setTextColor(this.isActive && this.color, {\n staticClass: 'v-list-group',\n class: this.classes,\n }), [\n this.genHeader(),\n h(VExpandTransition, this.genItems()),\n ])\n },\n})\n","// Styles\nimport './VListItem.sass'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Routable from '../../mixins/routable'\nimport { factory as GroupableFactory } from '../../mixins/groupable'\nimport Themeable from '../../mixins/themeable'\nimport { factory as ToggleableFactory } from '../../mixins/toggleable'\n\n// Directives\nimport Ripple from '../../directives/ripple'\n\n// Utilities\nimport { keyCodes } from './../../util/helpers'\nimport { ExtractVue } from './../../util/mixins'\nimport { removed } from '../../util/console'\n\n// Types\nimport mixins from '../../util/mixins'\nimport { VNode } from 'vue'\nimport { PropType, PropValidator } from 'vue/types/options'\n\nconst baseMixins = mixins(\n Colorable,\n Routable,\n Themeable,\n GroupableFactory('listItemGroup'),\n ToggleableFactory('inputValue')\n)\n\ninterface options extends ExtractVue {\n $el: HTMLElement\n isInGroup: boolean\n isInList: boolean\n isInMenu: boolean\n isInNav: boolean\n}\n\n/* @vue/component */\nexport default baseMixins.extend().extend({\n name: 'v-list-item',\n\n directives: {\n Ripple,\n },\n\n inject: {\n isInGroup: {\n default: false,\n },\n isInList: {\n default: false,\n },\n isInMenu: {\n default: false,\n },\n isInNav: {\n default: false,\n },\n },\n\n inheritAttrs: false,\n\n props: {\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this.listItemGroup) return ''\n\n return this.listItemGroup.activeClass\n },\n } as any as PropValidator,\n dense: Boolean,\n inactive: Boolean,\n link: Boolean,\n selectable: {\n type: Boolean,\n },\n tag: {\n type: String,\n default: 'div',\n },\n threeLine: Boolean,\n twoLine: Boolean,\n value: null as any as PropType,\n },\n\n data: () => ({\n proxyClass: 'v-list-item--active',\n }),\n\n computed: {\n classes (): object {\n return {\n 'v-list-item': true,\n ...Routable.options.computed.classes.call(this),\n 'v-list-item--dense': this.dense,\n 'v-list-item--disabled': this.disabled,\n 'v-list-item--link': this.isClickable && !this.inactive,\n 'v-list-item--selectable': this.selectable,\n 'v-list-item--three-line': this.threeLine,\n 'v-list-item--two-line': this.twoLine,\n ...this.themeClasses,\n }\n },\n isClickable (): boolean {\n return Boolean(\n Routable.options.computed.isClickable.call(this) ||\n this.listItemGroup\n )\n },\n },\n\n created () {\n /* istanbul ignore next */\n if (this.$attrs.hasOwnProperty('avatar')) {\n removed('avatar', this)\n }\n },\n\n methods: {\n click (e: MouseEvent | KeyboardEvent) {\n if (e.detail) this.$el.blur()\n\n this.$emit('click', e)\n\n this.to || this.toggle()\n },\n genAttrs () {\n const attrs: Record = {\n 'aria-disabled': this.disabled ? true : undefined,\n tabindex: this.isClickable && !this.disabled ? 0 : -1,\n ...this.$attrs,\n }\n\n if (this.$attrs.hasOwnProperty('role')) {\n // do nothing, role already provided\n } else if (this.isInNav) {\n // do nothing, role is inherit\n } else if (this.isInGroup) {\n attrs.role = 'option'\n attrs['aria-selected'] = String(this.isActive)\n } else if (this.isInMenu) {\n attrs.role = this.isClickable ? 'menuitem' : undefined\n attrs.id = attrs.id || `list-item-${this._uid}`\n } else if (this.isInList) {\n attrs.role = 'listitem'\n }\n\n return attrs\n },\n toggle () {\n if (this.to && this.inputValue === undefined) {\n this.isActive = !this.isActive\n }\n this.$emit('change')\n },\n },\n\n render (h): VNode {\n let { tag, data } = this.generateRouteLink()\n\n data.attrs = {\n ...data.attrs,\n ...this.genAttrs(),\n }\n data[this.to ? 'nativeOn' : 'on'] = {\n ...data[this.to ? 'nativeOn' : 'on'],\n keydown: (e: KeyboardEvent) => {\n if (!this.disabled) {\n /* istanbul ignore else */\n if (e.keyCode === keyCodes.enter) this.click(e)\n\n this.$emit('keydown', e)\n }\n },\n }\n\n if (this.inactive) tag = 'div'\n if (this.inactive && this.to) {\n data.on = data.nativeOn\n delete data.nativeOn\n }\n\n const children = this.$scopedSlots.default\n ? this.$scopedSlots.default({\n active: this.isActive,\n toggle: this.toggle,\n })\n : this.$slots.default\n\n return h(tag, this.isActive ? this.setTextColor(this.color, data) : data, children)\n },\n})\n","// Types\nimport Vue, { VNode } from 'vue'\n\n/* @vue/component */\nexport default Vue.extend({\n name: 'v-list-item-action',\n\n functional: true,\n\n render (h, { data, children = [] }): VNode {\n data.staticClass = data.staticClass ? `v-list-item__action ${data.staticClass}` : 'v-list-item__action'\n const filteredChild = children.filter(VNode => {\n return VNode.isComment === false && VNode.text !== ' '\n })\n if (filteredChild.length > 1) data.staticClass += ' v-list-item__action--stack'\n\n return h('div', data, children)\n },\n})\n","// Styles\nimport './VListItemGroup.sass'\n\n// Extensions\nimport { BaseItemGroup } from '../VItemGroup/VItemGroup'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\n\n// Utilities\nimport mixins from '../../util/mixins'\n\nexport default mixins(\n BaseItemGroup,\n Colorable\n).extend({\n name: 'v-list-item-group',\n\n provide () {\n return {\n isInGroup: true,\n listItemGroup: this,\n }\n },\n\n computed: {\n classes (): object {\n return {\n ...BaseItemGroup.options.computed.classes.call(this),\n 'v-list-item-group': true,\n }\n },\n },\n\n methods: {\n genData (): object {\n return this.setTextColor(this.color, {\n ...BaseItemGroup.options.methods.genData.call(this),\n attrs: {\n role: 'listbox',\n },\n })\n },\n },\n})\n","// Types\nimport Vue, { VNode } from 'vue'\n\n/* @vue/component */\nexport default Vue.extend({\n name: 'v-list-item-icon',\n\n functional: true,\n\n render (h, { data, children }): VNode {\n data.staticClass = (`v-list-item__icon ${data.staticClass || ''}`).trim()\n\n return h('div', data, children)\n },\n})\n","import './VAvatar.sass'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Measurable from '../../mixins/measurable'\nimport Roundable from '../../mixins/roundable'\n\n// Utilities\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport { VNode } from 'vue'\nimport mixins from '../../util/mixins'\n\nexport default mixins(\n Colorable,\n Measurable,\n Roundable,\n /* @vue/component */\n).extend({\n name: 'v-avatar',\n\n props: {\n left: Boolean,\n right: Boolean,\n size: {\n type: [Number, String],\n default: 48,\n },\n },\n\n computed: {\n classes (): object {\n return {\n 'v-avatar--left': this.left,\n 'v-avatar--right': this.right,\n ...this.roundedClasses,\n }\n },\n styles (): object {\n return {\n height: convertToUnit(this.size),\n minWidth: convertToUnit(this.size),\n width: convertToUnit(this.size),\n ...this.measurableStyles,\n }\n },\n },\n\n render (h): VNode {\n const data = {\n staticClass: 'v-avatar',\n class: this.classes,\n style: this.styles,\n on: this.$listeners,\n }\n\n return h('div', this.setBackgroundColor(this.color, data), this.$slots.default)\n },\n})\n","import VAvatar from './VAvatar'\n\nexport { VAvatar }\nexport default VAvatar\n","// Components\nimport VAvatar from '../VAvatar'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default VAvatar.extend({\n name: 'v-list-item-avatar',\n\n props: {\n horizontal: Boolean,\n size: {\n type: [Number, String],\n default: 40,\n },\n },\n\n computed: {\n classes (): object {\n return {\n 'v-list-item__avatar--horizontal': this.horizontal,\n ...VAvatar.options.computed.classes.call(this),\n 'v-avatar--tile': this.tile || this.horizontal,\n }\n },\n },\n\n render (h): VNode {\n const render = VAvatar.options.render.call(this, h)\n\n render.data = render.data || {}\n render.data.staticClass += ' v-list-item__avatar'\n\n return render\n },\n})\n","import { createSimpleFunctional } from '../../util/helpers'\n\nimport VList from './VList'\nimport VListGroup from './VListGroup'\nimport VListItem from './VListItem'\nimport VListItemGroup from './VListItemGroup'\nimport VListItemAction from './VListItemAction'\nimport VListItemAvatar from './VListItemAvatar'\nimport VListItemIcon from './VListItemIcon'\n\nexport const VListItemActionText = createSimpleFunctional('v-list-item__action-text', 'span')\nexport const VListItemContent = createSimpleFunctional('v-list-item__content', 'div')\nexport const VListItemTitle = createSimpleFunctional('v-list-item__title', 'div')\nexport const VListItemSubtitle = createSimpleFunctional('v-list-item__subtitle', 'div')\n\nexport {\n VList,\n VListGroup,\n VListItem,\n VListItemAction,\n VListItemAvatar,\n VListItemIcon,\n VListItemGroup,\n}\n\nexport default {\n $_vuetify_subcomponents: {\n VList,\n VListGroup,\n VListItem,\n VListItemAction,\n VListItemActionText,\n VListItemAvatar,\n VListItemContent,\n VListItemGroup,\n VListItemIcon,\n VListItemSubtitle,\n VListItemTitle,\n },\n}\n","// Styles\nimport './VMain.sass'\n\n// Mixins\nimport SSRBootable from '../../mixins/ssr-bootable'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default SSRBootable.extend({\n name: 'v-main',\n\n props: {\n tag: {\n type: String,\n default: 'main',\n },\n },\n\n computed: {\n styles (): object {\n const {\n bar, top, right, footer, insetFooter, bottom, left,\n } = this.$vuetify.application\n\n return {\n paddingTop: `${top + bar}px`,\n paddingRight: `${right}px`,\n paddingBottom: `${footer + insetFooter + bottom}px`,\n paddingLeft: `${left}px`,\n }\n },\n },\n\n render (h): VNode {\n const data = {\n staticClass: 'v-main',\n style: this.styles,\n ref: 'main',\n }\n\n return h(this.tag, data, [\n h(\n 'div',\n { staticClass: 'v-main__wrap' },\n this.$slots.default\n ),\n ])\n },\n})\n","// Styles\nimport './VMenu.sass'\n\n// Components\nimport { VThemeProvider } from '../VThemeProvider'\n\n// Mixins\nimport Activatable from '../../mixins/activatable'\nimport Delayable from '../../mixins/delayable'\nimport Dependent from '../../mixins/dependent'\nimport Menuable from '../../mixins/menuable'\nimport Returnable from '../../mixins/returnable'\nimport Roundable from '../../mixins/roundable'\nimport Themeable from '../../mixins/themeable'\n\n// Directives\nimport ClickOutside from '../../directives/click-outside'\nimport Resize from '../../directives/resize'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport { removed } from '../../util/console'\nimport {\n convertToUnit,\n keyCodes,\n} from '../../util/helpers'\nimport goTo from '../../services/goto'\n\n// Types\nimport { VNode, VNodeDirective, VNodeData } from 'vue'\n\nconst baseMixins = mixins(\n Dependent,\n Delayable,\n Returnable,\n Roundable,\n Themeable,\n Menuable,\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-menu',\n\n directives: {\n ClickOutside,\n Resize,\n },\n\n provide (): object {\n return {\n isInMenu: true,\n // Pass theme through to default slot\n theme: this.theme,\n }\n },\n\n props: {\n auto: Boolean,\n closeOnClick: {\n type: Boolean,\n default: true,\n },\n closeOnContentClick: {\n type: Boolean,\n default: true,\n },\n disabled: Boolean,\n disableKeys: Boolean,\n maxHeight: {\n type: [Number, String],\n default: 'auto',\n },\n offsetX: Boolean,\n offsetY: Boolean,\n openOnHover: Boolean,\n origin: {\n type: String,\n default: 'top left',\n },\n transition: {\n type: [Boolean, String],\n default: 'v-menu-transition',\n },\n },\n\n data () {\n return {\n calculatedTopAuto: 0,\n defaultOffset: 8,\n hasJustFocused: false,\n listIndex: -1,\n resizeTimeout: 0,\n selectedIndex: null as null | number,\n tiles: [] as HTMLElement[],\n }\n },\n\n computed: {\n activeTile (): HTMLElement | undefined {\n return this.tiles[this.listIndex]\n },\n calculatedLeft (): string {\n const menuWidth = Math.max(this.dimensions.content.width, parseFloat(this.calculatedMinWidth))\n\n if (!this.auto) return this.calcLeft(menuWidth) || '0'\n\n return convertToUnit(this.calcXOverflow(this.calcLeftAuto(), menuWidth)) || '0'\n },\n calculatedMaxHeight (): string {\n const height = this.auto\n ? '200px'\n : convertToUnit(this.maxHeight)\n\n return height || '0'\n },\n calculatedMaxWidth (): string {\n return convertToUnit(this.maxWidth) || '0'\n },\n calculatedMinWidth (): string {\n if (this.minWidth) {\n return convertToUnit(this.minWidth) || '0'\n }\n\n const minWidth = Math.min(\n this.dimensions.activator.width +\n Number(this.nudgeWidth) +\n (this.auto ? 16 : 0),\n Math.max(this.pageWidth - 24, 0)\n )\n\n const calculatedMaxWidth = isNaN(parseInt(this.calculatedMaxWidth))\n ? minWidth\n : parseInt(this.calculatedMaxWidth)\n\n return convertToUnit(Math.min(\n calculatedMaxWidth,\n minWidth\n )) || '0'\n },\n calculatedTop (): string {\n const top = !this.auto\n ? this.calcTop()\n : convertToUnit(this.calcYOverflow(this.calculatedTopAuto))\n\n return top || '0'\n },\n hasClickableTiles (): boolean {\n return Boolean(this.tiles.find(tile => tile.tabIndex > -1))\n },\n styles (): object {\n return {\n maxHeight: this.calculatedMaxHeight,\n minWidth: this.calculatedMinWidth,\n maxWidth: this.calculatedMaxWidth,\n top: this.calculatedTop,\n left: this.calculatedLeft,\n transformOrigin: this.origin,\n zIndex: this.zIndex || this.activeZIndex,\n }\n },\n },\n\n watch: {\n isActive (val) {\n if (!val) this.listIndex = -1\n },\n isContentActive (val) {\n this.hasJustFocused = val\n },\n listIndex (next, prev) {\n if (next in this.tiles) {\n const tile = this.tiles[next]\n tile.classList.add('v-list-item--highlighted')\n const scrollTop = this.$refs.content.scrollTop\n const contentHeight = this.$refs.content.clientHeight\n\n if (scrollTop > tile.offsetTop - 8) {\n goTo(tile.offsetTop - tile.clientHeight, {\n appOffset: false,\n duration: 300,\n container: this.$refs.content,\n })\n } else if (scrollTop + contentHeight < tile.offsetTop + tile.clientHeight + 8) {\n goTo(tile.offsetTop - contentHeight + tile.clientHeight * 2, {\n appOffset: false,\n duration: 300,\n container: this.$refs.content,\n })\n }\n }\n\n prev in this.tiles &&\n this.tiles[prev].classList.remove('v-list-item--highlighted')\n },\n },\n\n created () {\n /* istanbul ignore next */\n if (this.$attrs.hasOwnProperty('full-width')) {\n removed('full-width', this)\n }\n },\n\n mounted () {\n this.isActive && this.callActivate()\n },\n\n methods: {\n activate () {\n // Update coordinates and dimensions of menu\n // and its activator\n this.updateDimensions()\n // Start the transition\n requestAnimationFrame(() => {\n // Once transitioning, calculate scroll and top position\n this.startTransition().then(() => {\n if (this.$refs.content) {\n this.calculatedTopAuto = this.calcTopAuto()\n this.auto && (this.$refs.content.scrollTop = this.calcScrollPosition())\n }\n })\n })\n },\n calcScrollPosition () {\n const $el = this.$refs.content\n const activeTile = $el.querySelector('.v-list-item--active') as HTMLElement\n const maxScrollTop = $el.scrollHeight - $el.offsetHeight\n\n return activeTile\n ? Math.min(maxScrollTop, Math.max(0, activeTile.offsetTop - $el.offsetHeight / 2 + activeTile.offsetHeight / 2))\n : $el.scrollTop\n },\n calcLeftAuto () {\n return parseInt(this.dimensions.activator.left - this.defaultOffset * 2)\n },\n calcTopAuto () {\n const $el = this.$refs.content\n const activeTile = $el.querySelector('.v-list-item--active') as HTMLElement | null\n\n if (!activeTile) {\n this.selectedIndex = null\n }\n\n if (this.offsetY || !activeTile) {\n return this.computedTop\n }\n\n this.selectedIndex = Array.from(this.tiles).indexOf(activeTile)\n\n const tileDistanceFromMenuTop = activeTile.offsetTop - this.calcScrollPosition()\n const firstTileOffsetTop = ($el.querySelector('.v-list-item') as HTMLElement).offsetTop\n\n return this.computedTop - tileDistanceFromMenuTop - firstTileOffsetTop - 1\n },\n changeListIndex (e: KeyboardEvent) {\n // For infinite scroll and autocomplete, re-evaluate children\n this.getTiles()\n\n if (!this.isActive || !this.hasClickableTiles) {\n return\n } else if (e.keyCode === keyCodes.tab) {\n this.isActive = false\n return\n } else if (e.keyCode === keyCodes.down) {\n this.nextTile()\n } else if (e.keyCode === keyCodes.up) {\n this.prevTile()\n } else if (e.keyCode === keyCodes.end) {\n this.lastTile()\n } else if (e.keyCode === keyCodes.home) {\n this.firstTile()\n } else if (e.keyCode === keyCodes.enter && this.listIndex !== -1) {\n this.tiles[this.listIndex].click()\n } else { return }\n // One of the conditions was met, prevent default action (#2988)\n e.preventDefault()\n },\n closeConditional (e: Event) {\n const target = e.target as HTMLElement\n\n return this.isActive &&\n !this._isDestroyed &&\n this.closeOnClick &&\n !this.$refs.content.contains(target)\n },\n genActivatorAttributes () {\n const attributes = Activatable.options.methods.genActivatorAttributes.call(this)\n\n if (this.activeTile && this.activeTile.id) {\n return {\n ...attributes,\n 'aria-activedescendant': this.activeTile.id,\n }\n }\n\n return attributes\n },\n genActivatorListeners () {\n const listeners = Menuable.options.methods.genActivatorListeners.call(this)\n\n if (!this.disableKeys) {\n listeners.keydown = this.onKeyDown\n }\n\n return listeners\n },\n genTransition (): VNode {\n const content = this.genContent()\n\n if (!this.transition) return content\n\n return this.$createElement('transition', {\n props: {\n name: this.transition,\n },\n }, [content])\n },\n genDirectives (): VNodeDirective[] {\n const directives: VNodeDirective[] = [{\n name: 'show',\n value: this.isContentActive,\n }]\n\n // Do not add click outside for hover menu\n if (!this.openOnHover && this.closeOnClick) {\n directives.push({\n name: 'click-outside',\n value: {\n handler: () => { this.isActive = false },\n closeConditional: this.closeConditional,\n include: () => [this.$el, ...this.getOpenDependentElements()],\n },\n })\n }\n\n return directives\n },\n genContent (): VNode {\n const options = {\n attrs: {\n ...this.getScopeIdAttrs(),\n role: 'role' in this.$attrs ? this.$attrs.role : 'menu',\n },\n staticClass: 'v-menu__content',\n class: {\n ...this.rootThemeClasses,\n ...this.roundedClasses,\n 'v-menu__content--auto': this.auto,\n 'v-menu__content--fixed': this.activatorFixed,\n menuable__content__active: this.isActive,\n [this.contentClass.trim()]: true,\n },\n style: this.styles,\n directives: this.genDirectives(),\n ref: 'content',\n on: {\n click: (e: Event) => {\n const target = e.target as HTMLElement\n\n if (target.getAttribute('disabled')) return\n if (this.closeOnContentClick) this.isActive = false\n },\n keydown: this.onKeyDown,\n },\n } as VNodeData\n\n if (this.$listeners.scroll) {\n options.on = options.on || {}\n options.on.scroll = this.$listeners.scroll\n }\n\n if (!this.disabled && this.openOnHover) {\n options.on = options.on || {}\n options.on.mouseenter = this.mouseEnterHandler\n }\n\n if (this.openOnHover) {\n options.on = options.on || {}\n options.on.mouseleave = this.mouseLeaveHandler\n }\n\n return this.$createElement('div', options, this.getContentSlot())\n },\n getTiles () {\n if (!this.$refs.content) return\n\n this.tiles = Array.from(this.$refs.content.querySelectorAll('.v-list-item, .v-divider, .v-subheader'))\n },\n mouseEnterHandler () {\n this.runDelay('open', () => {\n if (this.hasJustFocused) return\n\n this.hasJustFocused = true\n })\n },\n mouseLeaveHandler (e: MouseEvent) {\n // Prevent accidental re-activation\n this.runDelay('close', () => {\n if (this.$refs.content?.contains(e.relatedTarget as HTMLElement)) return\n\n requestAnimationFrame(() => {\n this.isActive = false\n this.callDeactivate()\n })\n })\n },\n nextTile () {\n const tile = this.tiles[this.listIndex + 1]\n\n if (!tile) {\n if (!this.tiles.length) return\n\n this.listIndex = -1\n this.nextTile()\n\n return\n }\n\n this.listIndex++\n if (tile.tabIndex === -1) this.nextTile()\n },\n prevTile () {\n const tile = this.tiles[this.listIndex - 1]\n\n if (!tile) {\n if (!this.tiles.length) return\n\n this.listIndex = this.tiles.length\n this.prevTile()\n\n return\n }\n\n this.listIndex--\n if (tile.tabIndex === -1) this.prevTile()\n },\n lastTile () {\n const tile = this.tiles[this.tiles.length - 1]\n\n if (!tile) return\n\n this.listIndex = this.tiles.length - 1\n\n if (tile.tabIndex === -1) this.prevTile()\n },\n firstTile () {\n const tile = this.tiles[0]\n\n if (!tile) return\n\n this.listIndex = 0\n\n if (tile.tabIndex === -1) this.nextTile()\n },\n onKeyDown (e: KeyboardEvent) {\n if (e.keyCode === keyCodes.esc) {\n // Wait for dependent elements to close first\n setTimeout(() => { this.isActive = false })\n const activator = this.getActivator()\n this.$nextTick(() => activator && activator.focus())\n } else if (\n !this.isActive &&\n [keyCodes.up, keyCodes.down].includes(e.keyCode)\n ) {\n this.isActive = true\n }\n\n // Allow for isActive watcher to generate tile list\n this.$nextTick(() => this.changeListIndex(e))\n },\n onResize () {\n if (!this.isActive) return\n\n // Account for screen resize\n // and orientation change\n // eslint-disable-next-line no-unused-expressions\n this.$refs.content.offsetWidth\n this.updateDimensions()\n\n // When resizing to a smaller width\n // content width is evaluated before\n // the new activator width has been\n // set, causing it to not size properly\n // hacky but will revisit in the future\n clearTimeout(this.resizeTimeout)\n this.resizeTimeout = window.setTimeout(this.updateDimensions, 100)\n },\n },\n\n render (h): VNode {\n const data = {\n staticClass: 'v-menu',\n class: {\n 'v-menu--attached':\n this.attach === '' ||\n this.attach === true ||\n this.attach === 'attach',\n },\n directives: [{\n arg: '500',\n name: 'resize',\n value: this.onResize,\n }],\n }\n\n return h('div', data, [\n !this.activator && this.genActivator(),\n this.showLazyContent(() => [\n this.$createElement(VThemeProvider, {\n props: {\n root: true,\n light: this.light,\n dark: this.dark,\n },\n }, [this.genTransition()]),\n ]),\n ])\n },\n})\n","import VMenu from './VMenu'\n\nexport { VMenu }\nexport default VMenu\n","// Styles\nimport './VNavigationDrawer.sass'\n\n// Components\nimport VImg, { srcObject } from '../VImg/VImg'\n\n// Mixins\nimport Applicationable from '../../mixins/applicationable'\nimport Colorable from '../../mixins/colorable'\nimport Dependent from '../../mixins/dependent'\nimport Mobile from '../../mixins/mobile'\nimport Overlayable from '../../mixins/overlayable'\nimport SSRBootable from '../../mixins/ssr-bootable'\nimport Themeable from '../../mixins/themeable'\n\n// Directives\nimport ClickOutside from '../../directives/click-outside'\nimport Resize from '../../directives/resize'\nimport Touch from '../../directives/touch'\n\n// Utilities\nimport { convertToUnit, getSlot } from '../../util/helpers'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode, VNodeDirective, PropType } from 'vue'\nimport { TouchWrapper } from 'vuetify/types'\n\nconst baseMixins = mixins(\n Applicationable('left', [\n 'isActive',\n 'isMobile',\n 'miniVariant',\n 'expandOnHover',\n 'permanent',\n 'right',\n 'temporary',\n 'width',\n ]),\n Colorable,\n Dependent,\n Mobile,\n Overlayable,\n SSRBootable,\n Themeable\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-navigation-drawer',\n\n directives: {\n ClickOutside,\n Resize,\n Touch,\n },\n\n provide (): object {\n return {\n isInNav: this.tag === 'nav',\n }\n },\n\n props: {\n bottom: Boolean,\n clipped: Boolean,\n disableResizeWatcher: Boolean,\n disableRouteWatcher: Boolean,\n expandOnHover: Boolean,\n floating: Boolean,\n height: {\n type: [Number, String],\n default (): string {\n return this.app ? '100vh' : '100%'\n },\n },\n miniVariant: Boolean,\n miniVariantWidth: {\n type: [Number, String],\n default: 56,\n },\n permanent: Boolean,\n right: Boolean,\n src: {\n type: [String, Object] as PropType,\n default: '',\n },\n stateless: Boolean,\n tag: {\n type: String,\n default (): string {\n return this.app ? 'nav' : 'aside'\n },\n },\n temporary: Boolean,\n touchless: Boolean,\n width: {\n type: [Number, String],\n default: 256,\n },\n value: null as unknown as PropType,\n },\n\n data: () => ({\n isMouseover: false,\n touchArea: {\n left: 0,\n right: 0,\n },\n stackMinZIndex: 6,\n }),\n\n computed: {\n /**\n * Used for setting an app value from a dynamic\n * property. Called from applicationable.js\n */\n applicationProperty (): string {\n return this.right ? 'right' : 'left'\n },\n classes (): object {\n return {\n 'v-navigation-drawer': true,\n 'v-navigation-drawer--absolute': this.absolute,\n 'v-navigation-drawer--bottom': this.bottom,\n 'v-navigation-drawer--clipped': this.clipped,\n 'v-navigation-drawer--close': !this.isActive,\n 'v-navigation-drawer--fixed': !this.absolute && (this.app || this.fixed),\n 'v-navigation-drawer--floating': this.floating,\n 'v-navigation-drawer--is-mobile': this.isMobile,\n 'v-navigation-drawer--is-mouseover': this.isMouseover,\n 'v-navigation-drawer--mini-variant': this.isMiniVariant,\n 'v-navigation-drawer--custom-mini-variant': Number(this.miniVariantWidth) !== 56,\n 'v-navigation-drawer--open': this.isActive,\n 'v-navigation-drawer--open-on-hover': this.expandOnHover,\n 'v-navigation-drawer--right': this.right,\n 'v-navigation-drawer--temporary': this.temporary,\n ...this.themeClasses,\n }\n },\n computedMaxHeight (): number | null {\n if (!this.hasApp) return null\n\n const computedMaxHeight = (\n this.$vuetify.application.bottom +\n this.$vuetify.application.footer +\n this.$vuetify.application.bar\n )\n\n if (!this.clipped) return computedMaxHeight\n\n return computedMaxHeight + this.$vuetify.application.top\n },\n computedTop (): number {\n if (!this.hasApp) return 0\n\n let computedTop = this.$vuetify.application.bar\n\n computedTop += this.clipped\n ? this.$vuetify.application.top\n : 0\n\n return computedTop\n },\n computedTransform (): number {\n if (this.isActive) return 0\n if (this.isBottom) return 100\n return this.right ? 100 : -100\n },\n computedWidth (): string | number {\n return this.isMiniVariant ? this.miniVariantWidth : this.width\n },\n hasApp (): boolean {\n return (\n this.app &&\n (!this.isMobile && !this.temporary)\n )\n },\n isBottom (): boolean {\n return this.bottom && this.isMobile\n },\n isMiniVariant (): boolean {\n return (\n !this.expandOnHover &&\n this.miniVariant\n ) || (\n this.expandOnHover &&\n !this.isMouseover\n )\n },\n isMobile (): boolean {\n return (\n !this.stateless &&\n !this.permanent &&\n Mobile.options.computed.isMobile.call(this)\n )\n },\n reactsToClick (): boolean {\n return (\n !this.stateless &&\n !this.permanent &&\n (this.isMobile || this.temporary)\n )\n },\n reactsToMobile (): boolean {\n return (\n this.app &&\n !this.disableResizeWatcher &&\n !this.permanent &&\n !this.stateless &&\n !this.temporary\n )\n },\n reactsToResize (): boolean {\n return !this.disableResizeWatcher && !this.stateless\n },\n reactsToRoute (): boolean {\n return (\n !this.disableRouteWatcher &&\n !this.stateless &&\n (this.temporary || this.isMobile)\n )\n },\n showOverlay (): boolean {\n return (\n !this.hideOverlay &&\n this.isActive &&\n (this.isMobile || this.temporary)\n )\n },\n styles (): object {\n const translate = this.isBottom ? 'translateY' : 'translateX'\n return {\n height: convertToUnit(this.height),\n top: !this.isBottom ? convertToUnit(this.computedTop) : 'auto',\n maxHeight: this.computedMaxHeight != null\n ? `calc(100% - ${convertToUnit(this.computedMaxHeight)})`\n : undefined,\n transform: `${translate}(${convertToUnit(this.computedTransform, '%')})`,\n width: convertToUnit(this.computedWidth),\n }\n },\n },\n\n watch: {\n $route: 'onRouteChange',\n isActive (val) {\n this.$emit('input', val)\n },\n /**\n * When mobile changes, adjust the active state\n * only when there has been a previous value\n */\n isMobile (val, prev) {\n !val &&\n this.isActive &&\n !this.temporary &&\n this.removeOverlay()\n\n if (prev == null ||\n !this.reactsToResize ||\n !this.reactsToMobile\n ) return\n\n this.isActive = !val\n },\n permanent (val) {\n // If enabling prop enable the drawer\n if (val) this.isActive = true\n },\n showOverlay (val) {\n if (val) this.genOverlay()\n else this.removeOverlay()\n },\n value (val) {\n if (this.permanent) return\n\n if (val == null) {\n this.init()\n return\n }\n\n if (val !== this.isActive) this.isActive = val\n },\n expandOnHover: 'updateMiniVariant',\n isMouseover (val) {\n this.updateMiniVariant(!val)\n },\n },\n\n beforeMount () {\n this.init()\n },\n\n methods: {\n calculateTouchArea () {\n const parent = this.$el.parentNode as Element\n\n if (!parent) return\n\n const parentRect = parent.getBoundingClientRect()\n\n this.touchArea = {\n left: parentRect.left + 50,\n right: parentRect.right - 50,\n }\n },\n closeConditional () {\n return this.isActive && !this._isDestroyed && this.reactsToClick\n },\n genAppend () {\n return this.genPosition('append')\n },\n genBackground () {\n const props = {\n height: '100%',\n width: '100%',\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-navigation-drawer__image',\n }, [image])\n },\n genDirectives (): VNodeDirective[] {\n const directives = [{\n name: 'click-outside',\n value: {\n handler: () => { this.isActive = false },\n closeConditional: this.closeConditional,\n include: this.getOpenDependentElements,\n },\n }]\n\n if (!this.touchless && !this.stateless) {\n directives.push({\n name: 'touch',\n value: {\n parent: true,\n left: this.swipeLeft,\n right: this.swipeRight,\n },\n } as any)\n }\n\n return directives\n },\n genListeners () {\n const on: Record void> = {\n mouseenter: () => (this.isMouseover = true),\n mouseleave: () => (this.isMouseover = false),\n transitionend: (e: Event) => {\n if (e.target !== e.currentTarget) return\n this.$emit('transitionend', e)\n\n // IE11 does not support new Event('resize')\n const resizeEvent = document.createEvent('UIEvents')\n resizeEvent.initUIEvent('resize', true, false, window, 0)\n window.dispatchEvent(resizeEvent)\n },\n }\n\n if (this.miniVariant) {\n on.click = () => this.$emit('update:mini-variant', false)\n }\n\n return on\n },\n genPosition (name: 'prepend' | 'append') {\n const slot = getSlot(this, name)\n\n if (!slot) return slot\n\n return this.$createElement('div', {\n staticClass: `v-navigation-drawer__${name}`,\n }, slot)\n },\n genPrepend () {\n return this.genPosition('prepend')\n },\n genContent () {\n return this.$createElement('div', {\n staticClass: 'v-navigation-drawer__content',\n }, this.$slots.default)\n },\n genBorder () {\n return this.$createElement('div', {\n staticClass: 'v-navigation-drawer__border',\n })\n },\n init () {\n if (this.permanent) {\n this.isActive = true\n } else if (this.stateless ||\n this.value != null\n ) {\n this.isActive = this.value\n } else if (!this.temporary) {\n this.isActive = !this.isMobile\n }\n },\n onRouteChange () {\n if (this.reactsToRoute && this.closeConditional()) {\n this.isActive = false\n }\n },\n swipeLeft (e: TouchWrapper) {\n if (this.isActive && this.right) return\n this.calculateTouchArea()\n\n if (Math.abs(e.touchendX - e.touchstartX) < 100) return\n if (this.right &&\n e.touchstartX >= this.touchArea.right\n ) this.isActive = true\n else if (!this.right && this.isActive) this.isActive = false\n },\n swipeRight (e: TouchWrapper) {\n if (this.isActive && !this.right) return\n this.calculateTouchArea()\n\n if (Math.abs(e.touchendX - e.touchstartX) < 100) return\n if (!this.right &&\n e.touchstartX <= this.touchArea.left\n ) this.isActive = true\n else if (this.right && this.isActive) this.isActive = false\n },\n /**\n * Update the application layout\n */\n updateApplication () {\n if (\n !this.isActive ||\n this.isMobile ||\n this.temporary ||\n !this.$el\n ) return 0\n\n const width = Number(this.miniVariant ? this.miniVariantWidth : this.width)\n\n return isNaN(width) ? this.$el.clientWidth : width\n },\n updateMiniVariant (val: boolean) {\n if (this.expandOnHover && this.miniVariant !== val) this.$emit('update:mini-variant', val)\n },\n },\n\n render (h): VNode {\n const children = [\n this.genPrepend(),\n this.genContent(),\n this.genAppend(),\n this.genBorder(),\n ]\n\n if (this.src || getSlot(this, 'img')) children.unshift(this.genBackground())\n\n return h(this.tag, this.setBackgroundColor(this.color, {\n class: this.classes,\n style: this.styles,\n directives: this.genDirectives(),\n on: this.genListeners(),\n }), children)\n },\n})\n","// Styles\nimport './VOverlay.sass'\n\n// Mixins\nimport Colorable from './../../mixins/colorable'\nimport Themeable from '../../mixins/themeable'\nimport Toggleable from './../../mixins/toggleable'\n\n// Utilities\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n Colorable,\n Themeable,\n Toggleable\n).extend({\n name: 'v-overlay',\n\n props: {\n absolute: Boolean,\n color: {\n type: String,\n default: '#212121',\n },\n dark: {\n type: Boolean,\n default: true,\n },\n opacity: {\n type: [Number, String],\n default: 0.46,\n },\n value: {\n default: true,\n },\n zIndex: {\n type: [Number, String],\n default: 5,\n },\n },\n\n computed: {\n __scrim (): VNode {\n const data = this.setBackgroundColor(this.color, {\n staticClass: 'v-overlay__scrim',\n style: {\n opacity: this.computedOpacity,\n },\n })\n\n return this.$createElement('div', data)\n },\n classes (): object {\n return {\n 'v-overlay--absolute': this.absolute,\n 'v-overlay--active': this.isActive,\n ...this.themeClasses,\n }\n },\n computedOpacity (): number {\n return Number(this.isActive ? this.opacity : 0)\n },\n styles (): object {\n return {\n zIndex: this.zIndex,\n }\n },\n },\n\n methods: {\n genContent () {\n return this.$createElement('div', {\n staticClass: 'v-overlay__content',\n }, this.$slots.default)\n },\n },\n\n render (h): VNode {\n const children = [this.__scrim]\n\n if (this.isActive) children.push(this.genContent())\n\n return h('div', {\n staticClass: 'v-overlay',\n on: this.$listeners,\n class: this.classes,\n style: this.styles,\n }, children)\n },\n})\n","import VOverlay from './VOverlay'\n\nexport { VOverlay }\n\nexport default VOverlay\n","import './VPagination.sass'\n\nimport VIcon from '../VIcon'\n\n// Directives\nimport Resize from '../../directives/resize'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Intersectable from '../../mixins/intersectable'\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode, CreateElement, VNodeChildrenArrayContents } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n Colorable,\n Intersectable({ onVisible: ['init'] }),\n Themeable\n).extend({\n name: 'v-pagination',\n\n directives: { Resize },\n\n props: {\n circle: Boolean,\n disabled: Boolean,\n length: {\n type: Number,\n default: 0,\n validator: (val: number) => val % 1 === 0,\n },\n nextIcon: {\n type: String,\n default: '$next',\n },\n prevIcon: {\n type: String,\n default: '$prev',\n },\n totalVisible: [Number, String],\n value: {\n type: Number,\n default: 0,\n },\n pageAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.page',\n },\n currentPageAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.currentPage',\n },\n previousAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.previous',\n },\n nextAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.next',\n },\n wrapperAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.wrapper',\n },\n },\n\n data () {\n return {\n maxButtons: 0,\n selected: null as number | null,\n }\n },\n\n computed: {\n classes (): object {\n return {\n 'v-pagination': true,\n 'v-pagination--circle': this.circle,\n 'v-pagination--disabled': this.disabled,\n ...this.themeClasses,\n }\n },\n\n items (): (string | number)[] {\n const totalVisible = parseInt(this.totalVisible, 10)\n\n if (totalVisible === 0 || isNaN(this.length) || this.length > Number.MAX_SAFE_INTEGER) {\n return []\n }\n\n const maxLength = Math.min(\n Math.max(0, totalVisible) || this.length,\n Math.max(0, this.maxButtons) || this.length,\n this.length\n )\n\n if (this.length <= maxLength) {\n return this.range(1, this.length)\n }\n\n const even = maxLength % 2 === 0 ? 1 : 0\n const left = Math.floor(maxLength / 2)\n const right = this.length - left + 1 + even\n\n if (this.value > left && this.value < right) {\n const firstItem = 1\n const lastItem = this.length\n const start = this.value - left + 2\n const end = this.value + left - 2 - even\n const secondItem = start - 1 === firstItem + 1 ? 2 : '...'\n const beforeLastItem = end + 1 === lastItem - 1 ? end + 1 : '...'\n\n return [1, secondItem, ...this.range(start, end), beforeLastItem, this.length]\n } else if (this.value === left) {\n const end = this.value + left - 1 - even\n return [...this.range(1, end), '...', this.length]\n } else if (this.value === right) {\n const start = this.value - left + 1\n return [1, '...', ...this.range(start, this.length)]\n } else {\n return [\n ...this.range(1, left),\n '...',\n ...this.range(right, this.length),\n ]\n }\n },\n },\n\n watch: {\n value () {\n this.init()\n },\n },\n\n beforeMount () {\n this.init()\n },\n\n methods: {\n init () {\n this.selected = null\n\n this.onResize()\n this.$nextTick(this.onResize)\n // TODO: Change this (f75dee3a, cbdf7caa)\n setTimeout(() => (this.selected = this.value), 100)\n },\n onResize () {\n const width = this.$el && this.$el.parentElement\n ? this.$el.parentElement.clientWidth\n : window.innerWidth\n\n this.maxButtons = Math.floor((width - 96) / 42)\n },\n next (e: Event) {\n e.preventDefault()\n this.$emit('input', this.value + 1)\n this.$emit('next')\n },\n previous (e: Event) {\n e.preventDefault()\n this.$emit('input', this.value - 1)\n this.$emit('previous')\n },\n range (from: number, to: number) {\n const range = []\n\n from = from > 0 ? from : 1\n\n for (let i = from; i <= to; i++) {\n range.push(i)\n }\n\n return range\n },\n genIcon (h: CreateElement, icon: string, disabled: boolean, fn: EventListener, label: String): VNode {\n return h('li', [\n h('button', {\n staticClass: 'v-pagination__navigation',\n class: {\n 'v-pagination__navigation--disabled': disabled,\n },\n attrs: {\n disabled,\n type: 'button',\n 'aria-label': label,\n },\n on: disabled ? {} : { click: fn },\n }, [h(VIcon, [icon])]),\n ])\n },\n genItem (h: CreateElement, i: string | number): VNode {\n const color: string | false = (i === this.value) && (this.color || 'primary')\n const isCurrentPage = i === this.value\n const ariaLabel = isCurrentPage ? this.currentPageAriaLabel : this.pageAriaLabel\n\n return h('button', this.setBackgroundColor(color, {\n staticClass: 'v-pagination__item',\n class: {\n 'v-pagination__item--active': i === this.value,\n },\n attrs: {\n type: 'button',\n 'aria-current': isCurrentPage,\n 'aria-label': this.$vuetify.lang.t(ariaLabel, i),\n },\n on: {\n click: () => this.$emit('input', i),\n },\n }), [i.toString()])\n },\n genItems (h: CreateElement): VNode[] {\n return this.items.map((i, index) => {\n return h('li', { key: index }, [\n isNaN(Number(i)) ? h('span', { class: 'v-pagination__more' }, [i.toString()]) : this.genItem(h, i),\n ])\n })\n },\n genList (h: CreateElement, children: VNodeChildrenArrayContents): VNode {\n return h('ul', {\n directives: [{\n modifiers: { quiet: true },\n name: 'resize',\n value: this.onResize,\n }],\n class: this.classes,\n }, children)\n },\n },\n\n render (h): VNode {\n const children = [\n this.genIcon(h,\n this.$vuetify.rtl ? this.nextIcon : this.prevIcon,\n this.value <= 1,\n this.previous,\n this.$vuetify.lang.t(this.previousAriaLabel)),\n this.genItems(h),\n this.genIcon(h,\n this.$vuetify.rtl ? this.prevIcon : this.nextIcon,\n this.value >= this.length,\n this.next,\n this.$vuetify.lang.t(this.nextAriaLabel)),\n ]\n\n return h('nav', {\n attrs: {\n role: 'navigation',\n 'aria-label': this.$vuetify.lang.t(this.wrapperAriaLabel),\n },\n }, [this.genList(h, children)])\n },\n})\n","import './VPicker.sass'\nimport '../VCard/VCard.sass'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Elevatable from '../../mixins/elevatable'\nimport Themeable from '../../mixins/themeable'\n\n// Helpers\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport { VNode } from 'vue/types'\nimport mixins from '../../util/mixins'\n\n/* @vue/component */\nexport default mixins(\n Colorable,\n Elevatable,\n Themeable\n).extend({\n name: 'v-picker',\n\n props: {\n flat: Boolean,\n fullWidth: Boolean,\n landscape: Boolean,\n noTitle: Boolean,\n transition: {\n type: String,\n default: 'fade-transition',\n },\n width: {\n type: [Number, String],\n default: 290,\n },\n },\n\n computed: {\n computedTitleColor (): string | false {\n const defaultTitleColor = this.isDark ? false : (this.color || 'primary')\n return this.color || defaultTitleColor\n },\n },\n\n methods: {\n genTitle () {\n return this.$createElement('div', this.setBackgroundColor(this.computedTitleColor, {\n staticClass: 'v-picker__title',\n class: {\n 'v-picker__title--landscape': this.landscape,\n },\n }), this.$slots.title)\n },\n genBodyTransition () {\n return this.$createElement('transition', {\n props: {\n name: this.transition,\n },\n }, this.$slots.default)\n },\n genBody () {\n return this.$createElement('div', {\n staticClass: 'v-picker__body',\n class: {\n 'v-picker__body--no-title': this.noTitle,\n ...this.themeClasses,\n },\n style: this.fullWidth ? undefined : {\n width: convertToUnit(this.width),\n },\n }, [\n this.genBodyTransition(),\n ])\n },\n genActions () {\n return this.$createElement('div', {\n staticClass: 'v-picker__actions v-card__actions',\n class: {\n 'v-picker__actions--no-title': this.noTitle,\n },\n }, this.$slots.actions)\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-picker v-card',\n class: {\n 'v-picker--flat': this.flat,\n 'v-picker--landscape': this.landscape,\n 'v-picker--full-width': this.fullWidth,\n ...this.themeClasses,\n ...this.elevationClasses,\n },\n }, [\n this.$slots.title ? this.genTitle() : null,\n this.genBody(),\n this.$slots.actions ? this.genActions() : null,\n ])\n },\n})\n","import VPicker from './VPicker'\n\nexport { VPicker }\nexport default VPicker\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"],"names":["normalizeComponent","scriptExports","render","staticRenderFns","functionalTemplate","injectStyles","scopeId","moduleIdentifier","shadowMode","hook","options","_compiled","functional","_scopeId","context","this","$vnode","ssrContext","parent","__VUE_SSR_CONTEXT__","call","_registeredComponents","add","_ssrRegister","$root","$options","shadowRoot","_injectStyles","originalRender","h","existing","beforeCreate","concat","exports","mixins","VSheet","Toggleable","Transitionable","extend","name","props","border","type","String","validator","val","includes","closeLabel","default","coloredBorder","Boolean","dense","dismissible","closeIcon","icon","outlined","prominent","text","value","computed","__cachedBorder","data","staticClass","class","setBackgroundColor","computedColor","$createElement","__cachedDismissible","color","iconColor","VBtn","small","attrs","$vuetify","lang","t","on","click","isActive","VIcon","__cachedIcon","computedIcon","classes","hasColoredIcon","hasText","undefined","isDark","Themeable","created","$attrs","hasOwnProperty","breaking","methods","genWrapper","children","$slots","prepend","genContent","append","$scopedSlots","close","toggle","genAlert","role","listeners$","style","styles","directives","setColor","setTextColor","transition","origin","mode","baseMixins","VToolbar","Scrollable","SSRBootable","Applicationable","Scroll","provide","VAppBar","clippedLeft","clippedRight","collapseOnScroll","elevateOnScroll","fadeImgOnScroll","hideOnScroll","invertedScroll","scrollOffScreen","shrinkOnScroll","applicationProperty","bottom","canScroll","isBooted","collapse","absolute","app","fixed","hideShadow","currentScroll","scrollRatio","threshold","computedScrollThreshold","Math","max","computedContentHeight","min","computedOriginalHeight","computedFontSize","isProminent","computedLeft","application","left","computedMarginTop","bar","computedOpacity","height","isExtended","parseInt","extensionHeight","computedRight","right","scrollThreshold","Number","computedTransform","computedHeight","isCollapsed","fontSize","convertToUnit","marginTop","transform","watch","callUpdate","genBackground","_b","tag","opacity","updateApplication","thresholdMet","isScrollingUp","currentThreshold","savedScroll","push","arg","scrollTarget","onScroll","Vue","slots","listeners","d","Object","assign","trim","defaultSlot","dark","id","light","theme","Error","wrapper","rtl","themeClasses","domProps","defaultMenuProps","VSelectMenuProps","offsetY","offsetOverflow","VSelect","allowOverflow","autoSelectFirst","filter","Function","item","queryText","itemText","toLocaleLowerCase","indexOf","hideNoData","menuProps","noFilter","searchInput","lazySearch","selectedIndex","computedItems","filteredItems","selectedValues","selectedItems","map","getValue","hasDisplayedItems","hideSelected","some","hasItem","length","currentRange","selectedItem","getText","isSearching","internalSearch","allItems","getPropertyFromItem","get","set","$emit","isAnyValueAllowed","isDirty","searchIsDirty","multiple","menuCanShow","isFocused","$_menuProps","contentClass","find","i","valueComparator","internalValue","listData","items","virtualizedItems","document","addEventListener","onCopy","$refs","input","select","removeEventListener","blur","updateSelf","isMenuActive","hasSlot","oldVal","activateMenu","setSearch","destroyed","onFilteredItemsChanged","preSelectedItem","menu","listIndex","setMenuIndex","findIndex","$nextTick","getTiles","onInternalSearchChanged","updateMenuDimensions","updateDimensions","changeSelectedIndex","keyCode","keyCodes","deleteCurrentItem","curIndex","curItem","isInteractive","getDisabled","lastIndex","nextIndex","nextItem","selectItem","setValue","clearableCallback","genInput","VTextField","mergeData","getObjectValueByPath","autocomplete","genInputSlot","slot","genSelections","onClick","e","onFocus","isAppendInner","target","onInput","badInput","validity","onKeyDown","ctrlKey","onSpaceDown","onTabDown","onUpDown","preventDefault","setSelectedItems","event","currentItem","currentItemText","clipboardData","_a","setData","Routable","Positionable","Sizeable","GroupableFactory","ToggleableFactory","activeClass","btnToggle","block","depressed","fab","loading","plain","retainFocusOnClick","rounded","tile","proxyClass","disabled","isElevated","hasBg","isRound","to","top","groupClasses","elevationClasses","sizeableClasses","computedElevation","Elevatable","computedRipple","defaultRipple","circle","ripple","elevation","measurableStyles","breakingProps","forEach","original","replacement","detail","$el","genLoader","loader","VProgressCircular","indeterminate","size","width","generateRouteLink","JSON","stringify","Loadable","flat","hover","img","link","loaderHeight","raised","isClickable","background","genProgress","key","tabindex","VCardActions","createSimpleFunctional","VCardSubtitle","VCardText","VCardTitle","Selectable","indeterminateIcon","offIcon","onIcon","inputIndeterminate","VInput","validationState","isDisabled","hasError","shouldValidate","hasSuccess","hasColor","genCheckbox","title","checkboxAttrs","attrs$","toString","genRipple","rippleState","genDefaultSlot","genLabel","Ripple","Colorable","def","center","stopPropagation","wrapInArray","f","active","chipGroup","draggable","filterIcon","label","pill","textColor","isLink","hasClose","genFilter","VExpandXTransition","genClose","VChip","fromHSVA","hsva","hexa","HSVAtoHex","hsla","HSVAtoHSLA","rgba","HSVAtoRGBA","alpha","a","hex","substr","hue","fromHSLA","HSLAtoHSVA","fromRGBA","RGBAtoHSVA","RGBAtoHex","fromHexa","HexToHSVA","fromHex","parseHex","has","obj","every","k","parseColor","oldColor","r","g","b","parseFloat","stripAlpha","rest","extractColor","shouldStrip","hasAlpha","hideAlpha","genAlpha","genTrack","thumbColor","hideDetails","step","backgroundImage","RGBtoCSS","genSliders","genHue","genDot","RGBAtoCSS","VSlider","dotSize","boundingRect","dot","x","s","y","v","mounted","updateCanvas","emitColor","clamp","canvas","ctx","getContext","saturationGradient","createLinearGradient","addColorStop","fillStyle","fillRect","valueGradient","handleClick","getBoundingClientRect","clientX","clientY","handleMouseDown","window","handleMouseMove","handleMouseUp","genCanvas","ref","radius","mousedown","modes","inputs","from","hideModeSwitch","keys","internalMode","currentMode","round","parseValue","changeMode","index","newMode","toUpperCase","genInputs","endsWith","maxlength","change","el","slice","newVal","genSwitch","parseDefaultColors","colors","base","darken4","darken3","darken2","darken1","lighten1","lighten2","lighten3","lighten4","lighten5","black","white","transparent","swatches","Array","maxWidth","maxHeight","genColor","content","deepEqual","contrastRatio","genSwatches","swatch","canvasHeight","hideCanvas","hideSliders","hideInputs","showSwatches","swatchesMaxHeight","handler","updateColor","immediate","VColorPickerCanvas","genControls","genPreview","genEdit","VColorPickerEdit","VColorPickerPreview","VColorPickerSwatches","VAutocomplete","delimiters","returnObject","editingIndex","computedCounterValue","delimiter","updateTags","paste","onPaste","genChipSelection","chip","componentOptions","dblclick","onChipInput","onEnterDown","getMenuIndex","selectionStart","updateEditing","splice","updateCombobox","isUsingSlot","selection","hasChips","menuIndex","itemToSelect","pastedItemText","getData","findExistingIndex","isGreater","functionalThemeClasses","PickerButton","date","readonly","selectingYear","year","yearIcon","isReversing","computedTransition","prev","genYearIcon","getYearBtn","genPickerButton","genTitleText","innerHTML","genTitleDate","createNativeLocaleFormatter","locale","substrOptions","start","makeIsoString","dateString","month","split","pad","join","intlFormatter","Intl","DateTimeFormat","format","Date","sign","Localable","nextAriaLabel","nextIcon","prevAriaLabel","prevIcon","required","formatter","currentLocale","timeZone","genBtn","ariaLabelId","ariaLabel","calculateChange","monthChange","genHeader","header","createItemTypeNativeListeners","instance","itemTypeSuffix","$listeners","reduce","eventName","createItemTypeListeners","isDateAllowed","allowedFn","Touch","allowedDates","current","events","eventColor","range","scrollable","tableDate","wheelThrottle","displayedMonth","displayedYear","throttle","wheel","genButtonClasses","isAllowed","isFloating","isSelected","isCurrent","isFirst","isLast","genButtonEvents","mouseEventType","mergeListeners","genButton","isOtherMonth","isArray","genEvents","getEventColors","arrayize","eventData","eventColors","isValidScroll","calculateTableDate","sanitizeType","sanitizeDateString","deltaY","touch","genTable","touchDirective","offsetX","sort","DatePickerTable","firstDayOfWeek","localeFirstDayOfYear","showAdjacentMonths","showWeek","weekdayFormat","day","weekdayFormatter","weekday","weekDays","first","createRange","delta","genTHead","days","unshift","genTR","weekDaysBeforeFirstDayOfTheMonth","firstDayOfTheMonth","weekDay","getUTCDay","getWeekNumber","dayInMonth","weekNumber","genWeekNumber","padStart","genTBody","daysInMonth","getDate","rows","prevMonthYear","prevMonth","firstDayFromPreviousMonth","cellsInRow","nextMonthYear","nextMonth","nextMonthDay","cols","fill","row","tds","_","col","defaultColor","setTimeout","activeItem","getElementsByClassName","scrollTop","offsetTop","offsetHeight","scrollHeight","genYearItem","formatted","genYearItems","selectedYear","getFullYear","maxYear","minYear","DAYS_IN_MONTH","DAYS_IN_MONTH_LEAP","isLeapYear","Picker","activePicker","dayFormat","headerDateFormat","monthFormat","nextMonthAriaLabel","nextYearAriaLabel","pickerDate","prevMonthAriaLabel","prevYearAriaLabel","reactive","showCurrent","selectedItemsText","titleDateFormat","yearFormat","now","internalActivePicker","inputDay","inputMonth","inputYear","multipleValue","getMonth","isMultiple","lastValue","selectedMonths","inputDate","tableMonth","tableYear","minMonth","maxMonth","formatters","titleDate","defaultTitleMultipleDateFormatter","defaultTitleDateFormatter","dates","titleFormats","titleDateFormatter","landscapeFormatter","replace","match","nonDigit","digit","landscape","newValue","oldValue","checkMultipleProp","setInputDate","output","emitInput","newInput","valueType","constructor","expected","consoleWarn","yearClick","monthClick","dateClick","genPickerTitle","VDatePickerTitle","genTableHeader","VDatePickerHeader","genDateTable","VDatePickerDateTable","genMonthTable","VDatePickerMonthTable","genYears","VDatePickerYears","genPickerBody","array","genPicker","string","targetLength","padString","repeat","n","Dependent","Detachable","Overlayable","Returnable","Stackable","Activatable","ClickOutside","fullscreen","noClickAnimation","persistent","retainFocus","activatedBy","animate","animateTimeout","stackMinZIndex","previousActiveElement","contentClasses","hasActivator","activator","show","hideScroll","removeOverlay","unbind","focus","showScroll","genOverlay","removed","beforeMount","beforeDestroy","animateClick","clearTimeout","closeConditional","_isDestroyed","contains","overlay","activeZIndex","getMaxZIndex","documentElement","classList","hideOverlay","dialog","activeElement","bind","onFocusin","onClickOutside","onKeydown","getOpenDependents","getActivator","getOpenDependentElements","focusable","querySelectorAll","hasAttribute","matches","showLazyContent","VThemeProvider","root","getScopeIdAttrs","keydown","zIndex","genTransition","genInnerContent","appear","include","transformOrigin","getContentSlot","attach","genActivator","inset","vertical","orientation","VDivider","model","prop","chips","clearable","counterSizeString","counterString","hideInput","placeholder","prependIcon","showSize","smallChips","truncateLength","fileCount","lazyValue","File","bytes","internalArrayValue","humanReadableFileSize","isLabelActive","persistentPlaceholder","hasLabel","file","truncatedText","truncateText","consoleError","files","genChips","genControl","mergeStyles","display","genPrependSlot","genIcon","genSlot","genSelectionText","counter","genTextFieldSlot","node","initialValue","str","charsKeepOneSide","floor","BindsAttrs","RegistrableProvide","form","inheritAttrs","lazyValidation","watchers","errorBag","errors","values","deep","watchInput","watcher","$watch","$set","_uid","valid","validate","reset","resetErrorBag","resetValidation","register","unregister","found","unwatch","$delete","novalidate","submit","breakpoints","breakpointProps","offsetProps","upperFirst","orderProps","propMap","offset","order","breakpointClass","className","breakpoint","toLowerCase","cache","Map","alignSelf","cacheKey","hasColClasses","startsWith","Grid","fluid","ALIGNMENT","makeProps","prefix","alignValidator","alignProps","justifyValidator","justifyProps","alignContentValidator","alignContentProps","align","justify","alignContent","classMap","noGutters","VGrid","SIZE_MAP","isFontAwesome5","iconType","isSvgPath","test","medium","hasClickListener","getIcon","iconName","remapInternalIcon","getSize","sizes","xSmall","large","xLarge","explicitSize","getDefaultData","getSvgWrapperData","wrapperData","applyColors","renderFontIcon","newChildren","delimiterIndex","isMaterialIcon","renderSvgIcon","svgData","xmlns","viewBox","renderSvgIconComponent","component","nativeOn","$_wrapperFor","textContent","hasIntersect","VResponsive","intersect","alt","contain","eager","gradient","lazySrc","rootMargin","position","src","srcset","currentSrc","image","isLoading","calculatedAspectRatio","naturalWidth","computedAspectRatio","normalisedSrc","aspect","aspectRatio","__cachedImage","backgroundPosition","loadImage","init","entries","observer","isIntersecting","lazyImg","Image","pollForSize","onLoad","getSrc","naturalHeight","onError","onload","decode","catch","err","message","then","onerror","timeout","poll","complete","__genPlaceholder","getSlot","modifiers","once","__cachedSizer","genChildren","genMessage","Validatable","appendIcon","backgroundColor","hideSpinButtons","hint","persistentHint","hasMouseDown","hasState","showDetails","isReadonly","computedId","hasDetails","messagesToDisplay","hasHint","hasMessages","$_modelEvent","validations","validation","validationResult","genAppendSlot","genMessages","cb","extraData","kebabCase","hasListener","mouseup","onMouseDown","onMouseUp","VLabel","focused","for","VMessages","scopedSlots","location","BaseItemGroup","Comparable","Proxyable","mandatory","internalLazyValue","toggleMethod","intern","genData","updateInternalValue","$on","updateMandatory","updateItem","valueIndex","updateItemsState","updateMultiple","updateSingle","last","reverse","defaultValue","isSame","itemGroup","isInList","list","inject","isInMenu","isInNav","expand","nav","subheader","threeLine","twoLine","groups","listClick","uid","group","Bootable","RegistrableInject","RegExp","noAction","subGroup","$route","matchRoute","path","genAppendIcon","VListItemIcon","VListItem","inputValue","genPrependIcon","genItems","onRouteChange","VExpandTransition","isInGroup","listItemGroup","inactive","selectable","genAttrs","filteredChild","VNode","isComment","Measurable","Roundable","roundedClasses","minWidth","VAvatar","horizontal","VListItemActionText","VListItemContent","VListItemTitle","VListItemSubtitle","footer","insetFooter","paddingTop","paddingRight","paddingBottom","paddingLeft","Delayable","Menuable","Resize","auto","closeOnClick","closeOnContentClick","disableKeys","openOnHover","calculatedTopAuto","defaultOffset","hasJustFocused","resizeTimeout","tiles","activeTile","calculatedLeft","menuWidth","dimensions","calculatedMinWidth","calcXOverflow","calcLeftAuto","calcLeft","calculatedMaxHeight","calculatedMaxWidth","nudgeWidth","pageWidth","isNaN","calculatedTop","calcYOverflow","calcTop","hasClickableTiles","tabIndex","isContentActive","next","contentHeight","clientHeight","goTo","appOffset","duration","container","remove","callActivate","activate","requestAnimationFrame","startTransition","calcTopAuto","calcScrollPosition","querySelector","maxScrollTop","computedTop","tileDistanceFromMenuTop","firstTileOffsetTop","changeListIndex","nextTile","prevTile","lastTile","firstTile","genActivatorAttributes","attributes","genActivatorListeners","genDirectives","rootThemeClasses","activatorFixed","menuable__content__active","getAttribute","scroll","mouseenter","mouseEnterHandler","mouseleave","mouseLeaveHandler","runDelay","relatedTarget","callDeactivate","onResize","offsetWidth","VMenu","Mobile","clipped","disableResizeWatcher","disableRouteWatcher","expandOnHover","floating","miniVariant","miniVariantWidth","permanent","stateless","temporary","touchless","isMouseover","touchArea","isMobile","isMiniVariant","computedMaxHeight","hasApp","isBottom","computedWidth","reactsToClick","reactsToMobile","reactsToResize","reactsToRoute","showOverlay","translate","updateMiniVariant","calculateTouchArea","parentNode","parentRect","genAppend","genPosition","VImg","swipeLeft","swipeRight","genListeners","transitionend","currentTarget","resizeEvent","createEvent","initUIEvent","dispatchEvent","genPrepend","genBorder","abs","touchendX","touchstartX","clientWidth","__scrim","Intersectable","onVisible","totalVisible","pageAriaLabel","currentPageAriaLabel","previousAriaLabel","wrapperAriaLabel","maxButtons","selected","MAX_SAFE_INTEGER","maxLength","even","firstItem","lastItem","end","secondItem","beforeLastItem","parentElement","innerWidth","previous","fn","genItem","isCurrentPage","genList","quiet","fullWidth","noTitle","computedTitleColor","defaultTitleColor","genTitle","genBodyTransition","genBody","genActions","actions","module","components","extendOptions"],"sourceRoot":""}