ng-easycommerce-v18 0.3.15-beta.2 → 0.3.16-beta.1

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/README.md CHANGED
@@ -1,10 +1,12 @@
1
- # Version 0.3.15-beta.2
1
+ # Version 0.3.16-beta.1
2
+ - Soporte para **filtros dinámicos** (`dynamics`) en el collection.
3
+ - Hidrata automáticamente las opciones desde el backend (`options`) al inicializar la paginación.
4
+ - Integración con `FiltersService` y `PaginationService` para sincronizar los filtros dinámicos.
5
+ # Version 0.3.15
2
6
  - Refactor del flujo de pago con Mercado Pago (redirect/popup unificado).
3
7
  - Compatibilidad completa con mobile y desktop: cierre automático de pestaña o redirección según navegador.
4
8
  - Nuevo control de estado visual (idle / pagando / finalizando) para evitar repeticiones o confusión del usuario.
5
9
  - Simplificación de `catch` (RedsysCatchEcComponent) y limpieza de código legacy.
6
- # Version 0.3.15-beta.1
7
- - Ajustes Mercado Pago para mobile.
8
10
  # Version 0.3.13
9
11
  - Se hace estable 0.3.12-beta.1.
10
12
  - Se hace estable feature/pop-up-inicial.
@@ -7,27 +7,31 @@ export class DynamicsFilter extends Filter {
7
7
  return 'dynamics';
8
8
  }
9
9
  setContent(options) {
10
- options = options.map((option) => option = this.createElement(option));
11
- this.data = options;
10
+ if (!Array.isArray(options)) {
11
+ this.data = [];
12
+ return;
13
+ }
14
+ this.data = options.map((opt) => this.createElement(opt));
12
15
  }
13
16
  getContent() {
14
- throw new Error("Method not implemented.");
17
+ return this.data;
15
18
  }
