tdesign-mobile-vue
Version:
tdesign-mobile-vue
1 lines • 30.5 kB
Source Map (JSON)
{"version":3,"file":"color.mjs","sources":["../../../../src/_common/js/color-picker/color.ts"],"sourcesContent":["import tinyColor from 'tinycolor2';\nimport { cmykInputToColor, rgb2cmyk } from './cmyk';\nimport {\n parseGradientString, GradientColors, GradientColorPoint, isGradientColor\n} from './gradient';\n\nexport interface ColorObject {\n alpha: number;\n css: string;\n hex: string;\n hex8: string;\n hsl: string;\n hsla: string;\n hsv: string;\n hsva: string;\n rgb: string;\n rgba: string;\n saturation: number;\n value: number;\n isGradient: boolean;\n linearGradient?: string;\n}\n\ninterface ColorStates {\n s: number;\n v: number;\n h: number;\n a: number;\n}\n\ninterface GradientStates {\n colors: GradientColorPoint[];\n degree: number;\n selectedId: string;\n css?: string;\n}\n\nconst mathRound = Math.round;\nconst hsv2rgba = (states: ColorStates): tinyColor.ColorFormats.RGBA => tinyColor(states).toRgb();\nconst hsv2hsva = (states: ColorStates): tinyColor.ColorFormats.HSVA => tinyColor(states).toHsv();\nconst hsv2hsla = (states: ColorStates): tinyColor.ColorFormats.HSLA => tinyColor(states).toHsl();\n\n/**\n * 将渐变对象转换成字符串\n * @param object\n * @returns\n */\nexport const gradientColors2string = (object: GradientColors): string => {\n const { points, degree } = object;\n const colorsStop = points\n .sort((pA, pB) => pA.left - pB.left)\n .map((p) => `${p.color} ${Math.round(p.left * 100) / 100}%`);\n\n return `linear-gradient(${degree}deg,${colorsStop.join(',')})`;\n};\n\n/**\n * 去除颜色的透明度\n * @param color\n * @returns\n */\nexport const getColorWithoutAlpha = (color: string) => tinyColor(color).setAlpha(1).toHexString();\n\n// 生成一个随机ID\nexport const genId = () => (1 + Math.random() * 4294967295).toString(16);\n\n/**\n * 生成一个渐变颜色\n * @param left\n * @param color\n * @returns\n */\nexport const genGradientPoint = (left: number, color: string): GradientColorPoint => ({\n id: genId(),\n left,\n color,\n});\n\nexport class Color {\n states: ColorStates = {\n s: 100,\n v: 100,\n h: 100,\n a: 1,\n };\n\n originColor: string;\n\n isGradient: boolean;\n\n gradientStates: GradientStates = {\n colors: [],\n degree: 0,\n selectedId: null,\n css: '',\n };\n\n constructor(input: string) {\n this.update(input);\n }\n\n update(input: string) {\n if (input === this.originColor) {\n return;\n }\n const gradientColors = parseGradientString(input);\n if (this.isGradient && !gradientColors) {\n // 处理gradient模式下切换不同格式时的交互问题,输入的不是渐变字符串才使用当前处理\n const colorHsv = tinyColor(input).toHsv();\n this.states = colorHsv;\n this.updateCurrentGradientColor();\n return;\n }\n this.originColor = input;\n this.isGradient = false;\n let colorInput = input;\n if (gradientColors) {\n this.isGradient = true;\n const object = gradientColors as GradientColors;\n const points = object.points.map((c) => genGradientPoint(c.left, c.color));\n this.gradientStates = {\n colors: points,\n degree: object.degree,\n selectedId: points[0]?.id || null,\n };\n this.gradientStates.css = this.linearGradient;\n colorInput = this.gradientSelectedPoint?.color;\n }\n\n this.updateStates(colorInput);\n }\n\n get saturation() {\n return this.states.s;\n }\n\n set saturation(value) {\n this.states.s = Math.max(0, Math.min(100, value));\n this.updateCurrentGradientColor();\n }\n\n get value() {\n return this.states.v;\n }\n\n set value(value) {\n this.states.v = Math.max(0, Math.min(100, value));\n this.updateCurrentGradientColor();\n }\n\n get hue() {\n return this.states.h;\n }\n\n set hue(value) {\n this.states.h = Math.max(0, Math.min(360, value));\n this.updateCurrentGradientColor();\n }\n\n get alpha() {\n return this.states.a;\n }\n\n set alpha(value) {\n this.states.a = Math.max(0, Math.min(1, Math.round(value * 100) / 100));\n this.updateCurrentGradientColor();\n }\n\n get rgb() {\n const { r, g, b } = hsv2rgba(this.states);\n return `rgb(${mathRound(r)}, ${mathRound(g)}, ${mathRound(b)})`;\n }\n\n get rgba() {\n const {\n r, g, b, a\n } = hsv2rgba(this.states);\n return `rgba(${mathRound(r)}, ${mathRound(g)}, ${mathRound(b)}, ${a})`;\n }\n\n get hsv() {\n const { h, s, v } = this.getHsva();\n return `hsv(${h}, ${s}%, ${v}%)`;\n }\n\n get hsva() {\n const {\n h, s, v, a\n } = this.getHsva();\n return `hsva(${h}, ${s}%, ${v}%, ${a})`;\n }\n\n get hsl() {\n const { h, s, l } = this.getHsla();\n return `hsl(${h}, ${s}%, ${l}%)`;\n }\n\n get hsla() {\n const {\n h, s, l, a\n } = this.getHsla();\n return `hsla(${h}, ${s}%, ${l}%, ${a})`;\n }\n\n get hex() {\n return tinyColor(this.states).toHexString();\n }\n\n get hex8() {\n return tinyColor(this.states).toHex8String();\n }\n\n get cmyk() {\n const {\n c, m, y, k\n } = this.getCmyk();\n return `cmyk(${c}, ${m}, ${y}, ${k})`;\n }\n\n get css() {\n if (this.isGradient) {\n return this.linearGradient;\n }\n return this.rgba;\n }\n\n get linearGradient() {\n const { gradientColors, gradientDegree } = this;\n return gradientColors2string({\n points: gradientColors,\n degree: gradientDegree,\n });\n }\n\n get gradientColors() {\n return this.gradientStates.colors;\n }\n\n set gradientColors(colors: GradientColorPoint[]) {\n this.gradientStates.colors = colors;\n this.gradientStates.css = this.linearGradient;\n }\n\n get gradientSelectedId() {\n return this.gradientStates.selectedId;\n }\n\n set gradientSelectedId(id: string) {\n if (id === this.gradientSelectedId) {\n return;\n }\n this.gradientStates.selectedId = id;\n this.updateStates(this.gradientSelectedPoint?.color);\n }\n\n get gradientDegree() {\n return this.gradientStates.degree;\n }\n\n set gradientDegree(degree: number) {\n this.gradientStates.degree = Math.max(0, Math.min(360, degree));\n this.gradientStates.css = this.linearGradient;\n }\n\n get gradientSelectedPoint() {\n const { gradientColors, gradientSelectedId } = this;\n return gradientColors.find((color) => color.id === gradientSelectedId);\n }\n\n getFormatsColorMap() {\n return {\n HEX: this.hex,\n CMYK: this.cmyk,\n RGB: this.rgb,\n RGBA: this.rgba,\n HSL: this.hsl,\n HSLA: this.hsla,\n HSV: this.hsv,\n HSVA: this.hsva,\n CSS: this.css,\n HEX8: this.hex8,\n };\n }\n\n updateCurrentGradientColor() {\n const { isGradient, gradientColors, gradientSelectedId } = this;\n const { length } = gradientColors;\n const current = this.gradientSelectedPoint;\n if (!isGradient || length === 0 || !current) {\n return false;\n }\n const index = gradientColors.findIndex((color) => color.id === gradientSelectedId);\n const newColor = {\n ...current,\n color: this.rgba,\n };\n gradientColors.splice(index, 1, newColor);\n this.gradientColors = gradientColors.slice();\n return this;\n }\n\n updateStates(input: string) {\n const color = tinyColor(cmykInputToColor(input));\n const hsva = color.toHsv();\n this.states = hsva;\n }\n\n getRgba() {\n const {\n r, g, b, a\n } = hsv2rgba(this.states);\n return {\n r: mathRound(r),\n g: mathRound(g),\n b: mathRound(b),\n a,\n };\n }\n\n getCmyk() {\n const { r, g, b } = this.getRgba();\n const [c, m, y, k] = rgb2cmyk(r, g, b);\n return {\n c: mathRound(c * 100),\n m: mathRound(m * 100),\n y: mathRound(y * 100),\n k: mathRound(k * 100),\n };\n }\n\n getHsva(): tinyColor.ColorFormats.HSVA {\n let {\n h, s, v, a\n } = hsv2hsva(this.states);\n h = mathRound(h);\n s = mathRound(s * 100);\n v = mathRound(v * 100);\n a *= 1;\n return {\n h,\n s,\n v,\n a,\n };\n }\n\n getHsla(): tinyColor.ColorFormats.HSLA {\n let {\n h, s, l, a\n } = hsv2hsla(this.states);\n h = mathRound(h);\n s = mathRound(s * 100);\n l = mathRound(l * 100);\n a *= 1;\n return {\n h,\n s,\n l,\n a,\n };\n }\n\n /**\n * 判断输入色是否与当前色相同\n * @param color\n * @returns\n */\n equals(color: string): boolean {\n return tinyColor.equals(this.rgba, color);\n }\n\n /**\n * 校验输入色是否是一个有效颜色\n * @param color\n * @returns\n */\n static isValid(color: string): boolean {\n if (parseGradientString(color)) {\n return true;\n }\n return tinyColor(color).isValid();\n }\n\n static hsva2color(h: number, s: number, v: number, a: number) {\n return tinyColor({\n h, s, v, a\n }).toHsvString();\n }\n\n static hsla2color(h: number, s: number, l: number, a: number) {\n return tinyColor({\n h, s, l, a\n }).toHslString();\n }\n\n static rgba2color(r: number, g: number, b: number, a: number) {\n return tinyColor({\n r, g, b, a\n }).toHsvString();\n }\n\n static hex2color(hex: string, a: number) {\n const color = tinyColor(hex);\n color.setAlpha(a);\n return color.toHexString();\n }\n\n /**\n * 对象转颜色字符串\n * @param object\n * @param format\n * @returns\n */\n static object2color(object: any, format: string) {\n if (format === 'CMYK') {\n const {\n c, m, y, k\n } = object;\n return `cmyk(${c}, ${m}, ${y}, ${k})`;\n }\n const color = tinyColor(object, {\n format,\n });\n return color.toRgbString();\n }\n\n /**\n * 是否是渐变色\n * @param input\n * @returns\n */\n static isGradientColor = (input: string) => !!isGradientColor(input);\n\n /**\n * 比较两个颜色是否相同\n * @param color1\n * @param color2\n * @returns\n */\n static compare = (color1: string, color2: string): boolean => {\n const isGradientColor1 = Color.isGradientColor(color1);\n const isGradientColor2 = Color.isGradientColor(color2);\n if (isGradientColor1 && isGradientColor2) {\n const gradientColor1 = gradientColors2string(parseGradientString(color1) as GradientColors);\n const gradientColor2 = gradientColors2string(parseGradientString(color2) as GradientColors);\n return gradientColor1 === gradientColor2;\n }\n if (!isGradientColor1 && !isGradientColor2) {\n return tinyColor.equals(color1, color2);\n }\n return false;\n };\n}\n\nconst COLOR_OBJECT_OUTPUT_KEYS = [\n 'alpha',\n 'css',\n 'hex',\n 'hex8',\n 'hsl',\n 'hsla',\n 'hsv',\n 'hsva',\n 'rgb',\n 'rgba',\n 'saturation',\n 'value',\n 'isGradient',\n];\n\n/**\n * 获取对外输出的color对象\n * @param color\n * @returns\n */\nexport const getColorObject = (color: Color): ColorObject => {\n if (!color) {\n return null;\n }\n const colorObject = Object.create(null);\n // eslint-disable-next-line no-return-assign\n COLOR_OBJECT_OUTPUT_KEYS.forEach((key) => (colorObject[key] = color[key]));\n if (color.isGradient) {\n colorObject.linearGradient = color.linearGradient;\n }\n return colorObject;\n};\n\nexport default Color;\n"],"names":["mathRound","Math","round","hsv2rgba","states","tinyColor","toRgb","hsv2hsva","toHsv","hsv2hsla","toHsl","gradientColors2string","object","points","degree","colorsStop","sort","pA","pB","left","map","p","concat","color","join","getColorWithoutAlpha","setAlpha","toHexString","genId","random","toString","genGradientPoint","id","Color","input","_classCallCheck","_defineProperty","s","v","h","a","colors","selectedId","css","update","_createClass","key","value","originColor","gradientColors","parseGradientString","isGradient","colorHsv","updateCurrentGradientColor","colorInput","_points$","_this$gradientSelecte","c","gradientStates","linearGradient","gradientSelectedPoint","updateStates","get","set","max","min","_hsv2rgba","r","g","b","_hsv2rgba2","_this$getHsva","getHsva","_this$getHsva2","_this$getHsla","getHsla","l","_this$getHsla2","toHex8String","_this$getCmyk","getCmyk","m","y","k","rgba","gradientDegree","_this$gradientSelecte2","gradientSelectedId","find","getFormatsColorMap","HEX","hex","CMYK","cmyk","RGB","rgb","RGBA","HSL","hsl","HSLA","hsla","HSV","hsv","HSVA","hsva","CSS","HEX8","hex8","length","current","index","findIndex","newColor","_objectSpread","splice","slice","cmykInputToColor","getRgba","_hsv2rgba3","_this$getRgba","_rgb2cmyk","rgb2cmyk","_rgb2cmyk2","_slicedToArray","_hsv2hsva","_hsv2hsla","equals","isValid","hsva2color","toHsvString","hsla2color","toHslString","rgba2color","hex2color","object2color","format","toRgbString","_Color","isGradientColor","color1","color2","isGradientColor1","isGradientColor2","gradientColor1","gradientColor2","COLOR_OBJECT_OUTPUT_KEYS","getColorObject","colorObject","Object","create","forEach"],"mappings":"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"}