react-native-tree-multi-select 0.5.0

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 (108) hide show
  1. package/LICENSE +20 -0
  2. package/README.md +124 -0
  3. package/android/build.gradle +94 -0
  4. package/android/gradle.properties +5 -0
  5. package/android/src/main/AndroidManifest.xml +4 -0
  6. package/android/src/main/java/com/treemultiselect/TreeMultiSelectModule.kt +25 -0
  7. package/android/src/main/java/com/treemultiselect/TreeMultiSelectPackage.kt +17 -0
  8. package/ios/TreeMultiSelect-Bridging-Header.h +2 -0
  9. package/ios/TreeMultiSelect.mm +14 -0
  10. package/ios/TreeMultiSelect.swift +8 -0
  11. package/ios/TreeMultiSelect.xcodeproj/project.pbxproj +283 -0
  12. package/ios/TreeMultiSelect.xcodeproj/project.xcworkspace/contents.xcworkspacedata +4 -0
  13. package/ios/TreeMultiSelect.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
  14. package/ios/TreeMultiSelect.xcodeproj/project.xcworkspace/xcuserdata/guest_jj.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  15. package/ios/TreeMultiSelect.xcodeproj/xcuserdata/guest_jj.xcuserdatad/xcschemes/xcschememanagement.plist +14 -0
  16. package/lib/commonjs/TreeView.js +99 -0
  17. package/lib/commonjs/TreeView.js.map +1 -0
  18. package/lib/commonjs/components/CheckboxView.js +77 -0
  19. package/lib/commonjs/components/CheckboxView.js.map +1 -0
  20. package/lib/commonjs/components/CustomExpandCollapseIcon.js +20 -0
  21. package/lib/commonjs/components/CustomExpandCollapseIcon.js.map +1 -0
  22. package/lib/commonjs/components/NodeList.js +193 -0
  23. package/lib/commonjs/components/NodeList.js.map +1 -0
  24. package/lib/commonjs/helpers/expandCollapse.helper.js +93 -0
  25. package/lib/commonjs/helpers/expandCollapse.helper.js.map +1 -0
  26. package/lib/commonjs/helpers/index.js +61 -0
  27. package/lib/commonjs/helpers/index.js.map +1 -0
  28. package/lib/commonjs/helpers/initNodeMap.helper.js +44 -0
  29. package/lib/commonjs/helpers/initNodeMap.helper.js.map +1 -0
  30. package/lib/commonjs/helpers/search.helper.js +29 -0
  31. package/lib/commonjs/helpers/search.helper.js.map +1 -0
  32. package/lib/commonjs/helpers/selectAll.helper.js +73 -0
  33. package/lib/commonjs/helpers/selectAll.helper.js.map +1 -0
  34. package/lib/commonjs/helpers/toggleCheckbox.helper.js +153 -0
  35. package/lib/commonjs/helpers/toggleCheckbox.helper.js.map +1 -0
  36. package/lib/commonjs/index.js +28 -0
  37. package/lib/commonjs/index.js.map +1 -0
  38. package/lib/commonjs/signals/global.signals.js +42 -0
  39. package/lib/commonjs/signals/global.signals.js.map +1 -0
  40. package/lib/commonjs/types/treeView.types.js +6 -0
  41. package/lib/commonjs/types/treeView.types.js.map +1 -0
  42. package/lib/module/TreeView.js +89 -0
  43. package/lib/module/TreeView.js.map +1 -0
  44. package/lib/module/components/CheckboxView.js +68 -0
  45. package/lib/module/components/CheckboxView.js.map +1 -0
  46. package/lib/module/components/CustomExpandCollapseIcon.js +13 -0
  47. package/lib/module/components/CustomExpandCollapseIcon.js.map +1 -0
  48. package/lib/module/components/NodeList.js +185 -0
  49. package/lib/module/components/NodeList.js.map +1 -0
  50. package/lib/module/helpers/expandCollapse.helper.js +86 -0
  51. package/lib/module/helpers/expandCollapse.helper.js.map +1 -0
  52. package/lib/module/helpers/index.js +6 -0
  53. package/lib/module/helpers/index.js.map +1 -0
  54. package/lib/module/helpers/initNodeMap.helper.js +39 -0
  55. package/lib/module/helpers/initNodeMap.helper.js.map +1 -0
  56. package/lib/module/helpers/search.helper.js +23 -0
  57. package/lib/module/helpers/search.helper.js.map +1 -0
  58. package/lib/module/helpers/selectAll.helper.js +65 -0
  59. package/lib/module/helpers/selectAll.helper.js.map +1 -0
  60. package/lib/module/helpers/toggleCheckbox.helper.js +148 -0
  61. package/lib/module/helpers/toggleCheckbox.helper.js.map +1 -0
  62. package/lib/module/index.js +4 -0
  63. package/lib/module/index.js.map +1 -0
  64. package/lib/module/signals/global.signals.js +26 -0
  65. package/lib/module/signals/global.signals.js.map +1 -0
  66. package/lib/module/types/treeView.types.js +2 -0
  67. package/lib/module/types/treeView.types.js.map +1 -0
  68. package/lib/typescript/TreeView.d.ts +4 -0
  69. package/lib/typescript/TreeView.d.ts.map +1 -0
  70. package/lib/typescript/components/CheckboxView.d.ts +24 -0
  71. package/lib/typescript/components/CheckboxView.d.ts.map +1 -0
  72. package/lib/typescript/components/CustomExpandCollapseIcon.d.ts +4 -0
  73. package/lib/typescript/components/CustomExpandCollapseIcon.d.ts.map +1 -0
  74. package/lib/typescript/components/NodeList.d.ts +14 -0
  75. package/lib/typescript/components/NodeList.d.ts.map +1 -0
  76. package/lib/typescript/helpers/expandCollapse.helper.d.ts +18 -0
  77. package/lib/typescript/helpers/expandCollapse.helper.d.ts.map +1 -0
  78. package/lib/typescript/helpers/index.d.ts +6 -0
  79. package/lib/typescript/helpers/index.d.ts.map +1 -0
  80. package/lib/typescript/helpers/initNodeMap.helper.d.ts +12 -0
  81. package/lib/typescript/helpers/initNodeMap.helper.d.ts.map +1 -0
  82. package/lib/typescript/helpers/search.helper.d.ts +14 -0
  83. package/lib/typescript/helpers/search.helper.d.ts.map +1 -0
  84. package/lib/typescript/helpers/selectAll.helper.d.ts +25 -0
  85. package/lib/typescript/helpers/selectAll.helper.d.ts.map +1 -0
  86. package/lib/typescript/helpers/toggleCheckbox.helper.d.ts +9 -0
  87. package/lib/typescript/helpers/toggleCheckbox.helper.d.ts.map +1 -0
  88. package/lib/typescript/index.d.ts +5 -0
  89. package/lib/typescript/index.d.ts.map +1 -0
  90. package/lib/typescript/signals/global.signals.d.ts +11 -0
  91. package/lib/typescript/signals/global.signals.d.ts.map +1 -0
  92. package/lib/typescript/types/treeView.types.d.ts +61 -0
  93. package/lib/typescript/types/treeView.types.d.ts.map +1 -0
  94. package/package.json +165 -0
  95. package/react-native-tree-multi-select.podspec +41 -0
  96. package/src/TreeView.tsx +139 -0
  97. package/src/components/CheckboxView.tsx +109 -0
  98. package/src/components/CustomExpandCollapseIcon.tsx +20 -0
  99. package/src/components/NodeList.tsx +278 -0
  100. package/src/helpers/expandCollapse.helper.ts +88 -0
  101. package/src/helpers/index.ts +5 -0
  102. package/src/helpers/initNodeMap.helper.ts +46 -0
  103. package/src/helpers/search.helper.ts +28 -0
  104. package/src/helpers/selectAll.helper.ts +59 -0
  105. package/src/helpers/toggleCheckbox.helper.ts +144 -0
  106. package/src/index.tsx +22 -0
  107. package/src/signals/global.signals.ts +36 -0
  108. package/src/types/treeView.types.ts +86 -0
