{"version":3,"sources":["webpack:///../../../src/components/VExpansionPanel/VExpansionPanels.ts","webpack:///../../../../src/components/VColorPicker/util/index.ts","webpack:///../../../src/components/VColorPicker/VColorPickerPreview.ts","webpack:///../../../src/components/VColorPicker/VColorPickerCanvas.ts","webpack:///../../../src/components/VColorPicker/VColorPickerEdit.ts","webpack:///../../../src/components/VColorPicker/VColorPickerSwatches.ts","webpack:///../../../src/components/VColorPicker/VColorPicker.ts","webpack:///../../../src/components/VGrid/VRow.ts","webpack:///../../../src/components/VCounter/VCounter.ts","webpack:///../../../src/components/VCounter/index.ts","webpack:///../../../src/components/VIcon/VIcon.ts","webpack:///../../../src/components/VDialog/VDialog.ts","webpack:///../../../src/components/VGrid/VSpacer.ts","webpack:///../../../src/components/VExpansionPanel/VExpansionPanelContent.ts","webpack:///../../../src/components/VForm/VForm.ts","webpack:///../../../src/components/VBadge/VBadge.ts","webpack:///../../../src/components/VFooter/VFooter.ts","webpack:///../../../src/components/VItemGroup/VItemGroup.ts","webpack:///../../../src/components/VGrid/VCol.ts","webpack:///../../../src/components/VAvatar/VAvatar.ts","webpack:///../../../src/components/VAvatar/index.ts","webpack:///../../../src/components/VBtn/VBtn.ts","webpack:///../../../src/components/VCard/index.ts","webpack:///../../../src/components/VIcon/index.ts","webpack:///../../../src/components/VGrid/grid.ts","webpack:///../../../src/components/VGrid/VContainer.ts","webpack:///../../../src/components/VCheckbox/VCheckbox.ts","webpack:///../../../src/components/VImg/VImg.ts","webpack:///../../../src/components/VBtn/index.ts","webpack:///../../../src/components/VCard/VCard.ts","webpack:///../../../src/components/VInput/VInput.ts","webpack:///../../../src/components/VInput/index.ts","webpack:///../../../src/components/VExpansionPanel/VExpansionPanelHeader.ts","webpack:///../../../src/components/VExpansionPanel/VExpansionPanel.ts","webpack:///../../../src/components/VHover/VHover.ts","webpack:///../../../src/components/VItemGroup/VItem.ts"],"names":["name","provide","expansionPanels","this","props","accordion","disabled","flat","hover","focusable","inset","popout","readonly","tile","Boolean","computed","classes","created","$attrs","hasOwnProperty","Array","value","length","methods","updateItem","getValue","item","nextValue","index","toggleMethod","hsva","hexa","hsla","rgba","alpha","hex","hue","fromHexa","has","key","k","obj","fromRGBA","r","g","b","a","color","oldColor","parseFloat","fromHSLA","fromHSVA","rest","input","shouldStrip","hideAlpha","genAlpha","genTrack","staticClass","thumbColor","hideDetails","step","min","max","style","backgroundImage","$vuetify","rtl","on","val","genSliders","$createElement","genDot","background","genHue","h","VSlider","class","options","render","type","default","dotSize","Number","height","width","data","boundingRect","left","top","dot","x","s","parseInt","y","watch","mounted","emitColor","v","updateCanvas","canvas","$refs","ctx","saturationGradient","valueGradient","handleClick","$el","e","handleMouseDown","window","handleMouseMove","handleMouseUp","genCanvas","ref","attrs","radius","transform","click","mousedown","modes","inputs","from","hideModeSwitch","mode","validator","Object","internalMode","currentMode","Math","parseValue","changeMode","newMode","genInput","domProps","target","genInputs","maxlength","change","el","newVal","genSwitch","VBtn","small","icon","VIcon","parseDefaultColors","colors","white","fromHex","black","mixins","swatches","maxWidth","maxHeight","String","genColor","content","parseColor","dark","light","genSwatches","map","swatch","canvasHeight","hideCanvas","hideSliders","hideInputs","showSwatches","swatchesMaxHeight","internalValue","hasAlpha","handler","immediate","updateColor","extractColor","genControls","genEdit","genPreview","VSheet","elevationClasses","breakpoints","ALIGNMENT","makeProps","prefix","def","alignValidator","str","alignProps","justifyValidator","justifyProps","alignContentValidator","alignContentProps","propMap","align","justify","alignContent","classMap","breakpointClass","className","breakpoint","prop","cache","functional","tag","dense","noGutters","children","cacheKey","classList","isGreater","isFontAwesome5","some","iconType","isSvgPath","test","SIZE_MAP","right","size","required","medium","hasClickListener","listeners$","getIcon","iconName","$slots","text","getSize","sizes","xSmall","large","xLarge","explicitSize","getDefaultData","attrs$","getSvgWrapperData","fontSize","wrapperData","undefined","applyColors","themeClasses","renderFontIcon","newChildren","delimiterIndex","isMaterialIcon","renderSvgIcon","svgData","xmlns","viewBox","role","d","renderSvgIconComponent","component","$_wrapperFor","baseMixins","directives","ClickOutside","fullscreen","noClickAnimation","origin","persistent","retainFocus","scrollable","transition","activatedBy","animate","animateTimeout","isActive","stackMinZIndex","previousActiveElement","contentClasses","hasActivator","$scopedSlots","beforeMount","beforeDestroy","unbind","animateClick","closeConditional","_isDestroyed","contains","overlay","activeZIndex","hideScroll","document","show","bind","onClickOutside","onKeydown","getOpenDependents","activator","onFocusin","getOpenDependentElements","querySelectorAll","genContent","showLazyContent","root","tabindex","keydown","zIndex","genTransition","appear","genInnerContent","include","transformOrigin","attach","expansionPanel","form","inheritAttrs","lazyValidation","watchers","errorBag","errors","deep","watchInput","watcher","_uid","valid","shouldValidate","validate","filter","reset","resetErrorBag","setTimeout","resetValidation","register","unregister","found","find","i","unwatch","novalidate","submit","avatar","bordered","label","inline","offsetX","offsetY","overlap","computedBottom","bottom","computedLeft","computedRight","computedTop","computedXOffset","calcPosition","computedYOffset","isRtl","offset","styles","genBadge","lang","setBackgroundColor","title","badge","genBadgeContent","slot","genBadgeWrapper","padless","applicationProperty","app","application","isPositioned","absolute","isNaN","updateApplication","BaseItemGroup","activeClass","mandatory","multiple","internalLazyValue","items","selectedIndex","selectedItem","indexOf","selectedItems","selectedValues","genData","onClick","push","valueIndex","updateInternalValue","updateItemsState","updateMultiple","updateSingle","updateMandatory","defaultValue","isSame","itemGroup","breakpointProps","offsetProps","orderProps","col","order","cols","alignSelf","includes","parent","hasColClasses","roundedClasses","minWidth","measurableStyles","$listeners","btnToggle","block","depressed","fab","loading","outlined","plain","retainFocusOnClick","rounded","proxyClass","sizeableClasses","computedElevation","computedRipple","defaultRipple","circle","hasBg","isElevated","elevation","isRound","breakingProps","original","replacement","genLoader","loader","indeterminate","setColor","JSON","VCardActions","VCardSubtitle","VCardText","VCardTitle","id","fluid","mergeData","indeterminateIcon","offIcon","onIcon","inputIndeterminate","computedIcon","validationState","isDisabled","hasError","hasColor","genCheckbox","setTextColor","toString","genRipple","genDefaultSlot","hasIntersect","intersect","alt","contain","eager","gradient","lazySrc","rootMargin","threshold","position","src","srcset","currentSrc","image","isLoading","calculatedAspectRatio","naturalWidth","computedAspectRatio","normalisedSrc","aspect","aspectRatio","__cachedImage","backgroundPosition","loadImage","init","lazyImg","onLoad","endsWith","startsWith","naturalHeight","onError","getSrc","err","pollForSize","timeout","poll","img","__genPlaceholder","placeholder","node","modifiers","once","link","loaderHeight","raised","genProgress","appendIcon","backgroundColor","hint","persistentHint","prependIcon","lazyValue","hasMouseDown","computedId","hasDetails","messagesToDisplay","hasHint","hasLabel","get","set","isDirty","isLabelActive","validations","validation","validationResult","message","showDetails","beforeCreate","$options","model","genControl","genIcon","extraData","eventName","hasListener","cb","mouseup","genInputSlot","onMouseUp","genLabel","VLabel","focused","for","genMessages","VMessages","hasMessages","scopedSlots","genSlot","genPrependSlot","genAppendSlot","onMouseDown","ripple","disableIconRotate","expandIcon","hideActions","hasMousedown","isReadonly","open","header","nextIsActive","groupClasses","registerContent","unregisterContent","registerHeader","vm","unregisterHeader","toggle","isBooted","onMouseEnter","onMouseLeave","element","mouseenter","mouseleave","BaseItem","active","_b"],"mappings":"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","file":"js/chunk-vendors~1655f327-legacy.f845f120.js","sourcesContent":["// Styles\nimport './VExpansionPanel.sass'\n\n// Components\nimport { BaseItemGroup, GroupableInstance } from '../VItemGroup/VItemGroup'\nimport VExpansionPanel from './VExpansionPanel'\n\n// Utilities\nimport { breaking } from '../../util/console'\n\n// Types\ninterface VExpansionPanelInstance extends InstanceType {}\n\n/* @vue/component */\nexport default BaseItemGroup.extend({\n name: 'v-expansion-panels',\n\n provide (): object {\n return {\n expansionPanels: this,\n }\n },\n\n props: {\n accordion: Boolean,\n disabled: Boolean,\n flat: Boolean,\n hover: Boolean,\n focusable: Boolean,\n inset: Boolean,\n popout: Boolean,\n readonly: Boolean,\n tile: Boolean,\n },\n\n computed: {\n classes (): object {\n return {\n ...BaseItemGroup.options.computed.classes.call(this),\n 'v-expansion-panels': true,\n 'v-expansion-panels--accordion': this.accordion,\n 'v-expansion-panels--flat': this.flat,\n 'v-expansion-panels--hover': this.hover,\n 'v-expansion-panels--focusable': this.focusable,\n 'v-expansion-panels--inset': this.inset,\n 'v-expansion-panels--popout': this.popout,\n 'v-expansion-panels--tile': this.tile,\n }\n },\n },\n\n created () {\n /* istanbul ignore next */\n if (this.$attrs.hasOwnProperty('expand')) {\n breaking('expand', 'multiple', this)\n }\n\n /* istanbul ignore next */\n if (\n Array.isArray(this.value) &&\n this.value.length > 0 &&\n typeof this.value[0] === 'boolean'\n ) {\n breaking(':value=\"[true, false, true]\"', ':value=\"[0, 2]\"', this)\n }\n },\n\n methods: {\n updateItem (item: GroupableInstance & VExpansionPanelInstance, index: number) {\n const value = this.getValue(item, index)\n const nextValue = this.getValue(item, index + 1)\n\n item.isActive = this.toggleMethod(value)\n item.nextIsActive = this.toggleMethod(nextValue)\n },\n },\n})\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","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","// 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 './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'].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","// 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'\nimport Toggleable from '../../mixins/toggleable'\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 Activatable,\n Dependent,\n Detachable,\n Overlayable,\n Returnable,\n Stackable,\n Toggleable\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: {\n type: [String, Number],\n default: 'none',\n },\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: {\n type: [String, Number],\n default: 'auto',\n },\n },\n\n data () {\n return {\n activatedBy: null as EventTarget | null,\n animate: false,\n animateTimeout: -1,\n isActive: !!this.value,\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 this.previousActiveElement = document.activeElement as HTMLElement\n this.$refs.content.focus()\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 // It isn't the document or the dialog body\n ![document, this.$refs.content].includes(target) &&\n // It isn't inside the dialog body\n !this.$refs.content.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.content.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])')\n const el = [...focusable].find(el => !el.hasAttribute('disabled')) 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: 'document',\n tabindex: this.isActive ? 0 : undefined,\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 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: this.maxWidth === 'none' ? undefined : convertToUnit(this.maxWidth),\n width: this.width === 'auto' ? undefined : 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 attrs: { role: 'dialog' },\n }, [\n this.genActivator(),\n this.genContent(),\n ])\n },\n})\n","import './_grid.sass'\nimport { createSimpleFunctional } from '../../util/helpers'\n\nexport default createSimpleFunctional('spacer', 'div', 'v-spacer')\n","// Components\nimport VExpansionPanel from './VExpansionPanel'\nimport { VExpandTransition } from '../transitions'\n\n// Mixins\nimport Bootable from '../../mixins/bootable'\nimport Colorable from '../../mixins/colorable'\nimport { inject as RegistrableInject } from '../../mixins/registrable'\n\n// Utilities\nimport { getSlot } from '../../util/helpers'\nimport mixins, { ExtractVue } from '../../util/mixins'\n\n// Types\nimport Vue, { VNode, VueConstructor } from 'vue'\n\nconst baseMixins = mixins(\n Bootable,\n Colorable,\n RegistrableInject<'expansionPanel', VueConstructor>('expansionPanel', 'v-expansion-panel-content', 'v-expansion-panel')\n)\n\ninterface options extends ExtractVue {\n expansionPanel: InstanceType\n}\n\n/* @vue/component */\nexport default baseMixins.extend().extend({\n name: 'v-expansion-panel-content',\n\n computed: {\n isActive (): boolean {\n return this.expansionPanel.isActive\n },\n },\n\n created () {\n this.expansionPanel.registerContent(this)\n },\n\n beforeDestroy () {\n this.expansionPanel.unregisterContent()\n },\n\n render (h): VNode {\n return h(VExpandTransition, this.showLazyContent(() => [\n h('div', this.setBackgroundColor(this.color, {\n staticClass: 'v-expansion-panel-content',\n directives: [{\n name: 'show',\n value: this.isActive,\n }],\n }), [\n h('div', { class: 'v-expansion-panel-content__wrap' }, getSlot(this)),\n ]),\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","// Styles\nimport './VBadge.sass'\n\n// Components\nimport VIcon from '../VIcon/VIcon'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Themeable from '../../mixins/themeable'\nimport Toggleable from '../../mixins/toggleable'\nimport Transitionable from '../../mixins/transitionable'\nimport { factory as PositionableFactory } from '../../mixins/positionable'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport {\n convertToUnit,\n getSlot,\n} from '../../util/helpers'\n\n// Types\nimport { VNode } from 'vue'\n\nexport default mixins(\n Colorable,\n PositionableFactory(['left', 'bottom']),\n Themeable,\n Toggleable,\n Transitionable,\n/* @vue/component */\n).extend({\n name: 'v-badge',\n\n props: {\n avatar: Boolean,\n bordered: Boolean,\n color: {\n type: String,\n default: 'primary',\n },\n content: { required: false },\n dot: Boolean,\n label: {\n type: String,\n default: '$vuetify.badge',\n },\n icon: String,\n inline: Boolean,\n offsetX: [Number, String],\n offsetY: [Number, String],\n overlap: Boolean,\n tile: Boolean,\n transition: {\n type: String,\n default: 'scale-rotate-transition',\n },\n value: { default: true },\n },\n\n computed: {\n classes (): object {\n return {\n 'v-badge--avatar': this.avatar,\n 'v-badge--bordered': this.bordered,\n 'v-badge--bottom': this.bottom,\n 'v-badge--dot': this.dot,\n 'v-badge--icon': this.icon != null,\n 'v-badge--inline': this.inline,\n 'v-badge--left': this.left,\n 'v-badge--overlap': this.overlap,\n 'v-badge--tile': this.tile,\n ...this.themeClasses,\n }\n },\n computedBottom (): string {\n return this.bottom ? 'auto' : this.computedYOffset\n },\n computedLeft (): string {\n if (this.isRtl) {\n return this.left ? this.computedXOffset : 'auto'\n }\n\n return this.left ? 'auto' : this.computedXOffset\n },\n computedRight (): string {\n if (this.isRtl) {\n return this.left ? 'auto' : this.computedXOffset\n }\n\n return !this.left ? 'auto' : this.computedXOffset\n },\n computedTop (): string {\n return this.bottom ? this.computedYOffset : 'auto'\n },\n computedXOffset (): string {\n return this.calcPosition(this.offsetX)\n },\n computedYOffset (): string {\n return this.calcPosition(this.offsetY)\n },\n isRtl (): boolean {\n return this.$vuetify.rtl\n },\n // Default fallback if offsetX\n // or offsetY are undefined.\n offset (): number {\n if (this.overlap) return this.dot ? 8 : 12\n return this.dot ? 2 : 4\n },\n styles (): object {\n if (this.inline) return {}\n\n return {\n bottom: this.computedBottom,\n left: this.computedLeft,\n right: this.computedRight,\n top: this.computedTop,\n }\n },\n },\n\n methods: {\n calcPosition (offset: string | number): string {\n return `calc(100% - ${convertToUnit(offset || this.offset)})`\n },\n genBadge () {\n const lang = this.$vuetify.lang\n const label = this.$attrs['aria-label'] || lang.t(this.label)\n\n const data = this.setBackgroundColor(this.color, {\n staticClass: 'v-badge__badge',\n style: this.styles,\n attrs: {\n 'aria-atomic': this.$attrs['aria-atomic'] || 'true',\n 'aria-label': label,\n 'aria-live': this.$attrs['aria-live'] || 'polite',\n title: this.$attrs.title,\n role: this.$attrs.role || 'status',\n },\n directives: [{\n name: 'show',\n value: this.isActive,\n }],\n })\n\n const badge = this.$createElement('span', data, [this.genBadgeContent()])\n\n if (!this.transition) return badge\n\n return this.$createElement('transition', {\n props: {\n name: this.transition,\n origin: this.origin,\n mode: this.mode,\n },\n }, [badge])\n },\n genBadgeContent () {\n // Dot prop shows no content\n if (this.dot) return undefined\n\n const slot = getSlot(this, 'badge')\n\n if (slot) return slot\n if (this.content) return String(this.content)\n if (this.icon) return this.$createElement(VIcon, this.icon)\n\n return undefined\n },\n genBadgeWrapper () {\n return this.$createElement('span', {\n staticClass: 'v-badge__wrapper',\n }, [this.genBadge()])\n },\n },\n\n render (h): VNode {\n const badge = [this.genBadgeWrapper()]\n const children = [getSlot(this)]\n const {\n 'aria-atomic': _x,\n 'aria-label': _y,\n 'aria-live': _z,\n role,\n title,\n ...attrs\n } = this.$attrs\n\n if (this.inline && this.left) children.unshift(badge)\n else children.push(badge)\n\n return h('span', {\n staticClass: 'v-badge',\n attrs,\n class: this.classes,\n }, children)\n },\n})\n","// Styles\nimport './VFooter.sass'\n\n// Components\nimport VSheet from '../VSheet/VSheet'\n\n// Mixins\nimport Applicationable from '../../mixins/applicationable'\nimport SSRBootable from '../../mixins/ssr-bootable'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport { VNode } from 'vue/types/vnode'\n\n/* @vue/component */\nexport default mixins(\n VSheet,\n Applicationable('footer', [\n 'height',\n 'inset',\n ]),\n SSRBootable\n).extend({\n name: 'v-footer',\n\n props: {\n height: {\n default: 'auto',\n type: [Number, String],\n },\n inset: Boolean,\n padless: Boolean,\n tag: {\n type: String,\n default: 'footer',\n },\n },\n\n computed: {\n applicationProperty (): string {\n return this.inset ? 'insetFooter' : 'footer'\n },\n classes (): object {\n return {\n ...VSheet.options.computed.classes.call(this),\n 'v-footer--absolute': this.absolute,\n 'v-footer--fixed': !this.absolute && (this.app || this.fixed),\n 'v-footer--padless': this.padless,\n 'v-footer--inset': this.inset,\n }\n },\n computedBottom (): number | undefined {\n if (!this.isPositioned) return undefined\n\n return this.app\n ? this.$vuetify.application.bottom\n : 0\n },\n computedLeft (): number | undefined {\n if (!this.isPositioned) return undefined\n\n return this.app && this.inset\n ? this.$vuetify.application.left\n : 0\n },\n computedRight (): number | undefined {\n if (!this.isPositioned) return undefined\n\n return this.app && this.inset\n ? this.$vuetify.application.right\n : 0\n },\n isPositioned (): boolean {\n return Boolean(\n this.absolute ||\n this.fixed ||\n this.app\n )\n },\n styles (): object {\n const height = parseInt(this.height)\n\n return {\n ...VSheet.options.computed.styles.call(this),\n height: isNaN(height) ? height : convertToUnit(height),\n left: convertToUnit(this.computedLeft),\n right: convertToUnit(this.computedRight),\n bottom: convertToUnit(this.computedBottom),\n }\n },\n },\n\n methods: {\n updateApplication () {\n const height = parseInt(this.height)\n\n return isNaN(height)\n ? this.$el ? this.$el.clientHeight : 0\n : height\n },\n },\n\n render (h): VNode {\n const data = this.setBackgroundColor(this.color, {\n staticClass: 'v-footer',\n class: this.classes,\n style: this.styles,\n })\n\n return h(this.tag, data, this.$slots.default)\n },\n})\n","// Styles\nimport './VItemGroup.sass'\n\n// Mixins\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 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.internalValue === v\n }\n\n const internalValue = this.internalValue\n if (Array.isArray(internalValue)) {\n return (v: any) => internalValue.includes(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 == null || item.value === ''\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 => 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 = value === this.internalValue\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","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 './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","// 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 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","import VIcon from './VIcon'\n\nexport { VIcon }\nexport default VIcon\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 './_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","// 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 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 ...this.attrs$,\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","// Styles\nimport './VImg.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\n// Components\nimport VResponsive from '../VResponsive'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\n\n// Utils\nimport mixins from '../../util/mixins'\nimport mergeData from '../../util/mergeData'\nimport { consoleWarn } from '../../util/console'\n\n// not intended for public use, this is passed in by vuetify-loader\nexport interface srcObject {\n src: string\n srcset?: string\n lazySrc: string\n aspect: number\n}\n\nconst hasIntersect = typeof window !== 'undefined' && 'IntersectionObserver' in window\n\n/* @vue/component */\nexport default mixins(\n VResponsive,\n Themeable,\n).extend({\n name: 'v-img',\n\n directives: { intersect },\n\n props: {\n alt: String,\n contain: Boolean,\n eager: Boolean,\n gradient: String,\n lazySrc: String,\n options: {\n type: Object,\n // For more information on types, navigate to:\n // https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API\n default: () => ({\n root: undefined,\n rootMargin: undefined,\n threshold: undefined,\n }),\n } as PropValidator,\n position: {\n type: String,\n default: 'center center',\n },\n sizes: String,\n src: {\n type: [String, Object],\n default: '',\n } as PropValidator,\n srcset: String,\n transition: {\n type: [Boolean, String],\n default: 'fade-transition',\n },\n },\n\n data () {\n return {\n currentSrc: '', // Set from srcset\n image: null as HTMLImageElement | null,\n isLoading: true,\n calculatedAspectRatio: undefined as number | undefined,\n naturalWidth: undefined as number | undefined,\n hasError: false,\n }\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.normalisedSrc.aspect || this.calculatedAspectRatio)\n },\n normalisedSrc (): srcObject {\n return this.src && typeof this.src === 'object'\n ? {\n src: this.src.src,\n srcset: this.srcset || this.src.srcset,\n lazySrc: this.lazySrc || this.src.lazySrc,\n aspect: Number(this.aspectRatio || this.src.aspect),\n } : {\n src: this.src,\n srcset: this.srcset,\n lazySrc: this.lazySrc,\n aspect: Number(this.aspectRatio || 0),\n }\n },\n __cachedImage (): VNode | [] {\n if (!(this.normalisedSrc.src || this.normalisedSrc.lazySrc || this.gradient)) return []\n\n const backgroundImage: string[] = []\n const src = this.isLoading ? this.normalisedSrc.lazySrc : this.currentSrc\n\n if (this.gradient) backgroundImage.push(`linear-gradient(${this.gradient})`)\n if (src) backgroundImage.push(`url(\"${src}\")`)\n\n const image = this.$createElement('div', {\n staticClass: 'v-image__image',\n class: {\n 'v-image__image--preload': this.isLoading,\n 'v-image__image--contain': this.contain,\n 'v-image__image--cover': !this.contain,\n },\n style: {\n backgroundImage: backgroundImage.join(', '),\n backgroundPosition: this.position,\n },\n key: +this.isLoading,\n })\n\n /* istanbul ignore if */\n if (!this.transition) return image\n\n return this.$createElement('transition', {\n attrs: {\n name: this.transition,\n mode: 'in-out',\n },\n }, [image])\n },\n },\n\n watch: {\n src () {\n // Force re-init when src changes\n if (!this.isLoading) this.init(undefined, undefined, true)\n else this.loadImage()\n },\n '$vuetify.breakpoint.width': 'getSrc',\n },\n\n mounted () {\n this.init()\n },\n\n methods: {\n init (\n entries?: IntersectionObserverEntry[],\n observer?: IntersectionObserver,\n isIntersecting?: boolean\n ) {\n // If the current browser supports the intersection\n // observer api, the image is not observable, and\n // the eager prop isn't being used, do not load\n if (\n hasIntersect &&\n !isIntersecting &&\n !this.eager\n ) return\n\n if (this.normalisedSrc.lazySrc) {\n const lazyImg = new Image()\n lazyImg.src = this.normalisedSrc.lazySrc\n this.pollForSize(lazyImg, null)\n }\n /* istanbul ignore else */\n if (this.normalisedSrc.src) this.loadImage()\n },\n onLoad () {\n this.getSrc()\n this.isLoading = false\n this.$emit('load', this.src)\n\n 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\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 if (this.$slots.placeholder) {\n const placeholder = this.isLoading\n ? [this.$createElement('div', {\n staticClass: 'v-image__placeholder',\n }, this.$slots.placeholder)]\n : []\n\n if (!this.transition) return placeholder[0]\n\n return this.$createElement('transition', {\n props: {\n appear: true,\n name: this.transition,\n },\n }, placeholder)\n }\n },\n },\n\n render (h): VNode {\n const node = VResponsive.options.render.call(this, h)\n\n const data = mergeData(node.data!, {\n staticClass: 'v-image',\n attrs: {\n 'aria-label': this.alt,\n role: this.alt ? 'img' : undefined,\n },\n class: this.themeClasses,\n // Only load intersect directive if it\n // will work in the current browser.\n directives: hasIntersect\n ? [{\n name: 'intersect',\n modifiers: { once: true },\n value: {\n handler: this.init,\n options: this.options,\n },\n }]\n : undefined,\n })\n\n node.children = [\n this.__cachedSizer,\n this.__cachedImage,\n this.__genPlaceholder(),\n this.genContent(),\n ] as VNode[]\n\n return h(node.tag, data, node.children)\n },\n})\n","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","// 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 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 ...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 }, [\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 },\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","// Components\nimport { VFadeTransition } from '../transitions'\nimport VExpansionPanel from './VExpansionPanel'\nimport VIcon from '../VIcon'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport { inject as RegistrableInject } from '../../mixins/registrable'\n\n// Directives\nimport ripple from '../../directives/ripple'\n\n// Utilities\nimport { getSlot } from '../../util/helpers'\nimport mixins, { ExtractVue } from '../../util/mixins'\n\n// Types\nimport Vue, { VNode, VueConstructor } from 'vue'\n\nconst baseMixins = mixins(\n Colorable,\n RegistrableInject<'expansionPanel', VueConstructor>('expansionPanel', 'v-expansion-panel-header', 'v-expansion-panel')\n)\n\ninterface options extends ExtractVue {\n $el: HTMLElement\n expansionPanel: InstanceType\n}\n\nexport default baseMixins.extend().extend({\n name: 'v-expansion-panel-header',\n\n directives: { ripple },\n\n props: {\n disableIconRotate: Boolean,\n expandIcon: {\n type: String,\n default: '$expand',\n },\n hideActions: Boolean,\n ripple: {\n type: [Boolean, Object],\n default: false,\n },\n },\n\n data: () => ({\n hasMousedown: false,\n }),\n\n computed: {\n classes (): object {\n return {\n 'v-expansion-panel-header--active': this.isActive,\n 'v-expansion-panel-header--mousedown': this.hasMousedown,\n }\n },\n isActive (): boolean {\n return this.expansionPanel.isActive\n },\n isDisabled (): boolean {\n return this.expansionPanel.isDisabled\n },\n isReadonly (): boolean {\n return this.expansionPanel.isReadonly\n },\n },\n\n created () {\n this.expansionPanel.registerHeader(this)\n },\n\n beforeDestroy () {\n this.expansionPanel.unregisterHeader()\n },\n\n methods: {\n onClick (e: MouseEvent) {\n this.$emit('click', e)\n },\n genIcon () {\n const icon = getSlot(this, 'actions') ||\n [this.$createElement(VIcon, this.expandIcon)]\n\n return this.$createElement(VFadeTransition, [\n this.$createElement('div', {\n staticClass: 'v-expansion-panel-header__icon',\n class: {\n 'v-expansion-panel-header__icon--disable-rotate': this.disableIconRotate,\n },\n directives: [{\n name: 'show',\n value: !this.isDisabled,\n }],\n }, icon),\n ])\n },\n },\n\n render (h): VNode {\n return h('button', this.setBackgroundColor(this.color, {\n staticClass: 'v-expansion-panel-header',\n class: this.classes,\n attrs: {\n tabindex: this.isDisabled ? -1 : null,\n type: 'button',\n 'aria-expanded': this.isActive,\n },\n directives: [{\n name: 'ripple',\n value: this.ripple,\n }],\n on: {\n ...this.$listeners,\n click: this.onClick,\n mousedown: () => (this.hasMousedown = true),\n mouseup: () => (this.hasMousedown = false),\n },\n }), [\n getSlot(this, 'default', { open: this.isActive }, true),\n this.hideActions || this.genIcon(),\n ])\n },\n})\n","// Components\nimport VExpansionPanels from './VExpansionPanels'\nimport VExpansionPanelHeader from './VExpansionPanelHeader'\nimport VExpansionPanelContent from './VExpansionPanelContent'\n\n// Mixins\nimport { factory as GroupableFactory } from '../../mixins/groupable'\nimport { provide as RegistrableProvide } from '../../mixins/registrable'\n\n// Utilities\nimport { getSlot } from '../../util/helpers'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\ntype VExpansionPanelHeaderInstance = InstanceType\ntype VExpansionPanelContentInstance = InstanceType\n\nexport default mixins(\n GroupableFactory<'expansionPanels', typeof VExpansionPanels>('expansionPanels', 'v-expansion-panel', 'v-expansion-panels'),\n RegistrableProvide('expansionPanel', true)\n /* @vue/component */\n).extend({\n name: 'v-expansion-panel',\n\n props: {\n disabled: Boolean,\n readonly: Boolean,\n },\n\n data () {\n return {\n content: null as VExpansionPanelContentInstance | null,\n header: null as VExpansionPanelHeaderInstance | null,\n nextIsActive: false,\n }\n },\n\n computed: {\n classes (): object {\n return {\n 'v-expansion-panel--active': this.isActive,\n 'v-expansion-panel--next-active': this.nextIsActive,\n 'v-expansion-panel--disabled': this.isDisabled,\n ...this.groupClasses,\n }\n },\n isDisabled (): boolean {\n return this.expansionPanels.disabled || this.disabled\n },\n isReadonly (): boolean {\n return this.expansionPanels.readonly || this.readonly\n },\n },\n\n methods: {\n registerContent (vm: VExpansionPanelContentInstance) {\n this.content = vm\n },\n unregisterContent () {\n this.content = null\n },\n registerHeader (vm: VExpansionPanelHeaderInstance) {\n this.header = vm\n vm.$on('click', this.onClick)\n },\n unregisterHeader () {\n this.header = null\n },\n onClick (e: MouseEvent) {\n if (e.detail) this.header!.$el.blur()\n\n this.$emit('click', e)\n\n this.isReadonly || this.isDisabled || this.toggle()\n },\n toggle () {\n /* istanbul ignore else */\n if (this.content) this.content.isBooted = true\n this.$nextTick(() => this.$emit('change'))\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-expansion-panel',\n class: this.classes,\n attrs: {\n 'aria-expanded': String(this.isActive),\n },\n }, getSlot(this))\n },\n})\n","// Mixins\nimport Delayable from '../../mixins/delayable'\nimport Toggleable from '../../mixins/toggleable'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport { consoleWarn } from '../../util/console'\n\n// Types\nimport { VNode, ScopedSlotChildren } from 'vue/types/vnode'\n\nexport default mixins(\n Delayable,\n Toggleable\n /* @vue/component */\n).extend({\n name: 'v-hover',\n\n props: {\n disabled: {\n type: Boolean,\n default: false,\n },\n value: {\n type: Boolean,\n default: undefined,\n },\n },\n\n methods: {\n onMouseEnter () {\n this.runDelay('open')\n },\n onMouseLeave () {\n this.runDelay('close')\n },\n },\n\n render (): VNode {\n if (!this.$scopedSlots.default && this.value === undefined) {\n consoleWarn('v-hover is missing a default scopedSlot or bound value', this)\n\n return null as any\n }\n\n let element: VNode | ScopedSlotChildren\n\n /* istanbul ignore else */\n if (this.$scopedSlots.default) {\n element = this.$scopedSlots.default({ hover: this.isActive })\n }\n\n if (Array.isArray(element) && element.length === 1) {\n element = element[0]\n }\n\n if (!element || Array.isArray(element) || !element.tag) {\n consoleWarn('v-hover should only contain a single element', this)\n\n return element as any\n }\n\n if (!this.disabled) {\n element.data = element.data || {}\n this._g(element.data, {\n mouseenter: this.onMouseEnter,\n mouseleave: this.onMouseLeave,\n })\n }\n\n return element\n },\n})\n","// Mixins\nimport { factory as GroupableFactory } from '../../mixins/groupable'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport { consoleWarn } from '../../util/console'\n\n// Types\nimport Vue from 'vue'\nimport { VNode, ScopedSlotChildren } from 'vue/types/vnode'\n\n/* @vue/component */\nexport const BaseItem = Vue.extend({\n props: {\n activeClass: String,\n value: {\n required: false,\n },\n },\n\n data: () => ({\n isActive: false,\n }),\n\n methods: {\n toggle () {\n this.isActive = !this.isActive\n },\n },\n\n render (): VNode {\n if (!this.$scopedSlots.default) {\n consoleWarn('v-item is missing a default scopedSlot', this)\n\n return null as any\n }\n\n let element: VNode | ScopedSlotChildren\n\n /* istanbul ignore else */\n if (this.$scopedSlots.default) {\n element = this.$scopedSlots.default({\n active: this.isActive,\n toggle: this.toggle,\n })\n }\n\n if (Array.isArray(element) && element.length === 1) {\n element = element[0]\n }\n\n if (!element || Array.isArray(element) || !element.tag) {\n consoleWarn('v-item should only contain a single element', this)\n\n return element as any\n }\n\n element.data = this._b(element.data || {}, element.tag!, {\n class: { [this.activeClass]: this.isActive },\n })\n\n return element\n },\n})\n\nexport default mixins(\n BaseItem,\n GroupableFactory('itemGroup', 'v-item', 'v-item-group')\n).extend({\n name: 'v-item',\n})\n"],"sourceRoot":""}