408 lines
13 KiB
JavaScript
Raw Normal View History

2024-08-20 23:25:37 +04:00
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.genRadiusStyle = exports.default = void 0;
var _cssinjs = require("@ant-design/cssinjs");
var _style = require("../../input/style");
var _variants = require("../../input/style/variants");
var _style2 = require("../../style");
var _compactItem = require("../../style/compact-item");
var _internal = require("../../theme/internal");
var _token = require("./token");
const genRadiusStyle = (_ref, size) => {
let {
componentCls,
borderRadiusSM,
borderRadiusLG
} = _ref;
const borderRadius = size === 'lg' ? borderRadiusLG : borderRadiusSM;
return {
[`&-${size}`]: {
[`${componentCls}-handler-wrap`]: {
borderStartEndRadius: borderRadius,
borderEndEndRadius: borderRadius
},
[`${componentCls}-handler-up`]: {
borderStartEndRadius: borderRadius
},
[`${componentCls}-handler-down`]: {
borderEndEndRadius: borderRadius
}
}
};
};
exports.genRadiusStyle = genRadiusStyle;
const genInputNumberStyles = token => {
const {
componentCls,
lineWidth,
lineType,
borderRadius,
inputFontSizeSM,
inputFontSizeLG,
controlHeightLG,
controlHeightSM,
colorError,
paddingInlineSM,
paddingBlockSM,
paddingBlockLG,
paddingInlineLG,
colorTextDescription,
motionDurationMid,
handleHoverColor,
handleOpacity,
paddingInline,
paddingBlock,
handleBg,
handleActiveBg,
colorTextDisabled,
borderRadiusSM,
borderRadiusLG,
controlWidth,
handleBorderColor,
filledHandleBg,
lineHeightLG,
calc
} = token;
return [{
[componentCls]: Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, (0, _style2.resetComponent)(token)), (0, _style.genBasicInputStyle)(token)), {
display: 'inline-block',
width: controlWidth,
margin: 0,
padding: 0,
borderRadius
}), (0, _variants.genOutlinedStyle)(token, {
[`${componentCls}-handler-wrap`]: {
background: handleBg,
[`${componentCls}-handler-down`]: {
borderBlockStart: `${(0, _cssinjs.unit)(lineWidth)} ${lineType} ${handleBorderColor}`
}
}
})), (0, _variants.genFilledStyle)(token, {
[`${componentCls}-handler-wrap`]: {
background: filledHandleBg,
[`${componentCls}-handler-down`]: {
borderBlockStart: `${(0, _cssinjs.unit)(lineWidth)} ${lineType} ${handleBorderColor}`
}
},
'&:focus-within': {
[`${componentCls}-handler-wrap`]: {
background: handleBg
}
}
})), (0, _variants.genBorderlessStyle)(token)), {
'&-rtl': {
direction: 'rtl',
[`${componentCls}-input`]: {
direction: 'rtl'
}
},
'&-lg': {
padding: 0,
fontSize: inputFontSizeLG,
lineHeight: lineHeightLG,
borderRadius: borderRadiusLG,
[`input${componentCls}-input`]: {
height: calc(controlHeightLG).sub(calc(lineWidth).mul(2)).equal(),
padding: `${(0, _cssinjs.unit)(paddingBlockLG)} ${(0, _cssinjs.unit)(paddingInlineLG)}`
}
},
'&-sm': {
padding: 0,
fontSize: inputFontSizeSM,
borderRadius: borderRadiusSM,
[`input${componentCls}-input`]: {
height: calc(controlHeightSM).sub(calc(lineWidth).mul(2)).equal(),
padding: `${(0, _cssinjs.unit)(paddingBlockSM)} ${(0, _cssinjs.unit)(paddingInlineSM)}`
}
},
// ===================== Out Of Range =====================
'&-out-of-range': {
[`${componentCls}-input-wrap`]: {
input: {
color: colorError
}
}
},
// Style for input-group: input with label, with button or dropdown...
'&-group': Object.assign(Object.assign(Object.assign({}, (0, _style2.resetComponent)(token)), (0, _style.genInputGroupStyle)(token)), {
'&-wrapper': Object.assign(Object.assign(Object.assign({
display: 'inline-block',
textAlign: 'start',
verticalAlign: 'top',
[`${componentCls}-affix-wrapper`]: {
width: '100%'
},
// Size
'&-lg': {
[`${componentCls}-group-addon`]: {
borderRadius: borderRadiusLG,
fontSize: token.fontSizeLG
}
},
'&-sm': {
[`${componentCls}-group-addon`]: {
borderRadius: borderRadiusSM
}
}
}, (0, _variants.genOutlinedGroupStyle)(token)), (0, _variants.genFilledGroupStyle)(token)), {
// Fix the issue of using icons in Space Compact mode
// https://github.com/ant-design/ant-design/issues/45764
[`&:not(${componentCls}-compact-first-item):not(${componentCls}-compact-last-item)${componentCls}-compact-item`]: {
[`${componentCls}, ${componentCls}-group-addon`]: {
borderRadius: 0
}
},
[`&:not(${componentCls}-compact-last-item)${componentCls}-compact-first-item`]: {
[`${componentCls}, ${componentCls}-group-addon`]: {
borderStartEndRadius: 0,
borderEndEndRadius: 0
}
},
[`&:not(${componentCls}-compact-first-item)${componentCls}-compact-last-item`]: {
[`${componentCls}, ${componentCls}-group-addon`]: {
borderStartStartRadius: 0,
borderEndStartRadius: 0
}
}
})
}),
[`&-disabled ${componentCls}-input`]: {
cursor: 'not-allowed'
},
[componentCls]: {
'&-input': Object.assign(Object.assign(Object.assign(Object.assign({}, (0, _style2.resetComponent)(token)), {
width: '100%',
padding: `${(0, _cssinjs.unit)(paddingBlock)} ${(0, _cssinjs.unit)(paddingInline)}`,
textAlign: 'start',
backgroundColor: 'transparent',
border: 0,
borderRadius,
outline: 0,
transition: `all ${motionDurationMid} linear`,
appearance: 'textfield',
fontSize: 'inherit'
}), (0, _style.genPlaceholderStyle)(token.colorTextPlaceholder)), {
'&[type="number"]::-webkit-inner-spin-button, &[type="number"]::-webkit-outer-spin-button': {
margin: 0,
webkitAppearance: 'none',
appearance: 'none'
}
})
},
[`&:hover ${componentCls}-handler-wrap, &-focused ${componentCls}-handler-wrap`]: {
width: token.handleWidth,
opacity: 1
}
})
},
// Handler
{
[componentCls]: Object.assign(Object.assign(Object.assign({
[`${componentCls}-handler-wrap`]: {
position: 'absolute',
insetBlockStart: 0,
insetInlineEnd: 0,
width: 0,
opacity: handleOpacity,
height: '100%',
borderStartStartRadius: 0,
borderStartEndRadius: borderRadius,
borderEndEndRadius: borderRadius,
borderEndStartRadius: 0,
display: 'flex',
flexDirection: 'column',
alignItems: 'stretch',
transition: `all ${motionDurationMid}`,
overflow: 'hidden',
// Fix input number inside Menu makes icon too large
// We arise the selector priority by nest selector here
// https://github.com/ant-design/ant-design/issues/14367
[`${componentCls}-handler`]: {
display: 'flex',
alignItems: 'center',
justifyContent: 'center',
flex: 'auto',
height: '40%',
[`
${componentCls}-handler-up-inner,
${componentCls}-handler-down-inner
`]: {
marginInlineEnd: 0,
fontSize: token.handleFontSize
}
}
},
[`${componentCls}-handler`]: {
height: '50%',
overflow: 'hidden',
color: colorTextDescription,
fontWeight: 'bold',
lineHeight: 0,
textAlign: 'center',
cursor: 'pointer',
borderInlineStart: `${(0, _cssinjs.unit)(lineWidth)} ${lineType} ${handleBorderColor}`,
transition: `all ${motionDurationMid} linear`,
'&:active': {
background: handleActiveBg
},
// Hover
'&:hover': {
height: `60%`,
[`
${componentCls}-handler-up-inner,
${componentCls}-handler-down-inner
`]: {
color: handleHoverColor
}
},
'&-up-inner, &-down-inner': Object.assign(Object.assign({}, (0, _style2.resetIcon)()), {
color: colorTextDescription,
transition: `all ${motionDurationMid} linear`,
userSelect: 'none'
})
},
[`${componentCls}-handler-up`]: {
borderStartEndRadius: borderRadius
},
[`${componentCls}-handler-down`]: {
borderEndEndRadius: borderRadius
}
}, genRadiusStyle(token, 'lg')), genRadiusStyle(token, 'sm')), {
// Disabled
'&-disabled, &-readonly': {
[`${componentCls}-handler-wrap`]: {
display: 'none'
},
[`${componentCls}-input`]: {
color: 'inherit'
}
},
[`
${componentCls}-handler-up-disabled,
${componentCls}-handler-down-disabled
`]: {
cursor: 'not-allowed'
},
[`
${componentCls}-handler-up-disabled:hover &-handler-up-inner,
${componentCls}-handler-down-disabled:hover &-handler-down-inner
`]: {
color: colorTextDisabled
}
})
}];
};
const genAffixWrapperStyles = token => {
const {
componentCls,
paddingBlock,
paddingInline,
inputAffixPadding,
controlWidth,
borderRadiusLG,
borderRadiusSM,
paddingInlineLG,
paddingInlineSM,
paddingBlockLG,
paddingBlockSM,
motionDurationMid
} = token;
return {
[`${componentCls}-affix-wrapper`]: Object.assign(Object.assign({
[`input${componentCls}-input`]: {
padding: `${(0, _cssinjs.unit)(paddingBlock)} 0`
}
}, (0, _style.genBasicInputStyle)(token)), {
// or number handler will cover form status
position: 'relative',
display: 'inline-flex',
alignItems: 'center',
width: controlWidth,
padding: 0,
paddingInlineStart: paddingInline,
'&-lg': {
borderRadius: borderRadiusLG,
paddingInlineStart: paddingInlineLG,
[`input${componentCls}-input`]: {
padding: `${(0, _cssinjs.unit)(paddingBlockLG)} 0`
}
},
'&-sm': {
borderRadius: borderRadiusSM,
paddingInlineStart: paddingInlineSM,
[`input${componentCls}-input`]: {
padding: `${(0, _cssinjs.unit)(paddingBlockSM)} 0`
}
},
[`&:not(${componentCls}-disabled):hover`]: {
zIndex: 1
},
'&-focused, &:focus': {
zIndex: 1
},
[`&-disabled > ${componentCls}-disabled`]: {
background: 'transparent'
},
[`> div${componentCls}`]: {
width: '100%',
border: 'none',
outline: 'none',
[`&${componentCls}-focused`]: {
boxShadow: 'none !important'
}
},
'&::before': {
display: 'inline-block',
width: 0,
visibility: 'hidden',
content: '"\\a0"'
},
[`${componentCls}-handler-wrap`]: {
zIndex: 2
},
[componentCls]: {
position: 'static',
color: 'inherit',
'&-prefix, &-suffix': {
display: 'flex',
flex: 'none',
alignItems: 'center',
pointerEvents: 'none'
},
'&-prefix': {
marginInlineEnd: inputAffixPadding
},
'&-suffix': {
insetBlockStart: 0,
insetInlineEnd: 0,
height: '100%',
marginInlineEnd: paddingInline,
marginInlineStart: inputAffixPadding,
transition: `margin ${motionDurationMid}`
}
},
[`&:hover ${componentCls}-handler-wrap, &-focused ${componentCls}-handler-wrap`]: {
width: token.handleWidth,
opacity: 1
},
[`&:hover ${componentCls}-suffix`]: {
marginInlineEnd: token.calc(token.handleWidth).add(paddingInline).equal()
}
})
};
};
var _default = exports.default = (0, _internal.genStyleHooks)('InputNumber', token => {
const inputNumberToken = (0, _internal.mergeToken)(token, (0, _style.initInputToken)(token));
return [genInputNumberStyles(inputNumberToken), genAffixWrapperStyles(inputNumberToken),
// =====================================================
// == Space Compact ==
// =====================================================
(0, _compactItem.genCompactItemStyle)(inputNumberToken)];
}, _token.prepareComponentToken, {
unitless: {
handleOpacity: true
}
});