@bigbinary/neetoui 8.3.2 → 8.3.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -26,7 +26,7 @@ import 'react-i18next';
26
26
  import './useRecentlyUsedColors-CJe4G0Xs.js';
27
27
  import './Dropdown.js';
28
28
  import './index-BCP3m_SF.js';
29
- export { D as default } from './index-Cos67g77.js';
29
+ export { D as default } from './index-B2FVvQXA.js';
30
30
  import './Input.js';
31
31
  import './Label.js';
32
32
  import './MultiEmailInput.js';
package/dist/Input.js CHANGED
@@ -4,13 +4,13 @@ import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
4
4
  import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
5
5
  import React__default, { forwardRef, useState } from 'react';
6
6
  import classnames from 'classnames';
7
- import { replace } from 'ramda';
8
7
  import { u as useId } from './useId-Jj9hXm-g.js';
9
8
  import 'react-router-dom';
10
9
  import '@bigbinary/neeto-hotkeys';
11
10
  import './overlayManager.js';
12
11
  import { h as hyphenize } from './index-BCP3m_SF.js';
13
12
  import 'qs';
13
+ import { replace } from 'ramda';
14
14
  import Label from './Label.js';
15
15
  import '@babel/runtime/helpers/classCallCheck';
16
16
  import '@babel/runtime/helpers/createClass';
@@ -31,7 +31,45 @@ import 'tippy.js';
31
31
  import './Popover.js';
32
32
  import './Typography.js';
33
33
 
