UNPKG

vuetify

Version:

Vue Material Component Framework

1 lines 10.8 kB
{"version":3,"file":"index.mjs","names":["HexToHSV","HSLtoHSV","HSVtoHex","HSVtoHSL","HSVtoRGB","parseHex","RGBtoHSV","has","obj","key","every","k","hasOwnProperty","parseColor","color","hsva","hex","stripAlpha","a","rest","extractColor","input","slice","converted","hasAlpha","length","nullColor","h","s","v","rgba","inputProps","type","min","inputs","label","max","step","getValue","c","Math","round","r","getColor","Number","g","b","to","from","rgb","hsla","l","hsl","hexa","modes"],"sources":["../../../../src/components/VColorPicker/util/index.ts"],"sourcesContent":["// Utilities\nimport {\n HexToHSV,\n HSLtoHSV,\n HSVtoHex,\n HSVtoHSL,\n HSVtoRGB,\n parseHex,\n RGBtoHSV,\n} from '@/util/colorUtils'\n\n// Types\nimport type { HSL, HSV, RGB } from '@/util/colorUtils'\n\nfunction has (obj: object, key: string[]) {\n return key.every(k => obj.hasOwnProperty(k))\n}\n\nexport function parseColor (color: any): HSV | null {\n if (!color) return null\n\n let hsva: HSV | null = null\n\n if (typeof color === 'string') {\n const hex = parseHex(color)\n\n hsva = HexToHSV(hex)\n }\n\n if (typeof color === 'object') {\n if (has(color, ['r', 'g', 'b'])) {\n hsva = RGBtoHSV(color)\n } else if (has(color, ['h', 's', 'l'])) {\n hsva = HSLtoHSV(color)\n } else if (has(color, ['h', 's', 'v'])) {\n hsva = color\n }\n }\n\n return hsva\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: HSV, input: any) {\n if (input == null || typeof input === 'string') {\n const hex = HSVtoHex(color)\n\n if (color.a === 1) return hex.slice(0, 7)\n else return hex\n }\n\n if (typeof input === 'object') {\n let converted\n\n if (has(input, ['r', 'g', 'b'])) converted = HSVtoRGB(color)\n else if (has(input, ['h', 's', 'l'])) converted = HSVtoHSL(color)\n else if (has(input, ['h', 's', 'v'])) converted = color\n\n return stripAlpha(converted, !has(input, ['a']) && color.a === 1)\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\nexport const nullColor = { h: 0, s: 0, v: 1, a: 1 }\n\nexport type ColorPickerMode = {\n inputProps: Record<string, unknown>\n inputs: {\n [key: string]: any\n getValue: (color: any) => number | string\n getColor: (color: any, v: string) => any\n }[]\n from: (color: any) => HSV\n to: (color: HSV) => any\n}\n\nconst rgba: ColorPickerMode = {\n inputProps: {\n type: 'number',\n min: 0,\n },\n inputs: [\n {\n label: 'R',\n max: 255,\n step: 1,\n getValue: (c: RGB) => Math.round(c.r),\n getColor: (c: RGB, v: string): RGB => ({ ...c, r: Number(v) }),\n },\n {\n label: 'G',\n max: 255,\n step: 1,\n getValue: (c: RGB) => Math.round(c.g),\n getColor: (c: RGB, v: string): RGB => ({ ...c, g: Number(v) }),\n },\n {\n label: 'B',\n max: 255,\n step: 1,\n getValue: (c: RGB) => Math.round(c.b),\n getColor: (c: RGB, v: string): RGB => ({ ...c, b: Number(v) }),\n },\n {\n label: 'A',\n max: 1,\n step: 0.01,\n getValue: ({ a }: RGB) => a ? Math.round(a * 100) / 100 : 1,\n getColor: (c: RGB, v: string): RGB => ({ ...c, a: Number(v) }),\n },\n ],\n to: HSVtoRGB,\n from: RGBtoHSV,\n}\n\nconst rgb = {\n ...rgba,\n inputs: rgba.inputs?.slice(0, 3),\n}\n\nconst hsla: ColorPickerMode = {\n inputProps: {\n type: 'number',\n min: 0,\n },\n inputs: [\n {\n label: 'H',\n max: 360,\n step: 1,\n getValue: (c: HSL) => Math.round(c.h),\n getColor: (c: HSL, v: string): HSL => ({ ...c, h: Number(v) }),\n },\n {\n label: 'S',\n max: 1,\n step: 0.01,\n getValue: (c: HSL) => Math.round(c.s * 100) / 100,\n getColor: (c: HSL, v: string): HSL => ({ ...c, s: Number(v) }),\n },\n {\n label: 'L',\n max: 1,\n step: 0.01,\n getValue: (c: HSL) => Math.round(c.l * 100) / 100,\n getColor: (c: HSL, v: string): HSL => ({ ...c, l: Number(v) }),\n },\n {\n label: 'A',\n max: 1,\n step: 0.01,\n getValue: ({ a }: HSL) => a ? Math.round(a * 100) / 100 : 1,\n getColor: (c: HSL, v: string): HSL => ({ ...c, a: Number(v) }),\n },\n ],\n to: HSVtoHSL,\n from: HSLtoHSV,\n}\n\nconst hsl = {\n ...hsla,\n inputs: hsla.inputs.slice(0, 3),\n}\n\nconst hexa: ColorPickerMode = {\n inputProps: {\n type: 'text',\n },\n inputs: [\n {\n label: 'HEXA',\n getValue: (c: string) => c,\n getColor: (c: string, v: string) => v,\n },\n ],\n to: HSVtoHex,\n from: HexToHSV,\n}\n\nconst hex = {\n ...hexa,\n inputs: [\n {\n label: 'HEX',\n getValue: (c: string) => c.slice(0, 7),\n getColor: (c: string, v: string) => v,\n },\n ],\n}\n\nexport const modes: Record<string, ColorPickerMode> = {\n rgb,\n rgba,\n hsl,\n hsla,\n hex,\n hexa,\n}\n"],"mappings":"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"}