@deephaven/components 1.19.1-console-types-fixes.0 → 1.21.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 (78) hide show
  1. package/dist/shortcuts/GlobalShortcuts.js +2 -2
  2. package/dist/shortcuts/GlobalShortcuts.js.map +1 -1
  3. package/dist/spectrum/comboBox/ComboBox.d.ts +1 -1
  4. package/dist/spectrum/index.d.ts +1 -0
  5. package/dist/spectrum/index.d.ts.map +1 -1
  6. package/dist/spectrum/index.js +1 -0
  7. package/dist/spectrum/index.js.map +1 -1
  8. package/dist/spectrum/listView/ListView.d.ts +1 -1
  9. package/dist/spectrum/listView/ListView.d.ts.map +1 -1
  10. package/dist/spectrum/listView/ListView.js.map +1 -1
  11. package/dist/spectrum/multiSelect/MultiSelect.css +326 -0
  12. package/dist/spectrum/multiSelect/MultiSelect.css.map +1 -0
  13. package/dist/spectrum/multiSelect/MultiSelect.d.ts +7 -0
  14. package/dist/spectrum/multiSelect/MultiSelect.d.ts.map +1 -0
  15. package/dist/spectrum/multiSelect/MultiSelect.js +445 -0
  16. package/dist/spectrum/multiSelect/MultiSelect.js.map +1 -0
  17. package/dist/spectrum/multiSelect/MultiSelectListBox.d.ts +29 -0
  18. package/dist/spectrum/multiSelect/MultiSelectListBox.d.ts.map +1 -0
  19. package/dist/spectrum/multiSelect/MultiSelectListBox.js +41 -0
  20. package/dist/spectrum/multiSelect/MultiSelectListBox.js.map +1 -0
  21. package/dist/spectrum/multiSelect/MultiSelectNormalized.d.ts +8 -0
  22. package/dist/spectrum/multiSelect/MultiSelectNormalized.d.ts.map +1 -0
  23. package/dist/spectrum/multiSelect/MultiSelectNormalized.js +37 -0
  24. package/dist/spectrum/multiSelect/MultiSelectNormalized.js.map +1 -0
  25. package/dist/spectrum/multiSelect/MultiSelectProps.d.ts +121 -0
  26. package/dist/spectrum/multiSelect/MultiSelectProps.d.ts.map +1 -0
  27. package/dist/spectrum/multiSelect/MultiSelectProps.js +2 -0
  28. package/dist/spectrum/multiSelect/MultiSelectProps.js.map +1 -0
  29. package/dist/spectrum/multiSelect/MultiSelectTag.d.ts +14 -0
  30. package/dist/spectrum/multiSelect/MultiSelectTag.d.ts.map +1 -0
  31. package/dist/spectrum/multiSelect/MultiSelectTag.js +36 -0
  32. package/dist/spectrum/multiSelect/MultiSelectTag.js.map +1 -0
  33. package/dist/spectrum/multiSelect/index.d.ts +4 -0
  34. package/dist/spectrum/multiSelect/index.d.ts.map +1 -0
  35. package/dist/spectrum/multiSelect/index.js +4 -0
  36. package/dist/spectrum/multiSelect/index.js.map +1 -0
  37. package/dist/spectrum/multiSelect/multiSelectUtils.d.ts +53 -0
  38. package/dist/spectrum/multiSelect/multiSelectUtils.d.ts.map +1 -0
  39. package/dist/spectrum/multiSelect/multiSelectUtils.js +166 -0
  40. package/dist/spectrum/multiSelect/multiSelectUtils.js.map +1 -0
  41. package/dist/spectrum/multiSelect/useMultiSelectFilter.d.ts +27 -0
  42. package/dist/spectrum/multiSelect/useMultiSelectFilter.d.ts.map +1 -0
  43. package/dist/spectrum/multiSelect/useMultiSelectFilter.js +51 -0
  44. package/dist/spectrum/multiSelect/useMultiSelectFilter.js.map +1 -0
  45. package/dist/spectrum/multiSelect/useMultiSelectKeyboard.d.ts +40 -0
  46. package/dist/spectrum/multiSelect/useMultiSelectKeyboard.d.ts.map +1 -0
  47. package/dist/spectrum/multiSelect/useMultiSelectKeyboard.js +200 -0
  48. package/dist/spectrum/multiSelect/useMultiSelectKeyboard.js.map +1 -0
  49. package/dist/spectrum/multiSelect/useMultiSelectLoadingSpinner.d.ts +11 -0
  50. package/dist/spectrum/multiSelect/useMultiSelectLoadingSpinner.d.ts.map +1 -0
  51. package/dist/spectrum/multiSelect/useMultiSelectLoadingSpinner.js +44 -0
  52. package/dist/spectrum/multiSelect/useMultiSelectLoadingSpinner.js.map +1 -0
  53. package/dist/spectrum/multiSelect/useMultiSelectNormalizedProps.d.ts +21 -0
  54. package/dist/spectrum/multiSelect/useMultiSelectNormalizedProps.d.ts.map +1 -0
  55. package/dist/spectrum/multiSelect/useMultiSelectNormalizedProps.js +83 -0
  56. package/dist/spectrum/multiSelect/useMultiSelectNormalizedProps.js.map +1 -0
  57. package/dist/spectrum/multiSelect/useMultiSelectScrollListener.d.ts +17 -0
  58. package/dist/spectrum/multiSelect/useMultiSelectScrollListener.d.ts.map +1 -0
  59. package/dist/spectrum/multiSelect/useMultiSelectScrollListener.js +55 -0
  60. package/dist/spectrum/multiSelect/useMultiSelectScrollListener.js.map +1 -0
  61. package/dist/spectrum/multiSelect/useMultiSelectState.d.ts +26 -0
  62. package/dist/spectrum/multiSelect/useMultiSelectState.d.ts.map +1 -0
  63. package/dist/spectrum/multiSelect/useMultiSelectState.js +67 -0
  64. package/dist/spectrum/multiSelect/useMultiSelectState.js.map +1 -0
  65. package/dist/spectrum/picker/Picker.d.ts +1 -1
  66. package/dist/spectrum/picker/PickerProps.d.ts +1 -1
  67. package/dist/spectrum/picker/PickerProps.d.ts.map +1 -1
  68. package/dist/spectrum/picker/PickerProps.js.map +1 -1
  69. package/dist/spectrum/picker/usePickerProps.js +1 -1
  70. package/dist/spectrum/picker/usePickerProps.js.map +1 -1
  71. package/dist/spectrum/utils/itemWrapperUtils.d.ts +1 -1
  72. package/dist/spectrum/utils/itemWrapperUtils.d.ts.map +1 -1
  73. package/dist/spectrum/utils/itemWrapperUtils.js +3 -0
  74. package/dist/spectrum/utils/itemWrapperUtils.js.map +1 -1
  75. package/dist/spectrum/utils/useStringifiedMultiSelection.d.ts.map +1 -1
  76. package/dist/spectrum/utils/useStringifiedMultiSelection.js +12 -1
  77. package/dist/spectrum/utils/useStringifiedMultiSelection.js.map +1 -1
  78. package/package.json +15 -8
