@provoly/dashboard 1.1.7 → 1.1.8

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,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2xpYi9jb3JlL21vZGVsL2ZpbHRlci5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgRmlsdGVyIHtcbiAgaWQ6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICB0eXBlOiBzdHJpbmc7XG4gIGF0dHJpYnV0ZXM6IHsgaWQ6IHN0cmluZzsgY3VzdG9tSWQ/OiBzdHJpbmc7IHRlY2huaWNhbE5hbWU6IHN0cmluZzsgbGFiZWw6IHN0cmluZzsgZGF0YXNvdXJjZTogc3RyaW5nIH1bXTtcbiAgb3BlcmF0b3I/OiBzdHJpbmc7XG4gIHZhbHVlPzogc3RyaW5nIHwgbnVtYmVyO1xuICBwb3NzaWJsZVZhbHVlcz86IHN0cmluZzsgLy8gb25seSB1c2VkIGluIGxpc3QtZmlsdGVyXG4gIGhhc0RhdGVSYW5nZT86IGJvb2xlYW47XG4gIGxpbWl0PzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZpbHRlckNvbnRleHQge1xuICBhdHRyaWJ1dGU6IHN0cmluZztcbiAgb3BlcmF0b3I6IHN0cmluZztcbiAgdmFsdWU6IHN0cmluZyB8IG51bWJlciB8IHN0cmluZ1tdIHwgbnVtYmVyW10gfCB1bmRlZmluZWQ7XG59XG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2xpYi9jb3JlL21vZGVsL2ZpbHRlci5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgRmlsdGVyIHtcbiAgaWQ6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICB0eXBlOiBzdHJpbmc7XG4gIGF0dHJpYnV0ZXM6IHsgaWQ6IHN0cmluZzsgY3VzdG9tSWQ/OiBzdHJpbmc7IHRlY2huaWNhbE5hbWU6IHN0cmluZzsgbGFiZWw6IHN0cmluZzsgZGF0YXNvdXJjZTogc3RyaW5nIH1bXTtcbiAgb3BlcmF0b3I/OiBzdHJpbmc7XG4gIHZhbHVlPzogc3RyaW5nIHwgbnVtYmVyIHwgc3RyaW5nW10gfCBudW1iZXJbXTtcbiAgcG9zc2libGVWYWx1ZXM/OiBzdHJpbmc7IC8vIG9ubHkgdXNlZCBpbiBsaXN0LWZpbHRlclxuICBoYXNEYXRlUmFuZ2U/OiBib29sZWFuO1xuICBsaW1pdD86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGaWx0ZXJDb250ZXh0IHtcbiAgYXR0cmlidXRlOiBzdHJpbmc7XG4gIG9wZXJhdG9yOiBzdHJpbmc7XG4gIHZhbHVlOiBzdHJpbmcgfCBudW1iZXIgfCBzdHJpbmdbXSB8IG51bWJlcltdIHwgdW5kZWZpbmVkO1xufVxuIl19
@@ -126,52 +126,57 @@ export class AggregationUtils {
126
126
  static doesItemValuePassFilter(item, attribute, operator, filterValue) {
127
127
  let value = AggregationUtils.getValueFromAttribute(item, attribute)?.value;
128
128
  let date1, date2;
129
- switch (operator) {
130
- case 'EQUALS':
131
- return value === filterValue;
132
- case 'NOT_EQUALS':
133
- return value !== filterValue;
134
- case 'CONTAINS':
135
- return value.includes(filterValue);
136
- case 'START_WITH':
137
- return value.startsWith(filterValue);
138
- case 'END_WITH':
139
- return value.endsWith(filterValue);
140
- case 'GREATER_THAN':
141
- if (typeof filterValue === 'number') {
142
- return value > filterValue;
143
- }
144
- else if (typeof filterValue === 'string') {
145
- return new Date(value) > new Date(filterValue);
146
- }
147
- else {
148
- return false;
149
- }
150
- case 'LOWER_THAN':
151
- if (typeof filterValue === 'number') {
152
- return value < filterValue;
153
- }
154
- else if (typeof filterValue === 'string') {
155
- return new Date(value) < new Date(filterValue);
156
- }
157
- else {
158
- return false;
159
- }
160
- case 'INSIDE':
161
- [date1, date2] = [
162
- new Date(filterValue.split(',')[0]),
163
- new Date(filterValue.split(',')[1])
164
- ];
165
- return new Date(value) > new Date(date1) && new Date(value) < new Date(date2);
166
- case 'OUTSIDE':
167
- [date1, date2] = [
168
- new Date(filterValue.split(',')[0]),
169
- new Date(filterValue.split(',')[1])
170
- ];
171
- return new Date(value) < new Date(date1) && new Date(value) > new Date(date2);
172
- default:
173
- return true;
174
- }
129
+ let filterPossibleValues = Array.isArray(filterValue) ? filterValue : [filterValue];
130
+ return filterPossibleValues
131
+ .map((possibleFilterValue) => {
132
+ switch (operator) {
133
+ case 'EQUALS':
134
+ return value === filterValue;
135
+ case 'NOT_EQUALS':
136
+ return value !== filterValue;
137
+ case 'CONTAINS':
138
+ return value.includes(filterValue);
139
+ case 'START_WITH':
140
+ return value.startsWith(filterValue);
141
+ case 'END_WITH':
142
+ return value.endsWith(filterValue);
143
+ case 'GREATER_THAN':
144
+ if (typeof filterValue === 'number') {
145
+ return value > filterValue;
146
+ }
147
+ else if (typeof filterValue === 'string') {
148
+ return new Date(value) > new Date(filterValue);
149
+ }
150
+ else {
151
+ return false;
152
+ }
153
+ case 'LOWER_THAN':
154
+ if (typeof filterValue === 'number') {
155
+ return value < filterValue;
156
+ }
157
+ else if (typeof filterValue === 'string') {
158
+ return new Date(value) < new Date(filterValue);
159
+ }
160
+ else {
161
+ return false;
162
+ }
163
+ case 'INSIDE':
164
+ [date1, date2] = [
165
+ new Date(filterValue.split(',')[0]),
166
+ new Date(filterValue.split(',')[1])
167
+ ];
168
+ return new Date(value) > new Date(date1) && new Date(value) < new Date(date2);
169
+ case 'OUTSIDE':
170
+ [date1, date2] = [
171
+ new Date(filterValue.split(',')[0]),
172
+ new Date(filterValue.split(',')[1])
173
+ ];
174
+ return new Date(value) < new Date(date1) && new Date(value) > new Date(date2);
175
+ default:
176
+ return true;
177
+ }
178
+ })
179
+ .reduce((p, c) => p || c);
175
180
  }
176
181
  }
