@fluentui/react-tree 9.0.0-beta.5 → 9.0.0-beta.7

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 (182) hide show
  1. package/.swcrc +30 -0
  2. package/CHANGELOG.json +145 -1
  3. package/CHANGELOG.md +39 -2
  4. package/dist/index.d.ts +26 -20
  5. package/lib/Tree.js.map +1 -1
  6. package/lib/TreeItem.js.map +1 -1
  7. package/lib/TreeItemLayout.js.map +1 -1
  8. package/lib/TreeItemPersonaLayout.js.map +1 -1
  9. package/lib/components/Tree/Tree.js.map +1 -1
  10. package/lib/components/Tree/Tree.types.js +1 -1
  11. package/lib/components/Tree/Tree.types.js.map +1 -1
  12. package/lib/components/Tree/index.js.map +1 -1
  13. package/lib/components/Tree/renderTree.js +1 -3
  14. package/lib/components/Tree/renderTree.js.map +1 -1
  15. package/lib/components/Tree/useTree.js +5 -4
  16. package/lib/components/Tree/useTree.js.map +1 -1
  17. package/lib/components/Tree/useTreeContextValues.js +3 -3
  18. package/lib/components/Tree/useTreeContextValues.js.map +1 -1
  19. package/lib/components/Tree/useTreeStyles.js.map +1 -1
  20. package/lib/components/TreeItem/TreeItem.js.map +1 -1
  21. package/lib/components/TreeItem/TreeItem.types.js +1 -1
  22. package/lib/components/TreeItem/TreeItem.types.js.map +1 -1
  23. package/lib/components/TreeItem/index.js.map +1 -1
  24. package/lib/components/TreeItem/renderTreeItem.js +2 -12
  25. package/lib/components/TreeItem/renderTreeItem.js.map +1 -1
  26. package/lib/components/TreeItem/useTreeItem.js.map +1 -1
  27. package/lib/components/TreeItem/useTreeItemContextValues.js.map +1 -1
  28. package/lib/components/TreeItem/useTreeItemStyles.js.map +1 -1
  29. package/lib/components/TreeItemLayout/TreeItemLayout.js.map +1 -1
  30. package/lib/components/TreeItemLayout/TreeItemLayout.types.js.map +1 -1
  31. package/lib/components/TreeItemLayout/index.js.map +1 -1
  32. package/lib/components/TreeItemLayout/renderTreeItemLayout.js +1 -9
  33. package/lib/components/TreeItemLayout/renderTreeItemLayout.js.map +1 -1
  34. package/lib/components/TreeItemLayout/useTreeItemLayout.js +1 -0
  35. package/lib/components/TreeItemLayout/useTreeItemLayout.js.map +1 -1
  36. package/lib/components/TreeItemLayout/useTreeItemLayoutStyles.js.map +1 -1
  37. package/lib/components/TreeItemPersonaLayout/TreeItemPersonaLayout.js.map +1 -1
  38. package/lib/components/TreeItemPersonaLayout/TreeItemPersonaLayout.types.js.map +1 -1
  39. package/lib/components/TreeItemPersonaLayout/index.js.map +1 -1
  40. package/lib/components/TreeItemPersonaLayout/renderTreeItemPersonaLayout.js +2 -14
  41. package/lib/components/TreeItemPersonaLayout/renderTreeItemPersonaLayout.js.map +1 -1
  42. package/lib/components/TreeItemPersonaLayout/useTreeItemPersonaLayout.js +1 -0
  43. package/lib/components/TreeItemPersonaLayout/useTreeItemPersonaLayout.js.map +1 -1
  44. package/lib/components/TreeItemPersonaLayout/useTreeItemPersonaLayoutContextValues.js.map +1 -1
  45. package/lib/components/TreeItemPersonaLayout/useTreeItemPersonaLayoutStyles.js.map +1 -1
  46. package/lib/contexts/index.js.map +1 -1
  47. package/lib/contexts/treeContext.js +1 -2
  48. package/lib/contexts/treeContext.js.map +1 -1
  49. package/lib/contexts/treeItemContext.js +2 -4
  50. package/lib/contexts/treeItemContext.js.map +1 -1
  51. package/lib/hooks/index.js.map +1 -1
  52. package/lib/hooks/useFlatTree.js +42 -22
  53. package/lib/hooks/useFlatTree.js.map +1 -1
  54. package/lib/hooks/useFlatTreeNavigation.js +7 -7
  55. package/lib/hooks/useFlatTreeNavigation.js.map +1 -1
  56. package/lib/hooks/useHTMLElementWalker.js +5 -5
  57. package/lib/hooks/useHTMLElementWalker.js.map +1 -1
  58. package/lib/hooks/useNestedTreeNavigation.js.map +1 -1
  59. package/lib/hooks/useOpenItemsState.js.map +1 -1
  60. package/lib/hooks/useRovingTabIndexes.js.map +1 -1
  61. package/lib/index.js.map +1 -1
  62. package/lib/utils/ImmutableSet.js.map +1 -1
  63. package/lib/utils/assert.js +1 -0
  64. package/lib/utils/assert.js.map +1 -1
  65. package/lib/utils/createFlatTreeItems.js +109 -0
  66. package/lib/utils/createFlatTreeItems.js.map +1 -0
  67. package/lib/utils/flattenTree.js +3 -4
  68. package/lib/utils/flattenTree.js.map +1 -1
  69. package/lib/utils/nextTypeAheadElement.js +2 -2
  70. package/lib/utils/nextTypeAheadElement.js.map +1 -1
  71. package/lib/utils/normalizeOpenItems.js.map +1 -1
  72. package/lib/utils/tokens.js.map +1 -1
  73. package/lib/utils/treeItemFilter.js.map +1 -1
  74. package/lib-commonjs/Tree.js +5 -4
  75. package/lib-commonjs/Tree.js.map +1 -1
  76. package/lib-commonjs/TreeItem.js +5 -4
  77. package/lib-commonjs/TreeItem.js.map +1 -1
  78. package/lib-commonjs/TreeItemLayout.js +5 -4
  79. package/lib-commonjs/TreeItemLayout.js.map +1 -1
  80. package/lib-commonjs/TreeItemPersonaLayout.js +5 -4
  81. package/lib-commonjs/TreeItemPersonaLayout.js.map +1 -1
  82. package/lib-commonjs/components/Tree/Tree.js +18 -22
  83. package/lib-commonjs/components/Tree/Tree.js.map +1 -1
  84. package/lib-commonjs/components/Tree/Tree.types.js +5 -2
  85. package/lib-commonjs/components/Tree/Tree.types.js.map +1 -1
  86. package/lib-commonjs/components/Tree/index.js +10 -9
  87. package/lib-commonjs/components/Tree/index.js.map +1 -1
  88. package/lib-commonjs/components/Tree/renderTree.js +16 -18
  89. package/lib-commonjs/components/Tree/renderTree.js.map +1 -1
  90. package/lib-commonjs/components/Tree/useTree.js +88 -101
  91. package/lib-commonjs/components/Tree/useTree.js.map +1 -1
  92. package/lib-commonjs/components/Tree/useTreeContextValues.js +22 -28
  93. package/lib-commonjs/components/Tree/useTreeContextValues.js.map +1 -1
  94. package/lib-commonjs/components/Tree/useTreeStyles.js +31 -20
  95. package/lib-commonjs/components/Tree/useTreeStyles.js.map +1 -1
  96. package/lib-commonjs/components/TreeItem/TreeItem.js +18 -17
  97. package/lib-commonjs/components/TreeItem/TreeItem.js.map +1 -1
  98. package/lib-commonjs/components/TreeItem/TreeItem.types.js +5 -3
  99. package/lib-commonjs/components/TreeItem/TreeItem.types.js.map +1 -1
  100. package/lib-commonjs/components/TreeItem/index.js +9 -8
  101. package/lib-commonjs/components/TreeItem/index.js.map +1 -1
  102. package/lib-commonjs/components/TreeItem/renderTreeItem.js +19 -32
  103. package/lib-commonjs/components/TreeItem/renderTreeItem.js.map +1 -1
  104. package/lib-commonjs/components/TreeItem/useTreeItem.js +229 -249
  105. package/lib-commonjs/components/TreeItem/useTreeItem.js.map +1 -1
  106. package/lib-commonjs/components/TreeItem/useTreeItemContextValues.js +24 -20
  107. package/lib-commonjs/components/TreeItem/useTreeItemContextValues.js.map +1 -1
  108. package/lib-commonjs/components/TreeItem/useTreeItemStyles.js +353 -188
  109. package/lib-commonjs/components/TreeItem/useTreeItemStyles.js.map +1 -1
  110. package/lib-commonjs/components/TreeItemLayout/TreeItemLayout.js +16 -15
  111. package/lib-commonjs/components/TreeItemLayout/TreeItemLayout.js.map +1 -1
  112. package/lib-commonjs/components/TreeItemLayout/TreeItemLayout.types.js +3 -2
  113. package/lib-commonjs/components/TreeItemLayout/TreeItemLayout.types.js.map +1 -1
  114. package/lib-commonjs/components/TreeItemLayout/index.js +9 -8
  115. package/lib-commonjs/components/TreeItemLayout/index.js.map +1 -1
  116. package/lib-commonjs/components/TreeItemLayout/renderTreeItemLayout.js +14 -27
  117. package/lib-commonjs/components/TreeItemLayout/renderTreeItemLayout.js.map +1 -1
  118. package/lib-commonjs/components/TreeItemLayout/useTreeItemLayout.js +42 -52
  119. package/lib-commonjs/components/TreeItemLayout/useTreeItemLayout.js.map +1 -1
  120. package/lib-commonjs/components/TreeItemLayout/useTreeItemLayoutStyles.js +126 -88
  121. package/lib-commonjs/components/TreeItemLayout/useTreeItemLayoutStyles.js.map +1 -1
  122. package/lib-commonjs/components/TreeItemPersonaLayout/TreeItemPersonaLayout.js +18 -17
  123. package/lib-commonjs/components/TreeItemPersonaLayout/TreeItemPersonaLayout.js.map +1 -1
  124. package/lib-commonjs/components/TreeItemPersonaLayout/TreeItemPersonaLayout.types.js +3 -2
  125. package/lib-commonjs/components/TreeItemPersonaLayout/TreeItemPersonaLayout.types.js.map +1 -1
  126. package/lib-commonjs/components/TreeItemPersonaLayout/index.js +9 -8
  127. package/lib-commonjs/components/TreeItemPersonaLayout/index.js.map +1 -1
  128. package/lib-commonjs/components/TreeItemPersonaLayout/renderTreeItemPersonaLayout.js +17 -34
  129. package/lib-commonjs/components/TreeItemPersonaLayout/renderTreeItemPersonaLayout.js.map +1 -1
  130. package/lib-commonjs/components/TreeItemPersonaLayout/useTreeItemPersonaLayout.js +46 -61
  131. package/lib-commonjs/components/TreeItemPersonaLayout/useTreeItemPersonaLayout.js.map +1 -1
  132. package/lib-commonjs/components/TreeItemPersonaLayout/useTreeItemPersonaLayoutContextValues.js +18 -15
  133. package/lib-commonjs/components/TreeItemPersonaLayout/useTreeItemPersonaLayoutContextValues.js.map +1 -1
  134. package/lib-commonjs/components/TreeItemPersonaLayout/useTreeItemPersonaLayoutStyles.js +165 -101
  135. package/lib-commonjs/components/TreeItemPersonaLayout/useTreeItemPersonaLayoutStyles.js.map +1 -1
  136. package/lib-commonjs/contexts/index.js +6 -5
  137. package/lib-commonjs/contexts/index.js.map +1 -1
  138. package/lib-commonjs/contexts/treeContext.js +25 -17
  139. package/lib-commonjs/contexts/treeContext.js.map +1 -1
  140. package/lib-commonjs/contexts/treeItemContext.js +20 -12
  141. package/lib-commonjs/contexts/treeItemContext.js.map +1 -1
  142. package/lib-commonjs/hooks/index.js +7 -6
  143. package/lib-commonjs/hooks/index.js.map +1 -1
  144. package/lib-commonjs/hooks/useFlatTree.js +74 -52
  145. package/lib-commonjs/hooks/useFlatTree.js.map +1 -1
  146. package/lib-commonjs/hooks/useFlatTreeNavigation.js +73 -72
  147. package/lib-commonjs/hooks/useFlatTreeNavigation.js.map +1 -1
  148. package/lib-commonjs/hooks/useHTMLElementWalker.js +94 -83
  149. package/lib-commonjs/hooks/useHTMLElementWalker.js.map +1 -1
  150. package/lib-commonjs/hooks/useNestedTreeNavigation.js +61 -58
  151. package/lib-commonjs/hooks/useNestedTreeNavigation.js.map +1 -1
  152. package/lib-commonjs/hooks/useOpenItemsState.js +32 -22
  153. package/lib-commonjs/hooks/useOpenItemsState.js.map +1 -1
  154. package/lib-commonjs/hooks/useRovingTabIndexes.js +56 -53
  155. package/lib-commonjs/hooks/useRovingTabIndexes.js.map +1 -1
  156. package/lib-commonjs/index.js +48 -180
  157. package/lib-commonjs/index.js.map +1 -1
  158. package/lib-commonjs/utils/ImmutableSet.js +39 -38
  159. package/lib-commonjs/utils/ImmutableSet.js.map +1 -1
  160. package/lib-commonjs/utils/assert.js +13 -9
  161. package/lib-commonjs/utils/assert.js.map +1 -1
  162. package/lib-commonjs/utils/createFlatTreeItems.js +126 -0
  163. package/lib-commonjs/utils/createFlatTreeItems.js.map +1 -0
  164. package/lib-commonjs/utils/flattenTree.js +25 -29
  165. package/lib-commonjs/utils/flattenTree.js.map +1 -1
  166. package/lib-commonjs/utils/nextTypeAheadElement.js +18 -16
  167. package/lib-commonjs/utils/nextTypeAheadElement.js.map +1 -1
  168. package/lib-commonjs/utils/normalizeOpenItems.js +13 -9
  169. package/lib-commonjs/utils/normalizeOpenItems.js.map +1 -1
  170. package/lib-commonjs/utils/tokens.js +30 -20
  171. package/lib-commonjs/utils/tokens.js.map +1 -1
  172. package/lib-commonjs/utils/treeItemFilter.js +9 -7
  173. package/lib-commonjs/utils/treeItemFilter.js.map +1 -1
  174. package/package.json +19 -15
  175. package/lib/utils/createUnfilteredFlatTree.js +0 -77
  176. package/lib/utils/createUnfilteredFlatTree.js.map +0 -1
  177. package/lib/utils/createVisibleFlatTree.js +0 -80
  178. package/lib/utils/createVisibleFlatTree.js.map +0 -1
  179. package/lib-commonjs/utils/createUnfilteredFlatTree.js +0 -84
  180. package/lib-commonjs/utils/createUnfilteredFlatTree.js.map +0 -1
  181. package/lib-commonjs/utils/createVisibleFlatTree.js +0 -87
  182. package/lib-commonjs/utils/createVisibleFlatTree.js.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fluentui/react-tree",
