@fluentui/react-tree 9.0.0-beta.4 → 9.0.0-beta.6

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 (176) hide show
  1. package/.swcrc +30 -0
  2. package/CHANGELOG.json +151 -1
  3. package/CHANGELOG.md +40 -2
  4. package/lib/Tree.js.map +1 -1
  5. package/lib/TreeItem.js.map +1 -1
  6. package/lib/TreeItemLayout.js.map +1 -1
  7. package/lib/TreeItemPersonaLayout.js.map +1 -1
  8. package/lib/components/Tree/Tree.js.map +1 -1
  9. package/lib/components/Tree/Tree.types.js +1 -1
  10. package/lib/components/Tree/Tree.types.js.map +1 -1
  11. package/lib/components/Tree/index.js.map +1 -1
  12. package/lib/components/Tree/renderTree.js +1 -3
  13. package/lib/components/Tree/renderTree.js.map +1 -1
  14. package/lib/components/Tree/useTree.js +5 -4
  15. package/lib/components/Tree/useTree.js.map +1 -1
  16. package/lib/components/Tree/useTreeContextValues.js +3 -3
  17. package/lib/components/Tree/useTreeContextValues.js.map +1 -1
  18. package/lib/components/Tree/useTreeStyles.js.map +1 -1
  19. package/lib/components/TreeItem/TreeItem.js.map +1 -1
  20. package/lib/components/TreeItem/TreeItem.types.js +1 -1
  21. package/lib/components/TreeItem/TreeItem.types.js.map +1 -1
  22. package/lib/components/TreeItem/index.js.map +1 -1
  23. package/lib/components/TreeItem/renderTreeItem.js +2 -12
  24. package/lib/components/TreeItem/renderTreeItem.js.map +1 -1
  25. package/lib/components/TreeItem/useTreeItem.js.map +1 -1
  26. package/lib/components/TreeItem/useTreeItemContextValues.js.map +1 -1
  27. package/lib/components/TreeItem/useTreeItemStyles.js.map +1 -1
  28. package/lib/components/TreeItemLayout/TreeItemLayout.js.map +1 -1
  29. package/lib/components/TreeItemLayout/TreeItemLayout.types.js.map +1 -1
  30. package/lib/components/TreeItemLayout/index.js.map +1 -1
  31. package/lib/components/TreeItemLayout/renderTreeItemLayout.js +1 -9
  32. package/lib/components/TreeItemLayout/renderTreeItemLayout.js.map +1 -1
  33. package/lib/components/TreeItemLayout/useTreeItemLayout.js +1 -0
  34. package/lib/components/TreeItemLayout/useTreeItemLayout.js.map +1 -1
  35. package/lib/components/TreeItemLayout/useTreeItemLayoutStyles.js.map +1 -1
  36. package/lib/components/TreeItemPersonaLayout/TreeItemPersonaLayout.js.map +1 -1
  37. package/lib/components/TreeItemPersonaLayout/TreeItemPersonaLayout.types.js.map +1 -1
  38. package/lib/components/TreeItemPersonaLayout/index.js.map +1 -1
  39. package/lib/components/TreeItemPersonaLayout/renderTreeItemPersonaLayout.js +2 -14
  40. package/lib/components/TreeItemPersonaLayout/renderTreeItemPersonaLayout.js.map +1 -1
  41. package/lib/components/TreeItemPersonaLayout/useTreeItemPersonaLayout.js +1 -0
  42. package/lib/components/TreeItemPersonaLayout/useTreeItemPersonaLayout.js.map +1 -1
  43. package/lib/components/TreeItemPersonaLayout/useTreeItemPersonaLayoutContextValues.js.map +1 -1
  44. package/lib/components/TreeItemPersonaLayout/useTreeItemPersonaLayoutStyles.js.map +1 -1
  45. package/lib/contexts/index.js.map +1 -1
  46. package/lib/contexts/treeContext.js +1 -2
  47. package/lib/contexts/treeContext.js.map +1 -1
  48. package/lib/contexts/treeItemContext.js +2 -4
  49. package/lib/contexts/treeItemContext.js.map +1 -1
  50. package/lib/hooks/index.js.map +1 -1
  51. package/lib/hooks/useFlatTree.js +2 -4
  52. package/lib/hooks/useFlatTree.js.map +1 -1
  53. package/lib/hooks/useFlatTreeNavigation.js.map +1 -1
  54. package/lib/hooks/useHTMLElementWalker.js +5 -5
  55. package/lib/hooks/useHTMLElementWalker.js.map +1 -1
  56. package/lib/hooks/useNestedTreeNavigation.js.map +1 -1
  57. package/lib/hooks/useOpenItemsState.js.map +1 -1
  58. package/lib/hooks/useRovingTabIndexes.js.map +1 -1
  59. package/lib/index.js.map +1 -1
  60. package/lib/utils/ImmutableSet.js.map +1 -1
  61. package/lib/utils/assert.js +1 -0
  62. package/lib/utils/assert.js.map +1 -1
  63. package/lib/utils/createUnfilteredFlatTree.js +3 -4
  64. package/lib/utils/createUnfilteredFlatTree.js.map +1 -1
  65. package/lib/utils/createVisibleFlatTree.js +10 -7
  66. package/lib/utils/createVisibleFlatTree.js.map +1 -1
  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 +45 -51
  145. package/lib-commonjs/hooks/useFlatTree.js.map +1 -1
  146. package/lib-commonjs/hooks/useFlatTreeNavigation.js +70 -69
  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/createUnfilteredFlatTree.js +84 -75
  163. package/lib-commonjs/utils/createUnfilteredFlatTree.js.map +1 -1
  164. package/lib-commonjs/utils/createVisibleFlatTree.js +77 -78
  165. package/lib-commonjs/utils/createVisibleFlatTree.js.map +1 -1
  166. package/lib-commonjs/utils/flattenTree.js +25 -29
  167. package/lib-commonjs/utils/flattenTree.js.map +1 -1
  168. package/lib-commonjs/utils/nextTypeAheadElement.js +18 -16
  169. package/lib-commonjs/utils/nextTypeAheadElement.js.map +1 -1
  170. package/lib-commonjs/utils/normalizeOpenItems.js +13 -9
  171. package/lib-commonjs/utils/normalizeOpenItems.js.map +1 -1
  172. package/lib-commonjs/utils/tokens.js +30 -20
  173. package/lib-commonjs/utils/tokens.js.map +1 -1
  174. package/lib-commonjs/utils/treeItemFilter.js +9 -7
  175. package/lib-commonjs/utils/treeItemFilter.js.map +1 -1
  176. package/package.json +19 -15
