@procore/core-react 12.26.4 → 12.26.6
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 +16 -0
- package/dist/AnchorNavigation/AnchorNavigation.styles.js +3 -3
- package/dist/Avatar/Avatar.styles.js +5 -5
- package/dist/AvatarStack/AvatarStack.styles.js +7 -7
- 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 +8 -8
- package/dist/Card/Card.styles.js +1 -1
- package/dist/Checkbox/Checkbox.styles.js +6 -6
- package/dist/Checkbox/CheckboxTooltip.js +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/DeprecatedTextEditorOutput/DeprecatedTextEditorOutput.styles.js +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 +4 -4
- 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 +4 -4
- package/dist/FilterToken/FilterToken.styles.js +5 -5
- package/dist/FlexList/FlexList.styles.js +1 -1
- package/dist/Form/Form.js +1 -1
- package/dist/Form/Form.js.map +1 -1
- package/dist/Form/Form.styles.js +14 -14
- 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.styles.js +8 -8
- package/dist/Loader/Loader.styles.js +2 -2
- package/dist/MenuImperative/MenuImperative.styles.js +10 -10
- package/dist/Modal/Modal.styles.js +13 -13
- package/dist/MultiSelect/MultiSelect.styles.js +6 -6
- package/dist/NextMenu/NextMenu.styles.js +3 -3
- package/dist/NextTextEditor/NextTextEditor.styles.js +2 -2
- package/dist/NextTextEditor/NextTextEditor.styles.js.map +1 -1
- package/dist/NextTextEditorOutput/NextTextEditorOutput.d.ts +1 -2
- package/dist/NextTextEditorOutput/NextTextEditorOutput.js +6 -10
- package/dist/NextTextEditorOutput/NextTextEditorOutput.js.map +1 -1
- package/dist/NextTextEditorOutput/NextTextEditorOutput.styles.js +2 -2
- package/dist/NextTextEditorOutput/NextTextEditorOutput.styles.js.map +1 -1
- package/dist/Notation/Notation.js +1 -1
- package/dist/NumberInput/NumberInput.hooks.d.ts +2 -1
- package/dist/NumberInput/NumberInput.hooks.js +40 -0
- package/dist/NumberInput/NumberInput.hooks.js.map +1 -1
- package/dist/NumberInput/NumberInput.js +20 -7
- package/dist/NumberInput/NumberInput.js.map +1 -1
- package/dist/NumberInput/NumberInput.styles.js +7 -7
- package/dist/NumberInput/NumberInput.types.d.ts +26 -1
- package/dist/NumberInput/NumberInput.types.js.map +1 -1
- package/dist/Overlay/OverlayArrow.styles.js +1 -1
- package/dist/PageLayout/PageLayout.styles.js +16 -16
- 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.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.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 +7 -7
- package/dist/Semantic/Semantic.styles.js +9 -9
- package/dist/Slider/Slider.js +1 -1
- package/dist/Slider/Slider.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 +37 -37
- package/dist/Switch/Switch.styles.js +4 -4
- package/dist/Table/Table.styles.js +28 -28
- package/dist/TableShelf/TableShelf.styles.js +5 -5
- package/dist/Tabs/Tabs.styles.js +15 -15
- package/dist/Tearsheet/Tearsheet.styles.js +5 -5
- package/dist/TextArea/TextArea.styles.js +1 -1
- package/dist/Thumbnail/Thumbnail.styles.js +17 -17
- 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.styles.js +3 -3
- package/dist/ToggleButton/ToggleButton.styles.js +1 -1
- package/dist/Token/Token.styles.js +3 -3
- package/dist/ToolHeader/ToolHeader.styles.js +6 -6
- package/dist/ToolLandingPage/ToolLandingPage.styles.js +3 -3
- package/dist/Tooltip/Tooltip.styles.js +2 -2
- package/dist/Tree/Tree.styles.js +9 -9
- package/dist/Typeahead/Typeahead.styles.js +3 -3
- package/dist/Typography/Typography.styles.js +1 -1
- package/dist/Typography/Typography.table.story.js +2 -2
- package/dist/_storyHelpers_/components/Deprecation.styles.js +1 -1
- package/dist/_storyHelpers_/components/StoryGrid.js +3 -3
- package/dist/_typedoc/AnchorNavigation/AnchorNavigation.types.json +3 -3
- package/dist/_typedoc/Avatar/Avatar.types.json +20 -20
- package/dist/_typedoc/AvatarStack/AvatarStack.types.json +24 -24
- package/dist/_typedoc/Badge/Badge.types.json +6 -6
- package/dist/_typedoc/Banner/Banner.types.json +13 -13
- 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 +13 -13
- 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 +13 -13
- package/dist/_typedoc/DetailPage/DetailPage.types.json +5 -5
- package/dist/_typedoc/Dropdown/Dropdown.types.json +37 -37
- package/dist/_typedoc/DropdownFlyout/DropdownFlyout.types.json +30 -30
- package/dist/_typedoc/Dropzone/Dropzone.types.json +44 -44
- package/dist/_typedoc/EmptyState/EmptyState.types.json +16 -16
- 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 +798 -754
- 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 +52 -52
- package/dist/_typedoc/Input/Input.types.json +2 -2
- package/dist/_typedoc/Link/Link.types.json +1 -1
- 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 +74 -74
- package/dist/_typedoc/Modal/Modal.types.json +46 -46
- package/dist/_typedoc/MultiSelect/MultiSelect.types.json +31 -31
- package/dist/_typedoc/NextTile/NextTile.types.json +32 -32
- package/dist/_typedoc/Notation/Notation.types.json +4 -4
- package/dist/_typedoc/NumberInput/NumberInput.types.json +161 -37
- package/dist/_typedoc/OverlayTrigger/OverlayTrigger.types.json +32 -32
- package/dist/_typedoc/PageLayout/PageLayout.types.json +26 -26
- package/dist/_typedoc/Pagination/Pagination.types.json +7 -7
- package/dist/_typedoc/Panel/Panel.types.json +30 -30
- 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 +60 -60
- 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 +101 -101
- package/dist/_typedoc/Tabs/Tabs.types.json +20 -20
- package/dist/_typedoc/Tearsheet/Tearsheet.types.json +17 -17
- package/dist/_typedoc/TextArea/TextArea.types.json +3 -3
- package/dist/_typedoc/TextEditor/TextEditorDocs.types.json +9 -9
- package/dist/_typedoc/TextEditor/TextEditorProvider.types.json +2 -2
- package/dist/_typedoc/TextEditorOutput/TextEditorOutputDocs.types.json +3 -3
- package/dist/_typedoc/Thumbnail/Thumbnail.types.json +19 -19
- package/dist/_typedoc/TieredDropdown/TieredDropdown.types.json +42 -42
- package/dist/_typedoc/TieredSelect/TieredSelect.types.json +28 -28
- 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.types.json +10 -10
- package/dist/_typedoc/ToolLandingPage/ToolLandingPage.types.json +7 -7
- package/dist/_typedoc/Tooltip/Tooltip.types.json +13 -13
- package/dist/_typedoc/Tree/Tree.types.json +86 -86
- 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/jestConfig.d.ts +3 -0
- package/package.json +9 -4
|
@@ -4,6 +4,7 @@ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r)
|
|
|
4
4
|
function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
|
|
5
5
|
function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }
|
|
6
6
|
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
7
|
+
import { useId } from '@react-aria/utils';
|
|
7
8
|
import React from 'react';
|
|
8
9
|
import { defaultLocale, format, getLengthInfo, verifyDecimalScale } from './NumberInput.utils';
|
|
9
10
|
export function usePrevious(value) {
|
|
@@ -50,4 +51,43 @@ export function useNumberFormat(_ref) {
|
|
|
50
51
|
decimalScale: decimalScale
|
|
51
52
|
};
|
|
52
53
|
}
|
|
54
|
+
export function useNumberInputLabel(_ref2) {
|
|
55
|
+
var ariaLabel = _ref2.ariaLabel,
|
|
56
|
+
ariaLabelledBy = _ref2.ariaLabelledBy,
|
|
57
|
+
id = _ref2.id,
|
|
58
|
+
name = _ref2.name,
|
|
59
|
+
prefix = _ref2.prefix,
|
|
60
|
+
suffix = _ref2.suffix;
|
|
61
|
+
var prefixDefaultId = useId();
|
|
62
|
+
var suffixDefaultId = useId();
|
|
63
|
+
var ariaLabelledByChained;
|
|
64
|
+
var prefixId;
|
|
65
|
+
var suffixId;
|
|
66
|
+
if (prefix) {
|
|
67
|
+
prefixId = id ? "".concat(id, "-prefix") : name ? "".concat(name, "-prefix") : prefixDefaultId;
|
|
68
|
+
}
|
|
69
|
+
if (suffix) {
|
|
70
|
+
suffixId = id ? "".concat(id, "-suffix") : name ? "".concat(name, "-suffix") : suffixDefaultId;
|
|
71
|
+
}
|
|
72
|
+
if (ariaLabelledBy) {
|
|
73
|
+
ariaLabelledByChained = prefixId || suffixId ? "".concat(ariaLabelledBy, " ").concat(prefixId || suffixId) : ariaLabelledBy;
|
|
74
|
+
}
|
|
75
|
+
if (ariaLabel) {
|
|
76
|
+
ariaLabelledByChained = prefixId || suffixId ? "".concat(id, " ").concat(prefixId || suffixId) : id;
|
|
77
|
+
}
|
|
78
|
+
return {
|
|
79
|
+
inputProps: {
|
|
80
|
+
'aria-label': ariaLabel,
|
|
81
|
+
'aria-labelledby': ariaLabelledByChained
|
|
82
|
+
},
|
|
83
|
+
prefixProps: {
|
|
84
|
+
'aria-hidden': !ariaLabel,
|
|
85
|
+
id: prefixId
|
|
86
|
+
},
|
|
87
|
+
suffixProps: {
|
|
88
|
+
'aria-hidden': !ariaLabel,
|
|
89
|
+
id: suffixId
|
|
90
|
+
}
|
|
91
|
+
};
|
|
92
|
+
}
|
|
53
93
|
//# sourceMappingURL=NumberInput.hooks.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NumberInput.hooks.js","names":["React","defaultLocale","format","getLengthInfo","verifyDecimalScale","usePrevious","value","ref","useRef","useEffect","current","useNumberFormat","_ref","_ref$decimalScale","decimalScale","_decimalScale","_ref$fillDecimalScale","fillDecimalScale","_ref$locale","locale","_locale","useMemo","concat","_toConsumableArray","Array","isArray","_React$useMemo","fixedDecimalScale","fillDecimalScaleOnBlur","formatValue","useCallback","getValueLengthInfo","isNumericString","arguments","length","undefined"],"sources":["../../src/NumberInput/NumberInput.hooks.ts"],"sourcesContent":["import React from 'react'\nimport type {
|
|
1
|
+
{"version":3,"file":"NumberInput.hooks.js","names":["useId","React","defaultLocale","format","getLengthInfo","verifyDecimalScale","usePrevious","value","ref","useRef","useEffect","current","useNumberFormat","_ref","_ref$decimalScale","decimalScale","_decimalScale","_ref$fillDecimalScale","fillDecimalScale","_ref$locale","locale","_locale","useMemo","concat","_toConsumableArray","Array","isArray","_React$useMemo","fixedDecimalScale","fillDecimalScaleOnBlur","formatValue","useCallback","getValueLengthInfo","isNumericString","arguments","length","undefined","useNumberInputLabel","_ref2","ariaLabel","ariaLabelledBy","id","name","prefix","suffix","prefixDefaultId","suffixDefaultId","ariaLabelledByChained","prefixId","suffixId","inputProps","prefixProps","suffixProps"],"sources":["../../src/NumberInput/NumberInput.hooks.ts"],"sourcesContent":["import { useId } from '@react-aria/utils'\nimport React from 'react'\nimport type {\n InputValue,\n NumberInputLabelApi,\n NumberInputLabelConfig,\n UseNumberFormatConfig,\n} from './NumberInput.types'\nimport {\n defaultLocale,\n format,\n getLengthInfo,\n verifyDecimalScale,\n} from './NumberInput.utils'\n\nexport function usePrevious<T>(value: T) {\n const ref = React.useRef<T>()\n React.useEffect(() => {\n ref.current = value\n })\n return ref.current as T\n}\n\nexport function useNumberFormat({\n decimalScale: _decimalScale = true,\n fillDecimalScale = 'none',\n locale: _locale = defaultLocale,\n}: UseNumberFormatConfig) {\n const locale = React.useMemo(\n () =>\n [\n ...(Array.isArray(_locale) ? _locale : [_locale]),\n defaultLocale,\n ] as string[],\n [_locale]\n )\n\n const { fixedDecimalScale, fillDecimalScaleOnBlur } = React.useMemo(\n () => ({\n fixedDecimalScale: fillDecimalScale === 'always',\n fillDecimalScaleOnBlur: fillDecimalScale === 'onBlur',\n }),\n [fillDecimalScale]\n )\n\n const decimalScale = React.useMemo(\n () => verifyDecimalScale(_decimalScale),\n [_decimalScale]\n )\n\n const formatValue = React.useCallback(\n (value: InputValue) =>\n format(locale, decimalScale, fillDecimalScale, value),\n [locale, decimalScale, fillDecimalScale]\n )\n\n const getValueLengthInfo = React.useCallback(\n (value: InputValue, isNumericString = false) =>\n getLengthInfo(\n locale,\n value,\n decimalScale,\n fillDecimalScale,\n isNumericString\n ),\n [locale, decimalScale, fillDecimalScale]\n )\n\n return {\n formatValue,\n getValueLengthInfo,\n locale,\n fixedDecimalScale,\n fillDecimalScaleOnBlur,\n decimalScale,\n }\n}\n\nexport function useNumberInputLabel({\n ariaLabel,\n ariaLabelledBy,\n id,\n name,\n prefix,\n suffix,\n}: NumberInputLabelConfig): NumberInputLabelApi {\n const prefixDefaultId = useId()\n const suffixDefaultId = useId()\n let ariaLabelledByChained\n let prefixId\n let suffixId\n\n if (prefix) {\n prefixId = id ? `${id}-prefix` : name ? `${name}-prefix` : prefixDefaultId\n }\n if (suffix) {\n suffixId = id ? `${id}-suffix` : name ? `${name}-suffix` : suffixDefaultId\n }\n if (ariaLabelledBy) {\n ariaLabelledByChained =\n prefixId || suffixId\n ? `${ariaLabelledBy} ${prefixId || suffixId}`\n : ariaLabelledBy\n }\n if (ariaLabel) {\n ariaLabelledByChained =\n prefixId || suffixId ? `${id} ${prefixId || suffixId}` : id\n }\n\n return {\n inputProps: {\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledByChained,\n },\n prefixProps: {\n 'aria-hidden': !ariaLabel,\n id: prefixId,\n },\n suffixProps: {\n 'aria-hidden': !ariaLabel,\n id: suffixId,\n },\n }\n}\n"],"mappings":"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"}
|
|
@@ -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 = ["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", "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; }
|
|
@@ -22,7 +22,7 @@ import { useI18nContext } from '../_hooks/I18n';
|
|
|
22
22
|
import { spacing } from '../_styles/spacing';
|
|
23
23
|
import { mergeRefs } from '../_utils/mergeRefs';
|
|
24
24
|
import { defaultCurrencyFillDecimalScale, defaultCurrencyInputPrefix } from './NumberInput.constants';
|
|
25
|
-
import { useNumberFormat, usePrevious } from './NumberInput.hooks';
|
|
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
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';
|
|
28
28
|
function noop() {}
|
|
@@ -62,7 +62,9 @@ var MinusIcon = function MinusIcon() {
|
|
|
62
62
|
|
|
63
63
|
*/
|
|
64
64
|
export var NumberInput = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
65
|
-
var
|
|
65
|
+
var ariaLabel = _ref['aria-label'],
|
|
66
|
+
ariaLabelledBy = _ref['aria-labelledby'],
|
|
67
|
+
_ref$decimalScale = _ref.decimalScale,
|
|
66
68
|
decimalScale = _ref$decimalScale === void 0 ? true : _ref$decimalScale,
|
|
67
69
|
defaultValue = _ref.defaultValue,
|
|
68
70
|
_ref$disabled = _ref.disabled,
|
|
@@ -101,6 +103,17 @@ export var NumberInput = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
101
103
|
formatValue = _useNumberFormat.formatValue,
|
|
102
104
|
getValueLengthInfo = _useNumberFormat.getValueLengthInfo,
|
|
103
105
|
locale = _useNumberFormat.locale;
|
|
106
|
+
var _useNumberInputLabel = useNumberInputLabel({
|
|
107
|
+
ariaLabel: ariaLabel,
|
|
108
|
+
ariaLabelledBy: ariaLabelledBy,
|
|
109
|
+
id: props.id,
|
|
110
|
+
name: props.name,
|
|
111
|
+
prefix: prefix,
|
|
112
|
+
suffix: suffix
|
|
113
|
+
}),
|
|
114
|
+
inputProps = _useNumberInputLabel.inputProps,
|
|
115
|
+
prefixProps = _useNumberInputLabel.prefixProps,
|
|
116
|
+
suffixProps = _useNumberInputLabel.suffixProps;
|
|
104
117
|
var isControlled = value !== undefined;
|
|
105
118
|
var isControlledWithoutOnChangeHandlerAndReadOnlyAttribute = isControlled && !_onChange && !readOnly;
|
|
106
119
|
var hasIncrementer = step > 0 && !readOnly;
|
|
@@ -404,14 +417,14 @@ export var NumberInput = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
404
417
|
paddingLeft: "".concat(inputPadding.left, "px"),
|
|
405
418
|
paddingRight: "".concat(inputPadding.right, "px")
|
|
406
419
|
})
|
|
407
|
-
}, props, {
|
|
420
|
+
}, inputProps, props, {
|
|
408
421
|
ref: mergeRefs(ref, inputRef)
|
|
409
|
-
})), prefix && /*#__PURE__*/React.createElement(StyledPrefix, {
|
|
422
|
+
})), prefix && /*#__PURE__*/React.createElement(StyledPrefix, _extends({
|
|
410
423
|
disabled: disabled
|
|
411
|
-
}, prefix), suffix && /*#__PURE__*/React.createElement(StyledSuffix, {
|
|
424
|
+
}, prefixProps), prefix), suffix && /*#__PURE__*/React.createElement(StyledSuffix, _extends({
|
|
412
425
|
$withIncrementer: hasIncrementer,
|
|
413
426
|
disabled: disabled
|
|
414
|
-
}, suffix), hasIncrementer && /*#__PURE__*/React.createElement(StyledIncrementerWrapper, null, /*#__PURE__*/React.createElement(StyledIncrementerButton, {
|
|
427
|
+
}, suffixProps), suffix), hasIncrementer && /*#__PURE__*/React.createElement(StyledIncrementerWrapper, null, /*#__PURE__*/React.createElement(StyledIncrementerButton, {
|
|
415
428
|
"aria-hidden": "true",
|
|
416
429
|
type: "button",
|
|
417
430
|
disabled: disabled,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NumberInput.js","names":["formatCurrencyToParts","findIndex","React","useI18nContext","spacing","mergeRefs","defaultCurrencyFillDecimalScale","defaultCurrencyInputPrefix","useNumberFormat","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","_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","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 { useNumberFormat, usePrevious } 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 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 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 {...props}\n ref={mergeRefs(ref, inputRef)}\n />\n {prefix && <StyledPrefix disabled={disabled}>{prefix}</StyledPrefix>}\n {suffix && (\n <StyledSuffix $withIncrementer={hasIncrementer} disabled={disabled}>\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":"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"}
|
|
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":"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"}
|
|
@@ -12,37 +12,37 @@ var inputBgColor = colors.white;
|
|
|
12
12
|
var inputBorder = "".concat(colors.gray70, " solid 1px");
|
|
13
13
|
var StyledRootAddon = /*#__PURE__*/styled.span.withConfig({
|
|
14
14
|
displayName: "StyledRootAddon",
|
|
15
|
-
componentId: "core-
|
|
15
|
+
componentId: "core-12_26_6__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_26_6__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_26_6__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_26_6__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_26_6__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.gray70, 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_26_6__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_26_6__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);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { CurrencyDisplay } from '@procore/globalization-toolkit';
|
|
2
|
-
import type { InputProps } from '../Input
|
|
2
|
+
import type { InputProps } from '../Input';
|
|
3
3
|
export declare type Locale = string | string[];
|
|
4
4
|
export declare type FillDecimalScaleVariant = 'none' | 'onBlur' | 'always';
|
|
5
5
|
export interface NumberInputValueChange {
|
|
@@ -127,6 +127,18 @@ export interface CursorPosition {
|
|
|
127
127
|
selection: string;
|
|
128
128
|
}
|
|
129
129
|
export interface CurrencyInputProps extends NumberInputProps {
|
|
130
|
+
/**
|
|
131
|
+
* @a11y should be labelled by using label id. Prefer `aria-labelledby` over `aria-label`.
|
|
132
|
+
* It will attach internal prefix of suffix automatically to the label
|
|
133
|
+
* @since 12.26.0
|
|
134
|
+
*/
|
|
135
|
+
'aria-labelledby'?: string;
|
|
136
|
+
/**
|
|
137
|
+
* @a11y use this prop if there are no label available. Prefer `aria-labelledby` over `aria-label`.
|
|
138
|
+
* It will attach internal prefix or suffix automatically to the label
|
|
139
|
+
* @since 12.26.0
|
|
140
|
+
*/
|
|
141
|
+
'aria-label'?: string;
|
|
130
142
|
/**
|
|
131
143
|
* String which is added to the input as a suffix or prefix dependent on the locale
|
|
132
144
|
* @since 11.10.0
|
|
@@ -156,4 +168,17 @@ interface CurrencyPropsWithSuffix extends CurrencyPropsBasic {
|
|
|
156
168
|
suffix: string;
|
|
157
169
|
}
|
|
158
170
|
export declare type CurrencyProps = CurrencyPropsWithPrefix | CurrencyPropsWithSuffix;
|
|
171
|
+
export interface NumberInputLabelConfig {
|
|
172
|
+
ariaLabel?: string;
|
|
173
|
+
ariaLabelledBy?: string;
|
|
174
|
+
id?: string;
|
|
175
|
+
name?: string;
|
|
176
|
+
prefix?: string;
|
|
177
|
+
suffix?: string;
|
|
178
|
+
}
|
|
179
|
+
export interface NumberInputLabelApi {
|
|
180
|
+
inputProps: InputProps;
|
|
181
|
+
prefixProps: InputProps;
|
|
182
|
+
suffixProps: InputProps;
|
|
183
|
+
}
|
|
159
184
|
export {};
|
|
@@ -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
|
|
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":""}
|
|
@@ -2,6 +2,6 @@ import styled from 'styled-components';
|
|
|
2
2
|
export var arrowSize = 8;
|
|
3
3
|
export var StyledArrow = /*#__PURE__*/styled.div.withConfig({
|
|
4
4
|
displayName: "StyledArrow",
|
|
5
|
-
componentId: "core-
|
|
5
|
+
componentId: "core-12_26_6__sc-1epxw7u-0"
|
|
6
6
|
})(["position:absolute;background:inherit;width:", "px;height:", "px;transform:rotate(45deg);"], arrowSize, arrowSize);
|
|
7
7
|
//# sourceMappingURL=OverlayArrow.styles.js.map
|
|
@@ -11,52 +11,52 @@ var outerPageSpacing = spacing.lg;
|
|
|
11
11
|
var outerPageSpacingSmaller = spacing.md;
|
|
12
12
|
export var StyledPageHeader = /*#__PURE__*/styled.div.withConfig({
|
|
13
13
|
displayName: "StyledPageHeader",
|
|
14
|
-
componentId: "core-
|
|
14
|
+
componentId: "core-12_26_6__sc-1cvdbsv-0"
|
|
15
15
|
})(["padding-top:", "px;padding-right:", "px;padding-left:", "px;@media ", "{padding-right:", "px;padding-left:", "px;}", ""], headerVerticalSpacing, outerPageSpacing, outerPageSpacing, mediaBreakpointsDown.tabletMd, outerPageSpacingSmaller, outerPageSpacingSmaller, function (_ref) {
|
|
16
16
|
var $transparent = _ref.$transparent;
|
|
17
17
|
return !$transparent && css(["", " background-color:", ";"], getShadow(1.5), colors.white);
|
|
18
18
|
});
|
|
19
19
|
var StyledPageHeaderItem = /*#__PURE__*/styled.div.withConfig({
|
|
20
20
|
displayName: "StyledPageHeaderItem",
|
|
21
|
-
componentId: "core-
|
|
21
|
+
componentId: "core-12_26_6__sc-1cvdbsv-1"
|
|
22
22
|
})(["margin-top:", "px;&:first-child{margin-top:0;}"], headerVerticalSpacing);
|
|
23
23
|
export var StyledPageTitle = /*#__PURE__*/styled(StyledPageHeaderItem).withConfig({
|
|
24
24
|
displayName: "StyledPageTitle",
|
|
25
|
-
componentId: "core-
|
|
25
|
+
componentId: "core-12_26_6__sc-1cvdbsv-2"
|
|
26
26
|
})(["&:last-child{padding-bottom:", "px;}"], headerVerticalSpacing);
|
|
27
27
|
export var StyledPageBreadcrumbs = /*#__PURE__*/styled(StyledPageHeaderItem).attrs({
|
|
28
28
|
as: 'nav'
|
|
29
29
|
}).withConfig({
|
|
30
30
|
displayName: "StyledPageBreadcrumbs",
|
|
31
|
-
componentId: "core-
|
|
31
|
+
componentId: "core-12_26_6__sc-1cvdbsv-3"
|
|
32
32
|
})([""]);
|
|
33
33
|
export var StyledPageBanner = /*#__PURE__*/styled(StyledPageHeaderItem).withConfig({
|
|
34
34
|
displayName: "StyledPageBanner",
|
|
35
|
-
componentId: "core-
|
|
35
|
+
componentId: "core-12_26_6__sc-1cvdbsv-4"
|
|
36
36
|
})([""]);
|
|
37
37
|
export var getActions = function getActions() {
|
|
38
38
|
return css(["flex-shrink:0;padding-left:", "px;> button,> a{&:first-child{margin-left:0;}margin-left:", "px;}"], spacing.xl, spacing.sm);
|
|
39
39
|
};
|
|
40
40
|
export var StyledPageActions = /*#__PURE__*/styled.div.withConfig({
|
|
41
41
|
displayName: "StyledPageActions",
|
|
42
|
-
componentId: "core-
|
|
42
|
+
componentId: "core-12_26_6__sc-1cvdbsv-5"
|
|
43
43
|
})(["", ""], getActions());
|
|
44
44
|
export var StyledPageTabs = /*#__PURE__*/styled(StyledPageHeaderItem).withConfig({
|
|
45
45
|
displayName: "StyledPageTabs",
|
|
46
|
-
componentId: "core-
|
|
46
|
+
componentId: "core-12_26_6__sc-1cvdbsv-6"
|
|
47
47
|
})([""]);
|
|
48
48
|
export var StyledBody = /*#__PURE__*/styled.div.withConfig({
|
|
49
49
|
displayName: "StyledBody",
|
|
50
|
-
componentId: "core-
|
|
50
|
+
componentId: "core-12_26_6__sc-1cvdbsv-7"
|
|
51
51
|
})(["padding-top:", "px;padding-left:", "px;padding-right:", "px;@media ", "{padding-top:", "px;padding-left:", "px;padding-right:", "px;}"], outerPageSpacing, outerPageSpacing, outerPageSpacing, mediaBreakpointsDown.tabletMd, outerPageSpacingSmaller, outerPageSpacingSmaller, outerPageSpacingSmaller);
|
|
52
52
|
var navigationWidth = 200;
|
|
53
53
|
export var StyledNavigation = /*#__PURE__*/styled.div.withConfig({
|
|
54
54
|
displayName: "StyledNavigation",
|
|
55
|
-
componentId: "core-
|
|
55
|
+
componentId: "core-12_26_6__sc-1cvdbsv-8"
|
|
56
56
|
})(["float:left;max-height:100vh;min-width:", "px;overflow-y:auto;position:sticky;top:0;width:", "px;", "{padding:20px ", "px 0 0;}@media screen and (max-width:1024px){display:none;}"], navigationWidth, navigationWidth, StyledAnchorNavigation, spacing.sm);
|
|
57
57
|
export var StyledContent = /*#__PURE__*/styled.div.withConfig({
|
|
58
58
|
displayName: "StyledContent",
|
|
59
|
-
componentId: "core-
|
|
59
|
+
componentId: "core-12_26_6__sc-1cvdbsv-9"
|
|
60
60
|
})([""]);
|
|
61
61
|
var panelWidth = 400;
|
|
62
62
|
var zIndexes = {
|
|
@@ -69,7 +69,7 @@ export var animationDuration = {
|
|
|
69
69
|
};
|
|
70
70
|
export var StyledFooter = /*#__PURE__*/styled.div.withConfig({
|
|
71
71
|
displayName: "StyledFooter",
|
|
72
|
-
componentId: "core-
|
|
72
|
+
componentId: "core-12_26_6__sc-1cvdbsv-10"
|
|
73
73
|
})(["background-color:", ";", " position:sticky;bottom:0;z-index:", ";", ""], colors.white, function (_ref2) {
|
|
74
74
|
var $hasShadow = _ref2.$hasShadow;
|
|
75
75
|
return $hasShadow && getShadow(2, 'top');
|
|
@@ -79,7 +79,7 @@ export var StyledFooter = /*#__PURE__*/styled.div.withConfig({
|
|
|
79
79
|
});
|
|
80
80
|
export var StyledAside = /*#__PURE__*/styled.div.withConfig({
|
|
81
81
|
displayName: "StyledAside",
|
|
82
|
-
componentId: "core-
|
|
82
|
+
componentId: "core-12_26_6__sc-1cvdbsv-11"
|
|
83
83
|
})(["", " @media ", "{position:absolute;right:0;}"], function (_ref4) {
|
|
84
84
|
var $closed = _ref4.$closed,
|
|
85
85
|
$open = _ref4.$open;
|
|
@@ -99,7 +99,7 @@ var getPanelAnimation = function getPanelAnimation() {
|
|
|
99
99
|
};
|
|
100
100
|
export var StyledAsidePanel = /*#__PURE__*/styled.div.withConfig({
|
|
101
101
|
displayName: "StyledAsidePanel",
|
|
102
|
-
componentId: "core-
|
|
102
|
+
componentId: "core-12_26_6__sc-1cvdbsv-12"
|
|
103
103
|
})(["", " @media ", "{", "}", " ", " border-left:1px solid ", ";width:", "px;position:fixed;background-color:", ";overflow:auto;z-index:", ";", " ", ""], function (_ref7) {
|
|
104
104
|
var $rightOffset = _ref7.$rightOffset;
|
|
105
105
|
return css(["@media ", "{", " border-left:0;z-index:", ";right:", "px;}"], mediaBreakpointsDown.tabletMd, getShadow(2), zIndexes.panelNarrowScreen, $rightOffset);
|
|
@@ -118,7 +118,7 @@ export var StyledAsidePanel = /*#__PURE__*/styled.div.withConfig({
|
|
|
118
118
|
});
|
|
119
119
|
export var StyledPageMain = /*#__PURE__*/styled.div.withConfig({
|
|
120
120
|
displayName: "StyledPageMain",
|
|
121
|
-
componentId: "core-
|
|
121
|
+
componentId: "core-12_26_6__sc-1cvdbsv-13"
|
|
122
122
|
})(["position:relative;max-width:100%;background-color:", ";", " ", ""], colors.gray96, function () {
|
|
123
123
|
return isIE11() && css(["flex:1 0 0%;"]);
|
|
124
124
|
}, function (_ref10) {
|
|
@@ -133,13 +133,13 @@ export var StyledPageMain = /*#__PURE__*/styled.div.withConfig({
|
|
|
133
133
|
});
|
|
134
134
|
export var StyledPageContainer = /*#__PURE__*/styled.div.withConfig({
|
|
135
135
|
displayName: "StyledPageContainer",
|
|
136
|
-
componentId: "core-
|
|
136
|
+
componentId: "core-12_26_6__sc-1cvdbsv-14"
|
|
137
137
|
})(["display:grid;grid-template-columns:1fr auto;", ""], function () {
|
|
138
138
|
return isIE11() && css(["display:flex;flex-wrap:wrap;"]);
|
|
139
139
|
});
|
|
140
140
|
export var StyledAsideFluidContainer = /*#__PURE__*/styled.div.withConfig({
|
|
141
141
|
displayName: "StyledAsideFluidContainer",
|
|
142
|
-
componentId: "core-
|
|
142
|
+
componentId: "core-12_26_6__sc-1cvdbsv-15"
|
|
143
143
|
})(["", ""], function (_ref11) {
|
|
144
144
|
var $closed = _ref11.$closed,
|
|
145
145
|
$open = _ref11.$open;
|