@procore/core-react 10.17.0-rc.7 → 10.17.1-rc.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 (146) hide show
  1. package/.storybook/preview-head.html +6 -0
  2. package/CHANGELOG.md +31 -0
  3. package/dist/esm/components/Button/Button.styles.js +13 -6
  4. package/dist/esm/components/Button/Button.styles.js.map +1 -1
  5. package/dist/esm/components/Calendar/Calendar.js +5 -3
  6. package/dist/esm/components/Calendar/Calendar.js.map +1 -1
  7. package/dist/esm/components/DateInput/DateInput.js +6 -0
  8. package/dist/esm/components/DateInput/DateInput.js.map +1 -1
  9. package/dist/esm/components/FileSelect/FileExplorer/FileExplorer.styles.d.ts +3 -2
  10. package/dist/esm/components/FileSelect/FileSelect.js +73 -25
  11. package/dist/esm/components/FileSelect/FileSelect.js.map +1 -1
  12. package/dist/esm/components/FileSelect/FileSelect.types.d.ts +2 -0
  13. package/dist/esm/components/FileSelect/LocalSource/LocalSource.js +101 -52
  14. package/dist/esm/components/FileSelect/LocalSource/LocalSource.js.map +1 -1
  15. package/dist/esm/components/FileSelect/LocalSource/LocalSource.types.d.ts +1 -0
  16. package/dist/esm/components/Form/Form.js +1 -0
  17. package/dist/esm/components/Form/Form.js.map +1 -1
  18. package/dist/esm/components/Modal/Modal.js +22 -5
  19. package/dist/esm/components/Modal/Modal.js.map +1 -1
  20. package/dist/esm/components/Modal/Modal.styles.d.ts +12 -2
  21. package/dist/esm/components/Modal/Modal.styles.js +33 -16
  22. package/dist/esm/components/Modal/Modal.styles.js.map +1 -1
  23. package/dist/esm/components/Modal/Modal.types.d.ts +6 -0
  24. package/dist/esm/components/NumberInput/NumberInput.utils.d.ts +1 -0
  25. package/dist/esm/components/NumberInput/NumberInput.utils.js +16 -2
  26. package/dist/esm/components/NumberInput/NumberInput.utils.js.map +1 -1
  27. package/dist/esm/components/SegmentedController/SegmentedController.styles.js +3 -3
  28. package/dist/esm/components/SegmentedController/SegmentedController.styles.js.map +1 -1
  29. package/dist/esm/components/Spinner/Spinner.d.ts +1 -0
  30. package/dist/esm/components/Spinner/Spinner.js +2 -1
  31. package/dist/esm/components/Spinner/Spinner.js.map +1 -1
  32. package/dist/esm/components/Spinner/Spinner.styles.d.ts +1 -0
  33. package/dist/esm/components/Spinner/Spinner.styles.js +14 -18
  34. package/dist/esm/components/Spinner/Spinner.styles.js.map +1 -1
  35. package/dist/esm/components/Switch/Switch.js +5 -4
  36. package/dist/esm/components/Switch/Switch.js.map +1 -1
  37. package/dist/esm/components/Switch/Switch.styles.d.ts +4 -3
  38. package/dist/esm/components/Switch/Switch.styles.js +8 -6
  39. package/dist/esm/components/Switch/Switch.styles.js.map +1 -1
  40. package/dist/esm/components/Thumbnail/DocumentIcon.js +97 -84
  41. package/dist/esm/components/Thumbnail/DocumentIcon.js.map +1 -1
  42. package/dist/esm/components/TieredDropdown/TieredDropdown.d.ts +4 -0
  43. package/dist/esm/components/TieredDropdown/TieredDropdown.helpers.d.ts +36 -0
  44. package/dist/esm/components/TieredDropdown/TieredDropdown.helpers.js +56 -0
  45. package/dist/esm/components/TieredDropdown/TieredDropdown.helpers.js.map +1 -0
  46. package/dist/esm/components/TieredDropdown/TieredDropdown.js +155 -0
  47. package/dist/esm/components/TieredDropdown/TieredDropdown.js.map +1 -0
  48. package/dist/esm/components/TieredDropdown/TieredDropdown.types.d.ts +25 -0
  49. package/dist/esm/components/TieredDropdown/TieredDropdown.types.js +2 -0
  50. package/dist/esm/components/TieredDropdown/TieredDropdown.types.js.map +1 -0
  51. package/dist/esm/components/TieredDropdown/index.d.ts +2 -0
  52. package/dist/esm/components/TieredDropdown/index.js +2 -0
  53. package/dist/esm/components/TieredDropdown/index.js.map +1 -0
  54. package/dist/esm/components/TieredDropdown/useSearch.d.ts +12 -0
  55. package/dist/esm/components/TieredDropdown/useSearch.js +50 -0
  56. package/dist/esm/components/TieredDropdown/useSearch.js.map +1 -0
  57. package/dist/esm/components/TieredSelect/LeafSelectionTieredSelect.js +4 -219
  58. package/dist/esm/components/TieredSelect/LeafSelectionTieredSelect.js.map +1 -1
  59. package/dist/esm/components/TieredSelect/TieredSelectMenu.d.ts +3 -0
  60. package/dist/esm/components/TieredSelect/TieredSelectMenu.js +243 -0
  61. package/dist/esm/components/TieredSelect/TieredSelectMenu.js.map +1 -0
  62. package/dist/esm/components/Tile/Tile.d.ts +12 -0
  63. package/dist/esm/components/Tile/Tile.js +85 -0
  64. package/dist/esm/components/Tile/Tile.js.map +1 -0
  65. package/dist/esm/components/Tile/Tile.styles.d.ts +20 -0
  66. package/dist/esm/components/Tile/Tile.styles.js +54 -0
  67. package/dist/esm/components/Tile/Tile.styles.js.map +1 -0
  68. package/dist/esm/components/Tile/Tile.types.d.ts +24 -0
  69. package/dist/esm/components/Tile/Tile.types.js +2 -0
  70. package/dist/esm/components/Tile/Tile.types.js.map +1 -0
  71. package/dist/esm/components/Tile/index.d.ts +1 -0
  72. package/dist/esm/components/Tile/index.js +2 -0
  73. package/dist/esm/components/Tile/index.js.map +1 -0
  74. package/dist/esm/components/Tile/mocks/iframe.d.ts +2 -0
  75. package/dist/esm/components/Tile/mocks/iframe.js +5 -0
  76. package/dist/esm/components/Tile/mocks/iframe.js.map +1 -0
  77. package/dist/esm/components/Tile/mocks/svg.d.ts +2 -0
  78. package/dist/esm/components/Tile/mocks/svg.js +247 -0
  79. package/dist/esm/components/Tile/mocks/svg.js.map +1 -0
  80. package/dist/esm/components/Title/Title.d.ts +9 -0
  81. package/dist/esm/components/Title/Title.js +66 -0
  82. package/dist/esm/components/Title/Title.js.map +1 -0
  83. package/dist/esm/components/Title/Title.styles.d.ts +7 -0
  84. package/dist/esm/components/Title/Title.styles.js +18 -0
  85. package/dist/esm/components/Title/Title.styles.js.map +1 -0
  86. package/dist/esm/components/Title/index.d.ts +1 -0
  87. package/dist/esm/components/Title/index.js +2 -0
  88. package/dist/esm/components/Title/index.js.map +1 -0
  89. package/dist/esm/components/_storyHelpers_/constants.js +2 -0
  90. package/dist/esm/components/_storyHelpers_/constants.js.map +1 -1
  91. package/dist/esm/effects/EventListener.js +14 -6
  92. package/dist/esm/effects/EventListener.js.map +1 -1
  93. package/dist/esm/index.d.ts +3 -0
  94. package/dist/esm/index.js +3 -0
  95. package/dist/esm/index.js.map +1 -1
  96. package/dist/esm/layouts/DetailPage/DetailPage.d.ts +3 -0
  97. package/dist/esm/layouts/DetailPage/DetailPage.js +3 -0
  98. package/dist/esm/layouts/DetailPage/DetailPage.js.map +1 -1
  99. package/dist/esm/layouts/Grid.d.ts +3 -0
  100. package/dist/esm/layouts/Grid.js +3 -0
  101. package/dist/esm/layouts/Grid.js.map +1 -1
  102. package/dist/esm/layouts/NextDetailPage/NextDetailPage.d.ts +4 -5
  103. package/dist/esm/layouts/NextDetailPage/NextDetailPage.js +10 -26
  104. package/dist/esm/layouts/NextDetailPage/NextDetailPage.js.map +1 -1
  105. package/dist/esm/layouts/NextDetailPage/NextDetailPage.styles.d.ts +1 -6
  106. package/dist/esm/layouts/NextDetailPage/NextDetailPage.styles.js +16 -21
  107. package/dist/esm/layouts/NextDetailPage/NextDetailPage.styles.js.map +1 -1
  108. package/dist/esm/layouts/NextDetailPage/NextDetailPageSection.js +1 -1
  109. package/dist/esm/layouts/NextDetailPage/NextDetailPageSection.js.map +1 -1
  110. package/dist/esm/layouts/NextDetailPage/RankedHeading.d.ts +6 -0
  111. package/dist/esm/layouts/NextDetailPage/RankedHeading.js +14 -0
  112. package/dist/esm/layouts/NextDetailPage/RankedHeading.js.map +1 -0
  113. package/dist/esm/layouts/NextDetailPage/index.d.ts +1 -0
  114. package/dist/esm/layouts/PageLayout/PageLayout.d.ts +9 -4
  115. package/dist/esm/layouts/PageLayout/PageLayout.js +30 -8
  116. package/dist/esm/layouts/PageLayout/PageLayout.js.map +1 -1
  117. package/dist/esm/layouts/PageLayout/PageLayout.styles.d.ts +8 -3
  118. package/dist/esm/layouts/PageLayout/PageLayout.styles.js +15 -9
  119. package/dist/esm/layouts/PageLayout/PageLayout.styles.js.map +1 -1
  120. package/dist/esm/locales/de-DE.json +10 -4
  121. package/dist/esm/locales/en-CA.json +6 -0
  122. package/dist/esm/locales/en-GB.json +6 -0
  123. package/dist/esm/locales/en.json +6 -0
  124. package/dist/esm/locales/es-ES.json +6 -0
  125. package/dist/esm/locales/es.json +6 -0
  126. package/dist/esm/locales/fr-CA.json +6 -0
  127. package/dist/esm/locales/fr-FR.json +7 -1
  128. package/dist/esm/state/I18n.d.ts +1 -1
  129. package/dist/esm/state/I18n.js.map +1 -1
  130. package/dist/esm/utils/CalendarHelpers.d.ts +3 -2
  131. package/dist/esm/utils/CalendarHelpers.js +30 -2
  132. package/dist/esm/utils/CalendarHelpers.js.map +1 -1
  133. package/dist/esm/utils/TinyMCE.js +2 -0
  134. package/dist/esm/utils/TinyMCE.js.map +1 -1
  135. package/dist/esm/utils/dateTime.js +2 -20
  136. package/dist/esm/utils/dateTime.js.map +1 -1
  137. package/dist/esm/utils/i18n.d.ts +1 -0
  138. package/dist/esm/utils/i18n.js +20 -0
  139. package/dist/esm/utils/i18n.js.map +1 -0
  140. package/dist/esm/utils/slotify.d.ts +11 -0
  141. package/dist/esm/utils/slotify.js +46 -0
  142. package/dist/esm/utils/slotify.js.map +1 -0
  143. package/dist/esm/utils/types.d.ts +1 -0
  144. package/dist/props/Modal.json +1 -1
  145. package/dist/props/allProps.json +1007 -894
  146. package/package.json +19 -19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=TieredDropdown.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TieredDropdown.types.js","sourceRoot":"","sources":["../../../../src/components/TieredDropdown/TieredDropdown.types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export { TieredDropdown, TieredDropdown as default } from './TieredDropdown';
