albinasoft-ui-package 1.0.89 → 1.0.92
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.
@@ -1,5 +1,5 @@
|
|
1
1
|
import React from 'react';
|
2
|
-
interface TreeNode {
|
2
|
+
export interface TreeNode {
|
3
3
|
label: string;
|
4
4
|
value: string;
|
5
5
|
children?: TreeNode[];
|
@@ -12,5 +12,4 @@ interface CustomTreeViewProps {
|
|
12
12
|
onChange: (selected: string | null) => void;
|
13
13
|
}
|
14
14
|
declare const CustomTreeView: React.FC<CustomTreeViewProps>;
|
15
|
-
export { CustomTreeView, TreeNode };
|
16
15
|
export default CustomTreeView;
|
@@ -43,7 +43,6 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
43
43
|
return to.concat(ar || Array.prototype.slice.call(from));
|
44
44
|
};
|
45
45
|
Object.defineProperty(exports, "__esModule", { value: true });
|
46
|
-
exports.CustomTreeView = void 0;
|
47
46
|
var react_1 = __importStar(require("react"));
|
48
47
|
var SimpleTreeView_1 = require("@mui/x-tree-view/SimpleTreeView");
|
49
48
|
var TreeItem_1 = require("@mui/x-tree-view/TreeItem");
|
@@ -52,13 +51,23 @@ var CustomInput_1 = __importStar(require("./CustomInput"));
|
|
52
51
|
var CustomTreeView = function (_a) {
|
53
52
|
var label = _a.label, value = _a.value, treeData = _a.treeData, _b = _a.placeholder, placeholder = _b === void 0 ? 'Ağaç Yapısını Filtrele...' : _b, onChange = _a.onChange;
|
54
53
|
var _c = (0, react_1.useState)(''), filterTerm = _c[0], setFilterTerm = _c[1];
|
54
|
+
// value prop'u ile başlayacak şekilde state'i ayarla
|
55
55
|
var _d = (0, react_1.useState)(value), selectedItem = _d[0], setSelectedItem = _d[1];
|
56
56
|
var _e = (0, react_1.useState)([]), expandedItems = _e[0], setExpandedItems = _e[1];
|
57
57
|
var _f = (0, react_1.useState)(''), inputValue = _f[0], setInputValue = _f[1];
|
58
58
|
var _g = (0, react_1.useState)(false), isInputDisabled = _g[0], setIsInputDisabled = _g[1];
|
59
|
+
// value prop'u mount veya değiştiğinde, ilgili state'leri güncelle
|
59
60
|
(0, react_1.useEffect)(function () {
|
60
|
-
|
61
|
-
|
61
|
+
if (value) {
|
62
|
+
var labelText = findLabelByValue(treeData, value);
|
63
|
+
setInputValue(labelText);
|
64
|
+
setIsInputDisabled(true);
|
65
|
+
setSelectedItem(value);
|
66
|
+
}
|
67
|
+
else {
|
68
|
+
handleReset();
|
69
|
+
}
|
70
|
+
}, [value, treeData]);
|
62
71
|
var filterTree = function (nodes, term) {
|
63
72
|
var normalizedTerm = term.toLocaleLowerCase('tr-TR');
|
64
73
|
var pathsToExpand = [];
|
@@ -66,13 +75,12 @@ var CustomTreeView = function (_a) {
|
|
66
75
|
.map(function (node) {
|
67
76
|
var normalizedLabel = node.label.toLocaleLowerCase('tr-TR');
|
68
77
|
var matches = normalizedLabel.includes(normalizedTerm);
|
69
|
-
var
|
78
|
+
var childrenResult = node.children && node.children.length > 0
|
70
79
|
? filterTree(node.children, term)
|
71
80
|
: { filteredNodes: [], pathsToExpand: [] };
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
return __assign(__assign({}, node), { children: childMatches ? children.filteredNodes : undefined });
|
81
|
+
if (matches || childrenResult.filteredNodes.length > 0) {
|
82
|
+
pathsToExpand = __spreadArray(__spreadArray(__spreadArray([], pathsToExpand, true), [node.value], false), childrenResult.pathsToExpand, true);
|
83
|
+
return __assign(__assign({}, node), { children: childrenResult.filteredNodes.length > 0 ? childrenResult.filteredNodes : undefined });
|
76
84
|
}
|
77
85
|
return null;
|
78
86
|
})
|
@@ -88,7 +96,7 @@ var CustomTreeView = function (_a) {
|
|
88
96
|
}
|
89
97
|
}, [filterTerm, pathsToExpand]);
|
90
98
|
var renderTree = function (nodes) {
|
91
|
-
return nodes.map(function (node) { return (react_1.default.createElement(TreeItem_1.TreeItem, { key: node.value, itemId: node.value, label: react_1.default.createElement("span", { onClick: function () { return handleLabelClick(node.value); }, style: { cursor:
|
99
|
+
return nodes.map(function (node) { return (react_1.default.createElement(TreeItem_1.TreeItem, { key: node.value, itemId: node.value, label: react_1.default.createElement("span", { onClick: function () { return handleLabelClick(node.value); }, style: { cursor: 'pointer' } }, node.label.trim() === "" ? "Kök" : node.label) }, node.children ? renderTree(node.children) : null)); });
|
92
100
|
};
|
93
101
|
var handleSelectionChange = function (event, selectedId) {
|
94
102
|
setSelectedItem(selectedId);
|
@@ -108,19 +116,23 @@ var CustomTreeView = function (_a) {
|
|
108
116
|
setIsInputDisabled(true);
|
109
117
|
}
|
110
118
|
};
|
111
|
-
var findNodeByValue = function (nodes,
|
119
|
+
var findNodeByValue = function (nodes, val) {
|
112
120
|
for (var _i = 0, nodes_1 = nodes; _i < nodes_1.length; _i++) {
|
113
121
|
var node = nodes_1[_i];
|
114
|
-
if (node.value ===
|
122
|
+
if (node.value === val)
|
115
123
|
return node;
|
116
124
|
if (node.children) {
|
117
|
-
var result = findNodeByValue(node.children,
|
125
|
+
var result = findNodeByValue(node.children, val);
|
118
126
|
if (result)
|
119
127
|
return result;
|
120
128
|
}
|
121
129
|
}
|
122
130
|
return null;
|
123
131
|
};
|
132
|
+
var findLabelByValue = function (nodes, val) {
|
133
|
+
var node = findNodeByValue(nodes, val);
|
134
|
+
return node ? node.label : '';
|
135
|
+
};
|
124
136
|
var handleExpandedItemsChange = function (event, itemIds) {
|
125
137
|
setExpandedItems(itemIds);
|
126
138
|
};
|
@@ -135,7 +147,8 @@ var CustomTreeView = function (_a) {
|
|
135
147
|
return (react_1.default.createElement("div", null,
|
136
148
|
label && react_1.default.createElement("label", null, label),
|
137
149
|
react_1.default.createElement(CustomInput_1.default, { id: "tree-search", value: inputValue || filterTerm, inputType: CustomInput_1.InputType.TEXT, disabled: isInputDisabled, placeholder: placeholder, buttonIcon: react_1.default.createElement(fa_1.FaTimes, null), buttonClass: "btn btn-danger bg-soft-danger", buttonOnClick: handleReset, onChange: function (e) { return setFilterTerm(e.target.value); } }),
|
138
|
-
react_1.default.createElement(SimpleTreeView_1.SimpleTreeView, { checkboxSelection: true,
|
150
|
+
react_1.default.createElement(SimpleTreeView_1.SimpleTreeView, { checkboxSelection: true,
|
151
|
+
// SimpleTreeView beklediği tip string olduğundan, dizi yerine selectedItem'ı direkt veriyoruz.
|
152
|
+
selectedItems: selectedItem || '', expandedItems: expandedItems, onSelectedItemsChange: handleSelectionChange, onExpandedItemsChange: handleExpandedItemsChange }, renderTree(filteredNodes))));
|
139
153
|
};
|
140
|
-
exports.CustomTreeView = CustomTreeView;
|
141
154
|
exports.default = CustomTreeView;
|