16
19
  toUrlParams = (actual_url = '&optionCodes=', sublist, already) => {
17
- let elements = sublist || this.data;
20
+ const elements = sublist || this.data;
18
21
  let aux_url = '';
19
22
  elements.forEach((element) => {
20
- if (element.type == 'sub') {
21
- let result = this.toUrlParams('', element.children, (actual_url != '&optionCodes=' && actual_url != ''));
22
- if (!actual_url.includes(result))
23
+ if (element.type === 'sub') {
24
+ const result = this.toUrlParams('', element.children, (actual_url !== '&optionCodes=' && actual_url !== ''));
25
+ if (result && !actual_url.includes(result)) {
23
26
  actual_url += this.cleanResult(result);
27
+ }
24
28
  }
25
29
  else if (element.selected) {
26
- if (actual_url == '&optionCodes=' && aux_url == '') {
30
+ if (actual_url === '&optionCodes=' && aux_url === '') {
27
31
  aux_url = element.value;
28
32
  }
29
33
  else {
30
- if (aux_url == '')
34
+ if (aux_url === '')
31
35
  aux_url = (already ? '<and>' : '') + element.value;
32
36
  else
33
37
  aux_url += ('<and>' + element.value);
@@ -37,22 +41,26 @@ export class DynamicsFilter extends Filter {
37
41
  return actual_url + aux_url;
38
42
  };
39
43
  createElement(option) {
40
- option = {
41
- title: option.label, useToFilter: option.useToFilter, type: 'sub', multi: false, code: option.code, shape: option.type, children: option.values.map((value) => {
42
- return {
43
- title: value.code,
44
- description: value.name,
45
- code: (option.code + ' ' + value.name),
46
- type: 'child',
47
- value: value.code,
48
- selected: false,
49
- image: value.image
50
- };
51
- })
44
+ const values = Array.isArray(option?.values) ? option.values : [];
45
+ return {
46
+ title: option?.label,
47
+ useToFilter: option?.useToFilter,
48
+ type: 'sub',
49
+ multi: false,
50
+ code: option?.code,
51
+ shape: option?.type,
52
+ children: values.map((value) => ({
53
+ title: value?.code,
54
+ description: value?.name,
55
+ code: `${option?.code} ${value?.name}`,
56
+ type: 'child',
57
+ value: value?.code,
58
+ selected: false,
59
+ image: value?.image
60
+ }))
52
61
  };
53
- return option;
54
62
  }
55
63
  cleanResult(text) { return text.replace('&optionCodes=', ''); }
56
64
  ;
57
65
  }
58
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pY3MtZmlsdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2NsYXNzZXMvZmlsdGVycy9keW5hbWljcy1maWx0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUVsQyxNQUFNLE9BQU8sY0FBZSxTQUFRLE1BQU07SUFDdEMsYUFBYSxHQUFHLEVBQUUsQ0FBQztJQUNWLElBQUksR0FBb0IsRUFBRSxDQUFDO0lBQzNCLEtBQUssR0FBWSxJQUFJLENBQUM7SUFFdEIsSUFBSTtRQUNULE9BQU8sVUFBVSxDQUFDO0lBQ3RCLENBQUM7SUFDUSxVQUFVLENBQUMsT0FBWTtRQUM1QixPQUFPLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQVUsRUFBRSxFQUFFLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUMzRSxJQUFJLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQztJQUN4QixDQUFDO0lBQ1EsVUFBVTtRQUNmLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBQ1EsV0FBVyxHQUFHLENBQUMsVUFBVSxHQUFHLGVBQWUsRUFBRSxPQUFZLEVBQUUsT0FBWSxFQUFTLEVBQUU7UUFDdkYsSUFBSSxRQUFRLEdBQUcsT0FBTyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDcEMsSUFBSSxPQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFXLEVBQUUsRUFBRTtZQUM3QixJQUFJLE9BQU8sQ0FBQyxJQUFJLElBQUksS0FBSyxFQUFFLENBQUM7Z0JBQ3hCLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxFQUFFLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxVQUFVLElBQUksZUFBZSxJQUFJLFVBQVUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFBO2dCQUN4RyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUM7b0JBQUUsVUFBVSxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDN0UsQ0FBQztpQkFBTSxJQUFJLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDMUIsSUFBSSxVQUFVLElBQUksZUFBZSxJQUFJLE9BQU8sSUFBSSxFQUFFLEVBQUUsQ0FBQztvQkFDakQsT0FBTyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUM7Z0JBQzVCLENBQUM7cUJBQ0ksQ0FBQztvQkFDRixJQUFJLE9BQU8sSUFBSSxFQUFFO3dCQUFFLE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDOzt3QkFDakUsT0FBTyxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDOUMsQ0FBQztZQUNMLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQTtRQUNGLE9BQU8sVUFBVSxHQUFHLE9BQU8sQ0FBQztJQUNoQyxDQUFDLENBQUM7SUFFTyxhQUFhLENBQUMsTUFBVztRQUM5QixNQUFNLEdBQUc7WUFDTCxLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUssRUFBRSxXQUFXLEVBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBUyxFQUFFLEVBQUU7Z0JBQzdKLE9BQU87b0JBQ0gsS0FBSyxFQUFFLEtBQUssQ0FBQyxJQUFJO29CQUNqQixXQUFXLEVBQUUsS0FBSyxDQUFDLElBQUk7b0JBQ3ZCLElBQUksRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEdBQUcsR0FBRyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUM7b0JBQ3RDLElBQUksRUFBRSxPQUFPO29CQUNiLEtBQUssRUFBRSxLQUFLLENBQUMsSUFBSTtvQkFDakIsUUFBUSxFQUFFLEtBQUs7b0JBQ2YsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLO2lCQUNyQixDQUFBO1lBQ0wsQ0FBQyxDQUFDO1NBQ0wsQ0FBQTtRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUM7SUFFRCxXQUFXLENBQUMsSUFBVyxJQUFHLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlLEVBQUUsRUFBRSxDQUFDLENBQUEsQ0FBQSxDQUFDO0lBQUEsQ0FBQztDQUN2RSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZpbHRlckVsZW1lbnQsIEZpbHRlclR5cGUsIElGaWx0ZXIgfSBmcm9tIFwiLi4vLi4vaW50ZXJmYWNlc1wiO1xuaW1wb3J0IHsgRmlsdGVyIH0gZnJvbSBcIi4vZmlsdGVyXCI7XG5cbmV4cG9ydCBjbGFzcyBEeW5hbWljc0ZpbHRlciBleHRlbmRzIEZpbHRlcntcbiAgICBnZW5lcmF0ZWRfdXJsID0gJyc7XG4gICAgb3ZlcnJpZGUgZGF0YTogRmlsdGVyRWxlbWVudFtdID0gW107XG4gICAgb3ZlcnJpZGUgbXVsdGk6IGJvb2xlYW4gPSB0cnVlO1xuICAgIFxuICAgIG92ZXJyaWRlIHR5cGUoKTogRmlsdGVyVHlwZSB7XG4gICAgICAgIHJldHVybiAnZHluYW1pY3MnO1xuICAgIH1cbiAgICBvdmVycmlkZSBzZXRDb250ZW50KG9wdGlvbnM6IGFueSk6IHZvaWQge1xuICAgICAgICBvcHRpb25zID0gb3B0aW9ucy5tYXAoKG9wdGlvbjphbnkpID0+IG9wdGlvbiA9IHRoaXMuY3JlYXRlRWxlbWVudChvcHRpb24pKTtcbiAgICAgICAgdGhpcy5kYXRhID0gb3B0aW9ucztcbiAgICB9XG4gICAgb3ZlcnJpZGUgZ2V0Q29udGVudCgpOiBGaWx0ZXJFbGVtZW50W10ge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNZXRob2Qgbm90IGltcGxlbWVudGVkLlwiKTtcbiAgICB9XG4gICAgb3ZlcnJpZGUgdG9VcmxQYXJhbXMgPSAoYWN0dWFsX3VybCA9ICcmb3B0aW9uQ29kZXM9Jywgc3VibGlzdD86YW55LCBhbHJlYWR5PzphbnkpOnN0cmluZyA9PiB7XG4gICAgICAgIGxldCBlbGVtZW50cyA9IHN1Ymxpc3QgfHwgdGhpcy5kYXRhO1xuICAgICAgICBsZXQgYXV4X3VybCA9ICcnO1xuICAgICAgICBlbGVtZW50cy5mb3JFYWNoKChlbGVtZW50OmFueSkgPT4ge1xuICAgICAgICAgICAgaWYgKGVsZW1lbnQudHlwZSA9PSAnc3ViJykge1xuICAgICAgICAgICAgICAgIGxldCByZXN1bHQgPSB0aGlzLnRvVXJsUGFyYW1zKCcnLCBlbGVtZW50LmNoaWxkcmVuLCAoYWN0dWFsX3VybCAhPSAnJm9wdGlvbkNvZGVzPScgJiYgYWN0dWFsX3VybCAhPSAnJykpXG4gICAgICAgICAgICAgICAgaWYgKCFhY3R1YWxfdXJsLmluY2x1ZGVzKHJlc3VsdCkpIGFjdHVhbF91cmwgKz0gdGhpcy5jbGVhblJlc3VsdChyZXN1bHQpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChlbGVtZW50LnNlbGVjdGVkKSB7XG4gICAgICAgICAgICAgICAgaWYgKGFjdHVhbF91cmwgPT0gJyZvcHRpb25Db2Rlcz0nICYmIGF1eF91cmwgPT0gJycpIHtcbiAgICAgICAgICAgICAgICAgICAgYXV4X3VybCA9IGVsZW1lbnQudmFsdWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBpZiAoYXV4X3VybCA9PSAnJykgYXV4X3VybCA9IChhbHJlYWR5ID8gJzxhbmQ+JyA6ICcnKSArIGVsZW1lbnQudmFsdWU7XG4gICAgICAgICAgICAgICAgICAgIGVsc2UgYXV4X3VybCArPSAoJzxhbmQ+JyArIGVsZW1lbnQudmFsdWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICAgcmV0dXJuIGFjdHVhbF91cmwgKyBhdXhfdXJsO1xuICAgIH07XG4gICAgXG4gICAgb3ZlcnJpZGUgY3JlYXRlRWxlbWVudChvcHRpb246IGFueSkge1xuICAgICAgICBvcHRpb24gPSB7XG4gICAgICAgICAgICB0aXRsZTogb3B0aW9uLmxhYmVsLCB1c2VUb0ZpbHRlcjpvcHRpb24udXNlVG9GaWx0ZXIsIHR5cGU6ICdzdWInLCBtdWx0aTogZmFsc2UsIGNvZGU6IG9wdGlvbi5jb2RlLCBzaGFwZTogb3B0aW9uLnR5cGUsIGNoaWxkcmVuOiBvcHRpb24udmFsdWVzLm1hcCgodmFsdWU6YW55KSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6IHZhbHVlLmNvZGUsXG4gICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiB2YWx1ZS5uYW1lLFxuICAgICAgICAgICAgICAgICAgICBjb2RlOiAob3B0aW9uLmNvZGUgKyAnICcgKyB2YWx1ZS5uYW1lKSxcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogJ2NoaWxkJyxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHZhbHVlLmNvZGUsXG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgaW1hZ2U6IHZhbHVlLmltYWdlXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb3B0aW9uO1xuICAgIH1cblxuICAgIGNsZWFuUmVzdWx0KHRleHQ6c3RyaW5nKSB7cmV0dXJuIHRleHQucmVwbGFjZSgnJm9wdGlvbkNvZGVzPScsICcnKX07XG59XG4iXX0=
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pY3MtZmlsdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2NsYXNzZXMvZmlsdGVycy9keW5hbWljcy1maWx0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUVsQyxNQUFNLE9BQU8sY0FBZSxTQUFRLE1BQU07SUFDdEMsYUFBYSxHQUFHLEVBQUUsQ0FBQztJQUNWLElBQUksR0FBb0IsRUFBRSxDQUFDO0lBQzNCLEtBQUssR0FBWSxJQUFJLENBQUM7SUFFdEIsSUFBSTtRQUNULE9BQU8sVUFBVSxDQUFDO0lBQ3RCLENBQUM7SUFDUSxVQUFVLENBQUMsT0FBWTtRQUM1QixJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQzFCLElBQUksQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDO1lBQ2YsT0FBTztRQUNYLENBQUM7UUFDRCxJQUFJLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFRLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBQ1EsVUFBVTtRQUNmLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztJQUNyQixDQUFDO0lBQ1EsV0FBVyxHQUFHLENBQUMsVUFBVSxHQUFHLGVBQWUsRUFBRSxPQUFhLEVBQUUsT0FBaUIsRUFBVSxFQUFFO1FBQzlGLE1BQU0sUUFBUSxHQUFHLE9BQU8sSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ3RDLElBQUksT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUNqQixRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBWSxFQUFFLEVBQUU7WUFDOUIsSUFBSSxPQUFPLENBQUMsSUFBSSxLQUFLLEtBQUssRUFBRSxDQUFDO2dCQUN6QixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUMzQixFQUFFLEVBQ0YsT0FBTyxDQUFDLFFBQVEsRUFDaEIsQ0FBQyxVQUFVLEtBQUssZUFBZSxJQUFJLFVBQVUsS0FBSyxFQUFFLENBQUMsQ0FDeEQsQ0FBQztnQkFDRixJQUFJLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztvQkFDekMsVUFBVSxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQzNDLENBQUM7WUFDTCxDQUFDO2lCQUFNLElBQUksT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUMxQixJQUFJLFVBQVUsS0FBSyxlQUFlLElBQUksT0FBTyxLQUFLLEVBQUUsRUFBRSxDQUFDO29CQUNuRCxPQUFPLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQztnQkFDNUIsQ0FBQztxQkFBTSxDQUFDO29CQUNKLElBQUksT0FBTyxLQUFLLEVBQUU7d0JBQUUsT0FBTyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUM7O3dCQUNsRSxPQUFPLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUM5QyxDQUFDO1lBQ0wsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxVQUFVLEdBQUcsT0FBTyxDQUFDO0lBQ2hDLENBQUMsQ0FBQztJQUVPLGFBQWEsQ0FBQyxNQUFXO1FBQzlCLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDbEUsT0FBTztZQUNILEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSztZQUNwQixXQUFXLEVBQUUsTUFBTSxFQUFFLFdBQVc7WUFDaEMsSUFBSSxFQUFFLEtBQUs7WUFDWCxLQUFLLEVBQUUsS0FBSztZQUNaLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSTtZQUNsQixLQUFLLEVBQUUsTUFBTSxFQUFFLElBQUk7WUFDbkIsUUFBUSxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFVLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQ2xDLEtBQUssRUFBRSxLQUFLLEVBQUUsSUFBSTtnQkFDbEIsV0FBVyxFQUFFLEtBQUssRUFBRSxJQUFJO2dCQUN4QixJQUFJLEVBQUUsR0FBRyxNQUFNLEVBQUUsSUFBSSxJQUFJLEtBQUssRUFBRSxJQUFJLEVBQUU7Z0JBQ3RDLElBQUksRUFBRSxPQUFPO2dCQUNiLEtBQUssRUFBRSxLQUFLLEVBQUUsSUFBSTtnQkFDbEIsUUFBUSxFQUFFLEtBQUs7Z0JBQ2YsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLO2FBQ3RCLENBQUMsQ0FBQztTQUNXLENBQUM7SUFDdkIsQ0FBQztJQUVELFdBQVcsQ0FBQyxJQUFZLElBQUksT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsRUFBRSxFQUFFLENBQUMsQ0FBQSxDQUFDLENBQUM7SUFBQSxDQUFDO0NBQzFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmlsdGVyRWxlbWVudCwgRmlsdGVyVHlwZSwgSUZpbHRlciB9IGZyb20gXCIuLi8uLi9pbnRlcmZhY2VzXCI7XG5pbXBvcnQgeyBGaWx0ZXIgfSBmcm9tIFwiLi9maWx0ZXJcIjtcblxuZXhwb3J0IGNsYXNzIER5bmFtaWNzRmlsdGVyIGV4dGVuZHMgRmlsdGVyIHtcbiAgICBnZW5lcmF0ZWRfdXJsID0gJyc7XG4gICAgb3ZlcnJpZGUgZGF0YTogRmlsdGVyRWxlbWVudFtdID0gW107XG4gICAgb3ZlcnJpZGUgbXVsdGk6IGJvb2xlYW4gPSB0cnVlO1xuXG4gICAgb3ZlcnJpZGUgdHlwZSgpOiBGaWx0ZXJUeXBlIHtcbiAgICAgICAgcmV0dXJuICdkeW5hbWljcyc7XG4gICAgfVxuICAgIG92ZXJyaWRlIHNldENvbnRlbnQob3B0aW9uczogYW55KTogdm9pZCB7XG4gICAgICAgIGlmICghQXJyYXkuaXNBcnJheShvcHRpb25zKSkge1xuICAgICAgICAgICAgdGhpcy5kYXRhID0gW107XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5kYXRhID0gb3B0aW9ucy5tYXAoKG9wdDogYW55KSA9PiB0aGlzLmNyZWF0ZUVsZW1lbnQob3B0KSk7XG4gICAgfVxuICAgIG92ZXJyaWRlIGdldENvbnRlbnQoKTogRmlsdGVyRWxlbWVudFtdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGF0YTtcbiAgICB9XG4gICAgb3ZlcnJpZGUgdG9VcmxQYXJhbXMgPSAoYWN0dWFsX3VybCA9ICcmb3B0aW9uQ29kZXM9Jywgc3VibGlzdD86IGFueSwgYWxyZWFkeT86IGJvb2xlYW4pOiBzdHJpbmcgPT4ge1xuICAgICAgICBjb25zdCBlbGVtZW50cyA9IHN1Ymxpc3QgfHwgdGhpcy5kYXRhO1xuICAgICAgICBsZXQgYXV4X3VybCA9ICcnO1xuICAgICAgICBlbGVtZW50cy5mb3JFYWNoKChlbGVtZW50OiBhbnkpID0+IHtcbiAgICAgICAgICAgIGlmIChlbGVtZW50LnR5cGUgPT09ICdzdWInKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gdGhpcy50b1VybFBhcmFtcyhcbiAgICAgICAgICAgICAgICAgICAgJycsXG4gICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2hpbGRyZW4sXG4gICAgICAgICAgICAgICAgICAgIChhY3R1YWxfdXJsICE9PSAnJm9wdGlvbkNvZGVzPScgJiYgYWN0dWFsX3VybCAhPT0gJycpXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBpZiAocmVzdWx0ICYmICFhY3R1YWxfdXJsLmluY2x1ZGVzKHJlc3VsdCkpIHtcbiAgICAgICAgICAgICAgICAgICAgYWN0dWFsX3VybCArPSB0aGlzLmNsZWFuUmVzdWx0KHJlc3VsdCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmIChlbGVtZW50LnNlbGVjdGVkKSB7XG4gICAgICAgICAgICAgICAgaWYgKGFjdHVhbF91cmwgPT09ICcmb3B0aW9uQ29kZXM9JyAmJiBhdXhfdXJsID09PSAnJykge1xuICAgICAgICAgICAgICAgICAgICBhdXhfdXJsID0gZWxlbWVudC52YWx1ZTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBpZiAoYXV4X3VybCA9PT0gJycpIGF1eF91cmwgPSAoYWxyZWFkeSA/ICc8YW5kPicgOiAnJykgKyBlbGVtZW50LnZhbHVlO1xuICAgICAgICAgICAgICAgICAgICBlbHNlIGF1eF91cmwgKz0gKCc8YW5kPicgKyBlbGVtZW50LnZhbHVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gYWN0dWFsX3VybCArIGF1eF91cmw7XG4gICAgfTtcblxuICAgIG92ZXJyaWRlIGNyZWF0ZUVsZW1lbnQob3B0aW9uOiBhbnkpOiBGaWx0ZXJFbGVtZW50IHtcbiAgICAgICAgY29uc3QgdmFsdWVzID0gQXJyYXkuaXNBcnJheShvcHRpb24/LnZhbHVlcykgPyBvcHRpb24udmFsdWVzIDogW107XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0aXRsZTogb3B0aW9uPy5sYWJlbCxcbiAgICAgICAgICAgIHVzZVRvRmlsdGVyOiBvcHRpb24/LnVzZVRvRmlsdGVyLFxuICAgICAgICAgICAgdHlwZTogJ3N1YicsXG4gICAgICAgICAgICBtdWx0aTogZmFsc2UsXG4gICAgICAgICAgICBjb2RlOiBvcHRpb24/LmNvZGUsXG4gICAgICAgICAgICBzaGFwZTogb3B0aW9uPy50eXBlLFxuICAgICAgICAgICAgY2hpbGRyZW46IHZhbHVlcy5tYXAoKHZhbHVlOiBhbnkpID0+ICh7XG4gICAgICAgICAgICAgICAgdGl0bGU6IHZhbHVlPy5jb2RlLFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiB2YWx1ZT8ubmFtZSxcbiAgICAgICAgICAgICAgICBjb2RlOiBgJHtvcHRpb24/LmNvZGV9ICR7dmFsdWU/Lm5hbWV9YCxcbiAgICAgICAgICAgICAgICB0eXBlOiAnY2hpbGQnLFxuICAgICAgICAgICAgICAgIHZhbHVlOiB2YWx1ZT8uY29kZSxcbiAgICAgICAgICAgICAgICBzZWxlY3RlZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgaW1hZ2U6IHZhbHVlPy5pbWFnZVxuICAgICAgICAgICAgfSkpXG4gICAgICAgIH0gYXMgRmlsdGVyRWxlbWVudDtcbiAgICB9XG5cbiAgICBjbGVhblJlc3VsdCh0ZXh0OiBzdHJpbmcpIHsgcmV0dXJuIHRleHQucmVwbGFjZSgnJm9wdGlvbkNvZGVzPScsICcnKSB9O1xufVxuIl19
@@ -5,10 +5,12 @@ export class Filter {
5
5
  throw new Error("Method not implemented.");
6
6
  }
7
7
  setContent(options) {
8
- throw new Error("Method not implemented.");
8
+ if (Array.isArray(options)) {
9
+ this.data = options;
10
+ }
9
11
  }
10
12
  getContent() {
11
- throw new Error("Method not implemented.");
13
+ return this.data;
12
14
  }
13
15
  toUrlParams() {
14
16
  throw new Error("Method not implemented.");
@@ -79,5 +81,12 @@ export class Filter {
79
81
  });
80
82
  return result;
81
83
  };
84
+ reset(children) {
85
+ let data = children || this.data;
86
+ data.forEach((element) => {
87
+ element.selected = false;
88
+ (element.children && element.children.length > 0) && this.reset(element.children);
89
+ });
90
+ }
82
91
  }
83
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2NsYXNzZXMvZmlsdGVycy9maWx0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxPQUFPLE1BQU07SUFFZixJQUFJLEdBQW9CLEVBQUUsQ0FBQztJQUMzQixLQUFLLEdBQVksS0FBSyxDQUFDO0lBRXZCLElBQUk7UUFDQSxNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUNELFVBQVUsQ0FBQyxPQUFZO1FBQ25CLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBQ0QsVUFBVTtRQUNOLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBQ0QsV0FBVztRQUNQLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBQ0QsYUFBYSxDQUFDLE1BQVcsRUFBRSxRQUFhLEVBQUUsWUFBa0I7UUFDeEQsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFDRCxhQUFhLEdBQUcsQ0FBQyxHQUFVLEVBQUUsRUFBRTtRQUMzQixPQUFPLEdBQUcsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFDLGtCQUFrQixFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ2hFLENBQUMsQ0FBQTtJQUVELFdBQVcsQ0FBQyxPQUFXLEVBQUUsS0FBVTtRQUMvQiw4QkFBOEI7UUFDOUIsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLElBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUks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SUFBSSxPQUFPLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNuRCxJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQ1YsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDMUIsT0FBTyxNQUFNLENBQUM7UUFDbEIsQ0FBQztRQUNELFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDcEIsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ3hDLElBQUksVUFBVSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztnQkFDMUQsSUFBSSxVQUFVO29CQUFFLE1BQU0sR0FBRyxVQUFVLENBQUM7WUFDeEMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFBO1FBQ0YsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQyxDQUFBO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGaWx0ZXJFbGVtZW50LCBGaWx0ZXJUeXBlLCBJRmlsdGVyIH0gZnJvbSBcIi4uLy4uL2ludGVyZmFjZXNcIjtcblxuZXhwb3J0IGNsYXNzIEZpbHRlciBpbXBsZW1lbnRzIElGaWx0ZXIgIHtcbiAgICBcbiAgICBkYXRhOiBGaWx0ZXJFbGVtZW50W10gPSBbXTtcbiAgICBtdWx0aTogYm9vbGVhbiA9IGZhbHNlO1xuICAgIFxuICAgIHR5cGUoKTogRmlsdGVyVHlwZSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIk1ldGhvZCBub3QgaW1wbGVtZW50ZWQuXCIpO1xuICAgIH1cbiAgICBzZXRDb250ZW50KG9wdGlvbnM6IGFueSk6IHZvaWQge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNZXRob2Qgbm90IGltcGxlbWVudGVkLlwiKTtcbiAgICB9XG4gICAgZ2V0Q29udGVudCgpOiBGaWx0ZXJFbGVtZW50W10ge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNZXRob2Qgbm90IGltcGxlbWVudGVkLlwiKTtcbiAgICB9XG4gICAgdG9VcmxQYXJhbXMoKTogc3RyaW5nIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC5cIik7XG4gICAgfVxuICAgIGNyZWF0ZUVsZW1lbnQoZmlsdGVyOiBhbnksIG9yaWdpbmFsOiBhbnksIGluaXRpYWxWYWx1ZT86IGFueSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNZXRob2Qgbm90IGltcGxlbWVudGVkLlwiKTtcbiAgICB9XG4gICAgcmVtb3ZlQWNjZW50cyA9IChzdHI6c3RyaW5nKSA9PiB7XG4gICAgICAgIHJldHVybiBzdHIubm9ybWFsaXplKFwiTkZEXCIpLnJlcGxhY2UoL1tcXHUwMzAwLVxcdTAzNmZdL2csIFwiXCIpO1xuICAgIH1cblxuICAgIHNldFNlbGVjdGVkKGVsZW1lbnQ6YW55LCB2YWx1ZT86YW55KXtcbiAgICAgICAgLy9jb25zb2xlLmxvZyhlbGVtZW50LCB2YWx1ZSk7XG4gICAgICAgICgoZWxlbWVudC5tdWx0aSAhPSB1bmRlZmluZWQpICYmICFlbGVtZW50Lm11bHRpKSA/IHRoaXMuY2xlYW5GaWx0ZXIodGhpcy5kYXRhLCBlbGVtZW50KSA6IG51bGw7XG4gICAgICAgIHRoaXMuc2V0U2VsZWN0ZWRWYWx1ZShlbGVtZW50LCB2YWx1ZSk7XG4gICAgfVxuXG4gICAgY2xlYW5GaWx0ZXIgPSAoZGF0YTphbnksIGVsZW1lbnRfdG9fY2hhbmdlOmFueSkgPT4ge1xuICAgICAgICAvL2NvbnNvbGUubG9nKFwiY2xlYW5GaWx0ZXJcIik7XG4gICAgICAgIGVsZW1lbnRfdG9fY2hhbmdlICYmIGRhdGEuZm9yRWFjaCgoZWxlbWVudDphbnkpID0+IHtcbiAgICAgICAgICAgIGVsZW1lbnRfdG9fY2hhbmdlICE9IGVsZW1lbnQgPyBlbGVtZW50LnNlbGVjdGVkID0gZmFsc2UgOiBudWxsO1xuICAgICAgICAgICAgKGVsZW1lbnQuY2hpbGRyZW4gJiYgZWxlbWVudC5jaGlsZHJlbi5sZW5ndGggPiAwKSAmJiB0aGlzLmNsZWFuRmlsdGVyKGVsZW1lbnQuY2hpbGRyZW4sIGVsZW1lbnRfdG9fY2hhbmdlKTtcbiAgICAgICAgfSlcbiAgICB9XG5cbiAgICBzZXRTZWxlY3RlZFZhbHVlKGVsZW1lbnQ6YW55LCB2YWx1ZT86YW55LCBzdWJsaXN0PzphbnksIG11bHRpPzphbnkpe1xuICAgICAgICBsZXQgZWxlbWVudHMgPSBzdWJsaXN0IHx8IHRoaXMuZGF0YTtcbiAgICAgICAgbGV0IGluZGV4ID0gZWxlbWVudHMuZmluZEluZGV4KChzdWJlbGVtZW50OmFueSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIChlbGVtZW50LmNvZGUgfHwgZWxlbWVudCkgPT0gc3ViZWxlbWVudC5jb2RlO1xuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGluZGV4ID49IDApIHtcbiAgICAgICAgICAgIGVsZW1lbnRzW2luZGV4XS5zZWxlY3RlZCA9IGVsZW1lbnRzW2luZGV4XS5zZWxlY3RlZCA/IGZhbHNlIDogdHJ1ZTtcbiAgICAgICAgICAgICFtdWx0aSAmJiBlbGVtZW50cy5mb3JFYWNoKChjaGlsZDphbnksIGk6bnVtYmVyKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGkgIT0gaW5kZXgpIGNoaWxkLnNlbGVjdGVkID0gZmFsc2U7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgZWxlbWVudHMsXG4gICAgICAgICAgICAgICAgZm91bmRlZDogdHJ1ZVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGVsZW1lbnRzLnNvbWUoKGVsZW06YW55KSA9PiBlbGVtLnR5cGUgPT0gJ3N1YicpICYmIGVsZW1lbnRzLnNvbWUoXG4gICAgICAgICAgICAgICAgKGZpbHRlcjphbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGZvdW5kZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGZpbHRlci50eXBlID09ICdzdWInKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSB0aGlzLnNldFNlbGVjdGVkVmFsdWUoZWxlbWVudCwgdmFsdWUsIGZpbHRlci5jaGlsZHJlbiwgZmlsdGVyLm11bHRpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgJiYgcmVzdWx0LmZvdW5kZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXIuY2hpbGRyZW4gPSByZXN1bHQuZWxlbWVudHM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm91bmRlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZvdW5kZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH07XG5cbiAgICBnZXRTZWxlY3RlZExpc3QgPSAoKTogYW55ID0+IHRoaXMuZmluZFNlbGVjdGVkKHRoaXMuZGF0YSwgW10pO1xuXG4gICAgZmluZFNlbGVjdGVkID0gKGVsZW1lbnRzOiBhbnlbXSwgcmVzdWx0OmFueSkgPT4ge1xuICAgICAgICBsZXQgZWxlbWVudCA9IGVsZW1lbnRzLmZpbmQoZWxlbSA9PiBlbGVtLnNlbGVjdGVkKTtcbiAgICAgICAgaWYgKGVsZW1lbnQpIHtcbiAgICAgICAgICAgIHJlc3VsdC5wdXNoKGVsZW1lbnQuY29kZSk7XG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICB9XG4gICAgICAgIGVsZW1lbnRzLmZvckVhY2goZWxlbSA9PiB7XG4gICAgICAgICAgICBpZiAoZWxlbS5jaGlsZHJlbiAmJiBlbGVtLmNoaWxkcmVuLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIGxldCBuZXdfcmVzdWx0ID0gdGhpcy5maW5kU2VsZWN0ZWQoZWxlbS5jaGlsZHJlbiwgcmVzdWx0KTtcbiAgICAgICAgICAgICAgICBpZiAobmV3X3Jlc3VsdCkgcmVzdWx0ID0gbmV3X3Jlc3VsdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG59XG4iXX0=
92
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2NsYXNzZXMvZmlsdGVycy9maWx0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxPQUFPLE1BQU07SUFFZixJQUFJLEdBQW9CLEVBQUUsQ0FBQztJQUMzQixLQUFLLEdBQVksS0FBSyxDQUFDO0lBRXZCLElBQUk7UUFDQSxNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUNELFVBQVUsQ0FBQyxPQUFZO1FBQ25CLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxJQUFJLEdBQUcsT0FBMEIsQ0FBQztRQUMzQyxDQUFDO0lBQ0wsQ0FBQztJQUNELFVBQVU7UUFDTixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDckIsQ0FBQztJQUNELFdBQVc7UUFDUCxNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUNELGFBQWEsQ0FBQyxNQUFXLEVBQUUsUUFBYSxFQUFFLFlBQWtCO1FBQ3hELE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBQ0QsYUFBYSxHQUFHLENBQUMsR0FBVSxFQUFFLEVBQUU7UUFDM0IsT0FBTyxHQUFHLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNoRSxDQUFDLENBQUE7SUFFRCxXQUFXLENBQUMsT0FBVyxFQUFFLEtBQVU7UUFDL0IsOEJBQThCO1FBQzlCLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxJQUFJLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENB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ZnJvbSBcIi4uLy4uL2ludGVyZmFjZXNcIjtcblxuZXhwb3J0IGNsYXNzIEZpbHRlciBpbXBsZW1lbnRzIElGaWx0ZXIgIHtcbiAgICBcbiAgICBkYXRhOiBGaWx0ZXJFbGVtZW50W10gPSBbXTtcbiAgICBtdWx0aTogYm9vbGVhbiA9IGZhbHNlO1xuICAgIFxuICAgIHR5cGUoKTogRmlsdGVyVHlwZSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIk1ldGhvZCBub3QgaW1wbGVtZW50ZWQuXCIpO1xuICAgIH1cbiAgICBzZXRDb250ZW50KG9wdGlvbnM6IGFueSk6IHZvaWQge1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShvcHRpb25zKSkge1xuICAgICAgICAgICAgdGhpcy5kYXRhID0gb3B0aW9ucyBhcyBGaWx0ZXJFbGVtZW50W107XG4gICAgICAgIH1cbiAgICB9XG4gICAgZ2V0Q29udGVudCgpOiBGaWx0ZXJFbGVtZW50W10ge1xuICAgICAgICByZXR1cm4gdGhpcy5kYXRhO1xuICAgIH1cbiAgICB0b1VybFBhcmFtcygpOiBzdHJpbmcge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNZXRob2Qgbm90IGltcGxlbWVudGVkLlwiKTtcbiAgICB9XG4gICAgY3JlYXRlRWxlbWVudChmaWx0ZXI6IGFueSwgb3JpZ2luYWw6IGFueSwgaW5pdGlhbFZhbHVlPzogYW55KSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIk1ldGhvZCBub3QgaW1wbGVtZW50ZWQuXCIpO1xuICAgIH1cbiAgICByZW1vdmVBY2NlbnRzID0gKHN0cjpzdHJpbmcpID0+IHtcbiAgICAgICAgcmV0dXJuIHN0ci5ub3JtYWxpemUoXCJORkRcIikucmVwbGFjZSgvW1xcdTAzMDAtXFx1MDM2Zl0vZywgXCJcIik7XG4gICAgfVxuXG4gICAgc2V0U2VsZWN0ZWQoZWxlbWVudDphbnksIHZhbHVlPzphbnkpe1xuICAgICAgICAvL2NvbnNvbGUubG9nKGVsZW1lbnQsIHZhbHVlKTtcbiAgICAgICAgKChlbGVtZW50Lm11bHRpICE9IHVuZGVmaW5lZCkgJiYgIWVsZW1lbnQubXVsdGkpID8gdGhpcy5jbGVhbkZpbHRlcih0aGlzLmRhdGEsIGVsZW1lbnQpIDogbnVsbDtcbiAgICAgICAgdGhpcy5zZXRTZWxlY3RlZFZhbHVlKGVsZW1lbnQsIHZhbHVlKTtcbiAgICB9XG5cbiAgICBjbGVhbkZpbHRlciA9IChkYXRhOmFueSwgZWxlbWVudF90b19jaGFuZ2U6YW55KSA9PiB7XG4gICAgICAgIC8vY29uc29sZS5sb2coXCJjbGVhbkZpbHRlclwiKTtcbiAgICAgICAgZWxlbWVudF90b19jaGFuZ2UgJiYgZGF0YS5mb3JFYWNoKChlbGVtZW50OmFueSkgPT4ge1xuICAgICAgICAgICAgZWxlbWVudF90b19jaGFuZ2UgIT0gZWxlbWVudCA/IGVsZW1lbnQuc2VsZWN0ZWQgPSBmYWxzZSA6IG51bGw7XG4gICAgICAgICAgICAoZWxlbWVudC5jaGlsZHJlbiAmJiBlbGVtZW50LmNoaWxkcmVuLmxlbmd0aCA+IDApICYmIHRoaXMuY2xlYW5GaWx0ZXIoZWxlbWVudC5jaGlsZHJlbiwgZWxlbWVudF90b19jaGFuZ2UpO1xuICAgICAgICB9KVxuICAgIH1cblxuICAgIHNldFNlbGVjdGVkVmFsdWUoZWxlbWVudDphbnksIHZhbHVlPzphbnksIHN1Ymxpc3Q/OmFueSwgbXVsdGk/OmFueSl7XG4gICAgICAgIGxldCBlbGVtZW50cyA9IHN1Ymxpc3QgfHwgdGhpcy5kYXRhO1xuICAgICAgICBsZXQgaW5kZXggPSBlbGVtZW50cy5maW5kSW5kZXgoKHN1YmVsZW1lbnQ6YW55KSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gKGVsZW1lbnQuY29kZSB8fCBlbGVtZW50KSA9PSBzdWJlbGVtZW50LmNvZGU7XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoaW5kZXggPj0gMCkge1xuICAgICAgICAgICAgZWxlbWVudHNbaW5kZXhdLnNlbGVjdGVkID0gZWxlbWVudHNbaW5kZXhdLnNlbGVjdGVkID8gZmFsc2UgOiB0cnVlO1xuICAgICAgICAgICAgIW11bHRpICYmIGVsZW1lbnRzLmZvckVhY2goKGNoaWxkOmFueSwgaTpudW1iZXIpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoaSAhPSBpbmRleCkgY2hpbGQuc2VsZWN0ZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBlbGVtZW50cyxcbiAgICAgICAgICAgICAgICBmb3VuZGVkOiB0cnVlXG4gICAgICAgICAgICB9O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZWxlbWVudHMuc29tZSgoZWxlbTphbnkpID0+IGVsZW0udHlwZSA9PSAnc3ViJykgJiYgZWxlbWVudHMuc29tZShcbiAgICAgICAgICAgICAgICAoZmlsdGVyOmFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBsZXQgZm91bmRlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICBpZiAoZmlsdGVyLnR5cGUgPT0gJ3N1YicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuc2V0U2VsZWN0ZWRWYWx1ZShlbGVtZW50LCB2YWx1ZSwgZmlsdGVyLmNoaWxkcmVuLCBmaWx0ZXIubXVsdGkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCAmJiByZXN1bHQuZm91bmRlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlci5jaGlsZHJlbiA9IHJlc3VsdC5lbGVtZW50cztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3VuZGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZm91bmRlZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfTtcblxuICAgIGdldFNlbGVjdGVkTGlzdCA9ICgpOiBhbnkgPT4gdGhpcy5maW5kU2VsZWN0ZWQodGhpcy5kYXRhLCBbXSk7XG5cbiAgICBmaW5kU2VsZWN0ZWQgPSAoZWxlbWVudHM6IGFueVtdLCByZXN1bHQ6YW55KSA9PiB7XG4gICAgICAgIGxldCBlbGVtZW50ID0gZWxlbWVudHMuZmluZChlbGVtID0+IGVsZW0uc2VsZWN0ZWQpO1xuICAgICAgICBpZiAoZWxlbWVudCkge1xuICAgICAgICAgICAgcmVzdWx0LnB1c2goZWxlbWVudC5jb2RlKTtcbiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH1cbiAgICAgICAgZWxlbWVudHMuZm9yRWFjaChlbGVtID0+IHtcbiAgICAgICAgICAgIGlmIChlbGVtLmNoaWxkcmVuICYmIGVsZW0uY2hpbGRyZW4ubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgbGV0IG5ld19yZXN1bHQgPSB0aGlzLmZpbmRTZWxlY3RlZChlbGVtLmNoaWxkcmVuLCByZXN1bHQpO1xuICAgICAgICAgICAgICAgIGlmIChuZXdfcmVzdWx0KSByZXN1bHQgPSBuZXdfcmVzdWx0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIHB1YmxpYyByZXNldChjaGlsZHJlbj86IGFueSk6IHZvaWQge1xuICAgICAgICBsZXQgZGF0YSA9IGNoaWxkcmVuIHx8IHRoaXMuZGF0YTtcbiAgICAgICAgZGF0YS5mb3JFYWNoKChlbGVtZW50OiBhbnkpID0+IHtcbiAgICAgICAgICAgIGVsZW1lbnQuc2VsZWN0ZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIChlbGVtZW50LmNoaWxkcmVuICYmIGVsZW1lbnQuY2hpbGRyZW4ubGVuZ3RoID4gMCkgJiYgdGhpcy5yZXNldChlbGVtZW50LmNoaWxkcmVuKTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19
@@ -56,4 +56,4 @@ export class PriceRangeFilter extends Filter {
56
56
  this.currentMaxPrice = null;
57
57
  };
58
58
  }
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpY2VfcmFuZ2UtZmlsdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2NsYXNzZXMvZmlsdGVycy9wcmljZV9yYW5nZS1maWx0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUdsQyxNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsTUFBTTtJQUNoQyxPQUFPLEdBQUcsS0FBSyxDQUFDO0lBRXhCLFFBQVEsR0FBVyxDQUFDLENBQUM7SUFDckIsUUFBUSxHQUFXLENBQUMsQ0FBQztJQUNyQixlQUFlLEdBQWtCLElBQUksQ0FBQztJQUN0QyxlQUFlLEdBQWtCLElBQUksQ0FBQztJQUU3QixJQUFJLEdBQUcsR0FBZSxFQUFFLENBQUMsYUFBYSxDQUFDO0lBRWhELHlDQUF5QztJQUN6QyxJQUFJLFFBQVE7UUFDUixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDeEIsQ0FBQztJQUVELHFEQUFxRDtJQUM1QyxVQUFVLEdBQUcsQ0FBQyxPQUFxRyxFQUFFLEVBQUU7UUFDNUgsSUFBSSxPQUFPLENBQUMsUUFBUSxJQUFJLElBQUksSUFBSSxPQUFPLENBQUMsUUFBUSxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ3ZELElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQztZQUNqQyxJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUM7WUFDakMsSUFBSSxDQUFDLGVBQWUsR0FBRyxPQUFPLENBQUMsZUFBZSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUM7WUFDaEUsSUFBSSxDQUFDLGVBQWUsR0FBRyxPQUFPLENBQUMsZUFBZSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUM7WUFDaEUsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFDeEIsQ0FBQztJQUNMLENBQUMsQ0FBQTtJQUVELFlBQVksQ0FBQyxHQUFXLEVBQUUsR0FBVztRQUNqQyxJQUFJLENBQUMsUUFBUSxHQUFHLEdBQUcsQ0FBQztRQUNwQixJQUFJLENBQUMsUUFBUSxHQUFHLEdBQUcsQ0FBQztRQUNwQixJQUFJLElBQUksQ0FBQyxlQUFlLEtBQUssSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsR0FBRyxHQUFHLElBQUksSUFBSSxDQUFDLGVBQWUsR0FBRyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQzlGLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDO1FBQ2hDLENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxlQUFlLEtBQUssSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsR0FBRyxHQUFHLElBQUksSUFBSSxDQUFDLGVBQWUsR0FBRyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQzlGLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDO1FBQ2hDLENBQUM7UUFFRCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztJQUN4QixDQUFDO0lBRUQsbURBQW1EO0lBQzFDLFdBQVcsR0FBRyxDQUFDLEdBQVcsRUFBRSxHQUFXLEVBQVEsRUFBRTtRQUN0RCxJQUFJLENBQUMsZUFBZSxHQUFHLEdBQUcsS0FBSyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUMxRCxJQUFJLENBQUMsZUFBZSxHQUFHLEdBQUcsS0FBSyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUM5RCxDQUFDLENBQUE7SUFFRCx1REFBdUQ7SUFDdkQsZ0JBQWdCLEdBQUcsR0FBaUMsRUFBRSxDQUFDLENBQUM7UUFDcEQsR0FBRyxFQUFFLElBQUksQ0FBQyxlQUFlLElBQUksSUFBSSxDQUFDLFFBQVM7UUFDM0MsR0FBRyxFQUFFLElBQUksQ0FBQyxlQUFlLElBQUksSUFBSSxDQUFDLFFBQVM7S0FDOUMsQ0FBQyxDQUFBO0lBRUYsMkVBQTJFO0lBQ2xFLFdBQVcsR0FBRyxHQUFXLEVBQUU7UUFDaEMsSUFBSSxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLElBQUksSUFBSSxDQUFDLGVBQWUsSUFBSSxJQUFJO1lBQUUsTUFBTSxJQUFJLGNBQWMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ2pGLElBQUksSUFBSSxDQUFDLGVBQWUsSUFBSSxJQUFJO1lBQUUsTUFBTSxJQUFJLGNBQWMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ2pGLE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUMsQ0FBQTtJQUVELGlEQUFpRDtJQUNqRCxLQUFLLEdBQUcsR0FBUyxFQUFFO1FBQ2YsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7UUFDNUIsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7SUFDaEMsQ0FBQyxDQUFBO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGaWx0ZXIgfSBmcm9tIFwiLi9maWx0ZXJcIjtcbmltcG9ydCB7IEZpbHRlckVsZW1lbnQsIEZpbHRlclR5cGUgfSBmcm9tIFwiLi4vLi4vaW50ZXJmYWNlcy9maWx0ZXJcIjtcblxuZXhwb3J0IGNsYXNzIFByaWNlUmFuZ2VGaWx0ZXIgZXh0ZW5kcyBGaWx0ZXIge1xuICAgIHByaXZhdGUgX2xvYWRlZCA9IGZhbHNlO1xuXG4gICAgbWluUHJpY2U6IG51bWJlciA9IDA7XG4gICAgbWF4UHJpY2U6IG51bWJlciA9IDA7XG4gICAgY3VycmVudE1pblByaWNlOiBudW1iZXIgfCBudWxsID0gbnVsbDtcbiAgICBjdXJyZW50TWF4UHJpY2U6IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG4gICAgb3ZlcnJpZGUgdHlwZSA9ICgpOiBGaWx0ZXJUeXBlID0+ICdwcmljZV9yYW5nZSc7XG5cbiAgICAvKiogdHJ1ZSBjdWFuZG8geWEgdGVuZ28gdW4gcmFuZ28gcmVhbCAqL1xuICAgIGdldCBpc0xvYWRlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2xvYWRlZDtcbiAgICB9XG5cbiAgICAvLyBNw6l0b2RvIHBhcmEgY29uZmlndXJhciBlbCByYW5nbyBkZSBwcmVjaW9zIGluaWNpYWxcbiAgICBvdmVycmlkZSBzZXRDb250ZW50ID0gKG9wdGlvbnM6IHsgbWluUHJpY2U/OiBudW1iZXI7IG1heFByaWNlPzogbnVtYmVyOyBjdXJyZW50TWluUHJpY2U/OiBudW1iZXI7IGN1cnJlbnRNYXhQcmljZT86IG51bWJlciB9KSA9PiB7XG4gICAgICAgIGlmIChvcHRpb25zLm1pblByaWNlICE9IG51bGwgJiYgb3B0aW9ucy5tYXhQcmljZSAhPSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLm1pblByaWNlID0gb3B0aW9ucy5taW5QcmljZTtcbiAgICAgICAgICAgIHRoaXMubWF4UHJpY2UgPSBvcHRpb25zLm1heFByaWNlO1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50TWluUHJpY2UgPSBvcHRpb25zLmN1cnJlbnRNaW5QcmljZSA/PyB0aGlzLm1pblByaWNlO1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50TWF4UHJpY2UgPSBvcHRpb25zLmN1cnJlbnRNYXhQcmljZSA/PyB0aGlzLm1heFByaWNlO1xuICAgICAgICAgICAgdGhpcy5fbG9hZGVkID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHVwZGF0ZVByaWNlcyhtaW46IG51bWJlciwgbWF4OiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5taW5QcmljZSA9IG1pbjtcbiAgICAgICAgdGhpcy5tYXhQcmljZSA9IG1heDtcbiAgICAgICAgaWYgKHRoaXMuY3VycmVudE1pblByaWNlICE9PSBudWxsICYmICh0aGlzLmN1cnJlbnRNaW5QcmljZSA8IG1pbiB8fCB0aGlzLmN1cnJlbnRNaW5QcmljZSA+IG1heCkpIHtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudE1pblByaWNlID0gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmN1cnJlbnRNYXhQcmljZSAhPT0gbnVsbCAmJiAodGhpcy5jdXJyZW50TWF4UHJpY2UgPiBtYXggfHwgdGhpcy5jdXJyZW50TWF4UHJpY2UgPCBtaW4pKSB7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRNYXhQcmljZSA9IG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9sb2FkZWQgPSB0cnVlO1xuICAgIH1cblxuICAgIC8vIE3DqXRvZG8gcGFyYSBhY3R1YWxpemFyIGxvcyB2YWxvcmVzIHNlbGVjY2lvbmFkb3NcbiAgICBvdmVycmlkZSBzZXRTZWxlY3RlZCA9IChtaW46IG51bWJlciwgbWF4OiBudW1iZXIpOiB2b2lkID0+IHtcbiAgICAgICAgdGhpcy5jdXJyZW50TWluUHJpY2UgPSBtaW4gIT09IHRoaXMubWluUHJpY2UgPyBtaW4gOiBudWxsO1xuICAgICAgICB0aGlzLmN1cnJlbnRNYXhQcmljZSA9IG1heCAhPT0gdGhpcy5tYXhQcmljZSA/IG1heCA6IG51bGw7XG4gICAgfVxuXG4gICAgLy8gUmV0b3JuYSBsb3MgdmFsb3JlcyBzZWxlY2Npb25hZG9zIChyYW5nbyBkZSBwcmVjaW9zKVxuICAgIGdldFNlbGVjdGVkUmFuZ2UgPSAoKTogeyBtaW46IG51bWJlciwgbWF4OiBudW1iZXIgfSA9PiAoe1xuICAgICAgICBtaW46IHRoaXMuY3VycmVudE1pblByaWNlID8/IHRoaXMubWluUHJpY2UhLFxuICAgICAgICBtYXg6IHRoaXMuY3VycmVudE1heFByaWNlID8/IHRoaXMubWF4UHJpY2UhXG4gICAgfSlcblxuICAgIC8vIEdlbmVyYSBsb3MgcGFyw6FtZXRyb3MgZGUgbGEgVVJMIGVuIGJhc2UgYWwgcmFuZ28gZGUgcHJlY2lvcyBzZWxlY2Npb25hZG9cbiAgICBvdmVycmlkZSB0b1VybFBhcmFtcyA9ICgpOiBzdHJpbmcgPT4ge1xuICAgICAgICBsZXQgcGFyYW1zID0gJyc7XG4gICAgICAgIGlmICh0aGlzLmN1cnJlbnRNaW5QcmljZSAhPSBudWxsKSBwYXJhbXMgKz0gYCZwcmljZV9taW49JHt0aGlzLmN1cnJlbnRNaW5QcmljZX1gO1xuICAgICAgICBpZiAodGhpcy5jdXJyZW50TWF4UHJpY2UgIT0gbnVsbCkgcGFyYW1zICs9IGAmcHJpY2VfbWF4PSR7dGhpcy5jdXJyZW50TWF4UHJpY2V9YDtcbiAgICAgICAgcmV0dXJuIHBhcmFtcztcbiAgICB9XG5cbiAgICAvLyBSZXN0YWJsZWNlIGVsIGZpbHRybyBhIGxvcyB2YWxvcmVzIHBvciBkZWZlY3RvXG4gICAgcmVzZXQgPSAoKTogdm9pZCA9PiB7XG4gICAgICAgIHRoaXMuY3VycmVudE1pblByaWNlID0gbnVsbDtcbiAgICAgICAgdGhpcy5jdXJyZW50TWF4UHJpY2UgPSBudWxsO1xuICAgIH1cbn1cbiJdfQ==
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpY2VfcmFuZ2UtZmlsdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2NsYXNzZXMvZmlsdGVycy9wcmljZV9yYW5nZS1maWx0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUdsQyxNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsTUFBTTtJQUNoQyxPQUFPLEdBQUcsS0FBSyxDQUFDO0lBRXhCLFFBQVEsR0FBVyxDQUFDLENBQUM7SUFDckIsUUFBUSxHQUFXLENBQUMsQ0FBQztJQUNyQixlQUFlLEdBQWtCLElBQUksQ0FBQztJQUN0QyxlQUFlLEdBQWtCLElBQUksQ0FBQztJQUU3QixJQUFJLEdBQUcsR0FBZSxFQUFFLENBQUMsYUFBYSxDQUFDO0lBRWhELHlDQUF5QztJQUN6QyxJQUFJLFFBQVE7UUFDUixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDeEIsQ0FBQztJQUVELHFEQUFxRDtJQUM1QyxVQUFVLEdBQUcsQ0FBQyxPQUFxRyxFQUFFLEVBQUU7UUFDNUgsSUFBSSxPQUFPLENBQUMsUUFBUSxJQUFJLElBQUksSUFBSSxPQUFPLENBQUMsUUFBUSxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ3ZELElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQztZQUNqQyxJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUM7WUFDakMsSUFBSSxDQUFDLGVBQWUsR0FBRyxPQUFPLENBQUMsZUFBZSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUM7WUFDaEUsSUFBSSxDQUFDLGVBQWUsR0FBRyxPQUFPLENBQUMsZUFBZSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUM7WUFDaEUsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFDeEIsQ0FBQztJQUNMLENBQUMsQ0FBQTtJQUVELFlBQVksQ0FBQyxHQUFXLEVBQUUsR0FBVztRQUNqQyxJQUFJLENBQUMsUUFBUSxHQUFHLEdBQUcsQ0FBQztRQUNwQixJQUFJLENBQUMsUUFBUSxHQUFHLEdBQUcsQ0FBQztRQUNwQixJQUFJLElBQUksQ0FBQyxlQUFlLEtBQUssSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsR0FBRyxHQUFHLElBQUksSUFBSSxDQUFDLGVBQWUsR0FBRyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQzlGLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDO1FBQ2hDLENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxlQUFlLEtBQUssSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsR0FBRyxHQUFHLElBQUksSUFBSSxDQUFDLGVBQWUsR0FBRyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQzlGLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDO1FBQ2hDLENBQUM7UUFFRCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztJQUN4QixDQUFDO0lBRUQsbURBQW1EO0lBQzFDLFdBQVcsR0FBRyxDQUFDLEdBQVcsRUFBRSxHQUFXLEVBQVEsRUFBRTtRQUN0RCxJQUFJLENBQUMsZUFBZSxHQUFHLEdBQUcsS0FBSyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUMxRCxJQUFJLENBQUMsZUFBZSxHQUFHLEdBQUcsS0FBSyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUM5RCxDQUFDLENBQUE7SUFFRCx1REFBdUQ7SUFDdkQsZ0JBQWdCLEdBQUcsR0FBaUMsRUFBRSxDQUFDLENBQUM7UUFDcEQsR0FBRyxFQUFFLElBQUksQ0FBQyxlQUFlLElBQUksSUFBSSxDQUFDLFFBQVM7UUFDM0MsR0FBRyxFQUFFLElBQUksQ0FBQyxlQUFlLElBQUksSUFBSSxDQUFDLFFBQVM7S0FDOUMsQ0FBQyxDQUFBO0lBRUYsMkVBQTJFO0lBQ2xFLFdBQVcsR0FBRyxHQUFXLEVBQUU7UUFDaEMsSUFBSSxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLElBQUksSUFBSSxDQUFDLGVBQWUsSUFBSSxJQUFJO1lBQUUsTUFBTSxJQUFJLGNBQWMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ2pGLElBQUksSUFBSSxDQUFDLGVBQWUsSUFBSSxJQUFJO1lBQUUsTUFBTSxJQUFJLGNBQWMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ2pGLE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUMsQ0FBQTtJQUVELGlEQUFpRDtJQUN4QyxLQUFLLEdBQUcsR0FBUyxFQUFFO1FBQ3hCLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDO1FBQzVCLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDO0lBQ2hDLENBQUMsQ0FBQTtDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmlsdGVyIH0gZnJvbSBcIi4vZmlsdGVyXCI7XG5pbXBvcnQgeyBGaWx0ZXJFbGVtZW50LCBGaWx0ZXJUeXBlIH0gZnJvbSBcIi4uLy4uL2ludGVyZmFjZXMvZmlsdGVyXCI7XG5cbmV4cG9ydCBjbGFzcyBQcmljZVJhbmdlRmlsdGVyIGV4dGVuZHMgRmlsdGVyIHtcbiAgICBwcml2YXRlIF9sb2FkZWQgPSBmYWxzZTtcblxuICAgIG1pblByaWNlOiBudW1iZXIgPSAwO1xuICAgIG1heFByaWNlOiBudW1iZXIgPSAwO1xuICAgIGN1cnJlbnRNaW5QcmljZTogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG4gICAgY3VycmVudE1heFByaWNlOiBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICAgIG92ZXJyaWRlIHR5cGUgPSAoKTogRmlsdGVyVHlwZSA9PiAncHJpY2VfcmFuZ2UnO1xuXG4gICAgLyoqIHRydWUgY3VhbmRvIHlhIHRlbmdvIHVuIHJhbmdvIHJlYWwgKi9cbiAgICBnZXQgaXNMb2FkZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9sb2FkZWQ7XG4gICAgfVxuXG4gICAgLy8gTcOpdG9kbyBwYXJhIGNvbmZpZ3VyYXIgZWwgcmFuZ28gZGUgcHJlY2lvcyBpbmljaWFsXG4gICAgb3ZlcnJpZGUgc2V0Q29udGVudCA9IChvcHRpb25zOiB7IG1pblByaWNlPzogbnVtYmVyOyBtYXhQcmljZT86IG51bWJlcjsgY3VycmVudE1pblByaWNlPzogbnVtYmVyOyBjdXJyZW50TWF4UHJpY2U/OiBudW1iZXIgfSkgPT4ge1xuICAgICAgICBpZiAob3B0aW9ucy5taW5QcmljZSAhPSBudWxsICYmIG9wdGlvbnMubWF4UHJpY2UgIT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy5taW5QcmljZSA9IG9wdGlvbnMubWluUHJpY2U7XG4gICAgICAgICAgICB0aGlzLm1heFByaWNlID0gb3B0aW9ucy5tYXhQcmljZTtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudE1pblByaWNlID0gb3B0aW9ucy5jdXJyZW50TWluUHJpY2UgPz8gdGhpcy5taW5QcmljZTtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudE1heFByaWNlID0gb3B0aW9ucy5jdXJyZW50TWF4UHJpY2UgPz8gdGhpcy5tYXhQcmljZTtcbiAgICAgICAgICAgIHRoaXMuX2xvYWRlZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB1cGRhdGVQcmljZXMobWluOiBudW1iZXIsIG1heDogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMubWluUHJpY2UgPSBtaW47XG4gICAgICAgIHRoaXMubWF4UHJpY2UgPSBtYXg7XG4gICAgICAgIGlmICh0aGlzLmN1cnJlbnRNaW5QcmljZSAhPT0gbnVsbCAmJiAodGhpcy5jdXJyZW50TWluUHJpY2UgPCBtaW4gfHwgdGhpcy5jdXJyZW50TWluUHJpY2UgPiBtYXgpKSB7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRNaW5QcmljZSA9IG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5jdXJyZW50TWF4UHJpY2UgIT09IG51bGwgJiYgKHRoaXMuY3VycmVudE1heFByaWNlID4gbWF4IHx8IHRoaXMuY3VycmVudE1heFByaWNlIDwgbWluKSkge1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50TWF4UHJpY2UgPSBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fbG9hZGVkID0gdHJ1ZTtcbiAgICB9XG5cbiAgICAvLyBNw6l0b2RvIHBhcmEgYWN0dWFsaXphciBsb3MgdmFsb3JlcyBzZWxlY2Npb25hZG9zXG4gICAgb3ZlcnJpZGUgc2V0U2VsZWN0ZWQgPSAobWluOiBudW1iZXIsIG1heDogbnVtYmVyKTogdm9pZCA9PiB7XG4gICAgICAgIHRoaXMuY3VycmVudE1pblByaWNlID0gbWluICE9PSB0aGlzLm1pblByaWNlID8gbWluIDogbnVsbDtcbiAgICAgICAgdGhpcy5jdXJyZW50TWF4UHJpY2UgPSBtYXggIT09IHRoaXMubWF4UHJpY2UgPyBtYXggOiBudWxsO1xuICAgIH1cblxuICAgIC8vIFJldG9ybmEgbG9zIHZhbG9yZXMgc2VsZWNjaW9uYWRvcyAocmFuZ28gZGUgcHJlY2lvcylcbiAgICBnZXRTZWxlY3RlZFJhbmdlID0gKCk6IHsgbWluOiBudW1iZXIsIG1heDogbnVtYmVyIH0gPT4gKHtcbiAgICAgICAgbWluOiB0aGlzLmN1cnJlbnRNaW5QcmljZSA/PyB0aGlzLm1pblByaWNlISxcbiAgICAgICAgbWF4OiB0aGlzLmN1cnJlbnRNYXhQcmljZSA/PyB0aGlzLm1heFByaWNlIVxuICAgIH0pXG5cbiAgICAvLyBHZW5lcmEgbG9zIHBhcsOhbWV0cm9zIGRlIGxhIFVSTCBlbiBiYXNlIGFsIHJhbmdvIGRlIHByZWNpb3Mgc2VsZWNjaW9uYWRvXG4gICAgb3ZlcnJpZGUgdG9VcmxQYXJhbXMgPSAoKTogc3RyaW5nID0+IHtcbiAgICAgICAgbGV0IHBhcmFtcyA9ICcnO1xuICAgICAgICBpZiAodGhpcy5jdXJyZW50TWluUHJpY2UgIT0gbnVsbCkgcGFyYW1zICs9IGAmcHJpY2VfbWluPSR7dGhpcy5jdXJyZW50TWluUHJpY2V9YDtcbiAgICAgICAgaWYgKHRoaXMuY3VycmVudE1heFByaWNlICE9IG51bGwpIHBhcmFtcyArPSBgJnByaWNlX21heD0ke3RoaXMuY3VycmVudE1heFByaWNlfWA7XG4gICAgICAgIHJldHVybiBwYXJhbXM7XG4gICAgfVxuXG4gICAgLy8gUmVzdGFibGVjZSBlbCBmaWx0cm8gYSBsb3MgdmFsb3JlcyBwb3IgZGVmZWN0b1xuICAgIG92ZXJyaWRlIHJlc2V0ID0gKCk6IHZvaWQgPT4ge1xuICAgICAgICB0aGlzLmN1cnJlbnRNaW5QcmljZSA9IG51bGw7XG4gICAgICAgIHRoaXMuY3VycmVudE1heFByaWNlID0gbnVsbDtcbiAgICB9XG59XG4iXX0=
@@ -64,7 +64,7 @@ export class FiltersEcComponent {
64
64
  this.router.navigate([selected.path]);
65
65
  }
66
66
  }
67
- else if (filter.type() === 'attributes') {
67
+ else if ((filter.type() === 'attributes') || (filter.type() === 'dynamics')) {
68
68
  // Manejar la navegación para atributos
69
69
  this._filtersService.setFilterSelected(filter, selected);
70
70
  }
@@ -138,4 +138,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
138
138
  }], ctorParameters: () => [], propDecorators: { setSelect: [{
139
139
  type: Input
140
140
  }] } });
