@deephaven/components 1.22.1-alpha-pivot-builder.0 → 1.22.2-alpha-pivot-builder.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (241) hide show
  1. package/dist/AutoCompleteInput.js +41 -79
  2. package/dist/AutoCompleteInput.js.map +1 -1
  3. package/dist/AutoResizeTextarea.js +29 -13
  4. package/dist/AutoResizeTextarea.js.map +1 -1
  5. package/dist/BasicModal.js +17 -15
  6. package/dist/BasicModal.js.map +1 -1
  7. package/dist/BulkActionBar.js +3 -5
  8. package/dist/BulkActionBar.js.map +1 -1
  9. package/dist/Button.js +24 -25
  10. package/dist/Button.js.map +1 -1
  11. package/dist/CardFlip.js +4 -6
  12. package/dist/CardFlip.js.map +1 -1
  13. package/dist/Checkbox.js +22 -13
  14. package/dist/Checkbox.js.map +1 -1
  15. package/dist/Collapse.js +6 -9
  16. package/dist/Collapse.js.map +1 -1
  17. package/dist/CopyButton.js +14 -6
  18. package/dist/CopyButton.js.map +1 -1
  19. package/dist/CustomTimeSelect.js +49 -88
  20. package/dist/CustomTimeSelect.js.map +1 -1
  21. package/dist/DateInput.js +25 -10
  22. package/dist/DateInput.js.map +1 -1
  23. package/dist/DateInputUtils.js +1 -3
  24. package/dist/DateInputUtils.js.map +1 -1
  25. package/dist/DateTimeInput.js +28 -12
  26. package/dist/DateTimeInput.js.map +1 -1
  27. package/dist/DebouncedSearchInput.js +10 -19
  28. package/dist/DebouncedSearchInput.js.map +1 -1
  29. package/dist/DragUtils.js +15 -6
  30. package/dist/DragUtils.js.map +1 -1
  31. package/dist/DraggableItemList.js +42 -57
  32. package/dist/DraggableItemList.js.map +1 -1
  33. package/dist/EditableItemList.js +28 -13
  34. package/dist/EditableItemList.js.map +1 -1
  35. package/dist/ErrorBoundary.js +6 -11
  36. package/dist/ErrorBoundary.js.map +1 -1
  37. package/dist/ErrorView.js +20 -8
  38. package/dist/ErrorView.js.map +1 -1
  39. package/dist/HierarchicalCheckboxMenu.js +30 -28
  40. package/dist/HierarchicalCheckboxMenu.js.map +1 -1
  41. package/dist/ItemList.js +96 -168
  42. package/dist/ItemList.js.map +1 -1
  43. package/dist/ItemListItem.js +46 -60
  44. package/dist/ItemListItem.js.map +1 -1
  45. package/dist/LoadingOverlay.js +13 -9
  46. package/dist/LoadingOverlay.js.map +1 -1
  47. package/dist/LoadingSpinner.js +3 -4
  48. package/dist/LoadingSpinner.js.map +1 -1
  49. package/dist/MaskedInput.js +44 -41
  50. package/dist/MaskedInput.js.map +1 -1
  51. package/dist/MaskedInputUtils.js +1 -3
  52. package/dist/MaskedInputUtils.js.map +1 -1
  53. package/dist/Option.js +1 -3
  54. package/dist/Option.js.map +1 -1
  55. package/dist/RadioGroup.js +17 -9
  56. package/dist/RadioGroup.js.map +1 -1
  57. package/dist/RadioItem.js +25 -14
  58. package/dist/RadioItem.js.map +1 -1
  59. package/dist/RandomAreaPlotAnimation.js +17 -13
  60. package/dist/RandomAreaPlotAnimation.js.map +1 -1
  61. package/dist/SearchInput.js +13 -14
  62. package/dist/SearchInput.js.map +1 -1
  63. package/dist/SearchableCombobox.js +3 -5
  64. package/dist/SearchableCombobox.js.map +1 -1
  65. package/dist/Select.js +5 -7
  66. package/dist/Select.js.map +1 -1
  67. package/dist/SelectValueList.js +21 -30
  68. package/dist/SelectValueList.js.map +1 -1
  69. package/dist/SocketedButton.js +18 -17
  70. package/dist/SocketedButton.js.map +1 -1
  71. package/dist/SplitButtonGroup.js +4 -6
  72. package/dist/SplitButtonGroup.js.map +1 -1
  73. package/dist/TableViewEmptyState.js +14 -6
  74. package/dist/TableViewEmptyState.js.map +1 -1
  75. package/dist/TextWithTooltip.js +3 -4
  76. package/dist/TextWithTooltip.js.map +1 -1
  77. package/dist/TimeInput.js +29 -12
  78. package/dist/TimeInput.js.map +1 -1
  79. package/dist/TimeSlider.js +46 -38
  80. package/dist/TimeSlider.js.map +1 -1
  81. package/dist/ToastNotification.js +9 -10
  82. package/dist/ToastNotification.js.map +1 -1
  83. package/dist/UISwitch.js +8 -9
  84. package/dist/UISwitch.js.map +1 -1
  85. package/dist/actions/ConfirmActionButton.js +7 -9
  86. package/dist/actions/ConfirmActionButton.js.map +1 -1
  87. package/dist/actions/IconActionButton.js +3 -5
  88. package/dist/actions/IconActionButton.js.map +1 -1
  89. package/dist/context-actions/ContextActionUtils.js +1 -3
  90. package/dist/context-actions/ContextActionUtils.js.map +1 -1
  91. package/dist/context-actions/ContextActions.js +8 -18
  92. package/dist/context-actions/ContextActions.js.map +1 -1
  93. package/dist/context-actions/ContextMenu.js +53 -89
  94. package/dist/context-actions/ContextMenu.js.map +1 -1
  95. package/dist/context-actions/ContextMenuItem.js +11 -11
  96. package/dist/context-actions/ContextMenuItem.js.map +1 -1
  97. package/dist/context-actions/ContextMenuRoot.js +6 -11
  98. package/dist/context-actions/ContextMenuRoot.js.map +1 -1
  99. package/dist/context-actions/GlobalContextAction.js +2 -6
  100. package/dist/context-actions/GlobalContextAction.js.map +1 -1
  101. package/dist/context-actions/GlobalContextActions.js +4 -7
  102. package/dist/context-actions/GlobalContextActions.js.map +1 -1
  103. package/dist/dialogs/ActionButtonDialogTrigger.js +7 -9
  104. package/dist/dialogs/ActionButtonDialogTrigger.js.map +1 -1
  105. package/dist/dialogs/ConfirmationDialog.js +8 -11
  106. package/dist/dialogs/ConfirmationDialog.js.map +1 -1
  107. package/dist/menu-actions/DropdownMenu.js +12 -22
  108. package/dist/menu-actions/DropdownMenu.js.map +1 -1
  109. package/dist/menu-actions/Menu.js +19 -45
  110. package/dist/menu-actions/Menu.js.map +1 -1
  111. package/dist/modal/DebouncedModal.js +8 -9
  112. package/dist/modal/DebouncedModal.js.map +1 -1
  113. package/dist/modal/InfoModal.js +6 -7
  114. package/dist/modal/InfoModal.js.map +1 -1
  115. package/dist/modal/Modal.js +27 -15
  116. package/dist/modal/Modal.js.map +1 -1
  117. package/dist/modal/ModalBody.js +4 -6
  118. package/dist/modal/ModalBody.js.map +1 -1
  119. package/dist/modal/ModalFooter.js +3 -5
  120. package/dist/modal/ModalFooter.js.map +1 -1
  121. package/dist/modal/ModalHeader.js +7 -8
  122. package/dist/modal/ModalHeader.js.map +1 -1
  123. package/dist/navigation/DashboardList.js +17 -6
  124. package/dist/navigation/DashboardList.js.map +1 -1
  125. package/dist/navigation/Menu.js +4 -5
  126. package/dist/navigation/Menu.js.map +1 -1
  127. package/dist/navigation/MenuItem.js +7 -10
  128. package/dist/navigation/MenuItem.js.map +1 -1
  129. package/dist/navigation/NavTab.js +14 -17
  130. package/dist/navigation/NavTab.js.map +1 -1
  131. package/dist/navigation/NavTabList.js +39 -33
  132. package/dist/navigation/NavTabList.js.map +1 -1
  133. package/dist/navigation/Page.js +5 -7
  134. package/dist/navigation/Page.js.map +1 -1
  135. package/dist/navigation/Stack.js +20 -7
  136. package/dist/navigation/Stack.js.map +1 -1
  137. package/dist/popper/Popper.js +30 -57
  138. package/dist/popper/Popper.js.map +1 -1
  139. package/dist/popper/Tooltip.js +24 -54
  140. package/dist/popper/Tooltip.js.map +1 -1
  141. package/dist/shortcuts/Shortcut.js +10 -15
  142. package/dist/shortcuts/Shortcut.js.map +1 -1
  143. package/dist/shortcuts/ShortcutRegistry.js +1 -3
  144. package/dist/shortcuts/ShortcutRegistry.js.map +1 -1
  145. package/dist/spectrum/ActionGroup.js +7 -9
  146. package/dist/spectrum/ActionGroup.js.map +1 -1
  147. package/dist/spectrum/ActionMenu.js +3 -5
  148. package/dist/spectrum/ActionMenu.js.map +1 -1
  149. package/dist/spectrum/CheckboxGroup.js +1 -3
  150. package/dist/spectrum/CheckboxGroup.js.map +1 -1
  151. package/dist/spectrum/Heading.js +2 -4
  152. package/dist/spectrum/Heading.js.map +1 -1
  153. package/dist/spectrum/ItemContent.js +16 -10
  154. package/dist/spectrum/ItemContent.js.map +1 -1
  155. package/dist/spectrum/ItemTooltip.js +2 -4
  156. package/dist/spectrum/ItemTooltip.js.map +1 -1
  157. package/dist/spectrum/TabPanels.js +3 -4
  158. package/dist/spectrum/TabPanels.js.map +1 -1
  159. package/dist/spectrum/Text.js +2 -4
  160. package/dist/spectrum/Text.js.map +1 -1
  161. package/dist/spectrum/View.js +11 -14
  162. package/dist/spectrum/View.js.map +1 -1
  163. package/dist/spectrum/comboBox/ComboBox.js +5 -9
  164. package/dist/spectrum/comboBox/ComboBox.js.map +1 -1
  165. package/dist/spectrum/comboBox/ComboBoxNormalized.js +3 -7
  166. package/dist/spectrum/comboBox/ComboBoxNormalized.js.map +1 -1
  167. package/dist/spectrum/listView/ListView.js +11 -11
  168. package/dist/spectrum/listView/ListView.js.map +1 -1
  169. package/dist/spectrum/listView/ListViewNormalized.js +22 -24
  170. package/dist/spectrum/listView/ListViewNormalized.js.map +1 -1
  171. package/dist/spectrum/listView/ListViewWrapper.js +11 -15
  172. package/dist/spectrum/listView/ListViewWrapper.js.map +1 -1
  173. package/dist/spectrum/multiSelect/MultiSelect.js +113 -100
  174. package/dist/spectrum/multiSelect/MultiSelect.js.map +1 -1
  175. package/dist/spectrum/multiSelect/MultiSelectListBox.js +9 -11
  176. package/dist/spectrum/multiSelect/MultiSelectListBox.js.map +1 -1
  177. package/dist/spectrum/multiSelect/MultiSelectNormalized.js +3 -7
  178. package/dist/spectrum/multiSelect/MultiSelectNormalized.js.map +1 -1
  179. package/dist/spectrum/multiSelect/MultiSelectTag.js +5 -7
  180. package/dist/spectrum/multiSelect/MultiSelectTag.js.map +1 -1
  181. package/dist/spectrum/multiSelect/useMultiSelectFilter.js +20 -14
  182. package/dist/spectrum/multiSelect/useMultiSelectFilter.js.map +1 -1
  183. package/dist/spectrum/multiSelect/useMultiSelectKeyboard.js +27 -20
  184. package/dist/spectrum/multiSelect/useMultiSelectKeyboard.js.map +1 -1
  185. package/dist/spectrum/multiSelect/useMultiSelectLoadingSpinner.js +14 -7
  186. package/dist/spectrum/multiSelect/useMultiSelectLoadingSpinner.js.map +1 -1
  187. package/dist/spectrum/multiSelect/useMultiSelectNormalizedProps.js +20 -22
  188. package/dist/spectrum/multiSelect/useMultiSelectNormalizedProps.js.map +1 -1
  189. package/dist/spectrum/multiSelect/useMultiSelectScrollListener.js +13 -6
  190. package/dist/spectrum/multiSelect/useMultiSelectScrollListener.js.map +1 -1
  191. package/dist/spectrum/multiSelect/useMultiSelectState.js +16 -9
  192. package/dist/spectrum/multiSelect/useMultiSelectState.js.map +1 -1
  193. package/dist/spectrum/picker/Picker.js +5 -9
  194. package/dist/spectrum/picker/Picker.js.map +1 -1
  195. package/dist/spectrum/picker/PickerNormalized.js +2 -6
  196. package/dist/spectrum/picker/PickerNormalized.js.map +1 -1
  197. package/dist/spectrum/picker/usePickerItemScale.js +2 -3
  198. package/dist/spectrum/picker/usePickerItemScale.js.map +1 -1
  199. package/dist/spectrum/picker/usePickerNormalizedProps.js +31 -33
  200. package/dist/spectrum/picker/usePickerNormalizedProps.js.map +1 -1
  201. package/dist/spectrum/picker/usePickerProps.js +26 -29
  202. package/dist/spectrum/picker/usePickerProps.js.map +1 -1
  203. package/dist/spectrum/picker/usePickerScrollOnOpen.js +6 -9
  204. package/dist/spectrum/picker/usePickerScrollOnOpen.js.map +1 -1
  205. package/dist/spectrum/utils/itemUtils.js +4 -6
  206. package/dist/spectrum/utils/itemUtils.js.map +1 -1
  207. package/dist/spectrum/utils/propsUtils.js +35 -37
  208. package/dist/spectrum/utils/propsUtils.js.map +1 -1
  209. package/dist/spectrum/utils/themeUtils.js +5 -7
  210. package/dist/spectrum/utils/themeUtils.js.map +1 -1
  211. package/dist/spectrum/utils/useOnChangeTrackUncontrolled.js +13 -6
  212. package/dist/spectrum/utils/useOnChangeTrackUncontrolled.js.map +1 -1
  213. package/dist/spectrum/utils/useRenderNormalizedItem.js +5 -7
  214. package/dist/spectrum/utils/useRenderNormalizedItem.js.map +1 -1
  215. package/dist/spectrum/utils/useStaticItemInitialScrollPosition.js +4 -6
  216. package/dist/spectrum/utils/useStaticItemInitialScrollPosition.js.map +1 -1
  217. package/dist/spectrum/utils/useStringifiedMultiSelection.js +5 -7
  218. package/dist/spectrum/utils/useStringifiedMultiSelection.js.map +1 -1
  219. package/dist/spectrum/utils/useStringifiedSelection.js +5 -7
  220. package/dist/spectrum/utils/useStringifiedSelection.js.map +1 -1
  221. package/dist/theme/FontBootstrap.js +13 -5
  222. package/dist/theme/FontBootstrap.js.map +1 -1
  223. package/dist/theme/FontsLoaded.js +1 -3
  224. package/dist/theme/FontsLoaded.js.map +1 -1
  225. package/dist/theme/Logo.js +2 -4
  226. package/dist/theme/Logo.js.map +1 -1
  227. package/dist/theme/SpectrumThemeProvider.js +17 -9
  228. package/dist/theme/SpectrumThemeProvider.js.map +1 -1
  229. package/dist/theme/ThemePicker.js +4 -5
  230. package/dist/theme/ThemePicker.js.map +1 -1
  231. package/dist/theme/ThemeProvider.js +20 -8
  232. package/dist/theme/ThemeProvider.js.map +1 -1
  233. package/dist/theme/ThemeUtils.js +35 -19
  234. package/dist/theme/ThemeUtils.js.map +1 -1
  235. package/dist/theme/useExternalTheme.js +16 -7
  236. package/dist/theme/useExternalTheme.js.map +1 -1
  237. package/dist/transitions/FadeTransition.js +5 -6
  238. package/dist/transitions/FadeTransition.js.map +1 -1
  239. package/dist/transitions/SlideTransition.js +6 -7
  240. package/dist/transitions/SlideTransition.js.map +1 -1
  241. package/package.json +8 -8
