@fluentui/react-tree 0.0.0-nightly-20230310-0421.1 → 9.0.0-beta.2

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 (122) hide show
  1. package/CHANGELOG.json +33 -42
  2. package/CHANGELOG.md +20 -15
  3. package/dist/index.d.ts +80 -22
  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.map +1 -1
  10. package/lib/components/Tree/index.js.map +1 -1
  11. package/lib/components/Tree/renderTree.js.map +1 -1
  12. package/lib/components/Tree/useTree.js.map +1 -1
  13. package/lib/components/Tree/useTreeContextValues.js.map +1 -1
  14. package/lib/components/Tree/useTreeStyles.js.map +1 -1
  15. package/lib/components/TreeItem/TreeItem.js.map +1 -1
  16. package/lib/components/TreeItem/TreeItem.types.js.map +1 -1
  17. package/lib/components/TreeItem/index.js.map +1 -1
  18. package/lib/components/TreeItem/renderTreeItem.js.map +1 -1
  19. package/lib/components/TreeItem/useTreeItem.js.map +1 -1
  20. package/lib/components/TreeItem/useTreeItemContextValues.js.map +1 -1
  21. package/lib/components/TreeItem/useTreeItemStyles.js.map +1 -1
  22. package/lib/components/TreeItemLayout/TreeItemLayout.js.map +1 -1
  23. package/lib/components/TreeItemLayout/TreeItemLayout.types.js.map +1 -1
  24. package/lib/components/TreeItemLayout/index.js.map +1 -1
  25. package/lib/components/TreeItemLayout/renderTreeItemLayout.js.map +1 -1
  26. package/lib/components/TreeItemLayout/useTreeItemLayout.js.map +1 -1
  27. package/lib/components/TreeItemLayout/useTreeItemLayoutStyles.js.map +1 -1
  28. package/lib/components/TreeItemPersonaLayout/TreeItemPersonaLayout.js.map +1 -1
  29. package/lib/components/TreeItemPersonaLayout/TreeItemPersonaLayout.types.js.map +1 -1
  30. package/lib/components/TreeItemPersonaLayout/index.js.map +1 -1
  31. package/lib/components/TreeItemPersonaLayout/renderTreeItemPersonaLayout.js.map +1 -1
  32. package/lib/components/TreeItemPersonaLayout/useTreeItemPersonaLayout.js.map +1 -1
  33. package/lib/components/TreeItemPersonaLayout/useTreeItemPersonaLayoutContextValues.js.map +1 -1
  34. package/lib/components/TreeItemPersonaLayout/useTreeItemPersonaLayoutStyles.js.map +1 -1
  35. package/lib/contexts/index.js.map +1 -1
  36. package/lib/contexts/treeContext.js.map +1 -1
  37. package/lib/contexts/treeItemContext.js.map +1 -1
  38. package/lib/hooks/index.js +1 -1
  39. package/lib/hooks/index.js.map +1 -1
  40. package/lib/hooks/useFlatTree.js +49 -0
  41. package/lib/hooks/useFlatTree.js.map +1 -0
  42. package/lib/hooks/useFlatTreeNavigation.js +6 -6
  43. package/lib/hooks/useFlatTreeNavigation.js.map +1 -1
  44. package/lib/hooks/useHTMLElementWalker.js.map +1 -1
  45. package/lib/hooks/useNestedTreeNavigation.js.map +1 -1
  46. package/lib/hooks/useOpenItemsState.js.map +1 -1
  47. package/lib/hooks/useRovingTabIndexes.js.map +1 -1
  48. package/lib/index.js +1 -1
  49. package/lib/index.js.map +1 -1
  50. package/lib/utils/ImmutableSet.js.map +1 -1
  51. package/lib/utils/assert.js.map +1 -1
  52. package/lib/utils/createUnfilteredFlatTree.js +77 -0
  53. package/lib/utils/createUnfilteredFlatTree.js.map +1 -0
  54. package/lib/utils/createVisibleFlatTree.js +80 -0
  55. package/lib/utils/createVisibleFlatTree.js.map +1 -0
  56. package/lib/utils/flattenTree.js.map +1 -1
  57. package/lib/utils/nextTypeAheadElement.js.map +1 -1
  58. package/lib/utils/normalizeOpenItems.js.map +1 -1
  59. package/lib/utils/tokens.js.map +1 -1
  60. package/lib/utils/treeItemFilter.js.map +1 -1
  61. package/lib-commonjs/Tree.js.map +1 -1
  62. package/lib-commonjs/TreeItem.js.map +1 -1
  63. package/lib-commonjs/TreeItemLayout.js.map +1 -1
  64. package/lib-commonjs/TreeItemPersonaLayout.js.map +1 -1
  65. package/lib-commonjs/components/Tree/Tree.js.map +1 -1
  66. package/lib-commonjs/components/Tree/Tree.types.js.map +1 -1
  67. package/lib-commonjs/components/Tree/index.js.map +1 -1
  68. package/lib-commonjs/components/Tree/renderTree.js.map +1 -1
  69. package/lib-commonjs/components/Tree/useTree.js.map +1 -1
  70. package/lib-commonjs/components/Tree/useTreeContextValues.js.map +1 -1
  71. package/lib-commonjs/components/Tree/useTreeStyles.js.map +1 -1
  72. package/lib-commonjs/components/TreeItem/TreeItem.js.map +1 -1
  73. package/lib-commonjs/components/TreeItem/TreeItem.types.js.map +1 -1
  74. package/lib-commonjs/components/TreeItem/index.js.map +1 -1
  75. package/lib-commonjs/components/TreeItem/renderTreeItem.js.map +1 -1
  76. package/lib-commonjs/components/TreeItem/useTreeItem.js.map +1 -1
  77. package/lib-commonjs/components/TreeItem/useTreeItemContextValues.js.map +1 -1
  78. package/lib-commonjs/components/TreeItem/useTreeItemStyles.js.map +1 -1
  79. package/lib-commonjs/components/TreeItemLayout/TreeItemLayout.js.map +1 -1
  80. package/lib-commonjs/components/TreeItemLayout/TreeItemLayout.types.js.map +1 -1
  81. package/lib-commonjs/components/TreeItemLayout/index.js.map +1 -1
  82. package/lib-commonjs/components/TreeItemLayout/renderTreeItemLayout.js.map +1 -1
  83. package/lib-commonjs/components/TreeItemLayout/useTreeItemLayout.js.map +1 -1
  84. package/lib-commonjs/components/TreeItemLayout/useTreeItemLayoutStyles.js.map +1 -1
  85. package/lib-commonjs/components/TreeItemPersonaLayout/TreeItemPersonaLayout.js.map +1 -1
  86. package/lib-commonjs/components/TreeItemPersonaLayout/TreeItemPersonaLayout.types.js.map +1 -1
  87. package/lib-commonjs/components/TreeItemPersonaLayout/index.js.map +1 -1
  88. package/lib-commonjs/components/TreeItemPersonaLayout/renderTreeItemPersonaLayout.js.map +1 -1
  89. package/lib-commonjs/components/TreeItemPersonaLayout/useTreeItemPersonaLayout.js.map +1 -1
  90. package/lib-commonjs/components/TreeItemPersonaLayout/useTreeItemPersonaLayoutContextValues.js.map +1 -1
  91. package/lib-commonjs/components/TreeItemPersonaLayout/useTreeItemPersonaLayoutStyles.js.map +1 -1
  92. package/lib-commonjs/contexts/index.js.map +1 -1
  93. package/lib-commonjs/contexts/treeContext.js.map +1 -1
  94. package/lib-commonjs/contexts/treeItemContext.js.map +1 -1
  95. package/lib-commonjs/hooks/index.js +1 -1
  96. package/lib-commonjs/hooks/index.js.map +1 -1
  97. package/lib-commonjs/hooks/useFlatTree.js +56 -0
  98. package/lib-commonjs/hooks/useFlatTree.js.map +1 -0
  99. package/lib-commonjs/hooks/useFlatTreeNavigation.js +6 -6
  100. package/lib-commonjs/hooks/useFlatTreeNavigation.js.map +1 -1
  101. package/lib-commonjs/hooks/useHTMLElementWalker.js.map +1 -1
  102. package/lib-commonjs/hooks/useNestedTreeNavigation.js.map +1 -1
  103. package/lib-commonjs/hooks/useOpenItemsState.js.map +1 -1
  104. package/lib-commonjs/hooks/useRovingTabIndexes.js.map +1 -1
  105. package/lib-commonjs/index.js +3 -3
  106. package/lib-commonjs/index.js.map +1 -1
  107. package/lib-commonjs/utils/ImmutableSet.js.map +1 -1
  108. package/lib-commonjs/utils/assert.js.map +1 -1
  109. package/lib-commonjs/utils/createUnfilteredFlatTree.js +84 -0
  110. package/lib-commonjs/utils/createUnfilteredFlatTree.js.map +1 -0
  111. package/lib-commonjs/utils/createVisibleFlatTree.js +87 -0
  112. package/lib-commonjs/utils/createVisibleFlatTree.js.map +1 -0
  113. package/lib-commonjs/utils/flattenTree.js.map +1 -1
  114. package/lib-commonjs/utils/nextTypeAheadElement.js.map +1 -1
  115. package/lib-commonjs/utils/normalizeOpenItems.js.map +1 -1
  116. package/lib-commonjs/utils/tokens.js.map +1 -1
  117. package/lib-commonjs/utils/treeItemFilter.js.map +1 -1
  118. package/package.json +19 -13
  119. package/lib/hooks/useFlatTreeItems.js +0 -134
  120. package/lib/hooks/useFlatTreeItems.js.map +0 -1
  121. package/lib-commonjs/hooks/useFlatTreeItems.js +0 -141
  122. package/lib-commonjs/hooks/useFlatTreeItems.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"names":["react_utilities_1","require","React","useHTMLElementWalker_1","useRovingTabIndex","filter","currentElementRef","useRef","walkerRef","rootRef","useHTMLElementWalkerRef","rootRefCallback","element","reset","current","walker","currentElement","root","tabbableChild","firstChild","tabIndex","NodeFilter","FILTER_ACCEPT","FILTER_SKIP","process","env","NODE_ENV","console","warn","nextElement","rove","focus","useMergedRefs","exports"],"sources":["../../../../../../../../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,MAAAA,iBAAA,gBAAAC,OAAA;AACA,MAAAC,KAAA,gBAAAD,OAAA;AACA,MAAAE,sBAAA,gBAAAF,OAAA;AAEA;;;AAGA,SAAgBG,iBAAiBA,CAACC,MAA0B;EAC1D,MAAMC,iBAAiB,GAAGJ,KAAK,CAACK,MAAM,EAAe;EACrD,MAAM,CAACC,SAAS,EAAEC,OAAO,CAAC,GAAGN,sBAAA,CAAAO,uBAAuB,CAACL,MAAM,CAAC;EAE5D,MAAMM,eAAe,GAAIC,OAAqB,IAAI;IAChD,IAAI,CAACA,OAAO,EAAE;MACZ;;IAEFC,KAAK,EAAE;EACT,CAAC;EAED,SAASA,KAAKA,CAAA;IACZ,IAAI,CAACL,SAAS,CAACM,OAAO,EAAE;MACtB;;IAEF,MAAMC,MAAM,GAAGP,SAAS,CAACM,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;IAC1Bd,iBAAiB,CAACQ,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,CAACvB,iBAAiB,CAACQ,OAAO,EAAE;MAC9B;;IAEFR,iBAAiB,CAACQ,OAAO,CAACM,QAAQ,GAAG,CAAC,CAAC;IACvCS,WAAW,CAACT,QAAQ,GAAG,CAAC;IACxBS,WAAW,CAACE,KAAK,EAAE;IACnBzB,iBAAiB,CAACQ,OAAO,GAAGe,WAAW;EACzC;EAEA,OAAO,CACL;IACEC,IAAI;IACJjB;GACD,EACDb,iBAAA,CAAAgC,aAAa,CAACvB,OAAO,EAAEE,eAAe,CAA2B,CACzD;AACZ;AArDAsB,OAAA,CAAA7B,iBAAA,GAAAA,iBAAA"}
