@cloudscape-design/components 3.0.929 → 3.0.931

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 (86) hide show
  1. package/app-layout/drawer/index.d.ts.map +1 -1
  2. package/app-layout/drawer/index.js +1 -1
  3. package/app-layout/drawer/index.js.map +1 -1
  4. package/app-layout/mobile-toolbar/index.d.ts.map +1 -1
  5. package/app-layout/mobile-toolbar/index.js +1 -1
  6. package/app-layout/mobile-toolbar/index.js.map +1 -1
  7. package/app-layout/visual-refresh/drawers.d.ts.map +1 -1
  8. package/app-layout/visual-refresh/drawers.js +2 -2
  9. package/app-layout/visual-refresh/drawers.js.map +1 -1
  10. package/app-layout/visual-refresh-toolbar/toolbar/drawer-triggers.d.ts.map +1 -1
  11. package/app-layout/visual-refresh-toolbar/toolbar/drawer-triggers.js +2 -2
  12. package/app-layout/visual-refresh-toolbar/toolbar/drawer-triggers.js.map +1 -1
  13. package/internal/components/option/interfaces.d.ts +1 -1
  14. package/internal/components/option/interfaces.d.ts.map +1 -1
  15. package/internal/components/option/interfaces.js.map +1 -1
  16. package/internal/components/option/utils/prepare-options.d.ts +1 -0
  17. package/internal/components/option/utils/prepare-options.d.ts.map +1 -1
  18. package/internal/components/option/utils/prepare-options.js +1 -0
  19. package/internal/components/option/utils/prepare-options.js.map +1 -1
  20. package/internal/components/options-list/index.d.ts +1 -0
  21. package/internal/components/options-list/index.d.ts.map +1 -1
  22. package/internal/components/options-list/index.js +2 -2
  23. package/internal/components/options-list/index.js.map +1 -1
  24. package/internal/components/selectable-item/index.d.ts.map +1 -1
  25. package/internal/components/selectable-item/index.js +2 -1
  26. package/internal/components/selectable-item/index.js.map +1 -1
  27. package/internal/components/selectable-item/interfaces.d.ts +1 -0
  28. package/internal/components/selectable-item/interfaces.d.ts.map +1 -1
  29. package/internal/components/selectable-item/interfaces.js.map +1 -1
  30. package/internal/components/selectable-item/styles.css.js +20 -19
  31. package/internal/components/selectable-item/styles.scoped.css +41 -37
  32. package/internal/components/selectable-item/styles.selectors.js +20 -19
  33. package/internal/environment.js +1 -1
  34. package/internal/environment.json +1 -1
  35. package/internal/manifest.json +1 -1
  36. package/multiselect/interfaces.d.ts +11 -2
  37. package/multiselect/interfaces.d.ts.map +1 -1
  38. package/multiselect/interfaces.js.map +1 -1
  39. package/multiselect/internal.d.ts.map +1 -1
  40. package/multiselect/internal.js +5 -3
  41. package/multiselect/internal.js.map +1 -1
  42. package/multiselect/use-multiselect.d.ts +7 -4
  43. package/multiselect/use-multiselect.d.ts.map +1 -1
  44. package/multiselect/use-multiselect.js +33 -9
  45. package/multiselect/use-multiselect.js.map +1 -1
  46. package/package.json +1 -1
  47. package/select/internal.js +1 -1
  48. package/select/internal.js.map +1 -1
  49. package/select/parts/common.d.ts +2 -0
  50. package/select/parts/common.d.ts.map +1 -0
  51. package/select/parts/common.js +4 -0
  52. package/select/parts/common.js.map +1 -0
  53. package/select/parts/multiselect-item.d.ts.map +1 -1
  54. package/select/parts/multiselect-item.js +3 -2
  55. package/select/parts/multiselect-item.js.map +1 -1
  56. package/select/parts/plain-list.d.ts.map +1 -1
  57. package/select/parts/plain-list.js +22 -14
  58. package/select/parts/plain-list.js.map +1 -1
  59. package/select/parts/styles.css.js +20 -21
  60. package/select/parts/styles.scoped.css +26 -30
  61. package/select/parts/styles.selectors.js +20 -21
  62. package/select/parts/trigger.d.ts.map +1 -1
  63. package/select/parts/trigger.js +1 -1
  64. package/select/parts/trigger.js.map +1 -1
  65. package/select/parts/virtual-list.d.ts.map +1 -1
  66. package/select/parts/virtual-list.js +26 -9
  67. package/select/parts/virtual-list.js.map +1 -1
  68. package/select/utils/render-options.d.ts +4 -3
  69. package/select/utils/render-options.d.ts.map +1 -1
  70. package/select/utils/render-options.js +5 -5
  71. package/select/utils/render-options.js.map +1 -1
  72. package/select/utils/scroll-to-index.d.ts +5 -0
  73. package/select/utils/scroll-to-index.d.ts.map +1 -0
  74. package/select/utils/scroll-to-index.js +14 -0
  75. package/select/utils/scroll-to-index.js.map +1 -0
  76. package/select/utils/use-select.d.ts +4 -1
  77. package/select/utils/use-select.d.ts.map +1 -1
  78. package/select/utils/use-select.js +18 -9
  79. package/select/utils/use-select.js.map +1 -1
  80. package/test-utils/dom/internal/dropdown-host.d.ts +20 -2
  81. package/test-utils/dom/internal/dropdown-host.js +33 -2
  82. package/test-utils/dom/internal/dropdown-host.js.map +1 -1
  83. package/test-utils/selectors/internal/dropdown-host.d.ts +1 -0
  84. package/test-utils/selectors/internal/dropdown-host.js +6 -0
  85. package/test-utils/selectors/internal/dropdown-host.js.map +1 -1
  86. package/test-utils/tsconfig.tsbuildinfo +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"use-select.d.ts","sourceRoot":"","sources":["../../../../src/select/utils/use-select.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAE,MAAM,+CAA+C,CAAC;AAC9E,OAAO,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAC;AAChF,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAe,MAAM,6CAA6C,CAAC;AAE5G,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAK1E,OAAO,EAA0B,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAI1F,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAG1C,MAAM,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,EAAE,UAAU,CAAC,GAAG;IAAE,GAAG,EAAE,KAAK,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAA;CAAE,CAAC;AACxG,MAAM,MAAM,cAAc,GAAG,CAAC,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,KAAK,SAAS,CAAC;AAElF,UAAU,cAAc;IACtB,eAAe,EAAE,aAAa,CAAC,gBAAgB,CAAC,CAAC;IACjD,oBAAoB,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACzD,OAAO,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC;IACvC,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,yBAAyB,CAAC;IACnC,OAAO,CAAC,EAAE,yBAAyB,CAAC;IACpC,WAAW,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC5B,aAAa,EAAE,CAAC,aAAa,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/C,iBAAiB,CAAC,EAAE,CAAC,aAAa,EAAE,MAAM,KAAK,IAAI,CAAC;IACpD,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,UAAU,EAAE,mBAAmB,CAAC,UAAU,CAAC;CAC5C;AAED,MAAM,WAAW,kBAAmB,SAAQ,kBAAkB;IAC5D,GAAG,EAAE,SAAS,CAAC,iBAAiB,CAAC,CAAC;CACnC;AAED,wBAAgB,SAAS,CAAC,EACxB,eAAe,EACf,oBAAoB,EACpB,OAAO,EACP,aAAa,EACb,MAAM,EACN,OAAO,EACP,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,aAAa,EACb,iBAAiB,EACjB,oBAA4B,EAC5B,UAAU,GACX,EAAE,cAAc;;;;;;4BAqGe,KAC5B,aAAa,EACb,SAAS,GAAG,QAAQ,GAAG,mBAAmB,GAAG,qBAAqB,CACnE;;0BA4B0B,QAAQ,WAAW,CAAC;6BAoEf,cAAc,SAAS,MAAM;;4BApJ9B,cAAc;;;EAgO9C"}
