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.
- package/LICENSE +20 -0
- package/README.md +124 -0
- package/android/build.gradle +94 -0
- package/android/gradle.properties +5 -0
- package/android/src/main/AndroidManifest.xml +4 -0
- package/android/src/main/java/com/treemultiselect/TreeMultiSelectModule.kt +25 -0
- package/android/src/main/java/com/treemultiselect/TreeMultiSelectPackage.kt +17 -0
- package/ios/TreeMultiSelect-Bridging-Header.h +2 -0
- package/ios/TreeMultiSelect.mm +14 -0
- package/ios/TreeMultiSelect.swift +8 -0
- package/ios/TreeMultiSelect.xcodeproj/project.pbxproj +283 -0
- package/ios/TreeMultiSelect.xcodeproj/project.xcworkspace/contents.xcworkspacedata +4 -0
- package/ios/TreeMultiSelect.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
- package/ios/TreeMultiSelect.xcodeproj/project.xcworkspace/xcuserdata/guest_jj.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
- package/ios/TreeMultiSelect.xcodeproj/xcuserdata/guest_jj.xcuserdatad/xcschemes/xcschememanagement.plist +14 -0
- package/lib/commonjs/TreeView.js +99 -0
- package/lib/commonjs/TreeView.js.map +1 -0
- package/lib/commonjs/components/CheckboxView.js +77 -0
- package/lib/commonjs/components/CheckboxView.js.map +1 -0
- package/lib/commonjs/components/CustomExpandCollapseIcon.js +20 -0
- package/lib/commonjs/components/CustomExpandCollapseIcon.js.map +1 -0
- package/lib/commonjs/components/NodeList.js +193 -0
- package/lib/commonjs/components/NodeList.js.map +1 -0
- package/lib/commonjs/helpers/expandCollapse.helper.js +93 -0
- package/lib/commonjs/helpers/expandCollapse.helper.js.map +1 -0
- package/lib/commonjs/helpers/index.js +61 -0
- package/lib/commonjs/helpers/index.js.map +1 -0
- package/lib/commonjs/helpers/initNodeMap.helper.js +44 -0
- package/lib/commonjs/helpers/initNodeMap.helper.js.map +1 -0
- package/lib/commonjs/helpers/search.helper.js +29 -0
- package/lib/commonjs/helpers/search.helper.js.map +1 -0
- package/lib/commonjs/helpers/selectAll.helper.js +73 -0
- package/lib/commonjs/helpers/selectAll.helper.js.map +1 -0
- package/lib/commonjs/helpers/toggleCheckbox.helper.js +153 -0
- package/lib/commonjs/helpers/toggleCheckbox.helper.js.map +1 -0
- package/lib/commonjs/index.js +28 -0
- package/lib/commonjs/index.js.map +1 -0
- package/lib/commonjs/signals/global.signals.js +42 -0
- package/lib/commonjs/signals/global.signals.js.map +1 -0
- package/lib/commonjs/types/treeView.types.js +6 -0
- package/lib/commonjs/types/treeView.types.js.map +1 -0
- package/lib/module/TreeView.js +89 -0
- package/lib/module/TreeView.js.map +1 -0
- package/lib/module/components/CheckboxView.js +68 -0
- package/lib/module/components/CheckboxView.js.map +1 -0
- package/lib/module/components/CustomExpandCollapseIcon.js +13 -0
- package/lib/module/components/CustomExpandCollapseIcon.js.map +1 -0
- package/lib/module/components/NodeList.js +185 -0
- package/lib/module/components/NodeList.js.map +1 -0
- package/lib/module/helpers/expandCollapse.helper.js +86 -0
- package/lib/module/helpers/expandCollapse.helper.js.map +1 -0
- package/lib/module/helpers/index.js +6 -0
- package/lib/module/helpers/index.js.map +1 -0
- package/lib/module/helpers/initNodeMap.helper.js +39 -0
- package/lib/module/helpers/initNodeMap.helper.js.map +1 -0
- package/lib/module/helpers/search.helper.js +23 -0
- package/lib/module/helpers/search.helper.js.map +1 -0
- package/lib/module/helpers/selectAll.helper.js +65 -0
- package/lib/module/helpers/selectAll.helper.js.map +1 -0
- package/lib/module/helpers/toggleCheckbox.helper.js +148 -0
- package/lib/module/helpers/toggleCheckbox.helper.js.map +1 -0
- package/lib/module/index.js +4 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/signals/global.signals.js +26 -0
- package/lib/module/signals/global.signals.js.map +1 -0
- package/lib/module/types/treeView.types.js +2 -0
- package/lib/module/types/treeView.types.js.map +1 -0
- package/lib/typescript/TreeView.d.ts +4 -0
- package/lib/typescript/TreeView.d.ts.map +1 -0
- package/lib/typescript/components/CheckboxView.d.ts +24 -0
- package/lib/typescript/components/CheckboxView.d.ts.map +1 -0
- package/lib/typescript/components/CustomExpandCollapseIcon.d.ts +4 -0
- package/lib/typescript/components/CustomExpandCollapseIcon.d.ts.map +1 -0
- package/lib/typescript/components/NodeList.d.ts +14 -0
- package/lib/typescript/components/NodeList.d.ts.map +1 -0
- package/lib/typescript/helpers/expandCollapse.helper.d.ts +18 -0
- package/lib/typescript/helpers/expandCollapse.helper.d.ts.map +1 -0
- package/lib/typescript/helpers/index.d.ts +6 -0
- package/lib/typescript/helpers/index.d.ts.map +1 -0
- package/lib/typescript/helpers/initNodeMap.helper.d.ts +12 -0
- package/lib/typescript/helpers/initNodeMap.helper.d.ts.map +1 -0
- package/lib/typescript/helpers/search.helper.d.ts +14 -0
- package/lib/typescript/helpers/search.helper.d.ts.map +1 -0
- package/lib/typescript/helpers/selectAll.helper.d.ts +25 -0
- package/lib/typescript/helpers/selectAll.helper.d.ts.map +1 -0
- package/lib/typescript/helpers/toggleCheckbox.helper.d.ts +9 -0
- package/lib/typescript/helpers/toggleCheckbox.helper.d.ts.map +1 -0
- package/lib/typescript/index.d.ts +5 -0
- package/lib/typescript/index.d.ts.map +1 -0
- package/lib/typescript/signals/global.signals.d.ts +11 -0
- package/lib/typescript/signals/global.signals.d.ts.map +1 -0
- package/lib/typescript/types/treeView.types.d.ts +61 -0
- package/lib/typescript/types/treeView.types.d.ts.map +1 -0
- package/package.json +165 -0
- package/react-native-tree-multi-select.podspec +41 -0
- package/src/TreeView.tsx +139 -0
- package/src/components/CheckboxView.tsx +109 -0
- package/src/components/CustomExpandCollapseIcon.tsx +20 -0
- package/src/components/NodeList.tsx +278 -0
- package/src/helpers/expandCollapse.helper.ts +88 -0
- package/src/helpers/index.ts +5 -0
- package/src/helpers/initNodeMap.helper.ts +46 -0
- package/src/helpers/search.helper.ts +28 -0
- package/src/helpers/selectAll.helper.ts +59 -0
- package/src/helpers/toggleCheckbox.helper.ts +144 -0
- package/src/index.tsx +22 -0
- package/src/signals/global.signals.ts +36 -0
- 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"}
|