3
- "version": "9.0.0-beta.5",
3
+ "version": "9.0.0-beta.7",
4
4
  "description": "React components for building web experiences",
5
5
  "main": "lib-commonjs/index.js",
6
6
  "module": "lib/index.js",
@@ -18,7 +18,9 @@
18
18
  "just": "just-scripts",
19
19
  "lint": "just-scripts lint",
20
20
  "test": "jest --passWithNoTests",
21
- "generate-api": "tsc -p ./tsconfig.lib.json --emitDeclarationOnly && just-scripts api-extractor",
21
+ "e2e": "cypress run --component",
22
+ "e2e:local": "cypress open --component",
23
+ "generate-api": "just-scripts generate-api",
22
24
  "type-check": "tsc -b tsconfig.json",
23
25
  "storybook": "start-storybook",
24
26
  "start": "yarn storybook"
@@ -26,25 +28,26 @@
26
28
  "devDependencies": {
27
29
  "@fluentui/eslint-plugin": "*",
28
30
  "@fluentui/react-conformance": "*",
29
- "@fluentui/react-conformance-griffel": "9.0.0-beta.19",
31
+ "@fluentui/react-conformance-griffel": "9.0.0-beta.20",
30
32
  "@fluentui/scripts-api-extractor": "*",
31
33
  "@fluentui/scripts-tasks": "*",
34
+ "@fluentui/scripts-cypress": "*",
32
35
  "react-window": "^1.8.6"
33
36
  },