177
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdncmVnYXRpb24tdXRpbHMuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9saWIvY29yZS9zdG9yZS9hZ2dyZWdhdGlvbi9mcm9udGVuZC1hZ2dyZWdhdGlvbi9hZ2dyZWdhdGlvbi11dGlscy5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUVWLE1BQU0sMkRBQTJELENBQUM7QUFJbkUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUc3RCxNQUFNLE9BQU8sZ0JBQWdCO0lBQzNCLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFnQixFQUFFLE9BQXFDLEVBQUUsSUFBNkI7UUFDNUcsT0FBTyxPQUFPO2FBQ1gsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUM7YUFDcEYsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxDQUFDO0lBQ2xDLENBQUM7SUFFRCxNQUFNLENBQUMsMkJBQTJCLENBQUMsV0FBcUIsRUFBRSxVQUFzQjtRQUM5RSxPQUFPLFdBQVc7YUFDZixNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sSUFBSSxVQUFVLENBQUM7YUFDeEMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDbkMsTUFBTSxDQUFDLENB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QUFDLENBQUM7WUFDaEY7Z0JBQ0UsT0FBTyxJQUFJLENBQUM7UUFDaEIsQ0FBQztJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYXJ0QWdncmVnYXRlZFdpZGdldE9wdGlvbnMsXG4gIE9wZXJhdGlvbixcbiAgVGltZUludGVydmFsXG59IGZyb20gJy4uLy4uLy4uL21vZGVsL3dpZGdldC1hZ2dyZWdhdGVkLWNoYXJ0LW1hbmlmZXN0LmludGVyZmFjZSc7XG5pbXBvcnQgeyBDbGFzcyB9IGZyb20gJy4uLy4uL2NsYXNzL2NsYXNzLmludGVyZmFjZSc7XG5pbXBvcnQgeyBJdGVtLCBWYWx1ZVR5cGUgfSBmcm9tICcuLi8uLi8uLi9tb2RlbC9pdGVtLmludGVyZmFjZSc7XG5pbXBvcnQgeyBSZXN1bHRTZXRzIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWwvcmVzdWx0LXNldC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUmVzdWx0c2V0VXRpbHMgfSBmcm9tICcuLi8uLi8uLi8uLi9kYXNoYm9hcmQvcmVzdWx0c2V0LXV0aWxzJztcbmltcG9ydCB7IEl0ZW1VdGlscyB9IGZyb20gJy4uLy4uLy4uLy4uL2Rhc2hib2FyZC9pdGVtLXV0aWxzJztcbmltcG9ydCB7IEZpbHRlciB9IGZyb20gJy4uLy4uLy4uL21vZGVsL2ZpbHRlci5pbnRlcmZhY2UnO1xuXG5leHBvcnQgY2xhc3MgQWdncmVnYXRpb25VdGlscyB7XG4gIHN0YXRpYyBnZXRBeGlzQXR0cmlidXRlKGNsYXNzZXM6IENsYXNzW10sIG9wdGlvbnM6IENoYXJ0QWdncmVnYXRlZFdpZGdldE9wdGlvbnMsIGF4aXM6ICdvcmRpbmF0ZScgfCAnYWJzY2lzc2EnKSB7XG4gICAgcmV0dXJuIGNsYXNzZXNcbiAgICAgIC5tYXAoKGNsYXp6KSA9PiBjbGF6ei5hdHRyaWJ1dGVzLmZpbmQoKGF0dHIpID0+IGF0dHIuaWQgPT09IG9wdGlvbnNbYXhpc10uYXR0cmlidXRlKSlcbiAgICAgIC5maW5kKChhdHRyKSA9PiAhIWF0dHIpPy5uYW1lO1xuICB9XG5cbiAgc3RhdGljIGdldENoYXJ0RGF0YXNvdXJjZVJlc3VsdFNldChkYXRhc291cmNlczogc3RyaW5nW10sIHJlc3VsdFNldHM6IFJlc3VsdFNldHMpIHtcbiAgICByZXR1cm4gZGF0YXNvdXJjZXNcbiAgICAgIC5maWx0ZXIoKHJzTmFtZSkgPT4gcnNOYW1lIGluIHJlc3VsdFNldHMpXG4gICAgICAubWFwKChyc05hbWUpID0+IHJlc3VsdFNldHNbcnNOYW1lXSlcbiAgICAgIC5yZWR1Y2UoKHJzMSwgcnMyKSA9PiBSZXN1bHRzZXRVdGlscy5tZXJnZVJlc3VsdFNldHMocnMxLCByczIpLCB7XG4gICAgICAgIGl0ZW1zOiB7fSxcbiAgICAgICAgcmVsYXRpb25zOiBbXSxcbiAgICAgICAgbWVyZ2VkOiBkYXRhc291cmNlcy5maWx0ZXIoKHJzTmFtZSkgPT4gcnNOYW1lIGluIHJlc3VsdFNldHMpLmxlbmd0aFxuICAgICAgfSk7XG4gIH1cblxuICBzdGF0aWMgZ2V0QWdncmVnYXRlZFZhbHVlKFxuICAgIG9wZXJhdGlvbjogT3BlcmF0aW9uLFxuICAgIGdyb3VwZWRJdGVtczogeyBba2V5OiBzdHJpbmcgfCBudW1iZXJdOiBJdGVtW10gfSxcbiAgICBhYnNjaXNzYUF0dHJpYnV0ZToga2V5b2YgdHlwZW9mIGdyb3VwZWRJdGVtcyxcbiAgICBvcmRpbmF0ZUF0dHJpYnV0ZTogc3RyaW5nXG4gICk6IG51bWJlciB8IFZhbHVlVHlwZSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0QWdncmVnYXRlZFZhbHVlRm9yT3BlcmF0aW9uKFxuICAgICAgb3BlcmF0aW9uLFxuICAgICAgZ3JvdXBlZEl0ZW1zW2Fic2Npc3NhQXR0cmlidXRlXS5tYXAoKGl0ZW0pID0+IHRoaXMuZ2V0VmFsdWVGcm9tQXR0cmlidXRlKGl0ZW0sIG9yZGluYXRlQXR0cmlidXRlKS52YWx1ZSBhcyBudW1iZXIpXG4gICAgKTtcbiAgfVxuXG4gIHN0YXRpYyBnZXRWYWx1ZUZyb21BdHRyaWJ1dGUoaXRlbTogSXRlbSwgYXR0cmlidXRlOiBzdHJpbmcpIHtcbiAgICBsZXQgdmFsdWUgPSBJdGVtVXRpbHMuZ2V0QXR0cmlidXRlVmFsdWUoaXRlbSwgYXR0cmlidXRlKTtcbiAgICByZXR1cm4gQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZVswXSA6IHZhbHVlO1xuICB9XG5cbiAgc3RhdGljIGdldEFnZ3JlZ2F0ZWRWYWx1ZUZvck9wZXJhdGlvbihvcGVyYXRpb246IE9wZXJhdGlvbiwgdmFsdWVzOiBudW1iZXJbXSk6IG51bWJlciB8IFZhbHVlVHlwZSB7XG4gICAgc3dpdGNoIChvcGVyYXRpb24pIHtcbiAgICAgIGNhc2UgT3BlcmF0aW9uLkNPVU5UOlxuICAgICAgICByZXR1cm4gdmFsdWVzLmxlbmd0aDtcbiAgICAgIGNhc2UgT3BlcmF0aW9uLlNVTTpcbiAgICAgICAgcmV0dXJuIHZhbHVlcy5yZWR1Y2UoKGFjYywgdmFsKSA9PiBhY2MgKyB2YWwsIDApO1xuICAgICAgY2FzZSBPcGVyYXRpb24uRElTVElOQ1Q6XG4gICAgICAgIHJldHVybiBbLi4ubmV3IFNldCh2YWx1ZXMpXS5sZW5ndGg7XG4gICAgICBjYXNlIE9wZXJhdGlvbi5BVkVSQUdFOlxuICAgICAgICByZXR1cm4gdmFsdWVzLnJlZHVjZSgoYWNjLCB2YWwpID0+IGFjYyArIHZhbCwgMCkgLyB2YWx1ZXMubGVuZ3RoO1xuICAgICAgY2FzZSBPcGVyYXRpb24uTUVESUFOOlxuICAgICAgICByZXR1cm4gdGhpcy5nZXRRdWFydGlsZSh2YWx1ZXMsIDAuNSk7XG4gICAgICBjYXNlIE9wZXJhdGlvbi5RMTpcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0UXVhcnRpbGUodmFsdWVzLCAwLjI1KTtcbiAgICAgIGNhc2UgT3BlcmF0aW9uLlEzOlxuICAgICAgICByZXR1cm4gdGhpcy5nZXRRdWFydGlsZSh2YWx1ZXMsIDAuNzUpO1xuICAgICAgY2FzZSBPcGVyYXRpb24uTUlOOlxuICAgICAgICByZXR1cm4gTWF0aC5taW4oLi4udmFsdWVzKTtcbiAgICAgIGNhc2UgT3BlcmF0aW9uLk1BWDpcbiAgICAgICAgcmV0dXJuIE1hdGgubWF4KC4uLnZhbHVlcyk7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gLTE7XG4gICAgfVxuICB9XG5cbiAgc3RhdGljIGdldFF1YXJ0aWxlKHZhbHVlczogbnVtYmVyW10sIHE6IG51bWJlcikge1xuICAgIGlmICh2YWx1ZXMubGVuZ3RoID09PSAwKSByZXR1cm4gMDtcbiAgICB2YWx1ZXMuc29ydCgoYTogbnVtYmVyLCBiOiBudW1iZXIpID0+IGEgLSBiKTtcblxuICAgIGxldCBwb3MgPSAodmFsdWVzLmxlbmd0aCAtIDEpICogcTtcbiAgICBpZiAocG9zICUgMSA9PT0gMCkge1xuICAgICAgcmV0dXJuIHZhbHVlc1twb3NdO1xuICAgIH1cblxuICAgIHBvcyA9IE1hdGguZmxvb3IocG9zKTtcbiAgICByZXR1cm4gdmFsdWVzW3BvcyArIDFdICE9PSB1bmRlZmluZWQgPyAodmFsdWVzW3Bvc10gKyB2YWx1ZXNbcG9zICsgMV0pIC8gMiA6IHZhbHVlc1twb3NdO1xuICB9XG5cbiAgc3RhdGljIGZvcm1hdEJ5TGltaXQoXG4gICAgZGF0YTogeyBrZXk6IFZhbHVlVHlwZTsgdmFsdWU6IFZhbHVlVHlwZSB9W10sXG4gICAgaW50ZXJ2YWw6IG51bWJlciB8IFRpbWVJbnRlcnZhbCxcbiAgICBvcGVyYXRpb246IE9wZXJhdGlvblxuICApIHtcbiAgICByZXR1cm4gdHlwZW9mIGludGVydmFsID09PSAnbnVtYmVyJyA/IGRhdGEgOiB0aGlzLmZvcm1hdERhdGFCeVRpbWVMaW1pdChkYXRhLCBpbnRlcnZhbCwgb3BlcmF0aW9uKTtcbiAgfVxuXG4gIHN0YXRpYyBmb3JtYXREYXRhQnlUaW1lTGltaXQoXG4gICAgZGF0YTogeyBrZXk6IFZhbHVlVHlwZTsgdmFsdWU6IFZhbHVlVHlwZSB9W10sXG4gICAgaW50ZXJ2YWw6IFRpbWVJbnRlcnZhbCxcbiAgICBvcGVyYXRpb246IE9wZXJhdGlvblxuICApIHtcbiAgICBsZXQgZGlzdGluY3RWYWx1ZXM6IHsga2V5OiBWYWx1ZVR5cGU7IHZhbHVlczogVmFsdWVUeXBlW10gfVtdID0gW107XG4gICAgZGF0YVxuICAgICAgLm1hcCgob2JqKSA9PiAoeyAuLi5vYmosIGtleTogdGhpcy5nZXRLZXlWYWx1ZUZvclRpbWVJbnRlcnZhbChvYmoua2V5LCBpbnRlcnZhbCkgfSkpXG4gICAgICAuZm9yRWFjaCgob2JqKSA9PiB7XG4gICAgICAgIGNvbnN0IGlzTm90RGlzdGluY3QgPSBkaXN0aW5jdFZhbHVlcy5maW5kKChkaXN0aW5jdCkgPT4gb2JqLmtleSA9PT0gZGlzdGluY3Qua2V5KTtcbiAgICAgICAgaWYgKCEhaXNOb3REaXN0aW5jdCkge1xuICAgICAgICAgIGlzTm90RGlzdGluY3QudmFsdWVzLnB1c2gob2JqLnZhbHVlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBkaXN0aW5jdFZhbHVlcy5wdXNoKHsga2V5OiBvYmoua2V5LCB2YWx1ZXM6IFtdIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICByZXR1cm4gZGlzdGluY3RWYWx1ZXMubWFwKChvYmopID0+ICh7XG4gICAgICAuLi5vYmosXG4gICAgICB2YWx1ZTogQWdncmVnYXRpb25VdGlscy5nZXRBZ2dyZWdhdGVkVmFsdWVGb3JPcGVyYXRpb24ob3BlcmF0aW9uLCBvYmoudmFsdWVzIGFzIG51bWJlcltdKVxuICAgIH0pKTtcbiAgfVxuXG4gIHN0YXRpYyBnZXRLZXlWYWx1ZUZvclRpbWVJbnRlcnZhbChrZXk6IFZhbHVlVHlwZSwgaW50ZXJ2YWw6IFRpbWVJbnRlcnZhbCk6IHN0cmluZyB7XG4gICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKGtleSBhcyBzdHJpbmcpO1xuICAgIHN3aXRjaCAoaW50ZXJ2YWwpIHtcbiAgICAgIGNhc2UgJ3NlY29uZCc6XG4gICAgICAgIHJldHVybiBuZXcgRGF0ZShcbiAgICAgICAgICBkYXRlLmdldEZ1bGxZZWFyKCksXG4gICAgICAgICAgZGF0ZS5nZXRNb250aCgpLFxuICAgICAgICAgIGRhdGUuZ2V0RGF0ZSgpLFxuICAgICAgICAgIGRhdGUuZ2V0SG91cnMoKSxcbiAgICAgICAgICBkYXRlLmdldE1pbnV0ZXMoKSxcbiAgICAgICAgICBkYXRlLmdldFNlY29uZHMoKVxuICAgICAgICApLnRvSVNPU3RyaW5nKCk7XG4gICAgICBjYXNlICdtaW51dGUnOlxuICAgICAgICByZXR1cm4gbmV3IERhdGUoXG4gICAgICAgICAgZGF0ZS5nZXRGdWxsWWVhcigpLFxuICAgICAgICAgIGRhdGUuZ2V0TW9udGgoKSxcbiAgICAgICAgICBkYXRlLmdldERhdGUoKSxcbiAgICAgICAgICBkYXRlLmdldEhvdXJzKCksXG4gICAgICAgICAgZGF0ZS5nZXRNaW51dGVzKClcbiAgICAgICAgKS50b0lTT1N0cmluZygpO1xuICAgICAgY2FzZSAnaG91cic6XG4gICAgICAgIHJldHVybiBuZXcgRGF0ZShkYXRlLmdldEZ1bGxZZWFyKCksIGRhdGUuZ2V0TW9udGgoKSwgZGF0ZS5nZXREYXRlKCksIGRhdGUuZ2V0SG91cnMoKSkudG9JU09TdHJpbmcoKTtcbiAgICAgIGNhc2UgJ2RheSc6XG4gICAgICAgIHJldHVybiBuZXcgRGF0ZShkYXRlLmdldEZ1bGxZZWFyKCksIGRhdGUuZ2V0TW9udGgoKSwgZGF0ZS5nZXREYXRlKCkpLnRvSVNPU3RyaW5nKCk7XG4gICAgICBjYXNlICd3ZWVrJzpcbiAgICAgICAgY29uc3QgZGF5c1RvU3VidHJhY3QgPSAoNyArIGRhdGUuZ2V0VVRDRGF5KCkpICUgNztcbiAgICAgICAgZGF0ZS5zZXRVVENEYXRlKGRhdGUuZ2V0VVRDRGF0ZSgpIC0gZGF5c1RvU3VidHJhY3QpO1xuICAgICAgICByZXR1cm4gZGF0ZS50b0lTT1N0cmluZygpO1xuICAgICAgY2FzZSAncXVhcnRlcic6XG4gICAgICAgIGNvbnN0IHF1YXJ0ZXJTdGFydE1vbnRocyA9IFswLCAzLCA2LCA5XTsgLy8gSmFudWFyeSwgQXByaWwsIEp1bHksIE9jdG9iZXJcbiAgICAgICAgY29uc3QgcXVhcnRlciA9IE1hdGguZmxvb3IoZGF0ZS5nZXRVVENNb250aCgpIC8gMyk7XG4gICAgICAgIGNvbnN0IHllYXIgPSBkYXRlLmdldFVUQ0Z1bGxZZWFyKCk7XG5cbiAgICAgICAgY29uc3Qgc3RhcnRPZlF1YXJ0ZXIgPSBuZXcgRGF0ZShEYXRlLlVUQyh5ZWFyLCBxdWFydGVyU3RhcnRNb250aHNbcXVhcnRlcl0sIDEsIDAsIDAsIDAsIDApKTtcbiAgICAgICAgcmV0dXJuIHN0YXJ0T2ZRdWFydGVyLnRvSVNPU3RyaW5nKCk7XG4gICAgICBjYXNlICd5ZWFyJzpcbiAgICAgICAgcmV0dXJuIG5ldyBEYXRlKG5ldyBEYXRlKGtleSBhcyBzdHJpbmcpLmdldEZ1bGxZZWFyKCksIDAsIDEpLnRvSVNPU3RyaW5nKCk7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gZGF0ZS50b0lTT1N0cmluZygpO1xuICAgIH1cbiAgfVxuXG4gIHN0YXRpYyBmaWx0ZXJJdGVtcyhpdGVtczogSXRlbVtdLCBmaWx0ZXJzOiBGaWx0ZXJbXSkge1xuICAgIGxldCBmaWx0ZXJzQnlBdHRyaWJ1dGUgPSBmaWx0ZXJzXG4gICAgICAubWFwKChmaWx0ZXIpID0+XG4gICAgICAgIGZpbHRlci5hdHRyaWJ1dGVzLm1hcCgoYXR0cmlidXRlKSA9PiAoe1xuICAgICAgICAgIC4uLmZpbHRlcixcbiAgICAgICAgICBhdHRyaWJ1dGU6IGF0dHJpYnV0ZS5pZCxcbiAgICAgICAgICBhdHRyaWJ1dGVzOiB1bmRlZmluZWRcbiAgICAgICAgfSkpXG4gICAgICApXG4gICAgICAuZmxhdCgpO1xuXG4gICAgcmV0dXJuIGZpbHRlcnMubGVuZ3RoID4gMFxuICAgICAgPyBbXG4gICAgICAgICAgLi4ubmV3IFNldChcbiAgICAgICAgICAgIGZpbHRlcnNCeUF0dHJpYnV0ZVxuICAgICAgICAgICAgICAubWFwKChmaWx0ZXIpID0+XG4gICAgICAgICAgICAgICAgaXRlbXMuZmlsdGVyKChpdGVtKSA9PlxuICAgICAgICAgICAgICAgICAgdGhpcy5kb2VzSXRlbVZhbHVlUGFzc0ZpbHRlcihpdGVtLCBmaWx0ZXIuYXR0cmlidXRlLCBmaWx0ZXIub3BlcmF0b3IsIGZpbHRlci52YWx1ZSlcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgLmZsYXQoKVxuICAgICAgICAgIClcbiAgICAgICAgXVxuICAgICAgOiBpdGVtcztcbiAgfVxuXG4gIHN0YXRpYyBkb2VzSXRlbVZhbHVlUGFzc0ZpbHRlcihcbiAgICBpdGVtOiBJdGVtLFxuICAgIGF0dHJpYnV0ZTogc3RyaW5nLFxuICAgIG9wZXJhdG9yOiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gICAgZmlsdGVyVmFsdWU6IHN0cmluZyB8IG51bWJlciB8IHVuZGVmaW5lZFxuICApOiBib29sZWFuIHtcbiAgICBsZXQgdmFsdWUgPSBBZ2dyZWdhdGlvblV0aWxzLmdldFZhbHVlRnJvbUF0dHJpYnV0ZShpdGVtLCBhdHRyaWJ1dGUpPy52YWx1ZSBhcyBzdHJpbmcgfCBudW1iZXI7XG4gICAgbGV0IGRhdGUxOiBEYXRlLCBkYXRlMjogRGF0ZTtcblxuICAgIHN3aXRjaCAob3BlcmF0b3IpIHtcbiAgICAgIGNhc2UgJ0VRVUFMUyc6XG4gICAgICAgIHJldHVybiB2YWx1ZSA9PT0gZmlsdGVyVmFsdWU7XG4gICAgICBjYXNlICdOT1RfRVFVQUxTJzpcbiAgICAgICAgcmV0dXJuIHZhbHVlICE9PSBmaWx0ZXJWYWx1ZTtcbiAgICAgIGNhc2UgJ0NPTlRBSU5TJzpcbiAgICAgICAgcmV0dXJuICh2YWx1ZSBhcyBzdHJpbmcpLmluY2x1ZGVzKGZpbHRlclZhbHVlIGFzIHN0cmluZyk7XG4gICAgICBjYXNlICdTVEFSVF9XSVRIJzpcbiAgICAgICAgcmV0dXJuICh2YWx1ZSBhcyBzdHJpbmcpLnN0YXJ0c1dpdGgoZmlsdGVyVmFsdWUgYXMgc3RyaW5nKTtcbiAgICAgIGNhc2UgJ0VORF9XSVRIJzpcbiAgICAgICAgcmV0dXJuICh2YWx1ZSBhcyBzdHJpbmcpLmVuZHNXaXRoKGZpbHRlclZhbHVlIGFzIHN0cmluZyk7XG4gICAgICBjYXNlICdHUkVBVEVSX1RIQU4nOlxuICAgICAgICBpZiAodHlwZW9mIGZpbHRlclZhbHVlID09PSAnbnVtYmVyJykge1xuICAgICAgICAgIHJldHVybiAodmFsdWUgYXMgbnVtYmVyKSA+IGZpbHRlclZhbHVlO1xuICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBmaWx0ZXJWYWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICByZXR1cm4gbmV3IERhdGUodmFsdWUpID4gbmV3IERhdGUoZmlsdGVyVmFsdWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgY2FzZSAnTE9XRVJfVEhBTic6XG4gICAgICAgIGlmICh0eXBlb2YgZmlsdGVyVmFsdWUgPT09ICdudW1iZXInKSB7XG4gICAgICAgICAgcmV0dXJuICh2YWx1ZSBhcyBudW1iZXIpIDwgZmlsdGVyVmFsdWU7XG4gICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGZpbHRlclZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgICAgIHJldHVybiBuZXcgRGF0ZSh2YWx1ZSkgPCBuZXcgRGF0ZShmaWx0ZXJWYWx1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICBjYXNlICdJTlNJREUnOlxuICAgICAgICBbZGF0ZTEsIGRhdGUyXSA9IFtcbiAgICAgICAgICBuZXcgRGF0ZSgoZmlsdGVyVmFsdWUgYXMgc3RyaW5nKS5zcGxpdCgnLCcpWzBdKSxcbiAgICAgICAgICBuZXcgRGF0ZSgoZmlsdGVyVmFsdWUgYXMgc3RyaW5nKS5zcGxpdCgnLCcpWzFdKVxuICAgICAgICBdO1xuICAgICAgICByZXR1cm4gbmV3IERhdGUodmFsdWUpID4gbmV3IERhdGUoZGF0ZTEpICYmIG5ldyBEYXRlKHZhbHVlKSA8IG5ldyBEYXRlKGRhdGUyKTtcbiAgICAgIGNhc2UgJ09VVFNJREUnOlxuICAgICAgICBbZGF0ZTEsIGRhdGUyXSA9IFtcbiAgICAgICAgICBuZXcgRGF0ZSgoZmlsdGVyVmFsdWUgYXMgc3RyaW5nKS5zcGxpdCgnLCcpWzBdKSxcbiAgICAgICAgICBuZXcgRGF0ZSgoZmlsdGVyVmFsdWUgYXMgc3RyaW5nKS5zcGxpdCgnLCcpWzFdKVxuICAgICAgICBdO1xuICAgICAgICByZXR1cm4gbmV3IERhdGUodmFsdWUpIDwgbmV3IERhdGUoZGF0ZTEpICYmIG5ldyBEYXRlKHZhbHVlKSA+IG5ldyBEYXRlKGRhdGUyKTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxufVxuIl19
182
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdncmVnYXRpb24tdXRpbHMuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9saWIvY29yZS9zdG9yZS9hZ2dyZWdhdGlvbi9mcm9udGVuZC1hZ2dyZWdhdGlvbi9hZ2dyZWdhdGlvbi11dGlscy5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUVWLE1BQU0sMkRBQTJELENBQUM7QUFJbkUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUc3RCxNQUFNLE9BQU8sZ0JBQWdCO0lBQzNCLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFnQixFQUFFLE9BQXFDLEVBQUUsSUFBNkI7UUFDNUcsT0FBTyxPQUFPO2FBQ1gsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUM7YUFDcEYsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxDQUFDO0lBQ2xDLENBQUM7SUFFRCxNQUFNLENBQUMsMkJBQTJCLENBQUMsV0FBcUIsRUFBRSxVQUFzQjtRQUM5RSxPQUFPLFdBQVc7YUFDZixNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sSUFBSSxVQUFVLENBQUM7YUFDeEMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDbkMsTUFBTSxDQUFDLENB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S0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO3FCQUNoRCxDQUFDO29CQUNGLE9BQU8sSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ2hGO29CQUNFLE9BQU8sSUFBSSxDQUFDO1lBQ2hCLENBQUM7UUFDSCxDQUFDLENBQUM7YUFDRCxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDOUIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhcnRBZ2dyZWdhdGVkV2lkZ2V0T3B0aW9ucyxcbiAgT3BlcmF0aW9uLFxuICBUaW1lSW50ZXJ2YWxcbn0gZnJvbSAnLi4vLi4vLi4vbW9kZWwvd2lkZ2V0LWFnZ3JlZ2F0ZWQtY2hhcnQtbWFuaWZlc3QuaW50ZXJmYWNlJztcbmltcG9ydCB7IENsYXNzIH0gZnJvbSAnLi4vLi4vY2xhc3MvY2xhc3MuaW50ZXJmYWNlJztcbmltcG9ydCB7IEl0ZW0sIFZhbHVlVHlwZSB9IGZyb20gJy4uLy4uLy4uL21vZGVsL2l0ZW0uaW50ZXJmYWNlJztcbmltcG9ydCB7IFJlc3VsdFNldHMgfSBmcm9tICcuLi8uLi8uLi9tb2RlbC9yZXN1bHQtc2V0LmludGVyZmFjZSc7XG5pbXBvcnQgeyBSZXN1bHRzZXRVdGlscyB9IGZyb20gJy4uLy4uLy4uLy4uL2Rhc2hib2FyZC9yZXN1bHRzZXQtdXRpbHMnO1xuaW1wb3J0IHsgSXRlbVV0aWxzIH0gZnJvbSAnLi4vLi4vLi4vLi4vZGFzaGJvYXJkL2l0ZW0tdXRpbHMnO1xuaW1wb3J0IHsgRmlsdGVyIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWwvZmlsdGVyLmludGVyZmFjZSc7XG5cbmV4cG9ydCBjbGFzcyBBZ2dyZWdhdGlvblV0aWxzIHtcbiAgc3RhdGljIGdldEF4aXNBdHRyaWJ1dGUoY2xhc3NlczogQ2xhc3NbXSwgb3B0aW9uczogQ2hhcnRBZ2dyZWdhdGVkV2lkZ2V0T3B0aW9ucywgYXhpczogJ29yZGluYXRlJyB8ICdhYnNjaXNzYScpIHtcbiAgICByZXR1cm4gY2xhc3Nlc1xuICAgICAgLm1hcCgoY2xhenopID0+IGNsYXp6LmF0dHJpYnV0ZXMuZmluZCgoYXR0cikgPT4gYXR0ci5pZCA9PT0gb3B0aW9uc1theGlzXS5hdHRyaWJ1dGUpKVxuICAgICAgLmZpbmQoKGF0dHIpID0+ICEhYXR0cik/Lm5hbWU7XG4gIH1cblxuICBzdGF0aWMgZ2V0Q2hhcnREYXRhc291cmNlUmVzdWx0U2V0KGRhdGFzb3VyY2VzOiBzdHJpbmdbXSwgcmVzdWx0U2V0czogUmVzdWx0U2V0cykge1xuICAgIHJldHVybiBkYXRhc291cmNlc1xuICAgICAgLmZpbHRlcigocnNOYW1lKSA9PiByc05hbWUgaW4gcmVzdWx0U2V0cylcbiAgICAgIC5tYXAoKHJzTmFtZSkgPT4gcmVzdWx0U2V0c1tyc05hbWVdKVxuICAgICAgLnJlZHVjZSgocnMxLCByczIpID0+IFJlc3VsdHNldFV0aWxzLm1lcmdlUmVzdWx0U2V0cyhyczEsIHJzMiksIHtcbiAgICAgICAgaXRlbXM6IHt9LFxuICAgICAgICByZWxhdGlvbnM6IFtdLFxuICAgICAgICBtZXJnZWQ6IGRhdGFzb3VyY2VzLmZpbHRlcigocnNOYW1lKSA9PiByc05hbWUgaW4gcmVzdWx0U2V0cykubGVuZ3RoXG4gICAgICB9KTtcbiAgfVxuXG4gIHN0YXRpYyBnZXRBZ2dyZWdhdGVkVmFsdWUoXG4gICAgb3BlcmF0aW9uOiBPcGVyYXRpb24sXG4gICAgZ3JvdXBlZEl0ZW1zOiB7IFtrZXk6IHN0cmluZyB8IG51bWJlcl06IEl0ZW1bXSB9LFxuICAgIGFic2Npc3NhQXR0cmlidXRlOiBrZXlvZiB0eXBlb2YgZ3JvdXBlZEl0ZW1zLFxuICAgIG9yZGluYXRlQXR0cmlidXRlOiBzdHJpbmdcbiAgKTogbnVtYmVyIHwgVmFsdWVUeXBlIHtcbiAgICByZXR1cm4gdGhpcy5nZXRBZ2dyZWdhdGVkVmFsdWVGb3JPcGVyYXRpb24oXG4gICAgICBvcGVyYXRpb24sXG4gICAgICBncm91cGVkSXRlbXNbYWJzY2lzc2FBdHRyaWJ1dGVdLm1hcCgoaXRlbSkgPT4gdGhpcy5nZXRWYWx1ZUZyb21BdHRyaWJ1dGUoaXRlbSwgb3JkaW5hdGVBdHRyaWJ1dGUpLnZhbHVlIGFzIG51bWJlcilcbiAgICApO1xuICB9XG5cbiAgc3RhdGljIGdldFZhbHVlRnJvbUF0dHJpYnV0ZShpdGVtOiBJdGVtLCBhdHRyaWJ1dGU6IHN0cmluZykge1xuICAgIGxldCB2YWx1ZSA9IEl0ZW1VdGlscy5nZXRBdHRyaWJ1dGVWYWx1ZShpdGVtLCBhdHRyaWJ1dGUpO1xuICAgIHJldHVybiBBcnJheS5pc0FycmF5KHZhbHVlKSA/IHZhbHVlWzBdIDogdmFsdWU7XG4gIH1cblxuICBzdGF0aWMgZ2V0QWdncmVnYXRlZFZhbHVlRm9yT3BlcmF0aW9uKG9wZXJhdGlvbjogT3BlcmF0aW9uLCB2YWx1ZXM6IG51bWJlcltdKTogbnVtYmVyIHwgVmFsdWVUeXBlIHtcbiAgICBzd2l0Y2ggKG9wZXJhdGlvbikge1xuICAgICAgY2FzZSBPcGVyYXRpb24uQ09VTlQ6XG4gICAgICAgIHJldHVybiB2YWx1ZXMubGVuZ3RoO1xuICAgICAgY2FzZSBPcGVyYXRpb24uU1VNOlxuICAgICAgICByZXR1cm4gdmFsdWVzLnJlZHVjZSgoYWNjLCB2YWwpID0+IGFjYyArIHZhbCwgMCk7XG4gICAgICBjYXNlIE9wZXJhdGlvbi5ESVNUSU5DVDpcbiAgICAgICAgcmV0dXJuIFsuLi5uZXcgU2V0KHZhbHVlcyldLmxlbmd0aDtcbiAgICAgIGNhc2UgT3BlcmF0aW9uLkFWRVJBR0U6XG4gICAgICAgIHJldHVybiB2YWx1ZXMucmVkdWNlKChhY2MsIHZhbCkgPT4gYWNjICsgdmFsLCAwKSAvIHZhbHVlcy5sZW5ndGg7XG4gICAgICBjYXNlIE9wZXJhdGlvbi5NRURJQU46XG4gICAgICAgIHJldHVybiB0aGlzLmdldFF1YXJ0aWxlKHZhbHVlcywgMC41KTtcbiAgICAgIGNhc2UgT3BlcmF0aW9uLlExOlxuICAgICAgICByZXR1cm4gdGhpcy5nZXRRdWFydGlsZSh2YWx1ZXMsIDAuMjUpO1xuICAgICAgY2FzZSBPcGVyYXRpb24uUTM6XG4gICAgICAgIHJldHVybiB0aGlzLmdldFF1YXJ0aWxlKHZhbHVlcywgMC43NSk7XG4gICAgICBjYXNlIE9wZXJhdGlvbi5NSU46XG4gICAgICAgIHJldHVybiBNYXRoLm1pbiguLi52YWx1ZXMpO1xuICAgICAgY2FzZSBPcGVyYXRpb24uTUFYOlxuICAgICAgICByZXR1cm4gTWF0aC5tYXgoLi4udmFsdWVzKTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiAtMTtcbiAgICB9XG4gIH1cblxuICBzdGF0aWMgZ2V0UXVhcnRpbGUodmFsdWVzOiBudW1iZXJbXSwgcTogbnVtYmVyKSB7XG4gICAgaWYgKHZhbHVlcy5sZW5ndGggPT09IDApIHJldHVybiAwO1xuICAgIHZhbHVlcy5zb3J0KChhOiBudW1iZXIsIGI6IG51bWJlcikgPT4gYSAtIGIpO1xuXG4gICAgbGV0IHBvcyA9ICh2YWx1ZXMubGVuZ3RoIC0gMSkgKiBxO1xuICAgIGlmIChwb3MgJSAxID09PSAwKSB7XG4gICAgICByZXR1cm4gdmFsdWVzW3Bvc107XG4gICAgfVxuXG4gICAgcG9zID0gTWF0aC5mbG9vcihwb3MpO1xuICAgIHJldHVybiB2YWx1ZXNbcG9zICsgMV0gIT09IHVuZGVmaW5lZCA/ICh2YWx1ZXNbcG9zXSArIHZhbHVlc1twb3MgKyAxXSkgLyAyIDogdmFsdWVzW3Bvc107XG4gIH1cblxuICBzdGF0aWMgZm9ybWF0QnlMaW1pdChcbiAgICBkYXRhOiB7IGtleTogVmFsdWVUeXBlOyB2YWx1ZTogVmFsdWVUeXBlIH1bXSxcbiAgICBpbnRlcnZhbDogbnVtYmVyIHwgVGltZUludGVydmFsLFxuICAgIG9wZXJhdGlvbjogT3BlcmF0aW9uXG4gICkge1xuICAgIHJldHVybiB0eXBlb2YgaW50ZXJ2YWwgPT09ICdudW1iZXInID8gZGF0YSA6IHRoaXMuZm9ybWF0RGF0YUJ5VGltZUxpbWl0KGRhdGEsIGludGVydmFsLCBvcGVyYXRpb24pO1xuICB9XG5cbiAgc3RhdGljIGZvcm1hdERhdGFCeVRpbWVMaW1pdChcbiAgICBkYXRhOiB7IGtleTogVmFsdWVUeXBlOyB2YWx1ZTogVmFsdWVUeXBlIH1bXSxcbiAgICBpbnRlcnZhbDogVGltZUludGVydmFsLFxuICAgIG9wZXJhdGlvbjogT3BlcmF0aW9uXG4gICkge1xuICAgIGxldCBkaXN0aW5jdFZhbHVlczogeyBrZXk6IFZhbHVlVHlwZTsgdmFsdWVzOiBWYWx1ZVR5cGVbXSB9W10gPSBbXTtcbiAgICBkYXRhXG4gICAgICAubWFwKChvYmopID0+ICh7IC4uLm9iaiwga2V5OiB0aGlzLmdldEtleVZhbHVlRm9yVGltZUludGVydmFsKG9iai5rZXksIGludGVydmFsKSB9KSlcbiAgICAgIC5mb3JFYWNoKChvYmopID0+IHtcbiAgICAgICAgY29uc3QgaXNOb3REaXN0aW5jdCA9IGRpc3RpbmN0VmFsdWVzLmZpbmQoKGRpc3RpbmN0KSA9PiBvYmoua2V5ID09PSBkaXN0aW5jdC5rZXkpO1xuICAgICAgICBpZiAoISFpc05vdERpc3RpbmN0KSB7XG4gICAgICAgICAgaXNOb3REaXN0aW5jdC52YWx1ZXMucHVzaChvYmoudmFsdWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGRpc3RpbmN0VmFsdWVzLnB1c2goeyBrZXk6IG9iai5rZXksIHZhbHVlczogW10gfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIHJldHVybiBkaXN0aW5jdFZhbHVlcy5tYXAoKG9iaikgPT4gKHtcbiAgICAgIC4uLm9iaixcbiAgICAgIHZhbHVlOiBBZ2dyZWdhdGlvblV0aWxzLmdldEFnZ3JlZ2F0ZWRWYWx1ZUZvck9wZXJhdGlvbihvcGVyYXRpb24sIG9iai52YWx1ZXMgYXMgbnVtYmVyW10pXG4gICAgfSkpO1xuICB9XG5cbiAgc3RhdGljIGdldEtleVZhbHVlRm9yVGltZUludGVydmFsKGtleTogVmFsdWVUeXBlLCBpbnRlcnZhbDogVGltZUludGVydmFsKTogc3RyaW5nIHtcbiAgICBjb25zdCBkYXRlID0gbmV3IERhdGUoa2V5IGFzIHN0cmluZyk7XG4gICAgc3dpdGNoIChpbnRlcnZhbCkge1xuICAgICAgY2FzZSAnc2Vjb25kJzpcbiAgICAgICAgcmV0dXJuIG5ldyBEYXRlKFxuICAgICAgICAgIGRhdGUuZ2V0RnVsbFllYXIoKSxcbiAgICAgICAgICBkYXRlLmdldE1vbnRoKCksXG4gICAgICAgICAgZGF0ZS5nZXREYXRlKCksXG4gICAgICAgICAgZGF0ZS5nZXRIb3VycygpLFxuICAgICAgICAgIGRhdGUuZ2V0TWludXRlcygpLFxuICAgICAgICAgIGRhdGUuZ2V0U2Vjb25kcygpXG4gICAgICAgICkudG9JU09TdHJpbmcoKTtcbiAgICAgIGNhc2UgJ21pbnV0ZSc6XG4gICAgICAgIHJldHVybiBuZXcgRGF0ZShcbiAgICAgICAgICBkYXRlLmdldEZ1bGxZZWFyKCksXG4gICAgICAgICAgZGF0ZS5nZXRNb250aCgpLFxuICAgICAgICAgIGRhdGUuZ2V0RGF0ZSgpLFxuICAgICAgICAgIGRhdGUuZ2V0SG91cnMoKSxcbiAgICAgICAgICBkYXRlLmdldE1pbnV0ZXMoKVxuICAgICAgICApLnRvSVNPU3RyaW5nKCk7XG4gICAgICBjYXNlICdob3VyJzpcbiAgICAgICAgcmV0dXJuIG5ldyBEYXRlKGRhdGUuZ2V0RnVsbFllYXIoKSwgZGF0ZS5nZXRNb250aCgpLCBkYXRlLmdldERhdGUoKSwgZGF0ZS5nZXRIb3VycygpKS50b0lTT1N0cmluZygpO1xuICAgICAgY2FzZSAnZGF5JzpcbiAgICAgICAgcmV0dXJuIG5ldyBEYXRlKGRhdGUuZ2V0RnVsbFllYXIoKSwgZGF0ZS5nZXRNb250aCgpLCBkYXRlLmdldERhdGUoKSkudG9JU09TdHJpbmcoKTtcbiAgICAgIGNhc2UgJ3dlZWsnOlxuICAgICAgICBjb25zdCBkYXlzVG9TdWJ0cmFjdCA9ICg3ICsgZGF0ZS5nZXRVVENEYXkoKSkgJSA3O1xuICAgICAgICBkYXRlLnNldFVUQ0RhdGUoZGF0ZS5nZXRVVENEYXRlKCkgLSBkYXlzVG9TdWJ0cmFjdCk7XG4gICAgICAgIHJldHVybiBkYXRlLnRvSVNPU3RyaW5nKCk7XG4gICAgICBjYXNlICdxdWFydGVyJzpcbiAgICAgICAgY29uc3QgcXVhcnRlclN0YXJ0TW9udGhzID0gWzAsIDMsIDYsIDldOyAvLyBKYW51YXJ5LCBBcHJpbCwgSnVseSwgT2N0b2JlclxuICAgICAgICBjb25zdCBxdWFydGVyID0gTWF0aC5mbG9vcihkYXRlLmdldFVUQ01vbnRoKCkgLyAzKTtcbiAgICAgICAgY29uc3QgeWVhciA9IGRhdGUuZ2V0VVRDRnVsbFllYXIoKTtcblxuICAgICAgICBjb25zdCBzdGFydE9mUXVhcnRlciA9IG5ldyBEYXRlKERhdGUuVVRDKHllYXIsIHF1YXJ0ZXJTdGFydE1vbnRoc1txdWFydGVyXSwgMSwgMCwgMCwgMCwgMCkpO1xuICAgICAgICByZXR1cm4gc3RhcnRPZlF1YXJ0ZXIudG9JU09TdHJpbmcoKTtcbiAgICAgIGNhc2UgJ3llYXInOlxuICAgICAgICByZXR1cm4gbmV3IERhdGUobmV3IERhdGUoa2V5IGFzIHN0cmluZykuZ2V0RnVsbFllYXIoKSwgMCwgMSkudG9JU09TdHJpbmcoKTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBkYXRlLnRvSVNPU3RyaW5nKCk7XG4gICAgfVxuICB9XG5cbiAgc3RhdGljIGZpbHRlckl0ZW1zKGl0ZW1zOiBJdGVtW10sIGZpbHRlcnM6IEZpbHRlcltdKSB7XG4gICAgbGV0IGZpbHRlcnNCeUF0dHJpYnV0ZSA9IGZpbHRlcnNcbiAgICAgIC5tYXAoKGZpbHRlcikgPT5cbiAgICAgICAgZmlsdGVyLmF0dHJpYnV0ZXMubWFwKChhdHRyaWJ1dGUpID0+ICh7XG4gICAgICAgICAgLi4uZmlsdGVyLFxuICAgICAgICAgIGF0dHJpYnV0ZTogYXR0cmlidXRlLmlkLFxuICAgICAgICAgIGF0dHJpYnV0ZXM6IHVuZGVmaW5lZFxuICAgICAgICB9KSlcbiAgICAgIClcbiAgICAgIC5mbGF0KCk7XG5cbiAgICByZXR1cm4gZmlsdGVycy5sZW5ndGggPiAwXG4gICAgICA/IFtcbiAgICAgICAgICAuLi5uZXcgU2V0KFxuICAgICAgICAgICAgZmlsdGVyc0J5QXR0cmlidXRlXG4gICAgICAgICAgICAgIC5tYXAoKGZpbHRlcikgPT5cbiAgICAgICAgICAgICAgICBpdGVtcy5maWx0ZXIoKGl0ZW0pID0+XG4gICAgICAgICAgICAgICAgICB0aGlzLmRvZXNJdGVtVmFsdWVQYXNzRmlsdGVyKGl0ZW0sIGZpbHRlci5hdHRyaWJ1dGUsIGZpbHRlci5vcGVyYXRvciwgZmlsdGVyLnZhbHVlKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAuZmxhdCgpXG4gICAgICAgICAgKVxuICAgICAgICBdXG4gICAgICA6IGl0ZW1zO1xuICB9XG5cbiAgc3RhdGljIGRvZXNJdGVtVmFsdWVQYXNzRmlsdGVyKFxuICAgIGl0ZW06IEl0ZW0sXG4gICAgYXR0cmlidXRlOiBzdHJpbmcsXG4gICAgb3BlcmF0b3I6IHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgICBmaWx0ZXJWYWx1ZTogc3RyaW5nIHwgbnVtYmVyIHwgc3RyaW5nW10gfCBudW1iZXJbXSB8IHVuZGVmaW5lZFxuICApOiBib29sZWFuIHtcbiAgICBsZXQgdmFsdWUgPSBBZ2dyZWdhdGlvblV0aWxzLmdldFZhbHVlRnJvbUF0dHJpYnV0ZShpdGVtLCBhdHRyaWJ1dGUpPy52YWx1ZSBhcyBzdHJpbmcgfCBudW1iZXI7XG4gICAgbGV0IGRhdGUxOiBEYXRlLCBkYXRlMjogRGF0ZTtcblxuICAgIGxldCBmaWx0ZXJQb3NzaWJsZVZhbHVlcyA9IEFycmF5LmlzQXJyYXkoZmlsdGVyVmFsdWUpID8gZmlsdGVyVmFsdWUgOiAoW2ZpbHRlclZhbHVlXSBhcyBzdHJpbmdbXSB8IG51bWJlcltdKTtcblxuICAgIHJldHVybiBmaWx0ZXJQb3NzaWJsZVZhbHVlc1xuICAgICAgLm1hcCgocG9zc2libGVGaWx0ZXJWYWx1ZSkgPT4ge1xuICAgICAgICBzd2l0Y2ggKG9wZXJhdG9yKSB7XG4gICAgICAgICAgY2FzZSAnRVFVQUxTJzpcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZSA9PT0gZmlsdGVyVmFsdWU7XG4gICAgICAgICAgY2FzZSAnTk9UX0VRVUFMUyc6XG4gICAgICAgICAgICByZXR1cm4gdmFsdWUgIT09IGZpbHRlclZhbHVlO1xuICAgICAgICAgIGNhc2UgJ0NPTlRBSU5TJzpcbiAgICAgICAgICAgIHJldHVybiAodmFsdWUgYXMgc3RyaW5nKS5pbmNsdWRlcyhmaWx0ZXJWYWx1ZSBhcyBzdHJpbmcpO1xuICAgICAgICAgIGNhc2UgJ1NUQVJUX1dJVEgnOlxuICAgICAgICAgICAgcmV0dXJuICh2YWx1ZSBhcyBzdHJpbmcpLnN0YXJ0c1dpdGgoZmlsdGVyVmFsdWUgYXMgc3RyaW5nKTtcbiAgICAgICAgICBjYXNlICdFTkRfV0lUSCc6XG4gICAgICAgICAgICByZXR1cm4gKHZhbHVlIGFzIHN0cmluZykuZW5kc1dpdGgoZmlsdGVyVmFsdWUgYXMgc3RyaW5nKTtcbiAgICAgICAgICBjYXNlICdHUkVBVEVSX1RIQU4nOlxuICAgICAgICAgICAgaWYgKHR5cGVvZiBmaWx0ZXJWYWx1ZSA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICAgICAgcmV0dXJuICh2YWx1ZSBhcyBudW1iZXIpID4gZmlsdGVyVmFsdWU7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBmaWx0ZXJWYWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIG5ldyBEYXRlKHZhbHVlKSA+IG5ldyBEYXRlKGZpbHRlclZhbHVlKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICBjYXNlICdMT1dFUl9USEFOJzpcbiAgICAgICAgICAgIGlmICh0eXBlb2YgZmlsdGVyVmFsdWUgPT09ICdudW1iZXInKSB7XG4gICAgICAgICAgICAgIHJldHVybiAodmFsdWUgYXMgbnVtYmVyKSA8IGZpbHRlclZhbHVlO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgZmlsdGVyVmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgIHJldHVybiBuZXcgRGF0ZSh2YWx1ZSkgPCBuZXcgRGF0ZShmaWx0ZXJWYWx1ZSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgY2FzZSAnSU5TSURFJzpcbiAgICAgICAgICAgIFtkYXRlMSwgZGF0ZTJdID0gW1xuICAgICAgICAgICAgICBuZXcgRGF0ZSgoZmlsdGVyVmFsdWUgYXMgc3RyaW5nKS5zcGxpdCgnLCcpWzBdKSxcbiAgICAgICAgICAgICAgbmV3IERhdGUoKGZpbHRlclZhbHVlIGFzIHN0cmluZykuc3BsaXQoJywnKVsxXSlcbiAgICAgICAgICAgIF07XG4gICAgICAgICAgICByZXR1cm4gbmV3IERhdGUodmFsdWUpID4gbmV3IERhdGUoZGF0ZTEpICYmIG5ldyBEYXRlKHZhbHVlKSA8IG5ldyBEYXRlKGRhdGUyKTtcbiAgICAgICAgICBjYXNlICdPVVRTSURFJzpcbiAgICAgICAgICAgIFtkYXRlMSwgZGF0ZTJdID0gW1xuICAgICAgICAgICAgICBuZXcgRGF0ZSgoZmlsdGVyVmFsdWUgYXMgc3RyaW5nKS5zcGxpdCgnLCcpWzBdKSxcbiAgICAgICAgICAgICAgbmV3IERhdGUoKGZpbHRlclZhbHVlIGFzIHN0cmluZykuc3BsaXQoJywnKVsxXSlcbiAgICAgICAgICAgIF07XG4gICAgICAgICAgICByZXR1cm4gbmV3IERhdGUodmFsdWUpIDwgbmV3IERhdGUoZGF0ZTEpICYmIG5ldyBEYXRlKHZhbHVlKSA+IG5ldyBEYXRlKGRhdGUyKTtcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgICAucmVkdWNlKChwLCBjKSA9PiBwIHx8IGMpO1xuICB9XG59XG4iXX0=
@@ -12,7 +12,7 @@ export class CqlUtils {
12
12
  const attributeName = attribute?.technicalName;
13
13
  return this.getConditionsForValue(attributeName, cond, field, datasourceId);
14
14
  })
