{"version":3,"file":"index.cjs","sources":["../../../../../../packages/components/tree/style/index.ts"],"sourcesContent":["import type { CSSInterpolation, CSSObject, DerivativeToken } from '@antdv/theme';\nimport { genComponentStyleHook, genFocusOutline, Keyframes, mergeToken, resetComponent } from '@antdv/theme';\nimport { genCollapseMotion } from '@antdv/theme/style/motion';\nimport { getStyle as getCheckboxStyle } from '../../checkbox/style';\n\n// ============================ Keyframes =============================\nconst treeNodeFX = new Keyframes('ant-tree-node-fx-do-not-use', {\n  '0%': {\n    opacity: 0,\n  },\n  '100%': {\n    opacity: 1,\n  },\n});\n\n// ============================== Switch ==============================\nfunction getSwitchStyle(prefixCls: string, token: DerivativeToken): CSSObject {\n  return {\n    [`.${prefixCls}-switcher-icon`]: {\n      display: 'inline-block',\n      fontSize: 10,\n      verticalAlign: 'baseline',\n\n      svg: {\n        transition: `transform ${token.motionDurationSlow}`,\n      },\n    },\n  };\n}\n\n// =============================== Drop ===============================\nfunction getDropIndicatorStyle(prefixCls: string, token: DerivativeToken) {\n  return {\n    [`.${prefixCls}-drop-indicator`]: {\n      'position': 'absolute',\n      // it should displayed over the following node\n      'zIndex': 1,\n      'height': 2,\n      'backgroundColor': token.colorPrimary,\n      'borderRadius': 1,\n      'pointerEvents': 'none',\n\n      '&:after': {\n        position: 'absolute',\n        top: -3,\n        insetInlineStart: -6,\n        width: 8,\n        height: 8,\n        backgroundColor: 'transparent',\n        border: `${token.lineWidthBold}px solid ${token.colorPrimary}`,\n        borderRadius: '50%',\n        content: '\"\"',\n      },\n    },\n  };\n}\n\n// =============================== Base ===============================\ntype TreeToken = DerivativeToken & {\n  treeCls: string\n  treeNodeCls: string\n  treeNodePadding: number\n  treeTitleHeight: number\n};\n\nexport function genBaseStyle(prefixCls: string, token: TreeToken): CSSObject {\n  const { treeCls, treeNodeCls, treeNodePadding, treeTitleHeight } = token;\n\n  const treeCheckBoxMarginVertical = (treeTitleHeight - token.fontSizeLG) / 2;\n  const treeCheckBoxMarginHorizontal = token.paddingXS;\n\n  return {\n    [treeCls]: {\n      ...resetComponent(token),\n      'background': token.colorBgContainer,\n      'borderRadius': token.borderRadius,\n      'transition': `background-color ${token.motionDurationSlow}`,\n\n      [`&${treeCls}-rtl`]: {\n        // >>> Switcher\n        [`${treeCls}-switcher`]: {\n          '&_close': {\n            [`${treeCls}-switcher-icon`]: {\n              svg: {\n                transform: 'rotate(90deg)',\n              },\n            },\n          },\n        },\n      },\n\n      [`&-focused:not(:hover):not(${treeCls}-active-focused)`]: {\n        ...genFocusOutline(token),\n      },\n\n      // =================== Virtual List ===================\n      [`${treeCls}-list-holder-inner`]: {\n        alignItems: 'flex-start',\n      },\n\n      [`&${treeCls}-block-node`]: {\n        [`${treeCls}-list-holder-inner`]: {\n          alignItems: 'stretch',\n\n          // >>> Title\n          [`${treeCls}-node-content-wrapper`]: {\n            flex: 'auto',\n          },\n\n          // >>> Drag\n          [`${treeNodeCls}.dragging`]: {\n            'position': 'relative',\n\n            '&:after': {\n              position: 'absolute',\n              top: 0,\n              insetInlineEnd: 0,\n              bottom: treeNodePadding,\n              insetInlineStart: 0,\n              border: `1px solid ${token.colorPrimary}`,\n              opacity: 0,\n              animationName: treeNodeFX,\n              animationDuration: token.motionDurationSlow,\n              animationPlayState: 'running',\n              animationFillMode: 'forwards',\n              content: '\"\"',\n              pointerEvents: 'none',\n            },\n          },\n        },\n      },\n\n      // ===================== TreeNode =====================\n      [`${treeNodeCls}`]: {\n        'display': 'flex',\n        'alignItems': 'flex-start',\n        'padding': `0 0 ${treeNodePadding}px 0`,\n        'outline': 'none',\n\n        '&-rtl': {\n          direction: 'rtl',\n        },\n\n        // Disabled\n        '&-disabled': {\n          // >>> Title\n          [`${treeCls}-node-content-wrapper`]: {\n            'color': token.colorTextDisabled,\n            'cursor': 'not-allowed',\n            '&:hover': {\n              background: 'transparent',\n            },\n          },\n        },\n\n        [`&-active ${treeCls}-node-content-wrapper`]: {\n          ...genFocusOutline(token),\n        },\n\n        [`&:not(${treeNodeCls}-disabled).filter-node ${treeCls}-title`]: {\n          color: 'inherit',\n          fontWeight: 500,\n        },\n\n        '&-draggable': {\n          cursor: 'grab',\n          [`${treeCls}-draggable-icon`]: {\n            width: treeTitleHeight,\n            lineHeight: `${treeTitleHeight}px`,\n            textAlign: 'center',\n            visibility: 'visible',\n            opacity: 0.2,\n            transition: `opacity ${token.motionDurationSlow}`,\n\n            [`${treeNodeCls}:hover &`]: {\n              opacity: 0.45,\n            },\n          },\n\n          [`&${treeNodeCls}-disabled`]: {\n            [`${treeCls}-draggable-icon`]: {\n              visibility: 'hidden',\n            },\n          },\n        },\n      },\n\n      // >>> Indent\n      [`${treeCls}-indent`]: {\n        'alignSelf': 'stretch',\n        'whiteSpace': 'nowrap',\n        'userSelect': 'none',\n        '&-unit': {\n          display: 'inline-block',\n          width: treeTitleHeight,\n        },\n      },\n\n      // >>> Drag Handler\n      [`${treeCls}-draggable-icon`]: {\n        visibility: 'hidden',\n      },\n\n      // >>> Switcher\n      [`${treeCls}-switcher`]: {\n        ...getSwitchStyle(prefixCls, token),\n        'position': 'relative',\n        'flex': 'none',\n        'alignSelf': 'stretch',\n        'width': treeTitleHeight,\n        'margin': 0,\n        'lineHeight': `${treeTitleHeight}px`,\n        'textAlign': 'center',\n        'cursor': 'pointer',\n        'userSelect': 'none',\n\n        '&-noop': {\n          cursor: 'default',\n        },\n\n        '&_close': {\n          [`${treeCls}-switcher-icon`]: {\n            svg: {\n              transform: 'rotate(-90deg)',\n            },\n          },\n        },\n\n        '&-loading-icon': {\n          color: token.colorPrimary,\n        },\n\n        '&-leaf-line': {\n          'position': 'relative',\n          'zIndex': 1,\n          'display': 'inline-block',\n          'width': '100%',\n          'height': '100%',\n\n          // https://github.com/ant-design/ant-design/issues/31884\n          '&:before': {\n            position: 'absolute',\n            top: 0,\n            insetInlineEnd: treeTitleHeight / 2,\n            bottom: -treeNodePadding,\n            marginInlineStart: -1,\n            borderInlineEnd: `1px solid ${token.colorBorder}`,\n            content: '\"\"',\n          },\n\n          '&:after': {\n            position: 'absolute',\n            width: (treeTitleHeight / 2) * 0.8,\n            height: treeTitleHeight / 2,\n            borderBottom: `1px solid ${token.colorBorder}`,\n            content: '\"\"',\n          },\n        },\n      },\n\n      // >>> Checkbox\n      [`${treeCls}-checkbox`]: {\n        top: 'initial',\n        marginInlineEnd: treeCheckBoxMarginHorizontal,\n        marginBlockStart: treeCheckBoxMarginVertical,\n      },\n\n      // >>> Title\n      // add `${treeCls}-checkbox + span` to cover checkbox `${checkboxCls} + span`\n      [`${treeCls}-node-content-wrapper, ${treeCls}-checkbox + span`]: {\n        'position': 'relative',\n        'zIndex': 'auto',\n        'minHeight': treeTitleHeight,\n        'margin': 0,\n        'padding': `0 ${token.paddingXS / 2}px`,\n        'color': 'inherit',\n        'lineHeight': `${treeTitleHeight}px`,\n        'background': 'transparent',\n        'borderRadius': token.borderRadius,\n        'cursor': 'pointer',\n        'transition': `all ${token.motionDurationMid}, border 0s, line-height 0s, box-shadow 0s`,\n\n        '&:hover': {\n          backgroundColor: token.controlItemBgHover,\n        },\n\n        [`&${treeCls}-node-selected`]: {\n          backgroundColor: token.controlItemBgActive,\n        },\n\n        // Icon\n        [`${treeCls}-iconEle`]: {\n          'display': 'inline-block',\n          'width': treeTitleHeight,\n          'height': treeTitleHeight,\n          'lineHeight': `${treeTitleHeight}px`,\n          'textAlign': 'center',\n          'verticalAlign': 'top',\n\n          '&:empty': {\n            display: 'none',\n          },\n        },\n      },\n\n      // https://github.com/ant-design/ant-design/issues/28217\n      [`${treeCls}-unselectable ${treeCls}-node-content-wrapper:hover`]: {\n        backgroundColor: 'transparent',\n      },\n\n      // ==================== Draggable =====================\n      [`${treeCls}-node-content-wrapper`]: {\n        lineHeight: `${treeTitleHeight}px`,\n        userSelect: 'none',\n\n        ...getDropIndicatorStyle(prefixCls, token),\n      },\n\n      [`${treeNodeCls}.drop-container`]: {\n        '> [draggable]': {\n          boxShadow: `0 0 0 2px ${token.colorPrimary}`,\n        },\n      },\n\n      // ==================== Show Line =====================\n      '&-show-line': {\n        // ================ Indent lines ================\n        [`${treeCls}-indent`]: {\n          '&-unit': {\n            'position': 'relative',\n            'height': '100%',\n\n            '&:before': {\n              position: 'absolute',\n              top: 0,\n              insetInlineEnd: treeTitleHeight / 2,\n              bottom: -treeNodePadding,\n              borderInlineEnd: `1px solid ${token.colorBorder}`,\n              content: '\"\"',\n            },\n\n            '&-end': {\n              '&:before': {\n                display: 'none',\n              },\n            },\n          },\n        },\n\n        // ============== Cover Background ==============\n        [`${treeCls}-switcher`]: {\n          'background': 'transparent',\n\n          '&-line-icon': {\n            // https://github.com/ant-design/ant-design/issues/32813\n            verticalAlign: '-0.15em',\n          },\n        },\n      },\n\n      [`${treeNodeCls}-leaf-last`]: {\n        [`${treeCls}-switcher`]: {\n          '&-leaf-line': {\n            '&:before': {\n              top: 'auto !important',\n              bottom: 'auto !important',\n              height: `${treeTitleHeight / 2}px !important`,\n            },\n          },\n        },\n      },\n    },\n  };\n}\n\n// ============================ Directory =============================\nexport function genDirectoryStyle(token: TreeToken): CSSObject {\n  const { treeCls, treeNodeCls, treeNodePadding } = token;\n\n  return {\n    [`${treeCls}${treeCls}-directory`]: {\n      // ================== TreeNode ==================\n      [treeNodeCls]: {\n        'position': 'relative',\n\n        // Hover color\n        '&:before': {\n          position: 'absolute',\n          top: 0,\n          insetInlineEnd: 0,\n          bottom: treeNodePadding,\n          insetInlineStart: 0,\n          transition: `background-color ${token.motionDurationMid}`,\n          content: '\"\"',\n          pointerEvents: 'none',\n        },\n\n        '&:hover': {\n          '&:before': {\n            background: token.controlItemBgHover,\n          },\n        },\n\n        // Elements\n        '> *': {\n          zIndex: 1,\n        },\n\n        // >>> Switcher\n        [`${treeCls}-switcher`]: {\n          transition: `color ${token.motionDurationMid}`,\n        },\n\n        // >>> Title\n        [`${treeCls}-node-content-wrapper`]: {\n          'borderRadius': 0,\n          'userSelect': 'none',\n\n          '&:hover': {\n            background: 'transparent',\n          },\n\n          [`&${treeCls}-node-selected`]: {\n            color: token.colorTextLightSolid,\n            background: 'transparent',\n          },\n        },\n\n        // ============= Selected =============\n        '&-selected': {\n          [`\n            &:hover::before,\n            &::before\n          `]: {\n            background: token.colorPrimary,\n          },\n\n          // >>> Switcher\n          [`${treeCls}-switcher`]: {\n            color: token.colorTextLightSolid,\n          },\n\n          // >>> Title\n          [`${treeCls}-node-content-wrapper`]: {\n            color: token.colorTextLightSolid,\n            background: 'transparent',\n          },\n        },\n      },\n    },\n  };\n}\n\n// ============================== Merged ==============================\nexport function genTreeStyle(prefixCls: string, token: DerivativeToken): CSSInterpolation {\n  const treeCls = `.${prefixCls}`;\n  const treeNodeCls = `${treeCls}-treenode`;\n\n  const treeNodePadding = token.paddingXS / 2;\n  const treeTitleHeight = token.controlHeightSM;\n\n  const treeToken = mergeToken<TreeToken>(token, {\n    treeCls,\n    treeNodeCls,\n    treeNodePadding,\n    treeTitleHeight,\n  });\n\n  return [\n    // Basic\n    genBaseStyle(prefixCls, treeToken),\n    // Directory\n    genDirectoryStyle(treeToken),\n  ];\n}\n\n// ============================== Export ==============================\nexport default genComponentStyleHook('Tree', (token, { prefixCls }) => [\n  {\n    [token.componentCls]: getCheckboxStyle(`${prefixCls}-checkbox`, token),\n  },\n  genTreeStyle(prefixCls, token),\n  genCollapseMotion(token),\n]);\n"],"names":["Keyframes","resetComponent","genFocusOutline","mergeToken","genComponentStyleHook","getCheckboxStyle","genCollapseMotion"],"mappings":"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"}