@procore/core-react 12.21.0 → 12.21.1

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.
Files changed (209) hide show
  1. package/README.md +2 -2
  2. package/dist/AnchorNavigation/AnchorNavigation.styles.js +3 -3
  3. package/dist/Avatar/Avatar.styles.js +5 -5
  4. package/dist/AvatarStack/AvatarStack.d.ts +1 -1
  5. package/dist/AvatarStack/AvatarStack.js +21 -18
  6. package/dist/AvatarStack/AvatarStack.js.map +1 -1
  7. package/dist/AvatarStack/AvatarStack.styles.js +7 -7
  8. package/dist/Badge/Badge.styles.js +2 -2
  9. package/dist/Banner/Banner.styles.js +10 -10
  10. package/dist/Box/Box.styles.js +1 -1
  11. package/dist/Breadcrumbs/Breadcrumbs.styles.js +4 -4
  12. package/dist/Button/Button.styles.js +5 -5
  13. package/dist/Calendar/Calendar.styles.js +8 -8
  14. package/dist/Card/Card.styles.js +1 -1
  15. package/dist/Checkbox/Checkbox.styles.js +6 -6
  16. package/dist/Checkbox/CheckboxTooltip.js +1 -1
  17. package/dist/ContactItem/ContactItem.styles.js +5 -5
  18. package/dist/Content/Content.styles.js +2 -2
  19. package/dist/DateInput/DateInput.styles.js +6 -6
  20. package/dist/DetailPage/DetailPage.styles.js +7 -7
  21. package/dist/Dropdown/Dropdown.styles.js +3 -3
  22. package/dist/DropdownFlyout/DropdownFlyout.styles.js +4 -4
  23. package/dist/Dropzone/Dropzone.js +1 -1
  24. package/dist/Dropzone/Dropzone.styles.js +9 -9
  25. package/dist/EmptyState/EmptyState.styles.js +6 -6
  26. package/dist/Field/Field.styles.js +3 -3
  27. package/dist/FileList/FileList.styles.js +4 -4
  28. package/dist/FileSelect/FileExplorer/FileExplorer.styles.js +9 -9
  29. package/dist/FileSelect/FileExplorer/FileExplorerSidebar.styles.js +3 -3
  30. package/dist/FileSelect/FileSelect.js +9 -1
  31. package/dist/FileSelect/FileSelect.js.map +1 -1
  32. package/dist/FileSelect/FileSelect.styles.js +2 -2
  33. package/dist/FileSelect/FileSelectDropzone/FileSelectDropzone.styles.js +3 -3
  34. package/dist/FileSelect/FileTokenList/FileTokenList.styles.js +2 -2
  35. package/dist/FileSelect/GridSource/GridSource.js +9 -1
  36. package/dist/FileSelect/GridSource/GridSource.js.map +1 -1
  37. package/dist/FileSelect/GridSource/GridSource.styles.js +6 -6
  38. package/dist/FileSelect/LocalSource/LocalSource.js +9 -1
  39. package/dist/FileSelect/LocalSource/LocalSource.js.map +1 -1
  40. package/dist/FileSelect/LocalSource/LocalSource.styles.js +4 -4
  41. package/dist/FileSelect/SourceItem/SourceItem.styles.js +3 -3
  42. package/dist/FileSelect/ThumbnailList/ThumbnailList.styles.js +6 -6
  43. package/dist/FileSelect/TreeSource/TreeSource.js +9 -1
  44. package/dist/FileSelect/TreeSource/TreeSource.js.map +1 -1
  45. package/dist/FileSelect/TreeSource/TreeSource.styles.js +1 -1
  46. package/dist/FileSelect/storyHelpers.js +9 -1
  47. package/dist/FileSelect/storyHelpers.js.map +1 -1
  48. package/dist/FileToken/FileToken.styles.js +4 -4
  49. package/dist/FilterToken/FilterToken.styles.js +5 -5
  50. package/dist/FlexList/FlexList.styles.js +1 -1
  51. package/dist/Form/Form.styles.js +14 -14
  52. package/dist/Form/StyledFormikForm.styles.js +2 -2
  53. package/dist/GhostPlaceholder/GhostPlaceholder.styles.js +2 -2
  54. package/dist/Grid/Grid.styles.js +2 -2
  55. package/dist/GroupSelect/GroupSelect.styles.js +1 -1
  56. package/dist/Input/Input.styles.js +1 -1
  57. package/dist/Link/Link.styles.js +1 -1
  58. package/dist/ListPage/ListPage.styles.js +8 -8
  59. package/dist/Loader/Loader.styles.js +2 -2
  60. package/dist/MenuImperative/MenuImperative.styles.js +10 -10
  61. package/dist/Modal/Modal.js +5 -1
  62. package/dist/Modal/Modal.js.map +1 -1
  63. package/dist/Modal/Modal.styles.js +13 -13
  64. package/dist/MultiSelect/MultiSelect.styles.js +6 -6
  65. package/dist/NextMenu/NextMenu.styles.js +3 -3
  66. package/dist/Notation/Notation.js +1 -1
  67. package/dist/NumberInput/NumberInput.styles.js +7 -7
  68. package/dist/NumberInput/NumberInput.utils.js +8 -0
  69. package/dist/NumberInput/NumberInput.utils.js.map +1 -1
  70. package/dist/Overlay/OverlayArrow.styles.js +1 -1
  71. package/dist/PageLayout/PageLayout.js +9 -1
  72. package/dist/PageLayout/PageLayout.js.map +1 -1
  73. package/dist/PageLayout/PageLayout.styles.js +16 -16
  74. package/dist/PageTemplate/PageFooterTemplate/PageFooterTemplate.styles.js +1 -1
  75. package/dist/PageTemplate/PageHeaderTemplate/PageHeaderTemplate.styles.js +3 -3
  76. package/dist/PageTemplate/PagePaneTemplate/PagePaneTemplate.styles.js +2 -2
  77. package/dist/PageTemplate/PageTemplate/PageTemplate.styles.js +3 -3
  78. package/dist/Pagination/Pagination.styles.js +5 -5
  79. package/dist/Panel/Panel.styles.js +11 -11
  80. package/dist/Pill/Pill.styles.js +2 -2
  81. package/dist/PillSelect/PillSelect.styles.js +4 -4
  82. package/dist/Popover/Popover.styles.js +2 -2
  83. package/dist/Portal/Portal.styles.js +1 -1
  84. package/dist/ProgressBar/ProgressBar.styles.js +2 -2
  85. package/dist/RadioButton/RadioButton.styles.js +3 -3
  86. package/dist/Required/Required.styles.js +3 -3
  87. package/dist/Search/Search.styles.js +5 -5
  88. package/dist/Search/Search.types.d.ts +2 -7
  89. package/dist/Search/Search.types.js.map +1 -1
  90. package/dist/Section/Section.styles.js +7 -7
  91. package/dist/SegmentedController/SegmentedController.styles.js +4 -4
  92. package/dist/Select/Select.styles.js +7 -7
  93. package/dist/Semantic/Semantic.styles.js +9 -9
  94. package/dist/Slider/Slider.styles.js +5 -5
  95. package/dist/Spinner/Spinner.styles.js +7 -7
  96. package/dist/SplitViewCard/SplitViewCard.styles.js +8 -8
  97. package/dist/SuperSelect/SuperSelect.presets.styles.js +1 -1
  98. package/dist/SuperSelect/SuperSelect.styles.js +37 -37
  99. package/dist/Switch/Switch.styles.js +4 -4
  100. package/dist/Table/Table.styles.js +28 -28
  101. package/dist/TableShelf/TableShelf.styles.js +5 -5
  102. package/dist/Tabs/Tabs.styles.js +15 -15
  103. package/dist/Tearsheet/Tearsheet.js +9 -1
  104. package/dist/Tearsheet/Tearsheet.js.map +1 -1
  105. package/dist/Tearsheet/Tearsheet.styles.js +5 -5
  106. package/dist/TextArea/TextArea.styles.js +1 -1
  107. package/dist/TextEditorOutput/TextEditorOutput.styles.js +1 -1
  108. package/dist/Thumbnail/Thumbnail.styles.js +17 -17
  109. package/dist/ThumbnailGrid/ThumbnailGrid.styles.js +7 -7
  110. package/dist/TieredSelect/TieredSelect.styles.js +9 -9
  111. package/dist/Tile/Tile.styles.js +8 -8
  112. package/dist/Title/Title.styles.js +7 -7
  113. package/dist/Toast/Toast.styles.js +3 -3
  114. package/dist/ToggleButton/ToggleButton.styles.js +1 -1
  115. package/dist/Token/Token.styles.js +3 -3
  116. package/dist/ToolHeader/ToolHeader.styles.js +6 -6
  117. package/dist/ToolLandingPage/ToolLandingPage.styles.js +3 -3
  118. package/dist/Tooltip/Tooltip.styles.js +2 -2
  119. package/dist/Tree/Tree.hooks.js +9 -1
  120. package/dist/Tree/Tree.hooks.js.map +1 -1
  121. package/dist/Tree/Tree.styles.js +9 -9
  122. package/dist/Typeahead/Typeahead.styles.js +3 -3
  123. package/dist/Typography/Typography.styles.js +1 -1
  124. package/dist/Typography/Typography.table.story.js +2 -2
  125. package/dist/_hooks/useFileUploader.js +8 -1
  126. package/dist/_hooks/useFileUploader.js.map +1 -1
  127. package/dist/_typedoc/AnchorNavigation/AnchorNavigation.types.json +3 -3
  128. package/dist/_typedoc/Avatar/Avatar.types.json +20 -20
  129. package/dist/_typedoc/AvatarStack/AvatarStack.types.json +24 -24
  130. package/dist/_typedoc/Badge/Badge.types.json +6 -6
  131. package/dist/_typedoc/Banner/Banner.types.json +13 -13
  132. package/dist/_typedoc/Box/Box.types.json +68 -68
  133. package/dist/_typedoc/Breadcrumbs/Breadcrumbs.types.json +10 -10
  134. package/dist/_typedoc/Button/Button.types.json +13 -13
  135. package/dist/_typedoc/Calendar/Calendar.types.json +80 -80
  136. package/dist/_typedoc/Card/Card.types.json +6 -6
  137. package/dist/_typedoc/Checkbox/Checkbox.types.json +9 -9
  138. package/dist/_typedoc/ContactItem/ContactItem.types.json +9 -9
  139. package/dist/_typedoc/DateInput/DateInput.types.json +35 -35
  140. package/dist/_typedoc/DateSelect/DateSelect.types.json +13 -13
  141. package/dist/_typedoc/DetailPage/DetailPage.types.json +5 -5
  142. package/dist/_typedoc/Dropdown/Dropdown.types.json +37 -37
  143. package/dist/_typedoc/DropdownFlyout/DropdownFlyout.types.json +29 -29
  144. package/dist/_typedoc/Dropzone/Dropzone.types.json +44 -44
  145. package/dist/_typedoc/EmptyState/EmptyState.types.json +16 -16
  146. package/dist/_typedoc/FileList/FileList.types.json +9 -9
  147. package/dist/_typedoc/FileSelect/FileSelect.types.json +27 -27
  148. package/dist/_typedoc/FileSelect/GridSource/GridSource.types.json +20 -20
  149. package/dist/_typedoc/FileSelect/LocalSource/LocalSource.types.json +14 -14
  150. package/dist/_typedoc/FileSelect/TreeSource/TreeSource.types.json +9 -9
  151. package/dist/_typedoc/Flex/Flex.types.json +27 -27
  152. package/dist/_typedoc/FlexList/FlexList.types.json +30 -30
  153. package/dist/_typedoc/Form/Form.types.json +741 -741
  154. package/dist/_typedoc/GhostPlaceholder/GhostPlaceholder.types.json +12 -12
  155. package/dist/_typedoc/Grid/Grid.types.json +8 -8
  156. package/dist/_typedoc/GroupSelect/GroupSelect.types.json +52 -52
  157. package/dist/_typedoc/Input/Input.types.json +2 -2
  158. package/dist/_typedoc/Link/Link.types.json +4 -4
  159. package/dist/_typedoc/ListPage/ListPage.types.json +13 -13
  160. package/dist/_typedoc/Menu/Menu.types.json +62 -62
  161. package/dist/_typedoc/MenuImperative/MenuImperative.types.json +74 -74
  162. package/dist/_typedoc/Modal/Modal.types.json +46 -46
  163. package/dist/_typedoc/MultiSelect/MultiSelect.types.json +31 -31
  164. package/dist/_typedoc/Notation/Notation.types.json +4 -4
  165. package/dist/_typedoc/NumberInput/NumberInput.types.json +37 -37
  166. package/dist/_typedoc/OverlayTrigger/OverlayTrigger.types.json +31 -31
  167. package/dist/_typedoc/PageLayout/PageLayout.types.json +29 -29
  168. package/dist/_typedoc/Pagination/Pagination.types.json +7 -7
  169. package/dist/_typedoc/Panel/Panel.types.json +28 -28
  170. package/dist/_typedoc/Pill/Pill.types.json +2 -2
  171. package/dist/_typedoc/PillSelect/PillSelect.types.json +49 -49
  172. package/dist/_typedoc/Popover/Popover.types.json +15 -15
  173. package/dist/_typedoc/ProgressBar/ProgressBar.types.json +6 -6
  174. package/dist/_typedoc/RadioButton/RadioButton.types.json +6 -6
  175. package/dist/_typedoc/Required/Required.types.json +5 -5
  176. package/dist/_typedoc/Search/Search.types.json +20 -32
  177. package/dist/_typedoc/Section/Section.types.json +15 -15
  178. package/dist/_typedoc/SegmentedController/SegmentedController.types.json +21 -21
  179. package/dist/_typedoc/Select/Select.types.json +60 -60
  180. package/dist/_typedoc/SettingsPage/SettingsPage.types.json +10 -10
  181. package/dist/_typedoc/Slider/Slider.types.json +6 -6
  182. package/dist/_typedoc/Spinner/Spinner.types.json +9 -9
  183. package/dist/_typedoc/SplitViewCard/SplitViewCard.types.json +12 -12
  184. package/dist/_typedoc/Switch/Switch.types.json +3 -3
  185. package/dist/_typedoc/Table/Table.types.json +101 -101
  186. package/dist/_typedoc/Tabs/Tabs.types.json +20 -20
  187. package/dist/_typedoc/Tearsheet/Tearsheet.types.json +17 -17
  188. package/dist/_typedoc/TextArea/TextArea.types.json +3 -3
  189. package/dist/_typedoc/TextEditor/TextEditor.types.json +9 -9
  190. package/dist/_typedoc/TextEditorOutput/TextEditorOutput.types.json +4 -4
  191. package/dist/_typedoc/Thumbnail/Thumbnail.types.json +19 -19
  192. package/dist/_typedoc/TieredDropdown/TieredDropdown.types.json +42 -42
  193. package/dist/_typedoc/TieredSelect/TieredSelect.types.json +28 -28
  194. package/dist/_typedoc/Tile/Tile.types.json +30 -30
  195. package/dist/_typedoc/Title/Title.types.json +1 -1
  196. package/dist/_typedoc/Toast/Toast.types.json +4 -4
  197. package/dist/_typedoc/ToggleButton/ToggleButton.types.json +4 -4
  198. package/dist/_typedoc/Token/Token.types.json +4 -4
  199. package/dist/_typedoc/ToolHeader/ToolHeader.types.json +10 -10
  200. package/dist/_typedoc/ToolLandingPage/ToolLandingPage.types.json +7 -7
  201. package/dist/_typedoc/Tooltip/Tooltip.types.json +13 -13
  202. package/dist/_typedoc/Tree/Tree.types.json +86 -86
  203. package/dist/_typedoc/Typeahead/Typeahead.types.json +2 -2
  204. package/dist/_typedoc/Typography/Typography.types.json +9 -9
  205. package/dist/_typedoc/_utils/types.json +3 -3
  206. package/dist/_typedoc/deprecations.json +1 -1
  207. package/dist/_utils/runInQueue.js +9 -1
  208. package/dist/_utils/runInQueue.js.map +1 -1
  209. package/package.json +1 -5
