| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340 |
- "use strict";
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.default = void 0;
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
- var _internal = require("../../theme/internal");
- var _style = require("../../style");
- // ============================== Styles ==============================
- // ============================== Head ==============================
- const genCardHeadStyle = token => {
- const {
- antCls,
- componentCls,
- cardHeadHeight,
- cardPaddingBase,
- cardHeadTabsMarginBottom
- } = token;
- return (0, _extends2.default)((0, _extends2.default)({
- display: 'flex',
- justifyContent: 'center',
- flexDirection: 'column',
- minHeight: cardHeadHeight,
- marginBottom: -1,
- padding: `0 ${cardPaddingBase}px`,
- color: token.colorTextHeading,
- fontWeight: token.fontWeightStrong,
- fontSize: token.fontSizeLG,
- background: 'transparent',
- borderBottom: `${token.lineWidth}px ${token.lineType} ${token.colorBorderSecondary}`,
- borderRadius: `${token.borderRadiusLG}px ${token.borderRadiusLG}px 0 0`
- }, (0, _style.clearFix)()), {
- '&-wrapper': {
- width: '100%',
- display: 'flex',
- alignItems: 'center'
- },
- '&-title': (0, _extends2.default)((0, _extends2.default)({
- display: 'inline-block',
- flex: 1
- }, _style.textEllipsis), {
- [`
- > ${componentCls}-typography,
- > ${componentCls}-typography-edit-content
- `]: {
- insetInlineStart: 0,
- marginTop: 0,
- marginBottom: 0
- }
- }),
- [`${antCls}-tabs-top`]: {
- clear: 'both',
- marginBottom: cardHeadTabsMarginBottom,
- color: token.colorText,
- fontWeight: 'normal',
- fontSize: token.fontSize,
- '&-bar': {
- borderBottom: `${token.lineWidth}px ${token.lineType} ${token.colorBorderSecondary}`
- }
- }
- });
- };
- // ============================== Grid ==============================
- const genCardGridStyle = token => {
- const {
- cardPaddingBase,
- colorBorderSecondary,
- cardShadow,
- lineWidth
- } = token;
- return {
- width: '33.33%',
- padding: cardPaddingBase,
- border: 0,
- borderRadius: 0,
- boxShadow: `
- ${lineWidth}px 0 0 0 ${colorBorderSecondary},
- 0 ${lineWidth}px 0 0 ${colorBorderSecondary},
- ${lineWidth}px ${lineWidth}px 0 0 ${colorBorderSecondary},
- ${lineWidth}px 0 0 0 ${colorBorderSecondary} inset,
- 0 ${lineWidth}px 0 0 ${colorBorderSecondary} inset;
- `,
- transition: `all ${token.motionDurationMid}`,
- '&-hoverable:hover': {
- position: 'relative',
- zIndex: 1,
- boxShadow: cardShadow
- }
- };
- };
- // ============================== Actions ==============================
- const genCardActionsStyle = token => {
- const {
- componentCls,
- iconCls,
- cardActionsLiMargin,
- cardActionsIconSize,
- colorBorderSecondary
- } = token;
- return (0, _extends2.default)((0, _extends2.default)({
- margin: 0,
- padding: 0,
- listStyle: 'none',
- background: token.colorBgContainer,
- borderTop: `${token.lineWidth}px ${token.lineType} ${colorBorderSecondary}`,
- display: 'flex',
- borderRadius: `0 0 ${token.borderRadiusLG}px ${token.borderRadiusLG}px `
- }, (0, _style.clearFix)()), {
- '& > li': {
- margin: cardActionsLiMargin,
- color: token.colorTextDescription,
- textAlign: 'center',
- '> span': {
- position: 'relative',
- display: 'block',
- minWidth: token.cardActionsIconSize * 2,
- fontSize: token.fontSize,
- lineHeight: token.lineHeight,
- cursor: 'pointer',
- '&:hover': {
- color: token.colorPrimary,
- transition: `color ${token.motionDurationMid}`
- },
- [`a:not(${componentCls}-btn), > ${iconCls}`]: {
- display: 'inline-block',
- width: '100%',
- color: token.colorTextDescription,
- lineHeight: `${token.fontSize * token.lineHeight}px`,
- transition: `color ${token.motionDurationMid}`,
- '&:hover': {
- color: token.colorPrimary
- }
- },
- [`> ${iconCls}`]: {
- fontSize: cardActionsIconSize,
- lineHeight: `${cardActionsIconSize * token.lineHeight}px`
- }
- },
- '&:not(:last-child)': {
- borderInlineEnd: `${token.lineWidth}px ${token.lineType} ${colorBorderSecondary}`
- }
- }
- });
- };
- // ============================== Meta ==============================
- const genCardMetaStyle = token => (0, _extends2.default)((0, _extends2.default)({
- margin: `-${token.marginXXS}px 0`,
- display: 'flex'
- }, (0, _style.clearFix)()), {
- '&-avatar': {
- paddingInlineEnd: token.padding
- },
- '&-detail': {
- overflow: 'hidden',
- flex: 1,
- '> div:not(:last-child)': {
- marginBottom: token.marginXS
- }
- },
- '&-title': (0, _extends2.default)({
- color: token.colorTextHeading,
- fontWeight: token.fontWeightStrong,
- fontSize: token.fontSizeLG
- }, _style.textEllipsis),
- '&-description': {
- color: token.colorTextDescription
- }
- });
- // ============================== Inner ==============================
- const genCardTypeInnerStyle = token => {
- const {
- componentCls,
- cardPaddingBase,
- colorFillAlter
- } = token;
- return {
- [`${componentCls}-head`]: {
- padding: `0 ${cardPaddingBase}px`,
- background: colorFillAlter,
- '&-title': {
- fontSize: token.fontSize
- }
- },
- [`${componentCls}-body`]: {
- padding: `${token.padding}px ${cardPaddingBase}px`
- }
- };
- };
- // ============================== Loading ==============================
- const genCardLoadingStyle = token => {
- const {
- componentCls
- } = token;
- return {
- overflow: 'hidden',
- [`${componentCls}-body`]: {
- userSelect: 'none'
- }
- };
- };
- // ============================== Basic ==============================
- const genCardStyle = token => {
- const {
- componentCls,
- cardShadow,
- cardHeadPadding,
- colorBorderSecondary,
- boxShadow,
- cardPaddingBase
- } = token;
- return {
- [componentCls]: (0, _extends2.default)((0, _extends2.default)({}, (0, _style.resetComponent)(token)), {
- position: 'relative',
- background: token.colorBgContainer,
- borderRadius: token.borderRadiusLG,
- [`&:not(${componentCls}-bordered)`]: {
- boxShadow
- },
- [`${componentCls}-head`]: genCardHeadStyle(token),
- [`${componentCls}-extra`]: {
- // https://stackoverflow.com/a/22429853/3040605
- marginInlineStart: 'auto',
- color: '',
- fontWeight: 'normal',
- fontSize: token.fontSize
- },
- [`${componentCls}-body`]: (0, _extends2.default)({
- padding: cardPaddingBase,
- borderRadius: ` 0 0 ${token.borderRadiusLG}px ${token.borderRadiusLG}px`
- }, (0, _style.clearFix)()),
- [`${componentCls}-grid`]: genCardGridStyle(token),
- [`${componentCls}-cover`]: {
- '> *': {
- display: 'block',
- width: '100%'
- },
- img: {
- borderRadius: `${token.borderRadiusLG}px ${token.borderRadiusLG}px 0 0`
- }
- },
- [`${componentCls}-actions`]: genCardActionsStyle(token),
- [`${componentCls}-meta`]: genCardMetaStyle(token)
- }),
- [`${componentCls}-bordered`]: {
- border: `${token.lineWidth}px ${token.lineType} ${colorBorderSecondary}`,
- [`${componentCls}-cover`]: {
- marginTop: -1,
- marginInlineStart: -1,
- marginInlineEnd: -1
- }
- },
- [`${componentCls}-hoverable`]: {
- cursor: 'pointer',
- transition: `box-shadow ${token.motionDurationMid}, border-color ${token.motionDurationMid}`,
- '&:hover': {
- borderColor: 'transparent',
- boxShadow: cardShadow
- }
- },
- [`${componentCls}-contain-grid`]: {
- [`${componentCls}-body`]: {
- display: 'flex',
- flexWrap: 'wrap'
- },
- [`&:not(${componentCls}-loading) ${componentCls}-body`]: {
- marginBlockStart: -token.lineWidth,
- marginInlineStart: -token.lineWidth,
- padding: 0
- }
- },
- [`${componentCls}-contain-tabs`]: {
- [`> ${componentCls}-head`]: {
- [`${componentCls}-head-title, ${componentCls}-extra`]: {
- paddingTop: cardHeadPadding
- }
- }
- },
- [`${componentCls}-type-inner`]: genCardTypeInnerStyle(token),
- [`${componentCls}-loading`]: genCardLoadingStyle(token),
- [`${componentCls}-rtl`]: {
- direction: 'rtl'
- }
- };
- };
- // ============================== Size ==============================
- const genCardSizeStyle = token => {
- const {
- componentCls,
- cardPaddingSM,
- cardHeadHeightSM
- } = token;
- return {
- [`${componentCls}-small`]: {
- [`> ${componentCls}-head`]: {
- minHeight: cardHeadHeightSM,
- padding: `0 ${cardPaddingSM}px`,
- fontSize: token.fontSize,
- [`> ${componentCls}-head-wrapper`]: {
- [`> ${componentCls}-extra`]: {
- fontSize: token.fontSize
- }
- }
- },
- [`> ${componentCls}-body`]: {
- padding: cardPaddingSM
- }
- },
- [`${componentCls}-small${componentCls}-contain-tabs`]: {
- [`> ${componentCls}-head`]: {
- [`${componentCls}-head-title, ${componentCls}-extra`]: {
- minHeight: cardHeadHeightSM,
- paddingTop: 0,
- display: 'flex',
- alignItems: 'center'
- }
- }
- }
- };
- };
- // ============================== Export ==============================
- var _default = exports.default = (0, _internal.genComponentStyleHook)('Card', token => {
- const cardToken = (0, _internal.mergeToken)(token, {
- cardShadow: token.boxShadowCard,
- cardHeadHeight: token.fontSizeLG * token.lineHeightLG + token.padding * 2,
- cardHeadHeightSM: token.fontSize * token.lineHeight + token.paddingXS * 2,
- cardHeadPadding: token.padding,
- cardPaddingBase: token.paddingLG,
- cardHeadTabsMarginBottom: -token.padding - token.lineWidth,
- cardActionsLiMargin: `${token.paddingSM}px 0`,
- cardActionsIconSize: token.fontSize,
- cardPaddingSM: 12 // Fixed padding.
- });
- return [
- // Style
- genCardStyle(cardToken),
- // Size
- genCardSizeStyle(cardToken)];
- });
|