@tendaui/react 1.3.0 → 1.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +1 -1
  3. package/es/_chunks/dep-BK4_iOSv.js.map +1 -1
  4. package/es/_chunks/dep-CHpQ3xhh.js.map +1 -1
  5. package/es/_chunks/dep-DbVHGoUC.js.map +1 -1
  6. package/es/_chunks/dep-UHQn9biR.js.map +1 -1
  7. package/es/alert/style/css.js +1 -0
  8. package/es/badge/style/css.js +1 -0
  9. package/es/button/__tests__/Button.test.js.map +1 -1
  10. package/es/button/_example/ghost.js +1 -5
  11. package/es/button/_example/ghost.js.map +1 -1
  12. package/es/button/style/css.js +1 -0
  13. package/es/checkbox/style/css.js +1 -0
  14. package/es/color-picker/style/css.js +1 -0
  15. package/es/color-picker/utils/color-picker/index.js.map +1 -1
  16. package/es/config-provider/ConfigContext.js.map +1 -1
  17. package/es/dialog/Dialog.js.map +1 -1
  18. package/es/dialog/style/css.js +1 -0
  19. package/es/drawer/style/css.js +1 -0
  20. package/es/fireworks/style/css.js +0 -0
  21. package/es/form/style/css.js +1 -0
  22. package/es/input/style/css.js +1 -0
  23. package/es/input-number/InputNumber.js.map +1 -1
  24. package/es/input-number/index.js.map +1 -1
  25. package/es/input-number/style/css.js +1 -0
  26. package/es/input-number/useInputNumber.js.map +1 -1
  27. package/es/ip-input/style/css.js +1 -0
  28. package/es/layout/style/css.js +1 -0
  29. package/es/list/List.js.map +1 -1
  30. package/es/list/ListItem.js.map +1 -1
  31. package/es/list/ListItemMeta.js.map +1 -1
  32. package/es/list/style/css.js +1 -0
  33. package/es/loading/style/css.js +1 -0
  34. package/es/notification/style/css.js +1 -0
  35. package/es/popup/style/css.js +1 -0
  36. package/es/radio/_example/default.js +6 -1
  37. package/es/radio/_example/default.js.map +1 -1
  38. package/es/radio/style/css.js +0 -0
  39. package/es/select/style/css.js +1 -0
  40. package/es/select-input/style/css.js +1 -0
  41. package/es/slider/Slider.js.map +1 -1
  42. package/es/slider/SliderHandleButton.js.map +1 -1
  43. package/es/slider/style/css.js +1 -0
  44. package/es/switch/_example/with-label.js +7 -1
  45. package/es/switch/_example/with-label.js.map +1 -1
  46. package/es/switch/style/css.js +1 -0
  47. package/es/table/style/css.js +1 -0
  48. package/es/tag/style/css.js +1 -0
  49. package/es/tag-input/style/css.js +1 -0
  50. package/es/utils/log/index.js.map +1 -1
  51. package/package.json +2 -2
package/LICENSE CHANGED
@@ -1,21 +1,21 @@
1
- MIT License
2
-
3
- Copyright (c) 2024 TendaUI
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
1
+ MIT License
2
+
3
+ Copyright (c) 2024 TendaUI
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,2 +1,2 @@
1
- ## TendaUI React
1
+ ## TendaUI React
2
2
  This is a react ui component
