{"version":3,"sources":["webpack:///../../../src/components/VSlider/VSlider.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/util/colors.ts","webpack:///../../../src/components/VColorPicker/VColorPickerSwatches.ts","webpack:///../../../src/components/VColorPicker/VColorPicker.ts","webpack:///./src/components/real-estate-development/quote/ColorPickerSelected.vue","webpack:///src/components/real-estate-development/quote/ColorPickerSelected.vue","webpack:///./src/components/real-estate-development/quote/ColorPickerSelected.vue?2dfa","webpack:///./src/components/real-estate-development/quote/ColorPickerSelected.vue?10fd"],"names":["mixins","VInput","Loadable","extend","name","directives","ClickOutside","props","disabled","Boolean","inverseLabel","max","type","Number","String","default","min","step","thumbColor","thumbLabel","undefined","validator","v","thumbSize","tickLabels","Array","ticks","tickSize","trackColor","trackFillColor","value","vertical","data","app","oldValue","thumbPressed","mouseTimeout","isFocused","isActive","noClick","startOffset","computed","classes","_objectSpread","options","call","this","internalValue","get","lazyValue","set","val","isNaN","minValue","roundValue","Math","maxValue","$emit","trackTransition","showTicks","stepNumeric","parseFloat","inputWidth","trackFillStyles","_ref","startDir","endDir","valueDir","start","$vuetify","rtl","end","isDisabled","concat","transition","_defineProperty","trackStyles","_ref2","length","numTicks","ceil","showThumbLabel","$scopedSlots","computedTrackColor","isDark","validationState","computedTrackFillColor","computedColor","computedThumbColor","watch","parsed","handler","immediate","mounted","document","querySelector","consoleWarn","methods","genDefaultSlot","children","genLabel","slider","genSlider","unshift","push","genProgress","$createElement","class","isReadonly","themeClasses","onBlur","on","click","onSliderClick","mousedown","onSliderMouseDown","touchstart","genChildren","genInput","genTrackContainer","genSteps","genThumbContainer","onFocus","attrs","id","computedId","readonly","tabindex","$attrs","setBackgroundColor","staticClass","style","ref","_this","range","createRange","direction","offsetDirection","reverse","map","index","_style","width","filled","key","height","valueWidth","arguments","genThumb","thumbLabelContent","genThumbLabelContent","genThumbLabel","setTextColor","getThumbContainerStyles","role","label","focus","blur","keydown","onKeyDown","content","size","convertToUnit","transform","VScaleTransition","origin","e","_this2","preventDefault","_a","target","matches","domRect","getBoundingClientRect","touch","touches","clientY","top","clientX","left","window","clearTimeout","setTimeout","mouseUpOptions","passiveSupported","passive","capture","mouseMoveOptions","isTouchEvent","onMouseMove","addEventListener","addOnceEventListener","onSliderMouseUp","stopPropagation","removeEventListener","deepEqual","parseMouseMove","isInteractive","parseKeyDown","thumb","$refs","_this$$refs$track$get","track","trackStart","trackLength","clickOffset","clickPos","pageup","keyCodes","pagedown","home","right","down","up","includes","keyCode","steps","increase","multiplier","shiftKey","ctrlKey","trimmedStep","toString","trim","decimals","indexOf","offset","newValue","round","toFixed","fromHSVA","hsva","hexa","HSVAtoHex","hsla","HSVAtoHSLA","rgba","HSVAtoRGBA","alpha","a","hex","substr","hue","h","fromHSLA","HSLAtoHSVA","fromRGBA","RGBAtoHSVA","RGBAtoHex","fromHexa","HexToHSVA","fromHex","parseHex","has","obj","every","k","hasOwnProperty","parseColor","color","oldColor","r","g","b","_typeof","stripAlpha","rest","_objectWithoutProperties","_excluded","extractColor","input","shouldStrip","hasAlpha","Vue","Object","hideAlpha","genAlpha","genTrack","hideDetails","backgroundImage","RGBtoCSS","genSliders","genHue","genDot","background","RGBAtoCSS","VSlider","render","dotSize","boundingRect","dot","x","s","parseInt","y","updateCanvas","emitColor","_this$boundingRect","clamp","canvas","ctx","getContext","saturationGradient","createLinearGradient","addColorStop","fillStyle","fillRect","valueGradient","handleClick","$el","handleMouseDown","handleMouseMove","handleMouseUp","genCanvas","radius","modes","inputs","from","hideModeSwitch","mode","keys","internalMode","currentMode","created","getValue","parseValue","changeMode","newMode","domProps","toUpperCase","genInputs","endsWith","maxlength","change","el","slice","_slicedToArray","newVal","assign","genSwitch","VBtn","small","icon","VIcon","red","freeze","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","Themeable","swatches","maxWidth","maxHeight","genColor","dark","contrastRatio","light","genSwatches","swatch","Elevatable","canvasHeight","flat","hideCanvas","hideSliders","hideInputs","showSwatches","swatchesMaxHeight","updateColor","VColorPickerCanvas","genControls","genPreview","genEdit","VColorPickerEdit","VColorPickerPreview","VColorPickerSwatches","VSheet","elevationClasses","scopedSlots","fn","model","_vm","menu","callback","_c","sendColor","colorSelect","staticRenderFns","defColor","active","mask","swatchStyle","backgroundColor","cursor","borderRadius","border","cancel","component"],"mappings":"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","file":"js/chunk-97e81392.f29f90c8.js","sourcesContent":["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 thumbPressed: false,\n mouseTimeout: -1,\n isFocused: false,\n isActive: false,\n noClick: false, // Prevent click event if dragging took place, hack for #7915\n startOffset: 0,\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.thumbPressed\n ? this.showTicks || this.stepNumeric\n ? '0.1s cubic-bezier(0.25, 0.8, 0.5, 1)'\n : 'none'\n : ''\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 const inputWidth = (this.roundValue(this.internalValue) - this.minValue) / (this.maxValue - this.minValue) * 100\n\n return isNaN(inputWidth) ? 0 : inputWidth\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 immediate: true,\n },\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 mousedown: this.onSliderMouseDown,\n touchstart: this.onSliderMouseDown,\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.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: true,\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 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.$attrs['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 },\n on: {\n focus: onFocus,\n blur: onBlur,\n keydown: this.onKeyDown,\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 onSliderMouseDown (e: MouseEvent | TouchEvent) {\n e.preventDefault()\n\n this.oldValue = this.internalValue\n this.isActive = true\n\n if ((e.target as Element)?.matches('.v-slider__thumb-container, .v-slider__thumb-container *')) {\n this.thumbPressed = true\n const domRect = (e.target as Element).getBoundingClientRect()\n const touch = 'touches' in e ? e.touches[0] : e\n this.startOffset = this.vertical\n ? touch.clientY - (domRect.top + domRect.height / 2)\n : touch.clientX - (domRect.left + domRect.width / 2)\n } else {\n this.startOffset = 0\n window.clearTimeout(this.mouseTimeout)\n this.mouseTimeout = window.setTimeout(() => {\n this.thumbPressed = true\n }, 300)\n }\n\n const mouseUpOptions = passiveSupported ? { passive: true, capture: true } : true\n const mouseMoveOptions = passiveSupported ? { passive: true } : false\n\n const isTouchEvent = 'touches' in e\n\n this.onMouseMove(e)\n this.app.addEventListener(isTouchEvent ? 'touchmove' : 'mousemove', this.onMouseMove, mouseMoveOptions)\n addOnceEventListener(this.app, isTouchEvent ? 'touchend' : 'mouseup', this.onSliderMouseUp, mouseUpOptions)\n\n this.$emit('start', this.internalValue)\n },\n onSliderMouseUp (e: Event) {\n e.stopPropagation()\n window.clearTimeout(this.mouseTimeout)\n this.thumbPressed = false\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 | TouchEvent) {\n if (e.type === 'mousemove') {\n this.thumbPressed = true\n }\n this.internalValue = this.parseMouseMove(e)\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 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 | TouchEvent) {\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()\n const clickOffset = 'touches' in e ? e.touches[0][click] : e[click]\n\n // It is possible for left to be NaN, force to number\n let clickPos = Math.min(Math.max((clickOffset - trackStart - this.startOffset) / trackLength, 0), 1) || 0\n\n if (this.vertical) clickPos = 1 - clickPos\n if (this.$vuetify.rtl) clickPos = 1 - clickPos\n\n return parseFloat(this.min) + clickPos * (this.maxValue - this.minValue)\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 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","// 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","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 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","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-text-field',{attrs:{\"label\":_vm.label,\"hide-details\":\"\",\"readonly\":\"\",\"onmousedown\":\"return false;\"},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c('v-menu',{attrs:{\"top\":\"\",\"nudge-bottom\":\"105\",\"nudge-left\":\"16\",\"close-on-content-click\":false},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('div',_vm._g({style:(_vm.swatchStyle)},on))]}}]),model:{value:(_vm.menu),callback:function ($$v) {_vm.menu=$$v},expression:\"menu\"}},[_c('v-card',[_c('v-card-text',{staticClass:\"pa-0\",attrs:{\"ripple\":false},on:{\"click\":_vm.sendColor,\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;return _vm.sendColor.apply(null, arguments)}}},[_c('v-color-picker',{attrs:{\"dot-size\":\"24\",\"hide-mode-switch\":\"\",\"mode\":\"hexa\",\"show-swatches\":\"\",\"swatches-max-height\":\"200\"},model:{value:(_vm.colorSelect),callback:function ($$v) {_vm.colorSelect=$$v},expression:\"colorSelect\"}})],1)],1)],1)]},proxy:true}]),model:{value:(_vm.colorSelect),callback:function ($$v) {_vm.colorSelect=$$v},expression:\"colorSelect\"}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ColorPickerSelected.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ColorPickerSelected.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ColorPickerSelected.vue?vue&type=template&id=177f005d&\"\nimport script from \"./ColorPickerSelected.vue?vue&type=script&lang=js&\"\nexport * from \"./ColorPickerSelected.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports"],"sourceRoot":""}