2
+ export { TieredDropdownProps } from './TieredDropdown.types';
@@ -0,0 +1,2 @@
1
+ export { TieredDropdown, TieredDropdown as default } from './TieredDropdown';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/TieredDropdown/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,cAAc,IAAI,OAAO,EAAE,MAAM,kBAAkB,CAAA"}
@@ -0,0 +1,12 @@
1
+ interface SearchConfig<T> {
2
+ items: T[];
3
+ keysToSearch?: string[];
4
+ }
5
+ interface SearchApi<T> {
6
+ searchTerm: string;
7
+ clearSearch: () => void;
8
+ filteredItems: T[];
9
+ setSearch: (value: string) => void;
10
+ }
11
+ export declare function useSearch<T extends Record<string, any>>(config: SearchConfig<T>): SearchApi<T>;
12
+ export {};
@@ -0,0 +1,50 @@
1
+ import { useMemo, useState, useCallback } from 'react';
2
+ // eslint-disable-next-line no-useless-escape
3
+ var periodDashAndWhitespaceRegex = /[\.\-\s]/g;
4
+ function matchString(value, searchQuery) {
5
+ var lowerCasedKeyValue = (value && value.toLowerCase()) || '';
6
+ var valueWithoutSeparators = lowerCasedKeyValue.replace(periodDashAndWhitespaceRegex, '');
7
+ return valueWithoutSeparators.includes(searchQuery);
8
+ }
9
+ function matchKeyInObject(item, key, searchQuery) {
10
+ if (typeof item[key] === 'string') {
11
+ return matchString(item[key], searchQuery);
12
+ }
13
+ if (typeof item[key] === 'number') {
14
+ return matchString("" + item[key], searchQuery);
15
+ }
16
+ return false;
17
+ }
18
+ function filterCondition(item, searchTerm, keysToMatch) {
19
+ if (searchTerm === void 0) { searchTerm = ''; }
20
+ if (keysToMatch === void 0) { keysToMatch = Object.keys(item); }
21
+ var lowerCasedSearchTerm = searchTerm.trim().toLowerCase();
22
+ var sanitizedSearchQuery = lowerCasedSearchTerm.replace(periodDashAndWhitespaceRegex, '');
23
+ return keysToMatch.some(function (key) {
24
+ return matchKeyInObject(item, key, sanitizedSearchQuery);
25
+ });
26
+ }
27
+ export function useSearch(config) {
28
+ var _a = useState(''), searchTerm = _a[0], setSearchTerm = _a[1];
29
+ var filteredItems = useMemo(function () {
30
+ if (searchTerm === '') {
31
+ return config.items;
32
+ }
33
+ return config.items.filter(function (item) {
34
+ return filterCondition(item, searchTerm, config.keysToSearch);
35
+ });
36
+ }, [config, searchTerm]);
37
+ var setSearch = useCallback(function (value) {
38
+ setSearchTerm(value);
39
+ }, [setSearchTerm]);
40
+ var clearSearch = useCallback(function () {
41
+ setSearchTerm('');
42
+ }, [setSearchTerm]);
43
+ return {
44
+ clearSearch: clearSearch,
45
+ filteredItems: filteredItems,
46
+ setSearch: setSearch,
47
+ searchTerm: searchTerm,
48
+ };
49
+ }
50
+ //# sourceMappingURL=useSearch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSearch.js","sourceRoot":"","sources":["../../../../src/components/TieredDropdown/useSearch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,OAAO,CAAA;AAEtD,6CAA6C;AAC7C,IAAM,4BAA4B,GAAG,WAAW,CAAA;AAEhD,SAAS,WAAW,CAAC,KAAa,EAAE,WAAmB;IACrD,IAAM,kBAAkB,GAAG,CAAC,KAAK,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAA;IAE/D,IAAM,sBAAsB,GAAG,kBAAkB,CAAC,OAAO,CACvD,4BAA4B,EAC5B,EAAE,CACH,CAAA;IAED,OAAO,sBAAsB,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAA;AACrD,CAAC;AAED,SAAS,gBAAgB,CACvB,IAAO,EACP,GAAM,EACN,WAAmB;IAEnB,IAAI,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,QAAQ,EAAE;QACjC,OAAO,WAAW,CAAC,IAAI,CAAC,GAAG,CAAW,EAAE,WAAW,CAAC,CAAA;KACrD;IAED,IAAI,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,QAAQ,EAAE;QACjC,OAAO,WAAW,CAAC,KAAG,IAAI,CAAC,GAAG,CAAG,EAAE,WAAW,CAAC,CAAA;KAChD;IAED,OAAO,KAAK,CAAA;AACd,CAAC;AAED,SAAS,eAAe,CACtB,IAAO,EACP,UAAuB,EACvB,WAA2C;IAD3C,2BAAA,EAAA,eAAuB;IACvB,4BAAA,EAAA,cAAmB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAQ;IAE3C,IAAM,oBAAoB,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;IAC5D,IAAM,oBAAoB,GAAG,oBAAoB,CAAC,OAAO,CACvD,4BAA4B,EAC5B,EAAE,CACH,CAAA;IAED,OAAO,WAAW,CAAC,IAAI,CAAC,UAAC,GAAG;QAC1B,OAAA,gBAAgB,CAAC,IAAI,EAAE,GAAG,EAAE,oBAAoB,CAAC;IAAjD,CAAiD,CAClD,CAAA;AACH,CAAC;AAcD,MAAM,UAAU,SAAS,CACvB,MAAuB;IAEjB,IAAA,KAA8B,QAAQ,CAAC,EAAE,CAAC,EAAzC,UAAU,QAAA,EAAE,aAAa,QAAgB,CAAA;IAEhD,IAAM,aAAa,GAAG,OAAO,CAAC;QAC5B,IAAI,UAAU,KAAK,EAAE,EAAE;YACrB,OAAO,MAAM,CAAC,KAAK,CAAA;SACpB;QAED,OAAO,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,UAAC,IAAI;YAC9B,OAAA,eAAe,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,CAAC,YAAY,CAAC;QAAtD,CAAsD,CACvD,CAAA;IACH,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAA;IAExB,IAAM,SAAS,GAAG,WAAW,CAC3B,UAAC,KAAa;QACZ,aAAa,CAAC,KAAK,CAAC,CAAA;IACtB,CAAC,EACD,CAAC,aAAa,CAAC,CAChB,CAAA;IAED,IAAM,WAAW,GAAG,WAAW,CAAC;QAC9B,aAAa,CAAC,EAAE,CAAC,CAAA;IACnB,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAA;IAEnB,OAAO;QACL,WAAW,aAAA;QACX,aAAa,eAAA;QACb,SAAS,WAAA;QACT,UAAU,YAAA;KACX,CAAA;AACH,CAAC"}
@@ -20,236 +20,21 @@ var __rest = (this && this.__rest) || function (s, e) {
20
20
  }