@@ -1 +1 @@
1
- {"version":3,"file":"dep-BK4_iOSv.js","sources":["../../../components/color-picker/utils/color-picker/format.ts"],"sourcesContent":["import Color from \"./color\";\r\nimport { ALPHA_FORMAT_MAP, COLOR_FORMAT_INPUTS, FORMATS } from \"./constants\";\r\nimport type { AlphaConvertibleFormat, BasicColorFormat, ColorFormat } from \"./types\";\r\n\r\n/**\r\n * 兜底处理用户传入的格式,例如:\r\n * - 传入 `RGB`, 但 `enableAlpha` ,则返回 `RGBA`\r\n */\r\nexport const initColorFormat = (format: ColorFormat, enableAlpha: boolean) => {\r\n if (enableAlpha && format in ALPHA_FORMAT_MAP) {\r\n return format in ALPHA_FORMAT_MAP ? ALPHA_FORMAT_MAP[format as AlphaConvertibleFormat] : format;\r\n }\r\n return format as BasicColorFormat;\r\n};\r\n\r\n/**\r\n * 获取不同格式的输入输出值\r\n * - encode:将字符串转换为单独的颜色值,例如 `{r: 255, g: 255, b: 255}`\r\n * - decode:获取完整的颜色字符串,例如 `rgb(255, 255, 255)`\r\n */\r\nexport const getColorFormatMap = (color: Color, type: \"encode\" | \"decode\") => {\r\n if (type === \"encode\") {\r\n return {\r\n HSV: color.getHsva(),\r\n HSVA: color.getHsva(),\r\n HSL: color.getHsla(),\r\n HSLA: color.getHsla(),\r\n RGB: color.getRgba(),\r\n RGBA: color.getRgba(),\r\n CMYK: color.getCmyk(),\r\n CSS: {\r\n css: color.css\r\n },\r\n HEX: {\r\n hex: color.hex\r\n },\r\n HEX8: {\r\n hex: color.hex8 // 为了减少转换 hex8 的 key 也对应 hex\r\n }\r\n };\r\n }\r\n\r\n // decode\r\n return color.getFormatsColorMap();\r\n};\r\n\r\n/**\r\n * 获取下拉框的格式选项\r\n */\r\nexport const getColorFormatOptions = (enableAlpha: boolean) =>\r\n enableAlpha\r\n ? FORMATS.map((item) => (item in ALPHA_FORMAT_MAP ? ALPHA_FORMAT_MAP[item as AlphaConvertibleFormat] : item))\r\n : FORMATS;\r\n\r\n/**\r\n * 获取当前格式的输入框配置\r\n */\r\nexport const getColorFormatInputs = (format: ColorFormat = \"RGB\", enableAlpha: boolean) => {\r\n let finalFormat;\r\n\r\n /* 为了减少 `ALPHA_FORMAT_MAP` 中的重复代码\r\n `RGBA/HEX8/HSLA/HSVA` 会被转换为 `RGB/HEX/HSL/HSV` 后再匹配\r\n 但在下一步会 push 一个代表透明度的输入框 */\r\n if (enableAlpha) {\r\n finalFormat =\r\n Object.keys(ALPHA_FORMAT_MAP).find(\r\n (key) => key in ALPHA_FORMAT_MAP && ALPHA_FORMAT_MAP[key as AlphaConvertibleFormat] === format\r\n ) || format;\r\n } else {\r\n finalFormat = format;\r\n }\r\n\r\n if (!COLOR_FORMAT_INPUTS[finalFormat as BasicColorFormat]) return [];\r\n\r\n const configs = [...COLOR_FORMAT_INPUTS[finalFormat as BasicColorFormat]];\r\n\r\n // CMYK 格式不支持透明度\r\n if (enableAlpha && format !== \"CMYK\") {\r\n configs.push({\r\n type: \"inputNumber\",\r\n key: \"a\",\r\n min: 0,\r\n max: 100,\r\n format: (value: number) => `${value}%`,\r\n flex: 1.15\r\n });\r\n }\r\n\r\n return configs;\r\n};\r\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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"}
1
+ {"version":3,"file":"dep-BK4_iOSv.js","sources":["../../../components/color-picker/utils/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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"}
@@ -1 +1 @@
1
- {"version":3,"file":"dep-CHpQ3xhh.js","sources":["../../../components/color-picker/utils/color-picker/cmyk.ts","../../../components/color-picker/utils/color-picker/constants.ts","../../../components/color-picker/utils/color-picker/gradient.ts","../../../components/color-picker/utils/color-picker/color.ts"],"sourcesContent":["/**\r\n * rgb 转 cmyk\r\n * @param red\r\n * @param green\r\n * @param blue\r\n * @returns\r\n */\r\nexport const rgb2cmyk = (red: number, green: number, blue: number) => {\r\n let computedC = 0;\r\n let computedM = 0;\r\n let computedY = 0;\r\n let computedK = 0;\r\n\r\n const r = parseInt(`${red}`.replace(/\\s/g, \"\"), 10);\r\n const g = parseInt(`${green}`.replace(/\\s/g, \"\"), 10);\r\n const b = parseInt(`${blue}`.replace(/\\s/g, \"\"), 10);\r\n\r\n if (r === 0 && g === 0 && b === 0) {\r\n computedK = 1;\r\n return [0, 0, 0, 1];\r\n }\r\n\r\n computedC = 1 - r / 255;\r\n computedM = 1 - g / 255;\r\n computedY = 1 - b / 255;\r\n\r\n const minCMY = Math.min(computedC, Math.min(computedM, computedY));\r\n computedC = (computedC - minCMY) / (1 - minCMY);\r\n computedM = (computedM - minCMY) / (1 - minCMY);\r\n computedY = (computedY - minCMY) / (1 - minCMY);\r\n computedK = minCMY;\r\n\r\n return [computedC, computedM, computedY, computedK];\r\n};\r\n\r\n/**\r\n * cmyk 转 rgb\r\n * @param cyan\r\n * @param magenta\r\n * @param yellow\r\n * @param black\r\n * @returns\r\n */\r\nexport const cmyk2rgb = (cyan: number, magenta: number, yellow: number, black: number) => {\r\n let c = cyan / 100;\r\n let m = magenta / 100;\r\n let y = yellow / 100;\r\n const k = black / 100;\r\n\r\n c = c * (1 - k) + k;\r\n m = m * (1 - k) + k;\r\n y = y * (1 - k) + k;\r\n\r\n let r = 1 - c;\r\n let g = 1 - m;\r\n let b = 1 - y;\r\n\r\n r = Math.round(255 * r);\r\n g = Math.round(255 * g);\r\n b = Math.round(255 * b);\r\n return {\r\n r,\r\n g,\r\n b\r\n };\r\n};\r\n\r\nconst REG_CMYK_STRING = /cmyk\\((\\d+%?),(\\d+%?),(\\d+%?),(\\d+%?)\\)/;\r\n\r\nconst toNumber = (str: string) => Math.max(0, Math.min(255, parseInt(str, 10)));\r\n\r\n/**\r\n * 输入色转rgb\r\n * @param input\r\n * @returns\r\n */\r\nexport const cmykInputToColor = (input: string) => {\r\n if (/cmyk/i.test(input)) {\r\n const str = input.replace(/\\s/g, \"\");\r\n const match = str.match(REG_CMYK_STRING);\r\n const c = toNumber(match[1]);\r\n const m = toNumber(match[2]);\r\n const y = toNumber(match[3]);\r\n const k = toNumber(match[4]);\r\n const { r, g, b } = cmyk2rgb(c, m, y, k);\r\n return `rgb(${r}, ${g}, ${b})`;\r\n }\r\n return input;\r\n};\r\n","import type { BasicColorFormat, ColorInputProp } from \"./types\";\r\n\r\n// 最近使用颜色最大个数\r\nexport const TD_COLOR_USED_COLORS_MAX_SIZE = 100; // 每行10个\r\n\r\n// 颜色模式options配置\r\nexport const COLOR_MODES = {\r\n monochrome: \"singleColor\",\r\n \"linear-gradient\": \"gradientColor\"\r\n};\r\n\r\n// 默认颜色\r\nexport const DEFAULT_COLOR = \"#001F97\";\r\n\r\n// 默认渐变色\r\nexport const DEFAULT_LINEAR_GRADIENT = \"linear-gradient(90deg, rgba(241,29,0,1) 0%, rgba(73,106,220,1) 100%);\";\r\n\r\n// 默认系统色彩\r\nexport const DEFAULT_SYSTEM_SWATCH_COLORS = [\r\n \"#ECF2FE\",\r\n \"#D4E3FC\",\r\n \"#BBD3FB\",\r\n \"#96BBF8\",\r\n \"#699EF5\",\r\n \"#4787F0\",\r\n \"#266FE8\",\r\n \"#0052D9\",\r\n \"#0034B5\",\r\n \"#001F97\",\r\n \"#FDECEE\",\r\n \"#F9D7D9\",\r\n \"#F8B9BE\",\r\n \"#F78D94\",\r\n \"#F36D78\",\r\n \"#E34D59\",\r\n \"#C9353F\",\r\n \"#B11F26\",\r\n \"#951114\",\r\n \"#680506\",\r\n \"#FEF3E6\",\r\n \"#F9E0C7\",\r\n \"#F7C797\",\r\n \"#F2995F\",\r\n \"#ED7B2F\",\r\n \"#D35A21\",\r\n \"#BA431B\",\r\n \"#9E3610\",\r\n \"#842B0B\",\r\n \"#5A1907\",\r\n \"#E8F8F2\",\r\n \"#BCEBDC\",\r\n \"#85DBBE\",\r\n \"#48C79C\",\r\n \"#00A870\",\r\n \"#078D5C\",\r\n \"#067945\",\r\n \"#056334\",\r\n \"#044F2A\",\r\n \"#033017\"\r\n];\r\n\r\n/**\r\n * 非透明色格式化类型\r\n */\r\nexport const FORMATS = [\"HEX\", \"RGB\", \"HSL\", \"HSV\", \"CMYK\", \"CSS\"] as const;\r\n\r\n/**\r\n * 透明色格式化类型映射\r\n */\r\nexport const ALPHA_FORMAT_MAP = {\r\n HEX: \"HEX8\",\r\n RGB: \"RGBA\",\r\n HSL: \"HSLA\",\r\n HSV: \"HSVA\"\r\n} as const;\r\n\r\n/**\r\n * 不同格式对应的输入框\r\n */\r\nexport const COLOR_FORMAT_INPUTS: Record<BasicColorFormat, ColorInputProp[]> = {\r\n RGB: [\r\n {\r\n key: \"r\",\r\n min: 0,\r\n max: 255,\r\n type: \"inputNumber\"\r\n },\r\n {\r\n key: \"g\",\r\n min: 0,\r\n max: 255,\r\n type: \"inputNumber\"\r\n },\r\n {\r\n key: \"b\",\r\n min: 0,\r\n max: 255,\r\n type: \"inputNumber\"\r\n }\r\n ],\r\n HSV: [\r\n {\r\n key: \"h\",\r\n min: 0,\r\n max: 360,\r\n type: \"inputNumber\"\r\n },\r\n {\r\n key: \"s\",\r\n min: 0,\r\n max: 100,\r\n type: \"inputNumber\"\r\n },\r\n {\r\n key: \"v\",\r\n min: 0,\r\n max: 100,\r\n type: \"inputNumber\"\r\n }\r\n ],\r\n HSL: [\r\n {\r\n key: \"h\",\r\n min: 0,\r\n max: 360,\r\n type: \"inputNumber\"\r\n },\r\n {\r\n key: \"s\",\r\n min: 0,\r\n max: 100,\r\n type: \"inputNumber\"\r\n },\r\n {\r\n key: \"l\",\r\n min: 0,\r\n max: 100,\r\n type: \"inputNumber\"\r\n }\r\n ],\r\n CMYK: [\r\n {\r\n key: \"c\",\r\n min: 0,\r\n max: 255,\r\n type: \"inputNumber\"\r\n },\r\n {\r\n key: \"m\",\r\n min: 0,\r\n max: 255,\r\n type: \"inputNumber\"\r\n },\r\n {\r\n key: \"y\",\r\n min: 0,\r\n max: 255,\r\n type: \"inputNumber\"\r\n },\r\n {\r\n key: \"k\",\r\n min: 0,\r\n max: 255,\r\n type: \"inputNumber\"\r\n }\r\n ],\r\n CSS: [\r\n {\r\n key: \"css\",\r\n type: \"input\",\r\n flex: 3\r\n }\r\n ],\r\n HEX: [\r\n {\r\n key: \"hex\",\r\n type: \"input\",\r\n flex: 3\r\n }\r\n ]\r\n};\r\n\r\n// 色板尺寸\r\nexport const SATURATION_PANEL_DEFAULT_WIDTH = 230;\r\nexport const SATURATION_PANEL_DEFAULT_HEIGHT = 168;\r\nexport const SLIDER_DEFAULT_WIDTH = 186;\r\nexport const GRADIENT_SLIDER_DEFAULT_WIDTH = 176;\r\n","import { isString, isNull } from \"lodash-es\";\r\n\r\n/**\r\n * 用于反解析渐变字符串为对象\r\n * https://stackoverflow.com/questions/20215440/parse-css-gradient-rule-with-javascript-regex\r\n */\r\nimport tinyColor from \"tinycolor2\";\r\n\r\n/**\r\n * Utility combine multiple regular expressions.\r\n *\r\n * @param {RegExp[]|string[]} regexpList List of regular expressions or strings.\r\n * @param {string} flags Normal RegExp flags.\r\n */\r\nconst combineRegExp = (regexpList: (string | RegExp)[], flags: string): RegExp => {\r\n let source = \"\";\r\n for (let i = 0; i < regexpList.length; i++) {\r\n if (isString(regexpList[i])) {\r\n source += regexpList[i];\r\n } else {\r\n source += (regexpList[i] as RegExp).source;\r\n }\r\n }\r\n return new RegExp(source, flags);\r\n};\r\n\r\ninterface RegExpLib {\r\n gradientSearch: RegExp;\r\n colorStopSearch: RegExp;\r\n}\r\n\r\ninterface ColorStop {\r\n color: string;\r\n position?: string;\r\n}\r\n\r\ninterface ParseGradientResult {\r\n original: string;\r\n colorStopList?: ColorStop[];\r\n line?: string;\r\n angle?: string;\r\n sideCorner?: string;\r\n}\r\n\r\n/**\r\n * Generate the required regular expressions once.\r\n *\r\n * Regular Expressions are easier to manage this way and can be well described.\r\n *\r\n * @result {object} Object containing regular expressions.\r\n */\r\nconst generateRegExp = (): RegExpLib => {\r\n // Note any variables with \"Capture\" in name include capturing bracket set(s).\r\n const searchFlags = \"gi\"; // ignore case for angles, \"rgb\" etc\r\n const rAngle = /(?:[+-]?\\d*\\.?\\d+)(?:deg|grad|rad|turn)/; // Angle +ive, -ive and angle types\r\n // optional 2nd part\r\n const rSideCornerCapture = /to\\s+((?:(?:left|right|top|bottom)(?:\\s+(?:top|bottom|left|right))?))/;\r\n const rComma = /\\s*,\\s*/; // Allow space around comma.\r\n const rColorHex = /#(?:[a-f0-9]{6}|[a-f0-9]{3})/; // 3 or 6 character form\r\n const rDigits3 = /\\(\\s*(?:\\d{1,3}\\s*,\\s*){2}\\d{1,3}\\s*\\)/;\r\n const // \"(1, 2, 3)\"\r\n rDigits4 = /\\(\\s*(?:\\d{1,3}\\s*,\\s*){2}\\d{1,3}\\s*,\\s*\\d*\\.?\\d+\\)/;\r\n const // \"(1, 2, 3, 4)\"\r\n rValue = /(?:[+-]?\\d*\\.?\\d+)(?:%|[a-z]+)?/;\r\n const // \".9\", \"-5px\", \"100%\".\r\n rKeyword = /[_a-z-][_a-z0-9-]*/;\r\n const // \"red\", \"transparent\".\r\n rColor = combineRegExp(\r\n [\"(?:\", rColorHex, \"|\", \"(?:rgb|hsl)\", rDigits3, \"|\", \"(?:rgba|hsla)\", rDigits4, \"|\", rKeyword, \")\"],\r\n \"\"\r\n );\r\n const rColorStop = combineRegExp([rColor, \"(?:\\\\s+\", rValue, \"(?:\\\\s+\", rValue, \")?)?\"], \"\");\r\n const // Single Color Stop, optional %, optional length.\r\n rColorStopList = combineRegExp([\"(?:\", rColorStop, rComma, \")*\", rColorStop], \"\");\r\n const // List of color stops min 1.\r\n rLineCapture = combineRegExp([\"(?:(\", rAngle, \")|\", rSideCornerCapture, \")\"], \"\");\r\n const // Angle or SideCorner\r\n rGradientSearch = combineRegExp([\"(?:(\", rLineCapture, \")\", rComma, \")?(\", rColorStopList, \")\"], searchFlags);\r\n const // Capture 1:\"line\", 2:\"angle\" (optional), 3:\"side corner\" (optional) and 4:\"stop list\".\r\n rColorStopSearch = combineRegExp(\r\n [\"\\\\s*(\", rColor, \")\", \"(?:\\\\s+\", \"(\", rValue, \"))?\", \"(?:\", rComma, \"\\\\s*)?\"],\r\n searchFlags\r\n ); // Capture 1:\"color\" and 2:\"position\" (optional).\r\n\r\n return {\r\n gradientSearch: rGradientSearch,\r\n colorStopSearch: rColorStopSearch\r\n };\r\n};\r\n\r\n/**\r\n * Actually parse the input gradient parameters string into an object for reusability.\r\n *\r\n *\r\n * @note Really this only supports the standard syntax not historical versions, see MDN for details\r\n * https://developer.mozilla.org/en-US/docs/Web/CSS/linear-gradient\r\n *\r\n * @param regExpLib\r\n * @param {string} input\r\n * @returns {object|undefined}\r\n */\r\nconst parseGradient = (regExpLib: RegExpLib, input: string) => {\r\n let result: ParseGradientResult;\r\n let matchColorStop: any;\r\n let stopResult: ColorStop;\r\n\r\n // reset search position, because we reuse regex.\r\n regExpLib.gradientSearch.lastIndex = 0;\r\n\r\n const matchGradient = regExpLib.gradientSearch.exec(input);\r\n if (!isNull(matchGradient)) {\r\n result = {\r\n original: matchGradient[0],\r\n colorStopList: []\r\n };\r\n\r\n // Line (Angle or Side-Corner).\r\n if (matchGradient[1]) {\r\n result.line = matchGradient[1];\r\n }\r\n // Angle or undefined if side-corner.\r\n if (matchGradient[2]) {\r\n result.angle = matchGradient[2];\r\n }\r\n // Side-corner or undefined if angle.\r\n if (matchGradient[3]) {\r\n result.sideCorner = matchGradient[3];\r\n }\r\n\r\n // reset search position, because we reuse regex.\r\n regExpLib.colorStopSearch.lastIndex = 0;\r\n\r\n // Loop though all the color-stops.\r\n matchColorStop = regExpLib.colorStopSearch.exec(matchGradient[4]);\r\n while (!isNull(matchColorStop)) {\r\n stopResult = {\r\n color: matchColorStop[1]\r\n };\r\n\r\n // Position (optional).\r\n if (matchColorStop[2]) {\r\n stopResult.position = matchColorStop[2];\r\n }\r\n result.colorStopList.push(stopResult);\r\n\r\n // Continue searching from previous position.\r\n matchColorStop = regExpLib.colorStopSearch.exec(matchGradient[4]);\r\n }\r\n }\r\n\r\n // Can be undefined if match not found.\r\n return result;\r\n};\r\n\r\nexport interface GradientColorPoint {\r\n id?: string;\r\n color?: string;\r\n left?: number;\r\n}\r\n\r\nexport interface GradientColors {\r\n points: GradientColorPoint[];\r\n degree: number;\r\n}\r\n\r\nconst REGEXP_LIB = generateRegExp();\r\nconst REG_GRADIENT = /.*gradient\\s*\\(((?:\\([^)]*\\)|[^)(]*)*)\\)/gim;\r\n\r\n/**\r\n * 验证是否是渐变字符串\r\n * @param input\r\n * @returns\r\n */\r\nexport const isGradientColor = (input: string): null | RegExpExecArray => {\r\n REG_GRADIENT.lastIndex = 0;\r\n return REG_GRADIENT.exec(input);\r\n};\r\n\r\n// 边界字符串和角度关系\r\nconst sideCornerDegreeMap = {\r\n top: 0,\r\n right: 90,\r\n bottom: 180,\r\n left: 270,\r\n \"top left\": 315,\r\n \"left top\": 315,\r\n \"top right\": 45,\r\n \"right top\": 45,\r\n \"bottom left\": 225,\r\n \"left bottom\": 225,\r\n \"bottom right\": 135,\r\n \"right bottom\": 135\r\n};\r\n\r\n/**\r\n * 解析渐变字符串为 GradientColors 对象\r\n * @param input\r\n * @returns\r\n */\r\nexport const parseGradientString = (input: string): GradientColors | false => {\r\n const match = isGradientColor(input);\r\n if (!match) return false;\r\n\r\n const gradientColors: GradientColors = {\r\n points: [],\r\n degree: 0\r\n };\r\n\r\n const result: ParseGradientResult = parseGradient(REGEXP_LIB, match[1]);\r\n if (result.original.trim() !== match[1].trim()) return false;\r\n\r\n const points: GradientColorPoint[] = result.colorStopList.map(({ color, position }, index, array) => {\r\n const point = Object.create(null);\r\n point.color = tinyColor(color).toRgbString();\r\n\r\n let left = parseFloat(position);\r\n if (Number.isNaN(left)) {\r\n left = (index / (array.length - 1)) * 100;\r\n }\r\n\r\n point.left = left;\r\n return point;\r\n });\r\n gradientColors.points = points;\r\n\r\n let degree = parseInt(result.angle, 10);\r\n if (Number.isNaN(degree)) {\r\n /* 如果角度不存在,使用 CSS 渐变的默认逻辑(180 deg)\r\n https://developer.mozilla.org/zh-CN/docs/Web/CSS/CSS_images/Using_CSS_gradients */\r\n degree = sideCornerDegreeMap[result.sideCorner as keyof typeof sideCornerDegreeMap] || 180;\r\n }\r\n gradientColors.degree = degree;\r\n\r\n return gradientColors;\r\n};\r\n\r\nexport default parseGradientString;\r\n","import tinyColor from \"tinycolor2\";\r\nimport { cmykInputToColor, rgb2cmyk } from \"./cmyk\";\r\nimport { ALPHA_FORMAT_MAP } from \"./constants\";\r\nimport { GradientColorPoint, GradientColors, isGradientColor, parseGradientString } from \"./gradient\";\r\nimport type { AlphaConvertibleFormat, ColorFormat } from \"./types\";\r\n\r\nexport interface ColorObject {\r\n alpha: number;\r\n css: string;\r\n hex: string;\r\n hex8: string;\r\n hsl: string;\r\n hsla: string;\r\n hsv: string;\r\n hsva: string;\r\n rgb: string;\r\n rgba: string;\r\n saturation: number;\r\n value: number;\r\n isGradient: boolean;\r\n linearGradient?: string;\r\n}\r\n\r\ninterface ColorStates {\r\n s: number;\r\n v: number;\r\n h: number;\r\n a: number;\r\n}\r\n\r\ninterface GradientStates {\r\n colors: GradientColorPoint[];\r\n degree: number;\r\n selectedId: string;\r\n css?: string;\r\n}\r\n\r\nconst mathRound = Math.round;\r\nconst hsv2rgba = (states: ColorStates): tinyColor.ColorFormats.RGBA => tinyColor(states).toRgb();\r\nconst hsv2hsva = (states: ColorStates): tinyColor.ColorFormats.HSVA => tinyColor(states).toHsv();\r\nconst hsv2hsla = (states: ColorStates): tinyColor.ColorFormats.HSLA => tinyColor(states).toHsl();\r\n\r\n/**\r\n * 将渐变对象转换成字符串\r\n */\r\nexport const gradientColors2string = (object: GradientColors): string => {\r\n const { points, degree } = object;\r\n const colorsStop = points\r\n .sort((pA, pB) => pA.left - pB.left)\r\n .map((p) => `${p.color} ${Math.round(p.left * 100) / 100}%`);\r\n\r\n return `linear-gradient(${degree}deg,${colorsStop.join(\",\")})`;\r\n};\r\n\r\n/**\r\n * 去除颜色的透明度\r\n */\r\nexport const getColorWithoutAlpha = (color: string) => tinyColor(color).setAlpha(1).toHexString();\r\n\r\n// 生成一个随机ID\r\nexport const genId = () => (1 + Math.random() * 4294967295).toString(16);\r\n\r\n/**\r\n * 生成一个渐变颜色\r\n * @param left\r\n * @param color\r\n * @returns\r\n */\r\nexport const genGradientPoint = (left: number, color: string, id?: string): GradientColorPoint => ({\r\n id: id || genId(),\r\n left,\r\n color\r\n});\r\n\r\nexport class Color {\r\n states: ColorStates = {\r\n s: 100,\r\n v: 100,\r\n h: 100,\r\n a: 1\r\n };\r\n\r\n originColor: string;\r\n\r\n isGradient: boolean;\r\n\r\n gradientStates: GradientStates = {\r\n colors: [],\r\n degree: 0,\r\n selectedId: null,\r\n css: \"\"\r\n };\r\n\r\n constructor(input: string) {\r\n this.update(input);\r\n }\r\n\r\n update(input: string) {\r\n if (input === this.originColor) return;\r\n const gradientColors = parseGradientString(input);\r\n\r\n if (this.isGradient && !gradientColors) {\r\n /* case 1: 渐变模式单独修改某个位置点的色值 */\r\n const colorHsv = tinyColor(input).toHsv();\r\n this.states = colorHsv;\r\n this.updateCurrentGradientColor();\r\n return;\r\n }\r\n this.originColor = input;\r\n this.isGradient = false;\r\n let colorInput = input;\r\n\r\n /* case 2: 修改整个渐变,生成一套新的颜色点 */\r\n if (gradientColors) {\r\n this.isGradient = true;\r\n const object = gradientColors as GradientColors;\r\n const points = object.points.map((c, index) =>\r\n genGradientPoint(c.left, c.color, this.gradientStates.colors[index]?.id)\r\n );\r\n this.gradientStates = {\r\n colors: points,\r\n degree: object.degree,\r\n selectedId: this.gradientStates.selectedId || points[0]?.id || null\r\n };\r\n this.gradientStates.css = this.linearGradient;\r\n colorInput = this.gradientSelectedPoint?.color;\r\n }\r\n\r\n this.updateStates(colorInput);\r\n }\r\n\r\n get saturation() {\r\n return this.states.s;\r\n }\r\n\r\n set saturation(value) {\r\n this.states.s = Math.max(0, Math.min(100, value));\r\n this.updateCurrentGradientColor();\r\n }\r\n\r\n get value() {\r\n return this.states.v;\r\n }\r\n\r\n set value(value) {\r\n this.states.v = Math.max(0, Math.min(100, value));\r\n this.updateCurrentGradientColor();\r\n }\r\n\r\n get hue() {\r\n return this.states.h;\r\n }\r\n\r\n set hue(value) {\r\n this.states.h = Math.max(0, Math.min(360, value));\r\n this.updateCurrentGradientColor();\r\n }\r\n\r\n get alpha() {\r\n return this.states.a;\r\n }\r\n\r\n set alpha(value) {\r\n this.states.a = Math.max(0, Math.min(1, Math.round(value * 100) / 100));\r\n this.updateCurrentGradientColor();\r\n }\r\n\r\n get rgb() {\r\n const { r, g, b } = hsv2rgba(this.states);\r\n return `rgb(${mathRound(r)}, ${mathRound(g)}, ${mathRound(b)})`;\r\n }\r\n\r\n get rgba() {\r\n const { r, g, b, a } = hsv2rgba(this.states);\r\n return `rgba(${mathRound(r)}, ${mathRound(g)}, ${mathRound(b)}, ${a})`;\r\n }\r\n\r\n get hsv() {\r\n const { h, s, v } = this.getHsva();\r\n return `hsv(${h}, ${s}%, ${v}%)`;\r\n }\r\n\r\n get hsva() {\r\n const { h, s, v, a } = this.getHsva();\r\n return `hsva(${h}, ${s}%, ${v}%, ${a})`;\r\n }\r\n\r\n get hsl() {\r\n const { h, s, l } = this.getHsla();\r\n return `hsl(${h}, ${s}%, ${l}%)`;\r\n }\r\n\r\n get hsla() {\r\n const { h, s, l, a } = this.getHsla();\r\n return `hsla(${h}, ${s}%, ${l}%, ${a})`;\r\n }\r\n\r\n get hex() {\r\n return tinyColor(this.states).toHexString();\r\n }\r\n\r\n get hex8() {\r\n return tinyColor(this.states).toHex8String();\r\n }\r\n\r\n get cmyk() {\r\n const { c, m, y, k } = this.getCmyk();\r\n return `cmyk(${c}, ${m}, ${y}, ${k})`;\r\n }\r\n\r\n get css() {\r\n if (this.isGradient) {\r\n return this.linearGradient;\r\n }\r\n return this.rgba;\r\n }\r\n\r\n get linearGradient() {\r\n const { gradientColors, gradientDegree } = this;\r\n return gradientColors2string({\r\n points: gradientColors,\r\n degree: gradientDegree\r\n });\r\n }\r\n\r\n get gradientColors() {\r\n return this.gradientStates.colors;\r\n }\r\n\r\n set gradientColors(colors: GradientColorPoint[]) {\r\n this.gradientStates.colors = colors;\r\n this.gradientStates.css = this.linearGradient;\r\n }\r\n\r\n get gradientSelectedId() {\r\n return this.gradientStates.selectedId;\r\n }\r\n\r\n set gradientSelectedId(id: string) {\r\n if (id === this.gradientSelectedId) {\r\n return;\r\n }\r\n this.gradientStates.selectedId = id;\r\n this.updateStates(this.gradientSelectedPoint?.color);\r\n }\r\n\r\n get gradientDegree() {\r\n return this.gradientStates.degree;\r\n }\r\n\r\n set gradientDegree(degree: number) {\r\n this.gradientStates.degree = Math.max(0, Math.min(360, degree));\r\n this.gradientStates.css = this.linearGradient;\r\n }\r\n\r\n get gradientSelectedPoint() {\r\n const { gradientColors, gradientSelectedId } = this;\r\n return gradientColors.find((color) => color.id === gradientSelectedId);\r\n }\r\n\r\n getFormatsColorMap() {\r\n return {\r\n HEX: this.hex,\r\n CMYK: this.cmyk,\r\n RGB: this.rgb,\r\n RGBA: this.rgba,\r\n HSL: this.hsl,\r\n HSLA: this.hsla,\r\n HSV: this.hsv,\r\n HSVA: this.hsva,\r\n CSS: this.css,\r\n HEX8: this.hex8\r\n };\r\n }\r\n\r\n getFormattedColor(format: ColorFormat, enableAlpha: boolean) {\r\n if (this.isGradient) return this.linearGradient;\r\n const finalFormat = (\r\n enableAlpha && format in ALPHA_FORMAT_MAP ? ALPHA_FORMAT_MAP[format as AlphaConvertibleFormat] : format\r\n ) as keyof ReturnType<Color[\"getFormatsColorMap\"]>;\r\n return this.getFormatsColorMap()[finalFormat];\r\n }\r\n\r\n updateCurrentGradientColor() {\r\n const { isGradient, gradientColors, gradientSelectedId } = this;\r\n const { length } = gradientColors;\r\n const current = this.gradientSelectedPoint;\r\n if (!isGradient || length === 0 || !current) {\r\n return false;\r\n }\r\n const index = gradientColors.findIndex((color) => color.id === gradientSelectedId);\r\n const newColor = {\r\n ...current,\r\n color: this.rgba\r\n };\r\n gradientColors.splice(index, 1, newColor);\r\n this.gradientColors = gradientColors.slice();\r\n return this;\r\n }\r\n\r\n updateStates(input: string) {\r\n const color = tinyColor(cmykInputToColor(input));\r\n const hsva = color.toHsv();\r\n this.states = hsva;\r\n }\r\n\r\n getRgba() {\r\n const { r, g, b, a } = hsv2rgba(this.states);\r\n return {\r\n r: mathRound(r),\r\n g: mathRound(g),\r\n b: mathRound(b),\r\n a\r\n };\r\n }\r\n\r\n getCmyk() {\r\n const { r, g, b } = this.getRgba();\r\n const [c, m, y, k] = rgb2cmyk(r, g, b);\r\n return {\r\n c: mathRound(c * 100),\r\n m: mathRound(m * 100),\r\n y: mathRound(y * 100),\r\n k: mathRound(k * 100)\r\n };\r\n }\r\n\r\n getHsva(): tinyColor.ColorFormats.HSVA {\r\n let { h, s, v, a } = hsv2hsva(this.states);\r\n h = mathRound(h);\r\n s = mathRound(s * 100);\r\n v = mathRound(v * 100);\r\n a *= 1;\r\n return {\r\n h,\r\n s,\r\n v,\r\n a\r\n };\r\n }\r\n\r\n getHsla(): tinyColor.ColorFormats.HSLA {\r\n let { h, s, l, a } = hsv2hsla(this.states);\r\n h = mathRound(h);\r\n s = mathRound(s * 100);\r\n l = mathRound(l * 100);\r\n a *= 1;\r\n return {\r\n h,\r\n s,\r\n l,\r\n a\r\n };\r\n }\r\n\r\n /**\r\n * 判断输入色是否与当前色相同\r\n */\r\n equals(color: string): boolean {\r\n return tinyColor.equals(this.rgba, color);\r\n }\r\n\r\n /**\r\n * 校验输入色是否是一个有效颜色\r\n * @param color\r\n * @returns\r\n */\r\n static isValid(color: string): boolean {\r\n if (parseGradientString(color)) {\r\n return true;\r\n }\r\n return tinyColor(color).isValid();\r\n }\r\n\r\n /**\r\n * 对象转颜色字符串\r\n */\r\n static object2color(object: any, format: ColorFormat) {\r\n if (format === \"CMYK\") {\r\n const { c, m, y, k } = object;\r\n return `cmyk(${c}, ${m}, ${y}, ${k})`;\r\n }\r\n\r\n if (format === \"RGB\" || format === \"RGBA\") {\r\n return tinyColor(object).toRgbString();\r\n }\r\n\r\n if (format === \"HSL\" || format === \"HSLA\") {\r\n return tinyColor(object).toHslString();\r\n }\r\n\r\n if (format === \"HSV\" || format === \"HSVA\") {\r\n return tinyColor(object).toHsvString();\r\n }\r\n\r\n return tinyColor(object).toHexString();\r\n }\r\n\r\n /**\r\n * 是否是渐变色\r\n * @param input\r\n * @returns\r\n */\r\n static isGradientColor = (input: string) => !!isGradientColor(input);\r\n\r\n /**\r\n * 比较两个颜色是否相同\r\n * @param color1\r\n * @param color2\r\n * @returns\r\n */\r\n static compare = (color1: string, color2: string): boolean => {\r\n const isGradientColor1 = Color.isGradientColor(color1);\r\n const isGradientColor2 = Color.isGradientColor(color2);\r\n if (isGradientColor1 && isGradientColor2) {\r\n const gradientStr1 = parseGradientString(color1);\r\n const gradientStr2 = parseGradientString(color2);\r\n if (!gradientStr1 || !gradientStr2) return false;\r\n\r\n const gradientColor1 = gradientColors2string(gradientStr1);\r\n const gradientColor2 = gradientColors2string(gradientStr2);\r\n return gradientColor1 === gradientColor2;\r\n }\r\n if (!isGradientColor1 && !isGradientColor2) {\r\n return tinyColor.equals(color1, color2);\r\n }\r\n return false;\r\n };\r\n}\r\n\r\nconst COLOR_OBJECT_OUTPUT_KEYS = [\r\n \"alpha\",\r\n \"css\",\r\n \"hex\",\r\n \"hex8\",\r\n \"hsl\",\r\n \"hsla\",\r\n \"hsv\",\r\n \"hsva\",\r\n \"rgb\",\r\n \"rgba\",\r\n \"saturation\",\r\n \"value\",\r\n \"isGradient\"\r\n];\r\n\r\n/**\r\n * 获取对外输出的color对象\r\n * @param color\r\n * @returns\r\n */\r\nexport const getColorObject = (color: Color): ColorObject | null => {\r\n if (!color) {\r\n return null;\r\n }\r\n console.log(color);\r\n const colorObject = Object.create(null);\r\n COLOR_OBJECT_OUTPUT_KEYS.forEach((key) => {\r\n colorObject[key] = (color as { [key: string]: any })[key];\r\n });\r\n if (color.isGradient) {\r\n colorObject.linearGradient = color.linearGradient;\r\n }\r\n return colorObject;\r\n};\r\n\r\nexport default Color;\r\n"],"names":["rgb2cmyk","red","green","blue","computedC","computedM","computedY","computedK","r","parseInt","concat","replace","g","b","minCMY","Math","min","cmyk2rgb","cyan","magenta","yellow","black","c","m","y","k","round","REG_CMYK_STRING","toNumber","str","max","cmykInputToColor","input","test","match","_cmyk2rgb","TD_COLOR_USED_COLORS_MAX_SIZE","COLOR_MODES","monochrome","DEFAULT_COLOR","DEFAULT_LINEAR_GRADIENT","DEFAULT_SYSTEM_SWATCH_COLORS","FORMATS","ALPHA_FORMAT_MAP","HEX","RGB","HSL","HSV","COLOR_FORMAT_INPUTS","key","type","CMYK","CSS","flex","SATURATION_PANEL_DEFAULT_WIDTH","SATURATION_PANEL_DEFAULT_HEIGHT","SLIDER_DEFAULT_WIDTH","GRADIENT_SLIDER_DEFAULT_WIDTH","combineRegExp","regexpList","flags","source","i","length","isString","RegExp","generateRegExp","searchFlags","rAngle","rSideCornerCapture","rComma","rColorHex","rDigits3","rDigits4","rValue","rKeyword","rColor","rColorStop","rColorStopList","rLineCapture","rGradientSearch","rColorStopSearch","gradientSearch","colorStopSearch","parseGradient","regExpLib","result","matchColorStop","stopResult","lastIndex","matchGradient","exec","isNull","original","colorStopList","line","angle","sideCorner","color","position","push","REGEXP_LIB","REG_GRADIENT","isGradientColor","sideCornerDegreeMap","top","right","bottom","left","parseGradientString","gradientColors","points","degree","trim","map","_ref","index","array","point","Object","create","tinyColor","toRgbString","parseFloat","Number","isNaN","mathRound","hsv2rgba","states","toRgb","hsv2hsva","toHsv","hsv2hsla","toHsl","gradientColors2string","object","colorsStop","sort","pA","pB","p","join","getColorWithoutAlpha","setAlpha","toHexString","genId","random","toString","genGradientPoint","id","Color","_classCallCheck","_defineProperty","s","v","h","a","colors","selectedId","css","update","_createClass","value","_this","originColor","isGradient","colorHsv","updateCurrentGradientColor","colorInput","_points$","_this$gradientSelecte","_this$gradientStates$","gradientStates","linearGradient","gradientSelectedPoint","updateStates","get","set","_hsv2rgba","_hsv2rgba2","_this$getHsva","getHsva","_this$getHsva2","_this$getHsla","getHsla","l","_this$getHsla2","toHex8String","_this$getCmyk","getCmyk","rgba","gradientDegree","_this$gradientSelecte2","gradientSelectedId","find","getFormatsColorMap","hex","cmyk","rgb","RGBA","hsl","HSLA","hsla","hsv","HSVA","hsva","HEX8","hex8","getFormattedColor","format","enableAlpha","finalFormat","current","findIndex","newColor","_objectSpread","splice","slice","getRgba","_hsv2rgba3","_this$getRgba","_rgb2cmyk","_rgb2cmyk2","_slicedToArray","_hsv2hsva","_hsv2hsla","equals","isValid","object2color","toHslString","toHsvString","_Color","color1","color2","isGradientColor1","isGradientColor2","gradientStr1","gradientStr2","gradientColor1","gradientColor2","COLOR_OBJECT_OUTPUT_KEYS","getColorObject","console","log","colorObject","forEach"],"mappings":"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"}
1
+ {"version":3,"file":"dep-CHpQ3xhh.js","sources":["../../../components/color-picker/utils/color-picker/cmyk.ts","../../../components/color-picker/utils/color-picker/constants.ts","../../../components/color-picker/utils/color-picker/gradient.ts","../../../components/color-picker/utils/color-picker/color.ts"],"sourcesContent":["/**\n * rgb 转 cmyk\n * @param red\n * @param green\n * @param blue\n * @returns\n */\nexport const rgb2cmyk = (red: number, green: number, blue: number) => {\n let computedC = 0;\n let computedM = 0;\n let computedY = 0;\n let computedK = 0;\n\n const r = parseInt(`${red}`.replace(/\\s/g, \"\"), 10);\n const g = parseInt(`${green}`.replace(/\\s/g, \"\"), 10);\n const b = parseInt(`${blue}`.replace(/\\s/g, \"\"), 10);\n\n if (r === 0 && g === 0 && b === 0) {\n computedK = 1;\n return [0, 0, 0, 1];\n }\n\n computedC = 1 - r / 255;\n computedM = 1 - g / 255;\n computedY = 1 - b / 255;\n\n const minCMY = Math.min(computedC, Math.min(computedM, computedY));\n computedC = (computedC - minCMY) / (1 - minCMY);\n computedM = (computedM - minCMY) / (1 - minCMY);\n computedY = (computedY - minCMY) / (1 - minCMY);\n computedK = minCMY;\n\n return [computedC, computedM, computedY, computedK];\n};\n\n/**\n * cmyk 转 rgb\n * @param cyan\n * @param magenta\n * @param yellow\n * @param black\n * @returns\n */\nexport const cmyk2rgb = (cyan: number, magenta: number, yellow: number, black: number) => {\n let c = cyan / 100;\n let m = magenta / 100;\n let y = yellow / 100;\n const k = black / 100;\n\n c = c * (1 - k) + k;\n m = m * (1 - k) + k;\n y = y * (1 - k) + k;\n\n let r = 1 - c;\n let g = 1 - m;\n let b = 1 - y;\n\n r = Math.round(255 * r);\n g = Math.round(255 * g);\n b = Math.round(255 * b);\n return {\n r,\n g,\n b\n };\n};\n\nconst REG_CMYK_STRING = /cmyk\\((\\d+%?),(\\d+%?),(\\d+%?),(\\d+%?)\\)/;\n\nconst toNumber = (str: string) => Math.max(0, Math.min(255, parseInt(str, 10)));\n\n/**\n * 输入色转rgb\n * @param input\n * @returns\n */\nexport const cmykInputToColor = (input: string) => {\n if (/cmyk/i.test(input)) {\n const str = input.replace(/\\s/g, \"\");\n const match = str.match(REG_CMYK_STRING);\n const c = toNumber(match[1]);\n const m = toNumber(match[2]);\n const y = toNumber(match[3]);\n const k = toNumber(match[4]);\n const { r, g, b } = cmyk2rgb(c, m, y, k);\n return `rgb(${r}, ${g}, ${b})`;\n }\n return input;\n};\n","import type { BasicColorFormat, ColorInputProp } from \"./types\";\n\n// 最近使用颜色最大个数\nexport const TD_COLOR_USED_COLORS_MAX_SIZE = 100; // 每行10个\n\n// 颜色模式options配置\nexport const COLOR_MODES = {\n monochrome: \"singleColor\",\n \"linear-gradient\": \"gradientColor\"\n};\n\n// 默认颜色\nexport const DEFAULT_COLOR = \"#001F97\";\n\n// 默认渐变色\nexport const DEFAULT_LINEAR_GRADIENT = \"linear-gradient(90deg, rgba(241,29,0,1) 0%, rgba(73,106,220,1) 100%);\";\n\n// 默认系统色彩\nexport const DEFAULT_SYSTEM_SWATCH_COLORS = [\n \"#ECF2FE\",\n \"#D4E3FC\",\n \"#BBD3FB\",\n \"#96BBF8\",\n \"#699EF5\",\n \"#4787F0\",\n \"#266FE8\",\n \"#0052D9\",\n \"#0034B5\",\n \"#001F97\",\n \"#FDECEE\",\n \"#F9D7D9\",\n \"#F8B9BE\",\n \"#F78D94\",\n \"#F36D78\",\n \"#E34D59\",\n \"#C9353F\",\n \"#B11F26\",\n \"#951114\",\n \"#680506\",\n \"#FEF3E6\",\n \"#F9E0C7\",\n \"#F7C797\",\n \"#F2995F\",\n \"#ED7B2F\",\n \"#D35A21\",\n \"#BA431B\",\n \"#9E3610\",\n \"#842B0B\",\n \"#5A1907\",\n \"#E8F8F2\",\n \"#BCEBDC\",\n \"#85DBBE\",\n \"#48C79C\",\n \"#00A870\",\n \"#078D5C\",\n \"#067945\",\n \"#056334\",\n \"#044F2A\",\n \"#033017\"\n];\n\n/**\n * 非透明色格式化类型\n */\nexport const FORMATS = [\"HEX\", \"RGB\", \"HSL\", \"HSV\", \"CMYK\", \"CSS\"] as const;\n\n/**\n * 透明色格式化类型映射\n */\nexport const ALPHA_FORMAT_MAP = {\n HEX: \"HEX8\",\n RGB: \"RGBA\",\n HSL: \"HSLA\",\n HSV: \"HSVA\"\n} as const;\n\n/**\n * 不同格式对应的输入框\n */\nexport const COLOR_FORMAT_INPUTS: Record<BasicColorFormat, ColorInputProp[]> = {\n RGB: [\n {\n key: \"r\",\n min: 0,\n max: 255,\n type: \"inputNumber\"\n },\n {\n key: \"g\",\n min: 0,\n max: 255,\n type: \"inputNumber\"\n },\n {\n key: \"b\",\n min: 0,\n max: 255,\n type: \"inputNumber\"\n }\n ],\n HSV: [\n {\n key: \"h\",\n min: 0,\n max: 360,\n type: \"inputNumber\"\n },\n {\n key: \"s\",\n min: 0,\n max: 100,\n type: \"inputNumber\"\n },\n {\n key: \"v\",\n min: 0,\n max: 100,\n type: \"inputNumber\"\n }\n ],\n HSL: [\n {\n key: \"h\",\n min: 0,\n max: 360,\n type: \"inputNumber\"\n },\n {\n key: \"s\",\n min: 0,\n max: 100,\n type: \"inputNumber\"\n },\n {\n key: \"l\",\n min: 0,\n max: 100,\n type: \"inputNumber\"\n }\n ],\n CMYK: [\n {\n key: \"c\",\n min: 0,\n max: 255,\n type: \"inputNumber\"\n },\n {\n key: \"m\",\n min: 0,\n max: 255,\n type: \"inputNumber\"\n },\n {\n key: \"y\",\n min: 0,\n max: 255,\n type: \"inputNumber\"\n },\n {\n key: \"k\",\n min: 0,\n max: 255,\n type: \"inputNumber\"\n }\n ],\n CSS: [\n {\n key: \"css\",\n type: \"input\",\n flex: 3\n }\n ],\n HEX: [\n {\n key: \"hex\",\n type: \"input\",\n flex: 3\n }\n ]\n};\n\n// 色板尺寸\nexport const SATURATION_PANEL_DEFAULT_WIDTH = 230;\nexport const SATURATION_PANEL_DEFAULT_HEIGHT = 168;\nexport const SLIDER_DEFAULT_WIDTH = 186;\nexport const GRADIENT_SLIDER_DEFAULT_WIDTH = 176;\n","import { isString, isNull } from \"lodash-es\";\n\n/**\n * 用于反解析渐变字符串为对象\n * https://stackoverflow.com/questions/20215440/parse-css-gradient-rule-with-javascript-regex\n */\nimport tinyColor from \"tinycolor2\";\n\n/**\n * Utility combine multiple regular expressions.\n *\n * @param {RegExp[]|string[]} regexpList List of regular expressions or strings.\n * @param {string} flags Normal RegExp flags.\n */\nconst combineRegExp = (regexpList: (string | RegExp)[], flags: string): RegExp => {\n let source = \"\";\n for (let i = 0; i < regexpList.length; i++) {\n if (isString(regexpList[i])) {\n source += regexpList[i];\n } else {\n source += (regexpList[i] as RegExp).source;\n }\n }\n return new RegExp(source, flags);\n};\n\ninterface RegExpLib {\n gradientSearch: RegExp;\n colorStopSearch: RegExp;\n}\n\ninterface ColorStop {\n color: string;\n position?: string;\n}\n\ninterface ParseGradientResult {\n original: string;\n colorStopList?: ColorStop[];\n line?: string;\n angle?: string;\n sideCorner?: string;\n}\n\n/**\n * Generate the required regular expressions once.\n *\n * Regular Expressions are easier to manage this way and can be well described.\n *\n * @result {object} Object containing regular expressions.\n */\nconst generateRegExp = (): RegExpLib => {\n // Note any variables with \"Capture\" in name include capturing bracket set(s).\n const searchFlags = \"gi\"; // ignore case for angles, \"rgb\" etc\n const rAngle = /(?:[+-]?\\d*\\.?\\d+)(?:deg|grad|rad|turn)/; // Angle +ive, -ive and angle types\n // optional 2nd part\n const rSideCornerCapture = /to\\s+((?:(?:left|right|top|bottom)(?:\\s+(?:top|bottom|left|right))?))/;\n const rComma = /\\s*,\\s*/; // Allow space around comma.\n const rColorHex = /#(?:[a-f0-9]{6}|[a-f0-9]{3})/; // 3 or 6 character form\n const rDigits3 = /\\(\\s*(?:\\d{1,3}\\s*,\\s*){2}\\d{1,3}\\s*\\)/;\n const // \"(1, 2, 3)\"\n rDigits4 = /\\(\\s*(?:\\d{1,3}\\s*,\\s*){2}\\d{1,3}\\s*,\\s*\\d*\\.?\\d+\\)/;\n const // \"(1, 2, 3, 4)\"\n rValue = /(?:[+-]?\\d*\\.?\\d+)(?:%|[a-z]+)?/;\n const // \".9\", \"-5px\", \"100%\".\n rKeyword = /[_a-z-][_a-z0-9-]*/;\n const // \"red\", \"transparent\".\n rColor = combineRegExp(\n [\"(?:\", rColorHex, \"|\", \"(?:rgb|hsl)\", rDigits3, \"|\", \"(?:rgba|hsla)\", rDigits4, \"|\", rKeyword, \")\"],\n \"\"\n );\n const rColorStop = combineRegExp([rColor, \"(?:\\\\s+\", rValue, \"(?:\\\\s+\", rValue, \")?)?\"], \"\");\n const // Single Color Stop, optional %, optional length.\n rColorStopList = combineRegExp([\"(?:\", rColorStop, rComma, \")*\", rColorStop], \"\");\n const // List of color stops min 1.\n rLineCapture = combineRegExp([\"(?:(\", rAngle, \")|\", rSideCornerCapture, \")\"], \"\");\n const // Angle or SideCorner\n rGradientSearch = combineRegExp([\"(?:(\", rLineCapture, \")\", rComma, \")?(\", rColorStopList, \")\"], searchFlags);\n const // Capture 1:\"line\", 2:\"angle\" (optional), 3:\"side corner\" (optional) and 4:\"stop list\".\n rColorStopSearch = combineRegExp(\n [\"\\\\s*(\", rColor, \")\", \"(?:\\\\s+\", \"(\", rValue, \"))?\", \"(?:\", rComma, \"\\\\s*)?\"],\n searchFlags\n ); // Capture 1:\"color\" and 2:\"position\" (optional).\n\n return {\n gradientSearch: rGradientSearch,\n colorStopSearch: rColorStopSearch\n };\n};\n\n/**\n * Actually parse the input gradient parameters string into an object for reusability.\n *\n *\n * @note Really this only supports the standard syntax not historical versions, see MDN for details\n * https://developer.mozilla.org/en-US/docs/Web/CSS/linear-gradient\n *\n * @param regExpLib\n * @param {string} input\n * @returns {object|undefined}\n */\nconst parseGradient = (regExpLib: RegExpLib, input: string) => {\n let result: ParseGradientResult;\n let matchColorStop: any;\n let stopResult: ColorStop;\n\n // reset search position, because we reuse regex.\n regExpLib.gradientSearch.lastIndex = 0;\n\n const matchGradient = regExpLib.gradientSearch.exec(input);\n if (!isNull(matchGradient)) {\n result = {\n original: matchGradient[0],\n colorStopList: []\n };\n\n // Line (Angle or Side-Corner).\n if (matchGradient[1]) {\n result.line = matchGradient[1];\n }\n // Angle or undefined if side-corner.\n if (matchGradient[2]) {\n result.angle = matchGradient[2];\n }\n // Side-corner or undefined if angle.\n if (matchGradient[3]) {\n result.sideCorner = matchGradient[3];\n }\n\n // reset search position, because we reuse regex.\n regExpLib.colorStopSearch.lastIndex = 0;\n\n // Loop though all the color-stops.\n matchColorStop = regExpLib.colorStopSearch.exec(matchGradient[4]);\n while (!isNull(matchColorStop)) {\n stopResult = {\n color: matchColorStop[1]\n };\n\n // Position (optional).\n if (matchColorStop[2]) {\n stopResult.position = matchColorStop[2];\n }\n result.colorStopList.push(stopResult);\n\n // Continue searching from previous position.\n matchColorStop = regExpLib.colorStopSearch.exec(matchGradient[4]);\n }\n }\n\n // Can be undefined if match not found.\n return result;\n};\n\nexport interface GradientColorPoint {\n id?: string;\n color?: string;\n left?: number;\n}\n\nexport interface GradientColors {\n points: GradientColorPoint[];\n degree: number;\n}\n\nconst REGEXP_LIB = generateRegExp();\nconst REG_GRADIENT = /.*gradient\\s*\\(((?:\\([^)]*\\)|[^)(]*)*)\\)/gim;\n\n/**\n * 验证是否是渐变字符串\n * @param input\n * @returns\n */\nexport const isGradientColor = (input: string): null | RegExpExecArray => {\n REG_GRADIENT.lastIndex = 0;\n return REG_GRADIENT.exec(input);\n};\n\n// 边界字符串和角度关系\nconst sideCornerDegreeMap = {\n top: 0,\n right: 90,\n bottom: 180,\n left: 270,\n \"top left\": 315,\n \"left top\": 315,\n \"top right\": 45,\n \"right top\": 45,\n \"bottom left\": 225,\n \"left bottom\": 225,\n \"bottom right\": 135,\n \"right bottom\": 135\n};\n\n/**\n * 解析渐变字符串为 GradientColors 对象\n * @param input\n * @returns\n */\nexport const parseGradientString = (input: string): GradientColors | false => {\n const match = isGradientColor(input);\n if (!match) return false;\n\n const gradientColors: GradientColors = {\n points: [],\n degree: 0\n };\n\n const result: ParseGradientResult = parseGradient(REGEXP_LIB, match[1]);\n if (result.original.trim() !== match[1].trim()) return false;\n\n const points: GradientColorPoint[] = result.colorStopList.map(({ color, position }, index, array) => {\n const point = Object.create(null);\n point.color = tinyColor(color).toRgbString();\n\n let left = parseFloat(position);\n if (Number.isNaN(left)) {\n left = (index / (array.length - 1)) * 100;\n }\n\n point.left = left;\n return point;\n });\n gradientColors.points = points;\n\n let degree = parseInt(result.angle, 10);\n if (Number.isNaN(degree)) {\n /* 如果角度不存在,使用 CSS 渐变的默认逻辑(180 deg)\n https://developer.mozilla.org/zh-CN/docs/Web/CSS/CSS_images/Using_CSS_gradients */\n degree = sideCornerDegreeMap[result.sideCorner as keyof typeof sideCornerDegreeMap] || 180;\n }\n gradientColors.degree = degree;\n\n return gradientColors;\n};\n\nexport default parseGradientString;\n","import tinyColor from \"tinycolor2\";\nimport { cmykInputToColor, rgb2cmyk } from \"./cmyk\";\nimport { ALPHA_FORMAT_MAP } from \"./constants\";\nimport { GradientColorPoint, GradientColors, isGradientColor, parseGradientString } from \"./gradient\";\nimport type { AlphaConvertibleFormat, ColorFormat } from \"./types\";\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 */\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 */\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, id?: string): GradientColorPoint => ({\n id: 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) return;\n const gradientColors = parseGradientString(input);\n\n if (this.isGradient && !gradientColors) {\n /* case 1: 渐变模式单独修改某个位置点的色值 */\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\n /* case 2: 修改整个渐变,生成一套新的颜色点 */\n if (gradientColors) {\n this.isGradient = true;\n const object = gradientColors as GradientColors;\n const points = object.points.map((c, index) =>\n genGradientPoint(c.left, c.color, this.gradientStates.colors[index]?.id)\n );\n this.gradientStates = {\n colors: points,\n degree: object.degree,\n selectedId: this.gradientStates.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 { r, g, b, a } = 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 { h, s, v, a } = 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 { h, s, l, a } = 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 { c, m, y, k } = 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 getFormattedColor(format: ColorFormat, enableAlpha: boolean) {\n if (this.isGradient) return this.linearGradient;\n const finalFormat = (\n enableAlpha && format in ALPHA_FORMAT_MAP ? ALPHA_FORMAT_MAP[format as AlphaConvertibleFormat] : format\n ) as keyof ReturnType<Color[\"getFormatsColorMap\"]>;\n return this.getFormatsColorMap()[finalFormat];\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 { r, g, b, a } = 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 { h, s, v, a } = 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 { h, s, l, a } = 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 */\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 /**\n * 对象转颜色字符串\n */\n static object2color(object: any, format: ColorFormat) {\n if (format === \"CMYK\") {\n const { c, m, y, k } = object;\n return `cmyk(${c}, ${m}, ${y}, ${k})`;\n }\n\n if (format === \"RGB\" || format === \"RGBA\") {\n return tinyColor(object).toRgbString();\n }\n\n if (format === \"HSL\" || format === \"HSLA\") {\n return tinyColor(object).toHslString();\n }\n\n if (format === \"HSV\" || format === \"HSVA\") {\n return tinyColor(object).toHsvString();\n }\n\n return tinyColor(object).toHexString();\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 gradientStr1 = parseGradientString(color1);\n const gradientStr2 = parseGradientString(color2);\n if (!gradientStr1 || !gradientStr2) return false;\n\n const gradientColor1 = gradientColors2string(gradientStr1);\n const gradientColor2 = gradientColors2string(gradientStr2);\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 | null => {\n if (!color) {\n return null;\n }\n console.log(color);\n const colorObject = Object.create(null);\n COLOR_OBJECT_OUTPUT_KEYS.forEach((key) => {\n colorObject[key] = (color as { [key: string]: any })[key];\n });\n if (color.isGradient) {\n colorObject.linearGradient = color.linearGradient;\n }\n return colorObject;\n};\n\nexport default Color;\n"],"names":["rgb2cmyk","red","green","blue","computedC","computedM","computedY","computedK","r","parseInt","concat","replace","g","b","minCMY","Math","min","cmyk2rgb","cyan","magenta","yellow","black","c","m","y","k","round","REG_CMYK_STRING","toNumber","str","max","cmykInputToColor","input","test","match","_cmyk2rgb","TD_COLOR_USED_COLORS_MAX_SIZE","COLOR_MODES","monochrome","DEFAULT_COLOR","DEFAULT_LINEAR_GRADIENT","DEFAULT_SYSTEM_SWATCH_COLORS","FORMATS","ALPHA_FORMAT_MAP","HEX","RGB","HSL","HSV","COLOR_FORMAT_INPUTS","key","type","CMYK","CSS","flex","SATURATION_PANEL_DEFAULT_WIDTH","SATURATION_PANEL_DEFAULT_HEIGHT","SLIDER_DEFAULT_WIDTH","GRADIENT_SLIDER_DEFAULT_WIDTH","combineRegExp","regexpList","flags","source","i","length","isString","RegExp","generateRegExp","searchFlags","rAngle","rSideCornerCapture","rComma","rColorHex","rDigits3","rDigits4","rValue","rKeyword","rColor","rColorStop","rColorStopList","rLineCapture","rGradientSearch","rColorStopSearch","gradientSearch","colorStopSearch","parseGradient","regExpLib","result","matchColorStop","stopResult","lastIndex","matchGradient","exec","isNull","original","colorStopList","line","angle","sideCorner","color","position","push","REGEXP_LIB","REG_GRADIENT","isGradientColor","sideCornerDegreeMap","top","right","bottom","left","parseGradientString","gradientColors","points","degree","trim","map","_ref","index","array","point","Object","create","tinyColor","toRgbString","parseFloat","Number","isNaN","mathRound","hsv2rgba","states","toRgb","hsv2hsva","toHsv","hsv2hsla","toHsl","gradientColors2string","object","colorsStop","sort","pA","pB","p","join","getColorWithoutAlpha","setAlpha","toHexString","genId","random","toString","genGradientPoint","id","Color","_classCallCheck","_defineProperty","s","v","h","a","colors","selectedId","css","update","_createClass","value","_this","originColor","isGradient","colorHsv","updateCurrentGradientColor","colorInput","_points$","_this$gradientSelecte","_this$gradientStates$","gradientStates","linearGradient","gradientSelectedPoint","updateStates","get","set","_hsv2rgba","_hsv2rgba2","_this$getHsva","getHsva","_this$getHsva2","_this$getHsla","getHsla","l","_this$getHsla2","toHex8String","_this$getCmyk","getCmyk","rgba","gradientDegree","_this$gradientSelecte2","gradientSelectedId","find","getFormatsColorMap","hex","cmyk","rgb","RGBA","hsl","HSLA","hsla","hsv","HSVA","hsva","HEX8","hex8","getFormattedColor","format","enableAlpha","finalFormat","current","findIndex","newColor","_objectSpread","splice","slice","getRgba","_hsv2rgba3","_this$getRgba","_rgb2cmyk","_rgb2cmyk2","_slicedToArray","_hsv2hsva","_hsv2hsla","equals","isValid","object2color","toHslString","toHsvString","_Color","color1","color2","isGradientColor1","isGradientColor2","gradientStr1","gradientStr2","gradientColor1","gradientColor2","COLOR_OBJECT_OUTPUT_KEYS","getColorObject","console","log","colorObject","forEach"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"dep-DbVHGoUC.js","sources":["../../../components/utils/style.ts"],"sourcesContent":["import { canUseDocument } from \"./dom\";\r\nexport const getCssVarsValue = (name: string, element?: HTMLElement) => {\r\n if (!canUseDocument) return;\r\n\r\n const el = element || document.documentElement;\r\n return getComputedStyle(el).getPropertyValue(name);\r\n};\r\n\r\nconst trim = (str: string): string => (str || \"\").replace(/^[\\s\\uFEFF]+|[\\s\\uFEFF]+$/g, \"\");\r\n\r\nexport function hasClass(el: Element, cls: string) {\r\n if (!el || !cls) return false;\r\n if (cls.indexOf(\" \") !== -1) throw new Error(\"className should not contain space.\");\r\n if (el.classList) {\r\n return el.classList.contains(cls);\r\n }\r\n return ` ${el.className} `.indexOf(` ${cls} `) > -1;\r\n}\r\n\r\nexport const addClass = function (el: Element, cls: string) {\r\n if (!el) return;\r\n let curClass = el.className;\r\n const classes = (cls || \"\").split(\" \");\r\n\r\n for (let i = 0, j = classes.length; i < j; i++) {\r\n const clsName = classes[i];\r\n if (!clsName) continue;\r\n\r\n if (el.classList) {\r\n el.classList.add(clsName);\r\n } else if (!hasClass(el, clsName)) {\r\n curClass += ` ${clsName}`;\r\n }\r\n }\r\n if (!el.classList) {\r\n el.className = curClass;\r\n }\r\n};\r\n\r\nexport const removeClass = function (el: Element, cls: string) {\r\n if (!el || !cls) return;\r\n const classes = cls.split(\" \");\r\n let curClass = ` ${el.className} `;\r\n\r\n for (let i = 0, j = classes.length; i < j; i++) {\r\n const clsName = classes[i];\r\n if (!clsName) continue;\r\n\r\n if (el.classList) {\r\n el.classList.remove(clsName);\r\n } else if (hasClass(el, clsName)) {\r\n curClass = curClass.replace(` ${clsName} `, \" \");\r\n }\r\n }\r\n if (!el.classList) {\r\n el.className = trim(curClass);\r\n }\r\n};\r\n"],"names":["getCssVarsValue","name","element","canUseDocument","el","document","documentElement","getComputedStyle","getPropertyValue","trim","str","replace","hasClass","cls","indexOf","Error","classList","contains","concat","className","addClass","curClass","classes","split","i","j","length","clsName","add","removeClass","remove"],"mappings":"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"}
1
+ {"version":3,"file":"dep-DbVHGoUC.js","sources":["../../../components/utils/style.ts"],"sourcesContent":["import { canUseDocument } from \"./dom\";\nexport const getCssVarsValue = (name: string, element?: HTMLElement) => {\n if (!canUseDocument) return;\n\n const el = element || document.documentElement;\n return getComputedStyle(el).getPropertyValue(name);\n};\n\nconst trim = (str: string): string => (str || \"\").replace(/^[\\s\\uFEFF]+|[\\s\\uFEFF]+$/g, \"\");\n\nexport function hasClass(el: Element, cls: string) {\n if (!el || !cls) return false;\n if (cls.indexOf(\" \") !== -1) throw new Error(\"className should not contain space.\");\n if (el.classList) {\n return el.classList.contains(cls);\n }\n return ` ${el.className} `.indexOf(` ${cls} `) > -1;\n}\n\nexport const addClass = function (el: Element, cls: string) {\n if (!el) return;\n let curClass = el.className;\n const classes = (cls || \"\").split(\" \");\n\n for (let i = 0, j = classes.length; i < j; i++) {\n const clsName = classes[i];\n if (!clsName) continue;\n\n if (el.classList) {\n el.classList.add(clsName);\n } else if (!hasClass(el, clsName)) {\n curClass += ` ${clsName}`;\n }\n }\n if (!el.classList) {\n el.className = curClass;\n }\n};\n\nexport const removeClass = function (el: Element, cls: string) {\n if (!el || !cls) return;\n const classes = cls.split(\" \");\n let curClass = ` ${el.className} `;\n\n for (let i = 0, j = classes.length; i < j; i++) {\n const clsName = classes[i];\n if (!clsName) continue;\n\n if (el.classList) {\n el.classList.remove(clsName);\n } else if (hasClass(el, clsName)) {\n curClass = curClass.replace(` ${clsName} `, \" \");\n }\n }\n if (!el.classList) {\n el.className = trim(curClass);\n }\n};\n"],"names":["getCssVarsValue","name","element","canUseDocument","el","document","documentElement","getComputedStyle","getPropertyValue","trim","str","replace","hasClass","cls","indexOf","Error","classList","contains","concat","className","addClass","curClass","classes","split","i","j","length","clsName","add","removeClass","remove"],"mappings":";;AACO,IAAMA,eAAA,GAAkB,SAAlBA,eAAAA,CAAmBC,IAAA,EAAcC,OAAA,EAA0B;EACtE,IAAI,CAACC,cAAA,EAAgB;AAErB,EAAA,IAAMC,EAAA,GAAKF,WAAWG,QAAA,CAASC,eAAA;EAC/B,OAAOC,gBAAA,CAAiBH,EAAE,CAAA,CAAEI,gBAAA,CAAiBP,IAAI,CAAA;AACnD;AAEA,IAAMQ,OAAO,SAAPA,KAAQC,GAAA,EAAA;EAAA,OAAA,CAAyBA,OAAO,EAAA,EAAIC,OAAA,CAAQ,8BAA8B,EAAE,CAAA;AAAA,CAAA;AAEnF,SAASC,QAAAA,CAASR,IAAaS,GAAA,EAAa;AACjD,EAAA,IAAI,CAACT,EAAA,IAAM,CAACS,GAAA,EAAK,OAAO,KAAA;AACxB,EAAA,IAAIA,GAAA,CAAIC,QAAQ,GAAG,CAAA,KAAM,IAAI,MAAM,IAAIC,MAAM,qCAAqC,CAAA;EAClF,IAAIX,GAAGY,SAAA,EAAW;AAChB,IAAA,OAAOZ,EAAA,CAAGY,SAAA,CAAUC,QAAA,CAASJ,GAAG,CAAA;AAClC,EAAA;AACA,EAAA,OAAO,IAAAK,MAAA,CAAId,GAAGe,SAAS,EAAA,GAAA,CAAA,CAAIL,mBAAYD,GAAG,EAAA,GAAA,CAAG,CAAA,GAAI,CAAA,CAAA;AACnD;AAEO,IAAMO,QAAA,GAAW,SAAXA,QAAAA,CAAqBhB,EAAA,EAAaS,GAAA,EAAa;EAC1D,IAAI,CAACT,EAAA,EAAI;AACT,EAAA,IAAIiB,WAAWjB,EAAA,CAAGe,SAAA;EAClB,IAAMG,OAAA,GAAA,CAAWT,GAAA,IAAO,EAAA,EAAIU,KAAA,CAAM,GAAG,CAAA;AAErC,EAAA,KAAA,IAASC,IAAI,CAAA,EAAGC,CAAA,GAAIH,QAAQI,MAAA,EAAQF,CAAA,GAAIC,GAAGD,CAAA,EAAA,EAAK;AAC9C,IAAA,IAAMG,OAAA,GAAUL,QAAQE,CAAC,CAAA;IACzB,IAAI,CAACG,OAAA,EAAS;IAEd,IAAIvB,GAAGY,SAAA,EAAW;AAChBZ,MAAAA,EAAA,CAAGY,SAAA,CAAUY,IAAID,OAAO,CAAA;IAC1B,CAAA,MAAA,IAAW,CAACf,QAAA,CAASR,EAAA,EAAIuB,OAAO,CAAA,EAAG;AACjCN,MAAAA,QAAA,IAAA,GAAA,CAAAH,MAAA,CAAgBS,OAAO,CAAA;AACzB,IAAA;AACF,EAAA;AACA,EAAA,IAAI,CAACvB,GAAGY,SAAA,EAAW;IACjBZ,EAAA,CAAGe,SAAA,GAAYE,QAAA;AACjB,EAAA;AACF;AAEO,IAAMQ,WAAA,GAAc,SAAdA,WAAAA,CAAwBzB,EAAA,EAAaS,GAAA,EAAa;AAC7D,EAAA,IAAI,CAACT,EAAA,IAAM,CAACS,GAAA,EAAK;AACjB,EAAA,IAAMS,OAAA,GAAUT,GAAA,CAAIU,KAAA,CAAM,GAAG,CAAA;AAC7B,EAAA,IAAIF,QAAA,GAAA,GAAA,CAAAH,MAAA,CAAed,EAAA,CAAGe,SAAS,EAAA,GAAA,CAAA;AAE/B,EAAA,KAAA,IAASK,IAAI,CAAA,EAAGC,CAAA,GAAIH,QAAQI,MAAA,EAAQF,CAAA,GAAIC,GAAGD,CAAA,EAAA,EAAK;AAC9C,IAAA,IAAMG,OAAA,GAAUL,QAAQE,CAAC,CAAA;IACzB,IAAI,CAACG,OAAA,EAAS;IAEd,IAAIvB,GAAGY,SAAA,EAAW;AAChBZ,MAAAA,EAAA,CAAGY,SAAA,CAAUc,OAAOH,OAAO,CAAA;IAC7B,CAAA,MAAA,IAAWf,QAAA,CAASR,EAAA,EAAIuB,OAAO,CAAA,EAAG;MAChCN,QAAA,GAAWA,QAAA,CAASV,OAAA,CAAA,GAAA,CAAAO,MAAA,CAAYS,OAAO,EAAA,GAAA,CAAA,EAAK,GAAG,CAAA;AACjD,IAAA;AACF,EAAA;AACA,EAAA,IAAI,CAACvB,GAAGY,SAAA,EAAW;AACjBZ,IAAAA,EAAA,CAAGe,SAAA,GAAYV,KAAKY,QAAQ,CAAA;AAC9B,EAAA;AACF;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"dep-UHQn9biR.js","sources":["../../../components/global-config/t.ts","../../../components/locale/LocalReceiver.ts"],"sourcesContent":["import { isString } from \"lodash-es\";\r\n\r\n/**\r\n * 复数规则判断函数\r\n * @param count 数量\r\n * @returns 返回复数形式的索引 (0: zero/none, 1: one, 2: other/many)\r\n */\r\nfunction getPluralIndex(count: number): number {\r\n if (count === 0) return 0; // no items\r\n if (count === 1) return 1; // one item\r\n return 2; // multiple items\r\n}\r\n\r\n/**\r\n * @see https://github.com/Tencent/tdesign-vue-next/blob/develop/packages/components/config-provider/hooks/useConfig.ts#L48\r\n * 自定义 t function 可能依赖特定库函数,例如 tdesign-vue-next 中使用了 vue 的 h 函数\r\n * 因此交由各个类库自行实现\r\n */\r\n\r\n/**\r\n * 国际化函数,支持复数处理和变量替换\r\n *\r\n * 示例用法:\r\n * 1. 基本变量替换:\r\n * t('Hello {name}', { name: 'World' }) // => 'Hello World'\r\n *\r\n * 2. 复数处理(传入数字):\r\n * t('no apples | one apple | {count} apples', 0) // => 'no apples'\r\n * t('no apples | one apple | {count} apples', 1) // => 'one apple'\r\n * t('no apples | one apple | {count} apples', 5) // => '5 apples'\r\n *\r\n * 3. 复合使用:\r\n * t('no items found | found {count} item | found {count} items', 3, { count: 3 }) // => 'found 3 items'\r\n */\r\n\r\n// 类型重载定义\r\nexport function t(pattern: string): string;\r\nexport function t(pattern: string, data: Record<string, any>): string;\r\nexport function t(pattern: string, count: number): string;\r\nexport function t(pattern: string, count: number, data: Record<string, any>): string;\r\nexport function t<T>(pattern: T): string;\r\n\r\n/**\r\n * @param pattern 文本模式,可以是字符串、函数或其他类型\r\n * @param args 参数列表,支持 (count: number) 或 (count: number, data: object) 或 (data: object)\r\n * @returns 处理后的文本\r\n */\r\nexport function t<T>(pattern: T, ...args: any[]): string {\r\n if (isString(pattern)) {\r\n let text = pattern as string;\r\n let count: number | undefined;\r\n let data: Record<string, any> = {};\r\n\r\n // 解析参数\r\n if (args.length > 0) {\r\n const [firstArg, secondArg] = args;\r\n\r\n if (typeof firstArg === \"number\") {\r\n // 第一个参数是数字,表示 count\r\n count = firstArg;\r\n if (secondArg && typeof secondArg === \"object\") {\r\n // 第二个参数是对象,表示额外的数据\r\n data = secondArg;\r\n } else {\r\n data.count = count; // 若没有提供第二个参数,则将 count 添加到数据中\r\n }\r\n } else if (typeof firstArg === \"object\" && firstArg !== null) {\r\n // 第一个参数是对象,表示数据\r\n data = firstArg;\r\n }\r\n }\r\n\r\n // 处理复数形式:支持 \"no items | one item | {count} items\" 格式\r\n if (text.includes(\"|\")) {\r\n const pluralParts = text.split(\"|\").map((part) => part.trim());\r\n\r\n if (typeof count === \"number\") {\r\n // 使用 count 进行复数处理\r\n const pluralIndex = getPluralIndex(count);\r\n\r\n // 根据复数索引选择对应的文本\r\n if (pluralIndex < pluralParts.length) {\r\n text = pluralParts[pluralIndex];\r\n } else {\r\n // 如果索引超出范围,使用最后一个选项\r\n text = pluralParts[pluralParts.length - 1];\r\n }\r\n } else {\r\n // 如果没有 count,默认使用第一个选项\r\n const [firstPart] = pluralParts;\r\n text = firstPart;\r\n }\r\n }\r\n\r\n // 处理变量替换:{key} 格式\r\n if (data && Object.keys(data).length > 0) {\r\n const regular = /\\{\\s*([\\w-]+)\\s*\\}/g;\r\n text = text.replace(regular, (match, key) => {\r\n if (Object.prototype.hasOwnProperty.call(data, key)) {\r\n return String(data[key]);\r\n }\r\n return match; // 如果找不到对应的键,保留原始占位符\r\n });\r\n }\r\n\r\n return text as any;\r\n }\r\n\r\n // 如果不是字符串或函数,返回空字符串\r\n return \"\";\r\n}\r\n","import React from \"react\";\r\nimport { t as commonT } from \"../global-config/t\";\r\nimport { ConfigContext, Locale } from \"../config-provider\";\r\n\r\nexport interface Placement {\r\n [propName: string]: string | number;\r\n}\r\n\r\nexport type TransformPattern = string | Function | Array<string>;\r\n\r\nexport function useLocaleReceiver<T extends keyof Locale>(componentName: T, defaultLocale?: Locale[T] | Function) {\r\n const { globalConfig } = React.useContext(ConfigContext);\r\n\r\n function transformLocale(pattern: TransformPattern, placement?: Placement): string;\r\n function transformLocale(pattern: TransformPattern, placement?: number, data?: Placement): string;\r\n function transformLocale(pattern: TransformPattern, ...args: any[]): string | Array<string> {\r\n const REGEXP = /\\{\\s*([\\w-]+)\\s*\\}/g;\r\n const placement = args[0];\r\n\r\n if (Array.isArray(pattern)) {\r\n return pattern.map((p, index) => {\r\n const translated = p.replace(REGEXP, (_: string, key: string) => {\r\n if (placement) return String(placement[index][key]);\r\n return \"\";\r\n });\r\n return translated;\r\n });\r\n }\r\n if (typeof pattern === \"function\") {\r\n return pattern(placement);\r\n }\r\n\r\n // use commonT for plural\r\n const data = args[1];\r\n if (data) {\r\n return commonT(pattern, placement, data);\r\n }\r\n return commonT(pattern, placement);\r\n }\r\n\r\n /** @TypeA => 确保此参数是属于 globalConfig[componentName] 下的子属性 */\r\n const componentLocale = React.useMemo<Locale[T] | Function>(() => {\r\n const locale = defaultLocale || {};\r\n const connectLocaleByName = globalConfig[componentName];\r\n\r\n const localeFromContext = componentName && globalConfig ? connectLocaleByName : {};\r\n\r\n return {\r\n ...(typeof locale === \"function\" ? (locale as Function)() : locale),\r\n ...(localeFromContext || {})\r\n };\r\n }, [componentName, defaultLocale, globalConfig]);\r\n\r\n return [componentLocale, transformLocale] as [Locale[T], Function];\r\n}\r\n"],"names":["getPluralIndex","count","t","pattern","isString","text","data","_len","arguments","length","args","Array","_key","firstArg","secondArg","_typeof","includes","pluralParts","split","map","part","trim","pluralIndex","_pluralParts","_slicedToArray","firstPart","Object","keys","regular","replace","match","key","prototype","hasOwnProperty","call","String","useLocaleReceiver","componentName","defaultLocale","_React$useContext","React","useContext","ConfigContext","globalConfig","transformLocale","REGEXP","placement","undefined","isArray","p","index","translated","_","commonT","componentLocale","useMemo","locale","connectLocaleByName","localeFromContext","_objectSpread"],"mappings":"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"}
1
+ {"version":3,"file":"dep-UHQn9biR.js","sources":["../../../components/global-config/t.ts","../../../components/locale/LocalReceiver.ts"],"sourcesContent":["import { isString } from \"lodash-es\";\n\n/**\n * 复数规则判断函数\n * @param count 数量\n * @returns 返回复数形式的索引 (0: zero/none, 1: one, 2: other/many)\n */\nfunction getPluralIndex(count: number): number {\n if (count === 0) return 0; // no items\n if (count === 1) return 1; // one item\n return 2; // multiple items\n}\n\n/**\n * @see https://github.com/Tencent/tdesign-vue-next/blob/develop/packages/components/config-provider/hooks/useConfig.ts#L48\n * 自定义 t function 可能依赖特定库函数,例如 tdesign-vue-next 中使用了 vue 的 h 函数\n * 因此交由各个类库自行实现\n */\n\n/**\n * 国际化函数,支持复数处理和变量替换\n *\n * 示例用法:\n * 1. 基本变量替换:\n * t('Hello {name}', { name: 'World' }) // => 'Hello World'\n *\n * 2. 复数处理(传入数字):\n * t('no apples | one apple | {count} apples', 0) // => 'no apples'\n * t('no apples | one apple | {count} apples', 1) // => 'one apple'\n * t('no apples | one apple | {count} apples', 5) // => '5 apples'\n *\n * 3. 复合使用:\n * t('no items found | found {count} item | found {count} items', 3, { count: 3 }) // => 'found 3 items'\n */\n\n// 类型重载定义\nexport function t(pattern: string): string;\nexport function t(pattern: string, data: Record<string, any>): string;\nexport function t(pattern: string, count: number): string;\nexport function t(pattern: string, count: number, data: Record<string, any>): string;\nexport function t<T>(pattern: T): string;\n\n/**\n * @param pattern 文本模式,可以是字符串、函数或其他类型\n * @param args 参数列表,支持 (count: number) 或 (count: number, data: object) 或 (data: object)\n * @returns 处理后的文本\n */\nexport function t<T>(pattern: T, ...args: any[]): string {\n if (isString(pattern)) {\n let text = pattern as string;\n let count: number | undefined;\n let data: Record<string, any> = {};\n\n // 解析参数\n if (args.length > 0) {\n const [firstArg, secondArg] = args;\n\n if (typeof firstArg === \"number\") {\n // 第一个参数是数字,表示 count\n count = firstArg;\n if (secondArg && typeof secondArg === \"object\") {\n // 第二个参数是对象,表示额外的数据\n data = secondArg;\n } else {\n data.count = count; // 若没有提供第二个参数,则将 count 添加到数据中\n }\n } else if (typeof firstArg === \"object\" && firstArg !== null) {\n // 第一个参数是对象,表示数据\n data = firstArg;\n }\n }\n\n // 处理复数形式:支持 \"no items | one item | {count} items\" 格式\n if (text.includes(\"|\")) {\n const pluralParts = text.split(\"|\").map((part) => part.trim());\n\n if (typeof count === \"number\") {\n // 使用 count 进行复数处理\n const pluralIndex = getPluralIndex(count);\n\n // 根据复数索引选择对应的文本\n if (pluralIndex < pluralParts.length) {\n text = pluralParts[pluralIndex];\n } else {\n // 如果索引超出范围,使用最后一个选项\n text = pluralParts[pluralParts.length - 1];\n }\n } else {\n // 如果没有 count,默认使用第一个选项\n const [firstPart] = pluralParts;\n text = firstPart;\n }\n }\n\n // 处理变量替换:{key} 格式\n if (data && Object.keys(data).length > 0) {\n const regular = /\\{\\s*([\\w-]+)\\s*\\}/g;\n text = text.replace(regular, (match, key) => {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n return String(data[key]);\n }\n return match; // 如果找不到对应的键,保留原始占位符\n });\n }\n\n return text as any;\n }\n\n // 如果不是字符串或函数,返回空字符串\n return \"\";\n}\n","import React from \"react\";\nimport { t as commonT } from \"../global-config/t\";\nimport { ConfigContext, Locale } from \"../config-provider\";\n\nexport interface Placement {\n [propName: string]: string | number;\n}\n\nexport type TransformPattern = string | Function | Array<string>;\n\nexport function useLocaleReceiver<T extends keyof Locale>(componentName: T, defaultLocale?: Locale[T] | Function) {\n const { globalConfig } = React.useContext(ConfigContext);\n\n function transformLocale(pattern: TransformPattern, placement?: Placement): string;\n function transformLocale(pattern: TransformPattern, placement?: number, data?: Placement): string;\n function transformLocale(pattern: TransformPattern, ...args: any[]): string | Array<string> {\n const REGEXP = /\\{\\s*([\\w-]+)\\s*\\}/g;\n const placement = args[0];\n\n if (Array.isArray(pattern)) {\n return pattern.map((p, index) => {\n const translated = p.replace(REGEXP, (_: string, key: string) => {\n if (placement) return String(placement[index][key]);\n return \"\";\n });\n return translated;\n });\n }\n if (typeof pattern === \"function\") {\n return pattern(placement);\n }\n\n // use commonT for plural\n const data = args[1];\n if (data) {\n return commonT(pattern, placement, data);\n }\n return commonT(pattern, placement);\n }\n\n /** @TypeA => 确保此参数是属于 globalConfig[componentName] 下的子属性 */\n const componentLocale = React.useMemo<Locale[T] | Function>(() => {\n const locale = defaultLocale || {};\n const connectLocaleByName = globalConfig[componentName];\n\n const localeFromContext = componentName && globalConfig ? connectLocaleByName : {};\n\n return {\n ...(typeof locale === \"function\" ? (locale as Function)() : locale),\n ...(localeFromContext || {})\n };\n }, [componentName, defaultLocale, globalConfig]);\n\n return [componentLocale, transformLocale] as [Locale[T], Function];\n}\n"],"names":["getPluralIndex","count","t","pattern","isString","text","data","_len","arguments","length","args","Array","_key","firstArg","secondArg","_typeof","includes","pluralParts","split","map","part","trim","pluralIndex","_pluralParts","_slicedToArray","firstPart","Object","keys","regular","replace","match","key","prototype","hasOwnProperty","call","String","useLocaleReceiver","componentName","defaultLocale","_React$useContext","React","useContext","ConfigContext","globalConfig","transformLocale","REGEXP","placement","undefined","isArray","p","index","translated","_","commonT","componentLocale","useMemo","locale","connectLocaleByName","localeFromContext","_objectSpread"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ import "./index.css";
@@ -0,0 +1 @@
1
+ import "./index.css";