index.js 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. import { getStyle as getCheckboxStyle } from '../../checkbox/style';
  2. import { genComponentStyleHook, mergeToken } from '../../theme/internal';
  3. import { genTreeStyle } from '../../tree/style';
  4. // =============================== Base ===============================
  5. const genBaseStyle = token => {
  6. const {
  7. componentCls,
  8. treePrefixCls,
  9. colorBgElevated
  10. } = token;
  11. const treeCls = `.${treePrefixCls}`;
  12. return [
  13. // ======================================================
  14. // == Dropdown ==
  15. // ======================================================
  16. {
  17. [`${componentCls}-dropdown`]: [{
  18. padding: `${token.paddingXS}px ${token.paddingXS / 2}px`
  19. },
  20. // ====================== Tree ======================
  21. genTreeStyle(treePrefixCls, mergeToken(token, {
  22. colorBgContainer: colorBgElevated
  23. })), {
  24. [treeCls]: {
  25. borderRadius: 0,
  26. '&-list-holder-inner': {
  27. alignItems: 'stretch',
  28. [`${treeCls}-treenode`]: {
  29. [`${treeCls}-node-content-wrapper`]: {
  30. flex: 'auto'
  31. }
  32. }
  33. }
  34. }
  35. },
  36. // ==================== Checkbox ====================
  37. getCheckboxStyle(`${treePrefixCls}-checkbox`, token),
  38. // ====================== RTL =======================
  39. {
  40. '&-rtl': {
  41. direction: 'rtl',
  42. [`${treeCls}-switcher${treeCls}-switcher_close`]: {
  43. [`${treeCls}-switcher-icon svg`]: {
  44. transform: 'rotate(90deg)'
  45. }
  46. }
  47. }
  48. }]
  49. }];
  50. };
  51. // ============================== Export ==============================
  52. export default function useTreeSelectStyle(prefixCls, treePrefixCls) {
  53. return genComponentStyleHook('TreeSelect', token => {
  54. const treeSelectToken = mergeToken(token, {
  55. treePrefixCls: treePrefixCls.value
  56. });
  57. return [genBaseStyle(treeSelectToken)];
  58. })(prefixCls);
  59. }