@procore/core-react 12.33.0 → 12.34.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (211) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/AnchorNavigation/AnchorNavigation.styles.js +3 -3
  3. package/dist/Avatar/Avatar.styles.js +5 -5
  4. package/dist/AvatarStack/AvatarStack.styles.js +7 -7
  5. package/dist/Badge/Badge.styles.js +2 -2
  6. package/dist/BadgePill/BadgePill.styles.js +4 -4
  7. package/dist/Banner/Banner.styles.js +10 -10
  8. package/dist/Box/Box.styles.js +1 -1
  9. package/dist/Breadcrumbs/Breadcrumbs.styles.js +4 -4
  10. package/dist/Button/Button.js +12 -0
  11. package/dist/Button/Button.js.map +1 -1
  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/Changelog.mdx +1 -1
  16. package/dist/Checkbox/Checkbox.styles.js +6 -6
  17. package/dist/Checkbox/CheckboxTooltip.js +1 -1
  18. package/dist/{ComponentLifecycle.stories.mdx → ComponentLifecycle.mdx} +1 -1
  19. package/dist/ContactItem/ContactItem.styles.js +5 -5
  20. package/dist/Content/Content.styles.js +2 -2
  21. package/dist/DateInput/DateInput.styles.js +6 -6
  22. package/dist/DetailPage/DetailPage.styles.js +7 -7
  23. package/dist/Dropdown/Dropdown.styles.js +3 -3
  24. package/dist/DropdownFlyout/DropdownFlyout.styles.js +4 -4
  25. package/dist/Dropzone/Dropzone.js +1 -1
  26. package/dist/Dropzone/Dropzone.styles.js +9 -9
  27. package/dist/EmptyState/EmptyState.styles.js +6 -6
  28. package/dist/Field/Field.styles.js +3 -3
  29. package/dist/FileList/FileList.styles.js +4 -4
  30. package/dist/FileSelect/FileExplorer/FileExplorer.styles.js +9 -9
  31. package/dist/FileSelect/FileExplorer/FileExplorerModal.js +3 -1
  32. package/dist/FileSelect/FileExplorer/FileExplorerModal.js.map +1 -1
  33. package/dist/FileSelect/FileExplorer/FileExplorerSidebar.styles.js +3 -3
  34. package/dist/FileSelect/FileSelect.styles.js +2 -2
  35. package/dist/FileSelect/FileSelectDropzone/FileSelectDropzone.styles.js +3 -3
  36. package/dist/FileSelect/FileTokenList/FileTokenList.styles.js +2 -2
  37. package/dist/FileSelect/GridSource/GridSource.styles.js +6 -6
  38. package/dist/FileSelect/LocalSource/LocalSource.styles.js +4 -4
  39. package/dist/FileSelect/SourceItem/SourceItem.styles.js +3 -3
  40. package/dist/FileSelect/ThumbnailList/ThumbnailList.styles.js +6 -6
  41. package/dist/FileSelect/TreeSource/TreeSource.styles.js +1 -1
  42. package/dist/FileToken/FileToken.styles.js +4 -4
  43. package/dist/FilterToken/FilterToken.styles.js +5 -5
  44. package/dist/FlexList/FlexList.styles.js +1 -1
  45. package/dist/Form/Form.styles.js +14 -14
  46. package/dist/Form/StyledFormikForm.styles.js +2 -2
  47. package/dist/GhostPlaceholder/GhostPlaceholder.styles.js +2 -2
  48. package/dist/Grid/Grid.styles.js +2 -2
  49. package/dist/GroupSelect/GroupSelect.styles.js +1 -1
  50. package/dist/Input/Input.styles.js +1 -1
  51. package/dist/Link/Link.styles.js +1 -1
  52. package/dist/ListPage/ListPage.styles.js +8 -8
  53. package/dist/Loader/Loader.styles.js +2 -2
  54. package/dist/MenuImperative/MenuImperative.d.ts +2 -2
  55. package/dist/MenuImperative/MenuImperative.js +10 -5
  56. package/dist/MenuImperative/MenuImperative.js.map +1 -1
  57. package/dist/MenuImperative/MenuImperative.styles.js +10 -10
  58. package/dist/MenuImperative/MenuImperative.types.d.ts +6 -0
  59. package/dist/MenuImperative/MenuImperative.types.js.map +1 -1
  60. package/dist/MenuImperative/index.d.ts +1 -1
  61. package/dist/Modal/Modal.styles.js +13 -13
  62. package/dist/MultiSelect/MultiSelect.styles.js +6 -6
  63. package/dist/NextMenu/NextMenu.styles.js +3 -3
  64. package/dist/Notation/Notation.js +1 -1
  65. package/dist/NumberInput/NumberInput.styles.js +7 -7
  66. package/dist/Overlay/OverlayArrow.styles.js +1 -1
  67. package/dist/PageLayout/PageLayout.styles.js +16 -16
  68. package/dist/PageTemplate/PageFooterTemplate/PageFooterTemplate.styles.js +1 -1
  69. package/dist/PageTemplate/PageHeaderTemplate/PageHeaderTemplate.styles.js +3 -3
  70. package/dist/PageTemplate/PagePaneTemplate/PagePaneTemplate.styles.js +2 -2
  71. package/dist/PageTemplate/PageTemplate/PageTemplate.styles.js +3 -3
  72. package/dist/Pagination/Pagination.styles.js +5 -5
  73. package/dist/Panel/Panel.styles.js +11 -11
  74. package/dist/Pill/Pill.styles.js +3 -3
  75. package/dist/PillSelect/PillSelect.styles.js +4 -4
  76. package/dist/Popover/Popover.styles.js +2 -2
  77. package/dist/Portal/Portal.styles.js +1 -1
  78. package/dist/ProgressBar/ProgressBar.styles.js +2 -2
  79. package/dist/RadioButton/RadioButton.styles.js +3 -3
  80. package/dist/Required/Required.styles.js +3 -3
  81. package/dist/Search/Search.styles.js +5 -5
  82. package/dist/Section/Section.styles.js +7 -7
  83. package/dist/SegmentedController/SegmentedController.styles.js +4 -4
  84. package/dist/Select/Select.styles.js +7 -7
  85. package/dist/Semantic/Semantic.styles.js +9 -9
  86. package/dist/Slider/Slider.styles.js +5 -5
  87. package/dist/Spinner/Spinner.styles.js +7 -7
  88. package/dist/SplitViewCard/SplitViewCard.styles.js +8 -8
  89. package/dist/SuperSelect/SuperSelect.presets.styles.js +1 -1
  90. package/dist/SuperSelect/SuperSelect.styles.js +38 -38
  91. package/dist/SuperSelect/SuperSelect.types.d.ts +1 -0
  92. package/dist/SuperSelect/SuperSelect.types.js.map +1 -1
  93. package/dist/SuperSelect/useSuperSelect.js +29 -25
  94. package/dist/SuperSelect/useSuperSelect.js.map +1 -1
  95. package/dist/Switch/Switch.styles.js +4 -4
  96. package/dist/Table/Table.styles.js +28 -28
  97. package/dist/TableShelf/TableShelf.styles.js +5 -5
  98. package/dist/Tabs/Tabs.styles.js +15 -15
  99. package/dist/Tearsheet/Tearsheet.styles.js +5 -5
  100. package/dist/TextArea/TextArea.styles.js +1 -1
  101. package/dist/TextEditor/TextEditor.js +10 -8
  102. package/dist/TextEditor/TextEditor.js.map +1 -1
  103. package/dist/TextEditorOutput/TextEditorOutput.styles.js +1 -1
  104. package/dist/Thumbnail/Thumbnail.styles.js +17 -17
  105. package/dist/ThumbnailGrid/ThumbnailGrid.styles.js +7 -7
  106. package/dist/TieredSelect/TierSelectionTieredSelect.js +5 -3
  107. package/dist/TieredSelect/TierSelectionTieredSelect.js.map +1 -1
  108. package/dist/TieredSelect/TieredSelect.js +3 -1
  109. package/dist/TieredSelect/TieredSelect.js.map +1 -1
  110. package/dist/TieredSelect/TieredSelect.styles.d.ts +1 -1
  111. package/dist/TieredSelect/TieredSelect.styles.js +9 -9
  112. package/dist/TieredSelect/TieredSelect.types.d.ts +6 -0
  113. package/dist/TieredSelect/TieredSelect.types.js.map +1 -1
  114. package/dist/TieredSelect/TieredSelectMenu.js +12 -13
  115. package/dist/TieredSelect/TieredSelectMenu.js.map +1 -1
  116. package/dist/Tile/Tile.styles.js +8 -8
  117. package/dist/Title/Title.styles.js +7 -7
  118. package/dist/Toast/Toast.styles.js +3 -3
  119. package/dist/ToggleButton/ToggleButton.styles.js +1 -1
  120. package/dist/Token/Token.styles.js +3 -3
  121. package/dist/ToolHeader/ToolHeader.styles.js +6 -6
  122. package/dist/ToolLandingPage/ToolLandingPage.styles.js +3 -3
  123. package/dist/Tooltip/Tooltip.styles.js +2 -2
  124. package/dist/Tree/Tree.js +9 -1
  125. package/dist/Tree/Tree.js.map +1 -1
  126. package/dist/Tree/Tree.styles.js +9 -9
  127. package/dist/Typeahead/Typeahead.styles.js +3 -3
  128. package/dist/Typography/Typography.styles.js +1 -1
  129. package/dist/Typography/Typography.table.story.js +2 -2
  130. package/dist/_storyHelpers_/components/Deprecation.styles.js +1 -1
  131. package/dist/_storyHelpers_/components/StoryGrid.js +3 -3
  132. package/dist/_typedoc/AnchorNavigation/AnchorNavigation.types.json +3 -3
  133. package/dist/_typedoc/Avatar/Avatar.types.json +20 -20
  134. package/dist/_typedoc/AvatarStack/AvatarStack.types.json +24 -24
  135. package/dist/_typedoc/Badge/Badge.types.json +6 -6
  136. package/dist/_typedoc/Banner/Banner.types.json +13 -13
  137. package/dist/_typedoc/Box/Box.types.json +68 -68
  138. package/dist/_typedoc/Breadcrumbs/Breadcrumbs.types.json +10 -10
  139. package/dist/_typedoc/Button/Button.types.json +13 -13
  140. package/dist/_typedoc/Calendar/Calendar.types.json +80 -80
  141. package/dist/_typedoc/Card/Card.types.json +6 -6
  142. package/dist/_typedoc/Checkbox/Checkbox.types.json +8 -8
  143. package/dist/_typedoc/ContactItem/ContactItem.types.json +9 -9
  144. package/dist/_typedoc/DateInput/DateInput.types.json +35 -35
  145. package/dist/_typedoc/DateSelect/DateSelect.types.json +13 -13
  146. package/dist/_typedoc/DetailPage/DetailPage.types.json +5 -5
  147. package/dist/_typedoc/Dropdown/Dropdown.types.json +37 -37
  148. package/dist/_typedoc/DropdownFlyout/DropdownFlyout.types.json +30 -30
  149. package/dist/_typedoc/Dropzone/Dropzone.types.json +44 -44
  150. package/dist/_typedoc/EmptyState/EmptyState.types.json +16 -16
  151. package/dist/_typedoc/FileList/FileList.types.json +9 -9
  152. package/dist/_typedoc/FileSelect/FileSelect.types.json +27 -27
  153. package/dist/_typedoc/FileSelect/GridSource/GridSource.types.json +20 -20
  154. package/dist/_typedoc/FileSelect/LocalSource/LocalSource.types.json +14 -14
  155. package/dist/_typedoc/FileSelect/TreeSource/TreeSource.types.json +9 -9
  156. package/dist/_typedoc/Flex/Flex.types.json +27 -27
  157. package/dist/_typedoc/FlexList/FlexList.types.json +30 -30
  158. package/dist/_typedoc/Form/Form.types.json +764 -744
  159. package/dist/_typedoc/GhostPlaceholder/GhostPlaceholder.types.json +12 -12
  160. package/dist/_typedoc/Grid/Grid.types.json +8 -8
  161. package/dist/_typedoc/GroupSelect/GroupSelect.types.json +52 -52
  162. package/dist/_typedoc/Input/Input.types.json +2 -2
  163. package/dist/_typedoc/Link/Link.types.json +1 -1
  164. package/dist/_typedoc/ListPage/ListPage.types.json +13 -13
  165. package/dist/_typedoc/Menu/Menu.types.json +62 -62
  166. package/dist/_typedoc/MenuImperative/MenuImperative.types.json +77 -77
  167. package/dist/_typedoc/Modal/Modal.types.json +46 -46
  168. package/dist/_typedoc/MultiSelect/MultiSelect.types.json +31 -31
  169. package/dist/_typedoc/NextTile/NextTile.types.json +32 -32
  170. package/dist/_typedoc/Notation/Notation.types.json +4 -4
  171. package/dist/_typedoc/NumberInput/NumberInput.types.json +48 -48
  172. package/dist/_typedoc/OverlayTrigger/OverlayTrigger.types.json +32 -32
  173. package/dist/_typedoc/PageLayout/PageLayout.types.json +26 -26
  174. package/dist/_typedoc/Pagination/Pagination.types.json +7 -7
  175. package/dist/_typedoc/Panel/Panel.types.json +30 -30
  176. package/dist/_typedoc/Pill/Pill.types.json +2 -2
  177. package/dist/_typedoc/PillSelect/PillSelect.types.json +49 -49
  178. package/dist/_typedoc/Popover/Popover.types.json +15 -15
  179. package/dist/_typedoc/ProgressBar/ProgressBar.types.json +7 -7
  180. package/dist/_typedoc/RadioButton/RadioButton.types.json +6 -6
  181. package/dist/_typedoc/Required/Required.types.json +5 -5
  182. package/dist/_typedoc/Search/Search.types.json +18 -18
  183. package/dist/_typedoc/Section/Section.types.json +15 -15
  184. package/dist/_typedoc/SegmentedController/SegmentedController.types.json +21 -21
  185. package/dist/_typedoc/Select/Select.types.json +60 -60
  186. package/dist/_typedoc/SettingsPage/SettingsPage.types.json +10 -10
  187. package/dist/_typedoc/Slider/Slider.types.json +6 -6
  188. package/dist/_typedoc/Spinner/Spinner.types.json +9 -9
  189. package/dist/_typedoc/SplitViewCard/SplitViewCard.types.json +14 -14
  190. package/dist/_typedoc/Table/Table.types.json +101 -101
  191. package/dist/_typedoc/Tabs/Tabs.types.json +20 -20
  192. package/dist/_typedoc/Tearsheet/Tearsheet.types.json +17 -17
  193. package/dist/_typedoc/TextArea/TextArea.types.json +3 -3
  194. package/dist/_typedoc/TextEditor/TextEditor.types.json +9 -9
  195. package/dist/_typedoc/TextEditorOutput/TextEditorOutput.types.json +4 -4
  196. package/dist/_typedoc/Thumbnail/Thumbnail.types.json +19 -19
  197. package/dist/_typedoc/TieredDropdown/TieredDropdown.types.json +52 -42
  198. package/dist/_typedoc/TieredSelect/TieredSelect.types.json +38 -28
  199. package/dist/_typedoc/Tile/Tile.types.json +8 -8
  200. package/dist/_typedoc/Title/Title.types.json +1 -1
  201. package/dist/_typedoc/Toast/Toast.types.json +4 -4
  202. package/dist/_typedoc/ToggleButton/ToggleButton.types.json +4 -4
  203. package/dist/_typedoc/Token/Token.types.json +7 -7
  204. package/dist/_typedoc/ToolHeader/ToolHeader.types.json +10 -10
  205. package/dist/_typedoc/ToolLandingPage/ToolLandingPage.types.json +8 -8
  206. package/dist/_typedoc/Tooltip/Tooltip.types.json +13 -13
  207. package/dist/_typedoc/Tree/Tree.types.json +86 -86
  208. package/dist/_typedoc/Typeahead/Typeahead.types.json +2 -2
  209. package/dist/_typedoc/Typography/Typography.types.json +9 -9
  210. package/dist/_typedoc/_utils/types.json +3 -3
  211. package/package.json +8 -11
