pixel-react 1.21.11 → 1.21.12

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 (30) hide show
  1. package/lib/components/AllProjectsDropdown/AllProjectsDropdown.js +61 -3
  2. package/lib/components/AllProjectsDropdown/AllProjectsDropdown.js.map +1 -1
  3. package/lib/components/Charts/StackedBarChart/StackedBarChart.js +2 -2
  4. package/lib/components/Charts/StackedBarChart/StackedBarChart.js.map +1 -1
  5. package/lib/components/ConditionalDropdown/ConditionalDropdown.js +2 -1
  6. package/lib/components/ConditionalDropdown/ConditionalDropdown.js.map +1 -1
  7. package/lib/components/ConditionalDropdown/OptionsDropdown.d.ts +1 -1
  8. package/lib/components/ConditionalDropdown/OptionsDropdown.js +13 -3
  9. package/lib/components/ConditionalDropdown/OptionsDropdown.js.map +1 -1
  10. package/lib/components/ConditionalDropdown/types.d.ts +1 -0
  11. package/lib/components/MultiSelect/Dropdown.js +1 -1
  12. package/lib/components/MultiSelect/Dropdown.js.map +1 -1
  13. package/lib/components/StepsLandingTable/Components/StepInnerTable.js +31 -9
  14. package/lib/components/StepsLandingTable/Components/StepInnerTable.js.map +1 -1
  15. package/lib/components/TableTreeFn/Components/TableHead.js +1 -1
  16. package/lib/components/TableTreeFn/Components/TableHead.js.map +1 -1
  17. package/lib/components/TableTreeFn/TableTreeFn.js +25 -23
  18. package/lib/components/TableTreeFn/TableTreeFn.js.map +1 -1
  19. package/lib/index.d.ts +4 -8
  20. package/lib/index.js +7 -7
  21. package/lib/index.js.map +1 -1
  22. package/lib/styles.css +1 -1
  23. package/lib/tsconfig.tsbuildinfo +1 -1
  24. package/lib/utils/validateFileContent/validateFileContent.d.ts +1 -0
  25. package/lib/utils/validateFileContent/validateFileContent.js +297 -0
  26. package/lib/utils/validateFileContent/validateFileContent.js.map +1 -0
  27. package/package.json +1 -1
  28. package/lib/utils/computeTreeCountsAndFormatNodes/computeTreeCountsAndFormatNodes.d.ts +0 -8
  29. package/lib/utils/computeTreeCountsAndFormatNodes/computeTreeCountsAndFormatNodes.js +0 -262
  30. package/lib/utils/computeTreeCountsAndFormatNodes/computeTreeCountsAndFormatNodes.js.map +0 -1
