{"version":3,"sources":["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/util/colors.ts","webpack:///../../../src/components/VColorPicker/VColorPickerSwatches.ts","webpack:///../../../src/components/VColorPicker/VColorPicker.ts","webpack:///../../../src/components/VSlider/VSlider.ts"],"names":["hsva","hexa","hsla","rgba","alpha","hex","hue","fromHexa","has","key","k","obj","fromRGBA","r","g","b","a","color","oldColor","parseFloat","fromHSLA","fromHSVA","rest","input","name","props","disabled","hideAlpha","Boolean","methods","genAlpha","this","genTrack","staticClass","thumbColor","hideDetails","value","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","computed","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","created","getValue","Math","parseValue","changeMode","index","newMode","genInput","domProps","target","genInputs","maxlength","change","el","newVal","genSwitch","VBtn","small","icon","VIcon","red","base","lighten5","lighten4","lighten3","lighten2","lighten1","darken1","darken2","darken3","darken4","accent1","accent2","accent3","accent4","pink","purple","deepPurple","indigo","blue","lightBlue","cyan","teal","green","lightGreen","lime","yellow","amber","orange","deepOrange","brown","blueGrey","grey","shades","black","white","transparent","parseDefaultColors","colors","fromHex","mixins","swatches","maxWidth","maxHeight","String","genColor","content","parseColor","dark","light","genSwatches","map","swatch","canvasHeight","flat","hideCanvas","hideInputs","showSwatches","swatchesMaxHeight","internalValue","hasAlpha","handler","immediate","updateColor","extractColor","genControls","genEdit","genPreview","VSheet","elevationClasses","directives","ClickOutside","inverseLabel","thumbLabel","thumbSize","tickLabels","ticks","tickSize","trackColor","trackFillColor","vertical","app","oldValue","keyPressed","isFocused","isActive","noClick","classes","get","set","isNaN","roundValue","trackTransition","minValue","maxValue","stepNumeric","inputWidth","trackFillStyles","startDir","endDir","valueDir","start","end","isDisabled","transition","trackStyles","showTicks","length","numTicks","showThumbLabel","$scopedSlots","computedTrackColor","validationState","computedTrackFillColor","computedThumbColor","parsed","$emit","beforeMount","document","genDefaultSlot","children","slider","genSlider","themeClasses","onBlur","onSliderClick","genChildren","genThumbContainer","id","readonly","tabindex","$attrs","genTrackContainer","setBackgroundColor","genSteps","range","direction","offsetDirection","filled","thumbLabelContent","genThumbLabelContent","genThumbLabel","setTextColor","getThumbContainerStyles","role","focus","blur","keydown","keyup","touchstart","onDrag","size","origin","genThumb","onThumbMouseDown","mouseUpOptions","passive","capture","mouseMoveOptions","onSliderMouseUp","onMouseMove","parseMouseMove","onKeyDown","parseKeyDown","onKeyUp","thumb","onFocus","track","trackLength","clickOffset","clickPos","isInsideTrack","trackStart","up","pageup","pagedown","home","right","down","includes","steps","increase","multiplier","trimmedStep","toString","decimals","offset","newValue"],"mappings":"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","file":"js/chunk-62526a8b.ac5e02ab.js","sourcesContent":["// 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 if (has(input, ['r', 'g', 'b'])) return stripAlpha(color.rgba, !input.a)\n else if (has(input, ['h', 's', 'l'])) return stripAlpha(color.hsla, !input.a)\n else if (has(input, ['h', 's', 'v'])) return stripAlpha(color.hsva, !input.a)\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","const red = Object.freeze({\n base: '#f44336',\n lighten5: '#ffebee',\n lighten4: '#ffcdd2',\n lighten3: '#ef9a9a',\n lighten2: '#e57373',\n lighten1: '#ef5350',\n darken1: '#e53935',\n darken2: '#d32f2f',\n darken3: '#c62828',\n darken4: '#b71c1c',\n accent1: '#ff8a80',\n accent2: '#ff5252',\n accent3: '#ff1744',\n accent4: '#d50000',\n})\n\nconst pink = Object.freeze({\n base: '#e91e63',\n lighten5: '#fce4ec',\n lighten4: '#f8bbd0',\n lighten3: '#f48fb1',\n lighten2: '#f06292',\n lighten1: '#ec407a',\n darken1: '#d81b60',\n darken2: '#c2185b',\n darken3: '#ad1457',\n darken4: '#880e4f',\n accent1: '#ff80ab',\n accent2: '#ff4081',\n accent3: '#f50057',\n accent4: '#c51162',\n})\n\nconst purple = Object.freeze({\n base: '#9c27b0',\n lighten5: '#f3e5f5',\n lighten4: '#e1bee7',\n lighten3: '#ce93d8',\n lighten2: '#ba68c8',\n lighten1: '#ab47bc',\n darken1: '#8e24aa',\n darken2: '#7b1fa2',\n darken3: '#6a1b9a',\n darken4: '#4a148c',\n accent1: '#ea80fc',\n accent2: '#e040fb',\n accent3: '#d500f9',\n accent4: '#aa00ff',\n})\n\nconst deepPurple = Object.freeze({\n base: '#673ab7',\n lighten5: '#ede7f6',\n lighten4: '#d1c4e9',\n lighten3: '#b39ddb',\n lighten2: '#9575cd',\n lighten1: '#7e57c2',\n darken1: '#5e35b1',\n darken2: '#512da8',\n darken3: '#4527a0',\n darken4: '#311b92',\n accent1: '#b388ff',\n accent2: '#7c4dff',\n accent3: '#651fff',\n accent4: '#6200ea',\n})\n\nconst indigo = Object.freeze({\n base: '#3f51b5',\n lighten5: '#e8eaf6',\n lighten4: '#c5cae9',\n lighten3: '#9fa8da',\n lighten2: '#7986cb',\n lighten1: '#5c6bc0',\n darken1: '#3949ab',\n darken2: '#303f9f',\n darken3: '#283593',\n darken4: '#1a237e',\n accent1: '#8c9eff',\n accent2: '#536dfe',\n accent3: '#3d5afe',\n accent4: '#304ffe',\n})\n\nconst blue = Object.freeze({\n base: '#2196f3',\n lighten5: '#e3f2fd',\n lighten4: '#bbdefb',\n lighten3: '#90caf9',\n lighten2: '#64b5f6',\n lighten1: '#42a5f5',\n darken1: '#1e88e5',\n darken2: '#1976d2',\n darken3: '#1565c0',\n darken4: '#0d47a1',\n accent1: '#82b1ff',\n accent2: '#448aff',\n accent3: '#2979ff',\n accent4: '#2962ff',\n})\n\nconst lightBlue = Object.freeze({\n base: '#03a9f4',\n lighten5: '#e1f5fe',\n lighten4: '#b3e5fc',\n lighten3: '#81d4fa',\n lighten2: '#4fc3f7',\n lighten1: '#29b6f6',\n darken1: '#039be5',\n darken2: '#0288d1',\n darken3: '#0277bd',\n darken4: '#01579b',\n accent1: '#80d8ff',\n accent2: '#40c4ff',\n accent3: '#00b0ff',\n accent4: '#0091ea',\n})\n\nconst cyan = Object.freeze({\n base: '#00bcd4',\n lighten5: '#e0f7fa',\n lighten4: '#b2ebf2',\n lighten3: '#80deea',\n lighten2: '#4dd0e1',\n lighten1: '#26c6da',\n darken1: '#00acc1',\n darken2: '#0097a7',\n darken3: '#00838f',\n darken4: '#006064',\n accent1: '#84ffff',\n accent2: '#18ffff',\n accent3: '#00e5ff',\n accent4: '#00b8d4',\n})\n\nconst teal = Object.freeze({\n base: '#009688',\n lighten5: '#e0f2f1',\n lighten4: '#b2dfdb',\n lighten3: '#80cbc4',\n lighten2: '#4db6ac',\n lighten1: '#26a69a',\n darken1: '#00897b',\n darken2: '#00796b',\n darken3: '#00695c',\n darken4: '#004d40',\n accent1: '#a7ffeb',\n accent2: '#64ffda',\n accent3: '#1de9b6',\n accent4: '#00bfa5',\n})\n\nconst green = Object.freeze({\n base: '#4caf50',\n lighten5: '#e8f5e9',\n lighten4: '#c8e6c9',\n lighten3: '#a5d6a7',\n lighten2: '#81c784',\n lighten1: '#66bb6a',\n darken1: '#43a047',\n darken2: '#388e3c',\n darken3: '#2e7d32',\n darken4: '#1b5e20',\n accent1: '#b9f6ca',\n accent2: '#69f0ae',\n accent3: '#00e676',\n accent4: '#00c853',\n})\n\nconst lightGreen = Object.freeze({\n base: '#8bc34a',\n lighten5: '#f1f8e9',\n lighten4: '#dcedc8',\n lighten3: '#c5e1a5',\n lighten2: '#aed581',\n lighten1: '#9ccc65',\n darken1: '#7cb342',\n darken2: '#689f38',\n darken3: '#558b2f',\n darken4: '#33691e',\n accent1: '#ccff90',\n accent2: '#b2ff59',\n accent3: '#76ff03',\n accent4: '#64dd17',\n})\n\nconst lime = Object.freeze({\n base: '#cddc39',\n lighten5: '#f9fbe7',\n lighten4: '#f0f4c3',\n lighten3: '#e6ee9c',\n lighten2: '#dce775',\n lighten1: '#d4e157',\n darken1: '#c0ca33',\n darken2: '#afb42b',\n darken3: '#9e9d24',\n darken4: '#827717',\n accent1: '#f4ff81',\n accent2: '#eeff41',\n accent3: '#c6ff00',\n accent4: '#aeea00',\n})\n\nconst yellow = Object.freeze({\n base: '#ffeb3b',\n lighten5: '#fffde7',\n lighten4: '#fff9c4',\n lighten3: '#fff59d',\n lighten2: '#fff176',\n lighten1: '#ffee58',\n darken1: '#fdd835',\n darken2: '#fbc02d',\n darken3: '#f9a825',\n darken4: '#f57f17',\n accent1: '#ffff8d',\n accent2: '#ffff00',\n accent3: '#ffea00',\n accent4: '#ffd600',\n})\n\nconst amber = Object.freeze({\n base: '#ffc107',\n lighten5: '#fff8e1',\n lighten4: '#ffecb3',\n lighten3: '#ffe082',\n lighten2: '#ffd54f',\n lighten1: '#ffca28',\n darken1: '#ffb300',\n darken2: '#ffa000',\n darken3: '#ff8f00',\n darken4: '#ff6f00',\n accent1: '#ffe57f',\n accent2: '#ffd740',\n accent3: '#ffc400',\n accent4: '#ffab00',\n})\n\nconst orange = Object.freeze({\n base: '#ff9800',\n lighten5: '#fff3e0',\n lighten4: '#ffe0b2',\n lighten3: '#ffcc80',\n lighten2: '#ffb74d',\n lighten1: '#ffa726',\n darken1: '#fb8c00',\n darken2: '#f57c00',\n darken3: '#ef6c00',\n darken4: '#e65100',\n accent1: '#ffd180',\n accent2: '#ffab40',\n accent3: '#ff9100',\n accent4: '#ff6d00',\n})\n\nconst deepOrange = Object.freeze({\n base: '#ff5722',\n lighten5: '#fbe9e7',\n lighten4: '#ffccbc',\n lighten3: '#ffab91',\n lighten2: '#ff8a65',\n lighten1: '#ff7043',\n darken1: '#f4511e',\n darken2: '#e64a19',\n darken3: '#d84315',\n darken4: '#bf360c',\n accent1: '#ff9e80',\n accent2: '#ff6e40',\n accent3: '#ff3d00',\n accent4: '#dd2c00',\n})\n\nconst brown = Object.freeze({\n base: '#795548',\n lighten5: '#efebe9',\n lighten4: '#d7ccc8',\n lighten3: '#bcaaa4',\n lighten2: '#a1887f',\n lighten1: '#8d6e63',\n darken1: '#6d4c41',\n darken2: '#5d4037',\n darken3: '#4e342e',\n darken4: '#3e2723',\n})\n\nconst blueGrey = Object.freeze({\n base: '#607d8b',\n lighten5: '#eceff1',\n lighten4: '#cfd8dc',\n lighten3: '#b0bec5',\n lighten2: '#90a4ae',\n lighten1: '#78909c',\n darken1: '#546e7a',\n darken2: '#455a64',\n darken3: '#37474f',\n darken4: '#263238',\n})\n\nconst grey = Object.freeze({\n base: '#9e9e9e',\n lighten5: '#fafafa',\n lighten4: '#f5f5f5',\n lighten3: '#eeeeee',\n lighten2: '#e0e0e0',\n lighten1: '#bdbdbd',\n darken1: '#757575',\n darken2: '#616161',\n darken3: '#424242',\n darken4: '#212121',\n})\n\nconst shades = Object.freeze({\n black: '#000000',\n white: '#ffffff',\n transparent: 'transparent',\n})\n\nexport default Object.freeze({\n red,\n pink,\n purple,\n deepPurple,\n indigo,\n blue,\n lightBlue,\n cyan,\n teal,\n green,\n lightGreen,\n lime,\n yellow,\n amber,\n orange,\n deepOrange,\n brown,\n blueGrey,\n grey,\n shades,\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 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.$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 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.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 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.genControls(),\n this.showSwatches && this.genSwatches(),\n ])\n },\n})\n","import './VSlider.sass'\n\n// Components\nimport VInput from '../VInput'\nimport { VScaleTransition } from '../transitions'\n\n// Mixins\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport Loadable from '../../mixins/loadable'\n\n// Directives\nimport ClickOutside from '../../directives/click-outside'\n\n// Helpers\nimport { addOnceEventListener, deepEqual, keyCodes, createRange, convertToUnit, passiveSupported } from '../../util/helpers'\nimport { consoleWarn } from '../../util/console'\n\n// Types\nimport Vue, { VNode, VNodeChildrenArrayContents, PropType } from 'vue'\nimport { ScopedSlotChildren } from 'vue/types/vnode'\nimport { PropValidator } from 'vue/types/options'\n\ninterface options extends Vue {\n $refs: {\n track: HTMLElement\n }\n}\n\nexport default mixins\n/* eslint-enable indent */\n>(\n VInput,\n Loadable\n/* @vue/component */\n).extend({\n name: 'v-slider',\n\n directives: {\n ClickOutside,\n },\n\n mixins: [Loadable],\n\n props: {\n disabled: Boolean,\n inverseLabel: Boolean,\n max: {\n type: [Number, String],\n default: 100,\n },\n min: {\n type: [Number, String],\n default: 0,\n },\n step: {\n type: [Number, String],\n default: 1,\n },\n thumbColor: String,\n thumbLabel: {\n type: [Boolean, String] as PropType,\n default: undefined,\n validator: v => typeof v === 'boolean' || v === 'always',\n },\n thumbSize: {\n type: [Number, String],\n default: 32,\n },\n tickLabels: {\n type: Array,\n default: () => ([]),\n } as PropValidator,\n ticks: {\n type: [Boolean, String] as PropType,\n default: false,\n validator: v => typeof v === 'boolean' || v === 'always',\n },\n tickSize: {\n type: [Number, String],\n default: 2,\n },\n trackColor: String,\n trackFillColor: String,\n value: [Number, String],\n vertical: Boolean,\n },\n\n data: () => ({\n app: null as any,\n oldValue: null as any,\n keyPressed: 0,\n isFocused: false,\n isActive: false,\n noClick: false, // Prevent click event if dragging took place, hack for #7915\n }),\n\n computed: {\n classes (): object {\n return {\n ...VInput.options.computed.classes.call(this),\n 'v-input__slider': true,\n 'v-input__slider--vertical': this.vertical,\n 'v-input__slider--inverse-label': this.inverseLabel,\n }\n },\n internalValue: {\n get (): number {\n return this.lazyValue\n },\n set (val: number) {\n val = isNaN(val) ? this.minValue : val\n // Round value to ensure the\n // entire slider range can\n // be selected with step\n const value = this.roundValue(Math.min(Math.max(val, this.minValue), this.maxValue))\n\n if (value === this.lazyValue) return\n\n this.lazyValue = value\n\n this.$emit('input', value)\n },\n },\n trackTransition (): string {\n return this.keyPressed >= 2 ? 'none' : ''\n },\n minValue (): number {\n return parseFloat(this.min)\n },\n maxValue (): number {\n return parseFloat(this.max)\n },\n stepNumeric (): number {\n return this.step > 0 ? parseFloat(this.step) : 0\n },\n inputWidth (): number {\n return (this.roundValue(this.internalValue) - this.minValue) / (this.maxValue - this.minValue) * 100\n },\n trackFillStyles (): Partial {\n const startDir = this.vertical ? 'bottom' : 'left'\n const endDir = this.vertical ? 'top' : 'right'\n const valueDir = this.vertical ? 'height' : 'width'\n\n const start = this.$vuetify.rtl ? 'auto' : '0'\n const end = this.$vuetify.rtl ? '0' : 'auto'\n const value = this.isDisabled ? `calc(${this.inputWidth}% - 10px)` : `${this.inputWidth}%`\n\n return {\n transition: this.trackTransition,\n [startDir]: start,\n [endDir]: end,\n [valueDir]: value,\n }\n },\n trackStyles (): Partial {\n const startDir = this.vertical ? this.$vuetify.rtl ? 'bottom' : 'top' : this.$vuetify.rtl ? 'left' : 'right'\n const endDir = this.vertical ? 'height' : 'width'\n\n const start = '0px'\n const end = this.isDisabled ? `calc(${100 - this.inputWidth}% - 10px)` : `calc(${100 - this.inputWidth}%)`\n\n return {\n transition: this.trackTransition,\n [startDir]: start,\n [endDir]: end,\n }\n },\n showTicks (): boolean {\n return this.tickLabels.length > 0 ||\n !!(!this.isDisabled && this.stepNumeric && this.ticks)\n },\n numTicks (): number {\n return Math.ceil((this.maxValue - this.minValue) / this.stepNumeric)\n },\n showThumbLabel (): boolean {\n return !this.isDisabled && !!(\n this.thumbLabel ||\n this.$scopedSlots['thumb-label']\n )\n },\n computedTrackColor (): string | undefined {\n if (this.isDisabled) return undefined\n if (this.trackColor) return this.trackColor\n if (this.isDark) return this.validationState\n return this.validationState || 'primary lighten-3'\n },\n computedTrackFillColor (): string | undefined {\n if (this.isDisabled) return undefined\n if (this.trackFillColor) return this.trackFillColor\n return this.validationState || this.computedColor\n },\n computedThumbColor (): string | undefined {\n if (this.thumbColor) return this.thumbColor\n return this.validationState || this.computedColor\n },\n },\n\n watch: {\n min (val) {\n const parsed = parseFloat(val)\n parsed > this.internalValue && this.$emit('input', parsed)\n },\n max (val) {\n const parsed = parseFloat(val)\n parsed < this.internalValue && this.$emit('input', parsed)\n },\n value: {\n handler (v: number) {\n this.internalValue = v\n },\n },\n },\n\n // If done in as immediate in\n // value watcher, causes issues\n // with vue-test-utils\n beforeMount () {\n this.internalValue = this.value\n },\n\n mounted () {\n // Without a v-app, iOS does not work with body selectors\n this.app = document.querySelector('[data-app]') ||\n consoleWarn('Missing v-app or a non-body wrapping element with the [data-app] attribute', this)\n },\n\n methods: {\n genDefaultSlot (): VNodeChildrenArrayContents {\n const children: VNodeChildrenArrayContents = [this.genLabel()]\n const slider = this.genSlider()\n this.inverseLabel\n ? children.unshift(slider)\n : children.push(slider)\n\n children.push(this.genProgress())\n\n return children\n },\n genSlider (): VNode {\n return this.$createElement('div', {\n class: {\n 'v-slider': true,\n 'v-slider--horizontal': !this.vertical,\n 'v-slider--vertical': this.vertical,\n 'v-slider--focused': this.isFocused,\n 'v-slider--active': this.isActive,\n 'v-slider--disabled': this.isDisabled,\n 'v-slider--readonly': this.isReadonly,\n ...this.themeClasses,\n },\n directives: [{\n name: 'click-outside',\n value: this.onBlur,\n }],\n on: {\n click: this.onSliderClick,\n },\n }, this.genChildren())\n },\n genChildren (): VNodeChildrenArrayContents {\n return [\n this.genInput(),\n this.genTrackContainer(),\n this.genSteps(),\n this.genThumbContainer(\n this.internalValue,\n this.inputWidth,\n this.isActive,\n this.isFocused,\n this.onThumbMouseDown,\n this.onFocus,\n this.onBlur,\n ),\n ]\n },\n genInput (): VNode {\n return this.$createElement('input', {\n attrs: {\n value: this.internalValue,\n id: this.computedId,\n disabled: this.isDisabled,\n readonly: true,\n tabindex: -1,\n ...this.$attrs,\n },\n // on: this.genListeners(), // TODO: do we need to attach the listeners to input?\n })\n },\n genTrackContainer (): VNode {\n const children = [\n this.$createElement('div', this.setBackgroundColor(this.computedTrackColor, {\n staticClass: 'v-slider__track-background',\n style: this.trackStyles,\n })),\n this.$createElement('div', this.setBackgroundColor(this.computedTrackFillColor, {\n staticClass: 'v-slider__track-fill',\n style: this.trackFillStyles,\n })),\n ]\n\n return this.$createElement('div', {\n staticClass: 'v-slider__track-container',\n ref: 'track',\n }, children)\n },\n genSteps (): VNode | null {\n if (!this.step || !this.showTicks) return null\n\n const tickSize = parseFloat(this.tickSize)\n const range = createRange(this.numTicks + 1)\n const direction = this.vertical ? 'bottom' : (this.$vuetify.rtl ? 'right' : 'left')\n const offsetDirection = this.vertical ? (this.$vuetify.rtl ? 'left' : 'right') : 'top'\n\n if (this.vertical) range.reverse()\n\n const ticks = range.map(index => {\n const children = []\n\n if (this.tickLabels[index]) {\n children.push(this.$createElement('div', {\n staticClass: 'v-slider__tick-label',\n }, this.tickLabels[index]))\n }\n\n const width = index * (100 / this.numTicks)\n const filled = this.$vuetify.rtl ? (100 - this.inputWidth) < width : width < this.inputWidth\n\n return this.$createElement('span', {\n key: index,\n staticClass: 'v-slider__tick',\n class: {\n 'v-slider__tick--filled': filled,\n },\n style: {\n width: `${tickSize}px`,\n height: `${tickSize}px`,\n [direction]: `calc(${width}% - ${tickSize / 2}px)`,\n [offsetDirection]: `calc(50% - ${tickSize / 2}px)`,\n },\n }, children)\n })\n\n return this.$createElement('div', {\n staticClass: 'v-slider__ticks-container',\n class: {\n 'v-slider__ticks-container--always-show': this.ticks === 'always' || this.tickLabels.length > 0,\n },\n }, ticks)\n },\n genThumbContainer (\n value: number,\n valueWidth: number,\n isActive: boolean,\n isFocused: boolean,\n onDrag: Function,\n onFocus: Function,\n onBlur: Function,\n ref = 'thumb'\n ): VNode {\n const children = [this.genThumb()]\n\n const thumbLabelContent = this.genThumbLabelContent(value)\n this.showThumbLabel && children.push(this.genThumbLabel(thumbLabelContent))\n\n return this.$createElement('div', this.setTextColor(this.computedThumbColor, {\n ref,\n key: ref,\n staticClass: 'v-slider__thumb-container',\n class: {\n 'v-slider__thumb-container--active': isActive,\n 'v-slider__thumb-container--focused': isFocused,\n 'v-slider__thumb-container--show-label': this.showThumbLabel,\n },\n style: this.getThumbContainerStyles(valueWidth),\n attrs: {\n role: 'slider',\n tabindex: this.isDisabled ? -1 : this.$attrs.tabindex ? this.$attrs.tabindex : 0,\n 'aria-label': this.label,\n 'aria-valuemin': this.min,\n 'aria-valuemax': this.max,\n 'aria-valuenow': this.internalValue,\n 'aria-readonly': String(this.isReadonly),\n 'aria-orientation': this.vertical ? 'vertical' : 'horizontal',\n ...this.$attrs,\n },\n on: {\n focus: onFocus,\n blur: onBlur,\n keydown: this.onKeyDown,\n keyup: this.onKeyUp,\n touchstart: onDrag,\n mousedown: onDrag,\n },\n }), children)\n },\n genThumbLabelContent (value: number | string): ScopedSlotChildren {\n return this.$scopedSlots['thumb-label']\n ? this.$scopedSlots['thumb-label']!({ value })\n : [this.$createElement('span', [String(value)])]\n },\n genThumbLabel (content: ScopedSlotChildren): VNode {\n const size = convertToUnit(this.thumbSize)\n\n const transform = this.vertical\n ? `translateY(20%) translateY(${(Number(this.thumbSize) / 3) - 1}px) translateX(55%) rotate(135deg)`\n : `translateY(-20%) translateY(-12px) translateX(-50%) rotate(45deg)`\n\n return this.$createElement(VScaleTransition, {\n props: { origin: 'bottom center' },\n }, [\n this.$createElement('div', {\n staticClass: 'v-slider__thumb-label-container',\n directives: [{\n name: 'show',\n value: this.isFocused || this.isActive || this.thumbLabel === 'always',\n }],\n }, [\n this.$createElement('div', this.setBackgroundColor(this.computedThumbColor, {\n staticClass: 'v-slider__thumb-label',\n style: {\n height: size,\n width: size,\n transform,\n },\n }), [this.$createElement('div', content)]),\n ]),\n ])\n },\n genThumb (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.computedThumbColor, {\n staticClass: 'v-slider__thumb',\n }))\n },\n getThumbContainerStyles (width: number): object {\n const direction = this.vertical ? 'top' : 'left'\n let value = this.$vuetify.rtl ? 100 - width : width\n value = this.vertical ? 100 - value : value\n\n return {\n transition: this.trackTransition,\n [direction]: `${value}%`,\n }\n },\n onThumbMouseDown (e: MouseEvent) {\n e.preventDefault()\n\n this.oldValue = this.internalValue\n this.keyPressed = 2\n this.isActive = true\n\n const mouseUpOptions = passiveSupported ? { passive: true, capture: true } : true\n const mouseMoveOptions = passiveSupported ? { passive: true } : false\n if ('touches' in e) {\n this.app.addEventListener('touchmove', this.onMouseMove, mouseMoveOptions)\n addOnceEventListener(this.app, 'touchend', this.onSliderMouseUp, mouseUpOptions)\n } else {\n this.app.addEventListener('mousemove', this.onMouseMove, mouseMoveOptions)\n addOnceEventListener(this.app, 'mouseup', this.onSliderMouseUp, mouseUpOptions)\n }\n\n this.$emit('start', this.internalValue)\n },\n onSliderMouseUp (e: Event) {\n e.stopPropagation()\n this.keyPressed = 0\n const mouseMoveOptions = passiveSupported ? { passive: true } : false\n this.app.removeEventListener('touchmove', this.onMouseMove, mouseMoveOptions)\n this.app.removeEventListener('mousemove', this.onMouseMove, mouseMoveOptions)\n\n this.$emit('mouseup', e)\n this.$emit('end', this.internalValue)\n if (!deepEqual(this.oldValue, this.internalValue)) {\n this.$emit('change', this.internalValue)\n this.noClick = true\n }\n\n this.isActive = false\n },\n onMouseMove (e: MouseEvent) {\n const { value } = this.parseMouseMove(e)\n this.internalValue = value\n },\n onKeyDown (e: KeyboardEvent) {\n if (!this.isInteractive) return\n\n const value = this.parseKeyDown(e, this.internalValue)\n\n if (\n value == null ||\n value < this.minValue ||\n value > this.maxValue\n ) return\n\n this.internalValue = value\n this.$emit('change', value)\n },\n onKeyUp () {\n this.keyPressed = 0\n },\n onSliderClick (e: MouseEvent) {\n if (this.noClick) {\n this.noClick = false\n return\n }\n const thumb = this.$refs.thumb as HTMLElement\n thumb.focus()\n\n this.onMouseMove(e)\n this.$emit('change', this.internalValue)\n },\n onBlur (e: Event) {\n this.isFocused = false\n\n this.$emit('blur', e)\n },\n onFocus (e: Event) {\n this.isFocused = true\n\n this.$emit('focus', e)\n },\n parseMouseMove (e: MouseEvent) {\n const start = this.vertical ? 'top' : 'left'\n const length = this.vertical ? 'height' : 'width'\n const click = this.vertical ? 'clientY' : 'clientX'\n\n const {\n [start]: trackStart,\n [length]: trackLength,\n } = this.$refs.track.getBoundingClientRect() as any\n const clickOffset = 'touches' in e ? (e as any).touches[0][click] : e[click] // Can we get rid of any here?\n\n // It is possible for left to be NaN, force to number\n let clickPos = Math.min(Math.max((clickOffset - trackStart) / trackLength, 0), 1) || 0\n\n if (this.vertical) clickPos = 1 - clickPos\n if (this.$vuetify.rtl) clickPos = 1 - clickPos\n\n const isInsideTrack = clickOffset >= trackStart && clickOffset <= trackStart + trackLength\n const value = parseFloat(this.min) + clickPos * (this.maxValue - this.minValue)\n\n return { value, isInsideTrack }\n },\n parseKeyDown (e: KeyboardEvent, value: number) {\n if (!this.isInteractive) return\n\n const { pageup, pagedown, end, home, left, right, down, up } = keyCodes\n\n if (![pageup, pagedown, end, home, left, right, down, up].includes(e.keyCode)) return\n\n e.preventDefault()\n const step = this.stepNumeric || 1\n const steps = (this.maxValue - this.minValue) / step\n if ([left, right, down, up].includes(e.keyCode)) {\n this.keyPressed += 1\n\n const increase = this.$vuetify.rtl ? [left, up] : [right, up]\n const direction = increase.includes(e.keyCode) ? 1 : -1\n const multiplier = e.shiftKey ? 3 : (e.ctrlKey ? 2 : 1)\n\n value = value + (direction * step * multiplier)\n } else if (e.keyCode === home) {\n value = this.minValue\n } else if (e.keyCode === end) {\n value = this.maxValue\n } else {\n const direction = e.keyCode === pagedown ? 1 : -1\n value = value - (direction * step * (steps > 100 ? steps / 10 : 10))\n }\n\n return value\n },\n roundValue (value: number): number {\n if (!this.stepNumeric) return value\n // Format input value using the same number\n // of decimals places as in the step prop\n const trimmedStep = this.step.toString().trim()\n const decimals = trimmedStep.indexOf('.') > -1\n ? (trimmedStep.length - trimmedStep.indexOf('.') - 1)\n : 0\n const offset = this.minValue % this.stepNumeric\n\n const newValue = Math.round((value - offset) / this.stepNumeric) * this.stepNumeric + offset\n\n return parseFloat(Math.min(newValue, this.maxValue).toFixed(decimals))\n },\n },\n})\n"],"sourceRoot":""}