@@ -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","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 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\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","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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"}
@@ -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-12_21_0__sc-1epxw7u-0"
5
+ componentId: "core-12_21_1__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
@@ -7,7 +7,15 @@ var _excluded = ["gutterX"],
7
7
  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
8
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
9
9
  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); }
10
- function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return r; }; var t, r = {}, e = Object.prototype, n = e.hasOwnProperty, o = "function" == typeof Symbol ? Symbol : {}, i = o.iterator || "@@iterator", a = o.asyncIterator || "@@asyncIterator", u = o.toStringTag || "@@toStringTag"; function c(t, r, e, n) { Object.defineProperty(t, r, { value: e, enumerable: !n, configurable: !n, writable: !n }); } try { c({}, ""); } catch (t) { c = function c(t, r, e) { return t[r] = e; }; } function h(r, e, n, o) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype); return c(a, "_invoke", function (r, e, n) { var o = 1; return function (i, a) { if (3 === o) throw Error("Generator is already running"); if (4 === o) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var u = n.delegate; if (u) { var c = d(u, n); if (c) { if (c === f) continue; return c; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (1 === o) throw o = 4, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = 3; var h = s(r, e, n); if ("normal" === h.type) { if (o = n.done ? 4 : 2, h.arg === f) continue; return { value: h.arg, done: n.done }; } "throw" === h.type && (o = 4, n.method = "throw", n.arg = h.arg); } }; }(r, n, new Context(o || [])), !0), a; } function s(t, r, e) { try { return { type: "normal", arg: t.call(r, e) }; } catch (t) { return { type: "throw", arg: t }; } } r.wrap = h; var f = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var l = {}; c(l, i, function () { return this; }); var p = Object.getPrototypeOf, y = p && p(p(x([]))); y && y !== e && n.call(y, i) && (l = y); var v = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(l); function g(t) { ["next", "throw", "return"].forEach(function (r) { c(t, r, function (t) { return this._invoke(r, t); }); }); } function AsyncIterator(t, r) { function e(o, i, a, u) { var c = s(t[o], t, i); if ("throw" !== c.type) { var h = c.arg, f = h.value; return f && "object" == _typeof(f) && n.call(f, "__await") ? r.resolve(f.__await).then(function (t) { e("next", t, a, u); }, function (t) { e("throw", t, a, u); }) : r.resolve(f).then(function (t) { h.value = t, a(h); }, function (t) { return e("throw", t, a, u); }); } u(c.arg); } var o; c(this, "_invoke", function (t, n) { function i() { return new r(function (r, o) { e(t, n, r, o); }); } return o = o ? o.then(i, i) : i(); }, !0); } function d(r, e) { var n = e.method, o = r.i[n]; if (o === t) return e.delegate = null, "throw" === n && r.i["return"] && (e.method = "return", e.arg = t, d(r, e), "throw" === e.method) || "return" !== n && (e.method = "throw", e.arg = new TypeError("The iterator does not provide a '" + n + "' method")), f; var i = s(o, r.i, e.arg); if ("throw" === i.type) return e.method = "throw", e.arg = i.arg, e.delegate = null, f; var a = i.arg; return a ? a.done ? (e[r.r] = a.value, e.next = r.n, "return" !== e.method && (e.method = "next", e.arg = t), e.delegate = null, f) : a : (e.method = "throw", e.arg = new TypeError("iterator result is not an object"), e.delegate = null, f); } function w(t) { this.tryEntries.push(t); } function m(r) { var e = r[4] || {}; e.type = "normal", e.arg = t, r[4] = e; } function Context(t) { this.tryEntries = [[-1]], t.forEach(w, this), this.reset(!0); } function x(r) { if (null != r) { var e = r[i]; if (e) return e.call(r); if ("function" == typeof r.next) return r; if (!isNaN(r.length)) { var o = -1, a = function e() { for (; ++o < r.length;) if (n.call(r, o)) return e.value = r[o], e.done = !1, e; return e.value = t, e.done = !0, e; }; return a.next = a; } } throw new TypeError(_typeof(r) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, c(v, "constructor", GeneratorFunctionPrototype), c(GeneratorFunctionPrototype, "constructor", GeneratorFunction), c(GeneratorFunctionPrototype, u, GeneratorFunction.displayName = "GeneratorFunction"), r.isGeneratorFunction = function (t) { var r = "function" == typeof t && t.constructor; return !!r && (r === GeneratorFunction || "GeneratorFunction" === (r.displayName || r.name)); }, r.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, c(t, u, "GeneratorFunction")), t.prototype = Object.create(v), t; }, r.awrap = function (t) { return { __await: t }; }, g(AsyncIterator.prototype), c(AsyncIterator.prototype, a, function () { return this; }), r.AsyncIterator = AsyncIterator, r.async = function (t, e, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(h(t, e, n, o), i); return r.isGeneratorFunction(e) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, g(v), c(v, u, "Generator"), c(v, i, function () { return this; }), c(v, "toString", function () { return "[object Generator]"; }), r.keys = function (t) { var r = Object(t), e = []; for (var n in r) e.unshift(n); return function t() { for (; e.length;) if ((n = e.pop()) in r) return t.value = n, t.done = !1, t; return t.done = !0, t; }; }, r.values = x, Context.prototype = { constructor: Context, reset: function reset(r) { if (this.prev = this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(m), !r) for (var e in this) "t" === e.charAt(0) && n.call(this, e) && !isNaN(+e.slice(1)) && (this[e] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0][4]; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(r) { if (this.done) throw r; var e = this; function n(t) { a.type = "throw", a.arg = r, e.next = t; } for (var o = e.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i[4], u = this.prev, c = i[1], h = i[2]; if (-1 === i[0]) return n("end"), !1; if (!c && !h) throw Error("try statement without catch or finally"); if (null != i[0] && i[0] <= u) { if (u < c) return this.method = "next", this.arg = t, n(c), !0; if (u < h) return n(h), !1; } } }, abrupt: function abrupt(t, r) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var n = this.tryEntries[e]; if (n[0] > -1 && n[0] <= this.prev && this.prev < n[2]) { var o = n; break; } } o && ("break" === t || "continue" === t) && o[0] <= r && r <= o[2] && (o = null); var i = o ? o[4] : {}; return i.type = t, i.arg = r, o ? (this.method = "next", this.next = o[2], f) : this.complete(i); }, complete: function complete(t, r) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && r && (this.next = r), f; }, finish: function finish(t) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var e = this.tryEntries[r]; if (e[2] === t) return this.complete(e[4], e[3]), m(e), f; } }, "catch": function _catch(t) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var e = this.tryEntries[r]; if (e[0] === t) { var n = e[4]; if ("throw" === n.type) { var o = n.arg; m(e); } return o; } } throw Error("illegal catch attempt"); }, delegateYield: function delegateYield(r, e, n) { return this.delegate = { i: x(r), r: e, n: n }, "next" === this.method && (this.arg = t), f; } }, r; }
10
+ function _regeneratorRuntime() { "use strict"; var r = _regenerator(), e = r.m(_regeneratorRuntime), t = (Object.getPrototypeOf ? Object.getPrototypeOf(e) : e.__proto__).constructor; function n(r) { var e = "function" == typeof r && r.constructor; return !!e && (e === t || "GeneratorFunction" === (e.displayName || e.name)); } var o = { "throw": 1, "return": 2, "break": 3, "continue": 3 }; function a(r) { var e, t; return function (n) { e || (e = { stop: function stop() { return t(n.a, 2); }, "catch": function _catch() { return n.v; }, abrupt: function abrupt(r, e) { return t(n.a, o[r], e); }, delegateYield: function delegateYield(r, o, a) { return e.resultName = o, t(n.d, _regeneratorValues(r), a); }, finish: function finish(r) { return t(n.f, r); } }, t = function t(r, _t, o) { n.p = e.prev, n.n = e.next; try { return r(_t, o); } finally { e.next = n.n; } }), e.resultName && (e[e.resultName] = n.v, e.resultName = void 0), e.sent = n.v, e.next = n.n; try { return r.call(this, e); } finally { n.p = e.prev, n.n = e.next; } }; } return (_regeneratorRuntime = function _regeneratorRuntime() { return { wrap: function wrap(e, t, n, o) { return r.w(a(e), t, n, o && o.reverse()); }, isGeneratorFunction: n, mark: r.m, awrap: function awrap(r, e) { return new _OverloadYield(r, e); }, AsyncIterator: _regeneratorAsyncIterator, async: function async(r, e, t, o, u) { return (n(e) ? _regeneratorAsyncGen : _regeneratorAsync)(a(r), e, t, o, u); }, keys: _regeneratorKeys, values: _regeneratorValues }; })(); }
11
+ function _regeneratorValues(e) { if (null != e) { var t = e["function" == typeof Symbol && Symbol.iterator || "@@iterator"], r = 0; if (t) return t.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) return { next: function next() { return e && r >= e.length && (e = void 0), { value: e && e[r++], done: !e }; } }; } throw new TypeError(_typeof(e) + " is not iterable"); }
12
+ function _regeneratorKeys(e) { var n = Object(e), r = []; for (var t in n) r.unshift(t); return function e() { for (; r.length;) if ((t = r.pop()) in n) return e.value = t, e.done = !1, e; return e.done = !0, e; }; }
13
+ function _regeneratorAsync(n, e, r, t, o) { var a = _regeneratorAsyncGen(n, e, r, t, o); return a.next().then(function (n) { return n.done ? n.value : a.next(); }); }
14
+ function _regeneratorAsyncGen(r, e, t, o, n) { return new _regeneratorAsyncIterator(_regenerator().w(r, e, t, o), n || Promise); }
15
+ function _regeneratorAsyncIterator(t, e) { function n(r, o, i, f) { try { var c = t[r](o), u = c.value; return u instanceof _OverloadYield ? e.resolve(u.v).then(function (t) { n("next", t, i, f); }, function (t) { n("throw", t, i, f); }) : e.resolve(u).then(function (t) { c.value = t, i(c); }, function (t) { return n("throw", t, i, f); }); } catch (t) { f(t); } } var r; this.next || (_regeneratorDefine2(_regeneratorAsyncIterator.prototype), _regeneratorDefine2(_regeneratorAsyncIterator.prototype, "function" == typeof Symbol && Symbol.asyncIterator || "@asyncIterator", function () { return this; })), _regeneratorDefine2(this, "_invoke", function (t, o, i) { function f() { return new e(function (e, r) { n(t, i, e, r); }); } return r = r ? r.then(f, f) : f(); }, !0); }
16
+ function _regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return _regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), _regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", _regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), _regeneratorDefine2(u), _regeneratorDefine2(u, o, "Generator"), _regeneratorDefine2(u, n, function () { return this; }), _regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (_regenerator = function _regenerator() { return { w: i, m: f }; })(); }
17
+ function _regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } _regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { if (r) i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n;else { var o = function o(r, n) { _regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); }; o("next", 0), o("throw", 1), o("return", 2); } }, _regeneratorDefine2(e, r, n, t); }
18
+ function _OverloadYield(e, d) { this.v = e, this.k = d; }
11
19
  function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
12
20
  function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
13
21
  function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
