123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338 |
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.prepareComponentToken = exports.default = void 0;
- var _cssinjs = require("@ant-design/cssinjs");
- var _fastColor = require("@ant-design/fast-color");
- var _style = require("../../style");
- var _internal = require("../../theme/internal");
- // =============================== Base ===============================
- const genBaseStyle = token => {
- const {
- componentCls,
- antCls,
- controlSize,
- dotSize,
- marginFull,
- marginPart,
- colorFillContentHover,
- handleColorDisabled,
- calc,
- handleSize,
- handleSizeHover,
- handleActiveColor,
- handleActiveOutlineColor,
- handleLineWidth,
- handleLineWidthHover,
- motionDurationMid
- } = token;
- return {
- [componentCls]: Object.assign(Object.assign({}, (0, _style.resetComponent)(token)), {
- position: 'relative',
- height: controlSize,
- margin: `${(0, _cssinjs.unit)(marginPart)} ${(0, _cssinjs.unit)(marginFull)}`,
- padding: 0,
- cursor: 'pointer',
- touchAction: 'none',
- '&-vertical': {
- margin: `${(0, _cssinjs.unit)(marginFull)} ${(0, _cssinjs.unit)(marginPart)}`
- },
- [`${componentCls}-rail`]: {
- position: 'absolute',
- backgroundColor: token.railBg,
- borderRadius: token.borderRadiusXS,
- transition: `background-color ${motionDurationMid}`
- },
- [`${componentCls}-track,${componentCls}-tracks`]: {
- position: 'absolute',
- transition: `background-color ${motionDurationMid}`
- },
- [`${componentCls}-track`]: {
- backgroundColor: token.trackBg,
- borderRadius: token.borderRadiusXS
- },
- [`${componentCls}-track-draggable`]: {
- boxSizing: 'content-box',
- backgroundClip: 'content-box',
- border: 'solid rgba(0,0,0,0)'
- },
- '&:hover': {
- [`${componentCls}-rail`]: {
- backgroundColor: token.railHoverBg
- },
- [`${componentCls}-track`]: {
- backgroundColor: token.trackHoverBg
- },
- [`${componentCls}-dot`]: {
- borderColor: colorFillContentHover
- },
- [`${componentCls}-handle::after`]: {
- boxShadow: `0 0 0 ${(0, _cssinjs.unit)(handleLineWidth)} ${token.colorPrimaryBorderHover}`
- },
- [`${componentCls}-dot-active`]: {
- borderColor: token.dotActiveBorderColor
- }
- },
- [`${componentCls}-handle`]: {
- position: 'absolute',
- width: handleSize,
- height: handleSize,
- outline: 'none',
- userSelect: 'none',
- // Dragging status
- '&-dragging-delete': {
- opacity: 0
- },
- // 扩大选区
- '&::before': {
- content: '""',
- position: 'absolute',
- insetInlineStart: calc(handleLineWidth).mul(-1).equal(),
- insetBlockStart: calc(handleLineWidth).mul(-1).equal(),
- width: calc(handleSize).add(calc(handleLineWidth).mul(2)).equal(),
- height: calc(handleSize).add(calc(handleLineWidth).mul(2)).equal(),
- backgroundColor: 'transparent'
- },
- '&::after': {
- content: '""',
- position: 'absolute',
- insetBlockStart: 0,
- insetInlineStart: 0,
- width: handleSize,
- height: handleSize,
- backgroundColor: token.colorBgElevated,
- boxShadow: `0 0 0 ${(0, _cssinjs.unit)(handleLineWidth)} ${token.handleColor}`,
- outline: `0px solid transparent`,
- borderRadius: '50%',
- cursor: 'pointer',
- transition: `
- inset-inline-start ${motionDurationMid},
- inset-block-start ${motionDurationMid},
- width ${motionDurationMid},
- height ${motionDurationMid},
- box-shadow ${motionDurationMid},
- outline ${motionDurationMid}
- `
- },
- '&:hover, &:active, &:focus': {
- '&::before': {
- insetInlineStart: calc(handleSizeHover).sub(handleSize).div(2).add(handleLineWidthHover).mul(-1).equal(),
- insetBlockStart: calc(handleSizeHover).sub(handleSize).div(2).add(handleLineWidthHover).mul(-1).equal(),
- width: calc(handleSizeHover).add(calc(handleLineWidthHover).mul(2)).equal(),
- height: calc(handleSizeHover).add(calc(handleLineWidthHover).mul(2)).equal()
- },
- '&::after': {
- boxShadow: `0 0 0 ${(0, _cssinjs.unit)(handleLineWidthHover)} ${handleActiveColor}`,
- outline: `6px solid ${handleActiveOutlineColor}`,
- width: handleSizeHover,
- height: handleSizeHover,
- insetInlineStart: token.calc(handleSize).sub(handleSizeHover).div(2).equal(),
- insetBlockStart: token.calc(handleSize).sub(handleSizeHover).div(2).equal()
- }
- }
- },
- [`&-lock ${componentCls}-handle`]: {
- '&::before, &::after': {
- transition: 'none'
- }
- },
- [`${componentCls}-mark`]: {
- position: 'absolute',
- fontSize: token.fontSize
- },
- [`${componentCls}-mark-text`]: {
- position: 'absolute',
- display: 'inline-block',
- color: token.colorTextDescription,
- textAlign: 'center',
- wordBreak: 'keep-all',
- cursor: 'pointer',
- userSelect: 'none',
- '&-active': {
- color: token.colorText
- }
- },
- [`${componentCls}-step`]: {
- position: 'absolute',
- background: 'transparent',
- pointerEvents: 'none'
- },
- [`${componentCls}-dot`]: {
- position: 'absolute',
- width: dotSize,
- height: dotSize,
- backgroundColor: token.colorBgElevated,
- border: `${(0, _cssinjs.unit)(handleLineWidth)} solid ${token.dotBorderColor}`,
- borderRadius: '50%',
- cursor: 'pointer',
- transition: `border-color ${token.motionDurationSlow}`,
- pointerEvents: 'auto',
- '&-active': {
- borderColor: token.dotActiveBorderColor
- }
- },
- [`&${componentCls}-disabled`]: {
- cursor: 'not-allowed',
- [`${componentCls}-rail`]: {
- backgroundColor: `${token.railBg} !important`
- },
- [`${componentCls}-track`]: {
- backgroundColor: `${token.trackBgDisabled} !important`
- },
- [`
- ${componentCls}-dot
- `]: {
- backgroundColor: token.colorBgElevated,
- borderColor: token.trackBgDisabled,
- boxShadow: 'none',
- cursor: 'not-allowed'
- },
- [`${componentCls}-handle::after`]: {
- backgroundColor: token.colorBgElevated,
- cursor: 'not-allowed',
- width: handleSize,
- height: handleSize,
- boxShadow: `0 0 0 ${(0, _cssinjs.unit)(handleLineWidth)} ${handleColorDisabled}`,
- insetInlineStart: 0,
- insetBlockStart: 0
- },
- [`
- ${componentCls}-mark-text,
- ${componentCls}-dot
- `]: {
- cursor: `not-allowed !important`
- }
- },
- [`&-tooltip ${antCls}-tooltip-inner`]: {
- minWidth: 'unset'
- }
- })
- };
- };
- // ============================ Horizontal ============================
- const genDirectionStyle = (token, horizontal) => {
- const {
- componentCls,
- railSize,
- handleSize,
- dotSize,
- marginFull,
- calc
- } = token;
- const railPadding = horizontal ? 'paddingBlock' : 'paddingInline';
- const full = horizontal ? 'width' : 'height';
- const part = horizontal ? 'height' : 'width';
- const handlePos = horizontal ? 'insetBlockStart' : 'insetInlineStart';
- const markInset = horizontal ? 'top' : 'insetInlineStart';
- const handlePosSize = calc(railSize).mul(3).sub(handleSize).div(2).equal();
- const draggableBorderSize = calc(handleSize).sub(railSize).div(2).equal();
- const draggableBorder = horizontal ? {
- borderWidth: `${(0, _cssinjs.unit)(draggableBorderSize)} 0`,
- transform: `translateY(${(0, _cssinjs.unit)(calc(draggableBorderSize).mul(-1).equal())})`
- } : {
- borderWidth: `0 ${(0, _cssinjs.unit)(draggableBorderSize)}`,
- transform: `translateX(${(0, _cssinjs.unit)(token.calc(draggableBorderSize).mul(-1).equal())})`
- };
- return {
- [railPadding]: railSize,
- [part]: calc(railSize).mul(3).equal(),
- [`${componentCls}-rail`]: {
- [full]: '100%',
- [part]: railSize
- },
- [`${componentCls}-track,${componentCls}-tracks`]: {
- [part]: railSize
- },
- [`${componentCls}-track-draggable`]: Object.assign({}, draggableBorder),
- [`${componentCls}-handle`]: {
- [handlePos]: handlePosSize
- },
- [`${componentCls}-mark`]: {
- // Reset all
- insetInlineStart: 0,
- top: 0,
- // https://github.com/ant-design/ant-design/issues/43731
- [markInset]: calc(railSize).mul(3).add(horizontal ? 0 : marginFull).equal(),
- [full]: '100%'
- },
- [`${componentCls}-step`]: {
- // Reset all
- insetInlineStart: 0,
- top: 0,
- [markInset]: railSize,
- [full]: '100%',
- [part]: railSize
- },
- [`${componentCls}-dot`]: {
- position: 'absolute',
- [handlePos]: calc(railSize).sub(dotSize).div(2).equal()
- }
- };
- };
- // ============================ Horizontal ============================
- const genHorizontalStyle = token => {
- const {
- componentCls,
- marginPartWithMark
- } = token;
- return {
- [`${componentCls}-horizontal`]: Object.assign(Object.assign({}, genDirectionStyle(token, true)), {
- [`&${componentCls}-with-marks`]: {
- marginBottom: marginPartWithMark
- }
- })
- };
- };
- // ============================= Vertical =============================
- const genVerticalStyle = token => {
- const {
- componentCls
- } = token;
- return {
- [`${componentCls}-vertical`]: Object.assign(Object.assign({}, genDirectionStyle(token, false)), {
- height: '100%'
- })
- };
- };
- // ============================== Export ==============================
- const prepareComponentToken = token => {
- // Handle line width is always width-er 1px
- const increaseHandleWidth = 1;
- const controlSize = token.controlHeightLG / 4;
- const controlSizeHover = token.controlHeightSM / 2;
- const handleLineWidth = token.lineWidth + increaseHandleWidth;
- const handleLineWidthHover = token.lineWidth + increaseHandleWidth * 1.5;
- const handleActiveColor = token.colorPrimary;
- const handleActiveOutlineColor = new _fastColor.FastColor(handleActiveColor).setA(0.2).toRgbString();
- return {
- controlSize,
- railSize: 4,
- handleSize: controlSize,
- handleSizeHover: controlSizeHover,
- dotSize: 8,
- handleLineWidth,
- handleLineWidthHover,
- railBg: token.colorFillTertiary,
- railHoverBg: token.colorFillSecondary,
- trackBg: token.colorPrimaryBorder,
- trackHoverBg: token.colorPrimaryBorderHover,
- handleColor: token.colorPrimaryBorder,
- handleActiveColor,
- handleActiveOutlineColor,
- handleColorDisabled: new _fastColor.FastColor(token.colorTextDisabled).onBackground(token.colorBgContainer).toHexString(),
- dotBorderColor: token.colorBorderSecondary,
- dotActiveBorderColor: token.colorPrimaryBorder,
- trackBgDisabled: token.colorBgContainerDisabled
- };
- };
- exports.prepareComponentToken = prepareComponentToken;
- var _default = exports.default = (0, _internal.genStyleHooks)('Slider', token => {
- const sliderToken = (0, _internal.mergeToken)(token, {
- marginPart: token.calc(token.controlHeight).sub(token.controlSize).div(2).equal(),
- marginFull: token.calc(token.controlSize).div(2).equal(),
- marginPartWithMark: token.calc(token.controlHeightLG).sub(token.controlSize).equal()
- });
- return [genBaseStyle(sliderToken), genHorizontalStyle(sliderToken), genVerticalStyle(sliderToken)];
- }, prepareComponentToken);
|