{"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 */\nexport const getColorFormatInputs = (format: ColorFormat = 'RGB', enableAlpha: boolean) => {\n  let finalFormat;\n\n  /* 为了减少 `ALPHA_FORMAT_MAP` 中的重复代码\n     `RGBA/HEX8/HSLA/HSVA` 会被转换为 `RGB/HEX/HSL/HSV` 后再匹配\n     但在下一步会 push 一个代表透明度的输入框 */\n  if (enableAlpha) {\n    finalFormat =\n      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 = [...COLOR_FORMAT_INPUTS[finalFormat as BasicColorFormat]];\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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"}