@@ -18,16 +18,15 @@ import { getItemKey, isNormalizedSection, normalizeTooltipOptions, useRenderNorm
18
18
  /** Props returned from `useMultiSelectNormalizedProps` hook. */
19
19
  import { jsx as _jsx } from "react/jsx-runtime";
20
20
  export function useMultiSelectNormalizedProps(_ref) {
21
- var {
22
- normalizedItems,
23
- showItemIcons,
24
- tooltip = true,
25
- selectedKeys,
26
- defaultSelectedKeys,
27
- disabledKeys,
28
- onChange,
29
- onSelectionChange
30
- } = _ref,
21
+ var normalizedItems = _ref.normalizedItems,
22
+ showItemIcons = _ref.showItemIcons,
23
+ _ref$tooltip = _ref.tooltip,
24
+ tooltip = _ref$tooltip === void 0 ? true : _ref$tooltip,
25
+ selectedKeys = _ref.selectedKeys,
26
+ defaultSelectedKeys = _ref.defaultSelectedKeys,
27
+ disabledKeys = _ref.disabledKeys,
28
+ onChange = _ref.onChange,
29
+ onSelectionChange = _ref.onSelectionChange,
31
30
  props = _objectWithoutProperties(_ref, _excluded);
32
31
  var tooltipOptions = useMemo(() => normalizeTooltipOptions(tooltip), [tooltip]);
33
32
  var renderNormalizedItem = useRenderNormalizedItem({
@@ -47,18 +46,17 @@ export function useMultiSelectNormalizedProps(_ref) {
47
46
  var _item$item$items, _item$item;
48
47
  return isNormalizedSection(item) ? (_item$item$items = (_item$item = item.item) === null || _item$item === void 0 ? void 0 : _item$item.items) !== null && _item$item$items !== void 0 ? _item$item$items : [] : [item];
49
48
  }), [normalizedItems]);
50
- var {
51
- selectedStringKeys,
52
- defaultSelectedStringKeys,
53
- disabledStringKeys,
54
- onStringSelectionChange
55
- } = useStringifiedMultiSelection({
56
- normalizedItems: flatItems,
57
- selectedKeys,
58
- defaultSelectedKeys,
59
- disabledKeys,
60
- onChange: onChange !== null && onChange !== void 0 ? onChange : onSelectionChange
61
- });
49
+ var _useStringifiedMultiS = useStringifiedMultiSelection({
50
+ normalizedItems: flatItems,
51
+ selectedKeys,
52
+ defaultSelectedKeys,
53
+ disabledKeys,
54
+ onChange: onChange !== null && onChange !== void 0 ? onChange : onSelectionChange
55
+ }),
56
+ selectedStringKeys = _useStringifiedMultiS.selectedStringKeys,
57
+ defaultSelectedStringKeys = _useStringifiedMultiS.defaultSelectedStringKeys,
58
+ disabledStringKeys = _useStringifiedMultiS.disabledStringKeys,
59
+ onStringSelectionChange = _useStringifiedMultiS.onStringSelectionChange;
62
60
  var children = useMemo(() => normalizedItems.map(itemOrSection => {
63
61
  if (isNormalizedSection(itemOrSection)) {
64
62
  var _itemOrSection$item, _itemOrSection$item2;
@@ -1 +1 @@
1
- {"version":3,"file":"useMultiSelectNormalizedProps.js","names":["useMemo","Section","getItemKey","isNormalizedSection","normalizeTooltipOptions","useRenderNormalizedItem","useStringifiedMultiSelection","jsx","_jsx","useMultiSelectNormalizedProps","_ref","normalizedItems","showItemIcons","tooltip","selectedKeys","defaultSelectedKeys","disabledKeys","onChange","onSelectionChange","props","_objectWithoutProperties","_excluded","tooltipOptions","renderNormalizedItem","itemIconSlot","showItemDescriptions","forceRerenderKey","concat","placement","flatItems","flatMap","item","_item$item$items","_item$item","items","selectedStringKeys","defaultSelectedStringKeys","disabledStringKeys","onStringSelectionChange","children","map","itemOrSection","_itemOrSection$item","_itemOrSection$item2","title","_objectSpread"],"sources":["../../../src/spectrum/multiSelect/useMultiSelectNormalizedProps.tsx"],"sourcesContent":["import { useMemo } from 'react';\nimport { Section } from '@adobe/react-spectrum';\nimport {\n getItemKey,\n isNormalizedSection,\n normalizeTooltipOptions,\n useRenderNormalizedItem,\n useStringifiedMultiSelection,\n} from '../utils';\nimport {\n type MultiSelectNormalizedProps,\n type MultiSelectProps,\n} from './MultiSelectProps';\n\n/** Props that are derived by `useMultiSelectNormalizedProps` */\nexport type UseMultiSelectNormalizedDerivedProps = {\n children: JSX.Element[];\n forceRerenderKey: string;\n selectedKeys: MultiSelectProps['selectedKeys'];\n defaultSelectedKeys: MultiSelectProps['defaultSelectedKeys'];\n disabledKeys: MultiSelectProps['disabledKeys'];\n onChange: MultiSelectProps['onChange'];\n};\n\n/**\n * Props that are passed through untouched. Should exclude all of the\n * destructured props passed into `useMultiSelectNormalizedProps` that are not\n * in the spread `...props`.\n */\nexport type UseMultiSelectNormalizedPassthroughProps = Omit<\n MultiSelectNormalizedProps,\n | 'normalizedItems'\n | 'showItemIcons'\n | 'tooltip'\n | 'selectedKeys'\n | 'defaultSelectedKeys'\n | 'disabledKeys'\n | 'onChange'\n | 'onSelectionChange'\n>;\n\n/** Props returned from `useMultiSelectNormalizedProps` hook. */\nexport type UseMultiSelectNormalizedResult =\n UseMultiSelectNormalizedDerivedProps &\n UseMultiSelectNormalizedPassthroughProps;\n\nexport function useMultiSelectNormalizedProps({\n normalizedItems,\n showItemIcons,\n tooltip = true,\n selectedKeys,\n defaultSelectedKeys,\n disabledKeys,\n onChange,\n onSelectionChange,\n ...props\n}: MultiSelectNormalizedProps): UseMultiSelectNormalizedResult {\n const tooltipOptions = useMemo(\n () => normalizeTooltipOptions(tooltip),\n [tooltip]\n );\n\n const renderNormalizedItem = useRenderNormalizedItem({\n itemIconSlot: 'icon',\n showItemDescriptions: false,\n showItemIcons,\n tooltipOptions,\n });\n\n // Spectrum doesn't re-render if only the render function identity changes,\n // so we expose a key that the parent can use to force a re-render.\n const forceRerenderKey = `${showItemIcons}-${tooltipOptions?.placement}`;\n\n // Stringification operates on the flat item list so selection works for\n // items inside sections too.\n const flatItems = useMemo(\n () =>\n normalizedItems.flatMap(item =>\n isNormalizedSection(item) ? item.item?.items ?? [] : [item]\n ),\n [normalizedItems]\n );\n\n const {\n selectedStringKeys,\n defaultSelectedStringKeys,\n disabledStringKeys,\n onStringSelectionChange,\n } = useStringifiedMultiSelection({\n normalizedItems: flatItems,\n selectedKeys,\n defaultSelectedKeys,\n disabledKeys,\n onChange: onChange ?? onSelectionChange,\n });\n\n const children = useMemo(\n () =>\n normalizedItems.map(itemOrSection => {\n if (isNormalizedSection(itemOrSection)) {\n return (\n <Section\n key={getItemKey(itemOrSection)}\n title={itemOrSection.item?.title}\n items={itemOrSection.item?.items}\n >\n {renderNormalizedItem}\n </Section>\n );\n }\n return renderNormalizedItem(itemOrSection);\n }),\n [normalizedItems, renderNormalizedItem]\n );\n\n return {\n ...props,\n children,\n forceRerenderKey,\n selectedKeys: selectedStringKeys as MultiSelectProps['selectedKeys'],\n defaultSelectedKeys:\n defaultSelectedStringKeys as MultiSelectProps['defaultSelectedKeys'],\n disabledKeys: disabledStringKeys as MultiSelectProps['disabledKeys'],\n onChange: onStringSelectionChange as MultiSelectProps['onChange'],\n };\n}\n\nexport default useMultiSelectNormalizedProps;\n"],"mappings":";;;;;;;;AAAA,SAASA,OAAO,QAAQ,OAAO;AAC/B,SAASC,OAAO,QAAQ,uBAAuB;AAAC,SAE9CC,UAAU,EACVC,mBAAmB,EACnBC,uBAAuB,EACvBC,uBAAuB,EACvBC,4BAA4B;AAO9B;AAUA;AACA;AACA;AACA;AACA;AAaA;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAKA,OAAO,SAASC,6BAA6BA,CAAAC,IAAA,EAUkB;EAAA,IAVjB;MAC5CC,eAAe;MACfC,aAAa;MACbC,OAAO,GAAG,IAAI;MACdC,YAAY;MACZC,mBAAmB;MACnBC,YAAY;MACZC,QAAQ;MACRC;IAE0B,CAAC,GAAAR,IAAA;IADxBS,KAAK,GAAAC,wBAAA,CAAAV,IAAA,EAAAW,SAAA;EAER,IAAMC,cAAc,GAAGtB,OAAO,CAC5B,MAAMI,uBAAuB,CAACS,OAAO,CAAC,EACtC,CAACA,OAAO,CACV,CAAC;EAED,IAAMU,oBAAoB,GAAGlB,uBAAuB,CAAC;IACnDmB,YAAY,EAAE,MAAM;IACpBC,oBAAoB,EAAE,KAAK;IAC3Bb,aAAa;IACbU;EACF,CAAC,CAAC;;EAEF;EACA;EACA,IAAMI,gBAAgB,MAAAC,MAAA,CAAMf,aAAa,OAAAe,MAAA,CAAIL,cAAc,aAAdA,cAAc,uBAAdA,cAAc,CAAEM,SAAS,CAAE;;EAExE;EACA;EACA,IAAMC,SAAS,GAAG7B,OAAO,CACvB,MACEW,eAAe,CAACmB,OAAO,CAACC,IAAI;IAAA,IAAAC,gBAAA,EAAAC,UAAA;IAAA,OAC1B9B,mBAAmB,CAAC4B,IAAI,CAAC,IAAAC,gBAAA,IAAAC,UAAA,GAAGF,IAAI,CAACA,IAAI,cAAAE,UAAA,uBAATA,UAAA,CAAWC,KAAK,cAAAF,gBAAA,cAAAA,gBAAA,GAAI,EAAE,GAAG,CAACD,IAAI,CAAC;EAAA,CAC7D,CAAC,EACH,CAACpB,eAAe,CAClB,CAAC;EAED,IAAM;IACJwB,kBAAkB;IAClBC,yBAAyB;IACzBC,kBAAkB;IAClBC;EACF,CAAC,GAAGhC,4BAA4B,CAAC;IAC/BK,eAAe,EAAEkB,SAAS;IAC1Bf,YAAY;IACZC,mBAAmB;IACnBC,YAAY;IACZC,QAAQ,EAAEA,QAAQ,aAARA,QAAQ,cAARA,QAAQ,GAAIC;EACxB,CAAC,CAAC;EAEF,IAAMqB,QAAQ,GAAGvC,OAAO,CACtB,MACEW,eAAe,CAAC6B,GAAG,CAACC,aAAa,IAAI;IACnC,IAAItC,mBAAmB,CAACsC,aAAa,CAAC,EAAE;MAAA,IAAAC,mBAAA,EAAAC,oBAAA;MACtC,oBACEnC,IAAA,CAACP,OAAO;QAEN2C,KAAK,GAAAF,mBAAA,GAAED,aAAa,CAACV,IAAI,cAAAW,mBAAA,uBAAlBA,mBAAA,CAAoBE,KAAM;QACjCV,KAAK,GAAAS,oBAAA,GAAEF,aAAa,CAACV,IAAI,cAAAY,oBAAA,uBAAlBA,oBAAA,CAAoBT,KAAM;QAAAK,QAAA,EAEhChB;MAAoB,GAJhBrB,UAAU,CAACuC,aAAa,CAKtB,CAAC;IAEd;IACA,OAAOlB,oBAAoB,CAACkB,aAAa,CAAC;EAC5C,CAAC,CAAC,EACJ,CAAC9B,eAAe,EAAEY,oBAAoB,CACxC,CAAC;EAED,OAAAsB,aAAA,CAAAA,aAAA,KACK1B,KAAK;IACRoB,QAAQ;IACRb,gBAAgB;IAChBZ,YAAY,EAAEqB,kBAAsD;IACpEpB,mBAAmB,EACjBqB,yBAAoE;IACtEpB,YAAY,EAAEqB,kBAAsD;IACpEpB,QAAQ,EAAEqB;EAAuD;AAErE;AAEA,eAAe7B,6BAA6B","ignoreList":[]}
1
+ {"version":3,"file":"useMultiSelectNormalizedProps.js","names":["useMemo","Section","getItemKey","isNormalizedSection","normalizeTooltipOptions","useRenderNormalizedItem","useStringifiedMultiSelection","jsx","_jsx","useMultiSelectNormalizedProps","_ref","normalizedItems","showItemIcons","_ref$tooltip","tooltip","selectedKeys","defaultSelectedKeys","disabledKeys","onChange","onSelectionChange","props","_objectWithoutProperties","_excluded","tooltipOptions","renderNormalizedItem","itemIconSlot","showItemDescriptions","forceRerenderKey","concat","placement","flatItems","flatMap","item","_item$item$items","_item$item","items","_useStringifiedMultiS","selectedStringKeys","defaultSelectedStringKeys","disabledStringKeys","onStringSelectionChange","children","map","itemOrSection","_itemOrSection$item","_itemOrSection$item2","title","_objectSpread"],"sources":["../../../src/spectrum/multiSelect/useMultiSelectNormalizedProps.tsx"],"sourcesContent":["import { useMemo } from 'react';\nimport { Section } from '@adobe/react-spectrum';\nimport {\n getItemKey,\n isNormalizedSection,\n normalizeTooltipOptions,\n useRenderNormalizedItem,\n useStringifiedMultiSelection,\n} from '../utils';\nimport {\n type MultiSelectNormalizedProps,\n type MultiSelectProps,\n} from './MultiSelectProps';\n\n/** Props that are derived by `useMultiSelectNormalizedProps` */\nexport type UseMultiSelectNormalizedDerivedProps = {\n children: JSX.Element[];\n forceRerenderKey: string;\n selectedKeys: MultiSelectProps['selectedKeys'];\n defaultSelectedKeys: MultiSelectProps['defaultSelectedKeys'];\n disabledKeys: MultiSelectProps['disabledKeys'];\n onChange: MultiSelectProps['onChange'];\n};\n\n/**\n * Props that are passed through untouched. Should exclude all of the\n * destructured props passed into `useMultiSelectNormalizedProps` that are not\n * in the spread `...props`.\n */\nexport type UseMultiSelectNormalizedPassthroughProps = Omit<\n MultiSelectNormalizedProps,\n | 'normalizedItems'\n | 'showItemIcons'\n | 'tooltip'\n | 'selectedKeys'\n | 'defaultSelectedKeys'\n | 'disabledKeys'\n | 'onChange'\n | 'onSelectionChange'\n>;\n\n/** Props returned from `useMultiSelectNormalizedProps` hook. */\nexport type UseMultiSelectNormalizedResult =\n UseMultiSelectNormalizedDerivedProps &\n UseMultiSelectNormalizedPassthroughProps;\n\nexport function useMultiSelectNormalizedProps({\n normalizedItems,\n showItemIcons,\n tooltip = true,\n selectedKeys,\n defaultSelectedKeys,\n disabledKeys,\n onChange,\n onSelectionChange,\n ...props\n}: MultiSelectNormalizedProps): UseMultiSelectNormalizedResult {\n const tooltipOptions = useMemo(\n () => normalizeTooltipOptions(tooltip),\n [tooltip]\n );\n\n const renderNormalizedItem = useRenderNormalizedItem({\n itemIconSlot: 'icon',\n showItemDescriptions: false,\n showItemIcons,\n tooltipOptions,\n });\n\n // Spectrum doesn't re-render if only the render function identity changes,\n // so we expose a key that the parent can use to force a re-render.\n const forceRerenderKey = `${showItemIcons}-${tooltipOptions?.placement}`;\n\n // Stringification operates on the flat item list so selection works for\n // items inside sections too.\n const flatItems = useMemo(\n () =>\n normalizedItems.flatMap(item =>\n isNormalizedSection(item) ? item.item?.items ?? [] : [item]\n ),\n [normalizedItems]\n );\n\n const {\n selectedStringKeys,\n defaultSelectedStringKeys,\n disabledStringKeys,\n onStringSelectionChange,\n } = useStringifiedMultiSelection({\n normalizedItems: flatItems,\n selectedKeys,\n defaultSelectedKeys,\n disabledKeys,\n onChange: onChange ?? onSelectionChange,\n });\n\n const children = useMemo(\n () =>\n normalizedItems.map(itemOrSection => {\n if (isNormalizedSection(itemOrSection)) {\n return (\n <Section\n key={getItemKey(itemOrSection)}\n title={itemOrSection.item?.title}\n items={itemOrSection.item?.items}\n >\n {renderNormalizedItem}\n </Section>\n );\n }\n return renderNormalizedItem(itemOrSection);\n }),\n [normalizedItems, renderNormalizedItem]\n );\n\n return {\n ...props,\n children,\n forceRerenderKey,\n selectedKeys: selectedStringKeys as MultiSelectProps['selectedKeys'],\n defaultSelectedKeys:\n defaultSelectedStringKeys as MultiSelectProps['defaultSelectedKeys'],\n disabledKeys: disabledStringKeys as MultiSelectProps['disabledKeys'],\n onChange: onStringSelectionChange as MultiSelectProps['onChange'],\n };\n}\n\nexport default useMultiSelectNormalizedProps;\n"],"mappings":"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","ignoreList":[]}
@@ -1,3 +1,9 @@
1
+ function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
2
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
3
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
4
+ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
5
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
6
+ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
1
7
  import { useEffect, useRef, useState } from 'react';
2
8
  /**
3
9
  * Resolves the scrollable element inside the popover (the listbox, or the
@@ -5,12 +11,13 @@ import { useEffect, useRef, useState } from 'react';
5
11
  * to it. The listener is detached when the popover closes.
6
12
  */
7
13
  export function useMultiSelectScrollListener(_ref) {
8
- var {
9
- containerRef,
10
- isOpen,
11
- onScroll
12
- } = _ref;
13
- var [scrollAreaEl, setScrollAreaEl] = useState(null);
14
+ var containerRef = _ref.containerRef,
15
+ isOpen = _ref.isOpen,
16
+ onScroll = _ref.onScroll;
17
+ var _useState = useState(null),
18
+ _useState2 = _slicedToArray(_useState, 2),
19
+ scrollAreaEl = _useState2[0],
20
+ setScrollAreaEl = _useState2[1];
14
21
 
15
22
  // Mirror onScroll into a ref so the listener is attached once per
16
23
  // scrollAreaEl lifetime, regardless of caller memoization.
@@ -1 +1 @@
1
- {"version":3,"file":"useMultiSelectScrollListener.js","names":["useEffect","useRef","useState","useMultiSelectScrollListener","_ref","containerRef","isOpen","onScroll","scrollAreaEl","setScrollAreaEl","onScrollRef","current","undefined","handle","window","requestAnimationFrame","container","listBox","querySelector","cancelAnimationFrame","handler","event","addEventListener","removeEventListener"],"sources":["../../../src/spectrum/multiSelect/useMultiSelectScrollListener.ts"],"sourcesContent":["import { type RefObject, useEffect, useRef, useState } from 'react';\n\nexport interface UseMultiSelectScrollListenerOptions {\n /** Ref to the DOM container that wraps the popover's `<ListBox>`. */\n containerRef: RefObject<HTMLElement | null>;\n /** Whether the popover is currently open. */\n isOpen: boolean;\n /** Scroll event listener attached to the inner scroll area. */\n onScroll: (event: Event) => void;\n}\n\n/**\n * Resolves the scrollable element inside the popover (the listbox, or the\n * container if the listbox isn't present) and attaches a scroll listener\n * to it. The listener is detached when the popover closes.\n */\nexport function useMultiSelectScrollListener({\n containerRef,\n isOpen,\n onScroll,\n}: UseMultiSelectScrollListenerOptions): void {\n const [scrollAreaEl, setScrollAreaEl] = useState<HTMLElement | null>(null);\n\n // Mirror onScroll into a ref so the listener is attached once per\n // scrollAreaEl lifetime, regardless of caller memoization.\n const onScrollRef = useRef(onScroll);\n onScrollRef.current = onScroll;\n\n useEffect(() => {\n if (!isOpen) {\n setScrollAreaEl(null);\n return undefined;\n }\n\n // The ListBox mounts asynchronously inside the popover, so defer one\n // animation frame to give Spectrum time to attach.\n const handle = window.requestAnimationFrame(() => {\n const container = containerRef.current;\n if (container == null) {\n return;\n }\n const listBox = container.querySelector<HTMLElement>('[role=\"listbox\"]');\n setScrollAreaEl(listBox ?? container);\n });\n\n return () => {\n window.cancelAnimationFrame(handle);\n };\n }, [isOpen, containerRef]);\n\n // Attach scroll listener when the scroll area becomes available.\n useEffect(() => {\n if (scrollAreaEl == null) {\n return undefined;\n }\n\n const handler = (event: Event): void => {\n onScrollRef.current(event);\n };\n\n scrollAreaEl.addEventListener('scroll', handler);\n\n return () => {\n scrollAreaEl.removeEventListener('scroll', handler);\n };\n }, [scrollAreaEl]);\n}\n\nexport default useMultiSelectScrollListener;\n"],"mappings":"AAAA,SAAyBA,SAAS,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,OAAO;AAWnE;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,4BAA4BA,CAAAC,IAAA,EAIE;EAAA,IAJD;IAC3CC,YAAY;IACZC,MAAM;IACNC;EACmC,CAAC,GAAAH,IAAA;EACpC,IAAM,CAACI,YAAY,EAAEC,eAAe,CAAC,GAAGP,QAAQ,CAAqB,IAAI,CAAC;;EAE1E;EACA;EACA,IAAMQ,WAAW,GAAGT,MAAM,CAACM,QAAQ,CAAC;EACpCG,WAAW,CAACC,OAAO,GAAGJ,QAAQ;EAE9BP,SAAS,CAAC,MAAM;IACd,IAAI,CAACM,MAAM,EAAE;MACXG,eAAe,CAAC,IAAI,CAAC;MACrB,OAAOG,SAAS;IAClB;;IAEA;IACA;IACA,IAAMC,MAAM,GAAGC,MAAM,CAACC,qBAAqB,CAAC,MAAM;MAChD,IAAMC,SAAS,GAAGX,YAAY,CAACM,OAAO;MACtC,IAAIK,SAAS,IAAI,IAAI,EAAE;QACrB;MACF;MACA,IAAMC,OAAO,GAAGD,SAAS,CAACE,aAAa,CAAc,kBAAkB,CAAC;MACxET,eAAe,CAACQ,OAAO,aAAPA,OAAO,cAAPA,OAAO,GAAID,SAAS,CAAC;IACvC,CAAC,CAAC;IAEF,OAAO,MAAM;MACXF,MAAM,CAACK,oBAAoB,CAACN,MAAM,CAAC;IACrC,CAAC;EACH,CAAC,EAAE,CAACP,MAAM,EAAED,YAAY,CAAC,CAAC;;EAE1B;EACAL,SAAS,CAAC,MAAM;IACd,IAAIQ,YAAY,IAAI,IAAI,EAAE;MACxB,OAAOI,SAAS;IAClB;IAEA,IAAMQ,OAAO,GAAIC,KAAY,IAAW;MACtCX,WAAW,CAACC,OAAO,CAACU,KAAK,CAAC;IAC5B,CAAC;IAEDb,YAAY,CAACc,gBAAgB,CAAC,QAAQ,EAAEF,OAAO,CAAC;IAEhD,OAAO,MAAM;MACXZ,YAAY,CAACe,mBAAmB,CAAC,QAAQ,EAAEH,OAAO,CAAC;IACrD,CAAC;EACH,CAAC,EAAE,CAACZ,YAAY,CAAC,CAAC;AACpB;AAEA,eAAeL,4BAA4B","ignoreList":[]}
1
+ {"version":3,"file":"useMultiSelectScrollListener.js","names":["useEffect","useRef","useState","useMultiSelectScrollListener","_ref","containerRef","isOpen","onScroll","_useState","_useState2","_slicedToArray","scrollAreaEl","setScrollAreaEl","onScrollRef","current","undefined","handle","window","requestAnimationFrame","container","listBox","querySelector","cancelAnimationFrame","handler","event","addEventListener","removeEventListener"],"sources":["../../../src/spectrum/multiSelect/useMultiSelectScrollListener.ts"],"sourcesContent":["import { type RefObject, useEffect, useRef, useState } from 'react';\n\nexport interface UseMultiSelectScrollListenerOptions {\n /** Ref to the DOM container that wraps the popover's `<ListBox>`. */\n containerRef: RefObject<HTMLElement | null>;\n /** Whether the popover is currently open. */\n isOpen: boolean;\n /** Scroll event listener attached to the inner scroll area. */\n onScroll: (event: Event) => void;\n}\n\n/**\n * Resolves the scrollable element inside the popover (the listbox, or the\n * container if the listbox isn't present) and attaches a scroll listener\n * to it. The listener is detached when the popover closes.\n */\nexport function useMultiSelectScrollListener({\n containerRef,\n isOpen,\n onScroll,\n}: UseMultiSelectScrollListenerOptions): void {\n const [scrollAreaEl, setScrollAreaEl] = useState<HTMLElement | null>(null);\n\n // Mirror onScroll into a ref so the listener is attached once per\n // scrollAreaEl lifetime, regardless of caller memoization.\n const onScrollRef = useRef(onScroll);\n onScrollRef.current = onScroll;\n\n useEffect(() => {\n if (!isOpen) {\n setScrollAreaEl(null);\n return undefined;\n }\n\n // The ListBox mounts asynchronously inside the popover, so defer one\n // animation frame to give Spectrum time to attach.\n const handle = window.requestAnimationFrame(() => {\n const container = containerRef.current;\n if (container == null) {\n return;\n }\n const listBox = container.querySelector<HTMLElement>('[role=\"listbox\"]');\n setScrollAreaEl(listBox ?? container);\n });\n\n return () => {\n window.cancelAnimationFrame(handle);\n };\n }, [isOpen, containerRef]);\n\n // Attach scroll listener when the scroll area becomes available.\n useEffect(() => {\n if (scrollAreaEl == null) {\n return undefined;\n }\n\n const handler = (event: Event): void => {\n onScrollRef.current(event);\n };\n\n scrollAreaEl.addEventListener('scroll', handler);\n\n return () => {\n scrollAreaEl.removeEventListener('scroll', handler);\n };\n }, [scrollAreaEl]);\n}\n\nexport default useMultiSelectScrollListener;\n"],"mappings":";;;;;;AAAA,SAAyBA,SAAS,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,OAAO;AAWnE;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,4BAA4BA,CAAAC,IAAA,EAIE;EAAA,IAH5CC,YAAY,GAAAD,IAAA,CAAZC,YAAY;IACZC,MAAM,GAAAF,IAAA,CAANE,MAAM;IACNC,QAAQ,GAAAH,IAAA,CAARG,QAAQ;EAER,IAAAC,SAAA,GAAwCN,QAAQ,CAAqB,IAAI,CAAC;IAAAO,UAAA,GAAAC,cAAA,CAAAF,SAAA;IAAnEG,YAAY,GAAAF,UAAA;IAAEG,eAAe,GAAAH,UAAA;;EAEpC;EACA;EACA,IAAMI,WAAW,GAAGZ,MAAM,CAACM,QAAQ,CAAC;EACpCM,WAAW,CAACC,OAAO,GAAGP,QAAQ;EAE9BP,SAAS,CAAC,MAAM;IACd,IAAI,CAACM,MAAM,EAAE;MACXM,eAAe,CAAC,IAAI,CAAC;MACrB,OAAOG,SAAS;IAClB;;IAEA;IACA;IACA,IAAMC,MAAM,GAAGC,MAAM,CAACC,qBAAqB,CAAC,MAAM;MAChD,IAAMC,SAAS,GAAGd,YAAY,CAACS,OAAO;MACtC,IAAIK,SAAS,IAAI,IAAI,EAAE;QACrB;MACF;MACA,IAAMC,OAAO,GAAGD,SAAS,CAACE,aAAa,CAAc,kBAAkB,CAAC;MACxET,eAAe,CAACQ,OAAO,aAAPA,OAAO,cAAPA,OAAO,GAAID,SAAS,CAAC;IACvC,CAAC,CAAC;IAEF,OAAO,MAAM;MACXF,MAAM,CAACK,oBAAoB,CAACN,MAAM,CAAC;IACrC,CAAC;EACH,CAAC,EAAE,CAACV,MAAM,EAAED,YAAY,CAAC,CAAC;;EAE1B;EACAL,SAAS,CAAC,MAAM;IACd,IAAIW,YAAY,IAAI,IAAI,EAAE;MACxB,OAAOI,SAAS;IAClB;IAEA,IAAMQ,OAAO,GAAIC,KAAY,IAAW;MACtCX,WAAW,CAACC,OAAO,CAACU,KAAK,CAAC;IAC5B,CAAC;IAEDb,YAAY,CAACc,gBAAgB,CAAC,QAAQ,EAAEF,OAAO,CAAC;IAEhD,OAAO,MAAM;MACXZ,YAAY,CAACe,mBAAmB,CAAC,QAAQ,EAAEH,OAAO,CAAC;IACrD,CAAC;EACH,CAAC,EAAE,CAACZ,YAAY,CAAC,CAAC;AACpB;AAEA,eAAeR,4BAA4B","ignoreList":[]}
@@ -1,16 +1,20 @@
1
+ function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
2
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
3
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
4
+ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
5
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
6
+ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
1
7
  import { useCallback, useMemo, useRef } from 'react';
2
8
  import { useControlledState } from '@react-stately/utils';
3
9
  import { itemSelectionToStringSet } from "../utils/index.js";
4
10
  import { resolveSelection } from "./multiSelectUtils.js";
5
11
  export function useMultiSelectState(_ref) {
6
- var {
7
- selectedKeys: propSelectedKeys,
8
- defaultSelectedKeys,
9
- disabledKeys: propDisabledKeys,
10
- onChange: propOnChange,
11
- onSelectionChange: propOnSelectionChange,
12
- allKeys
13
- } = _ref;
12
+ var propSelectedKeys = _ref.selectedKeys,
13
+ defaultSelectedKeys = _ref.defaultSelectedKeys,
14
+ propDisabledKeys = _ref.disabledKeys,
15
+ propOnChange = _ref.onChange,
16
+ propOnSelectionChange = _ref.onSelectionChange,
17
+ allKeys = _ref.allKeys;
14
18
  var controlledKeys = useMemo(() => propSelectedKeys !== undefined ? resolveSelection(propSelectedKeys, allKeys) : undefined, [propSelectedKeys, allKeys]);
15
19
  var handleChange = useCallback(next => {
16
20
  var callback = propOnChange !== null && propOnChange !== void 0 ? propOnChange : propOnSelectionChange;
@@ -24,7 +28,10 @@ export function useMultiSelectState(_ref) {
24
28
  if (initialDefaultRef.current === undefined) {
25
29
  initialDefaultRef.current = resolveSelection(defaultSelectedKeys, allKeys);
26
30
  }
27
- var [selectedKeys, setSelectedKeys] = useControlledState(controlledKeys, initialDefaultRef.current, handleChange);
31
+ var _useControlledState = useControlledState(controlledKeys, initialDefaultRef.current, handleChange),
32
+ _useControlledState2 = _slicedToArray(_useControlledState, 2),
33
+ selectedKeys = _useControlledState2[0],
34
+ setSelectedKeys = _useControlledState2[1];
28
35
 
29
36
  // Mirror selectedKeys into a ref so toggleKey/applyListBoxSelection can
30
37
  // read the latest value without re-creating on every change.
@@ -1 +1 @@
1
- {"version":3,"file":"useMultiSelectState.js","names":["useCallback","useMemo","useRef","useControlledState","itemSelectionToStringSet","resolveSelection","useMultiSelectState","_ref","selectedKeys","propSelectedKeys","defaultSelectedKeys","disabledKeys","propDisabledKeys","onChange","propOnChange","onSelectionChange","propOnSelectionChange","allKeys","controlledKeys","undefined","handleChange","next","callback","initialDefaultRef","current","setSelectedKeys","selectedKeysRef","listBoxDisabledKeys","toggleKey","key","Set","has","delete","add","applyListBoxSelection","selection","filteredItems","filteredKeySet","map","i","filter","k","forEach","String","selectedKeyArray"],"sources":["../../../src/spectrum/multiSelect/useMultiSelectState.ts"],"sourcesContent":["import { useCallback, useMemo, useRef } from 'react';\nimport type { Key, Selection } from '@react-types/shared';\nimport { useControlledState } from '@react-stately/utils';\nimport {\n type ItemKey,\n type ItemSelection,\n itemSelectionToStringSet,\n} from '../utils';\nimport { resolveSelection, type MultiSelectFlatItem } from './multiSelectUtils';\n\nexport interface UseMultiSelectStateOptions {\n selectedKeys: 'all' | Iterable<ItemKey> | undefined;\n defaultSelectedKeys: 'all' | Iterable<ItemKey> | undefined;\n disabledKeys: Iterable<ItemKey> | undefined;\n onChange: ((keys: ItemSelection) => void) | undefined;\n onSelectionChange: ((keys: ItemSelection) => void) | undefined;\n allKeys: string[];\n}\n\nexport interface UseMultiSelectStateResult {\n /** Resolved selection set (controlled or uncontrolled). */\n selectedKeys: Set<string>;\n /** Selected keys as an array (memoized for stable rendering). */\n selectedKeyArray: string[];\n /** Disabled keys, ready to pass to `<ListBox disabledKeys>`. */\n listBoxDisabledKeys: Iterable<string> | undefined;\n /** Toggle a single key in the selection. */\n toggleKey: (key: string) => void;\n /** Apply a `Selection` from the underlying `<ListBox>`. */\n applyListBoxSelection: (\n selection: Selection,\n filteredItems: MultiSelectFlatItem[]\n ) => void;\n}\n\nexport function useMultiSelectState({\n selectedKeys: propSelectedKeys,\n defaultSelectedKeys,\n disabledKeys: propDisabledKeys,\n onChange: propOnChange,\n onSelectionChange: propOnSelectionChange,\n allKeys,\n}: UseMultiSelectStateOptions): UseMultiSelectStateResult {\n const controlledKeys = useMemo<Set<string> | undefined>(\n () =>\n propSelectedKeys !== undefined\n ? resolveSelection(propSelectedKeys, allKeys)\n : undefined,\n [propSelectedKeys, allKeys]\n );\n\n const handleChange = useCallback(\n (next: Set<string>) => {\n const callback = propOnChange ?? propOnSelectionChange;\n callback?.(next as ItemSelection);\n },\n [propOnChange, propOnSelectionChange]\n );\n\n // Resolve the initial default once. useControlledState only reads this on\n // first render in uncontrolled mode and ignores it in controlled mode, so\n // recomputing on every render would just allocate a throwaway Set.\n const initialDefaultRef = useRef<Set<string> | undefined>(undefined);\n if (initialDefaultRef.current === undefined) {\n initialDefaultRef.current = resolveSelection(defaultSelectedKeys, allKeys);\n }\n\n const [selectedKeys, setSelectedKeys] = useControlledState<Set<string>>(\n controlledKeys,\n initialDefaultRef.current,\n handleChange\n );\n\n // Mirror selectedKeys into a ref so toggleKey/applyListBoxSelection can\n // read the latest value without re-creating on every change.\n const selectedKeysRef = useRef(selectedKeys);\n selectedKeysRef.current = selectedKeys;\n\n const listBoxDisabledKeys = useMemo<Iterable<string> | undefined>(\n () => itemSelectionToStringSet(propDisabledKeys),\n [propDisabledKeys]\n );\n\n const toggleKey = useCallback(\n (key: string) => {\n const next = new Set(selectedKeysRef.current);\n if (next.has(key)) {\n next.delete(key);\n } else {\n next.add(key);\n }\n setSelectedKeys(next);\n },\n [setSelectedKeys]\n );\n\n const applyListBoxSelection = useCallback(\n (selection: Selection, filteredItems: MultiSelectFlatItem[]) => {\n if (selection === 'all') {\n setSelectedKeys(new Set(allKeys));\n return;\n }\n\n // Preserve selected keys for items not in the current filtered list.\n // The ListBox only knows about rendered (filtered) items, so it can't\n // manage selection state for items hidden by search filtering.\n const filteredKeySet = new Set(filteredItems.map(i => i.key));\n const next = new Set(\n [...selectedKeysRef.current].filter(k => !filteredKeySet.has(k))\n );\n selection.forEach((k: Key) => next.add(String(k)));\n setSelectedKeys(next);\n },\n [allKeys, setSelectedKeys]\n );\n\n const selectedKeyArray = useMemo(() => [...selectedKeys], [selectedKeys]);\n\n return {\n selectedKeys,\n selectedKeyArray,\n listBoxDisabledKeys,\n toggleKey,\n applyListBoxSelection,\n };\n}\n\nexport default useMultiSelectState;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"useMultiSelectState.js","names":["useCallback","useMemo","useRef","useControlledState","itemSelectionToStringSet","resolveSelection","useMultiSelectState","_ref","propSelectedKeys","selectedKeys","defaultSelectedKeys","propDisabledKeys","disabledKeys","propOnChange","onChange","propOnSelectionChange","onSelectionChange","allKeys","controlledKeys","undefined","handleChange","next","callback","initialDefaultRef","current","_useControlledState","_useControlledState2","_slicedToArray","setSelectedKeys","selectedKeysRef","listBoxDisabledKeys","toggleKey","key","Set","has","delete","add","applyListBoxSelection","selection","filteredItems","filteredKeySet","map","i","filter","k","forEach","String","selectedKeyArray"],"sources":["../../../src/spectrum/multiSelect/useMultiSelectState.ts"],"sourcesContent":["import { useCallback, useMemo, useRef } from 'react';\nimport type { Key, Selection } from '@react-types/shared';\nimport { useControlledState } from '@react-stately/utils';\nimport {\n type ItemKey,\n type ItemSelection,\n itemSelectionToStringSet,\n} from '../utils';\nimport { resolveSelection, type MultiSelectFlatItem } from './multiSelectUtils';\n\nexport interface UseMultiSelectStateOptions {\n selectedKeys: 'all' | Iterable<ItemKey> | undefined;\n defaultSelectedKeys: 'all' | Iterable<ItemKey> | undefined;\n disabledKeys: Iterable<ItemKey> | undefined;\n onChange: ((keys: ItemSelection) => void) | undefined;\n onSelectionChange: ((keys: ItemSelection) => void) | undefined;\n allKeys: string[];\n}\n\nexport interface UseMultiSelectStateResult {\n /** Resolved selection set (controlled or uncontrolled). */\n selectedKeys: Set<string>;\n /** Selected keys as an array (memoized for stable rendering). */\n selectedKeyArray: string[];\n /** Disabled keys, ready to pass to `<ListBox disabledKeys>`. */\n listBoxDisabledKeys: Iterable<string> | undefined;\n /** Toggle a single key in the selection. */\n toggleKey: (key: string) => void;\n /** Apply a `Selection` from the underlying `<ListBox>`. */\n applyListBoxSelection: (\n selection: Selection,\n filteredItems: MultiSelectFlatItem[]\n ) => void;\n}\n\nexport function useMultiSelectState({\n selectedKeys: propSelectedKeys,\n defaultSelectedKeys,\n disabledKeys: propDisabledKeys,\n onChange: propOnChange,\n onSelectionChange: propOnSelectionChange,\n allKeys,\n}: UseMultiSelectStateOptions): UseMultiSelectStateResult {\n const controlledKeys = useMemo<Set<string> | undefined>(\n () =>\n propSelectedKeys !== undefined\n ? resolveSelection(propSelectedKeys, allKeys)\n : undefined,\n [propSelectedKeys, allKeys]\n );\n\n const handleChange = useCallback(\n (next: Set<string>) => {\n const callback = propOnChange ?? propOnSelectionChange;\n callback?.(next as ItemSelection);\n },\n [propOnChange, propOnSelectionChange]\n );\n\n // Resolve the initial default once. useControlledState only reads this on\n // first render in uncontrolled mode and ignores it in controlled mode, so\n // recomputing on every render would just allocate a throwaway Set.\n const initialDefaultRef = useRef<Set<string> | undefined>(undefined);\n if (initialDefaultRef.current === undefined) {\n initialDefaultRef.current = resolveSelection(defaultSelectedKeys, allKeys);\n }\n\n const [selectedKeys, setSelectedKeys] = useControlledState<Set<string>>(\n controlledKeys,\n initialDefaultRef.current,\n handleChange\n );\n\n // Mirror selectedKeys into a ref so toggleKey/applyListBoxSelection can\n // read the latest value without re-creating on every change.\n const selectedKeysRef = useRef(selectedKeys);\n selectedKeysRef.current = selectedKeys;\n\n const listBoxDisabledKeys = useMemo<Iterable<string> | undefined>(\n () => itemSelectionToStringSet(propDisabledKeys),\n [propDisabledKeys]\n );\n\n const toggleKey = useCallback(\n (key: string) => {\n const next = new Set(selectedKeysRef.current);\n if (next.has(key)) {\n next.delete(key);\n } else {\n next.add(key);\n }\n setSelectedKeys(next);\n },\n [setSelectedKeys]\n );\n\n const applyListBoxSelection = useCallback(\n (selection: Selection, filteredItems: MultiSelectFlatItem[]) => {\n if (selection === 'all') {\n setSelectedKeys(new Set(allKeys));\n return;\n }\n\n // Preserve selected keys for items not in the current filtered list.\n // The ListBox only knows about rendered (filtered) items, so it can't\n // manage selection state for items hidden by search filtering.\n const filteredKeySet = new Set(filteredItems.map(i => i.key));\n const next = new Set(\n [...selectedKeysRef.current].filter(k => !filteredKeySet.has(k))\n );\n selection.forEach((k: Key) => next.add(String(k)));\n setSelectedKeys(next);\n },\n [allKeys, setSelectedKeys]\n );\n\n const selectedKeyArray = useMemo(() => [...selectedKeys], [selectedKeys]);\n\n return {\n selectedKeys,\n selectedKeyArray,\n listBoxDisabledKeys,\n toggleKey,\n applyListBoxSelection,\n };\n}\n\nexport default useMultiSelectState;\n"],"mappings":"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","ignoreList":[]}
@@ -21,17 +21,13 @@ import { usePickerProps } from "./usePickerProps.js";
21
21
  */
22
22
  import { jsx as _jsx } from "react/jsx-runtime";
23
23
  export var Picker = /*#__PURE__*/React.forwardRef(function Picker(_ref, ref) {
24
- var {
25
- UNSAFE_className
26
- } = _ref,
24
+ var UNSAFE_className = _ref.UNSAFE_className,
27
25
  props = _objectWithoutProperties(_ref, _excluded);
28
26
  var _usePickerProps = usePickerProps(props),
29
- {
30
- defaultSelectedKey,
31
- disabledKeys,
32
- selectedKey,
33
- ref: scrollRef
34
- } = _usePickerProps,
27
+ defaultSelectedKey = _usePickerProps.defaultSelectedKey,
28
+ disabledKeys = _usePickerProps.disabledKeys,
29
+ selectedKey = _usePickerProps.selectedKey,
30
+ scrollRef = _usePickerProps.ref,
35
31
  pickerProps = _objectWithoutProperties(_usePickerProps, _excluded2);
36
32
  var pickerRef = useMergeRef(ref, scrollRef);
37
33
  return /*#__PURE__*/_jsx(SpectrumPicker
@@ -1 +1 @@
1
- {"version":3,"file":"Picker.js","names":["Picker","SpectrumPicker","cl","React","useMergeRef","usePickerProps","jsx","_jsx","forwardRef","_ref","ref","UNSAFE_className","props","_objectWithoutProperties","_excluded","_usePickerProps","defaultSelectedKey","disabledKeys","selectedKey","scrollRef","pickerProps","_excluded2","pickerRef","_objectSpread","displayName"],"sources":["../../../src/spectrum/picker/Picker.tsx"],"sourcesContent":["import {\n Picker as SpectrumPicker,\n type SpectrumPickerProps,\n} from '@adobe/react-spectrum';\nimport type { DOMRef } from '@react-types/shared';\nimport cl from 'classnames';\nimport React from 'react';\nimport { useMergeRef } from '@deephaven/react-hooks';\nimport type { NormalizedItem } from '../utils';\nimport type { PickerProps } from './PickerProps';\nimport { usePickerProps } from './usePickerProps';\n\n/**\n * Picker component for selecting items from a list of items. Items can be\n * provided via the `children` prop. Each item can be a string,\tnumber, boolean,\n * or a Spectrum <Item> element. The remaining props are just\tpass through props\n * for the Spectrum Picker component.\n * See https://react-spectrum.adobe.com/react-spectrum/Picker.html\n */\nexport const Picker = React.forwardRef(function Picker(\n { UNSAFE_className, ...props }: PickerProps,\n ref: DOMRef<HTMLDivElement>\n): JSX.Element {\n const {\n defaultSelectedKey,\n disabledKeys,\n selectedKey,\n ref: scrollRef,\n ...pickerProps\n } = usePickerProps(props);\n const pickerRef = useMergeRef(ref, scrollRef);\n return (\n <SpectrumPicker\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...pickerProps}\n ref={pickerRef}\n UNSAFE_className={cl('dh-picker', UNSAFE_className)}\n // Type assertions are necessary here since Spectrum types don't account\n // for number and boolean key values even though they are valid runtime\n // values.\n defaultSelectedKey={\n defaultSelectedKey as SpectrumPickerProps<NormalizedItem>['defaultSelectedKey']\n }\n disabledKeys={\n disabledKeys as SpectrumPickerProps<NormalizedItem>['disabledKeys']\n }\n selectedKey={\n selectedKey as SpectrumPickerProps<NormalizedItem>['selectedKey']\n }\n />\n );\n});\nPicker.displayName = 'Picker';\n\nexport default Picker;\n"],"mappings":";;;;;;;;;AAAA,SACEA,MAAM,IAAIC,cAAc,QAEnB,uBAAuB;AAE9B,OAAOC,EAAE,MAAM,YAAY;AAC3B,OAAOC,KAAK,MAAM,OAAO;AACzB,SAASC,WAAW,QAAQ,wBAAwB;AAAC,SAG5CC,cAAc;AAEvB;AACA;AACA;AACA;AACA;AACA;AACA;AANA,SAAAC,GAAA,IAAAC,IAAA;AAOA,OAAO,IAAMP,MAAM,gBAAGG,KAAK,CAACK,UAAU,CAAC,SAASR,MAAMA,CAAAS,IAAA,EAEpDC,GAA2B,EACd;EAAA,IAFb;MAAEC;IAAwC,CAAC,GAAAF,IAAA;IAApBG,KAAK,GAAAC,wBAAA,CAAAJ,IAAA,EAAAK,SAAA;EAG5B,IAAAC,eAAA,GAMIV,cAAc,CAACO,KAAK,CAAC;IANnB;MACJI,kBAAkB;MAClBC,YAAY;MACZC,WAAW;MACXR,GAAG,EAAES;IAEP,CAAC,GAAAJ,eAAA;IADIK,WAAW,GAAAP,wBAAA,CAAAE,eAAA,EAAAM,UAAA;EAEhB,IAAMC,SAAS,GAAGlB,WAAW,CAACM,GAAG,EAAES,SAAS,CAAC;EAC7C,oBACEZ,IAAA,CAACN;EACC;EAAA,EAAAsB,aAAA,CAAAA,aAAA,KACIH,WAAW;IACfV,GAAG,EAAEY,SAAU;IACfX,gBAAgB,EAAET,EAAE,CAAC,WAAW,EAAES,gBAAgB;IAClD;IACA;IACA;IAAA;IACAK,kBAAkB,EAChBA,kBACD;IACDC,YAAY,EACVA,YACD;IACDC,WAAW,EACTA;EACD,EACF,CAAC;AAEN,CAAC,CAAC;AACFlB,MAAM,CAACwB,WAAW,GAAG,QAAQ;AAE7B,eAAexB,MAAM","ignoreList":[]}
1
+ {"version":3,"file":"Picker.js","names":["Picker","SpectrumPicker","cl","React","useMergeRef","usePickerProps","jsx","_jsx","forwardRef","_ref","ref","UNSAFE_className","props","_objectWithoutProperties","_excluded","_usePickerProps","defaultSelectedKey","disabledKeys","selectedKey","scrollRef","pickerProps","_excluded2","pickerRef","_objectSpread","displayName"],"sources":["../../../src/spectrum/picker/Picker.tsx"],"sourcesContent":["import {\n Picker as SpectrumPicker,\n type SpectrumPickerProps,\n} from '@adobe/react-spectrum';\nimport type { DOMRef } from '@react-types/shared';\nimport cl from 'classnames';\nimport React from 'react';\nimport { useMergeRef } from '@deephaven/react-hooks';\nimport type { NormalizedItem } from '../utils';\nimport type { PickerProps } from './PickerProps';\nimport { usePickerProps } from './usePickerProps';\n\n/**\n * Picker component for selecting items from a list of items. Items can be\n * provided via the `children` prop. Each item can be a string,\tnumber, boolean,\n * or a Spectrum <Item> element. The remaining props are just\tpass through props\n * for the Spectrum Picker component.\n * See https://react-spectrum.adobe.com/react-spectrum/Picker.html\n */\nexport const Picker = React.forwardRef(function Picker(\n { UNSAFE_className, ...props }: PickerProps,\n ref: DOMRef<HTMLDivElement>\n): JSX.Element {\n const {\n defaultSelectedKey,\n disabledKeys,\n selectedKey,\n ref: scrollRef,\n ...pickerProps\n } = usePickerProps(props);\n const pickerRef = useMergeRef(ref, scrollRef);\n return (\n <SpectrumPicker\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...pickerProps}\n ref={pickerRef}\n UNSAFE_className={cl('dh-picker', UNSAFE_className)}\n // Type assertions are necessary here since Spectrum types don't account\n // for number and boolean key values even though they are valid runtime\n // values.\n defaultSelectedKey={\n defaultSelectedKey as SpectrumPickerProps<NormalizedItem>['defaultSelectedKey']\n }\n disabledKeys={\n disabledKeys as SpectrumPickerProps<NormalizedItem>['disabledKeys']\n }\n selectedKey={\n selectedKey as SpectrumPickerProps<NormalizedItem>['selectedKey']\n }\n />\n );\n});\nPicker.displayName = 'Picker';\n\nexport default Picker;\n"],"mappings":";;;;;;;;;AAAA,SACEA,MAAM,IAAIC,cAAc,QAEnB,uBAAuB;AAE9B,OAAOC,EAAE,MAAM,YAAY;AAC3B,OAAOC,KAAK,MAAM,OAAO;AACzB,SAASC,WAAW,QAAQ,wBAAwB;AAAC,SAG5CC,cAAc;AAEvB;AACA;AACA;AACA;AACA;AACA;AACA;AANA,SAAAC,GAAA,IAAAC,IAAA;AAOA,OAAO,IAAMP,MAAM,gBAAGG,KAAK,CAACK,UAAU,CAAC,SAASR,MAAMA,CAAAS,IAAA,EAEpDC,GAA2B,EACd;EAAA,IAFXC,gBAAgB,GAAAF,IAAA,CAAhBE,gBAAgB;IAAKC,KAAK,GAAAC,wBAAA,CAAAJ,IAAA,EAAAK,SAAA;EAG5B,IAAAC,eAAA,GAMIV,cAAc,CAACO,KAAK,CAAC;IALvBI,kBAAkB,GAAAD,eAAA,CAAlBC,kBAAkB;IAClBC,YAAY,GAAAF,eAAA,CAAZE,YAAY;IACZC,WAAW,GAAAH,eAAA,CAAXG,WAAW;IACNC,SAAS,GAAAJ,eAAA,CAAdL,GAAG;IACAU,WAAW,GAAAP,wBAAA,CAAAE,eAAA,EAAAM,UAAA;EAEhB,IAAMC,SAAS,GAAGlB,WAAW,CAACM,GAAG,EAAES,SAAS,CAAC;EAC7C,oBACEZ,IAAA,CAACN;EACC;EAAA,EAAAsB,aAAA,CAAAA,aAAA,KACIH,WAAW;IACfV,GAAG,EAAEY,SAAU;IACfX,gBAAgB,EAAET,EAAE,CAAC,WAAW,EAAES,gBAAgB;IAClD;IACA;IACA;IAAA;IACAK,kBAAkB,EAChBA,kBACD;IACDC,YAAY,EACVA,YACD;IACDC,WAAW,EACTA;EACD,EACF,CAAC;AAEN,CAAC,CAAC;AACFlB,MAAM,CAACwB,WAAW,GAAG,QAAQ;AAE7B,eAAexB,MAAM","ignoreList":[]}
@@ -17,14 +17,10 @@ import usePickerNormalizedProps from "./usePickerNormalizedProps.js";
17
17
  */
18
18
  import { createElement as _createElement } from "react";
19
19
  export function PickerNormalized(_ref) {
20
- var {
21
- UNSAFE_className
22
- } = _ref,
20
+ var UNSAFE_className = _ref.UNSAFE_className,
23
21
  props = _objectWithoutProperties(_ref, _excluded);
24
22
  var _usePickerNormalizedP = usePickerNormalizedProps(props),
25
- {
26
- forceRerenderKey
27
- } = _usePickerNormalizedP,
23
+ forceRerenderKey = _usePickerNormalizedP.forceRerenderKey,
28
24
  pickerProps = _objectWithoutProperties(_usePickerNormalizedP, _excluded2);
29
25
  return /*#__PURE__*/_createElement(SpectrumPicker
30
26
  // eslint-disable-next-line react/jsx-props-no-spreading
@@ -1 +1 @@
1
- {"version":3,"file":"PickerNormalized.js","names":["Picker","SpectrumPicker","cl","usePickerNormalizedProps","createElement","_createElement","PickerNormalized","_ref","UNSAFE_className","props","_objectWithoutProperties","_excluded","_usePickerNormalizedP","forceRerenderKey","pickerProps","_excluded2","_objectSpread","key"],"sources":["../../../src/spectrum/picker/PickerNormalized.tsx"],"sourcesContent":["import { Picker as SpectrumPicker } from '@adobe/react-spectrum';\nimport cl from 'classnames';\nimport type { PickerNormalizedProps } from './PickerProps';\n\nimport usePickerNormalizedProps from './usePickerNormalizedProps';\n\n/**\n * Picker that takes an array of `NormalizedItem` or `NormalizedSection` items\n * as children and uses a render item function to render the items. This is\n * necessary to support windowed data.\n */\nexport function PickerNormalized({\n UNSAFE_className,\n ...props\n}: PickerNormalizedProps): JSX.Element {\n const { forceRerenderKey, ...pickerProps } = usePickerNormalizedProps<\n PickerNormalizedProps,\n HTMLDivElement\n >(props);\n\n return (\n <SpectrumPicker\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...pickerProps}\n key={forceRerenderKey}\n UNSAFE_className={cl(\n 'dh-picker',\n 'dh-picker-normalized',\n UNSAFE_className\n )}\n />\n );\n}\n\nexport default PickerNormalized;\n"],"mappings":";;;;;;;;;AAAA,SAASA,MAAM,IAAIC,cAAc,QAAQ,uBAAuB;AAChE,OAAOC,EAAE,MAAM,YAAY;AAAC,OAGrBC,wBAAwB;AAE/B;AACA;AACA;AACA;AACA;AAJA,SAAAC,aAAA,IAAAC,cAAA;AAKA,OAAO,SAASC,gBAAgBA,CAAAC,IAAA,EAGO;EAAA,IAHN;MAC/BC;IAEqB,CAAC,GAAAD,IAAA;IADnBE,KAAK,GAAAC,wBAAA,CAAAH,IAAA,EAAAI,SAAA;EAER,IAAAC,qBAAA,GAA6CT,wBAAwB,CAGnEM,KAAK,CAAC;IAHF;MAAEI;IAAiC,CAAC,GAAAD,qBAAA;IAAbE,WAAW,GAAAJ,wBAAA,CAAAE,qBAAA,EAAAG,UAAA;EAKxC,oBACEV,cAAA,CAACJ;EACC;EAAA,EAAAe,aAAA,CAAAA,aAAA,KACIF,WAAW;IACfG,GAAG,EAAEJ,gBAAiB;IACtBL,gBAAgB,EAAEN,EAAE,CAClB,WAAW,EACX,sBAAsB,EACtBM,gBACF;EAAE,EACH,CAAC;AAEN;AAEA,eAAeF,gBAAgB","ignoreList":[]}
1
+ {"version":3,"file":"PickerNormalized.js","names":["Picker","SpectrumPicker","cl","usePickerNormalizedProps","createElement","_createElement","PickerNormalized","_ref","UNSAFE_className","props","_objectWithoutProperties","_excluded","_usePickerNormalizedP","forceRerenderKey","pickerProps","_excluded2","_objectSpread","key"],"sources":["../../../src/spectrum/picker/PickerNormalized.tsx"],"sourcesContent":["import { Picker as SpectrumPicker } from '@adobe/react-spectrum';\nimport cl from 'classnames';\nimport type { PickerNormalizedProps } from './PickerProps';\n\nimport usePickerNormalizedProps from './usePickerNormalizedProps';\n\n/**\n * Picker that takes an array of `NormalizedItem` or `NormalizedSection` items\n * as children and uses a render item function to render the items. This is\n * necessary to support windowed data.\n */\nexport function PickerNormalized({\n UNSAFE_className,\n ...props\n}: PickerNormalizedProps): JSX.Element {\n const { forceRerenderKey, ...pickerProps } = usePickerNormalizedProps<\n PickerNormalizedProps,\n HTMLDivElement\n >(props);\n\n return (\n <SpectrumPicker\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...pickerProps}\n key={forceRerenderKey}\n UNSAFE_className={cl(\n 'dh-picker',\n 'dh-picker-normalized',\n UNSAFE_className\n )}\n />\n );\n}\n\nexport default PickerNormalized;\n"],"mappings":";;;;;;;;;AAAA,SAASA,MAAM,IAAIC,cAAc,QAAQ,uBAAuB;AAChE,OAAOC,EAAE,MAAM,YAAY;AAAC,OAGrBC,wBAAwB;AAE/B;AACA;AACA;AACA;AACA;AAJA,SAAAC,aAAA,IAAAC,cAAA;AAKA,OAAO,SAASC,gBAAgBA,CAAAC,IAAA,EAGO;EAAA,IAFrCC,gBAAgB,GAAAD,IAAA,CAAhBC,gBAAgB;IACbC,KAAK,GAAAC,wBAAA,CAAAH,IAAA,EAAAI,SAAA;EAER,IAAAC,qBAAA,GAA6CT,wBAAwB,CAGnEM,KAAK,CAAC;IAHAI,gBAAgB,GAAAD,qBAAA,CAAhBC,gBAAgB;IAAKC,WAAW,GAAAJ,wBAAA,CAAAE,qBAAA,EAAAG,UAAA;EAKxC,oBACEV,cAAA,CAACJ;EACC;EAAA,EAAAe,aAAA,CAAAA,aAAA,KACIF,WAAW;IACfG,GAAG,EAAEJ,gBAAiB;IACtBL,gBAAgB,EAAEN,EAAE,CAClB,WAAW,EACX,sBAAsB,EACtBM,gBACF;EAAE,EACH,CAAC;AAEN;AAEA,eAAeF,gBAAgB","ignoreList":[]}
@@ -5,9 +5,8 @@ import { PICKER_ITEM_HEIGHTS } from "../../UIConstants.js";
5
5
  * @returns Picker Item height
6
6
  */
7
7
  export function usePickerItemScale() {
8
- var {
9
- scale
10
- } = useSpectrumThemeProvider();
8
+ var _useSpectrumThemeProv = useSpectrumThemeProvider(),
9
+ scale = _useSpectrumThemeProv.scale;
11
10
  var itemHeight = PICKER_ITEM_HEIGHTS[scale];
12
11
  return {
13
12
  itemHeight
@@ -1 +1 @@
1
- {"version":3,"file":"usePickerItemScale.js","names":["useSpectrumThemeProvider","PICKER_ITEM_HEIGHTS","usePickerItemScale","scale","itemHeight"],"sources":["../../../src/spectrum/picker/usePickerItemScale.ts"],"sourcesContent":["import { useSpectrumThemeProvider } from '../../theme';\nimport { PICKER_ITEM_HEIGHTS } from '../../UIConstants';\n\n/**\n * Get Picker Item height for current scale.\n * @returns Picker Item height\n */\nexport function usePickerItemScale(): { itemHeight: number } {\n const { scale } = useSpectrumThemeProvider();\n const itemHeight = PICKER_ITEM_HEIGHTS[scale];\n\n return { itemHeight };\n}\n\nexport default usePickerItemScale;\n"],"mappings":"SAASA,wBAAwB;AAAA,SACxBC,mBAAmB;AAE5B;AACA;AACA;AACA;AACA,OAAO,SAASC,kBAAkBA,CAAA,EAA2B;EAC3D,IAAM;IAAEC;EAAM,CAAC,GAAGH,wBAAwB,CAAC,CAAC;EAC5C,IAAMI,UAAU,GAAGH,mBAAmB,CAACE,KAAK,CAAC;EAE7C,OAAO;IAAEC;EAAW,CAAC;AACvB;AAEA,eAAeF,kBAAkB","ignoreList":[]}
1
+ {"version":3,"file":"usePickerItemScale.js","names":["useSpectrumThemeProvider","PICKER_ITEM_HEIGHTS","usePickerItemScale","_useSpectrumThemeProv","scale","itemHeight"],"sources":["../../../src/spectrum/picker/usePickerItemScale.ts"],"sourcesContent":["import { useSpectrumThemeProvider } from '../../theme';\nimport { PICKER_ITEM_HEIGHTS } from '../../UIConstants';\n\n/**\n * Get Picker Item height for current scale.\n * @returns Picker Item height\n */\nexport function usePickerItemScale(): { itemHeight: number } {\n const { scale } = useSpectrumThemeProvider();\n const itemHeight = PICKER_ITEM_HEIGHTS[scale];\n\n return { itemHeight };\n}\n\nexport default usePickerItemScale;\n"],"mappings":"SAASA,wBAAwB;AAAA,SACxBC,mBAAmB;AAE5B;AACA;AACA;AACA;AACA,OAAO,SAASC,kBAAkBA,CAAA,EAA2B;EAC3D,IAAAC,qBAAA,GAAkBH,wBAAwB,CAAC,CAAC;IAApCI,KAAK,GAAAD,qBAAA,CAALC,KAAK;EACb,IAAMC,UAAU,GAAGJ,mBAAmB,CAACG,KAAK,CAAC;EAE7C,OAAO;IAAEC;EAAW,CAAC;AACvB;AAEA,eAAeH,kBAAkB","ignoreList":[]}
@@ -20,19 +20,19 @@ import { Section } from "../shared.js";
20
20
  /** Props returned from `usePickerNormalizedProps` hook. */
21
21
  import { jsx as _jsx } from "react/jsx-runtime";
22
22
  export function usePickerNormalizedProps(_ref) {
23
- var {
24
- defaultSelectedKey,
25
- disabledKeys,
26
- getInitialScrollPosition,
27
- normalizedItems,
28
- onChange,
29
- onOpenChange,
30
- onScroll = EMPTY_FUNCTION,
31
- onSelectionChange,
32
- selectedKey,
33
- showItemIcons,
34
- tooltip = true
35
- } = _ref,
23
+ var defaultSelectedKey = _ref.defaultSelectedKey,
24
+ disabledKeys = _ref.disabledKeys,
25
+ getInitialScrollPosition = _ref.getInitialScrollPosition,
26
+ normalizedItems = _ref.normalizedItems,
27
+ onChange = _ref.onChange,
28
+ onOpenChange = _ref.onOpenChange,
29
+ _ref$onScroll = _ref.onScroll,
30
+ onScroll = _ref$onScroll === void 0 ? EMPTY_FUNCTION : _ref$onScroll,
31
+ onSelectionChange = _ref.onSelectionChange,
32
+ selectedKey = _ref.selectedKey,
33
+ showItemIcons = _ref.showItemIcons,
34
+ _ref$tooltip = _ref.tooltip,
35
+ tooltip = _ref$tooltip === void 0 ? true : _ref$tooltip,
36
36
  props = _objectWithoutProperties(_ref, _excluded);
37
37
  var tooltipOptions = useMemo(() => normalizeTooltipOptions(tooltip), [tooltip]);
38
38
  var renderNormalizedItem = useRenderNormalizedItem({
@@ -50,30 +50,28 @@ export function usePickerNormalizedProps(_ref) {
50
50
  // changes, so we create a key from its dependencies that can be used to force
51
51
  // re-render.
52
52
  var forceRerenderKey = "".concat(showItemIcons, "-").concat(tooltipOptions === null || tooltipOptions === void 0 ? void 0 : tooltipOptions.placement);
53
- var {
54
- ref,
55
- onOpenChange: onOpenChangeInternal
56
- } = usePickerScrollOnOpen({
57
- getInitialScrollPosition,
58
- onScroll,
59
- onOpenChange
60
- });
53
+ var _usePickerScrollOnOpe = usePickerScrollOnOpen({
54
+ getInitialScrollPosition,
55
+ onScroll,
56
+ onOpenChange
57
+ }),
58
+ ref = _usePickerScrollOnOpe.ref,
59
+ onOpenChangeInternal = _usePickerScrollOnOpe.onOpenChange;
61
60
 
62
61
  // Spectrum Picker treats keys as strings if the `key` prop is explicitly
63
62
  // set on `Item` elements. Since we do this in `renderItem`, we need to
64
63
  // map original key types to and from strings so that selection works.
65
- var {
66
- selectedStringKey,
67
- defaultSelectedStringKey,
68
- disabledStringKeys,
69
- onStringSelectionChange
70
- } = useStringifiedSelection({
71
- normalizedItems,
72
- selectedKey,
73
- defaultSelectedKey,
74
- disabledKeys,
75
- onChange: onChange !== null && onChange !== void 0 ? onChange : onSelectionChange
76
- });
64
+ var _useStringifiedSelect = useStringifiedSelection({
65
+ normalizedItems,
66
+ selectedKey,
67
+ defaultSelectedKey,
68
+ disabledKeys,
69
+ onChange: onChange !== null && onChange !== void 0 ? onChange : onSelectionChange
70
+ }),
71
+ selectedStringKey = _useStringifiedSelect.selectedStringKey,
72
+ defaultSelectedStringKey = _useStringifiedSelect.defaultSelectedStringKey,
73
+ disabledStringKeys = _useStringifiedSelect.disabledStringKeys,
74
+ onStringSelectionChange = _useStringifiedSelect.onStringSelectionChange;
77
75
  var children = useCallback(itemOrSection => {
78
76
  if (isNormalizedSection(itemOrSection)) {
79
77
  var _itemOrSection$item, _itemOrSection$item2;
@@ -1 +1 @@
1
- {"version":3,"file":"usePickerNormalizedProps.js","names":["useCallback","useMemo","EMPTY_FUNCTION","getItemKey","isNormalizedSection","normalizeTooltipOptions","useRenderNormalizedItem","useStringifiedSelection","usePickerScrollOnOpen","Section","jsx","_jsx","usePickerNormalizedProps","_ref","defaultSelectedKey","disabledKeys","getInitialScrollPosition","normalizedItems","onChange","onOpenChange","onScroll","onSelectionChange","selectedKey","showItemIcons","tooltip","props","_objectWithoutProperties","_excluded","tooltipOptions","renderNormalizedItem","itemIconSlot","showItemDescriptions","forceRerenderKey","concat","placement","ref","onOpenChangeInternal","selectedStringKey","defaultSelectedStringKey","disabledStringKeys","onStringSelectionChange","children","itemOrSection","_itemOrSection$item","_itemOrSection$item2","title","item","items","_objectSpread"],"sources":["../../../src/spectrum/picker/usePickerNormalizedProps.tsx"],"sourcesContent":["import { useCallback, useMemo } from 'react';\nimport { EMPTY_FUNCTION } from '@deephaven/utils';\nimport type { DOMRef, Key } from '@react-types/shared';\nimport {\n getItemKey,\n isNormalizedSection,\n type NormalizedItem,\n type NormalizedSection,\n normalizeTooltipOptions,\n useRenderNormalizedItem,\n useStringifiedSelection,\n} from '../utils';\nimport { type PickerNormalizedPropsT } from './PickerProps';\nimport { usePickerScrollOnOpen } from './usePickerScrollOnOpen';\nimport { Section } from '../shared';\n\n/** Props that are derived by `usePickerNormalizedProps` */\nexport type UsePickerNormalizedDerivedProps<THtml extends HTMLElement> = {\n children: (itemOrSection: NormalizedItem | NormalizedSection) => JSX.Element;\n forceRerenderKey: Key;\n items: (NormalizedItem | NormalizedSection)[];\n defaultSelectedKey?: Key;\n disabledKeys?: Iterable<Key>;\n ref: DOMRef<THtml>;\n selectedKey?: Key | null;\n onSelectionChange: (key: Key | null) => void;\n onOpenChange: (isOpen: boolean) => void;\n};\n\n/**\n * Props that are passed through untouched. (should exclude all of the\n * destructured props passed into `usePickerNormalizedProps` that are not in the\n * spread ...props)\n */\nexport type UsePickerNormalizedPassthroughProps<TProps> = Omit<\n PickerNormalizedPropsT<TProps>,\n | 'defaultSelectedKey'\n | 'disabledKeys'\n | 'getInitialScrollPosition'\n | 'normalizedItems'\n | 'onChange'\n | 'onOpenChange'\n | 'onScroll'\n | 'onSelectionChange'\n | 'selectedKey'\n | 'showItemIcons'\n | 'tooltip'\n>;\n\n/** Props returned from `usePickerNormalizedProps` hook. */\nexport type UsePickerNormalizedProps<\n TProps,\n THtml extends HTMLElement,\n> = UsePickerNormalizedDerivedProps<THtml> &\n UsePickerNormalizedPassthroughProps<TProps>;\n\nexport function usePickerNormalizedProps<\n TProps,\n THtml extends HTMLElement = HTMLElement,\n>({\n defaultSelectedKey,\n disabledKeys,\n getInitialScrollPosition,\n normalizedItems,\n onChange,\n onOpenChange,\n onScroll = EMPTY_FUNCTION,\n onSelectionChange,\n selectedKey,\n showItemIcons,\n tooltip = true,\n ...props\n}: PickerNormalizedPropsT<TProps>): UsePickerNormalizedProps<TProps, THtml> {\n const tooltipOptions = useMemo(\n () => normalizeTooltipOptions(tooltip),\n [tooltip]\n );\n\n const renderNormalizedItem = useRenderNormalizedItem({\n itemIconSlot: 'icon',\n // Descriptions introduce variable item heights which throws off calculation\n // of initial scroll position and setting viewport on windowed data. For now\n // not going to implement description support in Picker.\n // https://github.com/deephaven/web-client-ui/issues/1958\n showItemDescriptions: false,\n showItemIcons,\n tooltipOptions,\n });\n\n // Spectrum doesn't re-render if only the `renderNormalizedItems` function\n // changes, so we create a key from its dependencies that can be used to force\n // re-render.\n const forceRerenderKey = `${showItemIcons}-${tooltipOptions?.placement}`;\n\n const { ref, onOpenChange: onOpenChangeInternal } =\n usePickerScrollOnOpen<THtml>({\n getInitialScrollPosition,\n onScroll,\n onOpenChange,\n });\n\n // Spectrum Picker treats keys as strings if the `key` prop is explicitly\n // set on `Item` elements. Since we do this in `renderItem`, we need to\n // map original key types to and from strings so that selection works.\n const {\n selectedStringKey,\n defaultSelectedStringKey,\n disabledStringKeys,\n onStringSelectionChange,\n } = useStringifiedSelection({\n normalizedItems,\n selectedKey,\n defaultSelectedKey,\n disabledKeys,\n onChange: onChange ?? onSelectionChange,\n });\n\n const children = useCallback(\n (itemOrSection: NormalizedItem | NormalizedSection) => {\n if (isNormalizedSection(itemOrSection)) {\n return (\n <Section\n key={getItemKey(itemOrSection)}\n title={itemOrSection.item?.title}\n items={itemOrSection.item?.items}\n >\n {renderNormalizedItem}\n </Section>\n );\n }\n\n return renderNormalizedItem(itemOrSection);\n },\n [renderNormalizedItem]\n );\n\n return {\n ...props,\n children,\n forceRerenderKey,\n ref,\n items: normalizedItems,\n selectedKey: selectedStringKey,\n defaultSelectedKey: defaultSelectedStringKey,\n disabledKeys: disabledStringKeys,\n onSelectionChange: onStringSelectionChange,\n onOpenChange: onOpenChangeInternal,\n };\n}\n\nexport default usePickerNormalizedProps;\n"],"mappings":";;;;;;;;AAAA,SAASA,WAAW,EAAEC,OAAO,QAAQ,OAAO;AAC5C,SAASC,cAAc,QAAQ,kBAAkB;AAAC,SAGhDC,UAAU,EACVC,mBAAmB,EAGnBC,uBAAuB,EACvBC,uBAAuB,EACvBC,uBAAuB;AAAA,SAGhBC,qBAAqB;AAAA,SACrBC,OAAO;AAEhB;AAaA;AACA;AACA;AACA;AACA;AAgBA;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAOA,OAAO,SAASC,wBAAwBA,CAAAC,IAAA,EAgBoC;EAAA,IAb1E;MACAC,kBAAkB;MAClBC,YAAY;MACZC,wBAAwB;MACxBC,eAAe;MACfC,QAAQ;MACRC,YAAY;MACZC,QAAQ,GAAGlB,cAAc;MACzBmB,iBAAiB;MACjBC,WAAW;MACXC,aAAa;MACbC,OAAO,GAAG;IAEoB,CAAC,GAAAX,IAAA;IAD5BY,KAAK,GAAAC,wBAAA,CAAAb,IAAA,EAAAc,SAAA;EAER,IAAMC,cAAc,GAAG3B,OAAO,CAC5B,MAAMI,uBAAuB,CAACmB,OAAO,CAAC,EACtC,CAACA,OAAO,CACV,CAAC;EAED,IAAMK,oBAAoB,GAAGvB,uBAAuB,CAAC;IACnDwB,YAAY,EAAE,MAAM;IACpB;IACA;IACA;IACA;IACAC,oBAAoB,EAAE,KAAK;IAC3BR,aAAa;IACbK;EACF,CAAC,CAAC;;EAEF;EACA;EACA;EACA,IAAMI,gBAAgB,MAAAC,MAAA,CAAMV,aAAa,OAAAU,MAAA,CAAIL,cAAc,aAAdA,cAAc,uBAAdA,cAAc,CAAEM,SAAS,CAAE;EAExE,IAAM;IAAEC,GAAG;IAAEhB,YAAY,EAAEiB;EAAqB,CAAC,GAC/C5B,qBAAqB,CAAQ;IAC3BQ,wBAAwB;IACxBI,QAAQ;IACRD;EACF,CAAC,CAAC;;EAEJ;EACA;EACA;EACA,IAAM;IACJkB,iBAAiB;IACjBC,wBAAwB;IACxBC,kBAAkB;IAClBC;EACF,CAAC,GAAGjC,uBAAuB,CAAC;IAC1BU,eAAe;IACfK,WAAW;IACXR,kBAAkB;IAClBC,YAAY;IACZG,QAAQ,EAAEA,QAAQ,aAARA,QAAQ,cAARA,QAAQ,GAAIG;EACxB,CAAC,CAAC;EAEF,IAAMoB,QAAQ,GAAGzC,WAAW,CACzB0C,aAAiD,IAAK;IACrD,IAAItC,mBAAmB,CAACsC,aAAa,CAAC,EAAE;MAAA,IAAAC,mBAAA,EAAAC,oBAAA;MACtC,oBACEjC,IAAA,CAACF,OAAO;QAENoC,KAAK,GAAAF,mBAAA,GAAED,aAAa,CAACI,IAAI,cAAAH,mBAAA,uBAAlBA,mBAAA,CAAoBE,KAAM;QACjCE,KAAK,GAAAH,oBAAA,GAAEF,aAAa,CAACI,IAAI,cAAAF,oBAAA,uBAAlBA,oBAAA,CAAoBG,KAAM;QAAAN,QAAA,EAEhCZ;MAAoB,GAJhB1B,UAAU,CAACuC,aAAa,CAKtB,CAAC;IAEd;IAEA,OAAOb,oBAAoB,CAACa,aAAa,CAAC;EAC5C,CAAC,EACD,CAACb,oBAAoB,CACvB,CAAC;EAED,OAAAmB,aAAA,CAAAA,aAAA,KACKvB,KAAK;IACRgB,QAAQ;IACRT,gBAAgB;IAChBG,GAAG;IACHY,KAAK,EAAE9B,eAAe;IACtBK,WAAW,EAAEe,iBAAiB;IAC9BvB,kBAAkB,EAAEwB,wBAAwB;IAC5CvB,YAAY,EAAEwB,kBAAkB;IAChClB,iBAAiB,EAAEmB,uBAAuB;IAC1CrB,YAAY,EAAEiB;EAAoB;AAEtC;AAEA,eAAexB,wBAAwB","ignoreList":[]}
1
+ {"version":3,"file":"usePickerNormalizedProps.js","names":["useCallback","useMemo","EMPTY_FUNCTION","getItemKey","isNormalizedSection","normalizeTooltipOptions","useRenderNormalizedItem","useStringifiedSelection","usePickerScrollOnOpen","Section","jsx","_jsx","usePickerNormalizedProps","_ref","defaultSelectedKey","disabledKeys","getInitialScrollPosition","normalizedItems","onChange","onOpenChange","_ref$onScroll","onScroll","onSelectionChange","selectedKey","showItemIcons","_ref$tooltip","tooltip","props","_objectWithoutProperties","_excluded","tooltipOptions","renderNormalizedItem","itemIconSlot","showItemDescriptions","forceRerenderKey","concat","placement","_usePickerScrollOnOpe","ref","onOpenChangeInternal","_useStringifiedSelect","selectedStringKey","defaultSelectedStringKey","disabledStringKeys","onStringSelectionChange","children","itemOrSection","_itemOrSection$item","_itemOrSection$item2","title","item","items","_objectSpread"],"sources":["../../../src/spectrum/picker/usePickerNormalizedProps.tsx"],"sourcesContent":["import { useCallback, useMemo } from 'react';\nimport { EMPTY_FUNCTION } from '@deephaven/utils';\nimport type { DOMRef, Key } from '@react-types/shared';\nimport {\n getItemKey,\n isNormalizedSection,\n type NormalizedItem,\n type NormalizedSection,\n normalizeTooltipOptions,\n useRenderNormalizedItem,\n useStringifiedSelection,\n} from '../utils';\nimport { type PickerNormalizedPropsT } from './PickerProps';\nimport { usePickerScrollOnOpen } from './usePickerScrollOnOpen';\nimport { Section } from '../shared';\n\n/** Props that are derived by `usePickerNormalizedProps` */\nexport type UsePickerNormalizedDerivedProps<THtml extends HTMLElement> = {\n children: (itemOrSection: NormalizedItem | NormalizedSection) => JSX.Element;\n forceRerenderKey: Key;\n items: (NormalizedItem | NormalizedSection)[];\n defaultSelectedKey?: Key;\n disabledKeys?: Iterable<Key>;\n ref: DOMRef<THtml>;\n selectedKey?: Key | null;\n onSelectionChange: (key: Key | null) => void;\n onOpenChange: (isOpen: boolean) => void;\n};\n\n/**\n * Props that are passed through untouched. (should exclude all of the\n * destructured props passed into `usePickerNormalizedProps` that are not in the\n * spread ...props)\n */\nexport type UsePickerNormalizedPassthroughProps<TProps> = Omit<\n PickerNormalizedPropsT<TProps>,\n | 'defaultSelectedKey'\n | 'disabledKeys'\n | 'getInitialScrollPosition'\n | 'normalizedItems'\n | 'onChange'\n | 'onOpenChange'\n | 'onScroll'\n | 'onSelectionChange'\n | 'selectedKey'\n | 'showItemIcons'\n | 'tooltip'\n>;\n\n/** Props returned from `usePickerNormalizedProps` hook. */\nexport type UsePickerNormalizedProps<\n TProps,\n THtml extends HTMLElement,\n> = UsePickerNormalizedDerivedProps<THtml> &\n UsePickerNormalizedPassthroughProps<TProps>;\n\nexport function usePickerNormalizedProps<\n TProps,\n THtml extends HTMLElement = HTMLElement,\n>({\n defaultSelectedKey,\n disabledKeys,\n getInitialScrollPosition,\n normalizedItems,\n onChange,\n onOpenChange,\n onScroll = EMPTY_FUNCTION,\n onSelectionChange,\n selectedKey,\n showItemIcons,\n tooltip = true,\n ...props\n}: PickerNormalizedPropsT<TProps>): UsePickerNormalizedProps<TProps, THtml> {\n const tooltipOptions = useMemo(\n () => normalizeTooltipOptions(tooltip),\n [tooltip]\n );\n\n const renderNormalizedItem = useRenderNormalizedItem({\n itemIconSlot: 'icon',\n // Descriptions introduce variable item heights which throws off calculation\n // of initial scroll position and setting viewport on windowed data. For now\n // not going to implement description support in Picker.\n // https://github.com/deephaven/web-client-ui/issues/1958\n showItemDescriptions: false,\n showItemIcons,\n tooltipOptions,\n });\n\n // Spectrum doesn't re-render if only the `renderNormalizedItems` function\n // changes, so we create a key from its dependencies that can be used to force\n // re-render.\n const forceRerenderKey = `${showItemIcons}-${tooltipOptions?.placement}`;\n\n const { ref, onOpenChange: onOpenChangeInternal } =\n usePickerScrollOnOpen<THtml>({\n getInitialScrollPosition,\n onScroll,\n onOpenChange,\n });\n\n // Spectrum Picker treats keys as strings if the `key` prop is explicitly\n // set on `Item` elements. Since we do this in `renderItem`, we need to\n // map original key types to and from strings so that selection works.\n const {\n selectedStringKey,\n defaultSelectedStringKey,\n disabledStringKeys,\n onStringSelectionChange,\n } = useStringifiedSelection({\n normalizedItems,\n selectedKey,\n defaultSelectedKey,\n disabledKeys,\n onChange: onChange ?? onSelectionChange,\n });\n\n const children = useCallback(\n (itemOrSection: NormalizedItem | NormalizedSection) => {\n if (isNormalizedSection(itemOrSection)) {\n return (\n <Section\n key={getItemKey(itemOrSection)}\n title={itemOrSection.item?.title}\n items={itemOrSection.item?.items}\n >\n {renderNormalizedItem}\n </Section>\n );\n }\n\n return renderNormalizedItem(itemOrSection);\n },\n [renderNormalizedItem]\n );\n\n return {\n ...props,\n children,\n forceRerenderKey,\n ref,\n items: normalizedItems,\n selectedKey: selectedStringKey,\n defaultSelectedKey: defaultSelectedStringKey,\n disabledKeys: disabledStringKeys,\n onSelectionChange: onStringSelectionChange,\n onOpenChange: onOpenChangeInternal,\n };\n}\n\nexport default usePickerNormalizedProps;\n"],"mappings":"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","ignoreList":[]}
@@ -25,44 +25,41 @@ import usePickerScrollOnOpen from "./usePickerScrollOnOpen.js";
25
25
  * is opened.
26
26
  */
27
27
  export function usePickerProps(_ref) {
28
- var {
29
- children,
30
- defaultSelectedKey,
31
- selectedKey,
32
- tooltip = true,
33
- onChange: onChangeHandler,
34
- onOpenChange: onOpenChangeHandler,
35
- onScroll = EMPTY_FUNCTION,
36
- onSelectionChange: onSelectionChangeHandler
37
- } = _ref,
28
+ var children = _ref.children,
29
+ defaultSelectedKey = _ref.defaultSelectedKey,
30
+ selectedKey = _ref.selectedKey,
31
+ _ref$tooltip = _ref.tooltip,
32
+ tooltip = _ref$tooltip === void 0 ? true : _ref$tooltip,
33
+ onChangeHandler = _ref.onChange,
34
+ onOpenChangeHandler = _ref.onOpenChange,
35
+ _ref$onScroll = _ref.onScroll,
36
+ onScroll = _ref$onScroll === void 0 ? EMPTY_FUNCTION : _ref$onScroll,
37
+ onSelectionChangeHandler = _ref.onSelectionChange,
38
38
  props = _objectWithoutProperties(_ref, _excluded);
39
- var {
40
- itemHeight
41
- } = usePickerItemScale();
39
+ var _usePickerItemScale = usePickerItemScale(),
40
+ itemHeight = _usePickerItemScale.itemHeight;
42
41
  var tooltipOptions = useMemo(() => normalizeTooltipOptions(tooltip), [tooltip]);
43
42
  var items = useMemo(() => ensureArray(wrapItemChildren(children !== null && children !== void 0 ? children : [], tooltipOptions)), [children, tooltipOptions]);
44
- var {
45
- selectedKeyMaybeUncontrolled,
46
- onChangeMaybeUncontrolled
47
- } = useOnChangeTrackUncontrolled({
48
- defaultSelectedKey,
49
- selectedKey,
50
- onChange: onChangeHandler !== null && onChangeHandler !== void 0 ? onChangeHandler : onSelectionChangeHandler
51
- });
43
+ var _useOnChangeTrackUnco = useOnChangeTrackUncontrolled({
44
+ defaultSelectedKey,
45
+ selectedKey,
46
+ onChange: onChangeHandler !== null && onChangeHandler !== void 0 ? onChangeHandler : onSelectionChangeHandler
47
+ }),
48
+ selectedKeyMaybeUncontrolled = _useOnChangeTrackUnco.selectedKeyMaybeUncontrolled,
49
+ onChangeMaybeUncontrolled = _useOnChangeTrackUnco.onChangeMaybeUncontrolled;
52
50
  var getInitialScrollPosition = useStaticItemInitialScrollPosition({
53
51
  itemHeight,
54
52
  items,
55
53
  selectedKey: selectedKeyMaybeUncontrolled,
56
54
  topOffset: PICKER_TOP_OFFSET
57
55
  });
58
- var {
59
- ref,
60
- onOpenChange
61
- } = usePickerScrollOnOpen({
62
- getInitialScrollPosition,
63
- onScroll,
64
- onOpenChange: onOpenChangeHandler
65
- });
56
+ var _usePickerScrollOnOpe = usePickerScrollOnOpen({
57
+ getInitialScrollPosition,
58
+ onScroll,
59
+ onOpenChange: onOpenChangeHandler
60
+ }),
61
+ ref = _usePickerScrollOnOpe.ref,
62
+ onOpenChange = _usePickerScrollOnOpe.onOpenChange;
66
63
  return _objectSpread(_objectSpread({}, props), {}, {
67
64
  defaultSelectedKey,
68
65
  ref,
@@ -1 +1 @@
1
- {"version":3,"file":"usePickerProps.js","names":["EMPTY_FUNCTION","ensureArray","useMemo","PICKER_TOP_OFFSET","normalizeTooltipOptions","wrapItemChildren","useOnChangeTrackUncontrolled","useStaticItemInitialScrollPosition","usePickerItemScale","usePickerScrollOnOpen","usePickerProps","_ref","children","defaultSelectedKey","selectedKey","tooltip","onChange","onChangeHandler","onOpenChange","onOpenChangeHandler","onScroll","onSelectionChange","onSelectionChangeHandler","props","_objectWithoutProperties","_excluded","itemHeight","tooltipOptions","items","selectedKeyMaybeUncontrolled","onChangeMaybeUncontrolled","getInitialScrollPosition","topOffset","ref","_objectSpread"],"sources":["../../../src/spectrum/picker/usePickerProps.ts"],"sourcesContent":["import { EMPTY_FUNCTION, ensureArray } from '@deephaven/utils';\nimport { type DOMRef } from '@react-types/shared';\nimport { useMemo } from 'react';\nimport { PICKER_TOP_OFFSET } from '../../UIConstants';\nimport {\n normalizeTooltipOptions,\n wrapItemChildren,\n useOnChangeTrackUncontrolled,\n useStaticItemInitialScrollPosition,\n type ItemKey,\n type SectionElement,\n type ItemElement,\n} from '../utils';\nimport type { PickerPropsT } from './PickerProps';\nimport usePickerItemScale from './usePickerItemScale';\nimport usePickerScrollOnOpen from './usePickerScrollOnOpen';\n\n/** Props that are derived by `usePickerProps`. */\nexport type UsePickerDerivedProps<THtml extends HTMLElement> = {\n children: (SectionElement<unknown> | ItemElement<unknown>)[];\n defaultSelectedKey?: ItemKey | undefined;\n ref: DOMRef<THtml>;\n selectedKey?: ItemKey | null | undefined;\n onOpenChange: (isOpen: boolean) => void;\n onSelectionChange: ((key: ItemKey | null) => void) | undefined;\n};\n\n/** \n * Props that are passed through untouched. (should exclude all of the\n * destructured props passed into `usePickerProps` that are not in the spread\n * ...props)\n) */\nexport type UsePickerPassthroughProps<TProps> = Omit<\n PickerPropsT<TProps>,\n | 'children'\n | 'defaultSelectedKey'\n | 'selectedKey'\n | 'tooltip'\n | 'onChange'\n | 'onOpenChange'\n | 'onScroll'\n | 'onSelectionChange'\n>;\n\n/** Props returned from `usePickerProps` hook. */\nexport type UsePickerProps<\n TProps,\n THtml extends HTMLElement,\n> = UsePickerDerivedProps<THtml> & UsePickerPassthroughProps<TProps>;\n\n/**\n * Derive props for Picker components (e.g. Picker and ComboBox). Specifically\n * handles wrapping children items and initial scroll position when the picker\n * is opened.\n */\nexport function usePickerProps<\n TProps,\n THtml extends HTMLElement = HTMLElement,\n>({\n children,\n defaultSelectedKey,\n selectedKey,\n tooltip = true,\n onChange: onChangeHandler,\n onOpenChange: onOpenChangeHandler,\n onScroll = EMPTY_FUNCTION,\n onSelectionChange: onSelectionChangeHandler,\n ...props\n}: PickerPropsT<TProps>): UsePickerProps<TProps, THtml> {\n const { itemHeight } = usePickerItemScale();\n\n const tooltipOptions = useMemo(\n () => normalizeTooltipOptions(tooltip),\n [tooltip]\n );\n\n const items = useMemo(\n () => ensureArray(wrapItemChildren(children ?? [], tooltipOptions)),\n [children, tooltipOptions]\n );\n\n const { selectedKeyMaybeUncontrolled, onChangeMaybeUncontrolled } =\n useOnChangeTrackUncontrolled({\n defaultSelectedKey,\n selectedKey,\n onChange: onChangeHandler ?? onSelectionChangeHandler,\n });\n\n const getInitialScrollPosition = useStaticItemInitialScrollPosition({\n itemHeight,\n items,\n selectedKey: selectedKeyMaybeUncontrolled,\n topOffset: PICKER_TOP_OFFSET,\n });\n\n const { ref, onOpenChange } = usePickerScrollOnOpen<THtml>({\n getInitialScrollPosition,\n onScroll,\n onOpenChange: onOpenChangeHandler,\n });\n\n return {\n ...props,\n defaultSelectedKey,\n ref,\n selectedKey,\n children: items,\n onOpenChange,\n onSelectionChange: onChangeMaybeUncontrolled,\n };\n}\n\nexport default usePickerProps;\n"],"mappings":";;;;;;;;AAAA,SAASA,cAAc,EAAEC,WAAW,QAAQ,kBAAkB;AAE9D,SAASC,OAAO,QAAQ,OAAO;AAAC,SACvBC,iBAAiB;AAAA,SAExBC,uBAAuB,EACvBC,gBAAgB,EAChBC,4BAA4B,EAC5BC,kCAAkC;AAAA,OAM7BC,kBAAkB;AAAA,OAClBC,qBAAqB;AAE5B;AAUA;AACA;AACA;AACA;AACA;AAaA;AAMA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,cAAcA,CAAAC,IAAA,EAa0B;EAAA,IAVtD;MACAC,QAAQ;MACRC,kBAAkB;MAClBC,WAAW;MACXC,OAAO,GAAG,IAAI;MACdC,QAAQ,EAAEC,eAAe;MACzBC,YAAY,EAAEC,mBAAmB;MACjCC,QAAQ,GAAGpB,cAAc;MACzBqB,iBAAiB,EAAEC;IAEC,CAAC,GAAAX,IAAA;IADlBY,KAAK,GAAAC,wBAAA,CAAAb,IAAA,EAAAc,SAAA;EAER,IAAM;IAAEC;EAAW,CAAC,GAAGlB,kBAAkB,CAAC,CAAC;EAE3C,IAAMmB,cAAc,GAAGzB,OAAO,CAC5B,MAAME,uBAAuB,CAACW,OAAO,CAAC,EACtC,CAACA,OAAO,CACV,CAAC;EAED,IAAMa,KAAK,GAAG1B,OAAO,CACnB,MAAMD,WAAW,CAACI,gBAAgB,CAACO,QAAQ,aAARA,QAAQ,cAARA,QAAQ,GAAI,EAAE,EAAEe,cAAc,CAAC,CAAC,EACnE,CAACf,QAAQ,EAAEe,cAAc,CAC3B,CAAC;EAED,IAAM;IAAEE,4BAA4B;IAAEC;EAA0B,CAAC,GAC/DxB,4BAA4B,CAAC;IAC3BO,kBAAkB;IAClBC,WAAW;IACXE,QAAQ,EAAEC,eAAe,aAAfA,eAAe,cAAfA,eAAe,GAAIK;EAC/B,CAAC,CAAC;EAEJ,IAAMS,wBAAwB,GAAGxB,kCAAkC,CAAC;IAClEmB,UAAU;IACVE,KAAK;IACLd,WAAW,EAAEe,4BAA4B;IACzCG,SAAS,EAAE7B;EACb,CAAC,CAAC;EAEF,IAAM;IAAE8B,GAAG;IAAEf;EAAa,CAAC,GAAGT,qBAAqB,CAAQ;IACzDsB,wBAAwB;IACxBX,QAAQ;IACRF,YAAY,EAAEC;EAChB,CAAC,CAAC;EAEF,OAAAe,aAAA,CAAAA,aAAA,KACKX,KAAK;IACRV,kBAAkB;IAClBoB,GAAG;IACHnB,WAAW;IACXF,QAAQ,EAAEgB,KAAK;IACfV,YAAY;IACZG,iBAAiB,EAAES;EAAyB;AAEhD;AAEA,eAAepB,cAAc","ignoreList":[]}
1
+ {"version":3,"file":"usePickerProps.js","names":["EMPTY_FUNCTION","ensureArray","useMemo","PICKER_TOP_OFFSET","normalizeTooltipOptions","wrapItemChildren","useOnChangeTrackUncontrolled","useStaticItemInitialScrollPosition","usePickerItemScale","usePickerScrollOnOpen","usePickerProps","_ref","children","defaultSelectedKey","selectedKey","_ref$tooltip","tooltip","onChangeHandler","onChange","onOpenChangeHandler","onOpenChange","_ref$onScroll","onScroll","onSelectionChangeHandler","onSelectionChange","props","_objectWithoutProperties","_excluded","_usePickerItemScale","itemHeight","tooltipOptions","items","_useOnChangeTrackUnco","selectedKeyMaybeUncontrolled","onChangeMaybeUncontrolled","getInitialScrollPosition","topOffset","_usePickerScrollOnOpe","ref","_objectSpread"],"sources":["../../../src/spectrum/picker/usePickerProps.ts"],"sourcesContent":["import { EMPTY_FUNCTION, ensureArray } from '@deephaven/utils';\nimport { type DOMRef } from '@react-types/shared';\nimport { useMemo } from 'react';\nimport { PICKER_TOP_OFFSET } from '../../UIConstants';\nimport {\n normalizeTooltipOptions,\n wrapItemChildren,\n useOnChangeTrackUncontrolled,\n useStaticItemInitialScrollPosition,\n type ItemKey,\n type SectionElement,\n type ItemElement,\n} from '../utils';\nimport type { PickerPropsT } from './PickerProps';\nimport usePickerItemScale from './usePickerItemScale';\nimport usePickerScrollOnOpen from './usePickerScrollOnOpen';\n\n/** Props that are derived by `usePickerProps`. */\nexport type UsePickerDerivedProps<THtml extends HTMLElement> = {\n children: (SectionElement<unknown> | ItemElement<unknown>)[];\n defaultSelectedKey?: ItemKey | undefined;\n ref: DOMRef<THtml>;\n selectedKey?: ItemKey | null | undefined;\n onOpenChange: (isOpen: boolean) => void;\n onSelectionChange: ((key: ItemKey | null) => void) | undefined;\n};\n\n/** \n * Props that are passed through untouched. (should exclude all of the\n * destructured props passed into `usePickerProps` that are not in the spread\n * ...props)\n) */\nexport type UsePickerPassthroughProps<TProps> = Omit<\n PickerPropsT<TProps>,\n | 'children'\n | 'defaultSelectedKey'\n | 'selectedKey'\n | 'tooltip'\n | 'onChange'\n | 'onOpenChange'\n | 'onScroll'\n | 'onSelectionChange'\n>;\n\n/** Props returned from `usePickerProps` hook. */\nexport type UsePickerProps<\n TProps,\n THtml extends HTMLElement,\n> = UsePickerDerivedProps<THtml> & UsePickerPassthroughProps<TProps>;\n\n/**\n * Derive props for Picker components (e.g. Picker and ComboBox). Specifically\n * handles wrapping children items and initial scroll position when the picker\n * is opened.\n */\nexport function usePickerProps<\n TProps,\n THtml extends HTMLElement = HTMLElement,\n>({\n children,\n defaultSelectedKey,\n selectedKey,\n tooltip = true,\n onChange: onChangeHandler,\n onOpenChange: onOpenChangeHandler,\n onScroll = EMPTY_FUNCTION,\n onSelectionChange: onSelectionChangeHandler,\n ...props\n}: PickerPropsT<TProps>): UsePickerProps<TProps, THtml> {\n const { itemHeight } = usePickerItemScale();\n\n const tooltipOptions = useMemo(\n () => normalizeTooltipOptions(tooltip),\n [tooltip]\n );\n\n const items = useMemo(\n () => ensureArray(wrapItemChildren(children ?? [], tooltipOptions)),\n [children, tooltipOptions]\n );\n\n const { selectedKeyMaybeUncontrolled, onChangeMaybeUncontrolled } =\n useOnChangeTrackUncontrolled({\n defaultSelectedKey,\n selectedKey,\n onChange: onChangeHandler ?? onSelectionChangeHandler,\n });\n\n const getInitialScrollPosition = useStaticItemInitialScrollPosition({\n itemHeight,\n items,\n selectedKey: selectedKeyMaybeUncontrolled,\n topOffset: PICKER_TOP_OFFSET,\n });\n\n const { ref, onOpenChange } = usePickerScrollOnOpen<THtml>({\n getInitialScrollPosition,\n onScroll,\n onOpenChange: onOpenChangeHandler,\n });\n\n return {\n ...props,\n defaultSelectedKey,\n ref,\n selectedKey,\n children: items,\n onOpenChange,\n onSelectionChange: onChangeMaybeUncontrolled,\n };\n}\n\nexport default usePickerProps;\n"],"mappings":";;;;;;;;AAAA,SAASA,cAAc,EAAEC,WAAW,QAAQ,kBAAkB;AAE9D,SAASC,OAAO,QAAQ,OAAO;AAAC,SACvBC,iBAAiB;AAAA,SAExBC,uBAAuB,EACvBC,gBAAgB,EAChBC,4BAA4B,EAC5BC,kCAAkC;AAAA,OAM7BC,kBAAkB;AAAA,OAClBC,qBAAqB;AAE5B;AAUA;AACA;AACA;AACA;AACA;AAaA;AAMA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,cAAcA,CAAAC,IAAA,EAa0B;EAAA,IATtDC,QAAQ,GAAAD,IAAA,CAARC,QAAQ;IACRC,kBAAkB,GAAAF,IAAA,CAAlBE,kBAAkB;IAClBC,WAAW,GAAAH,IAAA,CAAXG,WAAW;IAAAC,YAAA,GAAAJ,IAAA,CACXK,OAAO;IAAPA,OAAO,GAAAD,YAAA,cAAG,IAAI,GAAAA,YAAA;IACJE,eAAe,GAAAN,IAAA,CAAzBO,QAAQ;IACMC,mBAAmB,GAAAR,IAAA,CAAjCS,YAAY;IAAAC,aAAA,GAAAV,IAAA,CACZW,QAAQ;IAARA,QAAQ,GAAAD,aAAA,cAAGrB,cAAc,GAAAqB,aAAA;IACNE,wBAAwB,GAAAZ,IAAA,CAA3Ca,iBAAiB;IACdC,KAAK,GAAAC,wBAAA,CAAAf,IAAA,EAAAgB,SAAA;EAER,IAAAC,mBAAA,GAAuBpB,kBAAkB,CAAC,CAAC;IAAnCqB,UAAU,GAAAD,mBAAA,CAAVC,UAAU;EAElB,IAAMC,cAAc,GAAG5B,OAAO,CAC5B,MAAME,uBAAuB,CAACY,OAAO,CAAC,EACtC,CAACA,OAAO,CACV,CAAC;EAED,IAAMe,KAAK,GAAG7B,OAAO,CACnB,MAAMD,WAAW,CAACI,gBAAgB,CAACO,QAAQ,aAARA,QAAQ,cAARA,QAAQ,GAAI,EAAE,EAAEkB,cAAc,CAAC,CAAC,EACnE,CAAClB,QAAQ,EAAEkB,cAAc,CAC3B,CAAC;EAED,IAAAE,qBAAA,GACE1B,4BAA4B,CAAC;MAC3BO,kBAAkB;MAClBC,WAAW;MACXI,QAAQ,EAAED,eAAe,aAAfA,eAAe,cAAfA,eAAe,GAAIM;IAC/B,CAAC,CAAC;IALIU,4BAA4B,GAAAD,qBAAA,CAA5BC,4BAA4B;IAAEC,yBAAyB,GAAAF,qBAAA,CAAzBE,yBAAyB;EAO/D,IAAMC,wBAAwB,GAAG5B,kCAAkC,CAAC;IAClEsB,UAAU;IACVE,KAAK;IACLjB,WAAW,EAAEmB,4BAA4B;IACzCG,SAAS,EAAEjC;EACb,CAAC,CAAC;EAEF,IAAAkC,qBAAA,GAA8B5B,qBAAqB,CAAQ;MACzD0B,wBAAwB;MACxBb,QAAQ;MACRF,YAAY,EAAED;IAChB,CAAC,CAAC;IAJMmB,GAAG,GAAAD,qBAAA,CAAHC,GAAG;IAAElB,YAAY,GAAAiB,qBAAA,CAAZjB,YAAY;EAMzB,OAAAmB,aAAA,CAAAA,aAAA,KACKd,KAAK;IACRZ,kBAAkB;IAClByB,GAAG;IACHxB,WAAW;IACXF,QAAQ,EAAEmB,KAAK;IACfX,YAAY;IACZI,iBAAiB,EAAEU;EAAyB;AAEhD;AAEA,eAAexB,cAAc","ignoreList":[]}
@@ -10,15 +10,12 @@ import { findSpectrumPickerScrollArea, usePopoverOnScrollRef } from '@deephaven/
10
10
  * events for the Picker.
11
11
  */
12
12
  export function usePickerScrollOnOpen(_ref) {
13
- var {
14
- getInitialScrollPosition,
15
- onScroll,
16
- onOpenChange
17
- } = _ref;
18
- var {
19
- ref,
20
- onOpenChange: popoverOnOpenChange
21
- } = usePopoverOnScrollRef(findSpectrumPickerScrollArea, onScroll, getInitialScrollPosition);
13
+ var getInitialScrollPosition = _ref.getInitialScrollPosition,
14
+ onScroll = _ref.onScroll,
15
+ onOpenChange = _ref.onOpenChange;
16
+ var _usePopoverOnScrollRe = usePopoverOnScrollRef(findSpectrumPickerScrollArea, onScroll, getInitialScrollPosition),
17
+ ref = _usePopoverOnScrollRe.ref,
18
+ popoverOnOpenChange = _usePopoverOnScrollRe.onOpenChange;
22
19
  var onOpenChangeInternal = useCallback((isOpen, menuTrigger) => {
23
20
  // Attach scroll event handling
24
21
  popoverOnOpenChange(isOpen);