@@ -7,31 +7,31 @@ import { getEllipsis } from '../_styles/mixins';
7
7
  import { spacing } from '../_styles/spacing';
8
8
  export var StyledCheckbox = /*#__PURE__*/styled(Checkbox).withConfig({
9
9
  displayName: "StyledCheckbox",
10
- componentId: "core-12_33_0__sc-1inrbm9-0"
10
+ componentId: "core-12_34_0__sc-1inrbm9-0"
11
11
  })(["input{z-index:2;}"]);
12
12
  export var StyledGroupCell = /*#__PURE__*/styled.div.withConfig({
13
13
  displayName: "StyledGroupCell",
14
- componentId: "core-12_33_0__sc-1inrbm9-1"
14
+ componentId: "core-12_34_0__sc-1inrbm9-1"
15
15
  })(["display:flex;align-items:flex-end;padding-bottom:", "px;"], spacing.md);
16
16
  export var StyledThumbnail = /*#__PURE__*/styled(Thumbnail).withConfig({
17
17
  displayName: "StyledThumbnail",
18
- componentId: "core-12_33_0__sc-1inrbm9-2"
18
+ componentId: "core-12_34_0__sc-1inrbm9-2"
19
19
  })(["display:inline-flex;&:focus{outline:none;}"]);
20
20
  // VariableSizeGrid has provided width and height as inline style, so to make it flexible and support responsive !important was added
21
21
  export var StyledVariableSizeGrid = /*#__PURE__*/styled(VariableSizeGrid).withConfig({
22
22
  displayName: "StyledVariableSizeGrid",
23
- componentId: "core-12_33_0__sc-1inrbm9-3"
23
+ componentId: "core-12_34_0__sc-1inrbm9-3"
24
24
  })(["height:100% !important;& > div{width:100% !important;}"]);
25
25
  export var StyledGroupTitle = /*#__PURE__*/styled(Typography).withConfig({
26
26
  displayName: "StyledGroupTitle",
27
- componentId: "core-12_33_0__sc-1inrbm9-4"
27
+ componentId: "core-12_34_0__sc-1inrbm9-4"
28
28
  })(["", ""], getEllipsis);
29
29
  export var StyledSpinnerWrapper = /*#__PURE__*/styled.div.withConfig({
30
30
  displayName: "StyledSpinnerWrapper",
31
- componentId: "core-12_33_0__sc-1inrbm9-5"
31
+ componentId: "core-12_34_0__sc-1inrbm9-5"
32
32
  })(["display:flex;justify-content:center;align-items:center;width:100%;height:100%;"]);
33
33
  export var StyledThumbnailGrid = /*#__PURE__*/styled.div.withConfig({
34
34
  displayName: "StyledThumbnailGrid",
35
- componentId: "core-12_33_0__sc-1inrbm9-6"
35
+ componentId: "core-12_34_0__sc-1inrbm9-6"
36
36
  })(["display:flex;flex-wrap:wrap;outline:none;"]);
37
37
  //# sourceMappingURL=ThumbnailGrid.styles.js.map