@@ -1,262 +0,0 @@
1
- import { checkEmpty } from '../checkEmpty/checkEmpty';
2
- import { getStoreValue } from '../indexDBStore/indexDB';
3
- export const computeTreeCountsAndFormatNodes = (treeData, timezone = 'Asia/Kolkata') => {
4
- const nodeMap = new Map();
5
- const childrenMap = new Map();
6
- // 1. Create a fresh copy of the data
7
- const updatedData = treeData.map((item) => ({ ...item }));
8
- // 2. Group all children by their parentId
9
- for (const node of updatedData) {
10
- const key = String(node.key);
11
- nodeMap.set(key, node);
12
- if (node.parentId) {
13
- const parentIdStr = String(node.parentId);
14
- if (!childrenMap.has(parentIdStr)) {
15
- childrenMap.set(parentIdStr, []);
16
- }
17
- childrenMap.get(parentIdStr).push(key);
18
- }
19
- }
20
- const calculated = new Set();
21
- // 3. Recursive function to count nodes based on `container` boolean
22
- const countDescendants = (key) => {
23
- const node = nodeMap.get(key);
24
- if (!node)
25
- return { res: 0, sub: 0 };
26
- if (calculated.has(key)) {
27
- return {
28
- res: node.totalResourceCount ?? 0,
29
- sub: node.totalSubContainerCount ?? 0,
30
- };
31
- }
32
- let calculatedRes = 0;
33
- let calculatedSub = 0;
34
- const children = childrenMap.get(key) || [];
35
- for (const childKey of children) {
36
- const childNode = nodeMap.get(childKey);
37
- if (!childNode)
38
- continue;
39
- if (childNode.container) {
40
- calculatedSub += 1;
41
- }
42
- else {
43
- calculatedRes += 1;
44
- }
45
- const childDescendants = countDescendants(childKey);
46
- calculatedRes += childDescendants.res;
47
- calculatedSub += childDescendants.sub;
48
- }
49
- node.totalResourceCount = calculatedRes;
50
- node.totalSubContainerCount = calculatedSub;
51
- calculated.add(key);
52
- return {
53
- res: calculatedRes,
54
- sub: calculatedSub,
55
- };
56
- };
57
- // 4. Recursive function to calculate hierarchy level (depth)
58
- const calculateHierarchy = (key) => {
59
- const node = nodeMap.get(key);
60
- if (!node)
61
- return 0;
62
- if (node.hierarchy !== undefined)
63
- return node.hierarchy;
64
- if (!node.parentId || !nodeMap.has(String(node.parentId))) {
65
- node.hierarchy = 0;
66
- return 0;
67
- }
68
- node.hierarchy = calculateHierarchy(String(node.parentId)) + 1;
69
- return node.hierarchy;
70
- };
71
- // Trigger the counts and levels for every single node in the tree
72
- for (const node of updatedData) {
73
- const key = String(node.key);
74
- countDescendants(key);
75
- calculateHierarchy(key);
76
- }
77
- // --- DATE FORMATTER SETUP ---
78
- const dateFormatter = new Intl.DateTimeFormat('en-GB', {
79
- timeZone: timezone,
80
- year: 'numeric',
81
- month: 'short',
82
- day: '2-digit',
83
- hour: '2-digit',
84
- minute: '2-digit',
85
- second: '2-digit',
86
- hour12: true,
87
- });
88
- const formatNodeDate = (dateString) => {
89
- if (!dateString)
90
- return dateString;
91
- try {
92
- return dateFormatter.format(new Date(dateString));
93
- }
94
- catch (error) {
95
- return dateString;
96
- }
97
- };
98
- return updatedData.map((node) => {
99
- const expandCheck = !!node.container &&
100
- ((node.totalResourceCount ?? 0) > 0 ||
101
- (node.totalSubContainerCount ?? 0) > 0);
102
- return {
103
- ...node,
104
- expandable: checkEmpty(node.expandable) ? expandCheck : node.expandable,
105
- expandedAll: checkEmpty(node.expandedAll)
106
- ? expandCheck
107
- : node.expandedAll,
108
- expanded: checkEmpty(node.expanded) ? expandCheck : node.expanded,
109
- createdOn: formatNodeDate(node.createdOn),
110
- modifiedOn: formatNodeDate(node.modifiedOn),
111
- hierarchy: node.hierarchy,
112
- };
113
- });
114
- };
115
- export const updateSearchTree = (searchValues, treeDataList, dispatch, setSearchedTree, setSearchedRootModule) => {
116
- const currentProject = getStoreValue('current-project');
117
- if (searchValues?.text) {
118
- const searchText = searchValues.text.toLowerCase();
119
- const allNodes = treeDataList || [];
120
- if (!allNodes?.length) {
121
- dispatch(setSearchedTree([]));
122
- dispatch(setSearchedRootModule({}));
123
- return;
124
- }
125
- const parentMap = new Map();
126
- const childrenMap = new Map();
127
- const keepNodeKeys = new Set();
128
- const matchedKeys = [];
129
- for (const node of allNodes) {
130
- parentMap.set(node.key, node.parentId);
131
- if (!childrenMap.has(node.parentId)) {
132
- childrenMap.set(node.parentId, []);
133
- }
134
- childrenMap.get(node.parentId).push(node.key);
135
- if (node?.name?.toLowerCase().includes(searchText)) {
136
- matchedKeys.push(node.key);
137
- }
138
- }
139
- for (const matchKey of matchedKeys) {
140
- let currentKey = matchKey;
141
- while (currentKey && !keepNodeKeys.has(currentKey)) {
142
- keepNodeKeys.add(currentKey);
143
- currentKey = parentMap.get(currentKey);
144
- }
145
- }
146
- const cascadeDown = (parentKey) => {
147
- const children = childrenMap.get(parentKey) || [];
148
- for (const childKey of children) {
149
- if (!keepNodeKeys.has(childKey)) {
150
- keepNodeKeys.add(childKey);
151
- cascadeDown(childKey);
152
- }
153
- }
154
- };
155
- for (const matchKey of matchedKeys) {
156
- cascadeDown(matchKey);
157
- }
158
- const filteredTreeData = allNodes.filter((node) => keepNodeKeys.has(node.key));
159
- const calculatedTreeData = computeTreeCountsAndFormatNodes(filteredTreeData, currentProject?.timeZone);
160
- dispatch(setSearchedTree(calculatedTreeData.slice(1)));
161
- dispatch(setSearchedRootModule(calculatedTreeData[0] ?? {}));
162
- }
163
- };
164
- const parseFacetDate = (dateStr, isEndOfDay) => {
165
- if (!dateStr)
166
- return NaN;
167
- const [day, month, year] = dateStr.split('/').map(Number);
168
- if (day === undefined ||
169
- month === undefined ||
170
- year === undefined ||
171
- isNaN(day) ||
172
- isNaN(month) ||
173
- isNaN(year)) {
174
- return NaN;
175
- }
176
- const date = new Date(year, month - 1, day);
177
- if (isEndOfDay)
178
- date.setHours(23, 59, 59, 999);
179
- return date.getTime();
180
- };
181
- export const passesFilters = (facetQueries, response) => {
182
- if (!facetQueries?.length)
183
- return true;
184
- const node = response?.responseObject;
185
- if (!node)
186
- return false;
187
- return facetQueries.every((facet) => {
188
- if (!facet.values || facet.values.length === 0)
189
- return true;
190
- switch (facet.name) {
191
- case 'createdBy':
192
- case 'modifiedBy': {
193
- const unameKey = facet.name === 'createdBy' ? 'createdByUname' : 'modifiedByUname';
194
- return facet.values.includes(node[unameKey]);
195
- }
196
- case 'methodType': {
197
- try {
198
- if (!node.fatRequest)
199
- return false;
200
- const parsedFat = JSON.parse(node.fatRequest);
201
- const parsedReq = JSON.parse(parsedFat.request);
202
- return facet.values.includes(parsedReq.method);
203
- }
204
- catch {
205
- return false;
206
- }
207
- }
208
- case 'createdOn':
209
- case 'modifiedOn': {
210
- const nodeTime = new Date(node[facet.name]).getTime();
211
- if (isNaN(nodeTime))
212
- return false;
213
- const startTime = parseFacetDate(facet.values[0], false);
214
- const endTime = parseFacetDate(facet.values[1] || facet.values[0], true);
215
- return nodeTime >= startTime && nodeTime <= endTime;
216
- }
217
- default:
218
- return facet.values.includes(node[facet.name]);
219
- }
220
- });
221
- };
222
- export const restoreSelectedFilters = (urlFilters, setSelectedFilters, setModifiedOnState, setInitialFilterData, setInitialModifiedOnState) => {
223
- const restoredSelectedFilters = [];
224
- const restoredModifiedOnState = {
225
- modifiedFrom: undefined,
226
- modifiedTo: undefined,
227
- };
228
- urlFilters.forEach((filter) => {
229
- if (filter.name === 'modifiedOn') {
230
- restoredModifiedOnState.modifiedFrom = filter.values[0]
231
- ? new Date(filter.values[0])
232
- : undefined;
233
- restoredModifiedOnState.modifiedTo = filter.values[1]
234
- ? new Date(filter.values[1])
235
- : undefined;
236
- }
237
- else {
238
- filter.values.forEach((val) => {
239
- restoredSelectedFilters.push(`${filter.name}-${val}`);
240
- });
241
- }
242
- });
243
- setSelectedFilters(restoredSelectedFilters);
244
- setModifiedOnState(restoredModifiedOnState);
245
- setInitialFilterData(restoredSelectedFilters);
246
- setInitialModifiedOnState(restoredModifiedOnState);
247
- };
248
- export const getFiltersFromUrl = (params) => {
249
- const filters = [];
250
- const FILTER_PREFIX = 'f_';
251
- params.forEach((value, key) => {
252
- if (key.startsWith(FILTER_PREFIX)) {
253
- const cleanName = key.replace(FILTER_PREFIX, '');
254
- filters.push({
255
- name: cleanName,
256
- values: value.split(','),
257
- });
258
- }
259
- });
260
- return filters;
261
- };
262
- //# sourceMappingURL=computeTreeCountsAndFormatNodes.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"computeTreeCountsAndFormatNodes.js","sourceRoot":"","sources":["../../../src/utils/computeTreeCountsAndFormatNodes/computeTreeCountsAndFormatNodes.tsx"],"names":[],"mappings":"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"}