UNPKG

@aplus-frontend/antdv

Version:

Vue basic component library maintained based on ant-design-vue

338 lines (337 loc) 10.9 kB
"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 _style = require("../../input/style"); var _internal = require("../../theme/internal"); var _style2 = require("../../style"); var _compactItem = require("../../style/compact-item"); const genInputNumberStyles = token => { const { componentCls, lineWidth, lineType, colorBorder, borderRadius, fontSizeLG, controlHeightLG, controlHeightSM, colorError, inputPaddingHorizontalSM, colorTextDescription, motionDurationMid, colorPrimary, controlHeight, inputPaddingHorizontal, colorBgContainer, colorTextDisabled, borderRadiusSM, borderRadiusLG, controlWidth, handleVisible } = token; return [{ [componentCls]: (0, _extends2.default)((0, _extends2.default)((0, _extends2.default)((0, _extends2.default)({}, (0, _style2.resetComponent)(token)), (0, _style.genBasicInputStyle)(token)), (0, _style.genStatusStyle)(token, componentCls)), { display: 'inline-block', width: controlWidth, margin: 0, padding: 0, border: `${lineWidth}px ${lineType} ${colorBorder}`, borderRadius, '&-rtl': { direction: 'rtl', [`${componentCls}-input`]: { direction: 'rtl' } }, '&-lg': { padding: 0, fontSize: fontSizeLG, borderRadius: borderRadiusLG, [`input${componentCls}-input`]: { height: controlHeightLG - 2 * lineWidth } }, '&-sm': { padding: 0, borderRadius: borderRadiusSM, [`input${componentCls}-input`]: { height: controlHeightSM - 2 * lineWidth, padding: `0 ${inputPaddingHorizontalSM}px` } }, '&:hover': (0, _extends2.default)({}, (0, _style.genHoverStyle)(token)), '&-focused': (0, _extends2.default)({}, (0, _style.genActiveStyle)(token)), '&-disabled': (0, _extends2.default)((0, _extends2.default)({}, (0, _style.genDisabledStyle)(token)), { [`${componentCls}-input`]: { cursor: 'not-allowed' } }), // ===================== Out Of Range ===================== '&-out-of-range': { input: { color: colorError } }, // Style for input-group: input with label, with button or dropdown... '&-group': (0, _extends2.default)((0, _extends2.default)((0, _extends2.default)({}, (0, _style2.resetComponent)(token)), (0, _style.genInputGroupStyle)(token)), { '&-wrapper': { display: 'inline-block', textAlign: 'start', verticalAlign: 'top', [`${componentCls}-affix-wrapper`]: { width: '100%' }, // Size '&-lg': { [`${componentCls}-group-addon`]: { borderRadius: borderRadiusLG } }, '&-sm': { [`${componentCls}-group-addon`]: { borderRadius: borderRadiusSM } } } }), [componentCls]: { '&-input': (0, _extends2.default)((0, _extends2.default)({ width: '100%', height: controlHeight - 2 * lineWidth, padding: `0 ${inputPaddingHorizontal}px`, textAlign: 'start', backgroundColor: 'transparent', border: 0, borderRadius, outline: 0, transition: `all ${motionDurationMid} linear`, appearance: 'textfield', color: token.colorText, fontSize: 'inherit', verticalAlign: 'top' }, (0, _style.genPlaceholderStyle)(token.colorTextPlaceholder)), { '&[type="number"]::-webkit-inner-spin-button, &[type="number"]::-webkit-outer-spin-button': { margin: 0, /* stylelint-disable-next-line property-no-vendor-prefix */ webkitAppearance: 'none', appearance: 'none' } }) } }) }, // Handler { [componentCls]: { [`&:hover ${componentCls}-handler-wrap, &-focused ${componentCls}-handler-wrap`]: { width: token.handleWidth, opacity: 1 }, [`${componentCls}-handler-wrap`]: { position: 'absolute', insetBlockStart: 0, insetInlineEnd: 0, width: token.handleVisibleWidth, height: '100%', background: colorBgContainer, borderStartStartRadius: 0, borderStartEndRadius: borderRadius, borderEndEndRadius: borderRadius, borderEndStartRadius: 0, opacity: handleVisible === true ? 1 : 0, display: 'flex', flexDirection: 'column', alignItems: 'stretch', transition: `all ${motionDurationMid}`, // 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: `${lineWidth}px ${lineType} ${colorBorder}`, transition: `all ${motionDurationMid} linear`, '&:active': { background: token.colorFillAlter }, // Hover '&:hover': { height: `60%`, [` ${componentCls}-handler-up-inner, ${componentCls}-handler-down-inner `]: { color: colorPrimary } }, '&-up-inner, &-down-inner': (0, _extends2.default)((0, _extends2.default)({}, (0, _style2.resetIcon)()), { color: colorTextDescription, transition: `all ${motionDurationMid} linear`, userSelect: 'none' }) }, [`${componentCls}-handler-up`]: { borderStartEndRadius: borderRadius }, [`${componentCls}-handler-down`]: { borderBlockStart: `${lineWidth}px ${lineType} ${colorBorder}`, borderEndEndRadius: borderRadius }, // 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 } } }, // Border-less { [`${componentCls}-borderless`]: { borderColor: 'transparent', boxShadow: 'none', [`${componentCls}-handler-down`]: { borderBlockStartWidth: 0 } } }]; }; const genAffixWrapperStyles = token => { const { componentCls, inputPaddingHorizontal, inputAffixPadding, controlWidth, borderRadiusLG, borderRadiusSM, handleWidth, motionDurationMid } = token; return { [`${componentCls}-affix-wrapper`]: (0, _extends2.default)((0, _extends2.default)((0, _extends2.default)({}, (0, _style.genBasicInputStyle)(token)), (0, _style.genStatusStyle)(token, `${componentCls}-affix-wrapper`)), { // or number handler will cover form status position: 'relative', display: 'inline-flex', width: controlWidth, padding: 0, paddingInlineStart: inputPaddingHorizontal, '&-lg': { borderRadius: borderRadiusLG }, '&-sm': { borderRadius: borderRadiusSM }, [`&:not(${componentCls}-affix-wrapper-disabled):hover`]: (0, _extends2.default)((0, _extends2.default)({}, (0, _style.genHoverStyle)(token)), { zIndex: 1 }), '&-focused, &:focus': { zIndex: 1 }, [`&-disabled > ${componentCls}-disabled`]: { background: 'transparent' }, [`> div${componentCls}`]: { width: '100%', border: 'none', outline: 'none', [`&${componentCls}-focused`]: { boxShadow: 'none !important' } }, [`input${componentCls}-input`]: { padding: 0 }, '&::before': { width: 0, visibility: 'hidden', content: '"\\a0"' }, [`${componentCls}-handler-wrap`]: { zIndex: 2 }, [componentCls]: { '&-prefix, &-suffix': { display: 'flex', flex: 'none', alignItems: 'center', pointerEvents: 'none' }, '&-prefix': { marginInlineEnd: inputAffixPadding }, '&-suffix': { position: 'absolute', insetBlockStart: 0, insetInlineEnd: 0, zIndex: 1, height: '100%', marginInlineEnd: inputPaddingHorizontal, marginInlineStart: inputAffixPadding, transition: `margin ${motionDurationMid}` } }, [`&:not(${componentCls}-affix-wrapper-without-controls):hover ${componentCls}-suffix`]: { marginInlineEnd: `${handleWidth + inputPaddingHorizontal}px` } }) }; }; // ============================== Export ============================== var _default = exports.default = (0, _internal.genComponentStyleHook)('InputNumber', token => { const inputNumberToken = (0, _style.initInputToken)(token); return [genInputNumberStyles(inputNumberToken), genAffixWrapperStyles(inputNumberToken), // ===================================================== // == Space Compact == // ===================================================== (0, _compactItem.genCompactItemStyle)(inputNumberToken)]; }, token => { var _a, _b; const handleVisible = (_b = (_a = token.InputNumber) === null || _a === void 0 ? void 0 : _a.handleVisible) !== null && _b !== void 0 ? _b : 'auto'; const handleWidth = token.controlHeightSM - token.lineWidth * 2; return { controlWidth: 90, handleWidth, handleFontSize: token.fontSize / 2, handleVisible: 'auto', handleVisibleWidth: handleVisible === true ? handleWidth : 0 }; });