@acorex/modules 18.0.4 → 18.0.5

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,54 +1,110 @@
1
- import { endsWith, get, gt, gte, includes, isEmpty, isEqual, lt, lte, orderBy, startsWith } from 'lodash-es';
1
+ import { endsWith, get, gt, gte, includes, isEmpty, isEqual, isNil, lt, lte, orderBy, startsWith } from 'lodash-es';
2
+ const loggingEnabled = false; // Set to true to enable logging, false to disable
2
3
  function applyCondition(item, condition) {
3
- const rawValue = get(item, condition.field);
4
+ const rawValue = condition.field ? get(item, condition.field) : null;
4
5
  const itemValue = typeof rawValue === 'string' ? rawValue.toLowerCase() : rawValue;
5
6
  const conditionValue = typeof condition.value === 'string' ? condition.value.toLowerCase() : condition.value;
6
- // Logging for debugging
7
- // console.log('Condition:', condition);
8
- // console.log('Item Value:', itemValue);
9
- // console.log('Condition Value:', conditionValue);
7
+ // Conditional Logging for debugging
8
+ if (loggingEnabled) {
9
+ console.log('Condition:', condition);
10
+ console.log('Item Value:', itemValue);
11
+ console.log('Condition Value:', conditionValue);
12
+ }
13
+ let result;
14
+ const valueToCompare = isNil(condition.field) || condition.field === '' ? conditionValue : itemValue;
10
15
  switch (condition.operator.type) {
11
16
  case 'equal':
12
- return isEqual(itemValue, conditionValue);
17
+ result = isEqual(valueToCompare, conditionValue);
18
+ if (loggingEnabled)
19
+ console.log('Equal check result:', result);
20
+ break;
13
21
  case 'notEqual':
14
- return !isEqual(itemValue, conditionValue);
22
+ result = !isEqual(valueToCompare, conditionValue);
23
+ if (loggingEnabled)
24
+ console.log('Not equal check result:', result);
25
+ break;
15
26
  case 'greaterThan':
16
- return gt(itemValue, conditionValue);
27
+ result = gt(valueToCompare, conditionValue);
28
+ if (loggingEnabled)
29
+ console.log('Greater than check result:', result);
30
+ break;
17
31
  case 'lessThan':
18
- return lt(itemValue, conditionValue);
32
+ result = lt(valueToCompare, conditionValue);
33
+ if (loggingEnabled)
34
+ console.log('Less than check result:', result);
35
+ break;
19
36
  case 'greaterThanOrEqual':
20
- return gte(itemValue, conditionValue);
37
+ result = gte(valueToCompare, conditionValue);
38
+ if (loggingEnabled)
39
+ console.log('Greater than or equal check result:', result);
40
+ break;
21
41
  case 'lessThanOrEqual':
22
- return lte(itemValue, conditionValue);
42
+ result = lte(valueToCompare, conditionValue);
43
+ if (loggingEnabled)
44
+ console.log('Less than or equal check result:', result);
45
+ break;
23
46
  case 'contains':
24
- if (typeof itemValue === 'string') {
25
- return includes(itemValue, conditionValue);
47
+ if (typeof valueToCompare === 'string') {
48
+ result = includes(valueToCompare, conditionValue);
49
+ }
50
+ else if (Array.isArray(valueToCompare)) {
51
+ result = includes(valueToCompare.map(val => val.toString().toLowerCase()), conditionValue);
26
52
  }
27
- else if (Array.isArray(itemValue)) {
28
- return includes(itemValue.map(val => val.toString().toLowerCase()), conditionValue);
53
+ else {
54
+ result = false;
29
55
  }
30
- return false;
56
+ if (loggingEnabled)
57
+ console.log('Contains check result:', result);
58
+ break;
31
59
  case 'notContains':
32
- if (typeof itemValue === 'string') {
33
- return !includes(itemValue, conditionValue);
60
+ if (typeof valueToCompare === 'string') {
61
+ result = !includes(valueToCompare, conditionValue);
34
62
  }
35
- else if (Array.isArray(itemValue)) {
36
- return !includes(itemValue.map(val => val.toString().toLowerCase()), conditionValue);
63
+ else if (Array.isArray(valueToCompare)) {
64
+ result = !includes(valueToCompare.map(val => val.toString().toLowerCase()), conditionValue);
65
+ }
66
+ else {
67
+ result = false;
37
68
  }
38
- return false;
69
+ if (loggingEnabled)
70
+ console.log('Not contains check result:', result);
71
+ break;
39
72
  case 'startsWith':
40
- return typeof itemValue === 'string' && startsWith(itemValue, conditionValue);
73
+ result = typeof valueToCompare === 'string' && startsWith(valueToCompare, conditionValue);
74
+ if (loggingEnabled)
75
+ console.log('Starts with check result:', result);
76
+ break;
41
77
  case 'endsWith':
42
- return typeof itemValue === 'string' && endsWith(itemValue, conditionValue);
78
+ result = typeof valueToCompare === 'string' && endsWith(valueToCompare, conditionValue);
79
+ if (loggingEnabled)
80
+ console.log('Ends with check result:', result);
81
+ break;
43
82
  case 'isEmpty':
44
- return isEmpty(itemValue);
83
+ result = isEmpty(valueToCompare);
84
+ if (loggingEnabled)
85
+ console.log('Is empty check result:', result);
86
+ break;
87
+ case 'isNull':
88
+ result = isNil(valueToCompare);
89
+ if (loggingEnabled)
90
+ console.log('Is null check result:', result);
91
+ break;
45
92
  case 'isNotEmpty':
46
- return !isEmpty(itemValue);
93
+ result = !isEmpty(valueToCompare);
94
+ if (loggingEnabled)
95
+ console.log('Is not empty check result:', result);
96
+ break;
47
97
  case 'between':
48
- return itemValue >= condition.value.from && itemValue <= condition.value.to;
98
+ result = !isNil(valueToCompare) && valueToCompare >= condition.value.from && valueToCompare <= condition.value.to;
99
+ if (loggingEnabled)
100
+ console.log('Between check result:', result);
101
+ break;
49
102
  default:
50
- return true;
103
+ result = true;
104
+ if (loggingEnabled)
105
+ console.log('Default case, returning true');
51
106
  }
107
+ return result;
52
108
  }
53
109
  export function applyFilterArray(dataArray, filters, logic = 'and') {
54
110
  if (filters && filters.length) {
@@ -79,4 +135,4 @@ export function applySortArray(dataArray, sorts) {
79
135
  else
80
136
  return dataArray;
81
137
  }
82
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1Db25kaXRpb25lci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbW9kdWxlcy9iYWNrZW5kL3NyYy9saWIvZGF0YS9sb2NhbC9kYXRhLUNvbmRpdGlvbmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxRQUFRLEVBQVMsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQVEsVUFBVSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRTFILFNBQVMsY0FBYyxDQUFDLElBQVMsRUFBRSxTQUFjO0lBQy9DLE1BQU0sUUFBUSxHQUFHLEdBQUcsQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVDLE1BQU0sU0FBUyxHQUFHLE9BQU8sUUFBUSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7SUFDbkYsTUFBTSxjQUFjLEdBQUcsT0FBTyxTQUFTLENBQUMsS0FBSyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQztJQUU3Ryx3QkFBd0I7SUFDeEIsd0NBQXdDO0lBQ3hDLHlDQUF5QztJQUN6QyxtREFBbUQ7SUFFbkQsUUFBUSxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2hDLEtBQUssT0FBTztZQUNWLE9BQU8sT0FBTyxDQUFDLFNBQVMsRUFBRSxjQUFjLENBQUMsQ0FBQztRQUM1QyxLQUFLLFVBQVU7WUFDYixPQUFPLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxjQUFjLENBQUMsQ0FBQztRQUM3QyxLQUFLLGFBQWE7WUFDaEIs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LE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO29CQUN4QixPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDdkcsQ0FBQyxDQUFDLENBQUM7WUFDTCxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO1NBQU0sQ0FBQztRQUNOLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7QUFDSCxDQUFDO0FBR0QsTUFBTSxVQUFVLGNBQWMsQ0FBQyxTQUFjLEVBQUUsS0FBK0M7SUFDNUYsSUFBSSxLQUFLLElBQUksS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUM5QixNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDN0MsTUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzNDLE9BQU8sT0FBTyxDQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDcEQsQ0FBQzs7UUFBTSxPQUFPLFNBQVMsQ0FBQztBQUMxQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhEYXRhU291cmNlRmlsdGVyT3B0aW9uIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2NvbW1vbic7XHJcbmltcG9ydCB7IGVuZHNXaXRoLCBldmVyeSwgZ2V0LCBndCwgZ3RlLCBpbmNsdWRlcywgaXNFbXB0eSwgaXNFcXVhbCwgbHQsIGx0ZSwgb3JkZXJCeSwgc29tZSwgc3RhcnRzV2l0aCB9IGZyb20gJ2xvZGFzaC1lcyc7XHJcblxyXG5mdW5jdGlvbiBhcHBseUNvbmRpdGlvbihpdGVtOiBhbnksIGNvbmRpdGlvbjogYW55KSB7XHJcbiAgY29uc3QgcmF3VmFsdWUgPSBnZXQoaXRlbSwgY29uZGl0aW9uLmZpZWxkKTtcclxuICBjb25zdCBpdGVtVmFsdWUgPSB0eXBlb2YgcmF3VmFsdWUgPT09ICdzdHJpbmcnID8gcmF3VmFsdWUudG9Mb3dlckNhc2UoKSA6IHJhd1ZhbHVlO1xyXG4gIGNvbnN0IGNvbmRpdGlvblZhbHVlID0gdHlwZW9mIGNvbmRpdGlvbi52YWx1ZSA9PT0gJ3N0cmluZycgPyBjb25kaXRpb24udmFsdWUudG9Mb3dlckNhc2UoKSA6IGNvbmRpdGlvbi52YWx1ZTtcclxuXHJcbiAgLy8gTG9nZ2luZyBmb3IgZGVidWdnaW5nXHJcbiAgLy8gY29uc29sZS5sb2coJ0NvbmRpdGlvbjonLCBjb25kaXRpb24pO1xyXG4gIC8vIGNvbnNvbGUubG9nKCdJdGVtIFZhbHVlOicsIGl0ZW1WYWx1ZSk7XHJcbiAgLy8gY29uc29sZS5sb2coJ0NvbmRpdGlvbiBWYWx1ZTonLCBjb25kaXRpb25WYWx1ZSk7XHJcblxyXG4gIHN3aXRjaCAoY29uZGl0aW9uLm9wZXJhdG9yLnR5cGUpIHtcclxuICAgIGNhc2UgJ2VxdWFsJzpcclxuICAgICAgcmV0dXJuIGlzRXF1YWwoaXRlbVZhbHVlLCBjb25kaXRpb25WYWx1ZSk7XHJcbiAgICBjYXNlICdub3RFcXVhbCc6XHJcbiAgICAgIHJldHVybiAhaXNFcXVhbChpdGVtVmFsdWUsIGNvbmRpdGlvblZhbHVlKTtcclxuICAgIGNhc2UgJ2dyZWF0ZXJUaGFuJzpcclxuICAgICAgcmV0dXJuIGd0KGl0ZW1WYWx1ZSwgY29uZGl0aW9uVmFsdWUpO1xyXG4gICAgY2FzZSAnbGVzc1RoYW4nOlxyXG4gICAgICByZXR1cm4gbHQoaXRlbVZhbHVlLCBjb25kaXRpb25WYWx1ZSk7XHJcbiAgICBjYXNlICdncmVhdGVyVGhhbk9yRXF1YWwnOlxyXG4gICAgICByZXR1cm4gZ3RlKGl0ZW1WYWx1ZSwgY29uZGl0aW9uVmFsdWUpO1xyXG4gICAgY2FzZSAnbGVzc1RoYW5PckVxdWFsJzpcclxuICAgICAgcmV0dXJuIGx0ZShpdGVtVmFsdWUsIGNvbmRpdGlvblZhbHVlKTtcclxuICAgIGNhc2UgJ2NvbnRhaW5zJzpcclxuICAgICAgaWYgKHR5cGVvZiBpdGVtVmFsdWUgPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgICAgcmV0dXJuIGluY2x1ZGVzKGl0ZW1WYWx1ZSwgY29uZGl0aW9uVmFsdWUpO1xyXG4gICAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoaXRlbVZhbHVlKSkge1xyXG4gICAgICAgIHJldHVybiBpbmNsdWRlcyhpdGVtVmFsdWUubWFwKHZhbCA9PiB2YWwudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpKSwgY29uZGl0aW9uVmFsdWUpO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIGNhc2UgJ25vdENvbnRhaW5zJzpcclxuICAgICAgaWYgKHR5cGVvZiBpdGVtVmFsdWUgPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgICAgcmV0dXJuICFpbmNsdWRlcyhpdGVtVmFsdWUsIGNvbmRpdGlvblZhbHVlKTtcclxuICAgICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KGl0ZW1WYWx1ZSkpIHtcclxuICAgICAgICByZXR1cm4gIWluY2x1ZGVzKGl0ZW1WYWx1ZS5tYXAodmFsID0+IHZhbC50b1N0cmluZygpLnRvTG93ZXJDYXNlKCkpLCBjb25kaXRpb25WYWx1ZSk7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgY2FzZSAnc3RhcnRzV2l0aCc6XHJcbiAgICAgIHJldHVybiB0eXBlb2YgaXRlbVZhbHVlID09PSAnc3RyaW5nJyAmJiBzdGFydHNXaXRoKGl0ZW1WYWx1ZSwgY29uZGl0aW9uVmFsdWUpO1xyXG4gICAgY2FzZSAnZW5kc1dpdGgnOlxyXG4gICAgICByZXR1cm4gdHlwZW9mIGl0ZW1WYWx1ZSA9PT0gJ3N0cmluZycgJiYgZW5kc1dpdGgoaXRlbVZhbHVlLCBjb25kaXRpb25WYWx1ZSk7XHJcbiAgICBjYXNlICdpc0VtcHR5JzpcclxuICAgICAgcmV0dXJuIGlzRW1wdHkoaXRlbVZhbHVlKTtcclxuICAgIGNhc2UgJ2lzTm90RW1wdHknOlxyXG4gICAgICByZXR1cm4gIWlzRW1wdHkoaXRlbVZhbHVlKTtcclxuICAgIGNhc2UgJ2JldHdlZW4nOlxyXG4gICAgICByZXR1cm4gaXRlbVZhbHVlID49IGNvbmRpdGlvbi52YWx1ZS5mcm9tICYmIGl0ZW1WYWx1ZSA8PSBjb25kaXRpb24udmFsdWUudG87XHJcbiAgICBkZWZhdWx0OlxyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBhcHBseUZpbHRlckFycmF5KFxyXG4gIGRhdGFBcnJheTogYW55W10sXHJcbiAgZmlsdGVycz86IEFYRGF0YVNvdXJjZUZpbHRlck9wdGlvbltdLFxyXG4gIGxvZ2ljOiAnYW5kJyB8ICdvcicgPSAnYW5kJ1xyXG4pOiBhbnlbXSB7XHJcbiAgaWYgKGZpbHRlcnMgJiYgZmlsdGVycy5sZW5ndGgpIHtcclxuICAgIHJldHVybiBkYXRhQXJyYXkuZmlsdGVyKChpdGVtKSA9PiB7XHJcbiAgICAgIGlmIChsb2dpYyA9PT0gJ2FuZCcpIHtcclxuICAgICAgICByZXR1cm4gZmlsdGVycy5ldmVyeSgoZikgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIGYuZmlsdGVycyA/IGFwcGx5RmlsdGVyQXJyYXkoW2l0ZW1dLCBmLmZpbHRlcnMsIGYubG9naWMpLmxlbmd0aCA+IDAgOiBhcHBseUNvbmRpdGlvbihpdGVtLCBmKTtcclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICAvLyBsb2dpYyA9PT0gJ29yJ1xyXG4gICAgICAgIHJldHVybiBmaWx0ZXJzLnNvbWUoKGYpID0+IHtcclxuICAgICAgICAgIHJldHVybiBmLmZpbHRlcnMgPyBhcHBseUZpbHRlckFycmF5KFtpdGVtXSwgZi5maWx0ZXJzLCBmLmxvZ2ljKS5sZW5ndGggPiAwIDogYXBwbHlDb25kaXRpb24oaXRlbSwgZik7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH0gZWxzZSB7XHJcbiAgICByZXR1cm4gZGF0YUFycmF5O1xyXG4gIH1cclxufVxyXG5cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBhcHBseVNvcnRBcnJheShkYXRhQXJyYXk6IGFueSwgc29ydHM6IHsgZmllbGQ6IHN0cmluZzsgZGlyOiAnYXNjJyB8ICdkZXNjJyB9W10pIHtcclxuICBpZiAoc29ydHMgJiYgc29ydHMubGVuZ3RoID4gMCkge1xyXG4gICAgY29uc3Qgc29ydEZpZWxkcyA9IHNvcnRzLm1hcCgocykgPT4gcy5maWVsZCk7XHJcbiAgICBjb25zdCBzb3J0T3JkZXJzID0gc29ydHMubWFwKChzKSA9PiBzLmRpcik7XHJcbiAgICByZXR1cm4gb3JkZXJCeShkYXRhQXJyYXksIHNvcnRGaWVsZHMsIHNvcnRPcmRlcnMpO1xyXG4gIH0gZWxzZSByZXR1cm4gZGF0YUFycmF5O1xyXG59XHJcbiJdfQ==
138
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1Db25kaXRpb25lci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbW9kdWxlcy9iYWNrZW5kL3NyYy9saWIvZGF0YS9sb2NhbC9kYXRhLUNvbmRpdGlvbmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUVwSCxNQUFNLGNBQWMsR0FBRyxLQUFLLENBQUMsQ0FBQyxrREFBa0Q7QUFFaEYsU0FBUyxjQUFjLENBQUMsSUFBUyxFQUFFLFNBQWM7SUFDL0MsTUFBTSxRQUFRLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUNyRSxNQUFNLFNBQVMsR0FBRyxPQUFPLFFBQVEsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO0lBQ25GLE1BQU0sY0FBYyxHQUFHLE9BQU8sU0FBUyxDQUFDLEtBQUssS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUM7SUFFN0csb0NBQW9DO0lBQ3BDLElBQUksY0FBYyxFQUFFLENBQUM7UUFDbkIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDckMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFD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aUI7Z0JBQ2pCLE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO29CQUN4QixPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDdkcsQ0FBQyxDQUFDLENBQUM7WUFDTCxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO1NBQU0sQ0FBQztRQUNOLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7QUFDSCxDQUFDO0FBR0QsTUFBTSxVQUFVLGNBQWMsQ0FBQyxTQUFjLEVBQUUsS0FBK0M7SUFDNUYsSUFBSSxLQUFLLElBQUksS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUM5QixNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDN0MsTUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzNDLE9BQU8sT0FBTyxDQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDcEQsQ0FBQzs7UUFBTSxPQUFPLFNBQVMsQ0FBQztBQUMxQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhEYXRhU291cmNlRmlsdGVyT3B0aW9uIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2NvbW1vbic7XHJcbmltcG9ydCB7IGVuZHNXaXRoLCBnZXQsIGd0LCBndGUsIGluY2x1ZGVzLCBpc0VtcHR5LCBpc0VxdWFsLCBpc05pbCwgbHQsIGx0ZSwgb3JkZXJCeSwgc3RhcnRzV2l0aCB9IGZyb20gJ2xvZGFzaC1lcyc7XHJcblxyXG5jb25zdCBsb2dnaW5nRW5hYmxlZCA9IGZhbHNlOyAvLyBTZXQgdG8gdHJ1ZSB0byBlbmFibGUgbG9nZ2luZywgZmFsc2UgdG8gZGlzYWJsZVxyXG5cclxuZnVuY3Rpb24gYXBwbHlDb25kaXRpb24oaXRlbTogYW55LCBjb25kaXRpb246IGFueSkge1xyXG4gIGNvbnN0IHJhd1ZhbHVlID0gY29uZGl0aW9uLmZpZWxkID8gZ2V0KGl0ZW0sIGNvbmRpdGlvbi5maWVsZCkgOiBudWxsO1xyXG4gIGNvbnN0IGl0ZW1WYWx1ZSA9IHR5cGVvZiByYXdWYWx1ZSA9PT0gJ3N0cmluZycgPyByYXdWYWx1ZS50b0xvd2VyQ2FzZSgpIDogcmF3VmFsdWU7XHJcbiAgY29uc3QgY29uZGl0aW9uVmFsdWUgPSB0eXBlb2YgY29uZGl0aW9uLnZhbHVlID09PSAnc3RyaW5nJyA/IGNvbmRpdGlvbi52YWx1ZS50b0xvd2VyQ2FzZSgpIDogY29uZGl0aW9uLnZhbHVlO1xyXG5cclxuICAvLyBDb25kaXRpb25hbCBMb2dnaW5nIGZvciBkZWJ1Z2dpbmdcclxuICBpZiAobG9nZ2luZ0VuYWJsZWQpIHtcclxuICAgIGNvbnNvbGUubG9nKCdDb25kaXRpb246JywgY29uZGl0aW9uKTtcclxuICAgIGNvbnNvbGUubG9nKCdJdGVtIFZhbHVlOicsIGl0ZW1WYWx1ZSk7XHJcbiAgICBjb25zb2xlLmxvZygnQ29uZGl0aW9uIFZhbHVlOicsIGNvbmRpdGlvblZhbHVlKTtcclxuICB9XHJcblxyXG4gIGxldCByZXN1bHQ6IGJvb2xlYW47XHJcbiAgY29uc3QgdmFsdWVUb0NvbXBhcmUgPSBpc05pbChjb25kaXRpb24uZmllbGQpIHx8IGNvbmRpdGlvbi5maWVsZCA9PT0gJycgPyBjb25kaXRpb25WYWx1ZSA6IGl0ZW1WYWx1ZTtcclxuXHJcbiAgc3dpdGNoIChjb25kaXRpb24ub3BlcmF0b3IudHlwZSkge1xyXG4gICAgY2FzZSAnZXF1YWwnOlxyXG4gICAgICByZXN1bHQgPSBpc0VxdWFsKHZhbHVlVG9Db21wYXJlLCBjb25kaXRpb25WYWx1ZSk7XHJcbiAgICAgIGlmIChsb2dnaW5nRW5hYmxlZCkgY29uc29sZS5sb2coJ0VxdWFsIGNoZWNrIHJlc3VsdDonLCByZXN1bHQpO1xyXG4gICAgICBicmVhaztcclxuICAgIGNhc2UgJ25vdEVxdWFsJzpcclxuICAgICAgcmVzdWx0ID0gIWlzRXF1YWwodmFsdWVUb0NvbXBhcmUsIGNvbmRpdGlvblZhbHVlKTtcclxuICAgICAgaWYgKGxvZ2dpbmdFbmFibGVkKSBjb25zb2xlLmxvZygnTm90IGVxdWFsIGNoZWNrIHJlc3VsdDonLCByZXN1bHQpO1xyXG4gICAgICBicmVhaztcclxuICAgIGNhc2UgJ2dyZWF0ZXJUaGFuJzpcclxuICAgICAgcmVzdWx0ID0gZ3QodmFsdWVUb0NvbXBhcmUsIGNvbmRpdGlvblZhbHVlKTtcclxuICAgICAgaWYgKGxvZ2dpbmdFbmFibGVkKSBjb25zb2xlLmxvZygnR3JlYXRlciB0aGFuIGNoZWNrIHJlc3VsdDonLCByZXN1bHQpO1xyXG4gICAgICBicmVhaztcclxuICAgIGNhc2UgJ2xlc3NUaGFuJzpcclxuICAgICAgcmVzdWx0ID0gbHQodmFsdWVUb0NvbXBhcmUsIGNvbmRpdGlvblZhbHVlKTtcclxuICAgICAgaWYgKGxvZ2dpbmdFbmFibGVkKSBjb25zb2xlLmxvZygnTGVzcyB0aGFuIGNoZWNrIHJlc3VsdDonLCByZXN1bHQpO1xyXG4gICAgICBicmVhaztcclxuICAgIGNhc2UgJ2dyZWF0ZXJUaGFuT3JFcXVhbCc6XHJcbiAgICAgIHJlc3VsdCA9IGd0ZSh2YWx1ZVRvQ29tcGFyZSwgY29uZGl0aW9uVmFsdWUpO1xyXG4gICAgICBpZiAobG9nZ2luZ0VuYWJsZWQpIGNvbnNvbGUubG9nKCdHcmVhdGVyIHRoYW4gb3IgZXF1YWwgY2hlY2sgcmVzdWx0OicsIHJlc3VsdCk7XHJcbiAgICAgIGJyZWFrO1xyXG4gICAgY2FzZSAnbGVzc1RoYW5PckVxdWFsJzpcclxuICAgICAgcmVzdWx0ID0gbHRlKHZhbHVlVG9Db21wYXJlLCBjb25kaXRpb25WYWx1ZSk7XHJcbiAgICAgIGlmIChsb2dnaW5nRW5hYmxlZCkgY29uc29sZS5sb2coJ0xlc3MgdGhhbiBvciBlcXVhbCBjaGVjayByZXN1bHQ6JywgcmVzdWx0KTtcclxuICAgICAgYnJlYWs7XHJcbiAgICBjYXNlICdjb250YWlucyc6XHJcbiAgICAgIGlmICh0eXBlb2YgdmFsdWVUb0NvbXBhcmUgPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgICAgcmVzdWx0ID0gaW5jbHVkZXModmFsdWVUb0NvbXBhcmUsIGNvbmRpdGlvblZhbHVlKTtcclxuICAgICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KHZhbHVlVG9Db21wYXJlKSkge1xyXG4gICAgICAgIHJlc3VsdCA9IGluY2x1ZGVzKHZhbHVlVG9Db21wYXJlLm1hcCh2YWwgPT4gdmFsLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKSksIGNvbmRpdGlvblZhbHVlKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXN1bHQgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgICBpZiAobG9nZ2luZ0VuYWJsZWQpIGNvbnNvbGUubG9nKCdDb250YWlucyBjaGVjayByZXN1bHQ6JywgcmVzdWx0KTtcclxuICAgICAgYnJlYWs7XHJcbiAgICBjYXNlICdub3RDb250YWlucyc6XHJcbiAgICAgIGlmICh0eXBlb2YgdmFsdWVUb0NvbXBhcmUgPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgICAgcmVzdWx0ID0gIWluY2x1ZGVzKHZhbHVlVG9Db21wYXJlLCBjb25kaXRpb25WYWx1ZSk7XHJcbiAgICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZVRvQ29tcGFyZSkpIHtcclxuICAgICAgICByZXN1bHQgPSAhaW5jbHVkZXModmFsdWVUb0NvbXBhcmUubWFwKHZhbCA9PiB2YWwudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpKSwgY29uZGl0aW9uVmFsdWUpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJlc3VsdCA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChsb2dnaW5nRW5hYmxlZCkgY29uc29sZS5sb2coJ05vdCBjb250YWlucyBjaGVjayByZXN1bHQ6JywgcmVzdWx0KTtcclxuICAgICAgYnJlYWs7XHJcbiAgICBjYXNlICdzdGFydHNXaXRoJzpcclxuICAgICAgcmVzdWx0ID0gdHlwZW9mIHZhbHVlVG9Db21wYXJlID09PSAnc3RyaW5nJyAmJiBzdGFydHNXaXRoKHZhbHVlVG9Db21wYXJlLCBjb25kaXRpb25WYWx1ZSk7XHJcbiAgICAgIGlmIChsb2dnaW5nRW5hYmxlZCkgY29uc29sZS5sb2coJ1N0YXJ0cyB3aXRoIGNoZWNrIHJlc3VsdDonLCByZXN1bHQpO1xyXG4gICAgICBicmVhaztcclxuICAgIGNhc2UgJ2VuZHNXaXRoJzpcclxuICAgICAgcmVzdWx0ID0gdHlwZW9mIHZhbHVlVG9Db21wYXJlID09PSAnc3RyaW5nJyAmJiBlbmRzV2l0aCh2YWx1ZVRvQ29tcGFyZSwgY29uZGl0aW9uVmFsdWUpO1xyXG4gICAgICBpZiAobG9nZ2luZ0VuYWJsZWQpIGNvbnNvbGUubG9nKCdFbmRzIHdpdGggY2hlY2sgcmVzdWx0OicsIHJlc3VsdCk7XHJcbiAgICAgIGJyZWFrO1xyXG4gICAgY2FzZSAnaXNFbXB0eSc6XHJcbiAgICAgIHJlc3VsdCA9IGlzRW1wdHkodmFsdWVUb0NvbXBhcmUpO1xyXG4gICAgICBpZiAobG9nZ2luZ0VuYWJsZWQpIGNvbnNvbGUubG9nKCdJcyBlbXB0eSBjaGVjayByZXN1bHQ6JywgcmVzdWx0KTtcclxuICAgICAgYnJlYWs7XHJcbiAgICBjYXNlICdpc051bGwnOlxyXG4gICAgICByZXN1bHQgPSBpc05pbCh2YWx1ZVRvQ29tcGFyZSk7XHJcbiAgICAgIGlmIChsb2dnaW5nRW5hYmxlZCkgY29uc29sZS5sb2coJ0lzIG51bGwgY2hlY2sgcmVzdWx0OicsIHJlc3VsdCk7XHJcbiAgICAgIGJyZWFrO1xyXG4gICAgY2FzZSAnaXNOb3RFbXB0eSc6XHJcbiAgICAgIHJlc3VsdCA9ICFpc0VtcHR5KHZhbHVlVG9Db21wYXJlKTtcclxuICAgICAgaWYgKGxvZ2dpbmdFbmFibGVkKSBjb25zb2xlLmxvZygnSXMgbm90IGVtcHR5IGNoZWNrIHJlc3VsdDonLCByZXN1bHQpO1xyXG4gICAgICBicmVhaztcclxuICAgIGNhc2UgJ2JldHdlZW4nOlxyXG4gICAgICByZXN1bHQgPSAhaXNOaWwodmFsdWVUb0NvbXBhcmUpICYmIHZhbHVlVG9Db21wYXJlID49IGNvbmRpdGlvbi52YWx1ZS5mcm9tICYmIHZhbHVlVG9Db21wYXJlIDw9IGNvbmRpdGlvbi52YWx1ZS50bztcclxuICAgICAgaWYgKGxvZ2dpbmdFbmFibGVkKSBjb25zb2xlLmxvZygnQmV0d2VlbiBjaGVjayByZXN1bHQ6JywgcmVzdWx0KTtcclxuICAgICAgYnJlYWs7XHJcbiAgICBkZWZhdWx0OlxyXG4gICAgICByZXN1bHQgPSB0cnVlO1xyXG4gICAgICBpZiAobG9nZ2luZ0VuYWJsZWQpIGNvbnNvbGUubG9nKCdEZWZhdWx0IGNhc2UsIHJldHVybmluZyB0cnVlJyk7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gcmVzdWx0O1xyXG59XHJcblxyXG5cclxuXHJcblxyXG5leHBvcnQgZnVuY3Rpb24gYXBwbHlGaWx0ZXJBcnJheShcclxuICBkYXRhQXJyYXk6IGFueVtdLFxyXG4gIGZpbHRlcnM/OiBBWERhdGFTb3VyY2VGaWx0ZXJPcHRpb25bXSxcclxuICBsb2dpYzogJ2FuZCcgfCAnb3InID0gJ2FuZCdcclxuKTogYW55W10ge1xyXG4gIGlmIChmaWx0ZXJzICYmIGZpbHRlcnMubGVuZ3RoKSB7XHJcbiAgICByZXR1cm4gZGF0YUFycmF5LmZpbHRlcigoaXRlbSkgPT4ge1xyXG4gICAgICBpZiAobG9naWMgPT09ICdhbmQnKSB7XHJcbiAgICAgICAgcmV0dXJuIGZpbHRlcnMuZXZlcnkoKGYpID0+IHtcclxuICAgICAgICAgIHJldHVybiBmLmZpbHRlcnMgPyBhcHBseUZpbHRlckFycmF5KFtpdGVtXSwgZi5maWx0ZXJzLCBmLmxvZ2ljKS5sZW5ndGggPiAwIDogYXBwbHlDb25kaXRpb24oaXRlbSwgZik7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgLy8gbG9naWMgPT09ICdvcidcclxuICAgICAgICByZXR1cm4gZmlsdGVycy5zb21lKChmKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gZi5maWx0ZXJzID8gYXBwbHlGaWx0ZXJBcnJheShbaXRlbV0sIGYuZmlsdGVycywgZi5sb2dpYykubGVuZ3RoID4gMCA6IGFwcGx5Q29uZGl0aW9uKGl0ZW0sIGYpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9IGVsc2Uge1xyXG4gICAgcmV0dXJuIGRhdGFBcnJheTtcclxuICB9XHJcbn1cclxuXHJcblxyXG5leHBvcnQgZnVuY3Rpb24gYXBwbHlTb3J0QXJyYXkoZGF0YUFycmF5OiBhbnksIHNvcnRzOiB7IGZpZWxkOiBzdHJpbmc7IGRpcjogJ2FzYycgfCAnZGVzYycgfVtdKSB7XHJcbiAgaWYgKHNvcnRzICYmIHNvcnRzLmxlbmd0aCA+IDApIHtcclxuICAgIGNvbnN0IHNvcnRGaWVsZHMgPSBzb3J0cy5tYXAoKHMpID0+IHMuZmllbGQpO1xyXG4gICAgY29uc3Qgc29ydE9yZGVycyA9IHNvcnRzLm1hcCgocykgPT4gcy5kaXIpO1xyXG4gICAgcmV0dXJuIG9yZGVyQnkoZGF0YUFycmF5LCBzb3J0RmllbGRzLCBzb3J0T3JkZXJzKTtcclxuICB9IGVsc2UgcmV0dXJuIGRhdGFBcnJheTtcclxufVxyXG4iXX0=
@@ -11,7 +11,7 @@ import * as i1 from '@angular/common/http';
11
11
  import { HttpParams } from '@angular/common/http';
12
12
  import { firstValueFrom, map, BehaviorSubject, tap, filter, take, of, switchMap, delay } from 'rxjs';
13
13
  import { UserManager, WebStorageStateStore } from 'oidc-client-ts';
14
- import { get, isEmpty, endsWith, startsWith, includes, lte, gte, lt, gt, isEqual, orderBy } from 'lodash-es';
14
+ import { get, isNil, isEmpty, endsWith, startsWith, includes, lte, gte, lt, gt, isEqual, orderBy } from 'lodash-es';
15
15
  import * as i1$2 from '@acorex/platform/mocks';
16
16
 
17
17
  class AXMBackendDataProvider {
@@ -563,56 +563,112 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImpor
563
563
  }]
564
564
  }] });
565
565
 
566
+ const loggingEnabled = false; // Set to true to enable logging, false to disable
566
567
  function applyCondition(item, condition) {
567
- const rawValue = get(item, condition.field);
568
+ const rawValue = condition.field ? get(item, condition.field) : null;
568
569
  const itemValue = typeof rawValue === 'string' ? rawValue.toLowerCase() : rawValue;
569
570
  const conditionValue = typeof condition.value === 'string' ? condition.value.toLowerCase() : condition.value;
570
- // Logging for debugging
571
- // console.log('Condition:', condition);
572
- // console.log('Item Value:', itemValue);
573
- // console.log('Condition Value:', conditionValue);
571
+ // Conditional Logging for debugging
572
+ if (loggingEnabled) {
573
+ console.log('Condition:', condition);
574
+ console.log('Item Value:', itemValue);
575
+ console.log('Condition Value:', conditionValue);
576
+ }
577
+ let result;
578
+ const valueToCompare = isNil(condition.field) || condition.field === '' ? conditionValue : itemValue;
574
579
  switch (condition.operator.type) {
575
580
  case 'equal':
576
- return isEqual(itemValue, conditionValue);
581
+ result = isEqual(valueToCompare, conditionValue);
582
+ if (loggingEnabled)
583
+ console.log('Equal check result:', result);
584
+ break;
577
585
  case 'notEqual':
578
- return !isEqual(itemValue, conditionValue);
586
+ result = !isEqual(valueToCompare, conditionValue);
587
+ if (loggingEnabled)
588
+ console.log('Not equal check result:', result);
589
+ break;
579
590
  case 'greaterThan':
580
- return gt(itemValue, conditionValue);
591
+ result = gt(valueToCompare, conditionValue);
592
+ if (loggingEnabled)
593
+ console.log('Greater than check result:', result);
594
+ break;
581
595
  case 'lessThan':
582
- return lt(itemValue, conditionValue);
596
+ result = lt(valueToCompare, conditionValue);
597
+ if (loggingEnabled)
598
+ console.log('Less than check result:', result);
599
+ break;
583
600
  case 'greaterThanOrEqual':
584
- return gte(itemValue, conditionValue);
601
+ result = gte(valueToCompare, conditionValue);
602
+ if (loggingEnabled)
603
+ console.log('Greater than or equal check result:', result);
604
+ break;
585
605
  case 'lessThanOrEqual':
586
- return lte(itemValue, conditionValue);
606
+ result = lte(valueToCompare, conditionValue);
607
+ if (loggingEnabled)
608
+ console.log('Less than or equal check result:', result);
609
+ break;
587
610
  case 'contains':
588
- if (typeof itemValue === 'string') {
589
- return includes(itemValue, conditionValue);
611
+ if (typeof valueToCompare === 'string') {
612
+ result = includes(valueToCompare, conditionValue);
590
613
  }
591
- else if (Array.isArray(itemValue)) {
592
- return includes(itemValue.map(val => val.toString().toLowerCase()), conditionValue);
614
+ else if (Array.isArray(valueToCompare)) {
615
+ result = includes(valueToCompare.map(val => val.toString().toLowerCase()), conditionValue);
593
616
  }
594
- return false;
617
+ else {
618
+ result = false;
619
+ }
620
+ if (loggingEnabled)
621
+ console.log('Contains check result:', result);
622
+ break;
595
623
  case 'notContains':
596
- if (typeof itemValue === 'string') {
597
- return !includes(itemValue, conditionValue);
624
+ if (typeof valueToCompare === 'string') {
625
+ result = !includes(valueToCompare, conditionValue);
598
626
  }
599
- else if (Array.isArray(itemValue)) {
600
- return !includes(itemValue.map(val => val.toString().toLowerCase()), conditionValue);
627
+ else if (Array.isArray(valueToCompare)) {
628
+ result = !includes(valueToCompare.map(val => val.toString().toLowerCase()), conditionValue);
629
+ }
630
+ else {
631
+ result = false;
601
632
  }
602
- return false;
633
+ if (loggingEnabled)
634
+ console.log('Not contains check result:', result);
635
+ break;
603
636
  case 'startsWith':
604
- return typeof itemValue === 'string' && startsWith(itemValue, conditionValue);
637
+ result = typeof valueToCompare === 'string' && startsWith(valueToCompare, conditionValue);
638
+ if (loggingEnabled)
639
+ console.log('Starts with check result:', result);
640
+ break;
605
641
  case 'endsWith':
606
- return typeof itemValue === 'string' && endsWith(itemValue, conditionValue);
642
+ result = typeof valueToCompare === 'string' && endsWith(valueToCompare, conditionValue);
643
+ if (loggingEnabled)
644
+ console.log('Ends with check result:', result);
645
+ break;
607
646
  case 'isEmpty':
608
- return isEmpty(itemValue);
647
+ result = isEmpty(valueToCompare);
648
+ if (loggingEnabled)
649
+ console.log('Is empty check result:', result);
650
+ break;
651
+ case 'isNull':
652
+ result = isNil(valueToCompare);
653
+ if (loggingEnabled)
654
+ console.log('Is null check result:', result);
655
+ break;
609
656
  case 'isNotEmpty':
610
- return !isEmpty(itemValue);
657
+ result = !isEmpty(valueToCompare);
658
+ if (loggingEnabled)
659
+ console.log('Is not empty check result:', result);
660
+ break;
611
661
  case 'between':
612
- return itemValue >= condition.value.from && itemValue <= condition.value.to;
662
+ result = !isNil(valueToCompare) && valueToCompare >= condition.value.from && valueToCompare <= condition.value.to;
663
+ if (loggingEnabled)
664
+ console.log('Between check result:', result);
665
+ break;
613
666
  default:
614
- return true;
667
+ result = true;
668
+ if (loggingEnabled)
669
+ console.log('Default case, returning true');
615
670
  }
671
+ return result;
616
672
  }
617
673
  function applyFilterArray(dataArray, filters, logic = 'and') {
618
674
  if (filters && filters.length) {
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-modules-backend.mjs","sources":["../../../../libs/modules/backend/src/lib/data/api/data-provider.ts","../../../../libs/modules/backend/src/lib/auth/oidc/application.loader.ts","../../../../libs/modules/backend/src/lib/auth/oidc/configuration.service.ts","../../../../libs/modules/backend/src/lib/auth/oidc/feature.loader.ts","../../../../libs/modules/backend/src/lib/auth/oidc/usermanager.service.ts","../../../../libs/modules/backend/src/lib/auth/oidc/oidc.strategy.ts","../../../../libs/modules/backend/src/lib/auth/oidc/permission.loader.ts","../../../../libs/modules/backend/src/lib/auth/oidc/signincallback.component.ts","../../../../libs/modules/backend/src/lib/auth/oidc/tenant.loader.ts","../../../../libs/modules/backend/src/lib/backend.module.ts","../../../../libs/modules/backend/src/lib/data/local/data-Conditioner.ts","../../../../libs/modules/backend/src/lib/data/local/local-data-provider.ts","../../../../libs/modules/backend/src/acorex-modules-backend.ts"],"sourcesContent":["import { AXPDataProvider, AXPEntityConfig, AXP_ROOT_CONFIG_TOKEN } from '@acorex/platform/common';\r\nimport { HttpClient, HttpParams } from '@angular/common/http';\r\nimport { Injectable, inject } from '@angular/core';\r\nimport { firstValueFrom } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AXMBackendDataProvider implements AXPDataProvider {\r\n private configs = inject(AXP_ROOT_CONFIG_TOKEN);\r\n private mainUrl = this.configs.baseUrl;\r\n\r\n constructor(private http: HttpClient) {}\r\n\r\n insertOne(entity: AXPEntityConfig, entityItem: any): Promise<any> {\r\n const url = `${this.mainUrl}${entity.area ? '/' + entity.area : ''}/${entity.module}/${entity.name}`;\r\n return firstValueFrom(this.http.post(url, entityItem));\r\n }\r\n\r\n insertMany(entity: AXPEntityConfig, entityList: any): Promise<any> {\r\n const promises = entityList.map((entity: any) => {\r\n const url = `${this.mainUrl}${entity.area ? '/' + entity.area : ''}/${entity.module}/${entity.name}`;\r\n return firstValueFrom(this.http.post(url, entity));\r\n });\r\n return Promise.all(promises);\r\n }\r\n\r\n getOne(entity: AXPEntityConfig, id: string): Promise<any> {\r\n const url = `${this.mainUrl}${entity.area ? '/' + entity.area : ''}/${entity.module}/${entity.name}${id ? '/' + id : ''}`;\r\n return firstValueFrom(this.http.get(url));\r\n }\r\n\r\n getMany(entity: AXPEntityConfig, params?: any): Promise<any> {\r\n let httpParams = new HttpParams().set('Skip', params?.skip?.toString() ?? '0').set('Take', params?.take?.toString() ?? '10');\r\n\r\n if (params?.sort && params?.sort.length > 0) {\r\n const sortParam = params?.sort.map((sort: any) => `${sort.field}:${sort.dir}`).join(',');\r\n httpParams = httpParams.set('$orderby', sortParam);\r\n }\r\n\r\n const buildFilterString = (filters: any[]): string => {\r\n return filters\r\n .map((f: any) => {\r\n if (f.filters) {\r\n return buildFilterString(f.filters);\r\n } else {\r\n return `${f.field} ${f.operator.type} ${f.value}`;\r\n }\r\n })\r\n .join(',');\r\n };\r\n\r\n let filterString = params?.customFilter ? params.customFilter : '';\r\n if (params?.filter) {\r\n const filter = params.filter;\r\n if (filter.filters) {\r\n // Construct filter string from provided filters\r\n\r\n const dynamicFilters = buildFilterString(filter.filters);\r\n console.log({ dynamicFilters });\r\n\r\n // Append dynamic filters to custom filter, if both exist\r\n filterString = filterString ? `${filterString},${dynamicFilters}` : dynamicFilters;\r\n }\r\n }\r\n // Set the $filter parameter if there are any filters\r\n console.log(filterString);\r\n if (filterString) {\r\n httpParams = httpParams.set('$filter', filterString);\r\n }\r\n\r\n function generateQueryString(filter: any) {\r\n if (!filter.filters) {\r\n // Base case: single filter\r\n return `${filter.field} ${filter.operator.type} ${filter.value}`;\r\n } else if (!filter.filters.length) {\r\n return;\r\n } else {\r\n // Recursive case: multiple filters\r\n const filterStrings = filter.filters.map((subFilter: any) => generateQueryString(subFilter));\r\n const logic = filter.logic || 'AND'; // Default logic is 'AND' if not provided\r\n return `${filterStrings.filter((i: any) => i).join(` ${logic} `)}`;\r\n }\r\n }\r\n\r\n let queryString = params?.customFilter ? params.customFilter : '';\r\n if (params?.filter) {\r\n const filter = params.filter;\r\n if (filter.filters && filter.filters.length > 0) {\r\n // Construct filter string from provided filters\r\n\r\n const dynamicQueries = generateQueryString(filter);\r\n console.log({ dynamicQueries: dynamicQueries });\r\n\r\n // Append dynamic filters to custom filter, if both exist\r\n queryString = queryString ? `${queryString},${dynamicQueries}` : dynamicQueries;\r\n }\r\n }\r\n // Set the $filter parameter if there are any filters\r\n if (queryString) {\r\n httpParams = httpParams.set('$query', queryString);\r\n }\r\n return firstValueFrom(\r\n this.http.get<any>(\r\n `${this.mainUrl}${entity.area ? '/' + entity.area : ''}/${entity.module}/${params.costumGetter ? params.costumGetter : entity.name}/${\r\n params?.sub ? params.sub : ''\r\n }`,\r\n { params: httpParams }\r\n )\r\n ).then((response) => {\r\n return {\r\n total: response.totalCount,\r\n items: response.items,\r\n };\r\n });\r\n }\r\n\r\n updateOne(entity: AXPEntityConfig, id?: string, data?: { [key: string]: any }): Promise<any> {\r\n const url = `${this.mainUrl}${entity.area ? '/' + entity.area : ''}/${entity.module}/${entity.name}${id ? '/' + id : ''}`;\r\n return firstValueFrom(this.http.put(url, data));\r\n }\r\n\r\n deleteOne(entity: AXPEntityConfig, id: string): Promise<any> {\r\n const url = `${this.mainUrl}${entity.area ? '/' + entity.area : ''}/${entity.module}/${entity.name}/${id}`;\r\n return firstValueFrom(this.http.delete(url));\r\n }\r\n\r\n getFirst(entity: AXPEntityConfig): Promise<any> {\r\n // return this.getMany(entity.name).then((res) => res.items[0]);\r\n return new Promise((resolve) => resolve(true));\r\n }\r\n\r\n // File uploader function\r\n uploadFile(file: File, title: string): Promise<string> {\r\n const url = `${this.mainUrl}/common/files`;\r\n const formData: FormData = new FormData();\r\n formData.append('File', file);\r\n formData.append('Title', title);\r\n\r\n return firstValueFrom(this.http.post<string>(url, formData));\r\n }\r\n\r\n // Function to upload multiple files\r\n uploadMultipleFiles(files: File[], title: string): Promise<string[]> {\r\n const uploadPromises = files.map((file) => this.uploadFile(file, title));\r\n return Promise.all(uploadPromises);\r\n }\r\n\r\n // Function to view a file\r\n viewFile(id: string, name: string): Promise<Blob> {\r\n const url = `${this.mainUrl}/common/files/${id}/View/${name}`;\r\n return firstValueFrom(this.http.get(url, { responseType: 'blob' }));\r\n }\r\n\r\n // Function to download a file\r\n downloadFile(id: string, name: string): Promise<Blob> {\r\n const url = `${this.mainUrl}/common/files/${id}/Download/${name}`;\r\n return firstValueFrom(this.http.get(url, { responseType: 'blob' }));\r\n }\r\n}\r\n","import { AXPApplication, AXPApplicationLoader, AXPRefreshTokenResult } from '@acorex/platform/auth';\r\nimport { AXP_ROOT_CONFIG_TOKEN } from '@acorex/platform/common';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Injectable, inject } from '@angular/core';\r\nimport { Observable, map } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class AXMOidcApplicationLoader implements AXPApplicationLoader {\r\n private configs = inject(AXP_ROOT_CONFIG_TOKEN);\r\n private apiGetApps = `${this.configs.baseUrl}/applications/GetListByTenantId`;\r\n private apiSetApp = `${this.configs.baseUrl}/SetApplication`;\r\n constructor(private http: HttpClient) { }\r\n\r\n\r\n getList(): Observable<AXPApplication[]> {\r\n return this.http.get<{ items: any[] }>(this.apiGetApps).pipe(\r\n map((response) => {\r\n return response.items.map((item) => this.mapToAXPApplication(item));\r\n })\r\n );\r\n }\r\n\r\n set(application: AXPApplication): Promise<void> {\r\n return Promise.resolve();\r\n }\r\n\r\n // //TODO: shoud be removed\r\n // set(application: AXPApplication): Observable<AXPRefreshTokenResult> {\r\n // return this.http.post<any>(this.apiSetApp, { applicationId: application.id }).pipe(\r\n // map((response) => {\r\n // return {\r\n // succeed: true,\r\n // data: {\r\n // accessToken: response.token,\r\n // refreshToken: response.token,\r\n // }\r\n // };\r\n // })\r\n // );\r\n // }\r\n\r\n private mapToAXPApplication(item: any): AXPApplication {\r\n return {\r\n id: item.id,\r\n name: item.name || 'defaultName',\r\n title: item.title || 'defaultTitle',\r\n version: item.version || '1.0.0',\r\n description: item.description,\r\n logo: item.logo, // Assuming logo is of type AXPLogoConfig or undefined\r\n editionName: item.editionName,\r\n // features: item.features || [],\r\n };\r\n }\r\n}\r\n","import { AXM_AUTH_CONFIG_TOKEN } from '@acorex/modules/auth';\r\nimport { AXP_ROOT_CONFIG_TOKEN } from '@acorex/platform/common';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Injectable, inject } from '@angular/core';\r\nimport { BehaviorSubject, Observable, filter, of, switchMap, take, tap } from 'rxjs';\r\n\r\nexport interface Localization {\r\n values: Record<string, Record<string, string>>;\r\n resources: Record<string, Resource>;\r\n languages: Language[];\r\n currentCulture: Culture;\r\n defaultResourceName: string;\r\n languagesMap: Record<string, NameValue[]>;\r\n languageFilesMap: Record<string, NameValue[]>;\r\n}\r\n\r\nexport interface Resource {\r\n texts: Record<string, string>;\r\n baseResources: string[];\r\n}\r\n\r\nexport interface Language {\r\n cultureName: string;\r\n uiCultureName: string;\r\n displayName: string;\r\n twoLetterISOLanguageName: string;\r\n flagIcon: string;\r\n}\r\n\r\nexport interface Culture {\r\n displayName: string;\r\n // ... other properties\r\n}\r\n\r\nexport interface NameValue {\r\n name: string;\r\n value: string;\r\n}\r\n\r\n// Repeat similar patterns for 'auth', 'setting', 'currentUser', etc.\r\nexport interface Auth {\r\n grantedPolicies: Record<string, boolean>;\r\n}\r\n\r\n// Main configuration interface\r\nexport interface ApplicationConfiguration {\r\n localization: Localization;\r\n auth: Auth;\r\n setting: Record<string, any>;\r\n currentUser: any;\r\n features: Record<string, any>;\r\n globalFeatures: Record<string, any>;\r\n multiTenancy: Record<string, any>;\r\n currentCulture: Culture;\r\n timing: Record<string, any>;\r\n clock: Record<string, any>;\r\n objectExtensions: Record<string, any>;\r\n extraProperties: Record<string, any>;\r\n\r\n // ... other properties\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AXMConfigurationService {\r\n private configs = inject(AXP_ROOT_CONFIG_TOKEN);\r\n private applicationConfig: ApplicationConfiguration | null = null;\r\n private apiGetConfig = `${this.configs.baseUrl}/abp/application-configuration`;\r\n private fetchInProgress: boolean = false;\r\n private configSubject: BehaviorSubject<ApplicationConfiguration | null> = new BehaviorSubject<ApplicationConfiguration | null>(null);\r\n\r\n constructor(private http: HttpClient) {\r\n this.init().subscribe(); // Automatically trigger configuration load on service instantiation\r\n }\r\n\r\n public init(): Observable<ApplicationConfiguration> {\r\n if (!this.fetchInProgress) {\r\n this.fetchInProgress = true;\r\n return this.http.get<ApplicationConfiguration>(this.apiGetConfig).pipe(\r\n tap((response) => {\r\n this.applicationConfig = response;\r\n this.configSubject.next(this.applicationConfig);\r\n this.fetchInProgress = false;\r\n })\r\n );\r\n } else {\r\n // Adjusted approach to handle TypeScript's type safety requirements\r\n return this.configSubject.asObservable().pipe(\r\n filter((config): config is ApplicationConfiguration => config !== null),\r\n take(1) // Ensures it completes after emitting the first non-null value\r\n );\r\n }\r\n }\r\n\r\n getConfig(): Observable<ApplicationConfiguration> {\r\n if (this.applicationConfig) {\r\n // If the config is already loaded, return it immediately\r\n return of(this.applicationConfig);\r\n } else {\r\n // If the config is not loaded, initiate loading\r\n return this.configSubject.asObservable().pipe(\r\n filter((config) => config !== null),\r\n take(1), // Ensure it only emits the first non-null value and completes\r\n switchMap(() => of(this.applicationConfig!))\r\n );\r\n }\r\n }\r\n}\r\n","import { AXPFeature, AXPFeatureLoader } from '@acorex/platform/auth';\r\nimport { Observable, delay, of } from 'rxjs';\r\n\r\nexport class AXMOidcFeatureLoader implements AXPFeatureLoader {\r\n\r\n private list: AXPFeature[] = [\r\n {\r\n name: 'axp-entity-list-custom-view',\r\n title: 'Custom View',\r\n value: false\r\n },\r\n {\r\n name: 'axp-entity-list-quick-search',\r\n title: 'Custom View',\r\n value: false\r\n }\r\n ]\r\n\r\n getList(): Observable<AXPFeature[]> {\r\n return of(this.list).pipe(delay(0));\r\n }\r\n}\r\n","import { AXMAuthConfigs, AXM_AUTH_CONFIG_TOKEN } from '@acorex/modules/auth';\r\nimport { AXPApplication, AXPTenant } from '@acorex/platform/auth';\r\nimport { Inject, Injectable } from '@angular/core';\r\nimport { UserManager, WebStorageStateStore } from 'oidc-client-ts';\r\n// Other imports...\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AXMOidcUserManagerService {\r\n private userManager: UserManager;\r\n public selectedTenant: AXPTenant | null = null;\r\n public selectedApplication: AXPApplication | null = null;\r\n\r\n constructor(@Inject(AXM_AUTH_CONFIG_TOKEN) private authConfig: AXMAuthConfigs) {\r\n if (!authConfig.oidc_settings) {\r\n throw new Error('OIDC configuration is missing');\r\n }\r\n\r\n this.userManager = new UserManager({\r\n ...authConfig.oidc_settings,\r\n userStore: new WebStorageStateStore({ store: window.localStorage }),\r\n });\r\n }\r\n\r\n getUserManager(): UserManager {\r\n return this.userManager;\r\n }\r\n\r\n async signinSilentCallback() {\r\n await this.userManager.signinSilentCallback();\r\n }\r\n}\r\n","import { AXPAuthStrategy, AXPBaseCredentials, AXPRefreshTokenResult, AXPSessionContext, AXPSignInResult, AXPUser } from '@acorex/platform/auth';\r\nimport { AXPDataProvider } from '@acorex/platform/common';\r\nimport { Injectable, Injector, inject } from '@angular/core';\r\nimport { UserManager } from 'oidc-client-ts';\r\nimport { AXMOidcUserManagerService } from './usermanager.service';\r\n\r\nexport interface AXPUserPassCredentials extends AXPBaseCredentials {\r\n username: string;\r\n password: string;\r\n}\r\n\r\n@Injectable()\r\nexport class AXMOidcStrategy implements AXPAuthStrategy {\r\n private userManagerService: AXMOidcUserManagerService;\r\n private userManager: UserManager;\r\n private injector: Injector = inject(Injector);\r\n private dataService = inject(AXPDataProvider);\r\n\r\n constructor() {\r\n this.userManagerService = this.injector.get(AXMOidcUserManagerService);\r\n this.userManager = this.userManagerService.getUserManager();\r\n }\r\n\r\n get name(): string {\r\n return 'user-pass';\r\n }\r\n\r\n async signin(credentials: AXPUserPassCredentials): Promise<AXPSignInResult> {\r\n try {\r\n const currentUser = await this.userManager.getUser();\r\n\r\n if (currentUser && !currentUser.expired && currentUser.profile.name === credentials.username) {\r\n const user: AXPUser = {\r\n id: currentUser.profile.sub,\r\n name: currentUser.profile.name ?? credentials.username,\r\n title: currentUser.profile.given_name ?? 'no Name!',\r\n avatar: currentUser.profile.picture,\r\n };\r\n const accessToken = currentUser.access_token;\r\n const refreshToken = currentUser.refresh_token ?? '';\r\n return {\r\n succeed: true,\r\n data: { user, accessToken, refreshToken },\r\n };\r\n }\r\n\r\n await this.userManager.removeUser();\r\n await this.userManager.clearStaleState();\r\n\r\n const oidcUser = await this.userManager.signinSilent({\r\n extraQueryParams: {\r\n username: credentials.username,\r\n password: credentials.password,\r\n },\r\n });\r\n if (oidcUser) {\r\n const profile = oidcUser.profile; // Cast to any to access deeply nested properties\r\n const user: AXPUser = {\r\n id: profile.sub,\r\n name: `${profile.email}`,\r\n title: `${profile.name}`,\r\n avatar: `${profile.picture}`,\r\n };\r\n const accessToken = oidcUser.access_token;\r\n const refreshToken = oidcUser.refresh_token ?? '';\r\n\r\n return {\r\n succeed: true,\r\n data: { user, accessToken, refreshToken },\r\n };\r\n }\r\n\r\n return {\r\n succeed: false,\r\n };\r\n } catch (error: any) {\r\n if (error?.message) throw new Error(error.message);\r\n // Depending on the error type, you might want to throw a specific error\r\n throw new Error('Network or server error occurred');\r\n }\r\n }\r\n\r\n async signout(): Promise<void> {\r\n console.log('User signed out');\r\n this.userManager.removeUser();\r\n this.userManager.clearStaleState();\r\n this.userManager.signoutSilent();\r\n }\r\n\r\n async refreshToken(context: AXPSessionContext): Promise<AXPRefreshTokenResult> {\r\n const user: AXPUser = {\r\n id: '1',\r\n name: 'admin',\r\n title: 'Arash',\r\n avatar: 'https://i.pravatar.cc/150?img=52',\r\n };\r\n\r\n const accessToken = this.generateAccessToken();\r\n const newRefreshToken = this.generateAccessToken();\r\n\r\n return {\r\n succeed: true,\r\n data: { accessToken, refreshToken: newRefreshToken },\r\n };\r\n }\r\n\r\n private generateAccessToken(): string {\r\n return 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJPbmxpbmUgSldUIEJ1aWxkZXIiLCJpYXQiOjE3MDU5MjE4ODUsImV4cCI6MTczNzQ1Nzg4NSwiYXVkIjoid3d3LmV4YW1wbGUuY29tIiwic3ViIjoianJvY2tldEBleGFtcGxlLmNvbSIsImlkIjoiMTAiLCJ0aXRsZSI6IkFyYXNoIiwiRW1haWwiOiJqcm9ja2V0QGV4YW1wbGUuY29tIiwiUm9sZSI6WyJNYW5hZ2VyIiwiUHJvamVjdCBBZG1pbmlzdHJhdG9yIl0sIm5hbWUiOiJhZG1pbiJ9.IgJL7uvJNBd9yBvWS4aTms5XjBI4VDyT01KhMSESXdQ';\r\n }\r\n}\r\n","import { AXPPermission, AXPPermissionLoader, AXPSessionContext } from '@acorex/platform/auth';\r\nimport { AXP_ROOT_CONFIG_TOKEN } from '@acorex/platform/common';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Injectable, inject } from '@angular/core';\r\nimport { Observable, map } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class AXMOidcPermissionLoader implements AXPPermissionLoader {\r\n private configs = inject(AXP_ROOT_CONFIG_TOKEN);\r\n private apiGetConfig = `${this.configs.baseUrl}/abp/application-configuration`;\r\n\r\n constructor(private http: HttpClient) {}\r\n\r\n getList(context: AXPSessionContext): Observable<AXPPermission[]> {\r\n return this.http.get<{ items: any }>(this.apiGetConfig).pipe(map((response) => this.mapTo(response)));\r\n // if (context.user == null)\r\n // return of([]);\r\n // else if (context.user.name.toLowerCase() == 'admin')\r\n // return of(['axp.admin.console', 'asc.admin.message', 'asc.admin.settings', 'asc.admin.gliding', 'asc.user.gliding']);\r\n // else\r\n // return of(['asc.user.gliding']);\r\n // return of(['axp.admin.console', 'asc.admin.message', 'asc.admin.settings', 'asc.admin.gliding', 'asc.user.gliding']);\r\n }\r\n\r\n mapTo(jsonObj: any): string[] {\r\n const policies = jsonObj.auth.grantedPolicies;\r\n const truePolicies = Object.keys(policies).filter((key) => policies[key] === true);\r\n return truePolicies;\r\n }\r\n}\r\n","import { AXPSessionService } from '@acorex/platform/auth';\r\nimport { Component, OnInit, inject } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { AXMOidcUserManagerService } from './usermanager.service';\r\n\r\n@Component({\r\n template: '',\r\n})\r\nexport class SignincallbackComponent implements OnInit {\r\n private sessionService = inject(AXPSessionService);\r\n constructor(\r\n private userManagerService: AXMOidcUserManagerService,\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n\r\n ) { }\r\n\r\n ngOnInit() {\r\n const queryParams = this.route.snapshot.queryParams;\r\n if (queryParams['tenantid']) {\r\n const selectedTenant = {\r\n id: queryParams['tenantid'],\r\n name: queryParams['tenantname'],\r\n title: queryParams['tenanttitle'],\r\n };\r\n this.sessionService.setTenant(selectedTenant);\r\n }\r\n if (queryParams['applicationid']) {\r\n const selectedApplication = {\r\n id: queryParams['applicationid'],\r\n name: queryParams['applicationname'],\r\n title: queryParams['applicationtitle'],\r\n version: '1',\r\n editionName: queryParams['editionname'],\r\n };\r\n this.sessionService.setApplication(selectedApplication);\r\n }\r\n this.userManagerService.signinSilentCallback();\r\n }\r\n}\r\n","import { AXPTenant, AXPTenantLoader } from '@acorex/platform/auth';\r\nimport { AXP_ROOT_CONFIG_TOKEN } from '@acorex/platform/common';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Injectable, inject } from '@angular/core';\r\nimport { Observable, map } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class AXMOidcTenantLoader implements AXPTenantLoader {\r\n private configs = inject(AXP_ROOT_CONFIG_TOKEN);\r\n private apiGetTenants = `${this.configs.baseUrl}/user-tenants/Tenants`;\r\n private apiSetTenant = `${this.configs.baseUrl}/SetTenant`;\r\n constructor(private http: HttpClient) { }\r\n\r\n getList(): Observable<AXPTenant[]> {\r\n return this.http.get<{ items: any[] }>(this.apiGetTenants).pipe(map((response) => response.items.map((item) => this.mapToAXPTenant(item))));\r\n }\r\n\r\n async set(tenant: AXPTenant): Promise<void> {\r\n return Promise.resolve();\r\n }\r\n\r\n private mapToAXPTenant(item: any): AXPTenant {\r\n return {\r\n id: item.id,\r\n name: item.name || 'defaultName',\r\n title: item.title || 'defaultTitle',\r\n // Add other fields and defaults as needed, and handle the logo if applicable\r\n };\r\n }\r\n}\r\n","import { AXMAuthModule } from '@acorex/modules/auth';\r\nimport { AXPAuthModule, AXP_APPLICATION_LOADER, AXP_FEATURE_LOADER, AXP_PERMISSION_LOADER, AXP_TENANT_LOADER } from '@acorex/platform/auth';\r\nimport { AXPDataProvider } from '@acorex/platform/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { ROUTES, Routes } from '@angular/router';\r\n\r\n//-----------------------------------------------------------------\r\nimport { AXMBackendDataProvider } from './data/api/data-provider';\r\nimport { AXMOidcApplicationLoader, AXMOidcFeatureLoader, AXMOidcPermissionLoader, AXMOidcStrategy, AXMOidcTenantLoader } from './auth/oidc';\r\n//-----------------------------------------------------------------\r\n\r\nimport { SignincallbackComponent } from './auth/oidc/signincallback.component';\r\n\r\nfunction routesFactory() {\r\n const routes: Routes = [{ path: 'auth/signincallback', component: SignincallbackComponent }];\r\n return routes;\r\n}\r\n\r\n@NgModule({\r\n imports: [\r\n AXMAuthModule.forRoot(),\r\n AXPAuthModule.forRoot({\r\n strategies: [AXMOidcStrategy],\r\n }),\r\n ],\r\n exports: [],\r\n declarations: [],\r\n providers: [\r\n {\r\n provide: AXPDataProvider,\r\n useClass: AXMBackendDataProvider,\r\n },\r\n {\r\n provide: AXP_TENANT_LOADER,\r\n useClass: AXMOidcTenantLoader,\r\n },\r\n {\r\n provide: AXP_APPLICATION_LOADER,\r\n useClass: AXMOidcApplicationLoader,\r\n },\r\n {\r\n provide: AXP_PERMISSION_LOADER,\r\n useClass: AXMOidcPermissionLoader,\r\n },\r\n {\r\n provide: AXP_FEATURE_LOADER,\r\n useClass: AXMOidcFeatureLoader,\r\n },\r\n {\r\n provide: ROUTES,\r\n multi: true,\r\n useFactory: routesFactory,\r\n },\r\n ],\r\n})\r\nexport class AXMBackendModule { }\r\n","import { AXDataSourceFilterOption } from '@acorex/components/common';\r\nimport { endsWith, every, get, gt, gte, includes, isEmpty, isEqual, lt, lte, orderBy, some, startsWith } from 'lodash-es';\r\n\r\nfunction applyCondition(item: any, condition: any) {\r\n const rawValue = get(item, condition.field);\r\n const itemValue = typeof rawValue === 'string' ? rawValue.toLowerCase() : rawValue;\r\n const conditionValue = typeof condition.value === 'string' ? condition.value.toLowerCase() : condition.value;\r\n\r\n // Logging for debugging\r\n // console.log('Condition:', condition);\r\n // console.log('Item Value:', itemValue);\r\n // console.log('Condition Value:', conditionValue);\r\n\r\n switch (condition.operator.type) {\r\n case 'equal':\r\n return isEqual(itemValue, conditionValue);\r\n case 'notEqual':\r\n return !isEqual(itemValue, conditionValue);\r\n case 'greaterThan':\r\n return gt(itemValue, conditionValue);\r\n case 'lessThan':\r\n return lt(itemValue, conditionValue);\r\n case 'greaterThanOrEqual':\r\n return gte(itemValue, conditionValue);\r\n case 'lessThanOrEqual':\r\n return lte(itemValue, conditionValue);\r\n case 'contains':\r\n if (typeof itemValue === 'string') {\r\n return includes(itemValue, conditionValue);\r\n } else if (Array.isArray(itemValue)) {\r\n return includes(itemValue.map(val => val.toString().toLowerCase()), conditionValue);\r\n }\r\n return false;\r\n case 'notContains':\r\n if (typeof itemValue === 'string') {\r\n return !includes(itemValue, conditionValue);\r\n } else if (Array.isArray(itemValue)) {\r\n return !includes(itemValue.map(val => val.toString().toLowerCase()), conditionValue);\r\n }\r\n return false;\r\n case 'startsWith':\r\n return typeof itemValue === 'string' && startsWith(itemValue, conditionValue);\r\n case 'endsWith':\r\n return typeof itemValue === 'string' && endsWith(itemValue, conditionValue);\r\n case 'isEmpty':\r\n return isEmpty(itemValue);\r\n case 'isNotEmpty':\r\n return !isEmpty(itemValue);\r\n case 'between':\r\n return itemValue >= condition.value.from && itemValue <= condition.value.to;\r\n default:\r\n return true;\r\n }\r\n}\r\n\r\nexport function applyFilterArray(\r\n dataArray: any[],\r\n filters?: AXDataSourceFilterOption[],\r\n logic: 'and' | 'or' = 'and'\r\n): any[] {\r\n if (filters && filters.length) {\r\n return dataArray.filter((item) => {\r\n if (logic === 'and') {\r\n return filters.every((f) => {\r\n return f.filters ? applyFilterArray([item], f.filters, f.logic).length > 0 : applyCondition(item, f);\r\n });\r\n } else {\r\n // logic === 'or'\r\n return filters.some((f) => {\r\n return f.filters ? applyFilterArray([item], f.filters, f.logic).length > 0 : applyCondition(item, f);\r\n });\r\n }\r\n });\r\n } else {\r\n return dataArray;\r\n }\r\n}\r\n\r\n\r\nexport function applySortArray(dataArray: any, sorts: { field: string; dir: 'asc' | 'desc' }[]) {\r\n if (sorts && sorts.length > 0) {\r\n const sortFields = sorts.map((s) => s.field);\r\n const sortOrders = sorts.map((s) => s.dir);\r\n return orderBy(dataArray, sortFields, sortOrders);\r\n } else return dataArray;\r\n}\r\n","import { AXPDataProvider } from '@acorex/platform/common';\r\nimport { AXPStorageMockService } from '@acorex/platform/mocks';\r\nimport { Injectable } from '@angular/core';\r\nimport { applyFilterArray, applySortArray } from './data-Conditioner';\r\nimport { AXPEntityConfig } from '@acorex/platform/common';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AXMLocalDataProvider implements AXPDataProvider {\r\n constructor(private storageService: AXPStorageMockService) { }\r\n\r\n insertOne(entity: AXPEntityConfig, entityItem: any): Promise<any> {\r\n return this.storageService.insertOrupdateOne(entity.name, entityItem);\r\n }\r\n\r\n insertMany(entity: AXPEntityConfig, entityList: any): Promise<any> {\r\n return this.storageService.insertMany(entity.name, entityList);\r\n }\r\n\r\n async getOne(entity: AXPEntityConfig, id: string): Promise<any> {\r\n console.log('@LOACAL getOne', entity.name, id);\r\n return this.storageService.getOne(entity.name, id);\r\n }\r\n\r\n async getMany(entity: AXPEntityConfig, params?: any): Promise<any> {\r\n console.log('@LOACAL getMany', entity.name, params);\r\n const result = await this.storageService.getMany(entity.name, params);\r\n const sortedItems = applySortArray(result, params?.sort);\r\n const filteredItems = applyFilterArray(sortedItems, params?.filter?.filters);\r\n return new Promise((resolve) => {\r\n resolve({\r\n items: params ? filteredItems?.slice(params.skip, (params.skip ?? 0) + (params.take ?? 20)) : filteredItems,\r\n total: filteredItems?.length ?? 0,\r\n });\r\n });\r\n }\r\n\r\n updateOne(entity: AXPEntityConfig, id: string, data: { [key: string]: any }): Promise<any> {\r\n return this.storageService.updateOne(entity.name, id, data);\r\n }\r\n\r\n deleteOne(entity: AXPEntityConfig, id: string): Promise<any> {\r\n return this.storageService.deleteOne(entity.name, id);\r\n }\r\n\r\n getFirst(entity: AXPEntityConfig): Promise<any> {\r\n return this.getMany(entity).then((res) => {\r\n return res.items ? res.items[0] : null;\r\n });\r\n }\r\n\r\n // Mock file uploader function\r\n uploadFile(file: File, title: string): Promise<string> {\r\n return new Promise((resolve) => {\r\n // Mock file ID generation\r\n const fileId = `mock-file-id-${Math.random().toString(36).substr(2, 9)}`;\r\n const fileRecord = { id: fileId, title, file };\r\n this.storageService.insertOrupdateOne('files', fileRecord).then(() => {\r\n resolve(fileId);\r\n });\r\n });\r\n }\r\n\r\n // Mock function to upload multiple files\r\n uploadMultipleFiles(files: File[], title: string): Promise<string[]> {\r\n const uploadPromises = files.map((file) => this.uploadFile(file, title));\r\n return Promise.all(uploadPromises);\r\n }\r\n\r\n // Mock function to view a file\r\n viewFile(id: string, name: string): Promise<Blob> {\r\n return new Promise(async (resolve, reject) => {\r\n const fileRecord = await this.storageService.getOne('files', id);\r\n if (fileRecord && fileRecord.file) {\r\n resolve(fileRecord.file);\r\n } else {\r\n reject('File not found');\r\n }\r\n });\r\n }\r\n\r\n // Mock function to download a file\r\n downloadFile(id: string, name: string): Promise<Blob> {\r\n return this.viewFile(id, name);\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.AXMOidcUserManagerService","i1","i2"],"mappings":"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"}
1
+ {"version":3,"file":"acorex-modules-backend.mjs","sources":["../../../../libs/modules/backend/src/lib/data/api/data-provider.ts","../../../../libs/modules/backend/src/lib/auth/oidc/application.loader.ts","../../../../libs/modules/backend/src/lib/auth/oidc/configuration.service.ts","../../../../libs/modules/backend/src/lib/auth/oidc/feature.loader.ts","../../../../libs/modules/backend/src/lib/auth/oidc/usermanager.service.ts","../../../../libs/modules/backend/src/lib/auth/oidc/oidc.strategy.ts","../../../../libs/modules/backend/src/lib/auth/oidc/permission.loader.ts","../../../../libs/modules/backend/src/lib/auth/oidc/signincallback.component.ts","../../../../libs/modules/backend/src/lib/auth/oidc/tenant.loader.ts","../../../../libs/modules/backend/src/lib/backend.module.ts","../../../../libs/modules/backend/src/lib/data/local/data-Conditioner.ts","../../../../libs/modules/backend/src/lib/data/local/local-data-provider.ts","../../../../libs/modules/backend/src/acorex-modules-backend.ts"],"sourcesContent":["import { AXPDataProvider, AXPEntityConfig, AXP_ROOT_CONFIG_TOKEN } from '@acorex/platform/common';\r\nimport { HttpClient, HttpParams } from '@angular/common/http';\r\nimport { Injectable, inject } from '@angular/core';\r\nimport { firstValueFrom } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AXMBackendDataProvider implements AXPDataProvider {\r\n private configs = inject(AXP_ROOT_CONFIG_TOKEN);\r\n private mainUrl = this.configs.baseUrl;\r\n\r\n constructor(private http: HttpClient) {}\r\n\r\n insertOne(entity: AXPEntityConfig, entityItem: any): Promise<any> {\r\n const url = `${this.mainUrl}${entity.area ? '/' + entity.area : ''}/${entity.module}/${entity.name}`;\r\n return firstValueFrom(this.http.post(url, entityItem));\r\n }\r\n\r\n insertMany(entity: AXPEntityConfig, entityList: any): Promise<any> {\r\n const promises = entityList.map((entity: any) => {\r\n const url = `${this.mainUrl}${entity.area ? '/' + entity.area : ''}/${entity.module}/${entity.name}`;\r\n return firstValueFrom(this.http.post(url, entity));\r\n });\r\n return Promise.all(promises);\r\n }\r\n\r\n getOne(entity: AXPEntityConfig, id: string): Promise<any> {\r\n const url = `${this.mainUrl}${entity.area ? '/' + entity.area : ''}/${entity.module}/${entity.name}${id ? '/' + id : ''}`;\r\n return firstValueFrom(this.http.get(url));\r\n }\r\n\r\n getMany(entity: AXPEntityConfig, params?: any): Promise<any> {\r\n let httpParams = new HttpParams().set('Skip', params?.skip?.toString() ?? '0').set('Take', params?.take?.toString() ?? '10');\r\n\r\n if (params?.sort && params?.sort.length > 0) {\r\n const sortParam = params?.sort.map((sort: any) => `${sort.field}:${sort.dir}`).join(',');\r\n httpParams = httpParams.set('$orderby', sortParam);\r\n }\r\n\r\n const buildFilterString = (filters: any[]): string => {\r\n return filters\r\n .map((f: any) => {\r\n if (f.filters) {\r\n return buildFilterString(f.filters);\r\n } else {\r\n return `${f.field} ${f.operator.type} ${f.value}`;\r\n }\r\n })\r\n .join(',');\r\n };\r\n\r\n let filterString = params?.customFilter ? params.customFilter : '';\r\n if (params?.filter) {\r\n const filter = params.filter;\r\n if (filter.filters) {\r\n // Construct filter string from provided filters\r\n\r\n const dynamicFilters = buildFilterString(filter.filters);\r\n console.log({ dynamicFilters });\r\n\r\n // Append dynamic filters to custom filter, if both exist\r\n filterString = filterString ? `${filterString},${dynamicFilters}` : dynamicFilters;\r\n }\r\n }\r\n // Set the $filter parameter if there are any filters\r\n console.log(filterString);\r\n if (filterString) {\r\n httpParams = httpParams.set('$filter', filterString);\r\n }\r\n\r\n function generateQueryString(filter: any) {\r\n if (!filter.filters) {\r\n // Base case: single filter\r\n return `${filter.field} ${filter.operator.type} ${filter.value}`;\r\n } else if (!filter.filters.length) {\r\n return;\r\n } else {\r\n // Recursive case: multiple filters\r\n const filterStrings = filter.filters.map((subFilter: any) => generateQueryString(subFilter));\r\n const logic = filter.logic || 'AND'; // Default logic is 'AND' if not provided\r\n return `${filterStrings.filter((i: any) => i).join(` ${logic} `)}`;\r\n }\r\n }\r\n\r\n let queryString = params?.customFilter ? params.customFilter : '';\r\n if (params?.filter) {\r\n const filter = params.filter;\r\n if (filter.filters && filter.filters.length > 0) {\r\n // Construct filter string from provided filters\r\n\r\n const dynamicQueries = generateQueryString(filter);\r\n console.log({ dynamicQueries: dynamicQueries });\r\n\r\n // Append dynamic filters to custom filter, if both exist\r\n queryString = queryString ? `${queryString},${dynamicQueries}` : dynamicQueries;\r\n }\r\n }\r\n // Set the $filter parameter if there are any filters\r\n if (queryString) {\r\n httpParams = httpParams.set('$query', queryString);\r\n }\r\n return firstValueFrom(\r\n this.http.get<any>(\r\n `${this.mainUrl}${entity.area ? '/' + entity.area : ''}/${entity.module}/${params.costumGetter ? params.costumGetter : entity.name}/${\r\n params?.sub ? params.sub : ''\r\n }`,\r\n { params: httpParams }\r\n )\r\n ).then((response) => {\r\n return {\r\n total: response.totalCount,\r\n items: response.items,\r\n };\r\n });\r\n }\r\n\r\n updateOne(entity: AXPEntityConfig, id?: string, data?: { [key: string]: any }): Promise<any> {\r\n const url = `${this.mainUrl}${entity.area ? '/' + entity.area : ''}/${entity.module}/${entity.name}${id ? '/' + id : ''}`;\r\n return firstValueFrom(this.http.put(url, data));\r\n }\r\n\r\n deleteOne(entity: AXPEntityConfig, id: string): Promise<any> {\r\n const url = `${this.mainUrl}${entity.area ? '/' + entity.area : ''}/${entity.module}/${entity.name}/${id}`;\r\n return firstValueFrom(this.http.delete(url));\r\n }\r\n\r\n getFirst(entity: AXPEntityConfig): Promise<any> {\r\n // return this.getMany(entity.name).then((res) => res.items[0]);\r\n return new Promise((resolve) => resolve(true));\r\n }\r\n\r\n // File uploader function\r\n uploadFile(file: File, title: string): Promise<string> {\r\n const url = `${this.mainUrl}/common/files`;\r\n const formData: FormData = new FormData();\r\n formData.append('File', file);\r\n formData.append('Title', title);\r\n\r\n return firstValueFrom(this.http.post<string>(url, formData));\r\n }\r\n\r\n // Function to upload multiple files\r\n uploadMultipleFiles(files: File[], title: string): Promise<string[]> {\r\n const uploadPromises = files.map((file) => this.uploadFile(file, title));\r\n return Promise.all(uploadPromises);\r\n }\r\n\r\n // Function to view a file\r\n viewFile(id: string, name: string): Promise<Blob> {\r\n const url = `${this.mainUrl}/common/files/${id}/View/${name}`;\r\n return firstValueFrom(this.http.get(url, { responseType: 'blob' }));\r\n }\r\n\r\n // Function to download a file\r\n downloadFile(id: string, name: string): Promise<Blob> {\r\n const url = `${this.mainUrl}/common/files/${id}/Download/${name}`;\r\n return firstValueFrom(this.http.get(url, { responseType: 'blob' }));\r\n }\r\n}\r\n","import { AXPApplication, AXPApplicationLoader, AXPRefreshTokenResult } from '@acorex/platform/auth';\r\nimport { AXP_ROOT_CONFIG_TOKEN } from '@acorex/platform/common';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Injectable, inject } from '@angular/core';\r\nimport { Observable, map } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class AXMOidcApplicationLoader implements AXPApplicationLoader {\r\n private configs = inject(AXP_ROOT_CONFIG_TOKEN);\r\n private apiGetApps = `${this.configs.baseUrl}/applications/GetListByTenantId`;\r\n private apiSetApp = `${this.configs.baseUrl}/SetApplication`;\r\n constructor(private http: HttpClient) { }\r\n\r\n\r\n getList(): Observable<AXPApplication[]> {\r\n return this.http.get<{ items: any[] }>(this.apiGetApps).pipe(\r\n map((response) => {\r\n return response.items.map((item) => this.mapToAXPApplication(item));\r\n })\r\n );\r\n }\r\n\r\n set(application: AXPApplication): Promise<void> {\r\n return Promise.resolve();\r\n }\r\n\r\n // //TODO: shoud be removed\r\n // set(application: AXPApplication): Observable<AXPRefreshTokenResult> {\r\n // return this.http.post<any>(this.apiSetApp, { applicationId: application.id }).pipe(\r\n // map((response) => {\r\n // return {\r\n // succeed: true,\r\n // data: {\r\n // accessToken: response.token,\r\n // refreshToken: response.token,\r\n // }\r\n // };\r\n // })\r\n // );\r\n // }\r\n\r\n private mapToAXPApplication(item: any): AXPApplication {\r\n return {\r\n id: item.id,\r\n name: item.name || 'defaultName',\r\n title: item.title || 'defaultTitle',\r\n version: item.version || '1.0.0',\r\n description: item.description,\r\n logo: item.logo, // Assuming logo is of type AXPLogoConfig or undefined\r\n editionName: item.editionName,\r\n // features: item.features || [],\r\n };\r\n }\r\n}\r\n","import { AXM_AUTH_CONFIG_TOKEN } from '@acorex/modules/auth';\r\nimport { AXP_ROOT_CONFIG_TOKEN } from '@acorex/platform/common';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Injectable, inject } from '@angular/core';\r\nimport { BehaviorSubject, Observable, filter, of, switchMap, take, tap } from 'rxjs';\r\n\r\nexport interface Localization {\r\n values: Record<string, Record<string, string>>;\r\n resources: Record<string, Resource>;\r\n languages: Language[];\r\n currentCulture: Culture;\r\n defaultResourceName: string;\r\n languagesMap: Record<string, NameValue[]>;\r\n languageFilesMap: Record<string, NameValue[]>;\r\n}\r\n\r\nexport interface Resource {\r\n texts: Record<string, string>;\r\n baseResources: string[];\r\n}\r\n\r\nexport interface Language {\r\n cultureName: string;\r\n uiCultureName: string;\r\n displayName: string;\r\n twoLetterISOLanguageName: string;\r\n flagIcon: string;\r\n}\r\n\r\nexport interface Culture {\r\n displayName: string;\r\n // ... other properties\r\n}\r\n\r\nexport interface NameValue {\r\n name: string;\r\n value: string;\r\n}\r\n\r\n// Repeat similar patterns for 'auth', 'setting', 'currentUser', etc.\r\nexport interface Auth {\r\n grantedPolicies: Record<string, boolean>;\r\n}\r\n\r\n// Main configuration interface\r\nexport interface ApplicationConfiguration {\r\n localization: Localization;\r\n auth: Auth;\r\n setting: Record<string, any>;\r\n currentUser: any;\r\n features: Record<string, any>;\r\n globalFeatures: Record<string, any>;\r\n multiTenancy: Record<string, any>;\r\n currentCulture: Culture;\r\n timing: Record<string, any>;\r\n clock: Record<string, any>;\r\n objectExtensions: Record<string, any>;\r\n extraProperties: Record<string, any>;\r\n\r\n // ... other properties\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AXMConfigurationService {\r\n private configs = inject(AXP_ROOT_CONFIG_TOKEN);\r\n private applicationConfig: ApplicationConfiguration | null = null;\r\n private apiGetConfig = `${this.configs.baseUrl}/abp/application-configuration`;\r\n private fetchInProgress: boolean = false;\r\n private configSubject: BehaviorSubject<ApplicationConfiguration | null> = new BehaviorSubject<ApplicationConfiguration | null>(null);\r\n\r\n constructor(private http: HttpClient) {\r\n this.init().subscribe(); // Automatically trigger configuration load on service instantiation\r\n }\r\n\r\n public init(): Observable<ApplicationConfiguration> {\r\n if (!this.fetchInProgress) {\r\n this.fetchInProgress = true;\r\n return this.http.get<ApplicationConfiguration>(this.apiGetConfig).pipe(\r\n tap((response) => {\r\n this.applicationConfig = response;\r\n this.configSubject.next(this.applicationConfig);\r\n this.fetchInProgress = false;\r\n })\r\n );\r\n } else {\r\n // Adjusted approach to handle TypeScript's type safety requirements\r\n return this.configSubject.asObservable().pipe(\r\n filter((config): config is ApplicationConfiguration => config !== null),\r\n take(1) // Ensures it completes after emitting the first non-null value\r\n );\r\n }\r\n }\r\n\r\n getConfig(): Observable<ApplicationConfiguration> {\r\n if (this.applicationConfig) {\r\n // If the config is already loaded, return it immediately\r\n return of(this.applicationConfig);\r\n } else {\r\n // If the config is not loaded, initiate loading\r\n return this.configSubject.asObservable().pipe(\r\n filter((config) => config !== null),\r\n take(1), // Ensure it only emits the first non-null value and completes\r\n switchMap(() => of(this.applicationConfig!))\r\n );\r\n }\r\n }\r\n}\r\n","import { AXPFeature, AXPFeatureLoader } from '@acorex/platform/auth';\r\nimport { Observable, delay, of } from 'rxjs';\r\n\r\nexport class AXMOidcFeatureLoader implements AXPFeatureLoader {\r\n\r\n private list: AXPFeature[] = [\r\n {\r\n name: 'axp-entity-list-custom-view',\r\n title: 'Custom View',\r\n value: false\r\n },\r\n {\r\n name: 'axp-entity-list-quick-search',\r\n title: 'Custom View',\r\n value: false\r\n }\r\n ]\r\n\r\n getList(): Observable<AXPFeature[]> {\r\n return of(this.list).pipe(delay(0));\r\n }\r\n}\r\n","import { AXMAuthConfigs, AXM_AUTH_CONFIG_TOKEN } from '@acorex/modules/auth';\r\nimport { AXPApplication, AXPTenant } from '@acorex/platform/auth';\r\nimport { Inject, Injectable } from '@angular/core';\r\nimport { UserManager, WebStorageStateStore } from 'oidc-client-ts';\r\n// Other imports...\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AXMOidcUserManagerService {\r\n private userManager: UserManager;\r\n public selectedTenant: AXPTenant | null = null;\r\n public selectedApplication: AXPApplication | null = null;\r\n\r\n constructor(@Inject(AXM_AUTH_CONFIG_TOKEN) private authConfig: AXMAuthConfigs) {\r\n if (!authConfig.oidc_settings) {\r\n throw new Error('OIDC configuration is missing');\r\n }\r\n\r\n this.userManager = new UserManager({\r\n ...authConfig.oidc_settings,\r\n userStore: new WebStorageStateStore({ store: window.localStorage }),\r\n });\r\n }\r\n\r\n getUserManager(): UserManager {\r\n return this.userManager;\r\n }\r\n\r\n async signinSilentCallback() {\r\n await this.userManager.signinSilentCallback();\r\n }\r\n}\r\n","import { AXPAuthStrategy, AXPBaseCredentials, AXPRefreshTokenResult, AXPSessionContext, AXPSignInResult, AXPUser } from '@acorex/platform/auth';\r\nimport { AXPDataProvider } from '@acorex/platform/common';\r\nimport { Injectable, Injector, inject } from '@angular/core';\r\nimport { UserManager } from 'oidc-client-ts';\r\nimport { AXMOidcUserManagerService } from './usermanager.service';\r\n\r\nexport interface AXPUserPassCredentials extends AXPBaseCredentials {\r\n username: string;\r\n password: string;\r\n}\r\n\r\n@Injectable()\r\nexport class AXMOidcStrategy implements AXPAuthStrategy {\r\n private userManagerService: AXMOidcUserManagerService;\r\n private userManager: UserManager;\r\n private injector: Injector = inject(Injector);\r\n private dataService = inject(AXPDataProvider);\r\n\r\n constructor() {\r\n this.userManagerService = this.injector.get(AXMOidcUserManagerService);\r\n this.userManager = this.userManagerService.getUserManager();\r\n }\r\n\r\n get name(): string {\r\n return 'user-pass';\r\n }\r\n\r\n async signin(credentials: AXPUserPassCredentials): Promise<AXPSignInResult> {\r\n try {\r\n const currentUser = await this.userManager.getUser();\r\n\r\n if (currentUser && !currentUser.expired && currentUser.profile.name === credentials.username) {\r\n const user: AXPUser = {\r\n id: currentUser.profile.sub,\r\n name: currentUser.profile.name ?? credentials.username,\r\n title: currentUser.profile.given_name ?? 'no Name!',\r\n avatar: currentUser.profile.picture,\r\n };\r\n const accessToken = currentUser.access_token;\r\n const refreshToken = currentUser.refresh_token ?? '';\r\n return {\r\n succeed: true,\r\n data: { user, accessToken, refreshToken },\r\n };\r\n }\r\n\r\n await this.userManager.removeUser();\r\n await this.userManager.clearStaleState();\r\n\r\n const oidcUser = await this.userManager.signinSilent({\r\n extraQueryParams: {\r\n username: credentials.username,\r\n password: credentials.password,\r\n },\r\n });\r\n if (oidcUser) {\r\n const profile = oidcUser.profile; // Cast to any to access deeply nested properties\r\n const user: AXPUser = {\r\n id: profile.sub,\r\n name: `${profile.email}`,\r\n title: `${profile.name}`,\r\n avatar: `${profile.picture}`,\r\n };\r\n const accessToken = oidcUser.access_token;\r\n const refreshToken = oidcUser.refresh_token ?? '';\r\n\r\n return {\r\n succeed: true,\r\n data: { user, accessToken, refreshToken },\r\n };\r\n }\r\n\r\n return {\r\n succeed: false,\r\n };\r\n } catch (error: any) {\r\n if (error?.message) throw new Error(error.message);\r\n // Depending on the error type, you might want to throw a specific error\r\n throw new Error('Network or server error occurred');\r\n }\r\n }\r\n\r\n async signout(): Promise<void> {\r\n console.log('User signed out');\r\n this.userManager.removeUser();\r\n this.userManager.clearStaleState();\r\n this.userManager.signoutSilent();\r\n }\r\n\r\n async refreshToken(context: AXPSessionContext): Promise<AXPRefreshTokenResult> {\r\n const user: AXPUser = {\r\n id: '1',\r\n name: 'admin',\r\n title: 'Arash',\r\n avatar: 'https://i.pravatar.cc/150?img=52',\r\n };\r\n\r\n const accessToken = this.generateAccessToken();\r\n const newRefreshToken = this.generateAccessToken();\r\n\r\n return {\r\n succeed: true,\r\n data: { accessToken, refreshToken: newRefreshToken },\r\n };\r\n }\r\n\r\n private generateAccessToken(): string {\r\n return 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJPbmxpbmUgSldUIEJ1aWxkZXIiLCJpYXQiOjE3MDU5MjE4ODUsImV4cCI6MTczNzQ1Nzg4NSwiYXVkIjoid3d3LmV4YW1wbGUuY29tIiwic3ViIjoianJvY2tldEBleGFtcGxlLmNvbSIsImlkIjoiMTAiLCJ0aXRsZSI6IkFyYXNoIiwiRW1haWwiOiJqcm9ja2V0QGV4YW1wbGUuY29tIiwiUm9sZSI6WyJNYW5hZ2VyIiwiUHJvamVjdCBBZG1pbmlzdHJhdG9yIl0sIm5hbWUiOiJhZG1pbiJ9.IgJL7uvJNBd9yBvWS4aTms5XjBI4VDyT01KhMSESXdQ';\r\n }\r\n}\r\n","import { AXPPermission, AXPPermissionLoader, AXPSessionContext } from '@acorex/platform/auth';\r\nimport { AXP_ROOT_CONFIG_TOKEN } from '@acorex/platform/common';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Injectable, inject } from '@angular/core';\r\nimport { Observable, map } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class AXMOidcPermissionLoader implements AXPPermissionLoader {\r\n private configs = inject(AXP_ROOT_CONFIG_TOKEN);\r\n private apiGetConfig = `${this.configs.baseUrl}/abp/application-configuration`;\r\n\r\n constructor(private http: HttpClient) {}\r\n\r\n getList(context: AXPSessionContext): Observable<AXPPermission[]> {\r\n return this.http.get<{ items: any }>(this.apiGetConfig).pipe(map((response) => this.mapTo(response)));\r\n // if (context.user == null)\r\n // return of([]);\r\n // else if (context.user.name.toLowerCase() == 'admin')\r\n // return of(['axp.admin.console', 'asc.admin.message', 'asc.admin.settings', 'asc.admin.gliding', 'asc.user.gliding']);\r\n // else\r\n // return of(['asc.user.gliding']);\r\n // return of(['axp.admin.console', 'asc.admin.message', 'asc.admin.settings', 'asc.admin.gliding', 'asc.user.gliding']);\r\n }\r\n\r\n mapTo(jsonObj: any): string[] {\r\n const policies = jsonObj.auth.grantedPolicies;\r\n const truePolicies = Object.keys(policies).filter((key) => policies[key] === true);\r\n return truePolicies;\r\n }\r\n}\r\n","import { AXPSessionService } from '@acorex/platform/auth';\r\nimport { Component, OnInit, inject } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { AXMOidcUserManagerService } from './usermanager.service';\r\n\r\n@Component({\r\n template: '',\r\n})\r\nexport class SignincallbackComponent implements OnInit {\r\n private sessionService = inject(AXPSessionService);\r\n constructor(\r\n private userManagerService: AXMOidcUserManagerService,\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n\r\n ) { }\r\n\r\n ngOnInit() {\r\n const queryParams = this.route.snapshot.queryParams;\r\n if (queryParams['tenantid']) {\r\n const selectedTenant = {\r\n id: queryParams['tenantid'],\r\n name: queryParams['tenantname'],\r\n title: queryParams['tenanttitle'],\r\n };\r\n this.sessionService.setTenant(selectedTenant);\r\n }\r\n if (queryParams['applicationid']) {\r\n const selectedApplication = {\r\n id: queryParams['applicationid'],\r\n name: queryParams['applicationname'],\r\n title: queryParams['applicationtitle'],\r\n version: '1',\r\n editionName: queryParams['editionname'],\r\n };\r\n this.sessionService.setApplication(selectedApplication);\r\n }\r\n this.userManagerService.signinSilentCallback();\r\n }\r\n}\r\n","import { AXPTenant, AXPTenantLoader } from '@acorex/platform/auth';\r\nimport { AXP_ROOT_CONFIG_TOKEN } from '@acorex/platform/common';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Injectable, inject } from '@angular/core';\r\nimport { Observable, map } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class AXMOidcTenantLoader implements AXPTenantLoader {\r\n private configs = inject(AXP_ROOT_CONFIG_TOKEN);\r\n private apiGetTenants = `${this.configs.baseUrl}/user-tenants/Tenants`;\r\n private apiSetTenant = `${this.configs.baseUrl}/SetTenant`;\r\n constructor(private http: HttpClient) { }\r\n\r\n getList(): Observable<AXPTenant[]> {\r\n return this.http.get<{ items: any[] }>(this.apiGetTenants).pipe(map((response) => response.items.map((item) => this.mapToAXPTenant(item))));\r\n }\r\n\r\n async set(tenant: AXPTenant): Promise<void> {\r\n return Promise.resolve();\r\n }\r\n\r\n private mapToAXPTenant(item: any): AXPTenant {\r\n return {\r\n id: item.id,\r\n name: item.name || 'defaultName',\r\n title: item.title || 'defaultTitle',\r\n // Add other fields and defaults as needed, and handle the logo if applicable\r\n };\r\n }\r\n}\r\n","import { AXMAuthModule } from '@acorex/modules/auth';\r\nimport { AXPAuthModule, AXP_APPLICATION_LOADER, AXP_FEATURE_LOADER, AXP_PERMISSION_LOADER, AXP_TENANT_LOADER } from '@acorex/platform/auth';\r\nimport { AXPDataProvider } from '@acorex/platform/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { ROUTES, Routes } from '@angular/router';\r\n\r\n//-----------------------------------------------------------------\r\nimport { AXMBackendDataProvider } from './data/api/data-provider';\r\nimport { AXMOidcApplicationLoader, AXMOidcFeatureLoader, AXMOidcPermissionLoader, AXMOidcStrategy, AXMOidcTenantLoader } from './auth/oidc';\r\n//-----------------------------------------------------------------\r\n\r\nimport { SignincallbackComponent } from './auth/oidc/signincallback.component';\r\n\r\nfunction routesFactory() {\r\n const routes: Routes = [{ path: 'auth/signincallback', component: SignincallbackComponent }];\r\n return routes;\r\n}\r\n\r\n@NgModule({\r\n imports: [\r\n AXMAuthModule.forRoot(),\r\n AXPAuthModule.forRoot({\r\n strategies: [AXMOidcStrategy],\r\n }),\r\n ],\r\n exports: [],\r\n declarations: [],\r\n providers: [\r\n {\r\n provide: AXPDataProvider,\r\n useClass: AXMBackendDataProvider,\r\n },\r\n {\r\n provide: AXP_TENANT_LOADER,\r\n useClass: AXMOidcTenantLoader,\r\n },\r\n {\r\n provide: AXP_APPLICATION_LOADER,\r\n useClass: AXMOidcApplicationLoader,\r\n },\r\n {\r\n provide: AXP_PERMISSION_LOADER,\r\n useClass: AXMOidcPermissionLoader,\r\n },\r\n {\r\n provide: AXP_FEATURE_LOADER,\r\n useClass: AXMOidcFeatureLoader,\r\n },\r\n {\r\n provide: ROUTES,\r\n multi: true,\r\n useFactory: routesFactory,\r\n },\r\n ],\r\n})\r\nexport class AXMBackendModule { }\r\n","import { AXDataSourceFilterOption } from '@acorex/components/common';\r\nimport { endsWith, get, gt, gte, includes, isEmpty, isEqual, isNil, lt, lte, orderBy, startsWith } from 'lodash-es';\r\n\r\nconst loggingEnabled = false; // Set to true to enable logging, false to disable\r\n\r\nfunction applyCondition(item: any, condition: any) {\r\n const rawValue = condition.field ? get(item, condition.field) : null;\r\n const itemValue = typeof rawValue === 'string' ? rawValue.toLowerCase() : rawValue;\r\n const conditionValue = typeof condition.value === 'string' ? condition.value.toLowerCase() : condition.value;\r\n\r\n // Conditional Logging for debugging\r\n if (loggingEnabled) {\r\n console.log('Condition:', condition);\r\n console.log('Item Value:', itemValue);\r\n console.log('Condition Value:', conditionValue);\r\n }\r\n\r\n let result: boolean;\r\n const valueToCompare = isNil(condition.field) || condition.field === '' ? conditionValue : itemValue;\r\n\r\n switch (condition.operator.type) {\r\n case 'equal':\r\n result = isEqual(valueToCompare, conditionValue);\r\n if (loggingEnabled) console.log('Equal check result:', result);\r\n break;\r\n case 'notEqual':\r\n result = !isEqual(valueToCompare, conditionValue);\r\n if (loggingEnabled) console.log('Not equal check result:', result);\r\n break;\r\n case 'greaterThan':\r\n result = gt(valueToCompare, conditionValue);\r\n if (loggingEnabled) console.log('Greater than check result:', result);\r\n break;\r\n case 'lessThan':\r\n result = lt(valueToCompare, conditionValue);\r\n if (loggingEnabled) console.log('Less than check result:', result);\r\n break;\r\n case 'greaterThanOrEqual':\r\n result = gte(valueToCompare, conditionValue);\r\n if (loggingEnabled) console.log('Greater than or equal check result:', result);\r\n break;\r\n case 'lessThanOrEqual':\r\n result = lte(valueToCompare, conditionValue);\r\n if (loggingEnabled) console.log('Less than or equal check result:', result);\r\n break;\r\n case 'contains':\r\n if (typeof valueToCompare === 'string') {\r\n result = includes(valueToCompare, conditionValue);\r\n } else if (Array.isArray(valueToCompare)) {\r\n result = includes(valueToCompare.map(val => val.toString().toLowerCase()), conditionValue);\r\n } else {\r\n result = false;\r\n }\r\n if (loggingEnabled) console.log('Contains check result:', result);\r\n break;\r\n case 'notContains':\r\n if (typeof valueToCompare === 'string') {\r\n result = !includes(valueToCompare, conditionValue);\r\n } else if (Array.isArray(valueToCompare)) {\r\n result = !includes(valueToCompare.map(val => val.toString().toLowerCase()), conditionValue);\r\n } else {\r\n result = false;\r\n }\r\n if (loggingEnabled) console.log('Not contains check result:', result);\r\n break;\r\n case 'startsWith':\r\n result = typeof valueToCompare === 'string' && startsWith(valueToCompare, conditionValue);\r\n if (loggingEnabled) console.log('Starts with check result:', result);\r\n break;\r\n case 'endsWith':\r\n result = typeof valueToCompare === 'string' && endsWith(valueToCompare, conditionValue);\r\n if (loggingEnabled) console.log('Ends with check result:', result);\r\n break;\r\n case 'isEmpty':\r\n result = isEmpty(valueToCompare);\r\n if (loggingEnabled) console.log('Is empty check result:', result);\r\n break;\r\n case 'isNull':\r\n result = isNil(valueToCompare);\r\n if (loggingEnabled) console.log('Is null check result:', result);\r\n break;\r\n case 'isNotEmpty':\r\n result = !isEmpty(valueToCompare);\r\n if (loggingEnabled) console.log('Is not empty check result:', result);\r\n break;\r\n case 'between':\r\n result = !isNil(valueToCompare) && valueToCompare >= condition.value.from && valueToCompare <= condition.value.to;\r\n if (loggingEnabled) console.log('Between check result:', result);\r\n break;\r\n default:\r\n result = true;\r\n if (loggingEnabled) console.log('Default case, returning true');\r\n }\r\n\r\n return result;\r\n}\r\n\r\n\r\n\r\n\r\nexport function applyFilterArray(\r\n dataArray: any[],\r\n filters?: AXDataSourceFilterOption[],\r\n logic: 'and' | 'or' = 'and'\r\n): any[] {\r\n if (filters && filters.length) {\r\n return dataArray.filter((item) => {\r\n if (logic === 'and') {\r\n return filters.every((f) => {\r\n return f.filters ? applyFilterArray([item], f.filters, f.logic).length > 0 : applyCondition(item, f);\r\n });\r\n } else {\r\n // logic === 'or'\r\n return filters.some((f) => {\r\n return f.filters ? applyFilterArray([item], f.filters, f.logic).length > 0 : applyCondition(item, f);\r\n });\r\n }\r\n });\r\n } else {\r\n return dataArray;\r\n }\r\n}\r\n\r\n\r\nexport function applySortArray(dataArray: any, sorts: { field: string; dir: 'asc' | 'desc' }[]) {\r\n if (sorts && sorts.length > 0) {\r\n const sortFields = sorts.map((s) => s.field);\r\n const sortOrders = sorts.map((s) => s.dir);\r\n return orderBy(dataArray, sortFields, sortOrders);\r\n } else return dataArray;\r\n}\r\n","import { AXPDataProvider } from '@acorex/platform/common';\r\nimport { AXPStorageMockService } from '@acorex/platform/mocks';\r\nimport { Injectable } from '@angular/core';\r\nimport { applyFilterArray, applySortArray } from './data-Conditioner';\r\nimport { AXPEntityConfig } from '@acorex/platform/common';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AXMLocalDataProvider implements AXPDataProvider {\r\n constructor(private storageService: AXPStorageMockService) { }\r\n\r\n insertOne(entity: AXPEntityConfig, entityItem: any): Promise<any> {\r\n return this.storageService.insertOrupdateOne(entity.name, entityItem);\r\n }\r\n\r\n insertMany(entity: AXPEntityConfig, entityList: any): Promise<any> {\r\n return this.storageService.insertMany(entity.name, entityList);\r\n }\r\n\r\n async getOne(entity: AXPEntityConfig, id: string): Promise<any> {\r\n console.log('@LOACAL getOne', entity.name, id);\r\n return this.storageService.getOne(entity.name, id);\r\n }\r\n\r\n async getMany(entity: AXPEntityConfig, params?: any): Promise<any> {\r\n console.log('@LOACAL getMany', entity.name, params);\r\n const result = await this.storageService.getMany(entity.name, params);\r\n const sortedItems = applySortArray(result, params?.sort);\r\n const filteredItems = applyFilterArray(sortedItems, params?.filter?.filters);\r\n return new Promise((resolve) => {\r\n resolve({\r\n items: params ? filteredItems?.slice(params.skip, (params.skip ?? 0) + (params.take ?? 20)) : filteredItems,\r\n total: filteredItems?.length ?? 0,\r\n });\r\n });\r\n }\r\n\r\n updateOne(entity: AXPEntityConfig, id: string, data: { [key: string]: any }): Promise<any> {\r\n return this.storageService.updateOne(entity.name, id, data);\r\n }\r\n\r\n deleteOne(entity: AXPEntityConfig, id: string): Promise<any> {\r\n return this.storageService.deleteOne(entity.name, id);\r\n }\r\n\r\n getFirst(entity: AXPEntityConfig): Promise<any> {\r\n return this.getMany(entity).then((res) => {\r\n return res.items ? res.items[0] : null;\r\n });\r\n }\r\n\r\n // Mock file uploader function\r\n uploadFile(file: File, title: string): Promise<string> {\r\n return new Promise((resolve) => {\r\n // Mock file ID generation\r\n const fileId = `mock-file-id-${Math.random().toString(36).substr(2, 9)}`;\r\n const fileRecord = { id: fileId, title, file };\r\n this.storageService.insertOrupdateOne('files', fileRecord).then(() => {\r\n resolve(fileId);\r\n });\r\n });\r\n }\r\n\r\n // Mock function to upload multiple files\r\n uploadMultipleFiles(files: File[], title: string): Promise<string[]> {\r\n const uploadPromises = files.map((file) => this.uploadFile(file, title));\r\n return Promise.all(uploadPromises);\r\n }\r\n\r\n // Mock function to view a file\r\n viewFile(id: string, name: string): Promise<Blob> {\r\n return new Promise(async (resolve, reject) => {\r\n const fileRecord = await this.storageService.getOne('files', id);\r\n if (fileRecord && fileRecord.file) {\r\n resolve(fileRecord.file);\r\n } else {\r\n reject('File not found');\r\n }\r\n });\r\n }\r\n\r\n // Mock function to download a file\r\n downloadFile(id: string, name: string): Promise<Blob> {\r\n return this.viewFile(id, name);\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.AXMOidcUserManagerService","i1","i2"],"mappings":";;;;;;;;;;;;;;;;MAQa,sBAAsB,CAAA;AAIjC,IAAA,WAAA,CAAoB,IAAgB,EAAA;QAAhB,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;AAH5B,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC;AACxC,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;KAEC;IAExC,SAAS,CAAC,MAAuB,EAAE,UAAe,EAAA;AAChD,QAAA,MAAM,GAAG,GAAG,CAAG,EAAA,IAAI,CAAC,OAAO,CAAG,EAAA,MAAM,CAAC,IAAI,GAAG,GAAG,GAAG,MAAM,CAAC,IAAI,GAAG,EAAE,CAAI,CAAA,EAAA,MAAM,CAAC,MAAM,CAAI,CAAA,EAAA,MAAM,CAAC,IAAI,EAAE,CAAC;AACrG,QAAA,OAAO,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC;KACxD;IAED,UAAU,CAAC,MAAuB,EAAE,UAAe,EAAA;QACjD,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,MAAW,KAAI;AAC9C,YAAA,MAAM,GAAG,GAAG,CAAG,EAAA,IAAI,CAAC,OAAO,CAAG,EAAA,MAAM,CAAC,IAAI,GAAG,GAAG,GAAG,MAAM,CAAC,IAAI,GAAG,EAAE,CAAI,CAAA,EAAA,MAAM,CAAC,MAAM,CAAI,CAAA,EAAA,MAAM,CAAC,IAAI,EAAE,CAAC;AACrG,YAAA,OAAO,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;AACrD,SAAC,CAAC,CAAC;AACH,QAAA,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;KAC9B;IAED,MAAM,CAAC,MAAuB,EAAE,EAAU,EAAA;AACxC,QAAA,MAAM,GAAG,GAAG,CAAA,EAAG,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,IAAI,GAAG,GAAG,GAAG,MAAM,CAAC,IAAI,GAAG,EAAE,CAAI,CAAA,EAAA,MAAM,CAAC,MAAM,CAAA,CAAA,EAAI,MAAM,CAAC,IAAI,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC;QAC1H,OAAO,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;KAC3C;IAED,OAAO,CAAC,MAAuB,EAAE,MAAY,EAAA;AAC3C,QAAA,IAAI,UAAU,GAAG,IAAI,UAAU,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,IAAI,CAAC,CAAC;AAE7H,QAAA,IAAI,MAAM,EAAE,IAAI,IAAI,MAAM,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;AAC3C,YAAA,MAAM,SAAS,GAAG,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,IAAS,KAAK,CAAA,EAAG,IAAI,CAAC,KAAK,CAAA,CAAA,EAAI,IAAI,CAAC,GAAG,CAAA,CAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACzF,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;SACpD;AAED,QAAA,MAAM,iBAAiB,GAAG,CAAC,OAAc,KAAY;AACnD,YAAA,OAAO,OAAO;AACX,iBAAA,GAAG,CAAC,CAAC,CAAM,KAAI;AACd,gBAAA,IAAI,CAAC,CAAC,OAAO,EAAE;AACb,oBAAA,OAAO,iBAAiB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;iBACrC;qBAAM;AACL,oBAAA,OAAO,CAAG,EAAA,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAI,CAAA,EAAA,CAAC,CAAC,KAAK,EAAE,CAAC;iBACnD;AACH,aAAC,CAAC;iBACD,IAAI,CAAC,GAAG,CAAC,CAAC;AACf,SAAC,CAAC;AAEF,QAAA,IAAI,YAAY,GAAG,MAAM,EAAE,YAAY,GAAG,MAAM,CAAC,YAAY,GAAG,EAAE,CAAC;AACnE,QAAA,IAAI,MAAM,EAAE,MAAM,EAAE;AAClB,YAAA,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AAC7B,YAAA,IAAI,MAAM,CAAC,OAAO,EAAE;;gBAGlB,MAAM,cAAc,GAAG,iBAAiB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACzD,gBAAA,OAAO,CAAC,GAAG,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC;;AAGhC,gBAAA,YAAY,GAAG,YAAY,GAAG,CAAG,EAAA,YAAY,CAAI,CAAA,EAAA,cAAc,CAAE,CAAA,GAAG,cAAc,CAAC;aACpF;SACF;;AAED,QAAA,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC1B,IAAI,YAAY,EAAE;YAChB,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;SACtD;QAED,SAAS,mBAAmB,CAAC,MAAW,EAAA;AACtC,YAAA,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;;AAEnB,gBAAA,OAAO,CAAG,EAAA,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAI,CAAA,EAAA,MAAM,CAAC,KAAK,EAAE,CAAC;aAClE;AAAM,iBAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE;gBACjC,OAAO;aACR;iBAAM;;AAEL,gBAAA,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,SAAc,KAAK,mBAAmB,CAAC,SAAS,CAAC,CAAC,CAAC;gBAC7F,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,KAAK,CAAC;gBACpC,OAAO,CAAA,EAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAM,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA,CAAA,EAAI,KAAK,CAAG,CAAA,CAAA,CAAC,EAAE,CAAC;aACpE;SACF;AAED,QAAA,IAAI,WAAW,GAAG,MAAM,EAAE,YAAY,GAAG,MAAM,CAAC,YAAY,GAAG,EAAE,CAAC;AAClE,QAAA,IAAI,MAAM,EAAE,MAAM,EAAE;AAClB,YAAA,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AAC7B,YAAA,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;;AAG/C,gBAAA,MAAM,cAAc,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;gBACnD,OAAO,CAAC,GAAG,CAAC,EAAE,cAAc,EAAE,cAAc,EAAE,CAAC,CAAC;;AAGhD,gBAAA,WAAW,GAAG,WAAW,GAAG,CAAG,EAAA,WAAW,CAAI,CAAA,EAAA,cAAc,CAAE,CAAA,GAAG,cAAc,CAAC;aACjF;SACF;;QAED,IAAI,WAAW,EAAE;YACf,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;SACpD;AACD,QAAA,OAAO,cAAc,CACnB,IAAI,CAAC,IAAI,CAAC,GAAG,CACX,CAAG,EAAA,IAAI,CAAC,OAAO,CAAA,EAAG,MAAM,CAAC,IAAI,GAAG,GAAG,GAAG,MAAM,CAAC,IAAI,GAAG,EAAE,CAAI,CAAA,EAAA,MAAM,CAAC,MAAM,CAAA,CAAA,EAAI,MAAM,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,GAAG,MAAM,CAAC,IAAI,CAChI,CAAA,EAAA,MAAM,EAAE,GAAG,GAAG,MAAM,CAAC,GAAG,GAAG,EAC7B,CAAA,CAAE,EACF,EAAE,MAAM,EAAE,UAAU,EAAE,CACvB,CACF,CAAC,IAAI,CAAC,CAAC,QAAQ,KAAI;YAClB,OAAO;gBACL,KAAK,EAAE,QAAQ,CAAC,UAAU;gBAC1B,KAAK,EAAE,QAAQ,CAAC,KAAK;aACtB,CAAC;AACJ,SAAC,CAAC,CAAC;KACJ;AAED,IAAA,SAAS,CAAC,MAAuB,EAAE,EAAW,EAAE,IAA6B,EAAA;AAC3E,QAAA,MAAM,GAAG,GAAG,CAAA,EAAG,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,IAAI,GAAG,GAAG,GAAG,MAAM,CAAC,IAAI,GAAG,EAAE,CAAI,CAAA,EAAA,MAAM,CAAC,MAAM,CAAA,CAAA,EAAI,MAAM,CAAC,IAAI,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC;AAC1H,QAAA,OAAO,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;KACjD;IAED,SAAS,CAAC,MAAuB,EAAE,EAAU,EAAA;AAC3C,QAAA,MAAM,GAAG,GAAG,CAAG,EAAA,IAAI,CAAC,OAAO,CAAA,EAAG,MAAM,CAAC,IAAI,GAAG,GAAG,GAAG,MAAM,CAAC,IAAI,GAAG,EAAE,IAAI,MAAM,CAAC,MAAM,CAAA,CAAA,EAAI,MAAM,CAAC,IAAI,CAAI,CAAA,EAAA,EAAE,EAAE,CAAC;QAC3G,OAAO,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;KAC9C;AAED,IAAA,QAAQ,CAAC,MAAuB,EAAA;;AAE9B,QAAA,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;KAChD;;IAGD,UAAU,CAAC,IAAU,EAAE,KAAa,EAAA;AAClC,QAAA,MAAM,GAAG,GAAG,CAAA,EAAG,IAAI,CAAC,OAAO,eAAe,CAAC;AAC3C,QAAA,MAAM,QAAQ,GAAa,IAAI,QAAQ,EAAE,CAAC;AAC1C,QAAA,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAC9B,QAAA,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;AAEhC,QAAA,OAAO,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAS,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC;KAC9D;;IAGD,mBAAmB,CAAC,KAAa,EAAE,KAAa,EAAA;QAC9C,MAAM,cAAc,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;AACzE,QAAA,OAAO,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;KACpC;;IAGD,QAAQ,CAAC,EAAU,EAAE,IAAY,EAAA;QAC/B,MAAM,GAAG,GAAG,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,cAAA,EAAiB,EAAE,CAAA,MAAA,EAAS,IAAI,CAAA,CAAE,CAAC;AAC9D,QAAA,OAAO,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;KACrE;;IAGD,YAAY,CAAC,EAAU,EAAE,IAAY,EAAA;QACnC,MAAM,GAAG,GAAG,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,cAAA,EAAiB,EAAE,CAAA,UAAA,EAAa,IAAI,CAAA,CAAE,CAAC;AAClE,QAAA,OAAO,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;KACrE;8GAtJU,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,cAFrB,MAAM,EAAA,CAAA,CAAA,EAAA;;2FAEP,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAHlC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;MCAY,wBAAwB,CAAA;AAInC,IAAA,WAAA,CAAoB,IAAgB,EAAA;QAAhB,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;AAH5B,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC;QACxC,IAAU,CAAA,UAAA,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,iCAAiC,CAAC;QACtE,IAAS,CAAA,SAAA,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,iBAAiB,CAAC;KACpB;IAGzC,OAAO,GAAA;AACL,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAmB,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAC1D,GAAG,CAAC,CAAC,QAAQ,KAAI;AACf,YAAA,OAAO,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC;SACrE,CAAC,CACH,CAAC;KACH;AAED,IAAA,GAAG,CAAC,WAA2B,EAAA;AAC7B,QAAA,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;KAC1B;;;;;;;;;;;;;;;AAiBO,IAAA,mBAAmB,CAAC,IAAS,EAAA;QACnC,OAAO;YACL,EAAE,EAAE,IAAI,CAAC,EAAE;AACX,YAAA,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,aAAa;AAChC,YAAA,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,cAAc;AACnC,YAAA,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,OAAO;YAChC,WAAW,EAAE,IAAI,CAAC,WAAW;AAC7B,YAAA,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EAAE,IAAI,CAAC,WAAW;;SAE9B,CAAC;KACH;8GA7CU,wBAAwB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;kHAAxB,wBAAwB,EAAA,CAAA,CAAA,EAAA;;2FAAxB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBADpC,UAAU;;;MC2DE,uBAAuB,CAAA;AAOlC,IAAA,WAAA,CAAoB,IAAgB,EAAA;QAAhB,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;AAN5B,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC;QACxC,IAAiB,CAAA,iBAAA,GAAoC,IAAI,CAAC;QAC1D,IAAY,CAAA,YAAA,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,gCAAgC,CAAC;QACvE,IAAe,CAAA,eAAA,GAAY,KAAK,CAAC;AACjC,QAAA,IAAA,CAAA,aAAa,GAAqD,IAAI,eAAe,CAAkC,IAAI,CAAC,CAAC;QAGnI,IAAI,CAAC,IAAI,EAAE,CAAC,SAAS,EAAE,CAAC;KACzB;IAEM,IAAI,GAAA;AACT,QAAA,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;AACzB,YAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;AAC5B,YAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA2B,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,CACpE,GAAG,CAAC,CAAC,QAAQ,KAAI;AACf,gBAAA,IAAI,CAAC,iBAAiB,GAAG,QAAQ,CAAC;gBAClC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;AAChD,gBAAA,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;aAC9B,CAAC,CACH,CAAC;SACH;aAAM;;YAEL,OAAO,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC,IAAI,CAC3C,MAAM,CAAC,CAAC,MAAM,KAAyC,MAAM,KAAK,IAAI,CAAC,EACvE,IAAI,CAAC,CAAC,CAAC;aACR,CAAC;SACH;KACF;IAED,SAAS,GAAA;AACP,QAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE;;AAE1B,YAAA,OAAO,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;SACnC;aAAM;;YAEL,OAAO,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC,IAAI,CAC3C,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,KAAK,IAAI,CAAC,EACnC,IAAI,CAAC,CAAC,CAAC;AACP,YAAA,SAAS,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,iBAAkB,CAAC,CAAC,CAC7C,CAAC;SACH;KACF;8GA1CU,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,cAFtB,MAAM,EAAA,CAAA,CAAA,EAAA;;2FAEP,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAHnC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;MC7DY,oBAAoB,CAAA;AAAjC,IAAA,WAAA,GAAA;AAEU,QAAA,IAAA,CAAA,IAAI,GAAiB;AAC3B,YAAA;AACE,gBAAA,IAAI,EAAE,6BAA6B;AACnC,gBAAA,KAAK,EAAE,aAAa;AACpB,gBAAA,KAAK,EAAE,KAAK;AACb,aAAA;AACD,YAAA;AACE,gBAAA,IAAI,EAAE,8BAA8B;AACpC,gBAAA,KAAK,EAAE,aAAa;AACpB,gBAAA,KAAK,EAAE,KAAK;AACb,aAAA;SACF,CAAA;KAKF;IAHC,OAAO,GAAA;AACL,QAAA,OAAO,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KACrC;AACF;;ACjBD;MAKa,yBAAyB,CAAA;AAKpC,IAAA,WAAA,CAAmD,UAA0B,EAAA;QAA1B,IAAU,CAAA,UAAA,GAAV,UAAU,CAAgB;QAHtE,IAAc,CAAA,cAAA,GAAqB,IAAI,CAAC;QACxC,IAAmB,CAAA,mBAAA,GAA0B,IAAI,CAAC;AAGvD,QAAA,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE;AAC7B,YAAA,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;SAClD;AAED,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,WAAW,CAAC;YACjC,GAAG,UAAU,CAAC,aAAa;YAC3B,SAAS,EAAE,IAAI,oBAAoB,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC;AACpE,SAAA,CAAC,CAAC;KACJ;IAED,cAAc,GAAA;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC;KACzB;AAED,IAAA,MAAM,oBAAoB,GAAA;AACxB,QAAA,MAAM,IAAI,CAAC,WAAW,CAAC,oBAAoB,EAAE,CAAC;KAC/C;AAtBU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,yBAAyB,kBAKhB,qBAAqB,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAL9B,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,yBAAyB,cAFxB,MAAM,EAAA,CAAA,CAAA,EAAA;;2FAEP,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAHrC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;0BAMc,MAAM;2BAAC,qBAAqB,CAAA;;;MCF9B,eAAe,CAAA;AAM1B,IAAA,WAAA,GAAA;AAHQ,QAAA,IAAA,CAAA,QAAQ,GAAa,MAAM,CAAC,QAAQ,CAAC,CAAC;AACtC,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC;QAG5C,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;QACvE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,cAAc,EAAE,CAAC;KAC7D;AAED,IAAA,IAAI,IAAI,GAAA;AACN,QAAA,OAAO,WAAW,CAAC;KACpB;IAED,MAAM,MAAM,CAAC,WAAmC,EAAA;AAC9C,QAAA,IAAI;YACF,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;AAErD,YAAA,IAAI,WAAW,IAAI,CAAC,WAAW,CAAC,OAAO,IAAI,WAAW,CAAC,OAAO,CAAC,IAAI,KAAK,WAAW,CAAC,QAAQ,EAAE;AAC5F,gBAAA,MAAM,IAAI,GAAY;AACpB,oBAAA,EAAE,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG;oBAC3B,IAAI,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,IAAI,WAAW,CAAC,QAAQ;AACtD,oBAAA,KAAK,EAAE,WAAW,CAAC,OAAO,CAAC,UAAU,IAAI,UAAU;AACnD,oBAAA,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,OAAO;iBACpC,CAAC;AACF,gBAAA,MAAM,WAAW,GAAG,WAAW,CAAC,YAAY,CAAC;AAC7C,gBAAA,MAAM,YAAY,GAAG,WAAW,CAAC,aAAa,IAAI,EAAE,CAAC;gBACrD,OAAO;AACL,oBAAA,OAAO,EAAE,IAAI;AACb,oBAAA,IAAI,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,YAAY,EAAE;iBAC1C,CAAC;aACH;AAED,YAAA,MAAM,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC;AACpC,YAAA,MAAM,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC;YAEzC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC;AACnD,gBAAA,gBAAgB,EAAE;oBAChB,QAAQ,EAAE,WAAW,CAAC,QAAQ;oBAC9B,QAAQ,EAAE,WAAW,CAAC,QAAQ;AAC/B,iBAAA;AACF,aAAA,CAAC,CAAC;YACH,IAAI,QAAQ,EAAE;AACZ,gBAAA,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC;AACjC,gBAAA,MAAM,IAAI,GAAY;oBACpB,EAAE,EAAE,OAAO,CAAC,GAAG;AACf,oBAAA,IAAI,EAAE,CAAA,EAAG,OAAO,CAAC,KAAK,CAAE,CAAA;AACxB,oBAAA,KAAK,EAAE,CAAA,EAAG,OAAO,CAAC,IAAI,CAAE,CAAA;AACxB,oBAAA,MAAM,EAAE,CAAA,EAAG,OAAO,CAAC,OAAO,CAAE,CAAA;iBAC7B,CAAC;AACF,gBAAA,MAAM,WAAW,GAAG,QAAQ,CAAC,YAAY,CAAC;AAC1C,gBAAA,MAAM,YAAY,GAAG,QAAQ,CAAC,aAAa,IAAI,EAAE,CAAC;gBAElD,OAAO;AACL,oBAAA,OAAO,EAAE,IAAI;AACb,oBAAA,IAAI,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,YAAY,EAAE;iBAC1C,CAAC;aACH;YAED,OAAO;AACL,gBAAA,OAAO,EAAE,KAAK;aACf,CAAC;SACH;QAAC,OAAO,KAAU,EAAE;YACnB,IAAI,KAAK,EAAE,OAAO;AAAE,gBAAA,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;;AAEnD,YAAA,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;SACrD;KACF;AAED,IAAA,MAAM,OAAO,GAAA;AACX,QAAA,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;AAC/B,QAAA,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC;AAC9B,QAAA,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC;AACnC,QAAA,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,CAAC;KAClC;IAED,MAAM,YAAY,CAAC,OAA0B,EAAA;AAC3C,QAAA,MAAM,IAAI,GAAY;AACpB,YAAA,EAAE,EAAE,GAAG;AACP,YAAA,IAAI,EAAE,OAAO;AACb,YAAA,KAAK,EAAE,OAAO;AACd,YAAA,MAAM,EAAE,kCAAkC;SAC3C,CAAC;AAEF,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;AAC/C,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAEnD,OAAO;AACL,YAAA,OAAO,EAAE,IAAI;AACb,YAAA,IAAI,EAAE,EAAE,WAAW,EAAE,YAAY,EAAE,eAAe,EAAE;SACrD,CAAC;KACH;IAEO,mBAAmB,GAAA;AACzB,QAAA,OAAO,mYAAmY,CAAC;KAC5Y;8GAhGU,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;kHAAf,eAAe,EAAA,CAAA,CAAA,EAAA;;2FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAD3B,UAAU;;;MCJE,uBAAuB,CAAA;AAIlC,IAAA,WAAA,CAAoB,IAAgB,EAAA;QAAhB,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;AAH5B,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC;QACxC,IAAY,CAAA,YAAA,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,gCAAgC,CAAC;KAEvC;AAExC,IAAA,OAAO,CAAC,OAA0B,EAAA;AAChC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAiB,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;;;;;;;;KAQvG;AAED,IAAA,KAAK,CAAC,OAAY,EAAA;AAChB,QAAA,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC;QAC9C,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,QAAQ,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC;AACnF,QAAA,OAAO,YAAY,CAAC;KACrB;8GArBU,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;kHAAvB,uBAAuB,EAAA,CAAA,CAAA,EAAA;;2FAAvB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBADnC,UAAU;;;MCEE,uBAAuB,CAAA;AAElC,IAAA,WAAA,CACU,kBAA6C,EAC7C,MAAc,EACd,KAAqB,EAAA;QAFrB,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAA2B;QAC7C,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;QACd,IAAK,CAAA,KAAA,GAAL,KAAK,CAAgB;AAJvB,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;KAM9C;IAEL,QAAQ,GAAA;QACN,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC;AACpD,QAAA,IAAI,WAAW,CAAC,UAAU,CAAC,EAAE;AAC3B,YAAA,MAAM,cAAc,GAAG;AACrB,gBAAA,EAAE,EAAE,WAAW,CAAC,UAAU,CAAC;AAC3B,gBAAA,IAAI,EAAE,WAAW,CAAC,YAAY,CAAC;AAC/B,gBAAA,KAAK,EAAE,WAAW,CAAC,aAAa,CAAC;aAClC,CAAC;AACF,YAAA,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;SAC/C;AACD,QAAA,IAAI,WAAW,CAAC,eAAe,CAAC,EAAE;AAChC,YAAA,MAAM,mBAAmB,GAAG;AAC1B,gBAAA,EAAE,EAAE,WAAW,CAAC,eAAe,CAAC;AAChC,gBAAA,IAAI,EAAE,WAAW,CAAC,iBAAiB,CAAC;AACpC,gBAAA,KAAK,EAAE,WAAW,CAAC,kBAAkB,CAAC;AACtC,gBAAA,OAAO,EAAE,GAAG;AACZ,gBAAA,WAAW,EAAE,WAAW,CAAC,aAAa,CAAC;aACxC,CAAC;AACF,YAAA,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAC;SACzD;AACD,QAAA,IAAI,CAAC,kBAAkB,CAAC,oBAAoB,EAAE,CAAC;KAChD;8GA9BU,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,yBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,cAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,uBAAuB,oDAFxB,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FAED,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAHnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,EAAE;AACb,iBAAA,CAAA;;;MCAY,mBAAmB,CAAA;AAI9B,IAAA,WAAA,CAAoB,IAAgB,EAAA;QAAhB,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;AAH5B,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC;QACxC,IAAa,CAAA,aAAA,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,uBAAuB,CAAC;QAC/D,IAAY,CAAA,YAAA,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,YAAY,CAAC;KAClB;IAEzC,OAAO,GAAA;AACL,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAmB,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;KAC7I;IAED,MAAM,GAAG,CAAC,MAAiB,EAAA;AACzB,QAAA,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;KAC1B;AAEO,IAAA,cAAc,CAAC,IAAS,EAAA;QAC9B,OAAO;YACL,EAAE,EAAE,IAAI,CAAC,EAAE;AACX,YAAA,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,aAAa;AAChC,YAAA,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,cAAc;;SAEpC,CAAC;KACH;8GArBU,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;kHAAnB,mBAAmB,EAAA,CAAA,CAAA,EAAA;;2FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAD/B,UAAU;;;ACOX,SAAS,aAAa,GAAA;AACpB,IAAA,MAAM,MAAM,GAAW,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,SAAS,EAAE,uBAAuB,EAAE,CAAC,CAAC;AAC7F,IAAA,OAAO,MAAM,CAAC;AAChB,CAAC;MAuCY,gBAAgB,CAAA;8GAAhB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;+GAAhB,gBAAgB,EAAA,OAAA,EAAA,CAAAC,IAAA,CAAA,aAAA,EAAAC,IAAA,CAAA,aAAA,CAAA,EAAA,CAAA,CAAA,EAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,EA5BhB,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,eAAe;AACxB,gBAAA,QAAQ,EAAE,sBAAsB;AACjC,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,QAAQ,EAAE,mBAAmB;AAC9B,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,sBAAsB;AAC/B,gBAAA,QAAQ,EAAE,wBAAwB;AACnC,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,qBAAqB;AAC9B,gBAAA,QAAQ,EAAE,uBAAuB;AAClC,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,kBAAkB;AAC3B,gBAAA,QAAQ,EAAE,oBAAoB;AAC/B,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,MAAM;AACf,gBAAA,KAAK,EAAE,IAAI;AACX,gBAAA,UAAU,EAAE,aAAa;AAC1B,aAAA;SACF,EAjCC,OAAA,EAAA,CAAA,aAAa,CAAC,OAAO,EAAE;YACvB,aAAa,CAAC,OAAO,CAAC;gBACpB,UAAU,EAAE,CAAC,eAAe,CAAC;aAC9B,CAAC,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAgCO,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBArC5B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE;wBACP,aAAa,CAAC,OAAO,EAAE;wBACvB,aAAa,CAAC,OAAO,CAAC;4BACpB,UAAU,EAAE,CAAC,eAAe,CAAC;yBAC9B,CAAC;AACH,qBAAA;AACD,oBAAA,OAAO,EAAE,EAAE;AACX,oBAAA,YAAY,EAAE,EAAE;AAChB,oBAAA,SAAS,EAAE;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,eAAe;AACxB,4BAAA,QAAQ,EAAE,sBAAsB;AACjC,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,QAAQ,EAAE,mBAAmB;AAC9B,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,sBAAsB;AAC/B,4BAAA,QAAQ,EAAE,wBAAwB;AACnC,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,qBAAqB;AAC9B,4BAAA,QAAQ,EAAE,uBAAuB;AAClC,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,kBAAkB;AAC3B,4BAAA,QAAQ,EAAE,oBAAoB;AAC/B,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,MAAM;AACf,4BAAA,KAAK,EAAE,IAAI;AACX,4BAAA,UAAU,EAAE,aAAa;AAC1B,yBAAA;AACF,qBAAA;AACF,iBAAA,CAAA;;;ACnDD,MAAM,cAAc,GAAG,KAAK,CAAC;AAE7B,SAAS,cAAc,CAAC,IAAS,EAAE,SAAc,EAAA;IAC/C,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,GAAG,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;AACrE,IAAA,MAAM,SAAS,GAAG,OAAO,QAAQ,KAAK,QAAQ,GAAG,QAAQ,CAAC,WAAW,EAAE,GAAG,QAAQ,CAAC;IACnF,MAAM,cAAc,GAAG,OAAO,SAAS,CAAC,KAAK,KAAK,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,WAAW,EAAE,GAAG,SAAS,CAAC,KAAK,CAAC;;IAG7G,IAAI,cAAc,EAAE;AAClB,QAAA,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;AACrC,QAAA,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;AACtC,QAAA,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,cAAc,CAAC,CAAC;KACjD;AAED,IAAA,IAAI,MAAe,CAAC;IACpB,MAAM,cAAc,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,KAAK,KAAK,EAAE,GAAG,cAAc,GAAG,SAAS,CAAC;AAErG,IAAA,QAAQ,SAAS,CAAC,QAAQ,CAAC,IAAI;AAC7B,QAAA,KAAK,OAAO;AACV,YAAA,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;AACjD,YAAA,IAAI,cAAc;AAAE,gBAAA,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;YAC/D,MAAM;AACR,QAAA,KAAK,UAAU;YACb,MAAM,GAAG,CAAC,OAAO,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;AAClD,YAAA,IAAI,cAAc;AAAE,gBAAA,OAAO,CAAC,GAAG,CAAC,yBAAyB,EAAE,MAAM,CAAC,CAAC;YACnE,MAAM;AACR,QAAA,KAAK,aAAa;AAChB,YAAA,MAAM,GAAG,EAAE,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;AAC5C,YAAA,IAAI,cAAc;AAAE,gBAAA,OAAO,CAAC,GAAG,CAAC,4BAA4B,EAAE,MAAM,CAAC,CAAC;YACtE,MAAM;AACR,QAAA,KAAK,UAAU;AACb,YAAA,MAAM,GAAG,EAAE,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;AAC5C,YAAA,IAAI,cAAc;AAAE,gBAAA,OAAO,CAAC,GAAG,CAAC,yBAAyB,EAAE,MAAM,CAAC,CAAC;YACnE,MAAM;AACR,QAAA,KAAK,oBAAoB;AACvB,YAAA,MAAM,GAAG,GAAG,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;AAC7C,YAAA,IAAI,cAAc;AAAE,gBAAA,OAAO,CAAC,GAAG,CAAC,qCAAqC,EAAE,MAAM,CAAC,CAAC;YAC/E,MAAM;AACR,QAAA,KAAK,iBAAiB;AACpB,YAAA,MAAM,GAAG,GAAG,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;AAC7C,YAAA,IAAI,cAAc;AAAE,gBAAA,OAAO,CAAC,GAAG,CAAC,kCAAkC,EAAE,MAAM,CAAC,CAAC;YAC5E,MAAM;AACR,QAAA,KAAK,UAAU;AACb,YAAA,IAAI,OAAO,cAAc,KAAK,QAAQ,EAAE;AACtC,gBAAA,MAAM,GAAG,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;aACnD;AAAM,iBAAA,IAAI,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE;gBACxC,MAAM,GAAG,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,CAAC,EAAE,cAAc,CAAC,CAAC;aAC5F;iBAAM;gBACL,MAAM,GAAG,KAAK,CAAC;aAChB;AACD,YAAA,IAAI,cAAc;AAAE,gBAAA,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,MAAM,CAAC,CAAC;YAClE,MAAM;AACR,QAAA,KAAK,aAAa;AAChB,YAAA,IAAI,OAAO,cAAc,KAAK,QAAQ,EAAE;gBACtC,MAAM,GAAG,CAAC,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;aACpD;AAAM,iBAAA,IAAI,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE;gBACxC,MAAM,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,CAAC,EAAE,cAAc,CAAC,CAAC;aAC7F;iBAAM;gBACL,MAAM,GAAG,KAAK,CAAC;aAChB;AACD,YAAA,IAAI,cAAc;AAAE,gBAAA,OAAO,CAAC,GAAG,CAAC,4BAA4B,EAAE,MAAM,CAAC,CAAC;YACtE,MAAM;AACR,QAAA,KAAK,YAAY;AACf,YAAA,MAAM,GAAG,OAAO,cAAc,KAAK,QAAQ,IAAI,UAAU,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;AAC1F,YAAA,IAAI,cAAc;AAAE,gBAAA,OAAO,CAAC,GAAG,CAAC,2BAA2B,EAAE,MAAM,CAAC,CAAC;YACrE,MAAM;AACR,QAAA,KAAK,UAAU;AACb,YAAA,MAAM,GAAG,OAAO,cAAc,KAAK,QAAQ,IAAI,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;AACxF,YAAA,IAAI,cAAc;AAAE,gBAAA,OAAO,CAAC,GAAG,CAAC,yBAAyB,EAAE,MAAM,CAAC,CAAC;YACnE,MAAM;AACR,QAAA,KAAK,SAAS;AACZ,YAAA,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;AACjC,YAAA,IAAI,cAAc;AAAE,gBAAA,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,MAAM,CAAC,CAAC;YAClE,MAAM;AACR,QAAA,KAAK,QAAQ;AACX,YAAA,MAAM,GAAG,KAAK,CAAC,cAAc,CAAC,CAAC;AAC/B,YAAA,IAAI,cAAc;AAAE,gBAAA,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAC;YACjE,MAAM;AACR,QAAA,KAAK,YAAY;AACf,YAAA,MAAM,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;AAClC,YAAA,IAAI,cAAc;AAAE,gBAAA,OAAO,CAAC,GAAG,CAAC,4BAA4B,EAAE,MAAM,CAAC,CAAC;YACtE,MAAM;AACR,QAAA,KAAK,SAAS;YACZ,MAAM,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,cAAc,IAAI,SAAS,CAAC,KAAK,CAAC,IAAI,IAAI,cAAc,IAAI,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;AAClH,YAAA,IAAI,cAAc;AAAE,gBAAA,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAC;YACjE,MAAM;AACR,QAAA;YACE,MAAM,GAAG,IAAI,CAAC;AACd,YAAA,IAAI,cAAc;AAAE,gBAAA,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;KACnE;AAED,IAAA,OAAO,MAAM,CAAC;AAChB,CAAC;AAKK,SAAU,gBAAgB,CAC9B,SAAgB,EAChB,OAAoC,EACpC,QAAsB,KAAK,EAAA;AAE3B,IAAA,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,EAAE;AAC7B,QAAA,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,KAAI;AAC/B,YAAA,IAAI,KAAK,KAAK,KAAK,EAAE;AACnB,gBAAA,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,KAAI;AACzB,oBAAA,OAAO,CAAC,CAAC,OAAO,GAAG,gBAAgB,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AACvG,iBAAC,CAAC,CAAC;aACJ;iBAAM;;AAEL,gBAAA,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAI;AACxB,oBAAA,OAAO,CAAC,CAAC,OAAO,GAAG,gBAAgB,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AACvG,iBAAC,CAAC,CAAC;aACJ;AACH,SAAC,CAAC,CAAC;KACJ;SAAM;AACL,QAAA,OAAO,SAAS,CAAC;KAClB;AACH,CAAC;AAGe,SAAA,cAAc,CAAC,SAAc,EAAE,KAA+C,EAAA;IAC5F,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;AAC7B,QAAA,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC;AAC7C,QAAA,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;QAC3C,OAAO,OAAO,CAAC,SAAS,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;KACnD;;AAAM,QAAA,OAAO,SAAS,CAAC;AAC1B;;MCzHa,oBAAoB,CAAA;AAC/B,IAAA,WAAA,CAAoB,cAAqC,EAAA;QAArC,IAAc,CAAA,cAAA,GAAd,cAAc,CAAuB;KAAK;IAE9D,SAAS,CAAC,MAAuB,EAAE,UAAe,EAAA;AAChD,QAAA,OAAO,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;KACvE;IAED,UAAU,CAAC,MAAuB,EAAE,UAAe,EAAA;AACjD,QAAA,OAAO,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;KAChE;AAED,IAAA,MAAM,MAAM,CAAC,MAAuB,EAAE,EAAU,EAAA;QAC9C,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AAC/C,QAAA,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;KACpD;AAED,IAAA,MAAM,OAAO,CAAC,MAAuB,EAAE,MAAY,EAAA;QACjD,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACpD,QAAA,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACtE,MAAM,WAAW,GAAG,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;AACzD,QAAA,MAAM,aAAa,GAAG,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AAC7E,QAAA,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,KAAI;AAC7B,YAAA,OAAO,CAAC;AACN,gBAAA,KAAK,EAAE,MAAM,GAAG,aAAa,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,GAAG,aAAa;AAC3G,gBAAA,KAAK,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AAClC,aAAA,CAAC,CAAC;AACL,SAAC,CAAC,CAAC;KACJ;AAED,IAAA,SAAS,CAAC,MAAuB,EAAE,EAAU,EAAE,IAA4B,EAAA;AACzE,QAAA,OAAO,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;KAC7D;IAED,SAAS,CAAC,MAAuB,EAAE,EAAU,EAAA;AAC3C,QAAA,OAAO,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;KACvD;AAED,IAAA,QAAQ,CAAC,MAAuB,EAAA;AAC9B,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,KAAI;AACvC,YAAA,OAAO,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AACzC,SAAC,CAAC,CAAC;KACJ;;IAGD,UAAU,CAAC,IAAU,EAAE,KAAa,EAAA;AAClC,QAAA,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,KAAI;;YAE7B,MAAM,MAAM,GAAG,CAAgB,aAAA,EAAA,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;YACzE,MAAM,UAAU,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC/C,YAAA,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,IAAI,CAAC,MAAK;gBACnE,OAAO,CAAC,MAAM,CAAC,CAAC;AAClB,aAAC,CAAC,CAAC;AACL,SAAC,CAAC,CAAC;KACJ;;IAGD,mBAAmB,CAAC,KAAa,EAAE,KAAa,EAAA;QAC9C,MAAM,cAAc,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;AACzE,QAAA,OAAO,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;KACpC;;IAGD,QAAQ,CAAC,EAAU,EAAE,IAAY,EAAA;QAC/B,OAAO,IAAI,OAAO,CAAC,OAAO,OAAO,EAAE,MAAM,KAAI;AAC3C,YAAA,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;AACjE,YAAA,IAAI,UAAU,IAAI,UAAU,CAAC,IAAI,EAAE;AACjC,gBAAA,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;aAC1B;iBAAM;gBACL,MAAM,CAAC,gBAAgB,CAAC,CAAC;aAC1B;AACH,SAAC,CAAC,CAAC;KACJ;;IAGD,YAAY,CAAC,EAAU,EAAE,IAAY,EAAA;QACnC,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;KAChC;8GA5EU,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAD,IAAA,CAAA,qBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAApB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,cAFnB,MAAM,EAAA,CAAA,CAAA,EAAA;;2FAEP,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAHhC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;ACRD;;AAEG;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@acorex/modules",
3
- "version": "18.0.4",
3
+ "version": "18.0.5",
4
4
  "peerDependencies": {
5
5
  "@angular/common": ">=18.0.0",
6
6
  "@angular/core": ">=18.0.0",