21
21
  return t;
22
22
  };
23
- var __spreadArray = (this && this.__spreadArray) || function (to, from) {
24
- for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)
25
- to[j] = from[i];
26
- return to;
27
- };
28
- import { ChevronRight, Home, Plus } from '@procore/core-icons/dist';
29
23
  import React from 'react';
30
24
  import { isEventSource } from '../../effects/ClickOutside';
31
- import { Box } from '../../layouts/Box';
32
- import { FlexList } from '../../layouts/FlexList';
33
25
  import { useI18nContext } from '../../state/I18n';
34
- import { Breadcrumbs } from '../Breadcrumbs';
35
- import { Button } from '../Button';
36
- import { Input } from '../Input';
37
- import { MenuImperative } from '../MenuImperative';
38
- import { CloseOnFocus, OverlayTrigger, useOverlayTriggerContext, } from '../OverlayTrigger';
26
+ import { OverlayTrigger } from '../OverlayTrigger';
39
27
  import { Button as SelectButton } from '../Select';
40
- import Spinner from '../Spinner';
41
- import { Typography } from '../Typography/Typography';
42
- import { TieredSelectContext, useHighlightItemEffects } from './TieredSelect';
43
- import { StyledTieredSelect, StyledTieredSelectArrow, StyledTieredSelectBreadcrumbs, StyledTieredSelectHome, StyledTieredSelectLoadingMore, StyledTieredSelectOption, StyledTieredSelectOverlay, StyledTieredSelectSpinnerOverlay, } from './TieredSelect.styles';
28
+ import { TieredSelectContext } from './TieredSelect';
29
+ import { TieredSelectMenu } from './TieredSelectMenu';
44
30
  var empty = [];