@@ -0,0 +1,67 @@
1
+ import { useCallback, useMemo, useRef } from 'react';
2
+ import { useControlledState } from '@react-stately/utils';
3
+ import { itemSelectionToStringSet } from "../utils/index.js";
4
+ import { resolveSelection } from "./multiSelectUtils.js";
5
+ export function useMultiSelectState(_ref) {
6
+ var {
7
+ selectedKeys: propSelectedKeys,
8
+ defaultSelectedKeys,
9
+ disabledKeys: propDisabledKeys,
10
+ onChange: propOnChange,
11
+ onSelectionChange: propOnSelectionChange,
12
+ allKeys
13
+ } = _ref;
14
+ var controlledKeys = useMemo(() => propSelectedKeys !== undefined ? resolveSelection(propSelectedKeys, allKeys) : undefined, [propSelectedKeys, allKeys]);
15
+ var handleChange = useCallback(next => {
16
+ var callback = propOnChange !== null && propOnChange !== void 0 ? propOnChange : propOnSelectionChange;
17
+ callback === null || callback === void 0 || callback(next);
18
+ }, [propOnChange, propOnSelectionChange]);
19
+
20
+ // Resolve the initial default once. useControlledState only reads this on
21
+ // first render in uncontrolled mode and ignores it in controlled mode, so
22
+ // recomputing on every render would just allocate a throwaway Set.
23
+ var initialDefaultRef = useRef(undefined);
24
+ if (initialDefaultRef.current === undefined) {
25
+ initialDefaultRef.current = resolveSelection(defaultSelectedKeys, allKeys);
26
+ }
27
+ var [selectedKeys, setSelectedKeys] = useControlledState(controlledKeys, initialDefaultRef.current, handleChange);
28
+
29
+ // Mirror selectedKeys into a ref so toggleKey/applyListBoxSelection can
30
+ // read the latest value without re-creating on every change.
31
+ var selectedKeysRef = useRef(selectedKeys);
32
+ selectedKeysRef.current = selectedKeys;
33
+ var listBoxDisabledKeys = useMemo(() => itemSelectionToStringSet(propDisabledKeys), [propDisabledKeys]);
34
+ var toggleKey = useCallback(key => {
35
+ var next = new Set(selectedKeysRef.current);
36
+ if (next.has(key)) {
37
+ next.delete(key);
38
+ } else {
39
+ next.add(key);
40
+ }
41
+ setSelectedKeys(next);
42
+ }, [setSelectedKeys]);
43
+ var applyListBoxSelection = useCallback((selection, filteredItems) => {
44
+ if (selection === 'all') {
45
+ setSelectedKeys(new Set(allKeys));
46
+ return;
47
+ }
48
+
49
+ // Preserve selected keys for items not in the current filtered list.
50
+ // The ListBox only knows about rendered (filtered) items, so it can't
51
+ // manage selection state for items hidden by search filtering.
52
+ var filteredKeySet = new Set(filteredItems.map(i => i.key));
53
+ var next = new Set([...selectedKeysRef.current].filter(k => !filteredKeySet.has(k)));
54
+ selection.forEach(k => next.add(String(k)));
55
+ setSelectedKeys(next);
56
+ }, [allKeys, setSelectedKeys]);
57
+ var selectedKeyArray = useMemo(() => [...selectedKeys], [selectedKeys]);
58
+ return {
59
+ selectedKeys,
60
+ selectedKeyArray,
61
+ listBoxDisabledKeys,
62
+ toggleKey,
63
+ applyListBoxSelection
64
+ };
65
+ }
66
+ export default useMultiSelectState;
67
+ //# sourceMappingURL=useMultiSelectState.js.map
@@ -0,0 +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":[]}
@@ -9,7 +9,7 @@ import type { NormalizedItem } from '../utils';
9
9
  * See https://react-spectrum.adobe.com/react-spectrum/Picker.html
10
10
  */
