@dcupl/common 1.8.2-beta.2 → 1.8.2-beta.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser/common.umd.js +1 -1
- package/dist/browser/common.umd.js.map +1 -1
- package/dist/esm/analytics.controller.js +50 -60
- package/dist/esm/analytics.controller.js.map +1 -1
- package/dist/esm/cache.controller.js +18 -18
- package/dist/esm/cache.controller.js.map +1 -1
- package/dist/esm/changeDetection.js +46 -53
- package/dist/esm/changeDetection.js.map +1 -1
- package/dist/esm/computeSuggestions.js +26 -64
- package/dist/esm/computeSuggestions.js.map +1 -1
- package/dist/esm/dependency-graph.js +61 -177
- package/dist/esm/dependency-graph.js.map +1 -1
- package/dist/esm/getAggregation.js +78 -182
- package/dist/esm/getAggregation.js.map +1 -1
- package/dist/esm/getFacets.js +38 -106
- package/dist/esm/getFacets.js.map +1 -1
- package/dist/esm/helper.js +27 -52
- package/dist/esm/helper.js.map +1 -1
- package/dist/esm/indices.controller.js +61 -129
- package/dist/esm/indices.controller.js.map +1 -1
- package/dist/esm/object-hash.js +8 -8
- package/dist/esm/object-hash.js.map +1 -1
- package/dist/esm/performance.js +6 -6
- package/dist/esm/performance.js.map +1 -1
- package/dist/esm/pivot.js +77 -234
- package/dist/esm/pivot.js.map +1 -1
- package/dist/esm/property-parser.js +21 -72
- package/dist/esm/property-parser.js.map +1 -1
- package/dist/esm/query-builder.js +67 -133
- package/dist/esm/query-builder.js.map +1 -1
- package/dist/esm/query.helper.js +21 -21
- package/dist/esm/query.helper.js.map +1 -1
- package/dist/esm/queryData.js +119 -222
- package/dist/esm/queryData.js.map +1 -1
- package/dist/esm/script.controller.js +35 -60
- package/dist/esm/script.controller.js.map +1 -1
- package/dist/esm/template-parser.js +6 -6
- package/dist/esm/template-parser.js.map +1 -1
- package/dist/esm/types/model.types.js +3 -3
- package/dist/esm/types/model.types.js.map +1 -1
- package/dist/esm/types/query.types.js +1 -1
- package/dist/esm/types/query.types.js.map +1 -1
- package/dist/node/index.cjs.js +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -1,48 +1,10 @@
|
|
|
1
|
-
var __values = (this && this.__values) || function(o) {
|
|
2
|
-
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
|
|
3
|
-
if (m) return m.call(o);
|
|
4
|
-
if (o && typeof o.length === "number") return {
|
|
5
|
-
next: function () {
|
|
6
|
-
if (o && i >= o.length) o = void 0;
|
|
7
|
-
return { value: o && o[i++], done: !o };
|
|
8
|
-
}
|
|
9
|
-
};
|
|
10
|
-
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
11
|
-
};
|
|
12
|
-
var __read = (this && this.__read) || function (o, n) {
|
|
13
|
-
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
14
|
-
if (!m) return o;
|
|
15
|
-
var i = m.call(o), r, ar = [], e;
|
|
16
|
-
try {
|
|
17
|
-
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
18
|
-
}
|
|
19
|
-
catch (error) { e = { error: error }; }
|
|
20
|
-
finally {
|
|
21
|
-
try {
|
|
22
|
-
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
23
|
-
}
|
|
24
|
-
finally { if (e) throw e.error; }
|
|
25
|
-
}
|
|
26
|
-
return ar;
|
|
27
|
-
};
|
|
28
1
|
function getScalingFactor(numbers) {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
var decimalPart = num.toString().split('.')[1];
|
|
35
|
-
if (decimalPart) {
|
|
36
|
-
maxDecimalPlaces = Math.max(maxDecimalPlaces, decimalPart.length);
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
41
|
-
finally {
|
|
42
|
-
try {
|
|
43
|
-
if (numbers_1_1 && !numbers_1_1.done && (_a = numbers_1.return)) _a.call(numbers_1);
|
|
2
|
+
let maxDecimalPlaces = 0;
|
|
3
|
+
for (let num of numbers) {
|
|
4
|
+
const decimalPart = num.toString().split('.')[1];
|
|
5
|
+
if (decimalPart) {
|
|
6
|
+
maxDecimalPlaces = Math.max(maxDecimalPlaces, decimalPart.length);
|
|
44
7
|
}
|
|
45
|
-
finally { if (e_1) throw e_1.error; }
|
|
46
8
|
}
|
|
47
9
|
return Math.pow(10, maxDecimalPlaces);
|
|
48
10
|
}
|
|
@@ -52,31 +14,31 @@ function add(a, b, factor) {
|
|
|
52
14
|
function divide(a, b, factor) {
|
|
53
15
|
return (a * factor) / (b * factor);
|
|
54
16
|
}
|
|
55
|
-
export
|
|
17
|
+
export const getAggregation = (options, relevantData, indexMap, attribute) => {
|
|
56
18
|
if (!attribute) {
|
|
57
19
|
throw new Error('Attribute not found');
|
|
58
20
|
}
|
|
59
|
-
|
|
21
|
+
const aggregation = {
|
|
60
22
|
attribute: attribute,
|
|
61
23
|
types: options.types,
|
|
62
24
|
};
|
|
63
|
-
|
|
25
|
+
let numberAgg;
|
|
64
26
|
if (aggregation.types.includes('sum') || aggregation.types.includes('avg') || aggregation.types.includes('count')) {
|
|
65
27
|
numberAgg = getNumberAggregation(attribute, relevantData);
|
|
66
28
|
}
|
|
67
|
-
|
|
29
|
+
let minMax;
|
|
68
30
|
if (aggregation.types.includes('min') || aggregation.types.includes('max')) {
|
|
69
31
|
minMax = getMinMax(options.attribute, relevantData);
|
|
70
32
|
}
|
|
71
|
-
options.types.forEach(
|
|
33
|
+
options.types.forEach((type) => {
|
|
72
34
|
if (type === 'sum') {
|
|
73
|
-
aggregation.sum = numberAgg
|
|
35
|
+
aggregation.sum = numberAgg?.sum;
|
|
74
36
|
}
|
|
75
37
|
else if (type === 'avg') {
|
|
76
|
-
aggregation.avg = numberAgg
|
|
38
|
+
aggregation.avg = numberAgg?.average;
|
|
77
39
|
}
|
|
78
40
|
else if (type === 'count') {
|
|
79
|
-
aggregation.count = numberAgg
|
|
41
|
+
aggregation.count = numberAgg?.count;
|
|
80
42
|
}
|
|
81
43
|
else if (type === 'min') {
|
|
82
44
|
aggregation.min = minMax && minMax[0];
|
|
@@ -93,182 +55,116 @@ export var getAggregation = function (options, relevantData, indexMap, attribute
|
|
|
93
55
|
});
|
|
94
56
|
return aggregation;
|
|
95
57
|
};
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
minV = value;
|
|
107
|
-
if (maxV === undefined || value > maxV)
|
|
108
|
-
maxV = value;
|
|
109
|
-
}
|
|
58
|
+
const getMinMax = (attribute, data) => {
|
|
59
|
+
let minV = undefined;
|
|
60
|
+
let maxV = undefined;
|
|
61
|
+
for (const item of data.values()) {
|
|
62
|
+
if (item) {
|
|
63
|
+
const value = item[attribute];
|
|
64
|
+
if (minV === undefined || value < minV)
|
|
65
|
+
minV = value;
|
|
66
|
+
if (maxV === undefined || value > maxV)
|
|
67
|
+
maxV = value;
|
|
110
68
|
}
|
|
111
69
|
}
|
|
112
|
-
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
113
|
-
finally {
|
|
114
|
-
try {
|
|
115
|
-
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
116
|
-
}
|
|
117
|
-
finally { if (e_2) throw e_2.error; }
|
|
118
|
-
}
|
|
119
70
|
if (minV === undefined || maxV === undefined) {
|
|
120
71
|
return undefined;
|
|
121
72
|
}
|
|
122
73
|
return [minV, maxV];
|
|
123
74
|
};
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
var values = [];
|
|
128
|
-
(_d = (_c = options.groupOptions) === null || _c === void 0 ? void 0 : _c.groups) === null || _d === void 0 ? void 0 : _d.forEach(function (group) {
|
|
75
|
+
const getGroups = (options, data) => {
|
|
76
|
+
const values = [];
|
|
77
|
+
options.groupOptions?.groups?.forEach((group) => {
|
|
129
78
|
values.push({
|
|
130
79
|
option: group,
|
|
131
80
|
count: 0,
|
|
132
81
|
keys: [],
|
|
133
82
|
});
|
|
134
83
|
});
|
|
135
|
-
|
|
84
|
+
const notFound = {
|
|
136
85
|
option: { value: ['$dcupl_not_found'] },
|
|
137
86
|
count: 0,
|
|
138
87
|
keys: [],
|
|
139
88
|
};
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
typeof group.option.to !== 'undefined' &&
|
|
151
|
-
group.option.to > relevantEntry)) {
|
|
152
|
-
group.count++;
|
|
153
|
-
group.keys.push(item.key);
|
|
154
|
-
}
|
|
155
|
-
else {
|
|
156
|
-
if ((_e = options === null || options === void 0 ? void 0 : options.groupOptions) === null || _e === void 0 ? void 0 : _e.calculateNotFound) {
|
|
157
|
-
notFound.count++;
|
|
158
|
-
notFound.keys.push(item.key);
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
}
|
|
89
|
+
for (const item of data.values()) {
|
|
90
|
+
const relevantEntry = item[options.attribute];
|
|
91
|
+
for (const group of values) {
|
|
92
|
+
if ((typeof group.option.value !== 'undefined' && group.option.value.includes(relevantEntry)) ||
|
|
93
|
+
(typeof group.option.from !== 'undefined' &&
|
|
94
|
+
group.option.from < relevantEntry &&
|
|
95
|
+
typeof group.option.to !== 'undefined' &&
|
|
96
|
+
group.option.to > relevantEntry)) {
|
|
97
|
+
group.count++;
|
|
98
|
+
group.keys.push(item.key);
|
|
162
99
|
}
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
100
|
+
else {
|
|
101
|
+
if (options?.groupOptions?.calculateNotFound) {
|
|
102
|
+
notFound.count++;
|
|
103
|
+
notFound.keys.push(item.key);
|
|
167
104
|
}
|
|
168
|
-
finally { if (e_4) throw e_4.error; }
|
|
169
105
|
}
|
|
170
106
|
}
|
|
171
107
|
}
|
|
172
|
-
|
|
173
|
-
finally {
|
|
174
|
-
try {
|
|
175
|
-
if (_h && !_h.done && (_a = _g.return)) _a.call(_g);
|
|
176
|
-
}
|
|
177
|
-
finally { if (e_3) throw e_3.error; }
|
|
178
|
-
}
|
|
179
|
-
if ((_f = options === null || options === void 0 ? void 0 : options.groupOptions) === null || _f === void 0 ? void 0 : _f.calculateNotFound) {
|
|
108
|
+
if (options?.groupOptions?.calculateNotFound) {
|
|
180
109
|
values.push(notFound);
|
|
181
110
|
}
|
|
182
111
|
return values;
|
|
183
112
|
};
|
|
184
|
-
|
|
185
|
-
var e_5, _a, e_6, _b;
|
|
113
|
+
const getNumberAggregation = (attribute, data) => {
|
|
186
114
|
// let sum = new Decimal(0);
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
if (typeof val === 'number') {
|
|
200
|
-
// sum = sum.add(val);
|
|
201
|
-
sum = add(sum, val, getScalingFactor([sum, val]));
|
|
202
|
-
count++;
|
|
203
|
-
}
|
|
204
|
-
}
|
|
205
|
-
}
|
|
206
|
-
catch (e_6_1) { e_6 = { error: e_6_1 }; }
|
|
207
|
-
finally {
|
|
208
|
-
try {
|
|
209
|
-
if (value_1_1 && !value_1_1.done && (_b = value_1.return)) _b.call(value_1);
|
|
210
|
-
}
|
|
211
|
-
finally { if (e_6) throw e_6.error; }
|
|
115
|
+
let sum = 0;
|
|
116
|
+
let count = 0;
|
|
117
|
+
for (const item of data.values()) {
|
|
118
|
+
if (!item)
|
|
119
|
+
continue;
|
|
120
|
+
const value = item[attribute];
|
|
121
|
+
if (Array.isArray(value)) {
|
|
122
|
+
for (const val of value) {
|
|
123
|
+
if (typeof val === 'number') {
|
|
124
|
+
// sum = sum.add(val);
|
|
125
|
+
sum = add(sum, val, getScalingFactor([sum, val]));
|
|
126
|
+
count++;
|
|
212
127
|
}
|
|
213
128
|
}
|
|
214
|
-
else if (typeof value === 'number') {
|
|
215
|
-
// sum = sum.add(value);
|
|
216
|
-
sum = add(sum, value, getScalingFactor([sum, value]));
|
|
217
|
-
count++;
|
|
218
|
-
}
|
|
219
129
|
}
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
|
|
130
|
+
else if (typeof value === 'number') {
|
|
131
|
+
// sum = sum.add(value);
|
|
132
|
+
sum = add(sum, value, getScalingFactor([sum, value]));
|
|
133
|
+
count++;
|
|
225
134
|
}
|
|
226
|
-
finally { if (e_5) throw e_5.error; }
|
|
227
135
|
}
|
|
228
136
|
if (count === 0) {
|
|
229
137
|
return undefined;
|
|
230
138
|
}
|
|
231
139
|
// const average = sum.dividedBy(count).toNumber();
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
average
|
|
140
|
+
const average = divide(sum, count, getScalingFactor([sum, count]));
|
|
141
|
+
const agg = {
|
|
142
|
+
average,
|
|
235
143
|
count: data.size,
|
|
236
144
|
sum: sum,
|
|
237
145
|
};
|
|
238
146
|
return agg;
|
|
239
147
|
};
|
|
240
|
-
export
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
148
|
+
export const getDistinct = (options, data, indexMap) => {
|
|
149
|
+
const values = [];
|
|
150
|
+
for (const [attributeValue, itemKeys] of indexMap) {
|
|
151
|
+
if (options.excludeUndefineds && typeof attributeValue === 'undefined') {
|
|
152
|
+
continue;
|
|
153
|
+
}
|
|
154
|
+
if (itemKeys.find((key) => data.has(key))) {
|
|
155
|
+
const value = {
|
|
156
|
+
value: attributeValue,
|
|
157
|
+
count: itemKeys.length,
|
|
158
|
+
};
|
|
159
|
+
if (!options.distinctOptions?.skipKeys) {
|
|
160
|
+
value.keys = itemKeys;
|
|
249
161
|
}
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
count: itemKeys.length,
|
|
254
|
-
};
|
|
255
|
-
if (!((_b = options.distinctOptions) === null || _b === void 0 ? void 0 : _b.skipKeys)) {
|
|
256
|
-
value.keys = itemKeys;
|
|
257
|
-
}
|
|
258
|
-
values.push(value);
|
|
259
|
-
if (((_c = options.distinctOptions) === null || _c === void 0 ? void 0 : _c.limit) && values.length >= options.distinctOptions.limit) {
|
|
260
|
-
break;
|
|
261
|
-
}
|
|
162
|
+
values.push(value);
|
|
163
|
+
if (options.distinctOptions?.limit && values.length >= options.distinctOptions.limit) {
|
|
164
|
+
break;
|
|
262
165
|
}
|
|
263
166
|
}
|
|
264
167
|
}
|
|
265
|
-
catch (e_7_1) { e_7 = { error: e_7_1 }; }
|
|
266
|
-
finally {
|
|
267
|
-
try {
|
|
268
|
-
if (indexMap_1_1 && !indexMap_1_1.done && (_a = indexMap_1.return)) _a.call(indexMap_1);
|
|
269
|
-
}
|
|
270
|
-
finally { if (e_7) throw e_7.error; }
|
|
271
|
-
}
|
|
272
168
|
return values;
|
|
273
169
|
};
|
|
274
170
|
//# sourceMappingURL=getAggregation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getAggregation.js","sourceRoot":"","sources":["../../src/getAggregation.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"getAggregation.js","sourceRoot":"","sources":["../../src/getAggregation.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/getFacets.js
CHANGED
|
@@ -1,63 +1,16 @@
|
|
|
1
|
-
var __read = (this && this.__read) || function (o, n) {
|
|
2
|
-
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
3
|
-
if (!m) return o;
|
|
4
|
-
var i = m.call(o), r, ar = [], e;
|
|
5
|
-
try {
|
|
6
|
-
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
7
|
-
}
|
|
8
|
-
catch (error) { e = { error: error }; }
|
|
9
|
-
finally {
|
|
10
|
-
try {
|
|
11
|
-
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
12
|
-
}
|
|
13
|
-
finally { if (e) throw e.error; }
|
|
14
|
-
}
|
|
15
|
-
return ar;
|
|
16
|
-
};
|
|
17
|
-
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
18
|
-
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
19
|
-
if (ar || !(i in from)) {
|
|
20
|
-
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
21
|
-
ar[i] = from[i];
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
return to.concat(ar || Array.prototype.slice.call(from));
|
|
25
|
-
};
|
|
26
|
-
var __values = (this && this.__values) || function(o) {
|
|
27
|
-
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
|
|
28
|
-
if (m) return m.call(o);
|
|
29
|
-
if (o && typeof o.length === "number") return {
|
|
30
|
-
next: function () {
|
|
31
|
-
if (o && i >= o.length) o = void 0;
|
|
32
|
-
return { value: o && o[i++], done: !o };
|
|
33
|
-
}
|
|
34
|
-
};
|
|
35
|
-
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
36
|
-
};
|
|
37
1
|
import { DcuplQueryBuilder } from './query-builder';
|
|
38
2
|
import { cloneDeep } from 'lodash-es';
|
|
39
|
-
|
|
3
|
+
const queryBuilder = new DcuplQueryBuilder();
|
|
40
4
|
export function getFacets(modelData, remoteModelData, options, query, attribute, modelIndexMap, queryManager) {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
var indexMap = modelIndexMap.get(attribute);
|
|
5
|
+
const filterItemEntries = [];
|
|
6
|
+
const queryWithoutCurrentFilter = queryBuilder.removeQuery({ groupKey: attribute }, cloneDeep(query));
|
|
7
|
+
const currentFilteredData = queryManager.queryData(modelData, queryWithoutCurrentFilter, false, modelIndexMap);
|
|
8
|
+
const remoteModelDataKeys = remoteModelData ? [...remoteModelData?.keys()] : [];
|
|
9
|
+
const validFacetKeys = new Set(remoteModelDataKeys);
|
|
10
|
+
const indexMap = modelIndexMap.get(attribute);
|
|
48
11
|
if (!options.excludeUnresolved) {
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
var key = _e.value;
|
|
52
|
-
validFacetKeys.add(key);
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
56
|
-
finally {
|
|
57
|
-
try {
|
|
58
|
-
if (_e && !_e.done && (_a = _d.return)) _a.call(_d);
|
|
59
|
-
}
|
|
60
|
-
finally { if (e_1) throw e_1.error; }
|
|
12
|
+
for (const key of indexMap.keys()) {
|
|
13
|
+
validFacetKeys.add(key);
|
|
61
14
|
}
|
|
62
15
|
}
|
|
63
16
|
if (options.excludeUndefineds) {
|
|
@@ -66,65 +19,44 @@ export function getFacets(modelData, remoteModelData, options, query, attribute,
|
|
|
66
19
|
else {
|
|
67
20
|
validFacetKeys.add(undefined);
|
|
68
21
|
}
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
if (value) {
|
|
79
|
-
result.set(key, value);
|
|
80
|
-
if (!(options === null || options === void 0 ? void 0 : options.calculateFacets)) {
|
|
81
|
-
break;
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
catch (e_3_1) { e_3 = { error: e_3_1 }; }
|
|
87
|
-
finally {
|
|
88
|
-
try {
|
|
89
|
-
if (indexedValueKeys_1_1 && !indexedValueKeys_1_1.done && (_c = indexedValueKeys_1.return)) _c.call(indexedValueKeys_1);
|
|
22
|
+
for (const validFacetKey of validFacetKeys.values()) {
|
|
23
|
+
const result = new Map();
|
|
24
|
+
const indexedValueKeys = indexMap.get(validFacetKey) || [];
|
|
25
|
+
for (const key of indexedValueKeys) {
|
|
26
|
+
const value = currentFilteredData.get(key);
|
|
27
|
+
if (value) {
|
|
28
|
+
result.set(key, value);
|
|
29
|
+
if (!options?.calculateFacets) {
|
|
30
|
+
break;
|
|
90
31
|
}
|
|
91
|
-
finally { if (e_3) throw e_3.error; }
|
|
92
32
|
}
|
|
93
|
-
var facetEntry = {
|
|
94
|
-
key: String(validFacetKey),
|
|
95
|
-
value: validFacetKey,
|
|
96
|
-
selected: isFilterItemEntrySelected(attribute, validFacetKey, query),
|
|
97
|
-
enabled: result.size > 0,
|
|
98
|
-
size: result.size,
|
|
99
|
-
entry: remoteModelData.get(validFacetKey),
|
|
100
|
-
resultKeys: Array.from(result.keys()),
|
|
101
|
-
};
|
|
102
|
-
if ((options === null || options === void 0 ? void 0 : options.excludeZeros) && facetEntry.size === 0) {
|
|
103
|
-
continue;
|
|
104
|
-
}
|
|
105
|
-
if ((options === null || options === void 0 ? void 0 : options.count) && filterItemEntries.length === (options === null || options === void 0 ? void 0 : options.count)) {
|
|
106
|
-
return filterItemEntries;
|
|
107
|
-
}
|
|
108
|
-
filterItemEntries.push(facetEntry);
|
|
109
33
|
}
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
34
|
+
const facetEntry = {
|
|
35
|
+
key: String(validFacetKey),
|
|
36
|
+
value: validFacetKey,
|
|
37
|
+
selected: isFilterItemEntrySelected(attribute, validFacetKey, query),
|
|
38
|
+
enabled: result.size > 0,
|
|
39
|
+
size: result.size,
|
|
40
|
+
entry: remoteModelData.get(validFacetKey),
|
|
41
|
+
resultKeys: Array.from(result.keys()),
|
|
42
|
+
};
|
|
43
|
+
if (options?.excludeZeros && facetEntry.size === 0) {
|
|
44
|
+
continue;
|
|
45
|
+
}
|
|
46
|
+
if (options?.count && filterItemEntries.length === options?.count) {
|
|
47
|
+
return filterItemEntries;
|
|
115
48
|
}
|
|
116
|
-
|
|
49
|
+
filterItemEntries.push(facetEntry);
|
|
117
50
|
}
|
|
118
51
|
return filterItemEntries;
|
|
119
52
|
}
|
|
120
|
-
|
|
121
|
-
|
|
53
|
+
const isFilterItemEntrySelected = (groupKey, facetKey, query) => {
|
|
54
|
+
const idx = query.queries.findIndex((query) => queryBuilder.isQueryGroup(query) && query.groupKey === groupKey);
|
|
122
55
|
if (idx > -1) {
|
|
123
|
-
|
|
124
|
-
return !!queryGroup.queries.find(
|
|
125
|
-
var _a;
|
|
56
|
+
const queryGroup = query.queries[idx];
|
|
57
|
+
return !!queryGroup.queries.find((query) => {
|
|
126
58
|
if (queryBuilder.isQuery(query)) {
|
|
127
|
-
|
|
59
|
+
const key = query.value?.key || query.value;
|
|
128
60
|
return query.attribute === groupKey && key === facetKey;
|
|
129
61
|
}
|
|
130
62
|
return false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getFacets.js","sourceRoot":"","sources":["../../src/getFacets.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"getFacets.js","sourceRoot":"","sources":["../../src/getFacets.ts"],"names":[],"mappings":"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"}
|