UNPKG

antd

Version:

An enterprise-class UI design language and React components implementation

192 lines (191 loc) 5.81 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _cssinjs = require("@ant-design/cssinjs"); var _style = require("../../style"); const getVerticalInlineStyle = token => { const { componentCls, itemHeight, itemMarginInline, padding, menuArrowSize, marginXS, itemMarginBlock, itemWidth, itemPaddingInline } = token; const paddingWithArrow = token.calc(menuArrowSize).add(padding).add(marginXS).equal(); return { [`${componentCls}-item`]: { position: 'relative', overflow: 'hidden' }, [`${componentCls}-item, ${componentCls}-submenu-title`]: { height: itemHeight, lineHeight: (0, _cssinjs.unit)(itemHeight), paddingInline: itemPaddingInline, overflow: 'hidden', textOverflow: 'ellipsis', marginInline: itemMarginInline, marginBlock: itemMarginBlock, width: itemWidth }, [`> ${componentCls}-item, > ${componentCls}-submenu > ${componentCls}-submenu-title`]: { height: itemHeight, lineHeight: (0, _cssinjs.unit)(itemHeight) }, [`${componentCls}-item-group-list ${componentCls}-submenu-title, ${componentCls}-submenu-title`]: { paddingInlineEnd: paddingWithArrow } }; }; const getVerticalStyle = token => { const { componentCls, iconCls, itemHeight, colorTextLightSolid, dropdownWidth, controlHeightLG, motionEaseOut, paddingXL, itemMarginInline, fontSizeLG, motionDurationFast, motionDurationSlow, paddingXS, boxShadowSecondary, collapsedWidth, collapsedIconSize } = token; const inlineItemStyle = { height: itemHeight, lineHeight: (0, _cssinjs.unit)(itemHeight), listStylePosition: 'inside', listStyleType: 'disc' }; return [{ [componentCls]: { '&-inline, &-vertical': Object.assign({ [`&${componentCls}-root`]: { boxShadow: 'none' } }, getVerticalInlineStyle(token)) }, [`${componentCls}-submenu-popup`]: { [`${componentCls}-vertical`]: Object.assign(Object.assign({}, getVerticalInlineStyle(token)), { boxShadow: boxShadowSecondary }) } }, // Vertical only { [`${componentCls}-submenu-popup ${componentCls}-vertical${componentCls}-sub`]: { minWidth: dropdownWidth, maxHeight: `calc(100vh - ${(0, _cssinjs.unit)(token.calc(controlHeightLG).mul(2.5).equal())})`, padding: '0', overflow: 'hidden', borderInlineEnd: 0, // https://github.com/ant-design/ant-design/issues/22244 // https://github.com/ant-design/ant-design/issues/26812 "&:not([class*='-active'])": { overflowX: 'hidden', overflowY: 'auto' } } }, // Inline Only { [`${componentCls}-inline`]: { width: '100%', // Motion enhance for first level [`&${componentCls}-root`]: { [`${componentCls}-item, ${componentCls}-submenu-title`]: { display: 'flex', alignItems: 'center', transition: [`border-color ${motionDurationSlow}`, `background ${motionDurationSlow}`, `padding ${motionDurationFast} ${motionEaseOut}`].join(','), [`> ${componentCls}-title-content`]: { flex: 'auto', minWidth: 0, overflow: 'hidden', textOverflow: 'ellipsis' }, '> *': { flex: 'none' } } }, // >>>>> Sub [`${componentCls}-sub${componentCls}-inline`]: { padding: 0, border: 0, borderRadius: 0, boxShadow: 'none', [`& > ${componentCls}-submenu > ${componentCls}-submenu-title`]: inlineItemStyle, [`& ${componentCls}-item-group-title`]: { paddingInlineStart: paddingXL } }, // >>>>> Item [`${componentCls}-item`]: inlineItemStyle } }, // Inline Collapse Only { [`${componentCls}-inline-collapsed`]: { width: collapsedWidth, [`&${componentCls}-root`]: { [`${componentCls}-item, ${componentCls}-submenu ${componentCls}-submenu-title`]: { [`> ${componentCls}-inline-collapsed-noicon`]: { fontSize: fontSizeLG, textAlign: 'center' } } }, [`> ${componentCls}-item, > ${componentCls}-item-group > ${componentCls}-item-group-list > ${componentCls}-item, > ${componentCls}-item-group > ${componentCls}-item-group-list > ${componentCls}-submenu > ${componentCls}-submenu-title, > ${componentCls}-submenu > ${componentCls}-submenu-title`]: { insetInlineStart: 0, paddingInline: `calc(50% - ${(0, _cssinjs.unit)(token.calc(collapsedIconSize).div(2).equal())} - ${(0, _cssinjs.unit)(itemMarginInline)})`, textOverflow: 'clip', [` ${componentCls}-submenu-arrow, ${componentCls}-submenu-expand-icon `]: { opacity: 0 }, [`${componentCls}-item-icon, ${iconCls}`]: { margin: 0, fontSize: collapsedIconSize, lineHeight: (0, _cssinjs.unit)(itemHeight), '+ span': { display: 'inline-block', opacity: 0 } } }, [`${componentCls}-item-icon, ${iconCls}`]: { display: 'inline-block' }, '&-tooltip': { pointerEvents: 'none', [`${componentCls}-item-icon, ${iconCls}`]: { display: 'none' }, 'a, a:hover': { color: colorTextLightSolid } }, [`${componentCls}-item-group-title`]: Object.assign(Object.assign({}, _style.textEllipsis), { paddingInline: paddingXS }) } }]; }; var _default = exports.default = getVerticalStyle;