index.js 1.4 KB

12345678910111213141516171819202122232425262728293031323334
  1. import { generate } from '@ant-design/colors';
  2. import defaultAlgorithm from '../default';
  3. import { defaultPresetColors } from '../seed';
  4. import genColorMapToken from '../shared/genColorMapToken';
  5. import { generateColorPalettes, generateNeutralColorPalettes } from './colors';
  6. const derivative = (token, mapToken) => {
  7. const colorPalettes = Object.keys(defaultPresetColors).map(colorKey => {
  8. const colors = generate(token[colorKey], {
  9. theme: 'dark'
  10. });
  11. return Array.from({
  12. length: 10
  13. }, () => 1).reduce((prev, _, i) => {
  14. prev[`${colorKey}-${i + 1}`] = colors[i];
  15. prev[`${colorKey}${i + 1}`] = colors[i];
  16. return prev;
  17. }, {});
  18. }).reduce((prev, cur) => {
  19. prev = Object.assign(Object.assign({}, prev), cur);
  20. return prev;
  21. }, {});
  22. const mergedMapToken = mapToken !== null && mapToken !== void 0 ? mapToken : defaultAlgorithm(token);
  23. const colorMapToken = genColorMapToken(token, {
  24. generateColorPalettes,
  25. generateNeutralColorPalettes
  26. });
  27. return Object.assign(Object.assign(Object.assign(Object.assign({}, mergedMapToken), colorPalettes), colorMapToken), {
  28. // Customize selected item background color
  29. // https://github.com/ant-design/ant-design/issues/30524#issuecomment-871961867
  30. colorPrimaryBg: colorMapToken.colorPrimaryBorder,
  31. colorPrimaryBgHover: colorMapToken.colorPrimaryBorderHover
  32. });
  33. };
  34. export default derivative;