token.js 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. import { mergeToken } from '../../theme/internal';
  2. export function initInputToken(token) {
  3. return mergeToken(token, {
  4. inputAffixPadding: token.paddingXXS
  5. });
  6. }
  7. export const initComponentToken = token => {
  8. const {
  9. controlHeight,
  10. fontSize,
  11. lineHeight,
  12. lineWidth,
  13. controlHeightSM,
  14. controlHeightLG,
  15. fontSizeLG,
  16. lineHeightLG,
  17. paddingSM,
  18. controlPaddingHorizontalSM,
  19. controlPaddingHorizontal,
  20. colorFillAlter,
  21. colorPrimaryHover,
  22. colorPrimary,
  23. controlOutlineWidth,
  24. controlOutline,
  25. colorErrorOutline,
  26. colorWarningOutline,
  27. colorBgContainer,
  28. inputFontSize,
  29. inputFontSizeLG,
  30. inputFontSizeSM
  31. } = token;
  32. const mergedFontSize = inputFontSize || fontSize;
  33. const mergedFontSizeSM = inputFontSizeSM || mergedFontSize;
  34. const mergedFontSizeLG = inputFontSizeLG || fontSizeLG;
  35. const paddingBlock = Math.round((controlHeight - mergedFontSize * lineHeight) / 2 * 10) / 10 - lineWidth;
  36. const paddingBlockSM = Math.round((controlHeightSM - mergedFontSizeSM * lineHeight) / 2 * 10) / 10 - lineWidth;
  37. const paddingBlockLG = Math.ceil((controlHeightLG - mergedFontSizeLG * lineHeightLG) / 2 * 10) / 10 - lineWidth;
  38. return {
  39. paddingBlock: Math.max(paddingBlock, 0),
  40. paddingBlockSM: Math.max(paddingBlockSM, 0),
  41. paddingBlockLG: Math.max(paddingBlockLG, 0),
  42. paddingInline: paddingSM - lineWidth,
  43. paddingInlineSM: controlPaddingHorizontalSM - lineWidth,
  44. paddingInlineLG: controlPaddingHorizontal - lineWidth,
  45. addonBg: colorFillAlter,
  46. activeBorderColor: colorPrimary,
  47. hoverBorderColor: colorPrimaryHover,
  48. activeShadow: `0 0 0 ${controlOutlineWidth}px ${controlOutline}`,
  49. errorActiveShadow: `0 0 0 ${controlOutlineWidth}px ${colorErrorOutline}`,
  50. warningActiveShadow: `0 0 0 ${controlOutlineWidth}px ${colorWarningOutline}`,
  51. hoverBg: colorBgContainer,
  52. activeBg: colorBgContainer,
  53. inputFontSize: mergedFontSize,
  54. inputFontSizeLG: mergedFontSizeLG,
  55. inputFontSizeSM: mergedFontSizeSM
  56. };
  57. };