@@ -0,0 +1,99 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.TreeView = void 0;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _NodeList = _interopRequireDefault(require("./components/NodeList"));
9
+ var _helpers = require("./helpers");
10
+ var _signalsReact = require("@preact/signals-react");
11
+ var _global = require("./signals/global.signals");
12
+ var _reactNative = require("react-native");
13
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
15
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
16
+ const _TreeView = /*#__PURE__*/(0, _react.forwardRef)((props, ref) => {
17
+ const {
18
+ data,
19
+ onCheck,
20
+ onExpand,
21
+ preselectedIds,
22
+ treeFlashListProps,
23
+ checkBoxViewStyleProps,
24
+ CheckboxComponent,
25
+ ExpandCollapseIconComponent,
26
+ ExpandCollapseTouchableComponent
27
+ } = props;
28
+ (0, _react.useImperativeHandle)(ref, () => ({
29
+ selectAll: _helpers.selectAll,
30
+ unselectAll: _helpers.unselectAll,
31
+ selectAllFiltered: _helpers.selectAllFiltered,
32
+ unselectAllFiltered: _helpers.unselectAllFiltered,
33
+ expandAll: _helpers.expandAll,
34
+ collapseAll: _helpers.collapseAll,
35
+ setSearchText
36
+ }));
37
+ function setSearchText(text) {
38
+ let keys = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ["name"];
39
+ _global.searchText.value = text;
40
+ _global.searchKeys.value = keys;
41
+ }
42
+ (0, _react.useEffect)(() => {
43
+ _global.globalData.value = data;
44
+ (0, _helpers.initializeNodeMaps)(data, preselectedIds);
45
+ }, [data, preselectedIds]);
46
+ const disposeCheckedStateEffect = _react.default.useMemo(() => {
47
+ return (0, _signalsReact.effect)(() => {
48
+ onCheck && onCheck(Array.from(_global.state.value.checked));
49
+ });
50
+ // eslint-disable-next-line react-hooks/exhaustive-deps
51
+ }, []);
52
+ const disposeExpandedStateEffect = _react.default.useMemo(() => {
53
+ return (0, _signalsReact.effect)(() => {
54
+ onExpand && onExpand(Array.from(_global.expanded.value));
55
+ });
56
+ // eslint-disable-next-line react-hooks/exhaustive-deps
57
+ }, []);
58
+ const disposeSearchStateEffect = _react.default.useMemo(() => {
59
+ return (0, _signalsReact.effect)(() => {
60
+ if (_global.searchText.value) {
61
+ _reactNative.InteractionManager.runAfterInteractions(() => {
62
+ _global.expanded.value = new Set(_global.globalData.value.flatMap(item => getIds(item)));
63
+ });
64
+ } else {
65
+ _reactNative.InteractionManager.runAfterInteractions(() => {
66
+ _global.expanded.value = new Set();
67
+ });
68
+ }
69
+ });
70
+ // eslint-disable-next-line react-hooks/exhaustive-deps
71
+ }, []);
72
+ (0, _react.useEffect)(() => {
73
+ return () => {
74
+ // Cleanup all global signals and signal effects
75
+ disposeCheckedStateEffect();
76
+ disposeExpandedStateEffect();
77
+ disposeSearchStateEffect();
78
+ (0, _global.cleanUpGlobalSignals)();
79
+ };
80
+ // eslint-disable-next-line react-hooks/exhaustive-deps
81
+ }, []);
82
+ const getIds = _react.default.useCallback(node => {
83
+ if (!node.children || node.children.length === 0) {
84
+ return [node.id];
85
+ } else {
86
+ return [node.id, ...node.children.flatMap(item => getIds(item))];
87
+ }
88
+ }, []);
89
+ return /*#__PURE__*/_react.default.createElement(_NodeList.default, {
90
+ treeFlashListProps: treeFlashListProps,
91
+ checkBoxViewStyleProps: checkBoxViewStyleProps,
92
+ CheckboxComponent: CheckboxComponent,
93
+ ExpandCollapseIconComponent: ExpandCollapseIconComponent,
94
+ ExpandCollapseTouchableComponent: ExpandCollapseTouchableComponent
95
+ });
96
+ });
97
+ const TreeView = /*#__PURE__*/_react.default.memo(_TreeView);
98
+ exports.TreeView = TreeView;
99
+ //# sourceMappingURL=TreeView.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_NodeList","_interopRequireDefault","_helpers","_signalsReact","_global","_reactNative","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_TreeView","forwardRef","props","ref","data","onCheck","onExpand","preselectedIds","treeFlashListProps","checkBoxViewStyleProps","CheckboxComponent","ExpandCollapseIconComponent","ExpandCollapseTouchableComponent","useImperativeHandle","selectAll","unselectAll","selectAllFiltered","unselectAllFiltered","expandAll","collapseAll","setSearchText","text","keys","arguments","length","undefined","searchText","value","searchKeys","useEffect","globalData","initializeNodeMaps","disposeCheckedStateEffect","React","useMemo","effect","Array","from","state","checked","disposeExpandedStateEffect","expanded","disposeSearchStateEffect","InteractionManager","runAfterInteractions","Set","flatMap","item","getIds","cleanUpGlobalSignals","useCallback","node","children","id","createElement","TreeView","memo","exports"],"sourceRoot":"../../src","sources":["TreeView.tsx"],"mappings":"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"}
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.defaultCheckboxViewStyles = exports.CheckboxView = void 0;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _reactNative = require("react-native");
9
+ var _reactNativePaper = require("react-native-paper");
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
12
+ function arePropsEqual(prevProps, nextProps) {
13
+ return prevProps.value === nextProps.value && prevProps.text === nextProps.text;
14
+ }
15
+ const CheckboxView = /*#__PURE__*/_react.default.memo(_CheckboxView, arePropsEqual);
16
+ exports.CheckboxView = CheckboxView;
17
+ function _CheckboxView(props) {
18
+ const {
19
+ value,
20
+ onValueChange,
21
+ text,
22
+ outermostParentViewStyle = defaultCheckboxViewStyles.mainView,
23
+ checkboxParentViewStyle = defaultCheckboxViewStyles.checkboxView,
24
+ textTouchableStyle,
25
+ checkboxProps,
26
+ textProps = {
27
+ style: defaultCheckboxViewStyles.checkboxTextStyle,
28
+ numberOfLines: 1,
29
+ ellipsizeMode: "middle"
30
+ }
31
+ } = props;
32
+ function customCheckboxValueTypeToRNPaperType(customCheckboxValueType) {
33
+ return customCheckboxValueType === 'indeterminate' ? 'indeterminate' : customCheckboxValueType ? 'checked' : 'unchecked';
34
+ }
35
+
36
+ /**
37
+ * This function modifies the change in value when the previous state was indeterminate.
38
+ * If the prior value is 'indeterminate', it will mark the CheckBox as checked upon click.
39
+ *
40
+ * @param newValue This represents the updated CheckBox value after it's clicked.
41
+ */
42
+ function onValueChangeModifier() {
43
+ // If the previous state was 'indeterminate', set checked to true
44
+ if (value === 'indeterminate') onValueChange(true);else onValueChange(!value);
45
+ }
46
+ return /*#__PURE__*/_react.default.createElement(_reactNative.View, {
47
+ style: outermostParentViewStyle
48
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.View, {
49
+ style: checkboxParentViewStyle
50
+ }, /*#__PURE__*/_react.default.createElement(_reactNativePaper.Checkbox.Android, _extends({}, checkboxProps, {
51
+ status: customCheckboxValueTypeToRNPaperType(value),
52
+ onPress: onValueChangeModifier
53
+ }))), text ? /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
54
+ style: textTouchableStyle,
55
+ onPress: onValueChangeModifier
56
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, textProps, text)) : null);
57
+ }
58
+ const defaultCheckboxViewStyles = _reactNative.StyleSheet.create({
59
+ mainView: {
60
+ alignSelf: 'center',
61
+ alignItems: 'center',
62
+ flexDirection: 'row',
63
+ marginEnd: 10
64
+ },
65
+ checkboxView: {
66
+ marginStart: 5,
67
+ transform: [{
68
+ scale: 1.2
69
+ }]
70
+ },
71
+ checkboxTextStyle: {
72
+ color: "black",
73
+ marginTop: _reactNative.Platform.OS === 'android' ? 2 : undefined
74
+ }
75
+ });
76
+ exports.defaultCheckboxViewStyles = defaultCheckboxViewStyles;
77
+ //# sourceMappingURL=CheckboxView.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_reactNativePaper","obj","__esModule","default","_extends","Object","assign","bind","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","arePropsEqual","prevProps","nextProps","value","text","CheckboxView","React","memo","_CheckboxView","exports","props","onValueChange","outermostParentViewStyle","defaultCheckboxViewStyles","mainView","checkboxParentViewStyle","checkboxView","textTouchableStyle","checkboxProps","textProps","style","checkboxTextStyle","numberOfLines","ellipsizeMode","customCheckboxValueTypeToRNPaperType","customCheckboxValueType","onValueChangeModifier","createElement","View","Checkbox","Android","status","onPress","TouchableOpacity","Text","StyleSheet","create","alignSelf","alignItems","flexDirection","marginEnd","marginStart","transform","scale","color","marginTop","Platform","OS","undefined"],"sourceRoot":"../../../src","sources":["components/CheckboxView.tsx"],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = CustomExpandCollapseIcon;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _FontAwesome = _interopRequireDefault(require("react-native-vector-icons/FontAwesome"));
9
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
10
+ function CustomExpandCollapseIcon(props) {
11
+ const {
12
+ isExpanded
13
+ } = props;
14
+ return /*#__PURE__*/_react.default.createElement(_FontAwesome.default, {
15
+ name: isExpanded ? 'caret-down' : 'caret-right',
16
+ size: 20,
17
+ color: "black"
18
+ });
19
+ }
20
+ //# sourceMappingURL=CustomExpandCollapseIcon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_FontAwesome","obj","__esModule","default","CustomExpandCollapseIcon","props","isExpanded","createElement","name","size","color"],"sourceRoot":"../../../src","sources":["components/CustomExpandCollapseIcon.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAF,sBAAA,CAAAC,OAAA;AAAyD,SAAAD,uBAAAG,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAI1C,SAASG,wBAAwBA,CAACC,KAAsB,EAAE;EACrE,MAAM;IAAEC;EAAW,CAAC,GAAGD,KAAK;EAE5B,oBACIR,MAAA,CAAAM,OAAA,CAAAI,aAAA,CAACP,YAAA,CAAAG,OAAI;IACDK,IAAI,EACAF,UAAU,GACJ,YAAY,GACZ,aACT;IACDG,IAAI,EAAE,EAAG;IACTC,KAAK,EAAC;EAAO,CAChB,CAAC;AAEV"}
@@ -0,0 +1,193 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _reactNative = require("react-native");
9
+ var _signalsReact = require("@preact/signals-react");
10
+ var _flashList = require("@shopify/flash-list");
11
+ var _global = require("../signals/global.signals");
12
+ var _helpers = require("../helpers");
13
+ var _CheckboxView = require("./CheckboxView");
14
+ var _CustomExpandCollapseIcon = _interopRequireDefault(require("./CustomExpandCollapseIcon"));
15
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
16
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
17
+ const NodeList = /*#__PURE__*/_react.default.memo(_NodeList);
18
+ var _default = NodeList;
19
+ exports.default = _default;
20
+ function _NodeList(props) {
21
+ const {
22
+ treeFlashListProps,
23
+ checkBoxViewStyleProps,
24
+ CheckboxComponent,
25
+ ExpandCollapseIconComponent,
26
+ ExpandCollapseTouchableComponent
27
+ } = props;
28
+ const filteredTree = _react.default.useMemo(() => {
29
+ return (0, _signalsReact.computed)(() => {
30
+ const searchTrimmed = _global.searchText.value.trim().toLowerCase();
31
+ const filterTreeData = _nodes => {
32
+ let filtered = [];
33
+ for (let node of _nodes) {
34
+ if (!searchTrimmed || (0, _helpers.doesNodeContainSearchTerm)(node, searchTrimmed, _global.searchKeys.value)) {
35
+ // If node itself matches, include it and all its descendants
36
+ filtered.push(node);
37
+ } else if (node.children) {
38
+ // If node does not match, check its children and include them if they match
39
+ const childMatches = filterTreeData(node.children);
40
+ if (childMatches.length > 0) {
41
+ // If any children match, include the node, replacing its children with the matching ones
42
+ filtered.push({
43
+ ...node,
44
+ children: childMatches
45
+ });
46
+ }
47
+ }
48
+ }
49
+ return filtered;
50
+ };
51
+ return filterTreeData(_global.globalData.value);
52
+ });
53
+ }, []);
54
+ const flattenedFilteredNodes = _react.default.useMemo(() => {
55
+ return (0, _signalsReact.computed)(() => {
56
+ const flattenTreeData = function (_nodes) {
57
+ let level = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
58
+ let flattened = [];
59
+ for (let node of _nodes) {
60
+ flattened.push({
61
+ ...node,
62
+ level
63
+ });
64
+ if (node.children && _global.expanded.value.has(node.id)) {
65
+ flattened = [...flattened, ...flattenTreeData(node.children, level + 1)];
66
+ }
67
+ }
68
+ return flattened;
69
+ };
70
+ return flattenTreeData(filteredTree.value);
71
+ });
72
+ // eslint-disable-next-line react-hooks/exhaustive-deps
73
+ }, []);
74
+ _react.default.useEffect(() => {
75
+ (0, _signalsReact.effect)(() => {
76
+ const allLeafIds = [];
77
+ const getLeafNodes = _nodes => {
78
+ for (let node of _nodes) {
79
+ if (node.children) {
80
+ getLeafNodes(node.children);
81
+ } else {
82
+ allLeafIds.push(node.id);
83
+ }
84
+ }
85
+ };
86
+ getLeafNodes(filteredTree.value);
87
+ _global.innerMostChildrenIds.value = allLeafIds;
88
+ });
89
+ // eslint-disable-next-line react-hooks/exhaustive-deps
90
+ }, []);
91
+ const nodeRenderer = _react.default.useCallback(_ref => {
92
+ let {
93
+ item
94
+ } = _ref;
95
+ return /*#__PURE__*/_react.default.createElement(Node, {
96
+ node: item,
97
+ level: item.level || 0,
98
+ checkBoxViewStyleProps: checkBoxViewStyleProps,
99
+ CheckboxComponent: CheckboxComponent,
100
+ ExpandCollapseIconComponent: ExpandCollapseIconComponent,
101
+ ExpandCollapseTouchableComponent: ExpandCollapseTouchableComponent
102
+ });
103
+ }, [CheckboxComponent, ExpandCollapseIconComponent, ExpandCollapseTouchableComponent, checkBoxViewStyleProps]);
104
+ const keyExtractor = _react.default.useCallback(item => item.id, []);
105
+ return /*#__PURE__*/_react.default.createElement(_flashList.FlashList, _extends({
106
+ estimatedItemSize: 36,
107
+ removeClippedSubviews: true,
108
+ keyboardShouldPersistTaps: "handled",
109
+ drawDistance: 50,
110
+ data: flattenedFilteredNodes.value,
111
+ renderItem: nodeRenderer,
112
+ keyExtractor: keyExtractor,
113
+ ListHeaderComponent: /*#__PURE__*/_react.default.createElement(HeaderFooterView, null),
114
+ ListFooterComponent: /*#__PURE__*/_react.default.createElement(HeaderFooterView, null)
115
+ }, treeFlashListProps));
116
+ }
117
+ ;
118
+ function HeaderFooterView() {
119
+ return /*#__PURE__*/_react.default.createElement(_reactNative.View, {
120
+ style: styles.defaultHeaderFooter
121
+ });
122
+ }
123
+ const Node = /*#__PURE__*/_react.default.memo(_Node);
124
+ function _Node(props) {
125
+ var _node$value$children;
126
+ const {
127
+ node: _node,
128
+ level,
129
+ checkBoxViewStyleProps,
130
+ ExpandCollapseIconComponent = _CustomExpandCollapseIcon.default,
131
+ CheckboxComponent = _CheckboxView.CheckboxView,
132
+ ExpandCollapseTouchableComponent = _reactNative.TouchableOpacity
133
+ } = props;
134
+ const node = (0, _signalsReact.useSignal)(_node);
135
+ _react.default.useEffect(() => {
136
+ node.value = _node;
137
+ // eslint-disable-next-line react-hooks/exhaustive-deps
138
+ }, [_node]);
139
+ const isChecked = (0, _signalsReact.useComputed)(() => _global.state.value.checked.has(node.value.id));
140
+ const isIndeterminate = (0, _signalsReact.useComputed)(() => _global.state.value.indeterminate.has(node.value.id));
141
+ const value = (0, _signalsReact.useComputed)(() => {
142
+ if (isIndeterminate.value) {
143
+ return 'indeterminate';
144
+ } else if (isChecked.value) {
145
+ return true;
146
+ } else {
147
+ return false;
148
+ }
149
+ });
150
+ const isExpanded = (0, _signalsReact.useComputed)(() => _global.expanded.value.has(node.value.id));
151
+ const _onToggleExpand = _react.default.useCallback(() => {
152
+ (0, _helpers.handleToggleExpand)(node.value.id);
153
+ // eslint-disable-next-line react-hooks/exhaustive-deps
154
+ }, []);
155
+ const _onCheck = _react.default.useCallback(() => {
156
+ (0, _helpers.toggleCheckboxes)([node.value.id]);
157
+ // eslint-disable-next-line react-hooks/exhaustive-deps
158
+ }, []);
159
+ return /*#__PURE__*/_react.default.createElement(_reactNative.View, {
160
+ style: [styles.nodeParentView, {
161
+ marginLeft: level * 15
162
+ }]
163
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.View, {
164
+ style: styles.nodeCheckboxAndArrowRow
165
+ }, /*#__PURE__*/_react.default.createElement(CheckboxComponent, _extends({
166
+ text: node.value.name,
167
+ onValueChange: _onCheck,
168
+ value: value.value
169
+ }, checkBoxViewStyleProps)), (_node$value$children = node.value.children) !== null && _node$value$children !== void 0 && _node$value$children.length ? /*#__PURE__*/_react.default.createElement(ExpandCollapseTouchableComponent, {
170
+ style: styles.nodeExpandableArrowTouchable,
171
+ onPress: _onToggleExpand
172
+ }, /*#__PURE__*/_react.default.createElement(ExpandCollapseIconComponent, {
173
+ isExpanded: isExpanded.value
174
+ })) : null));
175
+ }
176
+ ;
177
+ const styles = _reactNative.StyleSheet.create({
178
+ defaultHeaderFooter: {
179
+ padding: 5
180
+ },
181
+ nodeParentView: {
182
+ flex: 1
183
+ },
184
+ nodeExpandableArrowTouchable: {
185
+ flex: 1
186
+ },
187
+ nodeCheckboxAndArrowRow: {
188
+ flexDirection: 'row',
189
+ alignItems: 'center',
190
+ minWidth: "100%"
191
+ }
192
+ });
193
+ //# sourceMappingURL=NodeList.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_signalsReact","_flashList","_global","_helpers","_CheckboxView","_CustomExpandCollapseIcon","obj","__esModule","default","_extends","Object","assign","bind","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","NodeList","React","memo","_NodeList","_default","exports","props","treeFlashListProps","checkBoxViewStyleProps","CheckboxComponent","ExpandCollapseIconComponent","ExpandCollapseTouchableComponent","filteredTree","useMemo","computed","searchTrimmed","searchText","value","trim","toLowerCase","filterTreeData","_nodes","filtered","node","doesNodeContainSearchTerm","searchKeys","push","children","childMatches","globalData","flattenedFilteredNodes","flattenTreeData","level","undefined","flattened","expanded","has","id","useEffect","effect","allLeafIds","getLeafNodes","innerMostChildrenIds","nodeRenderer","useCallback","_ref","item","createElement","Node","keyExtractor","FlashList","estimatedItemSize","removeClippedSubviews","keyboardShouldPersistTaps","drawDistance","data","renderItem","ListHeaderComponent","HeaderFooterView","ListFooterComponent","View","style","styles","defaultHeaderFooter","_Node","_node$value$children","_node","CustomExpandCollapseIcon","CheckboxView","TouchableOpacity","useSignal","isChecked","useComputed","state","checked","isIndeterminate","indeterminate","isExpanded","_onToggleExpand","handleToggleExpand","_onCheck","toggleCheckboxes","nodeParentView","marginLeft","nodeCheckboxAndArrowRow","text","name","onValueChange","nodeExpandableArrowTouchable","onPress","StyleSheet","create","padding","flex","flexDirection","alignItems","minWidth"],"sourceRoot":"../../../src","sources":["components/NodeList.tsx"],"mappings":"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"}
@@ -0,0 +1,93 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.collapseAll = collapseAll;
7
+ exports.expandAll = expandAll;
8
+ exports.handleToggleExpand = handleToggleExpand;
9
+ var _global = require("../signals/global.signals");
10
+ /**
11
+ * Toggle the expanded state of a tree node by its ID.
12
+ *
13
+ * If the node is currently expanded, it and its descendants will be collapsed.
14
+ * If it is currently collapsed, it will be expanded.
15
+ *
16
+ * @param id - The ID of the tree node to toggle.
17
+ */
18
+ function handleToggleExpand(id) {
19
+ // Create a new Set based on the current expanded state
20
+ const newExpanded = new Set(_global.expanded.value);
21
+
22
+ /**
23
+ * Recursively deletes a node and its descendants from the expanded set.
24
+ *
25
+ * @param node - The tree node to start deleting from.
26
+ */
27
+ function deleteChildrenFromExpanded(node) {
28
+ if (node.children) {
29
+ for (let child of node.children) {
30
+ newExpanded.delete(child.id);
31
+ deleteChildrenFromExpanded(child);
32
+ }
33
+ }
34
+ }
35
+
36
+ /**
37
+ * Finds a node in the tree by its ID.
38
+ *
39
+ * @param nodes - The array of tree nodes to search through.
40
+ * @returns The found tree node, or undefined if not found.
41
+ */
42
+ function findNode(nodes) {
43
+ for (let node of nodes) {
44
+ if (node.id === id) {
45
+ return node;
46
+ } else if (node.children) {
47
+ const found = findNode(node.children);
48
+ if (found) {
49
+ return found;
50
+ }
51
+ }
52
+ }
53
+ return undefined;
54
+ }
55
+
56
+ // Find the node to expand or collapse
57
+ const node = findNode(_global.globalData.value);
58
+ if (_global.expanded.value.has(id)) {
59
+ // If the node is currently expanded, collapse it and its descendants
60
+ newExpanded.delete(id);
61
+ if (node) {
62
+ deleteChildrenFromExpanded(node);
63
+ }
64
+ } else {
65
+ // If the node is currently collapsed, expand it
66
+ newExpanded.add(id);
67
+ }
68
+
69
+ // Set the new expanded state
70
+ _global.expanded.value = newExpanded;
71
+ }
72
+ ;
73
+
74
+ /**
75
+ * Expand all nodes in the tree.
76
+ */
77
+ function expandAll() {
78
+ // Create a new Set containing the IDs of all nodes
79
+ const newExpanded = new Set(_global.nodeMap.value.keys());
80
+ _global.expanded.value = newExpanded;
81
+ }
82
+ ;
83
+
84
+ /**
85
+ * Collapse all nodes in the tree.
86
+ */
87
+ function collapseAll() {
88
+ // Create an empty Set
89
+ const newExpanded = new Set();
90
+ _global.expanded.value = newExpanded;
91
+ }
92
+ ;
93
+ //# sourceMappingURL=expandCollapse.helper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_global","require","handleToggleExpand","id","newExpanded","Set","expanded","value","deleteChildrenFromExpanded","node","children","child","delete","findNode","nodes","found","undefined","globalData","has","add","expandAll","nodeMap","keys","collapseAll"],"sourceRoot":"../../../src","sources":["helpers/expandCollapse.helper.ts"],"mappings":";;;;;;;;AACA,IAAAA,OAAA,GAAAC,OAAA;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,kBAAkBA,CAACC,EAAU,EAAE;EAC3C;EACA,MAAMC,WAAW,GAAG,IAAIC,GAAG,CAACC,gBAAQ,CAACC,KAAK,CAAC;;EAE3C;AACJ;AACA;AACA;AACA;EACI,SAASC,0BAA0BA,CAACC,IAAc,EAAE;IAChD,IAAIA,IAAI,CAACC,QAAQ,EAAE;MACf,KAAK,IAAIC,KAAK,IAAIF,IAAI,CAACC,QAAQ,EAAE;QAC7BN,WAAW,CAACQ,MAAM,CAACD,KAAK,CAACR,EAAE,CAAC;QAC5BK,0BAA0B,CAACG,KAAK,CAAC;MACrC;IACJ;EACJ;;EAEA;AACJ;AACA;AACA;AACA;AACA;EACI,SAASE,QAAQA,CAACC,KAAiB,EAAwB;IACvD,KAAK,IAAIL,IAAI,IAAIK,KAAK,EAAE;MACpB,IAAIL,IAAI,CAACN,EAAE,KAAKA,EAAE,EAAE;QAChB,OAAOM,IAAI;MACf,CAAC,MAAM,IAAIA,IAAI,CAACC,QAAQ,EAAE;QACtB,MAAMK,KAAK,GAAGF,QAAQ,CAACJ,IAAI,CAACC,QAAQ,CAAC;QACrC,IAAIK,KAAK,EAAE;UACP,OAAOA,KAAK;QAChB;MACJ;IACJ;IACA,OAAOC,SAAS;EACpB;;EAEA;EACA,MAAMP,IAAI,GAAGI,QAAQ,CAACI,kBAAU,CAACV,KAAK,CAAC;EAEvC,IAAID,gBAAQ,CAACC,KAAK,CAACW,GAAG,CAACf,EAAE,CAAC,EAAE;IACxB;IACAC,WAAW,CAACQ,MAAM,CAACT,EAAE,CAAC;IACtB,IAAIM,IAAI,EAAE;MACND,0BAA0B,CAACC,IAAI,CAAC;IACpC;EACJ,CAAC,MAAM;IACH;IACAL,WAAW,CAACe,GAAG,CAAChB,EAAE,CAAC;EACvB;;EAEA;EACAG,gBAAQ,CAACC,KAAK,GAAGH,WAAW;AAChC;AAAC;;AAED;AACA;AACA;AACO,SAASgB,SAASA,CAAA,EAAG;EACxB;EACA,MAAMhB,WAAW,GAAG,IAAIC,GAAG,CAACgB,eAAO,CAACd,KAAK,CAACe,IAAI,CAAC,CAAC,CAAC;EACjDhB,gBAAQ,CAACC,KAAK,GAAGH,WAAW;AAChC;AAAC;;AAED;AACA;AACA;AACO,SAASmB,WAAWA,CAAA,EAAG;EAC1B;EACA,MAAMnB,WAAW,GAAG,IAAIC,GAAG,CAAS,CAAC;EACrCC,gBAAQ,CAACC,KAAK,GAAGH,WAAW;AAChC;AAAC"}
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var _expandCollapse = require("./expandCollapse.helper");
7
+ Object.keys(_expandCollapse).forEach(function (key) {
8
+ if (key === "default" || key === "__esModule") return;
9
+ if (key in exports && exports[key] === _expandCollapse[key]) return;
10
+ Object.defineProperty(exports, key, {
11
+ enumerable: true,
12
+ get: function () {
13
+ return _expandCollapse[key];
14
+ }
15
+ });
16
+ });
17
+ var _initNodeMap = require("./initNodeMap.helper");
18
+ Object.keys(_initNodeMap).forEach(function (key) {
19
+ if (key === "default" || key === "__esModule") return;
20
+ if (key in exports && exports[key] === _initNodeMap[key]) return;
21
+ Object.defineProperty(exports, key, {
22
+ enumerable: true,
23
+ get: function () {
24
+ return _initNodeMap[key];
25
+ }
26
+ });
27
+ });
28
+ var _selectAll = require("./selectAll.helper");
29
+ Object.keys(_selectAll).forEach(function (key) {
30
+ if (key === "default" || key === "__esModule") return;
31
+ if (key in exports && exports[key] === _selectAll[key]) return;
32
+ Object.defineProperty(exports, key, {
33
+ enumerable: true,
34
+ get: function () {
35
+ return _selectAll[key];
36
+ }
37
+ });
38
+ });
39
+ var _toggleCheckbox = require("./toggleCheckbox.helper");
40
+ Object.keys(_toggleCheckbox).forEach(function (key) {
41
+ if (key === "default" || key === "__esModule") return;
42
+ if (key in exports && exports[key] === _toggleCheckbox[key]) return;
43
+ Object.defineProperty(exports, key, {
44
+ enumerable: true,
45
+ get: function () {
46
+ return _toggleCheckbox[key];
47
+ }
48
+ });
49
+ });
50
+ var _search = require("./search.helper");
51
+ Object.keys(_search).forEach(function (key) {
52
+ if (key === "default" || key === "__esModule") return;
53
+ if (key in exports && exports[key] === _search[key]) return;
54
+ Object.defineProperty(exports, key, {
55
+ enumerable: true,
56
+ get: function () {
57
+ return _search[key];
58
+ }
59
+ });
60
+ });
61
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_expandCollapse","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_initNodeMap","_selectAll","_toggleCheckbox","_search"],"sourceRoot":"../../../src","sources":["helpers/index.ts"],"mappings":";;;;;AAAA,IAAAA,eAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,eAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,eAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,eAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAK,YAAA,GAAAT,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAO,YAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,YAAA,CAAAL,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,YAAA,CAAAL,GAAA;IAAA;EAAA;AAAA;AACA,IAAAM,UAAA,GAAAV,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAQ,UAAA,EAAAP,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAM,UAAA,CAAAN,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAE,UAAA,CAAAN,GAAA;IAAA;EAAA;AAAA;AACA,IAAAO,eAAA,GAAAX,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAS,eAAA,EAAAR,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAO,eAAA,CAAAP,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAG,eAAA,CAAAP,GAAA;IAAA;EAAA;AAAA;AACA,IAAAQ,OAAA,GAAAZ,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAU,OAAA,EAAAT,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAQ,OAAA,CAAAR,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAI,OAAA,CAAAR,GAAA;IAAA;EAAA;AAAA"}
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.initializeNodeMaps = initializeNodeMaps;
7
+ var _global = require("../signals/global.signals");
8
+ var _toggleCheckbox = require("./toggleCheckbox.helper");
9
+ /**
10
+ * Initialize the maps for tracking tree nodes and their parent-child relationships.
11
+ *
12
+ * This function is intended to be called once, during component initialization,
13
+ * with the initial tree data and any preselected node IDs.
14
+ *
15
+ * @param initialData - An array of TreeNode objects that represent the initial tree structure.
16
+ * @param preselectedIds - An optional array of TreeNode IDs that should be preselected.
17
+ */
18
+ function initializeNodeMaps(initialData) {
19
+ let preselectedIds = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
20
+ /**
21
+ * Recursively processes nodes, adding them to the nodeMap and childToParentMap.
22
+ *
23
+ * @param nodes - An array of TreeNode objects to be processed.
24
+ * @param parentId - The ID of the parent node, if applicable.
25
+ */
26
+ const processNodes = function (nodes) {
27
+ let parentId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
28
+ nodes.forEach(node => {
29
+ // Each node is added to the nodeMap with its ID as the key
30
+ _global.nodeMap.value.set(node.id, node);
31
+ // If the node has a parent, its ID is mapped to the parent's ID in the childToParentMap
32
+ if (parentId) _global.childToParentMap.value.set(node.id, parentId);
33
+ // If the node has children, recursively process them
34
+ if (node.children) processNodes(node.children, node.id);
35
+ });
36
+ };
37
+
38
+ // Begin processing with the initial tree data
39
+ processNodes(initialData);
40
+
41
+ // Check any preselected nodes
42
+ (0, _toggleCheckbox.toggleCheckboxes)(preselectedIds, true);
43
+ }
44
+ //# sourceMappingURL=initNodeMap.helper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_global","require","_toggleCheckbox","initializeNodeMaps","initialData","preselectedIds","arguments","length","undefined","processNodes","nodes","parentId","forEach","node","nodeMap","value","set","id","childToParentMap","children","toggleCheckboxes"],"sourceRoot":"../../../src","sources":["helpers/initNodeMap.helper.ts"],"mappings":";;;;;;AACA,IAAAA,OAAA,GAAAC,OAAA;AAIA,IAAAC,eAAA,GAAAD,OAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASE,kBAAkBA,CAC9BC,WAAuB,EAEzB;EAAA,IADEC,cAAwB,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,EAAE;EAE7B;AACJ;AACA;AACA;AACA;AACA;EACI,MAAMG,YAAY,GAAG,SAAAA,CACjBC,KAAiB,EAEhB;IAAA,IADDC,QAAuB,GAAAL,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,IAAI;IAE9BI,KAAK,CAACE,OAAO,CAAEC,IAAI,IAAK;MACpB;MACAC,eAAO,CAACC,KAAK,CAACC,GAAG,CAACH,IAAI,CAACI,EAAE,EAAEJ,IAAI,CAAC;MAChC;MACA,IAAIF,QAAQ,EAAEO,wBAAgB,CAACH,KAAK,CAACC,GAAG,CAACH,IAAI,CAACI,EAAE,EAAEN,QAAQ,CAAC;MAC3D;MACA,IAAIE,IAAI,CAACM,QAAQ,EAAEV,YAAY,CAACI,IAAI,CAACM,QAAQ,EAAEN,IAAI,CAACI,EAAE,CAAC;IAC3D,CAAC,CAAC;EACN,CAAC;;EAED;EACAR,YAAY,CAACL,WAAW,CAAC;;EAEzB;EACA,IAAAgB,gCAAgB,EAACf,cAAc,EAAE,IAAI,CAAC;AAC1C"}