@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.
- package/CHANGELOG.md +13 -0
- package/dist/AnchorNavigation/AnchorNavigation.styles.js +3 -3
- package/dist/Avatar/Avatar.styles.js +5 -5
- package/dist/AvatarStack/AvatarStack.styles.js +7 -7
- package/dist/Badge/Badge.styles.js +2 -2
- package/dist/BadgePill/BadgePill.styles.js +4 -4
- package/dist/Banner/Banner.styles.js +10 -10
- package/dist/Box/Box.styles.js +1 -1
- package/dist/Breadcrumbs/Breadcrumbs.styles.js +4 -4
- package/dist/Button/Button.styles.js +5 -5
- package/dist/Calendar/Calendar.styles.js +8 -8
- package/dist/Card/Card.styles.js +1 -1
- package/dist/Checkbox/Checkbox.styles.js +6 -6
- package/dist/Checkbox/CheckboxTooltip.js +1 -1
- package/dist/ContactItem/ContactItem.styles.js +5 -5
- package/dist/Content/Content.styles.js +2 -2
- package/dist/DateInput/DateInput.styles.js +6 -6
- package/dist/DetailPage/DetailPage.styles.js +7 -7
- package/dist/Dropdown/Dropdown.styles.js +3 -3
- package/dist/DropdownFlyout/DropdownFlyout.styles.js +4 -4
- package/dist/Dropzone/Dropzone.js +1 -1
- package/dist/Dropzone/Dropzone.styles.js +9 -9
- package/dist/EmptyState/EmptyState.styles.js +6 -6
- package/dist/Field/Field.styles.js +3 -3
- package/dist/FileList/FileList.styles.js +4 -4
- package/dist/FileSelect/FileExplorer/FileExplorer.styles.js +9 -9
- package/dist/FileSelect/FileExplorer/FileExplorerSidebar.styles.js +3 -3
- package/dist/FileSelect/FileSelect.styles.js +2 -2
- package/dist/FileSelect/FileSelectDropzone/FileSelectDropzone.styles.js +3 -3
- package/dist/FileSelect/FileTokenList/FileTokenList.styles.js +2 -2
- package/dist/FileSelect/GridSource/GridSource.styles.js +6 -6
- package/dist/FileSelect/LocalSource/LocalSource.styles.js +4 -4
- package/dist/FileSelect/SourceItem/SourceItem.styles.js +3 -3
- package/dist/FileSelect/ThumbnailList/ThumbnailList.styles.js +6 -6
- package/dist/FileSelect/TreeSource/TreeSource.styles.js +1 -1
- package/dist/FileToken/FileToken.styles.js +4 -4
- package/dist/FilterToken/FilterToken.styles.js +5 -5
- package/dist/FlexList/FlexList.styles.js +1 -1
- package/dist/Form/Form.styles.js +14 -14
- package/dist/Form/StyledFormikForm.styles.js +2 -2
- package/dist/GhostPlaceholder/GhostPlaceholder.styles.js +2 -2
- package/dist/Grid/Grid.styles.js +2 -2
- package/dist/GroupSelect/GroupSelect.styles.js +1 -1
- package/dist/Input/Input.styles.js +1 -1
- package/dist/Link/Link.styles.js +1 -1
- package/dist/ListPage/ListPage.styles.js +8 -8
- package/dist/Loader/Loader.styles.js +2 -2
- package/dist/MenuImperative/MenuImperative.styles.js +10 -10
- package/dist/Modal/Modal.styles.js +13 -13
- package/dist/MultiSelect/MultiSelect.styles.js +6 -6
- package/dist/NextMenu/NextMenu.styles.js +3 -3
- package/dist/Notation/Notation.js +1 -1
- package/dist/NumberInput/NumberInput.styles.js +7 -7
- package/dist/Overlay/OverlayArrow.styles.js +1 -1
- package/dist/PageLayout/PageLayout.styles.js +16 -16
- package/dist/PageTemplate/PageFooterTemplate/PageFooterTemplate.styles.js +1 -1
- package/dist/PageTemplate/PageHeaderTemplate/PageHeaderTemplate.styles.js +3 -3
- package/dist/PageTemplate/PagePaneTemplate/PagePaneTemplate.styles.js +2 -2
- package/dist/PageTemplate/PageTemplate/PageTemplate.styles.js +3 -3
- package/dist/Pagination/Pagination.styles.js +5 -5
- package/dist/Panel/Panel.styles.js +11 -11
- package/dist/Pill/Pill.styles.js +3 -3
- package/dist/PillSelect/PillSelect.styles.js +4 -4
- package/dist/Popover/Popover.styles.js +2 -2
- package/dist/Portal/Portal.styles.js +1 -1
- package/dist/ProgressBar/ProgressBar.styles.js +2 -2
- package/dist/RadioButton/RadioButton.styles.js +3 -3
- package/dist/Required/Required.styles.js +3 -3
- package/dist/Search/Search.styles.js +5 -5
- package/dist/Section/Section.styles.js +7 -7
- package/dist/SegmentedController/SegmentedController.styles.js +4 -4
- package/dist/Select/Select.styles.js +7 -7
- package/dist/Semantic/Semantic.styles.js +9 -9
- package/dist/Slider/Slider.styles.js +5 -5
- package/dist/Spinner/Spinner.styles.js +7 -7
- package/dist/SplitViewCard/SplitViewCard.js +1 -2
- package/dist/SplitViewCard/SplitViewCard.js.map +1 -1
- package/dist/SplitViewCard/SplitViewCard.styles.js +8 -8
- package/dist/SuperSelect/SuperSelect.components.d.ts +1 -0
- package/dist/SuperSelect/SuperSelect.components.js +102 -15
- package/dist/SuperSelect/SuperSelect.components.js.map +1 -1
- package/dist/SuperSelect/SuperSelect.constants.d.ts +1 -0
- package/dist/SuperSelect/SuperSelect.constants.js +1 -0
- package/dist/SuperSelect/SuperSelect.constants.js.map +1 -1
- package/dist/SuperSelect/SuperSelect.js +5 -1
- package/dist/SuperSelect/SuperSelect.js.map +1 -1
- package/dist/SuperSelect/SuperSelect.presets.styles.js +1 -1
- package/dist/SuperSelect/SuperSelect.styles.d.ts +3 -0
- package/dist/SuperSelect/SuperSelect.styles.js +41 -37
- package/dist/SuperSelect/SuperSelect.styles.js.map +1 -1
- package/dist/SuperSelect/SuperSelect.types.d.ts +34 -1
- package/dist/SuperSelect/SuperSelect.types.js.map +1 -1
- package/dist/SuperSelect/SuperSelect.utils.d.ts +1 -0
- package/dist/SuperSelect/SuperSelect.utils.js +4 -1
- package/dist/SuperSelect/SuperSelect.utils.js.map +1 -1
- package/dist/SuperSelect/useSuperSelect.d.ts +1 -1
- package/dist/SuperSelect/useSuperSelect.js +123 -24
- package/dist/SuperSelect/useSuperSelect.js.map +1 -1
- package/dist/Switch/Switch.styles.js +4 -4
- package/dist/Table/Table.styles.js +28 -28
- package/dist/TableShelf/TableShelf.styles.js +5 -5
- package/dist/Tabs/Tabs.styles.js +15 -15
- package/dist/Tearsheet/Tearsheet.styles.js +5 -5
- package/dist/TextArea/TextArea.styles.js +1 -1
- package/dist/TextEditor/TextEditor.styles.js +1 -1
- package/dist/TextEditor/utils/config.js +1 -3
- package/dist/TextEditor/utils/config.js.map +1 -1
- package/dist/TextEditorOutput/TextEditorOutput.styles.js +1 -1
- package/dist/Thumbnail/Thumbnail.styles.js +17 -17
- package/dist/ThumbnailGrid/ThumbnailGrid.styles.js +7 -7
- package/dist/TieredSelect/TieredSelect.js +1 -1
- package/dist/TieredSelect/TieredSelect.js.map +1 -1
- package/dist/TieredSelect/TieredSelect.styles.js +9 -9
- package/dist/Tile/Tile.styles.js +8 -8
- package/dist/Title/Title.styles.js +7 -7
- package/dist/Toast/Toast.styles.js +3 -3
- package/dist/ToggleButton/ToggleButton.styles.js +1 -1
- package/dist/Token/Token.styles.js +3 -3
- package/dist/ToolHeader/ToolHeader.styles.js +6 -6
- package/dist/ToolLandingPage/ToolLandingPage.styles.js +3 -3
- package/dist/Tooltip/Tooltip.styles.js +2 -2
- package/dist/Tree/Tree.styles.js +9 -9
- package/dist/Typeahead/Typeahead.styles.js +3 -3
- package/dist/Typography/Typography.styles.js +1 -1
- package/dist/Typography/Typography.table.story.js +2 -2
- package/dist/_hooks/I18n.d.ts +16 -0
- package/dist/_locales/de-DE.json +2 -1
- package/dist/_locales/en-AU.json +2 -1
- package/dist/_locales/en-CA.json +2 -1
- package/dist/_locales/en-GB.json +2 -1
- package/dist/_locales/en.json +2 -1
- package/dist/_locales/es-ES.json +3 -2
- package/dist/_locales/es.json +4 -3
- package/dist/_locales/fr-CA.json +2 -1
- package/dist/_locales/fr-FR.json +2 -1
- package/dist/_locales/is-IS.json +2 -1
- package/dist/_locales/it-IT.json +2 -1
- package/dist/_locales/ja-JP.json +2 -1
- package/dist/_locales/pl-PL.json +2 -1
- package/dist/_locales/pseudo.json +2 -1
- package/dist/_locales/pt-BR.json +2 -1
- package/dist/_locales/pt-PT.json +380 -0
- package/dist/_locales/th-TH.json +2 -1
- package/dist/_locales/zh-SG.json +2 -1
- package/dist/_locales/zh-TW.json +219 -218
- package/dist/_storyHelpers_/components/Deprecation.styles.js +1 -1
- package/dist/_storyHelpers_/components/StoryGrid.js +3 -3
- package/dist/_typedoc/AnchorNavigation/AnchorNavigation.types.json +3 -3
- package/dist/_typedoc/Avatar/Avatar.types.json +20 -20
- package/dist/_typedoc/AvatarStack/AvatarStack.types.json +24 -24
- package/dist/_typedoc/Badge/Badge.types.json +6 -6
- package/dist/_typedoc/Banner/Banner.types.json +13 -13
- package/dist/_typedoc/Box/Box.types.json +68 -68
- package/dist/_typedoc/Breadcrumbs/Breadcrumbs.types.json +10 -10
- package/dist/_typedoc/Button/Button.types.json +13 -13
- package/dist/_typedoc/Calendar/Calendar.types.json +80 -80
- package/dist/_typedoc/Card/Card.types.json +6 -6
- package/dist/_typedoc/Checkbox/Checkbox.types.json +8 -8
- package/dist/_typedoc/ContactItem/ContactItem.types.json +9 -9
- package/dist/_typedoc/DateInput/DateInput.types.json +35 -35
- package/dist/_typedoc/DateSelect/DateSelect.types.json +13 -13
- package/dist/_typedoc/DetailPage/DetailPage.types.json +5 -5
- package/dist/_typedoc/Dropdown/Dropdown.types.json +37 -37
- package/dist/_typedoc/DropdownFlyout/DropdownFlyout.types.json +30 -30
- package/dist/_typedoc/Dropzone/Dropzone.types.json +44 -44
- package/dist/_typedoc/EmptyState/EmptyState.types.json +16 -16
- package/dist/_typedoc/FileList/FileList.types.json +9 -9
- package/dist/_typedoc/FileSelect/FileSelect.types.json +27 -27
- package/dist/_typedoc/FileSelect/GridSource/GridSource.types.json +20 -20
- package/dist/_typedoc/FileSelect/LocalSource/LocalSource.types.json +14 -14
- package/dist/_typedoc/FileSelect/TreeSource/TreeSource.types.json +9 -9
- package/dist/_typedoc/Flex/Flex.types.json +27 -27
- package/dist/_typedoc/FlexList/FlexList.types.json +30 -30
- package/dist/_typedoc/Form/Form.types.json +771 -771
- package/dist/_typedoc/GhostPlaceholder/GhostPlaceholder.types.json +12 -12
- package/dist/_typedoc/Grid/Grid.types.json +8 -8
- package/dist/_typedoc/GroupSelect/GroupSelect.types.json +52 -52
- package/dist/_typedoc/Input/Input.types.json +2 -2
- package/dist/_typedoc/Link/Link.types.json +1 -1
- package/dist/_typedoc/ListPage/ListPage.types.json +13 -13
- package/dist/_typedoc/Menu/Menu.types.json +62 -62
- package/dist/_typedoc/MenuImperative/MenuImperative.types.json +74 -74
- package/dist/_typedoc/Modal/Modal.types.json +46 -46
- package/dist/_typedoc/MultiSelect/MultiSelect.types.json +31 -31
- package/dist/_typedoc/NextTile/NextTile.types.json +32 -32
- package/dist/_typedoc/Notation/Notation.types.json +4 -4
- package/dist/_typedoc/NumberInput/NumberInput.types.json +48 -48
- package/dist/_typedoc/OverlayTrigger/OverlayTrigger.types.json +32 -32
- package/dist/_typedoc/PageLayout/PageLayout.types.json +26 -26
- package/dist/_typedoc/Pagination/Pagination.types.json +7 -7
- package/dist/_typedoc/Panel/Panel.types.json +30 -30
- package/dist/_typedoc/Pill/Pill.types.json +2 -2
- package/dist/_typedoc/PillSelect/PillSelect.types.json +49 -49
- package/dist/_typedoc/Popover/Popover.types.json +15 -15
- package/dist/_typedoc/ProgressBar/ProgressBar.types.json +7 -7
- package/dist/_typedoc/RadioButton/RadioButton.types.json +6 -6
- package/dist/_typedoc/Required/Required.types.json +5 -5
- package/dist/_typedoc/Search/Search.types.json +18 -18
- package/dist/_typedoc/Section/Section.types.json +15 -15
- package/dist/_typedoc/SegmentedController/SegmentedController.types.json +21 -21
- package/dist/_typedoc/Select/Select.types.json +60 -60
- package/dist/_typedoc/SettingsPage/SettingsPage.types.json +10 -10
- package/dist/_typedoc/Slider/Slider.types.json +6 -6
- package/dist/_typedoc/Spinner/Spinner.types.json +9 -9
- package/dist/_typedoc/SplitViewCard/SplitViewCard.types.json +14 -14
- package/dist/_typedoc/Table/Table.types.json +101 -101
- package/dist/_typedoc/Tabs/Tabs.types.json +20 -20
- package/dist/_typedoc/Tearsheet/Tearsheet.types.json +17 -17
- package/dist/_typedoc/TextArea/TextArea.types.json +3 -3
- package/dist/_typedoc/TextEditor/TextEditor.types.json +21 -21
- package/dist/_typedoc/TextEditor/TextEditorProvider.types.json +2 -2
- package/dist/_typedoc/TextEditorOutput/TextEditorOutput.types.json +3 -3
- package/dist/_typedoc/Thumbnail/Thumbnail.types.json +19 -19
- package/dist/_typedoc/TieredDropdown/TieredDropdown.types.json +42 -42
- package/dist/_typedoc/TieredSelect/TieredSelect.types.json +28 -28
- package/dist/_typedoc/Tile/Tile.types.json +8 -8
- package/dist/_typedoc/Title/Title.types.json +1 -1
- package/dist/_typedoc/Toast/Toast.types.json +4 -4
- package/dist/_typedoc/ToggleButton/ToggleButton.types.json +4 -4
- package/dist/_typedoc/Token/Token.types.json +7 -7
- package/dist/_typedoc/ToolHeader/ToolHeader.types.json +10 -10
- package/dist/_typedoc/ToolLandingPage/ToolLandingPage.types.json +7 -7
- package/dist/_typedoc/Tooltip/Tooltip.types.json +13 -13
- package/dist/_typedoc/Tree/Tree.types.json +86 -86
- package/dist/_typedoc/Typeahead/Typeahead.types.json +2 -2
- package/dist/_typedoc/Typography/Typography.types.json +9 -9
- package/dist/_typedoc/_utils/types.json +3 -3
- package/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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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 (
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
779
|
-
|
|
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
|
-
|
|
786
|
-
|
|
787
|
-
|
|
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:
|
|
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":"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"}
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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);
|