@procore/core-react 12.48.2 → 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 +16 -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.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 +6 -6
- 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.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 +4 -4
- 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.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.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.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.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/package.json +2 -2
|
@@ -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);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NumberInput.utils.js","names":["NumberFormatter","getFormatterLocale","defaultLocale","minus","emptyString","leftBrace","rightBrace","backspaceKey","deleteKey","numericKeypadDel","periodKey","numericKeypadDecimal","numericKeypadKey","androidUnidentifiedKey","maxDigitLength","maxDecimalScale","commaKey","metaKeyIdentifier","controlKey","highlightAllKey","copyKey","toFixed","value","precision","isExponentialRecord","toString","includes","Number","Math","round","formatterFactory","options","error","console","concat","locale","_objectSpread","getSeparators","formatterLocale","separators","getNumberSeparators","group","decimal","isValidNegative","_value$match","String","minusRegExp","RegExp","numberOfMinuses","match","length","containsValidParenthesis","indexOf","isNegative","verifyDecimalScale","decimalScale","warn","unformat","isNumericString","arguments","undefined","isValueNegative","numericRegExp","strValue","replace","_strValue$split","split","_strValue$split2","_toArray","integer","fractions","slice","fraction","join","parsedNumber","parseFloat","refineIntegerFromLeadingZeroes","isNegativeValue","refinedFromMinus","hasLeadingZeroes","refinedFromLeadingZeroes","zeroPadded","getLengthInfo","fillDecimalScale","_unformat","integerRefinedFromLeadingZeros","getIntegerLength","accountEmptyInteger","accountEmptyNegativeInteger","accountInteger","integerLength","fractionLength","safeLength","isSafeLength","isDecimalScaleNonFillable","safeIntegerLength","safeFractionLength","min","isSafeIntegerLength","isSafeFractionLength","safelyTruncatedInteger","safelyTruncatedFraction","safelyTruncatedValue","format","fixedDecimalScale","fillDecimalScaleOnBlur","autoFilledScale","_getLengthInfo","isTruncatedBeforeFormatting","valueOfVerifiedLength","_unformat2","minimumFractionDigits","max","maximumFractionDigits","formatter","isDecimalAllowed","isEmptyValue","isMinusValue","isDecimalValue","isMinusDecimalValue","isFractionValueWithEmptyInteger","numberOfZerosToPad","preparedFraction","Array","from","_","formatNumber","number","isNaN","parseInt","formatted","isDecimalAvailable","identifyPressedKey","decimalSeparatorKey","inputType","pressedKey","prevValue","diff","find","char","i","getPressedKeyInfo","prevCursorPosition","verifiedDecimalScale","selectionStart","selectionEnd","selection","backspaceWasPressed","backspacedChar","decimalWasPressed","decimalPressedForInteger","deleteWasPressed","deletedChar","thousandsSeparatorWasBackspaced","thousandsSeparatorWasDeleted","prepareValueToFormatting","_getPressedKeyInfo","getCursorShift","deletedAsSelection","indexOfIntegerDigitToRemove","filter","getNewCursorPosition","newValue","_getLengthInfo2","prevLength","prevFractionLength","_getLengthInfo3","newLength","newSafeLength","newIntegerLength","newSafeIntegerLength","newFractionLength","newSafeFractionLength","_getPressedKeyInfo2","digitTyped","test","digitBackspaced","decimalBackspaced","defaultPosition","isPrevValueNegative","isNewValueNegative","digitTypedBeforeMinus","dotWithoutAnyDigitBefore","startsWith","minusWithDotWithoutAnyDigitBefore","leadingZeroAdded","prevIndexOfDecimalSeparator","prevCursorPositionInDecimalArea","prevCursorPositionInIntegerArea","filledIntegerScaleDigitWasChanged","isDecimalScaleFilled","filledDecimalScaleDigitWasBackspaced","filledDecimalScaleDigitWasChanged","decimalNewPosition","restructuredByDecimal","fixedDecimalScaleFirstTyping","charAt","isLeadingZerosRemovedOnPrecedingDigitBackspace","keepCursorBeforeNegativeSign","getPositionOnRestructuringByDecimal","getPositionOnDecimalBackspace","removedCharShift","valueLength","delta","anchorDigitIndexFromTheEnd","reverse","forEach","getPositionOnDelete","firstSymbolDeleted","anchorDigitIndex","cursorPosition","getPositionOnFilledIntegerScaleDigitChange","getGroupsNumber","start","end","_value$slice$match","numberOfGroupsBeforeCursorPrevValue","numberOfGroupsBeforeCursorNewValue","groupsDiffBeforeCursor","typedDigitShift","getPositionOnSelectionChange","getPasteText","beforeSelectionPartLength","afterSelectionPartLength","valueWithoutBeforePart","pasteText","_unformat3","pasteInteger","pasteDecimal","pasteFraction","refinedPasteText","refinedPasteTextLength","anchorDigitIndexRaw","anchorDigitIndexBase","anchorDigitIndexShift","anchorIndex","getCursorPositionShift","negativeToPositiveConversion","integerZeroBasedSelectionRemoval","integerPartRemoved","fractionZeroBasedSelectionRemoval","groupSelectionBackspaced","isDeltaIncrementer","getNewPosition","identicalLocales","one","two","array1","isArray","array2"],"sources":["../../src/NumberInput/NumberInput.utils.ts"],"sourcesContent":["import type { NumberOptions } from '@procore/globalization-toolkit'\nimport { NumberFormatter } from '@procore/globalization-toolkit'\nimport { getFormatterLocale } from '../_utils/i18n'\nimport type {\n CursorPosition,\n FillDecimalScaleVariant,\n InputValue,\n Locale,\n ParsedInputValue,\n PressedKey,\n Separators,\n} from './NumberInput.types'\n\nexport const defaultLocale = 'en-US'\nexport const minus = '-'\nexport const emptyString = ''\nexport const leftBrace = '('\nexport const rightBrace = ')'\nexport const backspaceKey = 'Backspace'\nexport const deleteKey = 'Delete'\nexport const numericKeypadDel = 'Del' // for delete key from numeric keypad in IE\nexport const periodKey = '.'\nexport const numericKeypadDecimal = 'Decimal' // for period key from numeric keypad in IE\nexport const numericKeypadKey = 'Del' // for delete key from numeric keypad in IE\nexport const androidUnidentifiedKey = 'Unidentified'\nexport const maxDigitLength = 15 // Safe length to avoid the loss of precision\nexport const maxDecimalScale = maxDigitLength - 1\nexport const commaKey = ','\nexport const metaKeyIdentifier = 'Meta'\nexport const controlKey = 'Control'\nexport const highlightAllKey = 'a'\nexport const copyKey = 'c'\n\n// fixes binary rounding issues (e.g: (0.615).toFixed(2) returns 0.61)\nexport function toFixed(value: number, precision: number): number {\n const isExponentialRecord = value.toString().includes('e')\n\n if (isExponentialRecord) return value\n\n return Number(\n Number(\n Math.round(Number(value + 'e' + precision)) + 'e-' + precision\n ).toFixed(precision)\n )\n}\n\nexport function formatterFactory(options: NumberOptions): NumberFormatter {\n try {\n return new NumberFormatter(options)\n } catch (error) {\n console.error(\n `Deprecated. @procore/core-react Intl.NumberFormat error for locale ${options.locale}. Will fall back to en-US. In a future major, this will become an error and not provide a fallback.`,\n error\n )\n return new NumberFormatter({ ...options, locale: 'en-US' })\n }\n}\n\nexport function getSeparators(locale: Locale): Separators {\n const formatterLocale = getFormatterLocale(locale as string)\n const separators = new NumberFormatter({\n locale: formatterLocale,\n }).getNumberSeparators()\n\n return { group: separators.group, decimal: separators.decimal || '' }\n}\n\n// Check if a valid numeric string is a negative value\nexport const isValidNegative = (value: InputValue) => {\n value = String(value)\n\n const minusRegExp = new RegExp(`${minus}`, 'g')\n const numberOfMinuses = value.match(minusRegExp)?.length\n const containsValidParenthesis =\n value.indexOf(leftBrace) === 0 &&\n value.indexOf(rightBrace) === value.length - 1\n const isNegative =\n (numberOfMinuses === 1 && !containsValidParenthesis) ||\n (!numberOfMinuses && containsValidParenthesis)\n return isNegative\n}\n\nexport function verifyDecimalScale(decimalScale: boolean | number): number {\n if (decimalScale === true) {\n return maxDecimalScale\n }\n if (decimalScale === false) {\n return 0\n }\n if (decimalScale < 0) {\n console.warn(\n `WARNING: Decimal scale (${decimalScale}) is out of range. It was reset to 0. Possible values are from 0 to ${maxDecimalScale}.`\n )\n return 0\n }\n if (decimalScale > maxDecimalScale) {\n console.warn(\n `WARNING: Decimal scale (${decimalScale}) is out of range. It was reset to the max value of ${maxDecimalScale}. Possible values are from 0 to ${maxDecimalScale}.`\n )\n return maxDecimalScale\n }\n return decimalScale\n}\n\nexport function unformat(\n locale: Locale,\n value: InputValue,\n isNumericString = false\n): ParsedInputValue {\n const isValueNegative = isValidNegative(value)\n const decimal =\n isNumericString || typeof value === 'number'\n ? periodKey\n : getSeparators(locale).decimal\n const numericRegExp = new RegExp(`[^0-9${decimal}]`, 'g')\n\n let strValue = String(value)\n\n // Normalize value with numeric characters\n strValue = strValue.replace(numericRegExp, emptyString)\n\n // Normalize \"minus\" sign for negatives\n if (isValueNegative) {\n strValue = `${minus}${strValue}`\n }\n\n // Normalize integer and fraction parts of the value\n const [integer, ...fractions] = strValue.split(decimal)\n const fraction = fractions.join(emptyString)\n\n return {\n integer,\n decimal: strValue.includes(decimal) ? decimal : emptyString,\n fraction,\n parsedNumber: parseFloat(`${integer}${periodKey}${fraction}`),\n }\n}\n\nexport function refineIntegerFromLeadingZeroes(integer: string) {\n const isNegativeValue = isValidNegative(integer)\n const refinedFromMinus = integer.replace(minus, emptyString)\n const hasLeadingZeroes = refinedFromMinus.slice(0, 1)\n const refinedFromLeadingZeroes = refinedFromMinus.replace(/^0+/, emptyString)\n const zeroPadded =\n hasLeadingZeroes && refinedFromLeadingZeroes === emptyString\n\n return `${isNegativeValue ? minus : emptyString}${\n zeroPadded ? 0 : refinedFromLeadingZeroes\n }`\n}\n\nexport function getLengthInfo(\n locale: Locale,\n value: InputValue,\n decimalScale: number = 0,\n fillDecimalScale: FillDecimalScaleVariant = 'none',\n isNumericString = false\n) {\n const isNegativeValue = isValidNegative(value)\n\n const { integer, decimal, fraction } = unformat(\n locale,\n value,\n isNumericString\n )\n\n const integerRefinedFromLeadingZeros = refineIntegerFromLeadingZeroes(integer)\n\n const getIntegerLength = () => {\n const accountEmptyInteger =\n integer === emptyString && decimal && fraction.length > 0\n\n if (accountEmptyInteger) return 1\n\n const accountEmptyNegativeInteger =\n integer === minus && decimal && fraction.length > 0\n\n if (accountEmptyNegativeInteger) return 2\n\n const accountInteger =\n integer.length > 0 && integer !== emptyString && integer !== minus\n\n if (accountInteger) return integerRefinedFromLeadingZeros.length\n\n return 0\n }\n\n const integerLength = getIntegerLength()\n const fractionLength = fraction.length\n const length = integerLength + fractionLength\n\n const safeLength = maxDigitLength + (isNegativeValue ? 1 : 0)\n const isSafeLength = safeLength - length > -1\n\n const isDecimalScaleNonFillable = fillDecimalScale === 'none'\n\n const safeIntegerLength = isDecimalScaleNonFillable\n ? safeLength\n : safeLength - decimalScale\n const safeFractionLength = isDecimalScaleNonFillable\n ? Math.min(\n safeLength -\n integerRefinedFromLeadingZeros.slice(0, safeIntegerLength).length,\n decimalScale\n )\n : decimalScale\n\n const isSafeIntegerLength = safeIntegerLength - integerLength > -1\n const isSafeFractionLength = safeFractionLength - fractionLength > -1\n\n const safelyTruncatedInteger = isSafeIntegerLength\n ? integerRefinedFromLeadingZeros\n : integerRefinedFromLeadingZeros.slice(0, safeIntegerLength)\n const safelyTruncatedFraction = isSafeFractionLength\n ? fraction\n : fraction.slice(0, safeFractionLength)\n\n const safelyTruncatedValue = `${safelyTruncatedInteger}${decimal}${safelyTruncatedFraction}`\n\n return {\n length,\n safeLength,\n isSafeLength,\n safelyTruncatedValue,\n integerLength,\n safeIntegerLength,\n isSafeIntegerLength,\n fractionLength,\n safeFractionLength,\n isSafeFractionLength,\n }\n}\n\nexport function format(\n locale: Locale,\n decimalScale: number,\n fillDecimalScale: FillDecimalScaleVariant,\n value: InputValue,\n isNumericString = false\n): string {\n const fixedDecimalScale = fillDecimalScale === 'always'\n\n const fillDecimalScaleOnBlur = fillDecimalScale === 'onBlur'\n\n const autoFilledScale = fixedDecimalScale || fillDecimalScaleOnBlur\n\n const { length, safeLength, isSafeLength, safelyTruncatedValue } =\n getLengthInfo(\n locale,\n value,\n decimalScale,\n fillDecimalScale,\n isNumericString\n )\n\n const isTruncatedBeforeFormatting = autoFilledScale || !isSafeLength\n\n const valueOfVerifiedLength = isTruncatedBeforeFormatting\n ? safelyTruncatedValue\n : value\n\n const { integer, decimal, fraction } = unformat(\n locale,\n valueOfVerifiedLength,\n isNumericString || typeof value === 'number'\n )\n\n const options = {\n minimumFractionDigits: fixedDecimalScale\n ? decimalScale\n : Math.min(Math.max(0, fraction?.length || 0), decimalScale),\n maximumFractionDigits: decimalScale,\n }\n\n const formatterLocale = getFormatterLocale(locale as string)\n const formatter = formatterFactory({ locale: formatterLocale, ...options })\n\n const isDecimalAllowed = decimalScale > 0\n\n const isEmptyValue = integer === emptyString && !decimal && !fraction\n\n if (isEmptyValue) return emptyString\n\n const isMinusValue = integer === minus && !decimal && !fraction\n\n if (isMinusValue) return minus\n\n const isDecimalValue =\n integer === emptyString && decimal && !fraction && !fixedDecimalScale\n\n if (isDecimalValue) return isDecimalAllowed ? decimal : emptyString\n\n const isMinusDecimalValue =\n integer === minus && decimal && !fraction && !fixedDecimalScale\n\n if (isMinusDecimalValue)\n return `${minus}${isDecimalAllowed ? decimal : emptyString}`\n\n const isFractionValueWithEmptyInteger =\n (integer === minus || integer === emptyString) &&\n decimal &&\n (fraction || (!fraction && fixedDecimalScale))\n\n if (isFractionValueWithEmptyInteger) {\n const numberOfZerosToPad = decimalScale - fraction.length\n\n const preparedFraction =\n numberOfZerosToPad > 0 && fixedDecimalScale\n ? fraction.concat(\n Array.from({ length: numberOfZerosToPad }, (_) => '0').join(\n emptyString\n )\n )\n : fraction.slice(0, decimalScale)\n\n return `${integer}${\n isDecimalAllowed ? decimal : emptyString\n }${preparedFraction}`\n }\n\n if (typeof valueOfVerifiedLength === 'number') {\n return formatter.formatNumber(valueOfVerifiedLength)\n }\n\n if (fraction) {\n const number = parseFloat(\n `${integer}${periodKey}${fraction.slice(\n 0,\n options.maximumFractionDigits\n )}`\n )\n\n if (isNaN(number)) return emptyString\n\n return formatter.formatNumber(number)\n }\n\n if (integer) {\n const number = parseInt(integer, 10)\n\n if (isNaN(number)) return emptyString\n\n const formatted = formatter.formatNumber(number)\n const isDecimalAllowed = !(\n options.minimumFractionDigits === 0 && options.maximumFractionDigits === 0\n )\n const isDecimalAvailable =\n decimal && !formatted.includes(decimal) && length < safeLength\n\n return isDecimalAllowed && isDecimalAvailable\n ? `${formatted}${decimal}`\n : formatted\n }\n\n return emptyString\n}\n\nexport function identifyPressedKey(\n decimalSeparatorKey: string,\n inputType: string,\n pressedKey: PressedKey,\n prevValue: string,\n value: string\n) {\n if (pressedKey !== androidUnidentifiedKey) return pressedKey\n\n if (inputType === 'deleteContentBackward') return backspaceKey\n\n if (inputType === 'insertText') {\n const diff = value\n .split(emptyString)\n .find(\n (char: string, i: number) => char !== prevValue.split(emptyString)[i]\n )\n\n switch (diff) {\n case decimalSeparatorKey:\n return decimalSeparatorKey\n case minus:\n return minus\n default:\n return pressedKey\n }\n }\n\n return pressedKey\n}\n\nexport function getPressedKeyInfo(\n decimalSeparatorKey: string,\n group: string,\n pressedKey: PressedKey,\n prevCursorPosition: CursorPosition,\n prevValue: string,\n verifiedDecimalScale: number\n) {\n const { selectionStart, selectionEnd, selection } = prevCursorPosition\n\n const backspaceWasPressed = pressedKey === backspaceKey\n const backspacedChar = backspaceWasPressed\n ? prevValue.slice(selectionStart + (selection ? 0 : -1), selectionEnd)\n : null\n const decimalWasPressed = [\n decimalSeparatorKey,\n numericKeypadDecimal,\n ].includes(pressedKey as string)\n const decimalPressedForInteger =\n decimalWasPressed && verifiedDecimalScale === 0\n const deleteWasPressed = [deleteKey, numericKeypadDel].includes(\n pressedKey as string\n )\n const deletedChar = deleteWasPressed\n ? prevValue.slice(selectionStart, selectionEnd + (selection ? 0 : 1))\n : null\n\n const thousandsSeparatorWasBackspaced =\n backspaceWasPressed && backspacedChar === group\n const thousandsSeparatorWasDeleted = deleteWasPressed && deletedChar === group\n\n return {\n backspaceWasPressed,\n backspacedChar,\n decimalWasPressed,\n decimalPressedForInteger,\n deleteWasPressed,\n deletedChar,\n thousandsSeparatorWasBackspaced,\n thousandsSeparatorWasDeleted,\n }\n}\n\nexport function prepareValueToFormatting(\n decimal: string,\n decimalSeparatorKey: string,\n group: string,\n pressedKey: PressedKey,\n prevCursorPosition: CursorPosition,\n prevValue: string,\n verifiedDecimalScale: number,\n value: string\n) {\n const {\n decimalPressedForInteger,\n thousandsSeparatorWasBackspaced,\n thousandsSeparatorWasDeleted,\n } = getPressedKeyInfo(\n decimalSeparatorKey,\n group,\n pressedKey,\n prevCursorPosition,\n prevValue,\n verifiedDecimalScale\n )\n\n // Remove preceding/following integer digit instead of thousands separator\n if (thousandsSeparatorWasBackspaced || thousandsSeparatorWasDeleted) {\n const { selectionEnd, selection } = prevCursorPosition\n\n const getCursorShift = () => {\n if (thousandsSeparatorWasDeleted) {\n const deletedAsSelection = selection === group\n return deletedAsSelection ? 0 : 1\n }\n if (thousandsSeparatorWasBackspaced) return -2\n return 0\n }\n\n const indexOfIntegerDigitToRemove = selectionEnd + getCursorShift()\n\n return prevValue\n .split(emptyString)\n .filter((_, i) => i !== indexOfIntegerDigitToRemove)\n .join(emptyString)\n }\n\n // Ignore typing decimal separator for integer\n if (decimalPressedForInteger) {\n return value.replace(new RegExp(`[${decimal}]`, 'g'), emptyString)\n }\n\n return value\n}\n\nexport function getNewCursorPosition(\n decimal: string,\n decimalSeparatorKey: string,\n group: string,\n newValue: string,\n pressedKey: PressedKey,\n prevCursorPosition: CursorPosition,\n prevValue: string,\n value: string,\n verifiedDecimalScale: number,\n locale: Locale,\n fillDecimalScale: FillDecimalScaleVariant\n) {\n const fixedDecimalScale = fillDecimalScale === 'always'\n\n const { length: prevLength, fractionLength: prevFractionLength } =\n getLengthInfo(locale, prevValue, verifiedDecimalScale, fillDecimalScale)\n\n const {\n length: newLength,\n safeLength: newSafeLength,\n integerLength: newIntegerLength,\n safeIntegerLength: newSafeIntegerLength,\n fractionLength: newFractionLength,\n safeFractionLength: newSafeFractionLength,\n } = getLengthInfo(locale, newValue, verifiedDecimalScale, fillDecimalScale)\n\n const {\n backspaceWasPressed,\n backspacedChar,\n decimalWasPressed,\n deleteWasPressed,\n thousandsSeparatorWasBackspaced,\n } = getPressedKeyInfo(\n decimalSeparatorKey,\n group,\n pressedKey,\n prevCursorPosition,\n prevValue,\n verifiedDecimalScale\n )\n\n const digitTyped = pressedKey && /\\d/g.test(pressedKey)\n const digitBackspaced =\n backspaceWasPressed && backspacedChar && /\\d/g.test(backspacedChar)\n const decimalBackspaced = backspaceWasPressed && backspacedChar === decimal\n\n const { selectionStart, selectionEnd, selection } = prevCursorPosition\n\n const defaultPosition = Math.max(\n selectionEnd + (newValue.length - prevValue.length),\n 0\n )\n\n const isPrevValueNegative = isValidNegative(prevValue)\n\n const isNewValueNegative = isValidNegative(newValue)\n\n const isDecimalAllowed = verifiedDecimalScale > 0\n\n const digitTypedBeforeMinus =\n isPrevValueNegative && selectionEnd === 0 && digitTyped\n\n const dotWithoutAnyDigitBefore = value.startsWith(decimal) && digitTyped\n const minusWithDotWithoutAnyDigitBefore =\n value.startsWith(minus + decimal) && digitTyped\n\n const leadingZeroAdded =\n pressedKey === '0' && selectionEnd === (isPrevValueNegative ? 1 : 0)\n\n const prevIndexOfDecimalSeparator = prevValue.indexOf(decimal)\n const prevCursorPositionInDecimalArea =\n prevIndexOfDecimalSeparator > -1 &&\n prevIndexOfDecimalSeparator < selectionEnd\n const prevCursorPositionInIntegerArea =\n prevIndexOfDecimalSeparator === -1 ||\n prevIndexOfDecimalSeparator >= selectionEnd\n\n const filledIntegerScaleDigitWasChanged =\n digitTyped &&\n prevCursorPositionInIntegerArea &&\n selectionEnd !== prevValue.length &&\n newLength === prevLength &&\n (newLength === newSafeLength || newIntegerLength === newSafeIntegerLength)\n\n const isDecimalScaleFilled =\n isDecimalAllowed &&\n newFractionLength === prevFractionLength &&\n newFractionLength === newSafeFractionLength\n\n const filledDecimalScaleDigitWasBackspaced =\n isDecimalScaleFilled && prevCursorPositionInDecimalArea && digitBackspaced\n\n const filledDecimalScaleDigitWasChanged =\n isDecimalScaleFilled && prevCursorPositionInDecimalArea && digitTyped\n\n // Manage cursor when decimalSeparator typed in a new place of a decimal-allowed number\n const decimalNewPosition = newValue.indexOf(decimal)\n const restructuredByDecimal =\n isDecimalAllowed && decimalWasPressed && decimalNewPosition > -1\n\n // Preserve cursor after first typed digit and before decimal separator\n const fixedDecimalScaleFirstTyping =\n fixedDecimalScale &&\n value.length === (isNewValueNegative ? 2 : 1) &&\n newValue.charAt(isNewValueNegative ? 1 : 0) === pressedKey\n\n // Preserve cursor before \"negative\" sign\n const isLeadingZerosRemovedOnPrecedingDigitBackspace =\n backspaceWasPressed &&\n defaultPosition === 0 &&\n selectionEnd - defaultPosition > 1\n const keepCursorBeforeNegativeSign =\n isNewValueNegative && isLeadingZerosRemovedOnPrecedingDigitBackspace\n\n const getPositionOnRestructuringByDecimal = () => {\n return prevCursorPositionInDecimalArea\n ? newValue.length\n : decimalNewPosition + 1\n }\n\n const getPositionOnDecimalBackspace = () => {\n const removedCharShift = 1\n const valueLength = newValue.length\n\n if (prevFractionLength === 0) {\n return valueLength\n }\n\n let delta = 0\n let anchorDigitIndexFromTheEnd = 0\n\n newValue\n .split(emptyString)\n .reverse()\n .forEach((char, i) => {\n if (char === group) {\n delta++\n }\n if (i - delta === prevFractionLength - 1) {\n anchorDigitIndexFromTheEnd = i\n }\n })\n\n return valueLength - removedCharShift - anchorDigitIndexFromTheEnd\n }\n\n const getPositionOnDelete = () => {\n const firstSymbolDeleted = selectionEnd === 0\n\n if (firstSymbolDeleted) {\n return 0\n }\n\n const removedCharShift = 1\n const anchorDigitIndex =\n prevValue\n .slice(0, selectionEnd)\n .replace(new RegExp(`[${group}]`, 'g'), emptyString).length - 1\n\n let delta = 0\n let cursorPosition = 0\n\n newValue.split(emptyString).forEach((char, i) => {\n if (char === group) {\n delta++\n }\n if (i - delta === anchorDigitIndex) {\n cursorPosition = i\n }\n })\n\n return cursorPosition + removedCharShift\n }\n\n const getPositionOnFilledIntegerScaleDigitChange = () => {\n const getGroupsNumber = (value: string, start?: number, end?: number) => {\n return (\n value.slice(start, end).match(new RegExp(`[${group}]`, 'g'))?.length ||\n 0\n )\n }\n\n const numberOfGroupsBeforeCursorPrevValue = getGroupsNumber(\n prevValue,\n 0,\n selectionEnd\n )\n const numberOfGroupsBeforeCursorNewValue = getGroupsNumber(\n newValue,\n 0,\n selectionEnd + 1\n )\n const groupsDiffBeforeCursor =\n numberOfGroupsBeforeCursorNewValue - numberOfGroupsBeforeCursorPrevValue\n\n const typedDigitShift = leadingZeroAdded ? 0 : 1\n\n return selectionEnd + groupsDiffBeforeCursor + typedDigitShift\n }\n\n const getPositionOnSelectionChange = () => {\n if (restructuredByDecimal) return getPositionOnRestructuringByDecimal()\n\n const getPasteText = () => {\n const beforeSelectionPartLength = prevValue.slice(\n 0,\n selectionStart\n ).length\n const afterSelectionPartLength = prevValue.slice(selectionEnd).length\n const valueWithoutBeforePart = value.slice(beforeSelectionPartLength)\n\n const pasteText = valueWithoutBeforePart.slice(\n 0,\n valueWithoutBeforePart.length - afterSelectionPartLength\n )\n\n return pasteText\n }\n\n const {\n integer: pasteInteger,\n decimal: pasteDecimal,\n fraction: pasteFraction,\n } = unformat(locale, getPasteText())\n\n const refinedPasteText = `${\n selectionStart === 0\n ? refineIntegerFromLeadingZeroes(pasteInteger)\n : pasteInteger\n }${pasteDecimal}${pasteFraction}`\n\n const refinedPasteTextLength = refinedPasteText.length\n\n const anchorDigitIndexRaw =\n prevValue\n .slice(0, selectionStart)\n .replace(new RegExp(`[${group}${decimal}]`, 'g'), emptyString).length -\n 1\n\n const anchorDigitIndexBase =\n anchorDigitIndexRaw > -1 ? anchorDigitIndexRaw : 0\n\n const anchorDigitIndexShift =\n anchorDigitIndexRaw > -1\n ? refinedPasteTextLength\n : Math.max(refinedPasteTextLength - 1, 0)\n\n const anchorIndex = anchorDigitIndexBase + anchorDigitIndexShift\n\n const getCursorPositionShift = () => {\n const negativeToPositiveConversion =\n isValidNegative(refinedPasteText) && isPrevValueNegative\n\n const integerZeroBasedSelectionRemoval =\n refinedPasteTextLength === 0 && selectionStart === 0\n\n const integerPartRemoved =\n integerZeroBasedSelectionRemoval &&\n selectionEnd === prevIndexOfDecimalSeparator\n\n const fractionZeroBasedSelectionRemoval =\n (refinedPasteTextLength === 0 || refinedPasteText === minus) &&\n selectionStart === prevIndexOfDecimalSeparator + 1\n\n const groupSelectionBackspaced =\n selection === group && thousandsSeparatorWasBackspaced\n\n if (negativeToPositiveConversion || integerPartRemoved) return -1\n if (integerZeroBasedSelectionRemoval || groupSelectionBackspaced) return 0\n if (fractionZeroBasedSelectionRemoval) return 2\n\n return 1\n }\n\n let delta = 0\n let cursorPosition = 0\n\n for (let i = 0; i < newValue.length; i++) {\n const char = newValue.charAt(i)\n\n const isDeltaIncrementer =\n char === group || (char === decimal && !pasteDecimal)\n\n if (isDeltaIncrementer) {\n delta++\n }\n\n if (i - delta === anchorIndex) {\n cursorPosition = i + getCursorPositionShift()\n break\n }\n\n if (i + 1 === newValue.length) {\n cursorPosition = newValue.length\n }\n }\n\n return cursorPosition\n }\n\n const getNewPosition = () => {\n if (selection) {\n return getPositionOnSelectionChange()\n }\n\n if (digitTypedBeforeMinus) {\n return 2\n }\n if (dotWithoutAnyDigitBefore) {\n return 3\n }\n if (minusWithDotWithoutAnyDigitBefore) {\n return 4\n }\n\n if (filledIntegerScaleDigitWasChanged) {\n return getPositionOnFilledIntegerScaleDigitChange()\n }\n\n if (deleteWasPressed) {\n return getPositionOnDelete()\n }\n\n if (decimalBackspaced) {\n return getPositionOnDecimalBackspace()\n }\n\n if (filledDecimalScaleDigitWasBackspaced) {\n return selectionEnd - 1\n }\n\n if (filledDecimalScaleDigitWasChanged) {\n return selectionEnd + 1\n }\n\n if (restructuredByDecimal) {\n return getPositionOnRestructuringByDecimal()\n }\n\n if (fixedDecimalScaleFirstTyping) {\n return isNewValueNegative ? 2 : 1\n }\n\n if (keepCursorBeforeNegativeSign) {\n return 1\n }\n\n return defaultPosition\n }\n\n return getNewPosition()\n}\n\nexport function identicalLocales(one: Locale, two: Locale) {\n const array1 = Array.isArray(one) ? one : [one]\n const array2 = Array.isArray(two) ? two : [two]\n\n return array1.join() === array2.join()\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"NumberInput.utils.js","names":["NumberFormatter","getFormatterLocale","defaultLocale","minus","emptyString","leftBrace","rightBrace","backspaceKey","deleteKey","numericKeypadDel","periodKey","numericKeypadDecimal","numericKeypadKey","androidUnidentifiedKey","maxDigitLength","maxDecimalScale","commaKey","metaKeyIdentifier","controlKey","highlightAllKey","copyKey","toFixed","value","precision","isExponentialRecord","toString","includes","Number","Math","round","clamp","min","max","result","isFinite","formatterFactory","options","error","console","concat","locale","_objectSpread","getSeparators","formatterLocale","separators","getNumberSeparators","group","decimal","isValidNegative","_value$match","String","minusRegExp","RegExp","numberOfMinuses","match","length","containsValidParenthesis","indexOf","isNegative","verifyDecimalScale","decimalScale","warn","unformat","isNumericString","arguments","undefined","isValueNegative","numericRegExp","strValue","replace","_strValue$split","split","_strValue$split2","_toArray","integer","fractions","slice","fraction","join","parsedNumber","parseFloat","refineIntegerFromLeadingZeroes","isNegativeValue","refinedFromMinus","hasLeadingZeroes","refinedFromLeadingZeroes","zeroPadded","getLengthInfo","fillDecimalScale","_unformat","integerRefinedFromLeadingZeros","getIntegerLength","accountEmptyInteger","accountEmptyNegativeInteger","accountInteger","integerLength","fractionLength","safeLength","isSafeLength","isDecimalScaleNonFillable","safeIntegerLength","safeFractionLength","isSafeIntegerLength","isSafeFractionLength","safelyTruncatedInteger","safelyTruncatedFraction","safelyTruncatedValue","format","fixedDecimalScale","fillDecimalScaleOnBlur","autoFilledScale","_getLengthInfo","isTruncatedBeforeFormatting","valueOfVerifiedLength","_unformat2","minimumFractionDigits","maximumFractionDigits","formatter","isDecimalAllowed","isEmptyValue","isMinusValue","isDecimalValue","isMinusDecimalValue","isFractionValueWithEmptyInteger","numberOfZerosToPad","preparedFraction","Array","from","_","formatNumber","number","isNaN","parseInt","formatted","isDecimalAvailable","identifyPressedKey","decimalSeparatorKey","inputType","pressedKey","prevValue","diff","find","char","i","getPressedKeyInfo","prevCursorPosition","verifiedDecimalScale","selectionStart","selectionEnd","selection","backspaceWasPressed","backspacedChar","decimalWasPressed","decimalPressedForInteger","deleteWasPressed","deletedChar","thousandsSeparatorWasBackspaced","thousandsSeparatorWasDeleted","prepareValueToFormatting","_getPressedKeyInfo","getCursorShift","deletedAsSelection","indexOfIntegerDigitToRemove","filter","getNewCursorPosition","newValue","_getLengthInfo2","prevLength","prevFractionLength","_getLengthInfo3","newLength","newSafeLength","newIntegerLength","newSafeIntegerLength","newFractionLength","newSafeFractionLength","_getPressedKeyInfo2","digitTyped","test","digitBackspaced","decimalBackspaced","defaultPosition","isPrevValueNegative","isNewValueNegative","digitTypedBeforeMinus","dotWithoutAnyDigitBefore","startsWith","minusWithDotWithoutAnyDigitBefore","leadingZeroAdded","prevIndexOfDecimalSeparator","prevCursorPositionInDecimalArea","prevCursorPositionInIntegerArea","filledIntegerScaleDigitWasChanged","isDecimalScaleFilled","filledDecimalScaleDigitWasBackspaced","filledDecimalScaleDigitWasChanged","decimalNewPosition","restructuredByDecimal","fixedDecimalScaleFirstTyping","charAt","isLeadingZerosRemovedOnPrecedingDigitBackspace","keepCursorBeforeNegativeSign","getPositionOnRestructuringByDecimal","getPositionOnDecimalBackspace","removedCharShift","valueLength","delta","anchorDigitIndexFromTheEnd","reverse","forEach","getPositionOnDelete","firstSymbolDeleted","anchorDigitIndex","cursorPosition","getPositionOnFilledIntegerScaleDigitChange","getGroupsNumber","start","end","_value$slice$match","numberOfGroupsBeforeCursorPrevValue","numberOfGroupsBeforeCursorNewValue","groupsDiffBeforeCursor","typedDigitShift","getPositionOnSelectionChange","getPasteText","beforeSelectionPartLength","afterSelectionPartLength","valueWithoutBeforePart","pasteText","_unformat3","pasteInteger","pasteDecimal","pasteFraction","refinedPasteText","refinedPasteTextLength","anchorDigitIndexRaw","anchorDigitIndexBase","anchorDigitIndexShift","anchorIndex","getCursorPositionShift","negativeToPositiveConversion","integerZeroBasedSelectionRemoval","integerPartRemoved","fractionZeroBasedSelectionRemoval","groupSelectionBackspaced","isDeltaIncrementer","getNewPosition","identicalLocales","one","two","array1","isArray","array2"],"sources":["../../src/NumberInput/NumberInput.utils.ts"],"sourcesContent":["import type { NumberOptions } from '@procore/globalization-toolkit'\nimport { NumberFormatter } from '@procore/globalization-toolkit'\nimport { getFormatterLocale } from '../_utils/i18n'\nimport type {\n CursorPosition,\n FillDecimalScaleVariant,\n InputValue,\n Locale,\n ParsedInputValue,\n PressedKey,\n Separators,\n} from './NumberInput.types'\n\nexport const defaultLocale = 'en-US'\nexport const minus = '-'\nexport const emptyString = ''\nexport const leftBrace = '('\nexport const rightBrace = ')'\nexport const backspaceKey = 'Backspace'\nexport const deleteKey = 'Delete'\nexport const numericKeypadDel = 'Del' // for delete key from numeric keypad in IE\nexport const periodKey = '.'\nexport const numericKeypadDecimal = 'Decimal' // for period key from numeric keypad in IE\nexport const numericKeypadKey = 'Del' // for delete key from numeric keypad in IE\nexport const androidUnidentifiedKey = 'Unidentified'\nexport const maxDigitLength = 15 // Safe length to avoid the loss of precision\nexport const maxDecimalScale = maxDigitLength - 1\nexport const commaKey = ','\nexport const metaKeyIdentifier = 'Meta'\nexport const controlKey = 'Control'\nexport const highlightAllKey = 'a'\nexport const copyKey = 'c'\n\n// fixes binary rounding issues (e.g: (0.615).toFixed(2) returns 0.61)\nexport function toFixed(value: number, precision: number): number {\n const isExponentialRecord = value.toString().includes('e')\n\n if (isExponentialRecord) return value\n\n return Number(\n Number(\n Math.round(Number(value + 'e' + precision)) + 'e-' + precision\n ).toFixed(precision)\n )\n}\n\nexport function clamp(\n value: number,\n min: number | undefined,\n max: number | undefined\n): number {\n let result = value\n if (Number.isFinite(min)) result = Math.max(result, min as number)\n if (Number.isFinite(max)) result = Math.min(result, max as number)\n return result\n}\n\nexport function formatterFactory(options: NumberOptions): NumberFormatter {\n try {\n return new NumberFormatter(options)\n } catch (error) {\n console.error(\n `Deprecated. @procore/core-react Intl.NumberFormat error for locale ${options.locale}. Will fall back to en-US. In a future major, this will become an error and not provide a fallback.`,\n error\n )\n return new NumberFormatter({ ...options, locale: 'en-US' })\n }\n}\n\nexport function getSeparators(locale: Locale): Separators {\n const formatterLocale = getFormatterLocale(locale as string)\n const separators = new NumberFormatter({\n locale: formatterLocale,\n }).getNumberSeparators()\n\n return { group: separators.group, decimal: separators.decimal || '' }\n}\n\n// Check if a valid numeric string is a negative value\nexport const isValidNegative = (value: InputValue) => {\n value = String(value)\n\n const minusRegExp = new RegExp(`${minus}`, 'g')\n const numberOfMinuses = value.match(minusRegExp)?.length\n const containsValidParenthesis =\n value.indexOf(leftBrace) === 0 &&\n value.indexOf(rightBrace) === value.length - 1\n const isNegative =\n (numberOfMinuses === 1 && !containsValidParenthesis) ||\n (!numberOfMinuses && containsValidParenthesis)\n return isNegative\n}\n\nexport function verifyDecimalScale(decimalScale: boolean | number): number {\n if (decimalScale === true) {\n return maxDecimalScale\n }\n if (decimalScale === false) {\n return 0\n }\n if (decimalScale < 0) {\n console.warn(\n `WARNING: Decimal scale (${decimalScale}) is out of range. It was reset to 0. Possible values are from 0 to ${maxDecimalScale}.`\n )\n return 0\n }\n if (decimalScale > maxDecimalScale) {\n console.warn(\n `WARNING: Decimal scale (${decimalScale}) is out of range. It was reset to the max value of ${maxDecimalScale}. Possible values are from 0 to ${maxDecimalScale}.`\n )\n return maxDecimalScale\n }\n return decimalScale\n}\n\nexport function unformat(\n locale: Locale,\n value: InputValue,\n isNumericString = false\n): ParsedInputValue {\n const isValueNegative = isValidNegative(value)\n const decimal =\n isNumericString || typeof value === 'number'\n ? periodKey\n : getSeparators(locale).decimal\n const numericRegExp = new RegExp(`[^0-9${decimal}]`, 'g')\n\n let strValue = String(value)\n\n // Normalize value with numeric characters\n strValue = strValue.replace(numericRegExp, emptyString)\n\n // Normalize \"minus\" sign for negatives\n if (isValueNegative) {\n strValue = `${minus}${strValue}`\n }\n\n // Normalize integer and fraction parts of the value\n const [integer, ...fractions] = strValue.split(decimal)\n const fraction = fractions.join(emptyString)\n\n return {\n integer,\n decimal: strValue.includes(decimal) ? decimal : emptyString,\n fraction,\n parsedNumber: parseFloat(`${integer}${periodKey}${fraction}`),\n }\n}\n\nexport function refineIntegerFromLeadingZeroes(integer: string) {\n const isNegativeValue = isValidNegative(integer)\n const refinedFromMinus = integer.replace(minus, emptyString)\n const hasLeadingZeroes = refinedFromMinus.slice(0, 1)\n const refinedFromLeadingZeroes = refinedFromMinus.replace(/^0+/, emptyString)\n const zeroPadded =\n hasLeadingZeroes && refinedFromLeadingZeroes === emptyString\n\n return `${isNegativeValue ? minus : emptyString}${\n zeroPadded ? 0 : refinedFromLeadingZeroes\n }`\n}\n\nexport function getLengthInfo(\n locale: Locale,\n value: InputValue,\n decimalScale: number = 0,\n fillDecimalScale: FillDecimalScaleVariant = 'none',\n isNumericString = false\n) {\n const isNegativeValue = isValidNegative(value)\n\n const { integer, decimal, fraction } = unformat(\n locale,\n value,\n isNumericString\n )\n\n const integerRefinedFromLeadingZeros = refineIntegerFromLeadingZeroes(integer)\n\n const getIntegerLength = () => {\n const accountEmptyInteger =\n integer === emptyString && decimal && fraction.length > 0\n\n if (accountEmptyInteger) return 1\n\n const accountEmptyNegativeInteger =\n integer === minus && decimal && fraction.length > 0\n\n if (accountEmptyNegativeInteger) return 2\n\n const accountInteger =\n integer.length > 0 && integer !== emptyString && integer !== minus\n\n if (accountInteger) return integerRefinedFromLeadingZeros.length\n\n return 0\n }\n\n const integerLength = getIntegerLength()\n const fractionLength = fraction.length\n const length = integerLength + fractionLength\n\n const safeLength = maxDigitLength + (isNegativeValue ? 1 : 0)\n const isSafeLength = safeLength - length > -1\n\n const isDecimalScaleNonFillable = fillDecimalScale === 'none'\n\n const safeIntegerLength = isDecimalScaleNonFillable\n ? safeLength\n : safeLength - decimalScale\n const safeFractionLength = isDecimalScaleNonFillable\n ? Math.min(\n safeLength -\n integerRefinedFromLeadingZeros.slice(0, safeIntegerLength).length,\n decimalScale\n )\n : decimalScale\n\n const isSafeIntegerLength = safeIntegerLength - integerLength > -1\n const isSafeFractionLength = safeFractionLength - fractionLength > -1\n\n const safelyTruncatedInteger = isSafeIntegerLength\n ? integerRefinedFromLeadingZeros\n : integerRefinedFromLeadingZeros.slice(0, safeIntegerLength)\n const safelyTruncatedFraction = isSafeFractionLength\n ? fraction\n : fraction.slice(0, safeFractionLength)\n\n const safelyTruncatedValue = `${safelyTruncatedInteger}${decimal}${safelyTruncatedFraction}`\n\n return {\n length,\n safeLength,\n isSafeLength,\n safelyTruncatedValue,\n integerLength,\n safeIntegerLength,\n isSafeIntegerLength,\n fractionLength,\n safeFractionLength,\n isSafeFractionLength,\n }\n}\n\nexport function format(\n locale: Locale,\n decimalScale: number,\n fillDecimalScale: FillDecimalScaleVariant,\n value: InputValue,\n isNumericString = false\n): string {\n const fixedDecimalScale = fillDecimalScale === 'always'\n\n const fillDecimalScaleOnBlur = fillDecimalScale === 'onBlur'\n\n const autoFilledScale = fixedDecimalScale || fillDecimalScaleOnBlur\n\n const { length, safeLength, isSafeLength, safelyTruncatedValue } =\n getLengthInfo(\n locale,\n value,\n decimalScale,\n fillDecimalScale,\n isNumericString\n )\n\n const isTruncatedBeforeFormatting = autoFilledScale || !isSafeLength\n\n const valueOfVerifiedLength = isTruncatedBeforeFormatting\n ? safelyTruncatedValue\n : value\n\n const { integer, decimal, fraction } = unformat(\n locale,\n valueOfVerifiedLength,\n isNumericString || typeof value === 'number'\n )\n\n const options = {\n minimumFractionDigits: fixedDecimalScale\n ? decimalScale\n : Math.min(Math.max(0, fraction?.length || 0), decimalScale),\n maximumFractionDigits: decimalScale,\n }\n\n const formatterLocale = getFormatterLocale(locale as string)\n const formatter = formatterFactory({ locale: formatterLocale, ...options })\n\n const isDecimalAllowed = decimalScale > 0\n\n const isEmptyValue = integer === emptyString && !decimal && !fraction\n\n if (isEmptyValue) return emptyString\n\n const isMinusValue = integer === minus && !decimal && !fraction\n\n if (isMinusValue) return minus\n\n const isDecimalValue =\n integer === emptyString && decimal && !fraction && !fixedDecimalScale\n\n if (isDecimalValue) return isDecimalAllowed ? decimal : emptyString\n\n const isMinusDecimalValue =\n integer === minus && decimal && !fraction && !fixedDecimalScale\n\n if (isMinusDecimalValue)\n return `${minus}${isDecimalAllowed ? decimal : emptyString}`\n\n const isFractionValueWithEmptyInteger =\n (integer === minus || integer === emptyString) &&\n decimal &&\n (fraction || (!fraction && fixedDecimalScale))\n\n if (isFractionValueWithEmptyInteger) {\n const numberOfZerosToPad = decimalScale - fraction.length\n\n const preparedFraction =\n numberOfZerosToPad > 0 && fixedDecimalScale\n ? fraction.concat(\n Array.from({ length: numberOfZerosToPad }, (_) => '0').join(\n emptyString\n )\n )\n : fraction.slice(0, decimalScale)\n\n return `${integer}${\n isDecimalAllowed ? decimal : emptyString\n }${preparedFraction}`\n }\n\n if (typeof valueOfVerifiedLength === 'number') {\n return formatter.formatNumber(valueOfVerifiedLength)\n }\n\n if (fraction) {\n const number = parseFloat(\n `${integer}${periodKey}${fraction.slice(\n 0,\n options.maximumFractionDigits\n )}`\n )\n\n if (isNaN(number)) return emptyString\n\n return formatter.formatNumber(number)\n }\n\n if (integer) {\n const number = parseInt(integer, 10)\n\n if (isNaN(number)) return emptyString\n\n const formatted = formatter.formatNumber(number)\n const isDecimalAllowed = !(\n options.minimumFractionDigits === 0 && options.maximumFractionDigits === 0\n )\n const isDecimalAvailable =\n decimal && !formatted.includes(decimal) && length < safeLength\n\n return isDecimalAllowed && isDecimalAvailable\n ? `${formatted}${decimal}`\n : formatted\n }\n\n return emptyString\n}\n\nexport function identifyPressedKey(\n decimalSeparatorKey: string,\n inputType: string,\n pressedKey: PressedKey,\n prevValue: string,\n value: string\n) {\n if (pressedKey !== androidUnidentifiedKey) return pressedKey\n\n if (inputType === 'deleteContentBackward') return backspaceKey\n\n if (inputType === 'insertText') {\n const diff = value\n .split(emptyString)\n .find(\n (char: string, i: number) => char !== prevValue.split(emptyString)[i]\n )\n\n switch (diff) {\n case decimalSeparatorKey:\n return decimalSeparatorKey\n case minus:\n return minus\n default:\n return pressedKey\n }\n }\n\n return pressedKey\n}\n\nexport function getPressedKeyInfo(\n decimalSeparatorKey: string,\n group: string,\n pressedKey: PressedKey,\n prevCursorPosition: CursorPosition,\n prevValue: string,\n verifiedDecimalScale: number\n) {\n const { selectionStart, selectionEnd, selection } = prevCursorPosition\n\n const backspaceWasPressed = pressedKey === backspaceKey\n const backspacedChar = backspaceWasPressed\n ? prevValue.slice(selectionStart + (selection ? 0 : -1), selectionEnd)\n : null\n const decimalWasPressed = [\n decimalSeparatorKey,\n numericKeypadDecimal,\n ].includes(pressedKey as string)\n const decimalPressedForInteger =\n decimalWasPressed && verifiedDecimalScale === 0\n const deleteWasPressed = [deleteKey, numericKeypadDel].includes(\n pressedKey as string\n )\n const deletedChar = deleteWasPressed\n ? prevValue.slice(selectionStart, selectionEnd + (selection ? 0 : 1))\n : null\n\n const thousandsSeparatorWasBackspaced =\n backspaceWasPressed && backspacedChar === group\n const thousandsSeparatorWasDeleted = deleteWasPressed && deletedChar === group\n\n return {\n backspaceWasPressed,\n backspacedChar,\n decimalWasPressed,\n decimalPressedForInteger,\n deleteWasPressed,\n deletedChar,\n thousandsSeparatorWasBackspaced,\n thousandsSeparatorWasDeleted,\n }\n}\n\nexport function prepareValueToFormatting(\n decimal: string,\n decimalSeparatorKey: string,\n group: string,\n pressedKey: PressedKey,\n prevCursorPosition: CursorPosition,\n prevValue: string,\n verifiedDecimalScale: number,\n value: string\n) {\n const {\n decimalPressedForInteger,\n thousandsSeparatorWasBackspaced,\n thousandsSeparatorWasDeleted,\n } = getPressedKeyInfo(\n decimalSeparatorKey,\n group,\n pressedKey,\n prevCursorPosition,\n prevValue,\n verifiedDecimalScale\n )\n\n // Remove preceding/following integer digit instead of thousands separator\n if (thousandsSeparatorWasBackspaced || thousandsSeparatorWasDeleted) {\n const { selectionEnd, selection } = prevCursorPosition\n\n const getCursorShift = () => {\n if (thousandsSeparatorWasDeleted) {\n const deletedAsSelection = selection === group\n return deletedAsSelection ? 0 : 1\n }\n if (thousandsSeparatorWasBackspaced) return -2\n return 0\n }\n\n const indexOfIntegerDigitToRemove = selectionEnd + getCursorShift()\n\n return prevValue\n .split(emptyString)\n .filter((_, i) => i !== indexOfIntegerDigitToRemove)\n .join(emptyString)\n }\n\n // Ignore typing decimal separator for integer\n if (decimalPressedForInteger) {\n return value.replace(new RegExp(`[${decimal}]`, 'g'), emptyString)\n }\n\n return value\n}\n\nexport function getNewCursorPosition(\n decimal: string,\n decimalSeparatorKey: string,\n group: string,\n newValue: string,\n pressedKey: PressedKey,\n prevCursorPosition: CursorPosition,\n prevValue: string,\n value: string,\n verifiedDecimalScale: number,\n locale: Locale,\n fillDecimalScale: FillDecimalScaleVariant\n) {\n const fixedDecimalScale = fillDecimalScale === 'always'\n\n const { length: prevLength, fractionLength: prevFractionLength } =\n getLengthInfo(locale, prevValue, verifiedDecimalScale, fillDecimalScale)\n\n const {\n length: newLength,\n safeLength: newSafeLength,\n integerLength: newIntegerLength,\n safeIntegerLength: newSafeIntegerLength,\n fractionLength: newFractionLength,\n safeFractionLength: newSafeFractionLength,\n } = getLengthInfo(locale, newValue, verifiedDecimalScale, fillDecimalScale)\n\n const {\n backspaceWasPressed,\n backspacedChar,\n decimalWasPressed,\n deleteWasPressed,\n thousandsSeparatorWasBackspaced,\n } = getPressedKeyInfo(\n decimalSeparatorKey,\n group,\n pressedKey,\n prevCursorPosition,\n prevValue,\n verifiedDecimalScale\n )\n\n const digitTyped = pressedKey && /\\d/g.test(pressedKey)\n const digitBackspaced =\n backspaceWasPressed && backspacedChar && /\\d/g.test(backspacedChar)\n const decimalBackspaced = backspaceWasPressed && backspacedChar === decimal\n\n const { selectionStart, selectionEnd, selection } = prevCursorPosition\n\n const defaultPosition = Math.max(\n selectionEnd + (newValue.length - prevValue.length),\n 0\n )\n\n const isPrevValueNegative = isValidNegative(prevValue)\n\n const isNewValueNegative = isValidNegative(newValue)\n\n const isDecimalAllowed = verifiedDecimalScale > 0\n\n const digitTypedBeforeMinus =\n isPrevValueNegative && selectionEnd === 0 && digitTyped\n\n const dotWithoutAnyDigitBefore = value.startsWith(decimal) && digitTyped\n const minusWithDotWithoutAnyDigitBefore =\n value.startsWith(minus + decimal) && digitTyped\n\n const leadingZeroAdded =\n pressedKey === '0' && selectionEnd === (isPrevValueNegative ? 1 : 0)\n\n const prevIndexOfDecimalSeparator = prevValue.indexOf(decimal)\n const prevCursorPositionInDecimalArea =\n prevIndexOfDecimalSeparator > -1 &&\n prevIndexOfDecimalSeparator < selectionEnd\n const prevCursorPositionInIntegerArea =\n prevIndexOfDecimalSeparator === -1 ||\n prevIndexOfDecimalSeparator >= selectionEnd\n\n const filledIntegerScaleDigitWasChanged =\n digitTyped &&\n prevCursorPositionInIntegerArea &&\n selectionEnd !== prevValue.length &&\n newLength === prevLength &&\n (newLength === newSafeLength || newIntegerLength === newSafeIntegerLength)\n\n const isDecimalScaleFilled =\n isDecimalAllowed &&\n newFractionLength === prevFractionLength &&\n newFractionLength === newSafeFractionLength\n\n const filledDecimalScaleDigitWasBackspaced =\n isDecimalScaleFilled && prevCursorPositionInDecimalArea && digitBackspaced\n\n const filledDecimalScaleDigitWasChanged =\n isDecimalScaleFilled && prevCursorPositionInDecimalArea && digitTyped\n\n // Manage cursor when decimalSeparator typed in a new place of a decimal-allowed number\n const decimalNewPosition = newValue.indexOf(decimal)\n const restructuredByDecimal =\n isDecimalAllowed && decimalWasPressed && decimalNewPosition > -1\n\n // Preserve cursor after first typed digit and before decimal separator\n const fixedDecimalScaleFirstTyping =\n fixedDecimalScale &&\n value.length === (isNewValueNegative ? 2 : 1) &&\n newValue.charAt(isNewValueNegative ? 1 : 0) === pressedKey\n\n // Preserve cursor before \"negative\" sign\n const isLeadingZerosRemovedOnPrecedingDigitBackspace =\n backspaceWasPressed &&\n defaultPosition === 0 &&\n selectionEnd - defaultPosition > 1\n const keepCursorBeforeNegativeSign =\n isNewValueNegative && isLeadingZerosRemovedOnPrecedingDigitBackspace\n\n const getPositionOnRestructuringByDecimal = () => {\n return prevCursorPositionInDecimalArea\n ? newValue.length\n : decimalNewPosition + 1\n }\n\n const getPositionOnDecimalBackspace = () => {\n const removedCharShift = 1\n const valueLength = newValue.length\n\n if (prevFractionLength === 0) {\n return valueLength\n }\n\n let delta = 0\n let anchorDigitIndexFromTheEnd = 0\n\n newValue\n .split(emptyString)\n .reverse()\n .forEach((char, i) => {\n if (char === group) {\n delta++\n }\n if (i - delta === prevFractionLength - 1) {\n anchorDigitIndexFromTheEnd = i\n }\n })\n\n return valueLength - removedCharShift - anchorDigitIndexFromTheEnd\n }\n\n const getPositionOnDelete = () => {\n const firstSymbolDeleted = selectionEnd === 0\n\n if (firstSymbolDeleted) {\n return 0\n }\n\n const removedCharShift = 1\n const anchorDigitIndex =\n prevValue\n .slice(0, selectionEnd)\n .replace(new RegExp(`[${group}]`, 'g'), emptyString).length - 1\n\n let delta = 0\n let cursorPosition = 0\n\n newValue.split(emptyString).forEach((char, i) => {\n if (char === group) {\n delta++\n }\n if (i - delta === anchorDigitIndex) {\n cursorPosition = i\n }\n })\n\n return cursorPosition + removedCharShift\n }\n\n const getPositionOnFilledIntegerScaleDigitChange = () => {\n const getGroupsNumber = (value: string, start?: number, end?: number) => {\n return (\n value.slice(start, end).match(new RegExp(`[${group}]`, 'g'))?.length ||\n 0\n )\n }\n\n const numberOfGroupsBeforeCursorPrevValue = getGroupsNumber(\n prevValue,\n 0,\n selectionEnd\n )\n const numberOfGroupsBeforeCursorNewValue = getGroupsNumber(\n newValue,\n 0,\n selectionEnd + 1\n )\n const groupsDiffBeforeCursor =\n numberOfGroupsBeforeCursorNewValue - numberOfGroupsBeforeCursorPrevValue\n\n const typedDigitShift = leadingZeroAdded ? 0 : 1\n\n return selectionEnd + groupsDiffBeforeCursor + typedDigitShift\n }\n\n const getPositionOnSelectionChange = () => {\n if (restructuredByDecimal) return getPositionOnRestructuringByDecimal()\n\n const getPasteText = () => {\n const beforeSelectionPartLength = prevValue.slice(\n 0,\n selectionStart\n ).length\n const afterSelectionPartLength = prevValue.slice(selectionEnd).length\n const valueWithoutBeforePart = value.slice(beforeSelectionPartLength)\n\n const pasteText = valueWithoutBeforePart.slice(\n 0,\n valueWithoutBeforePart.length - afterSelectionPartLength\n )\n\n return pasteText\n }\n\n const {\n integer: pasteInteger,\n decimal: pasteDecimal,\n fraction: pasteFraction,\n } = unformat(locale, getPasteText())\n\n const refinedPasteText = `${\n selectionStart === 0\n ? refineIntegerFromLeadingZeroes(pasteInteger)\n : pasteInteger\n }${pasteDecimal}${pasteFraction}`\n\n const refinedPasteTextLength = refinedPasteText.length\n\n const anchorDigitIndexRaw =\n prevValue\n .slice(0, selectionStart)\n .replace(new RegExp(`[${group}${decimal}]`, 'g'), emptyString).length -\n 1\n\n const anchorDigitIndexBase =\n anchorDigitIndexRaw > -1 ? anchorDigitIndexRaw : 0\n\n const anchorDigitIndexShift =\n anchorDigitIndexRaw > -1\n ? refinedPasteTextLength\n : Math.max(refinedPasteTextLength - 1, 0)\n\n const anchorIndex = anchorDigitIndexBase + anchorDigitIndexShift\n\n const getCursorPositionShift = () => {\n const negativeToPositiveConversion =\n isValidNegative(refinedPasteText) && isPrevValueNegative\n\n const integerZeroBasedSelectionRemoval =\n refinedPasteTextLength === 0 && selectionStart === 0\n\n const integerPartRemoved =\n integerZeroBasedSelectionRemoval &&\n selectionEnd === prevIndexOfDecimalSeparator\n\n const fractionZeroBasedSelectionRemoval =\n (refinedPasteTextLength === 0 || refinedPasteText === minus) &&\n selectionStart === prevIndexOfDecimalSeparator + 1\n\n const groupSelectionBackspaced =\n selection === group && thousandsSeparatorWasBackspaced\n\n if (negativeToPositiveConversion || integerPartRemoved) return -1\n if (integerZeroBasedSelectionRemoval || groupSelectionBackspaced) return 0\n if (fractionZeroBasedSelectionRemoval) return 2\n\n return 1\n }\n\n let delta = 0\n let cursorPosition = 0\n\n for (let i = 0; i < newValue.length; i++) {\n const char = newValue.charAt(i)\n\n const isDeltaIncrementer =\n char === group || (char === decimal && !pasteDecimal)\n\n if (isDeltaIncrementer) {\n delta++\n }\n\n if (i - delta === anchorIndex) {\n cursorPosition = i + getCursorPositionShift()\n break\n }\n\n if (i + 1 === newValue.length) {\n cursorPosition = newValue.length\n }\n }\n\n return cursorPosition\n }\n\n const getNewPosition = () => {\n if (selection) {\n return getPositionOnSelectionChange()\n }\n\n if (digitTypedBeforeMinus) {\n return 2\n }\n if (dotWithoutAnyDigitBefore) {\n return 3\n }\n if (minusWithDotWithoutAnyDigitBefore) {\n return 4\n }\n\n if (filledIntegerScaleDigitWasChanged) {\n return getPositionOnFilledIntegerScaleDigitChange()\n }\n\n if (deleteWasPressed) {\n return getPositionOnDelete()\n }\n\n if (decimalBackspaced) {\n return getPositionOnDecimalBackspace()\n }\n\n if (filledDecimalScaleDigitWasBackspaced) {\n return selectionEnd - 1\n }\n\n if (filledDecimalScaleDigitWasChanged) {\n return selectionEnd + 1\n }\n\n if (restructuredByDecimal) {\n return getPositionOnRestructuringByDecimal()\n }\n\n if (fixedDecimalScaleFirstTyping) {\n return isNewValueNegative ? 2 : 1\n }\n\n if (keepCursorBeforeNegativeSign) {\n return 1\n }\n\n return defaultPosition\n }\n\n return getNewPosition()\n}\n\nexport function identicalLocales(one: Locale, two: Locale) {\n const array1 = Array.isArray(one) ? one : [one]\n const array2 = Array.isArray(two) ? two : [two]\n\n return array1.join() === array2.join()\n}\n"],"mappings":";;;;;;;;;;;;AACA,SAASA,eAAe,QAAQ,gCAAgC;AAChE,SAASC,kBAAkB,QAAQ,gBAAgB;AAWnD,OAAO,IAAMC,aAAa,GAAG,OAAO;AACpC,OAAO,IAAMC,KAAK,GAAG,GAAG;AACxB,OAAO,IAAMC,WAAW,GAAG,EAAE;AAC7B,OAAO,IAAMC,SAAS,GAAG,GAAG;AAC5B,OAAO,IAAMC,UAAU,GAAG,GAAG;AAC7B,OAAO,IAAMC,YAAY,GAAG,WAAW;AACvC,OAAO,IAAMC,SAAS,GAAG,QAAQ;AACjC,OAAO,IAAMC,gBAAgB,GAAG,KAAK,EAAC;AACtC,OAAO,IAAMC,SAAS,GAAG,GAAG;AAC5B,OAAO,IAAMC,oBAAoB,GAAG,SAAS,EAAC;AAC9C,OAAO,IAAMC,gBAAgB,GAAG,KAAK,EAAC;AACtC,OAAO,IAAMC,sBAAsB,GAAG,cAAc;AACpD,OAAO,IAAMC,cAAc,GAAG,EAAE,EAAC;AACjC,OAAO,IAAMC,eAAe,GAAGD,cAAc,GAAG,CAAC;AACjD,OAAO,IAAME,QAAQ,GAAG,GAAG;AAC3B,OAAO,IAAMC,iBAAiB,GAAG,MAAM;AACvC,OAAO,IAAMC,UAAU,GAAG,SAAS;AACnC,OAAO,IAAMC,eAAe,GAAG,GAAG;AAClC,OAAO,IAAMC,OAAO,GAAG,GAAG;;AAE1B;AACA,OAAO,SAASC,OAAOA,CAACC,KAAa,EAAEC,SAAiB,EAAU;EAChE,IAAMC,mBAAmB,GAAGF,KAAK,CAACG,QAAQ,CAAC,CAAC,CAACC,QAAQ,CAAC,GAAG,CAAC;EAE1D,IAAIF,mBAAmB,EAAE,OAAOF,KAAK;EAErC,OAAOK,MAAM,CACXA,MAAM,CACJC,IAAI,CAACC,KAAK,CAACF,MAAM,CAACL,KAAK,GAAG,GAAG,GAAGC,SAAS,CAAC,CAAC,GAAG,IAAI,GAAGA,SACvD,CAAC,CAACF,OAAO,CAACE,SAAS,CACrB,CAAC;AACH;AAEA,OAAO,SAASO,KAAKA,CACnBR,KAAa,EACbS,GAAuB,EACvBC,GAAuB,EACf;EACR,IAAIC,MAAM,GAAGX,KAAK;EAClB,IAAIK,MAAM,CAACO,QAAQ,CAACH,GAAG,CAAC,EAAEE,MAAM,GAAGL,IAAI,CAACI,GAAG,CAACC,MAAM,EAAEF,GAAa,CAAC;EAClE,IAAIJ,MAAM,CAACO,QAAQ,CAACF,GAAG,CAAC,EAAEC,MAAM,GAAGL,IAAI,CAACG,GAAG,CAACE,MAAM,EAAED,GAAa,CAAC;EAClE,OAAOC,MAAM;AACf;AAEA,OAAO,SAASE,gBAAgBA,CAACC,OAAsB,EAAmB;EACxE,IAAI;IACF,OAAO,IAAIpC,eAAe,CAACoC,OAAO,CAAC;EACrC,CAAC,CAAC,OAAOC,KAAK,EAAE;IACdC,OAAO,CAACD,KAAK,uEAAAE,MAAA,CAC2DH,OAAO,CAACI,MAAM,0GACpFH,KACF,CAAC;IACD,OAAO,IAAIrC,eAAe,CAAAyC,aAAA,CAAAA,aAAA,KAAML,OAAO;MAAEI,MAAM,EAAE;IAAO,EAAE,CAAC;EAC7D;AACF;AAEA,OAAO,SAASE,aAAaA,CAACF,MAAc,EAAc;EACxD,IAAMG,eAAe,GAAG1C,kBAAkB,CAACuC,MAAgB,CAAC;EAC5D,IAAMI,UAAU,GAAG,IAAI5C,eAAe,CAAC;IACrCwC,MAAM,EAAEG;EACV,CAAC,CAAC,CAACE,mBAAmB,CAAC,CAAC;EAExB,OAAO;IAAEC,KAAK,EAAEF,UAAU,CAACE,KAAK;IAAEC,OAAO,EAAEH,UAAU,CAACG,OAAO,IAAI;EAAG,CAAC;AACvE;;AAEA;AACA,OAAO,IAAMC,eAAe,GAAG,SAAlBA,eAAeA,CAAI1B,KAAiB,EAAK;EAAA,IAAA2B,YAAA;EACpD3B,KAAK,GAAG4B,MAAM,CAAC5B,KAAK,CAAC;EAErB,IAAM6B,WAAW,GAAG,IAAIC,MAAM,IAAAb,MAAA,CAAIpC,KAAK,GAAI,GAAG,CAAC;EAC/C,IAAMkD,eAAe,IAAAJ,YAAA,GAAG3B,KAAK,CAACgC,KAAK,CAACH,WAAW,CAAC,cAAAF,YAAA,uBAAxBA,YAAA,CAA0BM,MAAM;EACxD,IAAMC,wBAAwB,GAC5BlC,KAAK,CAACmC,OAAO,CAACpD,SAAS,CAAC,KAAK,CAAC,IAC9BiB,KAAK,CAACmC,OAAO,CAACnD,UAAU,CAAC,KAAKgB,KAAK,CAACiC,MAAM,GAAG,CAAC;EAChD,IAAMG,UAAU,GACbL,eAAe,KAAK,CAAC,IAAI,CAACG,wBAAwB,IAClD,CAACH,eAAe,IAAIG,wBAAyB;EAChD,OAAOE,UAAU;AACnB,CAAC;AAED,OAAO,SAASC,kBAAkBA,CAACC,YAA8B,EAAU;EACzE,IAAIA,YAAY,KAAK,IAAI,EAAE;IACzB,OAAO7C,eAAe;EACxB;EACA,IAAI6C,YAAY,KAAK,KAAK,EAAE;IAC1B,OAAO,CAAC;EACV;EACA,IAAIA,YAAY,GAAG,CAAC,EAAE;IACpBtB,OAAO,CAACuB,IAAI,4BAAAtB,MAAA,CACiBqB,YAAY,0EAAArB,MAAA,CAAuExB,eAAe,MAC/H,CAAC;IACD,OAAO,CAAC;EACV;EACA,IAAI6C,YAAY,GAAG7C,eAAe,EAAE;IAClCuB,OAAO,CAACuB,IAAI,4BAAAtB,MAAA,CACiBqB,YAAY,0DAAArB,MAAA,CAAuDxB,eAAe,sCAAAwB,MAAA,CAAmCxB,eAAe,MACjK,CAAC;IACD,OAAOA,eAAe;EACxB;EACA,OAAO6C,YAAY;AACrB;AAEA,OAAO,SAASE,QAAQA,CACtBtB,MAAc,EACdlB,KAAiB,EAEC;EAAA,IADlByC,eAAe,GAAAC,SAAA,CAAAT,MAAA,QAAAS,SAAA,QAAAC,SAAA,GAAAD,SAAA,MAAG,KAAK;EAEvB,IAAME,eAAe,GAAGlB,eAAe,CAAC1B,KAAK,CAAC;EAC9C,IAAMyB,OAAO,GACXgB,eAAe,IAAI,OAAOzC,KAAK,KAAK,QAAQ,GACxCZ,SAAS,GACTgC,aAAa,CAACF,MAAM,CAAC,CAACO,OAAO;EACnC,IAAMoB,aAAa,GAAG,IAAIf,MAAM,SAAAb,MAAA,CAASQ,OAAO,QAAK,GAAG,CAAC;EAEzD,IAAIqB,QAAQ,GAAGlB,MAAM,CAAC5B,KAAK,CAAC;;EAE5B;EACA8C,QAAQ,GAAGA,QAAQ,CAACC,OAAO,CAACF,aAAa,EAAE/D,WAAW,CAAC;;EAEvD;EACA,IAAI8D,eAAe,EAAE;IACnBE,QAAQ,MAAA7B,MAAA,CAAMpC,KAAK,EAAAoC,MAAA,CAAG6B,QAAQ,CAAE;EAClC;;EAEA;EACA,IAAAE,eAAA,GAAgCF,QAAQ,CAACG,KAAK,CAACxB,OAAO,CAAC;IAAAyB,gBAAA,GAAAC,QAAA,CAAAH,eAAA;IAAhDI,OAAO,GAAAF,gBAAA;IAAKG,SAAS,GAAAH,gBAAA,CAAAI,KAAA;EAC5B,IAAMC,QAAQ,GAAGF,SAAS,CAACG,IAAI,CAAC1E,WAAW,CAAC;EAE5C,OAAO;IACLsE,OAAO,EAAPA,OAAO;IACP3B,OAAO,EAAEqB,QAAQ,CAAC1C,QAAQ,CAACqB,OAAO,CAAC,GAAGA,OAAO,GAAG3C,WAAW;IAC3DyE,QAAQ,EAARA,QAAQ;IACRE,YAAY,EAAEC,UAAU,IAAAzC,MAAA,CAAImC,OAAO,EAAAnC,MAAA,CAAG7B,SAAS,EAAA6B,MAAA,CAAGsC,QAAQ,CAAE;EAC9D,CAAC;AACH;AAEA,OAAO,SAASI,8BAA8BA,CAACP,OAAe,EAAE;EAC9D,IAAMQ,eAAe,GAAGlC,eAAe,CAAC0B,OAAO,CAAC;EAChD,IAAMS,gBAAgB,GAAGT,OAAO,CAACL,OAAO,CAAClE,KAAK,EAAEC,WAAW,CAAC;EAC5D,IAAMgF,gBAAgB,GAAGD,gBAAgB,CAACP,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;EACrD,IAAMS,wBAAwB,GAAGF,gBAAgB,CAACd,OAAO,CAAC,KAAK,EAAEjE,WAAW,CAAC;EAC7E,IAAMkF,UAAU,GACdF,gBAAgB,IAAIC,wBAAwB,KAAKjF,WAAW;EAE9D,UAAAmC,MAAA,CAAU2C,eAAe,GAAG/E,KAAK,GAAGC,WAAW,EAAAmC,MAAA,CAC7C+C,UAAU,GAAG,CAAC,GAAGD,wBAAwB;AAE7C;AAEA,OAAO,SAASE,aAAaA,CAC3B/C,MAAc,EACdlB,KAAiB,EAIjB;EAAA,IAHAsC,YAAoB,GAAAI,SAAA,CAAAT,MAAA,QAAAS,SAAA,QAAAC,SAAA,GAAAD,SAAA,MAAG,CAAC;EAAA,IACxBwB,gBAAyC,GAAAxB,SAAA,CAAAT,MAAA,QAAAS,SAAA,QAAAC,SAAA,GAAAD,SAAA,MAAG,MAAM;EAAA,IAClDD,eAAe,GAAAC,SAAA,CAAAT,MAAA,QAAAS,SAAA,QAAAC,SAAA,GAAAD,SAAA,MAAG,KAAK;EAEvB,IAAMkB,eAAe,GAAGlC,eAAe,CAAC1B,KAAK,CAAC;EAE9C,IAAAmE,SAAA,GAAuC3B,QAAQ,CAC7CtB,MAAM,EACNlB,KAAK,EACLyC,eACF,CAAC;IAJOW,OAAO,GAAAe,SAAA,CAAPf,OAAO;IAAE3B,OAAO,GAAA0C,SAAA,CAAP1C,OAAO;IAAE8B,QAAQ,GAAAY,SAAA,CAARZ,QAAQ;EAMlC,IAAMa,8BAA8B,GAAGT,8BAA8B,CAACP,OAAO,CAAC;EAE9E,IAAMiB,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAA,EAAS;IAC7B,IAAMC,mBAAmB,GACvBlB,OAAO,KAAKtE,WAAW,IAAI2C,OAAO,IAAI8B,QAAQ,CAACtB,MAAM,GAAG,CAAC;IAE3D,IAAIqC,mBAAmB,EAAE,OAAO,CAAC;IAEjC,IAAMC,2BAA2B,GAC/BnB,OAAO,KAAKvE,KAAK,IAAI4C,OAAO,IAAI8B,QAAQ,CAACtB,MAAM,GAAG,CAAC;IAErD,IAAIsC,2BAA2B,EAAE,OAAO,CAAC;IAEzC,IAAMC,cAAc,GAClBpB,OAAO,CAACnB,MAAM,GAAG,CAAC,IAAImB,OAAO,KAAKtE,WAAW,IAAIsE,OAAO,KAAKvE,KAAK;IAEpE,IAAI2F,cAAc,EAAE,OAAOJ,8BAA8B,CAACnC,MAAM;IAEhE,OAAO,CAAC;EACV,CAAC;EAED,IAAMwC,aAAa,GAAGJ,gBAAgB,CAAC,CAAC;EACxC,IAAMK,cAAc,GAAGnB,QAAQ,CAACtB,MAAM;EACtC,IAAMA,MAAM,GAAGwC,aAAa,GAAGC,cAAc;EAE7C,IAAMC,UAAU,GAAGnF,cAAc,IAAIoE,eAAe,GAAG,CAAC,GAAG,CAAC,CAAC;EAC7D,IAAMgB,YAAY,GAAGD,UAAU,GAAG1C,MAAM,GAAG,CAAC,CAAC;EAE7C,IAAM4C,yBAAyB,GAAGX,gBAAgB,KAAK,MAAM;EAE7D,IAAMY,iBAAiB,GAAGD,yBAAyB,GAC/CF,UAAU,GACVA,UAAU,GAAGrC,YAAY;EAC7B,IAAMyC,kBAAkB,GAAGF,yBAAyB,GAChDvE,IAAI,CAACG,GAAG,CACNkE,UAAU,GACRP,8BAA8B,CAACd,KAAK,CAAC,CAAC,EAAEwB,iBAAiB,CAAC,CAAC7C,MAAM,EACnEK,YACF,CAAC,GACDA,YAAY;EAEhB,IAAM0C,mBAAmB,GAAGF,iBAAiB,GAAGL,aAAa,GAAG,CAAC,CAAC;EAClE,IAAMQ,oBAAoB,GAAGF,kBAAkB,GAAGL,cAAc,GAAG,CAAC,CAAC;EAErE,IAAMQ,sBAAsB,GAAGF,mBAAmB,GAC9CZ,8BAA8B,GAC9BA,8BAA8B,CAACd,KAAK,CAAC,CAAC,EAAEwB,iBAAiB,CAAC;EAC9D,IAAMK,uBAAuB,GAAGF,oBAAoB,GAChD1B,QAAQ,GACRA,QAAQ,CAACD,KAAK,CAAC,CAAC,EAAEyB,kBAAkB,CAAC;EAEzC,IAAMK,oBAAoB,MAAAnE,MAAA,CAAMiE,sBAAsB,EAAAjE,MAAA,CAAGQ,OAAO,EAAAR,MAAA,CAAGkE,uBAAuB,CAAE;EAE5F,OAAO;IACLlD,MAAM,EAANA,MAAM;IACN0C,UAAU,EAAVA,UAAU;IACVC,YAAY,EAAZA,YAAY;IACZQ,oBAAoB,EAApBA,oBAAoB;IACpBX,aAAa,EAAbA,aAAa;IACbK,iBAAiB,EAAjBA,iBAAiB;IACjBE,mBAAmB,EAAnBA,mBAAmB;IACnBN,cAAc,EAAdA,cAAc;IACdK,kBAAkB,EAAlBA,kBAAkB;IAClBE,oBAAoB,EAApBA;EACF,CAAC;AACH;AAEA,OAAO,SAASI,MAAMA,CACpBnE,MAAc,EACdoB,YAAoB,EACpB4B,gBAAyC,EACzClE,KAAiB,EAET;EAAA,IADRyC,eAAe,GAAAC,SAAA,CAAAT,MAAA,QAAAS,SAAA,QAAAC,SAAA,GAAAD,SAAA,MAAG,KAAK;EAEvB,IAAM4C,iBAAiB,GAAGpB,gBAAgB,KAAK,QAAQ;EAEvD,IAAMqB,sBAAsB,GAAGrB,gBAAgB,KAAK,QAAQ;EAE5D,IAAMsB,eAAe,GAAGF,iBAAiB,IAAIC,sBAAsB;EAEnE,IAAAE,cAAA,GACExB,aAAa,CACX/C,MAAM,EACNlB,KAAK,EACLsC,YAAY,EACZ4B,gBAAgB,EAChBzB,eACF,CAAC;IAPKR,MAAM,GAAAwD,cAAA,CAANxD,MAAM;IAAE0C,UAAU,GAAAc,cAAA,CAAVd,UAAU;IAAEC,YAAY,GAAAa,cAAA,CAAZb,YAAY;IAAEQ,oBAAoB,GAAAK,cAAA,CAApBL,oBAAoB;EAS9D,IAAMM,2BAA2B,GAAGF,eAAe,IAAI,CAACZ,YAAY;EAEpE,IAAMe,qBAAqB,GAAGD,2BAA2B,GACrDN,oBAAoB,GACpBpF,KAAK;EAET,IAAA4F,UAAA,GAAuCpD,QAAQ,CAC7CtB,MAAM,EACNyE,qBAAqB,EACrBlD,eAAe,IAAI,OAAOzC,KAAK,KAAK,QACtC,CAAC;IAJOoD,OAAO,GAAAwC,UAAA,CAAPxC,OAAO;IAAE3B,OAAO,GAAAmE,UAAA,CAAPnE,OAAO;IAAE8B,QAAQ,GAAAqC,UAAA,CAARrC,QAAQ;EAMlC,IAAMzC,OAAO,GAAG;IACd+E,qBAAqB,EAAEP,iBAAiB,GACpChD,YAAY,GACZhC,IAAI,CAACG,GAAG,CAACH,IAAI,CAACI,GAAG,CAAC,CAAC,EAAE,CAAA6C,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEtB,MAAM,KAAI,CAAC,CAAC,EAAEK,YAAY,CAAC;IAC9DwD,qBAAqB,EAAExD;EACzB,CAAC;EAED,IAAMjB,eAAe,GAAG1C,kBAAkB,CAACuC,MAAgB,CAAC;EAC5D,IAAM6E,SAAS,GAAGlF,gBAAgB,CAAAM,aAAA;IAAGD,MAAM,EAAEG;EAAe,GAAKP,OAAO,CAAE,CAAC;EAE3E,IAAMkF,gBAAgB,GAAG1D,YAAY,GAAG,CAAC;EAEzC,IAAM2D,YAAY,GAAG7C,OAAO,KAAKtE,WAAW,IAAI,CAAC2C,OAAO,IAAI,CAAC8B,QAAQ;EAErE,IAAI0C,YAAY,EAAE,OAAOnH,WAAW;EAEpC,IAAMoH,YAAY,GAAG9C,OAAO,KAAKvE,KAAK,IAAI,CAAC4C,OAAO,IAAI,CAAC8B,QAAQ;EAE/D,IAAI2C,YAAY,EAAE,OAAOrH,KAAK;EAE9B,IAAMsH,cAAc,GAClB/C,OAAO,KAAKtE,WAAW,IAAI2C,OAAO,IAAI,CAAC8B,QAAQ,IAAI,CAAC+B,iBAAiB;EAEvE,IAAIa,cAAc,EAAE,OAAOH,gBAAgB,GAAGvE,OAAO,GAAG3C,WAAW;EAEnE,IAAMsH,mBAAmB,GACvBhD,OAAO,KAAKvE,KAAK,IAAI4C,OAAO,IAAI,CAAC8B,QAAQ,IAAI,CAAC+B,iBAAiB;EAEjE,IAAIc,mBAAmB,EACrB,UAAAnF,MAAA,CAAUpC,KAAK,EAAAoC,MAAA,CAAG+E,gBAAgB,GAAGvE,OAAO,GAAG3C,WAAW;EAE5D,IAAMuH,+BAA+B,GACnC,CAACjD,OAAO,KAAKvE,KAAK,IAAIuE,OAAO,KAAKtE,WAAW,KAC7C2C,OAAO,KACN8B,QAAQ,IAAK,CAACA,QAAQ,IAAI+B,iBAAkB,CAAC;EAEhD,IAAIe,+BAA+B,EAAE;IACnC,IAAMC,kBAAkB,GAAGhE,YAAY,GAAGiB,QAAQ,CAACtB,MAAM;IAEzD,IAAMsE,gBAAgB,GACpBD,kBAAkB,GAAG,CAAC,IAAIhB,iBAAiB,GACvC/B,QAAQ,CAACtC,MAAM,CACbuF,KAAK,CAACC,IAAI,CAAC;MAAExE,MAAM,EAAEqE;IAAmB,CAAC,EAAE,UAACI,CAAC;MAAA,OAAK,GAAG;IAAA,EAAC,CAAClD,IAAI,CACzD1E,WACF,CACF,CAAC,GACDyE,QAAQ,CAACD,KAAK,CAAC,CAAC,EAAEhB,YAAY,CAAC;IAErC,UAAArB,MAAA,CAAUmC,OAAO,EAAAnC,MAAA,CACf+E,gBAAgB,GAAGvE,OAAO,GAAG3C,WAAW,EAAAmC,MAAA,CACvCsF,gBAAgB;EACrB;EAEA,IAAI,OAAOZ,qBAAqB,KAAK,QAAQ,EAAE;IAC7C,OAAOI,SAAS,CAACY,YAAY,CAAChB,qBAAqB,CAAC;EACtD;EAEA,IAAIpC,QAAQ,EAAE;IACZ,IAAMqD,MAAM,GAAGlD,UAAU,IAAAzC,MAAA,CACpBmC,OAAO,EAAAnC,MAAA,CAAG7B,SAAS,EAAA6B,MAAA,CAAGsC,QAAQ,CAACD,KAAK,CACrC,CAAC,EACDxC,OAAO,CAACgF,qBACV,CAAC,CACH,CAAC;IAED,IAAIe,KAAK,CAACD,MAAM,CAAC,EAAE,OAAO9H,WAAW;IAErC,OAAOiH,SAAS,CAACY,YAAY,CAACC,MAAM,CAAC;EACvC;EAEA,IAAIxD,OAAO,EAAE;IACX,IAAMwD,OAAM,GAAGE,QAAQ,CAAC1D,OAAO,EAAE,EAAE,CAAC;IAEpC,IAAIyD,KAAK,CAACD,OAAM,CAAC,EAAE,OAAO9H,WAAW;IAErC,IAAMiI,SAAS,GAAGhB,SAAS,CAACY,YAAY,CAACC,OAAM,CAAC;IAChD,IAAMZ,iBAAgB,GAAG,EACvBlF,OAAO,CAAC+E,qBAAqB,KAAK,CAAC,IAAI/E,OAAO,CAACgF,qBAAqB,KAAK,CAAC,CAC3E;IACD,IAAMkB,kBAAkB,GACtBvF,OAAO,IAAI,CAACsF,SAAS,CAAC3G,QAAQ,CAACqB,OAAO,CAAC,IAAIQ,MAAM,GAAG0C,UAAU;IAEhE,OAAOqB,iBAAgB,IAAIgB,kBAAkB,MAAA/F,MAAA,CACtC8F,SAAS,EAAA9F,MAAA,CAAGQ,OAAO,IACtBsF,SAAS;EACf;EAEA,OAAOjI,WAAW;AACpB;AAEA,OAAO,SAASmI,kBAAkBA,CAChCC,mBAA2B,EAC3BC,SAAiB,EACjBC,UAAsB,EACtBC,SAAiB,EACjBrH,KAAa,EACb;EACA,IAAIoH,UAAU,KAAK7H,sBAAsB,EAAE,OAAO6H,UAAU;EAE5D,IAAID,SAAS,KAAK,uBAAuB,EAAE,OAAOlI,YAAY;EAE9D,IAAIkI,SAAS,KAAK,YAAY,EAAE;IAC9B,IAAMG,IAAI,GAAGtH,KAAK,CACfiD,KAAK,CAACnE,WAAW,CAAC,CAClByI,IAAI,CACH,UAACC,KAAY,EAAEC,CAAS;MAAA,OAAKD,KAAI,KAAKH,SAAS,CAACpE,KAAK,CAACnE,WAAW,CAAC,CAAC2I,CAAC,CAAC;IAAA,CACvE,CAAC;IAEH,QAAQH,IAAI;MACV,KAAKJ,mBAAmB;QACtB,OAAOA,mBAAmB;MAC5B,KAAKrI,KAAK;QACR,OAAOA,KAAK;MACd;QACE,OAAOuI,UAAU;IACrB;EACF;EAEA,OAAOA,UAAU;AACnB;AAEA,OAAO,SAASM,iBAAiBA,CAC/BR,mBAA2B,EAC3B1F,KAAa,EACb4F,UAAsB,EACtBO,kBAAkC,EAClCN,SAAiB,EACjBO,oBAA4B,EAC5B;EACA,IAAQC,cAAc,GAA8BF,kBAAkB,CAA9DE,cAAc;IAAEC,YAAY,GAAgBH,kBAAkB,CAA9CG,YAAY;IAAEC,SAAS,GAAKJ,kBAAkB,CAAhCI,SAAS;EAE/C,IAAMC,mBAAmB,GAAGZ,UAAU,KAAKnI,YAAY;EACvD,IAAMgJ,cAAc,GAAGD,mBAAmB,GACtCX,SAAS,CAAC/D,KAAK,CAACuE,cAAc,IAAIE,SAAS,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAED,YAAY,CAAC,GACpE,IAAI;EACR,IAAMI,iBAAiB,GAAG,CACxBhB,mBAAmB,EACnB7H,oBAAoB,CACrB,CAACe,QAAQ,CAACgH,UAAoB,CAAC;EAChC,IAAMe,wBAAwB,GAC5BD,iBAAiB,IAAIN,oBAAoB,KAAK,CAAC;EACjD,IAAMQ,gBAAgB,GAAG,CAAClJ,SAAS,EAAEC,gBAAgB,CAAC,CAACiB,QAAQ,CAC7DgH,UACF,CAAC;EACD,IAAMiB,WAAW,GAAGD,gBAAgB,GAChCf,SAAS,CAAC/D,KAAK,CAACuE,cAAc,EAAEC,YAAY,IAAIC,SAAS,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GACnE,IAAI;EAER,IAAMO,+BAA+B,GACnCN,mBAAmB,IAAIC,cAAc,KAAKzG,KAAK;EACjD,IAAM+G,4BAA4B,GAAGH,gBAAgB,IAAIC,WAAW,KAAK7G,KAAK;EAE9E,OAAO;IACLwG,mBAAmB,EAAnBA,mBAAmB;IACnBC,cAAc,EAAdA,cAAc;IACdC,iBAAiB,EAAjBA,iBAAiB;IACjBC,wBAAwB,EAAxBA,wBAAwB;IACxBC,gBAAgB,EAAhBA,gBAAgB;IAChBC,WAAW,EAAXA,WAAW;IACXC,+BAA+B,EAA/BA,+BAA+B;IAC/BC,4BAA4B,EAA5BA;EACF,CAAC;AACH;AAEA,OAAO,SAASC,wBAAwBA,CACtC/G,OAAe,EACfyF,mBAA2B,EAC3B1F,KAAa,EACb4F,UAAsB,EACtBO,kBAAkC,EAClCN,SAAiB,EACjBO,oBAA4B,EAC5B5H,KAAa,EACb;EACA,IAAAyI,kBAAA,GAIIf,iBAAiB,CACnBR,mBAAmB,EACnB1F,KAAK,EACL4F,UAAU,EACVO,kBAAkB,EAClBN,SAAS,EACTO,oBACF,CAAC;IAVCO,wBAAwB,GAAAM,kBAAA,CAAxBN,wBAAwB;IACxBG,+BAA+B,GAAAG,kBAAA,CAA/BH,+BAA+B;IAC/BC,4BAA4B,GAAAE,kBAAA,CAA5BF,4BAA4B;;EAU9B;EACA,IAAID,+BAA+B,IAAIC,4BAA4B,EAAE;IACnE,IAAQT,YAAY,GAAgBH,kBAAkB,CAA9CG,YAAY;MAAEC,SAAS,GAAKJ,kBAAkB,CAAhCI,SAAS;IAE/B,IAAMW,cAAc,GAAG,SAAjBA,cAAcA,CAAA,EAAS;MAC3B,IAAIH,4BAA4B,EAAE;QAChC,IAAMI,kBAAkB,GAAGZ,SAAS,KAAKvG,KAAK;QAC9C,OAAOmH,kBAAkB,GAAG,CAAC,GAAG,CAAC;MACnC;MACA,IAAIL,+BAA+B,EAAE,OAAO,CAAC,CAAC;MAC9C,OAAO,CAAC;IACV,CAAC;IAED,IAAMM,2BAA2B,GAAGd,YAAY,GAAGY,cAAc,CAAC,CAAC;IAEnE,OAAOrB,SAAS,CACbpE,KAAK,CAACnE,WAAW,CAAC,CAClB+J,MAAM,CAAC,UAACnC,CAAC,EAAEe,CAAC;MAAA,OAAKA,CAAC,KAAKmB,2BAA2B;IAAA,EAAC,CACnDpF,IAAI,CAAC1E,WAAW,CAAC;EACtB;;EAEA;EACA,IAAIqJ,wBAAwB,EAAE;IAC5B,OAAOnI,KAAK,CAAC+C,OAAO,CAAC,IAAIjB,MAAM,KAAAb,MAAA,CAAKQ,OAAO,QAAK,GAAG,CAAC,EAAE3C,WAAW,CAAC;EACpE;EAEA,OAAOkB,KAAK;AACd;AAEA,OAAO,SAAS8I,oBAAoBA,CAClCrH,OAAe,EACfyF,mBAA2B,EAC3B1F,KAAa,EACbuH,QAAgB,EAChB3B,UAAsB,EACtBO,kBAAkC,EAClCN,SAAiB,EACjBrH,KAAa,EACb4H,oBAA4B,EAC5B1G,MAAc,EACdgD,gBAAyC,EACzC;EACA,IAAMoB,iBAAiB,GAAGpB,gBAAgB,KAAK,QAAQ;EAEvD,IAAA8E,eAAA,GACE/E,aAAa,CAAC/C,MAAM,EAAEmG,SAAS,EAAEO,oBAAoB,EAAE1D,gBAAgB,CAAC;IAD1D+E,UAAU,GAAAD,eAAA,CAAlB/G,MAAM;IAA8BiH,kBAAkB,GAAAF,eAAA,CAAlCtE,cAAc;EAG1C,IAAAyE,eAAA,GAOIlF,aAAa,CAAC/C,MAAM,EAAE6H,QAAQ,EAAEnB,oBAAoB,EAAE1D,gBAAgB,CAAC;IANjEkF,SAAS,GAAAD,eAAA,CAAjBlH,MAAM;IACMoH,aAAa,GAAAF,eAAA,CAAzBxE,UAAU;IACK2E,gBAAgB,GAAAH,eAAA,CAA/B1E,aAAa;IACM8E,oBAAoB,GAAAJ,eAAA,CAAvCrE,iBAAiB;IACD0E,iBAAiB,GAAAL,eAAA,CAAjCzE,cAAc;IACM+E,qBAAqB,GAAAN,eAAA,CAAzCpE,kBAAkB;EAGpB,IAAA2E,mBAAA,GAMIhC,iBAAiB,CACnBR,mBAAmB,EACnB1F,KAAK,EACL4F,UAAU,EACVO,kBAAkB,EAClBN,SAAS,EACTO,oBACF,CAAC;IAZCI,mBAAmB,GAAA0B,mBAAA,CAAnB1B,mBAAmB;IACnBC,cAAc,GAAAyB,mBAAA,CAAdzB,cAAc;IACdC,iBAAiB,GAAAwB,mBAAA,CAAjBxB,iBAAiB;IACjBE,gBAAgB,GAAAsB,mBAAA,CAAhBtB,gBAAgB;IAChBE,+BAA+B,GAAAoB,mBAAA,CAA/BpB,+BAA+B;EAUjC,IAAMqB,UAAU,GAAGvC,UAAU,IAAI,KAAK,CAACwC,IAAI,CAACxC,UAAU,CAAC;EACvD,IAAMyC,eAAe,GACnB7B,mBAAmB,IAAIC,cAAc,IAAI,KAAK,CAAC2B,IAAI,CAAC3B,cAAc,CAAC;EACrE,IAAM6B,iBAAiB,GAAG9B,mBAAmB,IAAIC,cAAc,KAAKxG,OAAO;EAE3E,IAAQoG,cAAc,GAA8BF,kBAAkB,CAA9DE,cAAc;IAAEC,YAAY,GAAgBH,kBAAkB,CAA9CG,YAAY;IAAEC,SAAS,GAAKJ,kBAAkB,CAAhCI,SAAS;EAE/C,IAAMgC,eAAe,GAAGzJ,IAAI,CAACI,GAAG,CAC9BoH,YAAY,IAAIiB,QAAQ,CAAC9G,MAAM,GAAGoF,SAAS,CAACpF,MAAM,CAAC,EACnD,CACF,CAAC;EAED,IAAM+H,mBAAmB,GAAGtI,eAAe,CAAC2F,SAAS,CAAC;EAEtD,IAAM4C,kBAAkB,GAAGvI,eAAe,CAACqH,QAAQ,CAAC;EAEpD,IAAM/C,gBAAgB,GAAG4B,oBAAoB,GAAG,CAAC;EAEjD,IAAMsC,qBAAqB,GACzBF,mBAAmB,IAAIlC,YAAY,KAAK,CAAC,IAAI6B,UAAU;EAEzD,IAAMQ,wBAAwB,GAAGnK,KAAK,CAACoK,UAAU,CAAC3I,OAAO,CAAC,IAAIkI,UAAU;EACxE,IAAMU,iCAAiC,GACrCrK,KAAK,CAACoK,UAAU,CAACvL,KAAK,GAAG4C,OAAO,CAAC,IAAIkI,UAAU;EAEjD,IAAMW,gBAAgB,GACpBlD,UAAU,KAAK,GAAG,IAAIU,YAAY,MAAMkC,mBAAmB,GAAG,CAAC,GAAG,CAAC,CAAC;EAEtE,IAAMO,2BAA2B,GAAGlD,SAAS,CAAClF,OAAO,CAACV,OAAO,CAAC;EAC9D,IAAM+I,+BAA+B,GACnCD,2BAA2B,GAAG,CAAC,CAAC,IAChCA,2BAA2B,GAAGzC,YAAY;EAC5C,IAAM2C,+BAA+B,GACnCF,2BAA2B,KAAK,CAAC,CAAC,IAClCA,2BAA2B,IAAIzC,YAAY;EAE7C,IAAM4C,iCAAiC,GACrCf,UAAU,IACVc,+BAA+B,IAC/B3C,YAAY,KAAKT,SAAS,CAACpF,MAAM,IACjCmH,SAAS,KAAKH,UAAU,KACvBG,SAAS,KAAKC,aAAa,IAAIC,gBAAgB,KAAKC,oBAAoB,CAAC;EAE5E,IAAMoB,oBAAoB,GACxB3E,gBAAgB,IAChBwD,iBAAiB,KAAKN,kBAAkB,IACxCM,iBAAiB,KAAKC,qBAAqB;EAE7C,IAAMmB,oCAAoC,GACxCD,oBAAoB,IAAIH,+BAA+B,IAAIX,eAAe;EAE5E,IAAMgB,iCAAiC,GACrCF,oBAAoB,IAAIH,+BAA+B,IAAIb,UAAU;;EAEvE;EACA,IAAMmB,kBAAkB,GAAG/B,QAAQ,CAAC5G,OAAO,CAACV,OAAO,CAAC;EACpD,IAAMsJ,qBAAqB,GACzB/E,gBAAgB,IAAIkC,iBAAiB,IAAI4C,kBAAkB,GAAG,CAAC,CAAC;;EAElE;EACA,IAAME,4BAA4B,GAChC1F,iBAAiB,IACjBtF,KAAK,CAACiC,MAAM,MAAMgI,kBAAkB,GAAG,CAAC,GAAG,CAAC,CAAC,IAC7ClB,QAAQ,CAACkC,MAAM,CAAChB,kBAAkB,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK7C,UAAU;;EAE5D;EACA,IAAM8D,8CAA8C,GAClDlD,mBAAmB,IACnB+B,eAAe,KAAK,CAAC,IACrBjC,YAAY,GAAGiC,eAAe,GAAG,CAAC;EACpC,IAAMoB,4BAA4B,GAChClB,kBAAkB,IAAIiB,8CAA8C;EAEtE,IAAME,mCAAmC,GAAG,SAAtCA,mCAAmCA,CAAA,EAAS;IAChD,OAAOZ,+BAA+B,GAClCzB,QAAQ,CAAC9G,MAAM,GACf6I,kBAAkB,GAAG,CAAC;EAC5B,CAAC;EAED,IAAMO,6BAA6B,GAAG,SAAhCA,6BAA6BA,CAAA,EAAS;IAC1C,IAAMC,gBAAgB,GAAG,CAAC;IAC1B,IAAMC,WAAW,GAAGxC,QAAQ,CAAC9G,MAAM;IAEnC,IAAIiH,kBAAkB,KAAK,CAAC,EAAE;MAC5B,OAAOqC,WAAW;IACpB;IAEA,IAAIC,KAAK,GAAG,CAAC;IACb,IAAIC,0BAA0B,GAAG,CAAC;IAElC1C,QAAQ,CACL9F,KAAK,CAACnE,WAAW,CAAC,CAClB4M,OAAO,CAAC,CAAC,CACTC,OAAO,CAAC,UAACnE,MAAI,EAAEC,CAAC,EAAK;MACpB,IAAID,MAAI,KAAKhG,KAAK,EAAE;QAClBgK,KAAK,EAAE;MACT;MACA,IAAI/D,CAAC,GAAG+D,KAAK,KAAKtC,kBAAkB,GAAG,CAAC,EAAE;QACxCuC,0BAA0B,GAAGhE,CAAC;MAChC;IACF,CAAC,CAAC;IAEJ,OAAO8D,WAAW,GAAGD,gBAAgB,GAAGG,0BAA0B;EACpE,CAAC;EAED,IAAMG,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAAA,EAAS;IAChC,IAAMC,kBAAkB,GAAG/D,YAAY,KAAK,CAAC;IAE7C,IAAI+D,kBAAkB,EAAE;MACtB,OAAO,CAAC;IACV;IAEA,IAAMP,gBAAgB,GAAG,CAAC;IAC1B,IAAMQ,gBAAgB,GACpBzE,SAAS,CACN/D,KAAK,CAAC,CAAC,EAAEwE,YAAY,CAAC,CACtB/E,OAAO,CAAC,IAAIjB,MAAM,KAAAb,MAAA,CAAKO,KAAK,QAAK,GAAG,CAAC,EAAE1C,WAAW,CAAC,CAACmD,MAAM,GAAG,CAAC;IAEnE,IAAIuJ,KAAK,GAAG,CAAC;IACb,IAAIO,cAAc,GAAG,CAAC;IAEtBhD,QAAQ,CAAC9F,KAAK,CAACnE,WAAW,CAAC,CAAC6M,OAAO,CAAC,UAACnE,MAAI,EAAEC,CAAC,EAAK;MAC/C,IAAID,MAAI,KAAKhG,KAAK,EAAE;QAClBgK,KAAK,EAAE;MACT;MACA,IAAI/D,CAAC,GAAG+D,KAAK,KAAKM,gBAAgB,EAAE;QAClCC,cAAc,GAAGtE,CAAC;MACpB;IACF,CAAC,CAAC;IAEF,OAAOsE,cAAc,GAAGT,gBAAgB;EAC1C,CAAC;EAED,IAAMU,0CAA0C,GAAG,SAA7CA,0CAA0CA,CAAA,EAAS;IACvD,IAAMC,eAAe,GAAG,SAAlBA,eAAeA,CAAIjM,KAAa,EAAEkM,KAAc,EAAEC,GAAY,EAAK;MAAA,IAAAC,kBAAA;MACvE,OACE,EAAAA,kBAAA,GAAApM,KAAK,CAACsD,KAAK,CAAC4I,KAAK,EAAEC,GAAG,CAAC,CAACnK,KAAK,CAAC,IAAIF,MAAM,KAAAb,MAAA,CAAKO,KAAK,QAAK,GAAG,CAAC,CAAC,cAAA4K,kBAAA,uBAA5DA,kBAAA,CAA8DnK,MAAM,KACpE,CAAC;IAEL,CAAC;IAED,IAAMoK,mCAAmC,GAAGJ,eAAe,CACzD5E,SAAS,EACT,CAAC,EACDS,YACF,CAAC;IACD,IAAMwE,kCAAkC,GAAGL,eAAe,CACxDlD,QAAQ,EACR,CAAC,EACDjB,YAAY,GAAG,CACjB,CAAC;IACD,IAAMyE,sBAAsB,GAC1BD,kCAAkC,GAAGD,mCAAmC;IAE1E,IAAMG,eAAe,GAAGlC,gBAAgB,GAAG,CAAC,GAAG,CAAC;IAEhD,OAAOxC,YAAY,GAAGyE,sBAAsB,GAAGC,eAAe;EAChE,CAAC;EAED,IAAMC,4BAA4B,GAAG,SAA/BA,4BAA4BA,CAAA,EAAS;IACzC,IAAI1B,qBAAqB,EAAE,OAAOK,mCAAmC,CAAC,CAAC;IAEvE,IAAMsB,YAAY,GAAG,SAAfA,YAAYA,CAAA,EAAS;MACzB,IAAMC,yBAAyB,GAAGtF,SAAS,CAAC/D,KAAK,CAC/C,CAAC,EACDuE,cACF,CAAC,CAAC5F,MAAM;MACR,IAAM2K,wBAAwB,GAAGvF,SAAS,CAAC/D,KAAK,CAACwE,YAAY,CAAC,CAAC7F,MAAM;MACrE,IAAM4K,sBAAsB,GAAG7M,KAAK,CAACsD,KAAK,CAACqJ,yBAAyB,CAAC;MAErE,IAAMG,SAAS,GAAGD,sBAAsB,CAACvJ,KAAK,CAC5C,CAAC,EACDuJ,sBAAsB,CAAC5K,MAAM,GAAG2K,wBAClC,CAAC;MAED,OAAOE,SAAS;IAClB,CAAC;IAED,IAAAC,UAAA,GAIIvK,QAAQ,CAACtB,MAAM,EAAEwL,YAAY,CAAC,CAAC,CAAC;MAHzBM,YAAY,GAAAD,UAAA,CAArB3J,OAAO;MACE6J,YAAY,GAAAF,UAAA,CAArBtL,OAAO;MACGyL,aAAa,GAAAH,UAAA,CAAvBxJ,QAAQ;IAGV,IAAM4J,gBAAgB,MAAAlM,MAAA,CACpB4G,cAAc,KAAK,CAAC,GAChBlE,8BAA8B,CAACqJ,YAAY,CAAC,GAC5CA,YAAY,EAAA/L,MAAA,CACfgM,YAAY,EAAAhM,MAAA,CAAGiM,aAAa,CAAE;IAEjC,IAAME,sBAAsB,GAAGD,gBAAgB,CAAClL,MAAM;IAEtD,IAAMoL,mBAAmB,GACvBhG,SAAS,CACN/D,KAAK,CAAC,CAAC,EAAEuE,cAAc,CAAC,CACxB9E,OAAO,CAAC,IAAIjB,MAAM,KAAAb,MAAA,CAAKO,KAAK,EAAAP,MAAA,CAAGQ,OAAO,QAAK,GAAG,CAAC,EAAE3C,WAAW,CAAC,CAACmD,MAAM,GACvE,CAAC;IAEH,IAAMqL,oBAAoB,GACxBD,mBAAmB,GAAG,CAAC,CAAC,GAAGA,mBAAmB,GAAG,CAAC;IAEpD,IAAME,qBAAqB,GACzBF,mBAAmB,GAAG,CAAC,CAAC,GACpBD,sBAAsB,GACtB9M,IAAI,CAACI,GAAG,CAAC0M,sBAAsB,GAAG,CAAC,EAAE,CAAC,CAAC;IAE7C,IAAMI,WAAW,GAAGF,oBAAoB,GAAGC,qBAAqB;IAEhE,IAAME,sBAAsB,GAAG,SAAzBA,sBAAsBA,CAAA,EAAS;MACnC,IAAMC,4BAA4B,GAChChM,eAAe,CAACyL,gBAAgB,CAAC,IAAInD,mBAAmB;MAE1D,IAAM2D,gCAAgC,GACpCP,sBAAsB,KAAK,CAAC,IAAIvF,cAAc,KAAK,CAAC;MAEtD,IAAM+F,kBAAkB,GACtBD,gCAAgC,IAChC7F,YAAY,KAAKyC,2BAA2B;MAE9C,IAAMsD,iCAAiC,GACrC,CAACT,sBAAsB,KAAK,CAAC,IAAID,gBAAgB,KAAKtO,KAAK,KAC3DgJ,cAAc,KAAK0C,2BAA2B,GAAG,CAAC;MAEpD,IAAMuD,wBAAwB,GAC5B/F,SAAS,KAAKvG,KAAK,IAAI8G,+BAA+B;MAExD,IAAIoF,4BAA4B,IAAIE,kBAAkB,EAAE,OAAO,CAAC,CAAC;MACjE,IAAID,gCAAgC,IAAIG,wBAAwB,EAAE,OAAO,CAAC;MAC1E,IAAID,iCAAiC,EAAE,OAAO,CAAC;MAE/C,OAAO,CAAC;IACV,CAAC;IAED,IAAIrC,KAAK,GAAG,CAAC;IACb,IAAIO,cAAc,GAAG,CAAC;IAEtB,KAAK,IAAItE,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGsB,QAAQ,CAAC9G,MAAM,EAAEwF,CAAC,EAAE,EAAE;MACxC,IAAMD,MAAI,GAAGuB,QAAQ,CAACkC,MAAM,CAACxD,CAAC,CAAC;MAE/B,IAAMsG,kBAAkB,GACtBvG,MAAI,KAAKhG,KAAK,IAAKgG,MAAI,KAAK/F,OAAO,IAAI,CAACwL,YAAa;MAEvD,IAAIc,kBAAkB,EAAE;QACtBvC,KAAK,EAAE;MACT;MAEA,IAAI/D,CAAC,GAAG+D,KAAK,KAAKgC,WAAW,EAAE;QAC7BzB,cAAc,GAAGtE,CAAC,GAAGgG,sBAAsB,CAAC,CAAC;QAC7C;MACF;MAEA,IAAIhG,CAAC,GAAG,CAAC,KAAKsB,QAAQ,CAAC9G,MAAM,EAAE;QAC7B8J,cAAc,GAAGhD,QAAQ,CAAC9G,MAAM;MAClC;IACF;IAEA,OAAO8J,cAAc;EACvB,CAAC;EAED,IAAMiC,cAAc,GAAG,SAAjBA,cAAcA,CAAA,EAAS;IAC3B,IAAIjG,SAAS,EAAE;MACb,OAAO0E,4BAA4B,CAAC,CAAC;IACvC;IAEA,IAAIvC,qBAAqB,EAAE;MACzB,OAAO,CAAC;IACV;IACA,IAAIC,wBAAwB,EAAE;MAC5B,OAAO,CAAC;IACV;IACA,IAAIE,iCAAiC,EAAE;MACrC,OAAO,CAAC;IACV;IAEA,IAAIK,iCAAiC,EAAE;MACrC,OAAOsB,0CAA0C,CAAC,CAAC;IACrD;IAEA,IAAI5D,gBAAgB,EAAE;MACpB,OAAOwD,mBAAmB,CAAC,CAAC;IAC9B;IAEA,IAAI9B,iBAAiB,EAAE;MACrB,OAAOuB,6BAA6B,CAAC,CAAC;IACxC;IAEA,IAAIT,oCAAoC,EAAE;MACxC,OAAO9C,YAAY,GAAG,CAAC;IACzB;IAEA,IAAI+C,iCAAiC,EAAE;MACrC,OAAO/C,YAAY,GAAG,CAAC;IACzB;IAEA,IAAIiD,qBAAqB,EAAE;MACzB,OAAOK,mCAAmC,CAAC,CAAC;IAC9C;IAEA,IAAIJ,4BAA4B,EAAE;MAChC,OAAOf,kBAAkB,GAAG,CAAC,GAAG,CAAC;IACnC;IAEA,IAAIkB,4BAA4B,EAAE;MAChC,OAAO,CAAC;IACV;IAEA,OAAOpB,eAAe;EACxB,CAAC;EAED,OAAOiE,cAAc,CAAC,CAAC;AACzB;AAEA,OAAO,SAASC,gBAAgBA,CAACC,GAAW,EAAEC,GAAW,EAAE;EACzD,IAAMC,MAAM,GAAG5H,KAAK,CAAC6H,OAAO,CAACH,GAAG,CAAC,GAAGA,GAAG,GAAG,CAACA,GAAG,CAAC;EAC/C,IAAMI,MAAM,GAAG9H,KAAK,CAAC6H,OAAO,CAACF,GAAG,CAAC,GAAGA,GAAG,GAAG,CAACA,GAAG,CAAC;EAE/C,OAAOC,MAAM,CAAC5K,IAAI,CAAC,CAAC,KAAK8K,MAAM,CAAC9K,IAAI,CAAC,CAAC;AACxC"}
|
|
@@ -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_49_0__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
|
|
@@ -29,6 +29,8 @@ import { Trigger, useTrigger } from '../_hooks/Trigger';
|
|
|
29
29
|
import { useVisibility } from '../_hooks/Visibility';
|
|
30
30
|
import { mergeRefs } from '../_utils/mergeRefs';
|
|
31
31
|
import { useOverlayTriggerA11y } from './a11yPresets';
|
|
32
|
+
// CSS custom property exposing the floating-ui `availableHeight` value on the overlay wrapper.
|
|
33
|
+
export var OVERLAY_AVAILABLE_HEIGHT_VAR = '--core-overlay-available-height';
|
|
32
34
|
var ClickOutside = function ClickOutside(_ref) {
|
|
33
35
|
var container = _ref.container,
|
|
34
36
|
onClickOutside = _ref.onClickOutside,
|
|
@@ -298,14 +300,16 @@ export var TriggerOverlay = /*#__PURE__*/React.forwardRef(function (_ref4, ref)
|
|
|
298
300
|
mainAxis: arrow ? padding + arrowPadding : padding
|
|
299
301
|
}), canFlip ? floatingFlip() : null, floatingShift({
|
|
300
302
|
limiter: limitShift()
|
|
301
|
-
}),
|
|
303
|
+
}), floatingSize({
|
|
302
304
|
apply: function apply(_ref5) {
|
|
303
|
-
var
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
305
|
+
var availableHeight = _ref5.availableHeight,
|
|
306
|
+
elements = _ref5.elements;
|
|
307
|
+
elements.floating.style.setProperty(OVERLAY_AVAILABLE_HEIGHT_VAR, "".concat(availableHeight, "px"));
|
|
308
|
+
if (!shrinkOverlay) {
|
|
309
|
+
elements.floating.style.minWidth = "".concat(elements.reference.getBoundingClientRect().width, "px");
|
|
310
|
+
}
|
|
307
311
|
}
|
|
308
|
-
})
|
|
312
|
+
}), floatingArrow({
|
|
309
313
|
element: arrowRef,
|
|
310
314
|
padding: 6
|
|
311
315
|
})].filter(function (middleware) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OverlayTrigger.js","names":["arrow","floatingArrow","flip","floatingFlip","limitShift","offset","floatingOffset","shift","floatingShift","size","floatingSize","FocusScope","useId","React","Arrow","arrowSize","useOverlay","Portal","useClickOutside","DelayedToggleContext","useDelayedToggle","useDelayedToggleContext","Trigger","useTrigger","useVisibility","mergeRefs","useOverlayTriggerA11y","ClickOutside","_ref","container","onClickOutside","refs","createElement","Fragment","OverlayTrigger","forwardRef","_ref2","ref","_ref2$afterHide","afterHide","_ref2$afterShow","afterShow","ariaDescribedby","ariaDetails","ariaLabel","ariaLabelledby","autoFocus","_ref2$beforeHide","beforeHide","_ref2$beforeShow","beforeShow","_ref2$canFlip","canFlip","children","_ref2$clickOutsideIgn","clickOutsideIgnoreRefs","containFocus","_ref2$hideDelay","hideDelay","hideKeys_","hideKeys","_ref2$initialIsVisibl","initialIsVisible","overlay","_ref2$padding","padding","_ref2$placement","placement","_ref2$restoreFocusOnH","restoreFocusOnHide","_ref2$showDelay","showDelay","_ref2$showKeys","showKeys","_ref2$shrinkOverlay","shrinkOverlay","trackAriaExpanded","_ref2$trigger","trigger","_ref2$arrow","overlayApiRef","overlayRef","role","_ref2$passA11yPropsTo","passA11yPropsToOverlay","overlayIdProp","overlayId","isDialogRole","includes","console","warn","concat","target","triggerElRef","useRef","overlayElRef","_React$useState","useState","_React$useState2","_slicedToArray","referenceElement","setReferenceElement","clickedOutsideRef","visibility","useImperativeHandle","show","hide","triggers","useMemo","Array","isArray","prevTriggersRef","useEffect","prevTriggers","current","indexOf","isVisible","focus","delayedToggle","beforeDisable","beforeEnable","disableDelay","enableDelay","isEnabled","onDisable","onEnable","triggerApi","enable","disable","enableKeys","disableKeys","triggerRef","hasHoverTrigger","onKeyDown","e","key","preventDefault","stopPropagation","document","addEventListener","removeEventListener","triggerElement","defaultOverlayId","_useOverlayTriggerA","canPropOverlayUp","isValidElement","id","isOpen","wrapperProps","overlayProps","portalProps","triggerProps","focusScopeProps","labelProps","hasAriaExpanded","wrappedTriggerElement","cloneElement","_objectSpread","open","Provider","value","event","_toConsumableArray","_extends","TriggerOverlay","contain","restoreFocus","overlayCloneProps","CloseOnFocus","_ref3","style","height","position","top","width","onFocus","opacity","useOverlayTriggerContext","_useDelayedToggleCont","toggle","_ref4","arrowRef","arrowPadding","middleware","mainAxis","limiter","apply","_ref5","elements","Object","assign","floating","minWidth","reference","getBoundingClientRect","element","filter","_useOverlay","isPositioned","overlayStyle","referenceRefCallback","referenceRef","middlewareData","currentPlacement","mergedRefs","shownStyles","left"],"sources":["../../src/OverlayTrigger/OverlayTrigger.tsx"],"sourcesContent":["import {\n arrow as floatingArrow,\n flip as floatingFlip,\n limitShift,\n offset as floatingOffset,\n shift as floatingShift,\n size as floatingSize,\n} from '@floating-ui/react-dom'\nimport { FocusScope } from '@react-aria/focus'\nimport { useId } from '@react-aria/utils'\nimport React from 'react'\nimport { Arrow } from '../Overlay/OverlayArrow'\nimport { arrowSize } from '../Overlay/OverlayArrow.styles'\nimport type { OverlayMiddleware } from '../Overlay/useOverlay'\nimport { useOverlay } from '../Overlay/useOverlay'\nimport { Portal } from '../Portal'\nimport type { ClickOutsideConfig } from '../_hooks/ClickOutside'\nimport { useClickOutside } from '../_hooks/ClickOutside'\nimport {\n DelayedToggleContext,\n useDelayedToggle,\n useDelayedToggleContext,\n} from '../_hooks/DelayedToggle'\nimport type { TriggerApi } from '../_hooks/Trigger'\nimport { Trigger, useTrigger } from '../_hooks/Trigger'\nimport { useVisibility } from '../_hooks/Visibility'\nimport { mergeRefs } from '../_utils/mergeRefs'\nimport type { Placement } from '../_utils/placement'\nimport type { ReactElementWithRef } from '../_utils/types'\nimport { useOverlayTriggerA11y } from './a11yPresets'\nimport type {\n DeprecatedOverlayTriggerRef,\n OverlayTriggerProps,\n} from './OverlayTrigger.types'\n\nconst ClickOutside = ({\n container,\n onClickOutside,\n refs,\n}: ClickOutsideConfig) => {\n useClickOutside({\n onClickOutside,\n refs,\n container,\n })\n\n return <></>\n}\n\n/**\n\n @since 10.19.0\n\n @see [Storybook](https://stories.core.procore.com/?path=/story/core-react_demos-overlaytrigger--demo)\n\n */\nexport const OverlayTrigger = React.forwardRef<\n DeprecatedOverlayTriggerRef,\n OverlayTriggerProps\n>(function OverlayTrigger(\n {\n afterHide = () => {},\n afterShow = () => {},\n ['aria-describedby']: ariaDescribedby,\n ['aria-details']: ariaDetails,\n ['aria-label']: ariaLabel,\n ['aria-labelledby']: ariaLabelledby,\n autoFocus,\n beforeHide = () => true,\n beforeShow = () => true,\n canFlip = true,\n children,\n clickOutsideIgnoreRefs = [],\n containFocus,\n container,\n hideDelay = 100,\n hideKeys: hideKeys_,\n initialIsVisible = false,\n overlay,\n padding = 2,\n placement = 'top',\n restoreFocusOnHide = true, // TODO: change default to be false, but that is a breaking change\n showDelay = 0,\n showKeys = ['ArrowDown', 'Down'],\n shrinkOverlay = false,\n trackAriaExpanded,\n trigger = 'click',\n arrow = false,\n overlayRef: overlayApiRef,\n role,\n passA11yPropsToOverlay = false,\n overlayId: overlayIdProp,\n },\n ref\n) {\n const isDialogRole = role === 'dialog'\n\n if (isDialogRole && (trigger === 'hover' || trigger?.includes('hover'))) {\n console.warn(\n `@procore/core-react: OverlayTigger has role ${role} and a hover trigger, this may cause weird focus management and is unrecommended. Review autoFocus prop.`\n )\n }\n\n const hideKeys = hideKeys_ ?? {\n // Note by default OverlayTrigger closes on tab. Dialog role changes the default.\n overlay:\n containFocus ?? isDialogRole\n ? ['Escape', 'Esc']\n : ['Escape', 'Esc', 'Tab'],\n target: ['Escape', 'Esc'],\n }\n\n const triggerElRef = React.useRef<HTMLElement>(null)\n const overlayElRef = React.useRef<HTMLElement>(null)\n const [referenceElement, setReferenceElement] =\n React.useState<HTMLElement | null>(null)\n const clickedOutsideRef = React.useRef(true)\n\n const visibility = useVisibility({\n afterHide,\n afterShow,\n initialIsVisible,\n })\n\n React.useImperativeHandle(overlayApiRef, () => ({\n show: visibility.show,\n hide: visibility.hide,\n }))\n\n const triggers = React.useMemo(\n () => (Array.isArray(trigger) ? trigger : [trigger]),\n [trigger]\n )\n\n const prevTriggersRef = React.useRef(triggers)\n\n React.useEffect(() => {\n const prevTriggers = prevTriggersRef.current\n prevTriggersRef.current = triggers\n\n if (triggers.indexOf('none') >= 0 && visibility.isVisible) {\n visibility.hide()\n }\n if (triggers.indexOf('always') >= 0 && !visibility.isVisible) {\n visibility.show()\n }\n if (\n prevTriggers.indexOf('always') >= 0 &&\n triggers.indexOf('always') < 0 &&\n visibility.isVisible\n ) {\n visibility.hide()\n }\n }, [triggers, visibility.isVisible])\n\n // TODO delete in a separate branch for testing and rely only on FocusScope\n React.useEffect(() => {\n if (\n [true, 'core-react'].includes(restoreFocusOnHide) &&\n !visibility.isVisible &&\n !clickedOutsideRef.current\n ) {\n triggerElRef.current && triggerElRef.current.focus()\n }\n\n clickedOutsideRef.current = false\n }, [restoreFocusOnHide, triggerElRef, visibility.isVisible])\n\n const delayedToggle = useDelayedToggle({\n beforeDisable: beforeHide,\n beforeEnable: beforeShow,\n disableDelay: hideDelay,\n enableDelay: showDelay,\n isEnabled: visibility.isVisible,\n onDisable: visibility.hide,\n onEnable: visibility.show,\n })\n\n const triggerApi = useTrigger({\n isEnabled: visibility.isVisible,\n enable: delayedToggle.enable,\n disable: delayedToggle.disable,\n enableKeys: showKeys,\n disableKeys: hideKeys.target,\n trigger,\n triggerRef: triggerElRef,\n })\n\n // Enable Escape key dismissal for hover-triggered overlays.\n React.useEffect(() => {\n const hasHoverTrigger = triggers.includes('hover')\n if (!visibility.isVisible || !hasHoverTrigger) return\n\n const onKeyDown = (e: KeyboardEvent) => {\n if (e.key !== 'Escape' && e.key !== 'Esc') return\n\n delayedToggle.disable(e)\n e.preventDefault()\n e.stopPropagation()\n }\n\n document.addEventListener('keydown', onKeyDown, true)\n return () => {\n document.removeEventListener('keydown', onKeyDown, true)\n }\n }, [triggers, visibility.isVisible, delayedToggle])\n\n const triggerElement =\n typeof children === 'function'\n ? (children as (props: TriggerApi) => ReactElementWithRef)(triggerApi)\n : (children as ReactElementWithRef)\n\n const defaultOverlayId = useId()\n const overlayId = overlayIdProp ?? defaultOverlayId\n\n const {\n wrapperProps,\n overlayProps,\n portalProps,\n triggerProps,\n focusScopeProps,\n // Does not use. User needs to wire up when using dialog role!\n labelProps,\n } = useOverlayTriggerA11y({\n canPropOverlayUp: React.isValidElement(overlay) && passA11yPropsToOverlay,\n 'aria-describedby': ariaDescribedby,\n 'aria-details': ariaDetails,\n 'aria-labelledby': ariaLabelledby,\n 'aria-label': ariaLabel,\n id: overlayId,\n isOpen: visibility.isVisible,\n role,\n })\n\n const hasAriaExpanded = trackAriaExpanded\n ? { 'aria-expanded': triggerApi.isVisible }\n : {}\n\n const wrappedTriggerElement = React.cloneElement(triggerElement, {\n ...hasAriaExpanded,\n open: triggerApi.isVisible,\n ref: triggerElement.ref\n ? mergeRefs(triggerElement.ref, ref, triggerElRef, setReferenceElement)\n : mergeRefs(ref, triggerElRef, setReferenceElement),\n ...triggerProps,\n })\n\n return (\n <DelayedToggleContext.Provider value={delayedToggle}>\n {wrappedTriggerElement}\n {visibility.isVisible && (\n <>\n <ClickOutside\n {...{\n container: container,\n onClickOutside: (event) => {\n clickedOutsideRef.current = true\n delayedToggle.disable(event)\n },\n refs: [overlayElRef, triggerElRef, ...clickOutsideIgnoreRefs],\n }}\n />\n <Portal container={container} {...portalProps}>\n <Trigger\n {...{\n isEnabled: visibility.isVisible,\n enable: delayedToggle.enable,\n disable: delayedToggle.disable,\n disableKeys: hideKeys.overlay,\n trigger: trigger === 'click' ? 'none' : trigger,\n triggerRef: overlayElRef,\n }}\n >\n <TriggerOverlay\n autoFocus={autoFocus ?? focusScopeProps.autoFocus}\n containFocus={containFocus ?? focusScopeProps.contain}\n restoreFocus={[true, 'react-aria-focus-scope'].includes(\n restoreFocusOnHide\n )}\n ref={overlayElRef}\n referenceElement={referenceElement}\n overlay={overlay}\n shrinkOverlay={shrinkOverlay}\n placement={placement}\n padding={padding}\n canFlip={canFlip}\n arrow={arrow}\n wrapperProps={wrapperProps}\n overlayCloneProps={overlayProps}\n />\n </Trigger>\n </Portal>\n </>\n )}\n </DelayedToggleContext.Provider>\n )\n})\n\nexport function CloseOnFocus({ hide }: { hide: (event: any) => any }) {\n return (\n // in IE, the hidden input's cursor appears right under the menu\n // this positions it arbitrarily away where it won't be noticed\n <div\n style={{\n height: 0,\n position: 'absolute',\n top: 1000,\n width: 0,\n }}\n >\n <input onFocus={hide} style={{ opacity: 0 }} />\n </div>\n )\n}\n\nexport function useOverlayTriggerContext() {\n const { enable: show, disable: hide, toggle } = useDelayedToggleContext()\n\n return {\n hide,\n show,\n toggle,\n }\n}\n\ninterface TriggerOverlayProps {\n containFocus?: boolean\n autoFocus?: boolean\n restoreFocus?: boolean\n placement: Placement\n canFlip?: boolean\n arrow?: boolean\n padding: number\n shrinkOverlay: boolean\n overlay: React.ReactNode\n overlayCloneProps: any\n wrapperProps: Record<string, unknown>\n referenceElement: HTMLElement | null\n}\n\nexport const TriggerOverlay = React.forwardRef<\n HTMLElement,\n TriggerOverlayProps\n>(function (\n {\n autoFocus,\n containFocus,\n restoreFocus,\n placement,\n canFlip,\n arrow,\n padding,\n shrinkOverlay,\n overlay,\n referenceElement,\n wrapperProps,\n overlayCloneProps,\n },\n ref\n) {\n const arrowRef = React.useRef<HTMLDivElement>(null)\n\n const arrowPadding = arrowSize / 2 + 1\n const middleware = [\n floatingOffset({ mainAxis: arrow ? padding + arrowPadding : padding }),\n canFlip ? floatingFlip() : null,\n floatingShift({ limiter: limitShift() }),\n !shrinkOverlay\n ? floatingSize({\n apply({ elements }) {\n Object.assign(elements.floating.style, {\n minWidth: `${elements.reference.getBoundingClientRect().width}px`,\n })\n },\n })\n : null,\n floatingArrow({\n element: arrowRef,\n padding: 6,\n }),\n ].filter((middleware) => middleware !== null) as OverlayMiddleware[]\n\n const {\n isPositioned,\n overlayStyle,\n referenceRef: referenceRefCallback,\n overlayRef,\n middlewareData,\n placement: currentPlacement,\n } = useOverlay({\n middleware,\n placement,\n })\n\n React.useEffect(() => {\n referenceRefCallback(referenceElement)\n }, [referenceElement, referenceRefCallback])\n\n const mergedRefs = mergeRefs(ref, overlayRef)\n\n // TODO could just move clone and clone props to parent\n if (!React.isValidElement(overlay) && overlayCloneProps) {\n console.warn(\n 'PLEASE REPORT ISSUE @procore/core-react: OverlayTrigger TriggerOverlay is not a valid React element but wants to clone \"overlay\" with props. Cannot pass props to the element.'\n )\n }\n\n const shownStyles: React.CSSProperties = {\n ...overlayStyle,\n left: isPositioned ? overlayStyle.left : '-99999px',\n top: isPositioned ? overlayStyle.top : '-99999px',\n }\n\n return (\n <FocusScope\n autoFocus={autoFocus}\n contain={containFocus}\n restoreFocus={restoreFocus}\n >\n <div\n data-qa=\"core-overlay-trigger-overlay-wrapper\"\n ref={mergedRefs}\n style={shownStyles}\n {...wrapperProps}\n >\n {React.isValidElement(overlay)\n ? React.cloneElement(overlay, overlayCloneProps)\n : overlay}\n {arrow && (\n <Arrow\n ref={arrowRef}\n arrow={middlewareData.arrow}\n placement={currentPlacement}\n />\n )}\n </div>\n </FocusScope>\n )\n})\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"OverlayTrigger.js","names":["arrow","floatingArrow","flip","floatingFlip","limitShift","offset","floatingOffset","shift","floatingShift","size","floatingSize","FocusScope","useId","React","Arrow","arrowSize","useOverlay","Portal","useClickOutside","DelayedToggleContext","useDelayedToggle","useDelayedToggleContext","Trigger","useTrigger","useVisibility","mergeRefs","useOverlayTriggerA11y","OVERLAY_AVAILABLE_HEIGHT_VAR","ClickOutside","_ref","container","onClickOutside","refs","createElement","Fragment","OverlayTrigger","forwardRef","_ref2","ref","_ref2$afterHide","afterHide","_ref2$afterShow","afterShow","ariaDescribedby","ariaDetails","ariaLabel","ariaLabelledby","autoFocus","_ref2$beforeHide","beforeHide","_ref2$beforeShow","beforeShow","_ref2$canFlip","canFlip","children","_ref2$clickOutsideIgn","clickOutsideIgnoreRefs","containFocus","_ref2$hideDelay","hideDelay","hideKeys_","hideKeys","_ref2$initialIsVisibl","initialIsVisible","overlay","_ref2$padding","padding","_ref2$placement","placement","_ref2$restoreFocusOnH","restoreFocusOnHide","_ref2$showDelay","showDelay","_ref2$showKeys","showKeys","_ref2$shrinkOverlay","shrinkOverlay","trackAriaExpanded","_ref2$trigger","trigger","_ref2$arrow","overlayApiRef","overlayRef","role","_ref2$passA11yPropsTo","passA11yPropsToOverlay","overlayIdProp","overlayId","isDialogRole","includes","console","warn","concat","target","triggerElRef","useRef","overlayElRef","_React$useState","useState","_React$useState2","_slicedToArray","referenceElement","setReferenceElement","clickedOutsideRef","visibility","useImperativeHandle","show","hide","triggers","useMemo","Array","isArray","prevTriggersRef","useEffect","prevTriggers","current","indexOf","isVisible","focus","delayedToggle","beforeDisable","beforeEnable","disableDelay","enableDelay","isEnabled","onDisable","onEnable","triggerApi","enable","disable","enableKeys","disableKeys","triggerRef","hasHoverTrigger","onKeyDown","e","key","preventDefault","stopPropagation","document","addEventListener","removeEventListener","triggerElement","defaultOverlayId","_useOverlayTriggerA","canPropOverlayUp","isValidElement","id","isOpen","wrapperProps","overlayProps","portalProps","triggerProps","focusScopeProps","labelProps","hasAriaExpanded","wrappedTriggerElement","cloneElement","_objectSpread","open","Provider","value","event","_toConsumableArray","_extends","TriggerOverlay","contain","restoreFocus","overlayCloneProps","CloseOnFocus","_ref3","style","height","position","top","width","onFocus","opacity","useOverlayTriggerContext","_useDelayedToggleCont","toggle","_ref4","arrowRef","arrowPadding","middleware","mainAxis","limiter","apply","_ref5","availableHeight","elements","floating","setProperty","minWidth","reference","getBoundingClientRect","element","filter","_useOverlay","isPositioned","overlayStyle","referenceRefCallback","referenceRef","middlewareData","currentPlacement","mergedRefs","shownStyles","left"],"sources":["../../src/OverlayTrigger/OverlayTrigger.tsx"],"sourcesContent":["import {\n arrow as floatingArrow,\n flip as floatingFlip,\n limitShift,\n offset as floatingOffset,\n shift as floatingShift,\n size as floatingSize,\n} from '@floating-ui/react-dom'\nimport { FocusScope } from '@react-aria/focus'\nimport { useId } from '@react-aria/utils'\nimport React from 'react'\nimport { Arrow } from '../Overlay/OverlayArrow'\nimport { arrowSize } from '../Overlay/OverlayArrow.styles'\nimport type { OverlayMiddleware } from '../Overlay/useOverlay'\nimport { useOverlay } from '../Overlay/useOverlay'\nimport { Portal } from '../Portal'\nimport type { ClickOutsideConfig } from '../_hooks/ClickOutside'\nimport { useClickOutside } from '../_hooks/ClickOutside'\nimport {\n DelayedToggleContext,\n useDelayedToggle,\n useDelayedToggleContext,\n} from '../_hooks/DelayedToggle'\nimport type { TriggerApi } from '../_hooks/Trigger'\nimport { Trigger, useTrigger } from '../_hooks/Trigger'\nimport { useVisibility } from '../_hooks/Visibility'\nimport { mergeRefs } from '../_utils/mergeRefs'\nimport type { Placement } from '../_utils/placement'\nimport type { ReactElementWithRef } from '../_utils/types'\nimport { useOverlayTriggerA11y } from './a11yPresets'\nimport type {\n DeprecatedOverlayTriggerRef,\n OverlayTriggerProps,\n} from './OverlayTrigger.types'\n\n// CSS custom property exposing the floating-ui `availableHeight` value on the overlay wrapper.\nexport const OVERLAY_AVAILABLE_HEIGHT_VAR = '--core-overlay-available-height'\n\nconst ClickOutside = ({\n container,\n onClickOutside,\n refs,\n}: ClickOutsideConfig) => {\n useClickOutside({\n onClickOutside,\n refs,\n container,\n })\n\n return <></>\n}\n\n/**\n\n @since 10.19.0\n\n @see [Storybook](https://stories.core.procore.com/?path=/story/core-react_demos-overlaytrigger--demo)\n\n */\nexport const OverlayTrigger = React.forwardRef<\n DeprecatedOverlayTriggerRef,\n OverlayTriggerProps\n>(function OverlayTrigger(\n {\n afterHide = () => {},\n afterShow = () => {},\n ['aria-describedby']: ariaDescribedby,\n ['aria-details']: ariaDetails,\n ['aria-label']: ariaLabel,\n ['aria-labelledby']: ariaLabelledby,\n autoFocus,\n beforeHide = () => true,\n beforeShow = () => true,\n canFlip = true,\n children,\n clickOutsideIgnoreRefs = [],\n containFocus,\n container,\n hideDelay = 100,\n hideKeys: hideKeys_,\n initialIsVisible = false,\n overlay,\n padding = 2,\n placement = 'top',\n restoreFocusOnHide = true, // TODO: change default to be false, but that is a breaking change\n showDelay = 0,\n showKeys = ['ArrowDown', 'Down'],\n shrinkOverlay = false,\n trackAriaExpanded,\n trigger = 'click',\n arrow = false,\n overlayRef: overlayApiRef,\n role,\n passA11yPropsToOverlay = false,\n overlayId: overlayIdProp,\n },\n ref\n) {\n const isDialogRole = role === 'dialog'\n\n if (isDialogRole && (trigger === 'hover' || trigger?.includes('hover'))) {\n console.warn(\n `@procore/core-react: OverlayTigger has role ${role} and a hover trigger, this may cause weird focus management and is unrecommended. Review autoFocus prop.`\n )\n }\n\n const hideKeys = hideKeys_ ?? {\n // Note by default OverlayTrigger closes on tab. Dialog role changes the default.\n overlay:\n containFocus ?? isDialogRole\n ? ['Escape', 'Esc']\n : ['Escape', 'Esc', 'Tab'],\n target: ['Escape', 'Esc'],\n }\n\n const triggerElRef = React.useRef<HTMLElement>(null)\n const overlayElRef = React.useRef<HTMLElement>(null)\n const [referenceElement, setReferenceElement] =\n React.useState<HTMLElement | null>(null)\n const clickedOutsideRef = React.useRef(true)\n\n const visibility = useVisibility({\n afterHide,\n afterShow,\n initialIsVisible,\n })\n\n React.useImperativeHandle(overlayApiRef, () => ({\n show: visibility.show,\n hide: visibility.hide,\n }))\n\n const triggers = React.useMemo(\n () => (Array.isArray(trigger) ? trigger : [trigger]),\n [trigger]\n )\n\n const prevTriggersRef = React.useRef(triggers)\n\n React.useEffect(() => {\n const prevTriggers = prevTriggersRef.current\n prevTriggersRef.current = triggers\n\n if (triggers.indexOf('none') >= 0 && visibility.isVisible) {\n visibility.hide()\n }\n if (triggers.indexOf('always') >= 0 && !visibility.isVisible) {\n visibility.show()\n }\n if (\n prevTriggers.indexOf('always') >= 0 &&\n triggers.indexOf('always') < 0 &&\n visibility.isVisible\n ) {\n visibility.hide()\n }\n }, [triggers, visibility.isVisible])\n\n // TODO delete in a separate branch for testing and rely only on FocusScope\n React.useEffect(() => {\n if (\n [true, 'core-react'].includes(restoreFocusOnHide) &&\n !visibility.isVisible &&\n !clickedOutsideRef.current\n ) {\n triggerElRef.current && triggerElRef.current.focus()\n }\n\n clickedOutsideRef.current = false\n }, [restoreFocusOnHide, triggerElRef, visibility.isVisible])\n\n const delayedToggle = useDelayedToggle({\n beforeDisable: beforeHide,\n beforeEnable: beforeShow,\n disableDelay: hideDelay,\n enableDelay: showDelay,\n isEnabled: visibility.isVisible,\n onDisable: visibility.hide,\n onEnable: visibility.show,\n })\n\n const triggerApi = useTrigger({\n isEnabled: visibility.isVisible,\n enable: delayedToggle.enable,\n disable: delayedToggle.disable,\n enableKeys: showKeys,\n disableKeys: hideKeys.target,\n trigger,\n triggerRef: triggerElRef,\n })\n\n // Enable Escape key dismissal for hover-triggered overlays.\n React.useEffect(() => {\n const hasHoverTrigger = triggers.includes('hover')\n if (!visibility.isVisible || !hasHoverTrigger) return\n\n const onKeyDown = (e: KeyboardEvent) => {\n if (e.key !== 'Escape' && e.key !== 'Esc') return\n\n delayedToggle.disable(e)\n e.preventDefault()\n e.stopPropagation()\n }\n\n document.addEventListener('keydown', onKeyDown, true)\n return () => {\n document.removeEventListener('keydown', onKeyDown, true)\n }\n }, [triggers, visibility.isVisible, delayedToggle])\n\n const triggerElement =\n typeof children === 'function'\n ? (children as (props: TriggerApi) => ReactElementWithRef)(triggerApi)\n : (children as ReactElementWithRef)\n\n const defaultOverlayId = useId()\n const overlayId = overlayIdProp ?? defaultOverlayId\n\n const {\n wrapperProps,\n overlayProps,\n portalProps,\n triggerProps,\n focusScopeProps,\n // Does not use. User needs to wire up when using dialog role!\n labelProps,\n } = useOverlayTriggerA11y({\n canPropOverlayUp: React.isValidElement(overlay) && passA11yPropsToOverlay,\n 'aria-describedby': ariaDescribedby,\n 'aria-details': ariaDetails,\n 'aria-labelledby': ariaLabelledby,\n 'aria-label': ariaLabel,\n id: overlayId,\n isOpen: visibility.isVisible,\n role,\n })\n\n const hasAriaExpanded = trackAriaExpanded\n ? { 'aria-expanded': triggerApi.isVisible }\n : {}\n\n const wrappedTriggerElement = React.cloneElement(triggerElement, {\n ...hasAriaExpanded,\n open: triggerApi.isVisible,\n ref: triggerElement.ref\n ? mergeRefs(triggerElement.ref, ref, triggerElRef, setReferenceElement)\n : mergeRefs(ref, triggerElRef, setReferenceElement),\n ...triggerProps,\n })\n\n return (\n <DelayedToggleContext.Provider value={delayedToggle}>\n {wrappedTriggerElement}\n {visibility.isVisible && (\n <>\n <ClickOutside\n {...{\n container: container,\n onClickOutside: (event) => {\n clickedOutsideRef.current = true\n delayedToggle.disable(event)\n },\n refs: [overlayElRef, triggerElRef, ...clickOutsideIgnoreRefs],\n }}\n />\n <Portal container={container} {...portalProps}>\n <Trigger\n {...{\n isEnabled: visibility.isVisible,\n enable: delayedToggle.enable,\n disable: delayedToggle.disable,\n disableKeys: hideKeys.overlay,\n trigger: trigger === 'click' ? 'none' : trigger,\n triggerRef: overlayElRef,\n }}\n >\n <TriggerOverlay\n autoFocus={autoFocus ?? focusScopeProps.autoFocus}\n containFocus={containFocus ?? focusScopeProps.contain}\n restoreFocus={[true, 'react-aria-focus-scope'].includes(\n restoreFocusOnHide\n )}\n ref={overlayElRef}\n referenceElement={referenceElement}\n overlay={overlay}\n shrinkOverlay={shrinkOverlay}\n placement={placement}\n padding={padding}\n canFlip={canFlip}\n arrow={arrow}\n wrapperProps={wrapperProps}\n overlayCloneProps={overlayProps}\n />\n </Trigger>\n </Portal>\n </>\n )}\n </DelayedToggleContext.Provider>\n )\n})\n\nexport function CloseOnFocus({ hide }: { hide: (event: any) => any }) {\n return (\n // in IE, the hidden input's cursor appears right under the menu\n // this positions it arbitrarily away where it won't be noticed\n <div\n style={{\n height: 0,\n position: 'absolute',\n top: 1000,\n width: 0,\n }}\n >\n <input onFocus={hide} style={{ opacity: 0 }} />\n </div>\n )\n}\n\nexport function useOverlayTriggerContext() {\n const { enable: show, disable: hide, toggle } = useDelayedToggleContext()\n\n return {\n hide,\n show,\n toggle,\n }\n}\n\ninterface TriggerOverlayProps {\n containFocus?: boolean\n autoFocus?: boolean\n restoreFocus?: boolean\n placement: Placement\n canFlip?: boolean\n arrow?: boolean\n padding: number\n shrinkOverlay: boolean\n overlay: React.ReactNode\n overlayCloneProps: any\n wrapperProps: Record<string, unknown>\n referenceElement: HTMLElement | null\n}\n\nexport const TriggerOverlay = React.forwardRef<\n HTMLElement,\n TriggerOverlayProps\n>(function (\n {\n autoFocus,\n containFocus,\n restoreFocus,\n placement,\n canFlip,\n arrow,\n padding,\n shrinkOverlay,\n overlay,\n referenceElement,\n wrapperProps,\n overlayCloneProps,\n },\n ref\n) {\n const arrowRef = React.useRef<HTMLDivElement>(null)\n\n const arrowPadding = arrowSize / 2 + 1\n const middleware = [\n floatingOffset({ mainAxis: arrow ? padding + arrowPadding : padding }),\n canFlip ? floatingFlip() : null,\n floatingShift({ limiter: limitShift() }),\n floatingSize({\n apply({ availableHeight, elements }) {\n elements.floating.style.setProperty(\n OVERLAY_AVAILABLE_HEIGHT_VAR,\n `${availableHeight}px`\n )\n if (!shrinkOverlay) {\n elements.floating.style.minWidth = `${\n elements.reference.getBoundingClientRect().width\n }px`\n }\n },\n }),\n floatingArrow({\n element: arrowRef,\n padding: 6,\n }),\n ].filter((middleware) => middleware !== null) as OverlayMiddleware[]\n\n const {\n isPositioned,\n overlayStyle,\n referenceRef: referenceRefCallback,\n overlayRef,\n middlewareData,\n placement: currentPlacement,\n } = useOverlay({\n middleware,\n placement,\n })\n\n React.useEffect(() => {\n referenceRefCallback(referenceElement)\n }, [referenceElement, referenceRefCallback])\n\n const mergedRefs = mergeRefs(ref, overlayRef)\n\n // TODO could just move clone and clone props to parent\n if (!React.isValidElement(overlay) && overlayCloneProps) {\n console.warn(\n 'PLEASE REPORT ISSUE @procore/core-react: OverlayTrigger TriggerOverlay is not a valid React element but wants to clone \"overlay\" with props. Cannot pass props to the element.'\n )\n }\n\n const shownStyles: React.CSSProperties = {\n ...overlayStyle,\n left: isPositioned ? overlayStyle.left : '-99999px',\n top: isPositioned ? overlayStyle.top : '-99999px',\n }\n\n return (\n <FocusScope\n autoFocus={autoFocus}\n contain={containFocus}\n restoreFocus={restoreFocus}\n >\n <div\n data-qa=\"core-overlay-trigger-overlay-wrapper\"\n ref={mergedRefs}\n style={shownStyles}\n {...wrapperProps}\n >\n {React.isValidElement(overlay)\n ? React.cloneElement(overlay, overlayCloneProps)\n : overlay}\n {arrow && (\n <Arrow\n ref={arrowRef}\n arrow={middlewareData.arrow}\n placement={currentPlacement}\n />\n )}\n </div>\n </FocusScope>\n )\n})\n"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { CloseOnFocus as UNSAFE_CloseOnFocus, OverlayTrigger, useOverlayTriggerContext as UNSAFE_useOverlayTriggerContext, } from './OverlayTrigger';
|
|
1
|
+
export { CloseOnFocus as UNSAFE_CloseOnFocus, OverlayTrigger, OVERLAY_AVAILABLE_HEIGHT_VAR, useOverlayTriggerContext as UNSAFE_useOverlayTriggerContext, } from './OverlayTrigger';
|
|
2
2
|
export type { OverlayTriggerProps } from './OverlayTrigger.types';
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { CloseOnFocus as UNSAFE_CloseOnFocus, OverlayTrigger, useOverlayTriggerContext as UNSAFE_useOverlayTriggerContext } from './OverlayTrigger';
|
|
1
|
+
export { CloseOnFocus as UNSAFE_CloseOnFocus, OverlayTrigger, OVERLAY_AVAILABLE_HEIGHT_VAR, useOverlayTriggerContext as UNSAFE_useOverlayTriggerContext } from './OverlayTrigger';
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["CloseOnFocus","UNSAFE_CloseOnFocus","OverlayTrigger","useOverlayTriggerContext","UNSAFE_useOverlayTriggerContext"],"sources":["../../src/OverlayTrigger/index.ts"],"sourcesContent":["export {\n CloseOnFocus as UNSAFE_CloseOnFocus,\n OverlayTrigger,\n useOverlayTriggerContext as UNSAFE_useOverlayTriggerContext,\n} from './OverlayTrigger'\nexport type { OverlayTriggerProps } from './OverlayTrigger.types'\n"],"mappings":"AAAA,SACEA,YAAY,IAAIC,mBAAmB,EACnCC,cAAc,EACdC,wBAAwB,IAAIC,+BAA+B,QACtD,kBAAkB"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["CloseOnFocus","UNSAFE_CloseOnFocus","OverlayTrigger","OVERLAY_AVAILABLE_HEIGHT_VAR","useOverlayTriggerContext","UNSAFE_useOverlayTriggerContext"],"sources":["../../src/OverlayTrigger/index.ts"],"sourcesContent":["export {\n CloseOnFocus as UNSAFE_CloseOnFocus,\n OverlayTrigger,\n OVERLAY_AVAILABLE_HEIGHT_VAR,\n useOverlayTriggerContext as UNSAFE_useOverlayTriggerContext,\n} from './OverlayTrigger'\nexport type { OverlayTriggerProps } from './OverlayTrigger.types'\n"],"mappings":"AAAA,SACEA,YAAY,IAAIC,mBAAmB,EACnCC,cAAc,EACdC,4BAA4B,EAC5BC,wBAAwB,IAAIC,+BAA+B,QACtD,kBAAkB"}
|