34
37
  "dependencies": {
35
- "@fluentui/react-context-selector": "^9.1.14",
36
- "@fluentui/react-shared-contexts": "^9.3.1",
37
- "@fluentui/react-avatar": "^9.4.4",
38
- "@fluentui/react-aria": "^9.3.14",
39
- "@fluentui/react-tabster": "^9.6.0",
40
- "@fluentui/react-portal": "^9.2.1",
41
- "@fluentui/react-button": "^9.3.4",
42
- "@fluentui/keyboard-keys": "^9.0.1",
43
- "@fluentui/react-theme": "^9.1.6",
44
- "@fluentui/react-utilities": "^9.7.1",
45
- "@fluentui/react-icons": "^2.0.175",
38
+ "@fluentui/keyboard-keys": "^9.0.2",
39
+ "@fluentui/react-aria": "^9.3.15",
40
+ "@fluentui/react-avatar": "^9.4.6",
41
+ "@fluentui/react-button": "^9.3.6",
42
+ "@fluentui/react-context-selector": "^9.1.15",
43
+ "@fluentui/react-icons": "^2.0.196",
44
+ "@fluentui/react-portal": "^9.2.3",
45
+ "@fluentui/react-shared-contexts": "^9.3.3",
46
+ "@fluentui/react-tabster": "^9.6.2",
47
+ "@fluentui/react-theme": "^9.1.7",
48
+ "@fluentui/react-utilities": "^9.7.2",
46
49
  "@griffel/react": "^1.5.2",
47
- "tslib": "^2.1.0"
50
+ "@swc/helpers": "^0.4.14"
48
51
  },
