@fluentui/react-tree 9.0.0-beta.30 → 9.0.0-beta.32

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 (104) hide show
  1. package/CHANGELOG.json +169 -1
  2. package/CHANGELOG.md +43 -2
  3. package/dist/index.d.ts +16 -15
  4. package/lib/components/FlatTree/FlatTree.js +6 -2
  5. package/lib/components/FlatTree/FlatTree.js.map +1 -1
  6. package/lib/components/FlatTree/index.js +2 -1
  7. package/lib/components/FlatTree/index.js.map +1 -1
  8. package/lib/components/FlatTree/renderFlatTree.js +2 -0
  9. package/lib/components/FlatTree/renderFlatTree.js.map +1 -0
  10. package/lib/components/FlatTree/useFlatControllableCheckedItems.js +27 -14
  11. package/lib/components/FlatTree/useFlatControllableCheckedItems.js.map +1 -1
  12. package/lib/components/FlatTree/useFlatTreeContextValues.js +2 -0
  13. package/lib/components/FlatTree/useFlatTreeContextValues.js.map +1 -0
  14. package/lib/components/FlatTree/useFlatTreeStyles.styles.js +1 -1
  15. package/lib/components/FlatTree/useHeadlessFlatTree.js +13 -5
  16. package/lib/components/FlatTree/useHeadlessFlatTree.js.map +1 -1
  17. package/lib/components/Tree/Tree.js +2 -1
  18. package/lib/components/Tree/Tree.js.map +1 -1
  19. package/lib/components/Tree/Tree.types.js.map +1 -1
  20. package/lib/components/Tree/renderTree.js +3 -3
  21. package/lib/components/Tree/renderTree.js.map +1 -1
  22. package/lib/components/Tree/useNestedControllableCheckedItems.js +22 -0
  23. package/lib/components/Tree/useNestedControllableCheckedItems.js.map +1 -0
  24. package/lib/components/Tree/useTree.js +27 -17
  25. package/lib/components/Tree/useTree.js.map +1 -1
  26. package/lib/components/Tree/useTreeStyles.styles.js +1 -1
  27. package/lib/components/TreeItem/renderTreeItem.js +4 -4
  28. package/lib/components/TreeItem/renderTreeItem.js.map +1 -1
  29. package/lib/components/TreeItem/useTreeItem.js +7 -11
  30. package/lib/components/TreeItem/useTreeItem.js.map +1 -1
  31. package/lib/components/TreeItem/useTreeItemStyles.styles.js +1 -1
  32. package/lib/components/TreeItemLayout/renderTreeItemLayout.js +4 -4
  33. package/lib/components/TreeItemLayout/renderTreeItemLayout.js.map +1 -1
  34. package/lib/components/TreeItemLayout/useTreeItemLayout.js +27 -19
  35. package/lib/components/TreeItemLayout/useTreeItemLayout.js.map +1 -1
  36. package/lib/components/TreeItemLayout/useTreeItemLayoutStyles.styles.js +5 -5
  37. package/lib/components/TreeItemPersonaLayout/renderTreeItemPersonaLayout.js +5 -5
  38. package/lib/components/TreeItemPersonaLayout/renderTreeItemPersonaLayout.js.map +1 -1
  39. package/lib/components/TreeItemPersonaLayout/useTreeItemPersonaLayout.js +9 -7
  40. package/lib/components/TreeItemPersonaLayout/useTreeItemPersonaLayout.js.map +1 -1
  41. package/lib/components/TreeItemPersonaLayout/useTreeItemPersonaLayoutStyles.styles.js +7 -7
  42. package/lib/contexts/treeItemContext.js +1 -1
  43. package/lib/contexts/treeItemContext.js.map +1 -1
  44. package/lib/hooks/useRootTree.js +4 -2
  45. package/lib/hooks/useRootTree.js.map +1 -1
  46. package/lib/hooks/useSubtree.js +4 -2
  47. package/lib/hooks/useSubtree.js.map +1 -1
  48. package/lib/utils/createHeadlessTree.js +2 -1
  49. package/lib/utils/createHeadlessTree.js.map +1 -1
  50. package/lib/utils/getTreeItemValueFromElement.js.map +1 -1
  51. package/lib-commonjs/components/FlatTree/FlatTree.js +4 -3
  52. package/lib-commonjs/components/FlatTree/FlatTree.js.map +1 -1
  53. package/lib-commonjs/components/FlatTree/index.js +2 -11
  54. package/lib-commonjs/components/FlatTree/index.js.map +1 -1
  55. package/lib-commonjs/components/FlatTree/renderFlatTree.js +10 -0
  56. package/lib-commonjs/components/FlatTree/renderFlatTree.js.map +1 -0
  57. package/lib-commonjs/components/FlatTree/useFlatControllableCheckedItems.js +27 -14
  58. package/lib-commonjs/components/FlatTree/useFlatControllableCheckedItems.js.map +1 -1
  59. package/lib-commonjs/components/FlatTree/useFlatTreeContextValues.js +10 -0
  60. package/lib-commonjs/components/FlatTree/useFlatTreeContextValues.js.map +1 -0
  61. package/lib-commonjs/components/FlatTree/useFlatTreeStyles.styles.js +2 -2
  62. package/lib-commonjs/components/FlatTree/useFlatTreeStyles.styles.js.map +1 -1
  63. package/lib-commonjs/components/FlatTree/useHeadlessFlatTree.js +13 -5
  64. package/lib-commonjs/components/FlatTree/useHeadlessFlatTree.js.map +1 -1
  65. package/lib-commonjs/components/Tree/Tree.js.map +1 -1
  66. package/lib-commonjs/components/Tree/renderTree.js +2 -2
  67. package/lib-commonjs/components/Tree/renderTree.js.map +1 -1
  68. package/lib-commonjs/components/Tree/useNestedControllableCheckedItems.js +37 -0
  69. package/lib-commonjs/components/Tree/useNestedControllableCheckedItems.js.map +1 -0
  70. package/lib-commonjs/components/Tree/useTree.js +27 -17
  71. package/lib-commonjs/components/Tree/useTree.js.map +1 -1
  72. package/lib-commonjs/components/Tree/useTreeStyles.styles.js +2 -2
  73. package/lib-commonjs/components/Tree/useTreeStyles.styles.js.map +1 -1
  74. package/lib-commonjs/components/TreeItem/renderTreeItem.js +3 -3
  75. package/lib-commonjs/components/TreeItem/renderTreeItem.js.map +1 -1
  76. package/lib-commonjs/components/TreeItem/useTreeItem.js +5 -8
  77. package/lib-commonjs/components/TreeItem/useTreeItem.js.map +1 -1
  78. package/lib-commonjs/components/TreeItem/useTreeItemStyles.styles.js +2 -2
  79. package/lib-commonjs/components/TreeItem/useTreeItemStyles.styles.js.map +1 -1
  80. package/lib-commonjs/components/TreeItemLayout/renderTreeItemLayout.js +3 -3
  81. package/lib-commonjs/components/TreeItemLayout/renderTreeItemLayout.js.map +1 -1
  82. package/lib-commonjs/components/TreeItemLayout/useTreeItemLayout.js +26 -18
  83. package/lib-commonjs/components/TreeItemLayout/useTreeItemLayout.js.map +1 -1
  84. package/lib-commonjs/components/TreeItemLayout/useTreeItemLayoutStyles.styles.js +26 -26
  85. package/lib-commonjs/components/TreeItemLayout/useTreeItemLayoutStyles.styles.js.map +1 -1
  86. package/lib-commonjs/components/TreeItemPersonaLayout/renderTreeItemPersonaLayout.js +4 -4
  87. package/lib-commonjs/components/TreeItemPersonaLayout/renderTreeItemPersonaLayout.js.map +1 -1
  88. package/lib-commonjs/components/TreeItemPersonaLayout/useTreeItemPersonaLayout.js +8 -6
  89. package/lib-commonjs/components/TreeItemPersonaLayout/useTreeItemPersonaLayout.js.map +1 -1
  90. package/lib-commonjs/components/TreeItemPersonaLayout/useTreeItemPersonaLayoutStyles.styles.js +40 -40
  91. package/lib-commonjs/components/TreeItemPersonaLayout/useTreeItemPersonaLayoutStyles.styles.js.map +1 -1
  92. package/lib-commonjs/contexts/treeItemContext.js +1 -1
  93. package/lib-commonjs/contexts/treeItemContext.js.map +1 -1
  94. package/lib-commonjs/hooks/useRootTree.js +3 -1
  95. package/lib-commonjs/hooks/useRootTree.js.map +1 -1
  96. package/lib-commonjs/hooks/useSubtree.js +3 -1
  97. package/lib-commonjs/hooks/useSubtree.js.map +1 -1
  98. package/lib-commonjs/utils/createHeadlessTree.js +2 -1
  99. package/lib-commonjs/utils/createHeadlessTree.js.map +1 -1
  100. package/package.json +14 -14
  101. package/lib/components/Tree/useControllableCheckedItems.js +0 -94
  102. package/lib/components/Tree/useControllableCheckedItems.js.map +0 -1
  103. package/lib-commonjs/components/Tree/useControllableCheckedItems.js +0 -103
  104. package/lib-commonjs/components/Tree/useControllableCheckedItems.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"sources":["useControllableCheckedItems.ts"],"sourcesContent":["import { useControllableState } from '@fluentui/react-utilities';\nimport * as React from 'react';\nimport type { TreeProps } from './Tree.types';\nimport { ImmutableMap } from '../../utils/ImmutableMap';\nimport { createCheckedItems } from '../../utils/createCheckedItems';\n\nexport type ControllableCheckedItemsOptions = {\n checkedItems?: TreeProps['checkedItems'];\n defaultCheckedItems?: TreeProps['checkedItems'];\n};\n\nexport function useControllableCheckedItems(props: ControllableCheckedItemsOptions) {\n return useControllableState({\n initialState: ImmutableMap.empty,\n state: React.useMemo(() => props.checkedItems && createCheckedItems(props.checkedItems), [props.checkedItems]),\n defaultState: () => createCheckedItems(props.defaultCheckedItems),\n });\n}\n\n// export function useCheckedItemsState(props: Pick<TreeProps, 'checkedItems' | 'defaultCheckedItems' | 'selectionMode'>) {\n// const [walkerRef, rootRef] = useHTMLElementWalkerRef(treeItemFilter);\n// const selections = React.useMemo(() => initializeSelection(props.checkedItems ?? []), [props.checkedItems]);\n// const defaultSelections = React.useMemo(\n// () => initializeSelection(props.defaultCheckedItems ?? []),\n// [props.defaultCheckedItems],\n// );\n// const [checkedSelection, checkedSelectionManager] = useSelection<TreeItemValue>({\n// selectionMode: props.selectionMode ?? 'single',\n// selectedItems: selections.checkedSelection,\n// defaultSelectedItems: defaultSelections.checkedSelection,\n// });\n// const [mixedSelection, setMixedSelection] = useControllableState({\n// initialState: ImmutableSet.empty,\n// defaultState: React.useMemo(\n// () => ImmutableSet.create(defaultSelections.mixedSelection),\n// [defaultSelections.mixedSelection],\n// ),\n// state: React.useMemo(() => ImmutableSet.create(selections.mixedSelection), [selections.mixedSelection]),\n// });\n\n// const updateCheckedItems = useEventCallback((data: TreeCheckedChangeData) => {\n// if (props.selectionMode === 'single') {\n// checkedSelectionManager.selectItem(data.value);\n// return;\n// }\n// if (walkerRef.current === null) {\n// return;\n// }\n// const nextSelectedState = !checkedSelectionManager.isSelected(data.value);\n\n// let treeItemValues = getAllSubTreeItemValues(data).add(data.value);\n\n// let mixedValues: ImmutableSet<TreeItemValue> = ImmutableSet.empty;\n\n// walkerRef.current.currentElement = data.event.currentTarget;\n// while (walkerRef.current.parentElement() !== null) {\n// const descendants = Array.from(\n// walkerRef.current.currentElement.querySelectorAll<HTMLElement>('[role=\"treeitem\"]'),\n// ).filter(item => item.getAttribute(dataTreeItemValueAttrName) !== data.value);\n// const isAllSiblingsEqualSelectionState = descendants.every(item => {\n// return (\n// (item.getAttribute('aria-selected') === 'true') === nextSelectedState ||\n// treeItemValues.has(item.getAttribute(dataTreeItemValueAttrName) as TreeItemValue)\n// );\n// });\n// if (isAllSiblingsEqualSelectionState) {\n// treeItemValues = treeItemValues.add(\n// walkerRef.current.currentElement.getAttribute(dataTreeItemValueAttrName) as TreeItemValue,\n// );\n// mixedValues = mixedValues.delete(\n// walkerRef.current.currentElement.getAttribute(dataTreeItemValueAttrName) as TreeItemValue,\n// );\n// } else {\n// treeItemValues = treeItemValues\n// .delete(walkerRef.current.currentElement.getAttribute(dataTreeItemValueAttrName) as TreeItemValue)\n// .add(data.value);\n// mixedValues = mixedValues.add(\n// walkerRef.current.currentElement.getAttribute(dataTreeItemValueAttrName) as TreeItemValue,\n// );\n// }\n// }\n// unstable_batchedUpdates(() => {\n// nextSelectedState\n// ? checkedSelectionManager.selectItems(treeItemValues)\n// : checkedSelectionManager.deselectItems(treeItemValues);\n// let nextMixedSelection = ImmutableSet.create(mixedSelection);\n// for (const value of mixedValues) {\n// nextMixedSelection = nextMixedSelection.add(value);\n// }\n// for (const value of treeItemValues) {\n// nextMixedSelection = nextMixedSelection.delete(value);\n// }\n// setMixedSelection(nextMixedSelection);\n// });\n// });\n// return [checkedSelection, mixedSelection, updateCheckedItems, rootRef] as const;\n// }\n\n// function getAllSubTreeItemValues(data: TreeCheckedChangeData) {\n// const subTreeItems = Array.from(data.event.currentTarget.querySelectorAll('[role=\"treeitem\"]'));\n// const values = new Set<TreeItemValue>();\n// for (const item of subTreeItems) {\n// values.add(item.getAttribute(dataTreeItemValueAttrName) as TreeItemValue);\n// }\n// return ImmutableSet.dangerouslyCreate(values);\n// }\n"],"names":["useControllableState","React","ImmutableMap","createCheckedItems","useControllableCheckedItems","props","initialState","empty","state","useMemo","checkedItems","defaultState","defaultCheckedItems"],"mappings":"AAAA,SAASA,oBAAoB,QAAQ,4BAA4B;AACjE,YAAYC,WAAW,QAAQ;AAE/B,SAASC,YAAY,QAAQ,2BAA2B;AACxD,SAASC,kBAAkB,QAAQ,iCAAiC;AAOpE,OAAO,SAASC,4BAA4BC,KAAsC,EAAE;IAClF,OAAOL,qBAAqB;QAC1BM,cAAcJ,aAAaK,KAAK;QAChCC,OAAOP,MAAMQ,OAAO,CAAC,IAAMJ,MAAMK,YAAY,IAAIP,mBAAmBE,MAAMK,YAAY,GAAG;YAACL,MAAMK,YAAY;SAAC;QAC7GC,cAAc,IAAMR,mBAAmBE,MAAMO,mBAAmB;IAClE;AACF,CAAC,CAED,2HAA2H;CAC3H,0EAA0E;CAC1E,iHAAiH;CACjH,6CAA6C;CAC7C,kEAAkE;CAClE,mCAAmC;CACnC,OAAO;CACP,sFAAsF;CACtF,sDAAsD;CACtD,kDAAkD;CAClD,gEAAgE;CAChE,QAAQ;CACR,uEAAuE;CACvE,wCAAwC;CACxC,mCAAmC;CACnC,qEAAqE;CACrE,4CAA4C;CAC5C,SAAS;CACT,+GAA+G;CAC/G,QAAQ;CAER,mFAAmF;CACnF,8CAA8C;CAC9C,wDAAwD;CACxD,gBAAgB;CAChB,QAAQ;CACR,wCAAwC;CACxC,gBAAgB;CAChB,QAAQ;CACR,iFAAiF;CAEjF,0EAA0E;CAE1E,yEAAyE;CAEzE,mEAAmE;CACnE,2DAA2D;CAC3D,wCAAwC;CACxC,+FAA+F;CAC/F,uFAAuF;CACvF,6EAA6E;CAC7E,mBAAmB;CACnB,qFAAqF;CACrF,8FAA8F;CAC9F,aAAa;CACb,YAAY;CACZ,gDAAgD;CAChD,+CAA+C;CAC/C,uGAAuG;CACvG,aAAa;CACb,4CAA4C;CAC5C,uGAAuG;CACvG,aAAa;CACb,iBAAiB;CACjB,0CAA0C;CAC1C,+GAA+G;CAC/G,8BAA8B;CAC9B,yCAAyC;CACzC,uGAAuG;CACvG,aAAa;CACb,UAAU;CACV,QAAQ;CACR,sCAAsC;CACtC,0BAA0B;CAC1B,gEAAgE;CAChE,mEAAmE;CACnE,sEAAsE;CACtE,2CAA2C;CAC3C,8DAA8D;CAC9D,UAAU;CACV,8CAA8C;CAC9C,iEAAiE;CACjE,UAAU;CACV,+CAA+C;CAC/C,UAAU;CACV,QAAQ;CACR,qFAAqF;CACrF,IAAI;CAEJ,kEAAkE;CAClE,qGAAqG;CACrG,6CAA6C;CAC7C,uCAAuC;CACvC,iFAAiF;CACjF,MAAM;CACN,mDAAmD;CACnD,IAAI"}