34
- var _excluded = ["size", "type", "label", "dataCy", "error", "suffix", "prefix", "disabled", "helpText", "className", "nakedInput", "contentSize", "required", "maxLength", "unlimitedChars", "labelProps", "rejectCharsRegex", "onBlur", "disableTrimOnBlur"];
34
+ var toFixed = function toFixed(numStr, precision) {
35
+ var num = Number(numStr);
36
+ if (Number.isNaN(num)) return numStr;
37
+ return num.toFixed(precision);
38
+ };
39
+ var isValidNumberString = function isValidNumberString(numStr) {
40
+ if (typeof numStr !== "string") return false;
41
+ return !Number.isNaN(Number(numStr.trim()));
42
+ };
43
+ var formatWithPrecision = function formatWithPrecision(value, precision) {
44
+ if (precision < 0 || !value) return value;
45
+ var str = value.toString();
46
+ if (isValidNumberString(str)) return toFixed(str, precision);
47
+ return str;
48
+ };
49
+ var enforceDecimalPrecision = function enforceDecimalPrecision(value, precision) {
50
+ if (precision < 0 || !value) return value;
51
+ var valueStr = value.toString();
52
+ if (precision === 0) return valueStr.split(".")[0];
53
+ var regex = new RegExp("^\\d*\\.?\\d{0,".concat(precision, "}$"));
54
+ if (regex.test(valueStr)) return value;
55
+ var parts = valueStr.split(".");
56
+ if (parts.length === 1) return parts[0];
57
+ var _parts = _slicedToArray(parts, 2),
58
+ integerPart = _parts[0],
59
+ decimalPart = _parts[1];
60
+ return "".concat(integerPart, ".").concat(decimalPart.substring(0, precision));
61
+ };
62
+ var formatWithRejectCharsRegex = function formatWithRejectCharsRegex(value, rejectCharsRegex) {
63
+ if (!rejectCharsRegex) return value;
64
+ var globalRegex = new RegExp(rejectCharsRegex, "g");
65
+ return replace(globalRegex, "", value);
66
+ };
67
+ var getTrimmedValue = function getTrimmedValue(value, disableTrimOnBlur) {
68
+ if (disableTrimOnBlur || typeof value !== "string") return value;
69
+ return value.trim();
70
+ };
71
+
72
+ var _excluded = ["size", "type", "label", "dataCy", "error", "suffix", "prefix", "disabled", "helpText", "className", "nakedInput", "contentSize", "required", "maxLength", "unlimitedChars", "labelProps", "rejectCharsRegex", "onBlur", "disableTrimOnBlur", "precision"];
35
73
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
36
74
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
37
75
  var SIZES = {
@@ -40,7 +78,7 @@ var SIZES = {
40
78
  large: "large"
41
79
  };
42
80
  var Input = /*#__PURE__*/forwardRef(function (_ref, ref) {
43
- var _ref2, _otherProps$value;
81
+ var _ref2, _formatWithPrecision;
44
82
  var _ref$size = _ref.size,
45
83
  size = _ref$size === void 0 ? SIZES.medium : _ref$size,
46
84
  _ref$type = _ref.type,
@@ -75,6 +113,8 @@ var Input = /*#__PURE__*/forwardRef(function (_ref, ref) {
75
113
  onBlur = _ref.onBlur,
76
114
  _ref$disableTrimOnBlu = _ref.disableTrimOnBlur,
77
115
  disableTrimOnBlur = _ref$disableTrimOnBlu === void 0 ? false : _ref$disableTrimOnBlu,
116
+ _ref$precision = _ref.precision,
117
+ precision = _ref$precision === void 0 ? -1 : _ref$precision,
78
118
  otherProps = _objectWithoutProperties(_ref, _excluded);
79
119
  var _useState = useState(otherProps.value),
80
120
  _useState2 = _slicedToArray(_useState, 2),
@@ -83,7 +123,7 @@ var Input = /*#__PURE__*/forwardRef(function (_ref, ref) {
83
123
  var id = useId(otherProps.id);
84
124
  var errorId = "error_".concat(id);
85
125
  var helpTextId = "helpText_".concat(id);
86
- var value = (_ref2 = (_otherProps$value = otherProps.value) !== null && _otherProps$value !== void 0 ? _otherProps$value : valueInternal) !== null && _ref2 !== void 0 ? _ref2 : "";
126
+ var value = (_ref2 = (_formatWithPrecision = formatWithPrecision(otherProps.value, precision)) !== null && _formatWithPrecision !== void 0 ? _formatWithPrecision : valueInternal) !== null && _ref2 !== void 0 ? _ref2 : "";
87
127
  var valueLength = (value === null || value === void 0 ? void 0 : value.toString().length) || 0;
88
128
  var isCharacterLimitVisible = valueLength >= maxLength * 0.85;
89
129
  var maxLengthError = unlimitedChars && valueLength > maxLength;
@@ -95,21 +135,19 @@ var Input = /*#__PURE__*/forwardRef(function (_ref, ref) {
95
135
  (_otherProps$onChange = otherProps.onChange) === null || _otherProps$onChange === void 0 || _otherProps$onChange.call(otherProps, e);
96
136
  };
97
137
  var isMaxLengthPresent = !!maxLength || maxLength === 0;
98
- var handleRegexChange = function handleRegexChange(e) {
99
- var globalRegex = new RegExp(rejectCharsRegex, "g");
100
- e.target.value = replace(globalRegex, "", e.target.value);
138
+ var handleChange = function handleChange(e) {
139
+ var formattedValue = formatWithRejectCharsRegex(e.target.value, rejectCharsRegex);
140
+ formattedValue = enforceDecimalPrecision(formattedValue, precision);
141
+ e.target.value = formattedValue;
101
142
  onChange(e);
102
143
  };
103
- var handleChange = rejectCharsRegex ? handleRegexChange : onChange;
104
- var handleTrimmedChangeOnBlur = function handleTrimmedChangeOnBlur(e) {
105
- if (disableTrimOnBlur || typeof value !== "string") return;
106
- var trimmedValue = value.trim();
107
- if (value === trimmedValue) return;
108
- e.target.value = trimmedValue;
109
- handleChange(e);
110
- };
111
144
  var handleOnBlur = function handleOnBlur(e) {
112
- handleTrimmedChangeOnBlur(e);
145
+ var trimmedValue = getTrimmedValue(value, disableTrimOnBlur);
146
+ var formattedValue = formatWithPrecision(trimmedValue, precision);
147
+ if (formattedValue !== value) {
148
+ e.target.value = formattedValue;
149
+ handleChange(e);
150
+ }
113
151
  onBlur === null || onBlur === void 0 || onBlur(e);
114
152
  };
115
153
  var dataCyLabel = typeof label === "string" ? hyphenize(label) : hyphenize(dataCy);
package/dist/Input.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Input.js","sources":["../src/components/Input.jsx"],"sourcesContent":["import React, { useState, forwardRef } from \"react\";\n\nimport classnames from \"classnames\";\nimport PropTypes from \"prop-types\";\nimport { replace } from \"ramda\";\n\nimport { useId } from \"hooks\";\nimport { hyphenize } from \"utils\";\n\nimport Label from \"./Label\";\n\nconst SIZES = { small: \"small\", medium: \"medium\", large: \"large\" };\n\nconst Input = forwardRef(\n (\n {\n size = SIZES.medium,\n type = \"text\",\n label = \"\",\n dataCy = \"\",\n error = \"\",\n suffix = null,\n prefix = null,\n disabled = false,\n helpText = \"\",\n className = \"\",\n nakedInput = false,\n contentSize = null,\n required = false,\n maxLength,\n unlimitedChars = false,\n labelProps,\n rejectCharsRegex,\n onBlur,\n disableTrimOnBlur = false,\n ...otherProps\n },\n ref\n ) => {\n const [valueInternal, setValueInternal] = useState(otherProps.value);\n const id = useId(otherProps.id);\n\n const errorId = `error_${id}`;\n const helpTextId = `helpText_${id}`;\n\n const value = otherProps.value ?? valueInternal ?? \"\";\n\n const valueLength = value?.toString().length || 0;\n const isCharacterLimitVisible = valueLength >= maxLength * 0.85;\n const maxLengthError = unlimitedChars && valueLength > maxLength;\n\n const onChange = e => {\n if (!otherProps.onChange || !otherProps.value) {\n setValueInternal(e.target.value);\n }\n otherProps.onChange?.(e);\n };\n\n const isMaxLengthPresent = !!maxLength || maxLength === 0;\n\n const handleRegexChange = e => {\n const globalRegex = new RegExp(rejectCharsRegex, \"g\");\n e.target.value = replace(globalRegex, \"\", e.target.value);\n onChange(e);\n };\n\n const handleChange = rejectCharsRegex ? handleRegexChange : onChange;\n\n const handleTrimmedChangeOnBlur = e => {\n if (disableTrimOnBlur || typeof value !== \"string\") return;\n\n const trimmedValue = value.trim();\n if (value === trimmedValue) return;\n\n e.target.value = trimmedValue;\n handleChange(e);\n };\n\n const handleOnBlur = e => {\n handleTrimmedChangeOnBlur(e);\n onBlur?.(e);\n };\n\n const dataCyLabel =\n typeof label === \"string\" ? hyphenize(label) : hyphenize(dataCy);\n\n return (\n <div className={classnames([\"neeto-ui-input__wrapper\", className])}>\n <div className=\"neeto-ui-input__label-wrapper\">\n {label && (\n <Label\n {...{ required }}\n data-cy={`${dataCyLabel}-input-label`}\n htmlFor={id}\n {...labelProps}\n >\n {label}\n </Label>\n )}\n {isCharacterLimitVisible && (\n <p\n className={classnames(\"neeto-ui-input__max-length\", {\n \"neeto-ui-input__max-length--error\": maxLengthError,\n })}\n >\n {valueLength}/{maxLength}\n </p>\n )}\n </div>\n <div\n data-cy={`${dataCyLabel}-input`}\n className={classnames(\"neeto-ui-input\", {\n \"neeto-ui-input--naked\": !!nakedInput,\n \"neeto-ui-input--error\": !!error,\n \"neeto-ui-input--disabled\": !!disabled,\n \"neeto-ui-input--small\": size === \"small\",\n \"neeto-ui-input--medium\": size === \"medium\",\n \"neeto-ui-input--large\": size === \"large\",\n })}\n >\n {prefix && <div className=\"neeto-ui-input__prefix\">{prefix}</div>}\n <input\n aria-invalid={!!error}\n data-cy={`${dataCyLabel}-input-field`}\n size={contentSize}\n aria-describedby={classnames({\n [errorId]: !!error,\n [helpTextId]: helpText,\n })}\n {...{\n disabled,\n id,\n ref,\n required,\n type,\n ...(isMaxLengthPresent && !unlimitedChars && { maxLength }),\n ...otherProps,\n value,\n }}\n onBlur={handleOnBlur}\n onChange={handleChange}\n />\n {suffix && <div className=\"neeto-ui-input__suffix\">{suffix}</div>}\n </div>\n {!!error && (\n <p\n className=\"neeto-ui-input__error\"\n data-cy={`${dataCyLabel}-input-error`}\n id={errorId}\n >\n {error}\n </p>\n )}\n {helpText && (\n <p\n className=\"neeto-ui-input__help-text\"\n data-cy={`${dataCyLabel}-input-help`}\n id={helpTextId}\n >\n {helpText}\n </p>\n )}\n </div>\n );\n }\n);\n\nInput.displayName = \"Input\";\n\nInput.propTypes = {\n /**\n * To specify a unique ID to the Input component.\n */\n id: PropTypes.string,\n /**\n * To specify the size of Input.\n */\n size: PropTypes.oneOf(Object.values(SIZES)),\n /**\n * To specify the type of Input field.\n */\n type: PropTypes.string,\n /**\n * To specify the label props to be passed to the Label component.\n */\n labelProps: PropTypes.object,\n /**\n * To specify a maximum character limit to the Input. Charater limit is visible only if the Input value is greater than or equal to 85% of the maximum character limit.\n */\n maxLength: PropTypes.number,\n /**\n * To be used along with maxLength prop. When set to true the character limit will not be enforced and character count will be shown in error state if the character limit is exceeded.\n */\n unlimitedChars: PropTypes.bool,\n /**\n * To specify the text to be displayed above the Input.\n */\n label: PropTypes.string,\n /**\n * To specify the error message to be shown in the Input field.\n */\n error: PropTypes.string,\n /**\n * To specify the content to be added at the end of the Input field.\n */\n suffix: PropTypes.node,\n /**\n * To specify the content to be added at the beginning of the Input field.\n */\n prefix: PropTypes.node,\n /**\n * To specify whether the Input field is disabled or not.\n */\n disabled: PropTypes.bool,\n /**\n * To specify the text that appears below the Input field.\n */\n helpText: PropTypes.string,\n /**\n * To specify external classNames that can be provided as overrides to the main wrapper.\n */\n className: PropTypes.string,\n /**\n * To create an Input field without any borders.\n */\n nakedInput: PropTypes.bool,\n /**\n * To specify the value to be passed as size attribute to the Input field.\n */\n contentSize: PropTypes.number,\n /**\n * To specify whether the Input field is required or not.\n */\n required: PropTypes.bool,\n /**\n * To specify a regex to be matched against the user input. Any character that matches it\n * cannot be input by the user. It will also prevent such characters from being pasted into the input.\n */\n rejectCharsRegex: PropTypes.instanceOf(RegExp),\n /**\n * To disable leading and trailing white spaces onBlur.\n */\n disableTrimOnBlur: PropTypes.bool,\n};\n\nexport default Input;\n"],"names":["SIZES","small","medium","large","Input","forwardRef","_ref","ref","_ref2","_otherProps$value","_ref$size","size","_ref$type","type","_ref$label","label","_ref$dataCy","dataCy","_ref$error","error","_ref$suffix","suffix","_ref$prefix","prefix","_ref$disabled","disabled","_ref$helpText","helpText","_ref$className","className","_ref$nakedInput","nakedInput","_ref$contentSize","contentSize","_ref$required","required","maxLength","_ref$unlimitedChars","unlimitedChars","labelProps","rejectCharsRegex","onBlur","_ref$disableTrimOnBlu","disableTrimOnBlur","otherProps","_objectWithoutProperties","_excluded","_useState","useState","value","_useState2","_slicedToArray","valueInternal","setValueInternal","id","useId","errorId","concat","helpTextId","valueLength","toString","length","isCharacterLimitVisible","maxLengthError","onChange","e","_otherProps$onChange","target","call","isMaxLengthPresent","handleRegexChange","globalRegex","RegExp","replace","handleChange","handleTrimmedChangeOnBlur","trimmedValue","trim","handleOnBlur","dataCyLabel","hyphenize","React","createElement","classnames","Label","_extends","htmlFor","_defineProperty","_objectSpread","displayName"],"mappings":"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"}
1
+ {"version":3,"file":"Input.js","sources":["../src/components/Input/utils.js","../src/components/Input/index.jsx"],"sourcesContent":["import { replace } from \"ramda\";\n\nconst toFixed = (numStr, precision) => {\n const num = Number(numStr);\n if (Number.isNaN(num)) return numStr;\n\n return num.toFixed(precision);\n};\n\nconst isValidNumberString = numStr => {\n if (typeof numStr !== \"string\") return false;\n\n return !Number.isNaN(Number(numStr.trim()));\n};\n\nexport const formatWithPrecision = (value, precision) => {\n if (precision < 0 || !value) return value;\n\n const str = value.toString();\n\n if (isValidNumberString(str)) return toFixed(str, precision);\n\n return str;\n};\n\nexport const enforceDecimalPrecision = (value, precision) => {\n if (precision < 0 || !value) return value;\n\n const valueStr = value.toString();\n\n if (precision === 0) return valueStr.split(\".\")[0];\n\n const regex = new RegExp(`^\\\\d*\\\\.?\\\\d{0,${precision}}$`);\n if (regex.test(valueStr)) return value;\n\n const parts = valueStr.split(\".\");\n if (parts.length === 1) return parts[0];\n\n const [integerPart, decimalPart] = parts;\n\n return `${integerPart}.${decimalPart.substring(0, precision)}`;\n};\n\nexport const formatWithRejectCharsRegex = (value, rejectCharsRegex) => {\n if (!rejectCharsRegex) return value;\n\n const globalRegex = new RegExp(rejectCharsRegex, \"g\");\n\n return replace(globalRegex, \"\", value);\n};\n\nexport const getTrimmedValue = (value, disableTrimOnBlur) => {\n if (disableTrimOnBlur || typeof value !== \"string\") return value;\n\n return value.trim();\n};\n","import React, { useState, forwardRef } from \"react\";\n\nimport classnames from \"classnames\";\nimport PropTypes from \"prop-types\";\n\nimport { useId } from \"hooks\";\nimport { hyphenize } from \"utils\";\n\nimport {\n enforceDecimalPrecision,\n formatWithPrecision,\n formatWithRejectCharsRegex,\n getTrimmedValue,\n} from \"./utils\";\n\nimport Label from \"../Label\";\n\nconst SIZES = { small: \"small\", medium: \"medium\", large: \"large\" };\n\nconst Input = forwardRef(\n (\n {\n size = SIZES.medium,\n type = \"text\",\n label = \"\",\n dataCy = \"\",\n error = \"\",\n suffix = null,\n prefix = null,\n disabled = false,\n helpText = \"\",\n className = \"\",\n nakedInput = false,\n contentSize = null,\n required = false,\n maxLength,\n unlimitedChars = false,\n labelProps,\n rejectCharsRegex,\n onBlur,\n disableTrimOnBlur = false,\n precision = -1,\n ...otherProps\n },\n ref\n ) => {\n const [valueInternal, setValueInternal] = useState(otherProps.value);\n const id = useId(otherProps.id);\n\n const errorId = `error_${id}`;\n const helpTextId = `helpText_${id}`;\n\n const value =\n formatWithPrecision(otherProps.value, precision) ?? valueInternal ?? \"\";\n\n const valueLength = value?.toString().length || 0;\n const isCharacterLimitVisible = valueLength >= maxLength * 0.85;\n const maxLengthError = unlimitedChars && valueLength > maxLength;\n\n const onChange = e => {\n if (!otherProps.onChange || !otherProps.value) {\n setValueInternal(e.target.value);\n }\n otherProps.onChange?.(e);\n };\n\n const isMaxLengthPresent = !!maxLength || maxLength === 0;\n\n const handleChange = e => {\n let formattedValue = formatWithRejectCharsRegex(\n e.target.value,\n rejectCharsRegex\n );\n\n formattedValue = enforceDecimalPrecision(formattedValue, precision);\n\n e.target.value = formattedValue;\n onChange(e);\n };\n\n const handleOnBlur = e => {\n const trimmedValue = getTrimmedValue(value, disableTrimOnBlur);\n const formattedValue = formatWithPrecision(trimmedValue, precision);\n\n if (formattedValue !== value) {\n e.target.value = formattedValue;\n handleChange(e);\n }\n\n onBlur?.(e);\n };\n\n const dataCyLabel =\n typeof label === \"string\" ? hyphenize(label) : hyphenize(dataCy);\n\n return (\n <div className={classnames([\"neeto-ui-input__wrapper\", className])}>\n <div className=\"neeto-ui-input__label-wrapper\">\n {label && (\n <Label\n {...{ required }}\n data-cy={`${dataCyLabel}-input-label`}\n htmlFor={id}\n {...labelProps}\n >\n {label}\n </Label>\n )}\n {isCharacterLimitVisible && (\n <p\n className={classnames(\"neeto-ui-input__max-length\", {\n \"neeto-ui-input__max-length--error\": maxLengthError,\n })}\n >\n {valueLength}/{maxLength}\n </p>\n )}\n </div>\n <div\n data-cy={`${dataCyLabel}-input`}\n className={classnames(\"neeto-ui-input\", {\n \"neeto-ui-input--naked\": !!nakedInput,\n \"neeto-ui-input--error\": !!error,\n \"neeto-ui-input--disabled\": !!disabled,\n \"neeto-ui-input--small\": size === \"small\",\n \"neeto-ui-input--medium\": size === \"medium\",\n \"neeto-ui-input--large\": size === \"large\",\n })}\n >\n {prefix && <div className=\"neeto-ui-input__prefix\">{prefix}</div>}\n <input\n aria-invalid={!!error}\n data-cy={`${dataCyLabel}-input-field`}\n size={contentSize}\n aria-describedby={classnames({\n [errorId]: !!error,\n [helpTextId]: helpText,\n })}\n {...{\n disabled,\n id,\n ref,\n required,\n type,\n ...(isMaxLengthPresent && !unlimitedChars && { maxLength }),\n ...otherProps,\n value,\n }}\n onBlur={handleOnBlur}\n onChange={handleChange}\n />\n {suffix && <div className=\"neeto-ui-input__suffix\">{suffix}</div>}\n </div>\n {!!error && (\n <p\n className=\"neeto-ui-input__error\"\n data-cy={`${dataCyLabel}-input-error`}\n id={errorId}\n >\n {error}\n </p>\n )}\n {helpText && (\n <p\n className=\"neeto-ui-input__help-text\"\n data-cy={`${dataCyLabel}-input-help`}\n id={helpTextId}\n >\n {helpText}\n </p>\n )}\n </div>\n );\n }\n);\n\nInput.displayName = \"Input\";\n\nInput.propTypes = {\n /**\n * To specify a unique ID to the Input component.\n */\n id: PropTypes.string,\n /**\n * To specify the size of Input.\n */\n size: PropTypes.oneOf(Object.values(SIZES)),\n /**\n * To specify the type of Input field.\n */\n type: PropTypes.string,\n /**\n * To specify how many decimal places to show in the input.\n *\n * For example, if precision is 2:\n * 10 will be shown as \"10.00\"\n * 10.1 will be shown as \"10.10\"\n * 9.758 will be rounded and shown as \"9.76\"\n */\n precision: PropTypes.number,\n /**\n * To specify the label props to be passed to the Label component.\n */\n labelProps: PropTypes.object,\n /**\n * To specify a maximum character limit to the Input. Charater limit is visible only if the Input value is greater than or equal to 85% of the maximum character limit.\n */\n maxLength: PropTypes.number,\n /**\n * To be used along with maxLength prop. When set to true the character limit will not be enforced and character count will be shown in error state if the character limit is exceeded.\n */\n unlimitedChars: PropTypes.bool,\n /**\n * To specify the text to be displayed above the Input.\n */\n label: PropTypes.string,\n /**\n * To specify the error message to be shown in the Input field.\n */\n error: PropTypes.string,\n /**\n * To specify the content to be added at the end of the Input field.\n */\n suffix: PropTypes.node,\n /**\n * To specify the content to be added at the beginning of the Input field.\n */\n prefix: PropTypes.node,\n /**\n * To specify whether the Input field is disabled or not.\n */\n disabled: PropTypes.bool,\n /**\n * To specify the text that appears below the Input field.\n */\n helpText: PropTypes.string,\n /**\n * To specify external classNames that can be provided as overrides to the main wrapper.\n */\n className: PropTypes.string,\n /**\n * To create an Input field without any borders.\n */\n nakedInput: PropTypes.bool,\n /**\n * To specify the value to be passed as size attribute to the Input field.\n */\n contentSize: PropTypes.number,\n /**\n * To specify whether the Input field is required or not.\n */\n required: PropTypes.bool,\n /**\n * To specify a regex to be matched against the user input. Any character that matches it\n * cannot be input by the user. It will also prevent such characters from being pasted into the input.\n */\n rejectCharsRegex: PropTypes.instanceOf(RegExp),\n /**\n * To disable leading and trailing white spaces onBlur.\n */\n disableTrimOnBlur: PropTypes.bool,\n};\n\nexport default Input;\n"],"names":["toFixed","numStr","precision","num","Number","isNaN","isValidNumberString","trim","formatWithPrecision","value","str","toString","enforceDecimalPrecision","valueStr","split","regex","RegExp","concat","test","parts","length","_parts","_slicedToArray","integerPart","decimalPart","substring","formatWithRejectCharsRegex","rejectCharsRegex","globalRegex","replace","getTrimmedValue","disableTrimOnBlur","SIZES","small","medium","large","Input","forwardRef","_ref","ref","_ref2","_formatWithPrecision","_ref$size","size","_ref$type","type","_ref$label","label","_ref$dataCy","dataCy","_ref$error","error","_ref$suffix","suffix","_ref$prefix","prefix","_ref$disabled","disabled","_ref$helpText","helpText","_ref$className","className","_ref$nakedInput","nakedInput","_ref$contentSize","contentSize","_ref$required","required","maxLength","_ref$unlimitedChars","unlimitedChars","labelProps","onBlur","_ref$disableTrimOnBlu","_ref$precision","otherProps","_objectWithoutProperties","_excluded","_useState","useState","_useState2","valueInternal","setValueInternal","id","useId","errorId","helpTextId","valueLength","isCharacterLimitVisible","maxLengthError","onChange","e","_otherProps$onChange","target","call","isMaxLengthPresent","handleChange","formattedValue","handleOnBlur","trimmedValue","dataCyLabel","hyphenize","React","createElement","classnames","Label","_extends","htmlFor","_defineProperty","_objectSpread","displayName"],"mappings":"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"}
@@ -25,7 +25,7 @@ import 'react-colorful';
25
25
  import './useRecentlyUsedColors-CJe4G0Xs.js';
26
26
  import './Dropdown.js';
27
27
  import './index-BCP3m_SF.js';
28
- export { T as default } from './index-Cos67g77.js';
28
+ export { T as default } from './index-B2FVvQXA.js';
29
29
  import './Input.js';
30
30
  import './Label.js';
31
31
  import './MultiEmailInput.js';
@@ -28,7 +28,7 @@ require('react-i18next');
28
28
  require('./useRecentlyUsedColors-DmV1uj1F.js');
29
29
  require('./Dropdown.js');
30
30
  require('./index-BG9I04iF.js');
31
- var DatePicker = require('./index-C6B9eh7k.js');
31
+ var DatePicker = require('./index-BTPp-54Z.js');
32
32
  require('./Input.js');
33
33
  require('./Label.js');
34
34
  require('./MultiEmailInput.js');
package/dist/cjs/Input.js CHANGED
@@ -6,13 +6,13 @@ var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
6
6
  var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
7
7
  var React = require('react');
8
8
  var classnames = require('classnames');
9
- var ramda = require('ramda');
10
9
  var useId = require('./useId-DXHUzdxd.js');
11
10
  require('react-router-dom');
12
11
  require('@bigbinary/neeto-hotkeys');
13
12
  require('./overlayManager.js');
14
13
  var index = require('./index-BG9I04iF.js');
15
14
  require('qs');
15
+ var ramda = require('ramda');
16
16
  var Label = require('./Label.js');
17
17
  require('@babel/runtime/helpers/classCallCheck');
18
18
  require('@babel/runtime/helpers/createClass');
@@ -33,7 +33,45 @@ require('tippy.js');
33
33
  require('./Popover.js');
34
34
  require('./Typography.js');
35
35
 
36
- var _excluded = ["size", "type", "label", "dataCy", "error", "suffix", "prefix", "disabled", "helpText", "className", "nakedInput", "contentSize", "required", "maxLength", "unlimitedChars", "labelProps", "rejectCharsRegex", "onBlur", "disableTrimOnBlur"];
36
+ var toFixed = function toFixed(numStr, precision) {
37
+ var num = Number(numStr);
38
+ if (Number.isNaN(num)) return numStr;
39
+ return num.toFixed(precision);
40
+ };
41
+ var isValidNumberString = function isValidNumberString(numStr) {
42
+ if (typeof numStr !== "string") return false;
43
+ return !Number.isNaN(Number(numStr.trim()));
44
+ };
45
+ var formatWithPrecision = function formatWithPrecision(value, precision) {
46
+ if (precision < 0 || !value) return value;
47
+ var str = value.toString();
48
+ if (isValidNumberString(str)) return toFixed(str, precision);
49
+ return str;
50
+ };
51
+ var enforceDecimalPrecision = function enforceDecimalPrecision(value, precision) {
52
+ if (precision < 0 || !value) return value;
53
+ var valueStr = value.toString();
54
+ if (precision === 0) return valueStr.split(".")[0];
55
+ var regex = new RegExp("^\\d*\\.?\\d{0,".concat(precision, "}$"));
56
+ if (regex.test(valueStr)) return value;
57
+ var parts = valueStr.split(".");
58
+ if (parts.length === 1) return parts[0];
59
+ var _parts = _slicedToArray(parts, 2),
60
+ integerPart = _parts[0],
61
+ decimalPart = _parts[1];
62
+ return "".concat(integerPart, ".").concat(decimalPart.substring(0, precision));
63
+ };
64
+ var formatWithRejectCharsRegex = function formatWithRejectCharsRegex(value, rejectCharsRegex) {
65
+ if (!rejectCharsRegex) return value;
66
+ var globalRegex = new RegExp(rejectCharsRegex, "g");
67
+ return ramda.replace(globalRegex, "", value);
68
+ };
69
+ var getTrimmedValue = function getTrimmedValue(value, disableTrimOnBlur) {
70
+ if (disableTrimOnBlur || typeof value !== "string") return value;
71
+ return value.trim();
72
+ };
73
+
74
+ var _excluded = ["size", "type", "label", "dataCy", "error", "suffix", "prefix", "disabled", "helpText", "className", "nakedInput", "contentSize", "required", "maxLength", "unlimitedChars", "labelProps", "rejectCharsRegex", "onBlur", "disableTrimOnBlur", "precision"];
37
75
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
38
76
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
39
77
  var SIZES = {
@@ -42,7 +80,7 @@ var SIZES = {
42
80
  large: "large"
43
81
  };
44
82
  var Input = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
45
- var _ref2, _otherProps$value;
83
+ var _ref2, _formatWithPrecision;
46
84
  var _ref$size = _ref.size,
47
85
  size = _ref$size === void 0 ? SIZES.medium : _ref$size,
48
86
  _ref$type = _ref.type,
@@ -77,6 +115,8 @@ var Input = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
77
115
  onBlur = _ref.onBlur,
78
116
  _ref$disableTrimOnBlu = _ref.disableTrimOnBlur,
79
117
  disableTrimOnBlur = _ref$disableTrimOnBlu === void 0 ? false : _ref$disableTrimOnBlu,
118
+ _ref$precision = _ref.precision,
119
+ precision = _ref$precision === void 0 ? -1 : _ref$precision,
80
120
  otherProps = _objectWithoutProperties(_ref, _excluded);
81
121
  var _useState = React.useState(otherProps.value),
82
122
  _useState2 = _slicedToArray(_useState, 2),
@@ -85,7 +125,7 @@ var Input = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
85
125
  var id = useId.useId(otherProps.id);
86
126
  var errorId = "error_".concat(id);
87
127
  var helpTextId = "helpText_".concat(id);
88
- var value = (_ref2 = (_otherProps$value = otherProps.value) !== null && _otherProps$value !== void 0 ? _otherProps$value : valueInternal) !== null && _ref2 !== void 0 ? _ref2 : "";
128
+ var value = (_ref2 = (_formatWithPrecision = formatWithPrecision(otherProps.value, precision)) !== null && _formatWithPrecision !== void 0 ? _formatWithPrecision : valueInternal) !== null && _ref2 !== void 0 ? _ref2 : "";
89
129
  var valueLength = (value === null || value === void 0 ? void 0 : value.toString().length) || 0;
90
130
  var isCharacterLimitVisible = valueLength >= maxLength * 0.85;
91
131
  var maxLengthError = unlimitedChars && valueLength > maxLength;
@@ -97,21 +137,19 @@ var Input = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
97
137
  (_otherProps$onChange = otherProps.onChange) === null || _otherProps$onChange === void 0 || _otherProps$onChange.call(otherProps, e);
98
138
  };
99
139
  var isMaxLengthPresent = !!maxLength || maxLength === 0;
100
- var handleRegexChange = function handleRegexChange(e) {
101
- var globalRegex = new RegExp(rejectCharsRegex, "g");
102
- e.target.value = ramda.replace(globalRegex, "", e.target.value);
140
+ var handleChange = function handleChange(e) {
141
+ var formattedValue = formatWithRejectCharsRegex(e.target.value, rejectCharsRegex);
142
+ formattedValue = enforceDecimalPrecision(formattedValue, precision);
143
+ e.target.value = formattedValue;
103
144
  onChange(e);
104
145
  };
105
- var handleChange = rejectCharsRegex ? handleRegexChange : onChange;
106
- var handleTrimmedChangeOnBlur = function handleTrimmedChangeOnBlur(e) {
107
- if (disableTrimOnBlur || typeof value !== "string") return;
108
- var trimmedValue = value.trim();
109
- if (value === trimmedValue) return;
110
- e.target.value = trimmedValue;
111
- handleChange(e);
112
- };
113
146
  var handleOnBlur = function handleOnBlur(e) {
114
- handleTrimmedChangeOnBlur(e);
147
+ var trimmedValue = getTrimmedValue(value, disableTrimOnBlur);
148
+ var formattedValue = formatWithPrecision(trimmedValue, precision);
149
+ if (formattedValue !== value) {
150
+ e.target.value = formattedValue;
151
+ handleChange(e);
152
+ }
115
153
  onBlur === null || onBlur === void 0 || onBlur(e);
116
154
  };
117
155
  var dataCyLabel = typeof label === "string" ? index.hyphenize(label) : index.hyphenize(dataCy);
@@ -1 +1 @@
1
- {"version":3,"file":"Input.js","sources":["../../src/components/Input.jsx"],"sourcesContent":["import React, { useState, forwardRef } from \"react\";\n\nimport classnames from \"classnames\";\nimport PropTypes from \"prop-types\";\nimport { replace } from \"ramda\";\n\nimport { useId } from \"hooks\";\nimport { hyphenize } from \"utils\";\n\nimport Label from \"./Label\";\n\nconst SIZES = { small: \"small\", medium: \"medium\", large: \"large\" };\n\nconst Input = forwardRef(\n (\n {\n size = SIZES.medium,\n type = \"text\",\n label = \"\",\n dataCy = \"\",\n error = \"\",\n suffix = null,\n prefix = null,\n disabled = false,\n helpText = \"\",\n className = \"\",\n nakedInput = false,\n contentSize = null,\n required = false,\n maxLength,\n unlimitedChars = false,\n labelProps,\n rejectCharsRegex,\n onBlur,\n disableTrimOnBlur = false,\n ...otherProps\n },\n ref\n ) => {\n const [valueInternal, setValueInternal] = useState(otherProps.value);\n const id = useId(otherProps.id);\n\n const errorId = `error_${id}`;\n const helpTextId = `helpText_${id}`;\n\n const value = otherProps.value ?? valueInternal ?? \"\";\n\n const valueLength = value?.toString().length || 0;\n const isCharacterLimitVisible = valueLength >= maxLength * 0.85;\n const maxLengthError = unlimitedChars && valueLength > maxLength;\n\n const onChange = e => {\n if (!otherProps.onChange || !otherProps.value) {\n setValueInternal(e.target.value);\n }\n otherProps.onChange?.(e);\n };\n\n const isMaxLengthPresent = !!maxLength || maxLength === 0;\n\n const handleRegexChange = e => {\n const globalRegex = new RegExp(rejectCharsRegex, \"g\");\n e.target.value = replace(globalRegex, \"\", e.target.value);\n onChange(e);\n };\n\n const handleChange = rejectCharsRegex ? handleRegexChange : onChange;\n\n const handleTrimmedChangeOnBlur = e => {\n if (disableTrimOnBlur || typeof value !== \"string\") return;\n\n const trimmedValue = value.trim();\n if (value === trimmedValue) return;\n\n e.target.value = trimmedValue;\n handleChange(e);\n };\n\n const handleOnBlur = e => {\n handleTrimmedChangeOnBlur(e);\n onBlur?.(e);\n };\n\n const dataCyLabel =\n typeof label === \"string\" ? hyphenize(label) : hyphenize(dataCy);\n\n return (\n <div className={classnames([\"neeto-ui-input__wrapper\", className])}>\n <div className=\"neeto-ui-input__label-wrapper\">\n {label && (\n <Label\n {...{ required }}\n data-cy={`${dataCyLabel}-input-label`}\n htmlFor={id}\n {...labelProps}\n >\n {label}\n </Label>\n )}\n {isCharacterLimitVisible && (\n <p\n className={classnames(\"neeto-ui-input__max-length\", {\n \"neeto-ui-input__max-length--error\": maxLengthError,\n })}\n >\n {valueLength}/{maxLength}\n </p>\n )}\n </div>\n <div\n data-cy={`${dataCyLabel}-input`}\n className={classnames(\"neeto-ui-input\", {\n \"neeto-ui-input--naked\": !!nakedInput,\n \"neeto-ui-input--error\": !!error,\n \"neeto-ui-input--disabled\": !!disabled,\n \"neeto-ui-input--small\": size === \"small\",\n \"neeto-ui-input--medium\": size === \"medium\",\n \"neeto-ui-input--large\": size === \"large\",\n })}\n >\n {prefix && <div className=\"neeto-ui-input__prefix\">{prefix}</div>}\n <input\n aria-invalid={!!error}\n data-cy={`${dataCyLabel}-input-field`}\n size={contentSize}\n aria-describedby={classnames({\n [errorId]: !!error,\n [helpTextId]: helpText,\n })}\n {...{\n disabled,\n id,\n ref,\n required,\n type,\n ...(isMaxLengthPresent && !unlimitedChars && { maxLength }),\n ...otherProps,\n value,\n }}\n onBlur={handleOnBlur}\n onChange={handleChange}\n />\n {suffix && <div className=\"neeto-ui-input__suffix\">{suffix}</div>}\n </div>\n {!!error && (\n <p\n className=\"neeto-ui-input__error\"\n data-cy={`${dataCyLabel}-input-error`}\n id={errorId}\n >\n {error}\n </p>\n )}\n {helpText && (\n <p\n className=\"neeto-ui-input__help-text\"\n data-cy={`${dataCyLabel}-input-help`}\n id={helpTextId}\n >\n {helpText}\n </p>\n )}\n </div>\n );\n }\n);\n\nInput.displayName = \"Input\";\n\nInput.propTypes = {\n /**\n * To specify a unique ID to the Input component.\n */\n id: PropTypes.string,\n /**\n * To specify the size of Input.\n */\n size: PropTypes.oneOf(Object.values(SIZES)),\n /**\n * To specify the type of Input field.\n */\n type: PropTypes.string,\n /**\n * To specify the label props to be passed to the Label component.\n */\n labelProps: PropTypes.object,\n /**\n * To specify a maximum character limit to the Input. Charater limit is visible only if the Input value is greater than or equal to 85% of the maximum character limit.\n */\n maxLength: PropTypes.number,\n /**\n * To be used along with maxLength prop. When set to true the character limit will not be enforced and character count will be shown in error state if the character limit is exceeded.\n */\n unlimitedChars: PropTypes.bool,\n /**\n * To specify the text to be displayed above the Input.\n */\n label: PropTypes.string,\n /**\n * To specify the error message to be shown in the Input field.\n */\n error: PropTypes.string,\n /**\n * To specify the content to be added at the end of the Input field.\n */\n suffix: PropTypes.node,\n /**\n * To specify the content to be added at the beginning of the Input field.\n */\n prefix: PropTypes.node,\n /**\n * To specify whether the Input field is disabled or not.\n */\n disabled: PropTypes.bool,\n /**\n * To specify the text that appears below the Input field.\n */\n helpText: PropTypes.string,\n /**\n * To specify external classNames that can be provided as overrides to the main wrapper.\n */\n className: PropTypes.string,\n /**\n * To create an Input field without any borders.\n */\n nakedInput: PropTypes.bool,\n /**\n * To specify the value to be passed as size attribute to the Input field.\n */\n contentSize: PropTypes.number,\n /**\n * To specify whether the Input field is required or not.\n */\n required: PropTypes.bool,\n /**\n * To specify a regex to be matched against the user input. Any character that matches it\n * cannot be input by the user. It will also prevent such characters from being pasted into the input.\n */\n rejectCharsRegex: PropTypes.instanceOf(RegExp),\n /**\n * To disable leading and trailing white spaces onBlur.\n */\n disableTrimOnBlur: PropTypes.bool,\n};\n\nexport default Input;\n"],"names":["SIZES","small","medium","large","Input","forwardRef","_ref","ref","_ref2","_otherProps$value","_ref$size","size","_ref$type","type","_ref$label","label","_ref$dataCy","dataCy","_ref$error","error","_ref$suffix","suffix","_ref$prefix","prefix","_ref$disabled","disabled","_ref$helpText","helpText","_ref$className","className","_ref$nakedInput","nakedInput","_ref$contentSize","contentSize","_ref$required","required","maxLength","_ref$unlimitedChars","unlimitedChars","labelProps","rejectCharsRegex","onBlur","_ref$disableTrimOnBlu","disableTrimOnBlur","otherProps","_objectWithoutProperties","_excluded","_useState","useState","value","_useState2","_slicedToArray","valueInternal","setValueInternal","id","useId","errorId","concat","helpTextId","valueLength","toString","length","isCharacterLimitVisible","maxLengthError","onChange","e","_otherProps$onChange","target","call","isMaxLengthPresent","handleRegexChange","globalRegex","RegExp","replace","handleChange","handleTrimmedChangeOnBlur","trimmedValue","trim","handleOnBlur","dataCyLabel","hyphenize","React","createElement","classnames","Label","_extends","htmlFor","_defineProperty","_objectSpread","displayName"],"mappings":"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"}
1
+ {"version":3,"file":"Input.js","sources":["../../src/components/Input/utils.js","../../src/components/Input/index.jsx"],"sourcesContent":["import { replace } from \"ramda\";\n\nconst toFixed = (numStr, precision) => {\n const num = Number(numStr);\n if (Number.isNaN(num)) return numStr;\n\n return num.toFixed(precision);\n};\n\nconst isValidNumberString = numStr => {\n if (typeof numStr !== \"string\") return false;\n\n return !Number.isNaN(Number(numStr.trim()));\n};\n\nexport const formatWithPrecision = (value, precision) => {\n if (precision < 0 || !value) return value;\n\n const str = value.toString();\n\n if (isValidNumberString(str)) return toFixed(str, precision);\n\n return str;\n};\n\nexport const enforceDecimalPrecision = (value, precision) => {\n if (precision < 0 || !value) return value;\n\n const valueStr = value.toString();\n\n if (precision === 0) return valueStr.split(\".\")[0];\n\n const regex = new RegExp(`^\\\\d*\\\\.?\\\\d{0,${precision}}$`);\n if (regex.test(valueStr)) return value;\n\n const parts = valueStr.split(\".\");\n if (parts.length === 1) return parts[0];\n\n const [integerPart, decimalPart] = parts;\n\n return `${integerPart}.${decimalPart.substring(0, precision)}`;\n};\n\nexport const formatWithRejectCharsRegex = (value, rejectCharsRegex) => {\n if (!rejectCharsRegex) return value;\n\n const globalRegex = new RegExp(rejectCharsRegex, \"g\");\n\n return replace(globalRegex, \"\", value);\n};\n\nexport const getTrimmedValue = (value, disableTrimOnBlur) => {\n if (disableTrimOnBlur || typeof value !== \"string\") return value;\n\n return value.trim();\n};\n","import React, { useState, forwardRef } from \"react\";\n\nimport classnames from \"classnames\";\nimport PropTypes from \"prop-types\";\n\nimport { useId } from \"hooks\";\nimport { hyphenize } from \"utils\";\n\nimport {\n enforceDecimalPrecision,\n formatWithPrecision,\n formatWithRejectCharsRegex,\n getTrimmedValue,\n} from \"./utils\";\n\nimport Label from \"../Label\";\n\nconst SIZES = { small: \"small\", medium: \"medium\", large: \"large\" };\n\nconst Input = forwardRef(\n (\n {\n size = SIZES.medium,\n type = \"text\",\n label = \"\",\n dataCy = \"\",\n error = \"\",\n suffix = null,\n prefix = null,\n disabled = false,\n helpText = \"\",\n className = \"\",\n nakedInput = false,\n contentSize = null,\n required = false,\n maxLength,\n unlimitedChars = false,\n labelProps,\n rejectCharsRegex,\n onBlur,\n disableTrimOnBlur = false,\n precision = -1,\n ...otherProps\n },\n ref\n ) => {\n const [valueInternal, setValueInternal] = useState(otherProps.value);\n const id = useId(otherProps.id);\n\n const errorId = `error_${id}`;\n const helpTextId = `helpText_${id}`;\n\n const value =\n formatWithPrecision(otherProps.value, precision) ?? valueInternal ?? \"\";\n\n const valueLength = value?.toString().length || 0;\n const isCharacterLimitVisible = valueLength >= maxLength * 0.85;\n const maxLengthError = unlimitedChars && valueLength > maxLength;\n\n const onChange = e => {\n if (!otherProps.onChange || !otherProps.value) {\n setValueInternal(e.target.value);\n }\n otherProps.onChange?.(e);\n };\n\n const isMaxLengthPresent = !!maxLength || maxLength === 0;\n\n const handleChange = e => {\n let formattedValue = formatWithRejectCharsRegex(\n e.target.value,\n rejectCharsRegex\n );\n\n formattedValue = enforceDecimalPrecision(formattedValue, precision);\n\n e.target.value = formattedValue;\n onChange(e);\n };\n\n const handleOnBlur = e => {\n const trimmedValue = getTrimmedValue(value, disableTrimOnBlur);\n const formattedValue = formatWithPrecision(trimmedValue, precision);\n\n if (formattedValue !== value) {\n e.target.value = formattedValue;\n handleChange(e);\n }\n\n onBlur?.(e);\n };\n\n const dataCyLabel =\n typeof label === \"string\" ? hyphenize(label) : hyphenize(dataCy);\n\n return (\n <div className={classnames([\"neeto-ui-input__wrapper\", className])}>\n <div className=\"neeto-ui-input__label-wrapper\">\n {label && (\n <Label\n {...{ required }}\n data-cy={`${dataCyLabel}-input-label`}\n htmlFor={id}\n {...labelProps}\n >\n {label}\n </Label>\n )}\n {isCharacterLimitVisible && (\n <p\n className={classnames(\"neeto-ui-input__max-length\", {\n \"neeto-ui-input__max-length--error\": maxLengthError,\n })}\n >\n {valueLength}/{maxLength}\n </p>\n )}\n </div>\n <div\n data-cy={`${dataCyLabel}-input`}\n className={classnames(\"neeto-ui-input\", {\n \"neeto-ui-input--naked\": !!nakedInput,\n \"neeto-ui-input--error\": !!error,\n \"neeto-ui-input--disabled\": !!disabled,\n \"neeto-ui-input--small\": size === \"small\",\n \"neeto-ui-input--medium\": size === \"medium\",\n \"neeto-ui-input--large\": size === \"large\",\n })}\n >\n {prefix && <div className=\"neeto-ui-input__prefix\">{prefix}</div>}\n <input\n aria-invalid={!!error}\n data-cy={`${dataCyLabel}-input-field`}\n size={contentSize}\n aria-describedby={classnames({\n [errorId]: !!error,\n [helpTextId]: helpText,\n })}\n {...{\n disabled,\n id,\n ref,\n required,\n type,\n ...(isMaxLengthPresent && !unlimitedChars && { maxLength }),\n ...otherProps,\n value,\n }}\n onBlur={handleOnBlur}\n onChange={handleChange}\n />\n {suffix && <div className=\"neeto-ui-input__suffix\">{suffix}</div>}\n </div>\n {!!error && (\n <p\n className=\"neeto-ui-input__error\"\n data-cy={`${dataCyLabel}-input-error`}\n id={errorId}\n >\n {error}\n </p>\n )}\n {helpText && (\n <p\n className=\"neeto-ui-input__help-text\"\n data-cy={`${dataCyLabel}-input-help`}\n id={helpTextId}\n >\n {helpText}\n </p>\n )}\n </div>\n );\n }\n);\n\nInput.displayName = \"Input\";\n\nInput.propTypes = {\n /**\n * To specify a unique ID to the Input component.\n */\n id: PropTypes.string,\n /**\n * To specify the size of Input.\n */\n size: PropTypes.oneOf(Object.values(SIZES)),\n /**\n * To specify the type of Input field.\n */\n type: PropTypes.string,\n /**\n * To specify how many decimal places to show in the input.\n *\n * For example, if precision is 2:\n * 10 will be shown as \"10.00\"\n * 10.1 will be shown as \"10.10\"\n * 9.758 will be rounded and shown as \"9.76\"\n */\n precision: PropTypes.number,\n /**\n * To specify the label props to be passed to the Label component.\n */\n labelProps: PropTypes.object,\n /**\n * To specify a maximum character limit to the Input. Charater limit is visible only if the Input value is greater than or equal to 85% of the maximum character limit.\n */\n maxLength: PropTypes.number,\n /**\n * To be used along with maxLength prop. When set to true the character limit will not be enforced and character count will be shown in error state if the character limit is exceeded.\n */\n unlimitedChars: PropTypes.bool,\n /**\n * To specify the text to be displayed above the Input.\n */\n label: PropTypes.string,\n /**\n * To specify the error message to be shown in the Input field.\n */\n error: PropTypes.string,\n /**\n * To specify the content to be added at the end of the Input field.\n */\n suffix: PropTypes.node,\n /**\n * To specify the content to be added at the beginning of the Input field.\n */\n prefix: PropTypes.node,\n /**\n * To specify whether the Input field is disabled or not.\n */\n disabled: PropTypes.bool,\n /**\n * To specify the text that appears below the Input field.\n */\n helpText: PropTypes.string,\n /**\n * To specify external classNames that can be provided as overrides to the main wrapper.\n */\n className: PropTypes.string,\n /**\n * To create an Input field without any borders.\n */\n nakedInput: PropTypes.bool,\n /**\n * To specify the value to be passed as size attribute to the Input field.\n */\n contentSize: PropTypes.number,\n /**\n * To specify whether the Input field is required or not.\n */\n required: PropTypes.bool,\n /**\n * To specify a regex to be matched against the user input. Any character that matches it\n * cannot be input by the user. It will also prevent such characters from being pasted into the input.\n */\n rejectCharsRegex: PropTypes.instanceOf(RegExp),\n /**\n * To disable leading and trailing white spaces onBlur.\n */\n disableTrimOnBlur: PropTypes.bool,\n};\n\nexport default Input;\n"],"names":["toFixed","numStr","precision","num","Number","isNaN","isValidNumberString","trim","formatWithPrecision","value","str","toString","enforceDecimalPrecision","valueStr","split","regex","RegExp","concat","test","parts","length","_parts","_slicedToArray","integerPart","decimalPart","substring","formatWithRejectCharsRegex","rejectCharsRegex","globalRegex","replace","getTrimmedValue","disableTrimOnBlur","SIZES","small","medium","large","Input","forwardRef","_ref","ref","_ref2","_formatWithPrecision","_ref$size","size","_ref$type","type","_ref$label","label","_ref$dataCy","dataCy","_ref$error","error","_ref$suffix","suffix","_ref$prefix","prefix","_ref$disabled","disabled","_ref$helpText","helpText","_ref$className","className","_ref$nakedInput","nakedInput","_ref$contentSize","contentSize","_ref$required","required","maxLength","_ref$unlimitedChars","unlimitedChars","labelProps","onBlur","_ref$disableTrimOnBlu","_ref$precision","otherProps","_objectWithoutProperties","_excluded","_useState","useState","_useState2","valueInternal","setValueInternal","id","useId","errorId","helpTextId","valueLength","isCharacterLimitVisible","maxLengthError","onChange","e","_otherProps$onChange","target","call","isMaxLengthPresent","handleChange","formattedValue","handleOnBlur","trimmedValue","dataCyLabel","hyphenize","React","createElement","classnames","Label","_extends","htmlFor","_defineProperty","_objectSpread","displayName"],"mappings":"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"}
@@ -27,7 +27,7 @@ require('react-colorful');
27
27
  require('./useRecentlyUsedColors-DmV1uj1F.js');
28
28
  require('./Dropdown.js');
29
29
  require('./index-BG9I04iF.js');
30
- var DatePicker = require('./index-C6B9eh7k.js');
30
+ var DatePicker = require('./index-BTPp-54Z.js');
31
31
  require('./Input.js');
32
32
  require('./Label.js');
33
33
  require('./MultiEmailInput.js');
@@ -526,4 +526,4 @@ TimePicker.displayName = "TimePicker";
526
526
 
527
527
  exports.DatePicker = DatePicker;
528
528
  exports.TimePicker = TimePicker;
529
- //# sourceMappingURL=index-C6B9eh7k.js.map
529
+ //# sourceMappingURL=index-BTPp-54Z.js.map