45
31
  var hideKeys = {
46
32
  overlay: ['Escape', 'Esc'],
47
33
  target: ['Escape', 'Esc'],
48
34
  };
49
- function ArrowButton(props) {
50
- return (React.createElement(StyledTieredSelectArrow, { alignItems: "center", justifyContent: "center" },
51
- React.createElement(ChevronRight, null)));
52
- }
53
- var QuickCreateInput = React.forwardRef(function QuickCreateInput(_a, ref) {
54
- var autoFocus = _a.autoFocus, onSubmit = _a.onSubmit, placeholder = _a.placeholder;
55
- function onKeyDown(e) {
56
- if (e.key === 'Enter') {
57
- onSubmit(e.currentTarget.value);
58
- }
59
- }
60
- return (React.createElement(Box, { flexGrow: "1", justifyContent: "center", padding: "md" },
61
- React.createElement(Input, { autoFocus: autoFocus, onKeyDown: onKeyDown, placeholder: placeholder, ref: ref })));
62
- });
63
- function Options(_a) {
64
- var children = _a.children, emptyMessage = _a.emptyMessage, props = __rest(_a, ["children", "emptyMessage"]);
65
- if (React.Children.count(children) === 0) {
66
- return (React.createElement(MenuImperative.Options, null,
67
- React.createElement(Box, __assign({ paddingLeft: "lg" }, props),
68
- React.createElement(Typography, { color: "gray45", intent: "small", italic: true }, emptyMessage))));
69
- }
70
- return React.createElement(MenuImperative.Options, null, children);
71
- }
72
- var TieredSelectMenu = React.forwardRef(function TieredSelectMenu(_a, ref) {
73
- var children = _a.children, currentTier = _a.currentTier, loading = _a.loading, loadingMore = _a.loadingMore, menuRef = _a.menuRef, onChange = _a.onChange, onNavigate = _a.onNavigate, onSearch = _a.onSearch, options = _a.options, previousValue = _a.previousValue, value = _a.value, props = __rest(_a, ["children", "currentTier", "loading", "loadingMore", "menuRef", "onChange", "onNavigate", "onSearch", "options", "previousValue", "value"]);
74
- var _b = React.useContext(TieredSelectContext), getGroupId = _b.getGroupId, getId = _b.getId, getLabel = _b.getLabel, getNextGroupId = _b.getNextGroupId, i18nScope = _b.i18nScope, onQuickCreate = _b.onQuickCreate, onScrollBottom = _b.onScrollBottom;
75
- var quickCreateRef = React.useRef(null);
76
- var hide = useOverlayTriggerContext().hide;
77
- var I18n = useI18nContext();
78
- var _c = React.useState(false), isQuickCreating = _c[0], setIsQuickCreating = _c[1];
79
- var _d = React.useState(''), searchValue = _d[0], setSearchValue = _d[1];
80
- var searchIsEmpty = searchValue === '';
81
- var lastEntryInValue = value[value.length - 1];
82
- var internalOnSearch = React.useCallback(function (e) {
83
- setSearchValue(e.target.value);
84
- onSearch && onSearch(e);
85
- }, [onSearch]);
86
- // When searching (all options have been flattened) we dont filter by id
87
- var filteredOptions = React.useMemo(function () {
88
- return searchIsEmpty
89
- ? options.filter(function (tier) {
90
- return getGroupId(tier) === currentTier;
91
- })
92
- : options;
93
- }, [currentTier, getGroupId, options, searchIsEmpty]);
94
- useHighlightItemEffects({
95
- currentTier: currentTier,
96
- searchValue: searchValue,
97
- menuRef: menuRef,
98
- loading: loading,
99
- loadingMore: loadingMore,
100
- });
101
- var onNavigateHome = React.useCallback(function () {
102
- var _a;
103
- onNavigate(null, []);
104
- (_a = menuRef.current) === null || _a === void 0 ? void 0 : _a.highlightFirst();
105
- }, [menuRef, onNavigate]);
106
- var onBreadCrumbNavigate = React.useCallback(function (tier) {
107
- var _a;
108
- var newTier = value.indexOf(tier);
109
- onNavigate(getNextGroupId(tier), value.slice(0, newTier + 1));
110
- (_a = menuRef.current) === null || _a === void 0 ? void 0 : _a.highlightFirst();
111
- }, [getNextGroupId, menuRef, onNavigate, value]);
112
- function onNavigateForward(tier) {
113
- var _a;
114
- if (searchIsEmpty && !isQuickCreating && tier && !isLeaf(tier)) {
115
- // if last value was a leaf, replace it when performing next navigation
116
- var newValue = lastEntryInValue && isLeaf(lastEntryInValue)
117
- ? __spreadArray(__spreadArray([], value.slice(0, value.length - 1)), [tier]) : __spreadArray(__spreadArray([], value), [tier]);
118
- onNavigate(getNextGroupId(tier), newValue);
119
- (_a = menuRef.current) === null || _a === void 0 ? void 0 : _a.highlightFirst();
120
- }
121
- }
122
- /**
123
- * need to skip back two levels if coming from a leaf node;
124
- * out from the leaf and then out of the parent. this is because
125
- * when tiers aren't selectectable we show the parent of the leaf
126
- */
127
- function onNavigateBackward() {
128
- var _a;
129
- if (value.length !== 0 && searchIsEmpty) {
130
- var newValue = void 0;
131
- var newTier = void 0;
132
- if (isLeaf(value[value.length - 1])) {
133
- newValue = value.slice(0, Math.max(0, value.length - 2));
134
- newTier = value[Math.max(0, value.length - 2)];
135
- }
136
- else {
137
- newValue = value.slice(0, Math.max(0, value.length - 1));
138
- newTier = value[value.length - 1];
139
- }
140
- !isQuickCreating && onNavigate(getGroupId(newTier), newValue);
141
- (_a = menuRef.current) === null || _a === void 0 ? void 0 : _a.highlightFirst();
142
- }
143
- }
144
- function onKeyDown(e) {
145
- var _a;
146
- var tier = (_a = menuRef.current) === null || _a === void 0 ? void 0 : _a.highlighted();
147
- if (e.key === 'Right' || e.key === 'ArrowRight') {
148
- onNavigateForward(tier);
149
- }
150
- else if (e.key === 'Left' || e.key === 'ArrowLeft') {
151
- onNavigateBackward();
152
- }
153
- }
154
- var isLeaf = React.useCallback(function (tier) {
155
- return !getNextGroupId(tier);
156
- }, [getNextGroupId]);
157
- function onTierSelect(selection) {
158
- if (isLeaf(selection.item)) {
159
- var isSameGroup = value.length
160
- ? getGroupId(lastEntryInValue) === getGroupId(selection.item)
161
- : false;
162
- // if the selection is in the same group as the old selection, replace the old selection
163
- var newValue = isSameGroup
164
- ? __spreadArray(__spreadArray([], value.slice(0, value.length - 1)), [selection.item]) : __spreadArray(__spreadArray([], value), [selection.item]);
165
- onChange(__assign(__assign({}, selection), { value: newValue }));
166
- searchValue &&
167
- internalOnSearch({
168
- target: { value: '' },
169
- });
170
- hide(selection.event);
171
- }
172
- else {
173
- onNavigateForward(selection.item);
174
- }
175
- }
176
- // non-selectable tiers can have a leaf node in the root tier, so if selected
177
- // it will reopen to the root tier and we should not show breadcrumbs
178
- function showBreadcrumbs() {
179
- return (value.length &&
180
- searchIsEmpty &&
181
- !(value.length === 1 && isLeaf(value[value.length - 1])));
182
- }
183
- var menuEmptyMessage = searchIsEmpty
184
- ? I18n.t('emptyMessage', { scope: i18nScope })
185
- : I18n.t('searchEmptyMessage', { scope: i18nScope });
186
- var handleQuickCreate = React.useCallback(function (e) {
187
- // stops menu from selecting item and closing on enter press
188
- e.stopPropagation();
189
- if (e.key === 'Enter') {
190
- setIsQuickCreating(true);
191
- }
192
- }, [setIsQuickCreating]);
193
- var onQuickCreateSubmit = React.useCallback(function () {
194
- onQuickCreate &&
195
- quickCreateRef.current &&
196
- onQuickCreate(quickCreateRef.current.value);
197
- setIsQuickCreating(false);
198
- }, [onQuickCreate, quickCreateRef, setIsQuickCreating]);
199
- function isTierSelected(tier) {
200
- if (previousValue.length) {
201
- return getId(tier) === getId(previousValue[previousValue.length - 1]);
202
- }
203
- return false;
204
- }
205
- return (React.createElement(StyledTieredSelectOverlay, { ref: ref, shadowStrength: 2 },
206
- React.createElement(StyledTieredSelectSpinnerOverlay, { "data-qa": "tiered-select-loading", "data-loading": loading, label: I18n.t('spinnerLabel', { scope: i18nScope }) || '', loading: loading, size: "md" },
207
- React.createElement(StyledTieredSelect, __assign({ onKeyDown: onKeyDown, onScrollBottom: onScrollBottom, onSelect: onTierSelect, ref: menuRef }, props),
208
- React.createElement(MenuImperative.Header, null,
209
- !isQuickCreating && (React.createElement(MenuImperative.Search, { autoComplete: "false", autoFocus: true, onChange: internalOnSearch, placeholder: I18n.t('searchPlaceholder', {
210
- scope: i18nScope,
211
- }) })),
212
- showBreadcrumbs() ? (React.createElement(StyledTieredSelectBreadcrumbs, { "$nonInteractive": isQuickCreating },
213
- React.createElement(Breadcrumbs.Crumb, { onClick: onNavigateHome },
214
- React.createElement(StyledTieredSelectHome, { alignItems: "center", justifyContent: "center" },
215
- React.createElement(Home, { "data-qa": "tiered-select-home" }))),
216
- value
217
- .filter(function (tier) {
218
- // we reopen to the parent of leaf nodes, so don't show that breadcrumb
219
- return !isLeaf(tier);
220
- })
221
- .map(function (tier, index, array) {
222
- return (React.createElement(Breadcrumbs.Crumb, { active: index === array.length - 1, key: getId(tier) + "-" + index, onClick: function () { return onBreadCrumbNavigate(tier); } }, getLabel(tier)));
223
- }))) : null),
224
- !isQuickCreating ? (React.createElement(Options, { emptyMessage: menuEmptyMessage }, filteredOptions
225
- .map(function (tier, index) {
226
- return (React.createElement(StyledTieredSelectOption, { item: tier, key: getId(tier) + "-" + index, selected: isTierSelected(tier) },
227
- getLabel(tier),
228
- (getNextGroupId(tier) || onQuickCreate) && (React.createElement(Box, { paddingLeft: "sm" },
229
- React.createElement(ArrowButton, { "data-qa": "tiered-select-arrow", onClick: function () { return onNavigateForward(tier); } })))));
230
- })
231
- .concat(loadingMore && !loading
232
- ? [
233
- React.createElement(StyledTieredSelectLoadingMore, { "data-qa": "tiered-select-loading-more", key: 'tiered-select-loading-more' },
234
- React.createElement(Spinner, { size: "sm" })),
235
- ]
236
- : []))) : (React.createElement(QuickCreateInput, { autoFocus: isQuickCreating, onSubmit: onQuickCreateSubmit, placeholder: I18n.t('quickCreatePlaceholder', {
237
- scope: i18nScope,
238
- }), ref: quickCreateRef })),
239
- onQuickCreate && (React.createElement(MenuImperative.Footer, { "data-something": "true" }, isQuickCreating ? (React.createElement(FlexList, { size: "xs", justifyContent: "flex-end" },
240
- React.createElement(Button, { onClick: function () { return setIsQuickCreating(false); }, size: "sm", variant: "tertiary" }, I18n.t('quickCreateCancelLabel', {
241
- scope: i18nScope,
242
- })),
243
- React.createElement(Button, { onClick: onQuickCreateSubmit, size: "sm" }, I18n.t('quickCreateCreateLabel', {
244
- scope: i18nScope,
245
- })))) : (React.createElement(Button, { block: true, size: "sm", icon: React.createElement(Plus, null), onClick: function () { return setIsQuickCreating(true); }, onKeyDown: handleQuickCreate }, I18n.t('quickCreateActionLabel', {
246
- scope: i18nScope,
247
- }))))),
248
- React.createElement(CloseOnFocus, { hide: hide })))));
249
- });
250
35
  export var LeafSelectionTieredSelect = React.forwardRef(function LeafSelectionTieredSelect(_a, ref) {
251
36
  var className = _a.className, _b = _a.disabled, disabled = _b === void 0 ? false : _b, _c = _a.error, error = _c === void 0 ? false : _c, _d = _a.loading, loading = _d === void 0 ? false : _d, onKeyDown = _a.onKeyDown, _e = _a.options, options = _e === void 0 ? empty : _e, _f = _a.value, value = _f === void 0 ? empty : _f, props = __rest(_a, ["className", "disabled", "error", "loading", "onKeyDown", "options", "value"]);
252
- var _g = React.useContext(TieredSelectContext), afterHide = _g.afterHide, afterShow = _g.afterShow, beforeHide = _g.beforeHide, beforeShow = _g.beforeShow, block = _g.block, getGroupId = _g.getGroupId, getLabel = _g.getLabel, getNextGroupId = _g.getNextGroupId, getValueString = _g.getValueString, i18nScope = _g.i18nScope, isLeaf = _g.isLeaf, onChange = _g.onChange, onClear = _g.onClear, onNavigate = _g.onNavigate, onSearch = _g.onSearch, tabIndex = _g.tabIndex;
37
+ var _g = React.useContext(TieredSelectContext), afterHide = _g.afterHide, afterShow = _g.afterShow, beforeHide = _g.beforeHide, beforeShow = _g.beforeShow, block = _g.block, getGroupId = _g.getGroupId, getNextGroupId = _g.getNextGroupId, getValueString = _g.getValueString, i18nScope = _g.i18nScope, isLeaf = _g.isLeaf, onChange = _g.onChange, onClear = _g.onClear, onNavigate = _g.onNavigate, onSearch = _g.onSearch, tabIndex = _g.tabIndex;
253
38
  var I18n = useI18nContext();
254
39
  var tieredSelectMenuRef = React.useRef(null);
255
40
  var tieredSelectButtonRef = React.useRef(null);
@@ -1 +1 @@
1
- {"version":3,"file":"LeafSelectionTieredSelect.js","sourceRoot":"","sources":["../../../../src/components/TieredSelect/LeafSelectionTieredSelect.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LeafSelectionTieredSelect.js","sourceRoot":"","sources":["../../../../src/components/TieredSelect/LeafSelectionTieredSelect.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ import { TieredSelectMenuProps } from './TieredSelect.types';
3
+ export declare const TieredSelectMenu: React.ForwardRefExoticComponent<TieredSelectMenuProps & React.RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,243 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ var __rest = (this && this.__rest) || function (s, e) {
13
+ var t = {};
14
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
15
+ t[p] = s[p];
16
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
17
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
18
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
19
+ t[p[i]] = s[p[i]];
20
+ }
21
+ return t;
22
+ };
23
+ var __spreadArray = (this && this.__spreadArray) || function (to, from) {
24
+ for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)
25
+ to[j] = from[i];
26
+ return to;
27
+ };
28
+ import { ChevronRight, Home, Plus } from '@procore/core-icons/dist';
29
+ import React from 'react';
30
+ import { Box } from '../../layouts/Box';
31
+ import { FlexList } from '../../layouts/FlexList';
32
+ import { useI18nContext } from '../../state/I18n';
33
+ import { Breadcrumbs } from '../Breadcrumbs';
34
+ import { Button } from '../Button';
35
+ import { Input } from '../Input';
36
+ import { MenuImperative } from '../MenuImperative';
37
+ import { CloseOnFocus, useOverlayTriggerContext } from '../OverlayTrigger';
38
+ import Spinner from '../Spinner';
39
+ import { Typography } from '../Typography/Typography';
40
+ import { TieredSelectContext, useHighlightItemEffects } from './TieredSelect';
41
+ import { StyledTieredSelect, StyledTieredSelectArrow, StyledTieredSelectBreadcrumbs, StyledTieredSelectHome, StyledTieredSelectLoadingMore, StyledTieredSelectOption, StyledTieredSelectOverlay, StyledTieredSelectSpinnerOverlay, } from './TieredSelect.styles';
42
+ function ArrowButton(props) {
43
+ return (React.createElement(StyledTieredSelectArrow, { alignItems: "center", justifyContent: "center" },
44
+ React.createElement(ChevronRight, null)));
45
+ }
46
+ var QuickCreateInput = React.forwardRef(function QuickCreateInput(_a, ref) {
47
+ var autoFocus = _a.autoFocus, onSubmit = _a.onSubmit, placeholder = _a.placeholder;
48
+ function onKeyDown(e) {
49
+ if (e.key === 'Enter') {
50
+ onSubmit(e.currentTarget.value);
51
+ }
52
+ }
53
+ return (React.createElement(Box, { flexGrow: "1", justifyContent: "center", padding: "md" },
54
+ React.createElement(Input, { autoFocus: autoFocus, onKeyDown: onKeyDown, placeholder: placeholder, ref: ref })));
55
+ });
56
+ function Options(_a) {
57
+ var children = _a.children, emptyMessage = _a.emptyMessage, props = __rest(_a, ["children", "emptyMessage"]);
58
+ if (React.Children.count(children) === 0) {
59
+ return (React.createElement(MenuImperative.Options, null,
60
+ React.createElement(Box, __assign({ paddingLeft: "lg" }, props),
61
+ React.createElement(Typography, { color: "gray45", intent: "small", italic: true }, emptyMessage))));
62
+ }
63
+ return React.createElement(MenuImperative.Options, null, children);
64
+ }
65
+ export var TieredSelectMenu = React.forwardRef(function TieredSelectMenu(_a, ref) {
66
+ var children = _a.children, currentTier = _a.currentTier, loading = _a.loading, loadingMore = _a.loadingMore, menuRef = _a.menuRef, onChange = _a.onChange, onNavigate = _a.onNavigate, onSearch = _a.onSearch, options = _a.options, previousValue = _a.previousValue, value = _a.value, props = __rest(_a, ["children", "currentTier", "loading", "loadingMore", "menuRef", "onChange", "onNavigate", "onSearch", "options", "previousValue", "value"]);
67
+ var _b = React.useContext(TieredSelectContext), getGroupId = _b.getGroupId, getId = _b.getId, getLabel = _b.getLabel, getNextGroupId = _b.getNextGroupId, i18nScope = _b.i18nScope, onQuickCreate = _b.onQuickCreate, onScrollBottom = _b.onScrollBottom;
68
+ var quickCreateRef = React.useRef(null);
69
+ var hide = useOverlayTriggerContext().hide;
70
+ var I18n = useI18nContext();
71
+ var _c = React.useState(false), isQuickCreating = _c[0], setIsQuickCreating = _c[1];
72
+ var _d = React.useState(''), searchValue = _d[0], setSearchValue = _d[1];
73
+ var searchIsEmpty = searchValue === '';
74
+ var lastEntryInValue = value[value.length - 1];
75
+ var internalOnSearch = React.useCallback(function (e) {
76
+ setSearchValue(e.target.value);
77
+ onSearch && onSearch(e);
78
+ }, [onSearch]);
79
+ // When searching (all options have been flattened) we dont filter by id
80
+ var filteredOptions = React.useMemo(function () {
81
+ return searchIsEmpty
82
+ ? options.filter(function (tier) {
83
+ return getGroupId(tier) === currentTier;
84
+ })
85
+ : options;
86
+ }, [currentTier, getGroupId, options, searchIsEmpty]);
87
+ useHighlightItemEffects({
88
+ currentTier: currentTier,
89
+ searchValue: searchValue,
90
+ menuRef: menuRef,
91
+ loading: loading,
92
+ loadingMore: loadingMore,
93
+ });
94
+ var onNavigateHome = React.useCallback(function () {
95
+ var _a;
96
+ onNavigate(null, []);
97
+ (_a = menuRef.current) === null || _a === void 0 ? void 0 : _a.highlightFirst();
98
+ }, [menuRef, onNavigate]);
99
+ var onBreadCrumbNavigate = React.useCallback(function (tier) {
100
+ var _a;
101
+ var newTier = value.indexOf(tier);
102
+ onNavigate(getNextGroupId(tier), value.slice(0, newTier + 1));
103
+ (_a = menuRef.current) === null || _a === void 0 ? void 0 : _a.highlightFirst();
104
+ }, [getNextGroupId, menuRef, onNavigate, value]);
105
+ function onNavigateForward(tier) {
106
+ var _a;
107
+ if (searchIsEmpty && !isQuickCreating && tier && !isLeaf(tier)) {
108
+ // if last value was a leaf, replace it when performing next navigation
109
+ var newValue = lastEntryInValue && isLeaf(lastEntryInValue)
110
+ ? __spreadArray(__spreadArray([], value.slice(0, value.length - 1)), [tier]) : __spreadArray(__spreadArray([], value), [tier]);
111
+ onNavigate(getNextGroupId(tier), newValue);
112
+ (_a = menuRef.current) === null || _a === void 0 ? void 0 : _a.highlightFirst();
113
+ }
114
+ }
115
+ /**
116
+ * need to skip back two levels if coming from a leaf node;
117
+ * out from the leaf and then out of the parent. this is because
118
+ * when tiers aren't selectectable we show the parent of the leaf
119
+ */
120
+ function onNavigateBackward() {
121
+ var _a;
122
+ if (value.length !== 0 && searchIsEmpty) {
123
+ var newValue = void 0;
124
+ var newTier = void 0;
125
+ if (isLeaf(value[value.length - 1])) {
126
+ newValue = value.slice(0, Math.max(0, value.length - 2));
127
+ newTier = value[Math.max(0, value.length - 2)];
128
+ }
129
+ else {
130
+ newValue = value.slice(0, Math.max(0, value.length - 1));
131
+ newTier = value[value.length - 1];
132
+ }
133
+ !isQuickCreating && onNavigate(getGroupId(newTier), newValue);
134
+ (_a = menuRef.current) === null || _a === void 0 ? void 0 : _a.highlightFirst();
135
+ }
136
+ }
137
+ function onKeyDown(e) {
138
+ var _a;
139
+ var tier = (_a = menuRef.current) === null || _a === void 0 ? void 0 : _a.highlighted();
140
+ if (e.key === 'Right' || e.key === 'ArrowRight') {
141
+ onNavigateForward(tier);
142
+ }
143
+ else if (e.key === 'Left' || e.key === 'ArrowLeft') {
144
+ onNavigateBackward();
145
+ }
146
+ }
147
+ var isLeaf = React.useCallback(function (tier) {
148
+ return !getNextGroupId(tier);
149
+ }, [getNextGroupId]);
150
+ function onTierSelect(selection) {
151
+ if (isLeaf(selection.item)) {
152
+ var isSameGroup = value.length
153
+ ? getGroupId(lastEntryInValue) === getGroupId(selection.item)
154
+ : false;
155
+ // if the selection is in the same group as the old selection, replace the old selection
156
+ var newValue = isSameGroup
157
+ ? __spreadArray(__spreadArray([], value.slice(0, value.length - 1)), [selection.item]) : __spreadArray(__spreadArray([], value), [selection.item]);
158
+ onChange(__assign(__assign({}, selection), { value: newValue }));
159
+ searchValue &&
160
+ internalOnSearch({
161
+ target: { value: '' },
162
+ });
163
+ hide(selection.event);
164
+ }
165
+ else {
166
+ onNavigateForward(selection.item);
167
+ }
168
+ }
169
+ // non-selectable tiers can have a leaf node in the root tier, so if selected
170
+ // it will reopen to the root tier and we should not show breadcrumbs
171
+ function showBreadcrumbs() {
172
+ return (value.length &&
173
+ searchIsEmpty &&
174
+ !(value.length === 1 && isLeaf(value[value.length - 1])));
175
+ }
176
+ var menuEmptyMessage = searchIsEmpty
177
+ ? I18n.t('emptyMessage', { scope: i18nScope })
178
+ : I18n.t('searchEmptyMessage', { scope: i18nScope });
179
+ var handleQuickCreate = React.useCallback(function (e) {
180
+ // stops menu from selecting item and closing on enter press
181
+ e.stopPropagation();
182
+ if (e.key === 'Enter') {
183
+ setIsQuickCreating(true);
184
+ }
185
+ }, [setIsQuickCreating]);
186
+ var onQuickCreateSubmit = React.useCallback(function () {
187
+ onQuickCreate &&
188
+ quickCreateRef.current &&
189
+ onQuickCreate(quickCreateRef.current.value);
190
+ setIsQuickCreating(false);
191
+ }, [onQuickCreate, quickCreateRef, setIsQuickCreating]);
192
+ function isTierSelected(tier) {
193
+ if (previousValue.length) {
194
+ return getId(tier) === getId(previousValue[previousValue.length - 1]);
195
+ }
196
+ return false;
197
+ }
198
+ return (React.createElement(StyledTieredSelectOverlay, { ref: ref, shadowStrength: 2 },
199
+ React.createElement(StyledTieredSelectSpinnerOverlay, { "data-qa": "tiered-select-loading", "data-loading": loading, label: I18n.t('spinnerLabel', { scope: i18nScope }) || '', loading: loading, size: "md" },
200
+ React.createElement(StyledTieredSelect, __assign({ onKeyDown: onKeyDown, onScrollBottom: onScrollBottom, onSelect: onTierSelect, ref: menuRef }, props),
201
+ React.createElement(MenuImperative.Header, null,
202
+ !isQuickCreating && (React.createElement(MenuImperative.Search, { autoComplete: "false", autoFocus: true, onChange: internalOnSearch, placeholder: I18n.t('searchPlaceholder', {
203
+ scope: i18nScope,
204
+ }) })),
205
+ showBreadcrumbs() ? (React.createElement(StyledTieredSelectBreadcrumbs, { "$nonInteractive": isQuickCreating },
206
+ React.createElement(Breadcrumbs.Crumb, { onClick: onNavigateHome },
207
+ React.createElement(StyledTieredSelectHome, { alignItems: "center", justifyContent: "center" },
208
+ React.createElement(Home, { "data-qa": "tiered-select-home" }))),
209
+ value
210
+ .filter(function (tier) {
211
+ // we reopen to the parent of leaf nodes, so don't show that breadcrumb
212
+ return !isLeaf(tier);
213
+ })
214
+ .map(function (tier, index, array) {
215
+ return (React.createElement(Breadcrumbs.Crumb, { active: index === array.length - 1, key: getId(tier) + "-" + index, onClick: function () { return onBreadCrumbNavigate(tier); } }, getLabel(tier)));
216
+ }))) : null),
217
+ !isQuickCreating ? (React.createElement(Options, { emptyMessage: menuEmptyMessage }, filteredOptions
218
+ .map(function (tier, index) {
219
+ return (React.createElement(StyledTieredSelectOption, { item: tier, key: getId(tier) + "-" + index, selected: isTierSelected(tier) },
220
+ getLabel(tier),
221
+ (getNextGroupId(tier) || onQuickCreate) && (React.createElement(Box, { paddingLeft: "sm" },
222
+ React.createElement(ArrowButton, { "data-qa": "tiered-select-arrow", onClick: function () { return onNavigateForward(tier); } })))));
223
+ })
224
+ .concat(loadingMore && !loading
225
+ ? [
226
+ React.createElement(StyledTieredSelectLoadingMore, { "data-qa": "tiered-select-loading-more", key: 'tiered-select-loading-more' },
227
+ React.createElement(Spinner, { size: "sm" })),
228
+ ]
229
+ : []))) : (React.createElement(QuickCreateInput, { autoFocus: isQuickCreating, onSubmit: onQuickCreateSubmit, placeholder: I18n.t('quickCreatePlaceholder', {
230
+ scope: i18nScope,
231
+ }), ref: quickCreateRef })),
232
+ onQuickCreate && (React.createElement(MenuImperative.Footer, { "data-something": "true" }, isQuickCreating ? (React.createElement(FlexList, { size: "xs", justifyContent: "flex-end" },
233
+ React.createElement(Button, { onClick: function () { return setIsQuickCreating(false); }, size: "sm", variant: "tertiary" }, I18n.t('quickCreateCancelLabel', {
234
+ scope: i18nScope,
235
+ })),
236
+ React.createElement(Button, { onClick: onQuickCreateSubmit, size: "sm" }, I18n.t('quickCreateCreateLabel', {
237
+ scope: i18nScope,
238
+ })))) : (React.createElement(Button, { block: true, size: "sm", icon: React.createElement(Plus, null), onClick: function () { return setIsQuickCreating(true); }, onKeyDown: handleQuickCreate }, I18n.t('quickCreateActionLabel', {
239
+ scope: i18nScope,
240
+ }))))),
241
+ React.createElement(CloseOnFocus, { hide: hide })))));
242
+ });
243
+ //# sourceMappingURL=TieredSelectMenu.js.map