@@ -130,7 +130,8 @@ var TieredSelectMenu = /*#__PURE__*/React.forwardRef(function TieredSelectMenu(_
130
130
  i18nScope = _React$useContext.i18nScope,
131
131
  onQuickCreate = _React$useContext.onQuickCreate,
132
132
  onScrollBottom = _React$useContext.onScrollBottom,
133
- isTierDisabled = _React$useContext.isTierDisabled;
133
+ isTierDisabled = _React$useContext.isTierDisabled,
134
+ searchPlaceholder = _React$useContext.searchPlaceholder;
134
135
  var quickCreateRef = React.useRef(null);
135
136
  var _useOverlayTriggerCon = useOverlayTriggerContext(),
136
137
  hide = _useOverlayTriggerCon.hide;
@@ -319,9 +320,10 @@ var TieredSelectMenu = /*#__PURE__*/React.forwardRef(function TieredSelectMenu(_
319
320
  }), /*#__PURE__*/React.createElement(MenuImperative.Header, null, !isQuickCreating && /*#__PURE__*/React.createElement(MenuImperative.Search, _extends({
320
321
  autoComplete: "false",
321
322
  onChange: internalOnSearch,
322
- placeholder: I18n.t('searchPlaceholder', {
323
+ placeholder: searchPlaceholder || I18n.t('searchPlaceholder', {
323
324
  scope: i18nScope
324
- })
325
+ }),
326
+ value: searchValue
325
327
  }, menuNavigationTriggerProps, {
326
328
  onKeyDown: onKeyDown
327
329
  })), showBreadcrumbs() ? /*#__PURE__*/React.createElement(StyledTieredSelectBreadcrumbs, {
@@ -1 +1 @@
1
- {"version":3,"file":"TierSelectionTieredSelect.js","names":["ChevronRight","Help","Home","Plus","React","Box","Breadcrumbs","Button","FlexList","Input","MenuImperative","useMenuImperativeControlNavigation","CloseOnFocus","OverlayTrigger","useOverlayTriggerContext","Select","Spinner","Tooltip","Typography","isEventSource","useI18nContext","TieredSelectContext","useHighlightItemEffects","StyledTieredSelect","StyledTieredSelectArrowButton","StyledTieredSelectBreadcrumbs","StyledTieredSelectHome","StyledTieredSelectIcon","StyledTieredSelectLoadingMore","StyledTieredSelectOption","StyledTieredSelectOverlay","StyledTieredSelectSpinnerOverlay","stopProp","e","key","stopPropagation","empty","hideKeys","overlay","target","ArrowButton","_ref","onClick","props","_objectWithoutProperties","_excluded","i18n","createElement","_extends","t","icon","event","preventDefault","size","tabIndex","variant","ItemTooltipIcon","alignItems","justifyContent","QuickCreateInput","forwardRef","_ref2","ref","autoFocus","onSubmit","placeholder","onKeyDown","currentTarget","value","flexGrow","padding","Options","_ref3","children","emptyMessage","_excluded2","Children","count","paddingLeft","color","intent","italic","TieredSelectMenu","_ref4","currentTier","customFooter","footer","loading","loadingMore","menuRef","onNavigate","onSearch","onChange","_ref4$options","options","previousValue","_excluded3","_React$useContext","useContext","getGroupId","getId","getLabel","getNextGroupId","i18nScope","onQuickCreate","onScrollBottom","isTierDisabled","quickCreateRef","useRef","_useOverlayTriggerCon","hide","I18n","_React$useState","useState","_React$useState2","_slicedToArray","isQuickCreating","setIsQuickCreating","_React$useState3","_React$useState4","searchValue","setSearchValue","_useMenuImperativeCon","menuProps","menuNavigationTriggerProps","searchIsEmpty","lastEntryInValue","length","internalOnSearch","useCallback","filteredOptions","useMemo","filter","tier","onNavigateHome","_menuRef$current","current","highlightFirst","onBreadCrumbNavigate","_menuRef$current2","newTier","indexOf","slice","onNavigateForward","_menuRef$current3","newValue","concat","_toConsumableArray","onNavigateBackward","_menuRef$current4","Math","max","_menuRef$current5","_menuNavigationTrigge","highlighted","call","onTierSelect","selection","isSameGroup","item","_objectSpread","showBreadcrumbs","menuEmptyMessage","scope","handleQuickCreate","onQuickCreateSubmit","RenderFooter","Footer","undefined","block","isTierSelected","shadowStrength","label","onSelect","role","Header","Search","autoComplete","$nonInteractive","Crumb","map","index","array","active","_isTierDisabled","tooltip","isDisabled","Boolean","showNextTierArrow","menuItem","selected","disabled","trigger","placement","TierSelectionTieredSelect","_ref5","className","_ref5$disabled","_ref5$error","error","_ref5$loading","ariaLabelledby","_ref5$options","_ref5$value","_excluded4","_React$useContext2","afterHide","afterShow","beforeHide","beforeShow","getValueString","isLeaf","onClear","tieredSelectMenuRef","tieredSelectButtonRef","clearRef","createRef","_React$useState5","_React$useState6","valueString","setValueString","_React$useState7","_React$useState8","setCurrentTier","_React$useState9","_React$useState0","internalValue","setInternalValue","_React$useState1","_React$useState10","setPreviousValue","useEffect","internalOnChange","internalOnNavigate","nextGroupId","internalOnClear","internalBeforeHide","_tieredSelectMenuRef$","isEscapeKey","KeyboardEvent","isClickOutside","MouseEvent","el","lastValue","canFlip"],"sources":["../../src/TieredSelect/TierSelectionTieredSelect.tsx"],"sourcesContent":["import { ChevronRight, Help, Home, Plus } from '@procore/core-icons/dist'\nimport React from 'react'\nimport { Box } from '../Box'\nimport { Breadcrumbs } from '../Breadcrumbs'\nimport { Button } from '../Button'\nimport { FlexList } from '../FlexList'\nimport { Input } from '../Input'\nimport {\n MenuImperative,\n useMenuImperativeControlNavigation,\n} from '../MenuImperative/MenuImperative'\nimport type { MenuRef, Selection } from '../MenuImperative/MenuImperative.types'\nimport {\n CloseOnFocus,\n OverlayTrigger,\n useOverlayTriggerContext,\n} from '../OverlayTrigger/OverlayTrigger'\nimport { Select } from '../Select'\nimport { Spinner } from '../Spinner'\nimport { Tooltip } from '../Tooltip'\nimport { Typography } from '../Typography'\nimport { isEventSource } from '../_hooks/ClickOutside'\nimport { useI18nContext } from '../_hooks/I18n'\nimport type { Props } from '../_utils/types'\nimport { TieredSelectContext, useHighlightItemEffects } from './TieredSelect'\nimport {\n StyledTieredSelect,\n StyledTieredSelectArrowButton,\n StyledTieredSelectBreadcrumbs,\n StyledTieredSelectHome,\n StyledTieredSelectIcon,\n StyledTieredSelectLoadingMore,\n StyledTieredSelectOption,\n StyledTieredSelectOverlay,\n StyledTieredSelectSpinnerOverlay,\n} from './TieredSelect.styles'\nimport type {\n ArrowButtonProps,\n Id,\n InternalTieredSelectProps,\n OptionsProps,\n QuickCreateInputProps,\n Tier,\n TieredSelectMenuProps,\n TierSelection,\n} from './TieredSelect.types'\n\nfunction stopProp(e: React.KeyboardEvent<HTMLDivElement>) {\n if (e.key === 'Escape' || e.key === 'Esc') {\n e.stopPropagation()\n }\n}\n\nconst empty: any[] = []\n\nconst hideKeys = {\n overlay: ['Escape', 'Esc'],\n target: ['Escape', 'Esc'],\n}\n\nfunction ArrowButton({ onClick, ...props }: ArrowButtonProps) {\n const i18n = useI18nContext()\n return (\n <StyledTieredSelectArrowButton\n aria-label={i18n.t('core.tieredSelect.goToTier')}\n {...props}\n icon={<ChevronRight />}\n onClick={(event: React.MouseEvent) => {\n event.preventDefault()\n event.stopPropagation()\n onClick && onClick(event)\n }}\n size=\"sm\"\n tabIndex={-1}\n variant=\"tertiary\"\n />\n )\n}\n\nfunction ItemTooltipIcon() {\n return (\n <StyledTieredSelectIcon alignItems=\"center\" justifyContent=\"center\">\n <Help />\n </StyledTieredSelectIcon>\n )\n}\n\nconst QuickCreateInput = React.forwardRef<\n HTMLInputElement,\n QuickCreateInputProps\n>(function QuickCreateInput({ autoFocus, onSubmit, placeholder }, ref) {\n function onKeyDown(e: React.KeyboardEvent<HTMLInputElement>) {\n if (e.key === 'Enter') {\n onSubmit(e.currentTarget.value)\n }\n }\n\n return (\n <Box flexGrow=\"1\" justifyContent=\"center\" padding=\"md\">\n <Input\n autoFocus={autoFocus}\n onKeyDown={onKeyDown}\n placeholder={placeholder}\n ref={ref}\n />\n </Box>\n )\n})\n\nfunction Options({ children, emptyMessage, ...props }: OptionsProps & Props) {\n if (React.Children.count(children) === 0) {\n return (\n <MenuImperative.Options>\n <Box paddingLeft=\"lg\" {...props}>\n <Typography color=\"gray45\" intent=\"small\" italic>\n {emptyMessage}\n </Typography>\n </Box>\n </MenuImperative.Options>\n )\n }\n\n return <MenuImperative.Options>{children}</MenuImperative.Options>\n}\n\nconst TieredSelectMenu = React.forwardRef<\n HTMLDivElement,\n TieredSelectMenuProps\n>(function TieredSelectMenu(\n {\n children,\n currentTier,\n footer: customFooter,\n loading,\n loadingMore,\n menuRef,\n onNavigate,\n onSearch,\n onChange,\n options = empty,\n value,\n previousValue,\n ...props\n },\n ref\n) {\n const {\n getGroupId,\n getId,\n getLabel,\n getNextGroupId,\n i18nScope,\n onQuickCreate,\n onScrollBottom,\n isTierDisabled,\n } = React.useContext(TieredSelectContext)\n\n const quickCreateRef = React.useRef<HTMLInputElement>(null)\n\n const { hide } = useOverlayTriggerContext()\n\n const I18n = useI18nContext()\n\n const [isQuickCreating, setIsQuickCreating] = React.useState(false)\n\n const [searchValue, setSearchValue] = React.useState('')\n const { menuProps, menuNavigationTriggerProps } =\n useMenuImperativeControlNavigation(menuRef)\n\n const searchIsEmpty = searchValue === ''\n\n const lastEntryInValue = value[value.length - 1]\n\n const internalOnSearch = React.useCallback(\n function (e: React.ChangeEvent<HTMLInputElement>) {\n setSearchValue(e.target.value)\n onSearch && onSearch(e)\n },\n [onSearch]\n )\n\n // When searching (all options have been flattened) we dont filter by id\n const filteredOptions = React.useMemo(() => {\n return searchIsEmpty\n ? options.filter((tier) => {\n return getGroupId(tier) === currentTier\n })\n : options\n }, [currentTier, getGroupId, options, searchIsEmpty])\n\n useHighlightItemEffects({\n currentTier,\n searchValue,\n menuRef,\n loading,\n loadingMore,\n })\n\n const onNavigateHome = React.useCallback(\n function () {\n onNavigate(null, [])\n menuRef.current?.highlightFirst()\n },\n [menuRef, onNavigate]\n )\n\n const onBreadCrumbNavigate = React.useCallback(\n function (tier: Tier) {\n const newTier = value.indexOf(tier)\n onNavigate(getNextGroupId(tier), value.slice(0, newTier + 1))\n menuRef.current?.highlightFirst()\n },\n [getNextGroupId, menuRef, onNavigate, value]\n )\n\n function onNavigateForward(tier: Tier) {\n if (searchIsEmpty && !isQuickCreating && tier) {\n const newValue = [...value, tier]\n onNavigate(getNextGroupId(tier), newValue)\n menuRef.current?.highlightFirst()\n }\n }\n\n /**\n * need to skip back two levels if coming from a leaf node;\n * out from the leaf and then out of the parent. this is because\n * when tiers aren't selectectable we show the parent of the leaf\n */\n function onNavigateBackward() {\n if (value.length !== 0 && searchIsEmpty) {\n const newValue = value.slice(0, Math.max(0, value.length - 1))\n const newTier = value[value.length - 1]\n\n !isQuickCreating && onNavigate(getGroupId(newTier), newValue)\n menuRef.current?.highlightFirst()\n }\n }\n\n function onKeyDown(e: React.KeyboardEvent<HTMLDivElement>) {\n const tier = menuRef.current?.highlighted()\n if (e.key === 'Right' || e.key === 'ArrowRight') {\n onNavigateForward(tier)\n return\n }\n\n if (e.key === 'Left' || e.key === 'ArrowLeft') {\n onNavigateBackward()\n return\n }\n\n menuNavigationTriggerProps.onKeyDown?.(e)\n }\n\n function onTierSelect(selection: Selection) {\n const isSameGroup = value.length\n ? getGroupId(lastEntryInValue) === getGroupId(selection.item)\n : false\n\n // if the selection is in the same group as the old selection, replace the old selection\n const newValue = isSameGroup\n ? [...value.slice(0, value.length - 1), selection.item]\n : [...value, selection.item]\n\n onChange({ ...selection, value: newValue })\n searchValue &&\n internalOnSearch({\n target: { value: '' },\n } as React.ChangeEvent<HTMLInputElement>)\n hide(selection.event)\n }\n\n function showBreadcrumbs() {\n return value.length && searchIsEmpty\n }\n\n const menuEmptyMessage = searchIsEmpty\n ? I18n.t('emptyMessage', { scope: i18nScope })\n : I18n.t('searchEmptyMessage', { scope: i18nScope })\n\n const handleQuickCreate = React.useCallback(\n function (e: React.KeyboardEvent<HTMLButtonElement>) {\n // stops menu from selecting item and closing on enter press\n e.stopPropagation()\n if (e.key === 'Enter') {\n setIsQuickCreating(true)\n }\n },\n [setIsQuickCreating]\n )\n\n const onQuickCreateSubmit = React.useCallback(\n function () {\n onQuickCreate &&\n quickCreateRef.current &&\n onQuickCreate(quickCreateRef.current.value)\n setIsQuickCreating(false)\n },\n [onQuickCreate, quickCreateRef, setIsQuickCreating]\n )\n\n const RenderFooter = React.useCallback(() => {\n if (customFooter) {\n // Render custom footer, if defined.\n if (typeof customFooter === 'function') {\n return <MenuImperative.Footer>{customFooter({})}</MenuImperative.Footer>\n }\n\n return <MenuImperative.Footer>{customFooter}</MenuImperative.Footer>\n }\n\n if (onQuickCreate === undefined) {\n // no footer if `onQuickCreate` is not defined.\n return null\n }\n\n if (isQuickCreating) {\n // Render `Cancel` and `Create` labels if \"quick creating\".\n return (\n <MenuImperative.Footer>\n <FlexList size=\"xs\" justifyContent=\"flex-end\">\n <Button\n onClick={() => setIsQuickCreating(false)}\n size=\"sm\"\n variant=\"tertiary\"\n >\n {I18n.t('quickCreateCancelLabel', {\n scope: i18nScope,\n })}\n </Button>\n <Button onClick={onQuickCreateSubmit} size=\"sm\">\n {I18n.t('quickCreateCreateLabel', {\n scope: i18nScope,\n })}\n </Button>\n </FlexList>\n </MenuImperative.Footer>\n )\n }\n\n return (\n <MenuImperative.Footer>\n <Button\n block={true}\n icon={<Plus size=\"md\" />}\n onClick={() => setIsQuickCreating(true)}\n onKeyDown={handleQuickCreate}\n size=\"sm\"\n >\n {I18n.t('quickCreateActionLabel', {\n scope: i18nScope,\n })}\n </Button>\n </MenuImperative.Footer>\n )\n }, [\n I18n,\n customFooter,\n handleQuickCreate,\n i18nScope,\n isQuickCreating,\n onQuickCreate,\n onQuickCreateSubmit,\n ])\n\n function isTierSelected(tier: Tier) {\n if (previousValue.length) {\n return getId(tier) === getId(previousValue[previousValue.length - 1])\n }\n return false\n }\n\n return (\n <StyledTieredSelectOverlay ref={ref} shadowStrength={2}>\n <StyledTieredSelectSpinnerOverlay\n data-qa=\"tiered-select-loading\"\n data-loading={loading}\n loading={loading}\n label={I18n.t('spinnerLabel', { scope: i18nScope }) || ''}\n size=\"md\"\n >\n <StyledTieredSelect\n onScrollBottom={onScrollBottom}\n onSelect={onTierSelect}\n ref={menuRef}\n {...props}\n {...menuProps}\n role=\"none\"\n >\n <MenuImperative.Header>\n {!isQuickCreating && (\n <MenuImperative.Search\n autoComplete=\"false\"\n onChange={internalOnSearch}\n placeholder={I18n.t('searchPlaceholder', {\n scope: i18nScope,\n })}\n {...menuNavigationTriggerProps}\n onKeyDown={onKeyDown}\n />\n )}\n {showBreadcrumbs() ? (\n <StyledTieredSelectBreadcrumbs $nonInteractive={isQuickCreating}>\n <Breadcrumbs.Crumb onClick={onNavigateHome}>\n <StyledTieredSelectHome\n alignItems=\"center\"\n justifyContent=\"center\"\n >\n <Home data-qa=\"tiered-select-home\" />\n </StyledTieredSelectHome>\n </Breadcrumbs.Crumb>\n {value.map((tier, index, array) => {\n return (\n <Breadcrumbs.Crumb\n active={index === array.length - 1}\n key={`${getId(tier)}-${index}`}\n onClick={() => onBreadCrumbNavigate(tier)}\n >\n {getLabel(tier)}\n </Breadcrumbs.Crumb>\n )\n })}\n </StyledTieredSelectBreadcrumbs>\n ) : null}\n </MenuImperative.Header>\n {!isQuickCreating ? (\n <Options emptyMessage={menuEmptyMessage}>\n {filteredOptions\n .map((tier, index) => {\n const tooltip = isTierDisabled?.(tier) ?? false\n const isDisabled = Boolean(tooltip)\n const showNextTierArrow =\n !tooltip &&\n (Boolean(getNextGroupId(tier)) || Boolean(onQuickCreate))\n const overlay = typeof tooltip === 'string' ? tooltip : null\n const menuItem = (\n <StyledTieredSelectOption\n item={tier}\n key={`${getId(tier)}-${index}`}\n selected={isTierSelected(tier)}\n disabled={isDisabled}\n >\n {getLabel(tier)}\n {showNextTierArrow && (\n <Box paddingLeft=\"sm\">\n <ArrowButton\n data-qa=\"tiered-select-arrow\"\n onClick={() => onNavigateForward(tier)}\n />\n </Box>\n )}\n {tooltip && (\n <Box paddingLeft=\"sm\">\n <ItemTooltipIcon />\n </Box>\n )}\n </StyledTieredSelectOption>\n )\n if (isDisabled && overlay) {\n return (\n <Tooltip\n key={`${getId(tier)}-${index}-tooltip`}\n overlay={overlay}\n trigger={'hover'}\n placement=\"right\"\n >\n {menuItem}\n </Tooltip>\n )\n }\n\n return menuItem\n })\n .concat(\n loadingMore && !loading\n ? [\n <StyledTieredSelectLoadingMore\n data-qa=\"tiered-select-loading-more\"\n key={'tiered-select-loading-more'}\n >\n <Spinner size=\"sm\" />\n </StyledTieredSelectLoadingMore>,\n ]\n : []\n )}\n </Options>\n ) : (\n <QuickCreateInput\n autoFocus={isQuickCreating}\n onSubmit={onQuickCreateSubmit}\n placeholder={I18n.t('quickCreatePlaceholder', {\n scope: i18nScope,\n })}\n ref={quickCreateRef}\n />\n )}\n <RenderFooter />\n <CloseOnFocus hide={hide} />\n </StyledTieredSelect>\n </StyledTieredSelectSpinnerOverlay>\n </StyledTieredSelectOverlay>\n )\n})\n\nexport const TierSelectionTieredSelect = React.forwardRef<\n HTMLDivElement,\n InternalTieredSelectProps\n>(function TierSelectionTieredSelect(\n {\n className,\n disabled = false,\n error = false,\n loading = false,\n onKeyDown, // goes no where\n 'aria-labelledby': ariaLabelledby,\n options = empty,\n value = empty,\n ...props\n },\n ref\n) {\n const {\n afterHide,\n afterShow,\n beforeHide,\n beforeShow,\n block,\n getLabel,\n getNextGroupId,\n getValueString,\n i18nScope,\n isLeaf,\n onChange,\n onClear,\n onNavigate,\n onSearch,\n tabIndex,\n } = React.useContext(TieredSelectContext)\n const I18n = useI18nContext()\n\n const tieredSelectMenuRef = React.useRef<MenuRef>(null)\n const tieredSelectButtonRef = React.useRef<HTMLDivElement>(null)\n const clearRef = React.createRef<HTMLButtonElement>()\n\n const [valueString, setValueString] = React.useState<string | undefined>('')\n const [currentTier, setCurrentTier] = React.useState<Id>(null)\n\n // internal value used for navigation\n const [internalValue, setInternalValue] = React.useState<Tier[]>(value)\n // value to reset to if navigation occurs but no selection has been made\n const [previousValue, setPreviousValue] = React.useState<Tier[]>(value)\n\n // if value prop changes, update value state, current tier, and set button label\n // else open to root\n React.useEffect(\n function () {\n const lastEntryInValue = value[value.length - 1]\n\n if (value.length > 0) {\n setInternalValue(value)\n setPreviousValue(value)\n setValueString(getValueString(value))\n // show children of last tier in value\n setCurrentTier(getNextGroupId(lastEntryInValue))\n } else {\n setCurrentTier(null)\n setInternalValue([])\n setPreviousValue([])\n setValueString('')\n }\n },\n [getValueString, getNextGroupId, isLeaf, value]\n )\n\n const internalOnChange = React.useCallback(\n function (selection: TierSelection) {\n setInternalValue(selection.value)\n setPreviousValue(selection.value)\n setValueString(getValueString(selection.value))\n setCurrentTier(getNextGroupId(selection.item))\n onChange(selection)\n },\n [getNextGroupId, getValueString, onChange]\n )\n\n const internalOnNavigate = React.useCallback(\n function (nextGroupId: Id, value: any[]) {\n setInternalValue(value)\n setCurrentTier(nextGroupId)\n onNavigate && onNavigate(nextGroupId, value)\n },\n [onNavigate]\n )\n\n const internalOnClear = React.useCallback(\n function (event: React.MouseEvent<HTMLButtonElement>) {\n setValueString('')\n setInternalValue([])\n setPreviousValue([])\n internalOnNavigate(null, [])\n onClear && onClear(event)\n },\n [internalOnNavigate, onClear]\n )\n\n const internalOnSearch = React.useCallback(\n function (event: any) {\n onSearch && onSearch(event)\n },\n [onSearch]\n )\n\n const internalBeforeHide = React.useCallback(\n function (e: Event) {\n const isEscapeKey =\n e instanceof KeyboardEvent && (e.key === 'Escape' || e.key === 'Esc')\n\n const isClickOutside =\n e instanceof MouseEvent &&\n !isEventSource({ current: tieredSelectMenuRef?.current?.el }, e)\n\n const lastValue = previousValue[previousValue.length - 1]\n\n if (valueString && (isClickOutside || isEscapeKey)) {\n setInternalValue(previousValue)\n setCurrentTier(getNextGroupId(lastValue))\n }\n return beforeHide && beforeHide(e)\n },\n [\n beforeHide,\n getNextGroupId,\n tieredSelectMenuRef,\n previousValue,\n valueString,\n ]\n )\n\n return (\n <OverlayTrigger\n autoFocus\n afterHide={afterHide}\n afterShow={afterShow}\n beforeHide={internalBeforeHide}\n beforeShow={(e: Event) => {\n return beforeShow && e.target !== clearRef.current && beforeShow(e)\n }}\n canFlip={true}\n hideKeys={hideKeys}\n overlay={\n <TieredSelectMenu\n currentTier={currentTier}\n options={options}\n loading={loading}\n menuRef={tieredSelectMenuRef}\n onNavigate={internalOnNavigate}\n onSearch={internalOnSearch}\n onChange={internalOnChange}\n value={internalValue}\n previousValue={previousValue}\n {...props}\n onKeyDown={stopProp}\n />\n }\n placement=\"bottom-left\"\n ref={ref}\n trigger=\"click\"\n >\n <Select.Button\n block={block}\n className={className}\n clearRef={clearRef}\n disabled={disabled}\n error={error}\n label={valueString}\n loading={loading}\n placeholder={I18n.t('placeholder', { scope: i18nScope })}\n aria-labelledby={ariaLabelledby}\n onClear={internalOnClear}\n ref={tieredSelectButtonRef}\n tabIndex={tabIndex}\n >\n {valueString || I18n.t('placeholder', { scope: i18nScope })}\n </Select.Button>\n </OverlayTrigger>\n )\n})\n"],"mappings":"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"}
1
+ {"version":3,"file":"TierSelectionTieredSelect.js","names":["ChevronRight","Help","Home","Plus","React","Box","Breadcrumbs","Button","FlexList","Input","MenuImperative","useMenuImperativeControlNavigation","CloseOnFocus","OverlayTrigger","useOverlayTriggerContext","Select","Spinner","Tooltip","Typography","isEventSource","useI18nContext","TieredSelectContext","useHighlightItemEffects","StyledTieredSelect","StyledTieredSelectArrowButton","StyledTieredSelectBreadcrumbs","StyledTieredSelectHome","StyledTieredSelectIcon","StyledTieredSelectLoadingMore","StyledTieredSelectOption","StyledTieredSelectOverlay","StyledTieredSelectSpinnerOverlay","stopProp","e","key","stopPropagation","empty","hideKeys","overlay","target","ArrowButton","_ref","onClick","props","_objectWithoutProperties","_excluded","i18n","createElement","_extends","t","icon","event","preventDefault","size","tabIndex","variant","ItemTooltipIcon","alignItems","justifyContent","QuickCreateInput","forwardRef","_ref2","ref","autoFocus","onSubmit","placeholder","onKeyDown","currentTarget","value","flexGrow","padding","Options","_ref3","children","emptyMessage","_excluded2","Children","count","paddingLeft","color","intent","italic","TieredSelectMenu","_ref4","currentTier","customFooter","footer","loading","loadingMore","menuRef","onNavigate","onSearch","onChange","_ref4$options","options","previousValue","_excluded3","_React$useContext","useContext","getGroupId","getId","getLabel","getNextGroupId","i18nScope","onQuickCreate","onScrollBottom","isTierDisabled","searchPlaceholder","quickCreateRef","useRef","_useOverlayTriggerCon","hide","I18n","_React$useState","useState","_React$useState2","_slicedToArray","isQuickCreating","setIsQuickCreating","_React$useState3","_React$useState4","searchValue","setSearchValue","_useMenuImperativeCon","menuProps","menuNavigationTriggerProps","searchIsEmpty","lastEntryInValue","length","internalOnSearch","useCallback","filteredOptions","useMemo","filter","tier","onNavigateHome","_menuRef$current","current","highlightFirst","onBreadCrumbNavigate","_menuRef$current2","newTier","indexOf","slice","onNavigateForward","_menuRef$current3","newValue","concat","_toConsumableArray","onNavigateBackward","_menuRef$current4","Math","max","_menuRef$current5","_menuNavigationTrigge","highlighted","call","onTierSelect","selection","isSameGroup","item","_objectSpread","showBreadcrumbs","menuEmptyMessage","scope","handleQuickCreate","onQuickCreateSubmit","RenderFooter","Footer","undefined","block","isTierSelected","shadowStrength","label","onSelect","role","Header","Search","autoComplete","$nonInteractive","Crumb","map","index","array","active","_isTierDisabled","tooltip","isDisabled","Boolean","showNextTierArrow","menuItem","selected","disabled","trigger","placement","TierSelectionTieredSelect","_ref5","className","_ref5$disabled","_ref5$error","error","_ref5$loading","ariaLabelledby","_ref5$options","_ref5$value","_excluded4","_React$useContext2","afterHide","afterShow","beforeHide","beforeShow","getValueString","isLeaf","onClear","tieredSelectMenuRef","tieredSelectButtonRef","clearRef","createRef","_React$useState5","_React$useState6","valueString","setValueString","_React$useState7","_React$useState8","setCurrentTier","_React$useState9","_React$useState0","internalValue","setInternalValue","_React$useState1","_React$useState10","setPreviousValue","useEffect","internalOnChange","internalOnNavigate","nextGroupId","internalOnClear","internalBeforeHide","_tieredSelectMenuRef$","isEscapeKey","KeyboardEvent","isClickOutside","MouseEvent","el","lastValue","canFlip"],"sources":["../../src/TieredSelect/TierSelectionTieredSelect.tsx"],"sourcesContent":["import { ChevronRight, Help, Home, Plus } from '@procore/core-icons/dist'\nimport React from 'react'\nimport { Box } from '../Box'\nimport { Breadcrumbs } from '../Breadcrumbs'\nimport { Button } from '../Button'\nimport { FlexList } from '../FlexList'\nimport { Input } from '../Input'\nimport {\n MenuImperative,\n useMenuImperativeControlNavigation,\n} from '../MenuImperative/MenuImperative'\nimport type { MenuRef, Selection } from '../MenuImperative/MenuImperative.types'\nimport {\n CloseOnFocus,\n OverlayTrigger,\n useOverlayTriggerContext,\n} from '../OverlayTrigger/OverlayTrigger'\nimport { Select } from '../Select'\nimport { Spinner } from '../Spinner'\nimport { Tooltip } from '../Tooltip'\nimport { Typography } from '../Typography'\nimport { isEventSource } from '../_hooks/ClickOutside'\nimport { useI18nContext } from '../_hooks/I18n'\nimport type { Props } from '../_utils/types'\nimport { TieredSelectContext, useHighlightItemEffects } from './TieredSelect'\nimport {\n StyledTieredSelect,\n StyledTieredSelectArrowButton,\n StyledTieredSelectBreadcrumbs,\n StyledTieredSelectHome,\n StyledTieredSelectIcon,\n StyledTieredSelectLoadingMore,\n StyledTieredSelectOption,\n StyledTieredSelectOverlay,\n StyledTieredSelectSpinnerOverlay,\n} from './TieredSelect.styles'\nimport type {\n ArrowButtonProps,\n Id,\n InternalTieredSelectProps,\n OptionsProps,\n QuickCreateInputProps,\n Tier,\n TieredSelectMenuProps,\n TierSelection,\n} from './TieredSelect.types'\n\nfunction stopProp(e: React.KeyboardEvent<HTMLDivElement>) {\n if (e.key === 'Escape' || e.key === 'Esc') {\n e.stopPropagation()\n }\n}\n\nconst empty: any[] = []\n\nconst hideKeys = {\n overlay: ['Escape', 'Esc'],\n target: ['Escape', 'Esc'],\n}\n\nfunction ArrowButton({ onClick, ...props }: ArrowButtonProps) {\n const i18n = useI18nContext()\n return (\n <StyledTieredSelectArrowButton\n aria-label={i18n.t('core.tieredSelect.goToTier')}\n {...props}\n icon={<ChevronRight />}\n onClick={(event: React.MouseEvent) => {\n event.preventDefault()\n event.stopPropagation()\n onClick && onClick(event)\n }}\n size=\"sm\"\n tabIndex={-1}\n variant=\"tertiary\"\n />\n )\n}\n\nfunction ItemTooltipIcon() {\n return (\n <StyledTieredSelectIcon alignItems=\"center\" justifyContent=\"center\">\n <Help />\n </StyledTieredSelectIcon>\n )\n}\n\nconst QuickCreateInput = React.forwardRef<\n HTMLInputElement,\n QuickCreateInputProps\n>(function QuickCreateInput({ autoFocus, onSubmit, placeholder }, ref) {\n function onKeyDown(e: React.KeyboardEvent<HTMLInputElement>) {\n if (e.key === 'Enter') {\n onSubmit(e.currentTarget.value)\n }\n }\n\n return (\n <Box flexGrow=\"1\" justifyContent=\"center\" padding=\"md\">\n <Input\n autoFocus={autoFocus}\n onKeyDown={onKeyDown}\n placeholder={placeholder}\n ref={ref}\n />\n </Box>\n )\n})\n\nfunction Options({ children, emptyMessage, ...props }: OptionsProps & Props) {\n if (React.Children.count(children) === 0) {\n return (\n <MenuImperative.Options>\n <Box paddingLeft=\"lg\" {...props}>\n <Typography color=\"gray45\" intent=\"small\" italic>\n {emptyMessage}\n </Typography>\n </Box>\n </MenuImperative.Options>\n )\n }\n\n return <MenuImperative.Options>{children}</MenuImperative.Options>\n}\n\nconst TieredSelectMenu = React.forwardRef<\n HTMLDivElement,\n TieredSelectMenuProps\n>(function TieredSelectMenu(\n {\n children,\n currentTier,\n footer: customFooter,\n loading,\n loadingMore,\n menuRef,\n onNavigate,\n onSearch,\n onChange,\n options = empty,\n value,\n previousValue,\n ...props\n },\n ref\n) {\n const {\n getGroupId,\n getId,\n getLabel,\n getNextGroupId,\n i18nScope,\n onQuickCreate,\n onScrollBottom,\n isTierDisabled,\n searchPlaceholder,\n } = React.useContext(TieredSelectContext)\n\n const quickCreateRef = React.useRef<HTMLInputElement>(null)\n\n const { hide } = useOverlayTriggerContext()\n\n const I18n = useI18nContext()\n\n const [isQuickCreating, setIsQuickCreating] = React.useState(false)\n\n const [searchValue, setSearchValue] = React.useState('')\n const { menuProps, menuNavigationTriggerProps } =\n useMenuImperativeControlNavigation(menuRef)\n\n const searchIsEmpty = searchValue === ''\n\n const lastEntryInValue = value[value.length - 1]\n\n const internalOnSearch = React.useCallback(\n function (e: React.ChangeEvent<HTMLInputElement>) {\n setSearchValue(e.target.value)\n onSearch && onSearch(e)\n },\n [onSearch]\n )\n\n // When searching (all options have been flattened) we dont filter by id\n const filteredOptions = React.useMemo(() => {\n return searchIsEmpty\n ? options.filter((tier) => {\n return getGroupId(tier) === currentTier\n })\n : options\n }, [currentTier, getGroupId, options, searchIsEmpty])\n\n useHighlightItemEffects({\n currentTier,\n searchValue,\n menuRef,\n loading,\n loadingMore,\n })\n\n const onNavigateHome = React.useCallback(\n function () {\n onNavigate(null, [])\n menuRef.current?.highlightFirst()\n },\n [menuRef, onNavigate]\n )\n\n const onBreadCrumbNavigate = React.useCallback(\n function (tier: Tier) {\n const newTier = value.indexOf(tier)\n onNavigate(getNextGroupId(tier), value.slice(0, newTier + 1))\n menuRef.current?.highlightFirst()\n },\n [getNextGroupId, menuRef, onNavigate, value]\n )\n\n function onNavigateForward(tier: Tier) {\n if (searchIsEmpty && !isQuickCreating && tier) {\n const newValue = [...value, tier]\n onNavigate(getNextGroupId(tier), newValue)\n menuRef.current?.highlightFirst()\n }\n }\n\n /**\n * need to skip back two levels if coming from a leaf node;\n * out from the leaf and then out of the parent. this is because\n * when tiers aren't selectectable we show the parent of the leaf\n */\n function onNavigateBackward() {\n if (value.length !== 0 && searchIsEmpty) {\n const newValue = value.slice(0, Math.max(0, value.length - 1))\n const newTier = value[value.length - 1]\n\n !isQuickCreating && onNavigate(getGroupId(newTier), newValue)\n menuRef.current?.highlightFirst()\n }\n }\n\n function onKeyDown(e: React.KeyboardEvent<HTMLDivElement>) {\n const tier = menuRef.current?.highlighted()\n if (e.key === 'Right' || e.key === 'ArrowRight') {\n onNavigateForward(tier)\n return\n }\n\n if (e.key === 'Left' || e.key === 'ArrowLeft') {\n onNavigateBackward()\n return\n }\n\n menuNavigationTriggerProps.onKeyDown?.(e)\n }\n\n function onTierSelect(selection: Selection) {\n const isSameGroup = value.length\n ? getGroupId(lastEntryInValue) === getGroupId(selection.item)\n : false\n\n // if the selection is in the same group as the old selection, replace the old selection\n const newValue = isSameGroup\n ? [...value.slice(0, value.length - 1), selection.item]\n : [...value, selection.item]\n\n onChange({ ...selection, value: newValue })\n searchValue &&\n internalOnSearch({\n target: { value: '' },\n } as React.ChangeEvent<HTMLInputElement>)\n hide(selection.event)\n }\n\n function showBreadcrumbs() {\n return value.length && searchIsEmpty\n }\n\n const menuEmptyMessage = searchIsEmpty\n ? I18n.t('emptyMessage', { scope: i18nScope })\n : I18n.t('searchEmptyMessage', { scope: i18nScope })\n\n const handleQuickCreate = React.useCallback(\n function (e: React.KeyboardEvent<HTMLButtonElement>) {\n // stops menu from selecting item and closing on enter press\n e.stopPropagation()\n if (e.key === 'Enter') {\n setIsQuickCreating(true)\n }\n },\n [setIsQuickCreating]\n )\n\n const onQuickCreateSubmit = React.useCallback(\n function () {\n onQuickCreate &&\n quickCreateRef.current &&\n onQuickCreate(quickCreateRef.current.value)\n setIsQuickCreating(false)\n },\n [onQuickCreate, quickCreateRef, setIsQuickCreating]\n )\n\n const RenderFooter = React.useCallback(() => {\n if (customFooter) {\n // Render custom footer, if defined.\n if (typeof customFooter === 'function') {\n return <MenuImperative.Footer>{customFooter({})}</MenuImperative.Footer>\n }\n\n return <MenuImperative.Footer>{customFooter}</MenuImperative.Footer>\n }\n\n if (onQuickCreate === undefined) {\n // no footer if `onQuickCreate` is not defined.\n return null\n }\n\n if (isQuickCreating) {\n // Render `Cancel` and `Create` labels if \"quick creating\".\n return (\n <MenuImperative.Footer>\n <FlexList size=\"xs\" justifyContent=\"flex-end\">\n <Button\n onClick={() => setIsQuickCreating(false)}\n size=\"sm\"\n variant=\"tertiary\"\n >\n {I18n.t('quickCreateCancelLabel', {\n scope: i18nScope,\n })}\n </Button>\n <Button onClick={onQuickCreateSubmit} size=\"sm\">\n {I18n.t('quickCreateCreateLabel', {\n scope: i18nScope,\n })}\n </Button>\n </FlexList>\n </MenuImperative.Footer>\n )\n }\n\n return (\n <MenuImperative.Footer>\n <Button\n block={true}\n icon={<Plus size=\"md\" />}\n onClick={() => setIsQuickCreating(true)}\n onKeyDown={handleQuickCreate}\n size=\"sm\"\n >\n {I18n.t('quickCreateActionLabel', {\n scope: i18nScope,\n })}\n </Button>\n </MenuImperative.Footer>\n )\n }, [\n I18n,\n customFooter,\n handleQuickCreate,\n i18nScope,\n isQuickCreating,\n onQuickCreate,\n onQuickCreateSubmit,\n ])\n\n function isTierSelected(tier: Tier) {\n if (previousValue.length) {\n return getId(tier) === getId(previousValue[previousValue.length - 1])\n }\n return false\n }\n\n return (\n <StyledTieredSelectOverlay ref={ref} shadowStrength={2}>\n <StyledTieredSelectSpinnerOverlay\n data-qa=\"tiered-select-loading\"\n data-loading={loading}\n loading={loading}\n label={I18n.t('spinnerLabel', { scope: i18nScope }) || ''}\n size=\"md\"\n >\n <StyledTieredSelect\n onScrollBottom={onScrollBottom}\n onSelect={onTierSelect}\n ref={menuRef}\n {...props}\n {...menuProps}\n role=\"none\"\n >\n <MenuImperative.Header>\n {!isQuickCreating && (\n <MenuImperative.Search\n autoComplete=\"false\"\n onChange={internalOnSearch}\n placeholder={\n searchPlaceholder ||\n I18n.t('searchPlaceholder', {\n scope: i18nScope,\n })\n }\n value={searchValue}\n {...menuNavigationTriggerProps}\n onKeyDown={onKeyDown}\n />\n )}\n {showBreadcrumbs() ? (\n <StyledTieredSelectBreadcrumbs $nonInteractive={isQuickCreating}>\n <Breadcrumbs.Crumb onClick={onNavigateHome}>\n <StyledTieredSelectHome\n alignItems=\"center\"\n justifyContent=\"center\"\n >\n <Home data-qa=\"tiered-select-home\" />\n </StyledTieredSelectHome>\n </Breadcrumbs.Crumb>\n {value.map((tier, index, array) => {\n return (\n <Breadcrumbs.Crumb\n active={index === array.length - 1}\n key={`${getId(tier)}-${index}`}\n onClick={() => onBreadCrumbNavigate(tier)}\n >\n {getLabel(tier)}\n </Breadcrumbs.Crumb>\n )\n })}\n </StyledTieredSelectBreadcrumbs>\n ) : null}\n </MenuImperative.Header>\n {!isQuickCreating ? (\n <Options emptyMessage={menuEmptyMessage}>\n {filteredOptions\n .map((tier, index) => {\n const tooltip = isTierDisabled?.(tier) ?? false\n const isDisabled = Boolean(tooltip)\n const showNextTierArrow =\n !tooltip &&\n (Boolean(getNextGroupId(tier)) || Boolean(onQuickCreate))\n const overlay = typeof tooltip === 'string' ? tooltip : null\n const menuItem = (\n <StyledTieredSelectOption\n item={tier}\n key={`${getId(tier)}-${index}`}\n selected={isTierSelected(tier)}\n disabled={isDisabled}\n >\n {getLabel(tier)}\n {showNextTierArrow && (\n <Box paddingLeft=\"sm\">\n <ArrowButton\n data-qa=\"tiered-select-arrow\"\n onClick={() => onNavigateForward(tier)}\n />\n </Box>\n )}\n {tooltip && (\n <Box paddingLeft=\"sm\">\n <ItemTooltipIcon />\n </Box>\n )}\n </StyledTieredSelectOption>\n )\n if (isDisabled && overlay) {\n return (\n <Tooltip\n key={`${getId(tier)}-${index}-tooltip`}\n overlay={overlay}\n trigger={'hover'}\n placement=\"right\"\n >\n {menuItem}\n </Tooltip>\n )\n }\n\n return menuItem\n })\n .concat(\n loadingMore && !loading\n ? [\n <StyledTieredSelectLoadingMore\n data-qa=\"tiered-select-loading-more\"\n key={'tiered-select-loading-more'}\n >\n <Spinner size=\"sm\" />\n </StyledTieredSelectLoadingMore>,\n ]\n : []\n )}\n </Options>\n ) : (\n <QuickCreateInput\n autoFocus={isQuickCreating}\n onSubmit={onQuickCreateSubmit}\n placeholder={I18n.t('quickCreatePlaceholder', {\n scope: i18nScope,\n })}\n ref={quickCreateRef}\n />\n )}\n <RenderFooter />\n <CloseOnFocus hide={hide} />\n </StyledTieredSelect>\n </StyledTieredSelectSpinnerOverlay>\n </StyledTieredSelectOverlay>\n )\n})\n\nexport const TierSelectionTieredSelect = React.forwardRef<\n HTMLDivElement,\n InternalTieredSelectProps\n>(function TierSelectionTieredSelect(\n {\n className,\n disabled = false,\n error = false,\n loading = false,\n onKeyDown, // goes no where\n 'aria-labelledby': ariaLabelledby,\n options = empty,\n value = empty,\n ...props\n },\n ref\n) {\n const {\n afterHide,\n afterShow,\n beforeHide,\n beforeShow,\n block,\n getLabel,\n getNextGroupId,\n getValueString,\n i18nScope,\n isLeaf,\n onChange,\n onClear,\n onNavigate,\n onSearch,\n tabIndex,\n } = React.useContext(TieredSelectContext)\n const I18n = useI18nContext()\n\n const tieredSelectMenuRef = React.useRef<MenuRef>(null)\n const tieredSelectButtonRef = React.useRef<HTMLDivElement>(null)\n const clearRef = React.createRef<HTMLButtonElement>()\n\n const [valueString, setValueString] = React.useState<string | undefined>('')\n const [currentTier, setCurrentTier] = React.useState<Id>(null)\n\n // internal value used for navigation\n const [internalValue, setInternalValue] = React.useState<Tier[]>(value)\n // value to reset to if navigation occurs but no selection has been made\n const [previousValue, setPreviousValue] = React.useState<Tier[]>(value)\n\n // if value prop changes, update value state, current tier, and set button label\n // else open to root\n React.useEffect(\n function () {\n const lastEntryInValue = value[value.length - 1]\n\n if (value.length > 0) {\n setInternalValue(value)\n setPreviousValue(value)\n setValueString(getValueString(value))\n // show children of last tier in value\n setCurrentTier(getNextGroupId(lastEntryInValue))\n } else {\n setCurrentTier(null)\n setInternalValue([])\n setPreviousValue([])\n setValueString('')\n }\n },\n [getValueString, getNextGroupId, isLeaf, value]\n )\n\n const internalOnChange = React.useCallback(\n function (selection: TierSelection) {\n setInternalValue(selection.value)\n setPreviousValue(selection.value)\n setValueString(getValueString(selection.value))\n setCurrentTier(getNextGroupId(selection.item))\n onChange(selection)\n },\n [getNextGroupId, getValueString, onChange]\n )\n\n const internalOnNavigate = React.useCallback(\n function (nextGroupId: Id, value: any[]) {\n setInternalValue(value)\n setCurrentTier(nextGroupId)\n onNavigate && onNavigate(nextGroupId, value)\n },\n [onNavigate]\n )\n\n const internalOnClear = React.useCallback(\n function (event: React.MouseEvent<HTMLButtonElement>) {\n setValueString('')\n setInternalValue([])\n setPreviousValue([])\n internalOnNavigate(null, [])\n onClear && onClear(event)\n },\n [internalOnNavigate, onClear]\n )\n\n const internalOnSearch = React.useCallback(\n function (event: any) {\n onSearch && onSearch(event)\n },\n [onSearch]\n )\n\n const internalBeforeHide = React.useCallback(\n function (e: Event) {\n const isEscapeKey =\n e instanceof KeyboardEvent && (e.key === 'Escape' || e.key === 'Esc')\n\n const isClickOutside =\n e instanceof MouseEvent &&\n !isEventSource({ current: tieredSelectMenuRef?.current?.el }, e)\n\n const lastValue = previousValue[previousValue.length - 1]\n\n if (valueString && (isClickOutside || isEscapeKey)) {\n setInternalValue(previousValue)\n setCurrentTier(getNextGroupId(lastValue))\n }\n return beforeHide && beforeHide(e)\n },\n [\n beforeHide,\n getNextGroupId,\n tieredSelectMenuRef,\n previousValue,\n valueString,\n ]\n )\n\n return (\n <OverlayTrigger\n autoFocus\n afterHide={afterHide}\n afterShow={afterShow}\n beforeHide={internalBeforeHide}\n beforeShow={(e: Event) => {\n return beforeShow && e.target !== clearRef.current && beforeShow(e)\n }}\n canFlip={true}\n hideKeys={hideKeys}\n overlay={\n <TieredSelectMenu\n currentTier={currentTier}\n options={options}\n loading={loading}\n menuRef={tieredSelectMenuRef}\n onNavigate={internalOnNavigate}\n onSearch={internalOnSearch}\n onChange={internalOnChange}\n value={internalValue}\n previousValue={previousValue}\n {...props}\n onKeyDown={stopProp}\n />\n }\n placement=\"bottom-left\"\n ref={ref}\n trigger=\"click\"\n >\n <Select.Button\n block={block}\n className={className}\n clearRef={clearRef}\n disabled={disabled}\n error={error}\n label={valueString}\n loading={loading}\n placeholder={I18n.t('placeholder', { scope: i18nScope })}\n aria-labelledby={ariaLabelledby}\n onClear={internalOnClear}\n ref={tieredSelectButtonRef}\n tabIndex={tabIndex}\n >\n {valueString || I18n.t('placeholder', { scope: i18nScope })}\n </Select.Button>\n </OverlayTrigger>\n )\n})\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- var _excluded = ["afterHide", "afterShow", "beforeHide", "beforeShow", "block", "getGroupId", "getId", "getLabel", "getNextGroupId", "getValueString", "i18nScope", "onChange", "onClear", "onNavigate", "onQuickCreate", "onScrollBottom", "onSearch", "selectableTiers", "isTierDisabled", "tabIndex"];
1
+ var _excluded = ["afterHide", "afterShow", "beforeHide", "beforeShow", "block", "getGroupId", "getId", "getLabel", "getNextGroupId", "getValueString", "i18nScope", "onChange", "onClear", "onNavigate", "onQuickCreate", "onScrollBottom", "onSearch", "selectableTiers", "isTierDisabled", "tabIndex", "searchPlaceholder"];
2
2
  function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
3
3
  function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
4
4
  function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
@@ -152,6 +152,7 @@ export var TieredSelect = /*#__PURE__*/React.forwardRef(function TieredSelect(_r
152
152
  return false;
153
153
  } : _ref2$isTierDisabled,
154
154
  tabIndex = _ref2.tabIndex,
155
+ searchPlaceholder = _ref2.searchPlaceholder,
155
156
  props = _objectWithoutProperties(_ref2, _excluded);
156
157
  var isLeaf = React.useCallback(function (tier) {
157
158
  return !getNextGroupId(tier);
@@ -177,6 +178,7 @@ export var TieredSelect = /*#__PURE__*/React.forwardRef(function TieredSelect(_r
177
178
  onQuickCreate: onQuickCreate,
178
179
  onScrollBottom: onScrollBottom,
179
180
  onSearch: onSearch,
181
+ searchPlaceholder: searchPlaceholder,
180
182
  tabIndex: tabIndex
181
183
  }
182
184
  }, selectableTiers ? /*#__PURE__*/React.createElement(TierSelectionTieredSelect, _extends({
@@ -1 +1 @@
1
- {"version":3,"file":"TieredSelect.js","names":["React","LeafSelectionTieredSelect","TierSelectionTieredSelect","defaultGetGroupId","tier","groupId","defaultGetId","id","defaultGetLabel","label","defaultGetNextGroupId","nextGroupId","undefined","getFullPath","getLabel","arguments","length","getValueString","value","map","join","getLeafOnly","getValueStringFn","valueStringResolution","noop","always","useHighlightItemEffects","_ref","currentTier","searchValue","menuRef","loading","loadingMore","_React$useState","useState","_React$useState2","_slicedToArray","previousTier","setPreviousTier","useEffect","_React$useState3","_React$useState4","previousSearch","setPreviousSearch","currentMenuRef","current","highlightFirst","highlightLast","highlighted","TieredSelectContext","createContext","afterHide","afterShow","beforeHide","beforeShow","getGroupId","getId","getNextGroupId","i18nScope","onChange","TieredSelect","forwardRef","_ref2","ref","_ref2$afterHide","_ref2$afterShow","_ref2$beforeHide","_ref2$beforeShow","block","_ref2$getGroupId","_ref2$getId","_ref2$getLabel","_ref2$getNextGroupId","_ref2$getValueString","_ref2$i18nScope","_ref2$onChange","onClear","onNavigate","onQuickCreate","onScrollBottom","onSearch","_ref2$selectableTiers","selectableTiers","_ref2$isTierDisabled","isTierDisabled","tabIndex","props","_objectWithoutProperties","_excluded","isLeaf","useCallback","createElement","Provider","_extends"],"sources":["../../src/TieredSelect/TieredSelect.tsx"],"sourcesContent":["import React from 'react'\nimport type { MenuRef } from '../MenuImperative/MenuImperative.types'\nimport { LeafSelectionTieredSelect } from './LeafSelectionTieredSelect'\nimport type {\n GetValueStringFn,\n Id,\n Tier,\n TieredSelectApi,\n TieredSelectProps,\n} from './TieredSelect.types'\nimport { TierSelectionTieredSelect } from './TierSelectionTieredSelect'\n\nfunction defaultGetGroupId(tier: Tier) {\n return tier.groupId\n}\n\nfunction defaultGetId(tier: Tier) {\n return tier.id\n}\n\nfunction defaultGetLabel(tier: Tier) {\n return tier.label\n}\n\nfunction defaultGetNextGroupId(tier: Tier) {\n return tier.nextGroupId !== null ? (tier.nextGroupId as Id) : undefined\n}\n\nfunction getFullPath<T>(\n getLabel: TieredSelectProps['getLabel'] = defaultGetLabel\n): GetValueStringFn {\n return function getValueString(value: T[]) {\n return value.map((tier) => getLabel!(tier)).join(' > ')\n }\n}\n\nfunction getLeafOnly<T>(\n getLabel: TieredSelectProps['getLabel'] = defaultGetLabel\n): GetValueStringFn {\n return function getValueString(value: T[]) {\n return value.length ? getLabel(value[value.length - 1]) : ''\n }\n}\n\nfunction getValueStringFn(\n valueStringResolution: TieredSelectProps['getValueString'],\n getLabel: TieredSelectProps['getLabel'] = defaultGetLabel\n): GetValueStringFn {\n if (valueStringResolution === 'full-path') {\n return getFullPath(getLabel)\n }\n\n if (valueStringResolution === 'leaf-only') {\n return getLeafOnly(getLabel)\n }\n\n return valueStringResolution!\n}\n\nfunction noop() {}\n\nfunction always() {\n return true\n}\n\nexport const useHighlightItemEffects = ({\n currentTier,\n searchValue,\n menuRef,\n loading,\n loadingMore,\n}: {\n currentTier: Id\n searchValue: string\n menuRef: React.RefObject<MenuRef>\n loading: TieredSelectProps['loading']\n loadingMore: TieredSelectProps['loadingMore']\n}) => {\n const [previousTier, setPreviousTier] = React.useState<Id>()\n React.useEffect(() => {\n setPreviousTier(currentTier)\n }, [currentTier])\n\n const [previousSearch, setPreviousSearch] = React.useState<String>('')\n React.useEffect(() => {\n setPreviousSearch(searchValue)\n }, [searchValue])\n\n const currentMenuRef = menuRef.current\n React.useEffect(() => {\n if (previousSearch !== searchValue || previousTier !== currentTier) {\n currentMenuRef?.highlightFirst()\n }\n }, [currentMenuRef, currentTier, previousTier, searchValue, previousSearch])\n\n React.useEffect(() => {\n if (loadingMore) {\n currentMenuRef?.highlightLast(false)\n }\n }, [currentMenuRef, loadingMore])\n\n React.useEffect(() => {\n if (!loading && !currentMenuRef?.highlighted()) {\n currentMenuRef?.highlightFirst()\n }\n }, [currentMenuRef, loading])\n}\n\nexport const TieredSelectContext = React.createContext<TieredSelectApi>({\n afterHide: noop,\n afterShow: noop,\n beforeHide: always,\n beforeShow: always,\n getGroupId: defaultGetGroupId,\n getId: defaultGetId,\n getLabel: defaultGetLabel,\n getNextGroupId: defaultGetNextGroupId,\n getValueString: getFullPath(defaultGetLabel),\n i18nScope: 'core.tieredSelect',\n onChange: noop,\n})\n\n/**\n\n We use tiered selects to allow users to choose a single parent or child option\n that is nested within a tiered list. For example, choosing a location from\n within a list of tiered locations. We typically see these selects on forms.\n\n Other select components are group select, multi select, and select.\n @since 10.19.0\n\n @see [Storybook](https://stories.core.procore.com/?path=/story/core-react_demos-tieredselect--demo)\n\n @see [Design Guidelines](https://design.procore.com/tiered-select)\n\n */\nexport const TieredSelect = React.forwardRef<HTMLDivElement, TieredSelectProps>(\n function TieredSelect(\n {\n afterHide = noop,\n afterShow = noop,\n beforeHide = always,\n beforeShow = always,\n block,\n getGroupId = defaultGetGroupId,\n getId = defaultGetId,\n getLabel = defaultGetLabel,\n getNextGroupId = defaultGetNextGroupId,\n getValueString = getFullPath(getLabel),\n i18nScope = 'core.tieredSelect',\n onChange = noop,\n onClear,\n onNavigate,\n onQuickCreate,\n onScrollBottom,\n onSearch,\n selectableTiers = true,\n isTierDisabled = () => false,\n tabIndex,\n ...props\n },\n ref\n ) {\n const isLeaf = React.useCallback(\n function (tier: Tier) {\n return !getNextGroupId(tier)\n },\n [getNextGroupId]\n )\n\n return (\n <TieredSelectContext.Provider\n value={{\n afterHide,\n afterShow,\n beforeHide,\n beforeShow,\n block,\n getGroupId,\n getId,\n getLabel,\n getNextGroupId,\n getValueString: getValueStringFn(getValueString),\n i18nScope,\n isLeaf,\n isTierDisabled,\n onChange,\n onClear,\n onNavigate,\n onQuickCreate,\n onScrollBottom,\n onSearch,\n tabIndex,\n }}\n >\n {selectableTiers ? (\n <TierSelectionTieredSelect ref={ref} {...props} />\n ) : (\n <LeafSelectionTieredSelect ref={ref} {...props} />\n )}\n </TieredSelectContext.Provider>\n )\n }\n)\n"],"mappings":"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"}
1
+ {"version":3,"file":"TieredSelect.js","names":["React","LeafSelectionTieredSelect","TierSelectionTieredSelect","defaultGetGroupId","tier","groupId","defaultGetId","id","defaultGetLabel","label","defaultGetNextGroupId","nextGroupId","undefined","getFullPath","getLabel","arguments","length","getValueString","value","map","join","getLeafOnly","getValueStringFn","valueStringResolution","noop","always","useHighlightItemEffects","_ref","currentTier","searchValue","menuRef","loading","loadingMore","_React$useState","useState","_React$useState2","_slicedToArray","previousTier","setPreviousTier","useEffect","_React$useState3","_React$useState4","previousSearch","setPreviousSearch","currentMenuRef","current","highlightFirst","highlightLast","highlighted","TieredSelectContext","createContext","afterHide","afterShow","beforeHide","beforeShow","getGroupId","getId","getNextGroupId","i18nScope","onChange","TieredSelect","forwardRef","_ref2","ref","_ref2$afterHide","_ref2$afterShow","_ref2$beforeHide","_ref2$beforeShow","block","_ref2$getGroupId","_ref2$getId","_ref2$getLabel","_ref2$getNextGroupId","_ref2$getValueString","_ref2$i18nScope","_ref2$onChange","onClear","onNavigate","onQuickCreate","onScrollBottom","onSearch","_ref2$selectableTiers","selectableTiers","_ref2$isTierDisabled","isTierDisabled","tabIndex","searchPlaceholder","props","_objectWithoutProperties","_excluded","isLeaf","useCallback","createElement","Provider","_extends"],"sources":["../../src/TieredSelect/TieredSelect.tsx"],"sourcesContent":["import React from 'react'\nimport type { MenuRef } from '../MenuImperative/MenuImperative.types'\nimport { LeafSelectionTieredSelect } from './LeafSelectionTieredSelect'\nimport type {\n GetValueStringFn,\n Id,\n Tier,\n TieredSelectApi,\n TieredSelectProps,\n} from './TieredSelect.types'\nimport { TierSelectionTieredSelect } from './TierSelectionTieredSelect'\n\nfunction defaultGetGroupId(tier: Tier) {\n return tier.groupId\n}\n\nfunction defaultGetId(tier: Tier) {\n return tier.id\n}\n\nfunction defaultGetLabel(tier: Tier) {\n return tier.label\n}\n\nfunction defaultGetNextGroupId(tier: Tier) {\n return tier.nextGroupId !== null ? (tier.nextGroupId as Id) : undefined\n}\n\nfunction getFullPath<T>(\n getLabel: TieredSelectProps['getLabel'] = defaultGetLabel\n): GetValueStringFn {\n return function getValueString(value: T[]) {\n return value.map((tier) => getLabel!(tier)).join(' > ')\n }\n}\n\nfunction getLeafOnly<T>(\n getLabel: TieredSelectProps['getLabel'] = defaultGetLabel\n): GetValueStringFn {\n return function getValueString(value: T[]) {\n return value.length ? getLabel(value[value.length - 1]) : ''\n }\n}\n\nfunction getValueStringFn(\n valueStringResolution: TieredSelectProps['getValueString'],\n getLabel: TieredSelectProps['getLabel'] = defaultGetLabel\n): GetValueStringFn {\n if (valueStringResolution === 'full-path') {\n return getFullPath(getLabel)\n }\n\n if (valueStringResolution === 'leaf-only') {\n return getLeafOnly(getLabel)\n }\n\n return valueStringResolution!\n}\n\nfunction noop() {}\n\nfunction always() {\n return true\n}\n\nexport const useHighlightItemEffects = ({\n currentTier,\n searchValue,\n menuRef,\n loading,\n loadingMore,\n}: {\n currentTier: Id\n searchValue: string\n menuRef: React.RefObject<MenuRef>\n loading: TieredSelectProps['loading']\n loadingMore: TieredSelectProps['loadingMore']\n}) => {\n const [previousTier, setPreviousTier] = React.useState<Id>()\n React.useEffect(() => {\n setPreviousTier(currentTier)\n }, [currentTier])\n\n const [previousSearch, setPreviousSearch] = React.useState<String>('')\n React.useEffect(() => {\n setPreviousSearch(searchValue)\n }, [searchValue])\n\n const currentMenuRef = menuRef.current\n React.useEffect(() => {\n if (previousSearch !== searchValue || previousTier !== currentTier) {\n currentMenuRef?.highlightFirst()\n }\n }, [currentMenuRef, currentTier, previousTier, searchValue, previousSearch])\n\n React.useEffect(() => {\n if (loadingMore) {\n currentMenuRef?.highlightLast(false)\n }\n }, [currentMenuRef, loadingMore])\n\n React.useEffect(() => {\n if (!loading && !currentMenuRef?.highlighted()) {\n currentMenuRef?.highlightFirst()\n }\n }, [currentMenuRef, loading])\n}\n\nexport const TieredSelectContext = React.createContext<TieredSelectApi>({\n afterHide: noop,\n afterShow: noop,\n beforeHide: always,\n beforeShow: always,\n getGroupId: defaultGetGroupId,\n getId: defaultGetId,\n getLabel: defaultGetLabel,\n getNextGroupId: defaultGetNextGroupId,\n getValueString: getFullPath(defaultGetLabel),\n i18nScope: 'core.tieredSelect',\n onChange: noop,\n})\n\n/**\n\n We use tiered selects to allow users to choose a single parent or child option\n that is nested within a tiered list. For example, choosing a location from\n within a list of tiered locations. We typically see these selects on forms.\n\n Other select components are group select, multi select, and select.\n @since 10.19.0\n\n @see [Storybook](https://stories.core.procore.com/?path=/story/core-react_demos-tieredselect--demo)\n\n @see [Design Guidelines](https://design.procore.com/tiered-select)\n\n */\nexport const TieredSelect = React.forwardRef<HTMLDivElement, TieredSelectProps>(\n function TieredSelect(\n {\n afterHide = noop,\n afterShow = noop,\n beforeHide = always,\n beforeShow = always,\n block,\n getGroupId = defaultGetGroupId,\n getId = defaultGetId,\n getLabel = defaultGetLabel,\n getNextGroupId = defaultGetNextGroupId,\n getValueString = getFullPath(getLabel),\n i18nScope = 'core.tieredSelect',\n onChange = noop,\n onClear,\n onNavigate,\n onQuickCreate,\n onScrollBottom,\n onSearch,\n selectableTiers = true,\n isTierDisabled = () => false,\n tabIndex,\n searchPlaceholder,\n ...props\n },\n ref\n ) {\n const isLeaf = React.useCallback(\n function (tier: Tier) {\n return !getNextGroupId(tier)\n },\n [getNextGroupId]\n )\n\n return (\n <TieredSelectContext.Provider\n value={{\n afterHide,\n afterShow,\n beforeHide,\n beforeShow,\n block,\n getGroupId,\n getId,\n getLabel,\n getNextGroupId,\n getValueString: getValueStringFn(getValueString),\n i18nScope,\n isLeaf,\n isTierDisabled,\n onChange,\n onClear,\n onNavigate,\n onQuickCreate,\n onScrollBottom,\n onSearch,\n searchPlaceholder,\n tabIndex,\n }}\n >\n {selectableTiers ? (\n <TierSelectionTieredSelect ref={ref} {...props} />\n ) : (\n <LeafSelectionTieredSelect ref={ref} {...props} />\n )}\n </TieredSelectContext.Provider>\n )\n }\n)\n"],"mappings":";;;;;;;;;;AAAA,OAAOA,KAAK,MAAM,OAAO;AAEzB,SAASC,yBAAyB,QAAQ,6BAA6B;AAQvE,SAASC,yBAAyB,QAAQ,6BAA6B;AAEvE,SAASC,iBAAiBA,CAACC,IAAU,EAAE;EACrC,OAAOA,IAAI,CAACC,OAAO;AACrB;AAEA,SAASC,YAAYA,CAACF,IAAU,EAAE;EAChC,OAAOA,IAAI,CAACG,EAAE;AAChB;AAEA,SAASC,eAAeA,CAACJ,IAAU,EAAE;EACnC,OAAOA,IAAI,CAACK,KAAK;AACnB;AAEA,SAASC,qBAAqBA,CAACN,IAAU,EAAE;EACzC,OAAOA,IAAI,CAACO,WAAW,KAAK,IAAI,GAAIP,IAAI,CAACO,WAAW,GAAUC,SAAS;AACzE;AAEA,SAASC,WAAWA,CAAA,EAEA;EAAA,IADlBC,QAAuC,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAH,SAAA,GAAAG,SAAA,MAAGP,eAAe;EAEzD,OAAO,SAASS,cAAcA,CAACC,KAAU,EAAE;IACzC,OAAOA,KAAK,CAACC,GAAG,CAAC,UAACf,IAAI;MAAA,OAAKU,QAAQ,CAAEV,IAAI,CAAC;IAAA,EAAC,CAACgB,IAAI,CAAC,KAAK,CAAC;EACzD,CAAC;AACH;AAEA,SAASC,WAAWA,CAAA,EAEA;EAAA,IADlBP,QAAuC,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAH,SAAA,GAAAG,SAAA,MAAGP,eAAe;EAEzD,OAAO,SAASS,cAAcA,CAACC,KAAU,EAAE;IACzC,OAAOA,KAAK,CAACF,MAAM,GAAGF,QAAQ,CAACI,KAAK,CAACA,KAAK,CAACF,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE;EAC9D,CAAC;AACH;AAEA,SAASM,gBAAgBA,CACvBC,qBAA0D,EAExC;EAAA,IADlBT,QAAuC,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAH,SAAA,GAAAG,SAAA,MAAGP,eAAe;EAEzD,IAAIe,qBAAqB,KAAK,WAAW,EAAE;IACzC,OAAOV,WAAW,CAACC,QAAQ,CAAC;EAC9B;EAEA,IAAIS,qBAAqB,KAAK,WAAW,EAAE;IACzC,OAAOF,WAAW,CAACP,QAAQ,CAAC;EAC9B;EAEA,OAAOS,qBAAqB;AAC9B;AAEA,SAASC,IAAIA,CAAA,EAAG,CAAC;AAEjB,SAASC,MAAMA,CAAA,EAAG;EAChB,OAAO,IAAI;AACb;AAEA,OAAO,IAAMC,uBAAuB,GAAG,SAA1BA,uBAAuBA,CAAAC,IAAA,EAY9B;EAAA,IAXJC,WAAW,GAAAD,IAAA,CAAXC,WAAW;IACXC,WAAW,GAAAF,IAAA,CAAXE,WAAW;IACXC,OAAO,GAAAH,IAAA,CAAPG,OAAO;IACPC,OAAO,GAAAJ,IAAA,CAAPI,OAAO;IACPC,WAAW,GAAAL,IAAA,CAAXK,WAAW;EAQX,IAAAC,eAAA,GAAwCjC,KAAK,CAACkC,QAAQ,CAAK,CAAC;IAAAC,gBAAA,GAAAC,cAAA,CAAAH,eAAA;IAArDI,YAAY,GAAAF,gBAAA;IAAEG,eAAe,GAAAH,gBAAA;EACpCnC,KAAK,CAACuC,SAAS,CAAC,YAAM;IACpBD,eAAe,CAACV,WAAW,CAAC;EAC9B,CAAC,EAAE,CAACA,WAAW,CAAC,CAAC;EAEjB,IAAAY,gBAAA,GAA4CxC,KAAK,CAACkC,QAAQ,CAAS,EAAE,CAAC;IAAAO,gBAAA,GAAAL,cAAA,CAAAI,gBAAA;IAA/DE,cAAc,GAAAD,gBAAA;IAAEE,iBAAiB,GAAAF,gBAAA;EACxCzC,KAAK,CAACuC,SAAS,CAAC,YAAM;IACpBI,iBAAiB,CAACd,WAAW,CAAC;EAChC,CAAC,EAAE,CAACA,WAAW,CAAC,CAAC;EAEjB,IAAMe,cAAc,GAAGd,OAAO,CAACe,OAAO;EACtC7C,KAAK,CAACuC,SAAS,CAAC,YAAM;IACpB,IAAIG,cAAc,KAAKb,WAAW,IAAIQ,YAAY,KAAKT,WAAW,EAAE;MAClEgB,cAAc,aAAdA,cAAc,uBAAdA,cAAc,CAAEE,cAAc,CAAC,CAAC;IAClC;EACF,CAAC,EAAE,CAACF,cAAc,EAAEhB,WAAW,EAAES,YAAY,EAAER,WAAW,EAAEa,cAAc,CAAC,CAAC;EAE5E1C,KAAK,CAACuC,SAAS,CAAC,YAAM;IACpB,IAAIP,WAAW,EAAE;MACfY,cAAc,aAAdA,cAAc,uBAAdA,cAAc,CAAEG,aAAa,CAAC,KAAK,CAAC;IACtC;EACF,CAAC,EAAE,CAACH,cAAc,EAAEZ,WAAW,CAAC,CAAC;EAEjChC,KAAK,CAACuC,SAAS,CAAC,YAAM;IACpB,IAAI,CAACR,OAAO,IAAI,EAACa,cAAc,aAAdA,cAAc,eAAdA,cAAc,CAAEI,WAAW,CAAC,CAAC,GAAE;MAC9CJ,cAAc,aAAdA,cAAc,uBAAdA,cAAc,CAAEE,cAAc,CAAC,CAAC;IAClC;EACF,CAAC,EAAE,CAACF,cAAc,EAAEb,OAAO,CAAC,CAAC;AAC/B,CAAC;AAED,OAAO,IAAMkB,mBAAmB,gBAAGjD,KAAK,CAACkD,aAAa,CAAkB;EACtEC,SAAS,EAAE3B,IAAI;EACf4B,SAAS,EAAE5B,IAAI;EACf6B,UAAU,EAAE5B,MAAM;EAClB6B,UAAU,EAAE7B,MAAM;EAClB8B,UAAU,EAAEpD,iBAAiB;EAC7BqD,KAAK,EAAElD,YAAY;EACnBQ,QAAQ,EAAEN,eAAe;EACzBiD,cAAc,EAAE/C,qBAAqB;EACrCO,cAAc,EAAEJ,WAAW,CAACL,eAAe,CAAC;EAC5CkD,SAAS,EAAE,mBAAmB;EAC9BC,QAAQ,EAAEnC;AACZ,CAAC,CAAC;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,IAAMoC,YAAY,gBAAG5D,KAAK,CAAC6D,UAAU,CAC1C,SAASD,YAAYA,CAAAE,KAAA,EAyBnBC,GAAG,EACH;EAAA,IAAAC,eAAA,GAAAF,KAAA,CAxBEX,SAAS;IAATA,SAAS,GAAAa,eAAA,cAAGxC,IAAI,GAAAwC,eAAA;IAAAC,eAAA,GAAAH,KAAA,CAChBV,SAAS;IAATA,SAAS,GAAAa,eAAA,cAAGzC,IAAI,GAAAyC,eAAA;IAAAC,gBAAA,GAAAJ,KAAA,CAChBT,UAAU;IAAVA,UAAU,GAAAa,gBAAA,cAAGzC,MAAM,GAAAyC,gBAAA;IAAAC,gBAAA,GAAAL,KAAA,CACnBR,UAAU;IAAVA,UAAU,GAAAa,gBAAA,cAAG1C,MAAM,GAAA0C,gBAAA;IACnBC,KAAK,GAAAN,KAAA,CAALM,KAAK;IAAAC,gBAAA,GAAAP,KAAA,CACLP,UAAU;IAAVA,UAAU,GAAAc,gBAAA,cAAGlE,iBAAiB,GAAAkE,gBAAA;IAAAC,WAAA,GAAAR,KAAA,CAC9BN,KAAK;IAALA,KAAK,GAAAc,WAAA,cAAGhE,YAAY,GAAAgE,WAAA;IAAAC,cAAA,GAAAT,KAAA,CACpBhD,QAAQ;IAARA,QAAQ,GAAAyD,cAAA,cAAG/D,eAAe,GAAA+D,cAAA;IAAAC,oBAAA,GAAAV,KAAA,CAC1BL,cAAc;IAAdA,cAAc,GAAAe,oBAAA,cAAG9D,qBAAqB,GAAA8D,oBAAA;IAAAC,oBAAA,GAAAX,KAAA,CACtC7C,cAAc;IAAdA,cAAc,GAAAwD,oBAAA,cAAG5D,WAAW,CAACC,QAAQ,CAAC,GAAA2D,oBAAA;IAAAC,eAAA,GAAAZ,KAAA,CACtCJ,SAAS;IAATA,SAAS,GAAAgB,eAAA,cAAG,mBAAmB,GAAAA,eAAA;IAAAC,cAAA,GAAAb,KAAA,CAC/BH,QAAQ;IAARA,QAAQ,GAAAgB,cAAA,cAAGnD,IAAI,GAAAmD,cAAA;IACfC,OAAO,GAAAd,KAAA,CAAPc,OAAO;IACPC,UAAU,GAAAf,KAAA,CAAVe,UAAU;IACVC,aAAa,GAAAhB,KAAA,CAAbgB,aAAa;IACbC,cAAc,GAAAjB,KAAA,CAAdiB,cAAc;IACdC,QAAQ,GAAAlB,KAAA,CAARkB,QAAQ;IAAAC,qBAAA,GAAAnB,KAAA,CACRoB,eAAe;IAAfA,eAAe,GAAAD,qBAAA,cAAG,IAAI,GAAAA,qBAAA;IAAAE,oBAAA,GAAArB,KAAA,CACtBsB,cAAc;IAAdA,cAAc,GAAAD,oBAAA,cAAG;MAAA,OAAM,KAAK;IAAA,IAAAA,oBAAA;IAC5BE,QAAQ,GAAAvB,KAAA,CAARuB,QAAQ;IACRC,iBAAiB,GAAAxB,KAAA,CAAjBwB,iBAAiB;IACdC,KAAK,GAAAC,wBAAA,CAAA1B,KAAA,EAAA2B,SAAA;EAIV,IAAMC,MAAM,GAAG1F,KAAK,CAAC2F,WAAW,CAC9B,UAAUvF,IAAU,EAAE;IACpB,OAAO,CAACqD,cAAc,CAACrD,IAAI,CAAC;EAC9B,CAAC,EACD,CAACqD,cAAc,CACjB,CAAC;EAED,oBACEzD,KAAA,CAAA4F,aAAA,CAAC3C,mBAAmB,CAAC4C,QAAQ;IAC3B3E,KAAK,EAAE;MACLiC,SAAS,EAATA,SAAS;MACTC,SAAS,EAATA,SAAS;MACTC,UAAU,EAAVA,UAAU;MACVC,UAAU,EAAVA,UAAU;MACVc,KAAK,EAALA,KAAK;MACLb,UAAU,EAAVA,UAAU;MACVC,KAAK,EAALA,KAAK;MACL1C,QAAQ,EAARA,QAAQ;MACR2C,cAAc,EAAdA,cAAc;MACdxC,cAAc,EAAEK,gBAAgB,CAACL,cAAc,CAAC;MAChDyC,SAAS,EAATA,SAAS;MACTgC,MAAM,EAANA,MAAM;MACNN,cAAc,EAAdA,cAAc;MACdzB,QAAQ,EAARA,QAAQ;MACRiB,OAAO,EAAPA,OAAO;MACPC,UAAU,EAAVA,UAAU;MACVC,aAAa,EAAbA,aAAa;MACbC,cAAc,EAAdA,cAAc;MACdC,QAAQ,EAARA,QAAQ;MACRM,iBAAiB,EAAjBA,iBAAiB;MACjBD,QAAQ,EAARA;IACF;EAAE,GAEDH,eAAe,gBACdlF,KAAA,CAAA4F,aAAA,CAAC1F,yBAAyB,EAAA4F,QAAA;IAAC/B,GAAG,EAAEA;EAAI,GAAKwB,KAAK,CAAG,CAAC,gBAElDvF,KAAA,CAAA4F,aAAA,CAAC3F,yBAAyB,EAAA6F,QAAA;IAAC/B,GAAG,EAAEA;EAAI,GAAKwB,KAAK,CAAG,CAEvB,CAAC;AAEnC,CACF,CAAC"}
@@ -10,7 +10,7 @@ export declare const StyledTieredSelect: import("styled-components/dist/types").
10
10
  Item: import("../_utils/polymorphic").PolymorphicAs.ComponentWithForwardedRef<import("../MenuImperative/MenuImperative.types").MenuItemProps, import("../MenuImperative/MenuImperative.types").MenuItemDefaultElement>;
11
11
  Options: import("react").ForwardRefExoticComponent<import("../MenuImperative/MenuImperative.types").OptionsProps & import("react").RefAttributes<HTMLDivElement>>;
12
12
  Search: {
13
- ({ className, i18nScope, placeholder, onChange: _onChange, ...props }: import("../MenuImperative/MenuImperative.types").MenuSearchProps): import("react").JSX.Element;
13
+ ({ className, i18nScope, placeholder, onChange: _onChange, value: valueProp, ...props }: import("../MenuImperative/MenuImperative.types").MenuSearchProps): import("react").JSX.Element;
14
14
  displayName: string;
15
15
  };
16
16
  }, keyof import("react").Component<any, {}, any>>;
@@ -9,19 +9,19 @@ import { colors } from '../_styles/colors';
9
9
  import { spacing } from '../_styles/spacing';
10
10
  export var StyledTieredSelect = /*#__PURE__*/styled(MenuImperative).withConfig({
11
11
  displayName: "StyledTieredSelect",
12
- componentId: "core-12_33_0__sc-e1ql06-0"
12
+ componentId: "core-12_34_0__sc-e1ql06-0"
13
13
  })(["align-items:stretch;max-height:40vh;"]);
14
14
  export var StyledTieredSelectIcon = /*#__PURE__*/styled(Flex).withConfig({
15
15
  displayName: "StyledTieredSelectIcon",
16
- componentId: "core-12_33_0__sc-e1ql06-1"
16
+ componentId: "core-12_34_0__sc-e1ql06-1"
17
17
  })(["height:24px;width:24px;"]);
18
18
  export var StyledTieredSelectArrowButton = /*#__PURE__*/styled(Button).withConfig({
19
19
  displayName: "StyledTieredSelectArrowButton",
20
- componentId: "core-12_33_0__sc-e1ql06-2"
20
+ componentId: "core-12_34_0__sc-e1ql06-2"
21
21
  })(["border:1px solid transparent;"]);
22
22
  export var StyledTieredSelectBreadcrumbs = /*#__PURE__*/styled(Breadcrumbs).withConfig({
23
23
  displayName: "StyledTieredSelectBreadcrumbs",
24
- componentId: "core-12_33_0__sc-e1ql06-3"
24
+ componentId: "core-12_34_0__sc-e1ql06-3"
25
25
  })(["background-color:", ";flex-wrap:wrap;margin-top:", "px;max-height:68px;overflow-y:auto;padding:", "px ", "px;", ""], colors.gray96, spacing.sm, spacing.xs, spacing.md, function (_ref) {
26
26
  var $nonInteractive = _ref.$nonInteractive;
27
27
  if ($nonInteractive) {
@@ -30,22 +30,22 @@ export var StyledTieredSelectBreadcrumbs = /*#__PURE__*/styled(Breadcrumbs).with
30
30
  });
31
31
  export var StyledTieredSelectHome = /*#__PURE__*/styled(Flex).withConfig({
32
32
  displayName: "StyledTieredSelectHome",
33
- componentId: "core-12_33_0__sc-e1ql06-4"
33
+ componentId: "core-12_34_0__sc-e1ql06-4"
34
34
  })(["height:20px;"]);
35
35
  export var StyledTieredSelectOption = /*#__PURE__*/styled(MenuImperative.Item).withConfig({
36
36
  displayName: "StyledTieredSelectOption",
37
- componentId: "core-12_33_0__sc-e1ql06-5"
37
+ componentId: "core-12_34_0__sc-e1ql06-5"
38
38
  })(["align-items:center;display:flex;justify-content:space-between;padding:2px ", "px;"], spacing.lg);
39
39
  export var StyledTieredSelectLoadingMore = /*#__PURE__*/styled(Flex).withConfig({
40
40
  displayName: "StyledTieredSelectLoadingMore",
41
- componentId: "core-12_33_0__sc-e1ql06-6"
41
+ componentId: "core-12_34_0__sc-e1ql06-6"
42
42
  })(["align-items:center;justify-content:center;padding:", "px ", "px 0px ", "px;"], spacing.xs, spacing.lg, spacing.lg);
43
43
  export var StyledTieredSelectOverlay = /*#__PURE__*/styled(Card).withConfig({
44
44
  displayName: "StyledTieredSelectOverlay",
45
- componentId: "core-12_33_0__sc-e1ql06-7"
45
+ componentId: "core-12_34_0__sc-e1ql06-7"
46
46
  })(["max-width:248px;min-width:inherit;"]);
47
47
  export var StyledTieredSelectSpinnerOverlay = /*#__PURE__*/styled(Spinner).withConfig({
48
48
  displayName: "StyledTieredSelectSpinnerOverlay",
49
- componentId: "core-12_33_0__sc-e1ql06-8"
49
+ componentId: "core-12_34_0__sc-e1ql06-8"
50
50
  })(["min-height:auto;"]);
51
51
  //# sourceMappingURL=TieredSelect.styles.js.map
@@ -222,6 +222,12 @@ export interface TieredSelectApi {
222
222
  * @since 10.19.0
223
223
  */
224
224
  tabIndex?: number;
225
+ /**
226
+ * Custom placeholder text for the search input field. If not provided,
227
+ * defaults to the i18n translation for 'searchPlaceholder'.
228
+ * @since 12.34.0
229
+ */
230
+ searchPlaceholder?: string;
225
231
  }
226
232
  export interface TieredSelectProps extends Partial<Omit<TieredSelectApi, 'getValueString'>>, Omit<Div, 'onSelect' | 'onChange'> {
227
233
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"TieredSelect.types.js","names":[],"sources":["../../src/TieredSelect/TieredSelect.types.ts"],"sourcesContent":["import type React from 'react'\nimport type { MenuRef, Selection } from '../MenuImperative/MenuImperative.types'\nimport type { SelectProps } from '../Select/Select.types'\n\nexport type GetValueStringFn = (value: any[]) => string | undefined\n\nexport type GetValueString = 'full-path' | 'leaf-only' | GetValueStringFn\n\nexport type Div = React.ComponentPropsWithoutRef<'div'>\n\nexport type Id = number | string | null | undefined\n\n// all keys are optional since data shape can custom\nexport interface Tier {\n /**\n * @since 10.19.0\n */\n id?: Id\n /**\n * @since 10.19.0\n */\n label?: string\n /**\n * @since 10.19.0\n */\n nextGroupId?: Id\n /**\n * @since 10.19.0\n */\n groupId?: Id\n}\n\nexport interface TierSelection extends Selection {\n /**\n * @since 10.19.0\n */\n value: any[]\n}\n\nexport interface InternalTieredSelectProps\n extends Omit<Div, 'onSelect' | 'onChange'> {\n /**\n * @since 10.19.0\n */\n block?: SelectProps['block']\n /**\n * @since 10.19.0\n */\n disabled?: SelectProps['disabled']\n /**\n * @since 10.19.0\n */\n error?: SelectProps['error']\n /**\n * @since 10.19.0\n */\n loading?: SelectProps['loading']\n /**\n * @since 10.19.0\n */\n options?: any[]\n /**\n * @since 10.19.0\n */\n value?: any[]\n /**\n * @since 12.24.0\n */\n 'aria-labelledby'?: string\n}\n\nexport interface TieredSelectApi {\n /**\n * @since 10.19.0\n */\n afterHide: SelectProps['afterHide']\n /**\n * @since 10.19.0\n */\n afterShow: SelectProps['afterShow']\n /**\n * @since 10.19.0\n */\n beforeHide: SelectProps['beforeHide']\n /**\n * @since 10.19.0\n */\n beforeShow: SelectProps['beforeShow']\n /**\n * @since 10.19.0\n */\n block?: boolean\n\n /**\n * Callback for using a custom `tier` shape\n * ```\n * (tier: any) => Id\n * ```\n * Defaults to\n * ```\n * (tier: any) => tier.GroupId\n * ```\n * @since 10.19.0\n */\n getGroupId: (tier: any) => Id\n\n /**\n * Callback for using a custom `tier` shape\n * ```\n * (tier: any) => Id\n * ```\n * Defaults to\n * ```\n * (tier: any) => tier.Id\n * ```\n * @since 10.19.0\n */\n getId: (tier: any) => Id\n\n /**\n * Callback for using a custom `tier` shape\n * ```\n * (tier: any) => string\n * ```\n * Defaults to\n * ```\n * (tier: any) => tier.Label\n * ```\n * @since 10.19.0\n */\n getLabel: (tier: any) => string | undefined\n\n /**\n * Callback for using a custom `tier` shape\n * ```\n * (tier: any) => Id\n * ```\n * Defaults to\n * ```\n * (tier: any) => tier.NextGroupId\n * ```\n * @since 10.19.0\n */\n getNextGroupId: (tier: any) => Id\n\n /**\n * Predefined strings or a callback for using a custom `value` string\n * ```\n * (value: any[]) => string | undefined\n * ```\n * Defaults to\n * ```\n * (value: any[]) => value.map((tier) => getLabel!(tier)).join(\" > \")\n * ```\n * @since 10.19.0\n */\n getValueString: GetValueStringFn\n\n /**\n * The i18n key to use for the tiered select's configurable strings.\n * Defaults to using the core library's default strings.\n * @since 10.19.0\n */\n i18nScope: string\n /**\n * @since 10.19.0\n */\n isTierDisabled?: (tier: any) => boolean | string | undefined\n /**\n * @since 10.19.0\n */\n isLeaf?: (tier: any) => boolean\n\n /**\n * Used to display a loading indicator as the last item of the list. Can\n * be used with `onScrollBottom` or `onSearch`\n * (empty `options` during search async call) to indicate the\n * loading of new items.\n * @since 10.19.0\n */\n loadingMore?: boolean\n\n /**\n * Callback for selecting an item from the tiered select. Returns the\n * `Selection` object from the `Menu` api, along\n * with the updated `value`\n * ```\n * (Selection: { event, item, group }, value) =>\n * ```\n * @since 10.19.0\n */\n onChange: (selection: TierSelection) => void\n\n /**\n * Callback for when the x icon is pressed.\n * ```\n * (event) =>\n * ```\n * @since 10.19.0\n */\n onClear?: SelectProps['onClear']\n\n /**\n * Callback for when navigation occurs. Triggered by the left and right\n * arrow keys, or clicking a navigable item. Returns the id of the next\n * group that will be navigated to, and the updated path.\n * ```\n * (nextGroupId: string | number | undefined, path: any[]) =>\n * ```\n * @since 10.19.0\n */\n onNavigate?: (nextGroupId: Id, value: any[]) => void\n\n /**\n * Pass this callback when a quick create experience is desired. Called\n * when the \"create\" button in quick create mode is clicked. Returns the\n * value of the quick create input.\n * ```\n * (string) =>\n * ```\n * @since 10.19.0\n */\n onQuickCreate?: (name: string) => void\n\n /**\n * Called when the selection menu is scrolled to the bottom. Can be\n * combined with `loadingMore` for an async infinite scrolling menu.\n * ```\n * (event) =>\n * ```\n * @since 10.19.0\n */\n onScrollBottom?: SelectProps['onScrollBottom']\n\n /**\n * Called when searching the TieredSelect. Behavior must be controlled by\n * implementor\n * ```\n * (event) =>\n * ```\n * @since 10.19.0\n */\n onSearch?: SelectProps['onSearch']\n /**\n * @since 10.19.0\n */\n tabIndex?: number\n}\nexport interface TieredSelectProps\n extends Partial<Omit<TieredSelectApi, 'getValueString'>>,\n Omit<Div, 'onSelect' | 'onChange'> {\n /**\n * @since 10.19.0\n */\n block?: SelectProps['block']\n /**\n * @since 10.19.0\n */\n disabled?: SelectProps['disabled']\n /**\n * @since 10.19.0\n */\n error?: SelectProps['error']\n /**\n * Prop to define a custom footer for the tiered select. Accepts a `React.ReactNode`. Takes precedence over quick create footer.\n *\n * Example:\n * ```tsx\n * <TieredSelect\n * ...\n * footer={<div>Custom Footer</div>}\n * ...\n * />\n * ```\n *\n * @default undefined\n * @since 11.4.0\n */\n footer?: React.ReactNode | React.FunctionComponent\n /**\n * @since 10.19.0\n */\n getValueString?: GetValueString\n /**\n * @since 10.19.0\n */\n loading?: SelectProps['loading']\n /**\n * Flat array of tier objects, this array is used as data for the component\n * @since 10.19.0\n */\n options?: any[]\n\n /**\n * If true, any tier is selectable. If false, only leaf nodes are selectable\n * @default true\n * @since 10.19.0\n */\n selectableTiers?: boolean\n\n /**\n * Flat array of tier objects that represents the selected value\n * @since 10.19.0\n */\n value?: any[]\n}\n\nexport interface TieredSelectMenuProps\n extends Omit<Div, 'onSelect' | 'onChange' | 'onDragEnd'>,\n Pick<TieredSelectProps, 'footer' | 'loading' | 'loadingMore' | 'options'> {\n /**\n * @since 10.19.0\n */\n currentTier: Id\n /**\n * @since 10.19.0\n */\n menuRef: React.RefObject<MenuRef>\n /**\n * @since 10.19.0\n */\n onChange: (selection: TierSelection) => void\n /**\n * @since 10.19.0\n */\n onNavigate: (nextGroupId: Id, value: any[]) => void\n /**\n * @since 10.19.0\n */\n onSearch: (e: React.ChangeEvent<HTMLInputElement>) => void\n /**\n * @since 10.19.0\n */\n previousValue: any[]\n /**\n * @since 10.19.0\n */\n value: any[]\n}\n\nexport interface ArrowButtonProps {\n /**\n * @since 10.19.0\n */\n onClick?: (event: React.SyntheticEvent) => void\n}\n\nexport interface QuickCreateInputProps {\n /**\n * @since 10.19.0\n */\n autoFocus: boolean\n /**\n * @since 10.19.0\n */\n onSubmit: (name: string) => void\n /**\n * @since 10.19.0\n */\n placeholder: string\n}\n\nexport interface OptionsProps {\n /**\n * @since 10.19.0\n */\n children: React.ReactNode\n /**\n * @since 10.19.0\n */\n emptyMessage?: string\n}\n"],"mappings":""}
1
+ {"version":3,"file":"TieredSelect.types.js","names":[],"sources":["../../src/TieredSelect/TieredSelect.types.ts"],"sourcesContent":["import type React from 'react'\nimport type { MenuRef, Selection } from '../MenuImperative/MenuImperative.types'\nimport type { SelectProps } from '../Select/Select.types'\n\nexport type GetValueStringFn = (value: any[]) => string | undefined\n\nexport type GetValueString = 'full-path' | 'leaf-only' | GetValueStringFn\n\nexport type Div = React.ComponentPropsWithoutRef<'div'>\n\nexport type Id = number | string | null | undefined\n\n// all keys are optional since data shape can custom\nexport interface Tier {\n /**\n * @since 10.19.0\n */\n id?: Id\n /**\n * @since 10.19.0\n */\n label?: string\n /**\n * @since 10.19.0\n */\n nextGroupId?: Id\n /**\n * @since 10.19.0\n */\n groupId?: Id\n}\n\nexport interface TierSelection extends Selection {\n /**\n * @since 10.19.0\n */\n value: any[]\n}\n\nexport interface InternalTieredSelectProps\n extends Omit<Div, 'onSelect' | 'onChange'> {\n /**\n * @since 10.19.0\n */\n block?: SelectProps['block']\n /**\n * @since 10.19.0\n */\n disabled?: SelectProps['disabled']\n /**\n * @since 10.19.0\n */\n error?: SelectProps['error']\n /**\n * @since 10.19.0\n */\n loading?: SelectProps['loading']\n /**\n * @since 10.19.0\n */\n options?: any[]\n /**\n * @since 10.19.0\n */\n value?: any[]\n /**\n * @since 12.24.0\n */\n 'aria-labelledby'?: string\n}\n\nexport interface TieredSelectApi {\n /**\n * @since 10.19.0\n */\n afterHide: SelectProps['afterHide']\n /**\n * @since 10.19.0\n */\n afterShow: SelectProps['afterShow']\n /**\n * @since 10.19.0\n */\n beforeHide: SelectProps['beforeHide']\n /**\n * @since 10.19.0\n */\n beforeShow: SelectProps['beforeShow']\n /**\n * @since 10.19.0\n */\n block?: boolean\n\n /**\n * Callback for using a custom `tier` shape\n * ```\n * (tier: any) => Id\n * ```\n * Defaults to\n * ```\n * (tier: any) => tier.GroupId\n * ```\n * @since 10.19.0\n */\n getGroupId: (tier: any) => Id\n\n /**\n * Callback for using a custom `tier` shape\n * ```\n * (tier: any) => Id\n * ```\n * Defaults to\n * ```\n * (tier: any) => tier.Id\n * ```\n * @since 10.19.0\n */\n getId: (tier: any) => Id\n\n /**\n * Callback for using a custom `tier` shape\n * ```\n * (tier: any) => string\n * ```\n * Defaults to\n * ```\n * (tier: any) => tier.Label\n * ```\n * @since 10.19.0\n */\n getLabel: (tier: any) => string | undefined\n\n /**\n * Callback for using a custom `tier` shape\n * ```\n * (tier: any) => Id\n * ```\n * Defaults to\n * ```\n * (tier: any) => tier.NextGroupId\n * ```\n * @since 10.19.0\n */\n getNextGroupId: (tier: any) => Id\n\n /**\n * Predefined strings or a callback for using a custom `value` string\n * ```\n * (value: any[]) => string | undefined\n * ```\n * Defaults to\n * ```\n * (value: any[]) => value.map((tier) => getLabel!(tier)).join(\" > \")\n * ```\n * @since 10.19.0\n */\n getValueString: GetValueStringFn\n\n /**\n * The i18n key to use for the tiered select's configurable strings.\n * Defaults to using the core library's default strings.\n * @since 10.19.0\n */\n i18nScope: string\n /**\n * @since 10.19.0\n */\n isTierDisabled?: (tier: any) => boolean | string | undefined\n /**\n * @since 10.19.0\n */\n isLeaf?: (tier: any) => boolean\n\n /**\n * Used to display a loading indicator as the last item of the list. Can\n * be used with `onScrollBottom` or `onSearch`\n * (empty `options` during search async call) to indicate the\n * loading of new items.\n * @since 10.19.0\n */\n loadingMore?: boolean\n\n /**\n * Callback for selecting an item from the tiered select. Returns the\n * `Selection` object from the `Menu` api, along\n * with the updated `value`\n * ```\n * (Selection: { event, item, group }, value) =>\n * ```\n * @since 10.19.0\n */\n onChange: (selection: TierSelection) => void\n\n /**\n * Callback for when the x icon is pressed.\n * ```\n * (event) =>\n * ```\n * @since 10.19.0\n */\n onClear?: SelectProps['onClear']\n\n /**\n * Callback for when navigation occurs. Triggered by the left and right\n * arrow keys, or clicking a navigable item. Returns the id of the next\n * group that will be navigated to, and the updated path.\n * ```\n * (nextGroupId: string | number | undefined, path: any[]) =>\n * ```\n * @since 10.19.0\n */\n onNavigate?: (nextGroupId: Id, value: any[]) => void\n\n /**\n * Pass this callback when a quick create experience is desired. Called\n * when the \"create\" button in quick create mode is clicked. Returns the\n * value of the quick create input.\n * ```\n * (string) =>\n * ```\n * @since 10.19.0\n */\n onQuickCreate?: (name: string) => void\n\n /**\n * Called when the selection menu is scrolled to the bottom. Can be\n * combined with `loadingMore` for an async infinite scrolling menu.\n * ```\n * (event) =>\n * ```\n * @since 10.19.0\n */\n onScrollBottom?: SelectProps['onScrollBottom']\n\n /**\n * Called when searching the TieredSelect. Behavior must be controlled by\n * implementor\n * ```\n * (event) =>\n * ```\n * @since 10.19.0\n */\n onSearch?: SelectProps['onSearch']\n /**\n * @since 10.19.0\n */\n tabIndex?: number\n /**\n * Custom placeholder text for the search input field. If not provided,\n * defaults to the i18n translation for 'searchPlaceholder'.\n * @since 12.34.0\n */\n searchPlaceholder?: string\n}\nexport interface TieredSelectProps\n extends Partial<Omit<TieredSelectApi, 'getValueString'>>,\n Omit<Div, 'onSelect' | 'onChange'> {\n /**\n * @since 10.19.0\n */\n block?: SelectProps['block']\n /**\n * @since 10.19.0\n */\n disabled?: SelectProps['disabled']\n /**\n * @since 10.19.0\n */\n error?: SelectProps['error']\n /**\n * Prop to define a custom footer for the tiered select. Accepts a `React.ReactNode`. Takes precedence over quick create footer.\n *\n * Example:\n * ```tsx\n * <TieredSelect\n * ...\n * footer={<div>Custom Footer</div>}\n * ...\n * />\n * ```\n *\n * @default undefined\n * @since 11.4.0\n */\n footer?: React.ReactNode | React.FunctionComponent\n /**\n * @since 10.19.0\n */\n getValueString?: GetValueString\n /**\n * @since 10.19.0\n */\n loading?: SelectProps['loading']\n /**\n * Flat array of tier objects, this array is used as data for the component\n * @since 10.19.0\n */\n options?: any[]\n\n /**\n * If true, any tier is selectable. If false, only leaf nodes are selectable\n * @default true\n * @since 10.19.0\n */\n selectableTiers?: boolean\n\n /**\n * Flat array of tier objects that represents the selected value\n * @since 10.19.0\n */\n value?: any[]\n}\n\nexport interface TieredSelectMenuProps\n extends Omit<Div, 'onSelect' | 'onChange' | 'onDragEnd'>,\n Pick<TieredSelectProps, 'footer' | 'loading' | 'loadingMore' | 'options'> {\n /**\n * @since 10.19.0\n */\n currentTier: Id\n /**\n * @since 10.19.0\n */\n menuRef: React.RefObject<MenuRef>\n /**\n * @since 10.19.0\n */\n onChange: (selection: TierSelection) => void\n /**\n * @since 10.19.0\n */\n onNavigate: (nextGroupId: Id, value: any[]) => void\n /**\n * @since 10.19.0\n */\n onSearch: (e: React.ChangeEvent<HTMLInputElement>) => void\n /**\n * @since 10.19.0\n */\n previousValue: any[]\n /**\n * @since 10.19.0\n */\n value: any[]\n}\n\nexport interface ArrowButtonProps {\n /**\n * @since 10.19.0\n */\n onClick?: (event: React.SyntheticEvent) => void\n}\n\nexport interface QuickCreateInputProps {\n /**\n * @since 10.19.0\n */\n autoFocus: boolean\n /**\n * @since 10.19.0\n */\n onSubmit: (name: string) => void\n /**\n * @since 10.19.0\n */\n placeholder: string\n}\n\nexport interface OptionsProps {\n /**\n * @since 10.19.0\n */\n children: React.ReactNode\n /**\n * @since 10.19.0\n */\n emptyMessage?: string\n}\n"],"mappings":""}
@@ -144,7 +144,8 @@ export var TieredSelectMenu = /*#__PURE__*/React.forwardRef(function TieredSelec
144
144
  i18nScope = _React$useContext2.i18nScope,
145
145
  isTierDisabled = _React$useContext2.isTierDisabled,
146
146
  onQuickCreate = _React$useContext2.onQuickCreate,
147
- onScrollBottom = _React$useContext2.onScrollBottom;
147
+ onScrollBottom = _React$useContext2.onScrollBottom,
148
+ searchPlaceholder = _React$useContext2.searchPlaceholder;
148
149
  var quickCreateRef = React.useRef(null);
149
150
  var _useOverlayTriggerCon = useOverlayTriggerContext(),
150
151
  hide = _useOverlayTriggerCon.hide;
@@ -293,14 +294,11 @@ export var TieredSelectMenu = /*#__PURE__*/React.forwardRef(function TieredSelec
293
294
  return false;
294
295
  }
295
296
  function RenderLoadingMore() {
296
- if (loadingMore && !loading) {
297
- return /*#__PURE__*/React.createElement(StyledTieredSelectLoadingMore, {
298
- "data-qa": "tiered-select-loading-more"
299
- }, /*#__PURE__*/React.createElement(Spinner, {
300
- size: "sm"
301
- }));
302
- }
303
- return null;
297
+ return /*#__PURE__*/React.createElement(StyledTieredSelectLoadingMore, {
298
+ "data-qa": "tiered-select-loading-more"
299
+ }, /*#__PURE__*/React.createElement(Spinner, {
300
+ size: "sm"
301
+ }));
304
302
  }
305
303
  var RenderFooter = React.useCallback(function () {
306
304
  if (customFooter) {
@@ -370,9 +368,10 @@ export var TieredSelectMenu = /*#__PURE__*/React.forwardRef(function TieredSelec
370
368
  }), /*#__PURE__*/React.createElement(MenuImperative.Header, null, !isQuickCreating && /*#__PURE__*/React.createElement(MenuImperative.Search, _extends({
371
369
  autoComplete: "false",
372
370
  onChange: internalOnSearch,
373
- placeholder: I18n.t('searchPlaceholder', {
371
+ placeholder: searchPlaceholder || I18n.t('searchPlaceholder', {
374
372
  scope: i18nScope
375
- })
373
+ }),
374
+ value: searchValue
376
375
  }, menuNavigationTriggerProps, {
377
376
  onKeyDown: onKeyDown
378
377
  })), showBreadcrumbs() ? /*#__PURE__*/React.createElement(StyledTieredSelectBreadcrumbs, {
@@ -405,9 +404,9 @@ export var TieredSelectMenu = /*#__PURE__*/React.forwardRef(function TieredSelec
405
404
  index: index,
406
405
  onNavigateForward: onNavigateForward
407
406
  });
408
- }).concat( /*#__PURE__*/React.createElement(RenderLoadingMore, {
407
+ }).concat(loadingMore && !loading ? [/*#__PURE__*/React.createElement(RenderLoadingMore, {
409
408
  key: "tiered-select-loading-more"
410
- }))) : /*#__PURE__*/React.createElement(QuickCreateInput, {
409
+ })] : [])) : /*#__PURE__*/React.createElement(QuickCreateInput, {
411
410
  autoFocus: isQuickCreating,
412
411
  onSubmit: onQuickCreateSubmit,
413
412
  placeholder: I18n.t('quickCreatePlaceholder', {