1
+ {"version":3,"file":"use-select.d.ts","sourceRoot":"","sources":["../../../../src/select/utils/use-select.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAE,MAAM,+CAA+C,CAAC;AAC9E,OAAO,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAC;AAChF,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAe,MAAM,6CAA6C,CAAC;AAE5G,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAK1E,OAAO,EAA0B,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAI1F,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAG1C,MAAM,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,EAAE,UAAU,CAAC,GAAG;IAAE,GAAG,EAAE,KAAK,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAA;CAAE,CAAC;AACxG,MAAM,MAAM,cAAc,GAAG,CAAC,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,KAAK,SAAS,CAAC;AAElF,UAAU,cAAc;IACtB,eAAe,EAAE,aAAa,CAAC,gBAAgB,CAAC,CAAC;IACjD,oBAAoB,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACzD,OAAO,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC;IACvC,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,yBAAyB,CAAC;IACnC,OAAO,CAAC,EAAE,yBAAyB,CAAC;IACpC,WAAW,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC5B,aAAa,EAAE,CAAC,aAAa,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/C,iBAAiB,CAAC,EAAE,CAAC,aAAa,EAAE,MAAM,KAAK,IAAI,CAAC;IACpD,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,UAAU,EAAE,mBAAmB,CAAC,UAAU,CAAC;IAC3C,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB;AAED,MAAM,WAAW,kBAAmB,SAAQ,kBAAkB;IAC5D,GAAG,EAAE,SAAS,CAAC,iBAAiB,CAAC,CAAC;CACnC;AAED,wBAAgB,SAAS,CAAC,EACxB,eAAe,EACf,oBAAoB,EACpB,OAAO,EACP,aAAa,EACb,MAAM,EACN,OAAO,EACP,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,aAAa,EACb,iBAAiB,EACjB,oBAA4B,EAC5B,UAAU,EACV,aAAa,EACb,cAAc,EACd,SAAS,GACV,EAAE,cAAc;;;;;;4BA4Ge,KAC5B,aAAa,EACb,SAAS,GAAG,QAAQ,GAAG,mBAAmB,GAAG,qBAAqB,CACnE;;0BA4B0B,QAAQ,WAAW,CAAC;6BAoEf,cAAc,SAAS,MAAM;;4BApJ9B,cAAc;;;EAiO9C"}
@@ -9,7 +9,7 @@ import useForwardFocus from '../../internal/hooks/forward-focus';
9
9
  import { usePrevious } from '../../internal/hooks/use-previous';
10
10
  import { useUniqueId } from '../../internal/hooks/use-unique-id';
11
11
  import { connectOptionsByValue } from './connect-options';
12
- export function useSelect({ selectedOptions, updateSelectedOption, options, filteringType, onBlur, onFocus, externalRef, keepOpen, embedded, fireLoadItems, setFilteringValue, useInteractiveGroups = false, statusType, }) {
12
+ export function useSelect({ selectedOptions, updateSelectedOption, options, filteringType, onBlur, onFocus, externalRef, keepOpen, embedded, fireLoadItems, setFilteringValue, useInteractiveGroups = false, statusType, isAllSelected, isSomeSelected, toggleAll, }) {
13
13
  const interactivityCheck = useInteractiveGroups ? isGroupInteractive : isInteractive;
14
14
  const isHighlightable = (option) => !!option && (useInteractiveGroups || option.type !== 'parent');
15
15
  const filterRef = useRef(null);
@@ -24,7 +24,7 @@ export function useSelect({ selectedOptions, updateSelectedOption, options, filt
24
24
  }
25
25
  return selectedValuesSet;
26
26
  }, new Set());
27
- const [{ highlightType, highlightedOption, highlightedIndex }, { moveHighlightWithKeyboard, resetHighlightWithKeyboard, setHighlightedIndexWithMouse, highlightOptionWithKeyboard, goHomeWithKeyboard, goEndWithKeyboard, },] = useHighlightedOption({ options, isHighlightable });
27
+ const [{ highlightType, highlightedOption, highlightedIndex }, { moveHighlightWithKeyboard, resetHighlightWithKeyboard, setHighlightedIndexWithMouse, highlightOptionWithKeyboard, goHomeWithKeyboard, goEndWithKeyboard, },] = useHighlightedOption({ options: options, isHighlightable });
28
28
  const { isOpen, openDropdown, closeDropdown, toggleDropdown, openedWithKeyboard } = useOpenState({
29
29
  defaultOpen: embedded,
30
30
  onOpen: () => fireLoadItems(''),
@@ -44,17 +44,25 @@ export function useSelect({ selectedOptions, updateSelectedOption, options, filt
44
44
  const menuId = useUniqueId('option-list');
45
45
  const dialogId = useUniqueId('dialog');
46
46
  const highlightedOptionId = getOptionId(menuId, highlightedIndex);
47
- const selectOption = (option) => {
47
+ const closeDropdownIfNecessary = () => {
48
48
  var _a;
49
+ if (!keepOpen) {
50
+ (_a = triggerRef.current) === null || _a === void 0 ? void 0 : _a.focus();
51
+ closeDropdown();
52
+ }
53
+ };
54
+ const selectOption = (option) => {
49
55
  const optionToSelect = option || highlightedOption;
50
56
  if (!optionToSelect || !interactivityCheck(optionToSelect)) {
51
57
  return;
52
58
  }
53
- updateSelectedOption(optionToSelect.option);
54
- if (!keepOpen) {
55
- (_a = triggerRef.current) === null || _a === void 0 ? void 0 : _a.focus();
56
- closeDropdown();
59
+ if (optionToSelect.type === 'select-all' && toggleAll) {
60
+ toggleAll();
61
+ }
62
+ else {
63
+ updateSelectedOption(optionToSelect.option);
57
64
  }
65
+ closeDropdownIfNecessary();
58
66
  };
59
67
  const activeKeyDownHandler = useMenuKeyboard({
60
68
  goUp: () => {
@@ -182,9 +190,10 @@ export function useSelect({ selectedOptions, updateSelectedOption, options, filt
182
190
  };
183
191
  const getOptionProps = (option, index) => {
184
192
  var _a;
193
+ const isSelectAll = option.type === 'select-all';
185
194
  const highlighted = option === highlightedOption;
186
195
  const groupState = isGroup(option.option) ? getGroupState(option.option) : undefined;
187
- const selected = __selectedOptions.indexOf(option) > -1 || !!(groupState === null || groupState === void 0 ? void 0 : groupState.selected);
196
+ const selected = isSelectAll ? isAllSelected : __selectedOptions.indexOf(option) > -1 || !!(groupState === null || groupState === void 0 ? void 0 : groupState.selected);
188
197
  const nextOption = (_a = options[index + 1]) === null || _a === void 0 ? void 0 : _a.option;
189
198
  const isNextSelected = !!nextOption && isGroup(nextOption)
190
199
  ? getGroupState(nextOption).selected
@@ -195,7 +204,7 @@ export function useSelect({ selectedOptions, updateSelectedOption, options, filt
195
204
  highlighted,
196
205
  selected,
197
206
  isNextSelected,
198
- indeterminate: !!(groupState === null || groupState === void 0 ? void 0 : groupState.indeterminate),
207
+ indeterminate: !!(groupState === null || groupState === void 0 ? void 0 : groupState.indeterminate) || (isSelectAll && !isAllSelected && isSomeSelected),
199
208
  ['data-mouse-target']: isHighlightable(option) ? index : -1,
200
209
  id: getOptionId(menuId, index),
201
210
  };
@@ -1 +1 @@
1
- {"version":3,"file":"use-select.js","sourceRoot":"","sources":["../../../../src/select/utils/use-select.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { RefObject } from 'react';\nimport { useEffect, useRef } from 'react';\n\nimport { ButtonTriggerProps } from '../../internal/components/button-trigger';\nimport { DropdownProps } from '../../internal/components/dropdown/interfaces';\nimport { DropdownStatusProps } from '../../internal/components/dropdown-status';\nimport { DropdownOption, OptionDefinition, OptionGroup } from '../../internal/components/option/interfaces';\nimport { isGroup, isGroupInteractive, isInteractive } from '../../internal/components/option/utils/filter-options';\nimport { OptionsListProps } from '../../internal/components/options-list';\nimport { useHighlightedOption } from '../../internal/components/options-list/utils/use-highlight-option';\nimport { getOptionId } from '../../internal/components/options-list/utils/use-ids';\nimport { useMenuKeyboard, useTriggerKeyboard } from '../../internal/components/options-list/utils/use-keyboard';\nimport { useOpenState } from '../../internal/components/options-list/utils/use-open-state';\nimport { fireNonCancelableEvent, NonCancelableEventHandler } from '../../internal/events';\nimport useForwardFocus from '../../internal/hooks/forward-focus';\nimport { usePrevious } from '../../internal/hooks/use-previous';\nimport { useUniqueId } from '../../internal/hooks/use-unique-id';\nimport { FilterProps } from '../parts/filter';\nimport { ItemProps } from '../parts/item';\nimport { connectOptionsByValue } from './connect-options';\n\nexport type MenuProps = Omit<OptionsListProps, 'children'> & { ref: React.RefObject<HTMLUListElement> };\nexport type GetOptionProps = (option: DropdownOption, index: number) => ItemProps;\n\ninterface UseSelectProps {\n selectedOptions: ReadonlyArray<OptionDefinition>;\n updateSelectedOption: (option: OptionDefinition) => void;\n options: ReadonlyArray<DropdownOption>;\n filteringType: string;\n keepOpen?: boolean;\n embedded?: boolean;\n onBlur?: NonCancelableEventHandler;\n onFocus?: NonCancelableEventHandler;\n externalRef: React.Ref<any>;\n fireLoadItems: (filteringText: string) => void;\n setFilteringValue?: (filteringText: string) => void;\n useInteractiveGroups?: boolean;\n statusType: DropdownStatusProps.StatusType;\n}\n\nexport interface SelectTriggerProps extends ButtonTriggerProps {\n ref: RefObject<HTMLButtonElement>;\n}\n\nexport function useSelect({\n selectedOptions,\n updateSelectedOption,\n options,\n filteringType,\n onBlur,\n onFocus,\n externalRef,\n keepOpen,\n embedded,\n fireLoadItems,\n setFilteringValue,\n useInteractiveGroups = false,\n statusType,\n}: UseSelectProps) {\n const interactivityCheck = useInteractiveGroups ? isGroupInteractive : isInteractive;\n\n const isHighlightable = (option?: DropdownOption) => !!option && (useInteractiveGroups || option.type !== 'parent');\n\n const filterRef = useRef<HTMLInputElement>(null);\n const triggerRef = useRef<HTMLButtonElement>(null);\n const menuRef = useRef<HTMLUListElement>(null);\n const hasFilter = filteringType !== 'none' && !embedded;\n const activeRef = hasFilter ? filterRef : menuRef;\n const __selectedOptions = connectOptionsByValue(options, selectedOptions);\n const __selectedValuesSet = selectedOptions.reduce((selectedValuesSet: Set<string>, item: OptionDefinition) => {\n if (item.value) {\n selectedValuesSet.add(item.value);\n }\n return selectedValuesSet;\n }, new Set<string>());\n const [\n { highlightType, highlightedOption, highlightedIndex },\n {\n moveHighlightWithKeyboard,\n resetHighlightWithKeyboard,\n setHighlightedIndexWithMouse,\n highlightOptionWithKeyboard,\n goHomeWithKeyboard,\n goEndWithKeyboard,\n },\n ] = useHighlightedOption({ options, isHighlightable });\n\n const { isOpen, openDropdown, closeDropdown, toggleDropdown, openedWithKeyboard } = useOpenState({\n defaultOpen: embedded,\n onOpen: () => fireLoadItems(''),\n onClose: () => {\n resetHighlightWithKeyboard();\n setFilteringValue?.('');\n },\n });\n\n const handleFocus = () => {\n fireNonCancelableEvent(onFocus, {});\n };\n\n const handleBlur = () => {\n fireNonCancelableEvent(onBlur, {});\n closeDropdown();\n };\n\n const hasSelectedOption = __selectedOptions.length > 0;\n const menuId = useUniqueId('option-list');\n const dialogId = useUniqueId('dialog');\n const highlightedOptionId = getOptionId(menuId, highlightedIndex);\n\n const selectOption = (option?: DropdownOption) => {\n const optionToSelect = option || highlightedOption;\n if (!optionToSelect || !interactivityCheck(optionToSelect)) {\n return;\n }\n updateSelectedOption(optionToSelect.option);\n if (!keepOpen) {\n triggerRef.current?.focus();\n closeDropdown();\n }\n };\n\n const activeKeyDownHandler = useMenuKeyboard({\n goUp: () => {\n if (\n (!useInteractiveGroups && highlightedOption?.type === 'child' && highlightedIndex === 1) ||\n highlightedIndex === 0\n ) {\n goEndWithKeyboard();\n return;\n }\n\n moveHighlightWithKeyboard(-1);\n },\n goDown: () => {\n if (highlightedIndex === options.length - 1) {\n goHomeWithKeyboard();\n return;\n }\n\n moveHighlightWithKeyboard(1);\n },\n selectOption,\n goHome: goHomeWithKeyboard,\n goEnd: goEndWithKeyboard,\n closeDropdown: () => {\n if (!embedded) {\n triggerRef.current?.focus();\n closeDropdown();\n }\n },\n preventNativeSpace: !hasFilter || !!highlightedOption,\n });\n\n const triggerKeyDownHandler = useTriggerKeyboard({\n openDropdown: () => openDropdown(true),\n goHome: goHomeWithKeyboard,\n });\n\n const getDropdownProps: () => Pick<\n DropdownProps,\n 'onFocus' | 'onBlur' | 'dropdownContentId' | 'dropdownContentRole'\n > = () => ({\n onFocus: handleFocus,\n onBlur: handleBlur,\n dropdownContentId: dialogId,\n dropdownContentRole: hasFilter ? 'dialog' : undefined,\n });\n\n const getTriggerProps = (disabled = false, autoFocus = false) => {\n const triggerProps: SelectTriggerProps = {\n ref: triggerRef,\n onFocus: () => closeDropdown(),\n autoFocus,\n ariaHasPopup: hasFilter ? 'dialog' : 'listbox',\n ariaControls: isOpen ? (hasFilter ? dialogId : menuId) : undefined,\n };\n if (!disabled) {\n triggerProps.onMouseDown = (event: CustomEvent) => {\n event.preventDefault(); // prevent current focus from blurring as it immediately closes the dropdown\n if (isOpen) {\n triggerRef.current?.focus();\n }\n toggleDropdown();\n };\n triggerProps.onKeyDown = triggerKeyDownHandler;\n }\n return triggerProps;\n };\n\n const getFilterProps = (): Partial<FilterProps> => {\n if (!hasFilter || !setFilteringValue) {\n return {};\n }\n\n return {\n ref: filterRef,\n onKeyDown: activeKeyDownHandler,\n onChange: event => {\n setFilteringValue(event.detail.value);\n resetHighlightWithKeyboard();\n },\n __onDelayedInput: event => {\n fireLoadItems(event.detail.value);\n },\n __nativeAttributes: {\n 'aria-activedescendant': highlightedOptionId,\n ['aria-owns']: menuId,\n ['aria-controls']: menuId,\n },\n };\n };\n\n const getMenuProps = () => {\n const menuProps: MenuProps = {\n id: menuId,\n ref: menuRef,\n open: isOpen,\n onMouseUp: itemIndex => {\n if (itemIndex > -1) {\n selectOption(options[itemIndex]);\n }\n },\n onMouseMove: itemIndex => {\n if (itemIndex > -1) {\n setHighlightedIndexWithMouse(itemIndex);\n }\n },\n statusType,\n };\n if (!hasFilter) {\n menuProps.onKeyDown = activeKeyDownHandler;\n menuProps.nativeAttributes = {\n 'aria-activedescendant': highlightedOptionId,\n };\n }\n if (embedded) {\n menuProps.onFocus = () => {\n if (!highlightedOption) {\n goHomeWithKeyboard();\n }\n };\n menuProps.onBlur = () => {\n resetHighlightWithKeyboard();\n };\n }\n return menuProps;\n };\n const getGroupState = (option: OptionGroup) => {\n const totalSelected = option.options.filter(item => !!item.value && __selectedValuesSet.has(item.value)).length;\n const hasSelected = totalSelected > 0;\n const allSelected = totalSelected === option.options.length;\n return {\n selected: hasSelected && allSelected && useInteractiveGroups,\n indeterminate: hasSelected && !allSelected,\n };\n };\n\n const getOptionProps = (option: DropdownOption, index: number) => {\n const highlighted = option === highlightedOption;\n const groupState = isGroup(option.option) ? getGroupState(option.option) : undefined;\n const selected = __selectedOptions.indexOf(option) > -1 || !!groupState?.selected;\n const nextOption = options[index + 1]?.option;\n const isNextSelected =\n !!nextOption && isGroup(nextOption)\n ? getGroupState(nextOption).selected\n : __selectedOptions.indexOf(options[index + 1]) > -1;\n const optionProps: any = {\n key: index,\n option,\n highlighted,\n selected,\n isNextSelected,\n indeterminate: !!groupState?.indeterminate,\n ['data-mouse-target']: isHighlightable(option) ? index : -1,\n id: getOptionId(menuId, index),\n };\n\n return optionProps;\n };\n\n const prevOpen = usePrevious<boolean>(isOpen);\n useEffect(() => {\n // highlight the first selected option, when opening the Select component without filter input\n // keep the focus in the filter input when opening, so that screenreader can recognize the combobox\n if (isOpen && !prevOpen && hasSelectedOption && !hasFilter) {\n if (openedWithKeyboard) {\n highlightOptionWithKeyboard(__selectedOptions[0]);\n } else {\n setHighlightedIndexWithMouse(options.indexOf(__selectedOptions[0]), true);\n }\n }\n }, [\n isOpen,\n __selectedOptions,\n hasSelectedOption,\n setHighlightedIndexWithMouse,\n highlightOptionWithKeyboard,\n openedWithKeyboard,\n options,\n prevOpen,\n hasFilter,\n ]);\n\n useEffect(() => {\n if (isOpen && !embedded) {\n // dropdown-fit calculations ensure that the dropdown will fit inside the current\n // viewport, so prevent the browser from trying to scroll it into view (e.g. if\n // scroll-padding-top is set on a parent)\n activeRef.current?.focus({ preventScroll: true });\n }\n }, [isOpen, activeRef, embedded]);\n\n useForwardFocus(externalRef, triggerRef as React.RefObject<HTMLElement>);\n const highlightedGroupSelected =\n !!highlightedOption && isGroup(highlightedOption.option) && getGroupState(highlightedOption.option).selected;\n const announceSelected =\n !!highlightedOption && (__selectedOptions.indexOf(highlightedOption) > -1 || highlightedGroupSelected);\n\n return {\n isOpen,\n highlightedOption,\n highlightedIndex,\n highlightType,\n getTriggerProps,\n getDropdownProps,\n getMenuProps,\n getFilterProps,\n getOptionProps,\n highlightOption: highlightOptionWithKeyboard,\n selectOption,\n announceSelected,\n dialogId,\n };\n}\n"]}
1
+ {"version":3,"file":"use-select.js","sourceRoot":"","sources":["../../../../src/select/utils/use-select.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { RefObject } from 'react';\nimport { useEffect, useRef } from 'react';\n\nimport { ButtonTriggerProps } from '../../internal/components/button-trigger';\nimport { DropdownProps } from '../../internal/components/dropdown/interfaces';\nimport { DropdownStatusProps } from '../../internal/components/dropdown-status';\nimport { DropdownOption, OptionDefinition, OptionGroup } from '../../internal/components/option/interfaces';\nimport { isGroup, isGroupInteractive, isInteractive } from '../../internal/components/option/utils/filter-options';\nimport { OptionsListProps } from '../../internal/components/options-list';\nimport { useHighlightedOption } from '../../internal/components/options-list/utils/use-highlight-option';\nimport { getOptionId } from '../../internal/components/options-list/utils/use-ids';\nimport { useMenuKeyboard, useTriggerKeyboard } from '../../internal/components/options-list/utils/use-keyboard';\nimport { useOpenState } from '../../internal/components/options-list/utils/use-open-state';\nimport { fireNonCancelableEvent, NonCancelableEventHandler } from '../../internal/events';\nimport useForwardFocus from '../../internal/hooks/forward-focus';\nimport { usePrevious } from '../../internal/hooks/use-previous';\nimport { useUniqueId } from '../../internal/hooks/use-unique-id';\nimport { FilterProps } from '../parts/filter';\nimport { ItemProps } from '../parts/item';\nimport { connectOptionsByValue } from './connect-options';\n\nexport type MenuProps = Omit<OptionsListProps, 'children'> & { ref: React.RefObject<HTMLUListElement> };\nexport type GetOptionProps = (option: DropdownOption, index: number) => ItemProps;\n\ninterface UseSelectProps {\n selectedOptions: ReadonlyArray<OptionDefinition>;\n updateSelectedOption: (option: OptionDefinition) => void;\n options: ReadonlyArray<DropdownOption>;\n filteringType: string;\n keepOpen?: boolean;\n embedded?: boolean;\n onBlur?: NonCancelableEventHandler;\n onFocus?: NonCancelableEventHandler;\n externalRef: React.Ref<any>;\n fireLoadItems: (filteringText: string) => void;\n setFilteringValue?: (filteringText: string) => void;\n useInteractiveGroups?: boolean;\n statusType: DropdownStatusProps.StatusType;\n isAllSelected?: boolean;\n isSomeSelected?: boolean;\n toggleAll?: () => void;\n}\n\nexport interface SelectTriggerProps extends ButtonTriggerProps {\n ref: RefObject<HTMLButtonElement>;\n}\n\nexport function useSelect({\n selectedOptions,\n updateSelectedOption,\n options,\n filteringType,\n onBlur,\n onFocus,\n externalRef,\n keepOpen,\n embedded,\n fireLoadItems,\n setFilteringValue,\n useInteractiveGroups = false,\n statusType,\n isAllSelected,\n isSomeSelected,\n toggleAll,\n}: UseSelectProps) {\n const interactivityCheck = useInteractiveGroups ? isGroupInteractive : isInteractive;\n\n const isHighlightable = (option?: DropdownOption) => !!option && (useInteractiveGroups || option.type !== 'parent');\n\n const filterRef = useRef<HTMLInputElement>(null);\n const triggerRef = useRef<HTMLButtonElement>(null);\n const menuRef = useRef<HTMLUListElement>(null);\n const hasFilter = filteringType !== 'none' && !embedded;\n const activeRef = hasFilter ? filterRef : menuRef;\n const __selectedOptions = connectOptionsByValue(options, selectedOptions);\n const __selectedValuesSet = selectedOptions.reduce((selectedValuesSet: Set<string>, item: OptionDefinition) => {\n if (item.value) {\n selectedValuesSet.add(item.value);\n }\n return selectedValuesSet;\n }, new Set<string>());\n const [\n { highlightType, highlightedOption, highlightedIndex },\n {\n moveHighlightWithKeyboard,\n resetHighlightWithKeyboard,\n setHighlightedIndexWithMouse,\n highlightOptionWithKeyboard,\n goHomeWithKeyboard,\n goEndWithKeyboard,\n },\n ] = useHighlightedOption({ options: options, isHighlightable });\n\n const { isOpen, openDropdown, closeDropdown, toggleDropdown, openedWithKeyboard } = useOpenState({\n defaultOpen: embedded,\n onOpen: () => fireLoadItems(''),\n onClose: () => {\n resetHighlightWithKeyboard();\n setFilteringValue?.('');\n },\n });\n\n const handleFocus = () => {\n fireNonCancelableEvent(onFocus, {});\n };\n\n const handleBlur = () => {\n fireNonCancelableEvent(onBlur, {});\n closeDropdown();\n };\n\n const hasSelectedOption = __selectedOptions.length > 0;\n const menuId = useUniqueId('option-list');\n const dialogId = useUniqueId('dialog');\n const highlightedOptionId = getOptionId(menuId, highlightedIndex);\n\n const closeDropdownIfNecessary = () => {\n if (!keepOpen) {\n triggerRef.current?.focus();\n closeDropdown();\n }\n };\n\n const selectOption = (option?: DropdownOption) => {\n const optionToSelect = option || highlightedOption;\n if (!optionToSelect || !interactivityCheck(optionToSelect)) {\n return;\n }\n if (optionToSelect.type === 'select-all' && toggleAll) {\n toggleAll();\n } else {\n updateSelectedOption(optionToSelect.option);\n }\n closeDropdownIfNecessary();\n };\n\n const activeKeyDownHandler = useMenuKeyboard({\n goUp: () => {\n if (\n (!useInteractiveGroups && highlightedOption?.type === 'child' && highlightedIndex === 1) ||\n highlightedIndex === 0\n ) {\n goEndWithKeyboard();\n return;\n }\n moveHighlightWithKeyboard(-1);\n },\n goDown: () => {\n if (highlightedIndex === options.length - 1) {\n goHomeWithKeyboard();\n return;\n }\n\n moveHighlightWithKeyboard(1);\n },\n selectOption,\n goHome: goHomeWithKeyboard,\n goEnd: goEndWithKeyboard,\n closeDropdown: () => {\n if (!embedded) {\n triggerRef.current?.focus();\n closeDropdown();\n }\n },\n preventNativeSpace: !hasFilter || !!highlightedOption,\n });\n\n const triggerKeyDownHandler = useTriggerKeyboard({\n openDropdown: () => openDropdown(true),\n goHome: goHomeWithKeyboard,\n });\n\n const getDropdownProps: () => Pick<\n DropdownProps,\n 'onFocus' | 'onBlur' | 'dropdownContentId' | 'dropdownContentRole'\n > = () => ({\n onFocus: handleFocus,\n onBlur: handleBlur,\n dropdownContentId: dialogId,\n dropdownContentRole: hasFilter ? 'dialog' : undefined,\n });\n\n const getTriggerProps = (disabled = false, autoFocus = false) => {\n const triggerProps: SelectTriggerProps = {\n ref: triggerRef,\n onFocus: () => closeDropdown(),\n autoFocus,\n ariaHasPopup: hasFilter ? 'dialog' : 'listbox',\n ariaControls: isOpen ? (hasFilter ? dialogId : menuId) : undefined,\n };\n if (!disabled) {\n triggerProps.onMouseDown = (event: CustomEvent) => {\n event.preventDefault(); // prevent current focus from blurring as it immediately closes the dropdown\n if (isOpen) {\n triggerRef.current?.focus();\n }\n toggleDropdown();\n };\n triggerProps.onKeyDown = triggerKeyDownHandler;\n }\n return triggerProps;\n };\n\n const getFilterProps = (): Partial<FilterProps> => {\n if (!hasFilter || !setFilteringValue) {\n return {};\n }\n\n return {\n ref: filterRef,\n onKeyDown: activeKeyDownHandler,\n onChange: event => {\n setFilteringValue(event.detail.value);\n resetHighlightWithKeyboard();\n },\n __onDelayedInput: event => {\n fireLoadItems(event.detail.value);\n },\n __nativeAttributes: {\n 'aria-activedescendant': highlightedOptionId,\n ['aria-owns']: menuId,\n ['aria-controls']: menuId,\n },\n };\n };\n\n const getMenuProps = () => {\n const menuProps: MenuProps = {\n id: menuId,\n ref: menuRef,\n open: isOpen,\n onMouseUp: itemIndex => {\n if (itemIndex > -1) {\n selectOption(options[itemIndex]);\n }\n },\n onMouseMove: itemIndex => {\n if (itemIndex > -1) {\n setHighlightedIndexWithMouse(itemIndex);\n }\n },\n statusType,\n };\n if (!hasFilter) {\n menuProps.onKeyDown = activeKeyDownHandler;\n menuProps.nativeAttributes = {\n 'aria-activedescendant': highlightedOptionId,\n };\n }\n if (embedded) {\n menuProps.onFocus = () => {\n if (!highlightedOption) {\n goHomeWithKeyboard();\n }\n };\n menuProps.onBlur = () => {\n resetHighlightWithKeyboard();\n };\n }\n return menuProps;\n };\n const getGroupState = (option: OptionGroup) => {\n const totalSelected = option.options.filter(item => !!item.value && __selectedValuesSet.has(item.value)).length;\n const hasSelected = totalSelected > 0;\n const allSelected = totalSelected === option.options.length;\n return {\n selected: hasSelected && allSelected && useInteractiveGroups,\n indeterminate: hasSelected && !allSelected,\n };\n };\n\n const getOptionProps = (option: DropdownOption, index: number) => {\n const isSelectAll = option.type === 'select-all';\n const highlighted = option === highlightedOption;\n const groupState = isGroup(option.option) ? getGroupState(option.option) : undefined;\n const selected = isSelectAll ? isAllSelected : __selectedOptions.indexOf(option) > -1 || !!groupState?.selected;\n const nextOption = options[index + 1]?.option;\n const isNextSelected =\n !!nextOption && isGroup(nextOption)\n ? getGroupState(nextOption).selected\n : __selectedOptions.indexOf(options[index + 1]) > -1;\n const optionProps: any = {\n key: index,\n option,\n highlighted,\n selected,\n isNextSelected,\n indeterminate: !!groupState?.indeterminate || (isSelectAll && !isAllSelected && isSomeSelected),\n ['data-mouse-target']: isHighlightable(option) ? index : -1,\n id: getOptionId(menuId, index),\n };\n\n return optionProps;\n };\n\n const prevOpen = usePrevious<boolean>(isOpen);\n useEffect(() => {\n // highlight the first selected option, when opening the Select component without filter input\n // keep the focus in the filter input when opening, so that screenreader can recognize the combobox\n if (isOpen && !prevOpen && hasSelectedOption && !hasFilter) {\n if (openedWithKeyboard) {\n highlightOptionWithKeyboard(__selectedOptions[0]);\n } else {\n setHighlightedIndexWithMouse(options.indexOf(__selectedOptions[0]), true);\n }\n }\n }, [\n isOpen,\n __selectedOptions,\n hasSelectedOption,\n setHighlightedIndexWithMouse,\n highlightOptionWithKeyboard,\n openedWithKeyboard,\n options,\n prevOpen,\n hasFilter,\n ]);\n\n useEffect(() => {\n if (isOpen && !embedded) {\n // dropdown-fit calculations ensure that the dropdown will fit inside the current\n // viewport, so prevent the browser from trying to scroll it into view (e.g. if\n // scroll-padding-top is set on a parent)\n activeRef.current?.focus({ preventScroll: true });\n }\n }, [isOpen, activeRef, embedded]);\n\n useForwardFocus(externalRef, triggerRef as React.RefObject<HTMLElement>);\n const highlightedGroupSelected =\n !!highlightedOption && isGroup(highlightedOption.option) && getGroupState(highlightedOption.option).selected;\n const announceSelected =\n !!highlightedOption && (__selectedOptions.indexOf(highlightedOption) > -1 || highlightedGroupSelected);\n\n return {\n isOpen,\n highlightedOption,\n highlightedIndex,\n highlightType,\n getTriggerProps,\n getDropdownProps,\n getMenuProps,\n getFilterProps,\n getOptionProps,\n highlightOption: highlightOptionWithKeyboard,\n selectOption,\n announceSelected,\n dialogId,\n };\n}\n"]}
@@ -25,7 +25,7 @@ export default abstract class DropdownHostComponentWrapper extends ComponentWrap
25
25
  /**
26
26
  * Selects an option for the given index by triggering corresponding events.
27
27
  *
28
- * This utility does not open the dropdown of the given select and it will need to be called explicitly in your test.
28
+ * This utility does not open the dropdown of the given select. You will need to call `openDropdown` first in your test.
29
29
  * On selection the dropdown will close automatically.
30
30
  *
31
31
  * Example:
@@ -44,7 +44,7 @@ export default abstract class DropdownHostComponentWrapper extends ComponentWrap
44
44
  /**
45
45
  * Selects an option for the given value by triggering corresponding events.
46
46
  *
47
- * This utility does not open the dropdown of the given select and it will need to be called explicitly in your test.
47
+ * This utility does not open the dropdown of the given select. You will need to call `openDropdown` first in your test.
48
48
  * On selection the dropdown will close automatically.
49
49
  *
50
50
  * Example:
@@ -60,6 +60,23 @@ export default abstract class DropdownHostComponentWrapper extends ComponentWrap
60
60
  selectOptionByValue(value: string, options?: {
61
61
  expandToViewport: boolean;
62
62
  }): void;
63
+ /**
64
+ * Selects all options by triggering corresponding events on the element that selects or deselects all options in Multiselect when using the `enableSelectAll` flag.
65
+ *
66
+ * This utility does not open the dropdown of the given select. You will need to call `openDropdown` first in your test.
67
+ *
68
+ * Example:
69
+ * ```
70
+ * wrapper.openDropdown();
71
+ * wrapper.clickSelectAll();
72
+ * ```
73
+ *
74
+ * @param options
75
+ * * expandToViewport (boolean) - Use this when the component under test is rendered with an `expandToViewport` flag.
76
+ */
77
+ clickSelectAll(options?: {
78
+ expandToViewport: boolean;
79
+ }): void;
63
80
  }
64
81
  export declare class DropdownContentWrapper extends ComponentWrapper {
65
82
  findDisabledOptions(): Array<OptionWrapper>;
@@ -102,6 +119,7 @@ export declare class DropdownContentWrapper extends ComponentWrapper {
102
119
  * Returns all option groups in the dropdown.
103
120
  */
104
121
  findGroups(): Array<ElementWrapper>;
122
+ findSelectAll(): ElementWrapper | null;
105
123
  }
106
124
  export declare class PortalDropdownContentWrapper extends DropdownContentWrapper {
107
125
  findOpenDropdown(): ElementWrapper | null;
@@ -63,7 +63,7 @@ class DropdownHostComponentWrapper extends dom_1.ComponentWrapper {
63
63
  /**
64
64
  * Selects an option for the given index by triggering corresponding events.
65
65
  *
66
- * This utility does not open the dropdown of the given select and it will need to be called explicitly in your test.
66
+ * This utility does not open the dropdown of the given select. You will need to call `openDropdown` first in your test.
67
67
  * On selection the dropdown will close automatically.
68
68
  *
69
69
  * Example:
@@ -92,7 +92,7 @@ class DropdownHostComponentWrapper extends dom_1.ComponentWrapper {
92
92
  /**
93
93
  * Selects an option for the given value by triggering corresponding events.
94
94
  *
95
- * This utility does not open the dropdown of the given select and it will need to be called explicitly in your test.
95
+ * This utility does not open the dropdown of the given select. You will need to call `openDropdown` first in your test.
96
96
  * On selection the dropdown will close automatically.
97
97
  *
98
98
  * Example:
@@ -115,6 +115,28 @@ class DropdownHostComponentWrapper extends dom_1.ComponentWrapper {
115
115
  option.fireEvent(new MouseEvent('mouseup', { bubbles: true }));
116
116
  });
117
117
  }
118
+ /**
119
+ * Selects all options by triggering corresponding events on the element that selects or deselects all options in Multiselect when using the `enableSelectAll` flag.
120
+ *
121
+ * This utility does not open the dropdown of the given select. You will need to call `openDropdown` first in your test.
122
+ *
123
+ * Example:
124
+ * ```
125
+ * wrapper.openDropdown();
126
+ * wrapper.clickSelectAll();
127
+ * ```
128
+ *
129
+ * @param options
130
+ * * expandToViewport (boolean) - Use this when the component under test is rendered with an `expandToViewport` flag.
131
+ */
132
+ clickSelectAll(options = { expandToViewport: false }) {
133
+ this.assertOpenDropdown(options);
134
+ const selectAll = this.findDropdown().findSelectAll();
135
+ if (!selectAll) {
136
+ throw new Error('Can\'t select all options, because there is no "select all" option. Make sure that this Multiselect has the `enableSelectAll` property set to true.');
137
+ }
138
+ selectAll.fireEvent(new MouseEvent('mouseup', { bubbles: true }));
139
+ }
118
140
  }
119
141
  __decorate([
120
142
  dom_1.usesDom
@@ -128,6 +150,9 @@ __decorate([
128
150
  __decorate([
129
151
  dom_1.usesDom
130
152
  ], DropdownHostComponentWrapper.prototype, "selectOptionByValue", null);
153
+ __decorate([
154
+ dom_1.usesDom
155
+ ], DropdownHostComponentWrapper.prototype, "clickSelectAll", null);
131
156
  exports.default = DropdownHostComponentWrapper;
132
157
  class DropdownContentWrapper extends dom_1.ComponentWrapper {
133
158
  findDisabledOptions() {
@@ -200,6 +225,12 @@ class DropdownContentWrapper extends dom_1.ComponentWrapper {
200
225
  findGroups() {
201
226
  return this.findAll(`.${styles_selectors_js_4.default['selectable-item']}[data-group-index]:not([data-test-index])`);
202
227
  }
228
+ /*
229
+ * Returns the element that selects or deselects all options in Multiselect when using the `enableSelectAll` flag.
230
+ */
231
+ findSelectAll() {
232
+ return this.find(`.${styles_selectors_js_4.default['select-all']}`);
233
+ }
203
234
  }
204
235
  exports.DropdownContentWrapper = DropdownContentWrapper;
205
236
  class PortalDropdownContentWrapper extends DropdownContentWrapper {
@@ -1 +1 @@
1
- {"version":3,"file":"dropdown-host.js","sourceRoot":"","sources":["../../../../../src/test-utils/dom/internal/dropdown-host.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dropdown-host.js","sourceRoot":"","sources":["../../../../../src/test-utils/dom/internal/dropdown-host.ts"],"names":[],"mappings":"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"}
@@ -57,6 +57,7 @@ export declare class DropdownContentWrapper extends ComponentWrapper {
57
57
  * Returns all option groups in the dropdown.
58
58
  */
59
59
  findGroups(): import("@cloudscape-design/test-utils-core/selectors").MultiElementWrapper<ElementWrapper>;
60
+ findSelectAll(): ElementWrapper;
60
61
  }
61
62
  export declare class PortalDropdownContentWrapper extends DropdownContentWrapper {
62
63
  findOpenDropdown(): DropdownWrapper;
@@ -108,6 +108,12 @@ class DropdownContentWrapper extends selectors_1.ComponentWrapper {
108
108
  findGroups() {
109
109
  return this.findAll(`.${styles_selectors_js_4.default['selectable-item']}[data-group-index]:not([data-test-index])`);
110
110
  }
111
+ /*
112
+ * Returns the element that selects or deselects all options in Multiselect when using the `enableSelectAll` flag.
113
+ */
114
+ findSelectAll() {
115
+ return this.find(`.${styles_selectors_js_4.default['select-all']}`);
116
+ }
111
117
  }
112
118
  exports.DropdownContentWrapper = DropdownContentWrapper;
113
119
  class PortalDropdownContentWrapper extends DropdownContentWrapper {
@@ -1 +1 @@
1
- {"version":3,"file":"dropdown-host.js","sourceRoot":"","sources":["../../../../../src/test-utils/selectors/internal/dropdown-host.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dropdown-host.js","sourceRoot":"","sources":["../../../../../src/test-utils/selectors/internal/dropdown-host.ts"],"names":[],"mappings":"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"}