index.js 7.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167
  1. "use strict";
  2. "use client";
  3. var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
  4. var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
  5. Object.defineProperty(exports, "__esModule", {
  6. value: true
  7. });
  8. exports.default = void 0;
  9. var React = _interopRequireWildcard(require("react"));
  10. var _DownOutlined = _interopRequireDefault(require("@ant-design/icons/DownOutlined"));
  11. var _UpOutlined = _interopRequireDefault(require("@ant-design/icons/UpOutlined"));
  12. var _classnames = _interopRequireDefault(require("classnames"));
  13. var _rcInputNumber = _interopRequireDefault(require("rc-input-number"));
  14. var _ContextIsolator = _interopRequireDefault(require("../_util/ContextIsolator"));
  15. var _statusUtils = require("../_util/statusUtils");
  16. var _warning = require("../_util/warning");
  17. var _configProvider = _interopRequireWildcard(require("../config-provider"));
  18. var _DisabledContext = _interopRequireDefault(require("../config-provider/DisabledContext"));
  19. var _useCSSVarCls = _interopRequireDefault(require("../config-provider/hooks/useCSSVarCls"));
  20. var _useSize = _interopRequireDefault(require("../config-provider/hooks/useSize"));
  21. var _context = require("../form/context");
  22. var _useVariants = _interopRequireDefault(require("../form/hooks/useVariants"));
  23. var _Compact = require("../space/Compact");
  24. var _style = _interopRequireDefault(require("./style"));
  25. var __rest = void 0 && (void 0).__rest || function (s, e) {
  26. var t = {};
  27. for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
  28. if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
  29. if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
  30. }
  31. return t;
  32. };
  33. const InputNumber = /*#__PURE__*/React.forwardRef((props, ref) => {
  34. if (process.env.NODE_ENV !== 'production') {
  35. const typeWarning = (0, _warning.devUseWarning)('InputNumber');
  36. typeWarning.deprecated(!('bordered' in props), 'bordered', 'variant');
  37. typeWarning(!(props.type === 'number' && props.changeOnWheel), 'usage', 'When `type=number` is used together with `changeOnWheel`, changeOnWheel may not work properly. Please delete `type=number` if it is not necessary.');
  38. }
  39. const {
  40. getPrefixCls,
  41. direction
  42. } = React.useContext(_configProvider.ConfigContext);
  43. const inputRef = React.useRef(null);
  44. React.useImperativeHandle(ref, () => inputRef.current);
  45. const {
  46. className,
  47. rootClassName,
  48. size: customizeSize,
  49. disabled: customDisabled,
  50. prefixCls: customizePrefixCls,
  51. addonBefore,
  52. addonAfter,
  53. prefix,
  54. suffix,
  55. bordered,
  56. readOnly,
  57. status: customStatus,
  58. controls,
  59. variant: customVariant
  60. } = props,
  61. others = __rest(props, ["className", "rootClassName", "size", "disabled", "prefixCls", "addonBefore", "addonAfter", "prefix", "suffix", "bordered", "readOnly", "status", "controls", "variant"]);
  62. const prefixCls = getPrefixCls('input-number', customizePrefixCls);
  63. // Style
  64. const rootCls = (0, _useCSSVarCls.default)(prefixCls);
  65. const [wrapCSSVar, hashId, cssVarCls] = (0, _style.default)(prefixCls, rootCls);
  66. const {
  67. compactSize,
  68. compactItemClassnames
  69. } = (0, _Compact.useCompactItemContext)(prefixCls, direction);
  70. let upIcon = /*#__PURE__*/React.createElement(_UpOutlined.default, {
  71. className: `${prefixCls}-handler-up-inner`
  72. });
  73. let downIcon = /*#__PURE__*/React.createElement(_DownOutlined.default, {
  74. className: `${prefixCls}-handler-down-inner`
  75. });
  76. const controlsTemp = typeof controls === 'boolean' ? controls : undefined;
  77. if (typeof controls === 'object') {
  78. upIcon = typeof controls.upIcon === 'undefined' ? upIcon : (/*#__PURE__*/React.createElement("span", {
  79. className: `${prefixCls}-handler-up-inner`
  80. }, controls.upIcon));
  81. downIcon = typeof controls.downIcon === 'undefined' ? downIcon : (/*#__PURE__*/React.createElement("span", {
  82. className: `${prefixCls}-handler-down-inner`
  83. }, controls.downIcon));
  84. }
  85. const {
  86. hasFeedback,
  87. status: contextStatus,
  88. isFormItemInput,
  89. feedbackIcon
  90. } = React.useContext(_context.FormItemInputContext);
  91. const mergedStatus = (0, _statusUtils.getMergedStatus)(contextStatus, customStatus);
  92. const mergedSize = (0, _useSize.default)(ctx => {
  93. var _a;
  94. return (_a = customizeSize !== null && customizeSize !== void 0 ? customizeSize : compactSize) !== null && _a !== void 0 ? _a : ctx;
  95. });
  96. // ===================== Disabled =====================
  97. const disabled = React.useContext(_DisabledContext.default);
  98. const mergedDisabled = customDisabled !== null && customDisabled !== void 0 ? customDisabled : disabled;
  99. const [variant, enableVariantCls] = (0, _useVariants.default)('inputNumber', customVariant, bordered);
  100. const suffixNode = hasFeedback && /*#__PURE__*/React.createElement(React.Fragment, null, feedbackIcon);
  101. const inputNumberClass = (0, _classnames.default)({
  102. [`${prefixCls}-lg`]: mergedSize === 'large',
  103. [`${prefixCls}-sm`]: mergedSize === 'small',
  104. [`${prefixCls}-rtl`]: direction === 'rtl',
  105. [`${prefixCls}-in-form-item`]: isFormItemInput
  106. }, hashId);
  107. const wrapperClassName = `${prefixCls}-group`;
  108. const element = /*#__PURE__*/React.createElement(_rcInputNumber.default, Object.assign({
  109. ref: inputRef,
  110. disabled: mergedDisabled,
  111. className: (0, _classnames.default)(cssVarCls, rootCls, className, rootClassName, compactItemClassnames),
  112. upHandler: upIcon,
  113. downHandler: downIcon,
  114. prefixCls: prefixCls,
  115. readOnly: readOnly,
  116. controls: controlsTemp,
  117. prefix: prefix,
  118. suffix: suffixNode || suffix,
  119. addonBefore: addonBefore && (/*#__PURE__*/React.createElement(_ContextIsolator.default, {
  120. form: true,
  121. space: true
  122. }, addonBefore)),
  123. addonAfter: addonAfter && (/*#__PURE__*/React.createElement(_ContextIsolator.default, {
  124. form: true,
  125. space: true
  126. }, addonAfter)),
  127. classNames: {
  128. input: inputNumberClass,
  129. variant: (0, _classnames.default)({
  130. [`${prefixCls}-${variant}`]: enableVariantCls
  131. }, (0, _statusUtils.getStatusClassNames)(prefixCls, mergedStatus, hasFeedback)),
  132. affixWrapper: (0, _classnames.default)({
  133. [`${prefixCls}-affix-wrapper-sm`]: mergedSize === 'small',
  134. [`${prefixCls}-affix-wrapper-lg`]: mergedSize === 'large',
  135. [`${prefixCls}-affix-wrapper-rtl`]: direction === 'rtl',
  136. [`${prefixCls}-affix-wrapper-without-controls`]: controls === false || mergedDisabled || readOnly
  137. }, hashId),
  138. wrapper: (0, _classnames.default)({
  139. [`${wrapperClassName}-rtl`]: direction === 'rtl'
  140. }, hashId),
  141. groupWrapper: (0, _classnames.default)({
  142. [`${prefixCls}-group-wrapper-sm`]: mergedSize === 'small',
  143. [`${prefixCls}-group-wrapper-lg`]: mergedSize === 'large',
  144. [`${prefixCls}-group-wrapper-rtl`]: direction === 'rtl',
  145. [`${prefixCls}-group-wrapper-${variant}`]: enableVariantCls
  146. }, (0, _statusUtils.getStatusClassNames)(`${prefixCls}-group-wrapper`, mergedStatus, hasFeedback), hashId)
  147. }
  148. }, others));
  149. return wrapCSSVar(element);
  150. });
  151. const TypedInputNumber = InputNumber;
  152. /** @private Internal Component. Do not use in your production. */
  153. const PureInputNumber = props => (/*#__PURE__*/React.createElement(_configProvider.default, {
  154. theme: {
  155. components: {
  156. InputNumber: {
  157. handleVisible: true
  158. }
  159. }
  160. }
  161. }, /*#__PURE__*/React.createElement(InputNumber, Object.assign({}, props))));
  162. if (process.env.NODE_ENV !== 'production') {
  163. TypedInputNumber.displayName = 'InputNumber';
  164. }
  165. TypedInputNumber._InternalPanelDoNotUseOrYouWillBeFired = PureInputNumber;
  166. var _default = exports.default = TypedInputNumber;