@procore/core-react 12.48.1 → 12.49.0
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.
- package/CHANGELOG.md +23 -0
- package/dist/AnchorNavigation/AnchorNavigation.styles.js +4 -4
- package/dist/Avatar/Avatar.styles.js +5 -5
- package/dist/AvatarStack/AvatarStack.js +3 -3
- package/dist/AvatarStack/AvatarStack.js.map +1 -1
- package/dist/AvatarStack/AvatarStack.styles.d.ts +2 -0
- package/dist/AvatarStack/AvatarStack.styles.js +14 -9
- package/dist/AvatarStack/AvatarStack.styles.js.map +1 -1
- package/dist/Badge/Badge.d.ts +19 -0
- package/dist/Badge/Badge.js +20 -0
- package/dist/Badge/Badge.js.map +1 -1
- package/dist/Badge/Badge.styles.js +2 -2
- package/dist/BadgePill/BadgePill.styles.js +4 -4
- package/dist/Banner/Banner.styles.js +10 -10
- package/dist/Box/Box.styles.js +1 -1
- package/dist/Breadcrumbs/Breadcrumbs.styles.js +4 -4
- package/dist/Button/Button.styles.js +5 -5
- package/dist/Calendar/Calendar.styles.js +9 -9
- package/dist/Card/Card.styles.js +1 -1
- package/dist/Checkbox/Checkbox.js +9 -2
- package/dist/Checkbox/Checkbox.js.map +1 -1
- package/dist/Checkbox/Checkbox.styles.js +7 -7
- package/dist/Checkbox/Checkbox.styles.js.map +1 -1
- package/dist/ContactItem/ContactItem.styles.js +5 -5
- package/dist/Content/Content.styles.js +2 -2
- package/dist/DateInput/DateInput.styles.js +6 -6
- package/dist/DetailPage/DetailPage.js +1 -0
- package/dist/DetailPage/DetailPage.js.map +1 -1
- package/dist/DetailPage/DetailPage.styles.js +7 -7
- package/dist/Dropdown/Dropdown.styles.js +3 -3
- package/dist/DropdownFlyout/DropdownFlyout.styles.js +4 -4
- package/dist/Dropzone/Dropzone.js +1 -1
- package/dist/Dropzone/Dropzone.styles.js +9 -9
- package/dist/EmptyState/EmptyState.styles.js +6 -6
- package/dist/Field/Field.styles.js +3 -3
- package/dist/FileList/FileList.styles.js +3 -3
- package/dist/FileSelect/FileExplorer/FileExplorer.styles.js +9 -9
- package/dist/FileSelect/FileExplorer/FileExplorerSidebar.styles.js +3 -3
- package/dist/FileSelect/FileSelect.styles.js +2 -2
- package/dist/FileSelect/FileSelectDropzone/FileSelectDropzone.styles.js +3 -3
- package/dist/FileSelect/FileTokenList/FileTokenList.styles.js +2 -2
- package/dist/FileSelect/GridSource/GridSource.styles.js +6 -6
- package/dist/FileSelect/LocalSource/LocalSource.styles.js +4 -4
- package/dist/FileSelect/SourceItem/SourceItem.styles.js +3 -3
- package/dist/FileSelect/ThumbnailList/ThumbnailList.styles.js +6 -6
- package/dist/FileSelect/TreeSource/TreeSource.styles.js +1 -1
- package/dist/FileToken/FileToken.styles.js +6 -6
- package/dist/FilterToken/FilterToken.styles.js +5 -5
- package/dist/FlexList/FlexList.styles.js +1 -1
- package/dist/Form/Form.styles.js +13 -13
- package/dist/Form/StyledFormikForm.styles.js +2 -2
- package/dist/GhostPlaceholder/GhostPlaceholder.styles.js +2 -2
- package/dist/Grid/Grid.styles.js +2 -2
- package/dist/GroupSelect/GroupSelect.styles.js +1 -1
- package/dist/Input/Input.styles.js +1 -1
- package/dist/Link/Link.styles.js +1 -1
- package/dist/ListPage/ListPage.d.ts +25 -1
- package/dist/ListPage/ListPage.js +25 -1
- package/dist/ListPage/ListPage.js.map +1 -1
- package/dist/ListPage/ListPage.styles.js +8 -8
- package/dist/Loader/Loader.styles.js +2 -2
- package/dist/MenuImperative/MenuImperative.styles.js +11 -11
- package/dist/Modal/Modal.styles.js +13 -13
- package/dist/MultiSelect/MultiSelect.styles.js +8 -8
- package/dist/NextMenu/NextMenu.styles.js +3 -3
- package/dist/NextTile/NextTile.styles.js +5 -5
- package/dist/Notation/Notation.js +1 -1
- package/dist/NumberInput/NumberInput.js +48 -31
- package/dist/NumberInput/NumberInput.js.map +1 -1
- package/dist/NumberInput/NumberInput.styles.js +7 -7
- package/dist/NumberInput/NumberInput.types.d.ts +14 -0
- package/dist/NumberInput/NumberInput.types.js.map +1 -1
- package/dist/NumberInput/NumberInput.utils.d.ts +1 -0
- package/dist/NumberInput/NumberInput.utils.js +6 -0
- package/dist/NumberInput/NumberInput.utils.js.map +1 -1
- package/dist/Overlay/OverlayArrow.styles.js +1 -1
- package/dist/OverlayTrigger/OverlayTrigger.d.ts +1 -0
- package/dist/OverlayTrigger/OverlayTrigger.js +10 -6
- package/dist/OverlayTrigger/OverlayTrigger.js.map +1 -1
- package/dist/OverlayTrigger/index.d.ts +1 -1
- package/dist/OverlayTrigger/index.js +1 -1
- package/dist/OverlayTrigger/index.js.map +1 -1
- package/dist/PageLayout/PageLayout.d.ts +4 -3
- package/dist/PageLayout/PageLayout.js +26 -8
- package/dist/PageLayout/PageLayout.js.map +1 -1
- package/dist/PageLayout/PageLayout.styles.d.ts +6 -1
- package/dist/PageLayout/PageLayout.styles.js +30 -21
- package/dist/PageLayout/PageLayout.styles.js.map +1 -1
- package/dist/PageLayout/PageLayout.types.d.ts +19 -0
- package/dist/PageLayout/PageLayout.types.js.map +1 -1
- package/dist/PageLayout/index.d.ts +1 -1
- package/dist/PageLayout/index.js.map +1 -1
- package/dist/PageTemplate/PageFooterTemplate/PageFooterTemplate.styles.js +1 -1
- package/dist/PageTemplate/PageHeaderTemplate/PageHeaderTemplate.styles.js +3 -3
- package/dist/PageTemplate/PagePaneTemplate/PagePaneTemplate.styles.js +2 -2
- package/dist/PageTemplate/PageTemplate/PageTemplate.styles.d.ts +2 -2
- package/dist/PageTemplate/PageTemplate/PageTemplate.styles.js +3 -3
- package/dist/Pagination/Pagination.styles.js +5 -5
- package/dist/Panel/Panel.styles.js +11 -11
- package/dist/Pill/Pill.styles.js +3 -3
- package/dist/PillSelect/PillSelect.styles.js +4 -4
- package/dist/Popover/Popover.styles.js +2 -2
- package/dist/Portal/Portal.styles.js +1 -1
- package/dist/ProgressBar/ProgressBar.styles.js +2 -2
- package/dist/RadioButton/RadioButton.styles.js +3 -3
- package/dist/Required/Required.styles.js +3 -3
- package/dist/Search/Search.js +2 -5
- package/dist/Search/Search.js.map +1 -1
- package/dist/Search/Search.styles.js +5 -5
- package/dist/Section/Section.styles.js +7 -7
- package/dist/SegmentedController/SegmentedController.styles.js +4 -4
- package/dist/Select/Select.styles.js +8 -8
- package/dist/Semantic/Semantic.styles.js +9 -9
- package/dist/SettingsPage/SettingsPage.d.ts +1 -1
- package/dist/SettingsPage/SettingsPage.js +1 -0
- package/dist/SettingsPage/SettingsPage.js.map +1 -1
- package/dist/Slider/Slider.styles.js +5 -5
- package/dist/Spinner/Spinner.styles.js +7 -7
- package/dist/SplitViewCard/SplitViewCard.styles.js +8 -8
- package/dist/SuperSelect/SuperSelect.presets.styles.js +1 -1
- package/dist/SuperSelect/SuperSelect.styles.js +40 -40
- package/dist/Switch/Switch.styles.js +5 -5
- package/dist/Switch/Switch.styles.js.map +1 -1
- package/dist/Table/Table.styles.js +29 -29
- package/dist/TableShelf/TableShelf.styles.js +5 -5
- package/dist/Tabs/Tabs.styles.js +16 -16
- package/dist/Tearsheet/Tearsheet.styles.js +5 -5
- package/dist/TextArea/TextArea.styles.js +1 -1
- package/dist/TextEditorOutput/TextEditorOutput.styles.js +1 -1
- package/dist/Thumbnail/Thumbnail.hooks.d.ts +1 -0
- package/dist/Thumbnail/Thumbnail.styles.js +21 -21
- package/dist/ThumbnailGrid/ThumbnailGrid.styles.js +7 -7
- package/dist/TieredSelect/TieredSelect.styles.js +9 -9
- package/dist/Tile/Tile.styles.js +8 -8
- package/dist/Title/Title.styles.js +7 -7
- package/dist/Toast/Toast.js +15 -6
- package/dist/Toast/Toast.js.map +1 -1
- package/dist/Toast/Toast.styles.js +5 -5
- package/dist/Toast/Toast.styles.js.map +1 -1
- package/dist/ToggleButton/ToggleButton.styles.js +1 -1
- package/dist/Token/Token.styles.js +5 -5
- package/dist/ToolHeader/ToolHeader.d.ts +34 -5
- package/dist/ToolHeader/ToolHeader.js +34 -5
- package/dist/ToolHeader/ToolHeader.js.map +1 -1
- package/dist/ToolHeader/ToolHeader.styles.js +6 -6
- package/dist/ToolLandingPage/ToolLandingPage.js +1 -0
- package/dist/ToolLandingPage/ToolLandingPage.js.map +1 -1
- package/dist/ToolLandingPage/ToolLandingPage.styles.js +3 -3
- package/dist/Tooltip/Tooltip.styles.js +3 -3
- package/dist/Tree/Tree.js +1 -1
- package/dist/Tree/Tree.styles.js +10 -10
- package/dist/Typeahead/Typeahead.js +8 -6
- package/dist/Typeahead/Typeahead.js.map +1 -1
- package/dist/Typeahead/Typeahead.styles.d.ts +4 -1
- package/dist/Typeahead/Typeahead.styles.js +15 -10
- package/dist/Typeahead/Typeahead.styles.js.map +1 -1
- package/dist/Typography/Typography.styles.js +1 -1
- package/dist/Typography/Typography.table.story.js +2 -2
- package/dist/_hooks/I18n.d.ts +4 -0
- package/dist/_locales/en.json +3 -1
- package/dist/_locales/pseudo.json +3 -1
- package/dist/_storyHelpers_/components/Deprecation.styles.js +1 -1
- package/dist/_storyHelpers_/components/StoryGrid.js +3 -3
- package/dist/_styles/colors.js +4 -1
- package/dist/_styles/colors.js.map +1 -1
- package/dist/_typedoc/AnchorNavigation/AnchorNavigation.types.json +4 -4
- package/dist/_typedoc/Avatar/Avatar.types.json +20 -20
- package/dist/_typedoc/AvatarStack/AvatarStack.types.json +25 -25
- package/dist/_typedoc/Badge/Badge.json +9 -0
- package/dist/_typedoc/Badge/Badge.types.json +6 -6
- package/dist/_typedoc/Banner/Banner.types.json +15 -15
- package/dist/_typedoc/Box/Box.types.json +68 -68
- package/dist/_typedoc/Breadcrumbs/Breadcrumbs.types.json +10 -10
- package/dist/_typedoc/Button/Button.types.json +14 -14
- package/dist/_typedoc/Calendar/Calendar.types.json +80 -80
- package/dist/_typedoc/Card/Card.types.json +6 -6
- package/dist/_typedoc/Checkbox/Checkbox.types.json +8 -8
- package/dist/_typedoc/ContactItem/ContactItem.types.json +9 -9
- package/dist/_typedoc/DateInput/DateInput.types.json +35 -35
- package/dist/_typedoc/DateSelect/DateSelect.types.json +14 -14
- package/dist/_typedoc/DetailPage/DetailPage.types.json +5 -5
- package/dist/_typedoc/Dropdown/Dropdown.types.json +38 -38
- package/dist/_typedoc/DropdownFlyout/DropdownFlyout.types.json +31 -31
- package/dist/_typedoc/Dropzone/Dropzone.types.json +44 -44
- package/dist/_typedoc/EmptyState/EmptyState.types.json +18 -18
- package/dist/_typedoc/FileList/FileList.types.json +9 -9
- package/dist/_typedoc/FileSelect/FileSelect.types.json +27 -27
- package/dist/_typedoc/FileSelect/GridSource/GridSource.types.json +20 -20
- package/dist/_typedoc/FileSelect/LocalSource/LocalSource.types.json +14 -14
- package/dist/_typedoc/FileSelect/TreeSource/TreeSource.types.json +9 -9
- package/dist/_typedoc/Flex/Flex.types.json +27 -27
- package/dist/_typedoc/FlexList/FlexList.types.json +30 -30
- package/dist/_typedoc/Form/Form.types.json +842 -762
- package/dist/_typedoc/GhostPlaceholder/GhostPlaceholder.types.json +12 -12
- package/dist/_typedoc/Grid/Grid.types.json +8 -8
- package/dist/_typedoc/GroupSelect/GroupSelect.types.json +54 -54
- package/dist/_typedoc/Input/Input.types.json +2 -2
- package/dist/_typedoc/Link/Link.types.json +1 -1
- package/dist/_typedoc/ListPage/ListPage.json +2 -2
- package/dist/_typedoc/ListPage/ListPage.types.json +13 -13
- package/dist/_typedoc/Menu/Menu.types.json +62 -62
- package/dist/_typedoc/MenuImperative/MenuImperative.types.json +84 -84
- package/dist/_typedoc/Modal/Modal.types.json +48 -48
- package/dist/_typedoc/MultiSelect/MultiSelect.types.json +33 -33
- package/dist/_typedoc/NextTile/NextTile.types.json +33 -33
- package/dist/_typedoc/Notation/Notation.types.json +4 -4
- package/dist/_typedoc/NumberInput/NumberInput.types.json +88 -48
- package/dist/_typedoc/OverlayTrigger/OverlayTrigger.types.json +33 -33
- package/dist/_typedoc/PageLayout/PageLayout.types.json +140 -28
- package/dist/_typedoc/Pagination/Pagination.types.json +7 -7
- package/dist/_typedoc/Panel/Panel.types.json +28 -28
- package/dist/_typedoc/Pill/Pill.types.json +2 -2
- package/dist/_typedoc/PillSelect/PillSelect.types.json +49 -49
- package/dist/_typedoc/Popover/Popover.types.json +15 -15
- package/dist/_typedoc/ProgressBar/ProgressBar.types.json +7 -7
- package/dist/_typedoc/RadioButton/RadioButton.types.json +6 -6
- package/dist/_typedoc/Required/Required.types.json +5 -5
- package/dist/_typedoc/Search/Search.types.json +18 -18
- package/dist/_typedoc/Section/Section.types.json +15 -15
- package/dist/_typedoc/SegmentedController/SegmentedController.types.json +21 -21
- package/dist/_typedoc/Select/Select.types.json +67 -67
- package/dist/_typedoc/SettingsPage/SettingsPage.types.json +10 -10
- package/dist/_typedoc/Slider/Slider.types.json +6 -6
- package/dist/_typedoc/Spinner/Spinner.types.json +9 -9
- package/dist/_typedoc/SplitViewCard/SplitViewCard.types.json +14 -14
- package/dist/_typedoc/Table/Table.types.json +105 -105
- package/dist/_typedoc/Tabs/Tabs.types.json +21 -21
- package/dist/_typedoc/Tearsheet/Tearsheet.types.json +17 -17
- package/dist/_typedoc/TextArea/TextArea.types.json +3 -3
- package/dist/_typedoc/TextEditor/TextEditor.types.json +11 -11
- package/dist/_typedoc/TextEditorOutput/TextEditorOutput.types.json +4 -4
- package/dist/_typedoc/Thumbnail/Thumbnail.types.json +19 -19
- package/dist/_typedoc/TieredDropdown/TieredDropdown.types.json +43 -43
- package/dist/_typedoc/TieredSelect/TieredSelect.types.json +29 -29
- package/dist/_typedoc/Tile/Tile.types.json +8 -8
- package/dist/_typedoc/Title/Title.types.json +1 -1
- package/dist/_typedoc/Toast/Toast.types.json +4 -4
- package/dist/_typedoc/ToggleButton/ToggleButton.types.json +4 -4
- package/dist/_typedoc/Token/Token.types.json +7 -7
- package/dist/_typedoc/ToolHeader/ToolHeader.json +2 -2
- package/dist/_typedoc/ToolHeader/ToolHeader.types.json +10 -10
- package/dist/_typedoc/ToolLandingPage/ToolLandingPage.types.json +8 -8
- package/dist/_typedoc/Tooltip/Tooltip.types.json +15 -15
- package/dist/_typedoc/Tree/Tree.types.json +88 -88
- package/dist/_typedoc/Typeahead/Typeahead.types.json +2 -2
- package/dist/_typedoc/Typography/Typography.types.json +9 -9
- package/dist/_typedoc/_utils/types.json +3 -3
- package/dist/_typedoc/a11y-tips.json +1 -1
- package/dist/_typedoc/deprecations.json +1 -1
- package/dist/_utils/propsTypedoc.d.ts +1 -0
- package/dist/_utils/propsTypedoc.js +1 -0
- package/dist/_utils/propsTypedoc.js.map +1 -1
- package/package.json +3 -3
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
2
|
-
var _excluded = ["aria-label", "aria-labelledby", "decimalScale", "defaultValue", "disabled", "error", "fillDecimalScale", "onChange", "onKeyDown", "onBlur", "prefix", "readOnly", "step", "style", "suffix", "value", "qa"],
|
|
2
|
+
var _excluded = ["aria-label", "aria-labelledby", "decimalScale", "defaultValue", "disabled", "error", "fillDecimalScale", "max", "min", "onChange", "onKeyDown", "onBlur", "prefix", "readOnly", "step", "style", "suffix", "value", "qa"],
|
|
3
3
|
_excluded2 = ["currencyDisplay", "currencyIsoCode", "decimalScale", "fillDecimalScale", "prefix", "suffix"];
|
|
4
4
|
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
5
5
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
@@ -24,7 +24,7 @@ import { mergeRefs } from '../_utils/mergeRefs';
|
|
|
24
24
|
import { defaultCurrencyFillDecimalScale, defaultCurrencyInputPrefix } from './NumberInput.constants';
|
|
25
25
|
import { useNumberFormat, useNumberInputLabel, usePrevious } from './NumberInput.hooks';
|
|
26
26
|
import { addonRootFontFamily, addonRootFontSize, addonRootPadding, inputDefaultXPadding, StyledIncrementerButton, StyledIncrementerWrapper, StyledInput, StyledPrefix, StyledSuffix, StyledWrapper } from './NumberInput.styles';
|
|
27
|
-
import { backspaceKey, commaKey, controlKey, copyKey, defaultLocale, deleteKey, emptyString, format, getNewCursorPosition, getSeparators, highlightAllKey, identicalLocales, identifyPressedKey, maxDigitLength, metaKeyIdentifier, minus, numericKeypadKey, periodKey, prepareValueToFormatting, toFixed, unformat } from './NumberInput.utils';
|
|
27
|
+
import { backspaceKey, clamp, commaKey, controlKey, copyKey, defaultLocale, deleteKey, emptyString, format, getNewCursorPosition, getSeparators, highlightAllKey, identicalLocales, identifyPressedKey, maxDigitLength, metaKeyIdentifier, minus, numericKeypadKey, periodKey, prepareValueToFormatting, toFixed, unformat } from './NumberInput.utils';
|
|
28
28
|
function noop() {}
|
|
29
29
|
var PlusIcon = function PlusIcon() {
|
|
30
30
|
return /*#__PURE__*/React.createElement("svg", {
|
|
@@ -73,6 +73,8 @@ export var NumberInput = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
73
73
|
error = _ref$error === void 0 ? false : _ref$error,
|
|
74
74
|
_ref$fillDecimalScale = _ref.fillDecimalScale,
|
|
75
75
|
fillDecimalScale = _ref$fillDecimalScale === void 0 ? 'none' : _ref$fillDecimalScale,
|
|
76
|
+
max = _ref.max,
|
|
77
|
+
min = _ref.min,
|
|
76
78
|
_onChange = _ref.onChange,
|
|
77
79
|
_ref$onKeyDown = _ref.onKeyDown,
|
|
78
80
|
_onKeyDown = _ref$onKeyDown === void 0 ? noop : _ref$onKeyDown,
|
|
@@ -272,8 +274,11 @@ export var NumberInput = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
272
274
|
var diff = toFixed(step, stepPrecision) * (down ? -1 : 1);
|
|
273
275
|
var precision = Math.max(stepPrecision, fixedDecimalScale ? verifiedDecimalScale : prevValuePrecision);
|
|
274
276
|
var significantPrecision = Math.max(prevValueSignificantPrecision, stepPrecision);
|
|
275
|
-
var
|
|
276
|
-
var
|
|
277
|
+
var calculatedNumber = inputValue ? (parsedNumber || 0) + diff : diff;
|
|
278
|
+
var clampedNumber = clamp(calculatedNumber, min, max);
|
|
279
|
+
var wasClamped = clampedNumber !== calculatedNumber;
|
|
280
|
+
var calculated = inputValue ? clampedNumber.toFixed(significantPrecision) : clampedNumber;
|
|
281
|
+
var _getValueLengthInfo = getValueLengthInfo(wasClamped ? clampedNumber : calculated, true),
|
|
277
282
|
isSafeLength = _getValueLengthInfo.isSafeLength,
|
|
278
283
|
isSafeIntegerLength = _getValueLengthInfo.isSafeIntegerLength;
|
|
279
284
|
var rejectStepByLengthLimit = !isSafeLength || !isSafeIntegerLength;
|
|
@@ -281,7 +286,7 @@ export var NumberInput = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
281
286
|
console.warn("WARNING: Incrementer's step was not fulfilled since result oversteps input ".concat(maxDigitLength, "-digit limit and can't be presented without a loss of precision."));
|
|
282
287
|
return;
|
|
283
288
|
}
|
|
284
|
-
var formatted = format(locale, precision, 'always', calculated, true);
|
|
289
|
+
var formatted = wasClamped ? formatValue(clampedNumber) : format(locale, precision, 'always', calculated, true);
|
|
285
290
|
setInputValue(formatted);
|
|
286
291
|
externalOnChange(formatted);
|
|
287
292
|
};
|
|
@@ -369,33 +374,45 @@ export var NumberInput = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
369
374
|
var isDecimalSeparatorRedundant = verifiedDecimalScale > 0 && inputValue[inputValue.length - 1] === decimal && !fillDecimalScaleOnBlur;
|
|
370
375
|
var isDecimalScaleNotFilled = verifiedDecimalScale - fraction.length > 0;
|
|
371
376
|
var shouldDecimalScaleBeFilled = fillDecimalScaleOnBlur && isDecimalScaleNotFilled;
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
377
|
+
var getBaseValue = function getBaseValue() {
|
|
378
|
+
if (shouldValueBeCleared) {
|
|
379
|
+
return emptyString;
|
|
380
|
+
}
|
|
381
|
+
if (shouldIntegerPartBeFilled) {
|
|
382
|
+
var numberOfZerosToPad = verifiedDecimalScale - fraction.length;
|
|
383
|
+
return "".concat(integer, "0").concat(decimal).concat(shouldDecimalScaleBeFilled ? fraction.concat(Array.from({
|
|
384
|
+
length: numberOfZerosToPad
|
|
385
|
+
}, function (_) {
|
|
386
|
+
return '0';
|
|
387
|
+
}).join(emptyString)) : fraction);
|
|
388
|
+
}
|
|
389
|
+
if (isDecimalSeparatorRedundant) {
|
|
390
|
+
return inputValue.replace(new RegExp("[".concat(decimal, "]"), 'g'), emptyString);
|
|
391
|
+
}
|
|
392
|
+
if (shouldDecimalScaleBeFilled) {
|
|
393
|
+
return format(locale, verifiedDecimalScale, 'always', inputValue);
|
|
394
|
+
}
|
|
395
|
+
return inputValue;
|
|
396
|
+
};
|
|
397
|
+
var baseValue = getBaseValue();
|
|
398
|
+
var hasBounds = typeof min === 'number' || typeof max === 'number';
|
|
399
|
+
var _unformat5 = unformat(locale, baseValue),
|
|
400
|
+
baseParsed = _unformat5.parsedNumber;
|
|
401
|
+
var clampedParsed = clamp(baseParsed, min, max);
|
|
402
|
+
var needsClamp = hasBounds && Number.isFinite(baseParsed) && clampedParsed !== baseParsed;
|
|
403
|
+
var clampFillScale = fixedDecimalScale || fillDecimalScaleOnBlur ? 'always' : 'none';
|
|
404
|
+
var finalValue = needsClamp ? format(locale, verifiedDecimalScale, clampFillScale, clampedParsed, true) : baseValue;
|
|
405
|
+
if (finalValue !== inputValue) {
|
|
406
|
+
setInputValue(finalValue);
|
|
407
|
+
externalOnChange(finalValue);
|
|
396
408
|
}
|
|
397
409
|
_onBlur(e);
|
|
398
410
|
};
|
|
411
|
+
var _unformat6 = unformat(locale, inputValue),
|
|
412
|
+
currentParsedNumber = _unformat6.parsedNumber;
|
|
413
|
+
var hasFiniteValue = Number.isFinite(currentParsedNumber);
|
|
414
|
+
var isAtMax = hasFiniteValue && Number.isFinite(max) && currentParsedNumber >= max;
|
|
415
|
+
var isAtMin = hasFiniteValue && Number.isFinite(min) && currentParsedNumber <= min;
|
|
399
416
|
return /*#__PURE__*/React.createElement(StyledWrapper, {
|
|
400
417
|
$hasIncrementer: hasIncrementer,
|
|
401
418
|
"data-qa": qa === null || qa === void 0 ? void 0 : qa.wrapper
|
|
@@ -427,7 +444,7 @@ export var NumberInput = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
427
444
|
}, suffixProps), suffix), hasIncrementer && /*#__PURE__*/React.createElement(StyledIncrementerWrapper, null, /*#__PURE__*/React.createElement(StyledIncrementerButton, {
|
|
428
445
|
"aria-hidden": "true",
|
|
429
446
|
type: "button",
|
|
430
|
-
disabled: disabled,
|
|
447
|
+
disabled: disabled || isAtMax,
|
|
431
448
|
tabIndex: -1,
|
|
432
449
|
"data-qa": qa === null || qa === void 0 ? void 0 : qa.increment,
|
|
433
450
|
onClick: function onClick() {
|
|
@@ -436,7 +453,7 @@ export var NumberInput = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
436
453
|
}, /*#__PURE__*/React.createElement(PlusIcon, null)), /*#__PURE__*/React.createElement(StyledIncrementerButton, {
|
|
437
454
|
"aria-hidden": "true",
|
|
438
455
|
type: "button",
|
|
439
|
-
disabled: disabled,
|
|
456
|
+
disabled: disabled || isAtMin,
|
|
440
457
|
tabIndex: -1,
|
|
441
458
|
"data-qa": qa === null || qa === void 0 ? void 0 : qa.decrement,
|
|
442
459
|
onClick: function onClick() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NumberInput.js","names":["formatCurrencyToParts","findIndex","React","useI18nContext","spacing","mergeRefs","defaultCurrencyFillDecimalScale","defaultCurrencyInputPrefix","useNumberFormat","useNumberInputLabel","usePrevious","addonRootFontFamily","addonRootFontSize","addonRootPadding","inputDefaultXPadding","StyledIncrementerButton","StyledIncrementerWrapper","StyledInput","StyledPrefix","StyledSuffix","StyledWrapper","backspaceKey","commaKey","controlKey","copyKey","defaultLocale","deleteKey","emptyString","format","getNewCursorPosition","getSeparators","highlightAllKey","identicalLocales","identifyPressedKey","maxDigitLength","metaKeyIdentifier","minus","numericKeypadKey","periodKey","prepareValueToFormatting","toFixed","unformat","noop","PlusIcon","createElement","width","height","viewBox","xmlns","d","MinusIcon","NumberInput","forwardRef","_ref","ref","ariaLabel","ariaLabelledBy","_ref$decimalScale","decimalScale","defaultValue","_ref$disabled","disabled","_ref$error","error","_ref$fillDecimalScale","fillDecimalScale","_onChange","onChange","_ref$onKeyDown","onKeyDown","_onKeyDown","_ref$onBlur","onBlur","_onBlur","_ref$prefix","prefix","readOnly","_ref$step","step","style","_ref$suffix","suffix","value","qa","props","_objectWithoutProperties","_excluded","I18n","contextLocale","locale","inputRef","useRef","_useNumberFormat","verifiedDecimalScale","fillDecimalScaleOnBlur","fixedDecimalScale","formatValue","getValueLengthInfo","_useNumberInputLabel","id","name","inputProps","prefixProps","suffixProps","isControlled","undefined","isControlledWithoutOnChangeHandlerAndReadOnlyAttribute","hasIncrementer","_React$useMemo","useMemo","group","decimal","decimalSeparatorKey","inputPadding","fontContext","concat","element","document","context","getContext","font","extraBasePadding","suffixPadding","Math","ceil","measureText","getRightPadding","xl","left","right","getValueChange","useCallback","_unformat","parsedNumber","isNaN","externalOnChange","_React$useState","useState","_React$useState2","_slicedToArray","inputValue","setInputValue","_React$useState3","_React$useState4","prevValue","setPrevValue","_React$useState5","selectionStart","selectionEnd","selection","_React$useState6","prevCursorPosition","setPrevCursorPosition","_React$useState7","_React$useState8","pressedKey","setPressedKey","prevLocale","useLayoutEffect","formattedValue","console","useEffect","prev","newValue","_inputRef$current","displayValue","current","lastChar","length","lastCharIsPending","includes","decimals","split","lastDecimalIsZero","onlyMinusDisplayed","getNewValueAndCursorPosition","preparedValue","newCursorPosition","adjustCursor","newPosition","_inputRef$current2","setSelectionRange","setTimeout","_inputRef$current3","makeStep","down","arguments","getSignificantPrecision","fraction","reversedFraction","reverse","indexOfLastSignificantFractionDigit","i","slice","_unformat2","_unformat3","stepFraction","prevValuePrecision","prevValueSignificantPrecision","rawStepPrecision","rawStepPrecisionExceedsDecimalScale","stepPrecision","warn","diff","precision","max","significantPrecision","calculated","_getValueLengthInfo","isSafeLength","isSafeIntegerLength","rejectStepByLengthLimit","formatted","internalOnKeyDown","e","ctrlKey","metaKey","key","_e$target","target","preserveDecimalSeparator","decimalBackspaced","decimalDeleted","nonReplacingKeys","decimalReplacedAsSelection","preserveDecimal","base","shift","cursorPosition","preventDefault","isDecimalSeparatorPreserved","_getValueLengthInfo2","safeIntegerLength","integerLength","fractionLength","decimalSeparatorCanNotBeRemoved","handleIncrementer","internalOnChange","inputType","nativeEvent","_getNewValueAndCursor","internalOnBlur","_unformat4","integer","shouldValueBeCleared","shouldIntegerPartBeFilled","isDecimalSeparatorRedundant","isDecimalScaleNotFilled","shouldDecimalScaleBeFilled","getNewValue","numberOfZerosToPad","Array","from","_","join","replace","RegExp","$hasIncrementer","wrapper","_extends","inputMode","lang","_objectSpread","paddingLeft","paddingRight","$withIncrementer","type","tabIndex","increment","onClick","decrement","displayName","getCurrencyProps","_decimalScale","symbol","currencyIsoCode","currencyDisplay","_parts$find","_parts$find2","currencyOptions","parts","formatterDecimalScale","find","part","placement","object","currencyIsoSymbol","toString","currencyProps","CurrencyInput","_ref2","_ref2$fillDecimalScal","_ref2$prefix","_excluded2"],"sources":["../../src/NumberInput/NumberInput.tsx"],"sourcesContent":["import type {\n CurrencyDisplay,\n CurrencyOptions,\n} from '@procore/globalization-toolkit'\nimport { formatCurrencyToParts } from '@procore/globalization-toolkit'\nimport { findIndex } from 'ramda'\nimport React from 'react'\nimport { useI18nContext } from '../_hooks/I18n'\nimport { spacing } from '../_styles/spacing'\nimport { mergeRefs } from '../_utils/mergeRefs'\nimport {\n defaultCurrencyFillDecimalScale,\n defaultCurrencyInputPrefix,\n} from './NumberInput.constants'\nimport {\n useNumberFormat,\n useNumberInputLabel,\n usePrevious,\n} from './NumberInput.hooks'\nimport {\n addonRootFontFamily,\n addonRootFontSize,\n addonRootPadding,\n inputDefaultXPadding,\n StyledIncrementerButton,\n StyledIncrementerWrapper,\n StyledInput,\n StyledPrefix,\n StyledSuffix,\n StyledWrapper,\n} from './NumberInput.styles'\nimport type {\n CurrencyInputProps,\n CurrencyProps,\n CursorPosition,\n NumberInputProps,\n PressedKey,\n} from './NumberInput.types'\nimport {\n backspaceKey,\n commaKey,\n controlKey,\n copyKey,\n defaultLocale,\n deleteKey,\n emptyString,\n format,\n getNewCursorPosition,\n getSeparators,\n highlightAllKey,\n identicalLocales,\n identifyPressedKey,\n maxDigitLength,\n metaKeyIdentifier,\n minus,\n numericKeypadKey,\n periodKey,\n prepareValueToFormatting,\n toFixed,\n unformat,\n} from './NumberInput.utils'\n\nfunction noop() {}\n\nconst PlusIcon = () => (\n <svg\n width=\"8\"\n height=\"8\"\n viewBox=\"0 0 8 8\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M4.5 0H3.5V3.5H0V4.5H3.5V8H4.5V4.5H8V3.5H4.5V0Z\" />\n </svg>\n)\n\nconst MinusIcon = () => (\n <svg\n width=\"8\"\n height=\"2\"\n viewBox=\"0 0 8 2\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M4.5 0.5H3.5H0V1.5H3.5H4.5H8V0.5H4.5Z\" />\n </svg>\n)\n\n/**\n\n The number input allows users to add numbers to a given form or table.\n The currency input will be used for data with a monetary value.\n Both components allow characters 0-9, periods, and commas. In order to avoid\n the loss of precision, the number length is limited by 15 digits.\n\n @since 10.19.0\n\n @see [Storybook](https://stories.core.procore.com/?path=/story/core-react_demos-numberinput--demo-number-input)\n\n @see [Design Guidelines](https://design.procore.com/number-and-currency-input)\n\n */\nexport const NumberInput = React.forwardRef<HTMLInputElement, NumberInputProps>(\n (\n {\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n decimalScale = true,\n defaultValue,\n disabled = false,\n error = false,\n fillDecimalScale = 'none',\n onChange: _onChange,\n onKeyDown: _onKeyDown = noop,\n onBlur: _onBlur = noop,\n prefix = emptyString,\n readOnly,\n step = 0,\n style,\n suffix = emptyString,\n value,\n qa,\n ...props\n },\n ref\n ) => {\n const I18n = useI18nContext()\n const contextLocale = I18n.locale || defaultLocale\n const inputRef = React.useRef<HTMLInputElement>(null)\n\n const {\n decimalScale: verifiedDecimalScale,\n fillDecimalScaleOnBlur,\n fixedDecimalScale,\n formatValue,\n getValueLengthInfo,\n locale,\n } = useNumberFormat({\n decimalScale,\n fillDecimalScale,\n locale: contextLocale,\n })\n\n const { inputProps, prefixProps, suffixProps } = useNumberInputLabel({\n ariaLabel,\n ariaLabelledBy,\n id: props.id,\n name: props.name,\n prefix,\n suffix,\n })\n\n const isControlled = value !== undefined\n const isControlledWithoutOnChangeHandlerAndReadOnlyAttribute =\n isControlled && !_onChange && !readOnly\n const hasIncrementer = step > 0 && !readOnly\n\n const { group, decimal } = React.useMemo(\n () => getSeparators(locale),\n [locale]\n )\n const decimalSeparatorKey = React.useMemo(() => {\n return decimal === periodKey ? periodKey : commaKey\n }, [decimal])\n\n const inputPadding = React.useMemo((): {\n left: number\n right: number | null\n } => {\n const fontContext = `${addonRootFontSize} \"${addonRootFontFamily}\"`\n\n if (prefix || suffix) {\n const element = document.createElement('canvas')\n const context = element?.getContext('2d')\n\n if (context) {\n context.font = fontContext\n\n const extraBasePadding = inputDefaultXPadding + addonRootPadding\n\n const suffixPadding =\n extraBasePadding + Math.ceil(context.measureText(suffix).width)\n\n const getRightPadding = () => {\n if (hasIncrementer && suffix) {\n return suffixPadding + spacing.xl\n }\n if (suffix) {\n return suffixPadding\n }\n return null\n }\n\n return {\n left: prefix\n ? extraBasePadding + Math.ceil(context.measureText(prefix).width)\n : inputDefaultXPadding,\n right: getRightPadding(),\n }\n }\n }\n\n return {\n left: inputDefaultXPadding,\n right: null,\n }\n }, [prefix, suffix, hasIncrementer])\n\n const getValueChange = React.useCallback(\n (value: string) => {\n const { parsedNumber } = unformat(locale, value)\n return {\n value,\n parsedNumber: isNaN(parsedNumber) ? null : parsedNumber,\n }\n },\n [locale]\n )\n\n const externalOnChange = React.useCallback(\n (value: string) => _onChange && _onChange(getValueChange(value)),\n [_onChange, getValueChange]\n )\n\n const [inputValue, setInputValue] = React.useState(\n formatValue(defaultValue)\n )\n const [prevValue, setPrevValue] = React.useState(\n isControlled ? formatValue(value) : inputValue\n )\n const [prevCursorPosition, setPrevCursorPosition] =\n React.useState<CursorPosition>({\n selectionStart: 0,\n selectionEnd: 0,\n selection: emptyString,\n })\n const [pressedKey, setPressedKey] = React.useState()\n const prevLocale = usePrevious(locale)\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n React.useLayoutEffect(() => {\n const formattedValue = formatValue(value)\n if (isControlled && inputValue !== formattedValue) {\n setInputValue(formattedValue)\n }\n\n if (isControlledWithoutOnChangeHandlerAndReadOnlyAttribute) {\n console.error(\n `Warning: Failed prop type: You provided a \\`value\\` prop to a form field without an \\`onChange\\` handler.\n This will render a read-only field. If the field should be mutable use \\`defaultValue\\`.\n Otherwise, set either \\`onChange\\` or \\`readOnly\\`.`\n )\n }\n }, [value])\n\n React.useEffect(() => {\n if (prevLocale && !identicalLocales(prevLocale, locale)) {\n setInputValue((prev) => {\n const newValue = formatValue(unformat(prevLocale, prev).parsedNumber)\n externalOnChange(newValue)\n return newValue\n })\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [prevLocale, formatValue])\n\n React.useLayoutEffect(() => {\n const displayValue = inputRef.current?.value || ''\n if (!_onChange || !displayValue) {\n return\n }\n const formattedValue = formatValue(value)\n\n if (displayValue !== formattedValue) {\n const lastChar = displayValue[displayValue.length - 1]\n const lastCharIsPending = [periodKey, commaKey].includes(lastChar)\n\n const decimals = displayValue.split(decimal)[1] || ''\n const lastDecimalIsZero =\n decimals && decimals[decimals.length - 1] === '0'\n\n const onlyMinusDisplayed = displayValue === minus\n\n // a client state and display mismatch is only valid when\n if (lastCharIsPending || lastDecimalIsZero || onlyMinusDisplayed) {\n return\n }\n\n // otherwise sync display with client state\n setInputValue(formattedValue)\n }\n })\n\n const getNewValueAndCursorPosition = (\n value: string,\n pressedKey: PressedKey\n ) => {\n const preparedValue = prepareValueToFormatting(\n decimal,\n decimalSeparatorKey,\n group,\n pressedKey,\n prevCursorPosition,\n prevValue,\n verifiedDecimalScale,\n value\n )\n const newValue = formatValue(preparedValue)\n\n return {\n newValue,\n newCursorPosition: getNewCursorPosition(\n decimal,\n decimalSeparatorKey,\n group,\n newValue,\n pressedKey,\n prevCursorPosition,\n prevValue,\n value,\n verifiedDecimalScale,\n locale,\n fillDecimalScale\n ),\n }\n }\n\n const adjustCursor = (newPosition: number) => {\n inputRef.current?.setSelectionRange(newPosition, newPosition)\n // Mobile Chrome adjustment\n setTimeout(\n () => inputRef.current?.setSelectionRange(newPosition, newPosition),\n 0\n )\n }\n\n const makeStep = (down = false) => {\n const getSignificantPrecision = (fraction: string) => {\n const reversedFraction = fraction.split(emptyString).reverse()\n const indexOfLastSignificantFractionDigit = findIndex(\n (i) => i !== '0',\n reversedFraction\n )\n\n return indexOfLastSignificantFractionDigit > -1\n ? reversedFraction.slice(indexOfLastSignificantFractionDigit).length\n : 0\n }\n\n const { parsedNumber, fraction } = unformat(locale, inputValue)\n const { fraction: stepFraction } = unformat(locale, step)\n\n const prevValuePrecision = fraction.length || 0\n const prevValueSignificantPrecision = getSignificantPrecision(fraction)\n const rawStepPrecision = stepFraction.length || 0\n const rawStepPrecisionExceedsDecimalScale =\n rawStepPrecision > verifiedDecimalScale\n const stepPrecision = rawStepPrecisionExceedsDecimalScale\n ? verifiedDecimalScale\n : rawStepPrecision\n\n if (rawStepPrecisionExceedsDecimalScale) {\n console.warn(\n `WARNING: Step's value was rounded since its scale (${rawStepPrecision}) exceeds the decimal scale (${verifiedDecimalScale}).`\n )\n }\n\n const diff = toFixed(step, stepPrecision) * (down ? -1 : 1)\n const precision = Math.max(\n stepPrecision,\n fixedDecimalScale ? verifiedDecimalScale : prevValuePrecision\n )\n const significantPrecision = Math.max(\n prevValueSignificantPrecision,\n stepPrecision\n )\n const calculated = inputValue\n ? ((parsedNumber || 0) + diff).toFixed(significantPrecision)\n : diff\n\n const { isSafeLength, isSafeIntegerLength } = getValueLengthInfo(\n calculated,\n true\n )\n\n const rejectStepByLengthLimit = !isSafeLength || !isSafeIntegerLength\n\n if (rejectStepByLengthLimit) {\n console.warn(\n `WARNING: Incrementer's step was not fulfilled since result oversteps input ${maxDigitLength}-digit limit and can't be presented without a loss of precision.`\n )\n return\n }\n\n const formatted = format(locale, precision, 'always', calculated, true)\n\n setInputValue(formatted)\n externalOnChange(formatted)\n }\n\n const internalOnKeyDown = (e: any) => {\n const {\n ctrlKey,\n metaKey,\n key,\n target: { value, selectionStart, selectionEnd },\n } = e\n\n const selection = value.slice(selectionStart, selectionEnd)\n\n setPressedKey(key)\n setPrevCursorPosition({\n selectionStart,\n selectionEnd,\n selection,\n })\n setPrevValue(value)\n\n const preserveDecimalSeparator = () => {\n const decimalBackspaced =\n !selection &&\n [backspaceKey].includes(key) &&\n value[selectionEnd - 1] === decimal\n\n const decimalDeleted =\n !selection &&\n [deleteKey, numericKeypadKey].includes(key) &&\n value[selectionEnd] === decimal\n\n const nonReplacingKeys =\n [metaKeyIdentifier, controlKey, highlightAllKey, copyKey].includes(\n key\n ) &&\n (ctrlKey || metaKey)\n\n const decimalReplacedAsSelection =\n selection &&\n selection.includes(decimal) &&\n selection.length < value.length &&\n !nonReplacingKeys\n\n const preserveDecimal =\n decimalBackspaced || decimalDeleted || decimalReplacedAsSelection\n\n if (preserveDecimal) {\n const base = decimalReplacedAsSelection\n ? selectionStart\n : selectionEnd\n\n const shift = (decimalBackspaced && -1) || (decimalDeleted && 1) || 0\n\n const cursorPosition = base + shift\n\n e.preventDefault()\n adjustCursor(cursorPosition)\n }\n }\n\n const isDecimalSeparatorPreserved = () => {\n const { safeIntegerLength, integerLength, fractionLength } =\n getValueLengthInfo(value)\n\n const decimalSeparatorCanNotBeRemoved =\n safeIntegerLength - integerLength < fractionLength\n\n return (\n (fillDecimalScaleOnBlur && decimalSeparatorCanNotBeRemoved) ||\n fixedDecimalScale\n )\n }\n\n if (isDecimalSeparatorPreserved()) {\n preserveDecimalSeparator()\n }\n\n const handleIncrementer = () => {\n switch (key) {\n case 'ArrowUp':\n case 'Up':\n e.preventDefault()\n makeStep()\n break\n case 'ArrowDown':\n case 'Down':\n e.preventDefault()\n makeStep(true)\n break\n }\n }\n\n if (hasIncrementer) {\n handleIncrementer()\n }\n\n _onKeyDown(e)\n }\n\n const internalOnChange = (e: any) => {\n if (isControlledWithoutOnChangeHandlerAndReadOnlyAttribute) return\n\n const {\n target: { value },\n nativeEvent: { inputType },\n } = e\n\n const { newValue, newCursorPosition } = getNewValueAndCursorPosition(\n value,\n identifyPressedKey(\n decimalSeparatorKey,\n inputType,\n pressedKey,\n prevValue,\n value\n )\n )\n // Prevent cursor flickering\n e.target.value = newValue\n\n setInputValue(newValue)\n adjustCursor(newCursorPosition)\n\n if (newValue !== prevValue) {\n externalOnChange(newValue)\n }\n }\n\n const internalOnBlur = (e: any) => {\n const { integer, fraction } = unformat(locale, inputValue)\n\n const shouldValueBeCleared =\n inputValue === minus ||\n inputValue === decimal ||\n inputValue === `${minus}${decimal}`\n const shouldIntegerPartBeFilled =\n fraction.length > 0 && (integer === emptyString || integer === minus)\n const isDecimalSeparatorRedundant =\n verifiedDecimalScale > 0 &&\n inputValue[inputValue.length - 1] === decimal &&\n !fillDecimalScaleOnBlur\n const isDecimalScaleNotFilled = verifiedDecimalScale - fraction.length > 0\n const shouldDecimalScaleBeFilled =\n fillDecimalScaleOnBlur && isDecimalScaleNotFilled\n\n if (\n shouldValueBeCleared ||\n shouldIntegerPartBeFilled ||\n isDecimalSeparatorRedundant ||\n shouldDecimalScaleBeFilled\n ) {\n const getNewValue = () => {\n if (shouldValueBeCleared) {\n return emptyString\n }\n if (shouldIntegerPartBeFilled) {\n const numberOfZerosToPad = verifiedDecimalScale - fraction.length\n return `${integer}0${decimal}${\n shouldDecimalScaleBeFilled\n ? fraction.concat(\n Array.from({ length: numberOfZerosToPad }, (_) => '0').join(\n emptyString\n )\n )\n : fraction\n }`\n }\n if (isDecimalSeparatorRedundant) {\n return inputValue.replace(\n new RegExp(`[${decimal}]`, 'g'),\n emptyString\n )\n }\n if (shouldDecimalScaleBeFilled) {\n return format(locale, verifiedDecimalScale, 'always', inputValue)\n }\n\n return inputValue\n }\n const newValue = getNewValue()\n setInputValue(newValue)\n externalOnChange(newValue)\n }\n\n _onBlur(e)\n }\n\n return (\n <StyledWrapper $hasIncrementer={hasIncrementer} data-qa={qa?.wrapper}>\n <StyledInput\n value={inputValue}\n disabled={disabled}\n error={error}\n onKeyDown={internalOnKeyDown}\n onChange={internalOnChange}\n onBlur={internalOnBlur}\n inputMode=\"numeric\"\n // Chrome- InvalidStateError: Failed to execute 'setSelectionRange' on 'HTMLInputElement': The input element's type ('number') does not support selection.\n // Firefox- Uncaught DOMException: An attempt was made to use an object that is not, or is no longer, usable\n // type={hasIncrementer ? 'number' : undefined}\n lang={contextLocale}\n readOnly={readOnly}\n style={{\n ...style,\n ...{\n paddingLeft: `${inputPadding.left}px`,\n paddingRight: `${inputPadding.right}px`,\n },\n }}\n {...inputProps}\n {...props}\n ref={mergeRefs(ref, inputRef)}\n />\n {prefix && (\n <StyledPrefix disabled={disabled} {...prefixProps}>\n {prefix}\n </StyledPrefix>\n )}\n {suffix && (\n <StyledSuffix\n $withIncrementer={hasIncrementer}\n disabled={disabled}\n {...suffixProps}\n >\n {suffix}\n </StyledSuffix>\n )}\n {hasIncrementer && (\n <StyledIncrementerWrapper>\n <StyledIncrementerButton\n aria-hidden=\"true\"\n type=\"button\"\n disabled={disabled}\n tabIndex={-1}\n data-qa={qa?.increment}\n onClick={() => makeStep()}\n >\n <PlusIcon />\n </StyledIncrementerButton>\n <StyledIncrementerButton\n aria-hidden=\"true\"\n type=\"button\"\n disabled={disabled}\n tabIndex={-1}\n data-qa={qa?.decrement}\n onClick={() => makeStep(true)}\n >\n <MinusIcon />\n </StyledIncrementerButton>\n </StyledIncrementerWrapper>\n )}\n </StyledWrapper>\n )\n }\n)\n\nNumberInput.displayName = 'NumberInput'\n\nexport const getCurrencyProps = (\n locale: string,\n _decimalScale: NumberInputProps['decimalScale'],\n symbol?: string,\n currencyIsoCode?: string,\n currencyDisplay?: CurrencyDisplay\n): CurrencyProps => {\n const currencyOptions: CurrencyOptions = {\n locale,\n currencyIsoCode: currencyIsoCode || 'USD',\n currencyDisplay: currencyDisplay || 'narrowSymbol',\n }\n const parts = formatCurrencyToParts(1, currencyOptions)\n\n const formatterDecimalScale =\n parts.find((part) => part.type === 'fraction')?.value.length || 0\n const decimalScale = _decimalScale || formatterDecimalScale\n\n const placement =\n parts.findIndex((object) => {\n return object.type === 'currency'\n }) <\n parts.findIndex((part) => {\n return part.type === 'integer'\n })\n ? 'prefix'\n : 'suffix'\n\n const currencyIsoSymbol = currencyIsoCode\n ? parts.find((part) => part.type === 'currency')?.value.toString()\n : undefined\n\n const currencyProps: CurrencyProps =\n placement === 'prefix'\n ? {\n decimalScale: decimalScale as NumberInputProps['decimalScale'],\n prefix: currencyIsoSymbol || symbol || '',\n }\n : {\n decimalScale: decimalScale as NumberInputProps['decimalScale'],\n suffix: currencyIsoSymbol || symbol || '',\n }\n\n return currencyProps\n}\n\nexport const CurrencyInput = React.forwardRef<\n HTMLInputElement,\n CurrencyInputProps\n>(\n (\n {\n currencyDisplay,\n currencyIsoCode,\n decimalScale: _decimalScale,\n fillDecimalScale = defaultCurrencyFillDecimalScale,\n prefix = defaultCurrencyInputPrefix,\n suffix,\n ...props\n },\n ref\n ) => {\n const I18n = useI18nContext()\n const contextLocale = props.locale || I18n.locale || defaultLocale\n\n const currencyProps: CurrencyProps = getCurrencyProps(\n contextLocale as string,\n _decimalScale,\n prefix || suffix,\n currencyIsoCode,\n currencyDisplay\n )\n\n return (\n <NumberInput\n fillDecimalScale={fillDecimalScale}\n {...props}\n {...currencyProps}\n ref={ref}\n />\n )\n }\n)\n\nCurrencyInput.displayName = 'CurrencyInput'\n"],"mappings":";;;;;;;;;;;;;;;;;AAIA,SAASA,qBAAqB,QAAQ,gCAAgC;AACtE,SAASC,SAAS,QAAQ,OAAO;AACjC,OAAOC,KAAK,MAAM,OAAO;AACzB,SAASC,cAAc,QAAQ,gBAAgB;AAC/C,SAASC,OAAO,QAAQ,oBAAoB;AAC5C,SAASC,SAAS,QAAQ,qBAAqB;AAC/C,SACEC,+BAA+B,EAC/BC,0BAA0B,QACrB,yBAAyB;AAChC,SACEC,eAAe,EACfC,mBAAmB,EACnBC,WAAW,QACN,qBAAqB;AAC5B,SACEC,mBAAmB,EACnBC,iBAAiB,EACjBC,gBAAgB,EAChBC,oBAAoB,EACpBC,uBAAuB,EACvBC,wBAAwB,EACxBC,WAAW,EACXC,YAAY,EACZC,YAAY,EACZC,aAAa,QACR,sBAAsB;AAQ7B,SACEC,YAAY,EACZC,QAAQ,EACRC,UAAU,EACVC,OAAO,EACPC,aAAa,EACbC,SAAS,EACTC,WAAW,EACXC,MAAM,EACNC,oBAAoB,EACpBC,aAAa,EACbC,eAAe,EACfC,gBAAgB,EAChBC,kBAAkB,EAClBC,cAAc,EACdC,iBAAiB,EACjBC,KAAK,EACLC,gBAAgB,EAChBC,SAAS,EACTC,wBAAwB,EACxBC,OAAO,EACPC,QAAQ,QACH,qBAAqB;AAE5B,SAASC,IAAIA,CAAA,EAAG,CAAC;AAEjB,IAAMC,QAAQ,GAAG,SAAXA,QAAQA,CAAA;EAAA,oBACZzC,KAAA,CAAA0C,aAAA;IACEC,KAAK,EAAC,GAAG;IACTC,MAAM,EAAC,GAAG;IACVC,OAAO,EAAC,SAAS;IACjBC,KAAK,EAAC;EAA4B,gBAElC9C,KAAA,CAAA0C,aAAA;IAAMK,CAAC,EAAC;EAAiD,CAAE,CACxD,CAAC;AAAA,CACP;AAED,IAAMC,SAAS,GAAG,SAAZA,SAASA,CAAA;EAAA,oBACbhD,KAAA,CAAA0C,aAAA;IACEC,KAAK,EAAC,GAAG;IACTC,MAAM,EAAC,GAAG;IACVC,OAAO,EAAC,SAAS;IACjBC,KAAK,EAAC;EAA4B,gBAElC9C,KAAA,CAAA0C,aAAA;IAAMK,CAAC,EAAC;EAAuC,CAAE,CAC9C,CAAC;AAAA,CACP;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,IAAME,WAAW,gBAAGjD,KAAK,CAACkD,UAAU,CACzC,UAAAC,IAAA,EAqBEC,GAAG,EACA;EAAA,IApBaC,SAAS,GAAAF,IAAA,CAAvB,YAAY;IACOG,cAAc,GAAAH,IAAA,CAAjC,iBAAiB;IAAAI,iBAAA,GAAAJ,IAAA,CACjBK,YAAY;IAAZA,YAAY,GAAAD,iBAAA,cAAG,IAAI,GAAAA,iBAAA;IACnBE,YAAY,GAAAN,IAAA,CAAZM,YAAY;IAAAC,aAAA,GAAAP,IAAA,CACZQ,QAAQ;IAARA,QAAQ,GAAAD,aAAA,cAAG,KAAK,GAAAA,aAAA;IAAAE,UAAA,GAAAT,IAAA,CAChBU,KAAK;IAALA,KAAK,GAAAD,UAAA,cAAG,KAAK,GAAAA,UAAA;IAAAE,qBAAA,GAAAX,IAAA,CACbY,gBAAgB;IAAhBA,gBAAgB,GAAAD,qBAAA,cAAG,MAAM,GAAAA,qBAAA;IACfE,SAAS,GAAAb,IAAA,CAAnBc,QAAQ;IAAAC,cAAA,GAAAf,IAAA,CACRgB,SAAS;IAAEC,UAAU,GAAAF,cAAA,cAAG1B,IAAI,GAAA0B,cAAA;IAAAG,WAAA,GAAAlB,IAAA,CAC5BmB,MAAM;IAAEC,OAAO,GAAAF,WAAA,cAAG7B,IAAI,GAAA6B,WAAA;IAAAG,WAAA,GAAArB,IAAA,CACtBsB,MAAM;IAANA,MAAM,GAAAD,WAAA,cAAG/C,WAAW,GAAA+C,WAAA;IACpBE,QAAQ,GAAAvB,IAAA,CAARuB,QAAQ;IAAAC,SAAA,GAAAxB,IAAA,CACRyB,IAAI;IAAJA,IAAI,GAAAD,SAAA,cAAG,CAAC,GAAAA,SAAA;IACRE,KAAK,GAAA1B,IAAA,CAAL0B,KAAK;IAAAC,WAAA,GAAA3B,IAAA,CACL4B,MAAM;IAANA,MAAM,GAAAD,WAAA,cAAGrD,WAAW,GAAAqD,WAAA;IACpBE,KAAK,GAAA7B,IAAA,CAAL6B,KAAK;IACLC,EAAE,GAAA9B,IAAA,CAAF8B,EAAE;IACCC,KAAK,GAAAC,wBAAA,CAAAhC,IAAA,EAAAiC,SAAA;EAIV,IAAMC,IAAI,GAAGpF,cAAc,CAAC,CAAC;EAC7B,IAAMqF,aAAa,GAAGD,IAAI,CAACE,MAAM,IAAIhE,aAAa;EAClD,IAAMiE,QAAQ,GAAGxF,KAAK,CAACyF,MAAM,CAAmB,IAAI,CAAC;EAErD,IAAAC,gBAAA,GAOIpF,eAAe,CAAC;MAClBkD,YAAY,EAAZA,YAAY;MACZO,gBAAgB,EAAhBA,gBAAgB;MAChBwB,MAAM,EAAED;IACV,CAAC,CAAC;IAVcK,oBAAoB,GAAAD,gBAAA,CAAlClC,YAAY;IACZoC,sBAAsB,GAAAF,gBAAA,CAAtBE,sBAAsB;IACtBC,iBAAiB,GAAAH,gBAAA,CAAjBG,iBAAiB;IACjBC,WAAW,GAAAJ,gBAAA,CAAXI,WAAW;IACXC,kBAAkB,GAAAL,gBAAA,CAAlBK,kBAAkB;IAClBR,MAAM,GAAAG,gBAAA,CAANH,MAAM;EAOR,IAAAS,oBAAA,GAAiDzF,mBAAmB,CAAC;MACnE8C,SAAS,EAATA,SAAS;MACTC,cAAc,EAAdA,cAAc;MACd2C,EAAE,EAAEf,KAAK,CAACe,EAAE;MACZC,IAAI,EAAEhB,KAAK,CAACgB,IAAI;MAChBzB,MAAM,EAANA,MAAM;MACNM,MAAM,EAANA;IACF,CAAC,CAAC;IAPMoB,UAAU,GAAAH,oBAAA,CAAVG,UAAU;IAAEC,WAAW,GAAAJ,oBAAA,CAAXI,WAAW;IAAEC,WAAW,GAAAL,oBAAA,CAAXK,WAAW;EAS5C,IAAMC,YAAY,GAAGtB,KAAK,KAAKuB,SAAS;EACxC,IAAMC,sDAAsD,GAC1DF,YAAY,IAAI,CAACtC,SAAS,IAAI,CAACU,QAAQ;EACzC,IAAM+B,cAAc,GAAG7B,IAAI,GAAG,CAAC,IAAI,CAACF,QAAQ;EAE5C,IAAAgC,cAAA,GAA2B1G,KAAK,CAAC2G,OAAO,CACtC;MAAA,OAAM/E,aAAa,CAAC2D,MAAM,CAAC;IAAA,GAC3B,CAACA,MAAM,CACT,CAAC;IAHOqB,KAAK,GAAAF,cAAA,CAALE,KAAK;IAAEC,OAAO,GAAAH,cAAA,CAAPG,OAAO;EAItB,IAAMC,mBAAmB,GAAG9G,KAAK,CAAC2G,OAAO,CAAC,YAAM;IAC9C,OAAOE,OAAO,KAAKzE,SAAS,GAAGA,SAAS,GAAGhB,QAAQ;EACrD,CAAC,EAAE,CAACyF,OAAO,CAAC,CAAC;EAEb,IAAME,YAAY,GAAG/G,KAAK,CAAC2G,OAAO,CAAC,YAG9B;IACH,IAAMK,WAAW,MAAAC,MAAA,CAAMvG,iBAAiB,SAAAuG,MAAA,CAAKxG,mBAAmB,OAAG;IAEnE,IAAIgE,MAAM,IAAIM,MAAM,EAAE;MACpB,IAAMmC,OAAO,GAAGC,QAAQ,CAACzE,aAAa,CAAC,QAAQ,CAAC;MAChD,IAAM0E,OAAO,GAAGF,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEG,UAAU,CAAC,IAAI,CAAC;MAEzC,IAAID,OAAO,EAAE;QACXA,OAAO,CAACE,IAAI,GAAGN,WAAW;QAE1B,IAAMO,gBAAgB,GAAG3G,oBAAoB,GAAGD,gBAAgB;QAEhE,IAAM6G,aAAa,GACjBD,gBAAgB,GAAGE,IAAI,CAACC,IAAI,CAACN,OAAO,CAACO,WAAW,CAAC5C,MAAM,CAAC,CAACpC,KAAK,CAAC;QAEjE,IAAMiF,eAAe,GAAG,SAAlBA,eAAeA,CAAA,EAAS;UAC5B,IAAInB,cAAc,IAAI1B,MAAM,EAAE;YAC5B,OAAOyC,aAAa,GAAGtH,OAAO,CAAC2H,EAAE;UACnC;UACA,IAAI9C,MAAM,EAAE;YACV,OAAOyC,aAAa;UACtB;UACA,OAAO,IAAI;QACb,CAAC;QAED,OAAO;UACLM,IAAI,EAAErD,MAAM,GACR8C,gBAAgB,GAAGE,IAAI,CAACC,IAAI,CAACN,OAAO,CAACO,WAAW,CAAClD,MAAM,CAAC,CAAC9B,KAAK,CAAC,GAC/D/B,oBAAoB;UACxBmH,KAAK,EAAEH,eAAe,CAAC;QACzB,CAAC;MACH;IACF;IAEA,OAAO;MACLE,IAAI,EAAElH,oBAAoB;MAC1BmH,KAAK,EAAE;IACT,CAAC;EACH,CAAC,EAAE,CAACtD,MAAM,EAAEM,MAAM,EAAE0B,cAAc,CAAC,CAAC;EAEpC,IAAMuB,cAAc,GAAGhI,KAAK,CAACiI,WAAW,CACtC,UAACjD,KAAa,EAAK;IACjB,IAAAkD,SAAA,GAAyB3F,QAAQ,CAACgD,MAAM,EAAEP,KAAK,CAAC;MAAxCmD,YAAY,GAAAD,SAAA,CAAZC,YAAY;IACpB,OAAO;MACLnD,KAAK,EAALA,KAAK;MACLmD,YAAY,EAAEC,KAAK,CAACD,YAAY,CAAC,GAAG,IAAI,GAAGA;IAC7C,CAAC;EACH,CAAC,EACD,CAAC5C,MAAM,CACT,CAAC;EAED,IAAM8C,gBAAgB,GAAGrI,KAAK,CAACiI,WAAW,CACxC,UAACjD,KAAa;IAAA,OAAKhB,SAAS,IAAIA,SAAS,CAACgE,cAAc,CAAChD,KAAK,CAAC,CAAC;EAAA,GAChE,CAAChB,SAAS,EAAEgE,cAAc,CAC5B,CAAC;EAED,IAAAM,eAAA,GAAoCtI,KAAK,CAACuI,QAAQ,CAChDzC,WAAW,CAACrC,YAAY,CAC1B,CAAC;IAAA+E,gBAAA,GAAAC,cAAA,CAAAH,eAAA;IAFMI,UAAU,GAAAF,gBAAA;IAAEG,aAAa,GAAAH,gBAAA;EAGhC,IAAAI,gBAAA,GAAkC5I,KAAK,CAACuI,QAAQ,CAC9CjC,YAAY,GAAGR,WAAW,CAACd,KAAK,CAAC,GAAG0D,UACtC,CAAC;IAAAG,gBAAA,GAAAJ,cAAA,CAAAG,gBAAA;IAFME,SAAS,GAAAD,gBAAA;IAAEE,YAAY,GAAAF,gBAAA;EAG9B,IAAAG,gBAAA,GACEhJ,KAAK,CAACuI,QAAQ,CAAiB;MAC7BU,cAAc,EAAE,CAAC;MACjBC,YAAY,EAAE,CAAC;MACfC,SAAS,EAAE1H;IACb,CAAC,CAAC;IAAA2H,gBAAA,GAAAX,cAAA,CAAAO,gBAAA;IALGK,kBAAkB,GAAAD,gBAAA;IAAEE,qBAAqB,GAAAF,gBAAA;EAMhD,IAAAG,gBAAA,GAAoCvJ,KAAK,CAACuI,QAAQ,CAAC,CAAC;IAAAiB,gBAAA,GAAAf,cAAA,CAAAc,gBAAA;IAA7CE,UAAU,GAAAD,gBAAA;IAAEE,aAAa,GAAAF,gBAAA;EAChC,IAAMG,UAAU,GAAGnJ,WAAW,CAAC+E,MAAM,CAAC;;EAEtC;EACAvF,KAAK,CAAC4J,eAAe,CAAC,YAAM;IAC1B,IAAMC,cAAc,GAAG/D,WAAW,CAACd,KAAK,CAAC;IACzC,IAAIsB,YAAY,IAAIoC,UAAU,KAAKmB,cAAc,EAAE;MACjDlB,aAAa,CAACkB,cAAc,CAAC;IAC/B;IAEA,IAAIrD,sDAAsD,EAAE;MAC1DsD,OAAO,CAACjG,KAAK,iQAIb,CAAC;IACH;EACF,CAAC,EAAE,CAACmB,KAAK,CAAC,CAAC;EAEXhF,KAAK,CAAC+J,SAAS,CAAC,YAAM;IACpB,IAAIJ,UAAU,IAAI,CAAC7H,gBAAgB,CAAC6H,UAAU,EAAEpE,MAAM,CAAC,EAAE;MACvDoD,aAAa,CAAC,UAACqB,IAAI,EAAK;QACtB,IAAMC,QAAQ,GAAGnE,WAAW,CAACvD,QAAQ,CAACoH,UAAU,EAAEK,IAAI,CAAC,CAAC7B,YAAY,CAAC;QACrEE,gBAAgB,CAAC4B,QAAQ,CAAC;QAC1B,OAAOA,QAAQ;MACjB,CAAC,CAAC;IACJ;IACA;EACF,CAAC,EAAE,CAACN,UAAU,EAAE7D,WAAW,CAAC,CAAC;EAE7B9F,KAAK,CAAC4J,eAAe,CAAC,YAAM;IAAA,IAAAM,iBAAA;IAC1B,IAAMC,YAAY,GAAG,EAAAD,iBAAA,GAAA1E,QAAQ,CAAC4E,OAAO,cAAAF,iBAAA,uBAAhBA,iBAAA,CAAkBlF,KAAK,KAAI,EAAE;IAClD,IAAI,CAAChB,SAAS,IAAI,CAACmG,YAAY,EAAE;MAC/B;IACF;IACA,IAAMN,cAAc,GAAG/D,WAAW,CAACd,KAAK,CAAC;IAEzC,IAAImF,YAAY,KAAKN,cAAc,EAAE;MACnC,IAAMQ,QAAQ,GAAGF,YAAY,CAACA,YAAY,CAACG,MAAM,GAAG,CAAC,CAAC;MACtD,IAAMC,iBAAiB,GAAG,CAACnI,SAAS,EAAEhB,QAAQ,CAAC,CAACoJ,QAAQ,CAACH,QAAQ,CAAC;MAElE,IAAMI,QAAQ,GAAGN,YAAY,CAACO,KAAK,CAAC7D,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;MACrD,IAAM8D,iBAAiB,GACrBF,QAAQ,IAAIA,QAAQ,CAACA,QAAQ,CAACH,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG;MAEnD,IAAMM,kBAAkB,GAAGT,YAAY,KAAKjI,KAAK;;MAEjD;MACA,IAAIqI,iBAAiB,IAAII,iBAAiB,IAAIC,kBAAkB,EAAE;QAChE;MACF;;MAEA;MACAjC,aAAa,CAACkB,cAAc,CAAC;IAC/B;EACF,CAAC,CAAC;EAEF,IAAMgB,4BAA4B,GAAG,SAA/BA,4BAA4BA,CAChC7F,KAAa,EACbyE,UAAsB,EACnB;IACH,IAAMqB,aAAa,GAAGzI,wBAAwB,CAC5CwE,OAAO,EACPC,mBAAmB,EACnBF,KAAK,EACL6C,UAAU,EACVJ,kBAAkB,EAClBP,SAAS,EACTnD,oBAAoB,EACpBX,KACF,CAAC;IACD,IAAMiF,QAAQ,GAAGnE,WAAW,CAACgF,aAAa,CAAC;IAE3C,OAAO;MACLb,QAAQ,EAARA,QAAQ;MACRc,iBAAiB,EAAEpJ,oBAAoB,CACrCkF,OAAO,EACPC,mBAAmB,EACnBF,KAAK,EACLqD,QAAQ,EACRR,UAAU,EACVJ,kBAAkB,EAClBP,SAAS,EACT9D,KAAK,EACLW,oBAAoB,EACpBJ,MAAM,EACNxB,gBACF;IACF,CAAC;EACH,CAAC;EAED,IAAMiH,YAAY,GAAG,SAAfA,YAAYA,CAAIC,WAAmB,EAAK;IAAA,IAAAC,kBAAA;IAC5C,CAAAA,kBAAA,GAAA1F,QAAQ,CAAC4E,OAAO,cAAAc,kBAAA,uBAAhBA,kBAAA,CAAkBC,iBAAiB,CAACF,WAAW,EAAEA,WAAW,CAAC;IAC7D;IACAG,UAAU,CACR;MAAA,IAAAC,kBAAA;MAAA,QAAAA,kBAAA,GAAM7F,QAAQ,CAAC4E,OAAO,cAAAiB,kBAAA,uBAAhBA,kBAAA,CAAkBF,iBAAiB,CAACF,WAAW,EAAEA,WAAW,CAAC;IAAA,GACnE,CACF,CAAC;EACH,CAAC;EAED,IAAMK,QAAQ,GAAG,SAAXA,QAAQA,CAAA,EAAqB;IAAA,IAAjBC,IAAI,GAAAC,SAAA,CAAAlB,MAAA,QAAAkB,SAAA,QAAAjF,SAAA,GAAAiF,SAAA,MAAG,KAAK;IAC5B,IAAMC,uBAAuB,GAAG,SAA1BA,uBAAuBA,CAAIC,QAAgB,EAAK;MACpD,IAAMC,gBAAgB,GAAGD,QAAQ,CAAChB,KAAK,CAACjJ,WAAW,CAAC,CAACmK,OAAO,CAAC,CAAC;MAC9D,IAAMC,mCAAmC,GAAG9L,SAAS,CACnD,UAAC+L,CAAC;QAAA,OAAKA,CAAC,KAAK,GAAG;MAAA,GAChBH,gBACF,CAAC;MAED,OAAOE,mCAAmC,GAAG,CAAC,CAAC,GAC3CF,gBAAgB,CAACI,KAAK,CAACF,mCAAmC,CAAC,CAACvB,MAAM,GAClE,CAAC;IACP,CAAC;IAED,IAAA0B,UAAA,GAAmCzJ,QAAQ,CAACgD,MAAM,EAAEmD,UAAU,CAAC;MAAvDP,YAAY,GAAA6D,UAAA,CAAZ7D,YAAY;MAAEuD,QAAQ,GAAAM,UAAA,CAARN,QAAQ;IAC9B,IAAAO,UAAA,GAAmC1J,QAAQ,CAACgD,MAAM,EAAEX,IAAI,CAAC;MAAvCsH,YAAY,GAAAD,UAAA,CAAtBP,QAAQ;IAEhB,IAAMS,kBAAkB,GAAGT,QAAQ,CAACpB,MAAM,IAAI,CAAC;IAC/C,IAAM8B,6BAA6B,GAAGX,uBAAuB,CAACC,QAAQ,CAAC;IACvE,IAAMW,gBAAgB,GAAGH,YAAY,CAAC5B,MAAM,IAAI,CAAC;IACjD,IAAMgC,mCAAmC,GACvCD,gBAAgB,GAAG1G,oBAAoB;IACzC,IAAM4G,aAAa,GAAGD,mCAAmC,GACrD3G,oBAAoB,GACpB0G,gBAAgB;IAEpB,IAAIC,mCAAmC,EAAE;MACvCxC,OAAO,CAAC0C,IAAI,uDAAAvF,MAAA,CAC4CoF,gBAAgB,mCAAApF,MAAA,CAAgCtB,oBAAoB,OAC5H,CAAC;IACH;IAEA,IAAM8G,IAAI,GAAGnK,OAAO,CAACsC,IAAI,EAAE2H,aAAa,CAAC,IAAIhB,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IAC3D,IAAMmB,SAAS,GAAGjF,IAAI,CAACkF,GAAG,CACxBJ,aAAa,EACb1G,iBAAiB,GAAGF,oBAAoB,GAAGwG,kBAC7C,CAAC;IACD,IAAMS,oBAAoB,GAAGnF,IAAI,CAACkF,GAAG,CACnCP,6BAA6B,EAC7BG,aACF,CAAC;IACD,IAAMM,UAAU,GAAGnE,UAAU,GACzB,CAAC,CAACP,YAAY,IAAI,CAAC,IAAIsE,IAAI,EAAEnK,OAAO,CAACsK,oBAAoB,CAAC,GAC1DH,IAAI;IAER,IAAAK,mBAAA,GAA8C/G,kBAAkB,CAC9D8G,UAAU,EACV,IACF,CAAC;MAHOE,YAAY,GAAAD,mBAAA,CAAZC,YAAY;MAAEC,mBAAmB,GAAAF,mBAAA,CAAnBE,mBAAmB;IAKzC,IAAMC,uBAAuB,GAAG,CAACF,YAAY,IAAI,CAACC,mBAAmB;IAErE,IAAIC,uBAAuB,EAAE;MAC3BnD,OAAO,CAAC0C,IAAI,+EAAAvF,MAAA,CACoEjF,cAAc,qEAC9F,CAAC;MACD;IACF;IAEA,IAAMkL,SAAS,GAAGxL,MAAM,CAAC6D,MAAM,EAAEmH,SAAS,EAAE,QAAQ,EAAEG,UAAU,EAAE,IAAI,CAAC;IAEvElE,aAAa,CAACuE,SAAS,CAAC;IACxB7E,gBAAgB,CAAC6E,SAAS,CAAC;EAC7B,CAAC;EAED,IAAMC,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAIC,CAAM,EAAK;IACpC,IACEC,OAAO,GAILD,CAAC,CAJHC,OAAO;MACPC,OAAO,GAGLF,CAAC,CAHHE,OAAO;MACPC,GAAG,GAEDH,CAAC,CAFHG,GAAG;MAAAC,SAAA,GAEDJ,CAAC,CADHK,MAAM;MAAIzI,KAAK,GAAAwI,SAAA,CAALxI,KAAK;MAAEiE,cAAc,GAAAuE,SAAA,CAAdvE,cAAc;MAAEC,YAAY,GAAAsE,SAAA,CAAZtE,YAAY;IAG/C,IAAMC,SAAS,GAAGnE,KAAK,CAAC+G,KAAK,CAAC9C,cAAc,EAAEC,YAAY,CAAC;IAE3DQ,aAAa,CAAC6D,GAAG,CAAC;IAClBjE,qBAAqB,CAAC;MACpBL,cAAc,EAAdA,cAAc;MACdC,YAAY,EAAZA,YAAY;MACZC,SAAS,EAATA;IACF,CAAC,CAAC;IACFJ,YAAY,CAAC/D,KAAK,CAAC;IAEnB,IAAM0I,wBAAwB,GAAG,SAA3BA,wBAAwBA,CAAA,EAAS;MACrC,IAAMC,iBAAiB,GACrB,CAACxE,SAAS,IACV,CAAChI,YAAY,CAAC,CAACqJ,QAAQ,CAAC+C,GAAG,CAAC,IAC5BvI,KAAK,CAACkE,YAAY,GAAG,CAAC,CAAC,KAAKrC,OAAO;MAErC,IAAM+G,cAAc,GAClB,CAACzE,SAAS,IACV,CAAC3H,SAAS,EAAEW,gBAAgB,CAAC,CAACqI,QAAQ,CAAC+C,GAAG,CAAC,IAC3CvI,KAAK,CAACkE,YAAY,CAAC,KAAKrC,OAAO;MAEjC,IAAMgH,gBAAgB,GACpB,CAAC5L,iBAAiB,EAAEZ,UAAU,EAAEQ,eAAe,EAAEP,OAAO,CAAC,CAACkJ,QAAQ,CAChE+C,GACF,CAAC,KACAF,OAAO,IAAIC,OAAO,CAAC;MAEtB,IAAMQ,0BAA0B,GAC9B3E,SAAS,IACTA,SAAS,CAACqB,QAAQ,CAAC3D,OAAO,CAAC,IAC3BsC,SAAS,CAACmB,MAAM,GAAGtF,KAAK,CAACsF,MAAM,IAC/B,CAACuD,gBAAgB;MAEnB,IAAME,eAAe,GACnBJ,iBAAiB,IAAIC,cAAc,IAAIE,0BAA0B;MAEnE,IAAIC,eAAe,EAAE;QACnB,IAAMC,IAAI,GAAGF,0BAA0B,GACnC7E,cAAc,GACdC,YAAY;QAEhB,IAAM+E,KAAK,GAAIN,iBAAiB,IAAI,CAAC,CAAC,IAAMC,cAAc,IAAI,CAAE,IAAI,CAAC;QAErE,IAAMM,cAAc,GAAGF,IAAI,GAAGC,KAAK;QAEnCb,CAAC,CAACe,cAAc,CAAC,CAAC;QAClBnD,YAAY,CAACkD,cAAc,CAAC;MAC9B;IACF,CAAC;IAED,IAAME,2BAA2B,GAAG,SAA9BA,2BAA2BA,CAAA,EAAS;MACxC,IAAAC,oBAAA,GACEtI,kBAAkB,CAACf,KAAK,CAAC;QADnBsJ,iBAAiB,GAAAD,oBAAA,CAAjBC,iBAAiB;QAAEC,aAAa,GAAAF,oBAAA,CAAbE,aAAa;QAAEC,cAAc,GAAAH,oBAAA,CAAdG,cAAc;MAGxD,IAAMC,+BAA+B,GACnCH,iBAAiB,GAAGC,aAAa,GAAGC,cAAc;MAEpD,OACG5I,sBAAsB,IAAI6I,+BAA+B,IAC1D5I,iBAAiB;IAErB,CAAC;IAED,IAAIuI,2BAA2B,CAAC,CAAC,EAAE;MACjCV,wBAAwB,CAAC,CAAC;IAC5B;IAEA,IAAMgB,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAA,EAAS;MAC9B,QAAQnB,GAAG;QACT,KAAK,SAAS;QACd,KAAK,IAAI;UACPH,CAAC,CAACe,cAAc,CAAC,CAAC;UAClB7C,QAAQ,CAAC,CAAC;UACV;QACF,KAAK,WAAW;QAChB,KAAK,MAAM;UACT8B,CAAC,CAACe,cAAc,CAAC,CAAC;UAClB7C,QAAQ,CAAC,IAAI,CAAC;UACd;MACJ;IACF,CAAC;IAED,IAAI7E,cAAc,EAAE;MAClBiI,iBAAiB,CAAC,CAAC;IACrB;IAEAtK,UAAU,CAACgJ,CAAC,CAAC;EACf,CAAC;EAED,IAAMuB,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAIvB,CAAM,EAAK;IACnC,IAAI5G,sDAAsD,EAAE;IAE5D,IACYxB,KAAK,GAEboI,CAAC,CAFHK,MAAM,CAAIzI,KAAK;MACA4J,SAAS,GACtBxB,CAAC,CADHyB,WAAW,CAAID,SAAS;IAG1B,IAAAE,qBAAA,GAAwCjE,4BAA4B,CAClE7F,KAAK,EACLjD,kBAAkB,CAChB+E,mBAAmB,EACnB8H,SAAS,EACTnF,UAAU,EACVX,SAAS,EACT9D,KACF,CACF,CAAC;MATOiF,QAAQ,GAAA6E,qBAAA,CAAR7E,QAAQ;MAAEc,iBAAiB,GAAA+D,qBAAA,CAAjB/D,iBAAiB;IAUnC;IACAqC,CAAC,CAACK,MAAM,CAACzI,KAAK,GAAGiF,QAAQ;IAEzBtB,aAAa,CAACsB,QAAQ,CAAC;IACvBe,YAAY,CAACD,iBAAiB,CAAC;IAE/B,IAAId,QAAQ,KAAKnB,SAAS,EAAE;MAC1BT,gBAAgB,CAAC4B,QAAQ,CAAC;IAC5B;EACF,CAAC;EAED,IAAM8E,cAAc,GAAG,SAAjBA,cAAcA,CAAI3B,CAAM,EAAK;IACjC,IAAA4B,UAAA,GAA8BzM,QAAQ,CAACgD,MAAM,EAAEmD,UAAU,CAAC;MAAlDuG,OAAO,GAAAD,UAAA,CAAPC,OAAO;MAAEvD,QAAQ,GAAAsD,UAAA,CAARtD,QAAQ;IAEzB,IAAMwD,oBAAoB,GACxBxG,UAAU,KAAKxG,KAAK,IACpBwG,UAAU,KAAK7B,OAAO,IACtB6B,UAAU,QAAAzB,MAAA,CAAQ/E,KAAK,EAAA+E,MAAA,CAAGJ,OAAO,CAAE;IACrC,IAAMsI,yBAAyB,GAC7BzD,QAAQ,CAACpB,MAAM,GAAG,CAAC,KAAK2E,OAAO,KAAKxN,WAAW,IAAIwN,OAAO,KAAK/M,KAAK,CAAC;IACvE,IAAMkN,2BAA2B,GAC/BzJ,oBAAoB,GAAG,CAAC,IACxB+C,UAAU,CAACA,UAAU,CAAC4B,MAAM,GAAG,CAAC,CAAC,KAAKzD,OAAO,IAC7C,CAACjB,sBAAsB;IACzB,IAAMyJ,uBAAuB,GAAG1J,oBAAoB,GAAG+F,QAAQ,CAACpB,MAAM,GAAG,CAAC;IAC1E,IAAMgF,0BAA0B,GAC9B1J,sBAAsB,IAAIyJ,uBAAuB;IAEnD,IACEH,oBAAoB,IACpBC,yBAAyB,IACzBC,2BAA2B,IAC3BE,0BAA0B,EAC1B;MACA,IAAMC,WAAW,GAAG,SAAdA,WAAWA,CAAA,EAAS;QACxB,IAAIL,oBAAoB,EAAE;UACxB,OAAOzN,WAAW;QACpB;QACA,IAAI0N,yBAAyB,EAAE;UAC7B,IAAMK,kBAAkB,GAAG7J,oBAAoB,GAAG+F,QAAQ,CAACpB,MAAM;UACjE,UAAArD,MAAA,CAAUgI,OAAO,OAAAhI,MAAA,CAAIJ,OAAO,EAAAI,MAAA,CAC1BqI,0BAA0B,GACtB5D,QAAQ,CAACzE,MAAM,CACbwI,KAAK,CAACC,IAAI,CAAC;YAAEpF,MAAM,EAAEkF;UAAmB,CAAC,EAAE,UAACG,CAAC;YAAA,OAAK,GAAG;UAAA,EAAC,CAACC,IAAI,CACzDnO,WACF,CACF,CAAC,GACDiK,QAAQ;QAEhB;QACA,IAAI0D,2BAA2B,EAAE;UAC/B,OAAO1G,UAAU,CAACmH,OAAO,CACvB,IAAIC,MAAM,KAAA7I,MAAA,CAAKJ,OAAO,QAAK,GAAG,CAAC,EAC/BpF,WACF,CAAC;QACH;QACA,IAAI6N,0BAA0B,EAAE;UAC9B,OAAO5N,MAAM,CAAC6D,MAAM,EAAEI,oBAAoB,EAAE,QAAQ,EAAE+C,UAAU,CAAC;QACnE;QAEA,OAAOA,UAAU;MACnB,CAAC;MACD,IAAMuB,QAAQ,GAAGsF,WAAW,CAAC,CAAC;MAC9B5G,aAAa,CAACsB,QAAQ,CAAC;MACvB5B,gBAAgB,CAAC4B,QAAQ,CAAC;IAC5B;IAEA1F,OAAO,CAAC6I,CAAC,CAAC;EACZ,CAAC;EAED,oBACEpN,KAAA,CAAA0C,aAAA,CAACxB,aAAa;IAAC6O,eAAe,EAAEtJ,cAAe;IAAC,WAASxB,EAAE,aAAFA,EAAE,uBAAFA,EAAE,CAAE+K;EAAQ,gBACnEhQ,KAAA,CAAA0C,aAAA,CAAC3B,WAAW,EAAAkP,QAAA;IACVjL,KAAK,EAAE0D,UAAW;IAClB/E,QAAQ,EAAEA,QAAS;IACnBE,KAAK,EAAEA,KAAM;IACbM,SAAS,EAAEgJ,iBAAkB;IAC7BlJ,QAAQ,EAAE0K,gBAAiB;IAC3BrK,MAAM,EAAEyK,cAAe;IACvBmB,SAAS,EAAC;IACV;IACA;IACA;IAAA;IACAC,IAAI,EAAE7K,aAAc;IACpBZ,QAAQ,EAAEA,QAAS;IACnBG,KAAK,EAAAuL,aAAA,CAAAA,aAAA,KACAvL,KAAK,GACL;MACDwL,WAAW,KAAApJ,MAAA,CAAKF,YAAY,CAACe,IAAI,OAAI;MACrCwI,YAAY,KAAArJ,MAAA,CAAKF,YAAY,CAACgB,KAAK;IACrC,CAAC;EACD,GACE5B,UAAU,EACVjB,KAAK;IACT9B,GAAG,EAAEjD,SAAS,CAACiD,GAAG,EAAEoC,QAAQ;EAAE,EAC/B,CAAC,EACDf,MAAM,iBACLzE,KAAA,CAAA0C,aAAA,CAAC1B,YAAY,EAAAiP,QAAA;IAACtM,QAAQ,EAAEA;EAAS,GAAKyC,WAAW,GAC9C3B,MACW,CACf,EACAM,MAAM,iBACL/E,KAAA,CAAA0C,aAAA,CAACzB,YAAY,EAAAgP,QAAA;IACXM,gBAAgB,EAAE9J,cAAe;IACjC9C,QAAQ,EAAEA;EAAS,GACf0C,WAAW,GAEdtB,MACW,CACf,EACA0B,cAAc,iBACbzG,KAAA,CAAA0C,aAAA,CAAC5B,wBAAwB,qBACvBd,KAAA,CAAA0C,aAAA,CAAC7B,uBAAuB;IACtB,eAAY,MAAM;IAClB2P,IAAI,EAAC,QAAQ;IACb7M,QAAQ,EAAEA,QAAS;IACnB8M,QAAQ,EAAE,CAAC,CAAE;IACb,WAASxL,EAAE,aAAFA,EAAE,uBAAFA,EAAE,CAAEyL,SAAU;IACvBC,OAAO,EAAE,SAATA,OAAOA,CAAA;MAAA,OAAQrF,QAAQ,CAAC,CAAC;IAAA;EAAC,gBAE1BtL,KAAA,CAAA0C,aAAA,CAACD,QAAQ,MAAE,CACY,CAAC,eAC1BzC,KAAA,CAAA0C,aAAA,CAAC7B,uBAAuB;IACtB,eAAY,MAAM;IAClB2P,IAAI,EAAC,QAAQ;IACb7M,QAAQ,EAAEA,QAAS;IACnB8M,QAAQ,EAAE,CAAC,CAAE;IACb,WAASxL,EAAE,aAAFA,EAAE,uBAAFA,EAAE,CAAE2L,SAAU;IACvBD,OAAO,EAAE,SAATA,OAAOA,CAAA;MAAA,OAAQrF,QAAQ,CAAC,IAAI,CAAC;IAAA;EAAC,gBAE9BtL,KAAA,CAAA0C,aAAA,CAACM,SAAS,MAAE,CACW,CACD,CAEf,CAAC;AAEpB,CACF,CAAC;AAEDC,WAAW,CAAC4N,WAAW,GAAG,aAAa;AAEvC,OAAO,IAAMC,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAC3BvL,MAAc,EACdwL,aAA+C,EAC/CC,MAAe,EACfC,eAAwB,EACxBC,eAAiC,EACf;EAAA,IAAAC,WAAA,EAAAC,YAAA;EAClB,IAAMC,eAAgC,GAAG;IACvC9L,MAAM,EAANA,MAAM;IACN0L,eAAe,EAAEA,eAAe,IAAI,KAAK;IACzCC,eAAe,EAAEA,eAAe,IAAI;EACtC,CAAC;EACD,IAAMI,KAAK,GAAGxR,qBAAqB,CAAC,CAAC,EAAEuR,eAAe,CAAC;EAEvD,IAAME,qBAAqB,GACzB,EAAAJ,WAAA,GAAAG,KAAK,CAACE,IAAI,CAAC,UAACC,IAAI;IAAA,OAAKA,IAAI,CAACjB,IAAI,KAAK,UAAU;EAAA,EAAC,cAAAW,WAAA,uBAA9CA,WAAA,CAAgDnM,KAAK,CAACsF,MAAM,KAAI,CAAC;EACnE,IAAM9G,YAAY,GAAGuN,aAAa,IAAIQ,qBAAqB;EAE3D,IAAMG,SAAS,GACbJ,KAAK,CAACvR,SAAS,CAAC,UAAC4R,MAAM,EAAK;IAC1B,OAAOA,MAAM,CAACnB,IAAI,KAAK,UAAU;EACnC,CAAC,CAAC,GACFc,KAAK,CAACvR,SAAS,CAAC,UAAC0R,IAAI,EAAK;IACxB,OAAOA,IAAI,CAACjB,IAAI,KAAK,SAAS;EAChC,CAAC,CAAC,GACE,QAAQ,GACR,QAAQ;EAEd,IAAMoB,iBAAiB,GAAGX,eAAe,IAAAG,YAAA,GACrCE,KAAK,CAACE,IAAI,CAAC,UAACC,IAAI;IAAA,OAAKA,IAAI,CAACjB,IAAI,KAAK,UAAU;EAAA,EAAC,cAAAY,YAAA,uBAA9CA,YAAA,CAAgDpM,KAAK,CAAC6M,QAAQ,CAAC,CAAC,GAChEtL,SAAS;EAEb,IAAMuL,aAA4B,GAChCJ,SAAS,KAAK,QAAQ,GAClB;IACElO,YAAY,EAAEA,YAAgD;IAC9DiB,MAAM,EAAEmN,iBAAiB,IAAIZ,MAAM,IAAI;EACzC,CAAC,GACD;IACExN,YAAY,EAAEA,YAAgD;IAC9DuB,MAAM,EAAE6M,iBAAiB,IAAIZ,MAAM,IAAI;EACzC,CAAC;EAEP,OAAOc,aAAa;AACtB,CAAC;AAED,OAAO,IAAMC,aAAa,gBAAG/R,KAAK,CAACkD,UAAU,CAI3C,UAAA8O,KAAA,EAUE5O,GAAG,EACA;EAAA,IATD8N,eAAe,GAAAc,KAAA,CAAfd,eAAe;IACfD,eAAe,GAAAe,KAAA,CAAff,eAAe;IACDF,aAAa,GAAAiB,KAAA,CAA3BxO,YAAY;IAAAyO,qBAAA,GAAAD,KAAA,CACZjO,gBAAgB;IAAhBA,gBAAgB,GAAAkO,qBAAA,cAAG7R,+BAA+B,GAAA6R,qBAAA;IAAAC,YAAA,GAAAF,KAAA,CAClDvN,MAAM;IAANA,MAAM,GAAAyN,YAAA,cAAG7R,0BAA0B,GAAA6R,YAAA;IACnCnN,MAAM,GAAAiN,KAAA,CAANjN,MAAM;IACHG,KAAK,GAAAC,wBAAA,CAAA6M,KAAA,EAAAG,UAAA;EAIV,IAAM9M,IAAI,GAAGpF,cAAc,CAAC,CAAC;EAC7B,IAAMqF,aAAa,GAAGJ,KAAK,CAACK,MAAM,IAAIF,IAAI,CAACE,MAAM,IAAIhE,aAAa;EAElE,IAAMuQ,aAA4B,GAAGhB,gBAAgB,CACnDxL,aAAa,EACbyL,aAAa,EACbtM,MAAM,IAAIM,MAAM,EAChBkM,eAAe,EACfC,eACF,CAAC;EAED,oBACElR,KAAA,CAAA0C,aAAA,CAACO,WAAW,EAAAgN,QAAA;IACVlM,gBAAgB,EAAEA;EAAiB,GAC/BmB,KAAK,EACL4M,aAAa;IACjB1O,GAAG,EAAEA;EAAI,EACV,CAAC;AAEN,CACF,CAAC;AAED2O,aAAa,CAAClB,WAAW,GAAG,eAAe"}
|
|
1
|
+
{"version":3,"file":"NumberInput.js","names":["formatCurrencyToParts","findIndex","React","useI18nContext","spacing","mergeRefs","defaultCurrencyFillDecimalScale","defaultCurrencyInputPrefix","useNumberFormat","useNumberInputLabel","usePrevious","addonRootFontFamily","addonRootFontSize","addonRootPadding","inputDefaultXPadding","StyledIncrementerButton","StyledIncrementerWrapper","StyledInput","StyledPrefix","StyledSuffix","StyledWrapper","backspaceKey","clamp","commaKey","controlKey","copyKey","defaultLocale","deleteKey","emptyString","format","getNewCursorPosition","getSeparators","highlightAllKey","identicalLocales","identifyPressedKey","maxDigitLength","metaKeyIdentifier","minus","numericKeypadKey","periodKey","prepareValueToFormatting","toFixed","unformat","noop","PlusIcon","createElement","width","height","viewBox","xmlns","d","MinusIcon","NumberInput","forwardRef","_ref","ref","ariaLabel","ariaLabelledBy","_ref$decimalScale","decimalScale","defaultValue","_ref$disabled","disabled","_ref$error","error","_ref$fillDecimalScale","fillDecimalScale","max","min","_onChange","onChange","_ref$onKeyDown","onKeyDown","_onKeyDown","_ref$onBlur","onBlur","_onBlur","_ref$prefix","prefix","readOnly","_ref$step","step","style","_ref$suffix","suffix","value","qa","props","_objectWithoutProperties","_excluded","I18n","contextLocale","locale","inputRef","useRef","_useNumberFormat","verifiedDecimalScale","fillDecimalScaleOnBlur","fixedDecimalScale","formatValue","getValueLengthInfo","_useNumberInputLabel","id","name","inputProps","prefixProps","suffixProps","isControlled","undefined","isControlledWithoutOnChangeHandlerAndReadOnlyAttribute","hasIncrementer","_React$useMemo","useMemo","group","decimal","decimalSeparatorKey","inputPadding","fontContext","concat","element","document","context","getContext","font","extraBasePadding","suffixPadding","Math","ceil","measureText","getRightPadding","xl","left","right","getValueChange","useCallback","_unformat","parsedNumber","isNaN","externalOnChange","_React$useState","useState","_React$useState2","_slicedToArray","inputValue","setInputValue","_React$useState3","_React$useState4","prevValue","setPrevValue","_React$useState5","selectionStart","selectionEnd","selection","_React$useState6","prevCursorPosition","setPrevCursorPosition","_React$useState7","_React$useState8","pressedKey","setPressedKey","prevLocale","useLayoutEffect","formattedValue","console","useEffect","prev","newValue","_inputRef$current","displayValue","current","lastChar","length","lastCharIsPending","includes","decimals","split","lastDecimalIsZero","onlyMinusDisplayed","getNewValueAndCursorPosition","preparedValue","newCursorPosition","adjustCursor","newPosition","_inputRef$current2","setSelectionRange","setTimeout","_inputRef$current3","makeStep","down","arguments","getSignificantPrecision","fraction","reversedFraction","reverse","indexOfLastSignificantFractionDigit","i","slice","_unformat2","_unformat3","stepFraction","prevValuePrecision","prevValueSignificantPrecision","rawStepPrecision","rawStepPrecisionExceedsDecimalScale","stepPrecision","warn","diff","precision","significantPrecision","calculatedNumber","clampedNumber","wasClamped","calculated","_getValueLengthInfo","isSafeLength","isSafeIntegerLength","rejectStepByLengthLimit","formatted","internalOnKeyDown","e","ctrlKey","metaKey","key","_e$target","target","preserveDecimalSeparator","decimalBackspaced","decimalDeleted","nonReplacingKeys","decimalReplacedAsSelection","preserveDecimal","base","shift","cursorPosition","preventDefault","isDecimalSeparatorPreserved","_getValueLengthInfo2","safeIntegerLength","integerLength","fractionLength","decimalSeparatorCanNotBeRemoved","handleIncrementer","internalOnChange","inputType","nativeEvent","_getNewValueAndCursor","internalOnBlur","_unformat4","integer","shouldValueBeCleared","shouldIntegerPartBeFilled","isDecimalSeparatorRedundant","isDecimalScaleNotFilled","shouldDecimalScaleBeFilled","getBaseValue","numberOfZerosToPad","Array","from","_","join","replace","RegExp","baseValue","hasBounds","_unformat5","baseParsed","clampedParsed","needsClamp","Number","isFinite","clampFillScale","finalValue","_unformat6","currentParsedNumber","hasFiniteValue","isAtMax","isAtMin","$hasIncrementer","wrapper","_extends","inputMode","lang","_objectSpread","paddingLeft","paddingRight","$withIncrementer","type","tabIndex","increment","onClick","decrement","displayName","getCurrencyProps","_decimalScale","symbol","currencyIsoCode","currencyDisplay","_parts$find","_parts$find2","currencyOptions","parts","formatterDecimalScale","find","part","placement","object","currencyIsoSymbol","toString","currencyProps","CurrencyInput","_ref2","_ref2$fillDecimalScal","_ref2$prefix","_excluded2"],"sources":["../../src/NumberInput/NumberInput.tsx"],"sourcesContent":["import type {\n CurrencyDisplay,\n CurrencyOptions,\n} from '@procore/globalization-toolkit'\nimport { formatCurrencyToParts } from '@procore/globalization-toolkit'\nimport { findIndex } from 'ramda'\nimport React from 'react'\nimport { useI18nContext } from '../_hooks/I18n'\nimport { spacing } from '../_styles/spacing'\nimport { mergeRefs } from '../_utils/mergeRefs'\nimport {\n defaultCurrencyFillDecimalScale,\n defaultCurrencyInputPrefix,\n} from './NumberInput.constants'\nimport {\n useNumberFormat,\n useNumberInputLabel,\n usePrevious,\n} from './NumberInput.hooks'\nimport {\n addonRootFontFamily,\n addonRootFontSize,\n addonRootPadding,\n inputDefaultXPadding,\n StyledIncrementerButton,\n StyledIncrementerWrapper,\n StyledInput,\n StyledPrefix,\n StyledSuffix,\n StyledWrapper,\n} from './NumberInput.styles'\nimport type {\n CurrencyInputProps,\n CurrencyProps,\n CursorPosition,\n FillDecimalScaleVariant,\n NumberInputProps,\n PressedKey,\n} from './NumberInput.types'\nimport {\n backspaceKey,\n clamp,\n commaKey,\n controlKey,\n copyKey,\n defaultLocale,\n deleteKey,\n emptyString,\n format,\n getNewCursorPosition,\n getSeparators,\n highlightAllKey,\n identicalLocales,\n identifyPressedKey,\n maxDigitLength,\n metaKeyIdentifier,\n minus,\n numericKeypadKey,\n periodKey,\n prepareValueToFormatting,\n toFixed,\n unformat,\n} from './NumberInput.utils'\n\nfunction noop() {}\n\nconst PlusIcon = () => (\n <svg\n width=\"8\"\n height=\"8\"\n viewBox=\"0 0 8 8\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M4.5 0H3.5V3.5H0V4.5H3.5V8H4.5V4.5H8V3.5H4.5V0Z\" />\n </svg>\n)\n\nconst MinusIcon = () => (\n <svg\n width=\"8\"\n height=\"2\"\n viewBox=\"0 0 8 2\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M4.5 0.5H3.5H0V1.5H3.5H4.5H8V0.5H4.5Z\" />\n </svg>\n)\n\n/**\n\n The number input allows users to add numbers to a given form or table.\n The currency input will be used for data with a monetary value.\n Both components allow characters 0-9, periods, and commas. In order to avoid\n the loss of precision, the number length is limited by 15 digits.\n\n @since 10.19.0\n\n @see [Storybook](https://stories.core.procore.com/?path=/story/core-react_demos-numberinput--demo-number-input)\n\n @see [Design Guidelines](https://design.procore.com/number-and-currency-input)\n\n */\nexport const NumberInput = React.forwardRef<HTMLInputElement, NumberInputProps>(\n (\n {\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n decimalScale = true,\n defaultValue,\n disabled = false,\n error = false,\n fillDecimalScale = 'none',\n max,\n min,\n onChange: _onChange,\n onKeyDown: _onKeyDown = noop,\n onBlur: _onBlur = noop,\n prefix = emptyString,\n readOnly,\n step = 0,\n style,\n suffix = emptyString,\n value,\n qa,\n ...props\n },\n ref\n ) => {\n const I18n = useI18nContext()\n const contextLocale = I18n.locale || defaultLocale\n const inputRef = React.useRef<HTMLInputElement>(null)\n\n const {\n decimalScale: verifiedDecimalScale,\n fillDecimalScaleOnBlur,\n fixedDecimalScale,\n formatValue,\n getValueLengthInfo,\n locale,\n } = useNumberFormat({\n decimalScale,\n fillDecimalScale,\n locale: contextLocale,\n })\n\n const { inputProps, prefixProps, suffixProps } = useNumberInputLabel({\n ariaLabel,\n ariaLabelledBy,\n id: props.id,\n name: props.name,\n prefix,\n suffix,\n })\n\n const isControlled = value !== undefined\n const isControlledWithoutOnChangeHandlerAndReadOnlyAttribute =\n isControlled && !_onChange && !readOnly\n const hasIncrementer = step > 0 && !readOnly\n\n const { group, decimal } = React.useMemo(\n () => getSeparators(locale),\n [locale]\n )\n const decimalSeparatorKey = React.useMemo(() => {\n return decimal === periodKey ? periodKey : commaKey\n }, [decimal])\n\n const inputPadding = React.useMemo((): {\n left: number\n right: number | null\n } => {\n const fontContext = `${addonRootFontSize} \"${addonRootFontFamily}\"`\n\n if (prefix || suffix) {\n const element = document.createElement('canvas')\n const context = element?.getContext('2d')\n\n if (context) {\n context.font = fontContext\n\n const extraBasePadding = inputDefaultXPadding + addonRootPadding\n\n const suffixPadding =\n extraBasePadding + Math.ceil(context.measureText(suffix).width)\n\n const getRightPadding = () => {\n if (hasIncrementer && suffix) {\n return suffixPadding + spacing.xl\n }\n if (suffix) {\n return suffixPadding\n }\n return null\n }\n\n return {\n left: prefix\n ? extraBasePadding + Math.ceil(context.measureText(prefix).width)\n : inputDefaultXPadding,\n right: getRightPadding(),\n }\n }\n }\n\n return {\n left: inputDefaultXPadding,\n right: null,\n }\n }, [prefix, suffix, hasIncrementer])\n\n const getValueChange = React.useCallback(\n (value: string) => {\n const { parsedNumber } = unformat(locale, value)\n return {\n value,\n parsedNumber: isNaN(parsedNumber) ? null : parsedNumber,\n }\n },\n [locale]\n )\n\n const externalOnChange = React.useCallback(\n (value: string) => _onChange && _onChange(getValueChange(value)),\n [_onChange, getValueChange]\n )\n\n const [inputValue, setInputValue] = React.useState(\n formatValue(defaultValue)\n )\n const [prevValue, setPrevValue] = React.useState(\n isControlled ? formatValue(value) : inputValue\n )\n const [prevCursorPosition, setPrevCursorPosition] =\n React.useState<CursorPosition>({\n selectionStart: 0,\n selectionEnd: 0,\n selection: emptyString,\n })\n const [pressedKey, setPressedKey] = React.useState()\n const prevLocale = usePrevious(locale)\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n React.useLayoutEffect(() => {\n const formattedValue = formatValue(value)\n if (isControlled && inputValue !== formattedValue) {\n setInputValue(formattedValue)\n }\n\n if (isControlledWithoutOnChangeHandlerAndReadOnlyAttribute) {\n console.error(\n `Warning: Failed prop type: You provided a \\`value\\` prop to a form field without an \\`onChange\\` handler.\n This will render a read-only field. If the field should be mutable use \\`defaultValue\\`.\n Otherwise, set either \\`onChange\\` or \\`readOnly\\`.`\n )\n }\n }, [value])\n\n React.useEffect(() => {\n if (prevLocale && !identicalLocales(prevLocale, locale)) {\n setInputValue((prev) => {\n const newValue = formatValue(unformat(prevLocale, prev).parsedNumber)\n externalOnChange(newValue)\n return newValue\n })\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [prevLocale, formatValue])\n\n React.useLayoutEffect(() => {\n const displayValue = inputRef.current?.value || ''\n if (!_onChange || !displayValue) {\n return\n }\n const formattedValue = formatValue(value)\n\n if (displayValue !== formattedValue) {\n const lastChar = displayValue[displayValue.length - 1]\n const lastCharIsPending = [periodKey, commaKey].includes(lastChar)\n\n const decimals = displayValue.split(decimal)[1] || ''\n const lastDecimalIsZero =\n decimals && decimals[decimals.length - 1] === '0'\n\n const onlyMinusDisplayed = displayValue === minus\n\n // a client state and display mismatch is only valid when\n if (lastCharIsPending || lastDecimalIsZero || onlyMinusDisplayed) {\n return\n }\n\n // otherwise sync display with client state\n setInputValue(formattedValue)\n }\n })\n\n const getNewValueAndCursorPosition = (\n value: string,\n pressedKey: PressedKey\n ) => {\n const preparedValue = prepareValueToFormatting(\n decimal,\n decimalSeparatorKey,\n group,\n pressedKey,\n prevCursorPosition,\n prevValue,\n verifiedDecimalScale,\n value\n )\n const newValue = formatValue(preparedValue)\n\n return {\n newValue,\n newCursorPosition: getNewCursorPosition(\n decimal,\n decimalSeparatorKey,\n group,\n newValue,\n pressedKey,\n prevCursorPosition,\n prevValue,\n value,\n verifiedDecimalScale,\n locale,\n fillDecimalScale\n ),\n }\n }\n\n const adjustCursor = (newPosition: number) => {\n inputRef.current?.setSelectionRange(newPosition, newPosition)\n // Mobile Chrome adjustment\n setTimeout(\n () => inputRef.current?.setSelectionRange(newPosition, newPosition),\n 0\n )\n }\n\n const makeStep = (down = false) => {\n const getSignificantPrecision = (fraction: string) => {\n const reversedFraction = fraction.split(emptyString).reverse()\n const indexOfLastSignificantFractionDigit = findIndex(\n (i) => i !== '0',\n reversedFraction\n )\n\n return indexOfLastSignificantFractionDigit > -1\n ? reversedFraction.slice(indexOfLastSignificantFractionDigit).length\n : 0\n }\n\n const { parsedNumber, fraction } = unformat(locale, inputValue)\n const { fraction: stepFraction } = unformat(locale, step)\n\n const prevValuePrecision = fraction.length || 0\n const prevValueSignificantPrecision = getSignificantPrecision(fraction)\n const rawStepPrecision = stepFraction.length || 0\n const rawStepPrecisionExceedsDecimalScale =\n rawStepPrecision > verifiedDecimalScale\n const stepPrecision = rawStepPrecisionExceedsDecimalScale\n ? verifiedDecimalScale\n : rawStepPrecision\n\n if (rawStepPrecisionExceedsDecimalScale) {\n console.warn(\n `WARNING: Step's value was rounded since its scale (${rawStepPrecision}) exceeds the decimal scale (${verifiedDecimalScale}).`\n )\n }\n\n const diff = toFixed(step, stepPrecision) * (down ? -1 : 1)\n const precision = Math.max(\n stepPrecision,\n fixedDecimalScale ? verifiedDecimalScale : prevValuePrecision\n )\n const significantPrecision = Math.max(\n prevValueSignificantPrecision,\n stepPrecision\n )\n const calculatedNumber = inputValue ? (parsedNumber || 0) + diff : diff\n const clampedNumber = clamp(calculatedNumber, min, max)\n const wasClamped = clampedNumber !== calculatedNumber\n const calculated = inputValue\n ? clampedNumber.toFixed(significantPrecision)\n : clampedNumber\n\n const { isSafeLength, isSafeIntegerLength } = getValueLengthInfo(\n wasClamped ? clampedNumber : calculated,\n true\n )\n\n const rejectStepByLengthLimit = !isSafeLength || !isSafeIntegerLength\n\n if (rejectStepByLengthLimit) {\n console.warn(\n `WARNING: Incrementer's step was not fulfilled since result oversteps input ${maxDigitLength}-digit limit and can't be presented without a loss of precision.`\n )\n return\n }\n\n const formatted = wasClamped\n ? formatValue(clampedNumber)\n : format(locale, precision, 'always', calculated, true)\n\n setInputValue(formatted)\n externalOnChange(formatted)\n }\n\n const internalOnKeyDown = (e: any) => {\n const {\n ctrlKey,\n metaKey,\n key,\n target: { value, selectionStart, selectionEnd },\n } = e\n\n const selection = value.slice(selectionStart, selectionEnd)\n\n setPressedKey(key)\n setPrevCursorPosition({\n selectionStart,\n selectionEnd,\n selection,\n })\n setPrevValue(value)\n\n const preserveDecimalSeparator = () => {\n const decimalBackspaced =\n !selection &&\n [backspaceKey].includes(key) &&\n value[selectionEnd - 1] === decimal\n\n const decimalDeleted =\n !selection &&\n [deleteKey, numericKeypadKey].includes(key) &&\n value[selectionEnd] === decimal\n\n const nonReplacingKeys =\n [metaKeyIdentifier, controlKey, highlightAllKey, copyKey].includes(\n key\n ) &&\n (ctrlKey || metaKey)\n\n const decimalReplacedAsSelection =\n selection &&\n selection.includes(decimal) &&\n selection.length < value.length &&\n !nonReplacingKeys\n\n const preserveDecimal =\n decimalBackspaced || decimalDeleted || decimalReplacedAsSelection\n\n if (preserveDecimal) {\n const base = decimalReplacedAsSelection\n ? selectionStart\n : selectionEnd\n\n const shift = (decimalBackspaced && -1) || (decimalDeleted && 1) || 0\n\n const cursorPosition = base + shift\n\n e.preventDefault()\n adjustCursor(cursorPosition)\n }\n }\n\n const isDecimalSeparatorPreserved = () => {\n const { safeIntegerLength, integerLength, fractionLength } =\n getValueLengthInfo(value)\n\n const decimalSeparatorCanNotBeRemoved =\n safeIntegerLength - integerLength < fractionLength\n\n return (\n (fillDecimalScaleOnBlur && decimalSeparatorCanNotBeRemoved) ||\n fixedDecimalScale\n )\n }\n\n if (isDecimalSeparatorPreserved()) {\n preserveDecimalSeparator()\n }\n\n const handleIncrementer = () => {\n switch (key) {\n case 'ArrowUp':\n case 'Up':\n e.preventDefault()\n makeStep()\n break\n case 'ArrowDown':\n case 'Down':\n e.preventDefault()\n makeStep(true)\n break\n }\n }\n\n if (hasIncrementer) {\n handleIncrementer()\n }\n\n _onKeyDown(e)\n }\n\n const internalOnChange = (e: any) => {\n if (isControlledWithoutOnChangeHandlerAndReadOnlyAttribute) return\n\n const {\n target: { value },\n nativeEvent: { inputType },\n } = e\n\n const { newValue, newCursorPosition } = getNewValueAndCursorPosition(\n value,\n identifyPressedKey(\n decimalSeparatorKey,\n inputType,\n pressedKey,\n prevValue,\n value\n )\n )\n // Prevent cursor flickering\n e.target.value = newValue\n\n setInputValue(newValue)\n adjustCursor(newCursorPosition)\n\n if (newValue !== prevValue) {\n externalOnChange(newValue)\n }\n }\n\n const internalOnBlur = (e: any) => {\n const { integer, fraction } = unformat(locale, inputValue)\n\n const shouldValueBeCleared =\n inputValue === minus ||\n inputValue === decimal ||\n inputValue === `${minus}${decimal}`\n const shouldIntegerPartBeFilled =\n fraction.length > 0 && (integer === emptyString || integer === minus)\n const isDecimalSeparatorRedundant =\n verifiedDecimalScale > 0 &&\n inputValue[inputValue.length - 1] === decimal &&\n !fillDecimalScaleOnBlur\n const isDecimalScaleNotFilled = verifiedDecimalScale - fraction.length > 0\n const shouldDecimalScaleBeFilled =\n fillDecimalScaleOnBlur && isDecimalScaleNotFilled\n\n const getBaseValue = () => {\n if (shouldValueBeCleared) {\n return emptyString\n }\n if (shouldIntegerPartBeFilled) {\n const numberOfZerosToPad = verifiedDecimalScale - fraction.length\n return `${integer}0${decimal}${\n shouldDecimalScaleBeFilled\n ? fraction.concat(\n Array.from({ length: numberOfZerosToPad }, (_) => '0').join(\n emptyString\n )\n )\n : fraction\n }`\n }\n if (isDecimalSeparatorRedundant) {\n return inputValue.replace(\n new RegExp(`[${decimal}]`, 'g'),\n emptyString\n )\n }\n if (shouldDecimalScaleBeFilled) {\n return format(locale, verifiedDecimalScale, 'always', inputValue)\n }\n\n return inputValue\n }\n\n const baseValue = getBaseValue()\n\n const hasBounds = typeof min === 'number' || typeof max === 'number'\n const { parsedNumber: baseParsed } = unformat(locale, baseValue)\n const clampedParsed = clamp(baseParsed, min, max)\n const needsClamp =\n hasBounds && Number.isFinite(baseParsed) && clampedParsed !== baseParsed\n\n const clampFillScale: FillDecimalScaleVariant =\n fixedDecimalScale || fillDecimalScaleOnBlur ? 'always' : 'none'\n const finalValue = needsClamp\n ? format(\n locale,\n verifiedDecimalScale,\n clampFillScale,\n clampedParsed,\n true\n )\n : baseValue\n\n if (finalValue !== inputValue) {\n setInputValue(finalValue)\n externalOnChange(finalValue)\n }\n\n _onBlur(e)\n }\n\n const { parsedNumber: currentParsedNumber } = unformat(locale, inputValue)\n const hasFiniteValue = Number.isFinite(currentParsedNumber)\n const isAtMax =\n hasFiniteValue &&\n Number.isFinite(max) &&\n currentParsedNumber >= (max as number)\n const isAtMin =\n hasFiniteValue &&\n Number.isFinite(min) &&\n currentParsedNumber <= (min as number)\n\n return (\n <StyledWrapper $hasIncrementer={hasIncrementer} data-qa={qa?.wrapper}>\n <StyledInput\n value={inputValue}\n disabled={disabled}\n error={error}\n onKeyDown={internalOnKeyDown}\n onChange={internalOnChange}\n onBlur={internalOnBlur}\n inputMode=\"numeric\"\n // Chrome- InvalidStateError: Failed to execute 'setSelectionRange' on 'HTMLInputElement': The input element's type ('number') does not support selection.\n // Firefox- Uncaught DOMException: An attempt was made to use an object that is not, or is no longer, usable\n // type={hasIncrementer ? 'number' : undefined}\n lang={contextLocale}\n readOnly={readOnly}\n style={{\n ...style,\n ...{\n paddingLeft: `${inputPadding.left}px`,\n paddingRight: `${inputPadding.right}px`,\n },\n }}\n {...inputProps}\n {...props}\n ref={mergeRefs(ref, inputRef)}\n />\n {prefix && (\n <StyledPrefix disabled={disabled} {...prefixProps}>\n {prefix}\n </StyledPrefix>\n )}\n {suffix && (\n <StyledSuffix\n $withIncrementer={hasIncrementer}\n disabled={disabled}\n {...suffixProps}\n >\n {suffix}\n </StyledSuffix>\n )}\n {hasIncrementer && (\n <StyledIncrementerWrapper>\n <StyledIncrementerButton\n aria-hidden=\"true\"\n type=\"button\"\n disabled={disabled || isAtMax}\n tabIndex={-1}\n data-qa={qa?.increment}\n onClick={() => makeStep()}\n >\n <PlusIcon />\n </StyledIncrementerButton>\n <StyledIncrementerButton\n aria-hidden=\"true\"\n type=\"button\"\n disabled={disabled || isAtMin}\n tabIndex={-1}\n data-qa={qa?.decrement}\n onClick={() => makeStep(true)}\n >\n <MinusIcon />\n </StyledIncrementerButton>\n </StyledIncrementerWrapper>\n )}\n </StyledWrapper>\n )\n }\n)\n\nNumberInput.displayName = 'NumberInput'\n\nexport const getCurrencyProps = (\n locale: string,\n _decimalScale: NumberInputProps['decimalScale'],\n symbol?: string,\n currencyIsoCode?: string,\n currencyDisplay?: CurrencyDisplay\n): CurrencyProps => {\n const currencyOptions: CurrencyOptions = {\n locale,\n currencyIsoCode: currencyIsoCode || 'USD',\n currencyDisplay: currencyDisplay || 'narrowSymbol',\n }\n const parts = formatCurrencyToParts(1, currencyOptions)\n\n const formatterDecimalScale =\n parts.find((part) => part.type === 'fraction')?.value.length || 0\n const decimalScale = _decimalScale || formatterDecimalScale\n\n const placement =\n parts.findIndex((object) => {\n return object.type === 'currency'\n }) <\n parts.findIndex((part) => {\n return part.type === 'integer'\n })\n ? 'prefix'\n : 'suffix'\n\n const currencyIsoSymbol = currencyIsoCode\n ? parts.find((part) => part.type === 'currency')?.value.toString()\n : undefined\n\n const currencyProps: CurrencyProps =\n placement === 'prefix'\n ? {\n decimalScale: decimalScale as NumberInputProps['decimalScale'],\n prefix: currencyIsoSymbol || symbol || '',\n }\n : {\n decimalScale: decimalScale as NumberInputProps['decimalScale'],\n suffix: currencyIsoSymbol || symbol || '',\n }\n\n return currencyProps\n}\n\nexport const CurrencyInput = React.forwardRef<\n HTMLInputElement,\n CurrencyInputProps\n>(\n (\n {\n currencyDisplay,\n currencyIsoCode,\n decimalScale: _decimalScale,\n fillDecimalScale = defaultCurrencyFillDecimalScale,\n prefix = defaultCurrencyInputPrefix,\n suffix,\n ...props\n },\n ref\n ) => {\n const I18n = useI18nContext()\n const contextLocale = props.locale || I18n.locale || defaultLocale\n\n const currencyProps: CurrencyProps = getCurrencyProps(\n contextLocale as string,\n _decimalScale,\n prefix || suffix,\n currencyIsoCode,\n currencyDisplay\n )\n\n return (\n <NumberInput\n fillDecimalScale={fillDecimalScale}\n {...props}\n {...currencyProps}\n ref={ref}\n />\n )\n }\n)\n\nCurrencyInput.displayName = 'CurrencyInput'\n"],"mappings":";;;;;;;;;;;;;;;;;AAIA,SAASA,qBAAqB,QAAQ,gCAAgC;AACtE,SAASC,SAAS,QAAQ,OAAO;AACjC,OAAOC,KAAK,MAAM,OAAO;AACzB,SAASC,cAAc,QAAQ,gBAAgB;AAC/C,SAASC,OAAO,QAAQ,oBAAoB;AAC5C,SAASC,SAAS,QAAQ,qBAAqB;AAC/C,SACEC,+BAA+B,EAC/BC,0BAA0B,QACrB,yBAAyB;AAChC,SACEC,eAAe,EACfC,mBAAmB,EACnBC,WAAW,QACN,qBAAqB;AAC5B,SACEC,mBAAmB,EACnBC,iBAAiB,EACjBC,gBAAgB,EAChBC,oBAAoB,EACpBC,uBAAuB,EACvBC,wBAAwB,EACxBC,WAAW,EACXC,YAAY,EACZC,YAAY,EACZC,aAAa,QACR,sBAAsB;AAS7B,SACEC,YAAY,EACZC,KAAK,EACLC,QAAQ,EACRC,UAAU,EACVC,OAAO,EACPC,aAAa,EACbC,SAAS,EACTC,WAAW,EACXC,MAAM,EACNC,oBAAoB,EACpBC,aAAa,EACbC,eAAe,EACfC,gBAAgB,EAChBC,kBAAkB,EAClBC,cAAc,EACdC,iBAAiB,EACjBC,KAAK,EACLC,gBAAgB,EAChBC,SAAS,EACTC,wBAAwB,EACxBC,OAAO,EACPC,QAAQ,QACH,qBAAqB;AAE5B,SAASC,IAAIA,CAAA,EAAG,CAAC;AAEjB,IAAMC,QAAQ,GAAG,SAAXA,QAAQA,CAAA;EAAA,oBACZ1C,KAAA,CAAA2C,aAAA;IACEC,KAAK,EAAC,GAAG;IACTC,MAAM,EAAC,GAAG;IACVC,OAAO,EAAC,SAAS;IACjBC,KAAK,EAAC;EAA4B,gBAElC/C,KAAA,CAAA2C,aAAA;IAAMK,CAAC,EAAC;EAAiD,CAAE,CACxD,CAAC;AAAA,CACP;AAED,IAAMC,SAAS,GAAG,SAAZA,SAASA,CAAA;EAAA,oBACbjD,KAAA,CAAA2C,aAAA;IACEC,KAAK,EAAC,GAAG;IACTC,MAAM,EAAC,GAAG;IACVC,OAAO,EAAC,SAAS;IACjBC,KAAK,EAAC;EAA4B,gBAElC/C,KAAA,CAAA2C,aAAA;IAAMK,CAAC,EAAC;EAAuC,CAAE,CAC9C,CAAC;AAAA,CACP;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,IAAME,WAAW,gBAAGlD,KAAK,CAACmD,UAAU,CACzC,UAAAC,IAAA,EAuBEC,GAAG,EACA;EAAA,IAtBaC,SAAS,GAAAF,IAAA,CAAvB,YAAY;IACOG,cAAc,GAAAH,IAAA,CAAjC,iBAAiB;IAAAI,iBAAA,GAAAJ,IAAA,CACjBK,YAAY;IAAZA,YAAY,GAAAD,iBAAA,cAAG,IAAI,GAAAA,iBAAA;IACnBE,YAAY,GAAAN,IAAA,CAAZM,YAAY;IAAAC,aAAA,GAAAP,IAAA,CACZQ,QAAQ;IAARA,QAAQ,GAAAD,aAAA,cAAG,KAAK,GAAAA,aAAA;IAAAE,UAAA,GAAAT,IAAA,CAChBU,KAAK;IAALA,KAAK,GAAAD,UAAA,cAAG,KAAK,GAAAA,UAAA;IAAAE,qBAAA,GAAAX,IAAA,CACbY,gBAAgB;IAAhBA,gBAAgB,GAAAD,qBAAA,cAAG,MAAM,GAAAA,qBAAA;IACzBE,GAAG,GAAAb,IAAA,CAAHa,GAAG;IACHC,GAAG,GAAAd,IAAA,CAAHc,GAAG;IACOC,SAAS,GAAAf,IAAA,CAAnBgB,QAAQ;IAAAC,cAAA,GAAAjB,IAAA,CACRkB,SAAS;IAAEC,UAAU,GAAAF,cAAA,cAAG5B,IAAI,GAAA4B,cAAA;IAAAG,WAAA,GAAApB,IAAA,CAC5BqB,MAAM;IAAEC,OAAO,GAAAF,WAAA,cAAG/B,IAAI,GAAA+B,WAAA;IAAAG,WAAA,GAAAvB,IAAA,CACtBwB,MAAM;IAANA,MAAM,GAAAD,WAAA,cAAGjD,WAAW,GAAAiD,WAAA;IACpBE,QAAQ,GAAAzB,IAAA,CAARyB,QAAQ;IAAAC,SAAA,GAAA1B,IAAA,CACR2B,IAAI;IAAJA,IAAI,GAAAD,SAAA,cAAG,CAAC,GAAAA,SAAA;IACRE,KAAK,GAAA5B,IAAA,CAAL4B,KAAK;IAAAC,WAAA,GAAA7B,IAAA,CACL8B,MAAM;IAANA,MAAM,GAAAD,WAAA,cAAGvD,WAAW,GAAAuD,WAAA;IACpBE,KAAK,GAAA/B,IAAA,CAAL+B,KAAK;IACLC,EAAE,GAAAhC,IAAA,CAAFgC,EAAE;IACCC,KAAK,GAAAC,wBAAA,CAAAlC,IAAA,EAAAmC,SAAA;EAIV,IAAMC,IAAI,GAAGvF,cAAc,CAAC,CAAC;EAC7B,IAAMwF,aAAa,GAAGD,IAAI,CAACE,MAAM,IAAIlE,aAAa;EAClD,IAAMmE,QAAQ,GAAG3F,KAAK,CAAC4F,MAAM,CAAmB,IAAI,CAAC;EAErD,IAAAC,gBAAA,GAOIvF,eAAe,CAAC;MAClBmD,YAAY,EAAZA,YAAY;MACZO,gBAAgB,EAAhBA,gBAAgB;MAChB0B,MAAM,EAAED;IACV,CAAC,CAAC;IAVcK,oBAAoB,GAAAD,gBAAA,CAAlCpC,YAAY;IACZsC,sBAAsB,GAAAF,gBAAA,CAAtBE,sBAAsB;IACtBC,iBAAiB,GAAAH,gBAAA,CAAjBG,iBAAiB;IACjBC,WAAW,GAAAJ,gBAAA,CAAXI,WAAW;IACXC,kBAAkB,GAAAL,gBAAA,CAAlBK,kBAAkB;IAClBR,MAAM,GAAAG,gBAAA,CAANH,MAAM;EAOR,IAAAS,oBAAA,GAAiD5F,mBAAmB,CAAC;MACnE+C,SAAS,EAATA,SAAS;MACTC,cAAc,EAAdA,cAAc;MACd6C,EAAE,EAAEf,KAAK,CAACe,EAAE;MACZC,IAAI,EAAEhB,KAAK,CAACgB,IAAI;MAChBzB,MAAM,EAANA,MAAM;MACNM,MAAM,EAANA;IACF,CAAC,CAAC;IAPMoB,UAAU,GAAAH,oBAAA,CAAVG,UAAU;IAAEC,WAAW,GAAAJ,oBAAA,CAAXI,WAAW;IAAEC,WAAW,GAAAL,oBAAA,CAAXK,WAAW;EAS5C,IAAMC,YAAY,GAAGtB,KAAK,KAAKuB,SAAS;EACxC,IAAMC,sDAAsD,GAC1DF,YAAY,IAAI,CAACtC,SAAS,IAAI,CAACU,QAAQ;EACzC,IAAM+B,cAAc,GAAG7B,IAAI,GAAG,CAAC,IAAI,CAACF,QAAQ;EAE5C,IAAAgC,cAAA,GAA2B7G,KAAK,CAAC8G,OAAO,CACtC;MAAA,OAAMjF,aAAa,CAAC6D,MAAM,CAAC;IAAA,GAC3B,CAACA,MAAM,CACT,CAAC;IAHOqB,KAAK,GAAAF,cAAA,CAALE,KAAK;IAAEC,OAAO,GAAAH,cAAA,CAAPG,OAAO;EAItB,IAAMC,mBAAmB,GAAGjH,KAAK,CAAC8G,OAAO,CAAC,YAAM;IAC9C,OAAOE,OAAO,KAAK3E,SAAS,GAAGA,SAAS,GAAGhB,QAAQ;EACrD,CAAC,EAAE,CAAC2F,OAAO,CAAC,CAAC;EAEb,IAAME,YAAY,GAAGlH,KAAK,CAAC8G,OAAO,CAAC,YAG9B;IACH,IAAMK,WAAW,MAAAC,MAAA,CAAM1G,iBAAiB,SAAA0G,MAAA,CAAK3G,mBAAmB,OAAG;IAEnE,IAAImE,MAAM,IAAIM,MAAM,EAAE;MACpB,IAAMmC,OAAO,GAAGC,QAAQ,CAAC3E,aAAa,CAAC,QAAQ,CAAC;MAChD,IAAM4E,OAAO,GAAGF,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEG,UAAU,CAAC,IAAI,CAAC;MAEzC,IAAID,OAAO,EAAE;QACXA,OAAO,CAACE,IAAI,GAAGN,WAAW;QAE1B,IAAMO,gBAAgB,GAAG9G,oBAAoB,GAAGD,gBAAgB;QAEhE,IAAMgH,aAAa,GACjBD,gBAAgB,GAAGE,IAAI,CAACC,IAAI,CAACN,OAAO,CAACO,WAAW,CAAC5C,MAAM,CAAC,CAACtC,KAAK,CAAC;QAEjE,IAAMmF,eAAe,GAAG,SAAlBA,eAAeA,CAAA,EAAS;UAC5B,IAAInB,cAAc,IAAI1B,MAAM,EAAE;YAC5B,OAAOyC,aAAa,GAAGzH,OAAO,CAAC8H,EAAE;UACnC;UACA,IAAI9C,MAAM,EAAE;YACV,OAAOyC,aAAa;UACtB;UACA,OAAO,IAAI;QACb,CAAC;QAED,OAAO;UACLM,IAAI,EAAErD,MAAM,GACR8C,gBAAgB,GAAGE,IAAI,CAACC,IAAI,CAACN,OAAO,CAACO,WAAW,CAAClD,MAAM,CAAC,CAAChC,KAAK,CAAC,GAC/DhC,oBAAoB;UACxBsH,KAAK,EAAEH,eAAe,CAAC;QACzB,CAAC;MACH;IACF;IAEA,OAAO;MACLE,IAAI,EAAErH,oBAAoB;MAC1BsH,KAAK,EAAE;IACT,CAAC;EACH,CAAC,EAAE,CAACtD,MAAM,EAAEM,MAAM,EAAE0B,cAAc,CAAC,CAAC;EAEpC,IAAMuB,cAAc,GAAGnI,KAAK,CAACoI,WAAW,CACtC,UAACjD,KAAa,EAAK;IACjB,IAAAkD,SAAA,GAAyB7F,QAAQ,CAACkD,MAAM,EAAEP,KAAK,CAAC;MAAxCmD,YAAY,GAAAD,SAAA,CAAZC,YAAY;IACpB,OAAO;MACLnD,KAAK,EAALA,KAAK;MACLmD,YAAY,EAAEC,KAAK,CAACD,YAAY,CAAC,GAAG,IAAI,GAAGA;IAC7C,CAAC;EACH,CAAC,EACD,CAAC5C,MAAM,CACT,CAAC;EAED,IAAM8C,gBAAgB,GAAGxI,KAAK,CAACoI,WAAW,CACxC,UAACjD,KAAa;IAAA,OAAKhB,SAAS,IAAIA,SAAS,CAACgE,cAAc,CAAChD,KAAK,CAAC,CAAC;EAAA,GAChE,CAAChB,SAAS,EAAEgE,cAAc,CAC5B,CAAC;EAED,IAAAM,eAAA,GAAoCzI,KAAK,CAAC0I,QAAQ,CAChDzC,WAAW,CAACvC,YAAY,CAC1B,CAAC;IAAAiF,gBAAA,GAAAC,cAAA,CAAAH,eAAA;IAFMI,UAAU,GAAAF,gBAAA;IAAEG,aAAa,GAAAH,gBAAA;EAGhC,IAAAI,gBAAA,GAAkC/I,KAAK,CAAC0I,QAAQ,CAC9CjC,YAAY,GAAGR,WAAW,CAACd,KAAK,CAAC,GAAG0D,UACtC,CAAC;IAAAG,gBAAA,GAAAJ,cAAA,CAAAG,gBAAA;IAFME,SAAS,GAAAD,gBAAA;IAAEE,YAAY,GAAAF,gBAAA;EAG9B,IAAAG,gBAAA,GACEnJ,KAAK,CAAC0I,QAAQ,CAAiB;MAC7BU,cAAc,EAAE,CAAC;MACjBC,YAAY,EAAE,CAAC;MACfC,SAAS,EAAE5H;IACb,CAAC,CAAC;IAAA6H,gBAAA,GAAAX,cAAA,CAAAO,gBAAA;IALGK,kBAAkB,GAAAD,gBAAA;IAAEE,qBAAqB,GAAAF,gBAAA;EAMhD,IAAAG,gBAAA,GAAoC1J,KAAK,CAAC0I,QAAQ,CAAC,CAAC;IAAAiB,gBAAA,GAAAf,cAAA,CAAAc,gBAAA;IAA7CE,UAAU,GAAAD,gBAAA;IAAEE,aAAa,GAAAF,gBAAA;EAChC,IAAMG,UAAU,GAAGtJ,WAAW,CAACkF,MAAM,CAAC;;EAEtC;EACA1F,KAAK,CAAC+J,eAAe,CAAC,YAAM;IAC1B,IAAMC,cAAc,GAAG/D,WAAW,CAACd,KAAK,CAAC;IACzC,IAAIsB,YAAY,IAAIoC,UAAU,KAAKmB,cAAc,EAAE;MACjDlB,aAAa,CAACkB,cAAc,CAAC;IAC/B;IAEA,IAAIrD,sDAAsD,EAAE;MAC1DsD,OAAO,CAACnG,KAAK,iQAIb,CAAC;IACH;EACF,CAAC,EAAE,CAACqB,KAAK,CAAC,CAAC;EAEXnF,KAAK,CAACkK,SAAS,CAAC,YAAM;IACpB,IAAIJ,UAAU,IAAI,CAAC/H,gBAAgB,CAAC+H,UAAU,EAAEpE,MAAM,CAAC,EAAE;MACvDoD,aAAa,CAAC,UAACqB,IAAI,EAAK;QACtB,IAAMC,QAAQ,GAAGnE,WAAW,CAACzD,QAAQ,CAACsH,UAAU,EAAEK,IAAI,CAAC,CAAC7B,YAAY,CAAC;QACrEE,gBAAgB,CAAC4B,QAAQ,CAAC;QAC1B,OAAOA,QAAQ;MACjB,CAAC,CAAC;IACJ;IACA;EACF,CAAC,EAAE,CAACN,UAAU,EAAE7D,WAAW,CAAC,CAAC;EAE7BjG,KAAK,CAAC+J,eAAe,CAAC,YAAM;IAAA,IAAAM,iBAAA;IAC1B,IAAMC,YAAY,GAAG,EAAAD,iBAAA,GAAA1E,QAAQ,CAAC4E,OAAO,cAAAF,iBAAA,uBAAhBA,iBAAA,CAAkBlF,KAAK,KAAI,EAAE;IAClD,IAAI,CAAChB,SAAS,IAAI,CAACmG,YAAY,EAAE;MAC/B;IACF;IACA,IAAMN,cAAc,GAAG/D,WAAW,CAACd,KAAK,CAAC;IAEzC,IAAImF,YAAY,KAAKN,cAAc,EAAE;MACnC,IAAMQ,QAAQ,GAAGF,YAAY,CAACA,YAAY,CAACG,MAAM,GAAG,CAAC,CAAC;MACtD,IAAMC,iBAAiB,GAAG,CAACrI,SAAS,EAAEhB,QAAQ,CAAC,CAACsJ,QAAQ,CAACH,QAAQ,CAAC;MAElE,IAAMI,QAAQ,GAAGN,YAAY,CAACO,KAAK,CAAC7D,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;MACrD,IAAM8D,iBAAiB,GACrBF,QAAQ,IAAIA,QAAQ,CAACA,QAAQ,CAACH,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG;MAEnD,IAAMM,kBAAkB,GAAGT,YAAY,KAAKnI,KAAK;;MAEjD;MACA,IAAIuI,iBAAiB,IAAII,iBAAiB,IAAIC,kBAAkB,EAAE;QAChE;MACF;;MAEA;MACAjC,aAAa,CAACkB,cAAc,CAAC;IAC/B;EACF,CAAC,CAAC;EAEF,IAAMgB,4BAA4B,GAAG,SAA/BA,4BAA4BA,CAChC7F,KAAa,EACbyE,UAAsB,EACnB;IACH,IAAMqB,aAAa,GAAG3I,wBAAwB,CAC5C0E,OAAO,EACPC,mBAAmB,EACnBF,KAAK,EACL6C,UAAU,EACVJ,kBAAkB,EAClBP,SAAS,EACTnD,oBAAoB,EACpBX,KACF,CAAC;IACD,IAAMiF,QAAQ,GAAGnE,WAAW,CAACgF,aAAa,CAAC;IAE3C,OAAO;MACLb,QAAQ,EAARA,QAAQ;MACRc,iBAAiB,EAAEtJ,oBAAoB,CACrCoF,OAAO,EACPC,mBAAmB,EACnBF,KAAK,EACLqD,QAAQ,EACRR,UAAU,EACVJ,kBAAkB,EAClBP,SAAS,EACT9D,KAAK,EACLW,oBAAoB,EACpBJ,MAAM,EACN1B,gBACF;IACF,CAAC;EACH,CAAC;EAED,IAAMmH,YAAY,GAAG,SAAfA,YAAYA,CAAIC,WAAmB,EAAK;IAAA,IAAAC,kBAAA;IAC5C,CAAAA,kBAAA,GAAA1F,QAAQ,CAAC4E,OAAO,cAAAc,kBAAA,uBAAhBA,kBAAA,CAAkBC,iBAAiB,CAACF,WAAW,EAAEA,WAAW,CAAC;IAC7D;IACAG,UAAU,CACR;MAAA,IAAAC,kBAAA;MAAA,QAAAA,kBAAA,GAAM7F,QAAQ,CAAC4E,OAAO,cAAAiB,kBAAA,uBAAhBA,kBAAA,CAAkBF,iBAAiB,CAACF,WAAW,EAAEA,WAAW,CAAC;IAAA,GACnE,CACF,CAAC;EACH,CAAC;EAED,IAAMK,QAAQ,GAAG,SAAXA,QAAQA,CAAA,EAAqB;IAAA,IAAjBC,IAAI,GAAAC,SAAA,CAAAlB,MAAA,QAAAkB,SAAA,QAAAjF,SAAA,GAAAiF,SAAA,MAAG,KAAK;IAC5B,IAAMC,uBAAuB,GAAG,SAA1BA,uBAAuBA,CAAIC,QAAgB,EAAK;MACpD,IAAMC,gBAAgB,GAAGD,QAAQ,CAAChB,KAAK,CAACnJ,WAAW,CAAC,CAACqK,OAAO,CAAC,CAAC;MAC9D,IAAMC,mCAAmC,GAAGjM,SAAS,CACnD,UAACkM,CAAC;QAAA,OAAKA,CAAC,KAAK,GAAG;MAAA,GAChBH,gBACF,CAAC;MAED,OAAOE,mCAAmC,GAAG,CAAC,CAAC,GAC3CF,gBAAgB,CAACI,KAAK,CAACF,mCAAmC,CAAC,CAACvB,MAAM,GAClE,CAAC;IACP,CAAC;IAED,IAAA0B,UAAA,GAAmC3J,QAAQ,CAACkD,MAAM,EAAEmD,UAAU,CAAC;MAAvDP,YAAY,GAAA6D,UAAA,CAAZ7D,YAAY;MAAEuD,QAAQ,GAAAM,UAAA,CAARN,QAAQ;IAC9B,IAAAO,UAAA,GAAmC5J,QAAQ,CAACkD,MAAM,EAAEX,IAAI,CAAC;MAAvCsH,YAAY,GAAAD,UAAA,CAAtBP,QAAQ;IAEhB,IAAMS,kBAAkB,GAAGT,QAAQ,CAACpB,MAAM,IAAI,CAAC;IAC/C,IAAM8B,6BAA6B,GAAGX,uBAAuB,CAACC,QAAQ,CAAC;IACvE,IAAMW,gBAAgB,GAAGH,YAAY,CAAC5B,MAAM,IAAI,CAAC;IACjD,IAAMgC,mCAAmC,GACvCD,gBAAgB,GAAG1G,oBAAoB;IACzC,IAAM4G,aAAa,GAAGD,mCAAmC,GACrD3G,oBAAoB,GACpB0G,gBAAgB;IAEpB,IAAIC,mCAAmC,EAAE;MACvCxC,OAAO,CAAC0C,IAAI,uDAAAvF,MAAA,CAC4CoF,gBAAgB,mCAAApF,MAAA,CAAgCtB,oBAAoB,OAC5H,CAAC;IACH;IAEA,IAAM8G,IAAI,GAAGrK,OAAO,CAACwC,IAAI,EAAE2H,aAAa,CAAC,IAAIhB,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IAC3D,IAAMmB,SAAS,GAAGjF,IAAI,CAAC3D,GAAG,CACxByI,aAAa,EACb1G,iBAAiB,GAAGF,oBAAoB,GAAGwG,kBAC7C,CAAC;IACD,IAAMQ,oBAAoB,GAAGlF,IAAI,CAAC3D,GAAG,CACnCsI,6BAA6B,EAC7BG,aACF,CAAC;IACD,IAAMK,gBAAgB,GAAGlE,UAAU,GAAG,CAACP,YAAY,IAAI,CAAC,IAAIsE,IAAI,GAAGA,IAAI;IACvE,IAAMI,aAAa,GAAG5L,KAAK,CAAC2L,gBAAgB,EAAE7I,GAAG,EAAED,GAAG,CAAC;IACvD,IAAMgJ,UAAU,GAAGD,aAAa,KAAKD,gBAAgB;IACrD,IAAMG,UAAU,GAAGrE,UAAU,GACzBmE,aAAa,CAACzK,OAAO,CAACuK,oBAAoB,CAAC,GAC3CE,aAAa;IAEjB,IAAAG,mBAAA,GAA8CjH,kBAAkB,CAC9D+G,UAAU,GAAGD,aAAa,GAAGE,UAAU,EACvC,IACF,CAAC;MAHOE,YAAY,GAAAD,mBAAA,CAAZC,YAAY;MAAEC,mBAAmB,GAAAF,mBAAA,CAAnBE,mBAAmB;IAKzC,IAAMC,uBAAuB,GAAG,CAACF,YAAY,IAAI,CAACC,mBAAmB;IAErE,IAAIC,uBAAuB,EAAE;MAC3BrD,OAAO,CAAC0C,IAAI,+EAAAvF,MAAA,CACoEnF,cAAc,qEAC9F,CAAC;MACD;IACF;IAEA,IAAMsL,SAAS,GAAGN,UAAU,GACxBhH,WAAW,CAAC+G,aAAa,CAAC,GAC1BrL,MAAM,CAAC+D,MAAM,EAAEmH,SAAS,EAAE,QAAQ,EAAEK,UAAU,EAAE,IAAI,CAAC;IAEzDpE,aAAa,CAACyE,SAAS,CAAC;IACxB/E,gBAAgB,CAAC+E,SAAS,CAAC;EAC7B,CAAC;EAED,IAAMC,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAIC,CAAM,EAAK;IACpC,IACEC,OAAO,GAILD,CAAC,CAJHC,OAAO;MACPC,OAAO,GAGLF,CAAC,CAHHE,OAAO;MACPC,GAAG,GAEDH,CAAC,CAFHG,GAAG;MAAAC,SAAA,GAEDJ,CAAC,CADHK,MAAM;MAAI3I,KAAK,GAAA0I,SAAA,CAAL1I,KAAK;MAAEiE,cAAc,GAAAyE,SAAA,CAAdzE,cAAc;MAAEC,YAAY,GAAAwE,SAAA,CAAZxE,YAAY;IAG/C,IAAMC,SAAS,GAAGnE,KAAK,CAAC+G,KAAK,CAAC9C,cAAc,EAAEC,YAAY,CAAC;IAE3DQ,aAAa,CAAC+D,GAAG,CAAC;IAClBnE,qBAAqB,CAAC;MACpBL,cAAc,EAAdA,cAAc;MACdC,YAAY,EAAZA,YAAY;MACZC,SAAS,EAATA;IACF,CAAC,CAAC;IACFJ,YAAY,CAAC/D,KAAK,CAAC;IAEnB,IAAM4I,wBAAwB,GAAG,SAA3BA,wBAAwBA,CAAA,EAAS;MACrC,IAAMC,iBAAiB,GACrB,CAAC1E,SAAS,IACV,CAACnI,YAAY,CAAC,CAACwJ,QAAQ,CAACiD,GAAG,CAAC,IAC5BzI,KAAK,CAACkE,YAAY,GAAG,CAAC,CAAC,KAAKrC,OAAO;MAErC,IAAMiH,cAAc,GAClB,CAAC3E,SAAS,IACV,CAAC7H,SAAS,EAAEW,gBAAgB,CAAC,CAACuI,QAAQ,CAACiD,GAAG,CAAC,IAC3CzI,KAAK,CAACkE,YAAY,CAAC,KAAKrC,OAAO;MAEjC,IAAMkH,gBAAgB,GACpB,CAAChM,iBAAiB,EAAEZ,UAAU,EAAEQ,eAAe,EAAEP,OAAO,CAAC,CAACoJ,QAAQ,CAChEiD,GACF,CAAC,KACAF,OAAO,IAAIC,OAAO,CAAC;MAEtB,IAAMQ,0BAA0B,GAC9B7E,SAAS,IACTA,SAAS,CAACqB,QAAQ,CAAC3D,OAAO,CAAC,IAC3BsC,SAAS,CAACmB,MAAM,GAAGtF,KAAK,CAACsF,MAAM,IAC/B,CAACyD,gBAAgB;MAEnB,IAAME,eAAe,GACnBJ,iBAAiB,IAAIC,cAAc,IAAIE,0BAA0B;MAEnE,IAAIC,eAAe,EAAE;QACnB,IAAMC,IAAI,GAAGF,0BAA0B,GACnC/E,cAAc,GACdC,YAAY;QAEhB,IAAMiF,KAAK,GAAIN,iBAAiB,IAAI,CAAC,CAAC,IAAMC,cAAc,IAAI,CAAE,IAAI,CAAC;QAErE,IAAMM,cAAc,GAAGF,IAAI,GAAGC,KAAK;QAEnCb,CAAC,CAACe,cAAc,CAAC,CAAC;QAClBrD,YAAY,CAACoD,cAAc,CAAC;MAC9B;IACF,CAAC;IAED,IAAME,2BAA2B,GAAG,SAA9BA,2BAA2BA,CAAA,EAAS;MACxC,IAAAC,oBAAA,GACExI,kBAAkB,CAACf,KAAK,CAAC;QADnBwJ,iBAAiB,GAAAD,oBAAA,CAAjBC,iBAAiB;QAAEC,aAAa,GAAAF,oBAAA,CAAbE,aAAa;QAAEC,cAAc,GAAAH,oBAAA,CAAdG,cAAc;MAGxD,IAAMC,+BAA+B,GACnCH,iBAAiB,GAAGC,aAAa,GAAGC,cAAc;MAEpD,OACG9I,sBAAsB,IAAI+I,+BAA+B,IAC1D9I,iBAAiB;IAErB,CAAC;IAED,IAAIyI,2BAA2B,CAAC,CAAC,EAAE;MACjCV,wBAAwB,CAAC,CAAC;IAC5B;IAEA,IAAMgB,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAA,EAAS;MAC9B,QAAQnB,GAAG;QACT,KAAK,SAAS;QACd,KAAK,IAAI;UACPH,CAAC,CAACe,cAAc,CAAC,CAAC;UAClB/C,QAAQ,CAAC,CAAC;UACV;QACF,KAAK,WAAW;QAChB,KAAK,MAAM;UACTgC,CAAC,CAACe,cAAc,CAAC,CAAC;UAClB/C,QAAQ,CAAC,IAAI,CAAC;UACd;MACJ;IACF,CAAC;IAED,IAAI7E,cAAc,EAAE;MAClBmI,iBAAiB,CAAC,CAAC;IACrB;IAEAxK,UAAU,CAACkJ,CAAC,CAAC;EACf,CAAC;EAED,IAAMuB,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAIvB,CAAM,EAAK;IACnC,IAAI9G,sDAAsD,EAAE;IAE5D,IACYxB,KAAK,GAEbsI,CAAC,CAFHK,MAAM,CAAI3I,KAAK;MACA8J,SAAS,GACtBxB,CAAC,CADHyB,WAAW,CAAID,SAAS;IAG1B,IAAAE,qBAAA,GAAwCnE,4BAA4B,CAClE7F,KAAK,EACLnD,kBAAkB,CAChBiF,mBAAmB,EACnBgI,SAAS,EACTrF,UAAU,EACVX,SAAS,EACT9D,KACF,CACF,CAAC;MATOiF,QAAQ,GAAA+E,qBAAA,CAAR/E,QAAQ;MAAEc,iBAAiB,GAAAiE,qBAAA,CAAjBjE,iBAAiB;IAUnC;IACAuC,CAAC,CAACK,MAAM,CAAC3I,KAAK,GAAGiF,QAAQ;IAEzBtB,aAAa,CAACsB,QAAQ,CAAC;IACvBe,YAAY,CAACD,iBAAiB,CAAC;IAE/B,IAAId,QAAQ,KAAKnB,SAAS,EAAE;MAC1BT,gBAAgB,CAAC4B,QAAQ,CAAC;IAC5B;EACF,CAAC;EAED,IAAMgF,cAAc,GAAG,SAAjBA,cAAcA,CAAI3B,CAAM,EAAK;IACjC,IAAA4B,UAAA,GAA8B7M,QAAQ,CAACkD,MAAM,EAAEmD,UAAU,CAAC;MAAlDyG,OAAO,GAAAD,UAAA,CAAPC,OAAO;MAAEzD,QAAQ,GAAAwD,UAAA,CAARxD,QAAQ;IAEzB,IAAM0D,oBAAoB,GACxB1G,UAAU,KAAK1G,KAAK,IACpB0G,UAAU,KAAK7B,OAAO,IACtB6B,UAAU,QAAAzB,MAAA,CAAQjF,KAAK,EAAAiF,MAAA,CAAGJ,OAAO,CAAE;IACrC,IAAMwI,yBAAyB,GAC7B3D,QAAQ,CAACpB,MAAM,GAAG,CAAC,KAAK6E,OAAO,KAAK5N,WAAW,IAAI4N,OAAO,KAAKnN,KAAK,CAAC;IACvE,IAAMsN,2BAA2B,GAC/B3J,oBAAoB,GAAG,CAAC,IACxB+C,UAAU,CAACA,UAAU,CAAC4B,MAAM,GAAG,CAAC,CAAC,KAAKzD,OAAO,IAC7C,CAACjB,sBAAsB;IACzB,IAAM2J,uBAAuB,GAAG5J,oBAAoB,GAAG+F,QAAQ,CAACpB,MAAM,GAAG,CAAC;IAC1E,IAAMkF,0BAA0B,GAC9B5J,sBAAsB,IAAI2J,uBAAuB;IAEnD,IAAME,YAAY,GAAG,SAAfA,YAAYA,CAAA,EAAS;MACzB,IAAIL,oBAAoB,EAAE;QACxB,OAAO7N,WAAW;MACpB;MACA,IAAI8N,yBAAyB,EAAE;QAC7B,IAAMK,kBAAkB,GAAG/J,oBAAoB,GAAG+F,QAAQ,CAACpB,MAAM;QACjE,UAAArD,MAAA,CAAUkI,OAAO,OAAAlI,MAAA,CAAIJ,OAAO,EAAAI,MAAA,CAC1BuI,0BAA0B,GACtB9D,QAAQ,CAACzE,MAAM,CACb0I,KAAK,CAACC,IAAI,CAAC;UAAEtF,MAAM,EAAEoF;QAAmB,CAAC,EAAE,UAACG,CAAC;UAAA,OAAK,GAAG;QAAA,EAAC,CAACC,IAAI,CACzDvO,WACF,CACF,CAAC,GACDmK,QAAQ;MAEhB;MACA,IAAI4D,2BAA2B,EAAE;QAC/B,OAAO5G,UAAU,CAACqH,OAAO,CACvB,IAAIC,MAAM,KAAA/I,MAAA,CAAKJ,OAAO,QAAK,GAAG,CAAC,EAC/BtF,WACF,CAAC;MACH;MACA,IAAIiO,0BAA0B,EAAE;QAC9B,OAAOhO,MAAM,CAAC+D,MAAM,EAAEI,oBAAoB,EAAE,QAAQ,EAAE+C,UAAU,CAAC;MACnE;MAEA,OAAOA,UAAU;IACnB,CAAC;IAED,IAAMuH,SAAS,GAAGR,YAAY,CAAC,CAAC;IAEhC,IAAMS,SAAS,GAAG,OAAOnM,GAAG,KAAK,QAAQ,IAAI,OAAOD,GAAG,KAAK,QAAQ;IACpE,IAAAqM,UAAA,GAAqC9N,QAAQ,CAACkD,MAAM,EAAE0K,SAAS,CAAC;MAA1CG,UAAU,GAAAD,UAAA,CAAxBhI,YAAY;IACpB,IAAMkI,aAAa,GAAGpP,KAAK,CAACmP,UAAU,EAAErM,GAAG,EAAED,GAAG,CAAC;IACjD,IAAMwM,UAAU,GACdJ,SAAS,IAAIK,MAAM,CAACC,QAAQ,CAACJ,UAAU,CAAC,IAAIC,aAAa,KAAKD,UAAU;IAE1E,IAAMK,cAAuC,GAC3C5K,iBAAiB,IAAID,sBAAsB,GAAG,QAAQ,GAAG,MAAM;IACjE,IAAM8K,UAAU,GAAGJ,UAAU,GACzB9O,MAAM,CACJ+D,MAAM,EACNI,oBAAoB,EACpB8K,cAAc,EACdJ,aAAa,EACb,IACF,CAAC,GACDJ,SAAS;IAEb,IAAIS,UAAU,KAAKhI,UAAU,EAAE;MAC7BC,aAAa,CAAC+H,UAAU,CAAC;MACzBrI,gBAAgB,CAACqI,UAAU,CAAC;IAC9B;IAEAnM,OAAO,CAAC+I,CAAC,CAAC;EACZ,CAAC;EAED,IAAAqD,UAAA,GAA8CtO,QAAQ,CAACkD,MAAM,EAAEmD,UAAU,CAAC;IAApDkI,mBAAmB,GAAAD,UAAA,CAAjCxI,YAAY;EACpB,IAAM0I,cAAc,GAAGN,MAAM,CAACC,QAAQ,CAACI,mBAAmB,CAAC;EAC3D,IAAME,OAAO,GACXD,cAAc,IACdN,MAAM,CAACC,QAAQ,CAAC1M,GAAG,CAAC,IACpB8M,mBAAmB,IAAK9M,GAAc;EACxC,IAAMiN,OAAO,GACXF,cAAc,IACdN,MAAM,CAACC,QAAQ,CAACzM,GAAG,CAAC,IACpB6M,mBAAmB,IAAK7M,GAAc;EAExC,oBACElE,KAAA,CAAA2C,aAAA,CAACzB,aAAa;IAACiQ,eAAe,EAAEvK,cAAe;IAAC,WAASxB,EAAE,aAAFA,EAAE,uBAAFA,EAAE,CAAEgM;EAAQ,gBACnEpR,KAAA,CAAA2C,aAAA,CAAC5B,WAAW,EAAAsQ,QAAA;IACVlM,KAAK,EAAE0D,UAAW;IAClBjF,QAAQ,EAAEA,QAAS;IACnBE,KAAK,EAAEA,KAAM;IACbQ,SAAS,EAAEkJ,iBAAkB;IAC7BpJ,QAAQ,EAAE4K,gBAAiB;IAC3BvK,MAAM,EAAE2K,cAAe;IACvBkC,SAAS,EAAC;IACV;IACA;IACA;IAAA;IACAC,IAAI,EAAE9L,aAAc;IACpBZ,QAAQ,EAAEA,QAAS;IACnBG,KAAK,EAAAwM,aAAA,CAAAA,aAAA,KACAxM,KAAK,GACL;MACDyM,WAAW,KAAArK,MAAA,CAAKF,YAAY,CAACe,IAAI,OAAI;MACrCyJ,YAAY,KAAAtK,MAAA,CAAKF,YAAY,CAACgB,KAAK;IACrC,CAAC;EACD,GACE5B,UAAU,EACVjB,KAAK;IACThC,GAAG,EAAElD,SAAS,CAACkD,GAAG,EAAEsC,QAAQ;EAAE,EAC/B,CAAC,EACDf,MAAM,iBACL5E,KAAA,CAAA2C,aAAA,CAAC3B,YAAY,EAAAqQ,QAAA;IAACzN,QAAQ,EAAEA;EAAS,GAAK2C,WAAW,GAC9C3B,MACW,CACf,EACAM,MAAM,iBACLlF,KAAA,CAAA2C,aAAA,CAAC1B,YAAY,EAAAoQ,QAAA;IACXM,gBAAgB,EAAE/K,cAAe;IACjChD,QAAQ,EAAEA;EAAS,GACf4C,WAAW,GAEdtB,MACW,CACf,EACA0B,cAAc,iBACb5G,KAAA,CAAA2C,aAAA,CAAC7B,wBAAwB,qBACvBd,KAAA,CAAA2C,aAAA,CAAC9B,uBAAuB;IACtB,eAAY,MAAM;IAClB+Q,IAAI,EAAC,QAAQ;IACbhO,QAAQ,EAAEA,QAAQ,IAAIqN,OAAQ;IAC9BY,QAAQ,EAAE,CAAC,CAAE;IACb,WAASzM,EAAE,aAAFA,EAAE,uBAAFA,EAAE,CAAE0M,SAAU;IACvBC,OAAO,EAAE,SAATA,OAAOA,CAAA;MAAA,OAAQtG,QAAQ,CAAC,CAAC;IAAA;EAAC,gBAE1BzL,KAAA,CAAA2C,aAAA,CAACD,QAAQ,MAAE,CACY,CAAC,eAC1B1C,KAAA,CAAA2C,aAAA,CAAC9B,uBAAuB;IACtB,eAAY,MAAM;IAClB+Q,IAAI,EAAC,QAAQ;IACbhO,QAAQ,EAAEA,QAAQ,IAAIsN,OAAQ;IAC9BW,QAAQ,EAAE,CAAC,CAAE;IACb,WAASzM,EAAE,aAAFA,EAAE,uBAAFA,EAAE,CAAE4M,SAAU;IACvBD,OAAO,EAAE,SAATA,OAAOA,CAAA;MAAA,OAAQtG,QAAQ,CAAC,IAAI,CAAC;IAAA;EAAC,gBAE9BzL,KAAA,CAAA2C,aAAA,CAACM,SAAS,MAAE,CACW,CACD,CAEf,CAAC;AAEpB,CACF,CAAC;AAEDC,WAAW,CAAC+O,WAAW,GAAG,aAAa;AAEvC,OAAO,IAAMC,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAC3BxM,MAAc,EACdyM,aAA+C,EAC/CC,MAAe,EACfC,eAAwB,EACxBC,eAAiC,EACf;EAAA,IAAAC,WAAA,EAAAC,YAAA;EAClB,IAAMC,eAAgC,GAAG;IACvC/M,MAAM,EAANA,MAAM;IACN2M,eAAe,EAAEA,eAAe,IAAI,KAAK;IACzCC,eAAe,EAAEA,eAAe,IAAI;EACtC,CAAC;EACD,IAAMI,KAAK,GAAG5S,qBAAqB,CAAC,CAAC,EAAE2S,eAAe,CAAC;EAEvD,IAAME,qBAAqB,GACzB,EAAAJ,WAAA,GAAAG,KAAK,CAACE,IAAI,CAAC,UAACC,IAAI;IAAA,OAAKA,IAAI,CAACjB,IAAI,KAAK,UAAU;EAAA,EAAC,cAAAW,WAAA,uBAA9CA,WAAA,CAAgDpN,KAAK,CAACsF,MAAM,KAAI,CAAC;EACnE,IAAMhH,YAAY,GAAG0O,aAAa,IAAIQ,qBAAqB;EAE3D,IAAMG,SAAS,GACbJ,KAAK,CAAC3S,SAAS,CAAC,UAACgT,MAAM,EAAK;IAC1B,OAAOA,MAAM,CAACnB,IAAI,KAAK,UAAU;EACnC,CAAC,CAAC,GACFc,KAAK,CAAC3S,SAAS,CAAC,UAAC8S,IAAI,EAAK;IACxB,OAAOA,IAAI,CAACjB,IAAI,KAAK,SAAS;EAChC,CAAC,CAAC,GACE,QAAQ,GACR,QAAQ;EAEd,IAAMoB,iBAAiB,GAAGX,eAAe,IAAAG,YAAA,GACrCE,KAAK,CAACE,IAAI,CAAC,UAACC,IAAI;IAAA,OAAKA,IAAI,CAACjB,IAAI,KAAK,UAAU;EAAA,EAAC,cAAAY,YAAA,uBAA9CA,YAAA,CAAgDrN,KAAK,CAAC8N,QAAQ,CAAC,CAAC,GAChEvM,SAAS;EAEb,IAAMwM,aAA4B,GAChCJ,SAAS,KAAK,QAAQ,GAClB;IACErP,YAAY,EAAEA,YAAgD;IAC9DmB,MAAM,EAAEoO,iBAAiB,IAAIZ,MAAM,IAAI;EACzC,CAAC,GACD;IACE3O,YAAY,EAAEA,YAAgD;IAC9DyB,MAAM,EAAE8N,iBAAiB,IAAIZ,MAAM,IAAI;EACzC,CAAC;EAEP,OAAOc,aAAa;AACtB,CAAC;AAED,OAAO,IAAMC,aAAa,gBAAGnT,KAAK,CAACmD,UAAU,CAI3C,UAAAiQ,KAAA,EAUE/P,GAAG,EACA;EAAA,IATDiP,eAAe,GAAAc,KAAA,CAAfd,eAAe;IACfD,eAAe,GAAAe,KAAA,CAAff,eAAe;IACDF,aAAa,GAAAiB,KAAA,CAA3B3P,YAAY;IAAA4P,qBAAA,GAAAD,KAAA,CACZpP,gBAAgB;IAAhBA,gBAAgB,GAAAqP,qBAAA,cAAGjT,+BAA+B,GAAAiT,qBAAA;IAAAC,YAAA,GAAAF,KAAA,CAClDxO,MAAM;IAANA,MAAM,GAAA0O,YAAA,cAAGjT,0BAA0B,GAAAiT,YAAA;IACnCpO,MAAM,GAAAkO,KAAA,CAANlO,MAAM;IACHG,KAAK,GAAAC,wBAAA,CAAA8N,KAAA,EAAAG,UAAA;EAIV,IAAM/N,IAAI,GAAGvF,cAAc,CAAC,CAAC;EAC7B,IAAMwF,aAAa,GAAGJ,KAAK,CAACK,MAAM,IAAIF,IAAI,CAACE,MAAM,IAAIlE,aAAa;EAElE,IAAM0R,aAA4B,GAAGhB,gBAAgB,CACnDzM,aAAa,EACb0M,aAAa,EACbvN,MAAM,IAAIM,MAAM,EAChBmN,eAAe,EACfC,eACF,CAAC;EAED,oBACEtS,KAAA,CAAA2C,aAAA,CAACO,WAAW,EAAAmO,QAAA;IACVrN,gBAAgB,EAAEA;EAAiB,GAC/BqB,KAAK,EACL6N,aAAa;IACjB7P,GAAG,EAAEA;EAAI,EACV,CAAC;AAEN,CACF,CAAC;AAED8P,aAAa,CAAClB,WAAW,GAAG,eAAe"}
|
|
@@ -12,37 +12,37 @@ var inputBgColor = colors.white;
|
|
|
12
12
|
var inputBorder = "".concat(colors.gray50, " solid 1px");
|
|
13
13
|
var StyledRootAddon = /*#__PURE__*/styled.span.withConfig({
|
|
14
14
|
displayName: "StyledRootAddon",
|
|
15
|
-
componentId: "core-
|
|
15
|
+
componentId: "core-12_49_0__sc-1782nvg-0"
|
|
16
16
|
})(["display:inline-flex;align-items:center;height:100%;position:absolute;top:0;color:", ";", ";"], function (_ref) {
|
|
17
17
|
var disabled = _ref.disabled;
|
|
18
18
|
return disabled ? colors.gray70 : colors.gray45;
|
|
19
19
|
}, getTypographyIntent('body'));
|
|
20
20
|
export var StyledPrefix = /*#__PURE__*/styled(StyledRootAddon).withConfig({
|
|
21
21
|
displayName: "StyledPrefix",
|
|
22
|
-
componentId: "core-
|
|
22
|
+
componentId: "core-12_49_0__sc-1782nvg-1"
|
|
23
23
|
})(["left:", "px;"], spacing.md);
|
|
24
24
|
export var StyledSuffix = /*#__PURE__*/styled(StyledRootAddon).withConfig({
|
|
25
25
|
displayName: "StyledSuffix",
|
|
26
|
-
componentId: "core-
|
|
26
|
+
componentId: "core-12_49_0__sc-1782nvg-2"
|
|
27
27
|
})(["right:", "px;"], function (_ref2) {
|
|
28
28
|
var $withIncrementer = _ref2.$withIncrementer;
|
|
29
29
|
return $withIncrementer ? spacing.md + incrementerWidth : spacing.md;
|
|
30
30
|
});
|
|
31
31
|
export var StyledIncrementerWrapper = /*#__PURE__*/styled.div.withConfig({
|
|
32
32
|
displayName: "StyledIncrementerWrapper",
|
|
33
|
-
componentId: "core-
|
|
33
|
+
componentId: "core-12_49_0__sc-1782nvg-3"
|
|
34
34
|
})(["display:flex;flex-direction:column;position:absolute;top:1px;right:1px;height:100%;"]);
|
|
35
35
|
export var StyledIncrementerButton = /*#__PURE__*/styled.button.withConfig({
|
|
36
36
|
displayName: "StyledIncrementerButton",
|
|
37
|
-
componentId: "core-
|
|
37
|
+
componentId: "core-12_49_0__sc-1782nvg-4"
|
|
38
38
|
})(["display:inline-flex;justify-content:center;align-items:center;width:", "px;height:calc(50% - 1px);border:none;border-radius:0px;outline:none;background-color:", ";padding:0;cursor:pointer;&:first-child,&:last-child{border-left:", ";&:disabled{border-color:", ";background-color:", ";}}&:first-child{border-top-right-radius:2px;}&:last-child{border-top:", ";border-bottom-right-radius:2px;}svg{fill:", ";}&:hover{svg{fill:", ";}}&:disabled{cursor:default;svg{fill:", ";}}"], incrementerWidth, inputBgColor, inputBorder, colors.gray50, colors.gray94, inputBorder, colors.gray45, colors.gray10, colors.gray70);
|
|
39
39
|
export var StyledInput = /*#__PURE__*/styled(Input).withConfig({
|
|
40
40
|
displayName: "StyledInput",
|
|
41
|
-
componentId: "core-
|
|
41
|
+
componentId: "core-12_49_0__sc-1782nvg-5"
|
|
42
42
|
})([""]);
|
|
43
43
|
export var StyledWrapper = /*#__PURE__*/styled.div.withConfig({
|
|
44
44
|
displayName: "StyledWrapper",
|
|
45
|
-
componentId: "core-
|
|
45
|
+
componentId: "core-12_49_0__sc-1782nvg-6"
|
|
46
46
|
})(["position:relative;", ""], function (_ref3) {
|
|
47
47
|
var $hasIncrementer = _ref3.$hasIncrementer;
|
|
48
48
|
return $hasIncrementer && css(["", "{padding-right:", "px;}"], StyledInput, spacing.md + incrementerWidth);
|
|
@@ -44,6 +44,20 @@ export interface NumberInputProps extends Omit<InputProps, 'value' | 'defaultVal
|
|
|
44
44
|
* @since 10.19.0
|
|
45
45
|
*/
|
|
46
46
|
fillDecimalScale?: FillDecimalScaleVariant;
|
|
47
|
+
/**
|
|
48
|
+
* The maximum value the input will accept. The spinner buttons and arrow-key
|
|
49
|
+
* stepping will not go above this value, and the value is clamped on blur.
|
|
50
|
+
* Initial values outside the range are not auto-clamped on mount.
|
|
51
|
+
* @since 12.49.0
|
|
52
|
+
*/
|
|
53
|
+
max?: number;
|
|
54
|
+
/**
|
|
55
|
+
* The minimum value the input will accept. The spinner buttons and arrow-key
|
|
56
|
+
* stepping will not go below this value, and the value is clamped on blur.
|
|
57
|
+
* Initial values outside the range are not auto-clamped on mount.
|
|
58
|
+
* @since 12.49.0
|
|
59
|
+
*/
|
|
60
|
+
min?: number;
|
|
47
61
|
/**
|
|
48
62
|
* `(value: ValueChange) => void`, where `ValueChange` is an object `{ value: string, parsedNumber: number | null }`.
|
|
49
63
|
* @since 10.19.0
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NumberInput.types.js","names":[],"sources":["../../src/NumberInput/NumberInput.types.ts"],"sourcesContent":["import type { CurrencyDisplay } from '@procore/globalization-toolkit'\nimport type { InputProps } from '../Input'\n\nexport type Locale = string | string[]\n\nexport type FillDecimalScaleVariant = 'none' | 'onBlur' | 'always'\n\nexport interface NumberInputValueChange {\n /**\n * The displayed value in format of the locale\n * @example \"1.000,990\"\n * @since 10.19.0\n */\n value: string\n /**\n * A Number data type of value\n * @example 1000.99\n * @since 10.19.0\n */\n parsedNumber: number | null\n}\n\nexport type InputValue = string | number | undefined | null\n\ninterface QaTags {\n wrapper?: string\n increment?: string\n decrement?: string\n}\n\nexport interface NumberInputProps\n extends Omit<InputProps, 'value' | 'defaultValue' | 'onChange' | 'variant'> {\n /**\n * The maximum number of fraction digits to use. Possible values range from 0 to 14. Setting to true will result in the maximum size, setting to false will allow 0 decimals, whole numbers only.\n * @defaultValue true\n * @since 10.19.0\n */\n decimalScale?:\n | boolean\n | 0\n | 1\n | 2\n | 3\n | 4\n | 5\n | 6\n | 7\n | 8\n | 9\n | 10\n | 11\n | 12\n | 13\n | 14\n /**\n * Initial value of an uncontrolled component\n * @since 10.19.0\n */\n defaultValue?: InputValue\n /**\n * `none` prevents from adding zeros to match given `decimalScale`.\n *\n * `always` automatically adds zeros to match given `decimalScale`.\n *\n * `onBlur` automatically adds zeros to match given `decimalScale` when input has lost focus.\n * @default 'none'\n * @since 10.19.0\n */\n fillDecimalScale?: FillDecimalScaleVariant\n /**\n * `(value: ValueChange) => void`, where `ValueChange` is an object `{ value: string, parsedNumber: number | null }`.\n * @since 10.19.0\n */\n onChange?: (value: NumberInputValueChange) => void\n /**\n * A string which is added to input as a prefix.\n * @since 10.19.0\n */\n prefix?: string\n /**\n * A stepping interval which is used in incrementer. Zero value turns off incrementer.\n * @defaultValue 0\n * @since 10.19.0\n */\n step?: number\n /**\n * A string which is added to input as a suffix\n * @since 10.19.0\n */\n suffix?: string\n /**\n * Value of a controlled component. If value is a string, the string MUST be formatted with the decimal separator to the locale.\n * @since 10.19.0\n */\n value?: InputValue\n /**\n * @since 10.19.0\n */\n qa?: QaTags\n}\n\nexport interface UseNumberFormatConfig\n extends Pick<NumberInputProps, 'decimalScale' | 'fillDecimalScale'> {\n /**\n * A string with a BCP 47 language tag or an array of such strings which specifies number formatting.\n * @defaultValue en-US\n * @since 10.19.0\n */\n locale?: Locale\n}\n\nexport interface Separators {\n /**\n * @since 10.19.0\n */\n decimal: string\n /**\n * @since 10.19.0\n */\n group: string\n}\n\nexport interface ParsedInputValue {\n /**\n * @since 10.19.0\n */\n integer: string\n /**\n * @since 10.19.0\n */\n decimal: string\n /**\n * @since 10.19.0\n */\n fraction: string\n /**\n * @since 10.19.0\n */\n parsedNumber: number\n}\n\nexport type PressedKey = string | undefined\n\nexport interface CursorPosition {\n /**\n * @since 10.19.0\n */\n selectionStart: number\n /**\n * @since 10.19.0\n */\n selectionEnd: number\n /**\n * @since 10.19.0\n */\n selection: string\n}\n\nexport interface CurrencyInputProps extends NumberInputProps {\n /**\n * @a11y should be labelled by using label id. Prefer `aria-labelledby` over `aria-label`.\n * It will attach internal prefix of suffix automatically to the label\n * @since 12.26.0\n */\n 'aria-labelledby'?: string\n /**\n * @a11y use this prop if there are no label available. Prefer `aria-labelledby` over `aria-label`.\n * It will attach internal prefix or suffix automatically to the label\n * @since 12.26.0\n */\n 'aria-label'?: string\n /**\n * String which is added to the input as a suffix or prefix dependent on the locale\n * @since 11.10.0\n */\n currencyIsoCode?: string\n /**\n * GTK option that determines how the currency symbol is displayed (narrowSymbol, symbol, name, code)\n * @since 11.10.0\n */\n currencyDisplay?: CurrencyDisplay\n /**\n * A string with a BCP 47 language tag or an array of such strings which specifies number formatting.\n * @defaultValue en-US\n * @since 10.19.0\n */\n locale?: Locale\n}\n\ninterface CurrencyPropsBasic {\n decimalScale?: NumberInputProps['decimalScale']\n}\ninterface CurrencyPropsWithPrefix extends CurrencyPropsBasic {\n prefix: string\n suffix?: never\n}\ninterface CurrencyPropsWithSuffix extends CurrencyPropsBasic {\n prefix?: never\n suffix: string\n}\n\nexport type CurrencyProps = CurrencyPropsWithPrefix | CurrencyPropsWithSuffix\n\nexport interface NumberInputLabelConfig {\n ariaLabel?: string\n ariaLabelledBy?: string\n id?: string\n name?: string\n prefix?: string\n suffix?: string\n}\n\nexport interface NumberInputLabelApi {\n inputProps: InputProps\n prefixProps: InputProps\n suffixProps: InputProps\n}\n"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"NumberInput.types.js","names":[],"sources":["../../src/NumberInput/NumberInput.types.ts"],"sourcesContent":["import type { CurrencyDisplay } from '@procore/globalization-toolkit'\nimport type { InputProps } from '../Input'\n\nexport type Locale = string | string[]\n\nexport type FillDecimalScaleVariant = 'none' | 'onBlur' | 'always'\n\nexport interface NumberInputValueChange {\n /**\n * The displayed value in format of the locale\n * @example \"1.000,990\"\n * @since 10.19.0\n */\n value: string\n /**\n * A Number data type of value\n * @example 1000.99\n * @since 10.19.0\n */\n parsedNumber: number | null\n}\n\nexport type InputValue = string | number | undefined | null\n\ninterface QaTags {\n wrapper?: string\n increment?: string\n decrement?: string\n}\n\nexport interface NumberInputProps\n extends Omit<InputProps, 'value' | 'defaultValue' | 'onChange' | 'variant'> {\n /**\n * The maximum number of fraction digits to use. Possible values range from 0 to 14. Setting to true will result in the maximum size, setting to false will allow 0 decimals, whole numbers only.\n * @defaultValue true\n * @since 10.19.0\n */\n decimalScale?:\n | boolean\n | 0\n | 1\n | 2\n | 3\n | 4\n | 5\n | 6\n | 7\n | 8\n | 9\n | 10\n | 11\n | 12\n | 13\n | 14\n /**\n * Initial value of an uncontrolled component\n * @since 10.19.0\n */\n defaultValue?: InputValue\n /**\n * `none` prevents from adding zeros to match given `decimalScale`.\n *\n * `always` automatically adds zeros to match given `decimalScale`.\n *\n * `onBlur` automatically adds zeros to match given `decimalScale` when input has lost focus.\n * @default 'none'\n * @since 10.19.0\n */\n fillDecimalScale?: FillDecimalScaleVariant\n /**\n * The maximum value the input will accept. The spinner buttons and arrow-key\n * stepping will not go above this value, and the value is clamped on blur.\n * Initial values outside the range are not auto-clamped on mount.\n * @since 12.49.0\n */\n max?: number\n /**\n * The minimum value the input will accept. The spinner buttons and arrow-key\n * stepping will not go below this value, and the value is clamped on blur.\n * Initial values outside the range are not auto-clamped on mount.\n * @since 12.49.0\n */\n min?: number\n /**\n * `(value: ValueChange) => void`, where `ValueChange` is an object `{ value: string, parsedNumber: number | null }`.\n * @since 10.19.0\n */\n onChange?: (value: NumberInputValueChange) => void\n /**\n * A string which is added to input as a prefix.\n * @since 10.19.0\n */\n prefix?: string\n /**\n * A stepping interval which is used in incrementer. Zero value turns off incrementer.\n * @defaultValue 0\n * @since 10.19.0\n */\n step?: number\n /**\n * A string which is added to input as a suffix\n * @since 10.19.0\n */\n suffix?: string\n /**\n * Value of a controlled component. If value is a string, the string MUST be formatted with the decimal separator to the locale.\n * @since 10.19.0\n */\n value?: InputValue\n /**\n * @since 10.19.0\n */\n qa?: QaTags\n}\n\nexport interface UseNumberFormatConfig\n extends Pick<NumberInputProps, 'decimalScale' | 'fillDecimalScale'> {\n /**\n * A string with a BCP 47 language tag or an array of such strings which specifies number formatting.\n * @defaultValue en-US\n * @since 10.19.0\n */\n locale?: Locale\n}\n\nexport interface Separators {\n /**\n * @since 10.19.0\n */\n decimal: string\n /**\n * @since 10.19.0\n */\n group: string\n}\n\nexport interface ParsedInputValue {\n /**\n * @since 10.19.0\n */\n integer: string\n /**\n * @since 10.19.0\n */\n decimal: string\n /**\n * @since 10.19.0\n */\n fraction: string\n /**\n * @since 10.19.0\n */\n parsedNumber: number\n}\n\nexport type PressedKey = string | undefined\n\nexport interface CursorPosition {\n /**\n * @since 10.19.0\n */\n selectionStart: number\n /**\n * @since 10.19.0\n */\n selectionEnd: number\n /**\n * @since 10.19.0\n */\n selection: string\n}\n\nexport interface CurrencyInputProps extends NumberInputProps {\n /**\n * @a11y should be labelled by using label id. Prefer `aria-labelledby` over `aria-label`.\n * It will attach internal prefix of suffix automatically to the label\n * @since 12.26.0\n */\n 'aria-labelledby'?: string\n /**\n * @a11y use this prop if there are no label available. Prefer `aria-labelledby` over `aria-label`.\n * It will attach internal prefix or suffix automatically to the label\n * @since 12.26.0\n */\n 'aria-label'?: string\n /**\n * String which is added to the input as a suffix or prefix dependent on the locale\n * @since 11.10.0\n */\n currencyIsoCode?: string\n /**\n * GTK option that determines how the currency symbol is displayed (narrowSymbol, symbol, name, code)\n * @since 11.10.0\n */\n currencyDisplay?: CurrencyDisplay\n /**\n * A string with a BCP 47 language tag or an array of such strings which specifies number formatting.\n * @defaultValue en-US\n * @since 10.19.0\n */\n locale?: Locale\n}\n\ninterface CurrencyPropsBasic {\n decimalScale?: NumberInputProps['decimalScale']\n}\ninterface CurrencyPropsWithPrefix extends CurrencyPropsBasic {\n prefix: string\n suffix?: never\n}\ninterface CurrencyPropsWithSuffix extends CurrencyPropsBasic {\n prefix?: never\n suffix: string\n}\n\nexport type CurrencyProps = CurrencyPropsWithPrefix | CurrencyPropsWithSuffix\n\nexport interface NumberInputLabelConfig {\n ariaLabel?: string\n ariaLabelledBy?: string\n id?: string\n name?: string\n prefix?: string\n suffix?: string\n}\n\nexport interface NumberInputLabelApi {\n inputProps: InputProps\n prefixProps: InputProps\n suffixProps: InputProps\n}\n"],"mappings":""}
|
|
@@ -21,6 +21,7 @@ export declare const controlKey = "Control";
|
|
|
21
21
|
export declare const highlightAllKey = "a";
|
|
22
22
|
export declare const copyKey = "c";
|
|
23
23
|
export declare function toFixed(value: number, precision: number): number;
|
|
24
|
+
export declare function clamp(value: number, min: number | undefined, max: number | undefined): number;
|
|
24
25
|
export declare function formatterFactory(options: NumberOptions): NumberFormatter;
|
|
25
26
|
export declare function getSeparators(locale: Locale): Separators;
|
|
26
27
|
export declare const isValidNegative: (value: InputValue) => boolean;
|
|
@@ -38,6 +38,12 @@ export function toFixed(value, precision) {
|
|
|
38
38
|
if (isExponentialRecord) return value;
|
|
39
39
|
return Number(Number(Math.round(Number(value + 'e' + precision)) + 'e-' + precision).toFixed(precision));
|
|
40
40
|
}
|
|
41
|
+
export function clamp(value, min, max) {
|
|
42
|
+
var result = value;
|
|
43
|
+
if (Number.isFinite(min)) result = Math.max(result, min);
|
|
44
|
+
if (Number.isFinite(max)) result = Math.min(result, max);
|
|
45
|
+
return result;
|
|
46
|
+
}
|
|
41
47
|
export function formatterFactory(options) {
|
|
42
48
|
try {
|
|
43
49
|
return new NumberFormatter(options);
|