@procore/core-react 12.27.1 → 12.28.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (228) hide show
  1. package/CHANGELOG.md +13 -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.styles.js +5 -5
  11. package/dist/Calendar/Calendar.styles.js +8 -8
  12. package/dist/Card/Card.styles.js +1 -1
  13. package/dist/Checkbox/Checkbox.styles.js +6 -6
  14. package/dist/Checkbox/CheckboxTooltip.js +1 -1
  15. package/dist/ContactItem/ContactItem.styles.js +5 -5
  16. package/dist/Content/Content.styles.js +2 -2
  17. package/dist/DateInput/DateInput.styles.js +6 -6
  18. package/dist/DetailPage/DetailPage.styles.js +7 -7
  19. package/dist/Dropdown/Dropdown.styles.js +3 -3
  20. package/dist/DropdownFlyout/DropdownFlyout.styles.js +4 -4
  21. package/dist/Dropzone/Dropzone.js +1 -1
  22. package/dist/Dropzone/Dropzone.styles.js +9 -9
  23. package/dist/EmptyState/EmptyState.styles.js +6 -6
  24. package/dist/Field/Field.styles.js +3 -3
  25. package/dist/FileList/FileList.styles.js +4 -4
  26. package/dist/FileSelect/FileExplorer/FileExplorer.styles.js +9 -9
  27. package/dist/FileSelect/FileExplorer/FileExplorerSidebar.styles.js +3 -3
  28. package/dist/FileSelect/FileSelect.styles.js +2 -2
  29. package/dist/FileSelect/FileSelectDropzone/FileSelectDropzone.styles.js +3 -3
  30. package/dist/FileSelect/FileTokenList/FileTokenList.styles.js +2 -2
  31. package/dist/FileSelect/GridSource/GridSource.styles.js +6 -6
  32. package/dist/FileSelect/LocalSource/LocalSource.styles.js +4 -4
  33. package/dist/FileSelect/SourceItem/SourceItem.styles.js +3 -3
  34. package/dist/FileSelect/ThumbnailList/ThumbnailList.styles.js +6 -6
  35. package/dist/FileSelect/TreeSource/TreeSource.styles.js +1 -1
  36. package/dist/FileToken/FileToken.styles.js +4 -4
  37. package/dist/FilterToken/FilterToken.styles.js +5 -5
  38. package/dist/FlexList/FlexList.styles.js +1 -1
  39. package/dist/Form/Form.styles.js +14 -14
  40. package/dist/Form/StyledFormikForm.styles.js +2 -2
  41. package/dist/GhostPlaceholder/GhostPlaceholder.styles.js +2 -2
  42. package/dist/Grid/Grid.styles.js +2 -2
  43. package/dist/GroupSelect/GroupSelect.styles.js +1 -1
  44. package/dist/Input/Input.styles.js +1 -1
  45. package/dist/Link/Link.styles.js +1 -1
  46. package/dist/ListPage/ListPage.styles.js +8 -8
  47. package/dist/Loader/Loader.styles.js +2 -2
  48. package/dist/MenuImperative/MenuImperative.styles.js +10 -10
  49. package/dist/Modal/Modal.styles.js +13 -13
  50. package/dist/MultiSelect/MultiSelect.styles.js +6 -6
  51. package/dist/NextMenu/NextMenu.styles.js +3 -3
  52. package/dist/Notation/Notation.js +1 -1
  53. package/dist/NumberInput/NumberInput.styles.js +7 -7
  54. package/dist/Overlay/OverlayArrow.styles.js +1 -1
  55. package/dist/PageLayout/PageLayout.styles.js +16 -16
  56. package/dist/PageTemplate/PageFooterTemplate/PageFooterTemplate.styles.js +1 -1
  57. package/dist/PageTemplate/PageHeaderTemplate/PageHeaderTemplate.styles.js +3 -3
  58. package/dist/PageTemplate/PagePaneTemplate/PagePaneTemplate.styles.js +2 -2
  59. package/dist/PageTemplate/PageTemplate/PageTemplate.styles.js +3 -3
  60. package/dist/Pagination/Pagination.styles.js +5 -5
  61. package/dist/Panel/Panel.styles.js +11 -11
  62. package/dist/Pill/Pill.styles.js +3 -3
  63. package/dist/PillSelect/PillSelect.styles.js +4 -4
  64. package/dist/Popover/Popover.styles.js +2 -2
  65. package/dist/Portal/Portal.styles.js +1 -1
  66. package/dist/ProgressBar/ProgressBar.styles.js +2 -2
  67. package/dist/RadioButton/RadioButton.styles.js +3 -3
  68. package/dist/Required/Required.styles.js +3 -3
  69. package/dist/Search/Search.styles.js +5 -5
  70. package/dist/Section/Section.styles.js +7 -7
  71. package/dist/SegmentedController/SegmentedController.styles.js +4 -4
  72. package/dist/Select/Select.styles.js +7 -7
  73. package/dist/Semantic/Semantic.styles.js +9 -9
  74. package/dist/Slider/Slider.styles.js +5 -5
  75. package/dist/Spinner/Spinner.styles.js +7 -7
  76. package/dist/SplitViewCard/SplitViewCard.js +1 -2
  77. package/dist/SplitViewCard/SplitViewCard.js.map +1 -1
  78. package/dist/SplitViewCard/SplitViewCard.styles.js +8 -8
  79. package/dist/SuperSelect/SuperSelect.components.d.ts +1 -0
  80. package/dist/SuperSelect/SuperSelect.components.js +102 -15
  81. package/dist/SuperSelect/SuperSelect.components.js.map +1 -1
  82. package/dist/SuperSelect/SuperSelect.constants.d.ts +1 -0
  83. package/dist/SuperSelect/SuperSelect.constants.js +1 -0
  84. package/dist/SuperSelect/SuperSelect.constants.js.map +1 -1
  85. package/dist/SuperSelect/SuperSelect.js +5 -1
  86. package/dist/SuperSelect/SuperSelect.js.map +1 -1
  87. package/dist/SuperSelect/SuperSelect.presets.styles.js +1 -1
  88. package/dist/SuperSelect/SuperSelect.styles.d.ts +3 -0
  89. package/dist/SuperSelect/SuperSelect.styles.js +41 -37
  90. package/dist/SuperSelect/SuperSelect.styles.js.map +1 -1
  91. package/dist/SuperSelect/SuperSelect.types.d.ts +34 -1
  92. package/dist/SuperSelect/SuperSelect.types.js.map +1 -1
  93. package/dist/SuperSelect/SuperSelect.utils.d.ts +1 -0
  94. package/dist/SuperSelect/SuperSelect.utils.js +4 -1
  95. package/dist/SuperSelect/SuperSelect.utils.js.map +1 -1
  96. package/dist/SuperSelect/useSuperSelect.d.ts +1 -1
  97. package/dist/SuperSelect/useSuperSelect.js +123 -24
  98. package/dist/SuperSelect/useSuperSelect.js.map +1 -1
  99. package/dist/Switch/Switch.styles.js +4 -4
  100. package/dist/Table/Table.styles.js +28 -28
  101. package/dist/TableShelf/TableShelf.styles.js +5 -5
  102. package/dist/Tabs/Tabs.styles.js +15 -15
  103. package/dist/Tearsheet/Tearsheet.styles.js +5 -5
  104. package/dist/TextArea/TextArea.styles.js +1 -1
  105. package/dist/TextEditor/TextEditor.styles.js +1 -1
  106. package/dist/TextEditor/utils/config.js +1 -3
  107. package/dist/TextEditor/utils/config.js.map +1 -1
  108. package/dist/TextEditorOutput/TextEditorOutput.styles.js +1 -1
  109. package/dist/Thumbnail/Thumbnail.styles.js +17 -17
  110. package/dist/ThumbnailGrid/ThumbnailGrid.styles.js +7 -7
  111. package/dist/TieredSelect/TieredSelect.js +1 -1
  112. package/dist/TieredSelect/TieredSelect.js.map +1 -1
  113. package/dist/TieredSelect/TieredSelect.styles.js +9 -9
  114. package/dist/Tile/Tile.styles.js +8 -8
  115. package/dist/Title/Title.styles.js +7 -7
  116. package/dist/Toast/Toast.styles.js +3 -3
  117. package/dist/ToggleButton/ToggleButton.styles.js +1 -1
  118. package/dist/Token/Token.styles.js +3 -3
  119. package/dist/ToolHeader/ToolHeader.styles.js +6 -6
  120. package/dist/ToolLandingPage/ToolLandingPage.styles.js +3 -3
  121. package/dist/Tooltip/Tooltip.styles.js +2 -2
  122. package/dist/Tree/Tree.styles.js +9 -9
  123. package/dist/Typeahead/Typeahead.styles.js +3 -3
  124. package/dist/Typography/Typography.styles.js +1 -1
  125. package/dist/Typography/Typography.table.story.js +2 -2
  126. package/dist/_hooks/I18n.d.ts +16 -0
  127. package/dist/_locales/de-DE.json +2 -1
  128. package/dist/_locales/en-AU.json +2 -1
  129. package/dist/_locales/en-CA.json +2 -1
  130. package/dist/_locales/en-GB.json +2 -1
  131. package/dist/_locales/en.json +2 -1
  132. package/dist/_locales/es-ES.json +3 -2
  133. package/dist/_locales/es.json +4 -3
  134. package/dist/_locales/fr-CA.json +2 -1
  135. package/dist/_locales/fr-FR.json +2 -1
  136. package/dist/_locales/is-IS.json +2 -1
  137. package/dist/_locales/it-IT.json +2 -1
  138. package/dist/_locales/ja-JP.json +2 -1
  139. package/dist/_locales/pl-PL.json +2 -1
  140. package/dist/_locales/pseudo.json +2 -1
  141. package/dist/_locales/pt-BR.json +2 -1
  142. package/dist/_locales/pt-PT.json +380 -0
  143. package/dist/_locales/th-TH.json +2 -1
  144. package/dist/_locales/zh-SG.json +2 -1
  145. package/dist/_locales/zh-TW.json +219 -218
  146. package/dist/_storyHelpers_/components/Deprecation.styles.js +1 -1
  147. package/dist/_storyHelpers_/components/StoryGrid.js +3 -3
  148. package/dist/_typedoc/AnchorNavigation/AnchorNavigation.types.json +3 -3
  149. package/dist/_typedoc/Avatar/Avatar.types.json +20 -20
  150. package/dist/_typedoc/AvatarStack/AvatarStack.types.json +24 -24
  151. package/dist/_typedoc/Badge/Badge.types.json +6 -6
  152. package/dist/_typedoc/Banner/Banner.types.json +13 -13
  153. package/dist/_typedoc/Box/Box.types.json +68 -68
  154. package/dist/_typedoc/Breadcrumbs/Breadcrumbs.types.json +10 -10
  155. package/dist/_typedoc/Button/Button.types.json +13 -13
  156. package/dist/_typedoc/Calendar/Calendar.types.json +80 -80
  157. package/dist/_typedoc/Card/Card.types.json +6 -6
  158. package/dist/_typedoc/Checkbox/Checkbox.types.json +8 -8
  159. package/dist/_typedoc/ContactItem/ContactItem.types.json +9 -9
  160. package/dist/_typedoc/DateInput/DateInput.types.json +35 -35
  161. package/dist/_typedoc/DateSelect/DateSelect.types.json +13 -13
  162. package/dist/_typedoc/DetailPage/DetailPage.types.json +5 -5
  163. package/dist/_typedoc/Dropdown/Dropdown.types.json +37 -37
  164. package/dist/_typedoc/DropdownFlyout/DropdownFlyout.types.json +30 -30
  165. package/dist/_typedoc/Dropzone/Dropzone.types.json +44 -44
  166. package/dist/_typedoc/EmptyState/EmptyState.types.json +16 -16
  167. package/dist/_typedoc/FileList/FileList.types.json +9 -9
  168. package/dist/_typedoc/FileSelect/FileSelect.types.json +27 -27
  169. package/dist/_typedoc/FileSelect/GridSource/GridSource.types.json +20 -20
  170. package/dist/_typedoc/FileSelect/LocalSource/LocalSource.types.json +14 -14
  171. package/dist/_typedoc/FileSelect/TreeSource/TreeSource.types.json +9 -9
  172. package/dist/_typedoc/Flex/Flex.types.json +27 -27
  173. package/dist/_typedoc/FlexList/FlexList.types.json +30 -30
  174. package/dist/_typedoc/Form/Form.types.json +771 -771
  175. package/dist/_typedoc/GhostPlaceholder/GhostPlaceholder.types.json +12 -12
  176. package/dist/_typedoc/Grid/Grid.types.json +8 -8
  177. package/dist/_typedoc/GroupSelect/GroupSelect.types.json +52 -52
  178. package/dist/_typedoc/Input/Input.types.json +2 -2
  179. package/dist/_typedoc/Link/Link.types.json +1 -1
  180. package/dist/_typedoc/ListPage/ListPage.types.json +13 -13
  181. package/dist/_typedoc/Menu/Menu.types.json +62 -62
  182. package/dist/_typedoc/MenuImperative/MenuImperative.types.json +74 -74
  183. package/dist/_typedoc/Modal/Modal.types.json +46 -46
  184. package/dist/_typedoc/MultiSelect/MultiSelect.types.json +31 -31
  185. package/dist/_typedoc/NextTile/NextTile.types.json +32 -32
  186. package/dist/_typedoc/Notation/Notation.types.json +4 -4
  187. package/dist/_typedoc/NumberInput/NumberInput.types.json +48 -48
  188. package/dist/_typedoc/OverlayTrigger/OverlayTrigger.types.json +32 -32
  189. package/dist/_typedoc/PageLayout/PageLayout.types.json +26 -26
  190. package/dist/_typedoc/Pagination/Pagination.types.json +7 -7
  191. package/dist/_typedoc/Panel/Panel.types.json +30 -30
  192. package/dist/_typedoc/Pill/Pill.types.json +2 -2
  193. package/dist/_typedoc/PillSelect/PillSelect.types.json +49 -49
  194. package/dist/_typedoc/Popover/Popover.types.json +15 -15
  195. package/dist/_typedoc/ProgressBar/ProgressBar.types.json +7 -7
  196. package/dist/_typedoc/RadioButton/RadioButton.types.json +6 -6
  197. package/dist/_typedoc/Required/Required.types.json +5 -5
  198. package/dist/_typedoc/Search/Search.types.json +18 -18
  199. package/dist/_typedoc/Section/Section.types.json +15 -15
  200. package/dist/_typedoc/SegmentedController/SegmentedController.types.json +21 -21
  201. package/dist/_typedoc/Select/Select.types.json +60 -60
  202. package/dist/_typedoc/SettingsPage/SettingsPage.types.json +10 -10
  203. package/dist/_typedoc/Slider/Slider.types.json +6 -6
  204. package/dist/_typedoc/Spinner/Spinner.types.json +9 -9
  205. package/dist/_typedoc/SplitViewCard/SplitViewCard.types.json +14 -14
  206. package/dist/_typedoc/Table/Table.types.json +101 -101
  207. package/dist/_typedoc/Tabs/Tabs.types.json +20 -20
  208. package/dist/_typedoc/Tearsheet/Tearsheet.types.json +17 -17
  209. package/dist/_typedoc/TextArea/TextArea.types.json +3 -3
  210. package/dist/_typedoc/TextEditor/TextEditor.types.json +21 -21
  211. package/dist/_typedoc/TextEditor/TextEditorProvider.types.json +2 -2
  212. package/dist/_typedoc/TextEditorOutput/TextEditorOutput.types.json +3 -3
  213. package/dist/_typedoc/Thumbnail/Thumbnail.types.json +19 -19
  214. package/dist/_typedoc/TieredDropdown/TieredDropdown.types.json +42 -42
  215. package/dist/_typedoc/TieredSelect/TieredSelect.types.json +28 -28
  216. package/dist/_typedoc/Tile/Tile.types.json +8 -8
  217. package/dist/_typedoc/Title/Title.types.json +1 -1
  218. package/dist/_typedoc/Toast/Toast.types.json +4 -4
  219. package/dist/_typedoc/ToggleButton/ToggleButton.types.json +4 -4
  220. package/dist/_typedoc/Token/Token.types.json +7 -7
  221. package/dist/_typedoc/ToolHeader/ToolHeader.types.json +10 -10
  222. package/dist/_typedoc/ToolLandingPage/ToolLandingPage.types.json +7 -7
  223. package/dist/_typedoc/Tooltip/Tooltip.types.json +13 -13
  224. package/dist/_typedoc/Tree/Tree.types.json +86 -86
  225. package/dist/_typedoc/Typeahead/Typeahead.types.json +2 -2
  226. package/dist/_typedoc/Typography/Typography.types.json +9 -9
  227. package/dist/_typedoc/_utils/types.json +3 -3
  228. package/package.json +1 -1
@@ -24,9 +24,9 @@ import { useI18nContext } from '../_hooks/I18n';
24
24
  import { useZIndexContext } from '../_hooks/ZIndex';
25
25
  import { spacing } from '../_styles/spacing';
26
26
  import * as defaultComponents from './SuperSelect.components';
27
- import { draggableOptionIdSymbol } from './SuperSelect.constants';
27
+ import { draggableOptionIdSymbol, isOptSelectAllSymbol } from './SuperSelect.constants';
28
28
  import { extendedSelectMenuWidth } from './SuperSelect.styles';
29
- import { collectGroupsInOrderOfOccurrence, createOptgroup, getBatchOptionFormatter, getIsAllOptionsUngrouped, getOptionIsOptgroup, getOptionsSortingAlgorithm, isMultiple, removeEmptyOptGroups, reorder, sortOptgroups } from './SuperSelect.utils';
29
+ import { collectGroupsInOrderOfOccurrence, createOptgroup, getBatchOptionFormatter, getIsAllOptionsUngrouped, getOptionIsOptgroup, getOptionIsOptSelectAll, getOptionsSortingAlgorithm, isMultiple, removeEmptyOptGroups, reorder, sortOptgroups } from './SuperSelect.utils';
30
30
  var listContainerVerticalPadding = spacing.sm * 2;
31
31
  function noop() {}
