广丰卷烟厂数采质量分析系统
zhuguifei
2026-03-02 80ff784bf60637cd348ae665fc907f7b1e527dd8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
import type { AnyColor } from 'colord';
import { getHex } from '../shared';
import type { ColorPaletteNumber } from '../types';
import { getRecommendedColorPalette } from './recommend';
import { getAntDColorPalette } from './antd';
 
/**
 * get color palette by provided color
 *
 * @param color
 * @param recommended whether to get recommended color palette (the provided color may not be the main color)
 */
export function getColorPalette(color: AnyColor, recommended = false) {
  const colorMap = new Map<ColorPaletteNumber, string>();
 
  if (recommended) {
    const colorPalette = getRecommendedColorPalette(getHex(color));
    colorPalette.palettes.forEach(palette => {
      colorMap.set(palette.number, palette.hex);
    });
  } else {
    const colors = getAntDColorPalette(color);
 
    const colorNumbers: ColorPaletteNumber[] = [50, 100, 200, 300, 400, 500, 600, 700, 800, 900, 950];
 
    colorNumbers.forEach((number, index) => {
      colorMap.set(number, colors[index]);
    });
  }
 
  return colorMap;
}
 
/**
 * get color palette color by number
 *
 * @param color the provided color
 * @param number the color palette number
 * @param recommended whether to get recommended color palette (the provided color may not be the main color)
 */
export function getPaletteColorByNumber(color: AnyColor, number: ColorPaletteNumber, recommended = false) {
  const colorMap = getColorPalette(color, recommended);
 
  return colorMap.get(number as ColorPaletteNumber)!;
}