PromoCursed/node_modules/antd/lib/carousel/style/index.js
2024-08-20 23:25:37 +04:00

343 lines
8.8 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.prepareComponentToken = exports.default = void 0;
var _cssinjs = require("@ant-design/cssinjs");
var _style = require("../../style");
var _internal = require("../../theme/internal");
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`,
borderInlineWidth: '2px 0',
borderBlockWidth: '2px 0',
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}`,
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}`,
'&: hover, &:focus': {
opacity: 0.75
},
'&::after': {
position: 'absolute',
inset: token.calc(dotGap).mul(-1).equal(),
content: '""'
}
},
'&.slick-active': {
width: token.dotActiveWidth,
'& button': {
background: colorBgContainer,
opacity: 1
},
'&: hover, &:focus': {
opacity: 1
}
}
}
}
}
}];
};
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,
'&.slick-active': Object.assign(Object.assign({}, reverseSizeOfDot), {
button: reverseSizeOfDot
})
})
}
}
};
};
const genCarouselRtlStyle = token => {
const {
componentCls
} = token;
return [{
[`${componentCls}-rtl`]: {
direction: 'rtl',
// Dots
'.slick-dots': {
[`${componentCls}-rtl&`]: {
flexDirection: 'row-reverse'
}
}
}
}, {
[`${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']]
});