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

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 (36) hide show
  1. package/CHANGELOG.json +16 -1
  2. package/CHANGELOG.md +11 -2
  3. package/dist/index.d.ts +42 -23
  4. package/lib/components/Tree/Tree.types.js.map +1 -1
  5. package/lib/components/TreeItem/TreeItem.js +10 -1
  6. package/lib/components/TreeItem/TreeItem.js.map +1 -1
  7. package/lib/components/TreeItem/TreeItem.types.js.map +1 -1
  8. package/lib/components/TreeItemLayout/TreeItemLayout.js +3 -1
  9. package/lib/components/TreeItemLayout/TreeItemLayout.js.map +1 -1
  10. package/lib/components/TreeItemPersonaLayout/TreeItemPersonaLayout.js +3 -1
  11. package/lib/components/TreeItemPersonaLayout/TreeItemPersonaLayout.js.map +1 -1
  12. package/lib/contexts/treeContext.js.map +1 -1
  13. package/lib/hooks/useFlatTree.js +42 -20
  14. package/lib/hooks/useFlatTree.js.map +1 -1
  15. package/lib/hooks/useFlatTreeNavigation.js +7 -7
  16. package/lib/hooks/useFlatTreeNavigation.js.map +1 -1
  17. package/lib/hooks/useOpenItemsState.js.map +1 -1
  18. package/lib/index.js.map +1 -1
  19. package/lib/utils/{createUnfilteredFlatTree.js → createFlatTreeItems.js} +47 -14
  20. package/lib/utils/createFlatTreeItems.js.map +1 -0
  21. package/lib-commonjs/components/TreeItem/TreeItem.js.map +1 -1
  22. package/lib-commonjs/components/TreeItemLayout/TreeItemLayout.js.map +1 -1
  23. package/lib-commonjs/components/TreeItemPersonaLayout/TreeItemPersonaLayout.js.map +1 -1
  24. package/lib-commonjs/hooks/useFlatTree.js +51 -23
  25. package/lib-commonjs/hooks/useFlatTree.js.map +1 -1
  26. package/lib-commonjs/hooks/useFlatTreeNavigation.js +6 -6
  27. package/lib-commonjs/hooks/useFlatTreeNavigation.js.map +1 -1
  28. package/lib-commonjs/utils/{createUnfilteredFlatTree.js → createFlatTreeItems.js} +50 -17
  29. package/lib-commonjs/utils/createFlatTreeItems.js.map +1 -0
  30. package/package.json +6 -6
  31. package/lib/utils/createUnfilteredFlatTree.js.map +0 -1
  32. package/lib/utils/createVisibleFlatTree.js +0 -83
  33. package/lib/utils/createVisibleFlatTree.js.map +0 -1
  34. package/lib-commonjs/utils/createUnfilteredFlatTree.js.map +0 -1
  35. package/lib-commonjs/utils/createVisibleFlatTree.js +0 -86
  36. package/lib-commonjs/utils/createVisibleFlatTree.js.map +0 -1
