UNPKG

tdesign-mobile-vue

Version:
1 lines 5.57 kB
{"version":3,"file":"format.mjs","sources":["../../../../src/_common/js/color-picker/format.ts"],"sourcesContent":["import Color from './color';\nimport { ALPHA_FORMAT_MAP, COLOR_FORMAT_INPUTS, FORMATS } from './constants';\nimport type { AlphaConvertibleFormat, BasicColorFormat, ColorFormat } from './types';\n\n/**\n * 兜底处理用户传入的格式,例如:\n * - 传入 `RGB`, 但 `enableAlpha` ,则返回 `RGBA`\n */\nexport const initColorFormat = (format: ColorFormat, enableAlpha: boolean) => {\n if (enableAlpha && format in ALPHA_FORMAT_MAP) {\n return format in ALPHA_FORMAT_MAP ? ALPHA_FORMAT_MAP[format as AlphaConvertibleFormat] : format;\n }\n return format as BasicColorFormat;\n};\n\n/**\n * 获取不同格式的输入输出值\n * - encode:将字符串转换为单独的颜色值,例如 `{r: 255, g: 255, b: 255}`\n * - decode:获取完整的颜色字符串,例如 `rgb(255, 255, 255)`\n */\nexport const getColorFormatMap = (color: Color, type: 'encode' | 'decode') => {\n if (type === 'encode') {\n return {\n HSV: color.getHsva(),\n HSVA: color.getHsva(),\n HSL: color.getHsla(),\n HSLA: color.getHsla(),\n RGB: color.getRgba(),\n RGBA: color.getRgba(),\n CMYK: color.getCmyk(),\n CSS: {\n css: color.css,\n },\n HEX: {\n hex: color.hex,\n },\n HEX8: {\n hex: color.hex8, // 为了减少转换 hex8 的 key 也对应 hex\n },\n };\n }\n\n // decode\n return color.getFormatsColorMap();\n};\n\n/**\n * 获取下拉框的格式选项\n */\nexport const getColorFormatOptions = (enableAlpha: boolean) => (\n enableAlpha\n ? FORMATS.map((item) => (item in ALPHA_FORMAT_MAP ? ALPHA_FORMAT_MAP[item as AlphaConvertibleFormat] : item))\n : FORMATS\n);\n\n/**\n * 获取当前格式的输入框配置\n */\nexport const getColorFormatInputs = (\n format: ColorFormat = 'RGB',\n enableAlpha: boolean\n) => {\n let finalFormat;\n\n /* 为了减少 `ALPHA_FORMAT_MAP` 中的重复代码\n `RGBA/HEX8/HSLA/HSVA` 会被转换为 `RGB/HEX/HSL/HSV` 后再匹配\n 但在下一步会 push 一个代表透明度的输入框 */\n if (enableAlpha) {\n finalFormat = Object.keys(ALPHA_FORMAT_MAP).find(\n (key) => key in ALPHA_FORMAT_MAP && ALPHA_FORMAT_MAP[key as AlphaConvertibleFormat] === format\n ) || format;\n } else {\n finalFormat = format;\n }\n\n if (!COLOR_FORMAT_INPUTS[finalFormat as BasicColorFormat]) return [];\n\n const configs = [\n ...(COLOR_FORMAT_INPUTS[finalFormat as BasicColorFormat]),\n ];\n\n // CMYK 格式不支持透明度\n if (enableAlpha && format !== 'CMYK') {\n configs.push({\n type: 'inputNumber',\n key: 'a',\n min: 0,\n max: 100,\n format: (value: number) => `${value}%`,\n flex: 1.15,\n });\n }\n\n return configs;\n};\n"],"names":["initColorFormat","format","enableAlpha","ALPHA_FORMAT_MAP","getColorFormatMap","color","type","HSV","getHsva","HSVA","HSL","getHsla","HSLA","RGB","getRgba","RGBA","CMYK","getCmyk","CSS","css","HEX","hex","HEX8","hex8","getFormatsColorMap","getColorFormatOptions","FORMATS","map","item","getColorFormatInputs","arguments","length","undefined","finalFormat","Object","keys","find","key","COLOR_FORMAT_INPUTS","configs","_toConsumableArray","push","min","max","value","concat","flex"],"mappings":"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"}