141
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVycy1lYy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvZWMtY29tcG9uZW50cy9maWx0ZXJzLWVjL2ZpbHRlcnMtZWMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvZmlsdGVycy1lYy9maWx0ZXJzLWVjLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBeUIsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFGLE9BQU8sRUFBRSxjQUFjLEVBQUcsV0FBVyxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDaEUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV2QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDckUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7QUFVbkUsTUFBTSxPQUFPLGtCQUFrQjtJQUVuQixZQUFZLEdBQWdCLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNoRCxlQUFlLEdBQW1CLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUN6RCxnQkFBZ0IsR0FBb0IsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQzVELFVBQVUsR0FBeUIsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUM7SUFDaEUsTUFB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LCBFbGVtZW50UmVmLCBWaWV3Q2hpbGQsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGaWx0ZXJzU2VydmljZSAsIEF1dGhTZXJ2aWNlfSBmcm9tICcuLi8uLi9lYy1zZXJ2aWNlcyc7XG5pbXBvcnQgeyBGaWx0ZXIgfSBmcm9tICcuLi8uLi9jbGFzc2VzJztcbmltcG9ydCB7IEZpbHRlckVsZW1lbnQsIEZpbHRlclR5cGUsIFBhZ2luYXRpb25TZXR0aW5ncyB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgUHJvZHVjdHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZWMtc2VydmljZXMvcHJvZHVjdHMuc2VydmljZSc7XG5pbXBvcnQgeyBDb3JlQ29uc3RhbnRzU2VydmljZSB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgUHJpY2VSYW5nZUZpbHRlciB9IGZyb20gJy4uLy4uL2NsYXNzZXMvZmlsdGVycy9wcmljZV9yYW5nZS1maWx0ZXInO1xuaW1wb3J0IHsgQ2hhbm5lbFNlcnZpY2UgfSBmcm9tICcuLi8uLi9lYy1zZXJ2aWNlcy9jaGFubmVsLnNlcnZpY2UnO1xuXG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbGliLWZpbHRlcnMtZWMnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW10sXG4gICAgdGVtcGxhdGVVcmw6ICcuL2ZpbHRlcnMtZWMuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsOiAnLi9maWx0ZXJzLWVjLmNvbXBvbmVudC5zY3NzJ1xufSlcbmV4cG9ydCBjbGFzcyBGaWx0ZXJzRWNDb21wb25lbnQge1xuXG4gICAgcHJpdmF0ZSBfYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlID0gaW5qZWN0KEF1dGhTZXJ2aWNlKTtcbiAgICBwcml2YXRlIF9maWx0ZXJzU2VydmljZTogRmlsdGVyc1NlcnZpY2UgPSBpbmplY3QoRmlsdGVyc1NlcnZpY2UpO1xuICAgIHByaXZhdGUgX3Byb2R1Y3RzU2VydmljZTogUHJvZHVjdHNTZXJ2aWNlID0gaW5qZWN0KFByb2R1Y3RzU2VydmljZSk7XG4gICAgcHJpdmF0ZSBfY29uc3RhbnRzOiBDb3JlQ29uc3RhbnRzU2VydmljZSA9IGluamVjdChDb3JlQ29uc3RhbnRzU2VydmljZSk7XG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlciA9IGluamVjdChSb3V0ZXIpO1xuICAgIHB1YmxpYyBmaWx0ZXJzOiBGaWx0ZXJbXSA9IFtdO1xuICAgIHB1YmxpYyBmaWx0ZXIkID0gdGhpcy5fZmlsdGVyc1NlcnZpY2UuZmlsdGVycyQ7XG4gICAgcHVibGljIHNob3dQcmljZXNPbmx5VG9Mb2dnZWRVc2VyczogYm9vbGVhbiA9IGZhbHNlO1xuICAgIHB1YmxpYyBpbmplY3RvcjogSW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xuXHRwdWJsaWMgaXNBdXRoZW50aWNhdGVkJCA9IHRoaXMuX2F1dGhTZXJ2aWNlLmlzQXV0aGVudGljYXRlZCgpO1xuICAgIHB1YmxpYyBoaWRlUHJpY2VzOiBib29sZWFuID0gZmFsc2U7XG4gICAgXG4gICAgQElucHV0KCkgc2V0U2VsZWN0OiBhbnk7XG5cbiAgICBuZ09uSW5pdCgpIHtcblxuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLl9maWx0ZXJzU2VydmljZS5maWx0ZXJzJC5zdWJzY3JpYmUoKGZpbHRlcnM6IEZpbHRlcltdKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmZpbHRlcnMgPSBmaWx0ZXJzO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5pbmplY3Rvci5nZXQoQ2hhbm5lbFNlcnZpY2UpLmNoYW5uZWwkLnN1YnNjcmliZShjaGFubmVsID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2hvd1ByaWNlc09ubHlUb0xvZ2dlZFVzZXJzID0gISFjaGFubmVsLnNob3dQcmljZXNPbmx5VG9Mb2dnZWRVc2VycztcbiAgICAgICAgICAgIHRoaXMuaGlkZVByaWNlcyA9ICEhY2hhbm5lbC5oaWRlUHJpY2VzO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgLyoqIDEpIFBhcmEgY3VhbmRvIG1lIHBpZGVuICdwcmljZV9yYW5nZScsIGRldnVlbHZvIFByaWNlUmFuZ2VGaWx0ZXIgKi9cbiAgICBwdWJsaWMgZ2V0U3BlY2lmaWNGaWx0ZXIodHlwZTogJ3ByaWNlX3JhbmdlJyk6IFByaWNlUmFuZ2VGaWx0ZXIgfCBudWxsO1xuXG4gICAgLyoqIDIpIFBhcmEgY3VhbHF1aWVyIG90cm8gRmlsdGVyVHlwZSwgZGV2dWVsdm8gRmlsdGVyICovXG4gICAgcHVibGljIGdldFNwZWNpZmljRmlsdGVyKHR5cGU6IEZpbHRlclR5cGUpOiBGaWx0ZXIgfCBudWxsO1xuICAgIHB1YmxpYyBnZXRTcGVjaWZpY0ZpbHRlcih0eXBlOiBGaWx0ZXJUeXBlKTogRmlsdGVyIHwgbnVsbCB7XG4gICAgICAgIGNvbnN0IGZpbHRlciA9IHRoaXMuZmlsdGVycy5maW5kKGYgPT4gZi50eXBlKCkgPT09IHR5cGUpO1xuICAgICAgICBpZiAodHlwZSA9PT0gJ3ByaWNlX3JhbmdlJyAmJiBmaWx0ZXIgJiYgIShmaWx0ZXIgaW5zdGFuY2VvZiBGaWx0ZXIpKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGBFeHBlY3RlZCBhIEZpbHRlciBpbnN0YW5jZSBidXQgZ290YCwgZmlsdGVyKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmlsdGVyIHx8IG51bGw7XG4gICAgfVxuXG4gICAgLypPYnRpZW5lIGVsIGZpbHRybyBlbGVnaWRvIGVuIGVsIHNlbGVjdCwgbG8gcGFzYSBhbCBzZXRTZWxlY3RcbiAgICBwYXJhIHF1ZSBzZSBtYXJxdWUgc2VsZWNjaW9uYWRvKi9cbiAgICBvblNlbGVjdChldmVudDogYW55LCBmaWx0ZXI6IEZpbHRlckVsZW1lbnRbXSB8IG51bGwpIHtcbiAgICAgICAgLy8gY29uc29sZS5sb2coZmlsdGVyKVxuICAgICAgICAvKiAgY29uc3Qgc2VsZWN0ZWRPcHRpb24gPSBmaWx0ZXJcbiAgICAgICAgICAgICAuZmxhdE1hcChjYXRlZ29yeSA9PiBjYXRlZ29yeS5jaGlsZHJlbilcbiAgICAgICAgICAgICAuZmlsdGVyKG9wdGlvbiA9PiBvcHRpb24/LmNvZGUgPT09IGV2ZW50LnRhcmdldC52YWx1ZSlcbiAgICAgICAgICAgICAucG9wKClcbiAgICAgICAgIHNlbGVjdGVkT3B0aW9uICYmIHRoaXMuX2ZpbHRlcnNTZXJ2aWNlLnNldEZpbHRlclNlbGVjdGVkKHRoaXMuZmlsdGVyc1swXSwgc2VsZWN0ZWRPcHRpb24pICovXG4gICAgfVxuXG4gICAgc2V0U2VsZWN0ZWQoZmlsdGVyOiBGaWx0ZXIgfCBudWxsLCBzZWxlY3RlZDogRmlsdGVyRWxlbWVudCB8IG51bGwpIHtcbiAgICAgICAgaWYgKCFmaWx0ZXIgfHwgIXNlbGVjdGVkKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdGaWx0ZXIgb3Igc2VsZWN0ZWQgZWxlbWVudCBpcyB1bmRlZmluZWQ6JywgeyBmaWx0ZXIsIHNlbGVjdGVkIH0pO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHR5cGVvZiAoZmlsdGVyIGFzIGFueSkuc2V0U2VsZWN0ZWQgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ2ZpbHRlci5zZXRTZWxlY3RlZCBpcyBub3QgYSBmdW5jdGlvbi4gRmlsdGVyIG1pZ2h0IG5vdCBiZSBhbiBpbnN0YW5jZSBvZiB0aGUgZXhwZWN0ZWQgY2xhc3M6JywgZmlsdGVyKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICAvLyB0aGlzLl9maWx0ZXJzU2VydmljZS5zZXRGaWx0ZXJTZWxlY3RlZChmaWx0ZXIsIHNlbGVjdGVkKTtcbiAgICAgICAgICAgIGlmIChmaWx0ZXIudHlwZSgpID09PSAnY2F0ZWdvcmllcycpIHtcbiAgICAgICAgICAgICAgICBpZiAoc2VsZWN0ZWQucGF0aCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbc2VsZWN0ZWQucGF0aF0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSBpZiAoZmlsdGVyLnR5cGUoKSA9PT0gJ2F0dHJpYnV0ZXMnKSB7XG4gICAgICAgICAgICAgICAgLy8gTWFuZWphciBsYSBuYXZlZ2FjacOzbiBwYXJhIGF0cmlidXRvc1xuICAgICAgICAgICAgICAgIHRoaXMuX2ZpbHRlcnNTZXJ2aWNlLnNldEZpbHRlclNlbGVjdGVkKGZpbHRlciwgc2VsZWN0ZWQpO1xuICAgICAgICAgICAgfVxuXG5cbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXCJFcnJvciB3aGlsZSBzZXR0aW5nIHNlbGVjdGVkIGZpbHRlcjpcIiwgZXJyb3IpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdW5pcXVlU2VsZWN0aW9uKGZpbHRlcjogeyBkYXRhOiBhbnlbXTsgfSwgZmlsdGVyQ2hpbGQ6IGFueSkge1xuICAgICAgICAvLyBCdXNjYXIgc2kgaGF5IHVuIGZpbHRybyBkZSB0aXBvIFByaWNlUmFuZ2VGaWx0ZXIgZW4gbGEgbGlzdGEgZGUgZmlsdHJvc1xuICAgICAgICBjb25zdCBwcmljZVJhbmdlRmlsdGVyID0gdGhpcy5maWx0ZXJzLmZpbmQoZiA9PiBmIGluc3RhbmNlb2YgUHJpY2VSYW5nZUZpbHRlcik7XG5cbiAgICAgICAgaWYgKHByaWNlUmFuZ2VGaWx0ZXIpIHtcbiAgICAgICAgICAgIHByaWNlUmFuZ2VGaWx0ZXIucmVzZXQoKTtcbiAgICAgICAgfVxuICAgICAgICBmaWx0ZXIuZGF0YS5mb3JFYWNoKGZpbHRlckVsZW1lbnQgPT4ge1xuICAgICAgICAgICAgaWYgKGZpbHRlckVsZW1lbnQuc2VsZWN0ZWQpIHtcbiAgICAgICAgICAgICAgICBmaWx0ZXJFbGVtZW50LnNlbGVjdGVkID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmaWx0ZXJFbGVtZW50LmNoaWxkcmVuLmZvckVhY2goKGZpbHRlckNoaWxkcmVuOiBGaWx0ZXJFbGVtZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGZpbHRlckNoaWxkcmVuICE9IGZpbHRlckNoaWxkICYmIGZpbHRlckNoaWxkcmVuLnNlbGVjdGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIGZpbHRlckNoaWxkcmVuLnNlbGVjdGVkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vICBjbG9zZSA9ICgpID0+IHtcbiAgICAvLyAgICAgICB0aGlzLmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwiZmlsdHJvc1wiKS5jbGFzc0xpc3QucmVtb3ZlKCdpbicpO1xuICAgIC8vICAgICAgIHJldHVybiB0cnVlO1xuICAgIC8vICB9O1xuXG5cbiAgICBjbG9zZSA9ICgpID0+IHtcbiAgICAgICAgLy8gdGhpcy5jb25zdHMubW9iaWxlKClcbiAgICAgICAgLy8gICAgICA/IHRoaXMuZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJhY2NvcmRpb25FeGFtcGxlXCIpLmNsYXNzTGlzdC5yZW1vdmUoJ3Nob3cnKVxuICAgICAgICAvLyAgICAgIDogdGhpcy5kb2N1bWVudC5nZXRFbGVtZW50QnlJZChhY2NvcmRpb25faWQpLmNsYXNzTGlzdC5yZW1vdmUoJ3Nob3cnKTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfTtcblxuXG4gICAgc2Nyb2xsVXAgPSAoKSA9PiB7XG4gICAgICAgIHdpbmRvdy5zY3JvbGwoMCwgMCk7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG5cblxuXG5cbiAgICBoYXNBcHBsaWVkRmlsdGVycygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmlsdGVycz8uc29tZSgoZmlsdGVyOiBhbnkpID0+IHtcbiAgICAgICAgICAgIGlmIChmaWx0ZXIudHlwZT8uKCkgPT09ICdwcmljZV9yYW5nZScpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBtaW5TZXQgPSBmaWx0ZXIuY3VycmVudE1pblByaWNlICE9PSBudWxsICYmIGZpbHRlci5jdXJyZW50TWluUHJpY2UgIT09IDA7XG4gICAgICAgICAgICAgICAgY29uc3QgbWF4U2V0ID0gZmlsdGVyLmN1cnJlbnRNYXhQcmljZSAhPT0gbnVsbCAmJiBmaWx0ZXIuY3VycmVudE1heFByaWNlICE9PSBmaWx0ZXIubWF4UHJpY2U7XG4gICAgICAgICAgICAgICAgaWYgKG1pblNldCB8fCBtYXhTZXQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gZmlsdGVyLmRhdGE/LnNvbWUoKGZpbHRlckVsZW1lbnQ6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGZpbHRlckVsZW1lbnQuY2hpbGRyZW4pKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmaWx0ZXJFbGVtZW50LmNoaWxkcmVuLnNvbWUoKGNoaWxkOiBhbnkpID0+IGNoaWxkLnNlbGVjdGVkKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZpbHRlckVsZW1lbnQuc2VsZWN0ZWQ7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSkgPz8gZmFsc2U7XG4gICAgfVxuLyoqXG4gICAqIFZlcmlmaWNhIHNpIHVuYSBjYXRlZ29yw61hIHRpZW5lIGxhIHByb3BpZWRhZCBpc1Zpc2libGUgeSBlc3TDoSBtYXJjYWRhIGNvbW8gdmlzaWJsZVxuICAgKiBAcGFyYW0gY2F0ZWdvcnkgLSBMYSBjYXRlZ29yw61hIGEgdmVyaWZpY2FyXG4gICAqIEByZXR1cm5zIHRydWUgc2kgbGEgY2F0ZWdvcsOtYSBlcyB2aXNpYmxlLCBmYWxzZSBlbiBjYXNvIGNvbnRyYXJpb1xuICAgKi9cbiAgICBoYXNWaXNpYmxlUHJvcGVydHkoY2F0ZWdvcnk6IEZpbHRlckVsZW1lbnQpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIChjYXRlZ29yeSBhcyBhbnkpLmlzVmlzaWJsZSA9PT0gdHJ1ZTtcbiAgICB9XG59XG4iLCI8cD5maWx0ZXJzLWVjIHdvcmtzITwvcD5cbiJdfQ==
141
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVycy1lYy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvZWMtY29tcG9uZW50cy9maWx0ZXJzLWVjL2ZpbHRlcnMtZWMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvZmlsdGVycy1lYy9maWx0ZXJzLWVjLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBeUIsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFGLE9BQU8sRUFBRSxjQUFjLEVBQUcsV0FBVyxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDaEUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV2QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDckUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7QUFVbkUsTUFBTSxPQUFPLGtCQUFrQjtJQUVuQixZQUFZLEdBQWdCLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNoRCxlQUFlLEdBQW1CLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUN6RCxnQkFBZ0IsR0FBb0IsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQzVELFVBQVUsR0FBeUIsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUM7SUFDaEUsTUFB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SyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgaW5qZWN0LCBJbnB1dCwgRWxlbWVudFJlZiwgVmlld0NoaWxkLCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRmlsdGVyc1NlcnZpY2UgLCBBdXRoU2VydmljZX0gZnJvbSAnLi4vLi4vZWMtc2VydmljZXMnO1xuaW1wb3J0IHsgRmlsdGVyIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcyc7XG5pbXBvcnQgeyBGaWx0ZXJFbGVtZW50LCBGaWx0ZXJUeXBlLCBQYWdpbmF0aW9uU2V0dGluZ3MgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IFByb2R1Y3RzU2VydmljZSB9IGZyb20gJy4uLy4uL2VjLXNlcnZpY2VzL3Byb2R1Y3RzLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29yZUNvbnN0YW50c1NlcnZpY2UgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFByaWNlUmFuZ2VGaWx0ZXIgfSBmcm9tICcuLi8uLi9jbGFzc2VzL2ZpbHRlcnMvcHJpY2VfcmFuZ2UtZmlsdGVyJztcbmltcG9ydCB7IENoYW5uZWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZWMtc2VydmljZXMvY2hhbm5lbC5zZXJ2aWNlJztcblxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2xpYi1maWx0ZXJzLWVjJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtdLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9maWx0ZXJzLWVjLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybDogJy4vZmlsdGVycy1lYy5jb21wb25lbnQuc2Nzcydcbn0pXG5leHBvcnQgY2xhc3MgRmlsdGVyc0VjQ29tcG9uZW50IHtcblxuICAgIHByaXZhdGUgX2F1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSA9IGluamVjdChBdXRoU2VydmljZSk7XG4gICAgcHJpdmF0ZSBfZmlsdGVyc1NlcnZpY2U6IEZpbHRlcnNTZXJ2aWNlID0gaW5qZWN0KEZpbHRlcnNTZXJ2aWNlKTtcbiAgICBwcml2YXRlIF9wcm9kdWN0c1NlcnZpY2U6IFByb2R1Y3RzU2VydmljZSA9IGluamVjdChQcm9kdWN0c1NlcnZpY2UpO1xuICAgIHByaXZhdGUgX2NvbnN0YW50czogQ29yZUNvbnN0YW50c1NlcnZpY2UgPSBpbmplY3QoQ29yZUNvbnN0YW50c1NlcnZpY2UpO1xuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIgPSBpbmplY3QoUm91dGVyKTtcbiAgICBwdWJsaWMgZmlsdGVyczogRmlsdGVyW10gPSBbXTtcbiAgICBwdWJsaWMgZmlsdGVyJCA9IHRoaXMuX2ZpbHRlcnNTZXJ2aWNlLmZpbHRlcnMkO1xuICAgIHB1YmxpYyBzaG93UHJpY2VzT25seVRvTG9nZ2VkVXNlcnM6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBwdWJsaWMgaW5qZWN0b3I6IEluamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcblx0cHVibGljIGlzQXV0aGVudGljYXRlZCQgPSB0aGlzLl9hdXRoU2VydmljZS5pc0F1dGhlbnRpY2F0ZWQoKTtcbiAgICBwdWJsaWMgaGlkZVByaWNlczogYm9vbGVhbiA9IGZhbHNlO1xuICAgIFxuICAgIEBJbnB1dCgpIHNldFNlbGVjdDogYW55O1xuXG4gICAgbmdPbkluaXQoKSB7XG5cbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5fZmlsdGVyc1NlcnZpY2UuZmlsdGVycyQuc3Vic2NyaWJlKChmaWx0ZXJzOiBGaWx0ZXJbXSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5maWx0ZXJzID0gZmlsdGVycztcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuaW5qZWN0b3IuZ2V0KENoYW5uZWxTZXJ2aWNlKS5jaGFubmVsJC5zdWJzY3JpYmUoY2hhbm5lbCA9PiB7XG4gICAgICAgICAgICB0aGlzLnNob3dQcmljZXNPbmx5VG9Mb2dnZWRVc2VycyA9ICEhY2hhbm5lbC5zaG93UHJpY2VzT25seVRvTG9nZ2VkVXNlcnM7XG4gICAgICAgICAgICB0aGlzLmhpZGVQcmljZXMgPSAhIWNoYW5uZWwuaGlkZVByaWNlcztcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIC8qKiAxKSBQYXJhIGN1YW5kbyBtZSBwaWRlbiAncHJpY2VfcmFuZ2UnLCBkZXZ1ZWx2byBQcmljZVJhbmdlRmlsdGVyICovXG4gICAgcHVibGljIGdldFNwZWNpZmljRmlsdGVyKHR5cGU6ICdwcmljZV9yYW5nZScpOiBQcmljZVJhbmdlRmlsdGVyIHwgbnVsbDtcblxuICAgIC8qKiAyKSBQYXJhIGN1YWxxdWllciBvdHJvIEZpbHRlclR5cGUsIGRldnVlbHZvIEZpbHRlciAqL1xuICAgIHB1YmxpYyBnZXRTcGVjaWZpY0ZpbHRlcih0eXBlOiBGaWx0ZXJUeXBlKTogRmlsdGVyIHwgbnVsbDtcbiAgICBwdWJsaWMgZ2V0U3BlY2lmaWNGaWx0ZXIodHlwZTogRmlsdGVyVHlwZSk6IEZpbHRlciB8IG51bGwge1xuICAgICAgICBjb25zdCBmaWx0ZXIgPSB0aGlzLmZpbHRlcnMuZmluZChmID0+IGYudHlwZSgpID09PSB0eXBlKTtcbiAgICAgICAgaWYgKHR5cGUgPT09ICdwcmljZV9yYW5nZScgJiYgZmlsdGVyICYmICEoZmlsdGVyIGluc3RhbmNlb2YgRmlsdGVyKSkge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihgRXhwZWN0ZWQgYSBGaWx0ZXIgaW5zdGFuY2UgYnV0IGdvdGAsIGZpbHRlcik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZpbHRlciB8fCBudWxsO1xuICAgIH1cblxuICAgIC8qT2J0aWVuZSBlbCBmaWx0cm8gZWxlZ2lkbyBlbiBlbCBzZWxlY3QsIGxvIHBhc2EgYWwgc2V0U2VsZWN0XG4gICAgcGFyYSBxdWUgc2UgbWFycXVlIHNlbGVjY2lvbmFkbyovXG4gICAgb25TZWxlY3QoZXZlbnQ6IGFueSwgZmlsdGVyOiBGaWx0ZXJFbGVtZW50W10gfCBudWxsKSB7XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKGZpbHRlcilcbiAgICAgICAgLyogIGNvbnN0IHNlbGVjdGVkT3B0aW9uID0gZmlsdGVyXG4gICAgICAgICAgICAgLmZsYXRNYXAoY2F0ZWdvcnkgPT4gY2F0ZWdvcnkuY2hpbGRyZW4pXG4gICAgICAgICAgICAgLmZpbHRlcihvcHRpb24gPT4gb3B0aW9uPy5jb2RlID09PSBldmVudC50YXJnZXQudmFsdWUpXG4gICAgICAgICAgICAgLnBvcCgpXG4gICAgICAgICBzZWxlY3RlZE9wdGlvbiAmJiB0aGlzLl9maWx0ZXJzU2VydmljZS5zZXRGaWx0ZXJTZWxlY3RlZCh0aGlzLmZpbHRlcnNbMF0sIHNlbGVjdGVkT3B0aW9uKSAqL1xuICAgIH1cblxuICAgIHNldFNlbGVjdGVkKGZpbHRlcjogRmlsdGVyIHwgbnVsbCwgc2VsZWN0ZWQ6IEZpbHRlckVsZW1lbnQgfCBudWxsKSB7XG4gICAgICAgIGlmICghZmlsdGVyIHx8ICFzZWxlY3RlZCkge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcignRmlsdGVyIG9yIHNlbGVjdGVkIGVsZW1lbnQgaXMgdW5kZWZpbmVkOicsIHsgZmlsdGVyLCBzZWxlY3RlZCB9KTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0eXBlb2YgKGZpbHRlciBhcyBhbnkpLnNldFNlbGVjdGVkICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdmaWx0ZXIuc2V0U2VsZWN0ZWQgaXMgbm90IGEgZnVuY3Rpb24uIEZpbHRlciBtaWdodCBub3QgYmUgYW4gaW5zdGFuY2Ugb2YgdGhlIGV4cGVjdGVkIGNsYXNzOicsIGZpbHRlcik7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgLy8gdGhpcy5fZmlsdGVyc1NlcnZpY2Uuc2V0RmlsdGVyU2VsZWN0ZWQoZmlsdGVyLCBzZWxlY3RlZCk7XG4gICAgICAgICAgICBpZiAoZmlsdGVyLnR5cGUoKSA9PT0gJ2NhdGVnb3JpZXMnKSB7XG4gICAgICAgICAgICAgICAgaWYgKHNlbGVjdGVkLnBhdGgpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3NlbGVjdGVkLnBhdGhdKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgaWYgKChmaWx0ZXIudHlwZSgpID09PSAnYXR0cmlidXRlcycpIHx8IChmaWx0ZXIudHlwZSgpID09PSAnZHluYW1pY3MnKSkge1xuICAgICAgICAgICAgICAgIC8vIE1hbmVqYXIgbGEgbmF2ZWdhY2nDs24gcGFyYSBhdHJpYnV0b3NcbiAgICAgICAgICAgICAgICB0aGlzLl9maWx0ZXJzU2VydmljZS5zZXRGaWx0ZXJTZWxlY3RlZChmaWx0ZXIsIHNlbGVjdGVkKTtcbiAgICAgICAgICAgIH1cblxuXG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKFwiRXJyb3Igd2hpbGUgc2V0dGluZyBzZWxlY3RlZCBmaWx0ZXI6XCIsIGVycm9yKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHVuaXF1ZVNlbGVjdGlvbihmaWx0ZXI6IHsgZGF0YTogYW55W107IH0sIGZpbHRlckNoaWxkOiBhbnkpIHtcbiAgICAgICAgLy8gQnVzY2FyIHNpIGhheSB1biBmaWx0cm8gZGUgdGlwbyBQcmljZVJhbmdlRmlsdGVyIGVuIGxhIGxpc3RhIGRlIGZpbHRyb3NcbiAgICAgICAgY29uc3QgcHJpY2VSYW5nZUZpbHRlciA9IHRoaXMuZmlsdGVycy5maW5kKGYgPT4gZiBpbnN0YW5jZW9mIFByaWNlUmFuZ2VGaWx0ZXIpO1xuXG4gICAgICAgIGlmIChwcmljZVJhbmdlRmlsdGVyKSB7XG4gICAgICAgICAgICBwcmljZVJhbmdlRmlsdGVyLnJlc2V0KCk7XG4gICAgICAgIH1cbiAgICAgICAgZmlsdGVyLmRhdGEuZm9yRWFjaChmaWx0ZXJFbGVtZW50ID0+IHtcbiAgICAgICAgICAgIGlmIChmaWx0ZXJFbGVtZW50LnNlbGVjdGVkKSB7XG4gICAgICAgICAgICAgICAgZmlsdGVyRWxlbWVudC5zZWxlY3RlZCA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZmlsdGVyRWxlbWVudC5jaGlsZHJlbi5mb3JFYWNoKChmaWx0ZXJDaGlsZHJlbjogRmlsdGVyRWxlbWVudCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChmaWx0ZXJDaGlsZHJlbiAhPSBmaWx0ZXJDaGlsZCAmJiBmaWx0ZXJDaGlsZHJlbi5zZWxlY3RlZCkge1xuICAgICAgICAgICAgICAgICAgICBmaWx0ZXJDaGlsZHJlbi5zZWxlY3RlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvLyAgY2xvc2UgPSAoKSA9PiB7XG4gICAgLy8gICAgICAgdGhpcy5kb2N1bWVudC5nZXRFbGVtZW50QnlJZChcImZpbHRyb3NcIikuY2xhc3NMaXN0LnJlbW92ZSgnaW4nKTtcbiAgICAvLyAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAvLyAgfTtcblxuXG4gICAgY2xvc2UgPSAoKSA9PiB7XG4gICAgICAgIC8vIHRoaXMuY29uc3RzLm1vYmlsZSgpXG4gICAgICAgIC8vICAgICAgPyB0aGlzLmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwiYWNjb3JkaW9uRXhhbXBsZVwiKS5jbGFzc0xpc3QucmVtb3ZlKCdzaG93JylcbiAgICAgICAgLy8gICAgICA6IHRoaXMuZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYWNjb3JkaW9uX2lkKS5jbGFzc0xpc3QucmVtb3ZlKCdzaG93Jyk7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH07XG5cblxuICAgIHNjcm9sbFVwID0gKCkgPT4ge1xuICAgICAgICB3aW5kb3cuc2Nyb2xsKDAsIDApO1xuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cblxuXG5cblxuXG4gICAgaGFzQXBwbGllZEZpbHRlcnMoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmZpbHRlcnM/LnNvbWUoKGZpbHRlcjogYW55KSA9PiB7XG4gICAgICAgICAgICBpZiAoZmlsdGVyLnR5cGU/LigpID09PSAncHJpY2VfcmFuZ2UnKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbWluU2V0ID0gZmlsdGVyLmN1cnJlbnRNaW5QcmljZSAhPT0gbnVsbCAmJiBmaWx0ZXIuY3VycmVudE1pblByaWNlICE9PSAwO1xuICAgICAgICAgICAgICAgIGNvbnN0IG1heFNldCA9IGZpbHRlci5jdXJyZW50TWF4UHJpY2UgIT09IG51bGwgJiYgZmlsdGVyLmN1cnJlbnRNYXhQcmljZSAhPT0gZmlsdGVyLm1heFByaWNlO1xuICAgICAgICAgICAgICAgIGlmIChtaW5TZXQgfHwgbWF4U2V0KSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIGZpbHRlci5kYXRhPy5zb21lKChmaWx0ZXJFbGVtZW50OiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShmaWx0ZXJFbGVtZW50LmNoaWxkcmVuKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmlsdGVyRWxlbWVudC5jaGlsZHJlbi5zb21lKChjaGlsZDogYW55KSA9PiBjaGlsZC5zZWxlY3RlZCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBmaWx0ZXJFbGVtZW50LnNlbGVjdGVkO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pID8/IGZhbHNlO1xuICAgIH1cbi8qKlxuICAgKiBWZXJpZmljYSBzaSB1bmEgY2F0ZWdvcsOtYSB0aWVuZSBsYSBwcm9waWVkYWQgaXNWaXNpYmxlIHkgZXN0w6EgbWFyY2FkYSBjb21vIHZpc2libGVcbiAgICogQHBhcmFtIGNhdGVnb3J5IC0gTGEgY2F0ZWdvcsOtYSBhIHZlcmlmaWNhclxuICAgKiBAcmV0dXJucyB0cnVlIHNpIGxhIGNhdGVnb3LDrWEgZXMgdmlzaWJsZSwgZmFsc2UgZW4gY2FzbyBjb250cmFyaW9cbiAgICovXG4gICAgaGFzVmlzaWJsZVByb3BlcnR5KGNhdGVnb3J5OiBGaWx0ZXJFbGVtZW50KTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAoY2F0ZWdvcnkgYXMgYW55KS5pc1Zpc2libGUgPT09IHRydWU7XG4gICAgfVxufVxuIiwiPHA+ZmlsdGVycy1lYyB3b3JrcyE8L3A+XG4iXX0=
@@ -15,6 +15,8 @@ export class FiltersService {
15
15
  environmentInjector = inject(EnvironmentInjector);
16
16
  _optionsFilters = ['all'];
17
17
  _defaultFilters = [];
18
+ _filtersInView = new BehaviorSubject(null);
19
+ filtersInView$ = this._filtersInView.asObservable();
18
20
  _paginationSettings = {
19
21
  value: '',
20
22
  type: '',
@@ -39,12 +41,17 @@ export class FiltersService {
39
41
  */
40
42
  generateFinalApi(search_value) {
41
43
  let extra_params = '';
42
- this._filtersSubject.value.forEach(filter => {
43
- const extra = filter.toUrlParams();
44
- extra.split('=')[1] != '' ? extra_params += extra : null;
45
- });
46
- if (search_value)
47
- extra_params += ('&criteria[search][type]=contains&criteria[search][value]=' + search_value);
44
+ for (const filter of this._filtersSubject.value) {
45
+ const extra = (filter?.toUrlParams?.() || '').trim();
46
+ if (!extra)
47
+ continue;
48
+ const afterEq = extra.includes('=') ? extra.split('=')[1] : extra.replace(/^&/, '');
49
+ if (afterEq !== '')
50
+ extra_params += extra;
51
+ }
52
+ if (search_value) {
53
+ extra_params += `&criteria[search][type]=contains&criteria[search][value]=${encodeURIComponent(search_value)}`;
54
+ }
48
55
  return this.productsFilterApi(extra_params);
49
56
  }
50
57
  isUpdated(paginationSettings) {
@@ -63,26 +70,24 @@ export class FiltersService {
63
70
  setFilters(paginationSettings, search_value) {
64
71
  this._paginationSettings = paginationSettings;
65
72
  let final_filters = [];
66
- let filtersToProcess = this._optionsFilters?.includes('all')
73
+ const filtersToProcess = this._optionsFilters?.includes('all')
67
74
  ? ['attributes', 'categories', 'dynamics', 'sort', 'price_range']
68
75
  : this._optionsFilters;
69
76
  runInInjectionContext(this.environmentInjector, () => {
70
77
  const filterFactory = new FilterFactory();
71
78
  filtersToProcess?.forEach(filterType => {
72
79
  const filter = filterFactory.create(filterType, paginationSettings);
73
- if (filter) {
80
+ if (filter)
74
81
  final_filters.push(filter);
75
- }
76
- else {
77
- // console.warn(`❌ Failed to create filter for type: ${filterType}`);
78
- }
79
82
  });
80
83
  });
81
- this._defaultFilters?.forEach(filterDefault => {
82
- let filter = final_filters.find(filter => filter.type() == filterDefault.filter_type);
83
- filter && filterDefault.codes.forEach(value => filter.setSelected(value));
84
+ this._defaultFilters?.forEach(df => {
85
+ const f = final_filters.find(f => f.type() === df.filter_type);
86
+ f && df.codes.forEach(code => f.setSelected(code));
84
87
  });
85
88
  this._filtersSubject.next(final_filters);
89
+ if (!this._readySubject.value)
90
+ this._readySubject.next(true);
86
91
  }
87
92
  getFilters(paginationSettings) {
88
93
  if (this._filtersInitialized)
@@ -121,12 +126,13 @@ export class FiltersService {
121
126
  setFilterSelected(filterObj, filterElem) {
122
127
  let final_filters = this._filtersSubject.value;
123
128
  if (filterObj.type() !== 'price_range') {
124
- let index = final_filters.findIndex(filter => filter.type() == filterObj.type());
129
+ const index = final_filters.findIndex(f => f.type() == filterObj.type());
125
130
  final_filters[index].setSelected(filterElem, filterElem.value || filterElem.code);
126
- console.log(index, final_filters);
127
131
  }
128
132
  this._filtersSubject.next(final_filters);
129
- // }
133
+ if (filterElem?.noUrl) {
134
+ this._filtersInView.next(filterElem);
135
+ }
130
136
  }
131
137
  updateFilters(paginationFilters) {
132
138
  const claves = Object.keys(paginationFilters);
@@ -159,6 +165,35 @@ export class FiltersService {
159
165
  pr.setSelected(min, max);
160
166
  this._filtersSubject.next([...filters]);
161
167
  }
168
+ setOptionsFilters(filters) {
169
+ this._optionsFilters = filters?.length ? filters : ['all'];
170
+ }
171
+ setDefaultFilters(defaults) {
172
+ this._defaultFilters = defaults || [];
173
+ }
174
+ hydrateDynamics(options) {
175
+ if (!options)
176
+ return;
177
+ const filters = this._filtersSubject.value || [];
178
+ const dyn = filters.find(f => f.type() === 'dynamics');
179
+ if (!dyn?.setContent)
180
+ return;
181
+ dyn.setContent(options);
182
+ this._filtersSubject.next([...filters]);
183
+ // Si querés que ready$ represente "filtros listos para render (incluye dinámicos)"
184
+ if (!this._readySubject.value)
185
+ this._readySubject.next(true);
186
+ }
187
+ /**
188
+ * @description redirecciona segun la url del filtro.
189
+ * @param filterElem No hace nada por ahora, es para mantener el mismo formato que como se usa en collection
190
+ * @param data Filtro que se usa para redireccion
191
+ */
192
+ setFilterSelectedByPath(filterElem, data, router) {
193
+ if (!router || !data?.path)
194
+ return;
195
+ router.navigateByUrl(data.path);
196
+ }
162
197
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FiltersService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
163
198
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FiltersService, providedIn: 'root' });
164
199
  }
@@ -168,4 +203,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
168
203
  providedIn: 'root'
169
204
  }]
170
205
  }], ctorParameters: () => [] });
171
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVycy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLXNlcnZpY2VzL2ZpbHRlcnMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRixPQUFPLEVBQUUsZUFBZSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ25ELE9BQU8sRUFBVSxhQUFhLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFbkQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sY0FBYyxDQUFDOztBQU16RSxNQUFNLE9BQU8sY0FBYztJQUNmLFVBQVUsR0FBd0IsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFDOUQsT0FBTyxHQUF5QixNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQztJQUM3RCxlQUFlLEdBQThCLElBQUksZUFBZSxDQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQ2hGLFFBQVEsR0FBeUIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUVwRSxjQUFjLEdBQTRCLElBQUksZUFBZSxDQUFTLEVBQUUsQ0FBQyxDQUFDO0lBQzNFLE9BQU8sR0FBdUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUVoRSxhQUFhLEdBQTZCLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO0lBQy9FLE1BQU0sR0FBd0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUUvRCxtQkFBbUIsR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQTtJQUVqRCxlQUFlLEdBQTJCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbEQsZUFBZSxHQUFvQixFQUFFLENB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QUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxLQUFLLGFBQWEsQ0FBaUMsQ0FBQztRQUN6RixJQUFJLENBQUMsRUFBRTtZQUFFLE9BQU87UUFDaEIsRUFBRSxDQUFDLFdBQVcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDNUMsQ0FBQzt3R0F2S1EsY0FBYzs0R0FBZCxjQUFjLGNBRlgsTUFBTTs7NEZBRVQsY0FBYztrQkFIMUIsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbnZpcm9ubWVudEluamVjdG9yLCBpbmplY3QsIEluamVjdGFibGUsIHJ1bkluSW5qZWN0aW9uQ29udGV4dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBGaWx0ZXIsIEZpbHRlckZhY3RvcnkgfSBmcm9tICcuLi9jbGFzc2VzJztcbmltcG9ydCB7IERlZmF1bHRGaWx0ZXIsIEZpbHRlckVsZW1lbnQsIFBhZ2luYXRpb25TZXR0aW5ncywgRmlsdGVyVHlwZSB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgQXBpQ29uc3RhbnRzU2VydmljZSwgQ29yZUNvbnN0YW50c1NlcnZpY2UgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgUHJpY2VSYW5nZUZpbHRlciB9IGZyb20gJy4uL2NsYXNzZXMvZmlsdGVycy9wcmljZV9yYW5nZS1maWx0ZXInO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEZpbHRlcnNTZXJ2aWNlIHtcbiAgICBwcml2YXRlIF9hcGlDb25zdHM6IEFwaUNvbnN0YW50c1NlcnZpY2UgPSBpbmplY3QoQXBpQ29uc3RhbnRzU2VydmljZSk7XG4gICAgcHJpdmF0ZSBfY29uc3RzOiBDb3JlQ29uc3RhbnRzU2VydmljZSA9IGluamVjdChDb3JlQ29uc3RhbnRzU2VydmljZSk7XG4gICAgcHJpdmF0ZSBfZmlsdGVyc1N1YmplY3Q6IEJlaGF2aW9yU3ViamVjdDxGaWx0ZXJbXT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEZpbHRlcltdPihbXSk7XG4gICAgcHVibGljIGZpbHRlcnMkOiBPYnNlcnZhYmxlPEZpbHRlcltdPiA9IHRoaXMuX2ZpbHRlcnNTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuXG4gICAgcHJpdmF0ZSBfYXBpVXJsU3ViamVjdDogQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4oJycpO1xuICAgIHB1YmxpYyBhcGlVcmwkOiBPYnNlcnZhYmxlPHN0cmluZz4gPSB0aGlzLl9hcGlVcmxTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuXG4gICAgcHJpdmF0ZSBfcmVhZHlTdWJqZWN0OiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgICBwdWJsaWMgcmVhZHkkOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy5fcmVhZHlTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuXG4gICAgcHJpdmF0ZSBlbnZpcm9ubWVudEluamVjdG9yID0gaW5qZWN0KEVudmlyb25tZW50SW5qZWN0b3IpXG5cbiAgICBwcml2YXRlIF9vcHRpb25zRmlsdGVyczogKEZpbHRlclR5cGUgfCAnYWxsJylbXSA9IFsnYWxsJ107XG4gICAgcHJpdmF0ZSBfZGVmYXVsdEZpbHRlcnM6IERlZmF1bHRGaWx0ZXJbXSA9IFtdO1xuXG4gICAgcHJpdmF0ZSBfcGFnaW5hdGlvblNldHRpbmdzOiBQYWdpbmF0aW9uU2V0dGluZ3MgPSB7XG4gICAgICAgIHZhbHVlOiAnJyxcbiAgICAgICAgdHlwZTogJycsXG4gICAgICAgIGxpbWl0OiAwXG4gICAgfTtcblxuICAgIHByaXZhdGUgX2ZpbHRlcnNJbml0aWFsaXplZCA9IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIC8vdGhpcy5fZGVmYXVsdEZpbHRlcnMgPSB0aGlzLl9jb25zdHMuZ2V0RGVmYXVsdEZpbHRlcnMoKVxuICAgIH1cblxuICAgIC8vQVBJIFVSTFxuICAgIC8qKlxuICAgICAqIFJldG9ybmEgbGEgdXJsIHBhcmEgZWwgZmlsdHJhZG9cbiAgICAgKiBAcGFyYW0gZmlsdGVycyBcbiAgICAgKiBAcmV0dXJucyBcbiAgICAgKi9cbiAgICBwcm9kdWN0c0ZpbHRlckFwaShmaWx0ZXJzID0gJycpIHsgcmV0dXJuICdzaG9wLWFwaS8nICsgdGhpcy5fYXBpQ29uc3RzLkNIQU5ORUwgKyAnL3Byb2R1Y3Qtc2VhcmNoLycgKyAnP2xvY2FsZT0nICsgdGhpcy5fYXBpQ29uc3RzLkxPQ0FMRSArIGZpbHRlcnMgfTtcbiAgICAvKipcbiAgICAgKiBBcm1hIGxvcyBmaWx0cm9zIHkgcmV0b3JuYSBsYSB1cmwgY29tcGxldGEgY29uIGxvcyBmaWx0cm9zIGFwbGljYWRvcy5cbiAgICAgKiBAcGFyYW0gc2VhcmNoX3ZhbHVlIHZhbG9yIGEgYnVzY2FyXG4gICAgICogQHJldHVybnMgXG4gICAgICovXG4gICAgZ2VuZXJhdGVGaW5hbEFwaShzZWFyY2hfdmFsdWU/OiBzdHJpbmcpIHtcbiAgICAgICAgbGV0IGV4dHJhX3BhcmFtcyA9ICcnO1xuICAgICAgICB0aGlzLl9maWx0ZXJzU3ViamVjdC52YWx1ZS5mb3JFYWNoKGZpbHRlciA9PiB7XG4gICAgICAgICAgICBjb25zdCBleHRyYSA9IGZpbHRlci50b1VybFBhcmFtcygpO1xuICAgICAgICAgICAgZXh0cmEuc3BsaXQoJz0nKVsxXSAhPSAnJyA/IGV4dHJhX3BhcmFtcyArPSBleHRyYSA6IG51bGw7XG4gICAgICAgIH0pXG4gICAgICAgIGlmIChzZWFyY2hfdmFsdWUpIGV4dHJhX3BhcmFtcyArPSAoJyZjcml0ZXJpYVtzZWFyY2hdW3R5cGVdPWNvbnRhaW5zJmNyaXRlcmlhW3NlYXJjaF1bdmFsdWVdPScgKyBzZWFyY2hfdmFsdWUpO1xuXG4gICAgICAgIHJldHVybiB0aGlzLnByb2R1Y3RzRmlsdGVyQXBpKGV4dHJhX3BhcmFtcyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc1VwZGF0ZWQocGFnaW5hdGlvblNldHRpbmdzOiBQYWdpbmF0aW9uU2V0dGluZ3MpIHtcbiAgICAgICAgY29uc3Qga2V5czogc3RyaW5nW10gPSBPYmplY3Qua2V5cyhwYWdpbmF0aW9uU2V0dGluZ3MpO1xuICAgICAgICBsZXQgY2hhbmdlOiBib29sZWFuID0gZmFsc2U7XG4gICAgICAgIGtleXMuZm9yRWFjaCgoa2V5OiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gKHBhZ2luYXRpb25TZXR0aW5ncyBhcyBSZWNvcmQ8c3RyaW5nLCBhbnk+KVtrZXldO1xuICAgICAgICAgICAgY29uc3QgdmFsdWUyID0gKHRoaXMuX3BhZ2luYXRpb25TZXR0aW5ncyBhcyBSZWNvcmQ8c3RyaW5nLCBhbnk+KVtrZXldO1xuICAgICAgICAgICAgaWYgKHZhbHVlICE9IHZhbHVlMikgY2hhbmdlID0gdHJ1ZTtcbiAgICAgICAgfSlcbiAgICAgICAgaWYgKGNoYW5nZSkgdGhpcy5fcGFnaW5hdGlvblNldHRpbmdzID0gcGFnaW5hdGlvblNldHRpbmdzO1xuICAgICAgICByZXR1cm4gY2hhbmdlO1xuICAgIH1cblxuICAgIHNldEZpbHRlcnMocGFnaW5hdGlvblNldHRpbmdzOiBQYWdpbmF0aW9uU2V0dGluZ3MsIHNlYXJjaF92YWx1ZT86IHN0cmluZykge1xuICAgICAgICB0aGlzLl9wYWdpbmF0aW9uU2V0dGluZ3MgPSBwYWdpbmF0aW9uU2V0dGluZ3M7XG4gICAgICAgIGxldCBmaW5hbF9maWx0ZXJzOiBGaWx0ZXJbXSA9IFtdO1xuICAgICAgICBsZXQgZmlsdGVyc1RvUHJvY2VzcyA9IHRoaXMuX29wdGlvbnNGaWx0ZXJzPy5pbmNsdWRlcygnYWxsJylcbiAgICAgICAgICAgID8gKFsnYXR0cmlidXRlcycsICdjYXRlZ29yaWVzJywgJ2R5bmFtaWNzJywgJ3NvcnQnLCAncHJpY2VfcmFuZ2UnXSBhcyBGaWx0ZXJUeXBlW10pXG4gICAgICAgICAgICA6IHRoaXMuX29wdGlvbnNGaWx0ZXJzO1xuXG4gICAgICAgIHJ1bkluSW5qZWN0aW9uQ29udGV4dCh0aGlzLmVudmlyb25tZW50SW5qZWN0b3IsICgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGZpbHRlckZhY3RvcnkgPSBuZXcgRmlsdGVyRmFjdG9yeSgpO1xuICAgICAgICAgICAgZmlsdGVyc1RvUHJvY2Vzcz8uZm9yRWFjaChmaWx0ZXJUeXBlID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBmaWx0ZXIgPSBmaWx0ZXJGYWN0b3J5LmNyZWF0ZShmaWx0ZXJUeXBlLCBwYWdpbmF0aW9uU2V0dGluZ3MpO1xuICAgICAgICAgICAgICAgIGlmIChmaWx0ZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgZmluYWxfZmlsdGVycy5wdXNoKGZpbHRlcik7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS53YXJuKGDinYwgRmFpbGVkIHRvIGNyZWF0ZSBmaWx0ZXIgZm9yIHR5cGU6ICR7ZmlsdGVyVHlwZX1gKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSlcblxuICAgICAgICB0aGlzLl9kZWZhdWx0RmlsdGVycz8uZm9yRWFjaChmaWx0ZXJEZWZhdWx0ID0+IHtcbiAgICAgICAgICAgIGxldCBmaWx0ZXIgPSBmaW5hbF9maWx0ZXJzLmZpbmQoZmlsdGVyID0+IGZpbHRlci50eXBlKCkgPT0gZmlsdGVyRGVmYXVsdC5maWx0ZXJfdHlwZSk7XG4gICAgICAgICAgICBmaWx0ZXIgJiYgZmlsdGVyRGVmYXVsdC5jb2Rlcy5mb3JFYWNoKHZhbHVlID0+IGZpbHRlci5zZXRTZWxlY3RlZCh2YWx1ZSkpO1xuICAgICAgICB9KVxuICAgICAgICB0aGlzLl9maWx0ZXJzU3ViamVjdC5uZXh0KGZpbmFsX2ZpbHRlcnMpO1xuICAgIH1cblxuICAgIGdldEZpbHRlcnMocGFnaW5hdGlvblNldHRpbmdzPzogUGFnaW5hdGlvblNldHRpbmdzKSB7XG4gICAgICAgIGlmICh0aGlzLl9maWx0ZXJzSW5pdGlhbGl6ZWQpIHJldHVybjtcbiAgICAgICAgdGhpcy5fZmlsdGVyc0luaXRpYWxpemVkID0gdHJ1ZTtcbiAgICAgICAgY29uc3Qgc2V0dGluZ3MgPSBwYWdpbmF0aW9uU2V0dGluZ3MgfHwgdGhpcy5fcGFnaW5hdGlvblNldHRpbmdzO1xuICAgICAgICBsZXQgZmluYWxfZmlsdGVyczogRmlsdGVyW10gPSBbXTtcbiAgICAgICAgbGV0IGZpbHRlcnNUb1Byb2Nlc3MgPSB0aGlzLl9vcHRpb25zRmlsdGVycz8uaW5jbHVkZXMoJ2FsbCcpXG4gICAgICAgICAgICA/IChbJ2F0dHJpYnV0ZXMnLCAnY2F0ZWdvcmllcycsICdkeW5hbWljcycsICdzb3J0JywgJ3ByaWNlX3JhbmdlJ10gYXMgRmlsdGVyVHlwZVtdKVxuICAgICAgICAgICAgOiB0aGlzLl9vcHRpb25zRmlsdGVycztcblxuICAgICAgICBydW5JbkluamVjdGlvbkNvbnRleHQodGhpcy5lbnZpcm9ubWVudEluamVjdG9yLCAoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBmaWx0ZXJGYWN0b3J5ID0gbmV3IEZpbHRlckZhY3RvcnkoKTtcbiAgICAgICAgICAgIGZpbHRlcnNUb1Byb2Nlc3M/LmZvckVhY2goZmlsdGVyVHlwZSA9PiB7XG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coJ0NyZWF0aW5nIGZpbHRlciBmb3IgdHlwZTonLCBmaWx0ZXJUeXBlKTtcbiAgICAgICAgICAgICAgICBjb25zdCBmaWx0ZXIgPSBmaWx0ZXJGYWN0b3J5LmNyZWF0ZShmaWx0ZXJUeXBlLCBzZXR0aW5ncyk7XG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coJ0NyZWF0ZWQgZmlsdGVyOicsIGZpbHRlcik7XG4gICAgICAgICAgICAgICAgaWYgKGZpbHRlcikge1xuICAgICAgICAgICAgICAgICAgICBmaW5hbF9maWx0ZXJzLnB1c2goZmlsdGVyKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAvLyBjb25zb2xlLndhcm4oYEZhaWxlZCB0byBjcmVhdGUgZmlsdGVyIGZvciB0eXBlOiAke2ZpbHRlclR5cGV9YCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuX2RlZmF1bHRGaWx0ZXJzPy5mb3JFYWNoKGZpbHRlckRlZmF1bHQgPT4ge1xuICAgICAgICAgICAgbGV0IGZpbHRlciA9IGZpbmFsX2ZpbHRlcnMuZmluZChmaWx0ZXIgPT4gZmlsdGVyLnR5cGUoKSA9PSBmaWx0ZXJEZWZhdWx0LmZpbHRlcl90eXBlKTtcbiAgICAgICAgICAgIGZpbHRlciAmJiBmaWx0ZXJEZWZhdWx0LmNvZGVzLmZvckVhY2godmFsdWUgPT4gZmlsdGVyLnNldFNlbGVjdGVkKHZhbHVlKSk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLl9maWx0ZXJzU3ViamVjdC5uZXh0KGZpbmFsX2ZpbHRlcnMpO1xuICAgICAgICByZXR1cm4gZmluYWxfZmlsdGVycztcbiAgICB9XG5cbiAgICBnZXRTcGVjaWZpY0ZpbHRlcnModHlwZXM6IEZpbHRlclR5cGVbXSk6IEZpbHRlcltdIHtcbiAgICAgICAgY29uc3QgZmlsdGVyczogRmlsdGVyW10gPSB0aGlzLl9maWx0ZXJzU3ViamVjdC52YWx1ZS5maWx0ZXIoZmlsdGVyID0+IHR5cGVzLmluY2x1ZGVzKGZpbHRlci50eXBlKCkpKVxuICAgICAgICByZXR1cm4gZmlsdGVycztcbiAgICB9XG5cbiAgICBzZXRGaWx0ZXJTZWxlY3RlZChmaWx0ZXJPYmo6IEZpbHRlciwgZmlsdGVyRWxlbTogRmlsdGVyRWxlbWVudCkge1xuICAgICAgICBsZXQgZmluYWxfZmlsdGVyczogRmlsdGVyW10gPSB0aGlzLl9maWx0ZXJzU3ViamVjdC52YWx1ZTtcbiAgICAgICAgaWYgKGZpbHRlck9iai50eXBlKCkgIT09ICdwcmljZV9yYW5nZScpIHtcbiAgICAgICAgICAgIGxldCBpbmRleCA9IGZpbmFsX2ZpbHRlcnMuZmluZEluZGV4KGZpbHRlciA9PiBmaWx0ZXIudHlwZSgpID09IGZpbHRlck9iai50eXBlKCkpO1xuICAgICAgICAgICAgZmluYWxfZmlsdGVyc1tpbmRleF0uc2V0U2VsZWN0ZWQoZmlsdGVyRWxlbSwgZmlsdGVyRWxlbS52YWx1ZSB8fCBmaWx0ZXJFbGVtLmNvZGUpO1xuICAgICAgICAgICAgY29uc29sZS5sb2coaW5kZXgsIGZpbmFsX2ZpbHRlcnMpXG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fZmlsdGVyc1N1YmplY3QubmV4dChmaW5hbF9maWx0ZXJzKTtcbiAgICAgICAgLy8gfVxuICAgIH1cblxuICAgIHVwZGF0ZUZpbHRlcnMocGFnaW5hdGlvbkZpbHRlcnM6IGFueSk6IHZvaWQge1xuICAgICAgICBjb25zdCBjbGF2ZXMgPSBPYmplY3Qua2V5cyhwYWdpbmF0aW9uRmlsdGVycylcbiAgICAgICAgcnVuSW5JbmplY3Rpb25Db250ZXh0KHRoaXMuZW52aXJvbm1lbnRJbmplY3RvciwgKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZmlsdGVyRmFjdG9yeSA9IG5ldyBGaWx0ZXJGYWN0b3J5KCk7XG4gICAgICAgICAgICBjb25zdCBmaWx0ZXI6IEZpbHRlcltdID0gW11cbiAgICAgICAgICAgIC8qIGNsYXZlcy5mb3JFYWNoKChrZXk6YW55KSA9PiB7XG4gICAgICAgICAgICAgICAgZmlsdGVyLnB1c2goZmlsdGVyRmFjdG9yeS5jcmVhdGUoa2V5KSlcbiAgICAgICAgICAgICAgICBwYWdpbmF0aW9uRmlsdGVyc1trZXldLmZvckVhY2goKHZhbHVlOmFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coZmlsdGVyWzBdLmNyZWF0ZUVsZW1lbnQodmFsdWUscGFnaW5hdGlvbkZpbHRlcnNba2V5XSkpO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICBcbiAgICAgICAgICAgIH0pICovXG4gICAgICAgICAgICB0aGlzLl9maWx0ZXJzU3ViamVjdC52YWx1ZS5mb3JFYWNoKCh2YWx1ZTogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHZhbHVlLnR5cGUoKSA9PSBcImF0dHJpYnV0ZXNcIikge1xuICAgICAgICAgICAgICAgICAgICAvL3ZhbHVlLmRhdGEgPSBbXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICB9KVxuICAgIH1cblxuICAgIC8qKiBcbiAgICAgKiBBY3R1YWxpemEgaW50ZXJuYW1lbnRlIGVsIHJhbmdvIGRlIHByZWNpbyB5IHJlLWVtaXRlIFxuICAgICAqIGVsIGFycmF5IGRlIGZpbHRyb3MgcGFyYSBxdWUgUGFnaW5hdGlvblNlcnZpY2UgdnVlbHZhIGEgbGxhbWFyIFxuICAgICAqL1xuICAgIHB1YmxpYyB1cGRhdGVQcmljZVJhbmdlRmlsdGVyKG1pbjogbnVtYmVyLCBtYXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBjb25zdCBmaWx0ZXJzID0gdGhpcy5fZmlsdGVyc1N1YmplY3QudmFsdWU7XG4gICAgICAgIGNvbnN0IHByID0gZmlsdGVycy5maW5kKGYgPT4gZi50eXBlKCkgPT09ICdwcmljZV9yYW5nZScpIGFzIFByaWNlUmFuZ2VGaWx0ZXIgfCB1bmRlZmluZWQ7XG4gICAgICAgIGlmICghcHIpIHJldHVybjtcbiAgICAgICAgcHIuc2V0U2VsZWN0ZWQobWluLCBtYXgpO1xuICAgICAgICB0aGlzLl9maWx0ZXJzU3ViamVjdC5uZXh0KFsuLi5maWx0ZXJzXSk7XG4gICAgfVxufVxuXG4vLyBleHBvcnQgdHlwZSBGaWx0ZXJUeXBlID0gJ2F0dHJpYnV0ZXMnIHwgJ2NhdGVnb3JpZXMnIHwgJ2R5bmFtaWNzJyB8ICdzb3J0JyB8ICdwcmljZV9yYW5nZSc7IC8vIFVzZSBpbXBvcnRlZCBGaWx0ZXJUeXBlIGluc3RlYWRcbiJdfQ==
206
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVycy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLXNlcnZpY2VzL2ZpbHRlcnMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRixPQUFPLEVBQUUsZUFBZSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ25ELE9BQU8sRUFBVSxhQUFhLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFbkQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sY0FBYyxDQUFDOztBQU16RSxNQUFNLE9BQU8sY0FBYztJQUNmLFVBQVUsR0FBd0IsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFDOUQsT0FBTyxHQUF5QixNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQztJQUM3RCxlQUFlLEdBQThCLElBQUksZUFBZSxDQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQ2hGLFFBQVEsR0FBeUIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUVwRSxjQUFjLEdBQTRCLElBQUksZUFBZSxDQUFTLEVBQUUsQ0FBQyxDQUFDO0lBQzNFLE9BQU8sR0FBdUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUVoRSxhQUFhLEdBQTZCLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO0lBQy9FLE1BQU0sR0FBd0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUUvRCxtQkFBbUIsR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQTtJQUVqRCxlQUFlLEdBQTJCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbEQsZUFBZSxHQUFvQixFQUFFLENB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LEVBQUUsQ0FBQztRQUNqRCxNQUFNLEdBQUcsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxLQUFLLFVBQVUsQ0FBUSxDQUFDO1FBQzlELElBQUksQ0FBQyxHQUFHLEVBQUUsVUFBVTtZQUFFLE9BQU87UUFFN0IsR0FBRyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN4QixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUV4QyxtRkFBbUY7UUFDbkYsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSztZQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksdUJBQXVCLENBQUMsVUFBeUIsRUFBRSxJQUFzQixFQUFFLE1BQVk7UUFDMUYsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJO1lBQUUsT0FBTztRQUNuQyxNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNwQyxDQUFDO3dHQWhOUSxjQUFjOzRHQUFkLGNBQWMsY0FGWCxNQUFNOzs0RkFFVCxjQUFjO2tCQUgxQixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVudmlyb25tZW50SW5qZWN0b3IsIGluamVjdCwgSW5qZWN0YWJsZSwgcnVuSW5JbmplY3Rpb25Db250ZXh0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEZpbHRlciwgRmlsdGVyRmFjdG9yeSB9IGZyb20gJy4uL2NsYXNzZXMnO1xuaW1wb3J0IHsgRGVmYXVsdEZpbHRlciwgRmlsdGVyRWxlbWVudCwgUGFnaW5hdGlvblNldHRpbmdzLCBGaWx0ZXJUeXBlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBBcGlDb25zdGFudHNTZXJ2aWNlLCBDb3JlQ29uc3RhbnRzU2VydmljZSB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBQcmljZVJhbmdlRmlsdGVyIH0gZnJvbSAnLi4vY2xhc3Nlcy9maWx0ZXJzL3ByaWNlX3JhbmdlLWZpbHRlcic7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgRmlsdGVyc1NlcnZpY2Uge1xuICAgIHByaXZhdGUgX2FwaUNvbnN0czogQXBpQ29uc3RhbnRzU2VydmljZSA9IGluamVjdChBcGlDb25zdGFudHNTZXJ2aWNlKTtcbiAgICBwcml2YXRlIF9jb25zdHM6IENvcmVDb25zdGFudHNTZXJ2aWNlID0gaW5qZWN0KENvcmVDb25zdGFudHNTZXJ2aWNlKTtcbiAgICBwcml2YXRlIF9maWx0ZXJzU3ViamVjdDogQmVoYXZpb3JTdWJqZWN0PEZpbHRlcltdPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RmlsdGVyW10+KFtdKTtcbiAgICBwdWJsaWMgZmlsdGVycyQ6IE9ic2VydmFibGU8RmlsdGVyW10+ID0gdGhpcy5fZmlsdGVyc1N1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG5cbiAgICBwcml2YXRlIF9hcGlVcmxTdWJqZWN0OiBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPignJyk7XG4gICAgcHVibGljIGFwaVVybCQ6IE9ic2VydmFibGU8c3RyaW5nPiA9IHRoaXMuX2FwaVVybFN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG5cbiAgICBwcml2YXRlIF9yZWFkeVN1YmplY3Q6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICAgIHB1YmxpYyByZWFkeSQ6IE9ic2VydmFibGU8Ym9vbGVhbj4gPSB0aGlzLl9yZWFkeVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG5cbiAgICBwcml2YXRlIGVudmlyb25tZW50SW5qZWN0b3IgPSBpbmplY3QoRW52aXJvbm1lbnRJbmplY3RvcilcblxuICAgIHByaXZhdGUgX29wdGlvbnNGaWx0ZXJzOiAoRmlsdGVyVHlwZSB8ICdhbGwnKVtdID0gWydhbGwnXTtcbiAgICBwcml2YXRlIF9kZWZhdWx0RmlsdGVyczogRGVmYXVsdEZpbHRlcltdID0gW107XG5cbiAgICBwcml2YXRlIF9maWx0ZXJzSW5WaWV3ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxGaWx0ZXJFbGVtZW50IHwgbnVsbD4obnVsbCk7XG4gICAgcHVibGljIGZpbHRlcnNJblZpZXckID0gdGhpcy5fZmlsdGVyc0luVmlldy5hc09ic2VydmFibGUoKTtcblxuICAgIHByaXZhdGUgX3BhZ2luYXRpb25TZXR0aW5nczogUGFnaW5hdGlvblNldHRpbmdzID0ge1xuICAgICAgICB2YWx1ZTogJycsXG4gICAgICAgIHR5cGU6ICcnLFxuICAgICAgICBsaW1pdDogMFxuICAgIH07XG5cbiAgICBwcml2YXRlIF9maWx0ZXJzSW5pdGlhbGl6ZWQgPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICAvL3RoaXMuX2RlZmF1bHRGaWx0ZXJzID0gdGhpcy5fY29uc3RzLmdldERlZmF1bHRGaWx0ZXJzKClcbiAgICB9XG5cbiAgICAvL0FQSSBVUkxcbiAgICAvKipcbiAgICAgKiBSZXRvcm5hIGxhIHVybCBwYXJhIGVsIGZpbHRyYWRvXG4gICAgICogQHBhcmFtIGZpbHRlcnMgXG4gICAgICogQHJldHVybnMgXG4gICAgICovXG4gICAgcHJvZHVjdHNGaWx0ZXJBcGkoZmlsdGVycyA9ICcnKSB7IHJldHVybiAnc2hvcC1hcGkvJyArIHRoaXMuX2FwaUNvbnN0cy5DSEFOTkVMICsgJy9wcm9kdWN0LXNlYXJjaC8nICsgJz9sb2NhbGU9JyArIHRoaXMuX2FwaUNvbnN0cy5MT0NBTEUgKyBmaWx0ZXJzIH07XG4gICAgLyoqXG4gICAgICogQXJtYSBsb3MgZmlsdHJvcyB5IHJldG9ybmEgbGEgdXJsIGNvbXBsZXRhIGNvbiBsb3MgZmlsdHJvcyBhcGxpY2Fkb3MuXG4gICAgICogQHBhcmFtIHNlYXJjaF92YWx1ZSB2YWxvciBhIGJ1c2NhclxuICAgICAqIEByZXR1cm5zIFxuICAgICAqL1xuICAgIGdlbmVyYXRlRmluYWxBcGkoc2VhcmNoX3ZhbHVlPzogc3RyaW5nKSB7XG4gICAgICAgIGxldCBleHRyYV9wYXJhbXMgPSAnJztcblxuICAgICAgICBmb3IgKGNvbnN0IGZpbHRlciBvZiB0aGlzLl9maWx0ZXJzU3ViamVjdC52YWx1ZSkge1xuICAgICAgICAgICAgY29uc3QgZXh0cmEgPSAoZmlsdGVyPy50b1VybFBhcmFtcz8uKCkgfHwgJycpLnRyaW0oKTtcbiAgICAgICAgICAgIGlmICghZXh0cmEpIGNvbnRpbnVlO1xuXG4gICAgICAgICAgICBjb25zdCBhZnRlckVxID0gZXh0cmEuaW5jbHVkZXMoJz0nKSA/IGV4dHJhLnNwbGl0KCc9JylbMV0gOiBleHRyYS5yZXBsYWNlKC9eJi8sICcnKTtcbiAgICAgICAgICAgIGlmIChhZnRlckVxICE9PSAnJykgZXh0cmFfcGFyYW1zICs9IGV4dHJhO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHNlYXJjaF92YWx1ZSkge1xuICAgICAgICAgICAgZXh0cmFfcGFyYW1zICs9IGAmY3JpdGVyaWFbc2VhcmNoXVt0eXBlXT1jb250YWlucyZjcml0ZXJpYVtzZWFyY2hdW3ZhbHVlXT0ke2VuY29kZVVSSUNvbXBvbmVudChzZWFyY2hfdmFsdWUpfWA7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMucHJvZHVjdHNGaWx0ZXJBcGkoZXh0cmFfcGFyYW1zKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzVXBkYXRlZChwYWdpbmF0aW9uU2V0dGluZ3M6IFBhZ2luYXRpb25TZXR0aW5ncykge1xuICAgICAgICBjb25zdCBrZXlzOiBzdHJpbmdbXSA9IE9iamVjdC5rZXlzKHBhZ2luYXRpb25TZXR0aW5ncyk7XG4gICAgICAgIGxldCBjaGFuZ2U6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICAgICAga2V5cy5mb3JFYWNoKChrZXk6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSAocGFnaW5hdGlvblNldHRpbmdzIGFzIFJlY29yZDxzdHJpbmcsIGFueT4pW2tleV07XG4gICAgICAgICAgICBjb25zdCB2YWx1ZTIgPSAodGhpcy5fcGFnaW5hdGlvblNldHRpbmdzIGFzIFJlY29yZDxzdHJpbmcsIGFueT4pW2tleV07XG4gICAgICAgICAgICBpZiAodmFsdWUgIT0gdmFsdWUyKSBjaGFuZ2UgPSB0cnVlO1xuICAgICAgICB9KVxuICAgICAgICBpZiAoY2hhbmdlKSB0aGlzLl9wYWdpbmF0aW9uU2V0dGluZ3MgPSBwYWdpbmF0aW9uU2V0dGluZ3M7XG4gICAgICAgIHJldHVybiBjaGFuZ2U7XG4gICAgfVxuXG4gICAgc2V0RmlsdGVycyhwYWdpbmF0aW9uU2V0dGluZ3M6IFBhZ2luYXRpb25TZXR0aW5ncywgc2VhcmNoX3ZhbHVlPzogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuX3BhZ2luYXRpb25TZXR0aW5ncyA9IHBhZ2luYXRpb25TZXR0aW5ncztcbiAgICAgICAgbGV0IGZpbmFsX2ZpbHRlcnM6IEZpbHRlcltdID0gW107XG4gICAgICAgIGNvbnN0IGZpbHRlcnNUb1Byb2Nlc3MgPSB0aGlzLl9vcHRpb25zRmlsdGVycz8uaW5jbHVkZXMoJ2FsbCcpXG4gICAgICAgICAgICA/IChbJ2F0dHJpYnV0ZXMnLCAnY2F0ZWdvcmllcycsICdkeW5hbWljcycsICdzb3J0JywgJ3ByaWNlX3JhbmdlJ10gYXMgRmlsdGVyVHlwZVtdKVxuICAgICAgICAgICAgOiB0aGlzLl9vcHRpb25zRmlsdGVycztcblxuICAgICAgICBydW5JbkluamVjdGlvbkNvbnRleHQodGhpcy5lbnZpcm9ubWVudEluamVjdG9yLCAoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBmaWx0ZXJGYWN0b3J5ID0gbmV3IEZpbHRlckZhY3RvcnkoKTtcbiAgICAgICAgICAgIGZpbHRlcnNUb1Byb2Nlc3M/LmZvckVhY2goZmlsdGVyVHlwZSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgZmlsdGVyID0gZmlsdGVyRmFjdG9yeS5jcmVhdGUoZmlsdGVyVHlwZSwgcGFnaW5hdGlvblNldHRpbmdzKTtcbiAgICAgICAgICAgICAgICBpZiAoZmlsdGVyKSBmaW5hbF9maWx0ZXJzLnB1c2goZmlsdGVyKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLl9kZWZhdWx0RmlsdGVycz8uZm9yRWFjaChkZiA9PiB7XG4gICAgICAgICAgICBjb25zdCBmID0gZmluYWxfZmlsdGVycy5maW5kKGYgPT4gZi50eXBlKCkgPT09IGRmLmZpbHRlcl90eXBlKTtcbiAgICAgICAgICAgIGYgJiYgZGYuY29kZXMuZm9yRWFjaChjb2RlID0+IGYuc2V0U2VsZWN0ZWQoY29kZSkpO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLl9maWx0ZXJzU3ViamVjdC5uZXh0KGZpbmFsX2ZpbHRlcnMpO1xuXG4gICAgICAgIGlmICghdGhpcy5fcmVhZHlTdWJqZWN0LnZhbHVlKSB0aGlzLl9yZWFkeVN1YmplY3QubmV4dCh0cnVlKTtcbiAgICB9XG5cbiAgICBnZXRGaWx0ZXJzKHBhZ2luYXRpb25TZXR0aW5ncz86IFBhZ2luYXRpb25TZXR0aW5ncykge1xuICAgICAgICBpZiAodGhpcy5fZmlsdGVyc0luaXRpYWxpemVkKSByZXR1cm47XG4gICAgICAgIHRoaXMuX2ZpbHRlcnNJbml0aWFsaXplZCA9IHRydWU7XG4gICAgICAgIGNvbnN0IHNldHRpbmdzID0gcGFnaW5hdGlvblNldHRpbmdzIHx8IHRoaXMuX3BhZ2luYXRpb25TZXR0aW5ncztcbiAgICAgICAgbGV0IGZpbmFsX2ZpbHRlcnM6IEZpbHRlcltdID0gW107XG4gICAgICAgIGxldCBmaWx0ZXJzVG9Qcm9jZXNzID0gdGhpcy5fb3B0aW9uc0ZpbHRlcnM/LmluY2x1ZGVzKCdhbGwnKVxuICAgICAgICAgICAgPyAoWydhdHRyaWJ1dGVzJywgJ2NhdGVnb3JpZXMnLCAnZHluYW1pY3MnLCAnc29ydCcsICdwcmljZV9yYW5nZSddIGFzIEZpbHRlclR5cGVbXSlcbiAgICAgICAgICAgIDogdGhpcy5fb3B0aW9uc0ZpbHRlcnM7XG5cbiAgICAgICAgcnVuSW5JbmplY3Rpb25Db250ZXh0KHRoaXMuZW52aXJvbm1lbnRJbmplY3RvciwgKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZmlsdGVyRmFjdG9yeSA9IG5ldyBGaWx0ZXJGYWN0b3J5KCk7XG4gICAgICAgICAgICBmaWx0ZXJzVG9Qcm9jZXNzPy5mb3JFYWNoKGZpbHRlclR5cGUgPT4ge1xuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKCdDcmVhdGluZyBmaWx0ZXIgZm9yIHR5cGU6JywgZmlsdGVyVHlwZSk7XG4gICAgICAgICAgICAgICAgY29uc3QgZmlsdGVyID0gZmlsdGVyRmFjdG9yeS5jcmVhdGUoZmlsdGVyVHlwZSwgc2V0dGluZ3MpO1xuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKCdDcmVhdGVkIGZpbHRlcjonLCBmaWx0ZXIpO1xuICAgICAgICAgICAgICAgIGlmIChmaWx0ZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgZmluYWxfZmlsdGVycy5wdXNoKGZpbHRlcik7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS53YXJuKGBGYWlsZWQgdG8gY3JlYXRlIGZpbHRlciBmb3IgdHlwZTogJHtmaWx0ZXJUeXBlfWApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLl9kZWZhdWx0RmlsdGVycz8uZm9yRWFjaChmaWx0ZXJEZWZhdWx0ID0+IHtcbiAgICAgICAgICAgIGxldCBmaWx0ZXIgPSBmaW5hbF9maWx0ZXJzLmZpbmQoZmlsdGVyID0+IGZpbHRlci50eXBlKCkgPT0gZmlsdGVyRGVmYXVsdC5maWx0ZXJfdHlwZSk7XG4gICAgICAgICAgICBmaWx0ZXIgJiYgZmlsdGVyRGVmYXVsdC5jb2Rlcy5mb3JFYWNoKHZhbHVlID0+IGZpbHRlci5zZXRTZWxlY3RlZCh2YWx1ZSkpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5fZmlsdGVyc1N1YmplY3QubmV4dChmaW5hbF9maWx0ZXJzKTtcbiAgICAgICAgcmV0dXJuIGZpbmFsX2ZpbHRlcnM7XG4gICAgfVxuXG4gICAgZ2V0U3BlY2lmaWNGaWx0ZXJzKHR5cGVzOiBGaWx0ZXJUeXBlW10pOiBGaWx0ZXJbXSB7XG4gICAgICAgIGNvbnN0IGZpbHRlcnM6IEZpbHRlcltdID0gdGhpcy5fZmlsdGVyc1N1YmplY3QudmFsdWUuZmlsdGVyKGZpbHRlciA9PiB0eXBlcy5pbmNsdWRlcyhmaWx0ZXIudHlwZSgpKSlcbiAgICAgICAgcmV0dXJuIGZpbHRlcnM7XG4gICAgfVxuXG4gICAgc2V0RmlsdGVyU2VsZWN0ZWQoZmlsdGVyT2JqOiBGaWx0ZXIsIGZpbHRlckVsZW06IEZpbHRlckVsZW1lbnQpIHtcbiAgICAgICAgbGV0IGZpbmFsX2ZpbHRlcnM6IEZpbHRlcltdID0gdGhpcy5fZmlsdGVyc1N1YmplY3QudmFsdWU7XG4gICAgICAgIGlmIChmaWx0ZXJPYmoudHlwZSgpICE9PSAncHJpY2VfcmFuZ2UnKSB7XG4gICAgICAgICAgICBjb25zdCBpbmRleCA9IGZpbmFsX2ZpbHRlcnMuZmluZEluZGV4KGYgPT4gZi50eXBlKCkgPT0gZmlsdGVyT2JqLnR5cGUoKSk7XG4gICAgICAgICAgICBmaW5hbF9maWx0ZXJzW2luZGV4XS5zZXRTZWxlY3RlZChmaWx0ZXJFbGVtLCBmaWx0ZXJFbGVtLnZhbHVlIHx8IGZpbHRlckVsZW0uY29kZSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fZmlsdGVyc1N1YmplY3QubmV4dChmaW5hbF9maWx0ZXJzKTtcblxuICAgICAgICBpZiAoKGZpbHRlckVsZW0gYXMgYW55KT8ubm9VcmwpIHtcbiAgICAgICAgICAgIHRoaXMuX2ZpbHRlcnNJblZpZXcubmV4dChmaWx0ZXJFbGVtKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHVwZGF0ZUZpbHRlcnMocGFnaW5hdGlvbkZpbHRlcnM6IGFueSk6IHZvaWQge1xuICAgICAgICBjb25zdCBjbGF2ZXMgPSBPYmplY3Qua2V5cyhwYWdpbmF0aW9uRmlsdGVycylcbiAgICAgICAgcnVuSW5JbmplY3Rpb25Db250ZXh0KHRoaXMuZW52aXJvbm1lbnRJbmplY3RvciwgKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZmlsdGVyRmFjdG9yeSA9IG5ldyBGaWx0ZXJGYWN0b3J5KCk7XG4gICAgICAgICAgICBjb25zdCBmaWx0ZXI6IEZpbHRlcltdID0gW11cbiAgICAgICAgICAgIC8qIGNsYXZlcy5mb3JFYWNoKChrZXk6YW55KSA9PiB7XG4gICAgICAgICAgICAgICAgZmlsdGVyLnB1c2goZmlsdGVyRmFjdG9yeS5jcmVhdGUoa2V5KSlcbiAgICAgICAgICAgICAgICBwYWdpbmF0aW9uRmlsdGVyc1trZXldLmZvckVhY2goKHZhbHVlOmFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coZmlsdGVyWzBdLmNyZWF0ZUVsZW1lbnQodmFsdWUscGFnaW5hdGlvbkZpbHRlcnNba2V5XSkpO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICBcbiAgICAgICAgICAgIH0pICovXG4gICAgICAgICAgICB0aGlzLl9maWx0ZXJzU3ViamVjdC52YWx1ZS5mb3JFYWNoKCh2YWx1ZTogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHZhbHVlLnR5cGUoKSA9PSBcImF0dHJpYnV0ZXNcIikge1xuICAgICAgICAgICAgICAgICAgICAvL3ZhbHVlLmRhdGEgPSBbXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICB9KVxuICAgIH1cblxuICAgIC8qKiBcbiAgICAgKiBBY3R1YWxpemEgaW50ZXJuYW1lbnRlIGVsIHJhbmdvIGRlIHByZWNpbyB5IHJlLWVtaXRlIFxuICAgICAqIGVsIGFycmF5IGRlIGZpbHRyb3MgcGFyYSBxdWUgUGFnaW5hdGlvblNlcnZpY2UgdnVlbHZhIGEgbGxhbWFyIFxuICAgICAqL1xuICAgIHB1YmxpYyB1cGRhdGVQcmljZVJhbmdlRmlsdGVyKG1pbjogbnVtYmVyLCBtYXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBjb25zdCBmaWx0ZXJzID0gdGhpcy5fZmlsdGVyc1N1YmplY3QudmFsdWU7XG4gICAgICAgIGNvbnN0IHByID0gZmlsdGVycy5maW5kKGYgPT4gZi50eXBlKCkgPT09ICdwcmljZV9yYW5nZScpIGFzIFByaWNlUmFuZ2VGaWx0ZXIgfCB1bmRlZmluZWQ7XG4gICAgICAgIGlmICghcHIpIHJldHVybjtcbiAgICAgICAgcHIuc2V0U2VsZWN0ZWQobWluLCBtYXgpO1xuICAgICAgICB0aGlzLl9maWx0ZXJzU3ViamVjdC5uZXh0KFsuLi5maWx0ZXJzXSk7XG4gICAgfVxuXG4gICAgcHVibGljIHNldE9wdGlvbnNGaWx0ZXJzKGZpbHRlcnM6IChGaWx0ZXJUeXBlIHwgJ2FsbCcpW10pIHtcbiAgICAgICAgdGhpcy5fb3B0aW9uc0ZpbHRlcnMgPSBmaWx0ZXJzPy5sZW5ndGggPyBmaWx0ZXJzIDogWydhbGwnXTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0RGVmYXVsdEZpbHRlcnMoZGVmYXVsdHM6IERlZmF1bHRGaWx0ZXJbXSkge1xuICAgICAgICB0aGlzLl9kZWZhdWx0RmlsdGVycyA9IGRlZmF1bHRzIHx8IFtdO1xuICAgIH1cblxuICAgIHB1YmxpYyBoeWRyYXRlRHluYW1pY3Mob3B0aW9uczogYW55KTogdm9pZCB7XG4gICAgICAgIGlmICghb3B0aW9ucykgcmV0dXJuO1xuICAgICAgICBjb25zdCBmaWx0ZXJzID0gdGhpcy5fZmlsdGVyc1N1YmplY3QudmFsdWUgfHwgW107XG4gICAgICAgIGNvbnN0IGR5biA9IGZpbHRlcnMuZmluZChmID0+IGYudHlwZSgpID09PSAnZHluYW1pY3MnKSBhcyBhbnk7XG4gICAgICAgIGlmICghZHluPy5zZXRDb250ZW50KSByZXR1cm47XG5cbiAgICAgICAgZHluLnNldENvbnRlbnQob3B0aW9ucyk7XG4gICAgICAgIHRoaXMuX2ZpbHRlcnNTdWJqZWN0Lm5leHQoWy4uLmZpbHRlcnNdKTtcblxuICAgICAgICAvLyBTaSBxdWVyw6lzIHF1ZSByZWFkeSQgcmVwcmVzZW50ZSBcImZpbHRyb3MgbGlzdG9zIHBhcmEgcmVuZGVyIChpbmNsdXllIGRpbsOhbWljb3MpXCJcbiAgICAgICAgaWYgKCF0aGlzLl9yZWFkeVN1YmplY3QudmFsdWUpIHRoaXMuX3JlYWR5U3ViamVjdC5uZXh0KHRydWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiByZWRpcmVjY2lvbmEgc2VndW4gbGEgdXJsIGRlbCBmaWx0cm8uXG4gICAgICogQHBhcmFtIGZpbHRlckVsZW0gTm8gaGFjZSBuYWRhIHBvciBhaG9yYSwgZXMgcGFyYSBtYW50ZW5lciBlbCBtaXNtbyBmb3JtYXRvIHF1ZSBjb21vIHNlIHVzYSBlbiBjb2xsZWN0aW9uXG4gICAgICogQHBhcmFtIGRhdGEgRmlsdHJvIHF1ZSBzZSB1c2EgcGFyYSByZWRpcmVjY2lvblxuICAgICAqL1xuICAgIHB1YmxpYyBzZXRGaWx0ZXJTZWxlY3RlZEJ5UGF0aChmaWx0ZXJFbGVtOiBGaWx0ZXJFbGVtZW50LCBkYXRhOiB7IHBhdGg6IHN0cmluZyB9LCByb3V0ZXI/OiBhbnkpIHtcbiAgICAgICAgaWYgKCFyb3V0ZXIgfHwgIWRhdGE/LnBhdGgpIHJldHVybjtcbiAgICAgICAgcm91dGVyLm5hdmlnYXRlQnlVcmwoZGF0YS5wYXRoKTtcbiAgICB9XG59XG5cbi8vIGV4cG9ydCB0eXBlIEZpbHRlclR5cGUgPSAnYXR0cmlidXRlcycgfCAnY2F0ZWdvcmllcycgfCAnZHluYW1pY3MnIHwgJ3NvcnQnIHwgJ3ByaWNlX3JhbmdlJzsgLy8gVXNlIGltcG9ydGVkIEZpbHRlclR5cGUgaW5zdGVhZFxuIl19