1
+ {"version":3,"names":["react_utilities_1","require","React","useHTMLElementWalker_1","useRovingTabIndex","filter","currentElementRef","useRef","walkerRef","rootRef","useHTMLElementWalkerRef","rootRefCallback","element","reset","current","walker","currentElement","root","tabbableChild","firstChild","tabIndex","NodeFilter","FILTER_ACCEPT","FILTER_SKIP","process","env","NODE_ENV","console","warn","nextElement","rove","focus","useMergedRefs","exports"],"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,MAAAA,iBAAA,gBAAAC,OAAA;AACA,MAAAC,KAAA,gBAAAD,OAAA;AACA,MAAAE,sBAAA,gBAAAF,OAAA;AAEA;;;AAGA,SAAgBG,iBAAiBA,CAACC,MAA0B;EAC1D,MAAMC,iBAAiB,GAAGJ,KAAK,CAACK,MAAM,EAAe;EACrD,MAAM,CAACC,SAAS,EAAEC,OAAO,CAAC,GAAGN,sBAAA,CAAAO,uBAAuB,CAACL,MAAM,CAAC;EAE5D,MAAMM,eAAe,GAAIC,OAAqB,IAAI;IAChD,IAAI,CAACA,OAAO,EAAE;MACZ;;IAEFC,KAAK,EAAE;EACT,CAAC;EAED,SAASA,KAAKA,CAAA;IACZ,IAAI,CAACL,SAAS,CAACM,OAAO,EAAE;MACtB;;IAEF,MAAMC,MAAM,GAAGP,SAAS,CAACM,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;IAC1Bd,iBAAiB,CAACQ,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,CAACvB,iBAAiB,CAACQ,OAAO,EAAE;MAC9B;;IAEFR,iBAAiB,CAACQ,OAAO,CAACM,QAAQ,GAAG,CAAC,CAAC;IACvCS,WAAW,CAACT,QAAQ,GAAG,CAAC;IACxBS,WAAW,CAACE,KAAK,EAAE;IACnBzB,iBAAiB,CAACQ,OAAO,GAAGe,WAAW;EACzC;EAEA,OAAO,CACL;IACEC,IAAI;IACJjB;GACD,EACDb,iBAAA,CAAAgC,aAAa,CAACvB,OAAO,EAAEE,eAAe,CAA2B,CACzD;AACZ;AArDAsB,OAAA,CAAA7B,iBAAA,GAAAA,iBAAA"}
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.flattenTree_unstable = exports.useFlatTreeItems_unstable = exports.useTreeItemPersonaLayout_unstable = exports.useTreeItemPersonaLayoutStyles_unstable = exports.renderTreeItemPersonaLayout_unstable = exports.treeItemPersonaLayoutClassNames = exports.TreeItemPersonaLayout = exports.useTreeItemLayout_unstable = exports.useTreeItemLayoutStyles_unstable = exports.renderTreeItemLayout_unstable = exports.treeItemLayoutClassNames = exports.TreeItemLayout = exports.useTreeItem_unstable = exports.useTreeItemStyles_unstable = exports.renderTreeItem_unstable = exports.treeItemClassNames = exports.TreeItem = exports.treeItemLevelToken = exports.TreeItemProvider = exports.useTreeItemContext_unstable = exports.useTreeContext_unstable = exports.TreeProvider = exports.useTreeContextValues_unstable = exports.useTree_unstable = exports.useTreeStyles_unstable = exports.renderTree_unstable = exports.treeClassNames = exports.Tree = void 0;
6
+ exports.flattenTree_unstable = exports.useFlatTree_unstable = exports.useTreeItemPersonaLayout_unstable = exports.useTreeItemPersonaLayoutStyles_unstable = exports.renderTreeItemPersonaLayout_unstable = exports.treeItemPersonaLayoutClassNames = exports.TreeItemPersonaLayout = exports.useTreeItemLayout_unstable = exports.useTreeItemLayoutStyles_unstable = exports.renderTreeItemLayout_unstable = exports.treeItemLayoutClassNames = exports.TreeItemLayout = exports.useTreeItem_unstable = exports.useTreeItemStyles_unstable = exports.renderTreeItem_unstable = exports.treeItemClassNames = exports.TreeItem = exports.treeItemLevelToken = exports.TreeItemProvider = exports.useTreeItemContext_unstable = exports.useTreeContext_unstable = exports.TreeProvider = exports.useTreeContextValues_unstable = exports.useTree_unstable = exports.useTreeStyles_unstable = exports.renderTree_unstable = exports.treeClassNames = exports.Tree = void 0;
7
7
  var Tree_1 = /*#__PURE__*/require("./Tree");
