pixel-react 1.21.10 → 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.
- package/lib/components/AllProjectsDropdown/AllProjectsDropdown.js +61 -3
- package/lib/components/AllProjectsDropdown/AllProjectsDropdown.js.map +1 -1
- package/lib/components/Charts/StackedBarChart/StackedBarChart.js +2 -2
- package/lib/components/Charts/StackedBarChart/StackedBarChart.js.map +1 -1
- package/lib/components/ConditionalDropdown/ConditionalDropdown.js +2 -1
- package/lib/components/ConditionalDropdown/ConditionalDropdown.js.map +1 -1
- package/lib/components/ConditionalDropdown/OptionsDropdown.d.ts +1 -1
- package/lib/components/ConditionalDropdown/OptionsDropdown.js +13 -3
- package/lib/components/ConditionalDropdown/OptionsDropdown.js.map +1 -1
- package/lib/components/ConditionalDropdown/types.d.ts +1 -0
- package/lib/components/MultiSelect/Dropdown.js +1 -1
- package/lib/components/MultiSelect/Dropdown.js.map +1 -1
- package/lib/components/StepsLandingTable/Components/StepInnerTable.js +31 -9
- package/lib/components/StepsLandingTable/Components/StepInnerTable.js.map +1 -1
- package/lib/components/TableTreeFn/Components/TableHead.js +1 -1
- package/lib/components/TableTreeFn/Components/TableHead.js.map +1 -1
- package/lib/components/TableTreeFn/TableTreeFn.js +25 -23
- package/lib/components/TableTreeFn/TableTreeFn.js.map +1 -1
- package/lib/index.d.ts +4 -8
- package/lib/index.js +7 -7
- package/lib/index.js.map +1 -1
- package/lib/styles.css +1 -1
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/lib/utils/validateFileContent/validateFileContent.d.ts +1 -0
- package/lib/utils/validateFileContent/validateFileContent.js +297 -0
- package/lib/utils/validateFileContent/validateFileContent.js.map +1 -0
- package/package.json +1 -1
- package/lib/utils/computeTreeCountsAndFormatNodes/computeTreeCountsAndFormatNodes.d.ts +0 -8
- package/lib/utils/computeTreeCountsAndFormatNodes/computeTreeCountsAndFormatNodes.js +0 -268
- package/lib/utils/computeTreeCountsAndFormatNodes/computeTreeCountsAndFormatNodes.js.map +0 -1
|
@@ -1,268 +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 already calculated during THIS function run, use the cached result.
|
|
27
|
-
if (calculated.has(key)) {
|
|
28
|
-
return {
|
|
29
|
-
res: node.totalResourceCount ?? 0,
|
|
30
|
-
sub: node.totalSubContainerCount ?? 0,
|
|
31
|
-
};
|
|
32
|
-
}
|
|
33
|
-
let calculatedRes = 0;
|
|
34
|
-
let calculatedSub = 0;
|
|
35
|
-
const children = childrenMap.get(key) || [];
|
|
36
|
-
for (const childKey of children) {
|
|
37
|
-
const childNode = nodeMap.get(childKey);
|
|
38
|
-
if (!childNode)
|
|
39
|
-
continue;
|
|
40
|
-
if (childNode.container === true) {
|
|
41
|
-
calculatedSub += 1;
|
|
42
|
-
}
|
|
43
|
-
else if (childNode.container === false) {
|
|
44
|
-
calculatedRes += 1;
|
|
45
|
-
}
|
|
46
|
-
const childDescendants = countDescendants(childKey);
|
|
47
|
-
calculatedRes += childDescendants.res;
|
|
48
|
-
calculatedSub += childDescendants.sub;
|
|
49
|
-
}
|
|
50
|
-
// ALWAYS overwrite existing API counts with our fresh calculations
|
|
51
|
-
node.totalResourceCount = calculatedRes;
|
|
52
|
-
node.totalSubContainerCount = calculatedSub;
|
|
53
|
-
calculated.add(key);
|
|
54
|
-
return {
|
|
55
|
-
res: calculatedRes,
|
|
56
|
-
sub: calculatedSub,
|
|
57
|
-
};
|
|
58
|
-
};
|
|
59
|
-
// 4. Recursive function to calculate hierarchy level (depth)
|
|
60
|
-
const calculateHierarchy = (key) => {
|
|
61
|
-
const node = nodeMap.get(key);
|
|
62
|
-
if (!node)
|
|
63
|
-
return 0;
|
|
64
|
-
// If already calculated, return cached value to prevent redundant loops
|
|
65
|
-
if (node.hierarchy !== undefined)
|
|
66
|
-
return node.hierarchy;
|
|
67
|
-
// A node is a root (level 0) if it lacks a parentId OR its parent isn't in the dataset
|
|
68
|
-
if (!node.parentId || !nodeMap.has(String(node.parentId))) {
|
|
69
|
-
node.hierarchy = 0;
|
|
70
|
-
return 0;
|
|
71
|
-
}
|
|
72
|
-
// The node's level is its parent's level + 1
|
|
73
|
-
node.hierarchy = calculateHierarchy(String(node.parentId)) + 1;
|
|
74
|
-
return node.hierarchy;
|
|
75
|
-
};
|
|
76
|
-
// Trigger the counts and levels for every single node in the tree
|
|
77
|
-
for (const node of updatedData) {
|
|
78
|
-
const key = String(node.key);
|
|
79
|
-
countDescendants(key);
|
|
80
|
-
calculateHierarchy(key);
|
|
81
|
-
}
|
|
82
|
-
// --- DATE FORMATTER SETUP ---
|
|
83
|
-
const dateFormatter = new Intl.DateTimeFormat('en-GB', {
|
|
84
|
-
timeZone: timezone,
|
|
85
|
-
year: 'numeric',
|
|
86
|
-
month: 'short',
|
|
87
|
-
day: '2-digit',
|
|
88
|
-
hour: '2-digit',
|
|
89
|
-
minute: '2-digit',
|
|
90
|
-
second: '2-digit',
|
|
91
|
-
hour12: true,
|
|
92
|
-
});
|
|
93
|
-
// Helper function to safely format dates
|
|
94
|
-
const formatNodeDate = (dateString) => {
|
|
95
|
-
if (!dateString)
|
|
96
|
-
return dateString;
|
|
97
|
-
try {
|
|
98
|
-
return dateFormatter.format(new Date(dateString));
|
|
99
|
-
}
|
|
100
|
-
catch (error) {
|
|
101
|
-
return dateString;
|
|
102
|
-
}
|
|
103
|
-
};
|
|
104
|
-
return updatedData.map((node) => {
|
|
105
|
-
const expandCheck = !!node.container &&
|
|
106
|
-
((node.totalResourceCount ?? 0) > 0 ||
|
|
107
|
-
(node.totalSubContainerCount ?? 0) > 0);
|
|
108
|
-
return {
|
|
109
|
-
...node,
|
|
110
|
-
expandable: checkEmpty(node.expandable) ? expandCheck : node.expandable,
|
|
111
|
-
expandedAll: checkEmpty(node.expandedAll)
|
|
112
|
-
? expandCheck
|
|
113
|
-
: node.expandedAll,
|
|
114
|
-
expanded: checkEmpty(node.expanded) ? expandCheck : node.expanded,
|
|
115
|
-
createdOn: formatNodeDate(node.createdOn),
|
|
116
|
-
modifiedOn: formatNodeDate(node.modifiedOn),
|
|
117
|
-
hierarchy: node.hierarchy,
|
|
118
|
-
};
|
|
119
|
-
});
|
|
120
|
-
};
|
|
121
|
-
export const updateSearchTree = (searchValues, treeDataList, dispatch, setSearchedTree, setSearchedRootModule) => {
|
|
122
|
-
const currentProject = getStoreValue('current-project');
|
|
123
|
-
if (searchValues?.text) {
|
|
124
|
-
const searchText = searchValues.text.toLowerCase();
|
|
125
|
-
const allNodes = treeDataList || [];
|
|
126
|
-
if (!allNodes?.length) {
|
|
127
|
-
dispatch(setSearchedTree([]));
|
|
128
|
-
dispatch(setSearchedRootModule({}));
|
|
129
|
-
return;
|
|
130
|
-
}
|
|
131
|
-
const parentMap = new Map();
|
|
132
|
-
const childrenMap = new Map();
|
|
133
|
-
const keepNodeKeys = new Set();
|
|
134
|
-
const matchedKeys = [];
|
|
135
|
-
for (const node of allNodes) {
|
|
136
|
-
parentMap.set(node.key, node.parentId);
|
|
137
|
-
if (!childrenMap.has(node.parentId)) {
|
|
138
|
-
childrenMap.set(node.parentId, []);
|
|
139
|
-
}
|
|
140
|
-
childrenMap.get(node.parentId).push(node.key);
|
|
141
|
-
if (node?.name?.toLowerCase().includes(searchText)) {
|
|
142
|
-
matchedKeys.push(node.key);
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
for (const matchKey of matchedKeys) {
|
|
146
|
-
let currentKey = matchKey;
|
|
147
|
-
while (currentKey && !keepNodeKeys.has(currentKey)) {
|
|
148
|
-
keepNodeKeys.add(currentKey);
|
|
149
|
-
currentKey = parentMap.get(currentKey);
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
const cascadeDown = (parentKey) => {
|
|
153
|
-
const children = childrenMap.get(parentKey) || [];
|
|
154
|
-
for (const childKey of children) {
|
|
155
|
-
if (!keepNodeKeys.has(childKey)) {
|
|
156
|
-
keepNodeKeys.add(childKey);
|
|
157
|
-
cascadeDown(childKey);
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
};
|
|
161
|
-
for (const matchKey of matchedKeys) {
|
|
162
|
-
cascadeDown(matchKey);
|
|
163
|
-
}
|
|
164
|
-
const filteredTreeData = allNodes.filter((node) => keepNodeKeys.has(node.key));
|
|
165
|
-
const calculatedTreeData = computeTreeCountsAndFormatNodes(filteredTreeData, currentProject?.timeZone);
|
|
166
|
-
dispatch(setSearchedTree(calculatedTreeData.slice(1)));
|
|
167
|
-
dispatch(setSearchedRootModule(calculatedTreeData[0] ?? {}));
|
|
168
|
-
}
|
|
169
|
-
};
|
|
170
|
-
const parseFacetDate = (dateStr, isEndOfDay) => {
|
|
171
|
-
if (!dateStr)
|
|
172
|
-
return NaN;
|
|
173
|
-
const [day, month, year] = dateStr.split('/').map(Number);
|
|
174
|
-
if (day === undefined ||
|
|
175
|
-
month === undefined ||
|
|
176
|
-
year === undefined ||
|
|
177
|
-
isNaN(day) ||
|
|
178
|
-
isNaN(month) ||
|
|
179
|
-
isNaN(year)) {
|
|
180
|
-
return NaN;
|
|
181
|
-
}
|
|
182
|
-
const date = new Date(year, month - 1, day);
|
|
183
|
-
if (isEndOfDay)
|
|
184
|
-
date.setHours(23, 59, 59, 999);
|
|
185
|
-
return date.getTime();
|
|
186
|
-
};
|
|
187
|
-
export const passesFilters = (facetQueries, response) => {
|
|
188
|
-
if (!facetQueries?.length)
|
|
189
|
-
return true;
|
|
190
|
-
const node = response?.responseObject;
|
|
191
|
-
if (!node)
|
|
192
|
-
return false;
|
|
193
|
-
return facetQueries.every((facet) => {
|
|
194
|
-
if (!facet.values || facet.values.length === 0)
|
|
195
|
-
return true;
|
|
196
|
-
switch (facet.name) {
|
|
197
|
-
case 'createdBy':
|
|
198
|
-
case 'modifiedBy': {
|
|
199
|
-
const unameKey = facet.name === 'createdBy' ? 'createdByUname' : 'modifiedByUname';
|
|
200
|
-
return facet.values.includes(node[unameKey]);
|
|
201
|
-
}
|
|
202
|
-
case 'methodType': {
|
|
203
|
-
try {
|
|
204
|
-
if (!node.fatRequest)
|
|
205
|
-
return false;
|
|
206
|
-
const parsedFat = JSON.parse(node.fatRequest);
|
|
207
|
-
const parsedReq = JSON.parse(parsedFat.request);
|
|
208
|
-
return facet.values.includes(parsedReq.method);
|
|
209
|
-
}
|
|
210
|
-
catch {
|
|
211
|
-
return false;
|
|
212
|
-
}
|
|
213
|
-
}
|
|
214
|
-
case 'createdOn':
|
|
215
|
-
case 'modifiedOn': {
|
|
216
|
-
const nodeTime = new Date(node[facet.name]).getTime();
|
|
217
|
-
if (isNaN(nodeTime))
|
|
218
|
-
return false;
|
|
219
|
-
const startTime = parseFacetDate(facet.values[0], false);
|
|
220
|
-
const endTime = parseFacetDate(facet.values[1] || facet.values[0], true);
|
|
221
|
-
return nodeTime >= startTime && nodeTime <= endTime;
|
|
222
|
-
}
|
|
223
|
-
default:
|
|
224
|
-
return facet.values.includes(node[facet.name]);
|
|
225
|
-
}
|
|
226
|
-
});
|
|
227
|
-
};
|
|
228
|
-
export const restoreSelectedFilters = (urlFilters, setSelectedFilters, setModifiedOnState, setInitialFilterData, setInitialModifiedOnState) => {
|
|
229
|
-
const restoredSelectedFilters = [];
|
|
230
|
-
const restoredModifiedOnState = {
|
|
231
|
-
modifiedFrom: undefined,
|
|
232
|
-
modifiedTo: undefined,
|
|
233
|
-
};
|
|
234
|
-
urlFilters.forEach((filter) => {
|
|
235
|
-
if (filter.name === 'modifiedOn') {
|
|
236
|
-
restoredModifiedOnState.modifiedFrom = filter.values[0]
|
|
237
|
-
? new Date(filter.values[0])
|
|
238
|
-
: undefined;
|
|
239
|
-
restoredModifiedOnState.modifiedTo = filter.values[1]
|
|
240
|
-
? new Date(filter.values[1])
|
|
241
|
-
: undefined;
|
|
242
|
-
}
|
|
243
|
-
else {
|
|
244
|
-
filter.values.forEach((val) => {
|
|
245
|
-
restoredSelectedFilters.push(`${filter.name}-${val}`);
|
|
246
|
-
});
|
|
247
|
-
}
|
|
248
|
-
});
|
|
249
|
-
setSelectedFilters(restoredSelectedFilters);
|
|
250
|
-
setModifiedOnState(restoredModifiedOnState);
|
|
251
|
-
setInitialFilterData(restoredSelectedFilters);
|
|
252
|
-
setInitialModifiedOnState(restoredModifiedOnState);
|
|
253
|
-
};
|
|
254
|
-
export const getFiltersFromUrl = (params) => {
|
|
255
|
-
const filters = [];
|
|
256
|
-
const FILTER_PREFIX = 'f_';
|
|
257
|
-
params.forEach((value, key) => {
|
|
258
|
-
if (key.startsWith(FILTER_PREFIX)) {
|
|
259
|
-
const cleanName = key.replace(FILTER_PREFIX, '');
|
|
260
|
-
filters.push({
|
|
261
|
-
name: cleanName,
|
|
262
|
-
values: value.split(','),
|
|
263
|
-
});
|
|
264
|
-
}
|
|
265
|
-
});
|
|
266
|
-
return filters;
|
|
267
|
-
};
|
|
268
|
-
//# sourceMappingURL=computeTreeCountsAndFormatNodes.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"computeTreeCountsAndFormatNodes.js","sourceRoot":"","sources":["../../../src/utils/computeTreeCountsAndFormatNodes/computeTreeCountsAndFormatNodes.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAExD,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAC7C,QAAyB,EACzB,WAAmB,cAAc,EAChB,EAAE;IACnB,MAAM,OAAO,GAAG,IAAI,GAAG,EAAyB,CAAC;IACjD,MAAM,WAAW,GAAG,IAAI,GAAG,EAAoB,CAAC;IAEhD,qCAAqC;IACrC,MAAM,WAAW,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC;IAE1D,0CAA0C;IAC1C,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;QAC/B,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAEvB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC1C,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;gBAClC,WAAW,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;YACnC,CAAC;YACD,WAAW,CAAC,GAAG,CAAC,WAAW,CAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;IAErC,oEAAoE;IACpE,MAAM,gBAAgB,GAAG,CAAC,GAAW,EAAgC,EAAE;QACrE,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,CAAC,IAAI;YAAE,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;QAErC,yEAAyE;QACzE,IAAI,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACxB,OAAO;gBACL,GAAG,EAAE,IAAI,CAAC,kBAAkB,IAAI,CAAC;gBACjC,GAAG,EAAE,IAAI,CAAC,sBAAsB,IAAI,CAAC;aACtC,CAAC;QACJ,CAAC;QAED,IAAI,aAAa,GAAG,CAAC,CAAC;QACtB,IAAI,aAAa,GAAG,CAAC,CAAC;QAEtB,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QAE5C,KAAK,MAAM,QAAQ,IAAI,QAAQ,EAAE,CAAC;YAChC,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACxC,IAAI,CAAC,SAAS;gBAAE,SAAS;YAEzB,IAAI,SAAS,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;gBACjC,aAAa,IAAI,CAAC,CAAC;YACrB,CAAC;iBAAM,IAAI,SAAS,CAAC,SAAS,KAAK,KAAK,EAAE,CAAC;gBACzC,aAAa,IAAI,CAAC,CAAC;YACrB,CAAC;YAED,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;YACpD,aAAa,IAAI,gBAAgB,CAAC,GAAG,CAAC;YACtC,aAAa,IAAI,gBAAgB,CAAC,GAAG,CAAC;QACxC,CAAC;QAED,mEAAmE;QACnE,IAAI,CAAC,kBAAkB,GAAG,aAAa,CAAC;QACxC,IAAI,CAAC,sBAAsB,GAAG,aAAa,CAAC;QAE5C,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAEpB,OAAO;YACL,GAAG,EAAE,aAAa;YAClB,GAAG,EAAE,aAAa;SACnB,CAAC;IACJ,CAAC,CAAC;IAEF,6DAA6D;IAC7D,MAAM,kBAAkB,GAAG,CAAC,GAAW,EAAU,EAAE;QACjD,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,CAAC,IAAI;YAAE,OAAO,CAAC,CAAC;QAEpB,wEAAwE;QACxE,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC,SAAS,CAAC;QAExD,uFAAuF;QACvF,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;YAC1D,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;YACnB,OAAO,CAAC,CAAC;QACX,CAAC;QAED,6CAA6C;QAC7C,IAAI,CAAC,SAAS,GAAG,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC;QAC/D,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC,CAAC;IAEF,kEAAkE;IAClE,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;QAC/B,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC7B,gBAAgB,CAAC,GAAG,CAAC,CAAC;QACtB,kBAAkB,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IAED,+BAA+B;IAC/B,MAAM,aAAa,GAAG,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE;QACrD,QAAQ,EAAE,QAAQ;QAClB,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,OAAO;QACd,GAAG,EAAE,SAAS;QACd,IAAI,EAAE,SAAS;QACf,MAAM,EAAE,SAAS;QACjB,MAAM,EAAE,SAAS;QACjB,MAAM,EAAE,IAAI;KACb,CAAC,CAAC;IAEH,yCAAyC;IACzC,MAAM,cAAc,GAAG,CAAC,UAAmB,EAAE,EAAE;QAC7C,IAAI,CAAC,UAAU;YAAE,OAAO,UAAU,CAAC;QACnC,IAAI,CAAC;YACH,OAAO,aAAa,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;QACpD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,UAAU,CAAC;QACpB,CAAC;IACH,CAAC,CAAC;IAEF,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QAC9B,MAAM,WAAW,GACf,CAAC,CAAC,IAAI,CAAC,SAAS;YAChB,CAAC,CAAC,IAAI,CAAC,kBAAkB,IAAI,CAAC,CAAC,GAAG,CAAC;gBACjC,CAAC,IAAI,CAAC,sBAAsB,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAE5C,OAAO;YACL,GAAG,IAAI;YACP,UAAU,EAAE,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU;YACvE,WAAW,EAAE,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC;gBACvC,CAAC,CAAC,WAAW;gBACb,CAAC,CAAC,IAAI,CAAC,WAAW;YACpB,QAAQ,EAAE,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ;YACjE,SAAS,EAAE,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC;YACzC,UAAU,EAAE,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC;YAC3C,SAAS,EAAE,IAAI,CAAC,SAAS;SAC1B,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,YAAwB,EACxB,YAA6B,EAC7B,QAAuB,EACvB,eAAoC,EACpC,qBAA0C,EAC1C,EAAE;IACF,MAAM,cAAc,GAAG,aAAa,CAAC,iBAAiB,CAIrD,CAAC;IAEF,IAAI,YAAY,EAAE,IAAI,EAAE,CAAC;QACvB,MAAM,UAAU,GAAG,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QACnD,MAAM,QAAQ,GAAG,YAAY,IAAI,EAAE,CAAC;QAEpC,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;YACtB,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC;YAC9B,QAAQ,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC,CAAC;YACpC,OAAO;QACT,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,GAAG,EAAE,CAAC;QAC5B,MAAM,WAAW,GAAG,IAAI,GAAG,EAAE,CAAC;QAC9B,MAAM,YAAY,GAAG,IAAI,GAAG,EAAE,CAAC;QAC/B,MAAM,WAAW,GAAG,EAAE,CAAC;QAEvB,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;YAC5B,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YACvC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACpC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YACrC,CAAC;YACD,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAE9C,IAAI,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;gBACnD,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC;QAED,KAAK,MAAM,QAAQ,IAAI,WAAW,EAAE,CAAC;YACnC,IAAI,UAAU,GAAG,QAAQ,CAAC;YAC1B,OAAO,UAAU,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;gBACnD,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;gBAC7B,UAAU,GAAG,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YACzC,CAAC;QACH,CAAC;QAED,MAAM,WAAW,GAAG,CAAC,SAAiB,EAAE,EAAE;YACxC,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;YAClD,KAAK,MAAM,QAAQ,IAAI,QAAQ,EAAE,CAAC;gBAChC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAChC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;oBAC3B,WAAW,CAAC,QAAQ,CAAC,CAAC;gBACxB,CAAC;YACH,CAAC;QACH,CAAC,CAAC;QAEF,KAAK,MAAM,QAAQ,IAAI,WAAW,EAAE,CAAC;YACnC,WAAW,CAAC,QAAQ,CAAC,CAAC;QACxB,CAAC;QACD,MAAM,gBAAgB,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAqB,EAAE,EAAE,CACjE,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAC3B,CAAC;QAEF,MAAM,kBAAkB,GAAG,+BAA+B,CACxD,gBAAgB,EAChB,cAAc,EAAE,QAAQ,CACzB,CAAC;QAEF,QAAQ,CAAC,eAAe,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvD,QAAQ,CACN,qBAAqB,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAK,EAAiB,CAAC,CACnE,CAAC;IACJ,CAAC;AACH,CAAC,CAAC;AACF,MAAM,cAAc,GAAG,CAAC,OAAe,EAAE,UAAmB,EAAE,EAAE;IAC9D,IAAI,CAAC,OAAO;QAAE,OAAO,GAAG,CAAC;IACzB,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC1D,IACE,GAAG,KAAK,SAAS;QACjB,KAAK,KAAK,SAAS;QACnB,IAAI,KAAK,SAAS;QAClB,KAAK,CAAC,GAAG,CAAC;QACV,KAAK,CAAC,KAAK,CAAC;QACZ,KAAK,CAAC,IAAI,CAAC,EACX,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;IAC5C,IAAI,UAAU;QAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;IAC/C,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;AACxB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,YAA0B,EAC1B,QAAoB,EACpB,EAAE;IACF,IAAI,CAAC,YAAY,EAAE,MAAM;QAAE,OAAO,IAAI,CAAC;IAEvC,MAAM,IAAI,GAAG,QAAQ,EAAE,cAAc,CAAC;IAEtC,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IAExB,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;QAClC,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAE5D,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;YACnB,KAAK,WAAW,CAAC;YACjB,KAAK,YAAY,CAAC,CAAC,CAAC;gBAClB,MAAM,QAAQ,GACZ,KAAK,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,iBAAiB,CAAC;gBACpE,OAAO,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC/C,CAAC;YAED,KAAK,YAAY,CAAC,CAAC,CAAC;gBAClB,IAAI,CAAC;oBACH,IAAI,CAAC,IAAI,CAAC,UAAU;wBAAE,OAAO,KAAK,CAAC;oBACnC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;oBAC9C,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;oBAChD,OAAO,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;gBACjD,CAAC;gBAAC,MAAM,CAAC;oBACP,OAAO,KAAK,CAAC;gBACf,CAAC;YACH,CAAC;YAED,KAAK,WAAW,CAAC;YACjB,KAAK,YAAY,CAAC,CAAC,CAAC;gBAClB,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;gBAEtD,IAAI,KAAK,CAAC,QAAQ,CAAC;oBAAE,OAAO,KAAK,CAAC;gBAElC,MAAM,SAAS,GAAG,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;gBACzD,MAAM,OAAO,GAAG,cAAc,CAC5B,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAClC,IAAI,CACL,CAAC;gBAEF,OAAO,QAAQ,IAAI,SAAS,IAAI,QAAQ,IAAI,OAAO,CAAC;YACtD,CAAC;YAED;gBACE,OAAO,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QACnD,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CACpC,UAAwB,EACxB,kBAA+C,EAC/C,kBAAiD,EACjD,oBAAiD,EACjD,yBAAwD,EACxD,EAAE;IACF,MAAM,uBAAuB,GAAa,EAAE,CAAC;IAC7C,MAAM,uBAAuB,GAAe;QAC1C,YAAY,EAAE,SAAS;QACvB,UAAU,EAAE,SAAS;KACtB,CAAC;IAEF,UAAU,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;QAC5B,IAAI,MAAM,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YACjC,uBAAuB,CAAC,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;gBACrD,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBAC5B,CAAC,CAAC,SAAS,CAAC;YACd,uBAAuB,CAAC,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;gBACnD,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBAC5B,CAAC,CAAC,SAAS,CAAC;QAChB,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAW,EAAE,EAAE;gBACpC,uBAAuB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,IAAI,GAAG,EAAE,CAAC,CAAC;YACxD,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,kBAAkB,CAAC,uBAAuB,CAAC,CAAC;IAC5C,kBAAkB,CAAC,uBAAuB,CAAC,CAAC;IAE5C,oBAAoB,CAAC,uBAAuB,CAAC,CAAC;IAC9C,yBAAyB,CAAC,uBAAuB,CAAC,CAAC;AACrD,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,MAAuB,EAAE,EAAE;IAC3D,MAAM,OAAO,GAAiB,EAAE,CAAC;IACjC,MAAM,aAAa,GAAG,IAAI,CAAC;IAE3B,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QAC5B,IAAI,GAAG,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;YAClC,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;YAEjD,OAAO,CAAC,IAAI,CAAC;gBACX,IAAI,EAAE,SAAS;gBACf,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;aACzB,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC"}
|