15
- .filter((conds) => conds.length > 0)
15
+ .filter((conds) => !!conds && conds.length > 0)
16
16
  .join(' AND ');
17
17
  }
18
18
  static getConditionsForValue(attributeName, cond, field, datasourceId) {
@@ -68,4 +68,4 @@ export class CqlUtils {
68
68
  return conditions.length > 1 ? '( ' + conditions.join(' OR ') + ' )' : conditions[0];
69
69
  }
70
70
  }
71
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3FsLXV0aWxzLmNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvd2lkZ2V0cy93aWRnZXQtbWFwL3V0aWxzL2NxbC11dGlscy5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQStCLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRWpGLE1BQU0sT0FBTyxRQUFRO0lBQ25CLE1BQU0sQ0FBQyxlQUFlLENBQ3BCLFlBQW9CLEVBQ3BCLE9BQXlDLEVBQ3pDLE9BQWdCLEVBQ2hCLE1BQWU7UUFFZixJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsWUFBWSxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxJQUFJLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDOUYsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBRUQsTUFBTSxtQkFBbUIsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFNUUsT0FBTyxPQUFPLENBQUMsWUFBWSxDQUFDO2FBQ3pCLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ1osTUFBTSxTQUFTLEdBQUcsbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNqRixNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUM1RCxNQUFNLGFBQWEsR0FBRyxTQUFTLEVBQUUsYUFBYSxDQUFDO1lBRS9DLE9BQU8sSUFBSSxDQUFDLHFCQUFxQixDQUFDLGFBQWEsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQzlFLENBQUMsQ0FBQzthQUNELE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7YUFDbkMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ25CLENBQUM7SUFFRCxNQUFNLENBQUMscUJBQXFCLENBQzFCLGFBQWlDLEVBQ2pDLElBQW1CLEVBQ25CLEtBQXdCLEVBQ3hCLFlBQW9CO1FBRXBCLElBQUksVUFBVSxHQUFhLEVBQUUsQ0FBQztRQUU5QixNQUFNLE1BQU0sR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBd0IsQ0FBQztRQUU5RixJQUFJLGFBQWEsRUFBRSxDQUFDO1lBQ2xCLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtnQkFDdkIsSUFBSSxLQUFLLElBQUksQ0FBQyxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO29CQUM3RCxNQUFNLGNBQWMsR0FBRyxHQUFHLEtBQUssRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7b0JBQ3RELFFBQVEsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO3dCQUN0QixLQUFLLFFBQVE7NEJBQ1gsSUFBSSxDQUFDLEtBQUssSUFBSSxjQUFjLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDO2dDQUNuRCxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsYUFBYSxLQUFLLGNBQWMsR0FBRyxDQUFDLENBQUM7NEJBQzFELENBQUM7aUNBQU0sQ0FBQztnQ0FDTixVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsYUFBYSxJQUFJLEtBQUssRUFBRSxDQUFDLENBQUM7NEJBQy9DLENBQUM7NEJBQ0QsTUFBTTt3QkFDUixLQUFLLFVBQVU7NEJBQ2IsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLGFBQWEsV0FBVyxjQUFjLElBQUksQ0FBQyxDQUFDOzRCQUMvRCxNQUFNO3dCQUNSLEtBQUssWUFBWTs0QkFDZixVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsYUFBYSxVQUFVLGNBQWMsSUFBSSxDQUFDLENBQUM7NEJBQzlELE1BQU07d0JBQ1IsS0FBSyxVQUFVOzRCQUNiLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxhQUFhLFdBQVcsY0FBYyxHQUFHLENBQUMsQ0FBQzs0QkFDOUQsTUFBTTt3QkFDUixLQUFLLGNBQWM7NEJBQ2pCLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxhQUFhLElBQUksS0FBSyxFQUFFLENBQUMsQ0FBQzs0QkFDN0MsTUFBTTt3QkFDUixLQUFLLFlBQVk7NEJBQ2YsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLGFBQWEsSUFBSSxLQUFLLEVBQUUsQ0FBQyxDQUFDOzRCQUM3QyxNQUFNO3dCQUNSLEtBQUssU0FBUzs0QkFDWixNQUFNLE1BQU0sR0FBSSxLQUFnQixFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQzs0QkFDN0MsSUFBSSxNQUFNLElBQUksTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztnQ0FDaEMsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLGFBQWEsSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsYUFBYSxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7NEJBQ3pGLENBQUM7NEJBQ0QsTUFBTTt3QkFDUixLQUFLLFFBQVE7NEJBQ1gsTUFBTSxNQUFNLEdBQUksS0FBZ0IsRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7NEJBQzdDLElBQUksTUFBTSxJQUFJLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0NBQ2hDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxhQUFhLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxRQUFRLGFBQWEsSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDOzRCQUN6RixDQUFDOzRCQUNELE1BQU07b0JBQ1YsQ0FBQztnQkFDSCxDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sQ0FBQyxJQUFJLENBQ1YsdUNBQXVDLFlBQVksWUFBWSxJQUFJLENBQUMsU0FBUyxpQ0FBaUMsQ0FDL0csQ0FBQztRQUNKLENBQUM7UUFFRCxPQUFPLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN2RixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDbGFzcywgRmllbGQsIEZpbHRlckNvbnRleHQsIFRleHRGaWVsZFR5cGVzIH0gZnJvbSAnQHByb3ZvbHkvZGFzaGJvYXJkJztcblxuZXhwb3J0IGNsYXNzIENxbFV0aWxzIHtcbiAgc3RhdGljIGdldENRTFBhcmFtc0ZvcihcbiAgICBkYXRhc291cmNlSWQ6IHN0cmluZyxcbiAgICBmaWx0ZXJzOiB7IFtwOiBzdHJpbmddOiBGaWx0ZXJDb250ZXh0W10gfSxcbiAgICBjbGFzc2VzOiBDbGFzc1tdLFxuICAgIGZpZWxkczogRmllbGRbXVxuICApOiBzdHJpbmcgfCBudWxsIHtcbiAgICBpZiAoIWZpbHRlcnMgfHwgIWRhdGFzb3VyY2VJZCB8fCAhZmlsdGVyc1tkYXRhc291cmNlSWRdIHx8IGZpbHRlcnNbZGF0YXNvdXJjZUlkXS5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IGF0dHJpYnV0ZXNSZWZlcmVuY2UgPSBjbGFzc2VzLm1hcCgoY2xhenopID0+IGNsYXp6LmF0dHJpYnV0ZXMpLmZsYXQoKTtcblxuICAgIHJldHVybiBmaWx0ZXJzW2RhdGFzb3VyY2VJZF1cbiAgICAgIC5tYXAoKGNvbmQpID0+IHtcbiAgICAgICAgY29uc3QgYXR0cmlidXRlID0gYXR0cmlidXRlc1JlZmVyZW5jZS5maW5kKChhdHRyKSA9PiBhdHRyLmlkID09PSBjb25kLmF0dHJpYnV0ZSk7XG4gICAgICAgIGNvbnN0IGZpZWxkID0gZmllbGRzLmZpbmQoKGYpID0+IGYuaWQgPT09IGF0dHJpYnV0ZT8uZmllbGQpO1xuICAgICAgICBjb25zdCBhdHRyaWJ1dGVOYW1lID0gYXR0cmlidXRlPy50ZWNobmljYWxOYW1lO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmdldENvbmRpdGlvbnNGb3JWYWx1ZShhdHRyaWJ1dGVOYW1lLCBjb25kLCBmaWVsZCwgZGF0YXNvdXJjZUlkKTtcbiAgICAgIH0pXG4gICAgICAuZmlsdGVyKChjb25kcykgPT4gY29uZHMubGVuZ3RoID4gMClcbiAgICAgIC5qb2luKCcgQU5EICcpO1xuICB9XG5cbiAgc3RhdGljIGdldENvbmRpdGlvbnNGb3JWYWx1ZShcbiAgICBhdHRyaWJ1dGVOYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gICAgY29uZDogRmlsdGVyQ29udGV4dCxcbiAgICBmaWVsZDogRmllbGQgfCB1bmRlZmluZWQsXG4gICAgZGF0YXNvdXJjZUlkOiBzdHJpbmdcbiAgKSB7XG4gICAgbGV0IGNvbmRpdGlvbnM6IHN0cmluZ1tdID0gW107XG5cbiAgICBjb25zdCB2YWx1ZXMgPSAoQXJyYXkuaXNBcnJheShjb25kLnZhbHVlKSA/IGNvbmQudmFsdWUgOiBbY29uZC52YWx1ZV0pIGFzIHN0cmluZ1tdIHwgbnVtYmVyW107XG5cbiAgICBpZiAoYXR0cmlidXRlTmFtZSkge1xuICAgICAgdmFsdWVzLmZvckVhY2goKHZhbHVlKSA9PiB7XG4gICAgICAgIGlmICh2YWx1ZSAmJiAodHlwZW9mIHZhbHVlICE9PSAnc3RyaW5nJyB8fCB2YWx1ZS5sZW5ndGggPiAwKSkge1xuICAgICAgICAgIGNvbnN0IHF1b3RlU2FmZVZhbHVlID0gYCR7dmFsdWV9YC5yZXBsYWNlKC8nL2csIFwiJydcIik7XG4gICAgICAgICAgc3dpdGNoIChjb25kLm9wZXJhdG9yKSB7XG4gICAgICAgICAgICBjYXNlICdFUVVBTFMnOlxuICAgICAgICAgICAgICBpZiAoIWZpZWxkIHx8IFRleHRGaWVsZFR5cGVzLmluY2x1ZGVzKGZpZWxkPy50eXBlKSkge1xuICAgICAgICAgICAgICAgIGNvbmRpdGlvbnMucHVzaChgJHthdHRyaWJ1dGVOYW1lfT0nJHtxdW90ZVNhZmVWYWx1ZX0nYCk7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uZGl0aW9ucy5wdXNoKGAke2F0dHJpYnV0ZU5hbWV9PSR7dmFsdWV9YCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdDT05UQUlOUyc6XG4gICAgICAgICAgICAgIGNvbmRpdGlvbnMucHVzaChgJHthdHRyaWJ1dGVOYW1lfSBMSUtFICclJHtxdW90ZVNhZmVWYWx1ZX0lJ2ApO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ1NUQVJUX1dJVEgnOlxuICAgICAgICAgICAgICBjb25kaXRpb25zLnB1c2goYCR7YXR0cmlidXRlTmFtZX0gTElLRSAnJHtxdW90ZVNhZmVWYWx1ZX0lJ2ApO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ0VORF9XSVRIJzpcbiAgICAgICAgICAgICAgY29uZGl0aW9ucy5wdXNoKGAke2F0dHJpYnV0ZU5hbWV9IExJS0UgJyUke3F1b3RlU2FmZVZhbHVlfSdgKTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdHUkVBVEVSX1RIQU4nOlxuICAgICAgICAgICAgICBjb25kaXRpb25zLnB1c2goYCR7YXR0cmlidXRlTmFtZX0+JHt2YWx1ZX1gKTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdMT1dFUl9USEFOJzpcbiAgICAgICAgICAgICAgY29uZGl0aW9ucy5wdXNoKGAke2F0dHJpYnV0ZU5hbWV9PCR7dmFsdWV9YCk7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnT1VUU0lERSc6XG4gICAgICAgICAgICAgIGNvbnN0IHNwbGl0SSA9ICh2YWx1ZSBhcyBzdHJpbmcpPy5zcGxpdCgnLCcpO1xuICAgICAgICAgICAgICBpZiAoc3BsaXRJICYmIHNwbGl0SS5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgICAgICAgY29uZGl0aW9ucy5wdXNoKGAoICR7YXR0cmlidXRlTmFtZX08JHtzcGxpdElbMF19IEFORCAke2F0dHJpYnV0ZU5hbWV9PiR7c3BsaXRJWzFdfSApYCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdJTlNJREUnOlxuICAgICAgICAgICAgICBjb25zdCBzcGxpdE8gPSAodmFsdWUgYXMgc3RyaW5nKT8uc3BsaXQoJywnKTtcbiAgICAgICAgICAgICAgaWYgKHNwbGl0TyAmJiBzcGxpdE8ubGVuZ3RoID4gMSkge1xuICAgICAgICAgICAgICAgIGNvbmRpdGlvbnMucHVzaChgKCAke2F0dHJpYnV0ZU5hbWV9PiR7c3BsaXRPWzBdfSBBTkQgJHthdHRyaWJ1dGVOYW1lfTwke3NwbGl0T1sxXX0gKWApO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgYENhbm5vdCBhZGQgY3FsIGZpbHRlciBvbiBkYXRhc291cmNlICR7ZGF0YXNvdXJjZUlkfSBiZWNhdXNlICR7Y29uZC5hdHRyaWJ1dGV9IGF0dHJpYnV0ZSBub3QgZm91bmQgaW4gY2xhc3Nlc2BcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbmRpdGlvbnMubGVuZ3RoID4gMSA/ICcoICcgKyBjb25kaXRpb25zLmpvaW4oJyBPUiAnKSArICcgKScgOiBjb25kaXRpb25zWzBdO1xuICB9XG59XG4iXX0=
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3FsLXV0aWxzLmNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvd2lkZ2V0cy93aWRnZXQtbWFwL3V0aWxzL2NxbC11dGlscy5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQStCLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRWpGLE1BQU0sT0FBTyxRQUFRO0lBQ25CLE1BQU0sQ0FBQyxlQUFlLENBQ3BCLFlBQW9CLEVBQ3BCLE9BQXlDLEVBQ3pDLE9BQWdCLEVBQ2hCLE1BQWU7UUFFZixJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsWUFBWSxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxJQUFJLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDOUYsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBRUQsTUFBTSxtQkFBbUIsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFNUUsT0FBTyxPQUFPLENBQUMsWUFBWSxDQUFDO2FBQ3pCLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ1osTUFBTSxTQUFTLEdBQUcsbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNqRixNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUM1RCxNQUFNLGFBQWEsR0FBRyxTQUFTLEVBQUUsYUFB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Q0FBQzs0QkFDN0MsSUFBSSxNQUFNLElBQUksTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztnQ0FDaEMsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLGFBQWEsSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsYUFBYSxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7NEJBQ3pGLENBQUM7NEJBQ0QsTUFBTTtvQkFDVixDQUFDO2dCQUNILENBQUM7WUFDSCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxDQUFDLElBQUksQ0FDVix1Q0FBdUMsWUFBWSxZQUFZLElBQUksQ0FBQyxTQUFTLGlDQUFpQyxDQUMvRyxDQUFDO1FBQ0osQ0FBQztRQUVELE9BQU8sVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3ZGLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENsYXNzLCBGaWVsZCwgRmlsdGVyQ29udGV4dCwgVGV4dEZpZWxkVHlwZXMgfSBmcm9tICdAcHJvdm9seS9kYXNoYm9hcmQnO1xuXG5leHBvcnQgY2xhc3MgQ3FsVXRpbHMge1xuICBzdGF0aWMgZ2V0Q1FMUGFyYW1zRm9yKFxuICAgIGRhdGFzb3VyY2VJZDogc3RyaW5nLFxuICAgIGZpbHRlcnM6IHsgW3A6IHN0cmluZ106IEZpbHRlckNvbnRleHRbXSB9LFxuICAgIGNsYXNzZXM6IENsYXNzW10sXG4gICAgZmllbGRzOiBGaWVsZFtdXG4gICk6IHN0cmluZyB8IG51bGwge1xuICAgIGlmICghZmlsdGVycyB8fCAhZGF0YXNvdXJjZUlkIHx8ICFmaWx0ZXJzW2RhdGFzb3VyY2VJZF0gfHwgZmlsdGVyc1tkYXRhc291cmNlSWRdLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgY29uc3QgYXR0cmlidXRlc1JlZmVyZW5jZSA9IGNsYXNzZXMubWFwKChjbGF6eikgPT4gY2xhenouYXR0cmlidXRlcykuZmxhdCgpO1xuXG4gICAgcmV0dXJuIGZpbHRlcnNbZGF0YXNvdXJjZUlkXVxuICAgICAgLm1hcCgoY29uZCkgPT4ge1xuICAgICAgICBjb25zdCBhdHRyaWJ1dGUgPSBhdHRyaWJ1dGVzUmVmZXJlbmNlLmZpbmQoKGF0dHIpID0+IGF0dHIuaWQgPT09IGNvbmQuYXR0cmlidXRlKTtcbiAgICAgICAgY29uc3QgZmllbGQgPSBmaWVsZHMuZmluZCgoZikgPT4gZi5pZCA9PT0gYXR0cmlidXRlPy5maWVsZCk7XG4gICAgICAgIGNvbnN0IGF0dHJpYnV0ZU5hbWUgPSBhdHRyaWJ1dGU/LnRlY2huaWNhbE5hbWU7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0Q29uZGl0aW9uc0ZvclZhbHVlKGF0dHJpYnV0ZU5hbWUsIGNvbmQsIGZpZWxkLCBkYXRhc291cmNlSWQpO1xuICAgICAgfSlcbiAgICAgIC5maWx0ZXIoKGNvbmRzKSA9PiAhIWNvbmRzICYmIGNvbmRzLmxlbmd0aCA+IDApXG4gICAgICAuam9pbignIEFORCAnKTtcbiAgfVxuXG4gIHN0YXRpYyBnZXRDb25kaXRpb25zRm9yVmFsdWUoXG4gICAgYXR0cmlidXRlTmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICAgIGNvbmQ6IEZpbHRlckNvbnRleHQsXG4gICAgZmllbGQ6IEZpZWxkIHwgdW5kZWZpbmVkLFxuICAgIGRhdGFzb3VyY2VJZDogc3RyaW5nXG4gICkge1xuICAgIGxldCBjb25kaXRpb25zOiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgY29uc3QgdmFsdWVzID0gKEFycmF5LmlzQXJyYXkoY29uZC52YWx1ZSkgPyBjb25kLnZhbHVlIDogW2NvbmQudmFsdWVdKSBhcyBzdHJpbmdbXSB8IG51bWJlcltdO1xuXG4gICAgaWYgKGF0dHJpYnV0ZU5hbWUpIHtcbiAgICAgIHZhbHVlcy5mb3JFYWNoKCh2YWx1ZSkgPT4ge1xuICAgICAgICBpZiAodmFsdWUgJiYgKHR5cGVvZiB2YWx1ZSAhPT0gJ3N0cmluZycgfHwgdmFsdWUubGVuZ3RoID4gMCkpIHtcbiAgICAgICAgICBjb25zdCBxdW90ZVNhZmVWYWx1ZSA9IGAke3ZhbHVlfWAucmVwbGFjZSgvJy9nLCBcIicnXCIpO1xuICAgICAgICAgIHN3aXRjaCAoY29uZC5vcGVyYXRvcikge1xuICAgICAgICAgICAgY2FzZSAnRVFVQUxTJzpcbiAgICAgICAgICAgICAgaWYgKCFmaWVsZCB8fCBUZXh0RmllbGRUeXBlcy5pbmNsdWRlcyhmaWVsZD8udHlwZSkpIHtcbiAgICAgICAgICAgICAgICBjb25kaXRpb25zLnB1c2goYCR7YXR0cmlidXRlTmFtZX09JyR7cXVvdGVTYWZlVmFsdWV9J2ApO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbmRpdGlvbnMucHVzaChgJHthdHRyaWJ1dGVOYW1lfT0ke3ZhbHVlfWApO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnQ09OVEFJTlMnOlxuICAgICAgICAgICAgICBjb25kaXRpb25zLnB1c2goYCR7YXR0cmlidXRlTmFtZX0gTElLRSAnJSR7cXVvdGVTYWZlVmFsdWV9JSdgKTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdTVEFSVF9XSVRIJzpcbiAgICAgICAgICAgICAgY29uZGl0aW9ucy5wdXNoKGAke2F0dHJpYnV0ZU5hbWV9IExJS0UgJyR7cXVvdGVTYWZlVmFsdWV9JSdgKTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdFTkRfV0lUSCc6XG4gICAgICAgICAgICAgIGNvbmRpdGlvbnMucHVzaChgJHthdHRyaWJ1dGVOYW1lfSBMSUtFICclJHtxdW90ZVNhZmVWYWx1ZX0nYCk7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnR1JFQVRFUl9USEFOJzpcbiAgICAgICAgICAgICAgY29uZGl0aW9ucy5wdXNoKGAke2F0dHJpYnV0ZU5hbWV9PiR7dmFsdWV9YCk7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnTE9XRVJfVEhBTic6XG4gICAgICAgICAgICAgIGNvbmRpdGlvbnMucHVzaChgJHthdHRyaWJ1dGVOYW1lfTwke3ZhbHVlfWApO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ09VVFNJREUnOlxuICAgICAgICAgICAgICBjb25zdCBzcGxpdEkgPSAodmFsdWUgYXMgc3RyaW5nKT8uc3BsaXQoJywnKTtcbiAgICAgICAgICAgICAgaWYgKHNwbGl0SSAmJiBzcGxpdEkubGVuZ3RoID4gMSkge1xuICAgICAgICAgICAgICAgIGNvbmRpdGlvbnMucHVzaChgKCAke2F0dHJpYnV0ZU5hbWV9PCR7c3BsaXRJWzBdfSBBTkQgJHthdHRyaWJ1dGVOYW1lfT4ke3NwbGl0SVsxXX0gKWApO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnSU5TSURFJzpcbiAgICAgICAgICAgICAgY29uc3Qgc3BsaXRPID0gKHZhbHVlIGFzIHN0cmluZyk/LnNwbGl0KCcsJyk7XG4gICAgICAgICAgICAgIGlmIChzcGxpdE8gJiYgc3BsaXRPLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICAgICAgICBjb25kaXRpb25zLnB1c2goYCggJHthdHRyaWJ1dGVOYW1lfT4ke3NwbGl0T1swXX0gQU5EICR7YXR0cmlidXRlTmFtZX08JHtzcGxpdE9bMV19IClgKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgIGBDYW5ub3QgYWRkIGNxbCBmaWx0ZXIgb24gZGF0YXNvdXJjZSAke2RhdGFzb3VyY2VJZH0gYmVjYXVzZSAke2NvbmQuYXR0cmlidXRlfSBhdHRyaWJ1dGUgbm90IGZvdW5kIGluIGNsYXNzZXNgXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiBjb25kaXRpb25zLmxlbmd0aCA+IDEgPyAnKCAnICsgY29uZGl0aW9ucy5qb2luKCcgT1IgJykgKyAnICknIDogY29uZGl0aW9uc1swXTtcbiAgfVxufVxuIl19
@@ -283,7 +283,7 @@ class CqlUtils {
283
283
  const attributeName = attribute?.technicalName;
284
284
  return this.getConditionsForValue(attributeName, cond, field, datasourceId);
285
285
  })
286
- .filter((conds) => conds.length > 0)
286
+ .filter((conds) => !!conds && conds.length > 0)
287
287
  .join(' AND ');
288
288
  }
289
289
  static getConditionsForValue(attributeName, cond, field, datasourceId) {