49
52
  "peerDependencies": {
50
53
  "@types/react": ">=16.8.0 <19.0.0",
@@ -62,6 +65,7 @@
62
65
  "exports": {
63
66
  ".": {
64
67
  "types": "./dist/index.d.ts",
68
+ "node": "./lib-commonjs/index.js",
65
69
  "import": "./lib/index.js",
66
70
  "require": "./lib-commonjs/index.js"
67
71
  },
@@ -1,77 +0,0 @@
1
- /**
2
- * creates a list of flat tree items
3
- * and provides a map to access each item by id
4
- */
5
- export function createUnfilteredFlatTree(flatTreeItemProps) {
6
- var _a;
7
- const root = createRootFlatTreeItem();
8
- const itemsPerId = new Map([[root.id, root]]);
9
- const items = [];
10
- for (let index = 0; index < flatTreeItemProps.length; index++) {
11
- const {
12
- parentId = flatTreeRootParentId,
13
- ...treeItemProps
14
- } = flatTreeItemProps[index];
15
- const nextItemProps = flatTreeItemProps[index + 1];
16
- const currentParent = itemsPerId.get(parentId);
17
- if (!currentParent) {
18
- if (process.env.NODE_ENV === 'development') {
19
- // eslint-disable-next-line no-console
20
- console.error(`useFlatTree: item ${flatTreeItemProps[index].id} not properly initialized, make sure provided items are organized`);
21
- }
22
- break;
23
- }
24
- const isLeaf = (nextItemProps === null || nextItemProps === void 0 ? void 0 : nextItemProps.parentId) !== treeItemProps.id;
25
- const currentLevel = ((_a = currentParent.level) !== null && _a !== void 0 ? _a : 0) + 1;
26
- const currentChildrenSize = ++currentParent.childrenSize;
27
- const flatTreeItem = {
28
- id: treeItemProps.id,
29
- getTreeItemProps: () => ({
30
- ...treeItemProps,
31
- 'aria-level': currentLevel,
32
- 'aria-posinset': currentChildrenSize,
33
- 'aria-setsize': currentParent.childrenSize,
34
- leaf: isLeaf
35
- }),
36
- level: currentLevel,
37
- parentId,
38
- childrenSize: 0,
39
- index: -1
40
- };
41
- itemsPerId.set(flatTreeItem.id, flatTreeItem);
42
- items.push(flatTreeItem);
43
- }
44
- return {
45
- items,
46
- itemsPerId
47
- };
48
- }
49
- export const flatTreeRootParentId = '__fuiFlatTreeRoot';
50
- function createRootFlatTreeItem() {
51
- return {
52
- id: flatTreeRootParentId,
53
- getTreeItemProps: () => {
54
- if (process.env.NODE_ENV === 'development') {
55
- // eslint-disable-next-line no-console
56
- console.error('useFlatTree: internal error, trying to access treeitem props from invalid root element');
57
- }
58
- return {
59
- id: flatTreeRootParentId,
60
- 'aria-setsize': -1,
61
- 'aria-level': -1,
62
- 'aria-posinset': -1,
63
- leaf: true
64
- };
65
- },
66
- childrenSize: 0,
67
- get index() {
68
- if (process.env.NODE_ENV === 'development') {
69
- // eslint-disable-next-line no-console
70
- console.error('useFlatTree: internal error, trying to access treeitem props from invalid root element');
71
- }
72
- return -1;
73
- },
74
- level: 0
75
- };
76
- }
77
- //# sourceMappingURL=createUnfilteredFlatTree.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["createUnfilteredFlatTree","flatTreeItemProps","root","createRootFlatTreeItem","itemsPerId","Map","id","items","index","length","parentId","flatTreeRootParentId","treeItemProps","nextItemProps","currentParent","get","process","env","NODE_ENV","console","error","isLeaf","currentLevel","_a","level","currentChildrenSize","childrenSize","flatTreeItem","getTreeItemProps","leaf","set","push"],"sources":["../src/packages/react-components/react-tree/src/utils/createUnfilteredFlatTree.ts"],"sourcesContent":["import { FlatTreeItem, FlatTreeItemProps } from '../hooks/useFlatTree';\n\n/**\n * @internal\n */\nexport type UnfilteredFlatTree = {\n items: FlatTreeItem[];\n itemsPerId: Map<string, FlatTreeItem>;\n};\n\n/**\n * creates a list of flat tree items\n * and provides a map to access each item by id\n */\nexport function createUnfilteredFlatTree(flatTreeItemProps: FlatTreeItemProps[]): UnfilteredFlatTree {\n const root = createRootFlatTreeItem();\n const itemsPerId = new Map<string, FlatTreeItem>([[root.id, root]]);\n const items: FlatTreeItem[] = [];\n\n for (let index = 0; index < flatTreeItemProps.length; index++) {\n const { parentId = flatTreeRootParentId, ...treeItemProps } = flatTreeItemProps[index];\n\n const nextItemProps = flatTreeItemProps[index + 1] as FlatTreeItemProps | undefined;\n const currentParent = itemsPerId.get(parentId);\n if (!currentParent) {\n if (process.env.NODE_ENV === 'development') {\n // eslint-disable-next-line no-console\n console.error(\n `useFlatTree: item ${flatTreeItemProps[index].id} not properly initialized, make sure provided items are organized`,\n );\n }\n break;\n }\n const isLeaf = nextItemProps?.parentId !== treeItemProps.id;\n const currentLevel = (currentParent.level ?? 0) + 1;\n const currentChildrenSize = ++currentParent.childrenSize;\n\n const flatTreeItem: FlatTreeItem = {\n id: treeItemProps.id,\n getTreeItemProps: () => ({\n ...treeItemProps,\n 'aria-level': currentLevel,\n 'aria-posinset': currentChildrenSize,\n 'aria-setsize': currentParent.childrenSize,\n leaf: isLeaf,\n }),\n level: currentLevel,\n parentId,\n childrenSize: 0,\n index: -1,\n };\n itemsPerId.set(flatTreeItem.id, flatTreeItem);\n items.push(flatTreeItem);\n }\n\n return { items, itemsPerId };\n}\n\nexport const flatTreeRootParentId = '__fuiFlatTreeRoot';\n\nfunction createRootFlatTreeItem(): FlatTreeItem {\n return {\n id: flatTreeRootParentId,\n getTreeItemProps: () => {\n if (process.env.NODE_ENV === 'development') {\n // eslint-disable-next-line no-console\n console.error('useFlatTree: internal error, trying to access treeitem props from invalid root element');\n }\n return { id: flatTreeRootParentId, 'aria-setsize': -1, 'aria-level': -1, 'aria-posinset': -1, leaf: true };\n },\n childrenSize: 0,\n get index() {\n if (process.env.NODE_ENV === 'development') {\n // eslint-disable-next-line no-console\n console.error('useFlatTree: internal error, trying to access treeitem props from invalid root element');\n }\n return -1;\n },\n level: 0,\n };\n}\n"],"mappings":"AAUA;;;;AAIA,OAAM,SAAUA,wBAAwBA,CAACC,iBAAsC;;EAC7E,MAAMC,IAAI,GAAGC,sBAAsB,EAAE;EACrC,MAAMC,UAAU,GAAG,IAAIC,GAAG,CAAuB,CAAC,CAACH,IAAI,CAACI,EAAE,EAAEJ,IAAI,CAAC,CAAC,CAAC;EACnE,MAAMK,KAAK,GAAmB,EAAE;EAEhC,KAAK,IAAIC,KAAK,GAAG,CAAC,EAAEA,KAAK,GAAGP,iBAAiB,CAACQ,MAAM,EAAED,KAAK,EAAE,EAAE;IAC7D,MAAM;MAAEE,QAAQ,GAAGC,oBAAoB;MAAE,GAAGC;IAAa,CAAE,GAAGX,iBAAiB,CAACO,KAAK,CAAC;IAEtF,MAAMK,aAAa,GAAGZ,iBAAiB,CAACO,KAAK,GAAG,CAAC,CAAkC;IACnF,MAAMM,aAAa,GAAGV,UAAU,CAACW,GAAG,CAACL,QAAQ,CAAC;IAC9C,IAAI,CAACI,aAAa,EAAE;MAClB,IAAIE,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,aAAa,EAAE;QAC1C;QACAC,OAAO,CAACC,KAAK,CACX,qBAAqBnB,iBAAiB,CAACO,KAAK,CAAC,CAACF,EAAE,mEAAmE,CACpH;;MAEH;;IAEF,MAAMe,MAAM,GAAG,CAAAR,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEH,QAAQ,MAAKE,aAAa,CAACN,EAAE;IAC3D,MAAMgB,YAAY,GAAG,CAAC,CAAAC,EAAA,GAAAT,aAAa,CAACU,KAAK,cAAAD,EAAA,cAAAA,EAAA,GAAI,CAAC,IAAI,CAAC;IACnD,MAAME,mBAAmB,GAAG,EAAEX,aAAa,CAACY,YAAY;IAExD,MAAMC,YAAY,GAAiB;MACjCrB,EAAE,EAAEM,aAAa,CAACN,EAAE;MACpBsB,gBAAgB,EAAEA,CAAA,MAAO;QACvB,GAAGhB,aAAa;QAChB,YAAY,EAAEU,YAAY;QAC1B,eAAe,EAAEG,mBAAmB;QACpC,cAAc,EAAEX,aAAa,CAACY,YAAY;QAC1CG,IAAI,EAAER;OACP,CAAC;MACFG,KAAK,EAAEF,YAAY;MACnBZ,QAAQ;MACRgB,YAAY,EAAE,CAAC;MACflB,KAAK,EAAE,CAAC;KACT;IACDJ,UAAU,CAAC0B,GAAG,CAACH,YAAY,CAACrB,EAAE,EAAEqB,YAAY,CAAC;IAC7CpB,KAAK,CAACwB,IAAI,CAACJ,YAAY,CAAC;;EAG1B,OAAO;IAAEpB,KAAK;IAAEH;EAAU,CAAE;AAC9B;AAEA,OAAO,MAAMO,oBAAoB,GAAG,mBAAmB;AAEvD,SAASR,sBAAsBA,CAAA;EAC7B,OAAO;IACLG,EAAE,EAAEK,oBAAoB;IACxBiB,gBAAgB,EAAEA,CAAA,KAAK;MACrB,IAAIZ,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,aAAa,EAAE;QAC1C;QACAC,OAAO,CAACC,KAAK,CAAC,wFAAwF,CAAC;;MAEzG,OAAO;QAAEd,EAAE,EAAEK,oBAAoB;QAAE,cAAc,EAAE,CAAC,CAAC;QAAE,YAAY,EAAE,CAAC,CAAC;QAAE,eAAe,EAAE,CAAC,CAAC;QAAEkB,IAAI,EAAE;MAAI,CAAE;IAC5G,CAAC;IACDH,YAAY,EAAE,CAAC;IACf,IAAIlB,KAAKA,CAAA;MACP,IAAIQ,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,aAAa,EAAE;QAC1C;QACAC,OAAO,CAACC,KAAK,CAAC,wFAAwF,CAAC;;MAEzG,OAAO,CAAC,CAAC;IACX,CAAC;IACDI,KAAK,EAAE;GACR;AACH"}
@@ -1,80 +0,0 @@
1
- import { flatTreeRootParentId } from './createUnfilteredFlatTree';
2
- import { treeDataTypes } from './tokens';
3
- /**
4
- * creates methods that depend on the unfilteredFlatTree and the current available openItems
5
- */
6
- export function createVisibleFlatTree(unfilteredFlatTree, openItems) {
7
- let visibleItems = null;
8
- const getNextNavigableItem = data => {
9
- var _a, _b, _c, _d;
10
- const item = unfilteredFlatTree.itemsPerId.get(data.target.id);
11
- if (!item || !visibleItems) {
12
- return null;
13
- }
14
- switch (data.type) {
15
- case treeDataTypes.arrowLeft:
16
- return item.parentId ? (_a = unfilteredFlatTree.itemsPerId.get(item.parentId)) !== null && _a !== void 0 ? _a : null : null;
17
- case treeDataTypes.arrowRight:
18
- return (_b = visibleItems[item.index + 1]) !== null && _b !== void 0 ? _b : null;
19
- case treeDataTypes.end:
20
- return visibleItems[visibleItems.length - 1];
21
- case treeDataTypes.home:
22
- return visibleItems[0];
23
- case treeDataTypes.arrowDown:
24
- return (_c = visibleItems[item.index + 1]) !== null && _c !== void 0 ? _c : null;
25
- case treeDataTypes.arrowUp:
26
- return (_d = visibleItems[item.index - 1]) !== null && _d !== void 0 ? _d : null;
27
- default:
28
- return null;
29
- }
30
- };
31
- function* makeVisibleItemsGenerator() {
32
- var _a;
33
- visibleItems = [];
34
- for (let index = 0, visibleIndex = 0; index < unfilteredFlatTree.items.length; index++) {
35
- const item = unfilteredFlatTree.items[index];
36
- const parent = unfilteredFlatTree.itemsPerId.get((_a = item.parentId) !== null && _a !== void 0 ? _a : flatTreeRootParentId);
37
- if (!parent) {
38
- break;
39
- }
40
- if (isFlatTreeItemVisible(item, {
41
- openItems,
42
- unfilteredFlatTree
43
- })) {
44
- item.index = visibleIndex++;
45
- visibleItems.push({
46
- ...item
47
- });
48
- yield item;
49
- } else {
50
- index += parent.childrenSize - 1 + item.childrenSize;
51
- }
52
- }
53
- }
54
- return {
55
- getNextNavigableItem,
56
- items: () => {
57
- return visibleItems || makeVisibleItemsGenerator();
58
- }
59
- };
60
- }
61
- function isFlatTreeItemVisible(item, {
62
- openItems,
63
- unfilteredFlatTree: flatTree
64
- }) {
65
- if (item.level === 1) {
66
- return true;
67
- }
68
- while (item.parentId && item.parentId !== flatTreeRootParentId) {
69
- if (!openItems.has(item.parentId)) {
70
- return false;
71
- }
72
- const parent = flatTree.itemsPerId.get(item.parentId);
73
- if (!parent) {
74
- return false;
75
- }
76
- item = parent;
77
- }
78
- return true;
79
- }
80
- //# sourceMappingURL=createVisibleFlatTree.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["flatTreeRootParentId","treeDataTypes","createVisibleFlatTree","unfilteredFlatTree","openItems","visibleItems","getNextNavigableItem","data","item","itemsPerId","get","target","id","type","arrowLeft","parentId","_a","arrowRight","_b","index","end","length","home","arrowDown","_c","arrowUp","_d","makeVisibleItemsGenerator","visibleIndex","items","parent","isFlatTreeItemVisible","push","childrenSize","flatTree","level","has"],"sources":["../src/packages/react-components/react-tree/src/utils/createVisibleFlatTree.ts"],"sourcesContent":["import { FlatTree, FlatTreeItem } from '../hooks/useFlatTree';\nimport { TreeItemId, TreeNavigationData_unstable } from '../Tree';\nimport { flatTreeRootParentId, UnfilteredFlatTree } from './createUnfilteredFlatTree';\nimport { ImmutableSet } from './ImmutableSet';\nimport { treeDataTypes } from './tokens';\n\n/**\n * creates methods that depend on the unfilteredFlatTree and the current available openItems\n */\nexport function createVisibleFlatTree(\n unfilteredFlatTree: UnfilteredFlatTree,\n openItems: ImmutableSet<TreeItemId>,\n): Pick<FlatTree, 'items' | 'getNextNavigableItem'> {\n let visibleItems: FlatTreeItem[] | null = null;\n\n const getNextNavigableItem = (data: TreeNavigationData_unstable): FlatTreeItem | null => {\n const item = unfilteredFlatTree.itemsPerId.get(data.target.id);\n if (!item || !visibleItems) {\n return null;\n }\n switch (data.type) {\n case treeDataTypes.arrowLeft:\n return item.parentId ? unfilteredFlatTree.itemsPerId.get(item.parentId) ?? null : null;\n case treeDataTypes.arrowRight:\n return visibleItems[item.index + 1] ?? null;\n case treeDataTypes.end:\n return visibleItems[visibleItems.length - 1];\n case treeDataTypes.home:\n return visibleItems[0];\n case treeDataTypes.arrowDown:\n return visibleItems[item.index + 1] ?? null;\n case treeDataTypes.arrowUp:\n return visibleItems[item.index - 1] ?? null;\n default:\n return null;\n }\n };\n\n function* makeVisibleItemsGenerator() {\n visibleItems = [];\n for (let index = 0, visibleIndex = 0; index < unfilteredFlatTree.items.length; index++) {\n const item = unfilteredFlatTree.items[index];\n const parent = unfilteredFlatTree.itemsPerId.get(item.parentId ?? flatTreeRootParentId);\n if (!parent) {\n break;\n }\n if (isFlatTreeItemVisible(item, { openItems, unfilteredFlatTree })) {\n item.index = visibleIndex++;\n visibleItems.push({ ...item });\n yield item;\n } else {\n index += parent.childrenSize - 1 + item.childrenSize;\n }\n }\n }\n\n return {\n getNextNavigableItem,\n items: () => {\n return visibleItems || makeVisibleItemsGenerator();\n },\n };\n}\n\nfunction isFlatTreeItemVisible(\n item: FlatTreeItem,\n {\n openItems,\n unfilteredFlatTree: flatTree,\n }: {\n openItems: ImmutableSet<TreeItemId>;\n unfilteredFlatTree: UnfilteredFlatTree;\n },\n) {\n if (item.level === 1) {\n return true;\n }\n while (item.parentId && item.parentId !== flatTreeRootParentId) {\n if (!openItems.has(item.parentId)) {\n return false;\n }\n const parent = flatTree.itemsPerId.get(item.parentId);\n if (!parent) {\n return false;\n }\n item = parent;\n }\n\n return true;\n}\n"],"mappings":"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"}
@@ -1,84 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.flatTreeRootParentId = exports.createUnfilteredFlatTree = void 0;
7
- /**
8
- * creates a list of flat tree items
9
- * and provides a map to access each item by id
10
- */
11
- function createUnfilteredFlatTree(flatTreeItemProps) {
12
- var _a;
13
- const root = createRootFlatTreeItem();
14
- const itemsPerId = new Map([[root.id, root]]);
15
- const items = [];
16
- for (let index = 0; index < flatTreeItemProps.length; index++) {
17
- const {
18
- parentId = exports.flatTreeRootParentId,
19
- ...treeItemProps
20
- } = flatTreeItemProps[index];
21
- const nextItemProps = flatTreeItemProps[index + 1];
22
- const currentParent = itemsPerId.get(parentId);
23
- if (!currentParent) {
24
- if (process.env.NODE_ENV === 'development') {
25
- // eslint-disable-next-line no-console
26
- console.error(`useFlatTree: item ${flatTreeItemProps[index].id} not properly initialized, make sure provided items are organized`);
27
- }
28
- break;
29
- }
30
- const isLeaf = (nextItemProps === null || nextItemProps === void 0 ? void 0 : nextItemProps.parentId) !== treeItemProps.id;
31
- const currentLevel = ((_a = currentParent.level) !== null && _a !== void 0 ? _a : 0) + 1;
32
- const currentChildrenSize = ++currentParent.childrenSize;
33
- const flatTreeItem = {
34
- id: treeItemProps.id,
35
- getTreeItemProps: () => ({
36
- ...treeItemProps,
37
- 'aria-level': currentLevel,
38
- 'aria-posinset': currentChildrenSize,
39
- 'aria-setsize': currentParent.childrenSize,
40
- leaf: isLeaf
41
- }),
42
- level: currentLevel,
43
- parentId,
44
- childrenSize: 0,
45
- index: -1
46
- };
47
- itemsPerId.set(flatTreeItem.id, flatTreeItem);
48
- items.push(flatTreeItem);
49
- }
50
- return {
51
- items,
52
- itemsPerId
53
- };
54
- }
55
- exports.createUnfilteredFlatTree = createUnfilteredFlatTree;
56
- exports.flatTreeRootParentId = '__fuiFlatTreeRoot';
57
- function createRootFlatTreeItem() {
58
- return {
59
- id: exports.flatTreeRootParentId,
60
- getTreeItemProps: () => {
61
- if (process.env.NODE_ENV === 'development') {
62
- // eslint-disable-next-line no-console
63
- console.error('useFlatTree: internal error, trying to access treeitem props from invalid root element');
64
- }
65
- return {
66
- id: exports.flatTreeRootParentId,
67
- 'aria-setsize': -1,
68
- 'aria-level': -1,
69
- 'aria-posinset': -1,
70
- leaf: true
71
- };
72
- },
73
- childrenSize: 0,
74
- get index() {
75
- if (process.env.NODE_ENV === 'development') {
76
- // eslint-disable-next-line no-console
77
- console.error('useFlatTree: internal error, trying to access treeitem props from invalid root element');
78
- }
79
- return -1;
80
- },
81
- level: 0
82
- };
83
- }
84
- //# sourceMappingURL=createUnfilteredFlatTree.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["createUnfilteredFlatTree","flatTreeItemProps","root","createRootFlatTreeItem","itemsPerId","Map","id","items","index","length","parentId","exports","flatTreeRootParentId","treeItemProps","nextItemProps","currentParent","get","process","env","NODE_ENV","console","error","isLeaf","currentLevel","_a","level","currentChildrenSize","childrenSize","flatTreeItem","getTreeItemProps","leaf","set","push"],"sources":["../src/packages/react-components/react-tree/src/utils/createUnfilteredFlatTree.ts"],"sourcesContent":["import { FlatTreeItem, FlatTreeItemProps } from '../hooks/useFlatTree';\n\n/**\n * @internal\n */\nexport type UnfilteredFlatTree = {\n items: FlatTreeItem[];\n itemsPerId: Map<string, FlatTreeItem>;\n};\n\n/**\n * creates a list of flat tree items\n * and provides a map to access each item by id\n */\nexport function createUnfilteredFlatTree(flatTreeItemProps: FlatTreeItemProps[]): UnfilteredFlatTree {\n const root = createRootFlatTreeItem();\n const itemsPerId = new Map<string, FlatTreeItem>([[root.id, root]]);\n const items: FlatTreeItem[] = [];\n\n for (let index = 0; index < flatTreeItemProps.length; index++) {\n const { parentId = flatTreeRootParentId, ...treeItemProps } = flatTreeItemProps[index];\n\n const nextItemProps = flatTreeItemProps[index + 1] as FlatTreeItemProps | undefined;\n const currentParent = itemsPerId.get(parentId);\n if (!currentParent) {\n if (process.env.NODE_ENV === 'development') {\n // eslint-disable-next-line no-console\n console.error(\n `useFlatTree: item ${flatTreeItemProps[index].id} not properly initialized, make sure provided items are organized`,\n );\n }\n break;\n }\n const isLeaf = nextItemProps?.parentId !== treeItemProps.id;\n const currentLevel = (currentParent.level ?? 0) + 1;\n const currentChildrenSize = ++currentParent.childrenSize;\n\n const flatTreeItem: FlatTreeItem = {\n id: treeItemProps.id,\n getTreeItemProps: () => ({\n ...treeItemProps,\n 'aria-level': currentLevel,\n 'aria-posinset': currentChildrenSize,\n 'aria-setsize': currentParent.childrenSize,\n leaf: isLeaf,\n }),\n level: currentLevel,\n parentId,\n childrenSize: 0,\n index: -1,\n };\n itemsPerId.set(flatTreeItem.id, flatTreeItem);\n items.push(flatTreeItem);\n }\n\n return { items, itemsPerId };\n}\n\nexport const flatTreeRootParentId = '__fuiFlatTreeRoot';\n\nfunction createRootFlatTreeItem(): FlatTreeItem {\n return {\n id: flatTreeRootParentId,\n getTreeItemProps: () => {\n if (process.env.NODE_ENV === 'development') {\n // eslint-disable-next-line no-console\n console.error('useFlatTree: internal error, trying to access treeitem props from invalid root element');\n }\n return { id: flatTreeRootParentId, 'aria-setsize': -1, 'aria-level': -1, 'aria-posinset': -1, leaf: true };\n },\n childrenSize: 0,\n get index() {\n if (process.env.NODE_ENV === 'development') {\n // eslint-disable-next-line no-console\n console.error('useFlatTree: internal error, trying to access treeitem props from invalid root element');\n }\n return -1;\n },\n level: 0,\n };\n}\n"],"mappings":";;;;;;AAUA;;;;AAIA,SAAgBA,wBAAwBA,CAACC,iBAAsC;;EAC7E,MAAMC,IAAI,GAAGC,sBAAsB,EAAE;EACrC,MAAMC,UAAU,GAAG,IAAIC,GAAG,CAAuB,CAAC,CAACH,IAAI,CAACI,EAAE,EAAEJ,IAAI,CAAC,CAAC,CAAC;EACnE,MAAMK,KAAK,GAAmB,EAAE;EAEhC,KAAK,IAAIC,KAAK,GAAG,CAAC,EAAEA,KAAK,GAAGP,iBAAiB,CAACQ,MAAM,EAAED,KAAK,EAAE,EAAE;IAC7D,MAAM;MAAEE,QAAQ,GAAGC,OAAA,CAAAC,oBAAoB;MAAE,GAAGC;IAAa,CAAE,GAAGZ,iBAAiB,CAACO,KAAK,CAAC;IAEtF,MAAMM,aAAa,GAAGb,iBAAiB,CAACO,KAAK,GAAG,CAAC,CAAkC;IACnF,MAAMO,aAAa,GAAGX,UAAU,CAACY,GAAG,CAACN,QAAQ,CAAC;IAC9C,IAAI,CAACK,aAAa,EAAE;MAClB,IAAIE,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,aAAa,EAAE;QAC1C;QACAC,OAAO,CAACC,KAAK,CACX,qBAAqBpB,iBAAiB,CAACO,KAAK,CAAC,CAACF,EAAE,mEAAmE,CACpH;;MAEH;;IAEF,MAAMgB,MAAM,GAAG,CAAAR,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEJ,QAAQ,MAAKG,aAAa,CAACP,EAAE;IAC3D,MAAMiB,YAAY,GAAG,CAAC,CAAAC,EAAA,GAAAT,aAAa,CAACU,KAAK,cAAAD,EAAA,cAAAA,EAAA,GAAI,CAAC,IAAI,CAAC;IACnD,MAAME,mBAAmB,GAAG,EAAEX,aAAa,CAACY,YAAY;IAExD,MAAMC,YAAY,GAAiB;MACjCtB,EAAE,EAAEO,aAAa,CAACP,EAAE;MACpBuB,gBAAgB,EAAEA,CAAA,MAAO;QACvB,GAAGhB,aAAa;QAChB,YAAY,EAAEU,YAAY;QAC1B,eAAe,EAAEG,mBAAmB;QACpC,cAAc,EAAEX,aAAa,CAACY,YAAY;QAC1CG,IAAI,EAAER;OACP,CAAC;MACFG,KAAK,EAAEF,YAAY;MACnBb,QAAQ;MACRiB,YAAY,EAAE,CAAC;MACfnB,KAAK,EAAE,CAAC;KACT;IACDJ,UAAU,CAAC2B,GAAG,CAACH,YAAY,CAACtB,EAAE,EAAEsB,YAAY,CAAC;IAC7CrB,KAAK,CAACyB,IAAI,CAACJ,YAAY,CAAC;;EAG1B,OAAO;IAAErB,KAAK;IAAEH;EAAU,CAAE;AAC9B;AA1CAO,OAAA,CAAAX,wBAAA,GAAAA,wBAAA;AA4CaW,OAAA,CAAAC,oBAAoB,GAAG,mBAAmB;AAEvD,SAAST,sBAAsBA,CAAA;EAC7B,OAAO;IACLG,EAAE,EAAEK,OAAA,CAAAC,oBAAoB;IACxBiB,gBAAgB,EAAEA,CAAA,KAAK;MACrB,IAAIZ,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,aAAa,EAAE;QAC1C;QACAC,OAAO,CAACC,KAAK,CAAC,wFAAwF,CAAC;;MAEzG,OAAO;QAAEf,EAAE,EAAEK,OAAA,CAAAC,oBAAoB;QAAE,cAAc,EAAE,CAAC,CAAC;QAAE,YAAY,EAAE,CAAC,CAAC;QAAE,eAAe,EAAE,CAAC,CAAC;QAAEkB,IAAI,EAAE;MAAI,CAAE;IAC5G,CAAC;IACDH,YAAY,EAAE,CAAC;IACf,IAAInB,KAAKA,CAAA;MACP,IAAIS,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,aAAa,EAAE;QAC1C;QACAC,OAAO,CAACC,KAAK,CAAC,wFAAwF,CAAC;;MAEzG,OAAO,CAAC,CAAC;IACX,CAAC;IACDI,KAAK,EAAE;GACR;AACH"}
@@ -1,87 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.createVisibleFlatTree = void 0;
7
- const createUnfilteredFlatTree_1 = /*#__PURE__*/require("./createUnfilteredFlatTree");
8
- const tokens_1 = /*#__PURE__*/require("./tokens");
9
- /**
10
- * creates methods that depend on the unfilteredFlatTree and the current available openItems
11
- */
12
- function createVisibleFlatTree(unfilteredFlatTree, openItems) {
13
- let visibleItems = null;
14
- const getNextNavigableItem = data => {
15
- var _a, _b, _c, _d;
16
- const item = unfilteredFlatTree.itemsPerId.get(data.target.id);
17
- if (!item || !visibleItems) {
18
- return null;
19
- }
20
- switch (data.type) {
21
- case tokens_1.treeDataTypes.arrowLeft:
22
- return item.parentId ? (_a = unfilteredFlatTree.itemsPerId.get(item.parentId)) !== null && _a !== void 0 ? _a : null : null;
23
- case tokens_1.treeDataTypes.arrowRight:
24
- return (_b = visibleItems[item.index + 1]) !== null && _b !== void 0 ? _b : null;
25
- case tokens_1.treeDataTypes.end:
26
- return visibleItems[visibleItems.length - 1];
27
- case tokens_1.treeDataTypes.home:
28
- return visibleItems[0];
29
- case tokens_1.treeDataTypes.arrowDown:
30
- return (_c = visibleItems[item.index + 1]) !== null && _c !== void 0 ? _c : null;
31
- case tokens_1.treeDataTypes.arrowUp:
32
- return (_d = visibleItems[item.index - 1]) !== null && _d !== void 0 ? _d : null;
33
- default:
34
- return null;
35
- }
36
- };
37
- function* makeVisibleItemsGenerator() {
38
- var _a;
39
- visibleItems = [];
40
- for (let index = 0, visibleIndex = 0; index < unfilteredFlatTree.items.length; index++) {
41
- const item = unfilteredFlatTree.items[index];
42
- const parent = unfilteredFlatTree.itemsPerId.get((_a = item.parentId) !== null && _a !== void 0 ? _a : createUnfilteredFlatTree_1.flatTreeRootParentId);
43
- if (!parent) {
44
- break;
45
- }
46
- if (isFlatTreeItemVisible(item, {
47
- openItems,
48
- unfilteredFlatTree
49
- })) {
50
- item.index = visibleIndex++;
51
- visibleItems.push({
52
- ...item
53
- });
54
- yield item;
55
- } else {
56
- index += parent.childrenSize - 1 + item.childrenSize;
57
- }
58
- }
59
- }
60
- return {
61
- getNextNavigableItem,
62
- items: () => {
63
- return visibleItems || makeVisibleItemsGenerator();
64
- }
65
- };
66
- }
67
- exports.createVisibleFlatTree = createVisibleFlatTree;
68
- function isFlatTreeItemVisible(item, {
69
- openItems,
70
- unfilteredFlatTree: flatTree
71
- }) {
72
- if (item.level === 1) {
73
- return true;
74
- }
75
- while (item.parentId && item.parentId !== createUnfilteredFlatTree_1.flatTreeRootParentId) {
76
- if (!openItems.has(item.parentId)) {
77
- return false;
78
- }
79
- const parent = flatTree.itemsPerId.get(item.parentId);
80
- if (!parent) {
81
- return false;
82
- }
83
- item = parent;
84
- }
85
- return true;
86
- }
87
- //# sourceMappingURL=createVisibleFlatTree.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["createUnfilteredFlatTree_1","require","tokens_1","createVisibleFlatTree","unfilteredFlatTree","openItems","visibleItems","getNextNavigableItem","data","item","itemsPerId","get","target","id","type","treeDataTypes","arrowLeft","parentId","_a","arrowRight","_b","index","end","length","home","arrowDown","_c","arrowUp","_d","makeVisibleItemsGenerator","visibleIndex","items","parent","flatTreeRootParentId","isFlatTreeItemVisible","push","childrenSize","exports","flatTree","level","has"],"sources":["../src/packages/react-components/react-tree/src/utils/createVisibleFlatTree.ts"],"sourcesContent":["import { FlatTree, FlatTreeItem } from '../hooks/useFlatTree';\nimport { TreeItemId, TreeNavigationData_unstable } from '../Tree';\nimport { flatTreeRootParentId, UnfilteredFlatTree } from './createUnfilteredFlatTree';\nimport { ImmutableSet } from './ImmutableSet';\nimport { treeDataTypes } from './tokens';\n\n/**\n * creates methods that depend on the unfilteredFlatTree and the current available openItems\n */\nexport function createVisibleFlatTree(\n unfilteredFlatTree: UnfilteredFlatTree,\n openItems: ImmutableSet<TreeItemId>,\n): Pick<FlatTree, 'items' | 'getNextNavigableItem'> {\n let visibleItems: FlatTreeItem[] | null = null;\n\n const getNextNavigableItem = (data: TreeNavigationData_unstable): FlatTreeItem | null => {\n const item = unfilteredFlatTree.itemsPerId.get(data.target.id);\n if (!item || !visibleItems) {\n return null;\n }\n switch (data.type) {\n case treeDataTypes.arrowLeft:\n return item.parentId ? unfilteredFlatTree.itemsPerId.get(item.parentId) ?? null : null;\n case treeDataTypes.arrowRight:\n return visibleItems[item.index + 1] ?? null;\n case treeDataTypes.end:\n return visibleItems[visibleItems.length - 1];\n case treeDataTypes.home:\n return visibleItems[0];\n case treeDataTypes.arrowDown:\n return visibleItems[item.index + 1] ?? null;\n case treeDataTypes.arrowUp:\n return visibleItems[item.index - 1] ?? null;\n default:\n return null;\n }\n };\n\n function* makeVisibleItemsGenerator() {\n visibleItems = [];\n for (let index = 0, visibleIndex = 0; index < unfilteredFlatTree.items.length; index++) {\n const item = unfilteredFlatTree.items[index];\n const parent = unfilteredFlatTree.itemsPerId.get(item.parentId ?? flatTreeRootParentId);\n if (!parent) {\n break;\n }\n if (isFlatTreeItemVisible(item, { openItems, unfilteredFlatTree })) {\n item.index = visibleIndex++;\n visibleItems.push({ ...item });\n yield item;\n } else {\n index += parent.childrenSize - 1 + item.childrenSize;\n }\n }\n }\n\n return {\n getNextNavigableItem,\n items: () => {\n return visibleItems || makeVisibleItemsGenerator();\n },\n };\n}\n\nfunction isFlatTreeItemVisible(\n item: FlatTreeItem,\n {\n openItems,\n unfilteredFlatTree: flatTree,\n }: {\n openItems: ImmutableSet<TreeItemId>;\n unfilteredFlatTree: UnfilteredFlatTree;\n },\n) {\n if (item.level === 1) {\n return true;\n }\n while (item.parentId && item.parentId !== flatTreeRootParentId) {\n if (!openItems.has(item.parentId)) {\n return false;\n }\n const parent = flatTree.itemsPerId.get(item.parentId);\n if (!parent) {\n return false;\n }\n item = parent;\n }\n\n return true;\n}\n"],"mappings":"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"}