8
8
  Object.defineProperty(exports, "Tree", {
9
9
  enumerable: true,
@@ -167,10 +167,10 @@ Object.defineProperty(exports, "useTreeItemPersonaLayout_unstable", {
167
167
  }
168
168
  });
169
169
  var index_1 = /*#__PURE__*/require("./hooks/index");
170
- Object.defineProperty(exports, "useFlatTreeItems_unstable", {
170
+ Object.defineProperty(exports, "useFlatTree_unstable", {
171
171
  enumerable: true,
172
172
  get: function () {
173
- return index_1.useFlatTreeItems_unstable;
173
+ return index_1.useFlatTree_unstable;
174
174
  }
175
175
  });
176
176
  var flattenTree_1 = /*#__PURE__*/require("./utils/flattenTree");
@@ -1 +1 @@
1
- {"version":3,"names":["Tree_1","require","Object","defineProperty","exports","enumerable","get","Tree","treeClassNames","renderTree_unstable","useTreeStyles_unstable","useTree_unstable","useTreeContextValues_unstable","contexts_1","TreeProvider","useTreeContext_unstable","useTreeItemContext_unstable","TreeItemProvider","tokens_1","treeItemLevelToken","TreeItem_1","TreeItem","treeItemClassNames","renderTreeItem_unstable","useTreeItemStyles_unstable","useTreeItem_unstable","TreeItemLayout_1","TreeItemLayout","treeItemLayoutClassNames","renderTreeItemLayout_unstable","useTreeItemLayoutStyles_unstable","useTreeItemLayout_unstable","TreeItemPersonaLayout_1","TreeItemPersonaLayout","treeItemPersonaLayoutClassNames","renderTreeItemPersonaLayout_unstable","useTreeItemPersonaLayoutStyles_unstable","useTreeItemPersonaLayout_unstable","index_1","useFlatTreeItems_unstable","flattenTree_1","flattenTree_unstable"],"sources":["../../../../../../../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 { useFlatTreeItems_unstable } from './hooks/index';\nexport type {\n FlatTreeItem,\n FlatTreeItemProps,\n FlatTreeProps,\n UseFlatTreeItemsOptions,\n LazyFlatTreeItems,\n} from './hooks/index';\n\nexport { flattenTree_unstable } from './utils/flattenTree';\nexport type { NestedTreeItem } from './utils/flattenTree';\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,gBAAAC,OAAA;AACEC,MAAA,CAAAC,cAAA,CAAAC,OAAA;EAAAC,UAAA;EAAAC,GAAA,WAAAA,CAAA;IAAA,OAAAN,MAAA,CAAAO,IAAI;EAAA;AAAA;AACJL,MAAA,CAAAC,cAAA,CAAAC,OAAA;EAAAC,UAAA;EAAAC,GAAA,WAAAA,CAAA;IAAA,OAAAN,MAAA,CAAAQ,cAAc;EAAA;AAAA;AACdN,MAAA,CAAAC,cAAA,CAAAC,OAAA;EAAAC,UAAA;EAAAC,GAAA,WAAAA,CAAA;IAAA,OAAAN,MAAA,CAAAS,mBAAmB;EAAA;AAAA;AACnBP,MAAA,CAAAC,cAAA,CAAAC,OAAA;EAAAC,UAAA;EAAAC,GAAA,WAAAA,CAAA;IAAA,OAAAN,MAAA,CAAAU,sBAAsB;EAAA;AAAA;AACtBR,MAAA,CAAAC,cAAA,CAAAC,OAAA;EAAAC,UAAA;EAAAC,GAAA,WAAAA,CAAA;IAAA,OAAAN,MAAA,CAAAW,gBAAgB;EAAA;AAAA;AAChBT,MAAA,CAAAC,cAAA,CAAAC,OAAA;EAAAC,UAAA;EAAAC,GAAA,WAAAA,CAAA;IAAA,OAAAN,MAAA,CAAAY,6BAA6B;EAAA;AAAA;AAa/B,IAAAC,UAAA,gBAAAZ,OAAA;AAASC,MAAA,CAAAC,cAAA,CAAAC,OAAA;EAAAC,UAAA;EAAAC,GAAA,WAAAA,CAAA;IAAA,OAAAO,UAAA,CAAAC,YAAY;EAAA;AAAA;AAAEZ,MAAA,CAAAC,cAAA,CAAAC,OAAA;EAAAC,UAAA;EAAAC,GAAA,WAAAA,CAAA;IAAA,OAAAO,UAAA,CAAAE,uBAAuB;EAAA;AAAA;AAAEb,MAAA,CAAAC,cAAA,CAAAC,OAAA;EAAAC,UAAA;EAAAC,GAAA,WAAAA,CAAA;IAAA,OAAAO,UAAA,CAAAG,2BAA2B;EAAA;AAAA;AAAEd,MAAA,CAAAC,cAAA,CAAAC,OAAA;EAAAC,UAAA;EAAAC,GAAA,WAAAA,CAAA;IAAA,OAAAO,UAAA,CAAAI,gBAAgB;EAAA;AAAA;AAG7F,IAAAC,QAAA,gBAAAjB,OAAA;AAASC,MAAA,CAAAC,cAAA,CAAAC,OAAA;EAAAC,UAAA;EAAAC,GAAA,WAAAA,CAAA;IAAA,OAAAY,QAAA,CAAAC,kBAAkB;EAAA;AAAA;AAE3B,IAAAC,UAAA,gBAAAnB,OAAA;AACEC,MAAA,CAAAC,cAAA,CAAAC,OAAA;EAAAC,UAAA;EAAAC,GAAA,WAAAA,CAAA;IAAA,OAAAc,UAAA,CAAAC,QAAQ;EAAA;AAAA;AACRnB,MAAA,CAAAC,cAAA,CAAAC,OAAA;EAAAC,UAAA;EAAAC,GAAA,WAAAA,CAAA;IAAA,OAAAc,UAAA,CAAAE,kBAAkB;EAAA;AAAA;AAClBpB,MAAA,CAAAC,cAAA,CAAAC,OAAA;EAAAC,UAAA;EAAAC,GAAA,WAAAA,CAAA;IAAA,OAAAc,UAAA,CAAAG,uBAAuB;EAAA;AAAA;AACvBrB,MAAA,CAAAC,cAAA,CAAAC,OAAA;EAAAC,UAAA;EAAAC,GAAA,WAAAA,CAAA;IAAA,OAAAc,UAAA,CAAAI,0BAA0B;EAAA;AAAA;AAC1BtB,MAAA,CAAAC,cAAA,CAAAC,OAAA;EAAAC,UAAA;EAAAC,GAAA,WAAAA,CAAA;IAAA,OAAAc,UAAA,CAAAK,oBAAoB;EAAA;AAAA;AAItB,IAAAC,gBAAA,gBAAAzB,OAAA;AACEC,MAAA,CAAAC,cAAA,CAAAC,OAAA;EAAAC,UAAA;EAAAC,GAAA,WAAAA,CAAA;IAAA,OAAAoB,gBAAA,CAAAC,cAAc;EAAA;AAAA;AACdzB,MAAA,CAAAC,cAAA,CAAAC,OAAA;EAAAC,UAAA;EAAAC,GAAA,WAAAA,CAAA;IAAA,OAAAoB,gBAAA,CAAAE,wBAAwB;EAAA;AAAA;AACxB1B,MAAA,CAAAC,cAAA,CAAAC,OAAA;EAAAC,UAAA;EAAAC,GAAA,WAAAA,CAAA;IAAA,OAAAoB,gBAAA,CAAAG,6BAA6B;EAAA;AAAA;AAC7B3B,MAAA,CAAAC,cAAA,CAAAC,OAAA;EAAAC,UAAA;EAAAC,GAAA,WAAAA,CAAA;IAAA,OAAAoB,gBAAA,CAAAI,gCAAgC;EAAA;AAAA;AAChC5B,MAAA,CAAAC,cAAA,CAAAC,OAAA;EAAAC,UAAA;EAAAC,GAAA,WAAAA,CAAA;IAAA,OAAAoB,gBAAA,CAAAK,0BAA0B;EAAA;AAAA;AAI5B,IAAAC,uBAAA,gBAAA/B,OAAA;AACEC,MAAA,CAAAC,cAAA,CAAAC,OAAA;EAAAC,UAAA;EAAAC,GAAA,WAAAA,CAAA;IAAA,OAAA0B,uBAAA,CAAAC,qBAAqB;EAAA;AAAA;AACrB/B,MAAA,CAAAC,cAAA,CAAAC,OAAA;EAAAC,UAAA;EAAAC,GAAA,WAAAA,CAAA;IAAA,OAAA0B,uBAAA,CAAAE,+BAA+B;EAAA;AAAA;AAC/BhC,MAAA,CAAAC,cAAA,CAAAC,OAAA;EAAAC,UAAA;EAAAC,GAAA,WAAAA,CAAA;IAAA,OAAA0B,uBAAA,CAAAG,oCAAoC;EAAA;AAAA;AACpCjC,MAAA,CAAAC,cAAA,CAAAC,OAAA;EAAAC,UAAA;EAAAC,GAAA,WAAAA,CAAA;IAAA,OAAA0B,uBAAA,CAAAI,uCAAuC;EAAA;AAAA;AACvClC,MAAA,CAAAC,cAAA,CAAAC,OAAA;EAAAC,UAAA;EAAAC,GAAA,WAAAA,CAAA;IAAA,OAAA0B,uBAAA,CAAAK,iCAAiC;EAAA;AAAA;AAQnC,IAAAC,OAAA,gBAAArC,OAAA;AAASC,MAAA,CAAAC,cAAA,CAAAC,OAAA;EAAAC,UAAA;EAAAC,GAAA,WAAAA,CAAA;IAAA,OAAAgC,OAAA,CAAAC,yBAAyB;EAAA;AAAA;AASlC,IAAAC,aAAA,gBAAAvC,OAAA;AAASC,MAAA,CAAAC,cAAA,CAAAC,OAAA;EAAAC,UAAA;EAAAC,GAAA,WAAAA,CAAA;IAAA,OAAAkC,aAAA,CAAAC,oBAAoB;EAAA;AAAA"}
1
+ {"version":3,"names":["Tree_1","require","Object","defineProperty","exports","enumerable","get","Tree","treeClassNames","renderTree_unstable","useTreeStyles_unstable","useTree_unstable","useTreeContextValues_unstable","contexts_1","TreeProvider","useTreeContext_unstable","useTreeItemContext_unstable","TreeItemProvider","tokens_1","treeItemLevelToken","TreeItem_1","TreeItem","treeItemClassNames","renderTreeItem_unstable","useTreeItemStyles_unstable","useTreeItem_unstable","TreeItemLayout_1","TreeItemLayout","treeItemLayoutClassNames","renderTreeItemLayout_unstable","useTreeItemLayoutStyles_unstable","useTreeItemLayout_unstable","TreeItemPersonaLayout_1","TreeItemPersonaLayout","treeItemPersonaLayoutClassNames","renderTreeItemPersonaLayout_unstable","useTreeItemPersonaLayoutStyles_unstable","useTreeItemPersonaLayout_unstable","index_1","useFlatTree_unstable","flattenTree_1","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":"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"}
@@ -1 +1 @@
1
- {"version":3,"names":["exports","emptyImmutableSet","createImmutableSet","iterable","internalSet","Set","dangerouslyCreateImmutableSet","size","add","value","nextSet","clear","delete","has","Symbol","iterator"],"sources":["../../../../../../../../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":";;;;;;AA0BaA,OAAA,CAAAC,iBAAiB,gBAAGC,kBAAkB,EAAS;AAE5D;;;AAGA,SAAgBA,kBAAkBA,CAAQC,QAA0B;EAClE,MAAMC,WAAW,GAAG,IAAIC,GAAG,CAACF,QAAQ,CAAC;EACrC,OAAOG,6BAA6B,CAACF,WAAW,CAAC;AACnD;AAHAJ,OAAA,CAAAE,kBAAA,GAAAA,kBAAA;AAIA;;;;AAIA,SAAgBI,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,OAAOX,OAAA,CAAAC,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;AAvBAf,OAAA,CAAAM,6BAAA,GAAAA,6BAAA"}
1
+ {"version":3,"names":["exports","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":";;;;;;AA0BaA,OAAA,CAAAC,iBAAiB,gBAAGC,kBAAkB,EAAS;AAE5D;;;AAGA,SAAgBA,kBAAkBA,CAAQC,QAA0B;EAClE,MAAMC,WAAW,GAAG,IAAIC,GAAG,CAACF,QAAQ,CAAC;EACrC,OAAOG,6BAA6B,CAACF,WAAW,CAAC;AACnD;AAHAJ,OAAA,CAAAE,kBAAA,GAAAA,kBAAA;AAIA;;;;AAIA,SAAgBI,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,OAAOX,OAAA,CAAAC,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;AAvBAf,OAAA,CAAAM,6BAAA,GAAAA,6BAAA"}
@@ -1 +1 @@
1
- {"version":3,"names":["assertIsDefinedRef","refObject","msg","current","undefined","process","env","NODE_ENV","TypeError","exports"],"sources":["../../../../../../../../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,SAAgBA,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;AARAO,OAAA,CAAAT,kBAAA,GAAAA,kBAAA"}
1
+ {"version":3,"names":["assertIsDefinedRef","refObject","msg","current","undefined","process","env","NODE_ENV","TypeError","exports"],"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,SAAgBA,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;AARAO,OAAA,CAAAT,kBAAA,GAAAA,kBAAA"}
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.flatTreeRootParentId = exports.createUnfilteredFlatTree = void 0;
7
+ /**
8
+ * creates a list of flat tree items
9
+ * and provides a map to access each item by id
10
+ */
11
+ function createUnfilteredFlatTree(flatTreeItemProps) {
12
+ var _a;
13
+ const root = createRootFlatTreeItem();
14
+ const itemsPerId = new Map([[root.id, root]]);
15
+ const items = [];
16
+ for (let index = 0; index < flatTreeItemProps.length; index++) {
17
+ const {
18
+ parentId = exports.flatTreeRootParentId,
19
+ ...treeItemProps
20
+ } = flatTreeItemProps[index];
21
+ const nextItemProps = flatTreeItemProps[index + 1];
22
+ const currentParent = itemsPerId.get(parentId);
23
+ if (!currentParent) {
24
+ if (process.env.NODE_ENV === 'development') {
25
+ // eslint-disable-next-line no-console
26
+ console.error(`useFlatTree: item ${flatTreeItemProps[index].id} not properly initialized, make sure provided items are organized`);
27
+ }
28
+ break;
29
+ }
30
+ const isLeaf = (nextItemProps === null || nextItemProps === void 0 ? void 0 : nextItemProps.parentId) !== treeItemProps.id;
31
+ const currentLevel = ((_a = currentParent.level) !== null && _a !== void 0 ? _a : 0) + 1;
32
+ const currentChildrenSize = ++currentParent.childrenSize;
33
+ const flatTreeItem = {
34
+ id: treeItemProps.id,
35
+ getTreeItemProps: () => ({
36
+ ...treeItemProps,
37
+ 'aria-level': currentLevel,
38
+ 'aria-posinset': currentChildrenSize,
39
+ 'aria-setsize': currentParent.childrenSize,
40
+ leaf: isLeaf
41
+ }),
42
+ level: currentLevel,
43
+ parentId,
44
+ childrenSize: 0,
45
+ index: -1
46
+ };
47
+ itemsPerId.set(flatTreeItem.id, flatTreeItem);
48
+ items.push(flatTreeItem);
49
+ }
50
+ return {
51
+ items,
52
+ itemsPerId
53
+ };
54
+ }
55
+ exports.createUnfilteredFlatTree = createUnfilteredFlatTree;
56
+ exports.flatTreeRootParentId = '__fuiFlatTreeRoot';
57
+ function createRootFlatTreeItem() {
58
+ return {
59
+ id: exports.flatTreeRootParentId,
60
+ getTreeItemProps: () => {
61
+ if (process.env.NODE_ENV === 'development') {
62
+ // eslint-disable-next-line no-console
63
+ console.error('useFlatTree: internal error, trying to access treeitem props from invalid root element');
64
+ }
65
+ return {
66
+ id: exports.flatTreeRootParentId,
67
+ 'aria-setsize': -1,
68
+ 'aria-level': -1,
69
+ 'aria-posinset': -1,
70
+ leaf: true
71
+ };
72
+ },
73
+ childrenSize: 0,
74
+ get index() {
75
+ if (process.env.NODE_ENV === 'development') {
76
+ // eslint-disable-next-line no-console
77
+ console.error('useFlatTree: internal error, trying to access treeitem props from invalid root element');
78
+ }
79
+ return -1;
80
+ },
81
+ level: 0
82
+ };
83
+ }
84
+ //# sourceMappingURL=createUnfilteredFlatTree.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createUnfilteredFlatTree","flatTreeItemProps","root","createRootFlatTreeItem","itemsPerId","Map","id","items","index","length","parentId","exports","flatTreeRootParentId","treeItemProps","nextItemProps","currentParent","get","process","env","NODE_ENV","console","error","isLeaf","currentLevel","_a","level","currentChildrenSize","childrenSize","flatTreeItem","getTreeItemProps","leaf","set","push"],"sources":["../src/packages/react-components/react-tree/src/utils/createUnfilteredFlatTree.ts"],"sourcesContent":["import { FlatTreeItem, FlatTreeItemProps } from '../hooks/useFlatTree';\n\n/**\n * @internal\n */\nexport type UnfilteredFlatTree = {\n items: FlatTreeItem[];\n itemsPerId: Map<string, FlatTreeItem>;\n};\n\n/**\n * creates a list of flat tree items\n * and provides a map to access each item by id\n */\nexport function createUnfilteredFlatTree(flatTreeItemProps: FlatTreeItemProps[]): UnfilteredFlatTree {\n const root = createRootFlatTreeItem();\n const itemsPerId = new Map<string, FlatTreeItem>([[root.id, root]]);\n const items: FlatTreeItem[] = [];\n\n for (let index = 0; index < flatTreeItemProps.length; index++) {\n const { parentId = flatTreeRootParentId, ...treeItemProps } = flatTreeItemProps[index];\n\n const nextItemProps = flatTreeItemProps[index + 1] as FlatTreeItemProps | undefined;\n const currentParent = itemsPerId.get(parentId);\n if (!currentParent) {\n if (process.env.NODE_ENV === 'development') {\n // eslint-disable-next-line no-console\n console.error(\n `useFlatTree: item ${flatTreeItemProps[index].id} not properly initialized, make sure provided items are organized`,\n );\n }\n break;\n }\n const isLeaf = nextItemProps?.parentId !== treeItemProps.id;\n const currentLevel = (currentParent.level ?? 0) + 1;\n const currentChildrenSize = ++currentParent.childrenSize;\n\n const flatTreeItem: FlatTreeItem = {\n id: treeItemProps.id,\n getTreeItemProps: () => ({\n ...treeItemProps,\n 'aria-level': currentLevel,\n 'aria-posinset': currentChildrenSize,\n 'aria-setsize': currentParent.childrenSize,\n leaf: isLeaf,\n }),\n level: currentLevel,\n parentId,\n childrenSize: 0,\n index: -1,\n };\n itemsPerId.set(flatTreeItem.id, flatTreeItem);\n items.push(flatTreeItem);\n }\n\n return { items, itemsPerId };\n}\n\nexport const flatTreeRootParentId = '__fuiFlatTreeRoot';\n\nfunction createRootFlatTreeItem(): FlatTreeItem {\n return {\n id: flatTreeRootParentId,\n getTreeItemProps: () => {\n if (process.env.NODE_ENV === 'development') {\n // eslint-disable-next-line no-console\n console.error('useFlatTree: internal error, trying to access treeitem props from invalid root element');\n }\n return { id: flatTreeRootParentId, 'aria-setsize': -1, 'aria-level': -1, 'aria-posinset': -1, leaf: true };\n },\n childrenSize: 0,\n get index() {\n if (process.env.NODE_ENV === 'development') {\n // eslint-disable-next-line no-console\n console.error('useFlatTree: internal error, trying to access treeitem props from invalid root element');\n }\n return -1;\n },\n level: 0,\n };\n}\n"],"mappings":";;;;;;AAUA;;;;AAIA,SAAgBA,wBAAwBA,CAACC,iBAAsC;;EAC7E,MAAMC,IAAI,GAAGC,sBAAsB,EAAE;EACrC,MAAMC,UAAU,GAAG,IAAIC,GAAG,CAAuB,CAAC,CAACH,IAAI,CAACI,EAAE,EAAEJ,IAAI,CAAC,CAAC,CAAC;EACnE,MAAMK,KAAK,GAAmB,EAAE;EAEhC,KAAK,IAAIC,KAAK,GAAG,CAAC,EAAEA,KAAK,GAAGP,iBAAiB,CAACQ,MAAM,EAAED,KAAK,EAAE,EAAE;IAC7D,MAAM;MAAEE,QAAQ,GAAGC,OAAA,CAAAC,oBAAoB;MAAE,GAAGC;IAAa,CAAE,GAAGZ,iBAAiB,CAACO,KAAK,CAAC;IAEtF,MAAMM,aAAa,GAAGb,iBAAiB,CAACO,KAAK,GAAG,CAAC,CAAkC;IACnF,MAAMO,aAAa,GAAGX,UAAU,CAACY,GAAG,CAACN,QAAQ,CAAC;IAC9C,IAAI,CAACK,aAAa,EAAE;MAClB,IAAIE,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,aAAa,EAAE;QAC1C;QACAC,OAAO,CAACC,KAAK,CACX,qBAAqBpB,iBAAiB,CAACO,KAAK,CAAC,CAACF,EAAE,mEAAmE,CACpH;;MAEH;;IAEF,MAAMgB,MAAM,GAAG,CAAAR,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEJ,QAAQ,MAAKG,aAAa,CAACP,EAAE;IAC3D,MAAMiB,YAAY,GAAG,CAAC,CAAAC,EAAA,GAAAT,aAAa,CAACU,KAAK,cAAAD,EAAA,cAAAA,EAAA,GAAI,CAAC,IAAI,CAAC;IACnD,MAAME,mBAAmB,GAAG,EAAEX,aAAa,CAACY,YAAY;IAExD,MAAMC,YAAY,GAAiB;MACjCtB,EAAE,EAAEO,aAAa,CAACP,EAAE;MACpBuB,gBAAgB,EAAEA,CAAA,MAAO;QACvB,GAAGhB,aAAa;QAChB,YAAY,EAAEU,YAAY;QAC1B,eAAe,EAAEG,mBAAmB;QACpC,cAAc,EAAEX,aAAa,CAACY,YAAY;QAC1CG,IAAI,EAAER;OACP,CAAC;MACFG,KAAK,EAAEF,YAAY;MACnBb,QAAQ;MACRiB,YAAY,EAAE,CAAC;MACfnB,KAAK,EAAE,CAAC;KACT;IACDJ,UAAU,CAAC2B,GAAG,CAACH,YAAY,CAACtB,EAAE,EAAEsB,YAAY,CAAC;IAC7CrB,KAAK,CAACyB,IAAI,CAACJ,YAAY,CAAC;;EAG1B,OAAO;IAAErB,KAAK;IAAEH;EAAU,CAAE;AAC9B;AA1CAO,OAAA,CAAAX,wBAAA,GAAAA,wBAAA;AA4CaW,OAAA,CAAAC,oBAAoB,GAAG,mBAAmB;AAEvD,SAAST,sBAAsBA,CAAA;EAC7B,OAAO;IACLG,EAAE,EAAEK,OAAA,CAAAC,oBAAoB;IACxBiB,gBAAgB,EAAEA,CAAA,KAAK;MACrB,IAAIZ,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,aAAa,EAAE;QAC1C;QACAC,OAAO,CAACC,KAAK,CAAC,wFAAwF,CAAC;;MAEzG,OAAO;QAAEf,EAAE,EAAEK,OAAA,CAAAC,oBAAoB;QAAE,cAAc,EAAE,CAAC,CAAC;QAAE,YAAY,EAAE,CAAC,CAAC;QAAE,eAAe,EAAE,CAAC,CAAC;QAAEkB,IAAI,EAAE;MAAI,CAAE;IAC5G,CAAC;IACDH,YAAY,EAAE,CAAC;IACf,IAAInB,KAAKA,CAAA;MACP,IAAIS,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,aAAa,EAAE;QAC1C;QACAC,OAAO,CAACC,KAAK,CAAC,wFAAwF,CAAC;;MAEzG,OAAO,CAAC,CAAC;IACX,CAAC;IACDI,KAAK,EAAE;GACR;AACH"}
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createVisibleFlatTree = void 0;
7
+ const createUnfilteredFlatTree_1 = /*#__PURE__*/require("./createUnfilteredFlatTree");
8
+ const tokens_1 = /*#__PURE__*/require("./tokens");
9
+ /**
10
+ * creates methods that depend on the unfilteredFlatTree and the current available openItems
11
+ */
12
+ function createVisibleFlatTree(unfilteredFlatTree, openItems) {
13
+ let visibleItems = null;
14
+ const getNextNavigableItem = data => {
15
+ var _a, _b, _c, _d;
16
+ const item = unfilteredFlatTree.itemsPerId.get(data.target.id);
17
+ if (!item || !visibleItems) {
18
+ return null;
19
+ }
20
+ switch (data.type) {
21
+ case tokens_1.treeDataTypes.arrowLeft:
22
+ return item.parentId ? (_a = unfilteredFlatTree.itemsPerId.get(item.parentId)) !== null && _a !== void 0 ? _a : null : null;
23
+ case tokens_1.treeDataTypes.arrowRight:
24
+ return (_b = visibleItems[item.index + 1]) !== null && _b !== void 0 ? _b : null;
25
+ case tokens_1.treeDataTypes.end:
26
+ return visibleItems[visibleItems.length - 1];
27
+ case tokens_1.treeDataTypes.home:
28
+ return visibleItems[0];
29
+ case tokens_1.treeDataTypes.arrowDown:
30
+ return (_c = visibleItems[item.index + 1]) !== null && _c !== void 0 ? _c : null;
31
+ case tokens_1.treeDataTypes.arrowUp:
32
+ return (_d = visibleItems[item.index - 1]) !== null && _d !== void 0 ? _d : null;
33
+ default:
34
+ return null;
35
+ }
36
+ };
37
+ function* makeVisibleItemsGenerator() {
38
+ var _a;
39
+ visibleItems = [];
40
+ for (let index = 0, visibleIndex = 0; index < unfilteredFlatTree.items.length; index++) {
41
+ const item = unfilteredFlatTree.items[index];
42
+ const parent = unfilteredFlatTree.itemsPerId.get((_a = item.parentId) !== null && _a !== void 0 ? _a : createUnfilteredFlatTree_1.flatTreeRootParentId);
43
+ if (!parent) {
44
+ break;
45
+ }
46
+ if (isFlatTreeItemVisible(item, {
47
+ openItems,
48
+ unfilteredFlatTree
49
+ })) {
50
+ item.index = visibleIndex++;
51
+ visibleItems.push({
52
+ ...item
53
+ });
54
+ yield item;
55
+ } else {
56
+ index += parent.childrenSize - 1 + item.childrenSize;
57
+ }
58
+ }
59
+ }
60
+ return {
61
+ getNextNavigableItem,
62
+ items: () => {
63
+ return visibleItems || makeVisibleItemsGenerator();
64
+ }
65
+ };
66
+ }
67
+ exports.createVisibleFlatTree = createVisibleFlatTree;
68
+ function isFlatTreeItemVisible(item, {
69
+ openItems,
70
+ unfilteredFlatTree: flatTree
71
+ }) {
72
+ if (item.level === 1) {
73
+ return true;
74
+ }
75
+ while (item.parentId && item.parentId !== createUnfilteredFlatTree_1.flatTreeRootParentId) {
76
+ if (!openItems.has(item.parentId)) {
77
+ return false;
78
+ }
79
+ const parent = flatTree.itemsPerId.get(item.parentId);
80
+ if (!parent) {
81
+ return false;
82
+ }
83
+ item = parent;
84
+ }
85
+ return true;
86
+ }
87
+ //# sourceMappingURL=createVisibleFlatTree.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createUnfilteredFlatTree_1","require","tokens_1","createVisibleFlatTree","unfilteredFlatTree","openItems","visibleItems","getNextNavigableItem","data","item","itemsPerId","get","target","id","type","treeDataTypes","arrowLeft","parentId","_a","arrowRight","_b","index","end","length","home","arrowDown","_c","arrowUp","_d","makeVisibleItemsGenerator","visibleIndex","items","parent","flatTreeRootParentId","isFlatTreeItemVisible","push","childrenSize","exports","flatTree","level","has"],"sources":["../src/packages/react-components/react-tree/src/utils/createVisibleFlatTree.ts"],"sourcesContent":["import { FlatTree, FlatTreeItem } from '../hooks/useFlatTree';\nimport { TreeItemId, TreeNavigationData_unstable } from '../Tree';\nimport { flatTreeRootParentId, UnfilteredFlatTree } from './createUnfilteredFlatTree';\nimport { ImmutableSet } from './ImmutableSet';\nimport { treeDataTypes } from './tokens';\n\n/**\n * creates methods that depend on the unfilteredFlatTree and the current available openItems\n */\nexport function createVisibleFlatTree(\n unfilteredFlatTree: UnfilteredFlatTree,\n openItems: ImmutableSet<TreeItemId>,\n): Pick<FlatTree, 'items' | 'getNextNavigableItem'> {\n let visibleItems: FlatTreeItem[] | null = null;\n\n const getNextNavigableItem = (data: TreeNavigationData_unstable): FlatTreeItem | null => {\n const item = unfilteredFlatTree.itemsPerId.get(data.target.id);\n if (!item || !visibleItems) {\n return null;\n }\n switch (data.type) {\n case treeDataTypes.arrowLeft:\n return item.parentId ? unfilteredFlatTree.itemsPerId.get(item.parentId) ?? null : null;\n case treeDataTypes.arrowRight:\n return visibleItems[item.index + 1] ?? null;\n case treeDataTypes.end:\n return visibleItems[visibleItems.length - 1];\n case treeDataTypes.home:\n return visibleItems[0];\n case treeDataTypes.arrowDown:\n return visibleItems[item.index + 1] ?? null;\n case treeDataTypes.arrowUp:\n return visibleItems[item.index - 1] ?? null;\n default:\n return null;\n }\n };\n\n function* makeVisibleItemsGenerator() {\n visibleItems = [];\n for (let index = 0, visibleIndex = 0; index < unfilteredFlatTree.items.length; index++) {\n const item = unfilteredFlatTree.items[index];\n const parent = unfilteredFlatTree.itemsPerId.get(item.parentId ?? flatTreeRootParentId);\n if (!parent) {\n break;\n }\n if (isFlatTreeItemVisible(item, { openItems, unfilteredFlatTree })) {\n item.index = visibleIndex++;\n visibleItems.push({ ...item });\n yield item;\n } else {\n index += parent.childrenSize - 1 + item.childrenSize;\n }\n }\n }\n\n return {\n getNextNavigableItem,\n items: () => {\n return visibleItems || makeVisibleItemsGenerator();\n },\n };\n}\n\nfunction isFlatTreeItemVisible(\n item: FlatTreeItem,\n {\n openItems,\n unfilteredFlatTree: flatTree,\n }: {\n openItems: ImmutableSet<TreeItemId>;\n unfilteredFlatTree: UnfilteredFlatTree;\n },\n) {\n if (item.level === 1) {\n return true;\n }\n while (item.parentId && item.parentId !== flatTreeRootParentId) {\n if (!openItems.has(item.parentId)) {\n return false;\n }\n const parent = flatTree.itemsPerId.get(item.parentId);\n if (!parent) {\n return false;\n }\n item = parent;\n }\n\n return true;\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"names":["count","flattenTreeRecursive_unstable","items","parent","level","flatTreeItems","index","length","subtree","item","flatTreeItem","parentId","id","_a","leaf","undefined","push","exports","flattenTree_unstable"],"sources":["../../../../../../../../packages/react-components/react-tree/src/utils/flattenTree.ts"],"sourcesContent":["import { FlatTreeItem } from '../hooks/useFlatTreeItems';\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(items: NestedTreeItem[], parent?: FlatTreeItem, level = 1): FlatTreeItem[] {\n const flatTreeItems: FlatTreeItem[] = [];\n for (let index = 0; index < items.length; index++) {\n const { subtree, ...item } = items[index];\n const flatTreeItem: FlatTreeItem = {\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[]) => FlatTreeItem[] = flattenTreeRecursive_unstable;\n"],"mappings":";;;;;;AAOA,IAAIA,KAAK,GAAG,CAAC;AAEb;AACA,SAASC,6BAA6BA,CAACC,KAAuB,EAAEC,MAAqB,EAAEC,KAAK,GAAG,CAAC;;EAC9F,MAAMC,aAAa,GAAmB,EAAE;EACxC,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,GAAiB;MACjC,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;AACaY,OAAA,CAAAC,oBAAoB,GAAgDjB,6BAA6B"}
1
+ {"version":3,"names":["count","flattenTreeRecursive_unstable","items","parent","level","flatTreeItems","index","length","subtree","item","flatTreeItem","parentId","id","_a","leaf","undefined","push","exports","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;AACaY,OAAA,CAAAC,oBAAoB,GAAqDjB,6BAA6B"}
@@ -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","exports"],"sources":["../../../../../../../../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,SAAgBA,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;AAbAG,OAAA,CAAAjB,oBAAA,GAAAA,oBAAA"}
1
+ {"version":3,"names":["nextTypeAheadElement","treeWalker","key","keyToLowerCase","toLowerCase","typeAheadFilter","element","_a","textContent","trim","charAt","NodeFilter","FILTER_ACCEPT","FILTER_SKIP","nextElement","currentElement","root","exports"],"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,SAAgBA,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;AAbAG,OAAA,CAAAjB,oBAAA,GAAAA,oBAAA"}
@@ -1 +1 @@
1
- {"version":3,"names":["normalizeOpenItems","openSubtrees","options","keepUndefined","undefined","Array","isArray","exports"],"sources":["../../../../../../../../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,SAAgBA,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;AAVAM,OAAA,CAAAP,kBAAA,GAAAA,kBAAA"}
1
+ {"version":3,"names":["normalizeOpenItems","openSubtrees","options","keepUndefined","undefined","Array","isArray","exports"],"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,SAAgBA,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;AAVAM,OAAA,CAAAP,kBAAA,GAAAA,kBAAA"}
@@ -1 +1 @@
1
- {"version":3,"names":["keyboard_keys_1","require","exports","treeItemLevelToken","treeAvatarSize","medium","small","treeDataTypes","arrowLeft","ArrowLeft","arrowRight","ArrowRight","enter","click","expandIconClick","end","End","home","Home","arrowUp","ArrowUp","arrowDown","ArrowDown","typeAhead"],"sources":["../../../../../../../../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,MAAAA,eAAA,gBAAAC,OAAA;AAGaC,OAAA,CAAAC,kBAAkB,GAAG,0BAAmC;AAExDD,OAAA,CAAAE,cAAc,GAAG;EAC5BC,MAAM,EAAE,EAAE;EACVC,KAAK,EAAE;CACC;AAEGJ,OAAA,CAAAK,aAAa,GAEtB;EACFC,SAAS,EAAER,eAAA,CAAAS,SAAS;EACpBC,UAAU,EAAEV,eAAA,CAAAW,UAAU;EACtBC,KAAK,EAAE,OAAO;EACdC,KAAK,EAAE,OAAO;EACdC,eAAe,EAAE,iBAAiB;EAClCC,GAAG,EAAEf,eAAA,CAAAgB,GAAG;EACRC,IAAI,EAAEjB,eAAA,CAAAkB,IAAI;EACVC,OAAO,EAAEnB,eAAA,CAAAoB,OAAO;EAChBC,SAAS,EAAErB,eAAA,CAAAsB,SAAS;EACpBC,SAAS,EAAE;CACZ"}
1
+ {"version":3,"names":["keyboard_keys_1","require","exports","treeItemLevelToken","treeAvatarSize","medium","small","treeDataTypes","arrowLeft","ArrowLeft","arrowRight","ArrowRight","enter","click","expandIconClick","end","End","home","Home","arrowUp","ArrowUp","arrowDown","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,MAAAA,eAAA,gBAAAC,OAAA;AAGaC,OAAA,CAAAC,kBAAkB,GAAG,0BAAmC;AAExDD,OAAA,CAAAE,cAAc,GAAG;EAC5BC,MAAM,EAAE,EAAE;EACVC,KAAK,EAAE;CACC;AAEGJ,OAAA,CAAAK,aAAa,GAEtB;EACFC,SAAS,EAAER,eAAA,CAAAS,SAAS;EACpBC,UAAU,EAAEV,eAAA,CAAAW,UAAU;EACtBC,KAAK,EAAE,OAAO;EACdC,KAAK,EAAE,OAAO;EACdC,eAAe,EAAE,iBAAiB;EAClCC,GAAG,EAAEf,eAAA,CAAAgB,GAAG;EACRC,IAAI,EAAEjB,eAAA,CAAAkB,IAAI;EACVC,OAAO,EAAEnB,eAAA,CAAAoB,OAAO;EAChBC,SAAS,EAAErB,eAAA,CAAAsB,SAAS;EACpBC,SAAS,EAAE;CACZ"}
@@ -1 +1 @@
1
- {"version":3,"names":["treeItemFilter","element","getAttribute","NodeFilter","FILTER_ACCEPT","FILTER_SKIP","exports"],"sources":["../../../../../../../../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":";;;;;;AAAO,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;AAFYC,OAAA,CAAAN,cAAc,GAAAA,cAAA"}
1
+ {"version":3,"names":["treeItemFilter","element","getAttribute","NodeFilter","FILTER_ACCEPT","FILTER_SKIP","exports"],"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":";;;;;;AAAO,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;AAFYC,OAAA,CAAAN,cAAc,GAAAA,cAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fluentui/react-tree",
3
- "version": "0.0.0-nightly-20230310-0421.1",
3
+ "version": "9.0.0-beta.2",
4
4
  "description": "React components for building web experiences",
5
5
  "main": "lib-commonjs/index.js",
6
6
  "module": "lib/index.js",
@@ -26,22 +26,22 @@
26
26
  "devDependencies": {
27
27
  "@fluentui/eslint-plugin": "*",
28
28
  "@fluentui/react-conformance": "*",
29
- "@fluentui/react-conformance-griffel": "0.0.0-nightly-20230310-0421.1",
29
+ "@fluentui/react-conformance-griffel": "9.0.0-beta.19",
30
30
  "@fluentui/scripts-api-extractor": "*",
31
31
  "@fluentui/scripts-tasks": "*",
32
32
  "react-window": "^1.8.6"
33
33
  },
34
34
  "dependencies": {
35
- "@fluentui/react-context-selector": "0.0.0-nightly-20230310-0421.1",
36
- "@fluentui/react-shared-contexts": "0.0.0-nightly-20230310-0421.1",
37
- "@fluentui/react-avatar": "0.0.0-nightly-20230310-0421.1",
38
- "@fluentui/react-aria": "0.0.0-nightly-20230310-0421.1",
39
- "@fluentui/react-tabster": "0.0.0-nightly-20230310-0421.1",
40
- "@fluentui/react-portal": "0.0.0-nightly-20230310-0421.1",
41
- "@fluentui/react-button": "0.0.0-nightly-20230310-0421.1",
42
- "@fluentui/keyboard-keys": "0.0.0-nightly-20230310-0421.1",
43
- "@fluentui/react-theme": "0.0.0-nightly-20230310-0421.1",
44
- "@fluentui/react-utilities": "0.0.0-nightly-20230310-0421.1",
35
+ "@fluentui/react-context-selector": "^9.1.12",
36
+ "@fluentui/react-shared-contexts": "^9.3.0",
37
+ "@fluentui/react-avatar": "^9.4.1",
38
+ "@fluentui/react-aria": "^9.3.12",
39
+ "@fluentui/react-tabster": "^9.5.5",
40
+ "@fluentui/react-portal": "^9.1.11",
41
+ "@fluentui/react-button": "^9.3.1",
42
+ "@fluentui/keyboard-keys": "^9.0.1",
43
+ "@fluentui/react-theme": "^9.1.5",
44
+ "@fluentui/react-utilities": "^9.6.2",
45
45
  "@fluentui/react-icons": "^2.0.175",
46
46
  "@griffel/react": "^1.5.2",
47
47
  "tslib": "^2.1.0"
@@ -52,7 +52,13 @@
52
52
  "react": ">=16.8.0 <19.0.0",
53
53
  "react-dom": ">=16.8.0 <19.0.0"
54
54
  },
55
- "beachball": {},
55
+ "beachball": {
56
+ "disallowedChangeTypes": [
57
+ "major",
58
+ "minor",
59
+ "patch"
60
+ ]
61
+ },
56
62
  "exports": {
57
63
  ".": {
58
64
  "types": "./dist/index.d.ts",
@@ -1,134 +0,0 @@
1
- import { useEventCallback } from '@fluentui/react-utilities';
2
- import * as React from 'react';
3
- import { useFlatTreeNavigation } from './useFlatTreeNavigation';
4
- import { useOpenItemsState } from './useOpenItemsState';
5
- export function useFlatTreeItems_unstable(items, options) {
6
- const references = React.useMemo(() => createTreeItemPropsRefs(items), [items]);
7
- const [openItems, updateOpenItems] = useOpenItemsState(options !== null && options !== void 0 ? options : {});
8
- const [navigate, treeRef] = useFlatTreeNavigation(references);
9
- const handleOpenChange = useEventCallback((event, data) => {
10
- event.preventDefault();
11
- updateOpenItems(data);
12
- });
13
- const handleNavigation = useEventCallback((event, data) => {
14
- event.preventDefault();
15
- navigate(data);
16
- });
17
- const lazyFlatTreeItems = React.useMemo(() => createLazyFlatTreeItems(references, {
18
- filter: item => isTreeItemVisible(item, {
19
- openItems,
20
- references
21
- })
22
- }), [references, openItems]);
23
- return [{
24
- ref: treeRef,
25
- openItems,
26
- onOpenChange: handleOpenChange,
27
- // eslint-disable-next-line @typescript-eslint/naming-convention
28
- onNavigation_unstable: handleNavigation
29
- }, lazyFlatTreeItems];
30
- }
31
- function isTreeItemVisible(itemRef, {
32
- openItems,
33
- references
34
- }) {
35
- if (itemRef.props['aria-level'] === 1) {
36
- return true;
37
- }
38
- while (itemRef.parentId !== undefined) {
39
- if (!openItems.has(itemRef.parentId)) {
40
- return false;
41
- }
42
- const parent = references.getParent(itemRef);
43
- if (!parent) {
44
- return false;
45
- }
46
- itemRef = parent;
47
- }
48
- return true;
49
- }
50
- function createTreeItemPropsRefs(flatTreeItemProps) {
51
- var _a, _b;
52
- const root = {
53
- props: {
54
- id: 'root',
55
- leaf: false,
56
- 'aria-level': 0,
57
- 'aria-posinset': 0
58
- },
59
- childrenSize: 0,
60
- index: -1
61
- };
62
- const treeItemPropsRefsPerId = new Map();
63
- const refs = [];
64
- for (let index = 0; index < flatTreeItemProps.length; index++) {
65
- const {
66
- parentId,
67
- ...treeItemProps
68
- } = flatTreeItemProps[index];
69
- const nextPartialItem = flatTreeItemProps[index + 1];
70
- const currentParentRef = parentId ? (_a = treeItemPropsRefsPerId.get(parentId)) !== null && _a !== void 0 ? _a : root : root;
71
- const isLeaf = (nextPartialItem === null || nextPartialItem === void 0 ? void 0 : nextPartialItem.parentId) !== treeItemProps.id;
72
- const currentLevel = ((_b = currentParentRef.props['aria-level']) !== null && _b !== void 0 ? _b : 0) + 1;
73
- currentParentRef.childrenSize++;
74
- const treeItemPropsRef = {
75
- props: {
76
- ...treeItemProps,
77
- 'aria-level': currentLevel,
78
- 'aria-posinset': currentParentRef.childrenSize,
79
- leaf: isLeaf
80
- },
81
- parentId,
82
- childrenSize: 0,
83
- index: -1
84
- };
85
- treeItemPropsRefsPerId.set(treeItemPropsRef.props.id, treeItemPropsRef);
86
- refs.push(treeItemPropsRef);
87
- }
88
- function getParent(itemRef) {
89
- const parentRef = itemRef.parentId ? treeItemPropsRefsPerId.get(itemRef.parentId) : root;
90
- return parentRef !== null && parentRef !== void 0 ? parentRef : null;
91
- }
92
- function get(id) {
93
- var _a;
94
- return (_a = treeItemPropsRefsPerId.get(id)) !== null && _a !== void 0 ? _a : null;
95
- }
96
- return {
97
- refs,
98
- getParent,
99
- get
100
- };
101
- }
102
- function createLazyFlatTreeItems(treeItemPropsRefs, {
103
- filter = () => true
104
- }) {
105
- const flatTreeItems = {
106
- get: treeItemPropsRefs.get,
107
- toArray: () => flatTreeItems.map(identity),
108
- map: fn => {
109
- const items = [];
110
- for (let index = 0; index < treeItemPropsRefs.refs.length; index++) {
111
- const currentItemRef = treeItemPropsRefs.refs[index];
112
- const currentParentRef = treeItemPropsRefs.getParent(currentItemRef);
113
- if (!currentParentRef) {
114
- break;
115
- }
116
- if (filter(currentItemRef)) {
117
- currentItemRef.index = index;
118
- items.push(fn({
119
- ...currentItemRef.props,
120
- 'aria-setsize': currentParentRef.childrenSize
121
- }));
122
- } else {
123
- index += currentParentRef.childrenSize - 1 + currentItemRef.childrenSize;
124
- }
125
- }
126
- return items;
127
- }
128
- };
129
- return flatTreeItems;
130
- }
131
- function identity(item) {
132
- return item;
133
- }
134
- //# sourceMappingURL=useFlatTreeItems.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["useEventCallback","React","useFlatTreeNavigation","useOpenItemsState","useFlatTreeItems_unstable","items","options","references","useMemo","createTreeItemPropsRefs","openItems","updateOpenItems","navigate","treeRef","handleOpenChange","event","data","preventDefault","handleNavigation","lazyFlatTreeItems","createLazyFlatTreeItems","filter","item","isTreeItemVisible","ref","onOpenChange","onNavigation_unstable","itemRef","props","parentId","undefined","has","parent","getParent","flatTreeItemProps","root","id","leaf","childrenSize","index","treeItemPropsRefsPerId","Map","refs","length","treeItemProps","nextPartialItem","currentParentRef","_a","get","isLeaf","currentLevel","_b","treeItemPropsRef","set","push","parentRef","treeItemPropsRefs","flatTreeItems","toArray","map","identity","fn","currentItemRef"],"sources":["../../../../../../../../packages/react-components/react-tree/src/hooks/useFlatTreeItems.ts"],"sourcesContent":["import { useEventCallback } from '@fluentui/react-utilities';\nimport * as React from 'react';\nimport {\n TreeItemId,\n TreeNavigationData_unstable,\n TreeNavigationEvent_unstable,\n TreeOpenChangeData,\n TreeOpenChangeEvent,\n TreeProps,\n} from '../Tree';\nimport { TreeItemProps } from '../TreeItem';\nimport { ImmutableSet } from '../utils/ImmutableSet';\nimport { useFlatTreeNavigation } from './useFlatTreeNavigation';\nimport { useOpenItemsState } from './useOpenItemsState';\n\nexport type FlatTreeItem = Required<Pick<TreeItemProps, 'id'>> &\n TreeItemProps & {\n parentId?: string;\n };\n\nexport type FlatTreeItemProps = Required<\n Pick<TreeItemProps, 'id' | 'aria-level' | 'aria-posinset' | 'leaf' | 'aria-setsize'>\n> &\n TreeItemProps;\n\ntype TreeItemPropsReference = {\n props: Required<Pick<TreeItemProps, 'id' | 'aria-level' | 'aria-posinset' | 'leaf'>> & TreeItemProps;\n parentId?: string;\n childrenSize: number;\n index: number;\n};\n\nexport type TreeItemPropsReferences = {\n refs: TreeItemPropsReference[];\n getParent(ref: TreeItemPropsReference): TreeItemPropsReference | null;\n get(id: string): TreeItemPropsReference | null;\n};\n\ntype LazyArray<Value> = {\n map<NextValue>(fn: (child: Value) => NextValue): NextValue[];\n toArray(): Value[];\n};\n\nexport type FlatTreeProps = Required<\n Pick<TreeProps, 'openItems' | 'onOpenChange' | 'onNavigation_unstable'> & { ref: React.Ref<HTMLDivElement> }\n>;\nexport type LazyFlatTreeItems = LazyArray<FlatTreeItemProps> & {\n get(id: string): TreeItemPropsReference | null;\n};\n\nexport type UseFlatTreeItemsOptions = Pick<TreeProps, 'openItems' | 'defaultOpenItems'>;\n\nexport function useFlatTreeItems_unstable(\n items: FlatTreeItem[],\n options?: UseFlatTreeItemsOptions,\n): readonly [FlatTreeProps, LazyFlatTreeItems] {\n const references = React.useMemo(() => createTreeItemPropsRefs(items), [items]);\n const [openItems, updateOpenItems] = useOpenItemsState(options ?? {});\n const [navigate, treeRef] = useFlatTreeNavigation(references);\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 lazyFlatTreeItems = React.useMemo(\n () =>\n createLazyFlatTreeItems(references, {\n filter: item => isTreeItemVisible(item, { openItems, references }),\n }),\n [references, openItems],\n );\n\n return [\n {\n ref: treeRef as React.Ref<HTMLDivElement>,\n openItems,\n onOpenChange: handleOpenChange,\n // eslint-disable-next-line @typescript-eslint/naming-convention\n onNavigation_unstable: handleNavigation,\n },\n lazyFlatTreeItems,\n ];\n}\n\nfunction isTreeItemVisible(\n itemRef: TreeItemPropsReference,\n {\n openItems,\n references,\n }: {\n openItems: ImmutableSet<TreeItemId>;\n references: TreeItemPropsReferences;\n },\n) {\n if (itemRef.props['aria-level'] === 1) {\n return true;\n }\n while (itemRef.parentId !== undefined) {\n if (!openItems.has(itemRef.parentId)) {\n return false;\n }\n const parent = references.getParent(itemRef);\n if (!parent) {\n return false;\n }\n itemRef = parent;\n }\n return true;\n}\n\nfunction createTreeItemPropsRefs(flatTreeItemProps: FlatTreeItem[]): TreeItemPropsReferences {\n const root: TreeItemPropsReference = {\n props: { id: 'root', leaf: false, 'aria-level': 0, 'aria-posinset': 0 },\n childrenSize: 0,\n index: -1,\n };\n const treeItemPropsRefsPerId = new Map<string, TreeItemPropsReference>();\n const refs: TreeItemPropsReference[] = [];\n\n for (let index = 0; index < flatTreeItemProps.length; index++) {\n const { parentId, ...treeItemProps } = flatTreeItemProps[index];\n\n const nextPartialItem = flatTreeItemProps[index + 1] as FlatTreeItem | undefined;\n const currentParentRef = parentId ? treeItemPropsRefsPerId.get(parentId) ?? root : root;\n const isLeaf = nextPartialItem?.parentId !== treeItemProps.id;\n const currentLevel = (currentParentRef.props['aria-level'] ?? 0) + 1;\n currentParentRef.childrenSize++;\n\n const treeItemPropsRef: TreeItemPropsReference = {\n props: {\n ...treeItemProps,\n 'aria-level': currentLevel,\n 'aria-posinset': currentParentRef.childrenSize,\n leaf: isLeaf,\n },\n parentId,\n childrenSize: 0,\n index: -1,\n };\n treeItemPropsRefsPerId.set(treeItemPropsRef.props.id, treeItemPropsRef);\n refs.push(treeItemPropsRef);\n }\n\n function getParent(itemRef: TreeItemPropsReference): TreeItemPropsReference | null {\n const parentRef = itemRef.parentId ? treeItemPropsRefsPerId.get(itemRef.parentId) : root;\n return parentRef ?? null;\n }\n function get(id: string): TreeItemPropsReference | null {\n return treeItemPropsRefsPerId.get(id) ?? null;\n }\n\n return { refs, getParent, get };\n}\n\nfunction createLazyFlatTreeItems(\n treeItemPropsRefs: TreeItemPropsReferences,\n { filter = () => true }: { filter: (item: TreeItemPropsReference) => boolean },\n): LazyFlatTreeItems {\n const flatTreeItems: LazyFlatTreeItems = {\n get: treeItemPropsRefs.get,\n toArray: () => flatTreeItems.map(identity),\n map: fn => {\n const items: ReturnType<typeof fn>[] = [];\n for (let index = 0; index < treeItemPropsRefs.refs.length; index++) {\n const currentItemRef = treeItemPropsRefs.refs[index];\n const currentParentRef = treeItemPropsRefs.getParent(currentItemRef);\n if (!currentParentRef) {\n break;\n }\n if (filter(currentItemRef)) {\n currentItemRef.index = index;\n items.push(fn({ ...currentItemRef.props, 'aria-setsize': currentParentRef.childrenSize }));\n } else {\n index += currentParentRef.childrenSize - 1 + currentItemRef.childrenSize;\n }\n }\n return items;\n },\n };\n return flatTreeItems;\n}\n\nfunction identity<T>(item: T) {\n return item;\n}\n"],"mappings":"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"}