32
32
  function defaultGetOptionValue(option) {
@@ -142,6 +142,8 @@ export function useSuperSelect(_ref3) {
142
142
  draggable = _ref3$draggable === void 0 ? false : _ref3$draggable,
143
143
  _ref3$emptyMessage = _ref3.emptyMessage,
144
144
  emptyMessage = _ref3$emptyMessage === void 0 ? 'No results' : _ref3$emptyMessage,
145
+ _ref3$selectAllEnable = _ref3.selectAllEnabled,
146
+ selectAllEnabled = _ref3$selectAllEnable === void 0 ? false : _ref3$selectAllEnable,
145
147
  error = _ref3.error,
146
148
  footer = _ref3.footer,
147
149
  _ref3$getOptionGroup = _ref3.getOptionGroup,
@@ -152,7 +154,8 @@ export function useSuperSelect(_ref3) {
152
154
  getOptionIsDisabled = _ref3$getOptionIsDisa === void 0 ? defaultGetOptionIsDisabled : _ref3$getOptionIsDisa,
153
155
  _ref3$getOptionLabel = _ref3.getOptionLabel,
154
156
  getOptionLabel = _ref3$getOptionLabel === void 0 ? defaultGetOptionLabel : _ref3$getOptionLabel,
155
- getOptionPartiallySelected = _ref3.getOptionPartiallySelected,
157
+ getOptionIsPartiallySelected = _ref3.getOptionIsPartiallySelected,
158
+ getOptionIsSelected = _ref3.getOptionIsSelected,
156
159
  _ref3$getOptionValue = _ref3.getOptionValue,
157
160
  getOptionValue = _ref3$getOptionValue === void 0 ? defaultGetOptionValue : _ref3$getOptionValue,
158
161
  _ref3$onScrollBottom = _ref3.onScrollBottom,
@@ -166,6 +169,7 @@ export function useSuperSelect(_ref3) {
166
169
  multiple = _ref3$multiple === void 0 ? false : _ref3$multiple,
167
170
  onChange = _ref3.onChange,
168
171
  onManualSort = _ref3.onManualSort,
172
+ onSelectAll = _ref3.onSelectAll,
169
173
  _ref3$options = _ref3.options,
170
174
  sourceOptions = _ref3$options === void 0 ? [] : _ref3$options,
171
175
  placeholder = _ref3.placeholder,
@@ -336,6 +340,16 @@ export function useSuperSelect(_ref3) {
336
340
  },
337
341
  // skip `getOptionLabel`, refer to TODO #memogetters
338
342
  [groupAndSortAlgorithm, formatBatchOption, searchValue, sourceOptions]);
343
+ var selectAllOption = _defineProperty({
344
+ label: i18n.t('core.select.selectAll'),
345
+ id: 'selectAll'
346
+ }, isOptSelectAllSymbol, true);
347
+ var allOptionsWithSelectAll = React.useMemo(function () {
348
+ if (!selectAllEnabled || !multiple) {
349
+ return options;
350
+ }
351
+ return [selectAllOption].concat(_toConsumableArray(options));
352
+ }, [selectAllEnabled, multiple, selectAllOption, options]);
339
353
  var _React$useState21 = React.useState([]),
340
354
  _React$useState22 = _slicedToArray(_React$useState21, 2),
341
355
  draggableOptions = _React$useState22[0],
@@ -366,25 +380,40 @@ export function useSuperSelect(_ref3) {
366
380
  },
367
381
  // skip `getOptionLabel`, refer to TODO #memogetters
368
382
  [draggable, draggableOptions, searchValue, formatBatchOption]);
383
+
384
+ // Group indices calculation - needs allOptionsWithSelectAll because:
385
+ // When SelectAll is enabled, it becomes the first item (index 0) and shifts all other indices by 1.
386
+ // Group headers need their correct absolute positions in the combined list for navigation to work.
369
387
  var groupIndices = React.useMemo(function () {
370
- return options.reduce(function (acc, opt, i) {
388
+ var baseOptions = selectAllEnabled && multiple ? allOptionsWithSelectAll : options;
389
+ return baseOptions.reduce(function (acc, opt, i) {
371
390
  if (getOptionIsOptgroup(opt)) {
372
391
  acc.push(i);
373
392
  }
374
393
  return acc;
375
394
  }, []);
376
- }, [options]);
395
+ }, [selectAllEnabled, multiple, allOptionsWithSelectAll, options]);
396
+
397
+ // Selected index calculation - needs allOptionsWithSelectAll because:
398
+ // The selectedIndex must reference the absolute position in the combined list for keyboard navigation.
399
+ // When SelectAll is at index 0, the first regular option becomes index 1, affecting selection highlighting.
377
400
  var selectedIndex = React.useMemo(function () {
378
- return options.findIndex(function (option) {
401
+ var baseOptions = selectAllEnabled && multiple ? allOptionsWithSelectAll : options;
402
+ return baseOptions.findIndex(function (option) {
379
403
  return isSelectableOption(option) && getOptionValue(option) === value;
380
404
  });
381
- }, [options, value]);
405
+ }, [selectAllEnabled, multiple, allOptionsWithSelectAll, options, value]);
406
+
407
+ // Selected option lookup - needs allOptionsWithSelectAll because:
408
+ // The selectedOption lookup must search the complete list including SelectAll to find matches.
409
+ // This ensures proper option detection regardless of whether SelectAll or regular options are selected.
382
410
  var selectedOption = React.useMemo(function () {
383
411
  var val = Array.isArray(value) ? value[0] : value;
384
- return options.find(function (option) {
412
+ var baseOptions = selectAllEnabled && multiple ? allOptionsWithSelectAll : options;
413
+ return baseOptions.find(function (option) {
385
414
  return getOptionValue(option) === val;
386
415
  });
387
- }, [options, value]);
416
+ }, [selectAllEnabled, multiple, allOptionsWithSelectAll, options, value]);
388
417
  var selectedLabel = React.useMemo(function () {
389
418
  return selectedOption ? getOptionLabel(selectedOption) : '';
390
419
  }, [selectedOption]);
@@ -392,15 +421,43 @@ export function useSuperSelect(_ref3) {
392
421
  return !getOptionIsOptgroup(o) && !getOptionIsDisabled(o);
393
422
  }
394
423
  function getFirstSelectableOptionIndex() {
395
- return options.findIndex(isSelectableOption);
424
+ // When Select All is enabled in multiple mode, it's always at index 0 and is selectable
425
+ if (selectAllEnabled && multiple) {
426
+ return 0;
427
+ }
428
+ var baseOptions = options;
429
+ return baseOptions.findIndex(isSelectableOption) + (selectAllEnabled && multiple ? 1 : 0);
396
430
  }
397
431
  function onSelect(option) {
398
432
  if (getOptionIsDisabled(option)) {
399
433
  return;
400
434
  }
401
435
  var optionValue = getOptionValue(option);
436
+ var isSelectAll = getOptionIsOptSelectAll(option);
402
437
  if (isMultiple(multiple, value)) {
403
- if (Array.isArray(optionValue)) {
438
+ if (isSelectAll) {
439
+ var selectableOptions = options.filter(function (opt) {
440
+ return isSelectableOption(opt);
441
+ });
442
+
443
+ // Check if all options are already selected to determine if this is a deselect operation
444
+ var allOptionsSelected = selectableOptions.every(function (opt) {
445
+ var getIsSelected = getOptionIsSelected !== null && getOptionIsSelected !== void 0 ? getOptionIsSelected : defaultGetOptionIsSelected;
446
+ return getIsSelected(opt);
447
+ });
448
+ if (onSelectAll) {
449
+ onSelectAll(selectableOptions);
450
+ }
451
+
452
+ // Only add options if not all are selected (i.e., this is a select operation)
453
+ // If all options are selected, this is a deselect operation and we should clear
454
+ if (allOptionsSelected) {
455
+ setValue([]);
456
+ } else {
457
+ var optionValues = selectableOptions.flatMap(getOptionValue);
458
+ setValue(uniq([].concat(_toConsumableArray(value), _toConsumableArray(optionValues))));
459
+ }
460
+ } else if (Array.isArray(optionValue)) {
404
461
  setValue(uniq([].concat(_toConsumableArray(value), _toConsumableArray(optionValue))));
405
462
  } else {
406
463
  setValue(value.includes(optionValue) ? value.filter(function (val) {
@@ -413,13 +470,16 @@ export function useSuperSelect(_ref3) {
413
470
  }
414
471
  function onKeyboardSelect() {
415
472
  if (activeMenuIndex !== null) {
416
- var option = options[activeMenuIndex];
473
+ // Select All must be included in the list for keyboard navigation to work properly.
474
+ // The activeMenuIndex corresponds to positions in the complete navigation list including SelectAll.
475
+ var baseOptions = selectAllEnabled && multiple ? allOptionsWithSelectAll : options;
476
+ var option = baseOptions[activeMenuIndex];
417
477
  if (option) {
418
478
  onSelect(option);
419
479
  }
420
480
  }
421
481
  }
422
- function getOptionIsSelected(option) {
482
+ function defaultGetOptionIsSelected(option) {
423
483
  if (Array.isArray(value)) {
424
484
  var optionValues = getOptionValue(option);
425
485
  if (Array.isArray(optionValues)) {
@@ -447,6 +507,24 @@ export function useSuperSelect(_ref3) {
447
507
  }
448
508
  return false;
449
509
  }
510
+ function defaultGetOptionIsSelectAllPartiallySelected(options, isSelected, isPartiallySelected) {
511
+ if (selectionStyle !== 'checkbox' && !Array.isArray(value)) {
512
+ return false;
513
+ }
514
+ return options.some(function (option) {
515
+ return isSelected(option) || isPartiallySelected(option);
516
+ }) && !options.every(function (option) {
517
+ return isSelected(option);
518
+ });
519
+ }
520
+ function defaultGetOptionIsSelectAllSelected(options, isSelected) {
521
+ if (!multiple) {
522
+ return false;
523
+ }
524
+ return options.every(function (option) {
525
+ return isSelected(option);
526
+ });
527
+ }
450
528
  function isEmpty() {
451
529
  return Array.isArray(value) ? value.length === 0 : value === null;
452
530
  }
@@ -775,20 +853,28 @@ export function useSuperSelect(_ref3) {
775
853
 
776
854
  // recreate the array to hold dom refs when our options change
777
855
  React.useEffect(function () {
778
- navigationList.current = _toConsumableArray(Array(options.length).fill(null));
779
- }, [options]);
856
+ // Adjust length to include Select All option if enabled, without this the navigation
857
+ // would not work correctly when Select All is enabled
858
+ var totalLength = selectAllEnabled && multiple ? allOptionsWithSelectAll.length : options.length;
859
+ navigationList.current = _toConsumableArray(Array(totalLength).fill(null));
860
+ }, [selectAllEnabled, multiple, allOptionsWithSelectAll, options]);
780
861
 
781
862
  // scroll virtuoso list activeMenuIndex into view when the index changes
782
863
  React.useLayoutEffect(function () {
783
864
  if (activeMenuIndex !== null) {
784
865
  if (!pointer) {
785
- var _virtuoso$current;
786
- (_virtuoso$current = virtuoso.current) === null || _virtuoso$current === void 0 ? void 0 : _virtuoso$current.scrollIntoView({
787
- index: activeMenuIndex
788
- });
866
+ // Adjust index for virtuoso if Select All is enabled (since Select All is rendered separately)
867
+ // Without this the navigation would not work correctly when Select All is enabled
868
+ var virtuosoIndex = selectAllEnabled && multiple && activeMenuIndex > 0 ? activeMenuIndex + 1 : activeMenuIndex;
869
+ if (virtuosoIndex >= 0) {
870
+ var _virtuoso$current;
871
+ (_virtuoso$current = virtuoso.current) === null || _virtuoso$current === void 0 ? void 0 : _virtuoso$current.scrollIntoView({
872
+ index: virtuosoIndex
873
+ });
874
+ }
789
875
  }
790
876
  }
791
- }, [activeMenuIndex, open]);
877
+ }, [activeMenuIndex, open, selectAllEnabled, multiple]);
792
878
  return {
793
879
  config: {
794
880
  block: block,
@@ -804,7 +890,8 @@ export function useSuperSelect(_ref3) {
804
890
  selectionStyle: selectionStyle,
805
891
  tabIndex: tabIndex,
806
892
  loading: loading,
807
- multiple: multiple
893
+ multiple: multiple,
894
+ selectAllEnabled: selectAllEnabled
808
895
  },
809
896
  components: components,
810
897
  state: {
@@ -816,16 +903,19 @@ export function useSuperSelect(_ref3) {
816
903
  maxHeight: maxHeight,
817
904
  onDragEnd: onDragEnd,
818
905
  onSelect: onSelect,
906
+ onSelectAll: onSelectAll,
819
907
  open: open,
820
908
  options: draggable ? queriedDraggableOptions : options,
821
909
  overlayId: overlayId,
822
910
  searchValue: searchValue,
911
+ selectAllOption: selectAllOption,
823
912
  selectedIndex: selectedIndex,
824
913
  selectedLabel: selectedLabel,
825
914
  selectedOption: selectedOption,
826
915
  setOpen: setOpen,
827
916
  setPointer: setPointer,
828
917
  setSearchValue: setSearchValue,
918
+ setActiveMenuIndex: setActiveMenuIndex,
829
919
  sourceOptions: sourceOptions,
830
920
  value: value,
831
921
  width: width
@@ -849,12 +939,21 @@ export function useSuperSelect(_ref3) {
849
939
  option: {
850
940
  group: getOptionGroup,
851
941
  isBatch: getOptionIsBatch,
852
- isPartiallySelected: getOptionPartiallySelected !== null && getOptionPartiallySelected !== void 0 ? getOptionPartiallySelected : defaultGetOptionIsPartiallySelected,
853
- isSelected: getOptionIsSelected,
942
+ isPartiallySelected: getOptionIsPartiallySelected !== null && getOptionIsPartiallySelected !== void 0 ? getOptionIsPartiallySelected : defaultGetOptionIsPartiallySelected,
943
+ isSelected: getOptionIsSelected !== null && getOptionIsSelected !== void 0 ? getOptionIsSelected : defaultGetOptionIsSelected,
854
944
  isDisabled: getOptionIsDisabled,
855
945
  isOptgroup: getOptionIsOptgroup,
946
+ isOptSelectAll: getOptionIsOptSelectAll,
856
947
  label: getOptionLabel,
857
- value: getOptionValue
948
+ value: getOptionValue,
949
+ selectAll: {
950
+ isSelectAllPartiallySelected: function isSelectAllPartiallySelected(options) {
951
+ return defaultGetOptionIsSelectAllPartiallySelected(options.filter(isSelectableOption), getOptionIsSelected !== null && getOptionIsSelected !== void 0 ? getOptionIsSelected : defaultGetOptionIsSelected, getOptionIsPartiallySelected !== null && getOptionIsPartiallySelected !== void 0 ? getOptionIsPartiallySelected : defaultGetOptionIsPartiallySelected);
952
+ },
953
+ isSelectAllSelected: function isSelectAllSelected(options) {
954
+ return defaultGetOptionIsSelectAllSelected(options.filter(isSelectableOption), getOptionIsSelected !== null && getOptionIsSelected !== void 0 ? getOptionIsSelected : defaultGetOptionIsSelected);
955
+ }
956
+ }
858
957
  },
859
958
  refs: {
860
959
  floating: floating,
@@ -1 +1 @@
1
- {"version":3,"file":"useSuperSelect.js","names":["autoUpdate","flip","offset","size","useClick","useDismiss","useFloating","useInteractions","useListNavigation","useId","debounce","uniq","React","ulid","useI18nContext","useZIndexContext","spacing","defaultComponents","draggableOptionIdSymbol","extendedSelectMenuWidth","collectGroupsInOrderOfOccurrence","createOptgroup","getBatchOptionFormatter","getIsAllOptionsUngrouped","getOptionIsOptgroup","getOptionsSortingAlgorithm","isMultiple","removeEmptyOptGroups","reorder","sortOptgroups","listContainerVerticalPadding","sm","noop","defaultGetOptionValue","option","value","defaultGetOptionIsBatch","Array","isArray","defaultGetOptionIsDisabled","_option$disabled","disabled","defaultGetOptionGroup","_option$group","group","defaultSetOptionGroup","_objectSpread","defaultGetOptionLabel","_option$label","label","stringContains","str1","str2","toLowerCase","includes","useTokenNavigation","context","_ref","arguments","length","undefined","_ref$enabled","enabled","_ref$value","_ref$activeIndex","activeIndex","_ref$onNavigate","onNavigate","_ref$onChange","onChange","reference","onKeyDown","e","key","Math","max","repeat","nextVal","filter","_","i","useKeyboardSelection","_ref2","_ref2$enabled","_ref2$onSelect","onSelect","floating","useSuperSelect","_ref3","_ref3$block","block","customComponents","components","defaultValue","_ref3$disabled","_ref3$draggable","draggable","_ref3$emptyMessage","emptyMessage","error","footer","_ref3$getOptionGroup","getOptionGroup","_ref3$getOptionIsBatc","getOptionIsBatch","_ref3$getOptionIsDisa","getOptionIsDisabled","_ref3$getOptionLabel","getOptionLabel","getOptionPartiallySelected","_ref3$getOptionValue","getOptionValue","_ref3$onScrollBottom","onScrollBottom","_ref3$onOpenChange","onOpenChange","header","_ref3$loading","loading","_ref3$multiple","multiple","onManualSort","_ref3$options","options","sourceOptions","placeholder","_ref3$preset","preset","presetProps","_ref3$search","search","_ref3$selectionStyle","selectionStyle","_ref3$setOptionGroup","setOptionGroup","_ref3$sort","sort","_ref3$tabIndex","tabIndex","value_","_ref3$overlayMatchesT","overlayMatchesTriggerWidth","ariaLabel","useEffect","isUsingDefaultGetter","isUsingDefaultSetter","console","warn","i18n","initialValue","_React$useState","useState","_React$useState2","_slicedToArray","val","setVal","setValue","v","navigationList","useRef","virtuoso","searchRef","overlayId","listId","_React$useState3","_React$useState4","open","setOpen","_React$useState5","_React$useState6","pointer","setPointer","_React$useState7","_React$useState8","width","setWidth","_React$useState9","_React$useState0","maxHeight","setMaxHeight","_React$useState1","_React$useState10","listHeight","setListHeight","_React$useState11","_React$useState12","searchHeight","setSearchHeight","_React$useState13","_React$useState14","footerHeight","setFooterHeight","listContainerHeight","min","_React$useState15","_React$useState16","searchValue","setSearchValue_","setSearchValue","_React$useState17","_React$useState18","activeMenuIndex","setActiveMenuIndex","_React$useState19","_React$useState20","activeTokenIndex","setActiveTokenIndex","sortOptions","useMemo","formatBatchOption","enforceOptionsSortingOrder","useCallback","groupAndSort","opts","_collectGroupsInOrder","groups","groupedOptions","Object","entries","_ref4","_ref5","_ref6","groupA","_ref7","groupB","flatMap","_ref8","_ref9","groupName","groupOptions","deriveOptionsSortingOrder","_collectGroupsInOrder2","groupAndSortAlgorithm","queried","opt","_toConsumableArray","map","_React$useState21","_React$useState22","draggableOptions","setDraggableOptions","_defineProperty","queriedDraggableOptions","groupIndices","reduce","acc","push","selectedIndex","findIndex","isSelectableOption","selectedOption","find","selectedLabel","o","getFirstSelectableOptionIndex","optionValue","concat","onKeyboardSelect","getOptionIsSelected","optionValues","every","defaultGetOptionIsPartiallySelected","some","isEmpty","boundWidthRef","current","whileElementsMounted","_len","args","_key","apply","animationFrame","strategy","middleware","_ref0","rects","mainAxis","crossAxis","_ref1","availableHeight","elements","getBoundingClientRect","padding","_useZIndexContext","zIndex","_useInteractions","keyboardHandlers","disabledIndices","listRef","loop","virtual","$block","$disabled","$error","$hasClearIcon","$loading","$multiple","$open","$placeholder","role","id","onPointerMove","style","position","left","x","top","y","getReferenceProps","getFloatingProps","getItemProps","getLabelProps","$hoverable","getMultiInputProps","ref","_floating$refs$floati","preventDefault","stopPropagation","refs","focus","currentTarget","opacity","getMultiValueProps","index","onClick","getSearchContainerProps","el","_el$clientHeight","clientHeight","getSearchProps","t","getHeaderProps","getFooterProps","_el$clientHeight2","getEmptyMessageProps","getClearProps","getMenuProps","scrollable","height","getVirtuosoProps","atBottomStateChange","atBottom","data","Item","initialTopMostItemIndex","flex","totalListHeightChanged","onDragEnd","result","destination","source","startIndex","destinationIndex","_reorder","nextOptions","prevGroup","nextGroup","adjustedOptions","setTimeout","fill","useLayoutEffect","_virtuoso$current","scrollIntoView","config","state","props","clear","item","menu","multiInput","overlay","searchContainer","tokenClear","trigger","isBatch","isPartiallySelected","isSelected","isDisabled","isOptgroup","SuperSelectContext","createContext","useSuperSelectContext","ctx","useContext","Error"],"sources":["../../src/SuperSelect/useSuperSelect.ts"],"sourcesContent":["import type { ElementProps, FloatingContext } from '@floating-ui/react'\nimport {\n autoUpdate,\n flip,\n offset,\n size,\n useClick,\n useDismiss,\n useFloating,\n useInteractions,\n useListNavigation,\n} from '@floating-ui/react'\nimport { useId } from '@react-aria/utils'\nimport debounce from 'lodash.debounce'\nimport uniq from 'lodash.uniq'\nimport React from 'react'\nimport type { VirtuosoHandle, VirtuosoProps } from 'react-virtuoso'\nimport { ulid } from 'ulid'\nimport { useI18nContext } from '../_hooks/I18n'\nimport { useZIndexContext } from '../_hooks/ZIndex'\nimport { spacing } from '../_styles/spacing'\nimport * as defaultComponents from './SuperSelect.components'\nimport { draggableOptionIdSymbol } from './SuperSelect.constants'\nimport { extendedSelectMenuWidth } from './SuperSelect.styles'\nimport type {\n KeyboardSelectionProps,\n SuperSelectApi,\n SuperSelectConfig,\n SuperSelectOption,\n SuperSelectResult,\n SuperSelectValue,\n SuperSelectValuePrimitive,\n TokenNavigationProps,\n} from './SuperSelect.types'\nimport {\n collectGroupsInOrderOfOccurrence,\n createOptgroup,\n getBatchOptionFormatter,\n getIsAllOptionsUngrouped,\n getOptionIsOptgroup,\n getOptionsSortingAlgorithm,\n isMultiple,\n removeEmptyOptGroups,\n reorder,\n sortOptgroups,\n} from './SuperSelect.utils'\n\nconst listContainerVerticalPadding = spacing.sm * 2\n\nfunction noop() {}\n\nfunction defaultGetOptionValue(option: SuperSelectOption) {\n return option?.value\n}\n\nfunction defaultGetOptionIsBatch(option: SuperSelectOption): boolean {\n return Array.isArray(option?.value)\n}\n\nfunction defaultGetOptionIsDisabled(option: SuperSelectOption): boolean {\n return option?.disabled ?? false\n}\n\nfunction defaultGetOptionGroup(option: SuperSelectOption): string {\n return option?.group ?? ''\n}\n\nfunction defaultSetOptionGroup(\n option: SuperSelectOption,\n group: string\n): SuperSelectOption {\n return {\n ...option,\n group,\n }\n}\n\nfunction defaultGetOptionLabel(option: SuperSelectOption): string {\n return option?.label ?? ''\n}\n\nfunction stringContains(str1: string, str2: string) {\n return str1.toLowerCase().includes(str2.toLowerCase())\n}\n\nfunction useTokenNavigation(\n context: FloatingContext<HTMLElement>,\n {\n enabled = true,\n value = [],\n activeIndex = null,\n onNavigate = noop,\n onChange = noop,\n }: TokenNavigationProps = {}\n): ElementProps {\n return {\n reference: {\n onKeyDown(e) {\n if (!enabled || !Array.isArray(value)) {\n return\n }\n\n if (e.key === 'ArrowLeft') {\n if (activeIndex !== null) {\n onNavigate(Math.max(0, activeIndex - 1))\n } else if (value.length > 0) {\n onNavigate(value.length - 1)\n }\n } else if (e.key === 'ArrowRight') {\n if (activeIndex !== null) {\n if (activeIndex === value.length - 1) {\n onNavigate(null)\n } else {\n onNavigate(activeIndex + 1)\n }\n }\n } else if (e.key === 'Backspace') {\n if (!e.repeat) {\n if (activeIndex !== null) {\n const nextVal = value.filter((_, i) => i !== activeIndex)\n\n onChange(nextVal)\n\n if (activeIndex >= nextVal.length) {\n onNavigate(null)\n }\n } else if (value.length > 0) {\n onChange(value.filter((_, i) => i !== value.length - 1))\n }\n }\n }\n },\n },\n }\n}\n\nfunction useKeyboardSelection(\n context: FloatingContext<HTMLElement>,\n { enabled = true, onSelect = () => {} }: KeyboardSelectionProps = {}\n): ElementProps {\n function onKeyDown(e: React.KeyboardEvent) {\n if (!enabled) {\n return\n }\n\n if (e.key === 'Enter') {\n onSelect()\n }\n }\n\n return {\n reference: {\n onKeyDown,\n },\n floating: {\n onKeyDown,\n },\n }\n}\n\nexport function useSuperSelect({\n block = false,\n components: customComponents,\n defaultValue,\n disabled = false,\n draggable = false,\n emptyMessage = 'No results',\n error,\n footer,\n getOptionGroup = defaultGetOptionGroup,\n getOptionIsBatch = defaultGetOptionIsBatch,\n getOptionIsDisabled = defaultGetOptionIsDisabled,\n getOptionLabel = defaultGetOptionLabel,\n getOptionPartiallySelected,\n getOptionValue = defaultGetOptionValue,\n onScrollBottom = noop,\n onOpenChange = noop,\n header,\n loading = false,\n multiple = false,\n onChange,\n onManualSort,\n options: sourceOptions = [],\n placeholder,\n preset = '',\n presetProps,\n search = true,\n selectionStyle = 'highlight',\n setOptionGroup = defaultSetOptionGroup,\n sort = true,\n tabIndex = 0,\n value: value_,\n overlayMatchesTriggerWidth = true,\n 'aria-label': ariaLabel,\n}: SuperSelectConfig): SuperSelectApi {\n React.useEffect(() => {\n if (!draggable) {\n return\n }\n\n const isUsingDefaultGetter = getOptionGroup === defaultGetOptionGroup\n const isUsingDefaultSetter = setOptionGroup === defaultSetOptionGroup\n\n if (\n (isUsingDefaultGetter && !isUsingDefaultSetter) ||\n (!isUsingDefaultGetter && isUsingDefaultSetter)\n ) {\n console.warn(\n `SuperSelect: Using potentially conflicting \"getOptionGroup\" and \"setOptionGroup\" implementations.\n Group reassignment after drag-and-drop operation might be broken.`\n )\n }\n }, [draggable, getOptionGroup, setOptionGroup])\n\n const i18n = useI18nContext()\n\n const initialValue = defaultValue ?? (multiple ? [] : null)\n const [val, setVal] = React.useState<SuperSelectValue>(initialValue)\n const value = value_ !== undefined ? value_ : val\n function setValue(v: SuperSelectValue) {\n if (!value_) {\n setVal(v)\n }\n\n if (onChange) {\n onChange(v)\n }\n }\n\n const navigationList = React.useRef<Array<HTMLElement | null>>([])\n const virtuoso = React.useRef<VirtuosoHandle>(null)\n const searchRef = React.useRef<HTMLInputElement>(null)\n\n const overlayId = useId() // TODO use React 18 useId\n const listId = useId() // TODO use React 18 useId\n\n const [open, setOpen] = React.useState(false)\n const [pointer, setPointer] = React.useState(false)\n const [width, setWidth] = React.useState(248)\n const [maxHeight, setMaxHeight] = React.useState(248)\n const [listHeight, setListHeight] = React.useState(0)\n const [searchHeight, setSearchHeight] = React.useState(0)\n const [footerHeight, setFooterHeight] = React.useState(0)\n const listContainerHeight = Math.min(\n maxHeight - searchHeight - footerHeight + listContainerVerticalPadding,\n listHeight + listContainerVerticalPadding\n )\n const [searchValue, setSearchValue_] = React.useState('')\n const setSearchValue = debounce(setSearchValue_, 250) // TODO use React 18 useDeferredValue\n\n const [activeMenuIndex, setActiveMenuIndex] = React.useState<number | null>(\n null\n )\n const [activeTokenIndex, setActiveTokenIndex] = React.useState<number | null>(\n null\n )\n\n const components = {\n ...defaultComponents,\n ...(customComponents || {}),\n }\n\n // TODO #memogetters: consider having getOption... getter functions memoized by consumers\n // Until then, exclude these callbacks from effect and memo dependencies\n const sortOptions = React.useMemo(\n () => getOptionsSortingAlgorithm({ getOptionIsBatch, getOptionLabel }),\n // skip `getOptionIsBatch` and `getOptionLabel`\n []\n )\n\n const formatBatchOption = React.useMemo(\n () =>\n getBatchOptionFormatter({\n value,\n multiple,\n getOptionIsBatch,\n getOptionValue,\n }),\n // skip `getOptionIsBatch` and `getOptionValue`, refer to TODO #memogetters\n [value, multiple]\n )\n\n // collect groups, sort them and populate them with options, and sort the options inside the groups\n const enforceOptionsSortingOrder = React.useCallback(\n function groupAndSort(opts: SuperSelectOption[]) {\n const { groups, groupedOptions } = collectGroupsInOrderOfOccurrence(\n opts,\n getOptionGroup\n )\n\n if (getIsAllOptionsUngrouped(groups)) {\n return opts.sort(sortOptions)\n }\n\n return Object.entries(groupedOptions)\n .sort(([groupA], [groupB]) => sortOptgroups(groupA, groupB))\n .flatMap(([groupName, groupOptions]) =>\n createOptgroup(groupName, groupOptions.sort(sortOptions))\n )\n },\n // skip `getOptionGroup`, refer to TODO #memogetters\n [sortOptions]\n )\n\n // collect groups and populate them with options\n const deriveOptionsSortingOrder = React.useCallback(\n (opts: SuperSelectOption[]) => {\n const { groups, groupedOptions } = collectGroupsInOrderOfOccurrence(\n opts,\n getOptionGroup\n )\n\n if (getIsAllOptionsUngrouped(groups)) {\n return opts\n }\n\n // display optgroups in the order of occurrence, as they are considered pre-sorted\n return groups.flatMap((group) => {\n const groupOptions = groupedOptions[group]\n\n return createOptgroup(group, groupOptions)\n })\n },\n // skip `getOptionGroup`, refer to TODO #memogetters\n []\n )\n\n const groupAndSortAlgorithm = React.useMemo(\n () => (sort ? enforceOptionsSortingOrder : deriveOptionsSortingOrder),\n [sort, enforceOptionsSortingOrder, deriveOptionsSortingOrder]\n )\n\n const options = React.useMemo(\n () => {\n const queried = searchValue\n ? sourceOptions.filter((opt) =>\n stringContains(getOptionLabel(opt), searchValue)\n )\n : [...sourceOptions] // make a copy of source options to prevent the mutation when sorting\n\n return groupAndSortAlgorithm(queried).map(formatBatchOption)\n },\n // skip `getOptionLabel`, refer to TODO #memogetters\n [groupAndSortAlgorithm, formatBatchOption, searchValue, sourceOptions]\n )\n\n const [draggableOptions, setDraggableOptions] = React.useState<\n SuperSelectOption[]\n >([])\n\n React.useEffect(\n () => {\n if (!draggable) {\n return\n }\n // make a copy of source options to prevent the mutation when sorting\n const opts = groupAndSortAlgorithm(\n sourceOptions.map((opt) => ({\n ...opt,\n [draggableOptionIdSymbol]: ulid(),\n }))\n )\n setDraggableOptions(opts)\n },\n // in draggable mode, sourceOptions must be memoized, othewise reorder will not work\n [draggable, sourceOptions, groupAndSortAlgorithm]\n )\n\n const queriedDraggableOptions = React.useMemo(\n () => {\n if (!draggable) {\n return []\n }\n\n const queried = searchValue\n ? removeEmptyOptGroups(\n draggableOptions.filter((opt) => {\n if (!getOptionIsOptgroup(opt)) {\n return stringContains(getOptionLabel(opt), searchValue)\n }\n return true\n })\n )\n : draggableOptions\n\n return queried.map(formatBatchOption)\n },\n // skip `getOptionLabel`, refer to TODO #memogetters\n [draggable, draggableOptions, searchValue, formatBatchOption]\n )\n\n const groupIndices = React.useMemo(() => {\n return options.reduce((acc, opt, i) => {\n if (getOptionIsOptgroup(opt)) {\n acc.push(i)\n }\n return acc\n }, [] as number[])\n }, [options])\n\n const selectedIndex = React.useMemo(() => {\n return options.findIndex(\n (option) => isSelectableOption(option) && getOptionValue(option) === value\n )\n }, [options, value])\n\n const selectedOption = React.useMemo(() => {\n const val = Array.isArray(value) ? value[0] : value\n return options.find((option) => getOptionValue(option) === val)\n }, [options, value])\n\n const selectedLabel = React.useMemo(() => {\n return selectedOption ? getOptionLabel(selectedOption) : ''\n }, [selectedOption])\n\n function isSelectableOption(o: SuperSelectOption) {\n return !getOptionIsOptgroup(o) && !getOptionIsDisabled(o)\n }\n\n function getFirstSelectableOptionIndex() {\n return options.findIndex(isSelectableOption)\n }\n\n function onSelect(option: SuperSelectOption) {\n if (getOptionIsDisabled(option)) {\n return\n }\n\n const optionValue = getOptionValue(option)\n\n if (isMultiple(multiple, value)) {\n if (Array.isArray(optionValue)) {\n setValue(uniq([...value, ...optionValue]))\n } else {\n setValue(\n value.includes(optionValue)\n ? value.filter(\n (val: SuperSelectValuePrimitive) => val !== optionValue\n )\n : [...value, optionValue]\n )\n }\n } else {\n setValue(optionValue)\n }\n }\n\n function onKeyboardSelect() {\n if (activeMenuIndex !== null) {\n const option = options[activeMenuIndex]\n\n if (option) {\n onSelect(option)\n }\n }\n }\n\n function getOptionIsSelected(option: SuperSelectOption) {\n if (Array.isArray(value)) {\n const optionValues = getOptionValue(option)\n\n if (Array.isArray(optionValues)) {\n return optionValues.every((v) => value.includes(v))\n }\n\n return value.includes(optionValues)\n }\n\n return value === getOptionValue(option)\n }\n\n function defaultGetOptionIsPartiallySelected(option: SuperSelectOption) {\n if (selectionStyle !== 'checkbox') {\n return false\n }\n\n if (Array.isArray(value)) {\n const optionValues = getOptionValue(option)\n\n if (Array.isArray(optionValues)) {\n return (\n optionValues.some((v) => value.includes(v)) &&\n !optionValues.every((v) => value.includes(v))\n )\n }\n }\n\n return false\n }\n\n function isEmpty() {\n return Array.isArray(value) ? value.length === 0 : value === null\n }\n\n const boundWidthRef = React.useRef(open)\n\n React.useEffect(() => {\n boundWidthRef.current = open\n }, [open])\n\n const floating = useFloating<HTMLElement>({\n open,\n onOpenChange: (open) => {\n setOpen(open)\n onOpenChange(open)\n },\n whileElementsMounted: (...args) =>\n /* { animationFrame: true } is used to fix ResizeObserver issue with @floating-ui/react */\n autoUpdate(...args, { animationFrame: true }),\n strategy: 'fixed',\n middleware: [\n offset(({ rects }) => {\n return {\n mainAxis: 2,\n crossAxis: overlayMatchesTriggerWidth\n ? 0\n : (rects.floating.width - rects.reference.width) / 2,\n }\n }),\n flip(),\n size({\n apply({ availableHeight, elements }) {\n if (boundWidthRef.current) {\n boundWidthRef.current = false\n setWidth(\n overlayMatchesTriggerWidth\n ? elements.reference.getBoundingClientRect().width\n : extendedSelectMenuWidth\n )\n }\n setMaxHeight(availableHeight)\n },\n padding: 10,\n }),\n ],\n })\n\n const { value: zIndex } = useZIndexContext()\n\n const { getReferenceProps, getFloatingProps, getItemProps } = useInteractions(\n [\n useClick(floating.context, {\n enabled: !disabled,\n keyboardHandlers: false,\n }),\n useDismiss(floating.context, {\n enabled: !disabled,\n }),\n useListNavigation(floating.context, {\n activeIndex: activeMenuIndex,\n disabledIndices: groupIndices,\n enabled: !disabled,\n listRef: navigationList,\n loop: true,\n onNavigate: (i) => setActiveMenuIndex(() => i),\n selectedIndex,\n virtual: true,\n }),\n useTokenNavigation(floating.context, {\n activeIndex: activeTokenIndex,\n enabled: !disabled && multiple && searchValue === '',\n onChange: setValue,\n onNavigate: (i) => setActiveTokenIndex(() => i),\n value,\n }),\n useKeyboardSelection(floating.context, {\n enabled: !disabled,\n onSelect: onKeyboardSelect,\n }),\n {\n reference: {\n $block: block,\n $disabled: disabled,\n $error: error,\n $hasClearIcon: !disabled && !loading,\n $loading: loading,\n $multiple: multiple,\n $open: open,\n $placeholder: !selectedLabel,\n 'aria-controls': search ? overlayId : listId,\n 'aria-expanded': open,\n 'aria-haspopup': search ? 'dialog' : 'listbox',\n ...(ariaLabel && { 'aria-label': ariaLabel }),\n onKeyDown() {\n setPointer(false)\n },\n role: 'combobox',\n search,\n tabIndex: disabled ? -1 : tabIndex,\n } as any, // TODO fix type\n floating: {\n role: search ? 'dialog' : 'none',\n id: overlayId,\n onKeyDown() {\n setPointer(false)\n },\n onPointerMove() {\n setPointer(true)\n },\n style: {\n position: floating.strategy,\n left: floating.x || 0,\n top: floating.y || 0,\n width,\n maxHeight,\n zIndex,\n },\n },\n },\n ]\n )\n\n function getLabelProps() {\n return {\n $hoverable: false,\n }\n }\n\n function getMultiInputProps(): React.AriaAttributes &\n React.InputHTMLAttributes<HTMLInputElement> & {\n ref: React.Ref<HTMLInputElement>\n } {\n return {\n ref: searchRef,\n placeholder: isEmpty() ? placeholder : '',\n disabled,\n 'aria-controls': listId,\n onKeyDown(e) {\n if (e.key === 'Tab') {\n if (open) {\n e.preventDefault()\n e.stopPropagation()\n floating.refs.floating.current?.focus()\n }\n }\n },\n onChange(e) {\n setSearchValue(e.currentTarget.value)\n setActiveTokenIndex(null)\n },\n style: {\n opacity: activeTokenIndex === null ? 1 : 0,\n },\n }\n }\n\n function getMultiValueProps(index: number) {\n return {\n onClick(e: React.MouseEvent) {\n // prevent the menu from closing\n e.stopPropagation()\n\n if (isMultiple(multiple, value)) {\n setValue(value.filter((_, i) => i !== index))\n }\n },\n }\n }\n\n function getSearchContainerProps() {\n return {\n ref: (el: HTMLElement | null) => {\n setSearchHeight(el?.clientHeight ?? 0)\n },\n }\n }\n\n function getSearchProps() {\n return {\n 'aria-controls': listId,\n onChange(value: string) {\n setSearchValue(value)\n setActiveTokenIndex(null)\n },\n placeholder: i18n.t('core.select.search'),\n }\n }\n\n function getHeaderProps() {\n return {\n ref: (el: HTMLElement | null) => {},\n }\n }\n\n function getFooterProps() {\n return {\n ref: (el: HTMLElement | null) => {\n setFooterHeight(el?.clientHeight ?? 0)\n },\n onKeyDown: (e: React.KeyboardEvent) => {\n if (e.key !== 'Escape') {\n e.stopPropagation()\n }\n },\n }\n }\n\n function getEmptyMessageProps() {\n return {\n emptyMessage,\n }\n }\n\n function getClearProps() {\n return {\n 'aria-hidden': true,\n 'aria-label': i18n.t('core.select.clear'),\n onClick(e: React.MouseEvent) {\n // prevent the menu from closing\n e.stopPropagation()\n\n setActiveTokenIndex(null)\n setValue(multiple ? [] : null)\n setOpen(true)\n },\n }\n }\n\n function getMenuProps() {\n return {\n scrollable: false,\n style: {\n height: listContainerHeight,\n },\n }\n }\n\n function getVirtuosoProps(): VirtuosoProps<{}, {}> {\n const atBottomStateChange = (atBottom: boolean) => {\n if (atBottom) {\n onScrollBottom()\n }\n }\n\n return {\n role: 'listbox',\n id: search ? overlayId : listId,\n data: draggable ? queriedDraggableOptions : options,\n components: {\n Item: components?.Item as any, // TODO fix type\n },\n initialTopMostItemIndex: selectedIndex >= 0 ? selectedIndex : 0,\n style: {\n flex: '1 1 auto',\n },\n tabIndex: -1,\n totalListHeightChanged: setListHeight,\n atBottomStateChange,\n }\n }\n\n const onDragEnd = React.useCallback((result: SuperSelectResult) => {\n if (!result.destination) {\n return\n }\n if (result.source.index === result.destination.index) {\n return\n }\n\n const startIndex = result.source.index\n const destinationIndex = result.destination.index\n\n setDraggableOptions((options) => {\n const { nextOptions, prevGroup, nextGroup } = reorder(\n options,\n startIndex,\n destinationIndex\n )\n\n const adjustedOptions =\n prevGroup !== nextGroup\n ? nextOptions.map((option, index) => {\n if (index === destinationIndex) {\n return setOptionGroup(option, nextGroup)\n }\n return option\n })\n : nextOptions\n\n if (typeof onManualSort === 'function') {\n setTimeout(() => {\n onManualSort(\n adjustedOptions.filter((option) => !getOptionIsOptgroup(option))\n )\n }, 0)\n }\n\n return adjustedOptions\n })\n }, [])\n\n // run effect when the `open` state changes\n //\n // if it was closed and is now open, reset the highlighted index to be\n // the first selectable option\n //\n // if it was open and is now closed, reset the search value and focused token index\n React.useEffect(() => {\n if (open) {\n setActiveMenuIndex(() =>\n selectedIndex >= 0 ? selectedIndex : getFirstSelectableOptionIndex()\n )\n } else {\n setSearchValue(() => '')\n setActiveTokenIndex(() => null)\n }\n }, [open])\n\n // run the effect when user enters a serach value\n //\n // if the select is currently open then reset highlighted item to be the first\n // selectable option\n React.useEffect(() => {\n if (open) {\n setActiveMenuIndex(() => getFirstSelectableOptionIndex())\n }\n }, [searchValue])\n\n // when we change the value then close the overlay, but only if we have\n // actually selected a value\n //\n // multiple mode forces the overlay to stay open\n React.useEffect(() => {\n if (!multiple && value !== null) {\n setOpen(() => false)\n }\n }, [value])\n\n // recreate the array to hold dom refs when our options change\n React.useEffect(() => {\n navigationList.current = [...Array(options.length).fill(null)]\n }, [options])\n\n // scroll virtuoso list activeMenuIndex into view when the index changes\n React.useLayoutEffect(() => {\n if (activeMenuIndex !== null) {\n if (!pointer) {\n virtuoso.current?.scrollIntoView({ index: activeMenuIndex })\n }\n }\n }, [activeMenuIndex, open])\n\n return {\n config: {\n block,\n disabled,\n draggable,\n emptyMessage,\n error,\n footer,\n header,\n placeholder,\n preset,\n presetProps,\n selectionStyle,\n tabIndex,\n loading,\n multiple,\n },\n components,\n state: {\n activeMenuIndex,\n activeTokenIndex,\n isEmpty,\n listContainerHeight,\n listId,\n maxHeight,\n onDragEnd,\n onSelect,\n open,\n options: draggable ? queriedDraggableOptions : options,\n overlayId,\n searchValue,\n selectedIndex,\n selectedLabel,\n selectedOption,\n setOpen,\n setPointer,\n setSearchValue: setSearchValue,\n sourceOptions,\n value,\n width,\n },\n props: {\n clear: getClearProps,\n emptyMessage: getEmptyMessageProps,\n footer: getFooterProps,\n header: getHeaderProps,\n item: getItemProps,\n label: getLabelProps,\n menu: getMenuProps,\n multiInput: getMultiInputProps,\n overlay: getFloatingProps,\n search: getSearchProps,\n searchContainer: getSearchContainerProps,\n tokenClear: getMultiValueProps,\n trigger: getReferenceProps,\n virtuoso: getVirtuosoProps,\n },\n option: {\n group: getOptionGroup,\n isBatch: getOptionIsBatch,\n isPartiallySelected:\n getOptionPartiallySelected ?? defaultGetOptionIsPartiallySelected,\n isSelected: getOptionIsSelected,\n isDisabled: getOptionIsDisabled,\n isOptgroup: getOptionIsOptgroup,\n label: getOptionLabel,\n value: getOptionValue,\n },\n refs: {\n floating,\n navigationList,\n virtuoso,\n },\n }\n}\n\nexport const SuperSelectContext = React.createContext<SuperSelectApi | null>(\n null\n)\n\nexport function useSuperSelectContext(): SuperSelectApi {\n const ctx = React.useContext(SuperSelectContext)\n\n if (!ctx) {\n throw new Error('Invalid SuperSelectContext')\n }\n\n return ctx as SuperSelectApi\n}\n"],"mappings":";;;;;;;;;;;;;;;;AACA,SACEA,UAAU,EACVC,IAAI,EACJC,MAAM,EACNC,IAAI,EACJC,QAAQ,EACRC,UAAU,EACVC,WAAW,EACXC,eAAe,EACfC,iBAAiB,QACZ,oBAAoB;AAC3B,SAASC,KAAK,QAAQ,mBAAmB;AACzC,OAAOC,QAAQ,MAAM,iBAAiB;AACtC,OAAOC,IAAI,MAAM,aAAa;AAC9B,OAAOC,KAAK,MAAM,OAAO;AAEzB,SAASC,IAAI,QAAQ,MAAM;AAC3B,SAASC,cAAc,QAAQ,gBAAgB;AAC/C,SAASC,gBAAgB,QAAQ,kBAAkB;AACnD,SAASC,OAAO,QAAQ,oBAAoB;AAC5C,OAAO,KAAKC,iBAAiB,MAAM,0BAA0B;AAC7D,SAASC,uBAAuB,QAAQ,yBAAyB;AACjE,SAASC,uBAAuB,QAAQ,sBAAsB;AAW9D,SACEC,gCAAgC,EAChCC,cAAc,EACdC,uBAAuB,EACvBC,wBAAwB,EACxBC,mBAAmB,EACnBC,0BAA0B,EAC1BC,UAAU,EACVC,oBAAoB,EACpBC,OAAO,EACPC,aAAa,QACR,qBAAqB;AAE5B,IAAMC,4BAA4B,GAAGd,OAAO,CAACe,EAAE,GAAG,CAAC;AAEnD,SAASC,IAAIA,CAAA,EAAG,CAAC;AAEjB,SAASC,qBAAqBA,CAACC,MAAyB,EAAE;EACxD,OAAOA,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEC,KAAK;AACtB;AAEA,SAASC,uBAAuBA,CAACF,MAAyB,EAAW;EACnE,OAAOG,KAAK,CAACC,OAAO,CAACJ,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEC,KAAK,CAAC;AACrC;AAEA,SAASI,0BAA0BA,CAACL,MAAyB,EAAW;EAAA,IAAAM,gBAAA;EACtE,QAAAA,gBAAA,GAAON,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEO,QAAQ,cAAAD,gBAAA,cAAAA,gBAAA,GAAI,KAAK;AAClC;AAEA,SAASE,qBAAqBA,CAACR,MAAyB,EAAU;EAAA,IAAAS,aAAA;EAChE,QAAAA,aAAA,GAAOT,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEU,KAAK,cAAAD,aAAA,cAAAA,aAAA,GAAI,EAAE;AAC5B;AAEA,SAASE,qBAAqBA,CAC5BX,MAAyB,EACzBU,KAAa,EACM;EACnB,OAAAE,aAAA,CAAAA,aAAA,KACKZ,MAAM;IACTU,KAAK,EAALA;EAAK;AAET;AAEA,SAASG,qBAAqBA,CAACb,MAAyB,EAAU;EAAA,IAAAc,aAAA;EAChE,QAAAA,aAAA,GAAOd,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEe,KAAK,cAAAD,aAAA,cAAAA,aAAA,GAAI,EAAE;AAC5B;AAEA,SAASE,cAAcA,CAACC,IAAY,EAAEC,IAAY,EAAE;EAClD,OAAOD,IAAI,CAACE,WAAW,CAAC,CAAC,CAACC,QAAQ,CAACF,IAAI,CAACC,WAAW,CAAC,CAAC,CAAC;AACxD;AAEA,SAASE,kBAAkBA,CACzBC,OAAqC,EAQvB;EAAA,IAAAC,IAAA,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MADY,CAAC,CAAC;IAAAG,YAAA,GAAAJ,IAAA,CAL1BK,OAAO;IAAPA,OAAO,GAAAD,YAAA,cAAG,IAAI,GAAAA,YAAA;IAAAE,UAAA,GAAAN,IAAA,CACdtB,KAAK;IAALA,KAAK,GAAA4B,UAAA,cAAG,EAAE,GAAAA,UAAA;IAAAC,gBAAA,GAAAP,IAAA,CACVQ,WAAW;IAAXA,WAAW,GAAAD,gBAAA,cAAG,IAAI,GAAAA,gBAAA;IAAAE,eAAA,GAAAT,IAAA,CAClBU,UAAU;IAAVA,UAAU,GAAAD,eAAA,cAAGlC,IAAI,GAAAkC,eAAA;IAAAE,aAAA,GAAAX,IAAA,CACjBY,QAAQ;IAARA,QAAQ,GAAAD,aAAA,cAAGpC,IAAI,GAAAoC,aAAA;EAGjB,OAAO;IACLE,SAAS,EAAE;MACTC,SAAS,WAATA,SAASA,CAACC,CAAC,EAAE;QACX,IAAI,CAACV,OAAO,IAAI,CAACzB,KAAK,CAACC,OAAO,CAACH,KAAK,CAAC,EAAE;UACrC;QACF;QAEA,IAAIqC,CAAC,CAACC,GAAG,KAAK,WAAW,EAAE;UACzB,IAAIR,WAAW,KAAK,IAAI,EAAE;YACxBE,UAAU,CAACO,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEV,WAAW,GAAG,CAAC,CAAC,CAAC;UAC1C,CAAC,MAAM,IAAI9B,KAAK,CAACwB,MAAM,GAAG,CAAC,EAAE;YAC3BQ,UAAU,CAAChC,KAAK,CAACwB,MAAM,GAAG,CAAC,CAAC;UAC9B;QACF,CAAC,MAAM,IAAIa,CAAC,CAACC,GAAG,KAAK,YAAY,EAAE;UACjC,IAAIR,WAAW,KAAK,IAAI,EAAE;YACxB,IAAIA,WAAW,KAAK9B,KAAK,CAACwB,MAAM,GAAG,CAAC,EAAE;cACpCQ,UAAU,CAAC,IAAI,CAAC;YAClB,CAAC,MAAM;cACLA,UAAU,CAACF,WAAW,GAAG,CAAC,CAAC;YAC7B;UACF;QACF,CAAC,MAAM,IAAIO,CAAC,CAACC,GAAG,KAAK,WAAW,EAAE;UAChC,IAAI,CAACD,CAAC,CAACI,MAAM,EAAE;YACb,IAAIX,WAAW,KAAK,IAAI,EAAE;cACxB,IAAMY,OAAO,GAAG1C,KAAK,CAAC2C,MAAM,CAAC,UAACC,CAAC,EAAEC,CAAC;gBAAA,OAAKA,CAAC,KAAKf,WAAW;cAAA,EAAC;cAEzDI,QAAQ,CAACQ,OAAO,CAAC;cAEjB,IAAIZ,WAAW,IAAIY,OAAO,CAAClB,MAAM,EAAE;gBACjCQ,UAAU,CAAC,IAAI,CAAC;cAClB;YACF,CAAC,MAAM,IAAIhC,KAAK,CAACwB,MAAM,GAAG,CAAC,EAAE;cAC3BU,QAAQ,CAAClC,KAAK,CAAC2C,MAAM,CAAC,UAACC,CAAC,EAAEC,CAAC;gBAAA,OAAKA,CAAC,KAAK7C,KAAK,CAACwB,MAAM,GAAG,CAAC;cAAA,EAAC,CAAC;YAC1D;UACF;QACF;MACF;IACF;EACF,CAAC;AACH;AAEA,SAASsB,oBAAoBA,CAC3BzB,OAAqC,EAEvB;EAAA,IAAA0B,KAAA,GAAAxB,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MADoD,CAAC,CAAC;IAAAyB,aAAA,GAAAD,KAAA,CAAlEpB,OAAO;IAAPA,OAAO,GAAAqB,aAAA,cAAG,IAAI,GAAAA,aAAA;IAAAC,cAAA,GAAAF,KAAA,CAAEG,QAAQ;IAARA,QAAQ,GAAAD,cAAA,cAAG,YAAM,CAAC,CAAC,GAAAA,cAAA;EAErC,SAASb,SAASA,CAACC,CAAsB,EAAE;IACzC,IAAI,CAACV,OAAO,EAAE;MACZ;IACF;IAEA,IAAIU,CAAC,CAACC,GAAG,KAAK,OAAO,EAAE;MACrBY,QAAQ,CAAC,CAAC;IACZ;EACF;EAEA,OAAO;IACLf,SAAS,EAAE;MACTC,SAAS,EAATA;IACF,CAAC;IACDe,QAAQ,EAAE;MACRf,SAAS,EAATA;IACF;EACF,CAAC;AACH;AAEA,OAAO,SAASgB,cAAcA,CAAAC,KAAA,EAkCQ;EAAA,IAAAC,WAAA,GAAAD,KAAA,CAjCpCE,KAAK;IAALA,KAAK,GAAAD,WAAA,cAAG,KAAK,GAAAA,WAAA;IACDE,gBAAgB,GAAAH,KAAA,CAA5BI,UAAU;IACVC,YAAY,GAAAL,KAAA,CAAZK,YAAY;IAAAC,cAAA,GAAAN,KAAA,CACZ/C,QAAQ;IAARA,QAAQ,GAAAqD,cAAA,cAAG,KAAK,GAAAA,cAAA;IAAAC,eAAA,GAAAP,KAAA,CAChBQ,SAAS;IAATA,SAAS,GAAAD,eAAA,cAAG,KAAK,GAAAA,eAAA;IAAAE,kBAAA,GAAAT,KAAA,CACjBU,YAAY;IAAZA,YAAY,GAAAD,kBAAA,cAAG,YAAY,GAAAA,kBAAA;IAC3BE,KAAK,GAAAX,KAAA,CAALW,KAAK;IACLC,MAAM,GAAAZ,KAAA,CAANY,MAAM;IAAAC,oBAAA,GAAAb,KAAA,CACNc,cAAc;IAAdA,cAAc,GAAAD,oBAAA,cAAG3D,qBAAqB,GAAA2D,oBAAA;IAAAE,qBAAA,GAAAf,KAAA,CACtCgB,gBAAgB;IAAhBA,gBAAgB,GAAAD,qBAAA,cAAGnE,uBAAuB,GAAAmE,qBAAA;IAAAE,qBAAA,GAAAjB,KAAA,CAC1CkB,mBAAmB;IAAnBA,mBAAmB,GAAAD,qBAAA,cAAGlE,0BAA0B,GAAAkE,qBAAA;IAAAE,oBAAA,GAAAnB,KAAA,CAChDoB,cAAc;IAAdA,cAAc,GAAAD,oBAAA,cAAG5D,qBAAqB,GAAA4D,oBAAA;IACtCE,0BAA0B,GAAArB,KAAA,CAA1BqB,0BAA0B;IAAAC,oBAAA,GAAAtB,KAAA,CAC1BuB,cAAc;IAAdA,cAAc,GAAAD,oBAAA,cAAG7E,qBAAqB,GAAA6E,oBAAA;IAAAE,oBAAA,GAAAxB,KAAA,CACtCyB,cAAc;IAAdA,cAAc,GAAAD,oBAAA,cAAGhF,IAAI,GAAAgF,oBAAA;IAAAE,kBAAA,GAAA1B,KAAA,CACrB2B,YAAY;IAAZA,aAAY,GAAAD,kBAAA,cAAGlF,IAAI,GAAAkF,kBAAA;IACnBE,MAAM,GAAA5B,KAAA,CAAN4B,MAAM;IAAAC,aAAA,GAAA7B,KAAA,CACN8B,OAAO;IAAPA,OAAO,GAAAD,aAAA,cAAG,KAAK,GAAAA,aAAA;IAAAE,cAAA,GAAA/B,KAAA,CACfgC,QAAQ;IAARA,QAAQ,GAAAD,cAAA,cAAG,KAAK,GAAAA,cAAA;IAChBlD,QAAQ,GAAAmB,KAAA,CAARnB,QAAQ;IACRoD,YAAY,GAAAjC,KAAA,CAAZiC,YAAY;IAAAC,aAAA,GAAAlC,KAAA,CACZmC,OAAO;IAAEC,aAAa,GAAAF,aAAA,cAAG,EAAE,GAAAA,aAAA;IAC3BG,WAAW,GAAArC,KAAA,CAAXqC,WAAW;IAAAC,YAAA,GAAAtC,KAAA,CACXuC,MAAM;IAANA,MAAM,GAAAD,YAAA,cAAG,EAAE,GAAAA,YAAA;IACXE,WAAW,GAAAxC,KAAA,CAAXwC,WAAW;IAAAC,YAAA,GAAAzC,KAAA,CACX0C,MAAM;IAANA,MAAM,GAAAD,YAAA,cAAG,IAAI,GAAAA,YAAA;IAAAE,oBAAA,GAAA3C,KAAA,CACb4C,cAAc;IAAdA,cAAc,GAAAD,oBAAA,cAAG,WAAW,GAAAA,oBAAA;IAAAE,oBAAA,GAAA7C,KAAA,CAC5B8C,cAAc;IAAdA,cAAc,GAAAD,oBAAA,cAAGxF,qBAAqB,GAAAwF,oBAAA;IAAAE,UAAA,GAAA/C,KAAA,CACtCgD,IAAI;IAAJA,IAAI,GAAAD,UAAA,cAAG,IAAI,GAAAA,UAAA;IAAAE,cAAA,GAAAjD,KAAA,CACXkD,QAAQ;IAARA,QAAQ,GAAAD,cAAA,cAAG,CAAC,GAAAA,cAAA;IACLE,MAAM,GAAAnD,KAAA,CAAbrD,KAAK;IAAAyG,qBAAA,GAAApD,KAAA,CACLqD,0BAA0B;IAA1BA,0BAA0B,GAAAD,qBAAA,cAAG,IAAI,GAAAA,qBAAA;IACnBE,SAAS,GAAAtD,KAAA,CAAvB,YAAY;EAEZ5E,KAAK,CAACmI,SAAS,CAAC,YAAM;IACpB,IAAI,CAAC/C,SAAS,EAAE;MACd;IACF;IAEA,IAAMgD,oBAAoB,GAAG1C,cAAc,KAAK5D,qBAAqB;IACrE,IAAMuG,oBAAoB,GAAGX,cAAc,KAAKzF,qBAAqB;IAErE,IACGmG,oBAAoB,IAAI,CAACC,oBAAoB,IAC7C,CAACD,oBAAoB,IAAIC,oBAAqB,EAC/C;MACAC,OAAO,CAACC,IAAI,mLAGZ,CAAC;IACH;EACF,CAAC,EAAE,CAACnD,SAAS,EAAEM,cAAc,EAAEgC,cAAc,CAAC,CAAC;EAE/C,IAAMc,IAAI,GAAGtI,cAAc,CAAC,CAAC;EAE7B,IAAMuI,YAAY,GAAGxD,YAAY,aAAZA,YAAY,cAAZA,YAAY,GAAK2B,QAAQ,GAAG,EAAE,GAAG,IAAK;EAC3D,IAAA8B,eAAA,GAAsB1I,KAAK,CAAC2I,QAAQ,CAAmBF,YAAY,CAAC;IAAAG,gBAAA,GAAAC,cAAA,CAAAH,eAAA;IAA7DI,GAAG,GAAAF,gBAAA;IAAEG,MAAM,GAAAH,gBAAA;EAClB,IAAMrH,KAAK,GAAGwG,MAAM,KAAK/E,SAAS,GAAG+E,MAAM,GAAGe,GAAG;EACjD,SAASE,QAAQA,CAACC,CAAmB,EAAE;IACrC,IAAI,CAAClB,MAAM,EAAE;MACXgB,MAAM,CAACE,CAAC,CAAC;IACX;IAEA,IAAIxF,QAAQ,EAAE;MACZA,QAAQ,CAACwF,CAAC,CAAC;IACb;EACF;EAEA,IAAMC,cAAc,GAAGlJ,KAAK,CAACmJ,MAAM,CAA4B,EAAE,CAAC;EAClE,IAAMC,QAAQ,GAAGpJ,KAAK,CAACmJ,MAAM,CAAiB,IAAI,CAAC;EACnD,IAAME,SAAS,GAAGrJ,KAAK,CAACmJ,MAAM,CAAmB,IAAI,CAAC;EAEtD,IAAMG,SAAS,GAAGzJ,KAAK,CAAC,CAAC,EAAC;EAC1B,IAAM0J,MAAM,GAAG1J,KAAK,CAAC,CAAC,EAAC;;EAEvB,IAAA2J,gBAAA,GAAwBxJ,KAAK,CAAC2I,QAAQ,CAAC,KAAK,CAAC;IAAAc,gBAAA,GAAAZ,cAAA,CAAAW,gBAAA;IAAtCE,IAAI,GAAAD,gBAAA;IAAEE,OAAO,GAAAF,gBAAA;EACpB,IAAAG,gBAAA,GAA8B5J,KAAK,CAAC2I,QAAQ,CAAC,KAAK,CAAC;IAAAkB,gBAAA,GAAAhB,cAAA,CAAAe,gBAAA;IAA5CE,OAAO,GAAAD,gBAAA;IAAEE,UAAU,GAAAF,gBAAA;EAC1B,IAAAG,gBAAA,GAA0BhK,KAAK,CAAC2I,QAAQ,CAAC,GAAG,CAAC;IAAAsB,gBAAA,GAAApB,cAAA,CAAAmB,gBAAA;IAAtCE,KAAK,GAAAD,gBAAA;IAAEE,QAAQ,GAAAF,gBAAA;EACtB,IAAAG,gBAAA,GAAkCpK,KAAK,CAAC2I,QAAQ,CAAC,GAAG,CAAC;IAAA0B,gBAAA,GAAAxB,cAAA,CAAAuB,gBAAA;IAA9CE,SAAS,GAAAD,gBAAA;IAAEE,YAAY,GAAAF,gBAAA;EAC9B,IAAAG,gBAAA,GAAoCxK,KAAK,CAAC2I,QAAQ,CAAC,CAAC,CAAC;IAAA8B,iBAAA,GAAA5B,cAAA,CAAA2B,gBAAA;IAA9CE,UAAU,GAAAD,iBAAA;IAAEE,aAAa,GAAAF,iBAAA;EAChC,IAAAG,iBAAA,GAAwC5K,KAAK,CAAC2I,QAAQ,CAAC,CAAC,CAAC;IAAAkC,iBAAA,GAAAhC,cAAA,CAAA+B,iBAAA;IAAlDE,YAAY,GAAAD,iBAAA;IAAEE,eAAe,GAAAF,iBAAA;EACpC,IAAAG,iBAAA,GAAwChL,KAAK,CAAC2I,QAAQ,CAAC,CAAC,CAAC;IAAAsC,iBAAA,GAAApC,cAAA,CAAAmC,iBAAA;IAAlDE,YAAY,GAAAD,iBAAA;IAAEE,eAAe,GAAAF,iBAAA;EACpC,IAAMG,mBAAmB,GAAGtH,IAAI,CAACuH,GAAG,CAClCf,SAAS,GAAGQ,YAAY,GAAGI,YAAY,GAAGhK,4BAA4B,EACtEwJ,UAAU,GAAGxJ,4BACf,CAAC;EACD,IAAAoK,iBAAA,GAAuCtL,KAAK,CAAC2I,QAAQ,CAAC,EAAE,CAAC;IAAA4C,iBAAA,GAAA1C,cAAA,CAAAyC,iBAAA;IAAlDE,WAAW,GAAAD,iBAAA;IAAEE,eAAe,GAAAF,iBAAA;EACnC,IAAMG,cAAc,GAAG5L,QAAQ,CAAC2L,eAAe,EAAE,GAAG,CAAC,EAAC;;EAEtD,IAAAE,iBAAA,GAA8C3L,KAAK,CAAC2I,QAAQ,CAC1D,IACF,CAAC;IAAAiD,iBAAA,GAAA/C,cAAA,CAAA8C,iBAAA;IAFME,eAAe,GAAAD,iBAAA;IAAEE,kBAAkB,GAAAF,iBAAA;EAG1C,IAAAG,iBAAA,GAAgD/L,KAAK,CAAC2I,QAAQ,CAC5D,IACF,CAAC;IAAAqD,iBAAA,GAAAnD,cAAA,CAAAkD,iBAAA;IAFME,gBAAgB,GAAAD,iBAAA;IAAEE,mBAAmB,GAAAF,iBAAA;EAI5C,IAAMhH,UAAU,GAAA9C,aAAA,CAAAA,aAAA,KACX7B,iBAAiB,GAChB0E,gBAAgB,IAAI,CAAC,CAAC,CAC3B;;EAED;EACA;EACA,IAAMoH,WAAW,GAAGnM,KAAK,CAACoM,OAAO,CAC/B;IAAA,OAAMvL,0BAA0B,CAAC;MAAE+E,gBAAgB,EAAhBA,gBAAgB;MAAEI,cAAc,EAAdA;IAAe,CAAC,CAAC;EAAA;EACtE;EACA,EACF,CAAC;EAED,IAAMqG,iBAAiB,GAAGrM,KAAK,CAACoM,OAAO,CACrC;IAAA,OACE1L,uBAAuB,CAAC;MACtBa,KAAK,EAALA,KAAK;MACLqF,QAAQ,EAARA,QAAQ;MACRhB,gBAAgB,EAAhBA,gBAAgB;MAChBO,cAAc,EAAdA;IACF,CAAC,CAAC;EAAA;EACJ;EACA,CAAC5E,KAAK,EAAEqF,QAAQ,CAClB,CAAC;;EAED;EACA,IAAM0F,0BAA0B,GAAGtM,KAAK,CAACuM,WAAW,CAClD,SAASC,YAAYA,CAACC,IAAyB,EAAE;IAC/C,IAAAC,qBAAA,GAAmClM,gCAAgC,CACjEiM,IAAI,EACJ/G,cACF,CAAC;MAHOiH,MAAM,GAAAD,qBAAA,CAANC,MAAM;MAAEC,cAAc,GAAAF,qBAAA,CAAdE,cAAc;IAK9B,IAAIjM,wBAAwB,CAACgM,MAAM,CAAC,EAAE;MACpC,OAAOF,IAAI,CAAC7E,IAAI,CAACuE,WAAW,CAAC;IAC/B;IAEA,OAAOU,MAAM,CAACC,OAAO,CAACF,cAAc,CAAC,CAClChF,IAAI,CAAC,UAAAmF,KAAA,EAAAC,KAAA;MAAA,IAAAC,KAAA,GAAApE,cAAA,CAAAkE,KAAA;QAAEG,MAAM,GAAAD,KAAA;MAAA,IAAAE,KAAA,GAAAtE,cAAA,CAAAmE,KAAA;QAAII,MAAM,GAAAD,KAAA;MAAA,OAAMlM,aAAa,CAACiM,MAAM,EAAEE,MAAM,CAAC;IAAA,EAAC,CAC3DC,OAAO,CAAC,UAAAC,KAAA;MAAA,IAAAC,KAAA,GAAA1E,cAAA,CAAAyE,KAAA;QAAEE,SAAS,GAAAD,KAAA;QAAEE,YAAY,GAAAF,KAAA;MAAA,OAChC9M,cAAc,CAAC+M,SAAS,EAAEC,YAAY,CAAC7F,IAAI,CAACuE,WAAW,CAAC,CAAC;IAAA,CAC3D,CAAC;EACL,CAAC;EACD;EACA,CAACA,WAAW,CACd,CAAC;;EAED;EACA,IAAMuB,yBAAyB,GAAG1N,KAAK,CAACuM,WAAW,CACjD,UAACE,IAAyB,EAAK;IAC7B,IAAAkB,sBAAA,GAAmCnN,gCAAgC,CACjEiM,IAAI,EACJ/G,cACF,CAAC;MAHOiH,MAAM,GAAAgB,sBAAA,CAANhB,MAAM;MAAEC,cAAc,GAAAe,sBAAA,CAAdf,cAAc;IAK9B,IAAIjM,wBAAwB,CAACgM,MAAM,CAAC,EAAE;MACpC,OAAOF,IAAI;IACb;;IAEA;IACA,OAAOE,MAAM,CAACU,OAAO,CAAC,UAACrL,KAAK,EAAK;MAC/B,IAAMyL,YAAY,GAAGb,cAAc,CAAC5K,KAAK,CAAC;MAE1C,OAAOvB,cAAc,CAACuB,KAAK,EAAEyL,YAAY,CAAC;IAC5C,CAAC,CAAC;EACJ,CAAC;EACD;EACA,EACF,CAAC;EAED,IAAMG,qBAAqB,GAAG5N,KAAK,CAACoM,OAAO,CACzC;IAAA,OAAOxE,IAAI,GAAG0E,0BAA0B,GAAGoB,yBAAyB;EAAA,CAAC,EACrE,CAAC9F,IAAI,EAAE0E,0BAA0B,EAAEoB,yBAAyB,CAC9D,CAAC;EAED,IAAM3G,OAAO,GAAG/G,KAAK,CAACoM,OAAO,CAC3B,YAAM;IACJ,IAAMyB,OAAO,GAAGrC,WAAW,GACvBxE,aAAa,CAAC9C,MAAM,CAAC,UAAC4J,GAAG;MAAA,OACvBxL,cAAc,CAAC0D,cAAc,CAAC8H,GAAG,CAAC,EAAEtC,WAAW,CAAC;IAAA,CAClD,CAAC,GAAAuC,kBAAA,CACG/G,aAAa,CAAC,EAAC;;IAEvB,OAAO4G,qBAAqB,CAACC,OAAO,CAAC,CAACG,GAAG,CAAC3B,iBAAiB,CAAC;EAC9D,CAAC;EACD;EACA,CAACuB,qBAAqB,EAAEvB,iBAAiB,EAAEb,WAAW,EAAExE,aAAa,CACvE,CAAC;EAED,IAAAiH,iBAAA,GAAgDjO,KAAK,CAAC2I,QAAQ,CAE5D,EAAE,CAAC;IAAAuF,iBAAA,GAAArF,cAAA,CAAAoF,iBAAA;IAFEE,gBAAgB,GAAAD,iBAAA;IAAEE,mBAAmB,GAAAF,iBAAA;EAI5ClO,KAAK,CAACmI,SAAS,CACb,YAAM;IACJ,IAAI,CAAC/C,SAAS,EAAE;MACd;IACF;IACA;IACA,IAAMqH,IAAI,GAAGmB,qBAAqB,CAChC5G,aAAa,CAACgH,GAAG,CAAC,UAACF,GAAG;MAAA,OAAA5L,aAAA,CAAAA,aAAA,KACjB4L,GAAG,OAAAO,eAAA,KACL/N,uBAAuB,EAAGL,IAAI,CAAC,CAAC;IAAA,CACjC,CACJ,CAAC;IACDmO,mBAAmB,CAAC3B,IAAI,CAAC;EAC3B,CAAC;EACD;EACA,CAACrH,SAAS,EAAE4B,aAAa,EAAE4G,qBAAqB,CAClD,CAAC;EAED,IAAMU,uBAAuB,GAAGtO,KAAK,CAACoM,OAAO,CAC3C,YAAM;IACJ,IAAI,CAAChH,SAAS,EAAE;MACd,OAAO,EAAE;IACX;IAEA,IAAMyI,OAAO,GAAGrC,WAAW,GACvBzK,oBAAoB,CAClBoN,gBAAgB,CAACjK,MAAM,CAAC,UAAC4J,GAAG,EAAK;MAC/B,IAAI,CAAClN,mBAAmB,CAACkN,GAAG,CAAC,EAAE;QAC7B,OAAOxL,cAAc,CAAC0D,cAAc,CAAC8H,GAAG,CAAC,EAAEtC,WAAW,CAAC;MACzD;MACA,OAAO,IAAI;IACb,CAAC,CACH,CAAC,GACD2C,gBAAgB;IAEpB,OAAON,OAAO,CAACG,GAAG,CAAC3B,iBAAiB,CAAC;EACvC,CAAC;EACD;EACA,CAACjH,SAAS,EAAE+I,gBAAgB,EAAE3C,WAAW,EAAEa,iBAAiB,CAC9D,CAAC;EAED,IAAMkC,YAAY,GAAGvO,KAAK,CAACoM,OAAO,CAAC,YAAM;IACvC,OAAOrF,OAAO,CAACyH,MAAM,CAAC,UAACC,GAAG,EAAEX,GAAG,EAAE1J,CAAC,EAAK;MACrC,IAAIxD,mBAAmB,CAACkN,GAAG,CAAC,EAAE;QAC5BW,GAAG,CAACC,IAAI,CAACtK,CAAC,CAAC;MACb;MACA,OAAOqK,GAAG;IACZ,CAAC,EAAE,EAAc,CAAC;EACpB,CAAC,EAAE,CAAC1H,OAAO,CAAC,CAAC;EAEb,IAAM4H,aAAa,GAAG3O,KAAK,CAACoM,OAAO,CAAC,YAAM;IACxC,OAAOrF,OAAO,CAAC6H,SAAS,CACtB,UAACtN,MAAM;MAAA,OAAKuN,kBAAkB,CAACvN,MAAM,CAAC,IAAI6E,cAAc,CAAC7E,MAAM,CAAC,KAAKC,KAAK;IAAA,CAC5E,CAAC;EACH,CAAC,EAAE,CAACwF,OAAO,EAAExF,KAAK,CAAC,CAAC;EAEpB,IAAMuN,cAAc,GAAG9O,KAAK,CAACoM,OAAO,CAAC,YAAM;IACzC,IAAMtD,GAAG,GAAGrH,KAAK,CAACC,OAAO,CAACH,KAAK,CAAC,GAAGA,KAAK,CAAC,CAAC,CAAC,GAAGA,KAAK;IACnD,OAAOwF,OAAO,CAACgI,IAAI,CAAC,UAACzN,MAAM;MAAA,OAAK6E,cAAc,CAAC7E,MAAM,CAAC,KAAKwH,GAAG;IAAA,EAAC;EACjE,CAAC,EAAE,CAAC/B,OAAO,EAAExF,KAAK,CAAC,CAAC;EAEpB,IAAMyN,aAAa,GAAGhP,KAAK,CAACoM,OAAO,CAAC,YAAM;IACxC,OAAO0C,cAAc,GAAG9I,cAAc,CAAC8I,cAAc,CAAC,GAAG,EAAE;EAC7D,CAAC,EAAE,CAACA,cAAc,CAAC,CAAC;EAEpB,SAASD,kBAAkBA,CAACI,CAAoB,EAAE;IAChD,OAAO,CAACrO,mBAAmB,CAACqO,CAAC,CAAC,IAAI,CAACnJ,mBAAmB,CAACmJ,CAAC,CAAC;EAC3D;EAEA,SAASC,6BAA6BA,CAAA,EAAG;IACvC,OAAOnI,OAAO,CAAC6H,SAAS,CAACC,kBAAkB,CAAC;EAC9C;EAEA,SAASpK,QAAQA,CAACnD,MAAyB,EAAE;IAC3C,IAAIwE,mBAAmB,CAACxE,MAAM,CAAC,EAAE;MAC/B;IACF;IAEA,IAAM6N,WAAW,GAAGhJ,cAAc,CAAC7E,MAAM,CAAC;IAE1C,IAAIR,UAAU,CAAC8F,QAAQ,EAAErF,KAAK,CAAC,EAAE;MAC/B,IAAIE,KAAK,CAACC,OAAO,CAACyN,WAAW,CAAC,EAAE;QAC9BnG,QAAQ,CAACjJ,IAAI,IAAAqP,MAAA,CAAArB,kBAAA,CAAKxM,KAAK,GAAAwM,kBAAA,CAAKoB,WAAW,EAAC,CAAC,CAAC;MAC5C,CAAC,MAAM;QACLnG,QAAQ,CACNzH,KAAK,CAACmB,QAAQ,CAACyM,WAAW,CAAC,GACvB5N,KAAK,CAAC2C,MAAM,CACV,UAAC4E,GAA8B;UAAA,OAAKA,GAAG,KAAKqG,WAAW;QAAA,CACzD,CAAC,MAAAC,MAAA,CAAArB,kBAAA,CACGxM,KAAK,IAAE4N,WAAW,EAC5B,CAAC;MACH;IACF,CAAC,MAAM;MACLnG,QAAQ,CAACmG,WAAW,CAAC;IACvB;EACF;EAEA,SAASE,gBAAgBA,CAAA,EAAG;IAC1B,IAAIxD,eAAe,KAAK,IAAI,EAAE;MAC5B,IAAMvK,MAAM,GAAGyF,OAAO,CAAC8E,eAAe,CAAC;MAEvC,IAAIvK,MAAM,EAAE;QACVmD,QAAQ,CAACnD,MAAM,CAAC;MAClB;IACF;EACF;EAEA,SAASgO,mBAAmBA,CAAChO,MAAyB,EAAE;IACtD,IAAIG,KAAK,CAACC,OAAO,CAACH,KAAK,CAAC,EAAE;MACxB,IAAMgO,YAAY,GAAGpJ,cAAc,CAAC7E,MAAM,CAAC;MAE3C,IAAIG,KAAK,CAACC,OAAO,CAAC6N,YAAY,CAAC,EAAE;QAC/B,OAAOA,YAAY,CAACC,KAAK,CAAC,UAACvG,CAAC;UAAA,OAAK1H,KAAK,CAACmB,QAAQ,CAACuG,CAAC,CAAC;QAAA,EAAC;MACrD;MAEA,OAAO1H,KAAK,CAACmB,QAAQ,CAAC6M,YAAY,CAAC;IACrC;IAEA,OAAOhO,KAAK,KAAK4E,cAAc,CAAC7E,MAAM,CAAC;EACzC;EAEA,SAASmO,mCAAmCA,CAACnO,MAAyB,EAAE;IACtE,IAAIkG,cAAc,KAAK,UAAU,EAAE;MACjC,OAAO,KAAK;IACd;IAEA,IAAI/F,KAAK,CAACC,OAAO,CAACH,KAAK,CAAC,EAAE;MACxB,IAAMgO,YAAY,GAAGpJ,cAAc,CAAC7E,MAAM,CAAC;MAE3C,IAAIG,KAAK,CAACC,OAAO,CAAC6N,YAAY,CAAC,EAAE;QAC/B,OACEA,YAAY,CAACG,IAAI,CAAC,UAACzG,CAAC;UAAA,OAAK1H,KAAK,CAACmB,QAAQ,CAACuG,CAAC,CAAC;QAAA,EAAC,IAC3C,CAACsG,YAAY,CAACC,KAAK,CAAC,UAACvG,CAAC;UAAA,OAAK1H,KAAK,CAACmB,QAAQ,CAACuG,CAAC,CAAC;QAAA,EAAC;MAEjD;IACF;IAEA,OAAO,KAAK;EACd;EAEA,SAAS0G,OAAOA,CAAA,EAAG;IACjB,OAAOlO,KAAK,CAACC,OAAO,CAACH,KAAK,CAAC,GAAGA,KAAK,CAACwB,MAAM,KAAK,CAAC,GAAGxB,KAAK,KAAK,IAAI;EACnE;EAEA,IAAMqO,aAAa,GAAG5P,KAAK,CAACmJ,MAAM,CAACO,IAAI,CAAC;EAExC1J,KAAK,CAACmI,SAAS,CAAC,YAAM;IACpByH,aAAa,CAACC,OAAO,GAAGnG,IAAI;EAC9B,CAAC,EAAE,CAACA,IAAI,CAAC,CAAC;EAEV,IAAMhF,QAAQ,GAAGhF,WAAW,CAAc;IACxCgK,IAAI,EAAJA,IAAI;IACJnD,YAAY,EAAE,SAAdA,YAAYA,CAAGmD,IAAI,EAAK;MACtBC,OAAO,CAACD,IAAI,CAAC;MACbnD,aAAY,CAACmD,IAAI,CAAC;IACpB,CAAC;IACDoG,oBAAoB,EAAE,SAAtBA,oBAAoBA,CAAA;MAAA,SAAAC,IAAA,GAAAjN,SAAA,CAAAC,MAAA,EAAMiN,IAAI,OAAAvO,KAAA,CAAAsO,IAAA,GAAAE,IAAA,MAAAA,IAAA,GAAAF,IAAA,EAAAE,IAAA;QAAJD,IAAI,CAAAC,IAAA,IAAAnN,SAAA,CAAAmN,IAAA;MAAA;MAAA,OAC5B;QACA7Q,UAAU,CAAA8Q,KAAA,SAAIF,IAAI,CAAAZ,MAAA,EAAE;UAAEe,cAAc,EAAE;QAAK,CAAC;MAAC;IAAA;IAC/CC,QAAQ,EAAE,OAAO;IACjBC,UAAU,EAAE,CACV/Q,MAAM,CAAC,UAAAgR,KAAA,EAAe;MAAA,IAAZC,KAAK,GAAAD,KAAA,CAALC,KAAK;MACb,OAAO;QACLC,QAAQ,EAAE,CAAC;QACXC,SAAS,EAAExI,0BAA0B,GACjC,CAAC,GACD,CAACsI,KAAK,CAAC7L,QAAQ,CAACwF,KAAK,GAAGqG,KAAK,CAAC7M,SAAS,CAACwG,KAAK,IAAI;MACvD,CAAC;IACH,CAAC,CAAC,EACF7K,IAAI,CAAC,CAAC,EACNE,IAAI,CAAC;MACH2Q,KAAK,WAALA,KAAKA,CAAAQ,KAAA,EAAgC;QAAA,IAA7BC,eAAe,GAAAD,KAAA,CAAfC,eAAe;UAAEC,QAAQ,GAAAF,KAAA,CAARE,QAAQ;QAC/B,IAAIhB,aAAa,CAACC,OAAO,EAAE;UACzBD,aAAa,CAACC,OAAO,GAAG,KAAK;UAC7B1F,QAAQ,CACNlC,0BAA0B,GACtB2I,QAAQ,CAAClN,SAAS,CAACmN,qBAAqB,CAAC,CAAC,CAAC3G,KAAK,GAChD3J,uBACN,CAAC;QACH;QACAgK,YAAY,CAACoG,eAAe,CAAC;MAC/B,CAAC;MACDG,OAAO,EAAE;IACX,CAAC,CAAC;EAEN,CAAC,CAAC;EAEF,IAAAC,iBAAA,GAA0B5Q,gBAAgB,CAAC,CAAC;IAA7B6Q,MAAM,GAAAD,iBAAA,CAAbxP,KAAK;EAEb,IAAA0P,gBAAA,GAA8DtR,eAAe,CAC3E,CACEH,QAAQ,CAACkF,QAAQ,CAAC9B,OAAO,EAAE;MACzBM,OAAO,EAAE,CAACrB,QAAQ;MAClBqP,gBAAgB,EAAE;IACpB,CAAC,CAAC,EACFzR,UAAU,CAACiF,QAAQ,CAAC9B,OAAO,EAAE;MAC3BM,OAAO,EAAE,CAACrB;IACZ,CAAC,CAAC,EACFjC,iBAAiB,CAAC8E,QAAQ,CAAC9B,OAAO,EAAE;MAClCS,WAAW,EAAEwI,eAAe;MAC5BsF,eAAe,EAAE5C,YAAY;MAC7BrL,OAAO,EAAE,CAACrB,QAAQ;MAClBuP,OAAO,EAAElI,cAAc;MACvBmI,IAAI,EAAE,IAAI;MACV9N,UAAU,EAAE,SAAZA,UAAUA,CAAGa,CAAC;QAAA,OAAK0H,kBAAkB,CAAC;UAAA,OAAM1H,CAAC;QAAA,EAAC;MAAA;MAC9CuK,aAAa,EAAbA,aAAa;MACb2C,OAAO,EAAE;IACX,CAAC,CAAC,EACF3O,kBAAkB,CAAC+B,QAAQ,CAAC9B,OAAO,EAAE;MACnCS,WAAW,EAAE4I,gBAAgB;MAC7B/I,OAAO,EAAE,CAACrB,QAAQ,IAAI+E,QAAQ,IAAI4E,WAAW,KAAK,EAAE;MACpD/H,QAAQ,EAAEuF,QAAQ;MAClBzF,UAAU,EAAE,SAAZA,UAAUA,CAAGa,CAAC;QAAA,OAAK8H,mBAAmB,CAAC;UAAA,OAAM9H,CAAC;QAAA,EAAC;MAAA;MAC/C7C,KAAK,EAALA;IACF,CAAC,CAAC,EACF8C,oBAAoB,CAACK,QAAQ,CAAC9B,OAAO,EAAE;MACrCM,OAAO,EAAE,CAACrB,QAAQ;MAClB4C,QAAQ,EAAE4K;IACZ,CAAC,CAAC,EACF;MACE3L,SAAS,EAAAxB,aAAA,CAAAA,aAAA;QACPqP,MAAM,EAAEzM,KAAK;QACb0M,SAAS,EAAE3P,QAAQ;QACnB4P,MAAM,EAAElM,KAAK;QACbmM,aAAa,EAAE,CAAC7P,QAAQ,IAAI,CAAC6E,OAAO;QACpCiL,QAAQ,EAAEjL,OAAO;QACjBkL,SAAS,EAAEhL,QAAQ;QACnBiL,KAAK,EAAEnI,IAAI;QACXoI,YAAY,EAAE,CAAC9C,aAAa;QAC5B,eAAe,EAAE1H,MAAM,GAAGgC,SAAS,GAAGC,MAAM;QAC5C,eAAe,EAAEG,IAAI;QACrB,eAAe,EAAEpC,MAAM,GAAG,QAAQ,GAAG;MAAS,GAC1CY,SAAS,IAAI;QAAE,YAAY,EAAEA;MAAU,CAAC;QAC5CvE,SAAS,WAATA,SAASA,CAAA,EAAG;UACVoG,UAAU,CAAC,KAAK,CAAC;QACnB,CAAC;QACDgI,IAAI,EAAE,UAAU;QAChBzK,MAAM,EAANA,MAAM;QACNQ,QAAQ,EAAEjG,QAAQ,GAAG,CAAC,CAAC,GAAGiG;MAAQ,EAC5B;MAAE;MACVpD,QAAQ,EAAE;QACRqN,IAAI,EAAEzK,MAAM,GAAG,QAAQ,GAAG,MAAM;QAChC0K,EAAE,EAAE1I,SAAS;QACb3F,SAAS,WAATA,SAASA,CAAA,EAAG;UACVoG,UAAU,CAAC,KAAK,CAAC;QACnB,CAAC;QACDkI,aAAa,WAAbA,aAAaA,CAAA,EAAG;UACdlI,UAAU,CAAC,IAAI,CAAC;QAClB,CAAC;QACDmI,KAAK,EAAE;UACLC,QAAQ,EAAEzN,QAAQ,CAAC0L,QAAQ;UAC3BgC,IAAI,EAAE1N,QAAQ,CAAC2N,CAAC,IAAI,CAAC;UACrBC,GAAG,EAAE5N,QAAQ,CAAC6N,CAAC,IAAI,CAAC;UACpBrI,KAAK,EAALA,KAAK;UACLI,SAAS,EAATA,SAAS;UACT0G,MAAM,EAANA;QACF;MACF;IACF,CAAC,CAEL,CAAC;IAvEOwB,iBAAiB,GAAAvB,gBAAA,CAAjBuB,iBAAiB;IAAEC,gBAAgB,GAAAxB,gBAAA,CAAhBwB,gBAAgB;IAAEC,YAAY,GAAAzB,gBAAA,CAAZyB,YAAY;EAyEzD,SAASC,aAAaA,CAAA,EAAG;IACvB,OAAO;MACLC,UAAU,EAAE;IACd,CAAC;EACH;EAEA,SAASC,kBAAkBA,CAAA,EAGvB;IACF,OAAO;MACLC,GAAG,EAAEzJ,SAAS;MACdpC,WAAW,EAAE0I,OAAO,CAAC,CAAC,GAAG1I,WAAW,GAAG,EAAE;MACzCpF,QAAQ,EAARA,QAAQ;MACR,eAAe,EAAE0H,MAAM;MACvB5F,SAAS,WAATA,SAASA,CAACC,CAAC,EAAE;QACX,IAAIA,CAAC,CAACC,GAAG,KAAK,KAAK,EAAE;UACnB,IAAI6F,IAAI,EAAE;YAAA,IAAAqJ,qBAAA;YACRnP,CAAC,CAACoP,cAAc,CAAC,CAAC;YAClBpP,CAAC,CAACqP,eAAe,CAAC,CAAC;YACnB,CAAAF,qBAAA,GAAArO,QAAQ,CAACwO,IAAI,CAACxO,QAAQ,CAACmL,OAAO,cAAAkD,qBAAA,uBAA9BA,qBAAA,CAAgCI,KAAK,CAAC,CAAC;UACzC;QACF;MACF,CAAC;MACD1P,QAAQ,WAARA,QAAQA,CAACG,CAAC,EAAE;QACV8H,cAAc,CAAC9H,CAAC,CAACwP,aAAa,CAAC7R,KAAK,CAAC;QACrC2K,mBAAmB,CAAC,IAAI,CAAC;MAC3B,CAAC;MACDgG,KAAK,EAAE;QACLmB,OAAO,EAAEpH,gBAAgB,KAAK,IAAI,GAAG,CAAC,GAAG;MAC3C;IACF,CAAC;EACH;EAEA,SAASqH,kBAAkBA,CAACC,KAAa,EAAE;IACzC,OAAO;MACLC,OAAO,WAAPA,OAAOA,CAAC5P,CAAmB,EAAE;QAC3B;QACAA,CAAC,CAACqP,eAAe,CAAC,CAAC;QAEnB,IAAInS,UAAU,CAAC8F,QAAQ,EAAErF,KAAK,CAAC,EAAE;UAC/ByH,QAAQ,CAACzH,KAAK,CAAC2C,MAAM,CAAC,UAACC,CAAC,EAAEC,CAAC;YAAA,OAAKA,CAAC,KAAKmP,KAAK;UAAA,EAAC,CAAC;QAC/C;MACF;IACF,CAAC;EACH;EAEA,SAASE,uBAAuBA,CAAA,EAAG;IACjC,OAAO;MACLX,GAAG,EAAE,SAALA,GAAGA,CAAGY,EAAsB,EAAK;QAAA,IAAAC,gBAAA;QAC/B5I,eAAe,EAAA4I,gBAAA,GAACD,EAAE,aAAFA,EAAE,uBAAFA,EAAE,CAAEE,YAAY,cAAAD,gBAAA,cAAAA,gBAAA,GAAI,CAAC,CAAC;MACxC;IACF,CAAC;EACH;EAEA,SAASE,cAAcA,CAAA,EAAG;IACxB,OAAO;MACL,eAAe,EAAEtK,MAAM;MACvB9F,QAAQ,WAARA,QAAQA,CAAClC,KAAa,EAAE;QACtBmK,cAAc,CAACnK,KAAK,CAAC;QACrB2K,mBAAmB,CAAC,IAAI,CAAC;MAC3B,CAAC;MACDjF,WAAW,EAAEuB,IAAI,CAACsL,CAAC,CAAC,oBAAoB;IAC1C,CAAC;EACH;EAEA,SAASC,cAAcA,CAAA,EAAG;IACxB,OAAO;MACLjB,GAAG,EAAE,SAALA,GAAGA,CAAGY,EAAsB,EAAK,CAAC;IACpC,CAAC;EACH;EAEA,SAASM,cAAcA,CAAA,EAAG;IACxB,OAAO;MACLlB,GAAG,EAAE,SAALA,GAAGA,CAAGY,EAAsB,EAAK;QAAA,IAAAO,iBAAA;QAC/B9I,eAAe,EAAA8I,iBAAA,GAACP,EAAE,aAAFA,EAAE,uBAAFA,EAAE,CAAEE,YAAY,cAAAK,iBAAA,cAAAA,iBAAA,GAAI,CAAC,CAAC;MACxC,CAAC;MACDtQ,SAAS,EAAE,SAAXA,SAASA,CAAGC,CAAsB,EAAK;QACrC,IAAIA,CAAC,CAACC,GAAG,KAAK,QAAQ,EAAE;UACtBD,CAAC,CAACqP,eAAe,CAAC,CAAC;QACrB;MACF;IACF,CAAC;EACH;EAEA,SAASiB,oBAAoBA,CAAA,EAAG;IAC9B,OAAO;MACL5O,YAAY,EAAZA;IACF,CAAC;EACH;EAEA,SAAS6O,aAAaA,CAAA,EAAG;IACvB,OAAO;MACL,aAAa,EAAE,IAAI;MACnB,YAAY,EAAE3L,IAAI,CAACsL,CAAC,CAAC,mBAAmB,CAAC;MACzCN,OAAO,WAAPA,OAAOA,CAAC5P,CAAmB,EAAE;QAC3B;QACAA,CAAC,CAACqP,eAAe,CAAC,CAAC;QAEnB/G,mBAAmB,CAAC,IAAI,CAAC;QACzBlD,QAAQ,CAACpC,QAAQ,GAAG,EAAE,GAAG,IAAI,CAAC;QAC9B+C,OAAO,CAAC,IAAI,CAAC;MACf;IACF,CAAC;EACH;EAEA,SAASyK,YAAYA,CAAA,EAAG;IACtB,OAAO;MACLC,UAAU,EAAE,KAAK;MACjBnC,KAAK,EAAE;QACLoC,MAAM,EAAElJ;MACV;IACF,CAAC;EACH;EAEA,SAASmJ,gBAAgBA,CAAA,EAA0B;IACjD,IAAMC,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAAIC,QAAiB,EAAK;MACjD,IAAIA,QAAQ,EAAE;QACZpO,cAAc,CAAC,CAAC;MAClB;IACF,CAAC;IAED,OAAO;MACL0L,IAAI,EAAE,SAAS;MACfC,EAAE,EAAE1K,MAAM,GAAGgC,SAAS,GAAGC,MAAM;MAC/BmL,IAAI,EAAEtP,SAAS,GAAGkJ,uBAAuB,GAAGvH,OAAO;MACnD/B,UAAU,EAAE;QACV2P,IAAI,EAAE3P,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAE2P,IAAW,CAAE;MACjC,CAAC;;MACDC,uBAAuB,EAAEjG,aAAa,IAAI,CAAC,GAAGA,aAAa,GAAG,CAAC;MAC/DuD,KAAK,EAAE;QACL2C,IAAI,EAAE;MACR,CAAC;MACD/M,QAAQ,EAAE,CAAC,CAAC;MACZgN,sBAAsB,EAAEnK,aAAa;MACrC6J,mBAAmB,EAAnBA;IACF,CAAC;EACH;EAEA,IAAMO,SAAS,GAAG/U,KAAK,CAACuM,WAAW,CAAC,UAACyI,MAAyB,EAAK;IACjE,IAAI,CAACA,MAAM,CAACC,WAAW,EAAE;MACvB;IACF;IACA,IAAID,MAAM,CAACE,MAAM,CAAC3B,KAAK,KAAKyB,MAAM,CAACC,WAAW,CAAC1B,KAAK,EAAE;MACpD;IACF;IAEA,IAAM4B,UAAU,GAAGH,MAAM,CAACE,MAAM,CAAC3B,KAAK;IACtC,IAAM6B,gBAAgB,GAAGJ,MAAM,CAACC,WAAW,CAAC1B,KAAK;IAEjDnF,mBAAmB,CAAC,UAACrH,OAAO,EAAK;MAC/B,IAAAsO,QAAA,GAA8CrU,OAAO,CACnD+F,OAAO,EACPoO,UAAU,EACVC,gBACF,CAAC;QAJOE,WAAW,GAAAD,QAAA,CAAXC,WAAW;QAAEC,SAAS,GAAAF,QAAA,CAATE,SAAS;QAAEC,SAAS,GAAAH,QAAA,CAATG,SAAS;MAMzC,IAAMC,eAAe,GACnBF,SAAS,KAAKC,SAAS,GACnBF,WAAW,CAACtH,GAAG,CAAC,UAAC1M,MAAM,EAAEiS,KAAK,EAAK;QACjC,IAAIA,KAAK,KAAK6B,gBAAgB,EAAE;UAC9B,OAAO1N,cAAc,CAACpG,MAAM,EAAEkU,SAAS,CAAC;QAC1C;QACA,OAAOlU,MAAM;MACf,CAAC,CAAC,GACFgU,WAAW;MAEjB,IAAI,OAAOzO,YAAY,KAAK,UAAU,EAAE;QACtC6O,UAAU,CAAC,YAAM;UACf7O,YAAY,CACV4O,eAAe,CAACvR,MAAM,CAAC,UAAC5C,MAAM;YAAA,OAAK,CAACV,mBAAmB,CAACU,MAAM,CAAC;UAAA,EACjE,CAAC;QACH,CAAC,EAAE,CAAC,CAAC;MACP;MAEA,OAAOmU,eAAe;IACxB,CAAC,CAAC;EACJ,CAAC,EAAE,EAAE,CAAC;;EAEN;EACA;EACA;EACA;EACA;EACA;EACAzV,KAAK,CAACmI,SAAS,CAAC,YAAM;IACpB,IAAIuB,IAAI,EAAE;MACRoC,kBAAkB,CAAC;QAAA,OACjB6C,aAAa,IAAI,CAAC,GAAGA,aAAa,GAAGO,6BAA6B,CAAC,CAAC;MAAA,CACtE,CAAC;IACH,CAAC,MAAM;MACLxD,cAAc,CAAC;QAAA,OAAM,EAAE;MAAA,EAAC;MACxBQ,mBAAmB,CAAC;QAAA,OAAM,IAAI;MAAA,EAAC;IACjC;EACF,CAAC,EAAE,CAACxC,IAAI,CAAC,CAAC;;EAEV;EACA;EACA;EACA;EACA1J,KAAK,CAACmI,SAAS,CAAC,YAAM;IACpB,IAAIuB,IAAI,EAAE;MACRoC,kBAAkB,CAAC;QAAA,OAAMoD,6BAA6B,CAAC,CAAC;MAAA,EAAC;IAC3D;EACF,CAAC,EAAE,CAAC1D,WAAW,CAAC,CAAC;;EAEjB;EACA;EACA;EACA;EACAxL,KAAK,CAACmI,SAAS,CAAC,YAAM;IACpB,IAAI,CAACvB,QAAQ,IAAIrF,KAAK,KAAK,IAAI,EAAE;MAC/BoI,OAAO,CAAC;QAAA,OAAM,KAAK;MAAA,EAAC;IACtB;EACF,CAAC,EAAE,CAACpI,KAAK,CAAC,CAAC;;EAEX;EACAvB,KAAK,CAACmI,SAAS,CAAC,YAAM;IACpBe,cAAc,CAAC2G,OAAO,GAAA9B,kBAAA,CAAOtM,KAAK,CAACsF,OAAO,CAAChE,MAAM,CAAC,CAAC4S,IAAI,CAAC,IAAI,CAAC,CAAC;EAChE,CAAC,EAAE,CAAC5O,OAAO,CAAC,CAAC;;EAEb;EACA/G,KAAK,CAAC4V,eAAe,CAAC,YAAM;IAC1B,IAAI/J,eAAe,KAAK,IAAI,EAAE;MAC5B,IAAI,CAAC/B,OAAO,EAAE;QAAA,IAAA+L,iBAAA;QACZ,CAAAA,iBAAA,GAAAzM,QAAQ,CAACyG,OAAO,cAAAgG,iBAAA,uBAAhBA,iBAAA,CAAkBC,cAAc,CAAC;UAAEvC,KAAK,EAAE1H;QAAgB,CAAC,CAAC;MAC9D;IACF;EACF,CAAC,EAAE,CAACA,eAAe,EAAEnC,IAAI,CAAC,CAAC;EAE3B,OAAO;IACLqM,MAAM,EAAE;MACNjR,KAAK,EAALA,KAAK;MACLjD,QAAQ,EAARA,QAAQ;MACRuD,SAAS,EAATA,SAAS;MACTE,YAAY,EAAZA,YAAY;MACZC,KAAK,EAALA,KAAK;MACLC,MAAM,EAANA,MAAM;MACNgB,MAAM,EAANA,MAAM;MACNS,WAAW,EAAXA,WAAW;MACXE,MAAM,EAANA,MAAM;MACNC,WAAW,EAAXA,WAAW;MACXI,cAAc,EAAdA,cAAc;MACdM,QAAQ,EAARA,QAAQ;MACRpB,OAAO,EAAPA,OAAO;MACPE,QAAQ,EAARA;IACF,CAAC;IACD5B,UAAU,EAAVA,UAAU;IACVgR,KAAK,EAAE;MACLnK,eAAe,EAAfA,eAAe;MACfI,gBAAgB,EAAhBA,gBAAgB;MAChB0D,OAAO,EAAPA,OAAO;MACPvE,mBAAmB,EAAnBA,mBAAmB;MACnB7B,MAAM,EAANA,MAAM;MACNe,SAAS,EAATA,SAAS;MACTyK,SAAS,EAATA,SAAS;MACTtQ,QAAQ,EAARA,QAAQ;MACRiF,IAAI,EAAJA,IAAI;MACJ3C,OAAO,EAAE3B,SAAS,GAAGkJ,uBAAuB,GAAGvH,OAAO;MACtDuC,SAAS,EAATA,SAAS;MACTkC,WAAW,EAAXA,WAAW;MACXmD,aAAa,EAAbA,aAAa;MACbK,aAAa,EAAbA,aAAa;MACbF,cAAc,EAAdA,cAAc;MACdnF,OAAO,EAAPA,OAAO;MACPI,UAAU,EAAVA,UAAU;MACV2B,cAAc,EAAEA,cAAc;MAC9B1E,aAAa,EAAbA,aAAa;MACbzF,KAAK,EAALA,KAAK;MACL2I,KAAK,EAALA;IACF,CAAC;IACD+L,KAAK,EAAE;MACLC,KAAK,EAAE/B,aAAa;MACpB7O,YAAY,EAAE4O,oBAAoB;MAClC1O,MAAM,EAAEwO,cAAc;MACtBxN,MAAM,EAAEuN,cAAc;MACtBoC,IAAI,EAAEzD,YAAY;MAClBrQ,KAAK,EAAEsQ,aAAa;MACpByD,IAAI,EAAEhC,YAAY;MAClBiC,UAAU,EAAExD,kBAAkB;MAC9ByD,OAAO,EAAE7D,gBAAgB;MACzBnL,MAAM,EAAEuM,cAAc;MACtB0C,eAAe,EAAE9C,uBAAuB;MACxC+C,UAAU,EAAElD,kBAAkB;MAC9BmD,OAAO,EAAEjE,iBAAiB;MAC1BpJ,QAAQ,EAAEmL;IACZ,CAAC;IACDjT,MAAM,EAAE;MACNU,KAAK,EAAE0D,cAAc;MACrBgR,OAAO,EAAE9Q,gBAAgB;MACzB+Q,mBAAmB,EACjB1Q,0BAA0B,aAA1BA,0BAA0B,cAA1BA,0BAA0B,GAAIwJ,mCAAmC;MACnEmH,UAAU,EAAEtH,mBAAmB;MAC/BuH,UAAU,EAAE/Q,mBAAmB;MAC/BgR,UAAU,EAAElW,mBAAmB;MAC/ByB,KAAK,EAAE2D,cAAc;MACrBzE,KAAK,EAAE4E;IACT,CAAC;IACD+M,IAAI,EAAE;MACJxO,QAAQ,EAARA,QAAQ;MACRwE,cAAc,EAAdA,cAAc;MACdE,QAAQ,EAARA;IACF;EACF,CAAC;AACH;AAEA,OAAO,IAAM2N,kBAAkB,gBAAG/W,KAAK,CAACgX,aAAa,CACnD,IACF,CAAC;AAED,OAAO,SAASC,qBAAqBA,CAAA,EAAmB;EACtD,IAAMC,GAAG,GAAGlX,KAAK,CAACmX,UAAU,CAACJ,kBAAkB,CAAC;EAEhD,IAAI,CAACG,GAAG,EAAE;IACR,MAAM,IAAIE,KAAK,CAAC,4BAA4B,CAAC;EAC/C;EAEA,OAAOF,GAAG;AACZ"}
1
+ {"version":3,"file":"useSuperSelect.js","names":["autoUpdate","flip","offset","size","useClick","useDismiss","useFloating","useInteractions","useListNavigation","useId","debounce","uniq","React","ulid","useI18nContext","useZIndexContext","spacing","defaultComponents","draggableOptionIdSymbol","isOptSelectAllSymbol","extendedSelectMenuWidth","collectGroupsInOrderOfOccurrence","createOptgroup","getBatchOptionFormatter","getIsAllOptionsUngrouped","getOptionIsOptgroup","getOptionIsOptSelectAll","getOptionsSortingAlgorithm","isMultiple","removeEmptyOptGroups","reorder","sortOptgroups","listContainerVerticalPadding","sm","noop","defaultGetOptionValue","option","value","defaultGetOptionIsBatch","Array","isArray","defaultGetOptionIsDisabled","_option$disabled","disabled","defaultGetOptionGroup","_option$group","group","defaultSetOptionGroup","_objectSpread","defaultGetOptionLabel","_option$label","label","stringContains","str1","str2","toLowerCase","includes","useTokenNavigation","context","_ref","arguments","length","undefined","_ref$enabled","enabled","_ref$value","_ref$activeIndex","activeIndex","_ref$onNavigate","onNavigate","_ref$onChange","onChange","reference","onKeyDown","e","key","Math","max","repeat","nextVal","filter","_","i","useKeyboardSelection","_ref2","_ref2$enabled","_ref2$onSelect","onSelect","floating","useSuperSelect","_ref3","_ref3$block","block","customComponents","components","defaultValue","_ref3$disabled","_ref3$draggable","draggable","_ref3$emptyMessage","emptyMessage","_ref3$selectAllEnable","selectAllEnabled","error","footer","_ref3$getOptionGroup","getOptionGroup","_ref3$getOptionIsBatc","getOptionIsBatch","_ref3$getOptionIsDisa","getOptionIsDisabled","_ref3$getOptionLabel","getOptionLabel","getOptionIsPartiallySelected","getOptionIsSelected","_ref3$getOptionValue","getOptionValue","_ref3$onScrollBottom","onScrollBottom","_ref3$onOpenChange","onOpenChange","header","_ref3$loading","loading","_ref3$multiple","multiple","onManualSort","onSelectAll","_ref3$options","options","sourceOptions","placeholder","_ref3$preset","preset","presetProps","_ref3$search","search","_ref3$selectionStyle","selectionStyle","_ref3$setOptionGroup","setOptionGroup","_ref3$sort","sort","_ref3$tabIndex","tabIndex","value_","_ref3$overlayMatchesT","overlayMatchesTriggerWidth","ariaLabel","useEffect","isUsingDefaultGetter","isUsingDefaultSetter","console","warn","i18n","initialValue","_React$useState","useState","_React$useState2","_slicedToArray","val","setVal","setValue","v","navigationList","useRef","virtuoso","searchRef","overlayId","listId","_React$useState3","_React$useState4","open","setOpen","_React$useState5","_React$useState6","pointer","setPointer","_React$useState7","_React$useState8","width","setWidth","_React$useState9","_React$useState0","maxHeight","setMaxHeight","_React$useState1","_React$useState10","listHeight","setListHeight","_React$useState11","_React$useState12","searchHeight","setSearchHeight","_React$useState13","_React$useState14","footerHeight","setFooterHeight","listContainerHeight","min","_React$useState15","_React$useState16","searchValue","setSearchValue_","setSearchValue","_React$useState17","_React$useState18","activeMenuIndex","setActiveMenuIndex","_React$useState19","_React$useState20","activeTokenIndex","setActiveTokenIndex","sortOptions","useMemo","formatBatchOption","enforceOptionsSortingOrder","useCallback","groupAndSort","opts","_collectGroupsInOrder","groups","groupedOptions","Object","entries","_ref4","_ref5","_ref6","groupA","_ref7","groupB","flatMap","_ref8","_ref9","groupName","groupOptions","deriveOptionsSortingOrder","_collectGroupsInOrder2","groupAndSortAlgorithm","queried","opt","_toConsumableArray","map","selectAllOption","_defineProperty","t","id","allOptionsWithSelectAll","concat","_React$useState21","_React$useState22","draggableOptions","setDraggableOptions","queriedDraggableOptions","groupIndices","baseOptions","reduce","acc","push","selectedIndex","findIndex","isSelectableOption","selectedOption","find","selectedLabel","o","getFirstSelectableOptionIndex","optionValue","isSelectAll","selectableOptions","allOptionsSelected","every","getIsSelected","defaultGetOptionIsSelected","optionValues","onKeyboardSelect","defaultGetOptionIsPartiallySelected","some","defaultGetOptionIsSelectAllPartiallySelected","isSelected","isPartiallySelected","defaultGetOptionIsSelectAllSelected","isEmpty","boundWidthRef","current","whileElementsMounted","_len","args","_key","apply","animationFrame","strategy","middleware","_ref0","rects","mainAxis","crossAxis","_ref1","availableHeight","elements","getBoundingClientRect","padding","_useZIndexContext","zIndex","_useInteractions","keyboardHandlers","disabledIndices","listRef","loop","virtual","$block","$disabled","$error","$hasClearIcon","$loading","$multiple","$open","$placeholder","role","onPointerMove","style","position","left","x","top","y","getReferenceProps","getFloatingProps","getItemProps","getLabelProps","$hoverable","getMultiInputProps","ref","_floating$refs$floati","preventDefault","stopPropagation","refs","focus","currentTarget","opacity","getMultiValueProps","index","onClick","getSearchContainerProps","el","_el$clientHeight","clientHeight","getSearchProps","getHeaderProps","getFooterProps","_el$clientHeight2","getEmptyMessageProps","getClearProps","getMenuProps","scrollable","height","getVirtuosoProps","atBottomStateChange","atBottom","data","Item","initialTopMostItemIndex","flex","totalListHeightChanged","onDragEnd","result","destination","source","startIndex","destinationIndex","_reorder","nextOptions","prevGroup","nextGroup","adjustedOptions","setTimeout","totalLength","fill","useLayoutEffect","virtuosoIndex","_virtuoso$current","scrollIntoView","config","state","props","clear","item","menu","multiInput","overlay","searchContainer","tokenClear","trigger","isBatch","isDisabled","isOptgroup","isOptSelectAll","selectAll","isSelectAllPartiallySelected","isSelectAllSelected","SuperSelectContext","createContext","useSuperSelectContext","ctx","useContext","Error"],"sources":["../../src/SuperSelect/useSuperSelect.ts"],"sourcesContent":["import type { ElementProps, FloatingContext } from '@floating-ui/react'\nimport {\n autoUpdate,\n flip,\n offset,\n size,\n useClick,\n useDismiss,\n useFloating,\n useInteractions,\n useListNavigation,\n} from '@floating-ui/react'\nimport { useId } from '@react-aria/utils'\nimport debounce from 'lodash.debounce'\nimport uniq from 'lodash.uniq'\nimport React from 'react'\nimport type { VirtuosoHandle, VirtuosoProps } from 'react-virtuoso'\nimport { ulid } from 'ulid'\nimport { useI18nContext } from '../_hooks/I18n'\nimport { useZIndexContext } from '../_hooks/ZIndex'\nimport { spacing } from '../_styles/spacing'\nimport * as defaultComponents from './SuperSelect.components'\nimport {\n draggableOptionIdSymbol,\n isOptSelectAllSymbol,\n} from './SuperSelect.constants'\nimport { extendedSelectMenuWidth } from './SuperSelect.styles'\nimport type {\n KeyboardSelectionProps,\n SuperSelectApi,\n SuperSelectConfig,\n SuperSelectOption,\n SuperSelectResult,\n SuperSelectValue,\n SuperSelectValuePrimitive,\n TokenNavigationProps,\n} from './SuperSelect.types'\nimport {\n collectGroupsInOrderOfOccurrence,\n createOptgroup,\n getBatchOptionFormatter,\n getIsAllOptionsUngrouped,\n getOptionIsOptgroup,\n getOptionIsOptSelectAll,\n getOptionsSortingAlgorithm,\n isMultiple,\n removeEmptyOptGroups,\n reorder,\n sortOptgroups,\n} from './SuperSelect.utils'\n\nconst listContainerVerticalPadding = spacing.sm * 2\n\nfunction noop() {}\n\nfunction defaultGetOptionValue(option: SuperSelectOption) {\n return option?.value\n}\n\nfunction defaultGetOptionIsBatch(option: SuperSelectOption): boolean {\n return Array.isArray(option?.value)\n}\n\nfunction defaultGetOptionIsDisabled(option: SuperSelectOption): boolean {\n return option?.disabled ?? false\n}\n\nfunction defaultGetOptionGroup(option: SuperSelectOption): string {\n return option?.group ?? ''\n}\n\nfunction defaultSetOptionGroup(\n option: SuperSelectOption,\n group: string\n): SuperSelectOption {\n return {\n ...option,\n group,\n }\n}\n\nfunction defaultGetOptionLabel(option: SuperSelectOption): string {\n return option?.label ?? ''\n}\n\nfunction stringContains(str1: string, str2: string) {\n return str1.toLowerCase().includes(str2.toLowerCase())\n}\n\nfunction useTokenNavigation(\n context: FloatingContext<HTMLElement>,\n {\n enabled = true,\n value = [],\n activeIndex = null,\n onNavigate = noop,\n onChange = noop,\n }: TokenNavigationProps = {}\n): ElementProps {\n return {\n reference: {\n onKeyDown(e) {\n if (!enabled || !Array.isArray(value)) {\n return\n }\n\n if (e.key === 'ArrowLeft') {\n if (activeIndex !== null) {\n onNavigate(Math.max(0, activeIndex - 1))\n } else if (value.length > 0) {\n onNavigate(value.length - 1)\n }\n } else if (e.key === 'ArrowRight') {\n if (activeIndex !== null) {\n if (activeIndex === value.length - 1) {\n onNavigate(null)\n } else {\n onNavigate(activeIndex + 1)\n }\n }\n } else if (e.key === 'Backspace') {\n if (!e.repeat) {\n if (activeIndex !== null) {\n const nextVal = value.filter((_, i) => i !== activeIndex)\n\n onChange(nextVal)\n\n if (activeIndex >= nextVal.length) {\n onNavigate(null)\n }\n } else if (value.length > 0) {\n onChange(value.filter((_, i) => i !== value.length - 1))\n }\n }\n }\n },\n },\n }\n}\n\nfunction useKeyboardSelection(\n context: FloatingContext<HTMLElement>,\n { enabled = true, onSelect = () => {} }: KeyboardSelectionProps = {}\n): ElementProps {\n function onKeyDown(e: React.KeyboardEvent) {\n if (!enabled) {\n return\n }\n\n if (e.key === 'Enter') {\n onSelect()\n }\n }\n\n return {\n reference: {\n onKeyDown,\n },\n floating: {\n onKeyDown,\n },\n }\n}\n\nexport function useSuperSelect({\n block = false,\n components: customComponents,\n defaultValue,\n disabled = false,\n draggable = false,\n emptyMessage = 'No results',\n selectAllEnabled = false,\n error,\n footer,\n getOptionGroup = defaultGetOptionGroup,\n getOptionIsBatch = defaultGetOptionIsBatch,\n getOptionIsDisabled = defaultGetOptionIsDisabled,\n getOptionLabel = defaultGetOptionLabel,\n getOptionIsPartiallySelected,\n getOptionIsSelected,\n getOptionValue = defaultGetOptionValue,\n onScrollBottom = noop,\n onOpenChange = noop,\n header,\n loading = false,\n multiple = false,\n onChange,\n onManualSort,\n onSelectAll,\n options: sourceOptions = [],\n placeholder,\n preset = '',\n presetProps,\n search = true,\n selectionStyle = 'highlight',\n setOptionGroup = defaultSetOptionGroup,\n sort = true,\n tabIndex = 0,\n value: value_,\n overlayMatchesTriggerWidth = true,\n 'aria-label': ariaLabel,\n}: SuperSelectConfig): SuperSelectApi {\n React.useEffect(() => {\n if (!draggable) {\n return\n }\n\n const isUsingDefaultGetter = getOptionGroup === defaultGetOptionGroup\n const isUsingDefaultSetter = setOptionGroup === defaultSetOptionGroup\n\n if (\n (isUsingDefaultGetter && !isUsingDefaultSetter) ||\n (!isUsingDefaultGetter && isUsingDefaultSetter)\n ) {\n console.warn(\n `SuperSelect: Using potentially conflicting \"getOptionGroup\" and \"setOptionGroup\" implementations.\n Group reassignment after drag-and-drop operation might be broken.`\n )\n }\n }, [draggable, getOptionGroup, setOptionGroup])\n\n const i18n = useI18nContext()\n\n const initialValue = defaultValue ?? (multiple ? [] : null)\n const [val, setVal] = React.useState<SuperSelectValue>(initialValue)\n const value = value_ !== undefined ? value_ : val\n function setValue(v: SuperSelectValue) {\n if (!value_) {\n setVal(v)\n }\n\n if (onChange) {\n onChange(v)\n }\n }\n\n const navigationList = React.useRef<Array<HTMLElement | null>>([])\n const virtuoso = React.useRef<VirtuosoHandle>(null)\n const searchRef = React.useRef<HTMLInputElement>(null)\n\n const overlayId = useId() // TODO use React 18 useId\n const listId = useId() // TODO use React 18 useId\n\n const [open, setOpen] = React.useState(false)\n const [pointer, setPointer] = React.useState(false)\n const [width, setWidth] = React.useState(248)\n const [maxHeight, setMaxHeight] = React.useState(248)\n const [listHeight, setListHeight] = React.useState(0)\n const [searchHeight, setSearchHeight] = React.useState(0)\n const [footerHeight, setFooterHeight] = React.useState(0)\n const listContainerHeight = Math.min(\n maxHeight - searchHeight - footerHeight + listContainerVerticalPadding,\n listHeight + listContainerVerticalPadding\n )\n const [searchValue, setSearchValue_] = React.useState('')\n const setSearchValue = debounce(setSearchValue_, 250) // TODO use React 18 useDeferredValue\n\n const [activeMenuIndex, setActiveMenuIndex] = React.useState<number | null>(\n null\n )\n const [activeTokenIndex, setActiveTokenIndex] = React.useState<number | null>(\n null\n )\n\n const components = {\n ...defaultComponents,\n ...(customComponents || {}),\n }\n\n // TODO #memogetters: consider having getOption... getter functions memoized by consumers\n // Until then, exclude these callbacks from effect and memo dependencies\n const sortOptions = React.useMemo(\n () => getOptionsSortingAlgorithm({ getOptionIsBatch, getOptionLabel }),\n // skip `getOptionIsBatch` and `getOptionLabel`\n []\n )\n\n const formatBatchOption = React.useMemo(\n () =>\n getBatchOptionFormatter({\n value,\n multiple,\n getOptionIsBatch,\n getOptionValue,\n }),\n // skip `getOptionIsBatch` and `getOptionValue`, refer to TODO #memogetters\n [value, multiple]\n )\n\n // collect groups, sort them and populate them with options, and sort the options inside the groups\n const enforceOptionsSortingOrder = React.useCallback(\n function groupAndSort(opts: SuperSelectOption[]) {\n const { groups, groupedOptions } = collectGroupsInOrderOfOccurrence(\n opts,\n getOptionGroup\n )\n\n if (getIsAllOptionsUngrouped(groups)) {\n return opts.sort(sortOptions)\n }\n\n return Object.entries(groupedOptions)\n .sort(([groupA], [groupB]) => sortOptgroups(groupA, groupB))\n .flatMap(([groupName, groupOptions]) =>\n createOptgroup(groupName, groupOptions.sort(sortOptions))\n )\n },\n // skip `getOptionGroup`, refer to TODO #memogetters\n [sortOptions]\n )\n\n // collect groups and populate them with options\n const deriveOptionsSortingOrder = React.useCallback(\n (opts: SuperSelectOption[]) => {\n const { groups, groupedOptions } = collectGroupsInOrderOfOccurrence(\n opts,\n getOptionGroup\n )\n\n if (getIsAllOptionsUngrouped(groups)) {\n return opts\n }\n\n // display optgroups in the order of occurrence, as they are considered pre-sorted\n return groups.flatMap((group) => {\n const groupOptions = groupedOptions[group]\n\n return createOptgroup(group, groupOptions)\n })\n },\n // skip `getOptionGroup`, refer to TODO #memogetters\n []\n )\n\n const groupAndSortAlgorithm = React.useMemo(\n () => (sort ? enforceOptionsSortingOrder : deriveOptionsSortingOrder),\n [sort, enforceOptionsSortingOrder, deriveOptionsSortingOrder]\n )\n\n const options = React.useMemo(\n () => {\n const queried = searchValue\n ? sourceOptions.filter((opt) =>\n stringContains(getOptionLabel(opt), searchValue)\n )\n : [...sourceOptions] // make a copy of source options to prevent the mutation when sorting\n\n return groupAndSortAlgorithm(queried).map(formatBatchOption)\n },\n // skip `getOptionLabel`, refer to TODO #memogetters\n [groupAndSortAlgorithm, formatBatchOption, searchValue, sourceOptions]\n )\n\n const selectAllOption = {\n label: i18n.t('core.select.selectAll'),\n id: 'selectAll',\n [isOptSelectAllSymbol]: true,\n }\n\n const allOptionsWithSelectAll = React.useMemo(() => {\n if (!selectAllEnabled || !multiple) {\n return options\n }\n return [selectAllOption, ...options]\n }, [selectAllEnabled, multiple, selectAllOption, options])\n\n const [draggableOptions, setDraggableOptions] = React.useState<\n SuperSelectOption[]\n >([])\n\n React.useEffect(\n () => {\n if (!draggable) {\n return\n }\n // make a copy of source options to prevent the mutation when sorting\n const opts = groupAndSortAlgorithm(\n sourceOptions.map((opt) => ({\n ...opt,\n [draggableOptionIdSymbol]: ulid(),\n }))\n )\n setDraggableOptions(opts)\n },\n // in draggable mode, sourceOptions must be memoized, othewise reorder will not work\n [draggable, sourceOptions, groupAndSortAlgorithm]\n )\n\n const queriedDraggableOptions = React.useMemo(\n () => {\n if (!draggable) {\n return []\n }\n\n const queried = searchValue\n ? removeEmptyOptGroups(\n draggableOptions.filter((opt) => {\n if (!getOptionIsOptgroup(opt)) {\n return stringContains(getOptionLabel(opt), searchValue)\n }\n return true\n })\n )\n : draggableOptions\n\n return queried.map(formatBatchOption)\n },\n // skip `getOptionLabel`, refer to TODO #memogetters\n [draggable, draggableOptions, searchValue, formatBatchOption]\n )\n\n // Group indices calculation - needs allOptionsWithSelectAll because:\n // When SelectAll is enabled, it becomes the first item (index 0) and shifts all other indices by 1.\n // Group headers need their correct absolute positions in the combined list for navigation to work.\n const groupIndices = React.useMemo(() => {\n const baseOptions =\n selectAllEnabled && multiple ? allOptionsWithSelectAll : options\n return baseOptions.reduce((acc, opt, i) => {\n if (getOptionIsOptgroup(opt)) {\n acc.push(i)\n }\n return acc\n }, [] as number[])\n }, [selectAllEnabled, multiple, allOptionsWithSelectAll, options])\n\n // Selected index calculation - needs allOptionsWithSelectAll because:\n // The selectedIndex must reference the absolute position in the combined list for keyboard navigation.\n // When SelectAll is at index 0, the first regular option becomes index 1, affecting selection highlighting.\n const selectedIndex = React.useMemo(() => {\n const baseOptions =\n selectAllEnabled && multiple ? allOptionsWithSelectAll : options\n return baseOptions.findIndex(\n (option) => isSelectableOption(option) && getOptionValue(option) === value\n )\n }, [selectAllEnabled, multiple, allOptionsWithSelectAll, options, value])\n\n // Selected option lookup - needs allOptionsWithSelectAll because:\n // The selectedOption lookup must search the complete list including SelectAll to find matches.\n // This ensures proper option detection regardless of whether SelectAll or regular options are selected.\n const selectedOption = React.useMemo(() => {\n const val = Array.isArray(value) ? value[0] : value\n const baseOptions =\n selectAllEnabled && multiple ? allOptionsWithSelectAll : options\n return baseOptions.find((option) => getOptionValue(option) === val)\n }, [selectAllEnabled, multiple, allOptionsWithSelectAll, options, value])\n\n const selectedLabel = React.useMemo(() => {\n return selectedOption ? getOptionLabel(selectedOption) : ''\n }, [selectedOption])\n\n function isSelectableOption(o: SuperSelectOption) {\n return !getOptionIsOptgroup(o) && !getOptionIsDisabled(o)\n }\n\n function getFirstSelectableOptionIndex() {\n // When Select All is enabled in multiple mode, it's always at index 0 and is selectable\n if (selectAllEnabled && multiple) {\n return 0\n }\n\n const baseOptions = options\n return (\n baseOptions.findIndex(isSelectableOption) +\n (selectAllEnabled && multiple ? 1 : 0)\n )\n }\n\n function onSelect(option: SuperSelectOption) {\n if (getOptionIsDisabled(option)) {\n return\n }\n\n const optionValue = getOptionValue(option)\n const isSelectAll = getOptionIsOptSelectAll(option)\n\n if (isMultiple(multiple, value)) {\n if (isSelectAll) {\n const selectableOptions = options.filter((opt) =>\n isSelectableOption(opt)\n )\n\n // Check if all options are already selected to determine if this is a deselect operation\n const allOptionsSelected = selectableOptions.every((opt) => {\n const getIsSelected =\n getOptionIsSelected ?? defaultGetOptionIsSelected\n return getIsSelected(opt)\n })\n\n if (onSelectAll) {\n onSelectAll(selectableOptions)\n }\n\n // Only add options if not all are selected (i.e., this is a select operation)\n // If all options are selected, this is a deselect operation and we should clear\n if (allOptionsSelected) {\n setValue([])\n } else {\n const optionValues = selectableOptions.flatMap(getOptionValue)\n setValue(uniq([...value, ...optionValues]))\n }\n } else if (Array.isArray(optionValue)) {\n setValue(uniq([...value, ...optionValue]))\n } else {\n setValue(\n value.includes(optionValue)\n ? value.filter(\n (val: SuperSelectValuePrimitive) => val !== optionValue\n )\n : [...value, optionValue]\n )\n }\n } else {\n setValue(optionValue)\n }\n }\n\n function onKeyboardSelect() {\n if (activeMenuIndex !== null) {\n // Select All must be included in the list for keyboard navigation to work properly.\n // The activeMenuIndex corresponds to positions in the complete navigation list including SelectAll.\n const baseOptions =\n selectAllEnabled && multiple ? allOptionsWithSelectAll : options\n const option = baseOptions[activeMenuIndex]\n\n if (option) {\n onSelect(option)\n }\n }\n }\n\n function defaultGetOptionIsSelected(option: SuperSelectOption) {\n if (Array.isArray(value)) {\n const optionValues = getOptionValue(option)\n\n if (Array.isArray(optionValues)) {\n return optionValues.every((v) => value.includes(v))\n }\n\n return value.includes(optionValues)\n }\n\n return value === getOptionValue(option)\n }\n\n function defaultGetOptionIsPartiallySelected(option: SuperSelectOption) {\n if (selectionStyle !== 'checkbox') {\n return false\n }\n\n if (Array.isArray(value)) {\n const optionValues = getOptionValue(option)\n\n if (Array.isArray(optionValues)) {\n return (\n optionValues.some((v) => value.includes(v)) &&\n !optionValues.every((v) => value.includes(v))\n )\n }\n }\n\n return false\n }\n\n function defaultGetOptionIsSelectAllPartiallySelected(\n options: SuperSelectOption[],\n isSelected: (option: SuperSelectOption) => boolean,\n isPartiallySelected: (option: SuperSelectOption) => boolean\n ) {\n if (selectionStyle !== 'checkbox' && !Array.isArray(value)) {\n return false\n }\n\n return (\n options.some(\n (option) => isSelected(option) || isPartiallySelected(option)\n ) && !options.every((option) => isSelected(option))\n )\n }\n\n function defaultGetOptionIsSelectAllSelected(\n options: SuperSelectOption[],\n isSelected: (option: SuperSelectOption) => boolean\n ) {\n if (!multiple) {\n return false\n }\n\n return options.every((option) => isSelected(option))\n }\n\n function isEmpty() {\n return Array.isArray(value) ? value.length === 0 : value === null\n }\n\n const boundWidthRef = React.useRef(open)\n\n React.useEffect(() => {\n boundWidthRef.current = open\n }, [open])\n\n const floating = useFloating<HTMLElement>({\n open,\n onOpenChange: (open) => {\n setOpen(open)\n onOpenChange(open)\n },\n whileElementsMounted: (...args) =>\n /* { animationFrame: true } is used to fix ResizeObserver issue with @floating-ui/react */\n autoUpdate(...args, { animationFrame: true }),\n strategy: 'fixed',\n middleware: [\n offset(({ rects }) => {\n return {\n mainAxis: 2,\n crossAxis: overlayMatchesTriggerWidth\n ? 0\n : (rects.floating.width - rects.reference.width) / 2,\n }\n }),\n flip(),\n size({\n apply({ availableHeight, elements }) {\n if (boundWidthRef.current) {\n boundWidthRef.current = false\n setWidth(\n overlayMatchesTriggerWidth\n ? elements.reference.getBoundingClientRect().width\n : extendedSelectMenuWidth\n )\n }\n setMaxHeight(availableHeight)\n },\n padding: 10,\n }),\n ],\n })\n\n const { value: zIndex } = useZIndexContext()\n\n const { getReferenceProps, getFloatingProps, getItemProps } = useInteractions(\n [\n useClick(floating.context, {\n enabled: !disabled,\n keyboardHandlers: false,\n }),\n useDismiss(floating.context, {\n enabled: !disabled,\n }),\n useListNavigation(floating.context, {\n activeIndex: activeMenuIndex,\n disabledIndices: groupIndices,\n enabled: !disabled,\n listRef: navigationList,\n loop: true,\n onNavigate: (i) => setActiveMenuIndex(() => i),\n selectedIndex,\n virtual: true,\n }),\n useTokenNavigation(floating.context, {\n activeIndex: activeTokenIndex,\n enabled: !disabled && multiple && searchValue === '',\n onChange: setValue,\n onNavigate: (i) => setActiveTokenIndex(() => i),\n value,\n }),\n useKeyboardSelection(floating.context, {\n enabled: !disabled,\n onSelect: onKeyboardSelect,\n }),\n {\n reference: {\n $block: block,\n $disabled: disabled,\n $error: error,\n $hasClearIcon: !disabled && !loading,\n $loading: loading,\n $multiple: multiple,\n $open: open,\n $placeholder: !selectedLabel,\n 'aria-controls': search ? overlayId : listId,\n 'aria-expanded': open,\n 'aria-haspopup': search ? 'dialog' : 'listbox',\n ...(ariaLabel && { 'aria-label': ariaLabel }),\n onKeyDown() {\n setPointer(false)\n },\n role: 'combobox',\n search,\n tabIndex: disabled ? -1 : tabIndex,\n } as any, // TODO fix type\n floating: {\n role: search ? 'dialog' : 'none',\n id: overlayId,\n onKeyDown() {\n setPointer(false)\n },\n onPointerMove() {\n setPointer(true)\n },\n style: {\n position: floating.strategy,\n left: floating.x || 0,\n top: floating.y || 0,\n width,\n maxHeight,\n zIndex,\n },\n },\n },\n ]\n )\n\n function getLabelProps() {\n return {\n $hoverable: false,\n }\n }\n\n function getMultiInputProps(): React.AriaAttributes &\n React.InputHTMLAttributes<HTMLInputElement> & {\n ref: React.Ref<HTMLInputElement>\n } {\n return {\n ref: searchRef,\n placeholder: isEmpty() ? placeholder : '',\n disabled,\n 'aria-controls': listId,\n onKeyDown(e) {\n if (e.key === 'Tab') {\n if (open) {\n e.preventDefault()\n e.stopPropagation()\n floating.refs.floating.current?.focus()\n }\n }\n },\n onChange(e) {\n setSearchValue(e.currentTarget.value)\n setActiveTokenIndex(null)\n },\n style: {\n opacity: activeTokenIndex === null ? 1 : 0,\n },\n }\n }\n\n function getMultiValueProps(index: number) {\n return {\n onClick(e: React.MouseEvent) {\n // prevent the menu from closing\n e.stopPropagation()\n\n if (isMultiple(multiple, value)) {\n setValue(value.filter((_, i) => i !== index))\n }\n },\n }\n }\n\n function getSearchContainerProps() {\n return {\n ref: (el: HTMLElement | null) => {\n setSearchHeight(el?.clientHeight ?? 0)\n },\n }\n }\n\n function getSearchProps() {\n return {\n 'aria-controls': listId,\n onChange(value: string) {\n setSearchValue(value)\n setActiveTokenIndex(null)\n },\n placeholder: i18n.t('core.select.search'),\n }\n }\n\n function getHeaderProps() {\n return {\n ref: (el: HTMLElement | null) => {},\n }\n }\n\n function getFooterProps() {\n return {\n ref: (el: HTMLElement | null) => {\n setFooterHeight(el?.clientHeight ?? 0)\n },\n onKeyDown: (e: React.KeyboardEvent) => {\n if (e.key !== 'Escape') {\n e.stopPropagation()\n }\n },\n }\n }\n\n function getEmptyMessageProps() {\n return {\n emptyMessage,\n }\n }\n\n function getClearProps() {\n return {\n 'aria-hidden': true,\n 'aria-label': i18n.t('core.select.clear'),\n onClick(e: React.MouseEvent) {\n // prevent the menu from closing\n e.stopPropagation()\n\n setActiveTokenIndex(null)\n setValue(multiple ? [] : null)\n setOpen(true)\n },\n }\n }\n\n function getMenuProps() {\n return {\n scrollable: false,\n style: {\n height: listContainerHeight,\n },\n }\n }\n\n function getVirtuosoProps(): VirtuosoProps<{}, {}> {\n const atBottomStateChange = (atBottom: boolean) => {\n if (atBottom) {\n onScrollBottom()\n }\n }\n\n return {\n role: 'listbox',\n id: search ? overlayId : listId,\n data: draggable ? queriedDraggableOptions : options,\n components: {\n Item: components?.Item as any, // TODO fix type\n },\n initialTopMostItemIndex: selectedIndex >= 0 ? selectedIndex : 0,\n style: {\n flex: '1 1 auto',\n },\n tabIndex: -1,\n totalListHeightChanged: setListHeight,\n atBottomStateChange,\n }\n }\n\n const onDragEnd = React.useCallback((result: SuperSelectResult) => {\n if (!result.destination) {\n return\n }\n if (result.source.index === result.destination.index) {\n return\n }\n\n const startIndex = result.source.index\n const destinationIndex = result.destination.index\n\n setDraggableOptions((options) => {\n const { nextOptions, prevGroup, nextGroup } = reorder(\n options,\n startIndex,\n destinationIndex\n )\n\n const adjustedOptions =\n prevGroup !== nextGroup\n ? nextOptions.map((option, index) => {\n if (index === destinationIndex) {\n return setOptionGroup(option, nextGroup)\n }\n return option\n })\n : nextOptions\n\n if (typeof onManualSort === 'function') {\n setTimeout(() => {\n onManualSort(\n adjustedOptions.filter((option) => !getOptionIsOptgroup(option))\n )\n }, 0)\n }\n\n return adjustedOptions\n })\n }, [])\n\n // run effect when the `open` state changes\n //\n // if it was closed and is now open, reset the highlighted index to be\n // the first selectable option\n //\n // if it was open and is now closed, reset the search value and focused token index\n React.useEffect(() => {\n if (open) {\n setActiveMenuIndex(() =>\n selectedIndex >= 0 ? selectedIndex : getFirstSelectableOptionIndex()\n )\n } else {\n setSearchValue(() => '')\n setActiveTokenIndex(() => null)\n }\n }, [open])\n\n // run the effect when user enters a serach value\n //\n // if the select is currently open then reset highlighted item to be the first\n // selectable option\n React.useEffect(() => {\n if (open) {\n setActiveMenuIndex(() => getFirstSelectableOptionIndex())\n }\n }, [searchValue])\n\n // when we change the value then close the overlay, but only if we have\n // actually selected a value\n //\n // multiple mode forces the overlay to stay open\n React.useEffect(() => {\n if (!multiple && value !== null) {\n setOpen(() => false)\n }\n }, [value])\n\n // recreate the array to hold dom refs when our options change\n React.useEffect(() => {\n // Adjust length to include Select All option if enabled, without this the navigation\n // would not work correctly when Select All is enabled\n const totalLength =\n selectAllEnabled && multiple\n ? allOptionsWithSelectAll.length\n : options.length\n navigationList.current = [...Array(totalLength).fill(null)]\n }, [selectAllEnabled, multiple, allOptionsWithSelectAll, options])\n\n // scroll virtuoso list activeMenuIndex into view when the index changes\n React.useLayoutEffect(() => {\n if (activeMenuIndex !== null) {\n if (!pointer) {\n // Adjust index for virtuoso if Select All is enabled (since Select All is rendered separately)\n // Without this the navigation would not work correctly when Select All is enabled\n const virtuosoIndex =\n selectAllEnabled && multiple && activeMenuIndex > 0\n ? activeMenuIndex + 1\n : activeMenuIndex\n\n if (virtuosoIndex >= 0) {\n virtuoso.current?.scrollIntoView({ index: virtuosoIndex })\n }\n }\n }\n }, [activeMenuIndex, open, selectAllEnabled, multiple])\n\n return {\n config: {\n block,\n disabled,\n draggable,\n emptyMessage,\n error,\n footer,\n header,\n placeholder,\n preset,\n presetProps,\n selectionStyle,\n tabIndex,\n loading,\n multiple,\n selectAllEnabled,\n },\n components,\n state: {\n activeMenuIndex,\n activeTokenIndex,\n isEmpty,\n listContainerHeight,\n listId,\n maxHeight,\n onDragEnd,\n onSelect,\n onSelectAll,\n open,\n options: draggable ? queriedDraggableOptions : options,\n overlayId,\n searchValue,\n selectAllOption,\n selectedIndex,\n selectedLabel,\n selectedOption,\n setOpen,\n setPointer,\n setSearchValue: setSearchValue,\n setActiveMenuIndex,\n sourceOptions,\n value,\n width,\n },\n props: {\n clear: getClearProps,\n emptyMessage: getEmptyMessageProps,\n footer: getFooterProps,\n header: getHeaderProps,\n item: getItemProps,\n label: getLabelProps,\n menu: getMenuProps,\n multiInput: getMultiInputProps,\n overlay: getFloatingProps,\n search: getSearchProps,\n searchContainer: getSearchContainerProps,\n tokenClear: getMultiValueProps,\n trigger: getReferenceProps,\n virtuoso: getVirtuosoProps,\n },\n option: {\n group: getOptionGroup,\n isBatch: getOptionIsBatch,\n isPartiallySelected:\n getOptionIsPartiallySelected ?? defaultGetOptionIsPartiallySelected,\n isSelected: getOptionIsSelected ?? defaultGetOptionIsSelected,\n isDisabled: getOptionIsDisabled,\n isOptgroup: getOptionIsOptgroup,\n isOptSelectAll: getOptionIsOptSelectAll,\n label: getOptionLabel,\n value: getOptionValue,\n selectAll: {\n isSelectAllPartiallySelected: (options) =>\n defaultGetOptionIsSelectAllPartiallySelected(\n options.filter(isSelectableOption),\n getOptionIsSelected ?? defaultGetOptionIsSelected,\n getOptionIsPartiallySelected ?? defaultGetOptionIsPartiallySelected\n ),\n isSelectAllSelected: (options) =>\n defaultGetOptionIsSelectAllSelected(\n options.filter(isSelectableOption),\n getOptionIsSelected ?? defaultGetOptionIsSelected\n ),\n },\n },\n refs: {\n floating,\n navigationList,\n virtuoso,\n },\n }\n}\n\nexport const SuperSelectContext = React.createContext<SuperSelectApi | null>(\n null\n)\n\nexport function useSuperSelectContext(): SuperSelectApi {\n const ctx = React.useContext(SuperSelectContext)\n\n if (!ctx) {\n throw new Error('Invalid SuperSelectContext')\n }\n\n return ctx as SuperSelectApi\n}\n"],"mappings":"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"}
@@ -8,19 +8,19 @@ var trackWidth = 36;
8
8
  var toggleSize = 16;
9
9
  export var StyledTrack = /*#__PURE__*/styled.div.withConfig({
10
10
  displayName: "StyledTrack",
11
- componentId: "core-12_27_1__sc-mwn4kg-0"
11
+ componentId: "core-12_28_1__sc-mwn4kg-0"
12
12
  })(["background-color:", ";border-radius:", "px;height:", "px;width:", "px;position:relative;transition:0.2s;"], colors.gray70, trackHeight, trackHeight, trackWidth);
13
13
  export var StyledToggle = /*#__PURE__*/styled.span.withConfig({
14
14
  displayName: "StyledToggle",
15
- componentId: "core-12_27_1__sc-mwn4kg-1"
15
+ componentId: "core-12_28_1__sc-mwn4kg-1"
16
16
  })(["background-color:", ";border-radius:50%;bottom:2px;height:", "px;left:2px;position:absolute;transition:all 0.2s;width:", "px;"], colors.white, toggleSize, toggleSize);
17
17
  export var StyledSwitchLabel = /*#__PURE__*/styled.span.withConfig({
18
18
  displayName: "StyledSwitchLabel",
19
- componentId: "core-12_27_1__sc-mwn4kg-2"
19
+ componentId: "core-12_28_1__sc-mwn4kg-2"
20
20
  })(["", " padding-left:", "px;user-select:none;"], getTypographyIntent('body'), spacing.md);
21
21
  export var StyledSwitchContainer = /*#__PURE__*/styled.label.withConfig({
22
22
  displayName: "StyledSwitchContainer",
23
- componentId: "core-12_27_1__sc-mwn4kg-3"
23
+ componentId: "core-12_28_1__sc-mwn4kg-3"
24
24
  })(["cursor:pointer;display:grid;grid-template-columns:", "px 1fr;position:relative;& + &{margin-top:", "px;}", " ", " ", ""], trackWidth, spacing.md, function (_ref) {
25
25
  var $checked = _ref.$checked;
26
26
  return $checked && css(["", "{background-color:", ";", "{transform:translateX(", "px);}}"], StyledTrack, colors.blue50, StyledToggle, spacing.lg);