@@ -1 +1 @@
1
- {"version":3,"names":["useEventCallback","React","createUnfilteredFlatTree","createVisibleFlatTree","useFlatTreeNavigation","useOpenItemsState","useFlatTree_unstable","items","options","openItems","updateOpenItems","unfilteredFlatTree","useMemo","navigate","navigationRef","visibleFlatTree","handleOpenChange","event","data","preventDefault","handleNavigation","flatTree","getTreeProps","ref","onOpenChange","onNavigation_unstable","getItem","id","_a","itemsPerId","get"],"sources":["../src/packages/react-components/react-tree/src/hooks/useFlatTree.ts"],"sourcesContent":["import { useEventCallback } from '@fluentui/react-utilities';\nimport * as React from 'react';\nimport {\n TreeNavigationData_unstable,\n TreeNavigationEvent_unstable,\n TreeOpenChangeData,\n TreeOpenChangeEvent,\n TreeProps,\n} from '../Tree';\nimport { TreeItemProps } from '../TreeItem';\nimport { createUnfilteredFlatTree } from '../utils/createUnfilteredFlatTree';\nimport { createVisibleFlatTree } from '../utils/createVisibleFlatTree';\nimport { useFlatTreeNavigation } from './useFlatTreeNavigation';\nimport { useOpenItemsState } from './useOpenItemsState';\n\nexport type FlatTreeItemProps = Required<Pick<TreeItemProps, 'id'>> &\n TreeItemProps & {\n parentId?: string;\n };\n\nexport type FlatTreeItem = {\n getTreeItemProps(): Required<Pick<TreeItemProps, 'id' | 'aria-setsize' | 'aria-level' | 'aria-posinset' | 'leaf'>> &\n TreeItemProps;\n parentId?: string;\n childrenSize: number;\n index: number;\n id: string;\n level: number;\n};\n\nexport type FlatTreeProps = Required<\n Pick<TreeProps, 'openItems' | 'onOpenChange' | 'onNavigation_unstable'> & { ref: React.Ref<HTMLDivElement> }\n>;\n\n/**\n * FlatTree API to manage all required mechanisms to convert a list of items into renderable TreeItems\n * in multiple scenarios including virtualization.\n *\n * !!A flat tree is an unofficial spec for tree!!\n *\n * It should be used on cases where more complex interactions with a Tree is required.\n *\n * On simple scenarios it is advised to simply use a nested structure instead.\n */\nexport type FlatTree = {\n /**\n * returns the properties required for the Tree component to work properly.\n * That includes:\n * `openItems`, `onOpenChange`, `onNavigation_unstable` and `ref`\n */\n getTreeProps(): FlatTreeProps;\n /**\n * internal method used to react to an `onNavigation` event.\n * This method ensures proper navigation on keyboard and mouse interaction.\n * In case of virtualization it might be required to cancel default provided `onNavigation`\n * event and then call this method manually.\n *\n * @example\n * ```ts\n * // react-window\n * const handleNavigation = (event, data) => {\n * event.preventDefault();\n * const nextItem = tree.getNextNavigableItem(data);\n * // scroll to item using virtualization scroll mechanism\n * if (nextItem && !targetDocument.getElementById(nextItem.id)) {\n * listRef.current.scrollToItem(nextItem.index);\n * }\n * // wait for scrolling to happen and then invoke navigate method\n * requestAnimationFrame(() => {\n * tree.navigate(data);\n * });\n * };\n *```\n */\n navigate(data: TreeNavigationData_unstable): void;\n /**\n * returns next item to be focused on a navigation.\n * This method is provided to decouple the element that needs to be focused from\n * the action of focusing it itself.\n */\n getNextNavigableItem(data: TreeNavigationData_unstable): FlatTreeItem | null;\n /**\n * returns a single flat tree item by id without iterating over the whole collection\n */\n getItem(id: string): FlatTreeItem | null;\n /**\n * returns an iterable containing all visually available flat tree items\n */\n items(): Iterable<FlatTreeItem>;\n};\n\n/**\n * this hook provides FlatTree API to manage all required mechanisms to convert a list of items into renderable TreeItems\n * in multiple scenarios including virtualization.\n *\n * !!A flat tree is an unofficial spec for tree!!\n *\n * It should be used on cases where more complex interactions with a Tree is required.\n * On simple scenarios it is advised to simply use a nested structure instead.\n *\n * @param items - a list of tree items\n * @param options - in case control over the internal openItems is required\n */\nexport function useFlatTree_unstable(\n items: FlatTreeItemProps[],\n options: Pick<TreeProps, 'openItems' | 'defaultOpenItems'> = {},\n): FlatTree {\n const [openItems, updateOpenItems] = useOpenItemsState(options);\n const unfilteredFlatTree = React.useMemo(() => createUnfilteredFlatTree(items), [items]);\n const [navigate, navigationRef] = useFlatTreeNavigation(unfilteredFlatTree);\n const visibleFlatTree = React.useMemo(\n () => createVisibleFlatTree(unfilteredFlatTree, openItems),\n [unfilteredFlatTree, openItems],\n );\n\n const handleOpenChange = useEventCallback((event: TreeOpenChangeEvent, data: TreeOpenChangeData) => {\n event.preventDefault();\n updateOpenItems(data);\n });\n\n const handleNavigation = useEventCallback(\n (event: TreeNavigationEvent_unstable, data: TreeNavigationData_unstable) => {\n event.preventDefault();\n navigate(data);\n },\n );\n\n const flatTree: FlatTree = {\n ...visibleFlatTree,\n getTreeProps: () => ({\n ref: navigationRef as React.Ref<HTMLDivElement>,\n openItems,\n onOpenChange: handleOpenChange,\n // eslint-disable-next-line @typescript-eslint/naming-convention\n onNavigation_unstable: handleNavigation,\n }),\n navigate,\n getItem: id => unfilteredFlatTree.itemsPerId.get(id) ?? null,\n };\n return flatTree;\n}\n"],"mappings":"AAAA,SAASA,gBAAgB,QAAQ,2BAA2B;AAC5D,OAAO,KAAKC,KAAK,MAAM,OAAO;AAS9B,SAASC,wBAAwB,QAAQ,mCAAmC;AAC5E,SAASC,qBAAqB,QAAQ,gCAAgC;AACtE,SAASC,qBAAqB,QAAQ,yBAAyB;AAC/D,SAASC,iBAAiB,QAAQ,qBAAqB;AA8EvD;;;;;;;;;;;;AAYA,OAAM,SAAUC,oBAAoBA,CAClCC,KAA0B,EAC1BC,OAAA,GAA6D,EAAE;EAE/D,MAAM,CAACC,SAAS,EAAEC,eAAe,CAAC,GAAGL,iBAAiB,CAACG,OAAO,CAAC;EAC/D,MAAMG,kBAAkB,GAAGV,KAAK,CAACW,OAAO,CAAC,MAAMV,wBAAwB,CAACK,KAAK,CAAC,EAAE,CAACA,KAAK,CAAC,CAAC;EACxF,MAAM,CAACM,QAAQ,EAAEC,aAAa,CAAC,GAAGV,qBAAqB,CAACO,kBAAkB,CAAC;EAC3E,MAAMI,eAAe,GAAGd,KAAK,CAACW,OAAO,CACnC,MAAMT,qBAAqB,CAACQ,kBAAkB,EAAEF,SAAS,CAAC,EAC1D,CAACE,kBAAkB,EAAEF,SAAS,CAAC,CAChC;EAED,MAAMO,gBAAgB,GAAGhB,gBAAgB,CAAC,CAACiB,KAA0B,EAAEC,IAAwB,KAAI;IACjGD,KAAK,CAACE,cAAc,EAAE;IACtBT,eAAe,CAACQ,IAAI,CAAC;EACvB,CAAC,CAAC;EAEF,MAAME,gBAAgB,GAAGpB,gBAAgB,CACvC,CAACiB,KAAmC,EAAEC,IAAiC,KAAI;IACzED,KAAK,CAACE,cAAc,EAAE;IACtBN,QAAQ,CAACK,IAAI,CAAC;EAChB,CAAC,CACF;EAED,MAAMG,QAAQ,GAAa;IACzB,GAAGN,eAAe;IAClBO,YAAY,EAAEA,CAAA,MAAO;MACnBC,GAAG,EAAET,aAA0C;MAC/CL,SAAS;MACTe,YAAY,EAAER,gBAAgB;MAC9B;MACAS,qBAAqB,EAAEL;KACxB,CAAC;IACFP,QAAQ;IACRa,OAAO,EAAEC,EAAE,IAAG;MAAA,IAAAC,EAAA;MAAC,QAAAA,EAAA,GAAAjB,kBAAkB,CAACkB,UAAU,CAACC,GAAG,CAACH,EAAE,CAAC,cAAAC,EAAA,cAAAA,EAAA,GAAI,IAAI;IAAA;GAC7D;EACD,OAAOP,QAAQ;AACjB"}
1
+ {"version":3,"names":["useEventCallback","React","createUnfilteredFlatTree","createVisibleFlatTree","useFlatTreeNavigation","useOpenItemsState","useFlatTree_unstable","items","options","openItems","updateOpenItems","unfilteredFlatTree","useMemo","navigate","navigationRef","visibleFlatTree","handleOpenChange","event","data","preventDefault","handleNavigation","_unfilteredFlatTree_itemsPerId_get","flatTree","getTreeProps","ref","onOpenChange","onNavigation_unstable","getItem","id","itemsPerId","get"],"sources":["../../src/hooks/useFlatTree.ts"],"sourcesContent":["import { useEventCallback } from '@fluentui/react-utilities';\nimport * as React from 'react';\nimport {\n TreeNavigationData_unstable,\n TreeNavigationEvent_unstable,\n TreeOpenChangeData,\n TreeOpenChangeEvent,\n TreeProps,\n} from '../Tree';\nimport { TreeItemProps } from '../TreeItem';\nimport { createUnfilteredFlatTree } from '../utils/createUnfilteredFlatTree';\nimport { createVisibleFlatTree } from '../utils/createVisibleFlatTree';\nimport { useFlatTreeNavigation } from './useFlatTreeNavigation';\nimport { useOpenItemsState } from './useOpenItemsState';\n\nexport type FlatTreeItemProps = Required<Pick<TreeItemProps, 'id'>> &\n TreeItemProps & {\n parentId?: string;\n };\n\nexport type FlatTreeItem = {\n getTreeItemProps(): Required<Pick<TreeItemProps, 'id' | 'aria-setsize' | 'aria-level' | 'aria-posinset' | 'leaf'>> &\n TreeItemProps;\n parentId?: string;\n childrenSize: number;\n index: number;\n id: string;\n level: number;\n};\n\nexport type FlatTreeProps = Required<\n Pick<TreeProps, 'openItems' | 'onOpenChange' | 'onNavigation_unstable'> & { ref: React.Ref<HTMLDivElement> }\n>;\n\n/**\n * FlatTree API to manage all required mechanisms to convert a list of items into renderable TreeItems\n * in multiple scenarios including virtualization.\n *\n * !!A flat tree is an unofficial spec for tree!!\n *\n * It should be used on cases where more complex interactions with a Tree is required.\n *\n * On simple scenarios it is advised to simply use a nested structure instead.\n */\nexport type FlatTree = {\n /**\n * returns the properties required for the Tree component to work properly.\n * That includes:\n * `openItems`, `onOpenChange`, `onNavigation_unstable` and `ref`\n */\n getTreeProps(): FlatTreeProps;\n /**\n * internal method used to react to an `onNavigation` event.\n * This method ensures proper navigation on keyboard and mouse interaction.\n * In case of virtualization it might be required to cancel default provided `onNavigation`\n * event and then call this method manually.\n *\n * @example\n * ```ts\n * // react-window\n * const handleNavigation = (event, data) => {\n * event.preventDefault();\n * const nextItem = tree.getNextNavigableItem(data);\n * // scroll to item using virtualization scroll mechanism\n * if (nextItem && !targetDocument.getElementById(nextItem.id)) {\n * listRef.current.scrollToItem(nextItem.index);\n * }\n * // wait for scrolling to happen and then invoke navigate method\n * requestAnimationFrame(() => {\n * tree.navigate(data);\n * });\n * };\n *```\n */\n navigate(data: TreeNavigationData_unstable): void;\n /**\n * returns next item to be focused on a navigation.\n * This method is provided to decouple the element that needs to be focused from\n * the action of focusing it itself.\n */\n getNextNavigableItem(data: TreeNavigationData_unstable): FlatTreeItem | null;\n /**\n * returns a single flat tree item by id without iterating over the whole collection\n */\n getItem(id: string): FlatTreeItem | null;\n /**\n * returns an iterable containing all visually available flat tree items\n */\n items(): Iterable<FlatTreeItem>;\n};\n\n/**\n * this hook provides FlatTree API to manage all required mechanisms to convert a list of items into renderable TreeItems\n * in multiple scenarios including virtualization.\n *\n * !!A flat tree is an unofficial spec for tree!!\n *\n * It should be used on cases where more complex interactions with a Tree is required.\n * On simple scenarios it is advised to simply use a nested structure instead.\n *\n * @param items - a list of tree items\n * @param options - in case control over the internal openItems is required\n */\nexport function useFlatTree_unstable(\n items: FlatTreeItemProps[],\n options: Pick<TreeProps, 'openItems' | 'defaultOpenItems'> = {},\n): FlatTree {\n const [openItems, updateOpenItems] = useOpenItemsState(options);\n const unfilteredFlatTree = React.useMemo(() => createUnfilteredFlatTree(items), [items]);\n const [navigate, navigationRef] = useFlatTreeNavigation(unfilteredFlatTree);\n const visibleFlatTree = React.useMemo(\n () => createVisibleFlatTree(unfilteredFlatTree, openItems),\n [unfilteredFlatTree, openItems],\n );\n\n const handleOpenChange = useEventCallback((event: TreeOpenChangeEvent, data: TreeOpenChangeData) => {\n event.preventDefault();\n updateOpenItems(data);\n });\n\n const handleNavigation = useEventCallback(\n (event: TreeNavigationEvent_unstable, data: TreeNavigationData_unstable) => {\n event.preventDefault();\n navigate(data);\n },\n );\n\n const flatTree: FlatTree = {\n ...visibleFlatTree,\n getTreeProps: () => ({\n ref: navigationRef as React.Ref<HTMLDivElement>,\n openItems,\n onOpenChange: handleOpenChange,\n // eslint-disable-next-line @typescript-eslint/naming-convention\n onNavigation_unstable: handleNavigation,\n }),\n navigate,\n getItem: id => unfilteredFlatTree.itemsPerId.get(id) ?? null,\n };\n return flatTree;\n}\n"],"mappings":"AAAA,SAASA,gBAAgB,QAAQ;AACjC,YAAYC,KAAA,MAAW;AASvB,SAASC,wBAAwB,QAAQ;AACzC,SAASC,qBAAqB,QAAQ;AACtC,SAASC,qBAAqB,QAAQ;AACtC,SAASC,iBAAiB,QAAQ;AA8ElC;;;;;;;;;;;;AAYA,OAAO,SAASC,qBACdC,KAA0B,EAC1BC,OAAA,GAA6D,CAAC,CAAC,EACrD;EACV,MAAM,CAACC,SAAA,EAAWC,eAAA,CAAgB,GAAGL,iBAAA,CAAkBG,OAAA;EACvD,MAAMG,kBAAA,GAAqBV,KAAA,CAAMW,OAAO,CAAC,MAAMV,wBAAA,CAAyBK,KAAA,GAAQ,CAACA,KAAA,CAAM;EACvF,MAAM,CAACM,QAAA,EAAUC,aAAA,CAAc,GAAGV,qBAAA,CAAsBO,kBAAA;EACxD,MAAMI,eAAA,GAAkBd,KAAA,CAAMW,OAAO,CACnC,MAAMT,qBAAA,CAAsBQ,kBAAA,EAAoBF,SAAA,GAChD,CAACE,kBAAA,EAAoBF,SAAA,CAAU;EAGjC,MAAMO,gBAAA,GAAmBhB,gBAAA,CAAiB,CAACiB,KAAA,EAA4BC,IAAA,KAA6B;IAClGD,KAAA,CAAME,cAAc;IACpBT,eAAA,CAAgBQ,IAAA;EAClB;EAEA,MAAME,gBAAA,GAAmBpB,gBAAA,CACvB,CAACiB,KAAA,EAAqCC,IAAA,KAAsC;IAC1ED,KAAA,CAAME,cAAc;IACpBN,QAAA,CAASK,IAAA;EACX;MAaeG,kCAAA;EAVjB,MAAMC,QAAA,GAAqB;IACzB,GAAGP,eAAe;IAClBQ,YAAA,EAAcA,CAAA,MAAO;MACnBC,GAAA,EAAKV,aAAA;MACLL,SAAA;MACAgB,YAAA,EAAcT,gBAAA;MACd;MACAU,qBAAA,EAAuBN;IACzB;IACAP,QAAA;IACAc,OAAA,EAASC,EAAA,IAAM,CAAAP,kCAAA,GAAAV,kBAAA,CAAmBkB,UAAU,CAACC,GAAG,CAACF,EAAA,eAAlCP,kCAAA,cAAAA,kCAAA,GAAyC;EAC1D;EACA,OAAOC,QAAA;AACT"}
@@ -1 +1 @@
1
- {"version":3,"names":["useFluent_unstable","useMergedRefs","nextTypeAheadElement","treeDataTypes","treeItemFilter","useHTMLElementWalkerRef","useRovingTabIndex","useFlatTreeNavigation","flatTree","targetDocument","treeItemWalkerRef","treeItemWalkerRootRef","rove","rovingRootRef","getNextElement","data","current","treeItemWalker","type","click","target","typeAhead","currentElement","event","key","arrowLeft","parentElement","arrowRight","firstChild","end","root","lastChild","home","arrowDown","nextElement","arrowUp","previousElement","navigate","treeWalker","nextElementAriaPosInSet","getAttribute","nextElementAriaLevel","targetAriaLevel","Number","document","flatTreeItem","itemsPerId","get","id","parentId","getElementById"],"sources":["../src/packages/react-components/react-tree/src/hooks/useFlatTreeNavigation.ts"],"sourcesContent":["import { useFluent_unstable } from '@fluentui/react-shared-contexts';\nimport { useMergedRefs } from '@fluentui/react-utilities';\nimport { TreeNavigationData_unstable } from '../Tree';\nimport { UnfilteredFlatTree } from '../utils/createUnfilteredFlatTree';\nimport { nextTypeAheadElement } from '../utils/nextTypeAheadElement';\nimport { treeDataTypes } from '../utils/tokens';\nimport { treeItemFilter } from '../utils/treeItemFilter';\nimport { HTMLElementWalker, useHTMLElementWalkerRef } from './useHTMLElementWalker';\nimport { useRovingTabIndex } from './useRovingTabIndexes';\n\nexport function useFlatTreeNavigation(flatTree: UnfilteredFlatTree) {\n const { targetDocument } = useFluent_unstable();\n const [treeItemWalkerRef, treeItemWalkerRootRef] = useHTMLElementWalkerRef(treeItemFilter);\n const [{ rove }, rovingRootRef] = useRovingTabIndex(treeItemFilter);\n\n function getNextElement(data: TreeNavigationData_unstable) {\n if (!targetDocument || !treeItemWalkerRef.current) {\n return null;\n }\n const treeItemWalker = treeItemWalkerRef.current;\n switch (data.type) {\n case treeDataTypes.click:\n return data.target;\n case treeDataTypes.typeAhead:\n treeItemWalker.currentElement = data.target;\n return nextTypeAheadElement(treeItemWalker, data.event.key);\n case treeDataTypes.arrowLeft:\n return parentElement(flatTree, data.target, targetDocument);\n case treeDataTypes.arrowRight:\n treeItemWalker.currentElement = data.target;\n return firstChild(data.target, treeItemWalker);\n case treeDataTypes.end:\n treeItemWalker.currentElement = treeItemWalker.root;\n return treeItemWalker.lastChild();\n case treeDataTypes.home:\n treeItemWalker.currentElement = treeItemWalker.root;\n return treeItemWalker.firstChild();\n case treeDataTypes.arrowDown:\n treeItemWalker.currentElement = data.target;\n return treeItemWalker.nextElement();\n case treeDataTypes.arrowUp:\n treeItemWalker.currentElement = data.target;\n return treeItemWalker.previousElement();\n }\n }\n function navigate(data: TreeNavigationData_unstable) {\n const nextElement = getNextElement(data);\n if (nextElement) {\n rove(nextElement);\n }\n }\n return [navigate, useMergedRefs(treeItemWalkerRootRef, rovingRootRef)] as const;\n}\n\nfunction firstChild(target: HTMLElement, treeWalker: HTMLElementWalker): HTMLElement | null {\n const nextElement = treeWalker.nextElement();\n if (!nextElement) {\n return null;\n }\n const nextElementAriaPosInSet = nextElement.getAttribute('aria-posinset');\n const nextElementAriaLevel = nextElement.getAttribute('aria-level');\n const targetAriaLevel = target.getAttribute('aria-level');\n if (nextElementAriaPosInSet === '1' && Number(nextElementAriaLevel) === Number(targetAriaLevel) + 1) {\n return nextElement;\n }\n return null;\n}\n\nfunction parentElement(flatTree: UnfilteredFlatTree, target: HTMLElement, document: Document) {\n const flatTreeItem = flatTree.itemsPerId.get(target.id);\n if (flatTreeItem && flatTreeItem.parentId) {\n return document.getElementById(flatTreeItem.parentId);\n }\n return null;\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["useFluent_unstable","useMergedRefs","nextTypeAheadElement","treeDataTypes","treeItemFilter","useHTMLElementWalkerRef","useRovingTabIndex","useFlatTreeNavigation","flatTree","targetDocument","treeItemWalkerRef","treeItemWalkerRootRef","rove","rovingRootRef","getNextElement","data","current","treeItemWalker","type","click","target","typeAhead","currentElement","event","key","arrowLeft","parentElement","arrowRight","firstChild","end","root","lastChild","home","arrowDown","nextElement","arrowUp","previousElement","navigate","treeWalker","nextElementAriaPosInSet","getAttribute","nextElementAriaLevel","targetAriaLevel","Number","document","flatTreeItem","itemsPerId","get","id","parentId","getElementById"],"sources":["../../src/hooks/useFlatTreeNavigation.ts"],"sourcesContent":["import { useFluent_unstable } from '@fluentui/react-shared-contexts';\nimport { useMergedRefs } from '@fluentui/react-utilities';\nimport { TreeNavigationData_unstable } from '../Tree';\nimport { UnfilteredFlatTree } from '../utils/createUnfilteredFlatTree';\nimport { nextTypeAheadElement } from '../utils/nextTypeAheadElement';\nimport { treeDataTypes } from '../utils/tokens';\nimport { treeItemFilter } from '../utils/treeItemFilter';\nimport { HTMLElementWalker, useHTMLElementWalkerRef } from './useHTMLElementWalker';\nimport { useRovingTabIndex } from './useRovingTabIndexes';\n\nexport function useFlatTreeNavigation(flatTree: UnfilteredFlatTree) {\n const { targetDocument } = useFluent_unstable();\n const [treeItemWalkerRef, treeItemWalkerRootRef] = useHTMLElementWalkerRef(treeItemFilter);\n const [{ rove }, rovingRootRef] = useRovingTabIndex(treeItemFilter);\n\n function getNextElement(data: TreeNavigationData_unstable) {\n if (!targetDocument || !treeItemWalkerRef.current) {\n return null;\n }\n const treeItemWalker = treeItemWalkerRef.current;\n switch (data.type) {\n case treeDataTypes.click:\n return data.target;\n case treeDataTypes.typeAhead:\n treeItemWalker.currentElement = data.target;\n return nextTypeAheadElement(treeItemWalker, data.event.key);\n case treeDataTypes.arrowLeft:\n return parentElement(flatTree, data.target, targetDocument);\n case treeDataTypes.arrowRight:\n treeItemWalker.currentElement = data.target;\n return firstChild(data.target, treeItemWalker);\n case treeDataTypes.end:\n treeItemWalker.currentElement = treeItemWalker.root;\n return treeItemWalker.lastChild();\n case treeDataTypes.home:\n treeItemWalker.currentElement = treeItemWalker.root;\n return treeItemWalker.firstChild();\n case treeDataTypes.arrowDown:\n treeItemWalker.currentElement = data.target;\n return treeItemWalker.nextElement();\n case treeDataTypes.arrowUp:\n treeItemWalker.currentElement = data.target;\n return treeItemWalker.previousElement();\n }\n }\n function navigate(data: TreeNavigationData_unstable) {\n const nextElement = getNextElement(data);\n if (nextElement) {\n rove(nextElement);\n }\n }\n return [navigate, useMergedRefs(treeItemWalkerRootRef, rovingRootRef)] as const;\n}\n\nfunction firstChild(target: HTMLElement, treeWalker: HTMLElementWalker): HTMLElement | null {\n const nextElement = treeWalker.nextElement();\n if (!nextElement) {\n return null;\n }\n const nextElementAriaPosInSet = nextElement.getAttribute('aria-posinset');\n const nextElementAriaLevel = nextElement.getAttribute('aria-level');\n const targetAriaLevel = target.getAttribute('aria-level');\n if (nextElementAriaPosInSet === '1' && Number(nextElementAriaLevel) === Number(targetAriaLevel) + 1) {\n return nextElement;\n }\n return null;\n}\n\nfunction parentElement(flatTree: UnfilteredFlatTree, target: HTMLElement, document: Document) {\n const flatTreeItem = flatTree.itemsPerId.get(target.id);\n if (flatTreeItem && flatTreeItem.parentId) {\n return document.getElementById(flatTreeItem.parentId);\n }\n return null;\n}\n"],"mappings":"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"}
@@ -4,12 +4,12 @@ export function createHTMLElementWalker(root, filter = () => NodeFilter.FILTER_A
4
4
  let temporaryFilter;
5
5
  const treeWalker = document.createTreeWalker(root, NodeFilter.SHOW_ELEMENT, {
6
6
  acceptNode(node) {
7
- var _a;
8
7
  if (!isHTMLElement(node)) {
9
8
  return NodeFilter.FILTER_REJECT;
10
9
  }
11
10
  const filterResult = filter(node);
12
- return filterResult === NodeFilter.FILTER_ACCEPT ? (_a = temporaryFilter === null || temporaryFilter === void 0 ? void 0 : temporaryFilter(node)) !== null && _a !== void 0 ? _a : filterResult : filterResult;
11
+ var _temporaryFilter;
12
+ return filterResult === NodeFilter.FILTER_ACCEPT ? (_temporaryFilter = temporaryFilter === null || temporaryFilter === void 0 ? void 0 : temporaryFilter(node)) !== null && _temporaryFilter !== void 0 ? _temporaryFilter : filterResult : filterResult;
13
13
  }
14
14
  });
15
15
  return {
@@ -68,12 +68,12 @@ export function createHTMLElementWalker(root, filter = () => NodeFilter.FILTER_A
68
68
  }
69
69
  export const useHTMLElementWalkerRef = filter => {
70
70
  const walkerRef = React.useRef();
71
- const rootRefCallback = element => {
72
- if (!element) {
71
+ const rootRefCallback = element1 => {
72
+ if (!element1) {
73
73
  walkerRef.current = undefined;
74
74
  return;
75
75
  }
76
- walkerRef.current = createHTMLElementWalker(element, filter);
76
+ walkerRef.current = createHTMLElementWalker(element1, filter);
77
77
  };
78
78
  return [walkerRef, rootRefCallback];
79
79
  };
@@ -1 +1 @@
1
- {"version":3,"names":["isHTMLElement","React","createHTMLElementWalker","root","filter","NodeFilter","FILTER_ACCEPT","temporaryFilter","treeWalker","document","createTreeWalker","SHOW_ELEMENT","acceptNode","node","FILTER_REJECT","filterResult","_a","currentElement","currentNode","element","firstChild","localFilter","result","undefined","lastChild","nextElement","nextNode","nextSibling","parentElement","parentNode","previousElement","previousNode","previousSibling","useHTMLElementWalkerRef","walkerRef","useRef","rootRefCallback","current"],"sources":["../src/packages/react-components/react-tree/src/hooks/useHTMLElementWalker.ts"],"sourcesContent":["import { isHTMLElement } from '@fluentui/react-utilities';\nimport * as React from 'react';\n\nexport interface HTMLElementWalker {\n readonly root: HTMLElement;\n currentElement: HTMLElement;\n firstChild(filter?: HTMLElementFilter): HTMLElement | null;\n lastChild(filter?: HTMLElementFilter): HTMLElement | null;\n nextElement(filter?: HTMLElementFilter): HTMLElement | null;\n nextSibling(filter?: HTMLElementFilter): HTMLElement | null;\n parentElement(filter?: HTMLElementFilter): HTMLElement | null;\n previousElement(filter?: HTMLElementFilter): HTMLElement | null;\n previousSibling(filter?: HTMLElementFilter): HTMLElement | null;\n}\n\nexport type HTMLElementFilter = (element: HTMLElement) => number;\n\nexport function createHTMLElementWalker(\n root: HTMLElement,\n filter: HTMLElementFilter = () => NodeFilter.FILTER_ACCEPT,\n): HTMLElementWalker {\n let temporaryFilter: HTMLElementFilter | undefined;\n const treeWalker = document.createTreeWalker(root, NodeFilter.SHOW_ELEMENT, {\n acceptNode(node: Node) {\n if (!isHTMLElement(node)) {\n return NodeFilter.FILTER_REJECT;\n }\n const filterResult = filter(node);\n return filterResult === NodeFilter.FILTER_ACCEPT ? temporaryFilter?.(node) ?? filterResult : filterResult;\n },\n });\n return {\n get root() {\n return treeWalker.root as HTMLElement;\n },\n get currentElement() {\n return treeWalker.currentNode as HTMLElement;\n },\n set currentElement(element) {\n treeWalker.currentNode = element;\n },\n firstChild: localFilter => {\n temporaryFilter = localFilter;\n const result = treeWalker.firstChild() as HTMLElement | null;\n temporaryFilter = undefined;\n return result;\n },\n lastChild: localFilter => {\n temporaryFilter = localFilter;\n const result = treeWalker.lastChild() as HTMLElement | null;\n temporaryFilter = undefined;\n return result;\n },\n nextElement: localFilter => {\n temporaryFilter = localFilter;\n const result = treeWalker.nextNode() as HTMLElement | null;\n temporaryFilter = undefined;\n return result;\n },\n nextSibling: localFilter => {\n temporaryFilter = localFilter;\n const result = treeWalker.nextSibling() as HTMLElement | null;\n temporaryFilter = undefined;\n return result;\n },\n parentElement: localFilter => {\n temporaryFilter = localFilter;\n const result = treeWalker.parentNode() as HTMLElement | null;\n temporaryFilter = undefined;\n return result;\n },\n previousElement: localFilter => {\n temporaryFilter = localFilter;\n const result = treeWalker.previousNode() as HTMLElement | null;\n temporaryFilter = undefined;\n return result;\n },\n previousSibling: localFilter => {\n temporaryFilter = localFilter;\n const result = treeWalker.previousSibling() as HTMLElement | null;\n temporaryFilter = undefined;\n return result;\n },\n };\n}\n\nexport const useHTMLElementWalkerRef = (filter?: HTMLElementFilter) => {\n const walkerRef = React.useRef<HTMLElementWalker>();\n\n const rootRefCallback = (element?: HTMLElement) => {\n if (!element) {\n walkerRef.current = undefined;\n return;\n }\n walkerRef.current = createHTMLElementWalker(element, filter);\n };\n return [walkerRef as React.RefObject<HTMLElementWalker>, rootRefCallback as React.Ref<HTMLElement>] as const;\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["isHTMLElement","React","createHTMLElementWalker","root","filter","NodeFilter","FILTER_ACCEPT","temporaryFilter","treeWalker","document","createTreeWalker","SHOW_ELEMENT","acceptNode","node","FILTER_REJECT","filterResult","_temporaryFilter","currentElement","currentNode","element","firstChild","localFilter","result","undefined","lastChild","nextElement","nextNode","nextSibling","parentElement","parentNode","previousElement","previousNode","previousSibling","useHTMLElementWalkerRef","walkerRef","useRef","rootRefCallback","element1","current"],"sources":["../../src/hooks/useHTMLElementWalker.ts"],"sourcesContent":["import { isHTMLElement } from '@fluentui/react-utilities';\nimport * as React from 'react';\n\nexport interface HTMLElementWalker {\n readonly root: HTMLElement;\n currentElement: HTMLElement;\n firstChild(filter?: HTMLElementFilter): HTMLElement | null;\n lastChild(filter?: HTMLElementFilter): HTMLElement | null;\n nextElement(filter?: HTMLElementFilter): HTMLElement | null;\n nextSibling(filter?: HTMLElementFilter): HTMLElement | null;\n parentElement(filter?: HTMLElementFilter): HTMLElement | null;\n previousElement(filter?: HTMLElementFilter): HTMLElement | null;\n previousSibling(filter?: HTMLElementFilter): HTMLElement | null;\n}\n\nexport type HTMLElementFilter = (element: HTMLElement) => number;\n\nexport function createHTMLElementWalker(\n root: HTMLElement,\n filter: HTMLElementFilter = () => NodeFilter.FILTER_ACCEPT,\n): HTMLElementWalker {\n let temporaryFilter: HTMLElementFilter | undefined;\n const treeWalker = document.createTreeWalker(root, NodeFilter.SHOW_ELEMENT, {\n acceptNode(node: Node) {\n if (!isHTMLElement(node)) {\n return NodeFilter.FILTER_REJECT;\n }\n const filterResult = filter(node);\n return filterResult === NodeFilter.FILTER_ACCEPT ? temporaryFilter?.(node) ?? filterResult : filterResult;\n },\n });\n return {\n get root() {\n return treeWalker.root as HTMLElement;\n },\n get currentElement() {\n return treeWalker.currentNode as HTMLElement;\n },\n set currentElement(element) {\n treeWalker.currentNode = element;\n },\n firstChild: localFilter => {\n temporaryFilter = localFilter;\n const result = treeWalker.firstChild() as HTMLElement | null;\n temporaryFilter = undefined;\n return result;\n },\n lastChild: localFilter => {\n temporaryFilter = localFilter;\n const result = treeWalker.lastChild() as HTMLElement | null;\n temporaryFilter = undefined;\n return result;\n },\n nextElement: localFilter => {\n temporaryFilter = localFilter;\n const result = treeWalker.nextNode() as HTMLElement | null;\n temporaryFilter = undefined;\n return result;\n },\n nextSibling: localFilter => {\n temporaryFilter = localFilter;\n const result = treeWalker.nextSibling() as HTMLElement | null;\n temporaryFilter = undefined;\n return result;\n },\n parentElement: localFilter => {\n temporaryFilter = localFilter;\n const result = treeWalker.parentNode() as HTMLElement | null;\n temporaryFilter = undefined;\n return result;\n },\n previousElement: localFilter => {\n temporaryFilter = localFilter;\n const result = treeWalker.previousNode() as HTMLElement | null;\n temporaryFilter = undefined;\n return result;\n },\n previousSibling: localFilter => {\n temporaryFilter = localFilter;\n const result = treeWalker.previousSibling() as HTMLElement | null;\n temporaryFilter = undefined;\n return result;\n },\n };\n}\n\nexport const useHTMLElementWalkerRef = (filter?: HTMLElementFilter) => {\n const walkerRef = React.useRef<HTMLElementWalker>();\n\n const rootRefCallback = (element?: HTMLElement) => {\n if (!element) {\n walkerRef.current = undefined;\n return;\n }\n walkerRef.current = createHTMLElementWalker(element, filter);\n };\n return [walkerRef as React.RefObject<HTMLElementWalker>, rootRefCallback as React.Ref<HTMLElement>] as const;\n};\n"],"mappings":"AAAA,SAASA,aAAa,QAAQ;AAC9B,YAAYC,KAAA,MAAW;AAgBvB,OAAO,SAASC,wBACdC,IAAiB,EACjBC,MAAA,GAA4BA,CAAA,KAAMC,UAAA,CAAWC,aAAa,EACvC;EACnB,IAAIC,eAAA;EACJ,MAAMC,UAAA,GAAaC,QAAA,CAASC,gBAAgB,CAACP,IAAA,EAAME,UAAA,CAAWM,YAAY,EAAE;IAC1EC,WAAWC,IAAU,EAAE;MACrB,IAAI,CAACb,aAAA,CAAca,IAAA,GAAO;QACxB,OAAOR,UAAA,CAAWS,aAAa;MACjC;MACA,MAAMC,YAAA,GAAeX,MAAA,CAAOS,IAAA;UACuBG,gBAAA;MAAnD,OAAOD,YAAA,KAAiBV,UAAA,CAAWC,aAAa,GAAG,CAAAU,gBAAA,GAAAT,eAAA,aAAAA,eAAA,uBAAAA,eAAA,CAAkBM,IAAA,eAAlBG,gBAAA,cAAAA,gBAAA,GAA2BD,YAAY,GAAGA,YAAY;IAC3G;EACF;EACA,OAAO;IACL,IAAIZ,KAAA,EAAO;MACT,OAAOK,UAAA,CAAWL,IAAI;IACxB;IACA,IAAIc,eAAA,EAAiB;MACnB,OAAOT,UAAA,CAAWU,WAAW;IAC/B;IACA,IAAID,eAAeE,OAAA,EAAS;MAC1BX,UAAA,CAAWU,WAAW,GAAGC,OAAA;IAC3B;IACAC,UAAA,EAAYC,WAAA,IAAe;MACzBd,eAAA,GAAkBc,WAAA;MAClB,MAAMC,MAAA,GAASd,UAAA,CAAWY,UAAU;MACpCb,eAAA,GAAkBgB,SAAA;MAClB,OAAOD,MAAA;IACT;IACAE,SAAA,EAAWH,WAAA,IAAe;MACxBd,eAAA,GAAkBc,WAAA;MAClB,MAAMC,MAAA,GAASd,UAAA,CAAWgB,SAAS;MACnCjB,eAAA,GAAkBgB,SAAA;MAClB,OAAOD,MAAA;IACT;IACAG,WAAA,EAAaJ,WAAA,IAAe;MAC1Bd,eAAA,GAAkBc,WAAA;MAClB,MAAMC,MAAA,GAASd,UAAA,CAAWkB,QAAQ;MAClCnB,eAAA,GAAkBgB,SAAA;MAClB,OAAOD,MAAA;IACT;IACAK,WAAA,EAAaN,WAAA,IAAe;MAC1Bd,eAAA,GAAkBc,WAAA;MAClB,MAAMC,MAAA,GAASd,UAAA,CAAWmB,WAAW;MACrCpB,eAAA,GAAkBgB,SAAA;MAClB,OAAOD,MAAA;IACT;IACAM,aAAA,EAAeP,WAAA,IAAe;MAC5Bd,eAAA,GAAkBc,WAAA;MAClB,MAAMC,MAAA,GAASd,UAAA,CAAWqB,UAAU;MACpCtB,eAAA,GAAkBgB,SAAA;MAClB,OAAOD,MAAA;IACT;IACAQ,eAAA,EAAiBT,WAAA,IAAe;MAC9Bd,eAAA,GAAkBc,WAAA;MAClB,MAAMC,MAAA,GAASd,UAAA,CAAWuB,YAAY;MACtCxB,eAAA,GAAkBgB,SAAA;MAClB,OAAOD,MAAA;IACT;IACAU,eAAA,EAAiBX,WAAA,IAAe;MAC9Bd,eAAA,GAAkBc,WAAA;MAClB,MAAMC,MAAA,GAASd,UAAA,CAAWwB,eAAe;MACzCzB,eAAA,GAAkBgB,SAAA;MAClB,OAAOD,MAAA;IACT;EACF;AACF;AAEA,OAAO,MAAMW,uBAAA,GAA2B7B,MAAA,IAA+B;EACrE,MAAM8B,SAAA,GAAYjC,KAAA,CAAMkC,MAAM;EAE9B,MAAMC,eAAA,GAAmBC,QAAA,IAA0B;IACjD,IAAI,CAACA,QAAA,EAAS;MACZH,SAAA,CAAUI,OAAO,GAAGf,SAAA;MACpB;IACF;IACAW,SAAA,CAAUI,OAAO,GAAGpC,uBAAA,CAAwBmC,QAAA,EAASjC,MAAA;EACvD;EACA,OAAO,CAAC8B,SAAA,EAAiDE,eAAA,CAA0C;AACrG"}
@@ -1 +1 @@
1
- {"version":3,"names":["useHTMLElementWalkerRef","nextTypeAheadElement","treeDataTypes","treeItemFilter","useRovingTabIndex","useMergedRefs","useNestedTreeNavigation","rove","rovingRootRef","walkerRef","rootRef","getNextElement","data","current","treeItemWalker","type","click","target","typeAhead","currentElement","event","key","arrowLeft","parentElement","arrowRight","firstChild","end","root","lastChildRecursive","home","arrowDown","nextElement","arrowUp","previousElement","navigate","walker","lastElement","lastChild"],"sources":["../src/packages/react-components/react-tree/src/hooks/useNestedTreeNavigation.ts"],"sourcesContent":["import { TreeNavigationData_unstable } from '../Tree';\nimport { HTMLElementWalker, useHTMLElementWalkerRef } from './useHTMLElementWalker';\nimport { nextTypeAheadElement } from '../utils/nextTypeAheadElement';\nimport { treeDataTypes } from '../utils/tokens';\nimport { treeItemFilter } from '../utils/treeItemFilter';\nimport { useRovingTabIndex } from './useRovingTabIndexes';\nimport { useMergedRefs } from '@fluentui/react-utilities';\n\nexport function useNestedTreeNavigation() {\n const [{ rove }, rovingRootRef] = useRovingTabIndex(treeItemFilter);\n const [walkerRef, rootRef] = useHTMLElementWalkerRef(treeItemFilter);\n\n const getNextElement = (data: TreeNavigationData_unstable) => {\n if (!walkerRef.current) {\n return;\n }\n const treeItemWalker = walkerRef.current;\n switch (data.type) {\n case treeDataTypes.click:\n return data.target;\n case treeDataTypes.typeAhead:\n treeItemWalker.currentElement = data.target;\n return nextTypeAheadElement(treeItemWalker, data.event.key);\n case treeDataTypes.arrowLeft:\n treeItemWalker.currentElement = data.target;\n return treeItemWalker.parentElement();\n case treeDataTypes.arrowRight:\n treeItemWalker.currentElement = data.target;\n return treeItemWalker.firstChild();\n case treeDataTypes.end:\n treeItemWalker.currentElement = treeItemWalker.root;\n return lastChildRecursive(treeItemWalker);\n case treeDataTypes.home:\n treeItemWalker.currentElement = treeItemWalker.root;\n return treeItemWalker.firstChild();\n case treeDataTypes.arrowDown:\n treeItemWalker.currentElement = data.target;\n return treeItemWalker.nextElement();\n case treeDataTypes.arrowUp:\n treeItemWalker.currentElement = data.target;\n return treeItemWalker.previousElement();\n }\n };\n function navigate(data: TreeNavigationData_unstable) {\n const nextElement = getNextElement(data);\n if (nextElement) {\n rove(nextElement);\n }\n }\n return [navigate, useMergedRefs(rootRef, rovingRootRef)] as const;\n}\n\nfunction lastChildRecursive(walker: HTMLElementWalker) {\n let lastElement: HTMLElement | null = null;\n let nextElement: HTMLElement | null = null;\n while ((nextElement = walker.lastChild())) {\n lastElement = nextElement;\n }\n return lastElement;\n}\n"],"mappings":"AACA,SAA4BA,uBAAuB,QAAQ,wBAAwB;AACnF,SAASC,oBAAoB,QAAQ,+BAA+B;AACpE,SAASC,aAAa,QAAQ,iBAAiB;AAC/C,SAASC,cAAc,QAAQ,yBAAyB;AACxD,SAASC,iBAAiB,QAAQ,uBAAuB;AACzD,SAASC,aAAa,QAAQ,2BAA2B;AAEzD,OAAM,SAAUC,uBAAuBA,CAAA;EACrC,MAAM,CAAC;IAAEC;EAAI,CAAE,EAAEC,aAAa,CAAC,GAAGJ,iBAAiB,CAACD,cAAc,CAAC;EACnE,MAAM,CAACM,SAAS,EAAEC,OAAO,CAAC,GAAGV,uBAAuB,CAACG,cAAc,CAAC;EAEpE,MAAMQ,cAAc,GAAIC,IAAiC,IAAI;IAC3D,IAAI,CAACH,SAAS,CAACI,OAAO,EAAE;MACtB;;IAEF,MAAMC,cAAc,GAAGL,SAAS,CAACI,OAAO;IACxC,QAAQD,IAAI,CAACG,IAAI;MACf,KAAKb,aAAa,CAACc,KAAK;QACtB,OAAOJ,IAAI,CAACK,MAAM;MACpB,KAAKf,aAAa,CAACgB,SAAS;QAC1BJ,cAAc,CAACK,cAAc,GAAGP,IAAI,CAACK,MAAM;QAC3C,OAAOhB,oBAAoB,CAACa,cAAc,EAAEF,IAAI,CAACQ,KAAK,CAACC,GAAG,CAAC;MAC7D,KAAKnB,aAAa,CAACoB,SAAS;QAC1BR,cAAc,CAACK,cAAc,GAAGP,IAAI,CAACK,MAAM;QAC3C,OAAOH,cAAc,CAACS,aAAa,EAAE;MACvC,KAAKrB,aAAa,CAACsB,UAAU;QAC3BV,cAAc,CAACK,cAAc,GAAGP,IAAI,CAACK,MAAM;QAC3C,OAAOH,cAAc,CAACW,UAAU,EAAE;MACpC,KAAKvB,aAAa,CAACwB,GAAG;QACpBZ,cAAc,CAACK,cAAc,GAAGL,cAAc,CAACa,IAAI;QACnD,OAAOC,kBAAkB,CAACd,cAAc,CAAC;MAC3C,KAAKZ,aAAa,CAAC2B,IAAI;QACrBf,cAAc,CAACK,cAAc,GAAGL,cAAc,CAACa,IAAI;QACnD,OAAOb,cAAc,CAACW,UAAU,EAAE;MACpC,KAAKvB,aAAa,CAAC4B,SAAS;QAC1BhB,cAAc,CAACK,cAAc,GAAGP,IAAI,CAACK,MAAM;QAC3C,OAAOH,cAAc,CAACiB,WAAW,EAAE;MACrC,KAAK7B,aAAa,CAAC8B,OAAO;QACxBlB,cAAc,CAACK,cAAc,GAAGP,IAAI,CAACK,MAAM;QAC3C,OAAOH,cAAc,CAACmB,eAAe,EAAE;IAAC;EAE9C,CAAC;EACD,SAASC,QAAQA,CAACtB,IAAiC;IACjD,MAAMmB,WAAW,GAAGpB,cAAc,CAACC,IAAI,CAAC;IACxC,IAAImB,WAAW,EAAE;MACfxB,IAAI,CAACwB,WAAW,CAAC;;EAErB;EACA,OAAO,CAACG,QAAQ,EAAE7B,aAAa,CAACK,OAAO,EAAEF,aAAa,CAAC,CAAU;AACnE;AAEA,SAASoB,kBAAkBA,CAACO,MAAyB;EACnD,IAAIC,WAAW,GAAuB,IAAI;EAC1C,IAAIL,WAAW,GAAuB,IAAI;EAC1C,OAAQA,WAAW,GAAGI,MAAM,CAACE,SAAS,EAAE,EAAG;IACzCD,WAAW,GAAGL,WAAW;;EAE3B,OAAOK,WAAW;AACpB"}
1
+ {"version":3,"names":["useHTMLElementWalkerRef","nextTypeAheadElement","treeDataTypes","treeItemFilter","useRovingTabIndex","useMergedRefs","useNestedTreeNavigation","rove","rovingRootRef","walkerRef","rootRef","getNextElement","data","current","treeItemWalker","type","click","target","typeAhead","currentElement","event","key","arrowLeft","parentElement","arrowRight","firstChild","end","root","lastChildRecursive","home","arrowDown","nextElement","arrowUp","previousElement","navigate","walker","lastElement","lastChild"],"sources":["../../src/hooks/useNestedTreeNavigation.ts"],"sourcesContent":["import { TreeNavigationData_unstable } from '../Tree';\nimport { HTMLElementWalker, useHTMLElementWalkerRef } from './useHTMLElementWalker';\nimport { nextTypeAheadElement } from '../utils/nextTypeAheadElement';\nimport { treeDataTypes } from '../utils/tokens';\nimport { treeItemFilter } from '../utils/treeItemFilter';\nimport { useRovingTabIndex } from './useRovingTabIndexes';\nimport { useMergedRefs } from '@fluentui/react-utilities';\n\nexport function useNestedTreeNavigation() {\n const [{ rove }, rovingRootRef] = useRovingTabIndex(treeItemFilter);\n const [walkerRef, rootRef] = useHTMLElementWalkerRef(treeItemFilter);\n\n const getNextElement = (data: TreeNavigationData_unstable) => {\n if (!walkerRef.current) {\n return;\n }\n const treeItemWalker = walkerRef.current;\n switch (data.type) {\n case treeDataTypes.click:\n return data.target;\n case treeDataTypes.typeAhead:\n treeItemWalker.currentElement = data.target;\n return nextTypeAheadElement(treeItemWalker, data.event.key);\n case treeDataTypes.arrowLeft:\n treeItemWalker.currentElement = data.target;\n return treeItemWalker.parentElement();\n case treeDataTypes.arrowRight:\n treeItemWalker.currentElement = data.target;\n return treeItemWalker.firstChild();\n case treeDataTypes.end:\n treeItemWalker.currentElement = treeItemWalker.root;\n return lastChildRecursive(treeItemWalker);\n case treeDataTypes.home:\n treeItemWalker.currentElement = treeItemWalker.root;\n return treeItemWalker.firstChild();\n case treeDataTypes.arrowDown:\n treeItemWalker.currentElement = data.target;\n return treeItemWalker.nextElement();\n case treeDataTypes.arrowUp:\n treeItemWalker.currentElement = data.target;\n return treeItemWalker.previousElement();\n }\n };\n function navigate(data: TreeNavigationData_unstable) {\n const nextElement = getNextElement(data);\n if (nextElement) {\n rove(nextElement);\n }\n }\n return [navigate, useMergedRefs(rootRef, rovingRootRef)] as const;\n}\n\nfunction lastChildRecursive(walker: HTMLElementWalker) {\n let lastElement: HTMLElement | null = null;\n let nextElement: HTMLElement | null = null;\n while ((nextElement = walker.lastChild())) {\n lastElement = nextElement;\n }\n return lastElement;\n}\n"],"mappings":"AACA,SAA4BA,uBAAuB,QAAQ;AAC3D,SAASC,oBAAoB,QAAQ;AACrC,SAASC,aAAa,QAAQ;AAC9B,SAASC,cAAc,QAAQ;AAC/B,SAASC,iBAAiB,QAAQ;AAClC,SAASC,aAAa,QAAQ;AAE9B,OAAO,SAASC,wBAAA,EAA0B;EACxC,MAAM,CAAC;IAAEC;EAAI,CAAE,EAAEC,aAAA,CAAc,GAAGJ,iBAAA,CAAkBD,cAAA;EACpD,MAAM,CAACM,SAAA,EAAWC,OAAA,CAAQ,GAAGV,uBAAA,CAAwBG,cAAA;EAErD,MAAMQ,cAAA,GAAkBC,IAAA,IAAsC;IAC5D,IAAI,CAACH,SAAA,CAAUI,OAAO,EAAE;MACtB;IACF;IACA,MAAMC,cAAA,GAAiBL,SAAA,CAAUI,OAAO;IACxC,QAAQD,IAAA,CAAKG,IAAI;MACf,KAAKb,aAAA,CAAcc,KAAK;QACtB,OAAOJ,IAAA,CAAKK,MAAM;MACpB,KAAKf,aAAA,CAAcgB,SAAS;QAC1BJ,cAAA,CAAeK,cAAc,GAAGP,IAAA,CAAKK,MAAM;QAC3C,OAAOhB,oBAAA,CAAqBa,cAAA,EAAgBF,IAAA,CAAKQ,KAAK,CAACC,GAAG;MAC5D,KAAKnB,aAAA,CAAcoB,SAAS;QAC1BR,cAAA,CAAeK,cAAc,GAAGP,IAAA,CAAKK,MAAM;QAC3C,OAAOH,cAAA,CAAeS,aAAa;MACrC,KAAKrB,aAAA,CAAcsB,UAAU;QAC3BV,cAAA,CAAeK,cAAc,GAAGP,IAAA,CAAKK,MAAM;QAC3C,OAAOH,cAAA,CAAeW,UAAU;MAClC,KAAKvB,aAAA,CAAcwB,GAAG;QACpBZ,cAAA,CAAeK,cAAc,GAAGL,cAAA,CAAea,IAAI;QACnD,OAAOC,kBAAA,CAAmBd,cAAA;MAC5B,KAAKZ,aAAA,CAAc2B,IAAI;QACrBf,cAAA,CAAeK,cAAc,GAAGL,cAAA,CAAea,IAAI;QACnD,OAAOb,cAAA,CAAeW,UAAU;MAClC,KAAKvB,aAAA,CAAc4B,SAAS;QAC1BhB,cAAA,CAAeK,cAAc,GAAGP,IAAA,CAAKK,MAAM;QAC3C,OAAOH,cAAA,CAAeiB,WAAW;MACnC,KAAK7B,aAAA,CAAc8B,OAAO;QACxBlB,cAAA,CAAeK,cAAc,GAAGP,IAAA,CAAKK,MAAM;QAC3C,OAAOH,cAAA,CAAemB,eAAe;IAAA;EAE3C;EACA,SAASC,SAAStB,IAAiC,EAAE;IACnD,MAAMmB,WAAA,GAAcpB,cAAA,CAAeC,IAAA;IACnC,IAAImB,WAAA,EAAa;MACfxB,IAAA,CAAKwB,WAAA;IACP;EACF;EACA,OAAO,CAACG,QAAA,EAAU7B,aAAA,CAAcK,OAAA,EAASF,aAAA,EAAe;AAC1D;AAEA,SAASoB,mBAAmBO,MAAyB,EAAE;EACrD,IAAIC,WAAA,GAAkC,IAAI;EAC1C,IAAIL,WAAA,GAAkC,IAAI;EAC1C,OAAQA,WAAA,GAAcI,MAAA,CAAOE,SAAS,IAAK;IACzCD,WAAA,GAAcL,WAAA;EAChB;EACA,OAAOK,WAAA;AACT"}
@@ -1 +1 @@
1
- {"version":3,"names":["useControllableState","useEventCallback","React","createImmutableSet","emptyImmutableSet","useOpenItemsState","props","openItems","setOpenItems","state","useMemo","defaultState","defaultOpenItems","initialState","updateOpenItems","data","currentOpenItems","createNextOpenItems","previousOpenItems","id","target","previousOpenItemsHasId","has","open","nextOpenItems","add","delete"],"sources":["../src/packages/react-components/react-tree/src/hooks/useOpenItemsState.ts"],"sourcesContent":["import { useControllableState, useEventCallback } from '@fluentui/react-utilities';\nimport * as React from 'react';\nimport { TreeItemId, TreeOpenChangeData, TreeProps } from '../Tree';\nimport { createImmutableSet, emptyImmutableSet, ImmutableSet } from '../utils/ImmutableSet';\n\nexport function useOpenItemsState(props: Pick<TreeProps, 'openItems' | 'defaultOpenItems'>) {\n const [openItems, setOpenItems] = useControllableState({\n state: React.useMemo(() => props.openItems && createImmutableSet(props.openItems), [props.openItems]),\n defaultState: React.useMemo(\n () => props.defaultOpenItems && createImmutableSet(props.defaultOpenItems),\n [props.defaultOpenItems],\n ),\n initialState: emptyImmutableSet,\n });\n const updateOpenItems = useEventCallback((data: TreeOpenChangeData) =>\n setOpenItems(currentOpenItems => createNextOpenItems(data, currentOpenItems)),\n );\n return [openItems, updateOpenItems] as const;\n}\n\nfunction createNextOpenItems(\n data: TreeOpenChangeData,\n previousOpenItems: ImmutableSet<TreeItemId>,\n): ImmutableSet<TreeItemId> {\n const id = data.target.id;\n const previousOpenItemsHasId = previousOpenItems.has(id);\n if (data.open ? previousOpenItemsHasId : !previousOpenItemsHasId) {\n return previousOpenItems;\n }\n const nextOpenItems = createImmutableSet(previousOpenItems);\n return data.open ? nextOpenItems.add(id) : nextOpenItems.delete(id);\n}\n"],"mappings":"AAAA,SAASA,oBAAoB,EAAEC,gBAAgB,QAAQ,2BAA2B;AAClF,OAAO,KAAKC,KAAK,MAAM,OAAO;AAE9B,SAASC,kBAAkB,EAAEC,iBAAiB,QAAsB,uBAAuB;AAE3F,OAAM,SAAUC,iBAAiBA,CAACC,KAAwD;EACxF,MAAM,CAACC,SAAS,EAAEC,YAAY,CAAC,GAAGR,oBAAoB,CAAC;IACrDS,KAAK,EAAEP,KAAK,CAACQ,OAAO,CAAC,MAAMJ,KAAK,CAACC,SAAS,IAAIJ,kBAAkB,CAACG,KAAK,CAACC,SAAS,CAAC,EAAE,CAACD,KAAK,CAACC,SAAS,CAAC,CAAC;IACrGI,YAAY,EAAET,KAAK,CAACQ,OAAO,CACzB,MAAMJ,KAAK,CAACM,gBAAgB,IAAIT,kBAAkB,CAACG,KAAK,CAACM,gBAAgB,CAAC,EAC1E,CAACN,KAAK,CAACM,gBAAgB,CAAC,CACzB;IACDC,YAAY,EAAET;GACf,CAAC;EACF,MAAMU,eAAe,GAAGb,gBAAgB,CAAEc,IAAwB,IAChEP,YAAY,CAACQ,gBAAgB,IAAIC,mBAAmB,CAACF,IAAI,EAAEC,gBAAgB,CAAC,CAAC,CAC9E;EACD,OAAO,CAACT,SAAS,EAAEO,eAAe,CAAU;AAC9C;AAEA,SAASG,mBAAmBA,CAC1BF,IAAwB,EACxBG,iBAA2C;EAE3C,MAAMC,EAAE,GAAGJ,IAAI,CAACK,MAAM,CAACD,EAAE;EACzB,MAAME,sBAAsB,GAAGH,iBAAiB,CAACI,GAAG,CAACH,EAAE,CAAC;EACxD,IAAIJ,IAAI,CAACQ,IAAI,GAAGF,sBAAsB,GAAG,CAACA,sBAAsB,EAAE;IAChE,OAAOH,iBAAiB;;EAE1B,MAAMM,aAAa,GAAGrB,kBAAkB,CAACe,iBAAiB,CAAC;EAC3D,OAAOH,IAAI,CAACQ,IAAI,GAAGC,aAAa,CAACC,GAAG,CAACN,EAAE,CAAC,GAAGK,aAAa,CAACE,MAAM,CAACP,EAAE,CAAC;AACrE"}
1
+ {"version":3,"names":["useControllableState","useEventCallback","React","createImmutableSet","emptyImmutableSet","useOpenItemsState","props","openItems","setOpenItems","state","useMemo","defaultState","defaultOpenItems","initialState","updateOpenItems","data","currentOpenItems","createNextOpenItems","previousOpenItems","id","target","previousOpenItemsHasId","has","open","nextOpenItems","add","delete"],"sources":["../../src/hooks/useOpenItemsState.ts"],"sourcesContent":["import { useControllableState, useEventCallback } from '@fluentui/react-utilities';\nimport * as React from 'react';\nimport { TreeItemId, TreeOpenChangeData, TreeProps } from '../Tree';\nimport { createImmutableSet, emptyImmutableSet, ImmutableSet } from '../utils/ImmutableSet';\n\nexport function useOpenItemsState(props: Pick<TreeProps, 'openItems' | 'defaultOpenItems'>) {\n const [openItems, setOpenItems] = useControllableState({\n state: React.useMemo(() => props.openItems && createImmutableSet(props.openItems), [props.openItems]),\n defaultState: React.useMemo(\n () => props.defaultOpenItems && createImmutableSet(props.defaultOpenItems),\n [props.defaultOpenItems],\n ),\n initialState: emptyImmutableSet,\n });\n const updateOpenItems = useEventCallback((data: TreeOpenChangeData) =>\n setOpenItems(currentOpenItems => createNextOpenItems(data, currentOpenItems)),\n );\n return [openItems, updateOpenItems] as const;\n}\n\nfunction createNextOpenItems(\n data: TreeOpenChangeData,\n previousOpenItems: ImmutableSet<TreeItemId>,\n): ImmutableSet<TreeItemId> {\n const id = data.target.id;\n const previousOpenItemsHasId = previousOpenItems.has(id);\n if (data.open ? previousOpenItemsHasId : !previousOpenItemsHasId) {\n return previousOpenItems;\n }\n const nextOpenItems = createImmutableSet(previousOpenItems);\n return data.open ? nextOpenItems.add(id) : nextOpenItems.delete(id);\n}\n"],"mappings":"AAAA,SAASA,oBAAoB,EAAEC,gBAAgB,QAAQ;AACvD,YAAYC,KAAA,MAAW;AAEvB,SAASC,kBAAkB,EAAEC,iBAAiB,QAAsB;AAEpE,OAAO,SAASC,kBAAkBC,KAAwD,EAAE;EAC1F,MAAM,CAACC,SAAA,EAAWC,YAAA,CAAa,GAAGR,oBAAA,CAAqB;IACrDS,KAAA,EAAOP,KAAA,CAAMQ,OAAO,CAAC,MAAMJ,KAAA,CAAMC,SAAS,IAAIJ,kBAAA,CAAmBG,KAAA,CAAMC,SAAS,GAAG,CAACD,KAAA,CAAMC,SAAS,CAAC;IACpGI,YAAA,EAAcT,KAAA,CAAMQ,OAAO,CACzB,MAAMJ,KAAA,CAAMM,gBAAgB,IAAIT,kBAAA,CAAmBG,KAAA,CAAMM,gBAAgB,GACzE,CAACN,KAAA,CAAMM,gBAAgB,CAAC;IAE1BC,YAAA,EAAcT;EAChB;EACA,MAAMU,eAAA,GAAkBb,gBAAA,CAAkBc,IAAA,IACxCP,YAAA,CAAaQ,gBAAA,IAAoBC,mBAAA,CAAoBF,IAAA,EAAMC,gBAAA;EAE7D,OAAO,CAACT,SAAA,EAAWO,eAAA,CAAgB;AACrC;AAEA,SAASG,oBACPF,IAAwB,EACxBG,iBAA2C,EACjB;EAC1B,MAAMC,EAAA,GAAKJ,IAAA,CAAKK,MAAM,CAACD,EAAE;EACzB,MAAME,sBAAA,GAAyBH,iBAAA,CAAkBI,GAAG,CAACH,EAAA;EACrD,IAAIJ,IAAA,CAAKQ,IAAI,GAAGF,sBAAA,GAAyB,CAACA,sBAAsB,EAAE;IAChE,OAAOH,iBAAA;EACT;EACA,MAAMM,aAAA,GAAgBrB,kBAAA,CAAmBe,iBAAA;EACzC,OAAOH,IAAA,CAAKQ,IAAI,GAAGC,aAAA,CAAcC,GAAG,CAACN,EAAA,IAAMK,aAAA,CAAcE,MAAM,CAACP,EAAA,CAAG;AACrE"}
@@ -1 +1 @@
1
- {"version":3,"names":["useMergedRefs","React","useHTMLElementWalkerRef","useRovingTabIndex","filter","currentElementRef","useRef","walkerRef","rootRef","rootRefCallback","element","reset","current","walker","currentElement","root","tabbableChild","firstChild","tabIndex","NodeFilter","FILTER_ACCEPT","FILTER_SKIP","process","env","NODE_ENV","console","warn","nextElement","rove","focus"],"sources":["../src/packages/react-components/react-tree/src/hooks/useRovingTabIndexes.ts"],"sourcesContent":["import { useMergedRefs } from '@fluentui/react-utilities';\nimport * as React from 'react';\nimport { HTMLElementFilter, useHTMLElementWalkerRef } from './useHTMLElementWalker';\n\n/**\n * https://www.w3.org/WAI/ARIA/apg/practices/keyboard-interface/#kbd_roving_tabindex\n */\nexport function useRovingTabIndex(filter?: HTMLElementFilter) {\n const currentElementRef = React.useRef<HTMLElement>();\n const [walkerRef, rootRef] = useHTMLElementWalkerRef(filter);\n\n const rootRefCallback = (element?: HTMLElement) => {\n if (!element) {\n return;\n }\n reset();\n };\n\n function reset() {\n if (!walkerRef.current) {\n return;\n }\n const walker = walkerRef.current;\n walker.currentElement = walker.root;\n let tabbableChild = walker.firstChild(element =>\n element.tabIndex === 0 ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP,\n );\n walker.currentElement = walker.root;\n tabbableChild ??= walker.firstChild();\n if (!tabbableChild) {\n if (process.env.NODE_ENV === 'development') {\n // eslint-disable-next-line no-console\n console.warn('useRovingTabIndexes: internal error, no tabbable element was found');\n }\n return;\n }\n tabbableChild.tabIndex = 0;\n currentElementRef.current = tabbableChild;\n let nextElement: HTMLElement | null = null;\n while ((nextElement = walker.nextElement()) && nextElement !== tabbableChild) {\n nextElement.tabIndex = -1;\n }\n }\n function rove(nextElement: HTMLElement) {\n if (!currentElementRef.current) {\n return;\n }\n currentElementRef.current.tabIndex = -1;\n nextElement.tabIndex = 0;\n nextElement.focus();\n currentElementRef.current = nextElement;\n }\n\n return [\n {\n rove,\n reset,\n },\n useMergedRefs(rootRef, rootRefCallback) as React.Ref<HTMLElement>,\n ] as const;\n}\n"],"mappings":"AAAA,SAASA,aAAa,QAAQ,2BAA2B;AACzD,OAAO,KAAKC,KAAK,MAAM,OAAO;AAC9B,SAA4BC,uBAAuB,QAAQ,wBAAwB;AAEnF;;;AAGA,OAAM,SAAUC,iBAAiBA,CAACC,MAA0B;EAC1D,MAAMC,iBAAiB,GAAGJ,KAAK,CAACK,MAAM,EAAe;EACrD,MAAM,CAACC,SAAS,EAAEC,OAAO,CAAC,GAAGN,uBAAuB,CAACE,MAAM,CAAC;EAE5D,MAAMK,eAAe,GAAIC,OAAqB,IAAI;IAChD,IAAI,CAACA,OAAO,EAAE;MACZ;;IAEFC,KAAK,EAAE;EACT,CAAC;EAED,SAASA,KAAKA,CAAA;IACZ,IAAI,CAACJ,SAAS,CAACK,OAAO,EAAE;MACtB;;IAEF,MAAMC,MAAM,GAAGN,SAAS,CAACK,OAAO;IAChCC,MAAM,CAACC,cAAc,GAAGD,MAAM,CAACE,IAAI;IACnC,IAAIC,aAAa,GAAGH,MAAM,CAACI,UAAU,CAACP,OAAO,IAC3CA,OAAO,CAACQ,QAAQ,KAAK,CAAC,GAAGC,UAAU,CAACC,aAAa,GAAGD,UAAU,CAACE,WAAW,CAC3E;IACDR,MAAM,CAACC,cAAc,GAAGD,MAAM,CAACE,IAAI;IACnCC,aAAa,aAAbA,aAAa,cAAbA,aAAa,GAAbA,aAAa,GAAKH,MAAM,CAACI,UAAU,EAAE;IACrC,IAAI,CAACD,aAAa,EAAE;MAClB,IAAIM,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,aAAa,EAAE;QAC1C;QACAC,OAAO,CAACC,IAAI,CAAC,oEAAoE,CAAC;;MAEpF;;IAEFV,aAAa,CAACE,QAAQ,GAAG,CAAC;IAC1Bb,iBAAiB,CAACO,OAAO,GAAGI,aAAa;IACzC,IAAIW,WAAW,GAAuB,IAAI;IAC1C,OAAO,CAACA,WAAW,GAAGd,MAAM,CAACc,WAAW,EAAE,KAAKA,WAAW,KAAKX,aAAa,EAAE;MAC5EW,WAAW,CAACT,QAAQ,GAAG,CAAC,CAAC;;EAE7B;EACA,SAASU,IAAIA,CAACD,WAAwB;IACpC,IAAI,CAACtB,iBAAiB,CAACO,OAAO,EAAE;MAC9B;;IAEFP,iBAAiB,CAACO,OAAO,CAACM,QAAQ,GAAG,CAAC,CAAC;IACvCS,WAAW,CAACT,QAAQ,GAAG,CAAC;IACxBS,WAAW,CAACE,KAAK,EAAE;IACnBxB,iBAAiB,CAACO,OAAO,GAAGe,WAAW;EACzC;EAEA,OAAO,CACL;IACEC,IAAI;IACJjB;GACD,EACDX,aAAa,CAACQ,OAAO,EAAEC,eAAe,CAA2B,CACzD;AACZ"}
1
+ {"version":3,"names":["useMergedRefs","React","useHTMLElementWalkerRef","useRovingTabIndex","filter","currentElementRef","useRef","walkerRef","rootRef","rootRefCallback","element","reset","current","walker","currentElement","root","tabbableChild","firstChild","tabIndex","NodeFilter","FILTER_ACCEPT","FILTER_SKIP","process","env","NODE_ENV","console","warn","nextElement","rove","focus"],"sources":["../../src/hooks/useRovingTabIndexes.ts"],"sourcesContent":["import { useMergedRefs } from '@fluentui/react-utilities';\nimport * as React from 'react';\nimport { HTMLElementFilter, useHTMLElementWalkerRef } from './useHTMLElementWalker';\n\n/**\n * https://www.w3.org/WAI/ARIA/apg/practices/keyboard-interface/#kbd_roving_tabindex\n */\nexport function useRovingTabIndex(filter?: HTMLElementFilter) {\n const currentElementRef = React.useRef<HTMLElement>();\n const [walkerRef, rootRef] = useHTMLElementWalkerRef(filter);\n\n const rootRefCallback = (element?: HTMLElement) => {\n if (!element) {\n return;\n }\n reset();\n };\n\n function reset() {\n if (!walkerRef.current) {\n return;\n }\n const walker = walkerRef.current;\n walker.currentElement = walker.root;\n let tabbableChild = walker.firstChild(element =>\n element.tabIndex === 0 ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP,\n );\n walker.currentElement = walker.root;\n tabbableChild ??= walker.firstChild();\n if (!tabbableChild) {\n if (process.env.NODE_ENV === 'development') {\n // eslint-disable-next-line no-console\n console.warn('useRovingTabIndexes: internal error, no tabbable element was found');\n }\n return;\n }\n tabbableChild.tabIndex = 0;\n currentElementRef.current = tabbableChild;\n let nextElement: HTMLElement | null = null;\n while ((nextElement = walker.nextElement()) && nextElement !== tabbableChild) {\n nextElement.tabIndex = -1;\n }\n }\n function rove(nextElement: HTMLElement) {\n if (!currentElementRef.current) {\n return;\n }\n currentElementRef.current.tabIndex = -1;\n nextElement.tabIndex = 0;\n nextElement.focus();\n currentElementRef.current = nextElement;\n }\n\n return [\n {\n rove,\n reset,\n },\n useMergedRefs(rootRef, rootRefCallback) as React.Ref<HTMLElement>,\n ] as const;\n}\n"],"mappings":"AAAA,SAASA,aAAa,QAAQ;AAC9B,YAAYC,KAAA,MAAW;AACvB,SAA4BC,uBAAuB,QAAQ;AAE3D;;;AAGA,OAAO,SAASC,kBAAkBC,MAA0B,EAAE;EAC5D,MAAMC,iBAAA,GAAoBJ,KAAA,CAAMK,MAAM;EACtC,MAAM,CAACC,SAAA,EAAWC,OAAA,CAAQ,GAAGN,uBAAA,CAAwBE,MAAA;EAErD,MAAMK,eAAA,GAAmBC,OAAA,IAA0B;IACjD,IAAI,CAACA,OAAA,EAAS;MACZ;IACF;IACAC,KAAA;EACF;EAEA,SAASA,MAAA,EAAQ;IACf,IAAI,CAACJ,SAAA,CAAUK,OAAO,EAAE;MACtB;IACF;IACA,MAAMC,MAAA,GAASN,SAAA,CAAUK,OAAO;IAChCC,MAAA,CAAOC,cAAc,GAAGD,MAAA,CAAOE,IAAI;IACnC,IAAIC,aAAA,GAAgBH,MAAA,CAAOI,UAAU,CAACP,OAAA,IACpCA,OAAA,CAAQQ,QAAQ,KAAK,IAAIC,UAAA,CAAWC,aAAa,GAAGD,UAAA,CAAWE,WAAW;IAE5ER,MAAA,CAAOC,cAAc,GAAGD,MAAA,CAAOE,IAAI;IACnCC,aAAA,aAAAA,aAAA,cAAAA,aAAA,GAAAA,aAAA,GAAkBH,MAAA,CAAOI,UAAU,EAAE;IACrC,IAAI,CAACD,aAAA,EAAe;MAClB,IAAIM,OAAA,CAAQC,GAAG,CAACC,QAAQ,KAAK,eAAe;QAC1C;QACAC,OAAA,CAAQC,IAAI,CAAC;MACf;MACA;IACF;IACAV,aAAA,CAAcE,QAAQ,GAAG;IACzBb,iBAAA,CAAkBO,OAAO,GAAGI,aAAA;IAC5B,IAAIW,WAAA,GAAkC,IAAI;IAC1C,OAAO,CAACA,WAAA,GAAcd,MAAA,CAAOc,WAAW,EAAC,KAAMA,WAAA,KAAgBX,aAAA,EAAe;MAC5EW,WAAA,CAAYT,QAAQ,GAAG,CAAC;IAC1B;EACF;EACA,SAASU,KAAKD,WAAwB,EAAE;IACtC,IAAI,CAACtB,iBAAA,CAAkBO,OAAO,EAAE;MAC9B;IACF;IACAP,iBAAA,CAAkBO,OAAO,CAACM,QAAQ,GAAG,CAAC;IACtCS,WAAA,CAAYT,QAAQ,GAAG;IACvBS,WAAA,CAAYE,KAAK;IACjBxB,iBAAA,CAAkBO,OAAO,GAAGe,WAAA;EAC9B;EAEA,OAAO,CACL;IACEC,IAAA;IACAjB;EACF,GACAX,aAAA,CAAcQ,OAAA,EAASC,eAAA,EACxB;AACH"}
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["Tree","treeClassNames","renderTree_unstable","useTreeStyles_unstable","useTree_unstable","useTreeContextValues_unstable","TreeProvider","useTreeContext_unstable","useTreeItemContext_unstable","TreeItemProvider","treeItemLevelToken","TreeItem","treeItemClassNames","renderTreeItem_unstable","useTreeItemStyles_unstable","useTreeItem_unstable","TreeItemLayout","treeItemLayoutClassNames","renderTreeItemLayout_unstable","useTreeItemLayoutStyles_unstable","useTreeItemLayout_unstable","TreeItemPersonaLayout","treeItemPersonaLayoutClassNames","renderTreeItemPersonaLayout_unstable","useTreeItemPersonaLayoutStyles_unstable","useTreeItemPersonaLayout_unstable","useFlatTree_unstable","flattenTree_unstable"],"sources":["../src/packages/react-components/react-tree/src/index.ts"],"sourcesContent":["export {\n Tree,\n treeClassNames,\n renderTree_unstable,\n useTreeStyles_unstable,\n useTree_unstable,\n useTreeContextValues_unstable,\n} from './Tree';\nexport type {\n TreeProps,\n TreeState,\n TreeSlots,\n TreeOpenChangeData,\n TreeOpenChangeEvent,\n TreeNavigationEvent_unstable,\n TreeNavigationData_unstable,\n TreeItemId,\n} from './Tree';\n\nexport { TreeProvider, useTreeContext_unstable, useTreeItemContext_unstable, TreeItemProvider } from './contexts';\nexport type { TreeContextValue } from './contexts';\n\nexport { treeItemLevelToken } from './utils/tokens';\n\nexport {\n TreeItem,\n treeItemClassNames,\n renderTreeItem_unstable,\n useTreeItemStyles_unstable,\n useTreeItem_unstable,\n} from './TreeItem';\nexport type { TreeItemProps, TreeItemState, TreeItemSlots } from './TreeItem';\n\nexport {\n TreeItemLayout,\n treeItemLayoutClassNames,\n renderTreeItemLayout_unstable,\n useTreeItemLayoutStyles_unstable,\n useTreeItemLayout_unstable,\n} from './TreeItemLayout';\nexport type { TreeItemLayoutProps, TreeItemLayoutSlots, TreeItemLayoutState } from './TreeItemLayout';\n\nexport {\n TreeItemPersonaLayout,\n treeItemPersonaLayoutClassNames,\n renderTreeItemPersonaLayout_unstable,\n useTreeItemPersonaLayoutStyles_unstable,\n useTreeItemPersonaLayout_unstable,\n} from './TreeItemPersonaLayout';\nexport type {\n TreeItemPersonaLayoutProps,\n TreeItemPersonaLayoutSlots,\n TreeItemPersonaLayoutState,\n} from './TreeItemPersonaLayout';\n\nexport { useFlatTree_unstable } from './hooks/index';\nexport type { FlatTreeItem, FlatTreeItemProps, FlatTreeProps, FlatTree } from './hooks/index';\n\nexport { flattenTree_unstable } from './utils/flattenTree';\nexport type { NestedTreeItem } from './utils/flattenTree';\n"],"mappings":"AAAA,SACEA,IAAI,EACJC,cAAc,EACdC,mBAAmB,EACnBC,sBAAsB,EACtBC,gBAAgB,EAChBC,6BAA6B,QACxB,QAAQ;AAYf,SAASC,YAAY,EAAEC,uBAAuB,EAAEC,2BAA2B,EAAEC,gBAAgB,QAAQ,YAAY;AAGjH,SAASC,kBAAkB,QAAQ,gBAAgB;AAEnD,SACEC,QAAQ,EACRC,kBAAkB,EAClBC,uBAAuB,EACvBC,0BAA0B,EAC1BC,oBAAoB,QACf,YAAY;AAGnB,SACEC,cAAc,EACdC,wBAAwB,EACxBC,6BAA6B,EAC7BC,gCAAgC,EAChCC,0BAA0B,QACrB,kBAAkB;AAGzB,SACEC,qBAAqB,EACrBC,+BAA+B,EAC/BC,oCAAoC,EACpCC,uCAAuC,EACvCC,iCAAiC,QAC5B,yBAAyB;AAOhC,SAASC,oBAAoB,QAAQ,eAAe;AAGpD,SAASC,oBAAoB,QAAQ,qBAAqB"}
1
+ {"version":3,"names":["Tree","treeClassNames","renderTree_unstable","useTreeStyles_unstable","useTree_unstable","useTreeContextValues_unstable","TreeProvider","useTreeContext_unstable","useTreeItemContext_unstable","TreeItemProvider","treeItemLevelToken","TreeItem","treeItemClassNames","renderTreeItem_unstable","useTreeItemStyles_unstable","useTreeItem_unstable","TreeItemLayout","treeItemLayoutClassNames","renderTreeItemLayout_unstable","useTreeItemLayoutStyles_unstable","useTreeItemLayout_unstable","TreeItemPersonaLayout","treeItemPersonaLayoutClassNames","renderTreeItemPersonaLayout_unstable","useTreeItemPersonaLayoutStyles_unstable","useTreeItemPersonaLayout_unstable","useFlatTree_unstable","flattenTree_unstable"],"sources":["../src/index.ts"],"sourcesContent":["export {\n Tree,\n treeClassNames,\n renderTree_unstable,\n useTreeStyles_unstable,\n useTree_unstable,\n useTreeContextValues_unstable,\n} from './Tree';\nexport type {\n TreeProps,\n TreeState,\n TreeSlots,\n TreeOpenChangeData,\n TreeOpenChangeEvent,\n TreeNavigationEvent_unstable,\n TreeNavigationData_unstable,\n TreeItemId,\n} from './Tree';\n\nexport { TreeProvider, useTreeContext_unstable, useTreeItemContext_unstable, TreeItemProvider } from './contexts';\nexport type { TreeContextValue } from './contexts';\n\nexport { treeItemLevelToken } from './utils/tokens';\n\nexport {\n TreeItem,\n treeItemClassNames,\n renderTreeItem_unstable,\n useTreeItemStyles_unstable,\n useTreeItem_unstable,\n} from './TreeItem';\nexport type { TreeItemProps, TreeItemState, TreeItemSlots } from './TreeItem';\n\nexport {\n TreeItemLayout,\n treeItemLayoutClassNames,\n renderTreeItemLayout_unstable,\n useTreeItemLayoutStyles_unstable,\n useTreeItemLayout_unstable,\n} from './TreeItemLayout';\nexport type { TreeItemLayoutProps, TreeItemLayoutSlots, TreeItemLayoutState } from './TreeItemLayout';\n\nexport {\n TreeItemPersonaLayout,\n treeItemPersonaLayoutClassNames,\n renderTreeItemPersonaLayout_unstable,\n useTreeItemPersonaLayoutStyles_unstable,\n useTreeItemPersonaLayout_unstable,\n} from './TreeItemPersonaLayout';\nexport type {\n TreeItemPersonaLayoutProps,\n TreeItemPersonaLayoutSlots,\n TreeItemPersonaLayoutState,\n} from './TreeItemPersonaLayout';\n\nexport { useFlatTree_unstable } from './hooks/index';\nexport type { FlatTreeItem, FlatTreeItemProps, FlatTreeProps, FlatTree } from './hooks/index';\n\nexport { flattenTree_unstable } from './utils/flattenTree';\nexport type { NestedTreeItem } from './utils/flattenTree';\n"],"mappings":"AAAA,SACEA,IAAI,EACJC,cAAc,EACdC,mBAAmB,EACnBC,sBAAsB,EACtBC,gBAAgB,EAChBC,6BAA6B,QACxB;AAYP,SAASC,YAAY,EAAEC,uBAAuB,EAAEC,2BAA2B,EAAEC,gBAAgB,QAAQ;AAGrG,SAASC,kBAAkB,QAAQ;AAEnC,SACEC,QAAQ,EACRC,kBAAkB,EAClBC,uBAAuB,EACvBC,0BAA0B,EAC1BC,oBAAoB,QACf;AAGP,SACEC,cAAc,EACdC,wBAAwB,EACxBC,6BAA6B,EAC7BC,gCAAgC,EAChCC,0BAA0B,QACrB;AAGP,SACEC,qBAAqB,EACrBC,+BAA+B,EAC/BC,oCAAoC,EACpCC,uCAAuC,EACvCC,iCAAiC,QAC5B;AAOP,SAASC,oBAAoB,QAAQ;AAGrC,SAASC,oBAAoB,QAAQ"}
@@ -1 +1 @@
1
- {"version":3,"names":["emptyImmutableSet","createImmutableSet","iterable","internalSet","Set","dangerouslyCreateImmutableSet","size","add","value","nextSet","clear","delete","has","Symbol","iterator"],"sources":["../src/packages/react-components/react-tree/src/utils/ImmutableSet.ts"],"sourcesContent":["export interface ImmutableSet<Value> {\n /**\n * The number of (unique) elements in a ImmutableSet.\n */\n readonly size: number;\n /**\n * Creates a new ImmutableSet containing all previous element plus the one provided as argument\n * @param value - new value to be included in the new ImmutableSet instance\n */\n add(value: Value): ImmutableSet<Value>;\n /**\n * Returns a reference to ImmutableSet.emptySet\n */\n clear(): ImmutableSet<Value>;\n /**\n * Creates a new ImmutableSet with the original items and removes a specified value from the new ImmutableSet.\n */\n delete(value: Value): ImmutableSet<Value>;\n /**\n * @returns a boolean indicating whether an element with the specified value exists in the ImmutableSet or not.\n */\n has(value: Value): boolean;\n /** Iterates over values in the ImmutableSet. */\n [Symbol.iterator](): IterableIterator<Value>;\n}\n\nexport const emptyImmutableSet = createImmutableSet<never>();\n\n/**\n * properly creates an ImmutableSet instance from an iterable\n */\nexport function createImmutableSet<Value>(iterable?: Iterable<Value>): ImmutableSet<Value> {\n const internalSet = new Set(iterable);\n return dangerouslyCreateImmutableSet(internalSet);\n}\n/**\n * Avoid using *dangerouslyCreateImmutableSet*, since this method will expose internally used set, use createImmutableSet instead,\n * @param internalSet - a set that is used internally to store values.\n */\nexport function dangerouslyCreateImmutableSet<Value>(internalSet: Set<Value>): ImmutableSet<Value> {\n return {\n size: internalSet.size,\n add(value) {\n const nextSet = new Set(internalSet);\n nextSet.add(value);\n return dangerouslyCreateImmutableSet(nextSet);\n },\n clear() {\n return emptyImmutableSet;\n },\n delete(value) {\n const nextSet = new Set(internalSet);\n nextSet.delete(value);\n return dangerouslyCreateImmutableSet(nextSet);\n },\n has(value) {\n return internalSet.has(value);\n },\n [Symbol.iterator]() {\n return internalSet[Symbol.iterator]();\n },\n };\n}\n"],"mappings":"AA0BA,OAAO,MAAMA,iBAAiB,gBAAGC,kBAAkB,EAAS;AAE5D;;;AAGA,OAAM,SAAUA,kBAAkBA,CAAQC,QAA0B;EAClE,MAAMC,WAAW,GAAG,IAAIC,GAAG,CAACF,QAAQ,CAAC;EACrC,OAAOG,6BAA6B,CAACF,WAAW,CAAC;AACnD;AACA;;;;AAIA,OAAM,SAAUE,6BAA6BA,CAAQF,WAAuB;EAC1E,OAAO;IACLG,IAAI,EAAEH,WAAW,CAACG,IAAI;IACtBC,GAAGA,CAACC,KAAK;MACP,MAAMC,OAAO,GAAG,IAAIL,GAAG,CAACD,WAAW,CAAC;MACpCM,OAAO,CAACF,GAAG,CAACC,KAAK,CAAC;MAClB,OAAOH,6BAA6B,CAACI,OAAO,CAAC;IAC/C,CAAC;IACDC,KAAKA,CAAA;MACH,OAAOV,iBAAiB;IAC1B,CAAC;IACDW,MAAMA,CAACH,KAAK;MACV,MAAMC,OAAO,GAAG,IAAIL,GAAG,CAACD,WAAW,CAAC;MACpCM,OAAO,CAACE,MAAM,CAACH,KAAK,CAAC;MACrB,OAAOH,6BAA6B,CAACI,OAAO,CAAC;IAC/C,CAAC;IACDG,GAAGA,CAACJ,KAAK;MACP,OAAOL,WAAW,CAACS,GAAG,CAACJ,KAAK,CAAC;IAC/B,CAAC;IACD,CAACK,MAAM,CAACC,QAAQ,IAAC;MACf,OAAOX,WAAW,CAACU,MAAM,CAACC,QAAQ,CAAC,EAAE;IACvC;GACD;AACH"}
1
+ {"version":3,"names":["emptyImmutableSet","createImmutableSet","iterable","internalSet","Set","dangerouslyCreateImmutableSet","size","add","value","nextSet","clear","delete","has","Symbol","iterator"],"sources":["../../src/utils/ImmutableSet.ts"],"sourcesContent":["export interface ImmutableSet<Value> {\n /**\n * The number of (unique) elements in a ImmutableSet.\n */\n readonly size: number;\n /**\n * Creates a new ImmutableSet containing all previous element plus the one provided as argument\n * @param value - new value to be included in the new ImmutableSet instance\n */\n add(value: Value): ImmutableSet<Value>;\n /**\n * Returns a reference to ImmutableSet.emptySet\n */\n clear(): ImmutableSet<Value>;\n /**\n * Creates a new ImmutableSet with the original items and removes a specified value from the new ImmutableSet.\n */\n delete(value: Value): ImmutableSet<Value>;\n /**\n * @returns a boolean indicating whether an element with the specified value exists in the ImmutableSet or not.\n */\n has(value: Value): boolean;\n /** Iterates over values in the ImmutableSet. */\n [Symbol.iterator](): IterableIterator<Value>;\n}\n\nexport const emptyImmutableSet = createImmutableSet<never>();\n\n/**\n * properly creates an ImmutableSet instance from an iterable\n */\nexport function createImmutableSet<Value>(iterable?: Iterable<Value>): ImmutableSet<Value> {\n const internalSet = new Set(iterable);\n return dangerouslyCreateImmutableSet(internalSet);\n}\n/**\n * Avoid using *dangerouslyCreateImmutableSet*, since this method will expose internally used set, use createImmutableSet instead,\n * @param internalSet - a set that is used internally to store values.\n */\nexport function dangerouslyCreateImmutableSet<Value>(internalSet: Set<Value>): ImmutableSet<Value> {\n return {\n size: internalSet.size,\n add(value) {\n const nextSet = new Set(internalSet);\n nextSet.add(value);\n return dangerouslyCreateImmutableSet(nextSet);\n },\n clear() {\n return emptyImmutableSet;\n },\n delete(value) {\n const nextSet = new Set(internalSet);\n nextSet.delete(value);\n return dangerouslyCreateImmutableSet(nextSet);\n },\n has(value) {\n return internalSet.has(value);\n },\n [Symbol.iterator]() {\n return internalSet[Symbol.iterator]();\n },\n };\n}\n"],"mappings":"AA0BA,OAAO,MAAMA,iBAAA,gBAAoBC,kBAAA;AAEjC;;;AAGA,OAAO,SAASA,mBAA0BC,QAA0B,EAAuB;EACzF,MAAMC,WAAA,GAAc,IAAIC,GAAA,CAAIF,QAAA;EAC5B,OAAOG,6BAAA,CAA8BF,WAAA;AACvC;AACA;;;;AAIA,OAAO,SAASE,8BAAqCF,WAAuB,EAAuB;EACjG,OAAO;IACLG,IAAA,EAAMH,WAAA,CAAYG,IAAI;IACtBC,IAAIC,KAAK,EAAE;MACT,MAAMC,OAAA,GAAU,IAAIL,GAAA,CAAID,WAAA;MACxBM,OAAA,CAAQF,GAAG,CAACC,KAAA;MACZ,OAAOH,6BAAA,CAA8BI,OAAA;IACvC;IACAC,MAAA,EAAQ;MACN,OAAOV,iBAAA;IACT;IACAW,OAAOH,KAAK,EAAE;MACZ,MAAMC,OAAA,GAAU,IAAIL,GAAA,CAAID,WAAA;MACxBM,OAAA,CAAQE,MAAM,CAACH,KAAA;MACf,OAAOH,6BAAA,CAA8BI,OAAA;IACvC;IACAG,IAAIJ,KAAK,EAAE;MACT,OAAOL,WAAA,CAAYS,GAAG,CAACJ,KAAA;IACzB;IACA,CAACK,MAAA,CAAOC,QAAQ,IAAI;MAClB,OAAOX,WAAW,CAACU,MAAA,CAAOC,QAAQ,CAAC;IACrC;EACF;AACF"}
@@ -1,3 +1,4 @@
1
+ import * as React from 'react';
1
2
  export function assertIsDefinedRef(refObject, msg = `assertIsDefinedRef: reference not properly defined ${refObject}`) {
2
3
  // eslint-disable-next-line eqeqeq
3
4
  if (refObject.current == undefined && process.env.NODE_ENV === 'development') {
@@ -1 +1 @@
1
- {"version":3,"names":["assertIsDefinedRef","refObject","msg","current","undefined","process","env","NODE_ENV","TypeError"],"sources":["../src/packages/react-components/react-tree/src/utils/assert.ts"],"sourcesContent":["import * as React from 'react';\n\nexport function assertIsDefinedRef<V>(\n refObject: React.RefObject<V | null | undefined>,\n msg = `assertIsDefinedRef: reference not properly defined ${refObject}`,\n): asserts refObject is React.MutableRefObject<V> {\n // eslint-disable-next-line eqeqeq\n if (refObject.current == undefined && process.env.NODE_ENV === 'development') {\n throw new TypeError(msg);\n }\n}\n"],"mappings":"AAEA,OAAM,SAAUA,kBAAkBA,CAChCC,SAAgD,EAChDC,GAAG,GAAG,sDAAsDD,SAAS,EAAE;EAEvE;EACA,IAAIA,SAAS,CAACE,OAAO,IAAIC,SAAS,IAAIC,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,aAAa,EAAE;IAC5E,MAAM,IAAIC,SAAS,CAACN,GAAG,CAAC;;AAE5B"}
1
+ {"version":3,"names":["React","assertIsDefinedRef","refObject","msg","current","undefined","process","env","NODE_ENV","TypeError"],"sources":["../../src/utils/assert.ts"],"sourcesContent":["import * as React from 'react';\n\nexport function assertIsDefinedRef<V>(\n refObject: React.RefObject<V | null | undefined>,\n msg = `assertIsDefinedRef: reference not properly defined ${refObject}`,\n): asserts refObject is React.MutableRefObject<V> {\n // eslint-disable-next-line eqeqeq\n if (refObject.current == undefined && process.env.NODE_ENV === 'development') {\n throw new TypeError(msg);\n }\n}\n"],"mappings":"AAAA,YAAYA,KAAA,MAAW;AAEvB,OAAO,SAASC,mBACdC,SAAgD,EAChDC,GAAA,GAAO,sDAAqDD,SAAU,EAAC,EACvB;EAChD;EACA,IAAIA,SAAA,CAAUE,OAAO,IAAIC,SAAA,IAAaC,OAAA,CAAQC,GAAG,CAACC,QAAQ,KAAK,eAAe;IAC5E,MAAM,IAAIC,SAAA,CAAUN,GAAA;EACtB;AACF"}
@@ -1,9 +1,7 @@
1
1
  /**
2
2
  * creates a list of flat tree items
3
3
  * and provides a map to access each item by id
4
- */
5
- export function createUnfilteredFlatTree(flatTreeItemProps) {
6
- var _a;
4
+ */export function createUnfilteredFlatTree(flatTreeItemProps) {
7
5
  const root = createRootFlatTreeItem();
8
6
  const itemsPerId = new Map([[root.id, root]]);
9
7
  const items = [];
@@ -22,7 +20,8 @@ export function createUnfilteredFlatTree(flatTreeItemProps) {
22
20
  break;
23
21
  }
24
22
  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;
23
+ var _currentParent_level;
24
+ const currentLevel = ((_currentParent_level = currentParent.level) !== null && _currentParent_level !== void 0 ? _currentParent_level : 0) + 1;
26
25
  const currentChildrenSize = ++currentParent.childrenSize;
27
26
  const flatTreeItem = {
28
27
  id: treeItemProps.id,
@@ -1 +1 @@
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
+ {"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","_currentParent_level","currentLevel","level","currentChildrenSize","childrenSize","flatTreeItem","getTreeItemProps","leaf","set","push"],"sources":["../../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;;;GAIA,OAAO,SAASA,yBAAyBC,iBAAsC,EAAsB;EACnG,MAAMC,IAAA,GAAOC,sBAAA;EACb,MAAMC,UAAA,GAAa,IAAIC,GAAA,CAA0B,CAAC,CAACH,IAAA,CAAKI,EAAE,EAAEJ,IAAA,CAAK,CAAC;EAClE,MAAMK,KAAA,GAAwB,EAAE;EAEhC,KAAK,IAAIC,KAAA,GAAQ,GAAGA,KAAA,GAAQP,iBAAA,CAAkBQ,MAAM,EAAED,KAAA,IAAS;IAC7D,MAAM;MAAEE,QAAA,GAAWC,oBAAA;MAAsB,GAAGC;IAAA,CAAe,GAAGX,iBAAiB,CAACO,KAAA,CAAM;IAEtF,MAAMK,aAAA,GAAgBZ,iBAAiB,CAACO,KAAA,GAAQ,EAAE;IAClD,MAAMM,aAAA,GAAgBV,UAAA,CAAWW,GAAG,CAACL,QAAA;IACrC,IAAI,CAACI,aAAA,EAAe;MAClB,IAAIE,OAAA,CAAQC,GAAG,CAACC,QAAQ,KAAK,eAAe;QAC1C;QACAC,OAAA,CAAQC,KAAK,CACV,qBAAoBnB,iBAAiB,CAACO,KAAA,CAAM,CAACF,EAAG,mEAAkE;MAEvH;MACA;IACF;IACA,MAAMe,MAAA,GAAS,CAAAR,aAAA,aAAAA,aAAA,uBAAAA,aAAA,CAAeH,QAAQ,MAAKE,aAAA,CAAcN,EAAE;QACrCgB,oBAAA;IAAtB,MAAMC,YAAA,GAAe,CAAC,CAAAD,oBAAA,GAAAR,aAAA,CAAcU,KAAK,cAAnBF,oBAAA,cAAAA,oBAAA,GAAuB,CAAC,IAAI;IAClD,MAAMG,mBAAA,GAAsB,EAAEX,aAAA,CAAcY,YAAY;IAExD,MAAMC,YAAA,GAA6B;MACjCrB,EAAA,EAAIM,aAAA,CAAcN,EAAE;MACpBsB,gBAAA,EAAkBA,CAAA,MAAO;QACvB,GAAGhB,aAAa;QAChB,cAAcW,YAAA;QACd,iBAAiBE,mBAAA;QACjB,gBAAgBX,aAAA,CAAcY,YAAY;QAC1CG,IAAA,EAAMR;MACR;MACAG,KAAA,EAAOD,YAAA;MACPb,QAAA;MACAgB,YAAA,EAAc;MACdlB,KAAA,EAAO,CAAC;IACV;IACAJ,UAAA,CAAW0B,GAAG,CAACH,YAAA,CAAarB,EAAE,EAAEqB,YAAA;IAChCpB,KAAA,CAAMwB,IAAI,CAACJ,YAAA;EACb;EAEA,OAAO;IAAEpB,KAAA;IAAOH;EAAW;AAC7B;AAEA,OAAO,MAAMO,oBAAA,GAAuB;AAEpC,SAASR,uBAAA,EAAuC;EAC9C,OAAO;IACLG,EAAA,EAAIK,oBAAA;IACJiB,gBAAA,EAAkBA,CAAA,KAAM;MACtB,IAAIZ,OAAA,CAAQC,GAAG,CAACC,QAAQ,KAAK,eAAe;QAC1C;QACAC,OAAA,CAAQC,KAAK,CAAC;MAChB;MACA,OAAO;QAAEd,EAAA,EAAIK,oBAAA;QAAsB,gBAAgB,CAAC;QAAG,cAAc,CAAC;QAAG,iBAAiB,CAAC;QAAGkB,IAAA,EAAM;MAAK;IAC3G;IACAH,YAAA,EAAc;IACd,IAAIlB,MAAA,EAAQ;MACV,IAAIQ,OAAA,CAAQC,GAAG,CAACC,QAAQ,KAAK,eAAe;QAC1C;QACAC,OAAA,CAAQC,KAAK,CAAC;MAChB;MACA,OAAO,CAAC;IACV;IACAI,KAAA,EAAO;EACT;AACF"}
@@ -6,34 +6,37 @@ import { treeDataTypes } from './tokens';
6
6
  export function createVisibleFlatTree(unfilteredFlatTree, openItems) {
7
7
  let visibleItems = null;
8
8
  const getNextNavigableItem = data => {
9
- var _a, _b, _c, _d;
10
9
  const item = unfilteredFlatTree.itemsPerId.get(data.target.id);
11
10
  if (!item || !visibleItems) {
12
11
  return null;
13
12
  }
14
13
  switch (data.type) {
15
14
  case treeDataTypes.arrowLeft:
16
- return item.parentId ? (_a = unfilteredFlatTree.itemsPerId.get(item.parentId)) !== null && _a !== void 0 ? _a : null : null;
15
+ var _unfilteredFlatTree_itemsPerId_get;
16
+ return item.parentId ? (_unfilteredFlatTree_itemsPerId_get = unfilteredFlatTree.itemsPerId.get(item.parentId)) !== null && _unfilteredFlatTree_itemsPerId_get !== void 0 ? _unfilteredFlatTree_itemsPerId_get : null : null;
17
17
  case treeDataTypes.arrowRight:
18
- return (_b = visibleItems[item.index + 1]) !== null && _b !== void 0 ? _b : null;
18
+ var _visibleItems_;
19
+ return (_visibleItems_ = visibleItems[item.index + 1]) !== null && _visibleItems_ !== void 0 ? _visibleItems_ : null;
19
20
  case treeDataTypes.end:
20
21
  return visibleItems[visibleItems.length - 1];
21
22
  case treeDataTypes.home:
22
23
  return visibleItems[0];
23
24
  case treeDataTypes.arrowDown:
24
- return (_c = visibleItems[item.index + 1]) !== null && _c !== void 0 ? _c : null;
25
+ var _visibleItems_1;
26
+ return (_visibleItems_1 = visibleItems[item.index + 1]) !== null && _visibleItems_1 !== void 0 ? _visibleItems_1 : null;
25
27
  case treeDataTypes.arrowUp:
26
- return (_d = visibleItems[item.index - 1]) !== null && _d !== void 0 ? _d : null;
28
+ var _visibleItems_2;
29
+ return (_visibleItems_2 = visibleItems[item.index - 1]) !== null && _visibleItems_2 !== void 0 ? _visibleItems_2 : null;
27
30
  default:
28
31
  return null;
29
32
  }
30
33
  };
31
34
  function* makeVisibleItemsGenerator() {
32
- var _a;
33
35
  visibleItems = [];
34
36
  for (let index = 0, visibleIndex = 0; index < unfilteredFlatTree.items.length; index++) {
35
37
  const item = unfilteredFlatTree.items[index];
36
- const parent = unfilteredFlatTree.itemsPerId.get((_a = item.parentId) !== null && _a !== void 0 ? _a : flatTreeRootParentId);
38
+ var _item_parentId;
39
+ const parent = unfilteredFlatTree.itemsPerId.get((_item_parentId = item.parentId) !== null && _item_parentId !== void 0 ? _item_parentId : flatTreeRootParentId);
37
40
  if (!parent) {
38
41
  break;
39
42
  }
@@ -1 +1 @@
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":"AAEA,SAASA,oBAAoB,QAA4B,4BAA4B;AAErF,SAASC,aAAa,QAAQ,UAAU;AAExC;;;AAGA,OAAM,SAAUC,qBAAqBA,CACnCC,kBAAsC,EACtCC,SAAmC;EAEnC,IAAIC,YAAY,GAA0B,IAAI;EAE9C,MAAMC,oBAAoB,GAAIC,IAAiC,IAAyB;;IACtF,MAAMC,IAAI,GAAGL,kBAAkB,CAACM,UAAU,CAACC,GAAG,CAACH,IAAI,CAACI,MAAM,CAACC,EAAE,CAAC;IAC9D,IAAI,CAACJ,IAAI,IAAI,CAACH,YAAY,EAAE;MAC1B,OAAO,IAAI;;IAEb,QAAQE,IAAI,CAACM,IAAI;MACf,KAAKZ,aAAa,CAACa,SAAS;QAC1B,OAAON,IAAI,CAACO,QAAQ,GAAG,CAAAC,EAAA,GAAAb,kBAAkB,CAACM,UAAU,CAACC,GAAG,CAACF,IAAI,CAACO,QAAQ,CAAC,cAAAC,EAAA,cAAAA,EAAA,GAAI,IAAI,GAAG,IAAI;MACxF,KAAKf,aAAa,CAACgB,UAAU;QAC3B,OAAO,CAAAC,EAAA,GAAAb,YAAY,CAACG,IAAI,CAACW,KAAK,GAAG,CAAC,CAAC,cAAAD,EAAA,cAAAA,EAAA,GAAI,IAAI;MAC7C,KAAKjB,aAAa,CAACmB,GAAG;QACpB,OAAOf,YAAY,CAACA,YAAY,CAACgB,MAAM,GAAG,CAAC,CAAC;MAC9C,KAAKpB,aAAa,CAACqB,IAAI;QACrB,OAAOjB,YAAY,CAAC,CAAC,CAAC;MACxB,KAAKJ,aAAa,CAACsB,SAAS;QAC1B,OAAO,CAAAC,EAAA,GAAAnB,YAAY,CAACG,IAAI,CAACW,KAAK,GAAG,CAAC,CAAC,cAAAK,EAAA,cAAAA,EAAA,GAAI,IAAI;MAC7C,KAAKvB,aAAa,CAACwB,OAAO;QACxB,OAAO,CAAAC,EAAA,GAAArB,YAAY,CAACG,IAAI,CAACW,KAAK,GAAG,CAAC,CAAC,cAAAO,EAAA,cAAAA,EAAA,GAAI,IAAI;MAC7C;QACE,OAAO,IAAI;IAAC;EAElB,CAAC;EAED,UAAUC,yBAAyBA,CAAA;;IACjCtB,YAAY,GAAG,EAAE;IACjB,KAAK,IAAIc,KAAK,GAAG,CAAC,EAAES,YAAY,GAAG,CAAC,EAAET,KAAK,GAAGhB,kBAAkB,CAAC0B,KAAK,CAACR,MAAM,EAAEF,KAAK,EAAE,EAAE;MACtF,MAAMX,IAAI,GAAGL,kBAAkB,CAAC0B,KAAK,CAACV,KAAK,CAAC;MAC5C,MAAMW,MAAM,GAAG3B,kBAAkB,CAACM,UAAU,CAACC,GAAG,CAAC,CAAAM,EAAA,GAAAR,IAAI,CAACO,QAAQ,cAAAC,EAAA,cAAAA,EAAA,GAAIhB,oBAAoB,CAAC;MACvF,IAAI,CAAC8B,MAAM,EAAE;QACX;;MAEF,IAAIC,qBAAqB,CAACvB,IAAI,EAAE;QAAEJ,SAAS;QAAED;MAAkB,CAAE,CAAC,EAAE;QAClEK,IAAI,CAACW,KAAK,GAAGS,YAAY,EAAE;QAC3BvB,YAAY,CAAC2B,IAAI,CAAC;UAAE,GAAGxB;QAAI,CAAE,CAAC;QAC9B,MAAMA,IAAI;OACX,MAAM;QACLW,KAAK,IAAIW,MAAM,CAACG,YAAY,GAAG,CAAC,GAAGzB,IAAI,CAACyB,YAAY;;;EAG1D;EAEA,OAAO;IACL3B,oBAAoB;IACpBuB,KAAK,EAAEA,CAAA,KAAK;MACV,OAAOxB,YAAY,IAAIsB,yBAAyB,EAAE;IACpD;GACD;AACH;AAEA,SAASI,qBAAqBA,CAC5BvB,IAAkB,EAClB;EACEJ,SAAS;EACTD,kBAAkB,EAAE+B;AAAQ,CAI7B;EAED,IAAI1B,IAAI,CAAC2B,KAAK,KAAK,CAAC,EAAE;IACpB,OAAO,IAAI;;EAEb,OAAO3B,IAAI,CAACO,QAAQ,IAAIP,IAAI,CAACO,QAAQ,KAAKf,oBAAoB,EAAE;IAC9D,IAAI,CAACI,SAAS,CAACgC,GAAG,CAAC5B,IAAI,CAACO,QAAQ,CAAC,EAAE;MACjC,OAAO,KAAK;;IAEd,MAAMe,MAAM,GAAGI,QAAQ,CAACzB,UAAU,CAACC,GAAG,CAACF,IAAI,CAACO,QAAQ,CAAC;IACrD,IAAI,CAACe,MAAM,EAAE;MACX,OAAO,KAAK;;IAEdtB,IAAI,GAAGsB,MAAM;;EAGf,OAAO,IAAI;AACb"}
1
+ {"version":3,"names":["flatTreeRootParentId","treeDataTypes","createVisibleFlatTree","unfilteredFlatTree","openItems","visibleItems","getNextNavigableItem","data","item","itemsPerId","get","target","id","type","arrowLeft","_unfilteredFlatTree_itemsPerId_get","parentId","arrowRight","_visibleItems_","index","end","length","home","arrowDown","_visibleItems_1","arrowUp","_visibleItems_2","makeVisibleItemsGenerator","visibleIndex","items","_item_parentId","parent","isFlatTreeItemVisible","push","childrenSize","flatTree","level","has"],"sources":["../../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,19 +1,19 @@
1
1
  let count = 1;
2
2
  // eslint-disable-next-line @typescript-eslint/naming-convention
3
3
  function flattenTreeRecursive_unstable(items, parent, level = 1) {
4
- var _a;
5
4
  const flatTreeItems = [];
6
5
  for (let index = 0; index < items.length; index++) {
7
6
  const {
8
7
  subtree,
9
8
  ...item
10
9
  } = items[index];
10
+ var _item_id;
11
11
  const flatTreeItem = {
12
12
  'aria-level': level,
13
13
  'aria-posinset': index + 1,
14
14
  'aria-setsize': items.length,
15
15
  parentId: parent === null || parent === void 0 ? void 0 : parent.id,
16
- id: (_a = item.id) !== null && _a !== void 0 ? _a : `fui-FlatTreeItem-${count++}`,
16
+ id: (_item_id = item.id) !== null && _item_id !== void 0 ? _item_id : `fui-FlatTreeItem-${count++}`,
17
17
  leaf: subtree === undefined,
18
18
  ...item
19
19
  };
@@ -26,7 +26,6 @@ function flattenTreeRecursive_unstable(items, parent, level = 1) {
26
26
  }
27
27
  /**
28
28
  * Converts a nested structure to a flat one which can be consumed by `useFlatTreeItems`
29
- */
30
- // eslint-disable-next-line @typescript-eslint/naming-convention
29
+ */ // eslint-disable-next-line @typescript-eslint/naming-convention
31
30
  export const flattenTree_unstable = flattenTreeRecursive_unstable;
32
31
  //# sourceMappingURL=flattenTree.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["count","flattenTreeRecursive_unstable","items","parent","level","flatTreeItems","index","length","subtree","item","flatTreeItem","parentId","id","_a","leaf","undefined","push","flattenTree_unstable"],"sources":["../src/packages/react-components/react-tree/src/utils/flattenTree.ts"],"sourcesContent":["import { FlatTreeItemProps } from '../hooks/useFlatTree';\nimport { TreeItemProps } from '../TreeItem';\n\nexport type NestedTreeItem = Omit<TreeItemProps, 'subtree'> & {\n subtree?: NestedTreeItem[];\n};\n\nlet count = 1;\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nfunction flattenTreeRecursive_unstable(\n items: NestedTreeItem[],\n parent?: FlatTreeItemProps,\n level = 1,\n): FlatTreeItemProps[] {\n const flatTreeItems: FlatTreeItemProps[] = [];\n for (let index = 0; index < items.length; index++) {\n const { subtree, ...item } = items[index];\n const flatTreeItem: FlatTreeItemProps = {\n 'aria-level': level,\n 'aria-posinset': index + 1,\n 'aria-setsize': items.length,\n parentId: parent?.id,\n id: item.id ?? `fui-FlatTreeItem-${count++}`,\n leaf: subtree === undefined,\n ...item,\n };\n flatTreeItems.push(flatTreeItem);\n if (subtree !== undefined) {\n flatTreeItems.push(...flattenTreeRecursive_unstable(subtree, flatTreeItem, level + 1));\n }\n }\n return flatTreeItems;\n}\n\n/**\n * Converts a nested structure to a flat one which can be consumed by `useFlatTreeItems`\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport const flattenTree_unstable: (items: NestedTreeItem[]) => FlatTreeItemProps[] = flattenTreeRecursive_unstable;\n"],"mappings":"AAOA,IAAIA,KAAK,GAAG,CAAC;AAEb;AACA,SAASC,6BAA6BA,CACpCC,KAAuB,EACvBC,MAA0B,EAC1BC,KAAK,GAAG,CAAC;;EAET,MAAMC,aAAa,GAAwB,EAAE;EAC7C,KAAK,IAAIC,KAAK,GAAG,CAAC,EAAEA,KAAK,GAAGJ,KAAK,CAACK,MAAM,EAAED,KAAK,EAAE,EAAE;IACjD,MAAM;MAAEE,OAAO;MAAE,GAAGC;IAAI,CAAE,GAAGP,KAAK,CAACI,KAAK,CAAC;IACzC,MAAMI,YAAY,GAAsB;MACtC,YAAY,EAAEN,KAAK;MACnB,eAAe,EAAEE,KAAK,GAAG,CAAC;MAC1B,cAAc,EAAEJ,KAAK,CAACK,MAAM;MAC5BI,QAAQ,EAAER,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAES,EAAE;MACpBA,EAAE,EAAE,CAAAC,EAAA,GAAAJ,IAAI,CAACG,EAAE,cAAAC,EAAA,cAAAA,EAAA,GAAI,oBAAoBb,KAAK,EAAE,EAAE;MAC5Cc,IAAI,EAAEN,OAAO,KAAKO,SAAS;MAC3B,GAAGN;KACJ;IACDJ,aAAa,CAACW,IAAI,CAACN,YAAY,CAAC;IAChC,IAAIF,OAAO,KAAKO,SAAS,EAAE;MACzBV,aAAa,CAACW,IAAI,CAAC,GAAGf,6BAA6B,CAACO,OAAO,EAAEE,YAAY,EAAEN,KAAK,GAAG,CAAC,CAAC,CAAC;;;EAG1F,OAAOC,aAAa;AACtB;AAEA;;;AAGA;AACA,OAAO,MAAMY,oBAAoB,GAAqDhB,6BAA6B"}
1
+ {"version":3,"names":["count","flattenTreeRecursive_unstable","items","parent","level","flatTreeItems","index","length","subtree","item","_item_id","flatTreeItem","parentId","id","leaf","undefined","push","flattenTree_unstable"],"sources":["../../src/utils/flattenTree.ts"],"sourcesContent":["import { FlatTreeItemProps } from '../hooks/useFlatTree';\nimport { TreeItemProps } from '../TreeItem';\n\nexport type NestedTreeItem = Omit<TreeItemProps, 'subtree'> & {\n subtree?: NestedTreeItem[];\n};\n\nlet count = 1;\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nfunction flattenTreeRecursive_unstable(\n items: NestedTreeItem[],\n parent?: FlatTreeItemProps,\n level = 1,\n): FlatTreeItemProps[] {\n const flatTreeItems: FlatTreeItemProps[] = [];\n for (let index = 0; index < items.length; index++) {\n const { subtree, ...item } = items[index];\n const flatTreeItem: FlatTreeItemProps = {\n 'aria-level': level,\n 'aria-posinset': index + 1,\n 'aria-setsize': items.length,\n parentId: parent?.id,\n id: item.id ?? `fui-FlatTreeItem-${count++}`,\n leaf: subtree === undefined,\n ...item,\n };\n flatTreeItems.push(flatTreeItem);\n if (subtree !== undefined) {\n flatTreeItems.push(...flattenTreeRecursive_unstable(subtree, flatTreeItem, level + 1));\n }\n }\n return flatTreeItems;\n}\n\n/**\n * Converts a nested structure to a flat one which can be consumed by `useFlatTreeItems`\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport const flattenTree_unstable: (items: NestedTreeItem[]) => FlatTreeItemProps[] = flattenTreeRecursive_unstable;\n"],"mappings":"AAOA,IAAIA,KAAA,GAAQ;AAEZ;AACA,SAASC,8BACPC,KAAuB,EACvBC,MAA0B,EAC1BC,KAAA,GAAQ,CAAC,EACY;EACrB,MAAMC,aAAA,GAAqC,EAAE;EAC7C,KAAK,IAAIC,KAAA,GAAQ,GAAGA,KAAA,GAAQJ,KAAA,CAAMK,MAAM,EAAED,KAAA,IAAS;IACjD,MAAM;MAAEE,OAAA;MAAS,GAAGC;IAAA,CAAM,GAAGP,KAAK,CAACI,KAAA,CAAM;QAMnCI,QAAA;IALN,MAAMC,YAAA,GAAkC;MACtC,cAAcP,KAAA;MACd,iBAAiBE,KAAA,GAAQ;MACzB,gBAAgBJ,KAAA,CAAMK,MAAM;MAC5BK,QAAA,EAAUT,MAAA,aAAAA,MAAA,uBAAAA,MAAA,CAAQU,EAAE;MACpBA,EAAA,EAAI,CAAAH,QAAA,GAAAD,IAAA,CAAKI,EAAE,cAAPH,QAAA,cAAAA,QAAA,GAAY,oBAAmBV,KAAA,EAAQ,EAAC;MAC5Cc,IAAA,EAAMN,OAAA,KAAYO,SAAA;MAClB,GAAGN;IACL;IACAJ,aAAA,CAAcW,IAAI,CAACL,YAAA;IACnB,IAAIH,OAAA,KAAYO,SAAA,EAAW;MACzBV,aAAA,CAAcW,IAAI,IAAIf,6BAAA,CAA8BO,OAAA,EAASG,YAAA,EAAcP,KAAA,GAAQ;IACrF;EACF;EACA,OAAOC,aAAA;AACT;AAEA;;GAAA,CAGA;AACA,OAAO,MAAMY,oBAAA,GAAyEhB,6BAAA"}
@@ -1,8 +1,8 @@
1
1
  export function nextTypeAheadElement(treeWalker, key) {
2
2
  const keyToLowerCase = key.toLowerCase();
3
3
  const typeAheadFilter = element => {
4
- var _a;
5
- return ((_a = element.textContent) === null || _a === void 0 ? void 0 : _a.trim().charAt(0).toLowerCase()) === keyToLowerCase ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;
4
+ var _element_textContent;
5
+ return ((_element_textContent = element.textContent) === null || _element_textContent === void 0 ? void 0 : _element_textContent.trim().charAt(0).toLowerCase()) === keyToLowerCase ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;
6
6
  };
7
7
  let nextElement = treeWalker.nextElement(typeAheadFilter);
8
8
  if (!nextElement) {
@@ -1 +1 @@
1
- {"version":3,"names":["nextTypeAheadElement","treeWalker","key","keyToLowerCase","toLowerCase","typeAheadFilter","element","_a","textContent","trim","charAt","NodeFilter","FILTER_ACCEPT","FILTER_SKIP","nextElement","currentElement","root"],"sources":["../src/packages/react-components/react-tree/src/utils/nextTypeAheadElement.ts"],"sourcesContent":["import { HTMLElementWalker } from '../hooks/useHTMLElementWalker';\n\nexport function nextTypeAheadElement(treeWalker: HTMLElementWalker, key: string) {\n const keyToLowerCase = key.toLowerCase();\n const typeAheadFilter = (element: HTMLElement) => {\n return element.textContent?.trim().charAt(0).toLowerCase() === keyToLowerCase\n ? NodeFilter.FILTER_ACCEPT\n : NodeFilter.FILTER_SKIP;\n };\n let nextElement = treeWalker.nextElement(typeAheadFilter);\n if (!nextElement) {\n treeWalker.currentElement = treeWalker.root;\n nextElement = treeWalker.nextElement(typeAheadFilter);\n }\n return nextElement;\n}\n"],"mappings":"AAEA,OAAM,SAAUA,oBAAoBA,CAACC,UAA6B,EAAEC,GAAW;EAC7E,MAAMC,cAAc,GAAGD,GAAG,CAACE,WAAW,EAAE;EACxC,MAAMC,eAAe,GAAIC,OAAoB,IAAI;;IAC/C,OAAO,EAAAC,EAAA,GAAAD,OAAO,CAACE,WAAW,cAAAD,EAAA,uBAAAA,EAAA,CAAEE,IAAI,GAAGC,MAAM,CAAC,CAAC,EAAEN,WAAW,EAAE,MAAKD,cAAc,GACzEQ,UAAU,CAACC,aAAa,GACxBD,UAAU,CAACE,WAAW;EAC5B,CAAC;EACD,IAAIC,WAAW,GAAGb,UAAU,CAACa,WAAW,CAACT,eAAe,CAAC;EACzD,IAAI,CAACS,WAAW,EAAE;IAChBb,UAAU,CAACc,cAAc,GAAGd,UAAU,CAACe,IAAI;IAC3CF,WAAW,GAAGb,UAAU,CAACa,WAAW,CAACT,eAAe,CAAC;;EAEvD,OAAOS,WAAW;AACpB"}
1
+ {"version":3,"names":["nextTypeAheadElement","treeWalker","key","keyToLowerCase","toLowerCase","typeAheadFilter","element","_element_textContent","textContent","trim","charAt","NodeFilter","FILTER_ACCEPT","FILTER_SKIP","nextElement","currentElement","root"],"sources":["../../src/utils/nextTypeAheadElement.ts"],"sourcesContent":["import { HTMLElementWalker } from '../hooks/useHTMLElementWalker';\n\nexport function nextTypeAheadElement(treeWalker: HTMLElementWalker, key: string) {\n const keyToLowerCase = key.toLowerCase();\n const typeAheadFilter = (element: HTMLElement) => {\n return element.textContent?.trim().charAt(0).toLowerCase() === keyToLowerCase\n ? NodeFilter.FILTER_ACCEPT\n : NodeFilter.FILTER_SKIP;\n };\n let nextElement = treeWalker.nextElement(typeAheadFilter);\n if (!nextElement) {\n treeWalker.currentElement = treeWalker.root;\n nextElement = treeWalker.nextElement(typeAheadFilter);\n }\n return nextElement;\n}\n"],"mappings":"AAEA,OAAO,SAASA,qBAAqBC,UAA6B,EAAEC,GAAW,EAAE;EAC/E,MAAMC,cAAA,GAAiBD,GAAA,CAAIE,WAAW;EACtC,MAAMC,eAAA,GAAmBC,OAAA,IAAyB;QACzCC,oBAAA;IAAP,OAAO,EAAAA,oBAAA,GAAAD,OAAA,CAAQE,WAAW,cAAnBD,oBAAA,uBAAAA,oBAAA,CAAqBE,IAAA,GAAOC,MAAM,CAAC,GAAGN,WAAW,EAAE,MAAKD,cAAA,GAC3DQ,UAAA,CAAWC,aAAa,GACxBD,UAAA,CAAWE,WAAW;EAC5B;EACA,IAAIC,WAAA,GAAcb,UAAA,CAAWa,WAAW,CAACT,eAAA;EACzC,IAAI,CAACS,WAAA,EAAa;IAChBb,UAAA,CAAWc,cAAc,GAAGd,UAAA,CAAWe,IAAI;IAC3CF,WAAA,GAAcb,UAAA,CAAWa,WAAW,CAACT,eAAA;EACvC;EACA,OAAOS,WAAA;AACT"}
@@ -1 +1 @@
1
- {"version":3,"names":["normalizeOpenItems","openSubtrees","options","keepUndefined","undefined","Array","isArray"],"sources":["../src/packages/react-components/react-tree/src/utils/normalizeOpenItems.ts"],"sourcesContent":["export function normalizeOpenItems(\n openSubtrees?: string | string[],\n options?: {\n keepUndefined?: false;\n },\n): string[];\n\nexport function normalizeOpenItems(\n openSubtrees?: string | string[],\n options?: {\n keepUndefined: true;\n },\n): string[] | undefined;\n\nexport function normalizeOpenItems(\n openSubtrees?: string | string[],\n options?: {\n keepUndefined?: boolean;\n },\n): string[] | undefined {\n if (!openSubtrees) {\n return options?.keepUndefined ? undefined : [];\n }\n return Array.isArray(openSubtrees) ? openSubtrees : [openSubtrees];\n}\n"],"mappings":"AAcA,OAAM,SAAUA,kBAAkBA,CAChCC,YAAgC,EAChCC,OAEC;EAED,IAAI,CAACD,YAAY,EAAE;IACjB,OAAO,CAAAC,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEC,aAAa,IAAGC,SAAS,GAAG,EAAE;;EAEhD,OAAOC,KAAK,CAACC,OAAO,CAACL,YAAY,CAAC,GAAGA,YAAY,GAAG,CAACA,YAAY,CAAC;AACpE"}
1
+ {"version":3,"names":["normalizeOpenItems","openSubtrees","options","keepUndefined","undefined","Array","isArray"],"sources":["../../src/utils/normalizeOpenItems.ts"],"sourcesContent":["export function normalizeOpenItems(\n openSubtrees?: string | string[],\n options?: {\n keepUndefined?: false;\n },\n): string[];\n\nexport function normalizeOpenItems(\n openSubtrees?: string | string[],\n options?: {\n keepUndefined: true;\n },\n): string[] | undefined;\n\nexport function normalizeOpenItems(\n openSubtrees?: string | string[],\n options?: {\n keepUndefined?: boolean;\n },\n): string[] | undefined {\n if (!openSubtrees) {\n return options?.keepUndefined ? undefined : [];\n }\n return Array.isArray(openSubtrees) ? openSubtrees : [openSubtrees];\n}\n"],"mappings":"AAcA,OAAO,SAASA,mBACdC,YAAgC,EAChCC,OAEC,EACqB;EACtB,IAAI,CAACD,YAAA,EAAc;IACjB,OAAO,CAAAC,OAAA,aAAAA,OAAA,uBAAAA,OAAA,CAASC,aAAa,IAAGC,SAAA,GAAY,EAAE;EAChD;EACA,OAAOC,KAAA,CAAMC,OAAO,CAACL,YAAA,IAAgBA,YAAA,GAAe,CAACA,YAAA,CAAa;AACpE"}
@@ -1 +1 @@
1
- {"version":3,"names":["ArrowDown","ArrowLeft","ArrowRight","ArrowUp","End","Home","treeItemLevelToken","treeAvatarSize","medium","small","treeDataTypes","arrowLeft","arrowRight","enter","click","expandIconClick","end","home","arrowUp","arrowDown","typeAhead"],"sources":["../src/packages/react-components/react-tree/src/utils/tokens.ts"],"sourcesContent":["import { ArrowDown, ArrowLeft, ArrowRight, ArrowUp, End, Home } from '@fluentui/keyboard-keys';\nimport { TreeNavigationData_unstable, TreeOpenChangeData } from '../Tree';\n\nexport const treeItemLevelToken = '--fluent-TreeItem--level' as const;\n\nexport const treeAvatarSize = {\n medium: 32,\n small: 24,\n} as const;\n\nexport const treeDataTypes: {\n readonly [K in Uncapitalize<TreeOpenChangeData['type'] | TreeNavigationData_unstable['type']>]: Capitalize<K>;\n} = {\n arrowLeft: ArrowLeft,\n arrowRight: ArrowRight,\n enter: 'Enter',\n click: 'Click',\n expandIconClick: 'ExpandIconClick',\n end: End,\n home: Home,\n arrowUp: ArrowUp,\n arrowDown: ArrowDown,\n typeAhead: 'TypeAhead',\n};\n"],"mappings":"AAAA,SAASA,SAAS,EAAEC,SAAS,EAAEC,UAAU,EAAEC,OAAO,EAAEC,GAAG,EAAEC,IAAI,QAAQ,yBAAyB;AAG9F,OAAO,MAAMC,kBAAkB,GAAG,0BAAmC;AAErE,OAAO,MAAMC,cAAc,GAAG;EAC5BC,MAAM,EAAE,EAAE;EACVC,KAAK,EAAE;CACC;AAEV,OAAO,MAAMC,aAAa,GAEtB;EACFC,SAAS,EAAEV,SAAS;EACpBW,UAAU,EAAEV,UAAU;EACtBW,KAAK,EAAE,OAAO;EACdC,KAAK,EAAE,OAAO;EACdC,eAAe,EAAE,iBAAiB;EAClCC,GAAG,EAAEZ,GAAG;EACRa,IAAI,EAAEZ,IAAI;EACVa,OAAO,EAAEf,OAAO;EAChBgB,SAAS,EAAEnB,SAAS;EACpBoB,SAAS,EAAE;CACZ"}
1
+ {"version":3,"names":["ArrowDown","ArrowLeft","ArrowRight","ArrowUp","End","Home","treeItemLevelToken","treeAvatarSize","medium","small","treeDataTypes","arrowLeft","arrowRight","enter","click","expandIconClick","end","home","arrowUp","arrowDown","typeAhead"],"sources":["../../src/utils/tokens.ts"],"sourcesContent":["import { ArrowDown, ArrowLeft, ArrowRight, ArrowUp, End, Home } from '@fluentui/keyboard-keys';\nimport { TreeNavigationData_unstable, TreeOpenChangeData } from '../Tree';\n\nexport const treeItemLevelToken = '--fluent-TreeItem--level' as const;\n\nexport const treeAvatarSize = {\n medium: 32,\n small: 24,\n} as const;\n\nexport const treeDataTypes: {\n readonly [K in Uncapitalize<TreeOpenChangeData['type'] | TreeNavigationData_unstable['type']>]: Capitalize<K>;\n} = {\n arrowLeft: ArrowLeft,\n arrowRight: ArrowRight,\n enter: 'Enter',\n click: 'Click',\n expandIconClick: 'ExpandIconClick',\n end: End,\n home: Home,\n arrowUp: ArrowUp,\n arrowDown: ArrowDown,\n typeAhead: 'TypeAhead',\n};\n"],"mappings":"AAAA,SAASA,SAAS,EAAEC,SAAS,EAAEC,UAAU,EAAEC,OAAO,EAAEC,GAAG,EAAEC,IAAI,QAAQ;AAGrE,OAAO,MAAMC,kBAAA,GAAqB;AAElC,OAAO,MAAMC,cAAA,GAAiB;EAC5BC,MAAA,EAAQ;EACRC,KAAA,EAAO;AACT;AAEA,OAAO,MAAMC,aAAA,GAET;EACFC,SAAA,EAAWV,SAAA;EACXW,UAAA,EAAYV,UAAA;EACZW,KAAA,EAAO;EACPC,KAAA,EAAO;EACPC,eAAA,EAAiB;EACjBC,GAAA,EAAKZ,GAAA;EACLa,IAAA,EAAMZ,IAAA;EACNa,OAAA,EAASf,OAAA;EACTgB,SAAA,EAAWnB,SAAA;EACXoB,SAAA,EAAW;AACb"}
@@ -1 +1 @@
1
- {"version":3,"names":["treeItemFilter","element","getAttribute","NodeFilter","FILTER_ACCEPT","FILTER_SKIP"],"sources":["../src/packages/react-components/react-tree/src/utils/treeItemFilter.ts"],"sourcesContent":["export const treeItemFilter = (element: HTMLElement) => {\n return element.getAttribute('role') === 'treeitem' ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;\n};\n"],"mappings":"AAAA,OAAO,MAAMA,cAAc,GAAIC,OAAoB,IAAI;EACrD,OAAOA,OAAO,CAACC,YAAY,CAAC,MAAM,CAAC,KAAK,UAAU,GAAGC,UAAU,CAACC,aAAa,GAAGD,UAAU,CAACE,WAAW;AACxG,CAAC"}
1
+ {"version":3,"names":["treeItemFilter","element","getAttribute","NodeFilter","FILTER_ACCEPT","FILTER_SKIP"],"sources":["../../src/utils/treeItemFilter.ts"],"sourcesContent":["export const treeItemFilter = (element: HTMLElement) => {\n return element.getAttribute('role') === 'treeitem' ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;\n};\n"],"mappings":"AAAA,OAAO,MAAMA,cAAA,GAAkBC,OAAA,IAAyB;EACtD,OAAOA,OAAA,CAAQC,YAAY,CAAC,YAAY,aAAaC,UAAA,CAAWC,aAAa,GAAGD,UAAA,CAAWE,WAAW;AACxG"}