@@ -1 +0,0 @@
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 +0,0 @@
1
- {"version":3,"sources":["../../lib/utils/createUnfilteredFlatTree.js"],"sourcesContent":["/**\n * creates a list of flat tree items\n * and provides a map to access each item by id\n */export function createUnfilteredFlatTree(flatTreeItemProps) {\n const root = createRootFlatTreeItem();\n const itemsPerId = new Map([[root.id, root]]);\n const items = [];\n for (let index = 0; index < flatTreeItemProps.length; index++) {\n const {\n parentId = flatTreeRootParentId,\n ...treeItemProps\n } = flatTreeItemProps[index];\n const nextItemProps = flatTreeItemProps[index + 1];\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(`useFlatTree: item ${flatTreeItemProps[index].id} not properly initialized, make sure provided items are organized`);\n }\n break;\n }\n const isLeaf = (nextItemProps === null || nextItemProps === void 0 ? void 0 : nextItemProps.parentId) !== treeItemProps.id;\n var _currentParent_level;\n const currentLevel = ((_currentParent_level = currentParent.level) !== null && _currentParent_level !== void 0 ? _currentParent_level : 0) + 1;\n const currentChildrenSize = ++currentParent.childrenSize;\n const 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 return {\n items,\n itemsPerId\n };\n}\nexport const flatTreeRootParentId = '__fuiFlatTreeRoot';\nfunction createRootFlatTreeItem() {\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 {\n id: flatTreeRootParentId,\n 'aria-setsize': -1,\n 'aria-level': -1,\n 'aria-posinset': -1,\n leaf: true\n };\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//# sourceMappingURL=createUnfilteredFlatTree.js.map"],"names":["createUnfilteredFlatTree","flatTreeRootParentId","flatTreeItemProps","root","createRootFlatTreeItem","itemsPerId","Map","id","items","index","length","parentId","treeItemProps","nextItemProps","currentParent","get","process","env","NODE_ENV","console","error","isLeaf","_currentParent_level","currentLevel","level","currentChildrenSize","childrenSize","flatTreeItem","getTreeItemProps","leaf","set","push"],"mappings":"AAAA;;;CAGC;;;;;;;;;;;IAAkBA,wBAAwB,MAAxBA;IA4CNC,oBAAoB,MAApBA;;AA5CH,SAASD,yBAAyBE,iBAAiB,EAAE;IAC7D,MAAMC,OAAOC;IACb,MAAMC,aAAa,IAAIC,IAAI;QAAC;YAACH,KAAKI,EAAE;YAAEJ;SAAK;KAAC;IAC5C,MAAMK,QAAQ,EAAE;IAChB,IAAK,IAAIC,QAAQ,GAAGA,QAAQP,kBAAkBQ,MAAM,EAAED,QAAS;QAC7D,MAAM,EACJE,UAAWV,qBAAoB,EAC/B,GAAGW,eACJ,GAAGV,iBAAiB,CAACO,MAAM;QAC5B,MAAMI,gBAAgBX,iBAAiB,CAACO,QAAQ,EAAE;QAClD,MAAMK,gBAAgBT,WAAWU,GAAG,CAACJ;QACrC,IAAI,CAACG,eAAe;YAClB,IAAIE,QAAQC,GAAG,CAACC,QAAQ,KAAK,eAAe;gBAC1C,sCAAsC;gBACtCC,QAAQC,KAAK,CAAC,CAAC,kBAAkB,EAAElB,iBAAiB,CAACO,MAAM,CAACF,EAAE,CAAC,iEAAiE,CAAC;YACnI,CAAC;YACD,KAAM;QACR,CAAC;QACD,MAAMc,SAAS,AAACR,CAAAA,kBAAkB,IAAI,IAAIA,kBAAkB,KAAK,IAAI,KAAK,IAAIA,cAAcF,QAAQ,AAAD,MAAOC,cAAcL,EAAE;QAC1H,IAAIe;QACJ,MAAMC,eAAe,AAAC,CAAA,AAACD,CAAAA,uBAAuBR,cAAcU,KAAK,AAAD,MAAO,IAAI,IAAIF,yBAAyB,KAAK,IAAIA,uBAAuB,CAAC,AAAD,IAAK;QAC7I,MAAMG,sBAAsB,EAAEX,cAAcY,YAAY;QACxD,MAAMC,eAAe;YACnBpB,IAAIK,cAAcL,EAAE;YACpBqB,kBAAkB,IAAO,CAAA;oBACvB,GAAGhB,aAAa;oBAChB,cAAcW;oBACd,iBAAiBE;oBACjB,gBAAgBX,cAAcY,YAAY;oBAC1CG,MAAMR;gBACR,CAAA;YACAG,OAAOD;YACPZ;YACAe,cAAc;YACdjB,OAAO,CAAC;QACV;QACAJ,WAAWyB,GAAG,CAACH,aAAapB,EAAE,EAAEoB;QAChCnB,MAAMuB,IAAI,CAACJ;IACb;IACA,OAAO;QACLnB;QACAH;IACF;AACF;AACO,MAAMJ,uBAAuB;AACpC,SAASG,yBAAyB;IAChC,OAAO;QACLG,IAAIN;QACJ2B,kBAAkB,IAAM;YACtB,IAAIZ,QAAQC,GAAG,CAACC,QAAQ,KAAK,eAAe;gBAC1C,sCAAsC;gBACtCC,QAAQC,KAAK,CAAC;YAChB,CAAC;YACD,OAAO;gBACLb,IAAIN;gBACJ,gBAAgB,CAAC;gBACjB,cAAc,CAAC;gBACf,iBAAiB,CAAC;gBAClB4B,MAAM,IAAI;YACZ;QACF;QACAH,cAAc;QACd,IAAIjB,SAAQ;YACV,IAAIO,QAAQC,GAAG,CAACC,QAAQ,KAAK,eAAe;gBAC1C,sCAAsC;gBACtCC,QAAQC,KAAK,CAAC;YAChB,CAAC;YACD,OAAO,CAAC;QACV;QACAI,OAAO;IACT;AACF,EACA,oDAAoD"}
@@ -1,86 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "createVisibleFlatTree", {
6
- enumerable: true,
7
- get: ()=>createVisibleFlatTree
8
- });
9
- const _createUnfilteredFlatTree = require("./createUnfilteredFlatTree");
10
- const _tokens = require("./tokens");
11
- function createVisibleFlatTree(unfilteredFlatTree, openItems) {
12
- let visibleItems = null;
13
- const getNextNavigableItem = (data)=>{
14
- const item = unfilteredFlatTree.itemsPerId.get(data.target.id);
15
- if (!item || !visibleItems) {
16
- return null;
17
- }
18
- switch(data.type){
19
- case _tokens.treeDataTypes.arrowLeft:
20
- var _unfilteredFlatTree_itemsPerId_get;
21
- return item.parentId ? (_unfilteredFlatTree_itemsPerId_get = unfilteredFlatTree.itemsPerId.get(item.parentId)) !== null && _unfilteredFlatTree_itemsPerId_get !== void 0 ? _unfilteredFlatTree_itemsPerId_get : null : null;
22
- case _tokens.treeDataTypes.arrowRight:
23
- var _visibleItems_;
24
- return (_visibleItems_ = visibleItems[item.index + 1]) !== null && _visibleItems_ !== void 0 ? _visibleItems_ : null;
25
- case _tokens.treeDataTypes.end:
26
- return visibleItems[visibleItems.length - 1];
27
- case _tokens.treeDataTypes.home:
28
- return visibleItems[0];
29
- case _tokens.treeDataTypes.arrowDown:
30
- var _visibleItems_1;
31
- return (_visibleItems_1 = visibleItems[item.index + 1]) !== null && _visibleItems_1 !== void 0 ? _visibleItems_1 : null;
32
- case _tokens.treeDataTypes.arrowUp:
33
- var _visibleItems_2;
34
- return (_visibleItems_2 = visibleItems[item.index - 1]) !== null && _visibleItems_2 !== void 0 ? _visibleItems_2 : null;
35
- default:
36
- return null;
37
- }
38
- };
39
- function* makeVisibleItemsGenerator() {
40
- visibleItems = [];
41
- for(let index = 0, visibleIndex = 0; index < unfilteredFlatTree.items.length; index++){
42
- const item = unfilteredFlatTree.items[index];
43
- var _item_parentId;
44
- const parent = unfilteredFlatTree.itemsPerId.get((_item_parentId = item.parentId) !== null && _item_parentId !== void 0 ? _item_parentId : _createUnfilteredFlatTree.flatTreeRootParentId);
45
- if (!parent) {
46
- break;
47
- }
48
- if (isFlatTreeItemVisible(item, {
49
- openItems,
50
- unfilteredFlatTree
51
- })) {
52
- item.index = visibleIndex++;
53
- visibleItems.push({
54
- ...item
55
- });
56
- yield item;
57
- } else {
58
- index += parent.childrenSize - 1 + item.childrenSize;
59
- }
60
- }
61
- }
62
- return {
63
- getNextNavigableItem,
64
- items: ()=>{
65
- return visibleItems || makeVisibleItemsGenerator();
66
- }
67
- };
68
- }
69
- function isFlatTreeItemVisible(item, { openItems , unfilteredFlatTree: flatTree }) {
70
- if (item.level === 1) {
71
- return true;
72
- }
73
- while(item.parentId && item.parentId !== _createUnfilteredFlatTree.flatTreeRootParentId){
74
- if (!openItems.has(item.parentId)) {
75
- return false;
76
- }
77
- const parent = flatTree.itemsPerId.get(item.parentId);
78
- if (!parent) {
79
- return false;
80
- }
81
- item = parent;
82
- }
83
- return true;
84
- } //# sourceMappingURL=createVisibleFlatTree.js.map
85
-
86
- //# sourceMappingURL=createVisibleFlatTree.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../lib/utils/createVisibleFlatTree.js"],"sourcesContent":["import { flatTreeRootParentId } from './createUnfilteredFlatTree';\nimport { treeDataTypes } from './tokens';\n/**\n * creates methods that depend on the unfilteredFlatTree and the current available openItems\n */\nexport function createVisibleFlatTree(unfilteredFlatTree, openItems) {\n let visibleItems = null;\n const getNextNavigableItem = data => {\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 var _unfilteredFlatTree_itemsPerId_get;\n return item.parentId ? (_unfilteredFlatTree_itemsPerId_get = unfilteredFlatTree.itemsPerId.get(item.parentId)) !== null && _unfilteredFlatTree_itemsPerId_get !== void 0 ? _unfilteredFlatTree_itemsPerId_get : null : null;\n case treeDataTypes.arrowRight:\n var _visibleItems_;\n return (_visibleItems_ = visibleItems[item.index + 1]) !== null && _visibleItems_ !== void 0 ? _visibleItems_ : null;\n case treeDataTypes.end:\n return visibleItems[visibleItems.length - 1];\n case treeDataTypes.home:\n return visibleItems[0];\n case treeDataTypes.arrowDown:\n var _visibleItems_1;\n return (_visibleItems_1 = visibleItems[item.index + 1]) !== null && _visibleItems_1 !== void 0 ? _visibleItems_1 : null;\n case treeDataTypes.arrowUp:\n var _visibleItems_2;\n return (_visibleItems_2 = visibleItems[item.index - 1]) !== null && _visibleItems_2 !== void 0 ? _visibleItems_2 : null;\n default:\n return null;\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 var _item_parentId;\n const parent = unfilteredFlatTree.itemsPerId.get((_item_parentId = item.parentId) !== null && _item_parentId !== void 0 ? _item_parentId : flatTreeRootParentId);\n if (!parent) {\n break;\n }\n if (isFlatTreeItemVisible(item, {\n openItems,\n unfilteredFlatTree\n })) {\n item.index = visibleIndex++;\n visibleItems.push({\n ...item\n });\n yield item;\n } else {\n index += parent.childrenSize - 1 + item.childrenSize;\n }\n }\n }\n return {\n getNextNavigableItem,\n items: () => {\n return visibleItems || makeVisibleItemsGenerator();\n }\n };\n}\nfunction isFlatTreeItemVisible(item, {\n openItems,\n unfilteredFlatTree: flatTree\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 return true;\n}\n//# sourceMappingURL=createVisibleFlatTree.js.map"],"names":["createVisibleFlatTree","unfilteredFlatTree","openItems","visibleItems","getNextNavigableItem","data","item","itemsPerId","get","target","id","type","treeDataTypes","arrowLeft","_unfilteredFlatTree_itemsPerId_get","parentId","arrowRight","_visibleItems_","index","end","length","home","arrowDown","_visibleItems_1","arrowUp","_visibleItems_2","makeVisibleItemsGenerator","visibleIndex","items","_item_parentId","parent","flatTreeRootParentId","isFlatTreeItemVisible","push","childrenSize","flatTree","level","has"],"mappings":";;;;+BAKgBA;;aAAAA;;0CALqB;wBACP;AAIvB,SAASA,sBAAsBC,kBAAkB,EAAEC,SAAS,EAAE;IACnE,IAAIC,eAAe,IAAI;IACvB,MAAMC,uBAAuBC,CAAAA,OAAQ;QACnC,MAAMC,OAAOL,mBAAmBM,UAAU,CAACC,GAAG,CAACH,KAAKI,MAAM,CAACC,EAAE;QAC7D,IAAI,CAACJ,QAAQ,CAACH,cAAc;YAC1B,OAAO,IAAI;QACb,CAAC;QACD,OAAQE,KAAKM,IAAI;YACf,KAAKC,qBAAa,CAACC,SAAS;gBAC1B,IAAIC;gBACJ,OAAOR,KAAKS,QAAQ,GAAG,AAACD,CAAAA,qCAAqCb,mBAAmBM,UAAU,CAACC,GAAG,CAACF,KAAKS,QAAQ,CAAA,MAAO,IAAI,IAAID,uCAAuC,KAAK,IAAIA,qCAAqC,IAAI,GAAG,IAAI;YAC7N,KAAKF,qBAAa,CAACI,UAAU;gBAC3B,IAAIC;gBACJ,OAAO,AAACA,CAAAA,iBAAiBd,YAAY,CAACG,KAAKY,KAAK,GAAG,EAAE,AAAD,MAAO,IAAI,IAAID,mBAAmB,KAAK,IAAIA,iBAAiB,IAAI;YACtH,KAAKL,qBAAa,CAACO,GAAG;gBACpB,OAAOhB,YAAY,CAACA,aAAaiB,MAAM,GAAG,EAAE;YAC9C,KAAKR,qBAAa,CAACS,IAAI;gBACrB,OAAOlB,YAAY,CAAC,EAAE;YACxB,KAAKS,qBAAa,CAACU,SAAS;gBAC1B,IAAIC;gBACJ,OAAO,AAACA,CAAAA,kBAAkBpB,YAAY,CAACG,KAAKY,KAAK,GAAG,EAAE,AAAD,MAAO,IAAI,IAAIK,oBAAoB,KAAK,IAAIA,kBAAkB,IAAI;YACzH,KAAKX,qBAAa,CAACY,OAAO;gBACxB,IAAIC;gBACJ,OAAO,AAACA,CAAAA,kBAAkBtB,YAAY,CAACG,KAAKY,KAAK,GAAG,EAAE,AAAD,MAAO,IAAI,IAAIO,oBAAoB,KAAK,IAAIA,kBAAkB,IAAI;YACzH;gBACE,OAAO,IAAI;QACf;IACF;IACA,UAAUC,4BAA4B;QACpCvB,eAAe,EAAE;QACjB,IAAK,IAAIe,QAAQ,GAAGS,eAAe,GAAGT,QAAQjB,mBAAmB2B,KAAK,CAACR,MAAM,EAAEF,QAAS;YACtF,MAAMZ,OAAOL,mBAAmB2B,KAAK,CAACV,MAAM;YAC5C,IAAIW;YACJ,MAAMC,SAAS7B,mBAAmBM,UAAU,CAACC,GAAG,CAAC,AAACqB,CAAAA,iBAAiBvB,KAAKS,QAAQ,AAAD,MAAO,IAAI,IAAIc,mBAAmB,KAAK,IAAIA,iBAAiBE,8CAAoB;YAC/J,IAAI,CAACD,QAAQ;gBACX,KAAM;YACR,CAAC;YACD,IAAIE,sBAAsB1B,MAAM;gBAC9BJ;gBACAD;YACF,IAAI;gBACFK,KAAKY,KAAK,GAAGS;gBACbxB,aAAa8B,IAAI,CAAC;oBAChB,GAAG3B,IAAI;gBACT;gBACA,MAAMA;YACR,OAAO;gBACLY,SAASY,OAAOI,YAAY,GAAG,IAAI5B,KAAK4B,YAAY;YACtD,CAAC;QACH;IACF;IACA,OAAO;QACL9B;QACAwB,OAAO,IAAM;YACX,OAAOzB,gBAAgBuB;QACzB;IACF;AACF;AACA,SAASM,sBAAsB1B,IAAI,EAAE,EACnCJ,UAAS,EACTD,oBAAoBkC,SAAQ,EAC7B,EAAE;IACD,IAAI7B,KAAK8B,KAAK,KAAK,GAAG;QACpB,OAAO,IAAI;IACb,CAAC;IACD,MAAO9B,KAAKS,QAAQ,IAAIT,KAAKS,QAAQ,KAAKgB,8CAAoB,CAAE;QAC9D,IAAI,CAAC7B,UAAUmC,GAAG,CAAC/B,KAAKS,QAAQ,GAAG;YACjC,OAAO,KAAK;QACd,CAAC;QACD,MAAMe,SAASK,SAAS5B,UAAU,CAACC,GAAG,CAACF,KAAKS,QAAQ;QACpD,IAAI,CAACe,QAAQ;YACX,OAAO,KAAK;QACd,CAAC;QACDxB,OAAOwB;IACT;IACA,OAAO,IAAI;AACb,EACA,iDAAiD"}