11
11
  export declare const Picker: React.ForwardRefExoticComponent<Omit<SpectrumPickerProps<NormalizedItem>, "children" | "items" | "selectedKey" | "defaultSelectedKey" | "disabledKeys" | "onSelectionChange" | "defaultItems"> & {
12
- children: import("../utils").ItemOrSection | import("../utils").ItemOrSection[];
12
+ children?: import("../utils").ItemOrSection | import("../utils").ItemOrSection[] | null | undefined;
13
13
  tooltip?: boolean | import("../utils").TooltipOptions;
14
14
  selectedKey?: import("../utils").ItemKey | null;
15
15
  defaultSelectedKey?: import("../utils").ItemKey;
@@ -10,7 +10,7 @@ import type { ItemKey, ItemOrSection, NormalizedItem, NormalizedSection, Tooltip
10
10
  * - remaining props from the original type are passed through
11
11
  */
12
12
  export type PickerPropsT<TProps> = Omit<TProps, 'children' | 'onSelectionChange' | 'selectedKey' | 'defaultSelectedKey' | 'disabledKeys' | 'defaultItems' | 'items'> & {
13
- children: ItemOrSection | ItemOrSection[];
13
+ children?: ItemOrSection | ItemOrSection[] | null | undefined;
14
14
  /** Can be set to true or a TooltipOptions to enable item tooltips */
15
15
  tooltip?: boolean | TooltipOptions;
16
16
  /** The currently selected key in the collection (controlled). */
@@ -1 +1 @@
1
- {"version":3,"file":"PickerProps.d.ts","sourceRoot":"","sources":["../../../src/spectrum/picker/PickerProps.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,KAAK,EACV,OAAO,EACP,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,cAAc,EACf,MAAM,UAAU,CAAC;AAElB;;;;;;;;GAQG;AACH,MAAM,MAAM,YAAY,CAAC,MAAM,IAAI,IAAI,CACrC,MAAM,EAEJ,UAAU,GACV,mBAAmB,GACnB,aAAa,GACb,oBAAoB,GACpB,cAAc,GAId,cAAc,GACd,OAAO,CACV,GAAG;IACF,QAAQ,EAAE,aAAa,GAAG,aAAa,EAAE,CAAC;IAE1C,qEAAqE;IACrE,OAAO,CAAC,EAAE,OAAO,GAAG,cAAc,CAAC;IAEnC,iEAAiE;IACjE,WAAW,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAE7B,iEAAiE;IACjE,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAE7B;;;OAGG;IACH,YAAY,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;IAEjC;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,KAAK,IAAI,CAAC;IAEzC;;OAEG;IACH,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IAEzC,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAElC;;;OAGG;IACH,iBAAiB,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,KAAK,IAAI,CAAC;CACnD,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,sBAAsB,CAAC,MAAM,IAAI,IAAI,CAC/C,YAAY,CAAC,MAAM,CAAC,EACpB,UAAU,CACX,GAAG;IACF;;OAEG;IACH,eAAe,EAAE,CAAC,cAAc,GAAG,iBAAiB,CAAC,EAAE,CAAC;IAExD;;OAEG;IACH,aAAa,EAAE,OAAO,CAAC;IAEvB;;OAEG;IACH,wBAAwB,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;CACrE,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,YAAY,CAAC,mBAAmB,CAAC,cAAc,CAAC,CAAC,CAAC;AAC5E,MAAM,MAAM,qBAAqB,GAAG,sBAAsB,CAAC,WAAW,CAAC,CAAC"}
1
+ {"version":3,"file":"PickerProps.d.ts","sourceRoot":"","sources":["../../../src/spectrum/picker/PickerProps.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,KAAK,EACV,OAAO,EACP,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,cAAc,EACf,MAAM,UAAU,CAAC;AAElB;;;;;;;;GAQG;AACH,MAAM,MAAM,YAAY,CAAC,MAAM,IAAI,IAAI,CACrC,MAAM,EAEJ,UAAU,GACV,mBAAmB,GACnB,aAAa,GACb,oBAAoB,GACpB,cAAc,GAId,cAAc,GACd,OAAO,CACV,GAAG;IACF,QAAQ,CAAC,EAAE,aAAa,GAAG,aAAa,EAAE,GAAG,IAAI,GAAG,SAAS,CAAC;IAE9D,qEAAqE;IACrE,OAAO,CAAC,EAAE,OAAO,GAAG,cAAc,CAAC;IAEnC,iEAAiE;IACjE,WAAW,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAE7B,iEAAiE;IACjE,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAE7B;;;OAGG;IACH,YAAY,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;IAEjC;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,KAAK,IAAI,CAAC;IAEzC;;OAEG;IACH,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IAEzC,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAElC;;;OAGG;IACH,iBAAiB,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,KAAK,IAAI,CAAC;CACnD,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,sBAAsB,CAAC,MAAM,IAAI,IAAI,CAC/C,YAAY,CAAC,MAAM,CAAC,EACpB,UAAU,CACX,GAAG;IACF;;OAEG;IACH,eAAe,EAAE,CAAC,cAAc,GAAG,iBAAiB,CAAC,EAAE,CAAC;IAExD;;OAEG;IACH,aAAa,EAAE,OAAO,CAAC;IAEvB;;OAEG;IACH,wBAAwB,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;CACrE,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,YAAY,CAAC,mBAAmB,CAAC,cAAc,CAAC,CAAC,CAAC;AAC5E,MAAM,MAAM,qBAAqB,GAAG,sBAAsB,CAAC,WAAW,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"PickerProps.js","names":[],"sources":["../../../src/spectrum/picker/PickerProps.ts"],"sourcesContent":["import type { SpectrumPickerProps } from '@adobe/react-spectrum';\nimport type {\n ItemKey,\n ItemOrSection,\n NormalizedItem,\n NormalizedSection,\n TooltipOptions,\n} from '../utils';\n\n/**\n * Extend Spectrum Picker props (also other components that adhere to the same\n * apis such as ComboBox).\n * - `children` is extended to include primitive types and to exclude render function\n * - `items` and `defaultItems` are excluded since we are not currently supporting\n * render functions as `children`\n * - selection key types are extended to include number + boolean primitive types\n * - remaining props from the original type are passed through\n */\nexport type PickerPropsT<TProps> = Omit<\n TProps,\n // These props are all re-defined below\n | 'children'\n | 'onSelectionChange'\n | 'selectedKey'\n | 'defaultSelectedKey'\n | 'disabledKeys'\n // Excluding `defaultItems` and `items` since we are not currently supporting\n // a render function as `children`. This simplifies the API for determining\n // initial scroll position and wrapping items with tooltips.\n | 'defaultItems'\n | 'items'\n> & {\n children: ItemOrSection | ItemOrSection[];\n\n /** Can be set to true or a TooltipOptions to enable item tooltips */\n tooltip?: boolean | TooltipOptions;\n\n /** The currently selected key in the collection (controlled). */\n selectedKey?: ItemKey | null;\n\n /** The initial selected key in the collection (uncontrolled). */\n defaultSelectedKey?: ItemKey;\n\n /**\n * The item keys that are disabled. These items cannot be selected, focused,\n * or otherwise interacted with.\n */\n disabledKeys?: Iterable<ItemKey>;\n\n /**\n * Handler that is called when the selection change.\n * Note that under the hood, this is just an alias for Spectrum's\n * `onSelectionChange`. We are renaming for better consistency with other\n * components.\n */\n onChange?: (key: ItemKey | null) => void;\n\n /**\n * Method that is called when the open state of the menu changes.\n */\n onOpenChange?: (isOpen: boolean) => void;\n\n /** Handler that is called when the picker is scrolled. */\n onScroll?: (event: Event) => void;\n\n /**\n * Handler that is called when the selection changes.\n * @deprecated Use `onChange` instead\n */\n onSelectionChange?: (key: ItemKey | null) => void;\n};\n\n/**\n * Extend Picker props for usage with normalized items list instead of React\n * `children` elements.\n */\nexport type PickerNormalizedPropsT<TProps> = Omit<\n PickerPropsT<TProps>,\n 'children'\n> & {\n /**\n * Normalized format for items and sections instead React elements.\n */\n normalizedItems: (NormalizedItem | NormalizedSection)[];\n\n /**\n * Whether to show icons in items.\n */\n showItemIcons: boolean;\n\n /**\n * Get the initial scroll position to use when picker is opened.\n */\n getInitialScrollPosition?: () => Promise<number | null | undefined>;\n};\n\nexport type PickerProps = PickerPropsT<SpectrumPickerProps<NormalizedItem>>;\nexport type PickerNormalizedProps = PickerNormalizedPropsT<PickerProps>;\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"file":"PickerProps.js","names":[],"sources":["../../../src/spectrum/picker/PickerProps.ts"],"sourcesContent":["import type { SpectrumPickerProps } from '@adobe/react-spectrum';\nimport type {\n ItemKey,\n ItemOrSection,\n NormalizedItem,\n NormalizedSection,\n TooltipOptions,\n} from '../utils';\n\n/**\n * Extend Spectrum Picker props (also other components that adhere to the same\n * apis such as ComboBox).\n * - `children` is extended to include primitive types and to exclude render function\n * - `items` and `defaultItems` are excluded since we are not currently supporting\n * render functions as `children`\n * - selection key types are extended to include number + boolean primitive types\n * - remaining props from the original type are passed through\n */\nexport type PickerPropsT<TProps> = Omit<\n TProps,\n // These props are all re-defined below\n | 'children'\n | 'onSelectionChange'\n | 'selectedKey'\n | 'defaultSelectedKey'\n | 'disabledKeys'\n // Excluding `defaultItems` and `items` since we are not currently supporting\n // a render function as `children`. This simplifies the API for determining\n // initial scroll position and wrapping items with tooltips.\n | 'defaultItems'\n | 'items'\n> & {\n children?: ItemOrSection | ItemOrSection[] | null | undefined;\n\n /** Can be set to true or a TooltipOptions to enable item tooltips */\n tooltip?: boolean | TooltipOptions;\n\n /** The currently selected key in the collection (controlled). */\n selectedKey?: ItemKey | null;\n\n /** The initial selected key in the collection (uncontrolled). */\n defaultSelectedKey?: ItemKey;\n\n /**\n * The item keys that are disabled. These items cannot be selected, focused,\n * or otherwise interacted with.\n */\n disabledKeys?: Iterable<ItemKey>;\n\n /**\n * Handler that is called when the selection change.\n * Note that under the hood, this is just an alias for Spectrum's\n * `onSelectionChange`. We are renaming for better consistency with other\n * components.\n */\n onChange?: (key: ItemKey | null) => void;\n\n /**\n * Method that is called when the open state of the menu changes.\n */\n onOpenChange?: (isOpen: boolean) => void;\n\n /** Handler that is called when the picker is scrolled. */\n onScroll?: (event: Event) => void;\n\n /**\n * Handler that is called when the selection changes.\n * @deprecated Use `onChange` instead\n */\n onSelectionChange?: (key: ItemKey | null) => void;\n};\n\n/**\n * Extend Picker props for usage with normalized items list instead of React\n * `children` elements.\n */\nexport type PickerNormalizedPropsT<TProps> = Omit<\n PickerPropsT<TProps>,\n 'children'\n> & {\n /**\n * Normalized format for items and sections instead React elements.\n */\n normalizedItems: (NormalizedItem | NormalizedSection)[];\n\n /**\n * Whether to show icons in items.\n */\n showItemIcons: boolean;\n\n /**\n * Get the initial scroll position to use when picker is opened.\n */\n getInitialScrollPosition?: () => Promise<number | null | undefined>;\n};\n\nexport type PickerProps = PickerPropsT<SpectrumPickerProps<NormalizedItem>>;\nexport type PickerNormalizedProps = PickerNormalizedPropsT<PickerProps>;\n"],"mappings":"","ignoreList":[]}
@@ -40,7 +40,7 @@ export function usePickerProps(_ref) {
40
40
  itemHeight
41
41
  } = usePickerItemScale();
42
42
  var tooltipOptions = useMemo(() => normalizeTooltipOptions(tooltip), [tooltip]);
43
- var items = useMemo(() => ensureArray(wrapItemChildren(children, tooltipOptions)), [children, tooltipOptions]);
43
+ var items = useMemo(() => ensureArray(wrapItemChildren(children !== null && children !== void 0 ? children : [], tooltipOptions)), [children, tooltipOptions]);
44
44
  var {
45
45
  selectedKeyMaybeUncontrolled,
46
46
  onChangeMaybeUncontrolled
@@ -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,EAAEe,cAAc,CAAC,CAAC,EAC7D,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","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":[]}
@@ -17,7 +17,7 @@ export declare function wrapIcon(maybeIconKey: ReactNode, slot: ItemIconSlot): R
17
17
  * @param tooltipOptions The tooltip options to use when wrapping items
18
18
  * @returns The wrapped items or sections
19
19
  */
20
- export declare function wrapItemChildren<T>(itemsOrSections: ItemOrSection<T> | ItemOrSection<T>[], tooltipOptions: TooltipOptions | null): ItemElement<T> | SectionElement<T> | (ItemElement<T> | SectionElement<T>)[];
20
+ export declare function wrapItemChildren<T>(itemsOrSections: ItemOrSection<T> | ItemOrSection<T>[] | null | undefined, tooltipOptions: TooltipOptions | null): ItemElement<T> | SectionElement<T> | (ItemElement<T> | SectionElement<T>)[];
21
21
  /**
22
22
  * If the given content is a primitive type, wrap it in a Text component.
23
23
  * @param content The content to wrap
@@ -1 +1 @@
1
- {"version":3,"file":"itemWrapperUtils.d.ts","sourceRoot":"","sources":["../../../src/spectrum/utils/itemWrapperUtils.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAMrD,OAAO,EAIL,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,aAAa,EAElB,KAAK,cAAc,EACnB,KAAK,cAAc,EACpB,MAAM,aAAa,CAAC;AAKrB;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CACtB,YAAY,EAAE,SAAS,EACvB,IAAI,EAAE,YAAY,GACjB,SAAS,CAaX;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAChC,eAAe,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,EAAE,EACtD,cAAc,EAAE,cAAc,GAAG,IAAI,GACpC,WAAW,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE,CAiD7E;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,CAAC,EAAE,SAAS,EACnB,IAAI,CAAC,EAAE,MAAM,GACZ,SAAS,CAeX"}
1
+ {"version":3,"file":"itemWrapperUtils.d.ts","sourceRoot":"","sources":["../../../src/spectrum/utils/itemWrapperUtils.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAMrD,OAAO,EAIL,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,aAAa,EAElB,KAAK,cAAc,EACnB,KAAK,cAAc,EACpB,MAAM,aAAa,CAAC;AAKrB;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CACtB,YAAY,EAAE,SAAS,EACvB,IAAI,EAAE,YAAY,GACjB,SAAS,CAaX;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAChC,eAAe,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,GAAG,SAAS,EACzE,cAAc,EAAE,cAAc,GAAG,IAAI,GACpC,WAAW,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE,CAqD7E;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,CAAC,EAAE,SAAS,EACnB,IAAI,CAAC,EAAE,MAAM,GACZ,SAAS,CAeX"}
@@ -46,6 +46,9 @@ export function wrapIcon(maybeIconKey, slot) {
46
46
  * @returns The wrapped items or sections
47
47
  */
48
48
  export function wrapItemChildren(itemsOrSections, tooltipOptions) {
49
+ if (itemsOrSections == null) {
50
+ return [];
51
+ }
49
52
  var itemsOrSectionsArray = ensureArray(itemsOrSections);
50
53
  var result = itemsOrSectionsArray.map(item => {
51
54
  if (isItemElement(item)) {
@@ -1 +1 @@
1
- {"version":3,"file":"itemWrapperUtils.js","names":["cloneElement","Item","FontAwesomeIcon","dh","dhIcons","isElementOfType","ensureArray","NON_BREAKING_SPACE","getItemTextValue","isItemElement","isSectionElement","ITEM_EMPTY_STRING_TEXT_VALUE","ItemContent","Icon","Text","jsx","_jsx","wrapIcon","maybeIconKey","slot","_dhIcons$maybeIconKey","children","icon","vsBlank","wrapItemChildren","itemsOrSections","tooltipOptions","itemsOrSectionsArray","result","map","item","_item$key","props","key","textValue","_objectSpread","_item$key2","title","undefined","text","String","Array","isArray","wrapPrimitiveWithText","content","includes"],"sources":["../../../src/spectrum/utils/itemWrapperUtils.tsx"],"sourcesContent":["import { cloneElement, type ReactNode } from 'react';\nimport { Item } from '@adobe/react-spectrum';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { dh as dhIcons } from '@deephaven/icons';\nimport { isElementOfType } from '@deephaven/react-hooks';\nimport { ensureArray, NON_BREAKING_SPACE } from '@deephaven/utils';\nimport {\n getItemTextValue,\n isItemElement,\n isSectionElement,\n type ItemElement,\n type ItemIconSlot,\n type ItemOrSection,\n ITEM_EMPTY_STRING_TEXT_VALUE,\n type SectionElement,\n type TooltipOptions,\n} from './itemUtils';\nimport { ItemContent } from '../ItemContent';\nimport { Icon } from '../icons';\nimport { Text } from '../Text';\n\n/**\n * If the given content is a string, wrap it in an Icon component. Otherwise,\n * return the original content. If the key is not found in the dhIcons object,\n * the vsBlank icon will be used.\n * @param maybeIconKey The content to wrap\n * @param slot The slot to use for the Icon component\n * @returns The wrapped content or original content if not a string\n */\nexport function wrapIcon(\n maybeIconKey: ReactNode,\n slot: ItemIconSlot\n): ReactNode {\n // eslint-disable-next-line no-param-reassign\n maybeIconKey = maybeIconKey ?? '';\n\n if (typeof maybeIconKey !== 'string') {\n return maybeIconKey;\n }\n\n return (\n <Icon slot={slot}>\n <FontAwesomeIcon icon={dhIcons[maybeIconKey] ?? dhIcons.vsBlank} />\n </Icon>\n );\n}\n\n/**\n * Ensure all primitive children are wrapped in `Item` elements and that all\n * `Item` element content is wrapped in `ItemContent` elements to handle text\n * overflow consistently and to support tooltips.\n * @param itemsOrSections The items or sections to wrap\n * @param tooltipOptions The tooltip options to use when wrapping items\n * @returns The wrapped items or sections\n */\nexport function wrapItemChildren<T>(\n itemsOrSections: ItemOrSection<T> | ItemOrSection<T>[],\n tooltipOptions: TooltipOptions | null\n): ItemElement<T> | SectionElement<T> | (ItemElement<T> | SectionElement<T>)[] {\n const itemsOrSectionsArray = ensureArray(itemsOrSections);\n\n const result = itemsOrSectionsArray.map(item => {\n if (isItemElement(item)) {\n // Item content is already wrapped\n if (isElementOfType(item.props.children, ItemContent)) {\n return item;\n }\n\n const key = item.key ?? item.props.textValue;\n const textValue = getItemTextValue(item);\n\n // Wrap in `ItemContent` so we can support tooltips and handle text\n // overflow\n return cloneElement(item, {\n ...item.props,\n key,\n textValue,\n children: (\n <ItemContent tooltipOptions={tooltipOptions}>\n {item.props.children}\n </ItemContent>\n ),\n });\n }\n\n if (isSectionElement(item)) {\n return cloneElement(item, {\n ...item.props,\n key:\n item.key ??\n (typeof item.props.title === 'string' ? item.props.title : undefined),\n children: wrapItemChildren<T>(item.props.children, tooltipOptions),\n });\n }\n\n const text = String(item);\n const textValue = text === '' ? ITEM_EMPTY_STRING_TEXT_VALUE : text;\n\n return (\n <Item key={text} textValue={textValue}>\n <ItemContent tooltipOptions={tooltipOptions}>{text}</ItemContent>\n </Item>\n );\n });\n\n // Keep consistent with original data structure as array or single node\n return Array.isArray(itemsOrSections) ? result : result[0];\n}\n\n/**\n * If the given content is a primitive type, wrap it in a Text component.\n * @param content The content to wrap\n * @param slot The slot to use for the Text component\n * @returns The wrapped content or original content if not a primitive type\n */\nexport function wrapPrimitiveWithText(\n content?: ReactNode,\n slot?: string\n): ReactNode {\n // eslint-disable-next-line no-param-reassign\n content = content ?? '';\n\n if (['string', 'boolean', 'number'].includes(typeof content)) {\n return (\n <Text slot={slot}>\n {/* Non-breaking space is needed to avoid the Text element's height \n collapsing when content is empty */}\n {content === '' ? NON_BREAKING_SPACE : String(content)}\n </Text>\n );\n }\n\n return content;\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"itemWrapperUtils.js","names":["cloneElement","Item","FontAwesomeIcon","dh","dhIcons","isElementOfType","ensureArray","NON_BREAKING_SPACE","getItemTextValue","isItemElement","isSectionElement","ITEM_EMPTY_STRING_TEXT_VALUE","ItemContent","Icon","Text","jsx","_jsx","wrapIcon","maybeIconKey","slot","_dhIcons$maybeIconKey","children","icon","vsBlank","wrapItemChildren","itemsOrSections","tooltipOptions","itemsOrSectionsArray","result","map","item","_item$key","props","key","textValue","_objectSpread","_item$key2","title","undefined","text","String","Array","isArray","wrapPrimitiveWithText","content","includes"],"sources":["../../../src/spectrum/utils/itemWrapperUtils.tsx"],"sourcesContent":["import { cloneElement, type ReactNode } from 'react';\nimport { Item } from '@adobe/react-spectrum';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { dh as dhIcons } from '@deephaven/icons';\nimport { isElementOfType } from '@deephaven/react-hooks';\nimport { ensureArray, NON_BREAKING_SPACE } from '@deephaven/utils';\nimport {\n getItemTextValue,\n isItemElement,\n isSectionElement,\n type ItemElement,\n type ItemIconSlot,\n type ItemOrSection,\n ITEM_EMPTY_STRING_TEXT_VALUE,\n type SectionElement,\n type TooltipOptions,\n} from './itemUtils';\nimport { ItemContent } from '../ItemContent';\nimport { Icon } from '../icons';\nimport { Text } from '../Text';\n\n/**\n * If the given content is a string, wrap it in an Icon component. Otherwise,\n * return the original content. If the key is not found in the dhIcons object,\n * the vsBlank icon will be used.\n * @param maybeIconKey The content to wrap\n * @param slot The slot to use for the Icon component\n * @returns The wrapped content or original content if not a string\n */\nexport function wrapIcon(\n maybeIconKey: ReactNode,\n slot: ItemIconSlot\n): ReactNode {\n // eslint-disable-next-line no-param-reassign\n maybeIconKey = maybeIconKey ?? '';\n\n if (typeof maybeIconKey !== 'string') {\n return maybeIconKey;\n }\n\n return (\n <Icon slot={slot}>\n <FontAwesomeIcon icon={dhIcons[maybeIconKey] ?? dhIcons.vsBlank} />\n </Icon>\n );\n}\n\n/**\n * Ensure all primitive children are wrapped in `Item` elements and that all\n * `Item` element content is wrapped in `ItemContent` elements to handle text\n * overflow consistently and to support tooltips.\n * @param itemsOrSections The items or sections to wrap\n * @param tooltipOptions The tooltip options to use when wrapping items\n * @returns The wrapped items or sections\n */\nexport function wrapItemChildren<T>(\n itemsOrSections: ItemOrSection<T> | ItemOrSection<T>[] | null | undefined,\n tooltipOptions: TooltipOptions | null\n): ItemElement<T> | SectionElement<T> | (ItemElement<T> | SectionElement<T>)[] {\n if (itemsOrSections == null) {\n return [];\n }\n\n const itemsOrSectionsArray = ensureArray(itemsOrSections);\n\n const result = itemsOrSectionsArray.map(item => {\n if (isItemElement(item)) {\n // Item content is already wrapped\n if (isElementOfType(item.props.children, ItemContent)) {\n return item;\n }\n\n const key = item.key ?? item.props.textValue;\n const textValue = getItemTextValue(item);\n\n // Wrap in `ItemContent` so we can support tooltips and handle text\n // overflow\n return cloneElement(item, {\n ...item.props,\n key,\n textValue,\n children: (\n <ItemContent tooltipOptions={tooltipOptions}>\n {item.props.children}\n </ItemContent>\n ),\n });\n }\n\n if (isSectionElement(item)) {\n return cloneElement(item, {\n ...item.props,\n key:\n item.key ??\n (typeof item.props.title === 'string' ? item.props.title : undefined),\n children: wrapItemChildren<T>(item.props.children, tooltipOptions),\n });\n }\n\n const text = String(item);\n const textValue = text === '' ? ITEM_EMPTY_STRING_TEXT_VALUE : text;\n\n return (\n <Item key={text} textValue={textValue}>\n <ItemContent tooltipOptions={tooltipOptions}>{text}</ItemContent>\n </Item>\n );\n });\n\n // Keep consistent with original data structure as array or single node\n return Array.isArray(itemsOrSections) ? result : result[0];\n}\n\n/**\n * If the given content is a primitive type, wrap it in a Text component.\n * @param content The content to wrap\n * @param slot The slot to use for the Text component\n * @returns The wrapped content or original content if not a primitive type\n */\nexport function wrapPrimitiveWithText(\n content?: ReactNode,\n slot?: string\n): ReactNode {\n // eslint-disable-next-line no-param-reassign\n content = content ?? '';\n\n if (['string', 'boolean', 'number'].includes(typeof content)) {\n return (\n <Text slot={slot}>\n {/* Non-breaking space is needed to avoid the Text element's height \n collapsing when content is empty */}\n {content === '' ? NON_BREAKING_SPACE : String(content)}\n </Text>\n );\n }\n\n return content;\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"useStringifiedMultiSelection.d.ts","sourceRoot":"","sources":["../../../src/spectrum/utils/useStringifiedMultiSelection.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAEL,KAAK,OAAO,EACZ,KAAK,aAAa,EAElB,KAAK,cAAc,EACpB,MAAM,aAAa,CAAC;AAErB,MAAM,WAAW,mCAAmC;IAClD,eAAe,EAAE,cAAc,EAAE,CAAC;IAClC,YAAY,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;IACzC,mBAAmB,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;IAChD,YAAY,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;IACjC;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,IAAI,CAAC;CAC1C;AAED,MAAM,WAAW,kCAAkC;IACjD,iCAAiC;IACjC,kBAAkB,CAAC,EAAE,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;IACtC,yCAAyC;IACzC,yBAAyB,CAAC,EAAE,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7C,gCAAgC;IAChC,kBAAkB,CAAC,EAAE,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;IACtC,mEAAmE;IACnE,uBAAuB,EAAE,CAAC,IAAI,EAAE,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC;CAC3D;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,4BAA4B,CAAC,EAC3C,eAAe,EACf,mBAAmB,EACnB,YAAY,EACZ,YAAY,EACZ,QAAQ,GACT,EAAE,mCAAmC,GAAG,kCAAkC,CA8C1E;AAED,eAAe,4BAA4B,CAAC"}
1
+ {"version":3,"file":"useStringifiedMultiSelection.d.ts","sourceRoot":"","sources":["../../../src/spectrum/utils/useStringifiedMultiSelection.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAEL,KAAK,OAAO,EACZ,KAAK,aAAa,EAElB,KAAK,cAAc,EACpB,MAAM,aAAa,CAAC;AAErB,MAAM,WAAW,mCAAmC;IAClD,eAAe,EAAE,cAAc,EAAE,CAAC;IAClC,YAAY,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;IACzC,mBAAmB,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;IAChD,YAAY,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;IACjC;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,IAAI,CAAC;CAC1C;AAED,MAAM,WAAW,kCAAkC;IACjD,iCAAiC;IACjC,kBAAkB,CAAC,EAAE,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;IACtC,yCAAyC;IACzC,yBAAyB,CAAC,EAAE,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7C,gCAAgC;IAChC,kBAAkB,CAAC,EAAE,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;IACtC,mEAAmE;IACnE,uBAAuB,EAAE,CAAC,IAAI,EAAE,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC;CAC3D;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,4BAA4B,CAAC,EAC3C,eAAe,EACf,mBAAmB,EACnB,YAAY,EACZ,YAAY,EACZ,QAAQ,GACT,EAAE,mCAAmC,GAAG,kCAAkC,CAyD1E;AAED,eAAe,4BAA4B,CAAC"}
@@ -35,9 +35,20 @@ export function useStringifiedMultiSelection(_ref) {
35
35
  return;
36
36
  }
37
37
  var actualKeys = new Set();
38
+ var foundStringKeys = new Set();
38
39
  normalizedItems.forEach(item => {
39
- if (keys.has(String(getItemKey(item)))) {
40
+ var stringKey = String(getItemKey(item));
41
+ if (keys.has(stringKey)) {
40
42
  actualKeys.add(getItemKey(item));
43
+ foundStringKeys.add(stringKey);
44
+ }
45
+ });
46
+
47
+ // Preserve keys not found in normalizedItems (i.e., filtered out by server-side search).
48
+ // Pass them through as-is since they are already valid ItemKey values.
49
+ keys.forEach(key => {
50
+ if (!foundStringKeys.has(String(key))) {
51
+ actualKeys.add(key);
41
52
  }
42
53
  });
43
54
  onChange(actualKeys);
@@ -1 +1 @@
1
- {"version":3,"file":"useStringifiedMultiSelection.js","names":["useCallback","useMemo","getItemKey","itemSelectionToStringSet","useStringifiedMultiSelection","_ref","normalizedItems","defaultSelectedKeys","disabledKeys","selectedKeys","onChange","selectedStringKeys","defaultSelectedStringKeys","disabledStringKeys","onStringSelectionChange","keys","actualKeys","Set","forEach","item","has","String","add"],"sources":["../../../src/spectrum/utils/useStringifiedMultiSelection.ts"],"sourcesContent":["import { useCallback, useMemo } from 'react';\nimport { type Key } from '@react-types/shared';\nimport {\n getItemKey,\n type ItemKey,\n type ItemSelection,\n itemSelectionToStringSet,\n type NormalizedItem,\n} from './itemUtils';\n\nexport interface UseStringifiedMultiSelectionOptions {\n normalizedItems: NormalizedItem[];\n selectedKeys?: 'all' | Iterable<ItemKey>;\n defaultSelectedKeys?: 'all' | Iterable<ItemKey>;\n disabledKeys?: Iterable<ItemKey>;\n /**\n * Handler that is called when the selection change.\n * Note that under the hood, this is just an alias for Spectrum's\n * `onSelectionChange`. We are renaming for better consistency with other\n * components.\n */\n onChange?: (keys: ItemSelection) => void;\n}\n\nexport interface UseStringifiedMultiSelectionResult {\n /** Stringified selection keys */\n selectedStringKeys?: 'all' | Set<Key>;\n /** Stringified default selection keys */\n defaultSelectedStringKeys?: 'all' | Set<Key>;\n /** Stringified disabled keys */\n disabledStringKeys?: 'all' | Set<Key>;\n /** Handler that is called when the string key selections change */\n onStringSelectionChange: (keys: 'all' | Set<Key>) => void;\n}\n\n/**\n * Spectrum collection components treat keys as strings if the `key` prop is\n * explicitly set on `Item` elements. Since we do this in `useRenderNormalizedItem`,\n * we need to ensure that keys are strings in order for selection to work. We\n * then need to convert back to the original key types in the onChange handler.\n * This hook encapsulates converting to and from strings so that keys can match\n * the original key type.\n * @param normalizedItems The normalized items to select from.\n * @param selectedKeys The currently selected keys in the collection.\n * @param defaultSelectedKeys The initial selected keys in the collection.\n * @param disabledKeys The currently disabled keys in the collection.\n * @param onChange Handler that is called when the selection changes.\n * @returns UseStringifiedMultiSelectionResult with stringified key sets and\n * string key selection change handler.\n */\nexport function useStringifiedMultiSelection({\n normalizedItems,\n defaultSelectedKeys,\n disabledKeys,\n selectedKeys,\n onChange,\n}: UseStringifiedMultiSelectionOptions): UseStringifiedMultiSelectionResult {\n const selectedStringKeys = useMemo(\n () => itemSelectionToStringSet(selectedKeys),\n [selectedKeys]\n );\n\n const defaultSelectedStringKeys = useMemo(\n () => itemSelectionToStringSet(defaultSelectedKeys),\n [defaultSelectedKeys]\n );\n\n const disabledStringKeys = useMemo(\n () => itemSelectionToStringSet(disabledKeys),\n [disabledKeys]\n );\n\n const onStringSelectionChange = useCallback(\n (keys: 'all' | Set<Key>) => {\n if (onChange == null) {\n return;\n }\n\n if (keys === 'all') {\n onChange('all');\n return;\n }\n\n const actualKeys = new Set<ItemKey>();\n\n normalizedItems.forEach(item => {\n if (keys.has(String(getItemKey(item)))) {\n actualKeys.add(getItemKey(item));\n }\n });\n\n onChange(actualKeys);\n },\n [normalizedItems, onChange]\n );\n\n return {\n selectedStringKeys,\n defaultSelectedStringKeys,\n disabledStringKeys,\n onStringSelectionChange,\n };\n}\n\nexport default useStringifiedMultiSelection;\n"],"mappings":"AAAA,SAASA,WAAW,EAAEC,OAAO,QAAQ,OAAO;AAAC,SAG3CC,UAAU,EAGVC,wBAAwB;AA6B1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,4BAA4BA,CAAAC,IAAA,EAMgC;EAAA,IAN/B;IAC3CC,eAAe;IACfC,mBAAmB;IACnBC,YAAY;IACZC,YAAY;IACZC;EACmC,CAAC,GAAAL,IAAA;EACpC,IAAMM,kBAAkB,GAAGV,OAAO,CAChC,MAAME,wBAAwB,CAACM,YAAY,CAAC,EAC5C,CAACA,YAAY,CACf,CAAC;EAED,IAAMG,yBAAyB,GAAGX,OAAO,CACvC,MAAME,wBAAwB,CAACI,mBAAmB,CAAC,EACnD,CAACA,mBAAmB,CACtB,CAAC;EAED,IAAMM,kBAAkB,GAAGZ,OAAO,CAChC,MAAME,wBAAwB,CAACK,YAAY,CAAC,EAC5C,CAACA,YAAY,CACf,CAAC;EAED,IAAMM,uBAAuB,GAAGd,WAAW,CACxCe,IAAsB,IAAK;IAC1B,IAAIL,QAAQ,IAAI,IAAI,EAAE;MACpB;IACF;IAEA,IAAIK,IAAI,KAAK,KAAK,EAAE;MAClBL,QAAQ,CAAC,KAAK,CAAC;MACf;IACF;IAEA,IAAMM,UAAU,GAAG,IAAIC,GAAG,CAAU,CAAC;IAErCX,eAAe,CAACY,OAAO,CAACC,IAAI,IAAI;MAC9B,IAAIJ,IAAI,CAACK,GAAG,CAACC,MAAM,CAACnB,UAAU,CAACiB,IAAI,CAAC,CAAC,CAAC,EAAE;QACtCH,UAAU,CAACM,GAAG,CAACpB,UAAU,CAACiB,IAAI,CAAC,CAAC;MAClC;IACF,CAAC,CAAC;IAEFT,QAAQ,CAACM,UAAU,CAAC;EACtB,CAAC,EACD,CAACV,eAAe,EAAEI,QAAQ,CAC5B,CAAC;EAED,OAAO;IACLC,kBAAkB;IAClBC,yBAAyB;IACzBC,kBAAkB;IAClBC;EACF,CAAC;AACH;AAEA,eAAeV,4BAA4B","ignoreList":[]}
1
+ {"version":3,"file":"useStringifiedMultiSelection.js","names":["useCallback","useMemo","getItemKey","itemSelectionToStringSet","useStringifiedMultiSelection","_ref","normalizedItems","defaultSelectedKeys","disabledKeys","selectedKeys","onChange","selectedStringKeys","defaultSelectedStringKeys","disabledStringKeys","onStringSelectionChange","keys","actualKeys","Set","foundStringKeys","forEach","item","stringKey","String","has","add","key"],"sources":["../../../src/spectrum/utils/useStringifiedMultiSelection.ts"],"sourcesContent":["import { useCallback, useMemo } from 'react';\nimport { type Key } from '@react-types/shared';\nimport {\n getItemKey,\n type ItemKey,\n type ItemSelection,\n itemSelectionToStringSet,\n type NormalizedItem,\n} from './itemUtils';\n\nexport interface UseStringifiedMultiSelectionOptions {\n normalizedItems: NormalizedItem[];\n selectedKeys?: 'all' | Iterable<ItemKey>;\n defaultSelectedKeys?: 'all' | Iterable<ItemKey>;\n disabledKeys?: Iterable<ItemKey>;\n /**\n * Handler that is called when the selection change.\n * Note that under the hood, this is just an alias for Spectrum's\n * `onSelectionChange`. We are renaming for better consistency with other\n * components.\n */\n onChange?: (keys: ItemSelection) => void;\n}\n\nexport interface UseStringifiedMultiSelectionResult {\n /** Stringified selection keys */\n selectedStringKeys?: 'all' | Set<Key>;\n /** Stringified default selection keys */\n defaultSelectedStringKeys?: 'all' | Set<Key>;\n /** Stringified disabled keys */\n disabledStringKeys?: 'all' | Set<Key>;\n /** Handler that is called when the string key selections change */\n onStringSelectionChange: (keys: 'all' | Set<Key>) => void;\n}\n\n/**\n * Spectrum collection components treat keys as strings if the `key` prop is\n * explicitly set on `Item` elements. Since we do this in `useRenderNormalizedItem`,\n * we need to ensure that keys are strings in order for selection to work. We\n * then need to convert back to the original key types in the onChange handler.\n * This hook encapsulates converting to and from strings so that keys can match\n * the original key type.\n * @param normalizedItems The normalized items to select from.\n * @param selectedKeys The currently selected keys in the collection.\n * @param defaultSelectedKeys The initial selected keys in the collection.\n * @param disabledKeys The currently disabled keys in the collection.\n * @param onChange Handler that is called when the selection changes.\n * @returns UseStringifiedMultiSelectionResult with stringified key sets and\n * string key selection change handler.\n */\nexport function useStringifiedMultiSelection({\n normalizedItems,\n defaultSelectedKeys,\n disabledKeys,\n selectedKeys,\n onChange,\n}: UseStringifiedMultiSelectionOptions): UseStringifiedMultiSelectionResult {\n const selectedStringKeys = useMemo(\n () => itemSelectionToStringSet(selectedKeys),\n [selectedKeys]\n );\n\n const defaultSelectedStringKeys = useMemo(\n () => itemSelectionToStringSet(defaultSelectedKeys),\n [defaultSelectedKeys]\n );\n\n const disabledStringKeys = useMemo(\n () => itemSelectionToStringSet(disabledKeys),\n [disabledKeys]\n );\n\n const onStringSelectionChange = useCallback(\n (keys: 'all' | Set<Key>) => {\n if (onChange == null) {\n return;\n }\n\n if (keys === 'all') {\n onChange('all');\n return;\n }\n\n const actualKeys = new Set<ItemKey>();\n const foundStringKeys = new Set<string>();\n\n normalizedItems.forEach(item => {\n const stringKey = String(getItemKey(item));\n if (keys.has(stringKey)) {\n actualKeys.add(getItemKey(item));\n foundStringKeys.add(stringKey);\n }\n });\n\n // Preserve keys not found in normalizedItems (i.e., filtered out by server-side search).\n // Pass them through as-is since they are already valid ItemKey values.\n keys.forEach(key => {\n if (!foundStringKeys.has(String(key))) {\n actualKeys.add(key);\n }\n });\n\n onChange(actualKeys);\n },\n [normalizedItems, onChange]\n );\n\n return {\n selectedStringKeys,\n defaultSelectedStringKeys,\n disabledStringKeys,\n onStringSelectionChange,\n };\n}\n\nexport default useStringifiedMultiSelection;\n"],"mappings":"AAAA,SAASA,WAAW,EAAEC,OAAO,QAAQ,OAAO;AAAC,SAG3CC,UAAU,EAGVC,wBAAwB;AA6B1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,4BAA4BA,CAAAC,IAAA,EAMgC;EAAA,IAN/B;IAC3CC,eAAe;IACfC,mBAAmB;IACnBC,YAAY;IACZC,YAAY;IACZC;EACmC,CAAC,GAAAL,IAAA;EACpC,IAAMM,kBAAkB,GAAGV,OAAO,CAChC,MAAME,wBAAwB,CAACM,YAAY,CAAC,EAC5C,CAACA,YAAY,CACf,CAAC;EAED,IAAMG,yBAAyB,GAAGX,OAAO,CACvC,MAAME,wBAAwB,CAACI,mBAAmB,CAAC,EACnD,CAACA,mBAAmB,CACtB,CAAC;EAED,IAAMM,kBAAkB,GAAGZ,OAAO,CAChC,MAAME,wBAAwB,CAACK,YAAY,CAAC,EAC5C,CAACA,YAAY,CACf,CAAC;EAED,IAAMM,uBAAuB,GAAGd,WAAW,CACxCe,IAAsB,IAAK;IAC1B,IAAIL,QAAQ,IAAI,IAAI,EAAE;MACpB;IACF;IAEA,IAAIK,IAAI,KAAK,KAAK,EAAE;MAClBL,QAAQ,CAAC,KAAK,CAAC;MACf;IACF;IAEA,IAAMM,UAAU,GAAG,IAAIC,GAAG,CAAU,CAAC;IACrC,IAAMC,eAAe,GAAG,IAAID,GAAG,CAAS,CAAC;IAEzCX,eAAe,CAACa,OAAO,CAACC,IAAI,IAAI;MAC9B,IAAMC,SAAS,GAAGC,MAAM,CAACpB,UAAU,CAACkB,IAAI,CAAC,CAAC;MAC1C,IAAIL,IAAI,CAACQ,GAAG,CAACF,SAAS,CAAC,EAAE;QACvBL,UAAU,CAACQ,GAAG,CAACtB,UAAU,CAACkB,IAAI,CAAC,CAAC;QAChCF,eAAe,CAACM,GAAG,CAACH,SAAS,CAAC;MAChC;IACF,CAAC,CAAC;;IAEF;IACA;IACAN,IAAI,CAACI,OAAO,CAACM,GAAG,IAAI;MAClB,IAAI,CAACP,eAAe,CAACK,GAAG,CAACD,MAAM,CAACG,GAAG,CAAC,CAAC,EAAE;QACrCT,UAAU,CAACQ,GAAG,CAACC,GAAG,CAAC;MACrB;IACF,CAAC,CAAC;IAEFf,QAAQ,CAACM,UAAU,CAAC;EACtB,CAAC,EACD,CAACV,eAAe,EAAEI,QAAQ,CAC5B,CAAC;EAED,OAAO;IACLC,kBAAkB;IAClBC,yBAAyB;IACzBC,kBAAkB;IAClBC;EACF,CAAC;AACH;AAEA,eAAeV,4BAA4B","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@deephaven/components",
3
- "version": "1.19.1-console-types-fixes.0+6580c8a",
3
+ "version": "1.21.0",
4
4
  "description": "Deephaven React component library",
5
5
  "author": "Deephaven Data Labs LLC",
6
6
  "license": "Apache-2.0",
@@ -25,23 +25,30 @@
25
25
  },
26
26
  "dependencies": {
27
27
  "@adobe/react-spectrum": "3.38.0",
28
- "@deephaven/icons": "^1.19.1-console-types-fixes.0+6580c8a",
29
- "@deephaven/log": "^1.19.1-console-types-fixes.0+6580c8a",
30
- "@deephaven/react-hooks": "^1.19.1-console-types-fixes.0+6580c8a",
31
- "@deephaven/utils": "^1.19.1-console-types-fixes.0+6580c8a",
28
+ "@deephaven/icons": "^1.2.0",
29
+ "@deephaven/log": "^1.8.0",
30
+ "@deephaven/react-hooks": "^1.14.0",
31
+ "@deephaven/utils": "^1.10.0",
32
32
  "@fontsource/fira-mono": "5.0.13",
33
33
  "@fontsource/fira-sans": "5.0.20",
34
34
  "@fortawesome/fontawesome-svg-core": "^6.2.1",
35
35
  "@fortawesome/react-fontawesome": "^0.2.0",
36
36
  "@hello-pangea/dnd": "^18.0.1",
37
37
  "@internationalized/date": "^3.5.5",
38
+ "@react-aria/focus": "^3.21.0",
39
+ "@react-aria/i18n": "^3.12.11",
40
+ "@react-spectrum/label": "^3.16.17",
41
+ "@react-spectrum/overlays": "^5.8.0",
38
42
  "@react-spectrum/theme-default": "^3.5.1",
39
43
  "@react-spectrum/toast": "^3.0.0-beta.16",
40
44
  "@react-spectrum/utils": "^3.11.5",
45
+ "@react-stately/overlays": "^3.6.18",
46
+ "@react-stately/utils": "^3.10.8",
41
47
  "@react-types/combobox": "3.13.1",
42
48
  "@react-types/radio": "^3.8.1",
43
49
  "@react-types/shared": "^3.22.1",
44
50
  "@react-types/textfield": "^3.9.1",
51
+ "@spectrum-icons/ui": "^3.6.18",
45
52
  "bootstrap": "4.6.2",
46
53
  "classnames": "^2.3.1",
47
54
  "event-target-shim": "^6.0.2",
@@ -62,8 +69,8 @@
62
69
  "react-is": ">=16.8.0"
63
70
  },
64
71
  "devDependencies": {
65
- "@deephaven/mocks": "^1.19.1-console-types-fixes.0+6580c8a",
66
- "@deephaven/test-utils": "^1.19.1-console-types-fixes.0+6580c8a",
72
+ "@deephaven/mocks": "^1.1.0",
73
+ "@deephaven/test-utils": "^1.8.0",
67
74
  "react-redux": "^7.2.7"
68
75
  },
69
76
  "files": [
@@ -78,5 +85,5 @@
78
85
  "publishConfig": {
79
86
  "access": "public"
80
87
  },
81
- "gitHead": "6580c8a356d9cb53fa83e02ebb9f4a805451cecb"
88
+ "gitHead": "75fd09ce3d9569be131ad72ac9318a165ca50179"
82
89
  }