@@ -1,103 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "useControllableCheckedItems", {
6
- enumerable: true,
7
- get: ()=>useControllableCheckedItems
8
- });
9
- const _interopRequireWildcard = require("@swc/helpers/lib/_interop_require_wildcard.js").default;
10
- const _reactUtilities = require("@fluentui/react-utilities");
11
- const _react = /*#__PURE__*/ _interopRequireWildcard(require("react"));
12
- const _immutableMap = require("../../utils/ImmutableMap");
13
- const _createCheckedItems = require("../../utils/createCheckedItems");
14
- function useControllableCheckedItems(props) {
15
- return (0, _reactUtilities.useControllableState)({
16
- initialState: _immutableMap.ImmutableMap.empty,
17
- state: _react.useMemo(()=>props.checkedItems && (0, _createCheckedItems.createCheckedItems)(props.checkedItems), [
18
- props.checkedItems
19
- ]),
20
- defaultState: ()=>(0, _createCheckedItems.createCheckedItems)(props.defaultCheckedItems)
21
- });
22
- } // export function useCheckedItemsState(props: Pick<TreeProps, 'checkedItems' | 'defaultCheckedItems' | 'selectionMode'>) {
23
- // const [walkerRef, rootRef] = useHTMLElementWalkerRef(treeItemFilter);
24
- // const selections = React.useMemo(() => initializeSelection(props.checkedItems ?? []), [props.checkedItems]);
25
- // const defaultSelections = React.useMemo(
26
- // () => initializeSelection(props.defaultCheckedItems ?? []),
27
- // [props.defaultCheckedItems],
28
- // );
29
- // const [checkedSelection, checkedSelectionManager] = useSelection<TreeItemValue>({
30
- // selectionMode: props.selectionMode ?? 'single',
31
- // selectedItems: selections.checkedSelection,
32
- // defaultSelectedItems: defaultSelections.checkedSelection,
33
- // });
34
- // const [mixedSelection, setMixedSelection] = useControllableState({
35
- // initialState: ImmutableSet.empty,
36
- // defaultState: React.useMemo(
37
- // () => ImmutableSet.create(defaultSelections.mixedSelection),
38
- // [defaultSelections.mixedSelection],
39
- // ),
40
- // state: React.useMemo(() => ImmutableSet.create(selections.mixedSelection), [selections.mixedSelection]),
41
- // });
42
- // const updateCheckedItems = useEventCallback((data: TreeCheckedChangeData) => {
43
- // if (props.selectionMode === 'single') {
44
- // checkedSelectionManager.selectItem(data.value);
45
- // return;
46
- // }
47
- // if (walkerRef.current === null) {
48
- // return;
49
- // }
50
- // const nextSelectedState = !checkedSelectionManager.isSelected(data.value);
51
- // let treeItemValues = getAllSubTreeItemValues(data).add(data.value);
52
- // let mixedValues: ImmutableSet<TreeItemValue> = ImmutableSet.empty;
53
- // walkerRef.current.currentElement = data.event.currentTarget;
54
- // while (walkerRef.current.parentElement() !== null) {
55
- // const descendants = Array.from(
56
- // walkerRef.current.currentElement.querySelectorAll<HTMLElement>('[role="treeitem"]'),
57
- // ).filter(item => item.getAttribute(dataTreeItemValueAttrName) !== data.value);
58
- // const isAllSiblingsEqualSelectionState = descendants.every(item => {
59
- // return (
60
- // (item.getAttribute('aria-selected') === 'true') === nextSelectedState ||
61
- // treeItemValues.has(item.getAttribute(dataTreeItemValueAttrName) as TreeItemValue)
62
- // );
63
- // });
64
- // if (isAllSiblingsEqualSelectionState) {
65
- // treeItemValues = treeItemValues.add(
66
- // walkerRef.current.currentElement.getAttribute(dataTreeItemValueAttrName) as TreeItemValue,
67
- // );
68
- // mixedValues = mixedValues.delete(
69
- // walkerRef.current.currentElement.getAttribute(dataTreeItemValueAttrName) as TreeItemValue,
70
- // );
71
- // } else {
72
- // treeItemValues = treeItemValues
73
- // .delete(walkerRef.current.currentElement.getAttribute(dataTreeItemValueAttrName) as TreeItemValue)
74
- // .add(data.value);
75
- // mixedValues = mixedValues.add(
76
- // walkerRef.current.currentElement.getAttribute(dataTreeItemValueAttrName) as TreeItemValue,
77
- // );
78
- // }
79
- // }
80
- // unstable_batchedUpdates(() => {
81
- // nextSelectedState
82
- // ? checkedSelectionManager.selectItems(treeItemValues)
83
- // : checkedSelectionManager.deselectItems(treeItemValues);
84
- // let nextMixedSelection = ImmutableSet.create(mixedSelection);
85
- // for (const value of mixedValues) {
86
- // nextMixedSelection = nextMixedSelection.add(value);
87
- // }
88
- // for (const value of treeItemValues) {
89
- // nextMixedSelection = nextMixedSelection.delete(value);
90
- // }
91
- // setMixedSelection(nextMixedSelection);
92
- // });
93
- // });
94
- // return [checkedSelection, mixedSelection, updateCheckedItems, rootRef] as const;
95
- // }
96
- // function getAllSubTreeItemValues(data: TreeCheckedChangeData) {
97
- // const subTreeItems = Array.from(data.event.currentTarget.querySelectorAll('[role="treeitem"]'));
98
- // const values = new Set<TreeItemValue>();
99
- // for (const item of subTreeItems) {
100
- // values.add(item.getAttribute(dataTreeItemValueAttrName) as TreeItemValue);
101
- // }
102
- // return ImmutableSet.dangerouslyCreate(values);
103
- // }
@@ -1 +0,0 @@
1
- {"version":3,"sources":["useControllableCheckedItems.js"],"sourcesContent":["import { useControllableState } from '@fluentui/react-utilities';\nimport * as React from 'react';\nimport { ImmutableMap } from '../../utils/ImmutableMap';\nimport { createCheckedItems } from '../../utils/createCheckedItems';\nexport function useControllableCheckedItems(props) {\n return useControllableState({\n initialState: ImmutableMap.empty,\n state: React.useMemo(()=>props.checkedItems && createCheckedItems(props.checkedItems), [\n props.checkedItems\n ]),\n defaultState: ()=>createCheckedItems(props.defaultCheckedItems)\n });\n} // export function useCheckedItemsState(props: Pick<TreeProps, 'checkedItems' | 'defaultCheckedItems' | 'selectionMode'>) {\n // const [walkerRef, rootRef] = useHTMLElementWalkerRef(treeItemFilter);\n // const selections = React.useMemo(() => initializeSelection(props.checkedItems ?? []), [props.checkedItems]);\n // const defaultSelections = React.useMemo(\n // () => initializeSelection(props.defaultCheckedItems ?? []),\n // [props.defaultCheckedItems],\n // );\n // const [checkedSelection, checkedSelectionManager] = useSelection<TreeItemValue>({\n // selectionMode: props.selectionMode ?? 'single',\n // selectedItems: selections.checkedSelection,\n // defaultSelectedItems: defaultSelections.checkedSelection,\n // });\n // const [mixedSelection, setMixedSelection] = useControllableState({\n // initialState: ImmutableSet.empty,\n // defaultState: React.useMemo(\n // () => ImmutableSet.create(defaultSelections.mixedSelection),\n // [defaultSelections.mixedSelection],\n // ),\n // state: React.useMemo(() => ImmutableSet.create(selections.mixedSelection), [selections.mixedSelection]),\n // });\n // const updateCheckedItems = useEventCallback((data: TreeCheckedChangeData) => {\n // if (props.selectionMode === 'single') {\n // checkedSelectionManager.selectItem(data.value);\n // return;\n // }\n // if (walkerRef.current === null) {\n // return;\n // }\n // const nextSelectedState = !checkedSelectionManager.isSelected(data.value);\n // let treeItemValues = getAllSubTreeItemValues(data).add(data.value);\n // let mixedValues: ImmutableSet<TreeItemValue> = ImmutableSet.empty;\n // walkerRef.current.currentElement = data.event.currentTarget;\n // while (walkerRef.current.parentElement() !== null) {\n // const descendants = Array.from(\n // walkerRef.current.currentElement.querySelectorAll<HTMLElement>('[role=\"treeitem\"]'),\n // ).filter(item => item.getAttribute(dataTreeItemValueAttrName) !== data.value);\n // const isAllSiblingsEqualSelectionState = descendants.every(item => {\n // return (\n // (item.getAttribute('aria-selected') === 'true') === nextSelectedState ||\n // treeItemValues.has(item.getAttribute(dataTreeItemValueAttrName) as TreeItemValue)\n // );\n // });\n // if (isAllSiblingsEqualSelectionState) {\n // treeItemValues = treeItemValues.add(\n // walkerRef.current.currentElement.getAttribute(dataTreeItemValueAttrName) as TreeItemValue,\n // );\n // mixedValues = mixedValues.delete(\n // walkerRef.current.currentElement.getAttribute(dataTreeItemValueAttrName) as TreeItemValue,\n // );\n // } else {\n // treeItemValues = treeItemValues\n // .delete(walkerRef.current.currentElement.getAttribute(dataTreeItemValueAttrName) as TreeItemValue)\n // .add(data.value);\n // mixedValues = mixedValues.add(\n // walkerRef.current.currentElement.getAttribute(dataTreeItemValueAttrName) as TreeItemValue,\n // );\n // }\n // }\n // unstable_batchedUpdates(() => {\n // nextSelectedState\n // ? checkedSelectionManager.selectItems(treeItemValues)\n // : checkedSelectionManager.deselectItems(treeItemValues);\n // let nextMixedSelection = ImmutableSet.create(mixedSelection);\n // for (const value of mixedValues) {\n // nextMixedSelection = nextMixedSelection.add(value);\n // }\n // for (const value of treeItemValues) {\n // nextMixedSelection = nextMixedSelection.delete(value);\n // }\n // setMixedSelection(nextMixedSelection);\n // });\n // });\n // return [checkedSelection, mixedSelection, updateCheckedItems, rootRef] as const;\n // }\n // function getAllSubTreeItemValues(data: TreeCheckedChangeData) {\n // const subTreeItems = Array.from(data.event.currentTarget.querySelectorAll('[role=\"treeitem\"]'));\n // const values = new Set<TreeItemValue>();\n // for (const item of subTreeItems) {\n // values.add(item.getAttribute(dataTreeItemValueAttrName) as TreeItemValue);\n // }\n // return ImmutableSet.dangerouslyCreate(values);\n // }\n"],"names":["useControllableCheckedItems","props","useControllableState","initialState","ImmutableMap","empty","state","React","useMemo","checkedItems","createCheckedItems","defaultState","defaultCheckedItems"],"mappings":";;;;+BAIgBA;;aAAAA;;;gCAJqB;6DACd;8BACM;oCACM;AAC5B,SAASA,4BAA4BC,KAAK,EAAE;IAC/C,OAAOC,IAAAA,oCAAoB,EAAC;QACxBC,cAAcC,0BAAY,CAACC,KAAK;QAChCC,OAAOC,OAAMC,OAAO,CAAC,IAAIP,MAAMQ,YAAY,IAAIC,IAAAA,sCAAkB,EAACT,MAAMQ,YAAY,GAAG;YACnFR,MAAMQ,YAAY;SACrB;QACDE,cAAc,IAAID,IAAAA,sCAAkB,EAACT,MAAMW,mBAAmB;IAClE;AACJ,EAAE,2HAA2H;CAC5H,0EAA0E;CAC1E,iHAAiH;CACjH,6CAA6C;CAC7C,kEAAkE;CAClE,mCAAmC;CACnC,OAAO;CACP,sFAAsF;CACtF,sDAAsD;CACtD,kDAAkD;CAClD,gEAAgE;CAChE,QAAQ;CACR,uEAAuE;CACvE,wCAAwC;CACxC,mCAAmC;CACnC,qEAAqE;CACrE,4CAA4C;CAC5C,SAAS;CACT,+GAA+G;CAC/G,QAAQ;CACR,mFAAmF;CACnF,8CAA8C;CAC9C,wDAAwD;CACxD,gBAAgB;CAChB,QAAQ;CACR,wCAAwC;CACxC,gBAAgB;CAChB,QAAQ;CACR,iFAAiF;CACjF,0EAA0E;CAC1E,yEAAyE;CACzE,mEAAmE;CACnE,2DAA2D;CAC3D,wCAAwC;CACxC,+FAA+F;CAC/F,uFAAuF;CACvF,6EAA6E;CAC7E,mBAAmB;CACnB,qFAAqF;CACrF,8FAA8F;CAC9F,aAAa;CACb,YAAY;CACZ,gDAAgD;CAChD,+CAA+C;CAC/C,uGAAuG;CACvG,aAAa;CACb,4CAA4C;CAC5C,uGAAuG;CACvG,aAAa;CACb,iBAAiB;CACjB,0CAA0C;CAC1C,+GAA+G;CAC/G,8BAA8B;CAC9B,yCAAyC;CACzC,uGAAuG;CACvG,aAAa;CACb,UAAU;CACV,QAAQ;CACR,sCAAsC;CACtC,0BAA0B;CAC1B,gEAAgE;CAChE,mEAAmE;CACnE,sEAAsE;CACtE,2CAA2C;CAC3C,8DAA8D;CAC9D,UAAU;CACV,8CAA8C;CAC9C,iEAAiE;CACjE,UAAU;CACV,+CAA+C;CAC/C,UAAU;CACV,QAAQ;CACR,qFAAqF;CACrF,IAAI;CACJ,kEAAkE;CAClE,qGAAqG;CACrG,6CAA6C;CAC7C,uCAAuC;CACvC,iFAAiF;CACjF,MAAM;CACN,mDAAmD;CACnD,IAAI"}