@@ -1 +1 @@
1
- {"version":3,"file":"PageLayout.js","names":["_regeneratorRuntime","r","t","e","Object","prototype","n","hasOwnProperty","o","Symbol","i","iterator","a","asyncIterator","u","toStringTag","c","defineProperty","value","enumerable","configurable","writable","h","Generator","create","Error","done","method","arg","delegate","d","f","sent","_sent","dispatchException","abrupt","s","type","Context","call","wrap","GeneratorFunction","GeneratorFunctionPrototype","l","p","getPrototypeOf","y","x","v","g","forEach","_invoke","AsyncIterator","_typeof","resolve","__await","then","TypeError","next","w","tryEntries","push","m","reset","isNaN","length","displayName","isGeneratorFunction","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","unshift","pop","values","prev","charAt","slice","stop","rval","complete","finish","_catch","delegateYield","asyncGeneratorStep","_asyncToGenerator","arguments","apply","_next","_throw","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","_arrayLikeToArray","toString","Array","from","test","isArray","_extends","assign","bind","_objectWithoutProperties","_objectWithoutPropertiesLoose","getOwnPropertySymbols","indexOf","propertyIsEnumerable","throttle","React","AnchorNavigation","useAnchorNavigationContext","Grid","BaseGrid","TearsheetContext","useResize","useScroll","useUpdateEffect","addSubcomponents","mergeRefs","pageLayoutRootDataAttr","animationDuration","StyledAside","StyledAsideFluidContainer","StyledAsidePanel","StyledBody","StyledContent","StyledFooter","StyledNavigation","StyledPageBanner","StyledPageBreadcrumbs","StyledPageContainer","StyledPageHeader","StyledPageMain","StyledPageTabs","StyledPageTitle","getBottomOffsetForFooterUseCase","getGlobalBottomOffset","getGlobalTopOffset","getIsIntersectingVertically","getRightOffset","wait","defaultAsideIsOpen","PageContext","createContext","bodyRef","createRef","footerRef","containerRef","navigationRef","aside","open","close","isOpen","_ref","gutterX","props","_excluded","createElement","Row","Column","Col","PageHeader","forwardRef","_ref2","ref","transparent","_excluded2","$transparent","PageBody","_ref3","children","_excluded3","_React$useContext","useContext","navigation","content","Children","child","isValidElement","PageBodyNavigation","_ref4","_props$sections$lengt","_props$sections","_props$sections2","_props$selected","_props$onSelect","_ref4$minSections","minSections","_excluded4","_React$useContext2","_useAnchorNavigationC","sections","selected","onSelect","sectionsLength","PageFooter","_React$useContext3","_React$useContext4","addListener","_React$useState","useState","_React$useState2","isIntersectingWithBody","setIsIntersectingWithBody","calculateIntersections","current","useEffect","_bodyRef$current","tabWasPressed","onActiveElementChange","document","activeElement","scrollIntoView","onKeyDown","code","setTimeout","addEventListener","_bodyRef$current2","removeEventListener","onScroll","onResize","$isAsideOpen","$hasShadow","PageAside","_ref5","controlledIsOpen","_excluded5","_React$useContext5","_React$useContext5$as","contextIsOpen","_React$useContext6","tearsheetPlacement","placement","addTearsheetListener","_React$useContext7","innerRef","useRef","_React$useState3","_React$useState4","topOffset","setTopOffset","_React$useState5","_React$useState6","bottomOffset","setBottomOffset","_React$useState7","_React$useState8","rightOffset","setRightOffset","initialIsOpen","_React$useState9","_React$useState0","animationStatus","setAnimationStatus","_React$useState1","_React$useState10","setIsOpen","throttledToggle","useCallback","panel","trailing","_callee","_callee$","_context","calculateOffsets","calculateHorizontalOffsets","calculateVerticalOffsets","globalTopOffset","globalBottomOffset","asideOpen","includes","asideClosed","$open","$closed","$offsetTop","$rightOffset","$minusHeight","$closing","$opening","$altAnimation","PageContainer","_React$useState11","_React$useState12","isAsideOpen","setIsAsideOpen","openAside","closeAside","Provider","PageMain","_React$useContext8","attrs","_defineProperty","$tearsheetPlacement","PageBreadcrumbs","PageBanner","PageTitle","PageTabs","Page","Header","Banner","Breadcrumbs","Title","Tabs","Footer","Body","Main","Aside"],"sources":["../../src/PageLayout/PageLayout.tsx"],"sourcesContent":["import throttle from 'lodash.throttle'\nimport React from 'react'\nimport { AnchorNavigation } from '../AnchorNavigation/AnchorNavigation'\nimport { useAnchorNavigationContext } from '../AnchorNavigation/AnchorNavigationProvider'\nimport { Grid as BaseGrid } from '../Grid/Grid'\nimport type { GridProps } from '../Grid/Grid.types'\nimport { TearsheetContext } from '../Tearsheet/Tearsheet'\nimport { useResize } from '../_hooks/Resize'\nimport { useScroll } from '../_hooks/Scroll'\nimport { useUpdateEffect } from '../_hooks/useUpdateEffect'\nimport { addSubcomponents } from '../_utils/addSubcomponents'\nimport { mergeRefs } from '../_utils/mergeRefs'\nimport type { DivAttributes, Props } from '../_utils/types'\nimport { pageLayoutRootDataAttr } from './PageLayout.constants'\nimport {\n animationDuration,\n StyledAside,\n StyledAsideFluidContainer,\n StyledAsidePanel,\n StyledBody,\n StyledContent,\n StyledFooter,\n StyledNavigation,\n StyledPageBanner,\n StyledPageBreadcrumbs,\n StyledPageContainer,\n StyledPageHeader,\n StyledPageMain,\n StyledPageTabs,\n StyledPageTitle,\n} from './PageLayout.styles'\nimport type {\n PageAsideAnimationStatus,\n PageAsideProps,\n PageBodyNavigationProps,\n PageComponentProps,\n PageFooterProps,\n PageHeaderProps,\n PageMainProps,\n} from './PageLayout.types'\nimport {\n getBottomOffsetForFooterUseCase,\n getGlobalBottomOffset,\n getGlobalTopOffset,\n getIsIntersectingVertically,\n getRightOffset,\n wait,\n} from './PageLayout.utils'\n\nconst defaultAsideIsOpen = false\n\nexport const PageContext = React.createContext<{\n bodyRef: React.RefObject<HTMLDivElement>\n footerRef: React.RefObject<HTMLDivElement>\n containerRef: React.RefObject<HTMLDivElement>\n navigationRef: React.RefObject<HTMLUListElement>\n aside: {\n open: () => Promise<void>\n close: () => Promise<void>\n isOpen: boolean\n }\n}>({\n bodyRef: React.createRef(),\n footerRef: React.createRef(),\n containerRef: React.createRef(),\n navigationRef: React.createRef(),\n aside: {\n open: () => Promise.resolve(),\n close: () => Promise.resolve(),\n isOpen: defaultAsideIsOpen,\n },\n})\n\n// for some reason this does not appear in the deprecated in typedoc generated json, but Page.Row does\n/**\n * @parent Page\n * @deprecated A wrapper around Grid, please use Grid instead. Page already sets\n * a default gutterX in context for children grid components.\n *\n * BEFORE `Page.Grid`, `Page.Row`, `Page.Column`\n *\n * AFTER `Grid` `Grid.Row` `Grid.Col`\n * @deprecatedSince 12\n */\nexport const Grid = ({ gutterX, ...props }: GridProps) => {\n return <BaseGrid gutterX={gutterX ?? 'lg'} {...props} />\n}\n\n/**\n * @parent Page\n * @deprecated A wrapper around Grid, please use Grid instead. Page already sets\n * a default gutterX in context for children grid components.\n *\n * BEFORE `Page.Row` AFTER `Grid.Row`\n * @deprecatedSince 12\n */\nexport const Row = BaseGrid.Row\n\n/**\n * @parent Page\n * @deprecated A wrapper around Grid, please use Grid instead. Page already sets\n * a default gutterX in context for children grid components.\n *\n * BEFORE `Page.Column` AFTER `Grid.Col`\n * @deprecatedSince 12\n */\nexport const Column = BaseGrid.Col\n\nconst PageHeader = React.forwardRef<HTMLDivElement, PageHeaderProps>(\n function PageHeader({ transparent, ...props }, ref) {\n return <StyledPageHeader $transparent={transparent} {...props} ref={ref} />\n }\n)\n\nconst PageBody = React.forwardRef<HTMLDivElement, PageComponentProps>(\n function PageBody({ children, ...props }, ref) {\n const { bodyRef } = React.useContext(PageContext)\n\n let navigation\n let content: React.ReactElement[] = []\n\n React.Children.forEach(children, (child) => {\n if (!React.isValidElement(child)) return\n if (child.type === PageBodyNavigation) {\n navigation = child\n } else {\n content.push(child)\n }\n })\n if (!navigation) {\n return (\n <StyledBody\n children={children}\n {...props}\n ref={mergeRefs(ref, bodyRef)}\n />\n )\n }\n\n return (\n <StyledBody {...props} ref={mergeRefs(ref, bodyRef)}>\n <StyledNavigation>{navigation}</StyledNavigation>\n <StyledContent>{content}</StyledContent>\n </StyledBody>\n )\n }\n)\n\nexport const PageBodyNavigation = React.forwardRef<\n HTMLUListElement,\n PageBodyNavigationProps\n>(({ minSections = 2, ...props }, ref) => {\n const { navigationRef } = React.useContext(PageContext)\n const { sections, selected, onSelect } = useAnchorNavigationContext()\n const sectionsLength = props.sections?.length ?? sections.length\n\n if (sectionsLength < minSections) return null\n\n return (\n <AnchorNavigation\n ref={mergeRefs(ref, navigationRef)}\n sections={props.sections ?? sections}\n selected={props.selected ?? selected}\n onSelect={props.onSelect ?? onSelect}\n {...props}\n />\n )\n})\n\nconst PageFooter = React.forwardRef<HTMLDivElement, PageFooterProps>(\n function PageFooter(props, ref) {\n const { bodyRef, footerRef, aside } = React.useContext(PageContext)\n const { addListener } = React.useContext(TearsheetContext)\n\n const [isIntersectingWithBody, setIsIntersectingWithBody] =\n React.useState(false)\n\n function calculateIntersections() {\n if (!footerRef.current || !bodyRef.current) {\n return\n }\n setIsIntersectingWithBody(\n getIsIntersectingVertically(bodyRef.current, footerRef.current)\n )\n }\n\n React.useEffect(() => {\n let tabWasPressed = false\n const onActiveElementChange = () => {\n if (\n tabWasPressed &&\n footerRef.current &&\n document.activeElement &&\n getIsIntersectingVertically(\n document.activeElement as HTMLElement,\n footerRef.current\n )\n ) {\n document.activeElement.scrollIntoView()\n }\n }\n\n const onKeyDown = (e: KeyboardEvent) => {\n if (e.code === 'Tab') {\n tabWasPressed = true\n // setTimeout is added to the end of async queue\n // after all already attached eventListeners\n // `tabWasPressed` marked as `false` after all events\n // which can be triggered by pressing Tab\n setTimeout(() => {\n tabWasPressed = false\n }, 0)\n }\n }\n\n bodyRef.current?.addEventListener('focusin', onActiveElementChange)\n document.addEventListener('keydown', onKeyDown, true)\n\n return () => {\n bodyRef.current?.removeEventListener('focusin', onActiveElementChange)\n document.removeEventListener('keydown', onKeyDown, true)\n }\n }, [])\n\n React.useEffect(() => addListener('scroll', calculateIntersections), [])\n\n React.useEffect(calculateIntersections, [])\n\n useScroll({ onScroll: calculateIntersections })\n\n useResize({ onResize: calculateIntersections })\n\n return (\n <StyledFooter\n {...props}\n $isAsideOpen={aside.isOpen}\n $hasShadow={isIntersectingWithBody}\n data-sticky={isIntersectingWithBody ? 'sticky' : ''}\n ref={mergeRefs(ref, footerRef)}\n />\n )\n }\n)\n\nconst PageAside = React.forwardRef<HTMLDivElement, PageAsideProps>(\n function PageAside({ children, open: controlledIsOpen, ...props }, ref) {\n const {\n aside: { isOpen: contextIsOpen, open, close },\n } = React.useContext(PageContext)\n const { placement: tearsheetPlacement, addListener: addTearsheetListener } =\n React.useContext(TearsheetContext)\n const { footerRef, containerRef } = React.useContext(PageContext)\n\n const innerRef = React.useRef<HTMLDivElement>(null)\n\n const [topOffset, setTopOffset] = React.useState<null | number>(null)\n const [bottomOffset, setBottomOffset] = React.useState(0)\n const [rightOffset, setRightOffset] = React.useState(0)\n\n const initialIsOpen = controlledIsOpen ?? contextIsOpen\n const [animationStatus, setAnimationStatus] =\n React.useState<PageAsideAnimationStatus>(\n initialIsOpen ? 'open' : 'closed'\n )\n const [isOpen, setIsOpen] = React.useState(initialIsOpen)\n\n const throttledToggle = React.useCallback(\n throttle(\n (isOpen) => {\n if (isOpen) {\n open()\n } else {\n close()\n }\n },\n // wait just a little longer than the animation duration to avoid odd blinking\n animationDuration.panel + 100,\n { trailing: true }\n ),\n []\n )\n\n React.useEffect(() => {\n throttledToggle(controlledIsOpen)\n }, [controlledIsOpen, throttledToggle])\n\n React.useEffect(() => {\n setIsOpen(contextIsOpen)\n }, [])\n\n useUpdateEffect(() => {\n ;(async () => {\n if (contextIsOpen) {\n setIsOpen(true)\n\n // allow browsers to recalculate the layout\n await wait(0)\n\n setAnimationStatus('opening')\n await wait(animationDuration.panel)\n setAnimationStatus('open')\n return\n }\n\n setAnimationStatus('closing')\n await wait(animationDuration.panel)\n setAnimationStatus('closed')\n setIsOpen(false)\n })()\n }, [contextIsOpen])\n\n function calculateOffsets() {\n calculateHorizontalOffsets()\n calculateVerticalOffsets()\n }\n\n function calculateHorizontalOffsets() {\n if (!containerRef.current) {\n return\n }\n\n setRightOffset(getRightOffset(containerRef.current))\n }\n\n function calculateVerticalOffsets() {\n if (!innerRef.current || !containerRef.current) {\n return\n }\n\n const globalTopOffset = getGlobalTopOffset(containerRef.current)\n setTopOffset(globalTopOffset)\n\n const globalBottomOffset = getGlobalBottomOffset(containerRef.current)\n setBottomOffset(globalBottomOffset)\n\n if (!footerRef.current) {\n return\n }\n\n const bottomOffset = getBottomOffsetForFooterUseCase(\n footerRef.current,\n globalBottomOffset\n )\n if (bottomOffset !== null) {\n setBottomOffset(bottomOffset)\n }\n }\n\n useScroll({ onScroll: calculateOffsets })\n\n useResize({ onResize: calculateOffsets })\n\n React.useEffect(() => {\n if (tearsheetPlacement) {\n return addTearsheetListener('afterShow', calculateOffsets)\n }\n\n calculateOffsets()\n }, [])\n\n useUpdateEffect(calculateOffsets, [contextIsOpen, animationStatus])\n\n const asideOpen = ['open', 'opening'].includes(animationStatus)\n const asideClosed = ['closed', 'closing'].includes(animationStatus)\n\n return isOpen ? (\n <StyledAside\n {...props}\n $open={asideOpen}\n $closed={asideClosed}\n ref={mergeRefs(ref, innerRef, calculateOffsets)}\n >\n <StyledAsideFluidContainer $open={asideOpen} $closed={asideClosed}>\n <StyledAsidePanel\n $offsetTop={topOffset}\n $rightOffset={rightOffset}\n $minusHeight={(topOffset ?? 0) + bottomOffset}\n $closing={animationStatus === 'closing'}\n $opening={animationStatus === 'opening'}\n $closed={animationStatus === 'closed'}\n $altAnimation={tearsheetPlacement === 'left'}\n >\n {children}\n </StyledAsidePanel>\n </StyledAsideFluidContainer>\n </StyledAside>\n ) : null\n }\n)\n\nconst PageContainer = React.forwardRef<HTMLDivElement, DivAttributes>(\n function PageContainer(props, ref) {\n const [isAsideOpen, setIsAsideOpen] = React.useState(defaultAsideIsOpen)\n\n const openAside = () => {\n setIsAsideOpen(true)\n return wait(animationDuration.panel)\n }\n const closeAside = () => {\n setIsAsideOpen(false)\n return wait(animationDuration.panel)\n }\n\n const containerRef = React.useRef<HTMLDivElement>(null)\n const bodyRef = React.useRef<HTMLDivElement>(null)\n const navigationRef = React.useRef<HTMLUListElement>(null)\n const footerRef = React.useRef<HTMLDivElement>(null)\n\n return (\n <PageContext.Provider\n value={{\n bodyRef,\n footerRef,\n containerRef,\n navigationRef,\n aside: {\n open: openAside,\n close: closeAside,\n isOpen: isAsideOpen,\n },\n }}\n >\n <StyledPageContainer\n data-core-react=\"page\"\n {...props}\n ref={mergeRefs(ref, containerRef)}\n />\n </PageContext.Provider>\n )\n }\n)\n\nconst PageMain = React.forwardRef<HTMLDivElement, PageMainProps>(\n function PageMain(props, ref) {\n const { placement: tearsheetPlacement } = React.useContext(TearsheetContext)\n const attrs = { [pageLayoutRootDataAttr]: true }\n return (\n <Grid gutterX=\"lg\">\n <StyledPageMain\n {...props}\n {...attrs}\n ref={ref}\n $tearsheetPlacement={tearsheetPlacement}\n />\n </Grid>\n )\n }\n)\n\nconst PageBreadcrumbs = React.forwardRef<HTMLDivElement, Props>(\n function PageBreadcrumbs(props, ref) {\n return <StyledPageBreadcrumbs ref={ref} {...props} />\n }\n)\n\nconst PageBanner = React.forwardRef<HTMLDivElement, Props>(function PageBanner(\n props,\n ref\n) {\n return <StyledPageBanner ref={ref} {...props} />\n})\n\nconst PageTitle = React.forwardRef<HTMLDivElement, Props>(function PageTitle(\n props,\n ref\n) {\n return <StyledPageTitle ref={ref} {...props} />\n})\n\nconst PageTabs = React.forwardRef<HTMLDivElement, Props>(function PageTabs(\n props,\n ref\n) {\n return <StyledPageTabs ref={ref} {...props} />\n})\n\nGrid.displayName = 'Page.Grid'\nPageHeader.displayName = 'Page.Header'\nPageBanner.displayName = 'Page.Banner'\nPageBreadcrumbs.displayName = 'Page.Breadcrumbs'\nPageTitle.displayName = 'Page.Title'\nPageTabs.displayName = 'Page.Tabs'\nPageBody.displayName = 'Page.Body'\nPageFooter.displayName = 'Page.Footer'\nPageAside.displayName = 'Page.Aside'\nPageContainer.displayName = 'Page'\nPageMain.displayName = 'Page.Main'\n\n/**\n Building block elements for layout that should be used to build a common skeleton of a page.\n - Page\n - Page.Main\n - Page.Header\n - Page.Breadcrumbs\n - Breadcrumbs\n - Page.Banner\n - Banner\n - Page.Title\n - Title or H1\n - Page.Tabs\n - Tabs\n - Page.Body\n - Page.Footer\n - Page.Aside\nOther helpers, such as Page.Grid, Page.Row and Page.Column are thin wrappers over Grid components and share the same API.\n */\nexport const Page = addSubcomponents(\n {\n Header: PageHeader,\n Banner: PageBanner,\n Breadcrumbs: PageBreadcrumbs,\n Title: PageTitle,\n Tabs: PageTabs,\n Footer: PageFooter,\n Body: PageBody,\n Main: PageMain,\n Aside: PageAside,\n\n // Grid utilities\n /**\n * @deprecated A wrapper around Grid, please use Grid instead. Page already sets\n * a default gutterX in context for children grid components.\n *\n * BEFORE `Page.Grid` AFTER `Grid` (or `Grid gutterX=\"lg\"`)\n * @deprecatedSince 12\n */\n Grid,\n /**\n * @deprecated A wrapper around Grid, please use Grid instead. Page already sets\n * a default gutterX in context for children grid components.\n *\n * BEFORE `Page.Column` AFTER `Grid.Col`\n * @deprecatedSince 12\n */\n Column,\n /**\n * @deprecated A wrapper around Grid, please use Grid instead. Page already sets\n * a default gutterX in context for children grid components.\n *\n * BEFORE `Page.Row` AFTER `Grid.Row`\n * @deprecatedSince 12\n */\n Row,\n },\n PageContainer\n)\n"],"mappings":"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"}
1
+ {"version":3,"file":"PageLayout.js","names":["e","t","r","Symbol","n","iterator","o","toStringTag","i","c","prototype","Generator","u","Object","create","_regeneratorDefine2","f","p","y","G","v","a","d","bind","length","l","TypeError","call","done","value","GeneratorFunction","GeneratorFunctionPrototype","getPrototypeOf","setPrototypeOf","__proto__","displayName","_regenerator","w","m","defineProperty","_regeneratorDefine","enumerable","configurable","writable","_invoke","_OverloadYield","k","asyncGeneratorStep","Promise","resolve","then","_asyncToGenerator","arguments","apply","_next","_throw","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","_arrayLikeToArray","toString","slice","constructor","name","Array","from","test","next","push","isArray","_extends","assign","hasOwnProperty","_objectWithoutProperties","_objectWithoutPropertiesLoose","getOwnPropertySymbols","indexOf","propertyIsEnumerable","throttle","React","AnchorNavigation","useAnchorNavigationContext","Grid","BaseGrid","TearsheetContext","useResize","useScroll","useUpdateEffect","addSubcomponents","mergeRefs","pageLayoutRootDataAttr","animationDuration","StyledAside","StyledAsideFluidContainer","StyledAsidePanel","StyledBody","StyledContent","StyledFooter","StyledNavigation","StyledPageBanner","StyledPageBreadcrumbs","StyledPageContainer","StyledPageHeader","StyledPageMain","StyledPageTabs","StyledPageTitle","getBottomOffsetForFooterUseCase","getGlobalBottomOffset","getGlobalTopOffset","getIsIntersectingVertically","getRightOffset","wait","defaultAsideIsOpen","PageContext","createContext","bodyRef","createRef","footerRef","containerRef","navigationRef","aside","open","close","isOpen","_ref","gutterX","props","_excluded","createElement","Row","Column","Col","PageHeader","forwardRef","_ref2","ref","transparent","_excluded2","$transparent","PageBody","_ref3","children","_excluded3","_React$useContext","useContext","navigation","content","Children","forEach","child","isValidElement","type","PageBodyNavigation","_ref4","_props$sections$lengt","_props$sections","_props$sections2","_props$selected","_props$onSelect","_ref4$minSections","minSections","_excluded4","_React$useContext2","_useAnchorNavigationC","sections","selected","onSelect","sectionsLength","PageFooter","_React$useContext3","_React$useContext4","addListener","_React$useState","useState","_React$useState2","isIntersectingWithBody","setIsIntersectingWithBody","calculateIntersections","current","useEffect","_bodyRef$current","tabWasPressed","onActiveElementChange","document","activeElement","scrollIntoView","onKeyDown","code","setTimeout","addEventListener","_bodyRef$current2","removeEventListener","onScroll","onResize","$isAsideOpen","$hasShadow","PageAside","_ref5","controlledIsOpen","_excluded5","_React$useContext5","_React$useContext5$as","contextIsOpen","_React$useContext6","tearsheetPlacement","placement","addTearsheetListener","_React$useContext7","innerRef","useRef","_React$useState3","_React$useState4","topOffset","setTopOffset","_React$useState5","_React$useState6","bottomOffset","setBottomOffset","_React$useState7","_React$useState8","rightOffset","setRightOffset","initialIsOpen","_React$useState9","_React$useState0","animationStatus","setAnimationStatus","_React$useState1","_React$useState10","setIsOpen","throttledToggle","useCallback","panel","trailing","_regeneratorRuntime","mark","_callee","wrap","_callee$","_context","prev","abrupt","stop","calculateOffsets","calculateHorizontalOffsets","calculateVerticalOffsets","globalTopOffset","globalBottomOffset","asideOpen","includes","asideClosed","$open","$closed","$offsetTop","$rightOffset","$minusHeight","$closing","$opening","$altAnimation","PageContainer","_React$useState11","_React$useState12","isAsideOpen","setIsAsideOpen","openAside","closeAside","Provider","PageMain","_React$useContext8","attrs","_defineProperty","$tearsheetPlacement","PageBreadcrumbs","PageBanner","PageTitle","PageTabs","Page","Header","Banner","Breadcrumbs","Title","Tabs","Footer","Body","Main","Aside"],"sources":["../../src/PageLayout/PageLayout.tsx"],"sourcesContent":["import throttle from 'lodash.throttle'\nimport React from 'react'\nimport { AnchorNavigation } from '../AnchorNavigation/AnchorNavigation'\nimport { useAnchorNavigationContext } from '../AnchorNavigation/AnchorNavigationProvider'\nimport { Grid as BaseGrid } from '../Grid/Grid'\nimport type { GridProps } from '../Grid/Grid.types'\nimport { TearsheetContext } from '../Tearsheet/Tearsheet'\nimport { useResize } from '../_hooks/Resize'\nimport { useScroll } from '../_hooks/Scroll'\nimport { useUpdateEffect } from '../_hooks/useUpdateEffect'\nimport { addSubcomponents } from '../_utils/addSubcomponents'\nimport { mergeRefs } from '../_utils/mergeRefs'\nimport type { DivAttributes, Props } from '../_utils/types'\nimport { pageLayoutRootDataAttr } from './PageLayout.constants'\nimport {\n animationDuration,\n StyledAside,\n StyledAsideFluidContainer,\n StyledAsidePanel,\n StyledBody,\n StyledContent,\n StyledFooter,\n StyledNavigation,\n StyledPageBanner,\n StyledPageBreadcrumbs,\n StyledPageContainer,\n StyledPageHeader,\n StyledPageMain,\n StyledPageTabs,\n StyledPageTitle,\n} from './PageLayout.styles'\nimport type {\n PageAsideAnimationStatus,\n PageAsideProps,\n PageBodyNavigationProps,\n PageComponentProps,\n PageFooterProps,\n PageHeaderProps,\n PageMainProps,\n} from './PageLayout.types'\nimport {\n getBottomOffsetForFooterUseCase,\n getGlobalBottomOffset,\n getGlobalTopOffset,\n getIsIntersectingVertically,\n getRightOffset,\n wait,\n} from './PageLayout.utils'\n\nconst defaultAsideIsOpen = false\n\nexport const PageContext = React.createContext<{\n bodyRef: React.RefObject<HTMLDivElement>\n footerRef: React.RefObject<HTMLDivElement>\n containerRef: React.RefObject<HTMLDivElement>\n navigationRef: React.RefObject<HTMLUListElement>\n aside: {\n open: () => Promise<void>\n close: () => Promise<void>\n isOpen: boolean\n }\n}>({\n bodyRef: React.createRef(),\n footerRef: React.createRef(),\n containerRef: React.createRef(),\n navigationRef: React.createRef(),\n aside: {\n open: () => Promise.resolve(),\n close: () => Promise.resolve(),\n isOpen: defaultAsideIsOpen,\n },\n})\n\n// for some reason this does not appear in the deprecated in typedoc generated json, but Page.Row does\n/**\n * @parent Page\n * @deprecated A wrapper around Grid, please use Grid instead. Page already sets\n * a default gutterX in context for children grid components.\n *\n * BEFORE `Page.Grid`, `Page.Row`, `Page.Column`\n *\n * AFTER `Grid` `Grid.Row` `Grid.Col`\n * @deprecatedSince 12\n */\nexport const Grid = ({ gutterX, ...props }: GridProps) => {\n return <BaseGrid gutterX={gutterX ?? 'lg'} {...props} />\n}\n\n/**\n * @parent Page\n * @deprecated A wrapper around Grid, please use Grid instead. Page already sets\n * a default gutterX in context for children grid components.\n *\n * BEFORE `Page.Row` AFTER `Grid.Row`\n * @deprecatedSince 12\n */\nexport const Row = BaseGrid.Row\n\n/**\n * @parent Page\n * @deprecated A wrapper around Grid, please use Grid instead. Page already sets\n * a default gutterX in context for children grid components.\n *\n * BEFORE `Page.Column` AFTER `Grid.Col`\n * @deprecatedSince 12\n */\nexport const Column = BaseGrid.Col\n\nconst PageHeader = React.forwardRef<HTMLDivElement, PageHeaderProps>(\n function PageHeader({ transparent, ...props }, ref) {\n return <StyledPageHeader $transparent={transparent} {...props} ref={ref} />\n }\n)\n\nconst PageBody = React.forwardRef<HTMLDivElement, PageComponentProps>(\n function PageBody({ children, ...props }, ref) {\n const { bodyRef } = React.useContext(PageContext)\n\n let navigation\n let content: React.ReactElement[] = []\n\n React.Children.forEach(children, (child) => {\n if (!React.isValidElement(child)) return\n if (child.type === PageBodyNavigation) {\n navigation = child\n } else {\n content.push(child)\n }\n })\n if (!navigation) {\n return (\n <StyledBody\n children={children}\n {...props}\n ref={mergeRefs(ref, bodyRef)}\n />\n )\n }\n\n return (\n <StyledBody {...props} ref={mergeRefs(ref, bodyRef)}>\n <StyledNavigation>{navigation}</StyledNavigation>\n <StyledContent>{content}</StyledContent>\n </StyledBody>\n )\n }\n)\n\nexport const PageBodyNavigation = React.forwardRef<\n HTMLUListElement,\n PageBodyNavigationProps\n>(({ minSections = 2, ...props }, ref) => {\n const { navigationRef } = React.useContext(PageContext)\n const { sections, selected, onSelect } = useAnchorNavigationContext()\n const sectionsLength = props.sections?.length ?? sections.length\n\n if (sectionsLength < minSections) return null\n\n return (\n <AnchorNavigation\n ref={mergeRefs(ref, navigationRef)}\n sections={props.sections ?? sections}\n selected={props.selected ?? selected}\n onSelect={props.onSelect ?? onSelect}\n {...props}\n />\n )\n})\n\nconst PageFooter = React.forwardRef<HTMLDivElement, PageFooterProps>(\n function PageFooter(props, ref) {\n const { bodyRef, footerRef, aside } = React.useContext(PageContext)\n const { addListener } = React.useContext(TearsheetContext)\n\n const [isIntersectingWithBody, setIsIntersectingWithBody] =\n React.useState(false)\n\n function calculateIntersections() {\n if (!footerRef.current || !bodyRef.current) {\n return\n }\n setIsIntersectingWithBody(\n getIsIntersectingVertically(bodyRef.current, footerRef.current)\n )\n }\n\n React.useEffect(() => {\n let tabWasPressed = false\n const onActiveElementChange = () => {\n if (\n tabWasPressed &&\n footerRef.current &&\n document.activeElement &&\n getIsIntersectingVertically(\n document.activeElement as HTMLElement,\n footerRef.current\n )\n ) {\n document.activeElement.scrollIntoView()\n }\n }\n\n const onKeyDown = (e: KeyboardEvent) => {\n if (e.code === 'Tab') {\n tabWasPressed = true\n // setTimeout is added to the end of async queue\n // after all already attached eventListeners\n // `tabWasPressed` marked as `false` after all events\n // which can be triggered by pressing Tab\n setTimeout(() => {\n tabWasPressed = false\n }, 0)\n }\n }\n\n bodyRef.current?.addEventListener('focusin', onActiveElementChange)\n document.addEventListener('keydown', onKeyDown, true)\n\n return () => {\n bodyRef.current?.removeEventListener('focusin', onActiveElementChange)\n document.removeEventListener('keydown', onKeyDown, true)\n }\n }, [])\n\n React.useEffect(() => addListener('scroll', calculateIntersections), [])\n\n React.useEffect(calculateIntersections, [])\n\n useScroll({ onScroll: calculateIntersections })\n\n useResize({ onResize: calculateIntersections })\n\n return (\n <StyledFooter\n {...props}\n $isAsideOpen={aside.isOpen}\n $hasShadow={isIntersectingWithBody}\n data-sticky={isIntersectingWithBody ? 'sticky' : ''}\n ref={mergeRefs(ref, footerRef)}\n />\n )\n }\n)\n\nconst PageAside = React.forwardRef<HTMLDivElement, PageAsideProps>(\n function PageAside({ children, open: controlledIsOpen, ...props }, ref) {\n const {\n aside: { isOpen: contextIsOpen, open, close },\n } = React.useContext(PageContext)\n const { placement: tearsheetPlacement, addListener: addTearsheetListener } =\n React.useContext(TearsheetContext)\n const { footerRef, containerRef } = React.useContext(PageContext)\n\n const innerRef = React.useRef<HTMLDivElement>(null)\n\n const [topOffset, setTopOffset] = React.useState<null | number>(null)\n const [bottomOffset, setBottomOffset] = React.useState(0)\n const [rightOffset, setRightOffset] = React.useState(0)\n\n const initialIsOpen = controlledIsOpen ?? contextIsOpen\n const [animationStatus, setAnimationStatus] =\n React.useState<PageAsideAnimationStatus>(\n initialIsOpen ? 'open' : 'closed'\n )\n const [isOpen, setIsOpen] = React.useState(initialIsOpen)\n\n const throttledToggle = React.useCallback(\n throttle(\n (isOpen) => {\n if (isOpen) {\n open()\n } else {\n close()\n }\n },\n // wait just a little longer than the animation duration to avoid odd blinking\n animationDuration.panel + 100,\n { trailing: true }\n ),\n []\n )\n\n React.useEffect(() => {\n throttledToggle(controlledIsOpen)\n }, [controlledIsOpen, throttledToggle])\n\n React.useEffect(() => {\n setIsOpen(contextIsOpen)\n }, [])\n\n useUpdateEffect(() => {\n ;(async () => {\n if (contextIsOpen) {\n setIsOpen(true)\n\n // allow browsers to recalculate the layout\n await wait(0)\n\n setAnimationStatus('opening')\n await wait(animationDuration.panel)\n setAnimationStatus('open')\n return\n }\n\n setAnimationStatus('closing')\n await wait(animationDuration.panel)\n setAnimationStatus('closed')\n setIsOpen(false)\n })()\n }, [contextIsOpen])\n\n function calculateOffsets() {\n calculateHorizontalOffsets()\n calculateVerticalOffsets()\n }\n\n function calculateHorizontalOffsets() {\n if (!containerRef.current) {\n return\n }\n\n setRightOffset(getRightOffset(containerRef.current))\n }\n\n function calculateVerticalOffsets() {\n if (!innerRef.current || !containerRef.current) {\n return\n }\n\n const globalTopOffset = getGlobalTopOffset(containerRef.current)\n setTopOffset(globalTopOffset)\n\n const globalBottomOffset = getGlobalBottomOffset(containerRef.current)\n setBottomOffset(globalBottomOffset)\n\n if (!footerRef.current) {\n return\n }\n\n const bottomOffset = getBottomOffsetForFooterUseCase(\n footerRef.current,\n globalBottomOffset\n )\n if (bottomOffset !== null) {\n setBottomOffset(bottomOffset)\n }\n }\n\n useScroll({ onScroll: calculateOffsets })\n\n useResize({ onResize: calculateOffsets })\n\n React.useEffect(() => {\n if (tearsheetPlacement) {\n return addTearsheetListener('afterShow', calculateOffsets)\n }\n\n calculateOffsets()\n }, [])\n\n useUpdateEffect(calculateOffsets, [contextIsOpen, animationStatus])\n\n const asideOpen = ['open', 'opening'].includes(animationStatus)\n const asideClosed = ['closed', 'closing'].includes(animationStatus)\n\n return isOpen ? (\n <StyledAside\n {...props}\n $open={asideOpen}\n $closed={asideClosed}\n ref={mergeRefs(ref, innerRef, calculateOffsets)}\n >\n <StyledAsideFluidContainer $open={asideOpen} $closed={asideClosed}>\n <StyledAsidePanel\n $offsetTop={topOffset}\n $rightOffset={rightOffset}\n $minusHeight={(topOffset ?? 0) + bottomOffset}\n $closing={animationStatus === 'closing'}\n $opening={animationStatus === 'opening'}\n $closed={animationStatus === 'closed'}\n $altAnimation={tearsheetPlacement === 'left'}\n >\n {children}\n </StyledAsidePanel>\n </StyledAsideFluidContainer>\n </StyledAside>\n ) : null\n }\n)\n\nconst PageContainer = React.forwardRef<HTMLDivElement, DivAttributes>(\n function PageContainer(props, ref) {\n const [isAsideOpen, setIsAsideOpen] = React.useState(defaultAsideIsOpen)\n\n const openAside = () => {\n setIsAsideOpen(true)\n return wait(animationDuration.panel)\n }\n const closeAside = () => {\n setIsAsideOpen(false)\n return wait(animationDuration.panel)\n }\n\n const containerRef = React.useRef<HTMLDivElement>(null)\n const bodyRef = React.useRef<HTMLDivElement>(null)\n const navigationRef = React.useRef<HTMLUListElement>(null)\n const footerRef = React.useRef<HTMLDivElement>(null)\n\n return (\n <PageContext.Provider\n value={{\n bodyRef,\n footerRef,\n containerRef,\n navigationRef,\n aside: {\n open: openAside,\n close: closeAside,\n isOpen: isAsideOpen,\n },\n }}\n >\n <StyledPageContainer\n data-core-react=\"page\"\n {...props}\n ref={mergeRefs(ref, containerRef)}\n />\n </PageContext.Provider>\n )\n }\n)\n\nconst PageMain = React.forwardRef<HTMLDivElement, PageMainProps>(\n function PageMain(props, ref) {\n const { placement: tearsheetPlacement } = React.useContext(TearsheetContext)\n const attrs = { [pageLayoutRootDataAttr]: true }\n return (\n <Grid gutterX=\"lg\">\n <StyledPageMain\n {...props}\n {...attrs}\n ref={ref}\n $tearsheetPlacement={tearsheetPlacement}\n />\n </Grid>\n )\n }\n)\n\nconst PageBreadcrumbs = React.forwardRef<HTMLDivElement, Props>(\n function PageBreadcrumbs(props, ref) {\n return <StyledPageBreadcrumbs ref={ref} {...props} />\n }\n)\n\nconst PageBanner = React.forwardRef<HTMLDivElement, Props>(function PageBanner(\n props,\n ref\n) {\n return <StyledPageBanner ref={ref} {...props} />\n})\n\nconst PageTitle = React.forwardRef<HTMLDivElement, Props>(function PageTitle(\n props,\n ref\n) {\n return <StyledPageTitle ref={ref} {...props} />\n})\n\nconst PageTabs = React.forwardRef<HTMLDivElement, Props>(function PageTabs(\n props,\n ref\n) {\n return <StyledPageTabs ref={ref} {...props} />\n})\n\nGrid.displayName = 'Page.Grid'\nPageHeader.displayName = 'Page.Header'\nPageBanner.displayName = 'Page.Banner'\nPageBreadcrumbs.displayName = 'Page.Breadcrumbs'\nPageTitle.displayName = 'Page.Title'\nPageTabs.displayName = 'Page.Tabs'\nPageBody.displayName = 'Page.Body'\nPageFooter.displayName = 'Page.Footer'\nPageAside.displayName = 'Page.Aside'\nPageContainer.displayName = 'Page'\nPageMain.displayName = 'Page.Main'\n\n/**\n Building block elements for layout that should be used to build a common skeleton of a page.\n - Page\n - Page.Main\n - Page.Header\n - Page.Breadcrumbs\n - Breadcrumbs\n - Page.Banner\n - Banner\n - Page.Title\n - Title or H1\n - Page.Tabs\n - Tabs\n - Page.Body\n - Page.Footer\n - Page.Aside\nOther helpers, such as Page.Grid, Page.Row and Page.Column are thin wrappers over Grid components and share the same API.\n */\nexport const Page = addSubcomponents(\n {\n Header: PageHeader,\n Banner: PageBanner,\n Breadcrumbs: PageBreadcrumbs,\n Title: PageTitle,\n Tabs: PageTabs,\n Footer: PageFooter,\n Body: PageBody,\n Main: PageMain,\n Aside: PageAside,\n\n // Grid utilities\n /**\n * @deprecated A wrapper around Grid, please use Grid instead. Page already sets\n * a default gutterX in context for children grid components.\n *\n * BEFORE `Page.Grid` AFTER `Grid` (or `Grid gutterX=\"lg\"`)\n * @deprecatedSince 12\n */\n Grid,\n /**\n * @deprecated A wrapper around Grid, please use Grid instead. Page already sets\n * a default gutterX in context for children grid components.\n *\n * BEFORE `Page.Column` AFTER `Grid.Col`\n * @deprecatedSince 12\n */\n Column,\n /**\n * @deprecated A wrapper around Grid, please use Grid instead. Page already sets\n * a default gutterX in context for children grid components.\n *\n * BEFORE `Page.Row` AFTER `Grid.Row`\n * @deprecatedSince 12\n */\n Row,\n },\n PageContainer\n)\n"],"mappings":";;;;;;;;;;;;;;;0BACA,uKAAAA,CAAA,EAAAC,CAAA,EAAAC,CAAA,wBAAAC,MAAA,GAAAA,MAAA,OAAAC,CAAA,GAAAF,CAAA,CAAAG,QAAA,kBAAAC,CAAA,GAAAJ,CAAA,CAAAK,WAAA,8BAAAC,EAAAN,CAAA,EAAAE,CAAA,EAAAE,CAAA,EAAAE,CAAA,QAAAC,CAAA,GAAAL,CAAA,IAAAA,CAAA,CAAAM,SAAA,YAAAC,SAAA,GAAAP,CAAA,GAAAO,SAAA,EAAAC,CAAA,GAAAC,MAAA,CAAAC,MAAA,CAAAL,CAAA,CAAAC,SAAA,UAAAK,mBAAA,CAAAH,CAAA,uBAAAV,CAAA,EAAAE,CAAA,EAAAE,CAAA,QAAAE,CAAA,EAAAC,CAAA,EAAAG,CAAA,EAAAI,CAAA,MAAAC,CAAA,GAAAX,CAAA,QAAAY,CAAA,OAAAC,CAAA,KAAAF,CAAA,KAAAb,CAAA,KAAAgB,CAAA,EAAApB,CAAA,EAAAqB,CAAA,EAAAC,CAAA,EAAAN,CAAA,EAAAM,CAAA,CAAAC,IAAA,CAAAvB,CAAA,MAAAsB,CAAA,WAAAA,EAAArB,CAAA,EAAAC,CAAA,WAAAM,CAAA,GAAAP,CAAA,EAAAQ,CAAA,MAAAG,CAAA,GAAAZ,CAAA,EAAAmB,CAAA,CAAAf,CAAA,GAAAF,CAAA,EAAAmB,CAAA,gBAAAC,EAAApB,CAAA,EAAAE,CAAA,SAAAK,CAAA,GAAAP,CAAA,EAAAU,CAAA,GAAAR,CAAA,EAAAH,CAAA,OAAAiB,CAAA,IAAAF,CAAA,KAAAV,CAAA,IAAAL,CAAA,GAAAgB,CAAA,CAAAO,MAAA,EAAAvB,CAAA,UAAAK,CAAA,EAAAE,CAAA,GAAAS,CAAA,CAAAhB,CAAA,GAAAqB,CAAA,GAAAH,CAAA,CAAAF,CAAA,EAAAQ,CAAA,GAAAjB,CAAA,KAAAN,CAAA,QAAAI,CAAA,GAAAmB,CAAA,KAAArB,CAAA,MAAAQ,CAAA,GAAAJ,CAAA,EAAAC,CAAA,GAAAD,CAAA,YAAAC,CAAA,WAAAD,CAAA,MAAAA,CAAA,MAAAR,CAAA,IAAAQ,CAAA,OAAAc,CAAA,MAAAhB,CAAA,GAAAJ,CAAA,QAAAoB,CAAA,GAAAd,CAAA,QAAAC,CAAA,MAAAU,CAAA,CAAAC,CAAA,GAAAhB,CAAA,EAAAe,CAAA,CAAAf,CAAA,GAAAI,CAAA,OAAAc,CAAA,GAAAG,CAAA,KAAAnB,CAAA,GAAAJ,CAAA,QAAAM,CAAA,MAAAJ,CAAA,IAAAA,CAAA,GAAAqB,CAAA,MAAAjB,CAAA,MAAAN,CAAA,EAAAM,CAAA,MAAAJ,CAAA,EAAAe,CAAA,CAAAf,CAAA,GAAAqB,CAAA,EAAAhB,CAAA,cAAAH,CAAA,IAAAJ,CAAA,aAAAmB,CAAA,QAAAH,CAAA,OAAAd,CAAA,qBAAAE,CAAA,EAAAW,CAAA,EAAAQ,CAAA,QAAAT,CAAA,YAAAU,SAAA,uCAAAR,CAAA,UAAAD,CAAA,IAAAK,CAAA,CAAAL,CAAA,EAAAQ,CAAA,GAAAhB,CAAA,GAAAQ,CAAA,EAAAL,CAAA,GAAAa,CAAA,GAAAxB,CAAA,GAAAQ,CAAA,OAAAT,CAAA,GAAAY,CAAA,MAAAM,CAAA,KAAAV,CAAA,KAAAC,CAAA,GAAAA,CAAA,QAAAA,CAAA,SAAAU,CAAA,CAAAf,CAAA,QAAAkB,CAAA,CAAAb,CAAA,EAAAG,CAAA,KAAAO,CAAA,CAAAf,CAAA,GAAAQ,CAAA,GAAAO,CAAA,CAAAC,CAAA,GAAAR,CAAA,aAAAI,CAAA,MAAAR,CAAA,QAAAC,CAAA,KAAAH,CAAA,YAAAL,CAAA,GAAAO,CAAA,CAAAF,CAAA,WAAAL,CAAA,GAAAA,CAAA,CAAA0B,IAAA,CAAAnB,CAAA,EAAAI,CAAA,UAAAc,SAAA,2CAAAzB,CAAA,CAAA2B,IAAA,SAAA3B,CAAA,EAAAW,CAAA,GAAAX,CAAA,CAAA4B,KAAA,EAAApB,CAAA,SAAAA,CAAA,oBAAAA,CAAA,KAAAR,CAAA,GAAAO,CAAA,eAAAP,CAAA,CAAA0B,IAAA,CAAAnB,CAAA,GAAAC,CAAA,SAAAG,CAAA,GAAAc,SAAA,uCAAApB,CAAA,gBAAAG,CAAA,OAAAD,CAAA,GAAAR,CAAA,cAAAC,CAAA,IAAAiB,CAAA,GAAAC,CAAA,CAAAf,CAAA,QAAAQ,CAAA,GAAAV,CAAA,CAAAyB,IAAA,CAAAvB,CAAA,EAAAe,CAAA,OAAAE,CAAA,kBAAApB,CAAA,IAAAO,CAAA,GAAAR,CAAA,EAAAS,CAAA,MAAAG,CAAA,GAAAX,CAAA,cAAAe,CAAA,mBAAAa,KAAA,EAAA5B,CAAA,EAAA2B,IAAA,EAAAV,CAAA,SAAAhB,CAAA,EAAAI,CAAA,EAAAE,CAAA,QAAAI,CAAA,QAAAS,CAAA,gBAAAV,UAAA,cAAAmB,kBAAA,cAAAC,2BAAA,KAAA9B,CAAA,GAAAY,MAAA,CAAAmB,cAAA,MAAAvB,CAAA,MAAAL,CAAA,IAAAH,CAAA,CAAAA,CAAA,IAAAG,CAAA,SAAAW,mBAAA,CAAAd,CAAA,OAAAG,CAAA,iCAAAH,CAAA,GAAAW,CAAA,GAAAmB,0BAAA,CAAArB,SAAA,GAAAC,SAAA,CAAAD,SAAA,GAAAG,MAAA,CAAAC,MAAA,CAAAL,CAAA,YAAAO,EAAAhB,CAAA,WAAAa,MAAA,CAAAoB,cAAA,GAAApB,MAAA,CAAAoB,cAAA,CAAAjC,CAAA,EAAA+B,0BAAA,KAAA/B,CAAA,CAAAkC,SAAA,GAAAH,0BAAA,EAAAhB,mBAAA,CAAAf,CAAA,EAAAM,CAAA,yBAAAN,CAAA,CAAAU,SAAA,GAAAG,MAAA,CAAAC,MAAA,CAAAF,CAAA,GAAAZ,CAAA,WAAA8B,iBAAA,CAAApB,SAAA,GAAAqB,0BAAA,EAAAhB,mBAAA,CAAAH,CAAA,iBAAAmB,0BAAA,GAAAhB,mBAAA,CAAAgB,0BAAA,iBAAAD,iBAAA,GAAAA,iBAAA,CAAAK,WAAA,wBAAApB,mBAAA,CAAAgB,0BAAA,EAAAzB,CAAA,wBAAAS,mBAAA,CAAAH,CAAA,GAAAG,mBAAA,CAAAH,CAAA,EAAAN,CAAA,gBAAAS,mBAAA,CAAAH,CAAA,EAAAR,CAAA,iCAAAW,mBAAA,CAAAH,CAAA,8DAAAwB,YAAA,YAAAA,aAAA,aAAAC,CAAA,EAAA7B,CAAA,EAAA8B,CAAA,EAAAtB,CAAA;AAAA,SAAAD,oBAAAf,CAAA,EAAAE,CAAA,EAAAE,CAAA,EAAAH,CAAA,QAAAO,CAAA,GAAAK,MAAA,CAAA0B,cAAA,QAAA/B,CAAA,uBAAAR,CAAA,IAAAQ,CAAA,QAAAO,mBAAA,YAAAyB,mBAAAxC,CAAA,EAAAE,CAAA,EAAAE,CAAA,EAAAH,CAAA,QAAAC,CAAA,EAAAM,CAAA,GAAAA,CAAA,CAAAR,CAAA,EAAAE,CAAA,IAAA2B,KAAA,EAAAzB,CAAA,EAAAqC,UAAA,GAAAxC,CAAA,EAAAyC,YAAA,GAAAzC,CAAA,EAAA0C,QAAA,GAAA1C,CAAA,MAAAD,CAAA,CAAAE,CAAA,IAAAE,CAAA,YAAAE,CAAA,YAAAA,EAAAJ,CAAA,EAAAE,CAAA,IAAAW,mBAAA,CAAAf,CAAA,EAAAE,CAAA,YAAAF,CAAA,gBAAA4C,OAAA,CAAA1C,CAAA,EAAAE,CAAA,EAAAJ,CAAA,UAAAM,CAAA,aAAAA,CAAA,cAAAA,CAAA,oBAAAS,mBAAA,CAAAf,CAAA,EAAAE,CAAA,EAAAE,CAAA,EAAAH,CAAA;AAAA,SAAA4C,eAAA7C,CAAA,EAAAsB,CAAA,SAAAF,CAAA,GAAApB,CAAA,OAAA8C,CAAA,GAAAxB,CAAA;AAAA,SAAAyB,mBAAA3C,CAAA,EAAAH,CAAA,EAAAD,CAAA,EAAAE,CAAA,EAAAI,CAAA,EAAAe,CAAA,EAAAZ,CAAA,cAAAD,CAAA,GAAAJ,CAAA,CAAAiB,CAAA,EAAAZ,CAAA,GAAAG,CAAA,GAAAJ,CAAA,CAAAqB,KAAA,WAAAzB,CAAA,gBAAAJ,CAAA,CAAAI,CAAA,KAAAI,CAAA,CAAAoB,IAAA,GAAA3B,CAAA,CAAAW,CAAA,IAAAoC,OAAA,CAAAC,OAAA,CAAArC,CAAA,EAAAsC,IAAA,CAAAhD,CAAA,EAAAI,CAAA;AAAA,SAAA6C,kBAAA/C,CAAA,6BAAAH,CAAA,SAAAD,CAAA,GAAAoD,SAAA,aAAAJ,OAAA,WAAA9C,CAAA,EAAAI,CAAA,QAAAe,CAAA,GAAAjB,CAAA,CAAAiD,KAAA,CAAApD,CAAA,EAAAD,CAAA,YAAAsD,MAAAlD,CAAA,IAAA2C,kBAAA,CAAA1B,CAAA,EAAAnB,CAAA,EAAAI,CAAA,EAAAgD,KAAA,EAAAC,MAAA,UAAAnD,CAAA,cAAAmD,OAAAnD,CAAA,IAAA2C,kBAAA,CAAA1B,CAAA,EAAAnB,CAAA,EAAAI,CAAA,EAAAgD,KAAA,EAAAC,MAAA,WAAAnD,CAAA,KAAAkD,KAAA;AAAA,SAAAE,eAAAtD,CAAA,EAAAF,CAAA,WAAAyD,eAAA,CAAAvD,CAAA,KAAAwD,qBAAA,CAAAxD,CAAA,EAAAF,CAAA,KAAA2D,2BAAA,CAAAzD,CAAA,EAAAF,CAAA,KAAA4D,gBAAA;AAAA,SAAAA,iBAAA,cAAAlC,SAAA;AAAA,SAAAiC,4BAAAzD,CAAA,EAAAmB,CAAA,QAAAnB,CAAA,2BAAAA,CAAA,SAAA2D,iBAAA,CAAA3D,CAAA,EAAAmB,CAAA,OAAApB,CAAA,MAAA6D,QAAA,CAAAnC,IAAA,CAAAzB,CAAA,EAAA6D,KAAA,6BAAA9D,CAAA,IAAAC,CAAA,CAAA8D,WAAA,KAAA/D,CAAA,GAAAC,CAAA,CAAA8D,WAAA,CAAAC,IAAA,aAAAhE,CAAA,cAAAA,CAAA,GAAAiE,KAAA,CAAAC,IAAA,CAAAjE,CAAA,oBAAAD,CAAA,+CAAAmE,IAAA,CAAAnE,CAAA,IAAA4D,iBAAA,CAAA3D,CAAA,EAAAmB,CAAA;AAAA,SAAAwC,kBAAA3D,CAAA,EAAAmB,CAAA,aAAAA,CAAA,IAAAA,CAAA,GAAAnB,CAAA,CAAAsB,MAAA,MAAAH,CAAA,GAAAnB,CAAA,CAAAsB,MAAA,YAAAxB,CAAA,MAAAI,CAAA,GAAA8D,KAAA,CAAA7C,CAAA,GAAArB,CAAA,GAAAqB,CAAA,EAAArB,CAAA,IAAAI,CAAA,CAAAJ,CAAA,IAAAE,CAAA,CAAAF,CAAA,UAAAI,CAAA;AAAA,SAAAsD,sBAAAxD,CAAA,EAAAuB,CAAA,QAAAxB,CAAA,WAAAC,CAAA,gCAAAC,MAAA,IAAAD,CAAA,CAAAC,MAAA,CAAAE,QAAA,KAAAH,CAAA,4BAAAD,CAAA,QAAAD,CAAA,EAAAI,CAAA,EAAAI,CAAA,EAAAI,CAAA,EAAAS,CAAA,OAAAL,CAAA,OAAAV,CAAA,iBAAAE,CAAA,IAAAP,CAAA,GAAAA,CAAA,CAAA0B,IAAA,CAAAzB,CAAA,GAAAmE,IAAA,QAAA5C,CAAA,QAAAZ,MAAA,CAAAZ,CAAA,MAAAA,CAAA,UAAAe,CAAA,uBAAAA,CAAA,IAAAhB,CAAA,GAAAQ,CAAA,CAAAmB,IAAA,CAAA1B,CAAA,GAAA2B,IAAA,MAAAP,CAAA,CAAAiD,IAAA,CAAAtE,CAAA,CAAA6B,KAAA,GAAAR,CAAA,CAAAG,MAAA,KAAAC,CAAA,GAAAT,CAAA,iBAAAd,CAAA,IAAAI,CAAA,OAAAF,CAAA,GAAAF,CAAA,yBAAAc,CAAA,YAAAf,CAAA,eAAAW,CAAA,GAAAX,CAAA,cAAAY,MAAA,CAAAD,CAAA,MAAAA,CAAA,2BAAAN,CAAA,QAAAF,CAAA,aAAAiB,CAAA;AAAA,SAAAoC,gBAAAvD,CAAA,QAAAgE,KAAA,CAAAK,OAAA,CAAArE,CAAA,UAAAA,CAAA;AAAA,SAAAsE,SAAA,WAAAA,QAAA,GAAA3D,MAAA,CAAA4D,MAAA,GAAA5D,MAAA,CAAA4D,MAAA,CAAAlD,IAAA,eAAAnB,CAAA,aAAAJ,CAAA,MAAAA,CAAA,GAAAoD,SAAA,CAAA5B,MAAA,EAAAxB,CAAA,UAAAC,CAAA,GAAAmD,SAAA,CAAApD,CAAA,YAAAE,CAAA,IAAAD,CAAA,OAAAyE,cAAA,CAAA/C,IAAA,CAAA1B,CAAA,EAAAC,CAAA,MAAAE,CAAA,CAAAF,CAAA,IAAAD,CAAA,CAAAC,CAAA,aAAAE,CAAA,KAAAoE,QAAA,CAAAnB,KAAA,OAAAD,SAAA;AAAA,SAAAuB,yBAAA3E,CAAA,EAAAC,CAAA,gBAAAD,CAAA,iBAAAM,CAAA,EAAAJ,CAAA,EAAAM,CAAA,GAAAoE,6BAAA,CAAA5E,CAAA,EAAAC,CAAA,OAAAY,MAAA,CAAAgE,qBAAA,QAAAzE,CAAA,GAAAS,MAAA,CAAAgE,qBAAA,CAAA7E,CAAA,QAAAE,CAAA,MAAAA,CAAA,GAAAE,CAAA,CAAAoB,MAAA,EAAAtB,CAAA,IAAAI,CAAA,GAAAF,CAAA,CAAAF,CAAA,UAAAD,CAAA,CAAA6E,OAAA,CAAAxE,CAAA,QAAAyE,oBAAA,CAAApD,IAAA,CAAA3B,CAAA,EAAAM,CAAA,MAAAE,CAAA,CAAAF,CAAA,IAAAN,CAAA,CAAAM,CAAA,aAAAE,CAAA;AAAA,SAAAoE,8BAAA1E,CAAA,EAAAF,CAAA,gBAAAE,CAAA,iBAAAD,CAAA,gBAAAG,CAAA,IAAAF,CAAA,SAAAwE,cAAA,CAAA/C,IAAA,CAAAzB,CAAA,EAAAE,CAAA,gBAAAJ,CAAA,CAAA8E,OAAA,CAAA1E,CAAA,aAAAH,CAAA,CAAAG,CAAA,IAAAF,CAAA,CAAAE,CAAA,YAAAH,CAAA;AADA,OAAO+E,QAAQ,MAAM,iBAAiB;AACtC,OAAOC,KAAK,MAAM,OAAO;AACzB,SAASC,gBAAgB,QAAQ,sCAAsC;AACvE,SAASC,0BAA0B,QAAQ,8CAA8C;AACzF,SAASC,IAAI,IAAIC,QAAQ,QAAQ,cAAc;AAE/C,SAASC,gBAAgB,QAAQ,wBAAwB;AACzD,SAASC,SAAS,QAAQ,kBAAkB;AAC5C,SAASC,SAAS,QAAQ,kBAAkB;AAC5C,SAASC,eAAe,QAAQ,2BAA2B;AAC3D,SAASC,gBAAgB,QAAQ,4BAA4B;AAC7D,SAASC,SAAS,QAAQ,qBAAqB;AAE/C,SAASC,sBAAsB,QAAQ,wBAAwB;AAC/D,SACEC,iBAAiB,EACjBC,WAAW,EACXC,yBAAyB,EACzBC,gBAAgB,EAChBC,UAAU,EACVC,aAAa,EACbC,YAAY,EACZC,gBAAgB,EAChBC,gBAAgB,EAChBC,qBAAqB,EACrBC,mBAAmB,EACnBC,gBAAgB,EAChBC,cAAc,EACdC,cAAc,EACdC,eAAe,QACV,qBAAqB;AAU5B,SACEC,+BAA+B,EAC/BC,qBAAqB,EACrBC,kBAAkB,EAClBC,2BAA2B,EAC3BC,cAAc,EACdC,IAAI,QACC,oBAAoB;AAE3B,IAAMC,kBAAkB,GAAG,KAAK;AAEhC,OAAO,IAAMC,WAAW,gBAAGlC,KAAK,CAACmC,aAAa,CAU3C;EACDC,OAAO,eAAEpC,KAAK,CAACqC,SAAS,CAAC,CAAC;EAC1BC,SAAS,eAAEtC,KAAK,CAACqC,SAAS,CAAC,CAAC;EAC5BE,YAAY,eAAEvC,KAAK,CAACqC,SAAS,CAAC,CAAC;EAC/BG,aAAa,eAAExC,KAAK,CAACqC,SAAS,CAAC,CAAC;EAChCI,KAAK,EAAE;IACLC,IAAI,EAAE,SAANA,IAAIA,CAAA;MAAA,OAAQ3E,OAAO,CAACC,OAAO,CAAC,CAAC;IAAA;IAC7B2E,KAAK,EAAE,SAAPA,KAAKA,CAAA;MAAA,OAAQ5E,OAAO,CAACC,OAAO,CAAC,CAAC;IAAA;IAC9B4E,MAAM,EAAEX;EACV;AACF,CAAC,CAAC;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,IAAM9B,IAAI,GAAG,SAAPA,IAAIA,CAAA0C,IAAA,EAAyC;EAAA,IAAnCC,OAAO,GAAAD,IAAA,CAAPC,OAAO;IAAKC,KAAK,GAAArD,wBAAA,CAAAmD,IAAA,EAAAG,SAAA;EACtC,oBAAOhD,KAAA,CAAAiD,aAAA,CAAC7C,QAAQ,EAAAb,QAAA;IAACuD,OAAO,EAAEA,OAAO,aAAPA,OAAO,cAAPA,OAAO,GAAI;EAAK,GAAKC,KAAK,CAAG,CAAC;AAC1D,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,IAAMG,GAAG,GAAG9C,QAAQ,CAAC8C,GAAG;;AAE/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,IAAMC,MAAM,GAAG/C,QAAQ,CAACgD,GAAG;AAElC,IAAMC,UAAU,gBAAGrD,KAAK,CAACsD,UAAU,CACjC,SAASD,UAAUA,CAAAE,KAAA,EAA4BC,GAAG,EAAE;EAAA,IAA9BC,WAAW,GAAAF,KAAA,CAAXE,WAAW;IAAKV,KAAK,GAAArD,wBAAA,CAAA6D,KAAA,EAAAG,UAAA;EACzC,oBAAO1D,KAAA,CAAAiD,aAAA,CAAC1B,gBAAgB,EAAAhC,QAAA;IAACoE,YAAY,EAAEF;EAAY,GAAKV,KAAK;IAAES,GAAG,EAAEA;EAAI,EAAE,CAAC;AAC7E,CACF,CAAC;AAED,IAAMI,QAAQ,gBAAG5D,KAAK,CAACsD,UAAU,CAC/B,SAASM,QAAQA,CAAAC,KAAA,EAAyBL,GAAG,EAAE;EAAA,IAA3BM,QAAQ,GAAAD,KAAA,CAARC,QAAQ;IAAKf,KAAK,GAAArD,wBAAA,CAAAmE,KAAA,EAAAE,UAAA;EACpC,IAAAC,iBAAA,GAAoBhE,KAAK,CAACiE,UAAU,CAAC/B,WAAW,CAAC;IAAzCE,OAAO,GAAA4B,iBAAA,CAAP5B,OAAO;EAEf,IAAI8B,UAAU;EACd,IAAIC,OAA6B,GAAG,EAAE;EAEtCnE,KAAK,CAACoE,QAAQ,CAACC,OAAO,CAACP,QAAQ,EAAE,UAACQ,KAAK,EAAK;IAC1C,IAAI,eAACtE,KAAK,CAACuE,cAAc,CAACD,KAAK,CAAC,EAAE;IAClC,IAAIA,KAAK,CAACE,IAAI,KAAKC,kBAAkB,EAAE;MACrCP,UAAU,GAAGI,KAAK;IACpB,CAAC,MAAM;MACLH,OAAO,CAAC9E,IAAI,CAACiF,KAAK,CAAC;IACrB;EACF,CAAC,CAAC;EACF,IAAI,CAACJ,UAAU,EAAE;IACf,oBACElE,KAAA,CAAAiD,aAAA,CAACjC,UAAU,EAAAzB,QAAA;MACTuE,QAAQ,EAAEA;IAAS,GACff,KAAK;MACTS,GAAG,EAAE9C,SAAS,CAAC8C,GAAG,EAAEpB,OAAO;IAAE,EAC9B,CAAC;EAEN;EAEA,oBACEpC,KAAA,CAAAiD,aAAA,CAACjC,UAAU,EAAAzB,QAAA,KAAKwD,KAAK;IAAES,GAAG,EAAE9C,SAAS,CAAC8C,GAAG,EAAEpB,OAAO;EAAE,iBAClDpC,KAAA,CAAAiD,aAAA,CAAC9B,gBAAgB,QAAE+C,UAA6B,CAAC,eACjDlE,KAAA,CAAAiD,aAAA,CAAChC,aAAa,QAAEkD,OAAuB,CAC7B,CAAC;AAEjB,CACF,CAAC;AAED,OAAO,IAAMM,kBAAkB,gBAAGzE,KAAK,CAACsD,UAAU,CAGhD,UAAAoB,KAAA,EAAgClB,GAAG,EAAK;EAAA,IAAAmB,qBAAA,EAAAC,eAAA,EAAAC,gBAAA,EAAAC,eAAA,EAAAC,eAAA;EAAA,IAAAC,iBAAA,GAAAN,KAAA,CAArCO,WAAW;IAAXA,WAAW,GAAAD,iBAAA,cAAG,CAAC,GAAAA,iBAAA;IAAKjC,KAAK,GAAArD,wBAAA,CAAAgF,KAAA,EAAAQ,UAAA;EAC5B,IAAAC,kBAAA,GAA0BnF,KAAK,CAACiE,UAAU,CAAC/B,WAAW,CAAC;IAA/CM,aAAa,GAAA2C,kBAAA,CAAb3C,aAAa;EACrB,IAAA4C,qBAAA,GAAyClF,0BAA0B,CAAC,CAAC;IAA7DmF,QAAQ,GAAAD,qBAAA,CAARC,QAAQ;IAAEC,QAAQ,GAAAF,qBAAA,CAARE,QAAQ;IAAEC,QAAQ,GAAAH,qBAAA,CAARG,QAAQ;EACpC,IAAMC,cAAc,IAAAb,qBAAA,IAAAC,eAAA,GAAG7B,KAAK,CAACsC,QAAQ,cAAAT,eAAA,uBAAdA,eAAA,CAAgBrI,MAAM,cAAAoI,qBAAA,cAAAA,qBAAA,GAAIU,QAAQ,CAAC9I,MAAM;EAEhE,IAAIiJ,cAAc,GAAGP,WAAW,EAAE,OAAO,IAAI;EAE7C,oBACEjF,KAAA,CAAAiD,aAAA,CAAChD,gBAAgB,EAAAV,QAAA;IACfiE,GAAG,EAAE9C,SAAS,CAAC8C,GAAG,EAAEhB,aAAa,CAAE;IACnC6C,QAAQ,GAAAR,gBAAA,GAAE9B,KAAK,CAACsC,QAAQ,cAAAR,gBAAA,cAAAA,gBAAA,GAAIQ,QAAS;IACrCC,QAAQ,GAAAR,eAAA,GAAE/B,KAAK,CAACuC,QAAQ,cAAAR,eAAA,cAAAA,eAAA,GAAIQ,QAAS;IACrCC,QAAQ,GAAAR,eAAA,GAAEhC,KAAK,CAACwC,QAAQ,cAAAR,eAAA,cAAAA,eAAA,GAAIQ;EAAS,GACjCxC,KAAK,CACV,CAAC;AAEN,CAAC,CAAC;AAEF,IAAM0C,UAAU,gBAAGzF,KAAK,CAACsD,UAAU,CACjC,SAASmC,UAAUA,CAAC1C,KAAK,EAAES,GAAG,EAAE;EAC9B,IAAAkC,kBAAA,GAAsC1F,KAAK,CAACiE,UAAU,CAAC/B,WAAW,CAAC;IAA3DE,OAAO,GAAAsD,kBAAA,CAAPtD,OAAO;IAAEE,SAAS,GAAAoD,kBAAA,CAATpD,SAAS;IAAEG,KAAK,GAAAiD,kBAAA,CAALjD,KAAK;EACjC,IAAAkD,kBAAA,GAAwB3F,KAAK,CAACiE,UAAU,CAAC5D,gBAAgB,CAAC;IAAlDuF,WAAW,GAAAD,kBAAA,CAAXC,WAAW;EAEnB,IAAAC,eAAA,GACE7F,KAAK,CAAC8F,QAAQ,CAAC,KAAK,CAAC;IAAAC,gBAAA,GAAAxH,cAAA,CAAAsH,eAAA;IADhBG,sBAAsB,GAAAD,gBAAA;IAAEE,yBAAyB,GAAAF,gBAAA;EAGxD,SAASG,sBAAsBA,CAAA,EAAG;IAChC,IAAI,CAAC5D,SAAS,CAAC6D,OAAO,IAAI,CAAC/D,OAAO,CAAC+D,OAAO,EAAE;MAC1C;IACF;IACAF,yBAAyB,CACvBnE,2BAA2B,CAACM,OAAO,CAAC+D,OAAO,EAAE7D,SAAS,CAAC6D,OAAO,CAChE,CAAC;EACH;EAEAnG,KAAK,CAACoG,SAAS,CAAC,YAAM;IAAA,IAAAC,gBAAA;IACpB,IAAIC,aAAa,GAAG,KAAK;IACzB,IAAMC,qBAAqB,GAAG,SAAxBA,qBAAqBA,CAAA,EAAS;MAClC,IACED,aAAa,IACbhE,SAAS,CAAC6D,OAAO,IACjBK,QAAQ,CAACC,aAAa,IACtB3E,2BAA2B,CACzB0E,QAAQ,CAACC,aAAa,EACtBnE,SAAS,CAAC6D,OACZ,CAAC,EACD;QACAK,QAAQ,CAACC,aAAa,CAACC,cAAc,CAAC,CAAC;MACzC;IACF,CAAC;IAED,IAAMC,SAAS,GAAG,SAAZA,SAASA,CAAI5L,CAAgB,EAAK;MACtC,IAAIA,CAAC,CAAC6L,IAAI,KAAK,KAAK,EAAE;QACpBN,aAAa,GAAG,IAAI;QACpB;QACA;QACA;QACA;QACAO,UAAU,CAAC,YAAM;UACfP,aAAa,GAAG,KAAK;QACvB,CAAC,EAAE,CAAC,CAAC;MACP;IACF,CAAC;IAED,CAAAD,gBAAA,GAAAjE,OAAO,CAAC+D,OAAO,cAAAE,gBAAA,uBAAfA,gBAAA,CAAiBS,gBAAgB,CAAC,SAAS,EAAEP,qBAAqB,CAAC;IACnEC,QAAQ,CAACM,gBAAgB,CAAC,SAAS,EAAEH,SAAS,EAAE,IAAI,CAAC;IAErD,OAAO,YAAM;MAAA,IAAAI,iBAAA;MACX,CAAAA,iBAAA,GAAA3E,OAAO,CAAC+D,OAAO,cAAAY,iBAAA,uBAAfA,iBAAA,CAAiBC,mBAAmB,CAAC,SAAS,EAAET,qBAAqB,CAAC;MACtEC,QAAQ,CAACQ,mBAAmB,CAAC,SAAS,EAAEL,SAAS,EAAE,IAAI,CAAC;IAC1D,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;EAEN3G,KAAK,CAACoG,SAAS,CAAC;IAAA,OAAMR,WAAW,CAAC,QAAQ,EAAEM,sBAAsB,CAAC;EAAA,GAAE,EAAE,CAAC;EAExElG,KAAK,CAACoG,SAAS,CAACF,sBAAsB,EAAE,EAAE,CAAC;EAE3C3F,SAAS,CAAC;IAAE0G,QAAQ,EAAEf;EAAuB,CAAC,CAAC;EAE/C5F,SAAS,CAAC;IAAE4G,QAAQ,EAAEhB;EAAuB,CAAC,CAAC;EAE/C,oBACElG,KAAA,CAAAiD,aAAA,CAAC/B,YAAY,EAAA3B,QAAA,KACPwD,KAAK;IACToE,YAAY,EAAE1E,KAAK,CAACG,MAAO;IAC3BwE,UAAU,EAAEpB,sBAAuB;IACnC,eAAaA,sBAAsB,GAAG,QAAQ,GAAG,EAAG;IACpDxC,GAAG,EAAE9C,SAAS,CAAC8C,GAAG,EAAElB,SAAS;EAAE,EAChC,CAAC;AAEN,CACF,CAAC;AAED,IAAM+E,SAAS,gBAAGrH,KAAK,CAACsD,UAAU,CAChC,SAAS+D,SAASA,CAAAC,KAAA,EAAiD9D,GAAG,EAAE;EAAA,IAAnDM,QAAQ,GAAAwD,KAAA,CAARxD,QAAQ;IAAQyD,gBAAgB,GAAAD,KAAA,CAAtB5E,IAAI;IAAuBK,KAAK,GAAArD,wBAAA,CAAA4H,KAAA,EAAAE,UAAA;EAC7D,IAAAC,kBAAA,GAEIzH,KAAK,CAACiE,UAAU,CAAC/B,WAAW,CAAC;IAAAwF,qBAAA,GAAAD,kBAAA,CAD/BhF,KAAK;IAAYkF,aAAa,GAAAD,qBAAA,CAArB9E,MAAM;IAAiBF,IAAI,GAAAgF,qBAAA,CAAJhF,IAAI;IAAEC,KAAK,GAAA+E,qBAAA,CAAL/E,KAAK;EAE7C,IAAAiF,kBAAA,GACE5H,KAAK,CAACiE,UAAU,CAAC5D,gBAAgB,CAAC;IADjBwH,kBAAkB,GAAAD,kBAAA,CAA7BE,SAAS;IAAmCC,oBAAoB,GAAAH,kBAAA,CAAjChC,WAAW;EAElD,IAAAoC,kBAAA,GAAoChI,KAAK,CAACiE,UAAU,CAAC/B,WAAW,CAAC;IAAzDI,SAAS,GAAA0F,kBAAA,CAAT1F,SAAS;IAAEC,YAAY,GAAAyF,kBAAA,CAAZzF,YAAY;EAE/B,IAAM0F,QAAQ,GAAGjI,KAAK,CAACkI,MAAM,CAAiB,IAAI,CAAC;EAEnD,IAAAC,gBAAA,GAAkCnI,KAAK,CAAC8F,QAAQ,CAAgB,IAAI,CAAC;IAAAsC,gBAAA,GAAA7J,cAAA,CAAA4J,gBAAA;IAA9DE,SAAS,GAAAD,gBAAA;IAAEE,YAAY,GAAAF,gBAAA;EAC9B,IAAAG,gBAAA,GAAwCvI,KAAK,CAAC8F,QAAQ,CAAC,CAAC,CAAC;IAAA0C,gBAAA,GAAAjK,cAAA,CAAAgK,gBAAA;IAAlDE,YAAY,GAAAD,gBAAA;IAAEE,eAAe,GAAAF,gBAAA;EACpC,IAAAG,gBAAA,GAAsC3I,KAAK,CAAC8F,QAAQ,CAAC,CAAC,CAAC;IAAA8C,gBAAA,GAAArK,cAAA,CAAAoK,gBAAA;IAAhDE,WAAW,GAAAD,gBAAA;IAAEE,cAAc,GAAAF,gBAAA;EAElC,IAAMG,aAAa,GAAGxB,gBAAgB,aAAhBA,gBAAgB,cAAhBA,gBAAgB,GAAII,aAAa;EACvD,IAAAqB,gBAAA,GACEhJ,KAAK,CAAC8F,QAAQ,CACZiD,aAAa,GAAG,MAAM,GAAG,QAC3B,CAAC;IAAAE,gBAAA,GAAA1K,cAAA,CAAAyK,gBAAA;IAHIE,eAAe,GAAAD,gBAAA;IAAEE,kBAAkB,GAAAF,gBAAA;EAI1C,IAAAG,gBAAA,GAA4BpJ,KAAK,CAAC8F,QAAQ,CAACiD,aAAa,CAAC;IAAAM,iBAAA,GAAA9K,cAAA,CAAA6K,gBAAA;IAAlDxG,MAAM,GAAAyG,iBAAA;IAAEC,SAAS,GAAAD,iBAAA;EAExB,IAAME,eAAe,GAAGvJ,KAAK,CAACwJ,WAAW,CACvCzJ,QAAQ,CACN,UAAC6C,MAAM,EAAK;IACV,IAAIA,MAAM,EAAE;MACVF,IAAI,CAAC,CAAC;IACR,CAAC,MAAM;MACLC,KAAK,CAAC,CAAC;IACT;EACF,CAAC;EACD;EACA/B,iBAAiB,CAAC6I,KAAK,GAAG,GAAG,EAC7B;IAAEC,QAAQ,EAAE;EAAK,CACnB,CAAC,EACD,EACF,CAAC;EAED1J,KAAK,CAACoG,SAAS,CAAC,YAAM;IACpBmD,eAAe,CAAChC,gBAAgB,CAAC;EACnC,CAAC,EAAE,CAACA,gBAAgB,EAAEgC,eAAe,CAAC,CAAC;EAEvCvJ,KAAK,CAACoG,SAAS,CAAC,YAAM;IACpBkD,SAAS,CAAC3B,aAAa,CAAC;EAC1B,CAAC,EAAE,EAAE,CAAC;EAENnH,eAAe,CAAC,YAAM;IACpB;IAACtC,iBAAA,eAAAyL,mBAAA,GAAAC,IAAA,CAAC,SAAAC,QAAA;MAAA,OAAAF,mBAAA,GAAAG,IAAA,UAAAC,SAAAC,QAAA;QAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAA5K,IAAA;UAAA;YAAA,KACIuI,aAAa;cAAAqC,QAAA,CAAA5K,IAAA;cAAA;YAAA;YACfkK,SAAS,CAAC,IAAI,CAAC;;YAEf;YAAAU,QAAA,CAAA5K,IAAA;YAAA,OACM4C,IAAI,CAAC,CAAC,CAAC;UAAA;YAEbmH,kBAAkB,CAAC,SAAS,CAAC;YAAAa,QAAA,CAAA5K,IAAA;YAAA,OACvB4C,IAAI,CAACpB,iBAAiB,CAAC6I,KAAK,CAAC;UAAA;YACnCN,kBAAkB,CAAC,MAAM,CAAC;YAAA,OAAAa,QAAA,CAAAE,MAAA;UAAA;YAI5Bf,kBAAkB,CAAC,SAAS,CAAC;YAAAa,QAAA,CAAA5K,IAAA;YAAA,OACvB4C,IAAI,CAACpB,iBAAiB,CAAC6I,KAAK,CAAC;UAAA;YACnCN,kBAAkB,CAAC,QAAQ,CAAC;YAC5BG,SAAS,CAAC,KAAK,CAAC;UAAA;UAAA;YAAA,OAAAU,QAAA,CAAAG,IAAA;QAAA;MAAA,GAAAN,OAAA;IAAA,CACjB,GAAE,CAAC;EACN,CAAC,EAAE,CAAClC,aAAa,CAAC,CAAC;EAEnB,SAASyC,gBAAgBA,CAAA,EAAG;IAC1BC,0BAA0B,CAAC,CAAC;IAC5BC,wBAAwB,CAAC,CAAC;EAC5B;EAEA,SAASD,0BAA0BA,CAAA,EAAG;IACpC,IAAI,CAAC9H,YAAY,CAAC4D,OAAO,EAAE;MACzB;IACF;IAEA2C,cAAc,CAAC/G,cAAc,CAACQ,YAAY,CAAC4D,OAAO,CAAC,CAAC;EACtD;EAEA,SAASmE,wBAAwBA,CAAA,EAAG;IAClC,IAAI,CAACrC,QAAQ,CAAC9B,OAAO,IAAI,CAAC5D,YAAY,CAAC4D,OAAO,EAAE;MAC9C;IACF;IAEA,IAAMoE,eAAe,GAAG1I,kBAAkB,CAACU,YAAY,CAAC4D,OAAO,CAAC;IAChEmC,YAAY,CAACiC,eAAe,CAAC;IAE7B,IAAMC,kBAAkB,GAAG5I,qBAAqB,CAACW,YAAY,CAAC4D,OAAO,CAAC;IACtEuC,eAAe,CAAC8B,kBAAkB,CAAC;IAEnC,IAAI,CAAClI,SAAS,CAAC6D,OAAO,EAAE;MACtB;IACF;IAEA,IAAMsC,YAAY,GAAG9G,+BAA+B,CAClDW,SAAS,CAAC6D,OAAO,EACjBqE,kBACF,CAAC;IACD,IAAI/B,YAAY,KAAK,IAAI,EAAE;MACzBC,eAAe,CAACD,YAAY,CAAC;IAC/B;EACF;EAEAlI,SAAS,CAAC;IAAE0G,QAAQ,EAAEmD;EAAiB,CAAC,CAAC;EAEzC9J,SAAS,CAAC;IAAE4G,QAAQ,EAAEkD;EAAiB,CAAC,CAAC;EAEzCpK,KAAK,CAACoG,SAAS,CAAC,YAAM;IACpB,IAAIyB,kBAAkB,EAAE;MACtB,OAAOE,oBAAoB,CAAC,WAAW,EAAEqC,gBAAgB,CAAC;IAC5D;IAEAA,gBAAgB,CAAC,CAAC;EACpB,CAAC,EAAE,EAAE,CAAC;EAEN5J,eAAe,CAAC4J,gBAAgB,EAAE,CAACzC,aAAa,EAAEuB,eAAe,CAAC,CAAC;EAEnE,IAAMuB,SAAS,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAACC,QAAQ,CAACxB,eAAe,CAAC;EAC/D,IAAMyB,WAAW,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,CAACD,QAAQ,CAACxB,eAAe,CAAC;EAEnE,OAAOtG,MAAM,gBACX5C,KAAA,CAAAiD,aAAA,CAACpC,WAAW,EAAAtB,QAAA,KACNwD,KAAK;IACT6H,KAAK,EAAEH,SAAU;IACjBI,OAAO,EAAEF,WAAY;IACrBnH,GAAG,EAAE9C,SAAS,CAAC8C,GAAG,EAAEyE,QAAQ,EAAEmC,gBAAgB;EAAE,iBAEhDpK,KAAA,CAAAiD,aAAA,CAACnC,yBAAyB;IAAC8J,KAAK,EAAEH,SAAU;IAACI,OAAO,EAAEF;EAAY,gBAChE3K,KAAA,CAAAiD,aAAA,CAAClC,gBAAgB;IACf+J,UAAU,EAAEzC,SAAU;IACtB0C,YAAY,EAAElC,WAAY;IAC1BmC,YAAY,EAAE,CAAC3C,SAAS,aAATA,SAAS,cAATA,SAAS,GAAI,CAAC,IAAII,YAAa;IAC9CwC,QAAQ,EAAE/B,eAAe,KAAK,SAAU;IACxCgC,QAAQ,EAAEhC,eAAe,KAAK,SAAU;IACxC2B,OAAO,EAAE3B,eAAe,KAAK,QAAS;IACtCiC,aAAa,EAAEtD,kBAAkB,KAAK;EAAO,GAE5C/D,QACe,CACO,CAChB,CAAC,GACZ,IAAI;AACV,CACF,CAAC;AAED,IAAMsH,aAAa,gBAAGpL,KAAK,CAACsD,UAAU,CACpC,SAAS8H,aAAaA,CAACrI,KAAK,EAAES,GAAG,EAAE;EACjC,IAAA6H,iBAAA,GAAsCrL,KAAK,CAAC8F,QAAQ,CAAC7D,kBAAkB,CAAC;IAAAqJ,iBAAA,GAAA/M,cAAA,CAAA8M,iBAAA;IAAjEE,WAAW,GAAAD,iBAAA;IAAEE,cAAc,GAAAF,iBAAA;EAElC,IAAMG,SAAS,GAAG,SAAZA,SAASA,CAAA,EAAS;IACtBD,cAAc,CAAC,IAAI,CAAC;IACpB,OAAOxJ,IAAI,CAACpB,iBAAiB,CAAC6I,KAAK,CAAC;EACtC,CAAC;EACD,IAAMiC,UAAU,GAAG,SAAbA,UAAUA,CAAA,EAAS;IACvBF,cAAc,CAAC,KAAK,CAAC;IACrB,OAAOxJ,IAAI,CAACpB,iBAAiB,CAAC6I,KAAK,CAAC;EACtC,CAAC;EAED,IAAMlH,YAAY,GAAGvC,KAAK,CAACkI,MAAM,CAAiB,IAAI,CAAC;EACvD,IAAM9F,OAAO,GAAGpC,KAAK,CAACkI,MAAM,CAAiB,IAAI,CAAC;EAClD,IAAM1F,aAAa,GAAGxC,KAAK,CAACkI,MAAM,CAAmB,IAAI,CAAC;EAC1D,IAAM5F,SAAS,GAAGtC,KAAK,CAACkI,MAAM,CAAiB,IAAI,CAAC;EAEpD,oBACElI,KAAA,CAAAiD,aAAA,CAACf,WAAW,CAACyJ,QAAQ;IACnB/O,KAAK,EAAE;MACLwF,OAAO,EAAPA,OAAO;MACPE,SAAS,EAATA,SAAS;MACTC,YAAY,EAAZA,YAAY;MACZC,aAAa,EAAbA,aAAa;MACbC,KAAK,EAAE;QACLC,IAAI,EAAE+I,SAAS;QACf9I,KAAK,EAAE+I,UAAU;QACjB9I,MAAM,EAAE2I;MACV;IACF;EAAE,gBAEFvL,KAAA,CAAAiD,aAAA,CAAC3B,mBAAmB,EAAA/B,QAAA;IAClB,mBAAgB;EAAM,GAClBwD,KAAK;IACTS,GAAG,EAAE9C,SAAS,CAAC8C,GAAG,EAAEjB,YAAY;EAAE,EACnC,CACmB,CAAC;AAE3B,CACF,CAAC;AAED,IAAMqJ,QAAQ,gBAAG5L,KAAK,CAACsD,UAAU,CAC/B,SAASsI,QAAQA,CAAC7I,KAAK,EAAES,GAAG,EAAE;EAC5B,IAAAqI,kBAAA,GAA0C7L,KAAK,CAACiE,UAAU,CAAC5D,gBAAgB,CAAC;IAAzDwH,kBAAkB,GAAAgE,kBAAA,CAA7B/D,SAAS;EACjB,IAAMgE,KAAK,GAAAC,eAAA,KAAMpL,sBAAsB,EAAG,IAAI,CAAE;EAChD,oBACEX,KAAA,CAAAiD,aAAA,CAAC9C,IAAI;IAAC2C,OAAO,EAAC;EAAI,gBAChB9C,KAAA,CAAAiD,aAAA,CAACzB,cAAc,EAAAjC,QAAA,KACTwD,KAAK,EACL+I,KAAK;IACTtI,GAAG,EAAEA,GAAI;IACTwI,mBAAmB,EAAEnE;EAAmB,EACzC,CACG,CAAC;AAEX,CACF,CAAC;AAED,IAAMoE,eAAe,gBAAGjM,KAAK,CAACsD,UAAU,CACtC,SAAS2I,eAAeA,CAAClJ,KAAK,EAAES,GAAG,EAAE;EACnC,oBAAOxD,KAAA,CAAAiD,aAAA,CAAC5B,qBAAqB,EAAA9B,QAAA;IAACiE,GAAG,EAAEA;EAAI,GAAKT,KAAK,CAAG,CAAC;AACvD,CACF,CAAC;AAED,IAAMmJ,UAAU,gBAAGlM,KAAK,CAACsD,UAAU,CAAwB,SAAS4I,UAAUA,CAC5EnJ,KAAK,EACLS,GAAG,EACH;EACA,oBAAOxD,KAAA,CAAAiD,aAAA,CAAC7B,gBAAgB,EAAA7B,QAAA;IAACiE,GAAG,EAAEA;EAAI,GAAKT,KAAK,CAAG,CAAC;AAClD,CAAC,CAAC;AAEF,IAAMoJ,SAAS,gBAAGnM,KAAK,CAACsD,UAAU,CAAwB,SAAS6I,SAASA,CAC1EpJ,KAAK,EACLS,GAAG,EACH;EACA,oBAAOxD,KAAA,CAAAiD,aAAA,CAACvB,eAAe,EAAAnC,QAAA;IAACiE,GAAG,EAAEA;EAAI,GAAKT,KAAK,CAAG,CAAC;AACjD,CAAC,CAAC;AAEF,IAAMqJ,QAAQ,gBAAGpM,KAAK,CAACsD,UAAU,CAAwB,SAAS8I,QAAQA,CACxErJ,KAAK,EACLS,GAAG,EACH;EACA,oBAAOxD,KAAA,CAAAiD,aAAA,CAACxB,cAAc,EAAAlC,QAAA;IAACiE,GAAG,EAAEA;EAAI,GAAKT,KAAK,CAAG,CAAC;AAChD,CAAC,CAAC;AAEF5C,IAAI,CAACjD,WAAW,GAAG,WAAW;AAC9BmG,UAAU,CAACnG,WAAW,GAAG,aAAa;AACtCgP,UAAU,CAAChP,WAAW,GAAG,aAAa;AACtC+O,eAAe,CAAC/O,WAAW,GAAG,kBAAkB;AAChDiP,SAAS,CAACjP,WAAW,GAAG,YAAY;AACpCkP,QAAQ,CAAClP,WAAW,GAAG,WAAW;AAClC0G,QAAQ,CAAC1G,WAAW,GAAG,WAAW;AAClCuI,UAAU,CAACvI,WAAW,GAAG,aAAa;AACtCmK,SAAS,CAACnK,WAAW,GAAG,YAAY;AACpCkO,aAAa,CAAClO,WAAW,GAAG,MAAM;AAClC0O,QAAQ,CAAC1O,WAAW,GAAG,WAAW;;AAElC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,IAAMmP,IAAI,GAAG5L,gBAAgB,CAClC;EACE6L,MAAM,EAAEjJ,UAAU;EAClBkJ,MAAM,EAAEL,UAAU;EAClBM,WAAW,EAAEP,eAAe;EAC5BQ,KAAK,EAAEN,SAAS;EAChBO,IAAI,EAAEN,QAAQ;EACdO,MAAM,EAAElH,UAAU;EAClBmH,IAAI,EAAEhJ,QAAQ;EACdiJ,IAAI,EAAEjB,QAAQ;EACdkB,KAAK,EAAEzF,SAAS;EAEhB;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;EACIlH,IAAI,EAAJA,IAAI;EACJ;AACJ;AACA;AACA;AACA;AACA;AACA;EACIgD,MAAM,EAANA,MAAM;EACN;AACJ;AACA;AACA;AACA;AACA;AACA;EACID,GAAG,EAAHA;AACF,CAAC,EACDkI,aACF,CAAC"}