@procore/core-react 12.48.1 → 12.49.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +23 -0
- package/dist/AnchorNavigation/AnchorNavigation.styles.js +4 -4
- package/dist/Avatar/Avatar.styles.js +5 -5
- package/dist/AvatarStack/AvatarStack.js +3 -3
- package/dist/AvatarStack/AvatarStack.js.map +1 -1
- package/dist/AvatarStack/AvatarStack.styles.d.ts +2 -0
- package/dist/AvatarStack/AvatarStack.styles.js +14 -9
- package/dist/AvatarStack/AvatarStack.styles.js.map +1 -1
- package/dist/Badge/Badge.d.ts +19 -0
- package/dist/Badge/Badge.js +20 -0
- package/dist/Badge/Badge.js.map +1 -1
- package/dist/Badge/Badge.styles.js +2 -2
- package/dist/BadgePill/BadgePill.styles.js +4 -4
- package/dist/Banner/Banner.styles.js +10 -10
- package/dist/Box/Box.styles.js +1 -1
- package/dist/Breadcrumbs/Breadcrumbs.styles.js +4 -4
- package/dist/Button/Button.styles.js +5 -5
- package/dist/Calendar/Calendar.styles.js +9 -9
- package/dist/Card/Card.styles.js +1 -1
- package/dist/Checkbox/Checkbox.js +9 -2
- package/dist/Checkbox/Checkbox.js.map +1 -1
- package/dist/Checkbox/Checkbox.styles.js +7 -7
- package/dist/Checkbox/Checkbox.styles.js.map +1 -1
- package/dist/ContactItem/ContactItem.styles.js +5 -5
- package/dist/Content/Content.styles.js +2 -2
- package/dist/DateInput/DateInput.styles.js +6 -6
- package/dist/DetailPage/DetailPage.js +1 -0
- package/dist/DetailPage/DetailPage.js.map +1 -1
- package/dist/DetailPage/DetailPage.styles.js +7 -7
- package/dist/Dropdown/Dropdown.styles.js +3 -3
- package/dist/DropdownFlyout/DropdownFlyout.styles.js +4 -4
- package/dist/Dropzone/Dropzone.js +1 -1
- package/dist/Dropzone/Dropzone.styles.js +9 -9
- package/dist/EmptyState/EmptyState.styles.js +6 -6
- package/dist/Field/Field.styles.js +3 -3
- package/dist/FileList/FileList.styles.js +3 -3
- package/dist/FileSelect/FileExplorer/FileExplorer.styles.js +9 -9
- package/dist/FileSelect/FileExplorer/FileExplorerSidebar.styles.js +3 -3
- package/dist/FileSelect/FileSelect.styles.js +2 -2
- package/dist/FileSelect/FileSelectDropzone/FileSelectDropzone.styles.js +3 -3
- package/dist/FileSelect/FileTokenList/FileTokenList.styles.js +2 -2
- package/dist/FileSelect/GridSource/GridSource.styles.js +6 -6
- package/dist/FileSelect/LocalSource/LocalSource.styles.js +4 -4
- package/dist/FileSelect/SourceItem/SourceItem.styles.js +3 -3
- package/dist/FileSelect/ThumbnailList/ThumbnailList.styles.js +6 -6
- package/dist/FileSelect/TreeSource/TreeSource.styles.js +1 -1
- package/dist/FileToken/FileToken.styles.js +6 -6
- package/dist/FilterToken/FilterToken.styles.js +5 -5
- package/dist/FlexList/FlexList.styles.js +1 -1
- package/dist/Form/Form.styles.js +13 -13
- package/dist/Form/StyledFormikForm.styles.js +2 -2
- package/dist/GhostPlaceholder/GhostPlaceholder.styles.js +2 -2
- package/dist/Grid/Grid.styles.js +2 -2
- package/dist/GroupSelect/GroupSelect.styles.js +1 -1
- package/dist/Input/Input.styles.js +1 -1
- package/dist/Link/Link.styles.js +1 -1
- package/dist/ListPage/ListPage.d.ts +25 -1
- package/dist/ListPage/ListPage.js +25 -1
- package/dist/ListPage/ListPage.js.map +1 -1
- package/dist/ListPage/ListPage.styles.js +8 -8
- package/dist/Loader/Loader.styles.js +2 -2
- package/dist/MenuImperative/MenuImperative.styles.js +11 -11
- package/dist/Modal/Modal.styles.js +13 -13
- package/dist/MultiSelect/MultiSelect.styles.js +8 -8
- package/dist/NextMenu/NextMenu.styles.js +3 -3
- package/dist/NextTile/NextTile.styles.js +5 -5
- package/dist/Notation/Notation.js +1 -1
- package/dist/NumberInput/NumberInput.js +48 -31
- package/dist/NumberInput/NumberInput.js.map +1 -1
- package/dist/NumberInput/NumberInput.styles.js +7 -7
- package/dist/NumberInput/NumberInput.types.d.ts +14 -0
- package/dist/NumberInput/NumberInput.types.js.map +1 -1
- package/dist/NumberInput/NumberInput.utils.d.ts +1 -0
- package/dist/NumberInput/NumberInput.utils.js +6 -0
- package/dist/NumberInput/NumberInput.utils.js.map +1 -1
- package/dist/Overlay/OverlayArrow.styles.js +1 -1
- package/dist/OverlayTrigger/OverlayTrigger.d.ts +1 -0
- package/dist/OverlayTrigger/OverlayTrigger.js +10 -6
- package/dist/OverlayTrigger/OverlayTrigger.js.map +1 -1
- package/dist/OverlayTrigger/index.d.ts +1 -1
- package/dist/OverlayTrigger/index.js +1 -1
- package/dist/OverlayTrigger/index.js.map +1 -1
- package/dist/PageLayout/PageLayout.d.ts +4 -3
- package/dist/PageLayout/PageLayout.js +26 -8
- package/dist/PageLayout/PageLayout.js.map +1 -1
- package/dist/PageLayout/PageLayout.styles.d.ts +6 -1
- package/dist/PageLayout/PageLayout.styles.js +30 -21
- package/dist/PageLayout/PageLayout.styles.js.map +1 -1
- package/dist/PageLayout/PageLayout.types.d.ts +19 -0
- package/dist/PageLayout/PageLayout.types.js.map +1 -1
- package/dist/PageLayout/index.d.ts +1 -1
- package/dist/PageLayout/index.js.map +1 -1
- package/dist/PageTemplate/PageFooterTemplate/PageFooterTemplate.styles.js +1 -1
- package/dist/PageTemplate/PageHeaderTemplate/PageHeaderTemplate.styles.js +3 -3
- package/dist/PageTemplate/PagePaneTemplate/PagePaneTemplate.styles.js +2 -2
- package/dist/PageTemplate/PageTemplate/PageTemplate.styles.d.ts +2 -2
- package/dist/PageTemplate/PageTemplate/PageTemplate.styles.js +3 -3
- package/dist/Pagination/Pagination.styles.js +5 -5
- package/dist/Panel/Panel.styles.js +11 -11
- package/dist/Pill/Pill.styles.js +3 -3
- package/dist/PillSelect/PillSelect.styles.js +4 -4
- package/dist/Popover/Popover.styles.js +2 -2
- package/dist/Portal/Portal.styles.js +1 -1
- package/dist/ProgressBar/ProgressBar.styles.js +2 -2
- package/dist/RadioButton/RadioButton.styles.js +3 -3
- package/dist/Required/Required.styles.js +3 -3
- package/dist/Search/Search.js +2 -5
- package/dist/Search/Search.js.map +1 -1
- package/dist/Search/Search.styles.js +5 -5
- package/dist/Section/Section.styles.js +7 -7
- package/dist/SegmentedController/SegmentedController.styles.js +4 -4
- package/dist/Select/Select.styles.js +8 -8
- package/dist/Semantic/Semantic.styles.js +9 -9
- package/dist/SettingsPage/SettingsPage.d.ts +1 -1
- package/dist/SettingsPage/SettingsPage.js +1 -0
- package/dist/SettingsPage/SettingsPage.js.map +1 -1
- package/dist/Slider/Slider.styles.js +5 -5
- package/dist/Spinner/Spinner.styles.js +7 -7
- package/dist/SplitViewCard/SplitViewCard.styles.js +8 -8
- package/dist/SuperSelect/SuperSelect.presets.styles.js +1 -1
- package/dist/SuperSelect/SuperSelect.styles.js +40 -40
- package/dist/Switch/Switch.styles.js +5 -5
- package/dist/Switch/Switch.styles.js.map +1 -1
- package/dist/Table/Table.styles.js +29 -29
- package/dist/TableShelf/TableShelf.styles.js +5 -5
- package/dist/Tabs/Tabs.styles.js +16 -16
- package/dist/Tearsheet/Tearsheet.styles.js +5 -5
- package/dist/TextArea/TextArea.styles.js +1 -1
- package/dist/TextEditorOutput/TextEditorOutput.styles.js +1 -1
- package/dist/Thumbnail/Thumbnail.hooks.d.ts +1 -0
- package/dist/Thumbnail/Thumbnail.styles.js +21 -21
- package/dist/ThumbnailGrid/ThumbnailGrid.styles.js +7 -7
- package/dist/TieredSelect/TieredSelect.styles.js +9 -9
- package/dist/Tile/Tile.styles.js +8 -8
- package/dist/Title/Title.styles.js +7 -7
- package/dist/Toast/Toast.js +15 -6
- package/dist/Toast/Toast.js.map +1 -1
- package/dist/Toast/Toast.styles.js +5 -5
- package/dist/Toast/Toast.styles.js.map +1 -1
- package/dist/ToggleButton/ToggleButton.styles.js +1 -1
- package/dist/Token/Token.styles.js +5 -5
- package/dist/ToolHeader/ToolHeader.d.ts +34 -5
- package/dist/ToolHeader/ToolHeader.js +34 -5
- package/dist/ToolHeader/ToolHeader.js.map +1 -1
- package/dist/ToolHeader/ToolHeader.styles.js +6 -6
- package/dist/ToolLandingPage/ToolLandingPage.js +1 -0
- package/dist/ToolLandingPage/ToolLandingPage.js.map +1 -1
- package/dist/ToolLandingPage/ToolLandingPage.styles.js +3 -3
- package/dist/Tooltip/Tooltip.styles.js +3 -3
- package/dist/Tree/Tree.js +1 -1
- package/dist/Tree/Tree.styles.js +10 -10
- package/dist/Typeahead/Typeahead.js +8 -6
- package/dist/Typeahead/Typeahead.js.map +1 -1
- package/dist/Typeahead/Typeahead.styles.d.ts +4 -1
- package/dist/Typeahead/Typeahead.styles.js +15 -10
- package/dist/Typeahead/Typeahead.styles.js.map +1 -1
- package/dist/Typography/Typography.styles.js +1 -1
- package/dist/Typography/Typography.table.story.js +2 -2
- package/dist/_hooks/I18n.d.ts +4 -0
- package/dist/_locales/en.json +3 -1
- package/dist/_locales/pseudo.json +3 -1
- package/dist/_storyHelpers_/components/Deprecation.styles.js +1 -1
- package/dist/_storyHelpers_/components/StoryGrid.js +3 -3
- package/dist/_styles/colors.js +4 -1
- package/dist/_styles/colors.js.map +1 -1
- package/dist/_typedoc/AnchorNavigation/AnchorNavigation.types.json +4 -4
- package/dist/_typedoc/Avatar/Avatar.types.json +20 -20
- package/dist/_typedoc/AvatarStack/AvatarStack.types.json +25 -25
- package/dist/_typedoc/Badge/Badge.json +9 -0
- package/dist/_typedoc/Badge/Badge.types.json +6 -6
- package/dist/_typedoc/Banner/Banner.types.json +15 -15
- package/dist/_typedoc/Box/Box.types.json +68 -68
- package/dist/_typedoc/Breadcrumbs/Breadcrumbs.types.json +10 -10
- package/dist/_typedoc/Button/Button.types.json +14 -14
- package/dist/_typedoc/Calendar/Calendar.types.json +80 -80
- package/dist/_typedoc/Card/Card.types.json +6 -6
- package/dist/_typedoc/Checkbox/Checkbox.types.json +8 -8
- package/dist/_typedoc/ContactItem/ContactItem.types.json +9 -9
- package/dist/_typedoc/DateInput/DateInput.types.json +35 -35
- package/dist/_typedoc/DateSelect/DateSelect.types.json +14 -14
- package/dist/_typedoc/DetailPage/DetailPage.types.json +5 -5
- package/dist/_typedoc/Dropdown/Dropdown.types.json +38 -38
- package/dist/_typedoc/DropdownFlyout/DropdownFlyout.types.json +31 -31
- package/dist/_typedoc/Dropzone/Dropzone.types.json +44 -44
- package/dist/_typedoc/EmptyState/EmptyState.types.json +18 -18
- package/dist/_typedoc/FileList/FileList.types.json +9 -9
- package/dist/_typedoc/FileSelect/FileSelect.types.json +27 -27
- package/dist/_typedoc/FileSelect/GridSource/GridSource.types.json +20 -20
- package/dist/_typedoc/FileSelect/LocalSource/LocalSource.types.json +14 -14
- package/dist/_typedoc/FileSelect/TreeSource/TreeSource.types.json +9 -9
- package/dist/_typedoc/Flex/Flex.types.json +27 -27
- package/dist/_typedoc/FlexList/FlexList.types.json +30 -30
- package/dist/_typedoc/Form/Form.types.json +842 -762
- package/dist/_typedoc/GhostPlaceholder/GhostPlaceholder.types.json +12 -12
- package/dist/_typedoc/Grid/Grid.types.json +8 -8
- package/dist/_typedoc/GroupSelect/GroupSelect.types.json +54 -54
- package/dist/_typedoc/Input/Input.types.json +2 -2
- package/dist/_typedoc/Link/Link.types.json +1 -1
- package/dist/_typedoc/ListPage/ListPage.json +2 -2
- package/dist/_typedoc/ListPage/ListPage.types.json +13 -13
- package/dist/_typedoc/Menu/Menu.types.json +62 -62
- package/dist/_typedoc/MenuImperative/MenuImperative.types.json +84 -84
- package/dist/_typedoc/Modal/Modal.types.json +48 -48
- package/dist/_typedoc/MultiSelect/MultiSelect.types.json +33 -33
- package/dist/_typedoc/NextTile/NextTile.types.json +33 -33
- package/dist/_typedoc/Notation/Notation.types.json +4 -4
- package/dist/_typedoc/NumberInput/NumberInput.types.json +88 -48
- package/dist/_typedoc/OverlayTrigger/OverlayTrigger.types.json +33 -33
- package/dist/_typedoc/PageLayout/PageLayout.types.json +140 -28
- package/dist/_typedoc/Pagination/Pagination.types.json +7 -7
- package/dist/_typedoc/Panel/Panel.types.json +28 -28
- package/dist/_typedoc/Pill/Pill.types.json +2 -2
- package/dist/_typedoc/PillSelect/PillSelect.types.json +49 -49
- package/dist/_typedoc/Popover/Popover.types.json +15 -15
- package/dist/_typedoc/ProgressBar/ProgressBar.types.json +7 -7
- package/dist/_typedoc/RadioButton/RadioButton.types.json +6 -6
- package/dist/_typedoc/Required/Required.types.json +5 -5
- package/dist/_typedoc/Search/Search.types.json +18 -18
- package/dist/_typedoc/Section/Section.types.json +15 -15
- package/dist/_typedoc/SegmentedController/SegmentedController.types.json +21 -21
- package/dist/_typedoc/Select/Select.types.json +67 -67
- package/dist/_typedoc/SettingsPage/SettingsPage.types.json +10 -10
- package/dist/_typedoc/Slider/Slider.types.json +6 -6
- package/dist/_typedoc/Spinner/Spinner.types.json +9 -9
- package/dist/_typedoc/SplitViewCard/SplitViewCard.types.json +14 -14
- package/dist/_typedoc/Table/Table.types.json +105 -105
- package/dist/_typedoc/Tabs/Tabs.types.json +21 -21
- package/dist/_typedoc/Tearsheet/Tearsheet.types.json +17 -17
- package/dist/_typedoc/TextArea/TextArea.types.json +3 -3
- package/dist/_typedoc/TextEditor/TextEditor.types.json +11 -11
- package/dist/_typedoc/TextEditorOutput/TextEditorOutput.types.json +4 -4
- package/dist/_typedoc/Thumbnail/Thumbnail.types.json +19 -19
- package/dist/_typedoc/TieredDropdown/TieredDropdown.types.json +43 -43
- package/dist/_typedoc/TieredSelect/TieredSelect.types.json +29 -29
- package/dist/_typedoc/Tile/Tile.types.json +8 -8
- package/dist/_typedoc/Title/Title.types.json +1 -1
- package/dist/_typedoc/Toast/Toast.types.json +4 -4
- package/dist/_typedoc/ToggleButton/ToggleButton.types.json +4 -4
- package/dist/_typedoc/Token/Token.types.json +7 -7
- package/dist/_typedoc/ToolHeader/ToolHeader.json +2 -2
- package/dist/_typedoc/ToolHeader/ToolHeader.types.json +10 -10
- package/dist/_typedoc/ToolLandingPage/ToolLandingPage.types.json +8 -8
- package/dist/_typedoc/Tooltip/Tooltip.types.json +15 -15
- package/dist/_typedoc/Tree/Tree.types.json +88 -88
- package/dist/_typedoc/Typeahead/Typeahead.types.json +2 -2
- package/dist/_typedoc/Typography/Typography.types.json +9 -9
- package/dist/_typedoc/_utils/types.json +3 -3
- package/dist/_typedoc/a11y-tips.json +1 -1
- package/dist/_typedoc/deprecations.json +1 -1
- package/dist/_utils/propsTypedoc.d.ts +1 -0
- package/dist/_utils/propsTypedoc.js +1 -0
- package/dist/_utils/propsTypedoc.js.map +1 -1
- package/package.json +3 -3
|
@@ -1 +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":"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"}
|
|
@@ -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"}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import type { GridProps } from '../Grid/Grid.types';
|
|
3
3
|
import type { Props } from '../_utils/types';
|
|
4
|
-
import type { PageAsideProps, PageBodyNavigationProps,
|
|
4
|
+
import type { PageAsideProps, PageBodyNavigationProps, PageBodyProps, PageFooterProps, PageHeaderProps, PageMainProps, PageProps } from './PageLayout.types';
|
|
5
5
|
export declare const PageContext: React.Context<{
|
|
6
6
|
bodyRef: React.RefObject<HTMLDivElement>;
|
|
7
7
|
footerRef: React.RefObject<HTMLDivElement>;
|
|
8
8
|
containerRef: React.RefObject<HTMLDivElement>;
|
|
9
9
|
navigationRef: React.RefObject<HTMLUListElement>;
|
|
10
|
+
fillHeight: boolean;
|
|
10
11
|
aside: {
|
|
11
12
|
open: () => Promise<void>;
|
|
12
13
|
close: () => Promise<void>;
|
|
@@ -64,14 +65,14 @@ export declare const PageBodyNavigation: React.ForwardRefExoticComponent<PageBod
|
|
|
64
65
|
- Page.Aside
|
|
65
66
|
Other helpers, such as Page.Grid, Page.Row and Page.Column are thin wrappers over Grid components and share the same API.
|
|
66
67
|
*/
|
|
67
|
-
export declare const Page: React.ForwardRefExoticComponent<
|
|
68
|
+
export declare const Page: React.ForwardRefExoticComponent<PageProps & React.RefAttributes<HTMLDivElement>> & {
|
|
68
69
|
Header: React.ForwardRefExoticComponent<PageHeaderProps & React.RefAttributes<HTMLDivElement>>;
|
|
69
70
|
Banner: React.ForwardRefExoticComponent<Props & React.RefAttributes<HTMLDivElement>>;
|
|
70
71
|
Breadcrumbs: React.ForwardRefExoticComponent<Props & React.RefAttributes<HTMLDivElement>>;
|
|
71
72
|
Title: React.ForwardRefExoticComponent<Props & React.RefAttributes<HTMLDivElement>>;
|
|
72
73
|
Tabs: React.ForwardRefExoticComponent<Props & React.RefAttributes<HTMLDivElement>>;
|
|
73
74
|
Footer: React.ForwardRefExoticComponent<PageFooterProps & React.RefAttributes<HTMLDivElement>>;
|
|
74
|
-
Body: React.ForwardRefExoticComponent<
|
|
75
|
+
Body: React.ForwardRefExoticComponent<PageBodyProps & React.RefAttributes<HTMLDivElement>>;
|
|
75
76
|
Main: React.ForwardRefExoticComponent<PageMainProps & React.RefAttributes<HTMLDivElement>>;
|
|
76
77
|
Aside: React.ForwardRefExoticComponent<PageAsideProps & React.RefAttributes<HTMLDivElement>>;
|
|
77
78
|
/**
|
|
@@ -3,7 +3,9 @@ var _excluded = ["gutterX"],
|
|
|
3
3
|
_excluded2 = ["transparent"],
|
|
4
4
|
_excluded3 = ["children"],
|
|
5
5
|
_excluded4 = ["minSections"],
|
|
6
|
-
_excluded5 = ["children", "open", "focusOnOpen", "restoreFocusOnClose"]
|
|
6
|
+
_excluded5 = ["children", "open", "focusOnOpen", "restoreFocusOnClose"],
|
|
7
|
+
_excluded6 = ["fillHeight"],
|
|
8
|
+
_excluded7 = ["flex"];
|
|
7
9
|
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
8
10
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
9
11
|
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
@@ -48,6 +50,7 @@ export var PageContext = /*#__PURE__*/React.createContext({
|
|
|
48
50
|
footerRef: /*#__PURE__*/React.createRef(),
|
|
49
51
|
containerRef: /*#__PURE__*/React.createRef(),
|
|
50
52
|
navigationRef: /*#__PURE__*/React.createRef(),
|
|
53
|
+
fillHeight: false,
|
|
51
54
|
aside: {
|
|
52
55
|
open: function open() {
|
|
53
56
|
return Promise.resolve();
|
|
@@ -144,12 +147,14 @@ export var PageBodyNavigation = /*#__PURE__*/React.forwardRef(function (_ref4, r
|
|
|
144
147
|
selected = _useAnchorNavigationC.selected,
|
|
145
148
|
onSelect = _useAnchorNavigationC.onSelect;
|
|
146
149
|
var sectionsLength = (_props$sections$lengt = (_props$sections = props.sections) === null || _props$sections === void 0 ? void 0 : _props$sections.length) !== null && _props$sections$lengt !== void 0 ? _props$sections$lengt : sections.length;
|
|
147
|
-
if (sectionsLength < minSections)
|
|
150
|
+
if (sectionsLength < minSections) {
|
|
151
|
+
return null;
|
|
152
|
+
}
|
|
148
153
|
return /*#__PURE__*/React.createElement(AnchorNavigation, _extends({
|
|
149
|
-
ref: mergeRefs(ref, navigationRef),
|
|
150
154
|
sections: (_props$sections2 = props.sections) !== null && _props$sections2 !== void 0 ? _props$sections2 : sections,
|
|
151
155
|
selected: (_props$selected = props.selected) !== null && _props$selected !== void 0 ? _props$selected : selected,
|
|
152
|
-
onSelect: (_props$onSelect = props.onSelect) !== null && _props$onSelect !== void 0 ? _props$onSelect : onSelect
|
|
156
|
+
onSelect: (_props$onSelect = props.onSelect) !== null && _props$onSelect !== void 0 ? _props$onSelect : onSelect,
|
|
157
|
+
ref: mergeRefs(ref, navigationRef)
|
|
153
158
|
}, props));
|
|
154
159
|
});
|
|
155
160
|
var PageFooter = /*#__PURE__*/React.forwardRef(function PageFooter(props, ref) {
|
|
@@ -227,7 +232,8 @@ var PageAside = /*#__PURE__*/React.forwardRef(function PageAside(_ref5, ref) {
|
|
|
227
232
|
_React$useContext5$as = _React$useContext5.aside,
|
|
228
233
|
contextIsOpen = _React$useContext5$as.isOpen,
|
|
229
234
|
open = _React$useContext5$as.open,
|
|
230
|
-
close = _React$useContext5$as.close
|
|
235
|
+
close = _React$useContext5$as.close,
|
|
236
|
+
fillHeight = _React$useContext5.fillHeight;
|
|
231
237
|
var _React$useContext6 = React.useContext(TearsheetContext),
|
|
232
238
|
tearsheetPlacement = _React$useContext6.placement,
|
|
233
239
|
addTearsheetListener = _React$useContext6.addListener;
|
|
@@ -371,6 +377,7 @@ var PageAside = /*#__PURE__*/React.forwardRef(function PageAside(_ref5, ref) {
|
|
|
371
377
|
}, /*#__PURE__*/React.createElement(StyledAsidePanel, {
|
|
372
378
|
ref: panelRef,
|
|
373
379
|
tabIndex: -1,
|
|
380
|
+
$fillHeight: fillHeight,
|
|
374
381
|
$offsetTop: topOffset,
|
|
375
382
|
$rightOffset: rightOffset,
|
|
376
383
|
$minusHeight: (topOffset !== null && topOffset !== void 0 ? topOffset : 0) + bottomOffset,
|
|
@@ -380,7 +387,9 @@ var PageAside = /*#__PURE__*/React.forwardRef(function PageAside(_ref5, ref) {
|
|
|
380
387
|
$altAnimation: tearsheetPlacement === 'left'
|
|
381
388
|
}, children)))) : null;
|
|
382
389
|
});
|
|
383
|
-
var PageContainer = /*#__PURE__*/React.forwardRef(function PageContainer(
|
|
390
|
+
var PageContainer = /*#__PURE__*/React.forwardRef(function PageContainer(_ref8, ref) {
|
|
391
|
+
var fillHeight = _ref8.fillHeight,
|
|
392
|
+
props = _objectWithoutProperties(_ref8, _excluded6);
|
|
384
393
|
var _React$useState11 = React.useState(defaultAsideIsOpen),
|
|
385
394
|
_React$useState12 = _slicedToArray(_React$useState11, 2),
|
|
386
395
|
isAsideOpen = _React$useState12[0],
|
|
@@ -403,6 +412,7 @@ var PageContainer = /*#__PURE__*/React.forwardRef(function PageContainer(props,
|
|
|
403
412
|
footerRef: footerRef,
|
|
404
413
|
containerRef: containerRef,
|
|
405
414
|
navigationRef: navigationRef,
|
|
415
|
+
fillHeight: !!fillHeight,
|
|
406
416
|
aside: {
|
|
407
417
|
open: openAside,
|
|
408
418
|
close: closeAside,
|
|
@@ -410,19 +420,27 @@ var PageContainer = /*#__PURE__*/React.forwardRef(function PageContainer(props,
|
|
|
410
420
|
}
|
|
411
421
|
}
|
|
412
422
|
}, /*#__PURE__*/React.createElement(StyledPageContainer, _extends({
|
|
413
|
-
"data-core-react": "page"
|
|
423
|
+
"data-core-react": "page",
|
|
424
|
+
$fillHeight: fillHeight
|
|
414
425
|
}, props, {
|
|
415
426
|
ref: mergeRefs(ref, containerRef)
|
|
416
427
|
})));
|
|
417
428
|
});
|
|
418
|
-
var PageMain = /*#__PURE__*/React.forwardRef(function PageMain(
|
|
429
|
+
var PageMain = /*#__PURE__*/React.forwardRef(function PageMain(_ref9, ref) {
|
|
430
|
+
var flex = _ref9.flex,
|
|
431
|
+
props = _objectWithoutProperties(_ref9, _excluded7);
|
|
419
432
|
var _React$useContext8 = React.useContext(TearsheetContext),
|
|
420
433
|
tearsheetPlacement = _React$useContext8.placement;
|
|
434
|
+
var _React$useContext9 = React.useContext(PageContext),
|
|
435
|
+
fillHeight = _React$useContext9.fillHeight;
|
|
436
|
+
var shouldFlex = fillHeight || flex;
|
|
421
437
|
var attrs = _defineProperty({}, pageLayoutRootDataAttr, true);
|
|
422
438
|
return /*#__PURE__*/React.createElement(Grid, {
|
|
423
439
|
gutterX: "lg"
|
|
424
440
|
}, /*#__PURE__*/React.createElement(StyledPageMain, _extends({}, props, attrs, {
|
|
425
441
|
ref: ref,
|
|
442
|
+
$flex: shouldFlex,
|
|
443
|
+
$fillHeight: fillHeight,
|
|
426
444
|
$tearsheetPlacement: tearsheetPlacement
|
|
427
445
|
})));
|
|
428
446
|
});
|