rc-input-number
Advanced tools
Comparing version 7.4.2 to 8.0.0-alpha.0
@@ -0,4 +1,4 @@ | ||
import { ValueType } from '@rc-component/mini-decimal'; | ||
import * as React from 'react'; | ||
import { ValueType } from '@rc-component/mini-decimal'; | ||
export interface InputNumberProps<T extends ValueType = ValueType> extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'value' | 'defaultValue' | 'onInput' | 'onChange'> { | ||
export interface InputNumberProps<T extends ValueType = ValueType> extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'value' | 'defaultValue' | 'onInput' | 'onChange' | 'prefix' | 'suffix'> { | ||
/** value will show as string */ | ||
@@ -16,2 +16,17 @@ stringMode?: boolean; | ||
controls?: boolean; | ||
prefix?: React.ReactNode; | ||
suffix?: React.ReactNode; | ||
addonBefore?: React.ReactNode; | ||
addonAfter?: React.ReactNode; | ||
classes?: { | ||
affixWrapper?: string; | ||
group?: string; | ||
wrapper?: string; | ||
}; | ||
classNames?: { | ||
affixWrapper?: string; | ||
group?: string; | ||
wrapper?: string; | ||
input?: string; | ||
}; | ||
upHandler?: React.ReactNode; | ||
@@ -18,0 +33,0 @@ downHandler?: React.ReactNode; |
@@ -6,12 +6,14 @@ import _extends from "@babel/runtime/helpers/esm/extends"; | ||
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties"; | ||
var _excluded = ["prefixCls", "className", "style", "min", "max", "step", "defaultValue", "value", "disabled", "readOnly", "upHandler", "downHandler", "keyboard", "controls", "stringMode", "parser", "formatter", "precision", "decimalSeparator", "onChange", "onInput", "onPressEnter", "onStep"]; | ||
import * as React from 'react'; | ||
import classNames from 'classnames'; | ||
import KeyCode from "rc-util/es/KeyCode"; | ||
var _excluded = ["prefixCls", "className", "style", "min", "max", "step", "defaultValue", "value", "disabled", "readOnly", "upHandler", "downHandler", "keyboard", "controls", "classNames", "stringMode", "parser", "formatter", "precision", "decimalSeparator", "onChange", "onInput", "onPressEnter", "onStep"], | ||
_excluded2 = ["disabled", "style", "prefixCls", "value", "prefix", "addonBefore", "addonAfter", "classes", "className", "classNames"]; | ||
import getMiniDecimal, { getNumberPrecision, num2str, toFixed, validateNumber } from '@rc-component/mini-decimal'; | ||
import clsx from 'classnames'; | ||
import { BaseInput } from 'rc-input'; | ||
import { useLayoutUpdateEffect } from "rc-util/es/hooks/useLayoutEffect"; | ||
import { composeRef } from "rc-util/es/ref"; | ||
import getMiniDecimal, { toFixed, getNumberPrecision, num2str, validateNumber } from '@rc-component/mini-decimal'; | ||
import * as React from 'react'; | ||
import useCursor from "./hooks/useCursor"; | ||
import StepHandler from "./StepHandler"; | ||
import { getDecupleSteps } from "./utils/numberUtil"; | ||
import useCursor from "./hooks/useCursor"; | ||
import { triggerFocus } from "rc-input/es/utils/commonUtils"; | ||
import useFrame from "./hooks/useFrame"; | ||
@@ -40,4 +42,4 @@ | ||
}; | ||
var InputNumber = /*#__PURE__*/React.forwardRef(function (props, ref) { | ||
var _classNames; | ||
var InternalInputNumber = /*#__PURE__*/React.forwardRef(function (props, ref) { | ||
var _clsx; | ||
var _props$prefixCls = props.prefixCls, | ||
@@ -60,2 +62,3 @@ prefixCls = _props$prefixCls === void 0 ? 'rc-input-number' : _props$prefixCls, | ||
controls = _props$controls === void 0 ? true : _props$controls, | ||
classNames = props.classNames, | ||
stringMode = props.stringMode, | ||
@@ -159,3 +162,3 @@ parser = props.parser, | ||
* | ||
* User can not update input content directly. It update with follow rules by priority: | ||
* User can not update input content directly. It updates with follow rules by priority: | ||
* 1. controlled `value` changed | ||
@@ -292,3 +295,3 @@ * * [SPECIAL] Typing like `1.` should not immediately convert to `1` | ||
// Update inputValue incase input can not parse as number | ||
// Update inputValue in case input can not parse as number | ||
setInternalInputValue(inputStr); | ||
@@ -305,3 +308,3 @@ | ||
// Trigger onInput later to let user customize value if they want do handle something after onChange | ||
// Trigger onInput later to let user customize value if they want to handle something after onChange | ||
onInput === null || onInput === void 0 ? void 0 : onInput(inputStr); | ||
@@ -344,3 +347,3 @@ | ||
// Clear typing status since it may caused by up & down key. | ||
// Clear typing status since it may be caused by up & down key. | ||
// We should sync with input value. | ||
@@ -389,11 +392,7 @@ userTypingRef.current = false; | ||
var onKeyDown = function onKeyDown(event) { | ||
var which = event.which, | ||
var key = event.key, | ||
shiftKey = event.shiftKey; | ||
userTypingRef.current = true; | ||
if (shiftKey) { | ||
shiftKeyRef.current = true; | ||
} else { | ||
shiftKeyRef.current = false; | ||
} | ||
if (which === KeyCode.ENTER) { | ||
shiftKeyRef.current = shiftKey; | ||
if (key === 'Enter') { | ||
if (!compositionRef.current) { | ||
@@ -410,4 +409,4 @@ userTypingRef.current = false; | ||
// Do step | ||
if (!compositionRef.current && [KeyCode.UP, KeyCode.DOWN].includes(which)) { | ||
onInternalStep(KeyCode.UP === which); | ||
if (!compositionRef.current && ['Up', 'ArrowUp', 'Down', 'ArrowDown'].includes(key)) { | ||
onInternalStep(key === 'Up' || key === 'ArrowUp'); | ||
event.preventDefault(); | ||
@@ -459,3 +458,3 @@ } | ||
return /*#__PURE__*/React.createElement("div", { | ||
className: classNames(prefixCls, className, (_classNames = {}, _defineProperty(_classNames, "".concat(prefixCls, "-focused"), focus), _defineProperty(_classNames, "".concat(prefixCls, "-disabled"), disabled), _defineProperty(_classNames, "".concat(prefixCls, "-readonly"), readOnly), _defineProperty(_classNames, "".concat(prefixCls, "-not-a-number"), decimalValue.isNaN()), _defineProperty(_classNames, "".concat(prefixCls, "-out-of-range"), !decimalValue.isInvalidate() && !isInRange(decimalValue)), _classNames)), | ||
className: clsx(prefixCls, className, (_clsx = {}, _defineProperty(_clsx, "".concat(prefixCls, "-focused"), focus), _defineProperty(_clsx, "".concat(prefixCls, "-disabled"), disabled), _defineProperty(_clsx, "".concat(prefixCls, "-readonly"), readOnly), _defineProperty(_clsx, "".concat(prefixCls, "-not-a-number"), decimalValue.isNaN()), _defineProperty(_clsx, "".concat(prefixCls, "-out-of-range"), !decimalValue.isInvalidate() && !isInRange(decimalValue)), _clsx), classNames === null || classNames === void 0 ? void 0 : classNames.input), | ||
style: style, | ||
@@ -496,3 +495,47 @@ onFocus: function onFocus() { | ||
}); | ||
var InputNumber = /*#__PURE__*/React.forwardRef(function (props, ref) { | ||
var disabled = props.disabled, | ||
style = props.style, | ||
prefixCls = props.prefixCls, | ||
value = props.value, | ||
prefix = props.prefix, | ||
addonBefore = props.addonBefore, | ||
addonAfter = props.addonAfter, | ||
classes = props.classes, | ||
className = props.className, | ||
classNames = props.classNames, | ||
rest = _objectWithoutProperties(props, _excluded2); | ||
var inputFocusRef = React.useRef(null); | ||
var focus = function focus(option) { | ||
if (inputFocusRef.current) { | ||
triggerFocus(inputFocusRef.current, option); | ||
} | ||
}; | ||
return /*#__PURE__*/React.createElement(BaseInput, { | ||
inputElement: /*#__PURE__*/React.createElement(InternalInputNumber, _extends({ | ||
prefixCls: prefixCls, | ||
disabled: disabled, | ||
classNames: classNames, | ||
ref: composeRef(inputFocusRef, ref) | ||
}, rest)), | ||
className: className, | ||
triggerFocus: focus, | ||
prefixCls: prefixCls, | ||
value: value, | ||
disabled: disabled, | ||
style: style, | ||
prefix: prefix, | ||
addonAfter: addonAfter, | ||
addonBefore: addonBefore, | ||
classes: classes, | ||
classNames: classNames, | ||
components: { | ||
affixWrapper: 'div', | ||
groupWrapper: 'div', | ||
wrapper: 'div', | ||
groupAddon: 'div' | ||
} | ||
}); | ||
}); | ||
InputNumber.displayName = 'InputNumber'; | ||
export default InputNumber; |
@@ -10,2 +10,2 @@ import * as React from 'react'; | ||
} | ||
export default function StepHandler({ prefixCls, upNode, downNode, upDisabled, downDisabled, onStep, }: StepHandlerProps): JSX.Element; | ||
export default function StepHandler({ prefixCls, upNode, downNode, upDisabled, downDisabled, onStep, }: StepHandlerProps): React.JSX.Element; |
@@ -0,4 +1,4 @@ | ||
import { ValueType } from '@rc-component/mini-decimal'; | ||
import * as React from 'react'; | ||
import { ValueType } from '@rc-component/mini-decimal'; | ||
export interface InputNumberProps<T extends ValueType = ValueType> extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'value' | 'defaultValue' | 'onInput' | 'onChange'> { | ||
export interface InputNumberProps<T extends ValueType = ValueType> extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'value' | 'defaultValue' | 'onInput' | 'onChange' | 'prefix' | 'suffix'> { | ||
/** value will show as string */ | ||
@@ -16,2 +16,17 @@ stringMode?: boolean; | ||
controls?: boolean; | ||
prefix?: React.ReactNode; | ||
suffix?: React.ReactNode; | ||
addonBefore?: React.ReactNode; | ||
addonAfter?: React.ReactNode; | ||
classes?: { | ||
affixWrapper?: string; | ||
group?: string; | ||
wrapper?: string; | ||
}; | ||
classNames?: { | ||
affixWrapper?: string; | ||
group?: string; | ||
wrapper?: string; | ||
input?: string; | ||
}; | ||
upHandler?: React.ReactNode; | ||
@@ -18,0 +33,0 @@ downHandler?: React.ReactNode; |
@@ -14,13 +14,15 @@ "use strict"; | ||
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties")); | ||
var React = _interopRequireWildcard(require("react")); | ||
var _miniDecimal = _interopRequireWildcard(require("@rc-component/mini-decimal")); | ||
var _classnames = _interopRequireDefault(require("classnames")); | ||
var _KeyCode = _interopRequireDefault(require("rc-util/lib/KeyCode")); | ||
var _rcInput = require("rc-input"); | ||
var _useLayoutEffect = require("rc-util/lib/hooks/useLayoutEffect"); | ||
var _ref = require("rc-util/lib/ref"); | ||
var _miniDecimal = _interopRequireWildcard(require("@rc-component/mini-decimal")); | ||
var React = _interopRequireWildcard(require("react")); | ||
var _useCursor3 = _interopRequireDefault(require("./hooks/useCursor")); | ||
var _StepHandler = _interopRequireDefault(require("./StepHandler")); | ||
var _numberUtil = require("./utils/numberUtil"); | ||
var _useCursor3 = _interopRequireDefault(require("./hooks/useCursor")); | ||
var _commonUtils = require("rc-input/lib/utils/commonUtils"); | ||
var _useFrame = _interopRequireDefault(require("./hooks/useFrame")); | ||
var _excluded = ["prefixCls", "className", "style", "min", "max", "step", "defaultValue", "value", "disabled", "readOnly", "upHandler", "downHandler", "keyboard", "controls", "stringMode", "parser", "formatter", "precision", "decimalSeparator", "onChange", "onInput", "onPressEnter", "onStep"]; | ||
var _excluded = ["prefixCls", "className", "style", "min", "max", "step", "defaultValue", "value", "disabled", "readOnly", "upHandler", "downHandler", "keyboard", "controls", "classNames", "stringMode", "parser", "formatter", "precision", "decimalSeparator", "onChange", "onInput", "onPressEnter", "onStep"], | ||
_excluded2 = ["disabled", "style", "prefixCls", "value", "prefix", "addonBefore", "addonAfter", "classes", "className", "classNames"]; | ||
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } | ||
@@ -49,4 +51,4 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof3(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; } | ||
}; | ||
var InputNumber = /*#__PURE__*/React.forwardRef(function (props, ref) { | ||
var _classNames; | ||
var InternalInputNumber = /*#__PURE__*/React.forwardRef(function (props, ref) { | ||
var _clsx; | ||
var _props$prefixCls = props.prefixCls, | ||
@@ -69,2 +71,3 @@ prefixCls = _props$prefixCls === void 0 ? 'rc-input-number' : _props$prefixCls, | ||
controls = _props$controls === void 0 ? true : _props$controls, | ||
classNames = props.classNames, | ||
stringMode = props.stringMode, | ||
@@ -168,3 +171,3 @@ parser = props.parser, | ||
* | ||
* User can not update input content directly. It update with follow rules by priority: | ||
* User can not update input content directly. It updates with follow rules by priority: | ||
* 1. controlled `value` changed | ||
@@ -301,3 +304,3 @@ * * [SPECIAL] Typing like `1.` should not immediately convert to `1` | ||
// Update inputValue incase input can not parse as number | ||
// Update inputValue in case input can not parse as number | ||
setInternalInputValue(inputStr); | ||
@@ -314,3 +317,3 @@ | ||
// Trigger onInput later to let user customize value if they want do handle something after onChange | ||
// Trigger onInput later to let user customize value if they want to handle something after onChange | ||
onInput === null || onInput === void 0 ? void 0 : onInput(inputStr); | ||
@@ -353,3 +356,3 @@ | ||
// Clear typing status since it may caused by up & down key. | ||
// Clear typing status since it may be caused by up & down key. | ||
// We should sync with input value. | ||
@@ -398,11 +401,7 @@ userTypingRef.current = false; | ||
var onKeyDown = function onKeyDown(event) { | ||
var which = event.which, | ||
var key = event.key, | ||
shiftKey = event.shiftKey; | ||
userTypingRef.current = true; | ||
if (shiftKey) { | ||
shiftKeyRef.current = true; | ||
} else { | ||
shiftKeyRef.current = false; | ||
} | ||
if (which === _KeyCode.default.ENTER) { | ||
shiftKeyRef.current = shiftKey; | ||
if (key === 'Enter') { | ||
if (!compositionRef.current) { | ||
@@ -419,4 +418,4 @@ userTypingRef.current = false; | ||
// Do step | ||
if (!compositionRef.current && [_KeyCode.default.UP, _KeyCode.default.DOWN].includes(which)) { | ||
onInternalStep(_KeyCode.default.UP === which); | ||
if (!compositionRef.current && ['Up', 'ArrowUp', 'Down', 'ArrowDown'].includes(key)) { | ||
onInternalStep(key === 'Up' || key === 'ArrowUp'); | ||
event.preventDefault(); | ||
@@ -468,3 +467,3 @@ } | ||
return /*#__PURE__*/React.createElement("div", { | ||
className: (0, _classnames.default)(prefixCls, className, (_classNames = {}, (0, _defineProperty2.default)(_classNames, "".concat(prefixCls, "-focused"), focus), (0, _defineProperty2.default)(_classNames, "".concat(prefixCls, "-disabled"), disabled), (0, _defineProperty2.default)(_classNames, "".concat(prefixCls, "-readonly"), readOnly), (0, _defineProperty2.default)(_classNames, "".concat(prefixCls, "-not-a-number"), decimalValue.isNaN()), (0, _defineProperty2.default)(_classNames, "".concat(prefixCls, "-out-of-range"), !decimalValue.isInvalidate() && !isInRange(decimalValue)), _classNames)), | ||
className: (0, _classnames.default)(prefixCls, className, (_clsx = {}, (0, _defineProperty2.default)(_clsx, "".concat(prefixCls, "-focused"), focus), (0, _defineProperty2.default)(_clsx, "".concat(prefixCls, "-disabled"), disabled), (0, _defineProperty2.default)(_clsx, "".concat(prefixCls, "-readonly"), readOnly), (0, _defineProperty2.default)(_clsx, "".concat(prefixCls, "-not-a-number"), decimalValue.isNaN()), (0, _defineProperty2.default)(_clsx, "".concat(prefixCls, "-out-of-range"), !decimalValue.isInvalidate() && !isInRange(decimalValue)), _clsx), classNames === null || classNames === void 0 ? void 0 : classNames.input), | ||
style: style, | ||
@@ -505,4 +504,48 @@ onFocus: function onFocus() { | ||
}); | ||
var InputNumber = /*#__PURE__*/React.forwardRef(function (props, ref) { | ||
var disabled = props.disabled, | ||
style = props.style, | ||
prefixCls = props.prefixCls, | ||
value = props.value, | ||
prefix = props.prefix, | ||
addonBefore = props.addonBefore, | ||
addonAfter = props.addonAfter, | ||
classes = props.classes, | ||
className = props.className, | ||
classNames = props.classNames, | ||
rest = (0, _objectWithoutProperties2.default)(props, _excluded2); | ||
var inputFocusRef = React.useRef(null); | ||
var focus = function focus(option) { | ||
if (inputFocusRef.current) { | ||
(0, _commonUtils.triggerFocus)(inputFocusRef.current, option); | ||
} | ||
}; | ||
return /*#__PURE__*/React.createElement(_rcInput.BaseInput, { | ||
inputElement: /*#__PURE__*/React.createElement(InternalInputNumber, (0, _extends2.default)({ | ||
prefixCls: prefixCls, | ||
disabled: disabled, | ||
classNames: classNames, | ||
ref: (0, _ref.composeRef)(inputFocusRef, ref) | ||
}, rest)), | ||
className: className, | ||
triggerFocus: focus, | ||
prefixCls: prefixCls, | ||
value: value, | ||
disabled: disabled, | ||
style: style, | ||
prefix: prefix, | ||
addonAfter: addonAfter, | ||
addonBefore: addonBefore, | ||
classes: classes, | ||
classNames: classNames, | ||
components: { | ||
affixWrapper: 'div', | ||
groupWrapper: 'div', | ||
wrapper: 'div', | ||
groupAddon: 'div' | ||
} | ||
}); | ||
}); | ||
InputNumber.displayName = 'InputNumber'; | ||
var _default = InputNumber; | ||
exports.default = _default; |
@@ -10,2 +10,2 @@ import * as React from 'react'; | ||
} | ||
export default function StepHandler({ prefixCls, upNode, downNode, upDisabled, downDisabled, onStep, }: StepHandlerProps): JSX.Element; | ||
export default function StepHandler({ prefixCls, upNode, downNode, upDisabled, downDisabled, onStep, }: StepHandlerProps): React.JSX.Element; |
{ | ||
"name": "rc-input-number", | ||
"version": "7.4.2", | ||
"version": "8.0.0-alpha.0", | ||
"description": "React input-number component", | ||
@@ -13,3 +13,3 @@ "keywords": [ | ||
"bugs": { | ||
"url": "http://github.com/react-component/input-number/issues" | ||
"url": "https://github.com/react-component/input-number/issues" | ||
}, | ||
@@ -53,2 +53,3 @@ "repository": { | ||
"classnames": "^2.2.5", | ||
"rc-input": "~1.1.0", | ||
"rc-util": "^5.28.0" | ||
@@ -60,3 +61,3 @@ }, | ||
"@testing-library/jest-dom": "^5.16.5", | ||
"@testing-library/react": "^13.4.0", | ||
"@testing-library/react": "^14.0.0", | ||
"@types/classnames": "^2.2.9", | ||
@@ -74,10 +75,10 @@ "@types/jest": "^29.2.4", | ||
"father": "^4.1.1", | ||
"glob": "^7.1.6", | ||
"glob": "^9.2.1", | ||
"husky": "^8.0.3", | ||
"jest-environment-jsdom": "^29.3.1", | ||
"less": "^3.12.2", | ||
"lint-staged": "^13.1.2", | ||
"lint-staged": "^13.2.0", | ||
"np": "^7.2.0", | ||
"rc-test": "^7.0.14", | ||
"rc-tooltip": "^5.0.2", | ||
"rc-tooltip": "^6.0.1", | ||
"react": "^18.2.0", | ||
@@ -84,0 +85,0 @@ "react-dom": "^18.2.0", |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
No v1
QualityPackage is not semver >=1. This means it is not stable and does not support ^ ranges.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
76062
1653
7
1
+ Addedrc-input@~1.1.0
+ Addedrc-input@1.1.1(transitive)