123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365 |
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.prepareComponentToken = exports.default = exports.DotDuration = void 0;
- var _cssinjs = require("@ant-design/cssinjs");
- var _style = require("../../style");
- var _internal = require("../../theme/internal");
- const DotDuration = exports.DotDuration = '--dot-duration';
- const genCarouselStyle = token => {
- const {
- componentCls,
- antCls
- } = token;
- return {
- [componentCls]: Object.assign(Object.assign({}, (0, _style.resetComponent)(token)), {
- '.slick-slider': {
- position: 'relative',
- display: 'block',
- boxSizing: 'border-box',
- touchAction: 'pan-y',
- WebkitTouchCallout: 'none',
- WebkitTapHighlightColor: 'transparent',
- '.slick-track, .slick-list': {
- transform: 'translate3d(0, 0, 0)',
- touchAction: 'pan-y'
- }
- },
- '.slick-list': {
- position: 'relative',
- display: 'block',
- margin: 0,
- padding: 0,
- overflow: 'hidden',
- '&:focus': {
- outline: 'none'
- },
- '&.dragging': {
- cursor: 'pointer'
- },
- '.slick-slide': {
- pointerEvents: 'none',
- // https://github.com/ant-design/ant-design/issues/23294
- [`input${antCls}-radio-input, input${antCls}-checkbox-input`]: {
- visibility: 'hidden'
- },
- '&.slick-active': {
- pointerEvents: 'auto',
- [`input${antCls}-radio-input, input${antCls}-checkbox-input`]: {
- visibility: 'visible'
- }
- },
- // fix Carousel content height not match parent node
- // when children is empty node
- // https://github.com/ant-design/ant-design/issues/25878
- '> div > div': {
- verticalAlign: 'bottom'
- }
- }
- },
- '.slick-track': {
- position: 'relative',
- top: 0,
- insetInlineStart: 0,
- display: 'block',
- '&::before, &::after': {
- display: 'table',
- content: '""'
- },
- '&::after': {
- clear: 'both'
- }
- },
- '.slick-slide': {
- display: 'none',
- float: 'left',
- height: '100%',
- minHeight: 1,
- img: {
- display: 'block'
- },
- '&.dragging img': {
- pointerEvents: 'none'
- }
- },
- '.slick-initialized .slick-slide': {
- display: 'block'
- },
- '.slick-vertical .slick-slide': {
- display: 'block',
- height: 'auto'
- }
- })
- };
- };
- const genArrowsStyle = token => {
- const {
- componentCls,
- motionDurationSlow,
- arrowSize,
- arrowOffset
- } = token;
- const arrowLength = token.calc(arrowSize).div(Math.SQRT2).equal();
- return {
- [componentCls]: {
- // Arrows
- '.slick-prev, .slick-next': {
- position: 'absolute',
- top: '50%',
- width: arrowSize,
- height: arrowSize,
- transform: 'translateY(-50%)',
- color: '#fff',
- opacity: 0.4,
- background: 'transparent',
- padding: 0,
- lineHeight: 0,
- border: 0,
- outline: 'none',
- cursor: 'pointer',
- zIndex: 1,
- transition: `opacity ${motionDurationSlow}`,
- '&:hover, &:focus': {
- opacity: 1
- },
- '&.slick-disabled': {
- pointerEvents: 'none',
- opacity: 0
- },
- '&::after': {
- boxSizing: 'border-box',
- position: 'absolute',
- top: token.calc(arrowSize).sub(arrowLength).div(2).equal(),
- insetInlineStart: token.calc(arrowSize).sub(arrowLength).div(2).equal(),
- display: 'inline-block',
- width: arrowLength,
- height: arrowLength,
- border: `0 solid currentcolor`,
- borderInlineStartWidth: 2,
- borderBlockStartWidth: 2,
- borderRadius: 1,
- content: '""'
- }
- },
- '.slick-prev': {
- insetInlineStart: arrowOffset,
- '&::after': {
- transform: 'rotate(-45deg)'
- }
- },
- '.slick-next': {
- insetInlineEnd: arrowOffset,
- '&::after': {
- transform: 'rotate(135deg)'
- }
- }
- }
- };
- };
- const genDotsStyle = token => {
- const {
- componentCls,
- dotOffset,
- dotWidth,
- dotHeight,
- dotGap,
- colorBgContainer,
- motionDurationSlow
- } = token;
- return {
- [componentCls]: {
- '.slick-dots': {
- position: 'absolute',
- insetInlineEnd: 0,
- bottom: 0,
- insetInlineStart: 0,
- zIndex: 15,
- display: 'flex !important',
- justifyContent: 'center',
- paddingInlineStart: 0,
- margin: 0,
- listStyle: 'none',
- '&-bottom': {
- bottom: dotOffset
- },
- '&-top': {
- top: dotOffset,
- bottom: 'auto'
- },
- li: {
- position: 'relative',
- display: 'inline-block',
- flex: '0 1 auto',
- boxSizing: 'content-box',
- width: dotWidth,
- height: dotHeight,
- marginInline: dotGap,
- padding: 0,
- textAlign: 'center',
- textIndent: -999,
- verticalAlign: 'top',
- transition: `all ${motionDurationSlow}`,
- borderRadius: dotHeight,
- overflow: 'hidden',
- '&::after': {
- display: 'block',
- position: 'absolute',
- top: 0,
- insetInlineStart: 0,
- width: '100%',
- height: dotHeight,
- content: '""',
- background: 'transparent',
- borderRadius: dotHeight,
- opacity: 1,
- outline: 'none',
- cursor: 'pointer',
- overflow: 'hidden',
- transform: 'translate3d(-100%, 0, 0)'
- },
- button: {
- position: 'relative',
- display: 'block',
- width: '100%',
- height: dotHeight,
- padding: 0,
- color: 'transparent',
- fontSize: 0,
- background: colorBgContainer,
- border: 0,
- borderRadius: dotHeight,
- outline: 'none',
- cursor: 'pointer',
- opacity: 0.2,
- transition: `all ${motionDurationSlow}`,
- overflow: 'hidden',
- '&:hover': {
- opacity: 0.75
- },
- '&::after': {
- position: 'absolute',
- inset: token.calc(dotGap).mul(-1).equal(),
- content: '""'
- }
- },
- '&.slick-active': {
- width: token.dotActiveWidth,
- position: 'relative',
- '&:hover': {
- opacity: 1
- },
- '&::after': {
- background: colorBgContainer,
- transform: 'translate3d(0, 0, 0)',
- transition: `transform var(${DotDuration}) ease-out`
- }
- }
- }
- }
- }
- };
- };
- const genCarouselVerticalStyle = token => {
- const {
- componentCls,
- dotOffset,
- arrowOffset,
- marginXXS
- } = token;
- const reverseSizeOfDot = {
- width: token.dotHeight,
- height: token.dotWidth
- };
- return {
- [`${componentCls}-vertical`]: {
- '.slick-prev, .slick-next': {
- insetInlineStart: '50%',
- marginBlockStart: 'unset',
- transform: 'translateX(-50%)'
- },
- '.slick-prev': {
- insetBlockStart: arrowOffset,
- insetInlineStart: '50%',
- '&::after': {
- transform: 'rotate(45deg)'
- }
- },
- '.slick-next': {
- insetBlockStart: 'auto',
- insetBlockEnd: arrowOffset,
- '&::after': {
- transform: 'rotate(-135deg)'
- }
- },
- '.slick-dots': {
- top: '50%',
- bottom: 'auto',
- flexDirection: 'column',
- width: token.dotHeight,
- height: 'auto',
- margin: 0,
- transform: 'translateY(-50%)',
- '&-left': {
- insetInlineEnd: 'auto',
- insetInlineStart: dotOffset
- },
- '&-right': {
- insetInlineEnd: dotOffset,
- insetInlineStart: 'auto'
- },
- li: Object.assign(Object.assign({}, reverseSizeOfDot), {
- margin: `${(0, _cssinjs.unit)(marginXXS)} 0`,
- verticalAlign: 'baseline',
- button: reverseSizeOfDot,
- '&::after': Object.assign(Object.assign({}, reverseSizeOfDot), {
- height: 0
- }),
- '&.slick-active': Object.assign(Object.assign({}, reverseSizeOfDot), {
- button: reverseSizeOfDot,
- '&::after': Object.assign(Object.assign({}, reverseSizeOfDot), {
- transition: `height var(${DotDuration}) ease-out`
- })
- })
- })
- }
- }
- };
- };
- const genCarouselRtlStyle = token => {
- const {
- componentCls
- } = token;
- return [{
- [`${componentCls}-rtl`]: {
- direction: 'rtl'
- }
- }, {
- [`${componentCls}-vertical`]: {
- '.slick-dots': {
- [`${componentCls}-rtl&`]: {
- flexDirection: 'column'
- }
- }
- }
- }];
- };
- const prepareComponentToken = token => {
- const dotActiveWidth = 24;
- return {
- arrowSize: 16,
- arrowOffset: token.marginXS,
- dotWidth: 16,
- dotHeight: 3,
- dotGap: token.marginXXS,
- dotOffset: 12,
- dotWidthActive: dotActiveWidth,
- dotActiveWidth
- };
- };
- // ============================== Export ==============================
- exports.prepareComponentToken = prepareComponentToken;
- var _default = exports.default = (0, _internal.genStyleHooks)('Carousel', token => [genCarouselStyle(token), genArrowsStyle(token), genDotsStyle(token), genCarouselVerticalStyle(token), genCarouselRtlStyle(token)], prepareComponentToken, {
- deprecatedTokens: [['dotWidthActive', 'dotActiveWidth']]
- });
|