Socket
Socket
Sign inDemoInstall

rc-input-number

Package Overview
Dependencies
Maintainers
8
Versions
217
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

rc-input-number - npm Package Compare versions

Comparing version 7.4.2 to 8.0.0-alpha.0

19

es/InputNumber.d.ts

@@ -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;

87

es/InputNumber.js

@@ -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",

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc