ng-easycommerce-v18 0.3.22-beta.2 → 0.3.22
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 +6 -2
- package/esm2022/lib/classes/filters/attributes-filter.mjs +74 -4
- package/esm2022/lib/classes/filters/category-filter.mjs +105 -26
- package/esm2022/lib/classes/filters/filter-factory.mjs +7 -3
- package/esm2022/lib/classes/filters/price_range-filter.mjs +3 -3
- package/esm2022/lib/constants/core.constants.service.mjs +12 -1
- package/esm2022/lib/ec-components/collection-ec/collection-ec.component.mjs +41 -17
- package/esm2022/lib/ec-components/filters-ec/filters-ec.component.mjs +42 -9
- package/esm2022/lib/ec-components/header-ec/header-ec.component.mjs +12 -6
- package/esm2022/lib/ec-components/price-range-filter/price-range-filter.component.mjs +13 -2
- package/esm2022/lib/ec-services/filters.service.mjs +124 -18
- package/esm2022/lib/ec-services/pagination.service.mjs +70 -22
- package/esm2022/lib/ec-services/products.service.mjs +5 -3
- package/fesm2022/ng-easycommerce-v18.mjs +490 -98
- package/fesm2022/ng-easycommerce-v18.mjs.map +1 -1
- package/lib/classes/filters/attributes-filter.d.ts +24 -0
- package/lib/classes/filters/category-filter.d.ts +30 -3
- package/lib/constants/core.constants.service.d.ts +7 -0
- package/lib/ec-components/collection-ec/collection-ec.component.d.ts +5 -4
- package/lib/ec-components/filters-ec/filters-ec.component.d.ts +13 -0
- package/lib/ec-components/price-range-filter/price-range-filter.component.d.ts +2 -0
- package/lib/ec-services/filters.service.d.ts +18 -1
- package/lib/ec-services/pagination.service.d.ts +21 -5
- package/lib/ec-services/products.service.d.ts +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,9 +1,13 @@
|
|
|
1
|
-
# Version 0.3.22
|
|
1
|
+
# Version 0.3.22
|
|
2
2
|
- Limpieza de importaciones innecesarias en `header-ec.component` para reducir peso y evitar dependencias sin uso.
|
|
3
|
-
# Version 0.3.22-beta.1
|
|
4
3
|
- Se reactiva la inicialización de herramientas de analytics (Facebook Pixel, Google Analytics, GTM, Metricool y Doppler) en el core Angular 18 a partir de los parámetros del endpoint `/parameters`.
|
|
5
4
|
- Se respeta la nomenclatura de glosario `facebook_<canal>_id`, `google_<canal>_id`, `gtm_<canal>_id`, `metricool_<canal>_id`, `doppler_<canal>_id`, usando como fallback los códigos genéricos `<servicio>_id` cuando no exista el específico por canal.
|
|
6
5
|
- Se agrega `IS_PRODUCTION` en `ApiConstantsService` y se limita la inicialización de analytics sólo a entornos productivos.
|
|
6
|
+
# Version 0.3.20
|
|
7
|
+
- Refactor completo de filtros, paginación y productos para soportar correctamente SSR (Server-Side Rendering).
|
|
8
|
+
- Unificación del flujo de filtrado: ahora toda la lógica se basa en URL (params + queryParams) y se hidrata desde `FiltersService.hydrateFromRoute()`.
|
|
9
|
+
- Se optimiza el runtime inicial para evitar ciclos innecesarios y cargar filtros antes del primer render.
|
|
10
|
+
- Se centraliza la sincronización de rangos de precio (filters ↔ pagination ↔ products).
|
|
7
11
|
# Version 0.3.17
|
|
8
12
|
- En el `header-ec.component.ts` se hacen public algunos injectores para poder usarlo en el `header.component.ts` de los frontends.
|
|
9
13
|
# Version 0.3.16
|
|
@@ -1,10 +1,16 @@
|
|
|
1
1
|
import { inject } from "@angular/core";
|
|
2
2
|
import { OptionsService } from "../../ec-services";
|
|
3
3
|
import { Filter } from "./filter";
|
|
4
|
+
/**
|
|
5
|
+
* AttributesFilter
|
|
6
|
+
* - Gestiona el filtro de atributos (estructura de padres/children).
|
|
7
|
+
* - Soporta hidratación desde query params y aplicación de códigos seleccionados.
|
|
8
|
+
*/
|
|
4
9
|
export class AttributesFilter extends Filter {
|
|
5
10
|
_optionsService = inject(OptionsService);
|
|
6
11
|
data = [];
|
|
7
12
|
multi = false;
|
|
13
|
+
_codesFromQuery = null;
|
|
8
14
|
constructor(initialValue, options) {
|
|
9
15
|
super();
|
|
10
16
|
if (options) {
|
|
@@ -12,7 +18,6 @@ export class AttributesFilter extends Filter {
|
|
|
12
18
|
}
|
|
13
19
|
else {
|
|
14
20
|
this._optionsService.getAttributes().subscribe(res => {
|
|
15
|
-
//console.log(res);
|
|
16
21
|
this.setContent(res, initialValue);
|
|
17
22
|
});
|
|
18
23
|
}
|
|
@@ -22,10 +27,18 @@ export class AttributesFilter extends Filter {
|
|
|
22
27
|
const attributes = this._optionsService.generateMenu(options);
|
|
23
28
|
attributes.forEach((filter) => filter = this.createElement(filter, options, initialValue));
|
|
24
29
|
this.data = attributes;
|
|
30
|
+
// Si ya teníamos códigos de la URL guardados, aplicarlos ahora
|
|
31
|
+
if (this._codesFromQuery && this._codesFromQuery.length) {
|
|
32
|
+
// ADDED: Aplicar códigos guardados tras cargar la data.
|
|
33
|
+
this.applyCodes(this._codesFromQuery);
|
|
34
|
+
}
|
|
25
35
|
}
|
|
26
36
|
getContent() {
|
|
27
37
|
return this.data;
|
|
28
38
|
}
|
|
39
|
+
/**
|
|
40
|
+
* ADDED: toUrlParams construye la porción de query string que representa las selecciones de atributos.
|
|
41
|
+
*/
|
|
29
42
|
toUrlParams(actual_url = '&attributeCodes=', sublist, already) {
|
|
30
43
|
let elements = sublist || this.data;
|
|
31
44
|
let aux_url = '';
|
|
@@ -47,12 +60,14 @@ export class AttributesFilter extends Filter {
|
|
|
47
60
|
}
|
|
48
61
|
}
|
|
49
62
|
});
|
|
50
|
-
//console.log(actual_url + aux_url);
|
|
51
63
|
return actual_url + aux_url;
|
|
52
64
|
}
|
|
53
65
|
;
|
|
54
66
|
cleanResult(text) { return text.replace('&attributeCodes=', ''); }
|
|
55
67
|
;
|
|
68
|
+
/**
|
|
69
|
+
* ADDED: createElement transforma cada nodo original en FilterElement y marca selección inicial si corresponde.
|
|
70
|
+
*/
|
|
56
71
|
createElement(filter, original, initialValue) {
|
|
57
72
|
if (filter.type == 'sub') {
|
|
58
73
|
filter.multi = false;
|
|
@@ -65,9 +80,64 @@ export class AttributesFilter extends Filter {
|
|
|
65
80
|
else {
|
|
66
81
|
filter.value = original.code;
|
|
67
82
|
filter.multi = false;
|
|
68
|
-
filter.selected = (initialValue &&
|
|
83
|
+
filter.selected = (initialValue &&
|
|
84
|
+
this.removeAccents(original.slug?.toLowerCase()) === this.removeAccents(initialValue?.toLowerCase()));
|
|
69
85
|
}
|
|
70
86
|
return filter;
|
|
71
87
|
}
|
|
88
|
+
/** hidratar desde la URL */
|
|
89
|
+
hydrateFromQuery(params) {
|
|
90
|
+
const raw = params['attributeCodes'];
|
|
91
|
+
if (!raw) {
|
|
92
|
+
// nada en la URL → limpió filtro
|
|
93
|
+
this._codesFromQuery = null;
|
|
94
|
+
this.clearSelection();
|
|
95
|
+
return;
|
|
96
|
+
}
|
|
97
|
+
const codes = String(raw)
|
|
98
|
+
.split('<and>')
|
|
99
|
+
.map(c => c.trim())
|
|
100
|
+
.filter(Boolean);
|
|
101
|
+
if (!codes.length) {
|
|
102
|
+
this._codesFromQuery = null;
|
|
103
|
+
this.clearSelection();
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
this._codesFromQuery = codes;
|
|
107
|
+
// Si ya tengo data cargada, aplico ahora;
|
|
108
|
+
// si no, se aplicará en setContent().
|
|
109
|
+
if (this.data && this.data.length) {
|
|
110
|
+
// ADDED: Aplicar códigos inmediatamente porque la data ya está disponible.
|
|
111
|
+
this.applyCodes(codes);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* ADDED: applyCodes recorre la estructura y marca selected=true en los children cuyo código está en 'codes'.
|
|
116
|
+
* Además marca el parent como seleccionado si alguno de sus hijos lo está.
|
|
117
|
+
*/
|
|
118
|
+
applyCodes(codes) {
|
|
119
|
+
this.data?.forEach((parent) => {
|
|
120
|
+
parent.selected = false;
|
|
121
|
+
(parent.children || []).forEach((child) => {
|
|
122
|
+
const code = child.code || child.value;
|
|
123
|
+
const isSelected = codes.includes(code);
|
|
124
|
+
child.selected = isSelected;
|
|
125
|
+
if (isSelected) {
|
|
126
|
+
parent.selected = true;
|
|
127
|
+
}
|
|
128
|
+
});
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* ADDED: clearSelection desmarca todos los parents y children (restablece el filtro).
|
|
133
|
+
*/
|
|
134
|
+
clearSelection() {
|
|
135
|
+
this.data?.forEach((parent) => {
|
|
136
|
+
parent.selected = false;
|
|
137
|
+
(parent.children || []).forEach((child) => {
|
|
138
|
+
child.selected = false;
|
|
139
|
+
});
|
|
140
|
+
});
|
|
141
|
+
}
|
|
72
142
|
}
|
|
73
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0cmlidXRlcy1maWx0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvY2xhc3Nlcy9maWx0ZXJzL2F0dHJpYnV0ZXMtZmlsdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRW5ELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFbEMsTUFBTSxPQUFPLGdCQUFpQixTQUFRLE1BQU07SUFDaEMsZUFBZSxHQUFtQixNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7SUFFeEQsSUFBSSxHQUFvQixFQUFFLENBQUM7SUFDM0IsS0FBSyxHQUFZLEtBQUssQ0FBQztJQUVoQyxZQUFZLFlBQWtCLEVBQUUsT0FBWTtRQUN4QyxLQUFLLEVBQUUsQ0FBQztRQUNSLElBQUcsT0FBTyxFQUFDLENBQUM7WUFDUixJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxZQUFZLENBQUMsQ0FBQztRQUMzQyxDQUFDO2FBQUksQ0FBQztZQUNGLElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxFQUFFLENBQUMsU0FBUyxDQUMxQyxHQUFHLENBQUMsRUFBRTtnQkFDRixtQkFBbUI7Z0JBQ25CLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBQyxDQUFDO1lBQ3ZDLENBQUMsQ0FDSixDQUFBO1FBQ0wsQ0FBQztJQUNMLENBQUM7SUFFUSxJQUFJLEtBQWlCLE9BQU8sWUFBWSxDQUFDLENBQUMsQ0FBQztJQUUzQyxVQUFVLENBQUMsT0FBWSxFQUFFLFlBQWtCO1FBQ2hELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzlE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QUMsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDNUksQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBPcHRpb25zU2VydmljZSB9IGZyb20gXCIuLi8uLi9lYy1zZXJ2aWNlc1wiO1xuaW1wb3J0IHsgRmlsdGVyRWxlbWVudCwgRmlsdGVyVHlwZSwgSUZpbHRlciB9IGZyb20gXCIuLi8uLi9pbnRlcmZhY2VzXCI7XG5pbXBvcnQgeyBGaWx0ZXIgfSBmcm9tIFwiLi9maWx0ZXJcIjtcblxuZXhwb3J0IGNsYXNzIEF0dHJpYnV0ZXNGaWx0ZXIgZXh0ZW5kcyBGaWx0ZXIge1xuICAgIHByaXZhdGUgX29wdGlvbnNTZXJ2aWNlOiBPcHRpb25zU2VydmljZSA9IGluamVjdChPcHRpb25zU2VydmljZSk7XG5cbiAgICBvdmVycmlkZSBkYXRhOiBGaWx0ZXJFbGVtZW50W10gPSBbXTtcbiAgICBvdmVycmlkZSBtdWx0aTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IoaW5pdGlhbFZhbHVlPzogYW55LCBvcHRpb25zPzphbnkpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgaWYob3B0aW9ucyl7XG4gICAgICAgICAgICB0aGlzLnNldENvbnRlbnQob3B0aW9ucywgaW5pdGlhbFZhbHVlKTsgXG4gICAgICAgIH1lbHNle1xuICAgICAgICAgICAgdGhpcy5fb3B0aW9uc1NlcnZpY2UuZ2V0QXR0cmlidXRlcygpLnN1YnNjcmliZShcbiAgICAgICAgICAgICAgICByZXMgPT4ge1xuICAgICAgICAgICAgICAgICAgICAvL2NvbnNvbGUubG9nKHJlcyk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0Q29udGVudChyZXMsIGluaXRpYWxWYWx1ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgb3ZlcnJpZGUgdHlwZSgpOiBGaWx0ZXJUeXBlIHsgcmV0dXJuICdhdHRyaWJ1dGVzJzsgfVxuXG4gICAgb3ZlcnJpZGUgc2V0Q29udGVudChvcHRpb25zOiBhbnksIGluaXRpYWxWYWx1ZT86IGFueSk6IHZvaWQge1xuICAgICAgICBjb25zdCBhdHRyaWJ1dGVzID0gdGhpcy5fb3B0aW9uc1NlcnZpY2UuZ2VuZXJhdGVNZW51KG9wdGlvbnMpO1xuICAgICAgICBhdHRyaWJ1dGVzLmZvckVhY2goKGZpbHRlcjogYW55KSA9PiBmaWx0ZXIgPSB0aGlzLmNyZWF0ZUVsZW1lbnQoZmlsdGVyLCBvcHRpb25zLCBpbml0aWFsVmFsdWUpKTtcbiAgICAgICAgdGhpcy5kYXRhID0gYXR0cmlidXRlcztcbiAgICB9XG4gICAgb3ZlcnJpZGUgZ2V0Q29udGVudCgpOiBGaWx0ZXJFbGVtZW50W10ge1xuICAgICAgICByZXR1cm4gdGhpcy5kYXRhO1xuICAgIH1cbiAgICBvdmVycmlkZSB0b1VybFBhcmFtcyhhY3R1YWxfdXJsID0gJyZhdHRyaWJ1dGVDb2Rlcz0nLCBzdWJsaXN0PzphbnksIGFscmVhZHk/OmFueSkge1xuICAgICAgICBsZXQgZWxlbWVudHMgPSBzdWJsaXN0IHx8IHRoaXMuZGF0YTtcbiAgICAgICAgbGV0IGF1eF91cmwgPSAnJztcbiAgICAgICAgZWxlbWVudHMuZm9yRWFjaCgoZWxlbWVudDogYW55KSA9PiB7XG4gICAgICAgICAgICBpZiAoZWxlbWVudC50eXBlID09ICdzdWInKSB7XG4gICAgICAgICAgICAgICAgbGV0IHJlc3VsdCA9IHRoaXMudG9VcmxQYXJhbXMoJycsIGVsZW1lbnQuY2hpbGRyZW4sIChhY3R1YWxfdXJsICE9ICcmYXR0cmlidXRlQ29kZXM9JyAmJiBhY3R1YWxfdXJsICE9ICcnKSlcbiAgICAgICAgICAgICAgICBpZiAoIWFjdHVhbF91cmwuaW5jbHVkZXMocmVzdWx0KSkgYWN0dWFsX3VybCArPSB0aGlzLmNsZWFuUmVzdWx0KHJlc3VsdCk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGVsZW1lbnQuc2VsZWN0ZWQpIHtcbiAgICAgICAgICAgICAgICBpZiAoYWN0dWFsX3VybCA9PSAnJmF0dHJpYnV0ZUNvZGVzPScgJiYgYXV4X3VybCA9PSAnJykge1xuICAgICAgICAgICAgICAgICAgICBhdXhfdXJsID0gZWxlbWVudC5jb2RlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGF1eF91cmwgPT0gJycpIGF1eF91cmwgPSAoYWxyZWFkeSA/ICc8YW5kPicgOiAnJykgKyBlbGVtZW50LmNvZGU7XG4gICAgICAgICAgICAgICAgICAgIGVsc2UgYXV4X3VybCArPSAoJzxhbmQ+JyArIGVsZW1lbnQuY29kZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgICAvL2NvbnNvbGUubG9nKGFjdHVhbF91cmwgKyBhdXhfdXJsKTtcbiAgICAgICAgcmV0dXJuIGFjdHVhbF91cmwgKyBhdXhfdXJsO1xuICAgIH07XG5cbiAgICBjbGVhblJlc3VsdCh0ZXh0OiBzdHJpbmcpIHsgcmV0dXJuIHRleHQucmVwbGFjZSgnJmF0dHJpYnV0ZUNvZGVzPScsICcnKSB9O1xuXG4gICAgb3ZlcnJpZGUgY3JlYXRlRWxlbWVudChmaWx0ZXI6IGFueSwgb3JpZ2luYWw6IGFueSwgaW5pdGlhbFZhbHVlPzogYW55KSB7XG4gICAgICAgIGlmIChmaWx0ZXIudHlwZSA9PSAnc3ViJykge1xuICAgICAgICAgICAgZmlsdGVyLm11bHRpID0gZmFsc2U7XG4gICAgICAgICAgICBmaWx0ZXIuc2hhcGUgPSAndGV4dCc7XG4gICAgICAgICAgICBmaWx0ZXIudmFsdWUgPSBvcmlnaW5hbC5jb2RlO1xuICAgICAgICAgICAgZmlsdGVyLmNoaWxkcmVuID0gZmlsdGVyLmNoaWxkcmVuLm1hcCgoY2hpbGQ6IGFueSwgaTogbnVtYmVyKSA9PntcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVFbGVtZW50KGNoaWxkLCBjaGlsZC5jaGlsZHJlbiwgaW5pdGlhbFZhbHVlKVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBmaWx0ZXIudmFsdWUgPSBvcmlnaW5hbC5jb2RlO1xuICAgICAgICAgICAgZmlsdGVyLm11bHRpID0gZmFsc2U7XG4gICAgICAgICAgICBmaWx0ZXIuc2VsZWN0ZWQgPSAoaW5pdGlhbFZhbHVlICYmIHRoaXMucmVtb3ZlQWNjZW50cyhvcmlnaW5hbC5zbHVnPy50b0xvd2VyQ2FzZSgpKSA9PSB0aGlzLnJlbW92ZUFjY2VudHMoaW5pdGlhbFZhbHVlPy50b0xvd2VyQ2FzZSgpKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZpbHRlcjtcbiAgICB9XG59XG4iXX0=
|
|
143
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0cmlidXRlcy1maWx0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvY2xhc3Nlcy9maWx0ZXJzL2F0dHJpYnV0ZXMtZmlsdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRW5ELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFHbEM7Ozs7R0FJRztBQUNILE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxNQUFNO0lBQ2hDLGVBQWUsR0FBbUIsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBRXhELElBQUksR0FBb0IsRUFBRSxDQUFDO0lBQzNCLEtBQUssR0FBWSxLQUFLLENBQUM7SUFFeEIsZUFBZSxHQUFvQixJQUFJLENBQUM7SUFFaEQsWUFBWSxZQUFrQixFQUFFLE9BQWE7UUFDekMsS0FBSyxFQUFFLENBQUM7UUFDUixJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQ1YsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDM0MsQ0FBQzthQUFNLENBQUM7WUFDSixJQUFJLENBQUMsZUFBZSxDQUFDLGFBQWEsRUFBRSxDQUFDLFNBQVMsQ0FDMUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ0YsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFDLENBQUM7WUFDdkMsQ0FBQyxDQUNKLENBQUE7UUFDTCxDQUFDO0lBQ0wsQ0FBQztJQUVRLElBQUksS0FBaUIsT0FBTyxZQUFZLENBQUMsQ0FBQyxDQUFDO0lBRTNDLFVBQVUsQ0FBQyxPQUFZLEVBQUUsWUFBa0I7UUFDaEQsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZ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bSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IE9wdGlvbnNTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL2VjLXNlcnZpY2VzXCI7XG5pbXBvcnQgeyBGaWx0ZXJFbGVtZW50LCBGaWx0ZXJUeXBlLCBJRmlsdGVyIH0gZnJvbSBcIi4uLy4uL2ludGVyZmFjZXNcIjtcbmltcG9ydCB7IEZpbHRlciB9IGZyb20gXCIuL2ZpbHRlclwiO1xuaW1wb3J0IHsgUGFyYW1zIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xuXG4vKipcbiAqIEF0dHJpYnV0ZXNGaWx0ZXJcbiAqIC0gR2VzdGlvbmEgZWwgZmlsdHJvIGRlIGF0cmlidXRvcyAoZXN0cnVjdHVyYSBkZSBwYWRyZXMvY2hpbGRyZW4pLlxuICogLSBTb3BvcnRhIGhpZHJhdGFjacOzbiBkZXNkZSBxdWVyeSBwYXJhbXMgeSBhcGxpY2FjacOzbiBkZSBjw7NkaWdvcyBzZWxlY2Npb25hZG9zLlxuICovXG5leHBvcnQgY2xhc3MgQXR0cmlidXRlc0ZpbHRlciBleHRlbmRzIEZpbHRlciB7XG4gICAgcHJpdmF0ZSBfb3B0aW9uc1NlcnZpY2U6IE9wdGlvbnNTZXJ2aWNlID0gaW5qZWN0KE9wdGlvbnNTZXJ2aWNlKTtcblxuICAgIG92ZXJyaWRlIGRhdGE6IEZpbHRlckVsZW1lbnRbXSA9IFtdO1xuICAgIG92ZXJyaWRlIG11bHRpOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBwcml2YXRlIF9jb2Rlc0Zyb21RdWVyeTogc3RyaW5nW10gfCBudWxsID0gbnVsbDtcblxuICAgIGNvbnN0cnVjdG9yKGluaXRpYWxWYWx1ZT86IGFueSwgb3B0aW9ucz86IGFueSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBpZiAob3B0aW9ucykge1xuICAgICAgICAgICAgdGhpcy5zZXRDb250ZW50KG9wdGlvbnMsIGluaXRpYWxWYWx1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9vcHRpb25zU2VydmljZS5nZXRBdHRyaWJ1dGVzKCkuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICAgIHJlcyA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0Q29udGVudChyZXMsIGluaXRpYWxWYWx1ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgb3ZlcnJpZGUgdHlwZSgpOiBGaWx0ZXJUeXBlIHsgcmV0dXJuICdhdHRyaWJ1dGVzJzsgfVxuXG4gICAgb3ZlcnJpZGUgc2V0Q29udGVudChvcHRpb25zOiBhbnksIGluaXRpYWxWYWx1ZT86IGFueSk6IHZvaWQge1xuICAgICAgICBjb25zdCBhdHRyaWJ1dGVzID0gdGhpcy5fb3B0aW9uc1NlcnZpY2UuZ2VuZXJhdGVNZW51KG9wdGlvbnMpO1xuICAgICAgICBhdHRyaWJ1dGVzLmZvckVhY2goKGZpbHRlcjogYW55KSA9PiBmaWx0ZXIgPSB0aGlzLmNyZWF0ZUVsZW1lbnQoZmlsdGVyLCBvcHRpb25zLCBpbml0aWFsVmFsdWUpKTtcbiAgICAgICAgdGhpcy5kYXRhID0gYXR0cmlidXRlcztcblxuICAgICAgICAvLyBTaSB5YSB0ZW7DrWFtb3MgY8OzZGlnb3MgZGUgbGEgVVJMIGd1YXJkYWRvcywgYXBsaWNhcmxvcyBhaG9yYVxuICAgICAgICBpZiAodGhpcy5fY29kZXNGcm9tUXVlcnkgJiYgdGhpcy5fY29kZXNGcm9tUXVlcnkubGVuZ3RoKSB7XG4gICAgICAgICAgICAvLyBBRERFRDogQXBsaWNhciBjw7NkaWdvcyBndWFyZGFkb3MgdHJhcyBjYXJnYXIgbGEgZGF0YS5cbiAgICAgICAgICAgIHRoaXMuYXBwbHlDb2Rlcyh0aGlzLl9jb2Rlc0Zyb21RdWVyeSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgb3ZlcnJpZGUgZ2V0Q29udGVudCgpOiBGaWx0ZXJFbGVtZW50W10ge1xuICAgICAgICByZXR1cm4gdGhpcy5kYXRhO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBBRERFRDogdG9VcmxQYXJhbXMgY29uc3RydXllIGxhIHBvcmNpw7NuIGRlIHF1ZXJ5IHN0cmluZyBxdWUgcmVwcmVzZW50YSBsYXMgc2VsZWNjaW9uZXMgZGUgYXRyaWJ1dG9zLlxuICAgICAqL1xuICAgIG92ZXJyaWRlIHRvVXJsUGFyYW1zKGFjdHVhbF91cmwgPSAnJmF0dHJpYnV0ZUNvZGVzPScsIHN1Ymxpc3Q/OiBhbnksIGFscmVhZHk/OiBhbnkpIHtcbiAgICAgICAgbGV0IGVsZW1lbnRzID0gc3VibGlzdCB8fCB0aGlzLmRhdGE7XG4gICAgICAgIGxldCBhdXhfdXJsID0gJyc7XG4gICAgICAgIGVsZW1lbnRzLmZvckVhY2goKGVsZW1lbnQ6IGFueSkgPT4ge1xuICAgICAgICAgICAgaWYgKGVsZW1lbnQudHlwZSA9PSAnc3ViJykge1xuICAgICAgICAgICAgICAgIGxldCByZXN1bHQgPSB0aGlzLnRvVXJsUGFyYW1zKCcnLCBlbGVtZW50LmNoaWxkcmVuLCAoYWN0dWFsX3VybCAhPSAnJmF0dHJpYnV0ZUNvZGVzPScgJiYgYWN0dWFsX3VybCAhPSAnJykpXG4gICAgICAgICAgICAgICAgaWYgKCFhY3R1YWxfdXJsLmluY2x1ZGVzKHJlc3VsdCkpIGFjdHVhbF91cmwgKz0gdGhpcy5jbGVhblJlc3VsdChyZXN1bHQpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChlbGVtZW50LnNlbGVjdGVkKSB7XG4gICAgICAgICAgICAgICAgaWYgKGFjdHVhbF91cmwgPT0gJyZhdHRyaWJ1dGVDb2Rlcz0nICYmIGF1eF91cmwgPT0gJycpIHtcbiAgICAgICAgICAgICAgICAgICAgYXV4X3VybCA9IGVsZW1lbnQuY29kZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChhdXhfdXJsID09ICcnKSBhdXhfdXJsID0gKGFscmVhZHkgPyAnPGFuZD4nIDogJycpICsgZWxlbWVudC5jb2RlO1xuICAgICAgICAgICAgICAgICAgICBlbHNlIGF1eF91cmwgKz0gKCc8YW5kPicgKyBlbGVtZW50LmNvZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICAgcmV0dXJuIGFjdHVhbF91cmwgKyBhdXhfdXJsO1xuICAgIH07XG5cbiAgICBjbGVhblJlc3VsdCh0ZXh0OiBzdHJpbmcpIHsgcmV0dXJuIHRleHQucmVwbGFjZSgnJmF0dHJpYnV0ZUNvZGVzPScsICcnKSB9O1xuXG4gICAgLyoqXG4gICAgICogQURERUQ6IGNyZWF0ZUVsZW1lbnQgdHJhbnNmb3JtYSBjYWRhIG5vZG8gb3JpZ2luYWwgZW4gRmlsdGVyRWxlbWVudCB5IG1hcmNhIHNlbGVjY2nDs24gaW5pY2lhbCBzaSBjb3JyZXNwb25kZS5cbiAgICAgKi9cbiAgICBvdmVycmlkZSBjcmVhdGVFbGVtZW50KGZpbHRlcjogYW55LCBvcmlnaW5hbDogYW55LCBpbml0aWFsVmFsdWU/OiBhbnkpIHtcbiAgICAgICAgaWYgKGZpbHRlci50eXBlID09ICdzdWInKSB7XG4gICAgICAgICAgICBmaWx0ZXIubXVsdGkgPSBmYWxzZTtcbiAgICAgICAgICAgIGZpbHRlci5zaGFwZSA9ICd0ZXh0JztcbiAgICAgICAgICAgIGZpbHRlci52YWx1ZSA9IG9yaWdpbmFsLmNvZGU7XG4gICAgICAgICAgICBmaWx0ZXIuY2hpbGRyZW4gPSBmaWx0ZXIuY2hpbGRyZW4ubWFwKChjaGlsZDogYW55LCBpOiBudW1iZXIpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVFbGVtZW50KGNoaWxkLCBjaGlsZC5jaGlsZHJlbiwgaW5pdGlhbFZhbHVlKVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBmaWx0ZXIudmFsdWUgPSBvcmlnaW5hbC5jb2RlO1xuICAgICAgICAgICAgZmlsdGVyLm11bHRpID0gZmFsc2U7XG4gICAgICAgICAgICBmaWx0ZXIuc2VsZWN0ZWQgPSAoXG4gICAgICAgICAgICAgICAgaW5pdGlhbFZhbHVlICYmXG4gICAgICAgICAgICAgICAgdGhpcy5yZW1vdmVBY2NlbnRzKG9yaWdpbmFsLnNsdWc/LnRvTG93ZXJDYXNlKCkpID09PSB0aGlzLnJlbW92ZUFjY2VudHMoaW5pdGlhbFZhbHVlPy50b0xvd2VyQ2FzZSgpKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmlsdGVyO1xuICAgIH1cblxuICAgIC8qKiBoaWRyYXRhciBkZXNkZSBsYSBVUkwgKi9cbiAgICBoeWRyYXRlRnJvbVF1ZXJ5KHBhcmFtczogUGFyYW1zKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHJhdyA9IHBhcmFtc1snYXR0cmlidXRlQ29kZXMnXTtcblxuICAgICAgICBpZiAoIXJhdykge1xuICAgICAgICAgICAgLy8gbmFkYSBlbiBsYSBVUkwg4oaSIGxpbXBpw7MgZmlsdHJvXG4gICAgICAgICAgICB0aGlzLl9jb2Rlc0Zyb21RdWVyeSA9IG51bGw7XG4gICAgICAgICAgICB0aGlzLmNsZWFyU2VsZWN0aW9uKCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjb2RlcyA9IFN0cmluZyhyYXcpXG4gICAgICAgICAgICAuc3BsaXQoJzxhbmQ+JylcbiAgICAgICAgICAgIC5tYXAoYyA9PiBjLnRyaW0oKSlcbiAgICAgICAgICAgIC5maWx0ZXIoQm9vbGVhbik7XG5cbiAgICAgICAgaWYgKCFjb2Rlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMuX2NvZGVzRnJvbVF1ZXJ5ID0gbnVsbDtcbiAgICAgICAgICAgIHRoaXMuY2xlYXJTZWxlY3Rpb24oKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2NvZGVzRnJvbVF1ZXJ5ID0gY29kZXM7XG5cbiAgICAgICAgLy8gU2kgeWEgdGVuZ28gZGF0YSBjYXJnYWRhLCBhcGxpY28gYWhvcmE7XG4gICAgICAgIC8vIHNpIG5vLCBzZSBhcGxpY2Fyw6EgZW4gc2V0Q29udGVudCgpLlxuICAgICAgICBpZiAodGhpcy5kYXRhICYmIHRoaXMuZGF0YS5sZW5ndGgpIHtcbiAgICAgICAgICAgIC8vIEFEREVEOiBBcGxpY2FyIGPDs2RpZ29zIGlubWVkaWF0YW1lbnRlIHBvcnF1ZSBsYSBkYXRhIHlhIGVzdMOhIGRpc3BvbmlibGUuXG4gICAgICAgICAgICB0aGlzLmFwcGx5Q29kZXMoY29kZXMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQURERUQ6IGFwcGx5Q29kZXMgcmVjb3JyZSBsYSBlc3RydWN0dXJhIHkgbWFyY2Egc2VsZWN0ZWQ9dHJ1ZSBlbiBsb3MgY2hpbGRyZW4gY3V5byBjw7NkaWdvIGVzdMOhIGVuICdjb2RlcycuXG4gICAgICogQWRlbcOhcyBtYXJjYSBlbCBwYXJlbnQgY29tbyBzZWxlY2Npb25hZG8gc2kgYWxndW5vIGRlIHN1cyBoaWpvcyBsbyBlc3TDoS5cbiAgICAgKi9cbiAgICBwcml2YXRlIGFwcGx5Q29kZXMoY29kZXM6IHN0cmluZ1tdKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGF0YT8uZm9yRWFjaCgocGFyZW50OiBhbnkpID0+IHtcbiAgICAgICAgICAgIHBhcmVudC5zZWxlY3RlZCA9IGZhbHNlO1xuICAgICAgICAgICAgKHBhcmVudC5jaGlsZHJlbiB8fCBbXSkuZm9yRWFjaCgoY2hpbGQ6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvZGUgPSBjaGlsZC5jb2RlIHx8IGNoaWxkLnZhbHVlO1xuICAgICAgICAgICAgICAgIGNvbnN0IGlzU2VsZWN0ZWQgPSBjb2Rlcy5pbmNsdWRlcyhjb2RlKTtcbiAgICAgICAgICAgICAgICBjaGlsZC5zZWxlY3RlZCA9IGlzU2VsZWN0ZWQ7XG4gICAgICAgICAgICAgICAgaWYgKGlzU2VsZWN0ZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFyZW50LnNlbGVjdGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQURERUQ6IGNsZWFyU2VsZWN0aW9uIGRlc21hcmNhIHRvZG9zIGxvcyBwYXJlbnRzIHkgY2hpbGRyZW4gKHJlc3RhYmxlY2UgZWwgZmlsdHJvKS5cbiAgICAgKi9cbiAgICBwcml2YXRlIGNsZWFyU2VsZWN0aW9uKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRhdGE/LmZvckVhY2goKHBhcmVudDogYW55KSA9PiB7XG4gICAgICAgICAgICBwYXJlbnQuc2VsZWN0ZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIChwYXJlbnQuY2hpbGRyZW4gfHwgW10pLmZvckVhY2goKGNoaWxkOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICBjaGlsZC5zZWxlY3RlZCA9IGZhbHNlO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1,17 +1,24 @@
|
|
|
1
1
|
import { inject } from "@angular/core";
|
|
2
|
-
import { OptionsService } from "../../ec-services";
|
|
2
|
+
import { FiltersService, OptionsService } from "../../ec-services";
|
|
3
3
|
import { Filter } from "./filter";
|
|
4
|
+
/**
|
|
5
|
+
* CategoryFilter
|
|
6
|
+
* - Gestiona el filtro de categorías.
|
|
7
|
+
* - Mantiene la estructura de categorías (parents/children) y permite:
|
|
8
|
+
* * Inicializar desde OptionsService.
|
|
9
|
+
* * Marcar elementos según slug o query param.
|
|
10
|
+
* * Generar porción de query string (&category=...).
|
|
11
|
+
*/
|
|
4
12
|
export class CategoryFilter extends Filter {
|
|
5
|
-
initialValues;
|
|
6
13
|
_optionsService = inject(OptionsService);
|
|
14
|
+
_filtersService = inject(FiltersService);
|
|
7
15
|
data = [];
|
|
8
16
|
multi = false;
|
|
9
|
-
constructor(
|
|
17
|
+
constructor(initialValue) {
|
|
10
18
|
super();
|
|
11
|
-
this.initialValues = initialValues;
|
|
12
19
|
this._optionsService.getCategories().subscribe(res => {
|
|
13
|
-
|
|
14
|
-
this.
|
|
20
|
+
this.setContent(res, initialValue);
|
|
21
|
+
this._filtersService.refreshFilters();
|
|
15
22
|
});
|
|
16
23
|
}
|
|
17
24
|
type() {
|
|
@@ -23,37 +30,109 @@ export class CategoryFilter extends Filter {
|
|
|
23
30
|
this.data = categories;
|
|
24
31
|
}
|
|
25
32
|
getContent() {
|
|
26
|
-
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
33
|
+
return this.data;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* toUrlParams
|
|
37
|
+
* - Recorre la estructura y devuelve la porción de query string para la categoría seleccionada.
|
|
38
|
+
* - Prioriza el primer selected encontrado (solo una categoría se envía).
|
|
39
|
+
*/
|
|
40
|
+
toUrlParams() {
|
|
41
|
+
const selectedCodes = [];
|
|
42
|
+
const walk = (nodes) => {
|
|
43
|
+
nodes.forEach(n => {
|
|
44
|
+
if (n.selected) {
|
|
45
|
+
selectedCodes.push(n.code || n.value);
|
|
46
|
+
}
|
|
47
|
+
if (Array.isArray(n.children) && n.children.length) {
|
|
48
|
+
walk(n.children);
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
};
|
|
52
|
+
walk(this.data);
|
|
53
|
+
if (selectedCodes.length > 0) {
|
|
54
|
+
return `&category=${encodeURIComponent(selectedCodes[0])}`;
|
|
55
|
+
}
|
|
56
|
+
return '';
|
|
43
57
|
}
|
|
44
58
|
createElement(filter, original, initialValue) {
|
|
45
59
|
if (filter.type == 'sub') {
|
|
46
60
|
filter.multi = false;
|
|
47
61
|
filter.shape = 'text';
|
|
48
62
|
filter.value = original.code;
|
|
49
|
-
filter.selected = (initialValue &&
|
|
63
|
+
filter.selected = (initialValue &&
|
|
64
|
+
this.removeAccents(original.slug?.toLowerCase()) ===
|
|
65
|
+
this.removeAccents(String(initialValue).toLowerCase()));
|
|
50
66
|
filter.children = filter.children.map((child, i) => this.createElement(child, original.children[i], initialValue));
|
|
51
67
|
}
|
|
52
68
|
else {
|
|
53
69
|
filter.value = original.code;
|
|
54
|
-
filter.selected = (initialValue &&
|
|
70
|
+
filter.selected = (initialValue &&
|
|
71
|
+
this.removeAccents(original.slug?.toLowerCase()) ===
|
|
72
|
+
this.removeAccents(String(initialValue).toLowerCase()));
|
|
55
73
|
}
|
|
56
74
|
return filter;
|
|
57
75
|
}
|
|
76
|
+
/**
|
|
77
|
+
* setFromSlug
|
|
78
|
+
* - Marca como selected los nodos cuyo slug/path/name coincide con el slug proporcionado.
|
|
79
|
+
* - Utiliza removeAccents para comparar sin tildes y en minúsculas.
|
|
80
|
+
* - No retorna valor, solo modifica this.data.
|
|
81
|
+
*/
|
|
82
|
+
setFromSlug(slug) {
|
|
83
|
+
const target = this.removeAccents(String(slug).toLowerCase());
|
|
84
|
+
const walk = (nodes) => {
|
|
85
|
+
nodes.forEach(n => {
|
|
86
|
+
// ADDED: iniciar sin selección explícita (asegura estado consistente)
|
|
87
|
+
n.selected = false;
|
|
88
|
+
const candidates = [
|
|
89
|
+
n.slug,
|
|
90
|
+
n.path && String(n.path).split('/').filter(Boolean).pop(),
|
|
91
|
+
n.name
|
|
92
|
+
]
|
|
93
|
+
.filter(Boolean)
|
|
94
|
+
.map((s) => this.removeAccents(s.toLowerCase()));
|
|
95
|
+
if (candidates.includes(target)) {
|
|
96
|
+
n.selected = true;
|
|
97
|
+
}
|
|
98
|
+
if (Array.isArray(n.children) && n.children.length) {
|
|
99
|
+
walk(n.children);
|
|
100
|
+
}
|
|
101
|
+
});
|
|
102
|
+
};
|
|
103
|
+
walk(this.data);
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* hydrateFromQuery
|
|
107
|
+
* - Marca la categoría según el parámetro de query 'category' si existe.
|
|
108
|
+
* - Busca el code exacto en la estructura y marca el nodo correspondiente.
|
|
109
|
+
* - Loggea si se encontró o no la categoría.
|
|
110
|
+
*/
|
|
111
|
+
hydrateFromQuery(query) {
|
|
112
|
+
const raw = query?.['category'];
|
|
113
|
+
if (!raw)
|
|
114
|
+
return;
|
|
115
|
+
const code = String(raw).trim();
|
|
116
|
+
if (!code)
|
|
117
|
+
return;
|
|
118
|
+
const mark = (nodes) => {
|
|
119
|
+
let found = false;
|
|
120
|
+
nodes.forEach(n => {
|
|
121
|
+
if (n.code === code) {
|
|
122
|
+
n.selected = true;
|
|
123
|
+
found = true;
|
|
124
|
+
}
|
|
125
|
+
else {
|
|
126
|
+
n.selected = false;
|
|
127
|
+
}
|
|
128
|
+
if (Array.isArray(n.children) && n.children.length) {
|
|
129
|
+
if (mark(n.children))
|
|
130
|
+
found = true;
|
|
131
|
+
}
|
|
132
|
+
});
|
|
133
|
+
return found;
|
|
134
|
+
};
|
|
135
|
+
const ok = mark(this.data);
|
|
136
|
+
}
|
|
58
137
|
}
|
|
59
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0ZWdvcnktZmlsdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2NsYXNzZXMvZmlsdGVycy9jYXRlZ29yeS1maWx0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFbkQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUVsQyxNQUFNLE9BQU8sY0FBZSxTQUFRLE1BQU07SUFNbEI7SUFMWixlQUFlLEdBQW1CLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUV4RCxJQUFJLEdBQW9CLEVBQUUsQ0FBQztJQUMzQixLQUFLLEdBQVksS0FBSyxDQUFDO0lBRWhDLFlBQW9CLGFBQW1CO1FBQ25DLEtBQUssRUFBRSxDQUFDO1FBRFEsa0JBQWEsR0FBYixhQUFhLENBQU07UUFFbkMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDakQsbUJBQW1CO1lBQ25CLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBQ3hDLENBQUMsQ0FBQyxDQUFBO0lBQ04sQ0FBQztJQUVRLElBQUk7UUFDVCxPQUFPLFlBQVksQ0FBQztJQUN4QixDQUFDO0lBQ1EsVUFBVSxDQUFDLE9BQVksRUFBRSxZQUFrQjtRQUNoRCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM5RCxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBVyxFQUFFLENBQVMsRUFBRSxFQUFFLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxZQUFZLENBQUMsQ0FBQyxDQUFDO1FBQzlHLElBQUksQ0FBQyxJQUFJLEdBQUcsVUFBVSxDQUFDO0lBQzNCLENBQUM7SUFDUSxVQUFVO1FBQ2YsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFDUSxXQUFXLENBQUMsVUFBVSxHQUFHLEVBQUUsRUFBRSxPQUFhO1FBQy9DLElBQUksUUFBUSxHQUFHLE9BQU8sSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ3BDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFZLEVBQUUsRUFBRTtZQUM5QixJQUFJLE9BQU8sQ0FBQyxJQUFJLElBQUksS0FBSyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUM3QyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQ3RELENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1lBQy9ELENBQUM7aUJBQU0sSUFBSSxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQzFCLElBQUksVUFBVSxJQUFJLEVBQUU7b0JBQUUsVUFBVSxHQUFHLFlBQVksR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDOztvQkFDM0QsVUFBVSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUM7WUFDcEMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFBO1FBQ0YsT0FBTyxVQUFVLENBQUM7SUFDdEIsQ0FBQztJQUNRLGFBQWEsQ0FBQyxNQUFXLEVBQUUsUUFBYSxFQUFFLFlBQWtCO1FBQ2pFLElBQUksTUFBTSxDQUFDLElBQUksSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUN2QixNQUFNLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztZQUNyQixNQUFNLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQztZQUN0QixNQUFNLENBQUMsS0FBSyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUM7WUFDN0IsTUFBTSxDQUFDLFFBQVEsR0FBRyxDQUFDLFlBQVksSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUFFLENBQUMsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDeEksTUFBTSxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQVMsRUFBRSxDQUFRLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsWUFBWSxDQUFDLENBQUMsQ0FBQztRQUNsSSxDQUFDO2FBQU0sQ0FBQztZQUNKLE1BQU0sQ0FBQyxLQUFLLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQztZQUM3QixNQUFNLENBQUMsUUFBUSxHQUFHLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxXQUFXLEVBQUUsQ0FBQyxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUM1SSxDQUFDO1FBQ0QsT0FBTyxNQUFNLENBQUE7SUFDakIsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IE9wdGlvbnNTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL2VjLXNlcnZpY2VzXCI7XG5pbXBvcnQgeyBGaWx0ZXJFbGVtZW50LCBGaWx0ZXJUeXBlLCBJRmlsdGVyIH0gZnJvbSBcIi4uLy4uL2ludGVyZmFjZXNcIjtcbmltcG9ydCB7IEZpbHRlciB9IGZyb20gXCIuL2ZpbHRlclwiO1xuXG5leHBvcnQgY2xhc3MgQ2F0ZWdvcnlGaWx0ZXIgZXh0ZW5kcyBGaWx0ZXJ7XG4gICAgcHJpdmF0ZSBfb3B0aW9uc1NlcnZpY2U6IE9wdGlvbnNTZXJ2aWNlID0gaW5qZWN0KE9wdGlvbnNTZXJ2aWNlKTtcblxuICAgIG92ZXJyaWRlIGRhdGE6IEZpbHRlckVsZW1lbnRbXSA9IFtdO1xuICAgIG92ZXJyaWRlIG11bHRpOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGluaXRpYWxWYWx1ZXM/OiBhbnksKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuX29wdGlvbnNTZXJ2aWNlLmdldENhdGVnb3JpZXMoKS5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgICAgIC8vY29uc29sZS5sb2cocmVzKTtcbiAgICAgICAgICAgIHRoaXMuc2V0Q29udGVudChyZXMsIGluaXRpYWxWYWx1ZXMpO1xuICAgICAgICB9KVxuICAgIH1cblxuICAgIG92ZXJyaWRlIHR5cGUoKTogRmlsdGVyVHlwZSB7XG4gICAgICAgIHJldHVybiAnY2F0ZWdvcmllcyc7XG4gICAgfVxuICAgIG92ZXJyaWRlIHNldENvbnRlbnQob3B0aW9uczogYW55LCBpbml0aWFsVmFsdWU/OiBhbnkpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY2F0ZWdvcmllcyA9IHRoaXMuX29wdGlvbnNTZXJ2aWNlLmdlbmVyYXRlTWVudShvcHRpb25zKTtcbiAgICAgICAgY2F0ZWdvcmllcy5mb3JFYWNoKChmaWx0ZXI6IGFueSwgaTogbnVtYmVyKSA9PiBmaWx0ZXIgPSB0aGlzLmNyZWF0ZUVsZW1lbnQoZmlsdGVyLCBvcHRpb25zW2ldLCBpbml0aWFsVmFsdWUpKTtcbiAgICAgICAgdGhpcy5kYXRhID0gY2F0ZWdvcmllcztcbiAgICB9XG4gICAgb3ZlcnJpZGUgZ2V0Q29udGVudCgpOiBGaWx0ZXJFbGVtZW50W10ge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNZXRob2Qgbm90IGltcGxlbWVudGVkLlwiKTtcbiAgICB9XG4gICAgb3ZlcnJpZGUgdG9VcmxQYXJhbXMoYWN0dWFsX3VybCA9ICcnLCBzdWJsaXN0PzogYW55KTogc3RyaW5nIHtcbiAgICAgICAgbGV0IGVsZW1lbnRzID0gc3VibGlzdCB8fCB0aGlzLmRhdGE7XG4gICAgICAgIGVsZW1lbnRzLmZvckVhY2goKGVsZW1lbnQ6IGFueSkgPT4ge1xuICAgICAgICAgICAgaWYgKGVsZW1lbnQudHlwZSA9PSAnc3ViJyAmJiAhZWxlbWVudC5zZWxlY3RlZCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMudG9VcmxQYXJhbXMoJycsIGVsZW1lbnQuY2hpbGRyZW4pO1xuICAgICAgICAgICAgICAgICFhY3R1YWxfdXJsLmluY2x1ZGVzKHJlc3VsdCkgPyBhY3R1YWxfdXJsICs9IHJlc3VsdCA6IG51bGw7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGVsZW1lbnQuc2VsZWN0ZWQpIHtcbiAgICAgICAgICAgICAgICBpZiAoYWN0dWFsX3VybCA9PSAnJykgYWN0dWFsX3VybCA9ICcmY2F0ZWdvcnk9JyArIGVsZW1lbnQudmFsdWU7XG4gICAgICAgICAgICAgICAgZWxzZSBhY3R1YWxfdXJsID0gZWxlbWVudC52YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICAgcmV0dXJuIGFjdHVhbF91cmw7XG4gICAgfVxuICAgIG92ZXJyaWRlIGNyZWF0ZUVsZW1lbnQoZmlsdGVyOiBhbnksIG9yaWdpbmFsOiBhbnksIGluaXRpYWxWYWx1ZT86IGFueSkge1xuICAgICAgICBpZiAoZmlsdGVyLnR5cGUgPT0gJ3N1YicpIHtcbiAgICAgICAgICAgIGZpbHRlci5tdWx0aSA9IGZhbHNlO1xuICAgICAgICAgICAgZmlsdGVyLnNoYXBlID0gJ3RleHQnO1xuICAgICAgICAgICAgZmlsdGVyLnZhbHVlID0gb3JpZ2luYWwuY29kZTtcbiAgICAgICAgICAgIGZpbHRlci5zZWxlY3RlZCA9IChpbml0aWFsVmFsdWUgJiYgdGhpcy5yZW1vdmVBY2NlbnRzKG9yaWdpbmFsLnNsdWc/LnRvTG93ZXJDYXNlKCkpID09IHRoaXMucmVtb3ZlQWNjZW50cyhpbml0aWFsVmFsdWU/LnRvTG93ZXJDYXNlKCkpKTtcbiAgICAgICAgICAgIGZpbHRlci5jaGlsZHJlbiA9IGZpbHRlci5jaGlsZHJlbi5tYXAoKGNoaWxkOmFueSwgaTpudW1iZXIpID0+IHRoaXMuY3JlYXRlRWxlbWVudChjaGlsZCwgb3JpZ2luYWwuY2hpbGRyZW5baV0sIGluaXRpYWxWYWx1ZSkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZmlsdGVyLnZhbHVlID0gb3JpZ2luYWwuY29kZTtcbiAgICAgICAgICAgIGZpbHRlci5zZWxlY3RlZCA9IChpbml0aWFsVmFsdWUgJiYgdGhpcy5yZW1vdmVBY2NlbnRzKG9yaWdpbmFsLnNsdWc/LnRvTG93ZXJDYXNlKCkpID09IHRoaXMucmVtb3ZlQWNjZW50cyhpbml0aWFsVmFsdWU/LnRvTG93ZXJDYXNlKCkpKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmlsdGVyXG4gICAgfVxufVxuIl19
|
|
138
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0ZWdvcnktZmlsdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2NsYXNzZXMvZmlsdGVycy9jYXRlZ29yeS1maWx0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUUsY0FBYyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRW5FLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFbEM7Ozs7Ozs7R0FPRztBQUNILE1BQU0sT0FBTyxjQUFlLFNBQVEsTUFBTTtJQUM5QixlQUFlLEdBQW1CLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUN6RCxlQUFlLEdBQW1CLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUV4RCxJQUFJLEdBQW9CLEVBQUUsQ0FBQztJQUMzQixLQUFLLEdBQVksS0FBSyxDQUFDO0lBRWhDLFlBQVksWUFBa0I7UUFDMUIsS0FBSyxFQUFFLENBQUM7UUFFUixJQUFJLENBQUMsZUFBZSxDQUFDLGFBQWEsRUFBRSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNqRCxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUMsQ0FBQztZQUNuQyxJQUFJLENBQUMsZUFBZSxDQUFDLGNBQWMsRUFBRSxDQUFBO1FBQ3pDLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVRLElBQUk7UUFDVCxPQUFPLFlBQVksQ0FBQztJQUN4QixDQUFDO0lBRVEsVUFBVSxDQUFDLE9BQVksRUFBRSxZQUFrQjtRQUNoRCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM5RCxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsTUFB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LElBQUksR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDaEMsSUFBSSxDQUFDLElBQUk7WUFBRSxPQUFPO1FBRWxCLE1BQU0sSUFBSSxHQUFHLENBQUMsS0FBWSxFQUFXLEVBQUU7WUFDbkMsSUFBSSxLQUFLLEdBQUcsS0FBSyxDQUFDO1lBQ2xCLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLElBQUksRUFBRSxDQUFDO29CQUNsQixDQUFDLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztvQkFDbEIsS0FBSyxHQUFHLElBQUksQ0FBQztnQkFDakIsQ0FBQztxQkFBTSxDQUFDO29CQUNKLENBQUMsQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO2dCQUN2QixDQUFDO2dCQUNELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDakQsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQzt3QkFBRSxLQUFLLEdBQUcsSUFBSSxDQUFDO2dCQUN2QyxDQUFDO1lBQ0wsQ0FBQyxDQUFDLENBQUM7WUFDSCxPQUFPLEtBQUssQ0FBQztRQUNqQixDQUFDLENBQUM7UUFFRixNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQy9CLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBGaWx0ZXJzU2VydmljZSwgT3B0aW9uc1NlcnZpY2UgfSBmcm9tIFwiLi4vLi4vZWMtc2VydmljZXNcIjtcbmltcG9ydCB7IEZpbHRlckVsZW1lbnQsIEZpbHRlclR5cGUgfSBmcm9tIFwiLi4vLi4vaW50ZXJmYWNlc1wiO1xuaW1wb3J0IHsgRmlsdGVyIH0gZnJvbSBcIi4vZmlsdGVyXCI7XG5cbi8qKlxuICogQ2F0ZWdvcnlGaWx0ZXJcbiAqIC0gR2VzdGlvbmEgZWwgZmlsdHJvIGRlIGNhdGVnb3LDrWFzLlxuICogLSBNYW50aWVuZSBsYSBlc3RydWN0dXJhIGRlIGNhdGVnb3LDrWFzIChwYXJlbnRzL2NoaWxkcmVuKSB5IHBlcm1pdGU6XG4gKiAgICogSW5pY2lhbGl6YXIgZGVzZGUgT3B0aW9uc1NlcnZpY2UuXG4gKiAgICogTWFyY2FyIGVsZW1lbnRvcyBzZWfDum4gc2x1ZyBvIHF1ZXJ5IHBhcmFtLlxuICogICAqIEdlbmVyYXIgcG9yY2nDs24gZGUgcXVlcnkgc3RyaW5nICgmY2F0ZWdvcnk9Li4uKS5cbiAqL1xuZXhwb3J0IGNsYXNzIENhdGVnb3J5RmlsdGVyIGV4dGVuZHMgRmlsdGVyIHtcbiAgICBwcml2YXRlIF9vcHRpb25zU2VydmljZTogT3B0aW9uc1NlcnZpY2UgPSBpbmplY3QoT3B0aW9uc1NlcnZpY2UpO1xuICAgIHByaXZhdGUgX2ZpbHRlcnNTZXJ2aWNlOiBGaWx0ZXJzU2VydmljZSA9IGluamVjdChGaWx0ZXJzU2VydmljZSk7XG5cbiAgICBvdmVycmlkZSBkYXRhOiBGaWx0ZXJFbGVtZW50W10gPSBbXTtcbiAgICBvdmVycmlkZSBtdWx0aTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IoaW5pdGlhbFZhbHVlPzogYW55KSB7XG4gICAgICAgIHN1cGVyKCk7XG5cbiAgICAgICAgdGhpcy5fb3B0aW9uc1NlcnZpY2UuZ2V0Q2F0ZWdvcmllcygpLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgICAgICAgdGhpcy5zZXRDb250ZW50KHJlcywgaW5pdGlhbFZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMuX2ZpbHRlcnNTZXJ2aWNlLnJlZnJlc2hGaWx0ZXJzKClcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgb3ZlcnJpZGUgdHlwZSgpOiBGaWx0ZXJUeXBlIHtcbiAgICAgICAgcmV0dXJuICdjYXRlZ29yaWVzJztcbiAgICB9XG5cbiAgICBvdmVycmlkZSBzZXRDb250ZW50KG9wdGlvbnM6IGFueSwgaW5pdGlhbFZhbHVlPzogYW55KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGNhdGVnb3JpZXMgPSB0aGlzLl9vcHRpb25zU2VydmljZS5nZW5lcmF0ZU1lbnUob3B0aW9ucyk7XG4gICAgICAgIGNhdGVnb3JpZXMuZm9yRWFjaCgoZmlsdGVyOiBhbnksIGk6IG51bWJlcikgPT5cbiAgICAgICAgICAgIGZpbHRlciA9IHRoaXMuY3JlYXRlRWxlbWVudChmaWx0ZXIsIG9wdGlvbnNbaV0sIGluaXRpYWxWYWx1ZSlcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5kYXRhID0gY2F0ZWdvcmllcztcbiAgICB9XG5cbiAgICBvdmVycmlkZSBnZXRDb250ZW50KCk6IEZpbHRlckVsZW1lbnRbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLmRhdGE7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogdG9VcmxQYXJhbXNcbiAgICAgKiAtIFJlY29ycmUgbGEgZXN0cnVjdHVyYSB5IGRldnVlbHZlIGxhIHBvcmNpw7NuIGRlIHF1ZXJ5IHN0cmluZyBwYXJhIGxhIGNhdGVnb3LDrWEgc2VsZWNjaW9uYWRhLlxuICAgICAqIC0gUHJpb3JpemEgZWwgcHJpbWVyIHNlbGVjdGVkIGVuY29udHJhZG8gKHNvbG8gdW5hIGNhdGVnb3LDrWEgc2UgZW52w61hKS5cbiAgICAgKi9cbiAgICBvdmVycmlkZSB0b1VybFBhcmFtcygpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBzZWxlY3RlZENvZGVzOiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgICAgIGNvbnN0IHdhbGsgPSAobm9kZXM6IGFueVtdKSA9PiB7XG4gICAgICAgICAgICBub2Rlcy5mb3JFYWNoKG4gPT4ge1xuICAgICAgICAgICAgICAgIGlmIChuLnNlbGVjdGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkQ29kZXMucHVzaChuLmNvZGUgfHwgbi52YWx1ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KG4uY2hpbGRyZW4pICYmIG4uY2hpbGRyZW4ubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIHdhbGsobi5jaGlsZHJlbik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH07XG5cbiAgICAgICAgd2Fsayh0aGlzLmRhdGEpO1xuXG4gICAgICAgIGlmIChzZWxlY3RlZENvZGVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHJldHVybiBgJmNhdGVnb3J5PSR7ZW5jb2RlVVJJQ29tcG9uZW50KHNlbGVjdGVkQ29kZXNbMF0pfWA7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gJyc7XG4gICAgfVxuXG4gICAgb3ZlcnJpZGUgY3JlYXRlRWxlbWVudChmaWx0ZXI6IGFueSwgb3JpZ2luYWw6IGFueSwgaW5pdGlhbFZhbHVlPzogYW55KSB7XG4gICAgICAgIGlmIChmaWx0ZXIudHlwZSA9PSAnc3ViJykge1xuICAgICAgICAgICAgZmlsdGVyLm11bHRpID0gZmFsc2U7XG4gICAgICAgICAgICBmaWx0ZXIuc2hhcGUgPSAndGV4dCc7XG4gICAgICAgICAgICBmaWx0ZXIudmFsdWUgPSBvcmlnaW5hbC5jb2RlO1xuICAgICAgICAgICAgZmlsdGVyLnNlbGVjdGVkID0gKFxuICAgICAgICAgICAgICAgIGluaXRpYWxWYWx1ZSAmJlxuICAgICAgICAgICAgICAgIHRoaXMucmVtb3ZlQWNjZW50cyhvcmlnaW5hbC5zbHVnPy50b0xvd2VyQ2FzZSgpKSA9PT1cbiAgICAgICAgICAgICAgICB0aGlzLnJlbW92ZUFjY2VudHMoU3RyaW5nKGluaXRpYWxWYWx1ZSkudG9Mb3dlckNhc2UoKSlcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBmaWx0ZXIuY2hpbGRyZW4gPSBmaWx0ZXIuY2hpbGRyZW4ubWFwKFxuICAgICAgICAgICAgICAgIChjaGlsZDogYW55LCBpOiBudW1iZXIpID0+IHRoaXMuY3JlYXRlRWxlbWVudChjaGlsZCwgb3JpZ2luYWwuY2hpbGRyZW5baV0sIGluaXRpYWxWYWx1ZSlcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBmaWx0ZXIudmFsdWUgPSBvcmlnaW5hbC5jb2RlO1xuICAgICAgICAgICAgZmlsdGVyLnNlbGVjdGVkID0gKFxuICAgICAgICAgICAgICAgIGluaXRpYWxWYWx1ZSAmJlxuICAgICAgICAgICAgICAgIHRoaXMucmVtb3ZlQWNjZW50cyhvcmlnaW5hbC5zbHVnPy50b0xvd2VyQ2FzZSgpKSA9PT1cbiAgICAgICAgICAgICAgICB0aGlzLnJlbW92ZUFjY2VudHMoU3RyaW5nKGluaXRpYWxWYWx1ZSkudG9Mb3dlckNhc2UoKSlcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZpbHRlcjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBzZXRGcm9tU2x1Z1xuICAgICAqIC0gTWFyY2EgY29tbyBzZWxlY3RlZCBsb3Mgbm9kb3MgY3V5byBzbHVnL3BhdGgvbmFtZSBjb2luY2lkZSBjb24gZWwgc2x1ZyBwcm9wb3JjaW9uYWRvLlxuICAgICAqIC0gVXRpbGl6YSByZW1vdmVBY2NlbnRzIHBhcmEgY29tcGFyYXIgc2luIHRpbGRlcyB5IGVuIG1pbsO6c2N1bGFzLlxuICAgICAqIC0gTm8gcmV0b3JuYSB2YWxvciwgc29sbyBtb2RpZmljYSB0aGlzLmRhdGEuXG4gICAgICovXG4gICAgc2V0RnJvbVNsdWcoc2x1Zzogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHRhcmdldCA9IHRoaXMucmVtb3ZlQWNjZW50cyhTdHJpbmcoc2x1ZykudG9Mb3dlckNhc2UoKSk7XG5cbiAgICAgICAgY29uc3Qgd2FsayA9IChub2RlczogYW55W10pID0+IHtcbiAgICAgICAgICAgIG5vZGVzLmZvckVhY2gobiA9PiB7XG4gICAgICAgICAgICAgICAgLy8gQURERUQ6IGluaWNpYXIgc2luIHNlbGVjY2nDs24gZXhwbMOtY2l0YSAoYXNlZ3VyYSBlc3RhZG8gY29uc2lzdGVudGUpXG4gICAgICAgICAgICAgICAgbi5zZWxlY3RlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGNvbnN0IGNhbmRpZGF0ZXMgPSBbXG4gICAgICAgICAgICAgICAgICAgIG4uc2x1ZyxcbiAgICAgICAgICAgICAgICAgICAgbi5wYXRoICYmIFN0cmluZyhuLnBhdGgpLnNwbGl0KCcvJykuZmlsdGVyKEJvb2xlYW4pLnBvcCgpLFxuICAgICAgICAgICAgICAgICAgICBuLm5hbWVcbiAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgICAgICAgIC5maWx0ZXIoQm9vbGVhbilcbiAgICAgICAgICAgICAgICAgICAgLm1hcCgoczogc3RyaW5nKSA9PiB0aGlzLnJlbW92ZUFjY2VudHMocy50b0xvd2VyQ2FzZSgpKSk7XG5cbiAgICAgICAgICAgICAgICBpZiAoY2FuZGlkYXRlcy5pbmNsdWRlcyh0YXJnZXQpKSB7XG4gICAgICAgICAgICAgICAgICAgIG4uc2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KG4uY2hpbGRyZW4pICYmIG4uY2hpbGRyZW4ubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIHdhbGsobi5jaGlsZHJlbik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH07XG5cbiAgICAgICAgd2Fsayh0aGlzLmRhdGEpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGh5ZHJhdGVGcm9tUXVlcnlcbiAgICAgKiAtIE1hcmNhIGxhIGNhdGVnb3LDrWEgc2Vnw7puIGVsIHBhcsOhbWV0cm8gZGUgcXVlcnkgJ2NhdGVnb3J5JyBzaSBleGlzdGUuXG4gICAgICogLSBCdXNjYSBlbCBjb2RlIGV4YWN0byBlbiBsYSBlc3RydWN0dXJhIHkgbWFyY2EgZWwgbm9kbyBjb3JyZXNwb25kaWVudGUuXG4gICAgICogLSBMb2dnZWEgc2kgc2UgZW5jb250csOzIG8gbm8gbGEgY2F0ZWdvcsOtYS5cbiAgICAgKi9cbiAgICBoeWRyYXRlRnJvbVF1ZXJ5KHF1ZXJ5OiBhbnkpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcmF3ID0gcXVlcnk/LlsnY2F0ZWdvcnknXTtcbiAgICAgICAgaWYgKCFyYXcpIHJldHVybjtcblxuICAgICAgICBjb25zdCBjb2RlID0gU3RyaW5nKHJhdykudHJpbSgpO1xuICAgICAgICBpZiAoIWNvZGUpIHJldHVybjtcblxuICAgICAgICBjb25zdCBtYXJrID0gKG5vZGVzOiBhbnlbXSk6IGJvb2xlYW4gPT4ge1xuICAgICAgICAgICAgbGV0IGZvdW5kID0gZmFsc2U7XG4gICAgICAgICAgICBub2Rlcy5mb3JFYWNoKG4gPT4ge1xuICAgICAgICAgICAgICAgIGlmIChuLmNvZGUgPT09IGNvZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgbi5zZWxlY3RlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIGZvdW5kID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBuLnNlbGVjdGVkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KG4uY2hpbGRyZW4pICYmIG4uY2hpbGRyZW4ubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChtYXJrKG4uY2hpbGRyZW4pKSBmb3VuZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gZm91bmQ7XG4gICAgICAgIH07XG5cbiAgICAgICAgY29uc3Qgb2sgPSBtYXJrKHRoaXMuZGF0YSk7XG4gICAgfVxufSJdfQ==
|
|
@@ -7,9 +7,13 @@ export class FilterFactory {
|
|
|
7
7
|
create(filterType, productsFilter) {
|
|
8
8
|
switch (filterType) {
|
|
9
9
|
case 'categories':
|
|
10
|
-
return new CategoryFilter(productsFilter
|
|
10
|
+
return new CategoryFilter(productsFilter?.type === 'categories'
|
|
11
|
+
? productsFilter.value
|
|
12
|
+
: null);
|
|
11
13
|
case 'attributes':
|
|
12
|
-
return new AttributesFilter(productsFilter
|
|
14
|
+
return new AttributesFilter(productsFilter?.type === 'attributes'
|
|
15
|
+
? productsFilter.value
|
|
16
|
+
: null);
|
|
13
17
|
case 'dynamics':
|
|
14
18
|
return new DynamicsFilter();
|
|
15
19
|
case 'sort':
|
|
@@ -22,4 +26,4 @@ export class FilterFactory {
|
|
|
22
26
|
}
|
|
23
27
|
}
|
|
24
28
|
}
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLWZhY3RvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvY2xhc3Nlcy9maWx0ZXJzL2ZpbHRlci1mYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFbkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUV4RCxNQUFNLE9BQU8sYUFBYTtJQUNmLE1BQU0sQ0FBQyxVQUFzQixFQUFFLGNBQW1DO1FBQ3JFLFFBQVEsVUFBVSxFQUFFLENBQUM7WUFDakIsS0FBSyxZQUFZO2dCQUNiLE9BQU8sSUFBSSxjQUFjLENBQ3JCLGNBQWMsRUFBRSxJQUFJLEtBQUssWUFBWTtvQkFDakMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxLQUFLO29CQUN0QixDQUFDLENBQUMsSUFBSSxDQUNiLENBQUM7WUFDTixLQUFLLFlBQVk7Z0JBQ2IsT0FBTyxJQUFJLGdCQUFnQixDQUN2QixjQUFjLEVBQUUsSUFBSSxLQUFLLFlBQVk7b0JBQ2pDLENBQUMsQ0FBQyxjQUFjLENBQUMsS0FBSztvQkFDdEIsQ0FBQyxDQUFDLElBQUksQ0FDYixDQUFDO1lBQ04sS0FBSyxVQUFVO2dCQUNYLE9BQU8sSUFBSSxjQUFjLEVBQUUsQ0FBQztZQUNoQyxLQUFLLE1BQU07Z0JBQ1AsT0FBTyxJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQzVCLEtBQUssYUFBYTtnQkFDZCxPQUFPLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztZQUNsQztnQkFDSSw0REFBNEQ7Z0JBQzVELE1BQU0sSUFBSSxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtRQUMxQyxDQUFDO0lBQ0wsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmlsdGVyVHlwZSwgSUZpbHRlciwgUGFnaW5hdGlvblNldHRpbmdzIH0gZnJvbSBcIi4uLy4uL2ludGVyZmFjZXNcIjtcbmltcG9ydCB7IEF0dHJpYnV0ZXNGaWx0ZXIgfSBmcm9tIFwiLi9hdHRyaWJ1dGVzLWZpbHRlclwiO1xuaW1wb3J0IHsgQ2F0ZWdvcnlGaWx0ZXIgfSBmcm9tIFwiLi9jYXRlZ29yeS1maWx0ZXJcIjtcbmltcG9ydCB7IER5bmFtaWNzRmlsdGVyIH0gZnJvbSBcIi4vZHluYW1pY3MtZmlsdGVyXCI7XG5pbXBvcnQgeyBGaWx0ZXIgfSBmcm9tIFwiLi9maWx0ZXJcIjtcbmltcG9ydCB7IFNvcnRGaWx0ZXIgfSBmcm9tIFwiLi9zb3J0LWZpbHRlclwiO1xuaW1wb3J0IHsgUHJpY2VSYW5nZUZpbHRlciB9IGZyb20gXCIuL3ByaWNlX3JhbmdlLWZpbHRlclwiO1xuXG5leHBvcnQgY2xhc3MgRmlsdGVyRmFjdG9yeSB7XG4gICAgcHVibGljIGNyZWF0ZShmaWx0ZXJUeXBlOiBGaWx0ZXJUeXBlLCBwcm9kdWN0c0ZpbHRlcj86IFBhZ2luYXRpb25TZXR0aW5ncyk6IEZpbHRlciB7XG4gICAgICAgIHN3aXRjaCAoZmlsdGVyVHlwZSkge1xuICAgICAgICAgICAgY2FzZSAnY2F0ZWdvcmllcyc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBDYXRlZ29yeUZpbHRlcihcbiAgICAgICAgICAgICAgICAgICAgcHJvZHVjdHNGaWx0ZXI/LnR5cGUgPT09ICdjYXRlZ29yaWVzJ1xuICAgICAgICAgICAgICAgICAgICAgICAgPyBwcm9kdWN0c0ZpbHRlci52YWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgOiBudWxsXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGNhc2UgJ2F0dHJpYnV0ZXMnOlxuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgQXR0cmlidXRlc0ZpbHRlcihcbiAgICAgICAgICAgICAgICAgICAgcHJvZHVjdHNGaWx0ZXI/LnR5cGUgPT09ICdhdHRyaWJ1dGVzJ1xuICAgICAgICAgICAgICAgICAgICAgICAgPyBwcm9kdWN0c0ZpbHRlci52YWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgOiBudWxsXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGNhc2UgJ2R5bmFtaWNzJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IER5bmFtaWNzRmlsdGVyKCk7XG4gICAgICAgICAgICBjYXNlICdzb3J0JzpcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFNvcnRGaWx0ZXIoKTtcbiAgICAgICAgICAgIGNhc2UgJ3ByaWNlX3JhbmdlJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFByaWNlUmFuZ2VGaWx0ZXIoKTtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5lcnJvcignRmlsdGVyIHR5cGUgbm90IHJlY29nbml6ZWQ6JywgZmlsdGVyVHlwZSk7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTm90IGltcGxlbWVudGVkXCIpXG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
|
|
@@ -15,8 +15,8 @@ export class PriceRangeFilter extends Filter {
|
|
|
15
15
|
if (options.minPrice != null && options.maxPrice != null) {
|
|
16
16
|
this.minPrice = options.minPrice;
|
|
17
17
|
this.maxPrice = options.maxPrice;
|
|
18
|
-
this.currentMinPrice = options.currentMinPrice ??
|
|
19
|
-
this.currentMaxPrice = options.currentMaxPrice ??
|
|
18
|
+
this.currentMinPrice = options.currentMinPrice ?? null;
|
|
19
|
+
this.currentMaxPrice = options.currentMaxPrice ?? null;
|
|
20
20
|
this._loaded = true;
|
|
21
21
|
}
|
|
22
22
|
};
|
|
@@ -56,4 +56,4 @@ export class PriceRangeFilter extends Filter {
|
|
|
56
56
|
this.currentMaxPrice = null;
|
|
57
57
|
};
|
|
58
58
|
}
|
|
59
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpY2VfcmFuZ2UtZmlsdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2NsYXNzZXMvZmlsdGVycy9wcmljZV9yYW5nZS1maWx0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUdsQyxNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsTUFBTTtJQUNoQyxPQUFPLEdBQUcsS0FBSyxDQUFDO0lBRXhCLFFBQVEsR0FBVyxDQUFDLENBQUM7SUFDckIsUUFBUSxHQUFXLENBQUMsQ0FBQztJQUNyQixlQUFlLEdBQWtCLElBQUksQ0FBQztJQUN0QyxlQUFlLEdBQWtCLElBQUksQ0FBQztJQUU3QixJQUFJLEdBQUcsR0FBZSxFQUFFLENBQUMsYUFBYSxDQUFDO0lBRWhELHlDQUF5QztJQUN6QyxJQUFJLFFBQVE7UUFDUixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDeEIsQ0FBQztJQUVELHFEQUFxRDtJQUM1QyxVQUFVLEdBQUcsQ0FBQyxPQUFxRyxFQUFFLEVBQUU7UUFDNUgsSUFBSSxPQUFPLENBQUMsUUFBUSxJQUFJLElBQUksSUFBSSxPQUFPLENBQUMsUUFBUSxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ3ZELElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQztZQUNqQyxJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUM7WUFDakMsSUFBSSxDQUFDLGVBQWUsR0FBRyxPQUFPLENBQUMsZUFBZSxJQUFJLElBQUksQ0FBQztZQUN2RCxJQUFJLENBQUMsZUFBZSxHQUFHLE9BQU8sQ0FBQyxlQUFlLElBQUksSUFBSSxDQUFDO1lBRXZELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3hCLENBQUM7SUFDTCxDQUFDLENBQUE7SUFFRCxZQUFZLENBQUMsR0FBVyxFQUFFLEdBQVc7UUFDakMsSUFBSSxDQUFDLFFBQVEsR0FBRyxHQUFHLENBQUM7UUFDcEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxHQUFHLENBQUM7UUFDcEIsSUFBSSxJQUFJLENBQUMsZUFBZSxLQUFLLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLEdBQUcsR0FBRyxJQUFJLElBQUksQ0FBQyxlQUFlLEdBQUcsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUM5RixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztRQUNoQyxDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsZUFBZSxLQUFLLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLEdBQUcsR0FBRyxJQUFJLElBQUksQ0FBQyxlQUFlLEdBQUcsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUM5RixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztRQUNoQyxDQUFDO1FBRUQsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7SUFDeEIsQ0FBQztJQUVELG1EQUFtRDtJQUMxQyxXQUFXLEdBQUcsQ0FBQyxHQUFXLEVBQUUsR0FBVyxFQUFRLEVBQUU7UUFDdEQsSUFBSSxDQUFDLGVBQWUsR0FBRyxHQUFHLEtBQUssSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDMUQsSUFBSSxDQUFDLGVBQWUsR0FBRyxHQUFHLEtBQUssSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDOUQsQ0FBQyxDQUFBO0lBRUQsdURBQXVEO0lBQ3ZELGdCQUFnQixHQUFHLEdBQWlDLEVBQUUsQ0FBQyxDQUFDO1FBQ3BELEdBQUcsRUFBRSxJQUFJLENBQUMsZUFBZSxJQUFJLElBQUksQ0FBQyxRQUFTO1FBQzNDLEdBQUcsRUFBRSxJQUFJLENBQUMsZUFBZSxJQUFJLElBQUksQ0FBQyxRQUFTO0tBQzlDLENBQUMsQ0FBQTtJQUVGLDJFQUEyRTtJQUNsRSxXQUFXLEdBQUcsR0FBVyxFQUFFO1FBQ2hDLElBQUksTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUNoQixJQUFJLElBQUksQ0FBQyxlQUFlLElBQUksSUFBSTtZQUFFLE1BQU0sSUFBSSxjQUFjLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUNqRixJQUFJLElBQUksQ0FBQyxlQUFlLElBQUksSUFBSTtZQUFFLE1BQU0sSUFBSSxjQUFjLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUNqRixPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDLENBQUE7SUFFRCxpREFBaUQ7SUFDakQsS0FBSyxHQUFHLEdBQVMsRUFBRTtRQUNmLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDO1FBQzVCLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDO0lBQ2hDLENBQUMsQ0FBQTtDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmlsdGVyIH0gZnJvbSBcIi4vZmlsdGVyXCI7XG5pbXBvcnQgeyBGaWx0ZXJFbGVtZW50LCBGaWx0ZXJUeXBlIH0gZnJvbSBcIi4uLy4uL2ludGVyZmFjZXMvZmlsdGVyXCI7XG5cbmV4cG9ydCBjbGFzcyBQcmljZVJhbmdlRmlsdGVyIGV4dGVuZHMgRmlsdGVyIHtcbiAgICBwcml2YXRlIF9sb2FkZWQgPSBmYWxzZTtcblxuICAgIG1pblByaWNlOiBudW1iZXIgPSAwO1xuICAgIG1heFByaWNlOiBudW1iZXIgPSAwO1xuICAgIGN1cnJlbnRNaW5QcmljZTogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG4gICAgY3VycmVudE1heFByaWNlOiBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICAgIG92ZXJyaWRlIHR5cGUgPSAoKTogRmlsdGVyVHlwZSA9PiAncHJpY2VfcmFuZ2UnO1xuXG4gICAgLyoqIHRydWUgY3VhbmRvIHlhIHRlbmdvIHVuIHJhbmdvIHJlYWwgKi9cbiAgICBnZXQgaXNMb2FkZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9sb2FkZWQ7XG4gICAgfVxuXG4gICAgLy8gTcOpdG9kbyBwYXJhIGNvbmZpZ3VyYXIgZWwgcmFuZ28gZGUgcHJlY2lvcyBpbmljaWFsXG4gICAgb3ZlcnJpZGUgc2V0Q29udGVudCA9IChvcHRpb25zOiB7IG1pblByaWNlPzogbnVtYmVyOyBtYXhQcmljZT86IG51bWJlcjsgY3VycmVudE1pblByaWNlPzogbnVtYmVyOyBjdXJyZW50TWF4UHJpY2U/OiBudW1iZXIgfSkgPT4ge1xuICAgICAgICBpZiAob3B0aW9ucy5taW5QcmljZSAhPSBudWxsICYmIG9wdGlvbnMubWF4UHJpY2UgIT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy5taW5QcmljZSA9IG9wdGlvbnMubWluUHJpY2U7XG4gICAgICAgICAgICB0aGlzLm1heFByaWNlID0gb3B0aW9ucy5tYXhQcmljZTtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudE1pblByaWNlID0gb3B0aW9ucy5jdXJyZW50TWluUHJpY2UgPz8gbnVsbDtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudE1heFByaWNlID0gb3B0aW9ucy5jdXJyZW50TWF4UHJpY2UgPz8gbnVsbDtcblxuICAgICAgICAgICAgdGhpcy5fbG9hZGVkID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHVwZGF0ZVByaWNlcyhtaW46IG51bWJlciwgbWF4OiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5taW5QcmljZSA9IG1pbjtcbiAgICAgICAgdGhpcy5tYXhQcmljZSA9IG1heDtcbiAgICAgICAgaWYgKHRoaXMuY3VycmVudE1pblByaWNlICE9PSBudWxsICYmICh0aGlzLmN1cnJlbnRNaW5QcmljZSA8IG1pbiB8fCB0aGlzLmN1cnJlbnRNaW5QcmljZSA+IG1heCkpIHtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudE1pblByaWNlID0gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmN1cnJlbnRNYXhQcmljZSAhPT0gbnVsbCAmJiAodGhpcy5jdXJyZW50TWF4UHJpY2UgPiBtYXggfHwgdGhpcy5jdXJyZW50TWF4UHJpY2UgPCBtaW4pKSB7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRNYXhQcmljZSA9IG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9sb2FkZWQgPSB0cnVlO1xuICAgIH1cblxuICAgIC8vIE3DqXRvZG8gcGFyYSBhY3R1YWxpemFyIGxvcyB2YWxvcmVzIHNlbGVjY2lvbmFkb3NcbiAgICBvdmVycmlkZSBzZXRTZWxlY3RlZCA9IChtaW46IG51bWJlciwgbWF4OiBudW1iZXIpOiB2b2lkID0+IHtcbiAgICAgICAgdGhpcy5jdXJyZW50TWluUHJpY2UgPSBtaW4gIT09IHRoaXMubWluUHJpY2UgPyBtaW4gOiBudWxsO1xuICAgICAgICB0aGlzLmN1cnJlbnRNYXhQcmljZSA9IG1heCAhPT0gdGhpcy5tYXhQcmljZSA/IG1heCA6IG51bGw7XG4gICAgfVxuXG4gICAgLy8gUmV0b3JuYSBsb3MgdmFsb3JlcyBzZWxlY2Npb25hZG9zIChyYW5nbyBkZSBwcmVjaW9zKVxuICAgIGdldFNlbGVjdGVkUmFuZ2UgPSAoKTogeyBtaW46IG51bWJlciwgbWF4OiBudW1iZXIgfSA9PiAoe1xuICAgICAgICBtaW46IHRoaXMuY3VycmVudE1pblByaWNlID8/IHRoaXMubWluUHJpY2UhLFxuICAgICAgICBtYXg6IHRoaXMuY3VycmVudE1heFByaWNlID8/IHRoaXMubWF4UHJpY2UhXG4gICAgfSlcblxuICAgIC8vIEdlbmVyYSBsb3MgcGFyw6FtZXRyb3MgZGUgbGEgVVJMIGVuIGJhc2UgYWwgcmFuZ28gZGUgcHJlY2lvcyBzZWxlY2Npb25hZG9cbiAgICBvdmVycmlkZSB0b1VybFBhcmFtcyA9ICgpOiBzdHJpbmcgPT4ge1xuICAgICAgICBsZXQgcGFyYW1zID0gJyc7XG4gICAgICAgIGlmICh0aGlzLmN1cnJlbnRNaW5QcmljZSAhPSBudWxsKSBwYXJhbXMgKz0gYCZwcmljZV9taW49JHt0aGlzLmN1cnJlbnRNaW5QcmljZX1gO1xuICAgICAgICBpZiAodGhpcy5jdXJyZW50TWF4UHJpY2UgIT0gbnVsbCkgcGFyYW1zICs9IGAmcHJpY2VfbWF4PSR7dGhpcy5jdXJyZW50TWF4UHJpY2V9YDtcbiAgICAgICAgcmV0dXJuIHBhcmFtcztcbiAgICB9XG5cbiAgICAvLyBSZXN0YWJsZWNlIGVsIGZpbHRybyBhIGxvcyB2YWxvcmVzIHBvciBkZWZlY3RvXG4gICAgcmVzZXQgPSAoKTogdm9pZCA9PiB7XG4gICAgICAgIHRoaXMuY3VycmVudE1pblByaWNlID0gbnVsbDtcbiAgICAgICAgdGhpcy5jdXJyZW50TWF4UHJpY2UgPSBudWxsO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -30,6 +30,11 @@ export class CoreConstantsService {
|
|
|
30
30
|
* Guarda la variable window del web browser.
|
|
31
31
|
*/
|
|
32
32
|
window;
|
|
33
|
+
/**
|
|
34
|
+
* Tipo de ruta actual (ej: 'categories', 'attributes', etc).
|
|
35
|
+
* Lo usamos para que PaginationService sepa qué filtro esperar.
|
|
36
|
+
*/
|
|
37
|
+
currentRouteType = null;
|
|
33
38
|
constructor() {
|
|
34
39
|
if (isPlatformBrowser(this.platformId)) {
|
|
35
40
|
this.window = window;
|
|
@@ -307,6 +312,12 @@ export class CoreConstantsService {
|
|
|
307
312
|
return this.apiConstants.CHANNEL;
|
|
308
313
|
}
|
|
309
314
|
form_sender = false;
|
|
315
|
+
setCurrentRouteType(type) {
|
|
316
|
+
this.currentRouteType = type;
|
|
317
|
+
}
|
|
318
|
+
getCurrentRouteType() {
|
|
319
|
+
return this.currentRouteType;
|
|
320
|
+
}
|
|
310
321
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CoreConstantsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
311
322
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CoreConstantsService, providedIn: 'root' });
|
|
312
323
|
}
|
|
@@ -316,4 +327,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
316
327
|
providedIn: 'root'
|
|
317
328
|
}]
|
|
318
329
|
}], ctorParameters: () => [] });
|
|
319
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5jb25zdGFudHMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWVhc3ljb21tZXJjZS12MTgvc3JjL2xpYi9jb25zdGFudHMvY29yZS5jb25zdGFudHMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRTlELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7QUFDakQ7Ozs7R0FJRztBQUlILE1BQU0sT0FBTyxvQkFBb0I7SUFFekIsV0FBVyxHQUFXLEVBQUUsQ0FBQztJQUNoQzs7T0FFRztJQUNLLFlBQVksR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQTtJQUNsRDs7T0FFRztJQUNLLFVBQVUsR0FBUSxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUE7SUFDN0M7O09BRUc7SUFDSyxRQUFRLEdBQWEsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBQzdDOztPQUVHO0lBQ0ssV0FBVyxHQUFnQixNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtJQUM1RDs7T0FFRztJQUNLLE1BQU0sQ0FBUztJQUV2QjtRQUNDLElBQUksaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7WUFDeEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUE7UUFDckIsQ0FBQztJQUNGLENBQUM7SUFDRDs7T0FFRztJQUNJLGtCQUFrQixHQUFXLGFBQWEsQ0FBQztJQUNsRDs7T0FFRztJQUNJLGNBQWMsR0FBVyxXQUFXLENBQUM7SUFDNUM7O09BRUc7SUFD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TyxJQUFJLENBQUMseUJBQXlCLENBQUEsQ0FBQyxDQUFDO0lBRXZFOzs7Ozs7Ozs7Ozs7OztNQWNFO0lBQ00sK0JBQStCLEdBQW9DO1FBQzFFLElBQUksRUFBRSxPQUFPO1FBQ2IsSUFBSSxFQUFFLE9BQU87UUFDYixrQkFBa0IsRUFBRSxLQUFLO1FBQ3pCLFlBQVksRUFBRSxJQUFJO0tBQ2xCLENBQUE7SUFFRCxrQ0FBa0MsR0FBRyxDQUFDLEtBQXNDLEVBQUUsRUFBRTtRQUMvRSxJQUFJLENBQUMsK0JBQStCLEdBQUc7WUFDdEMsR0FBRyxJQUFJLENBQUMsK0JBQStCO1lBQ3ZDLEdBQUcsS0FBSztTQUNSLENBQUE7SUFDRixDQUFDLENBQUE7SUFFRCxrQ0FBa0MsR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsK0JBQStCLENBQUE7SUFFeEUsVUFBVTtRQUNoQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDO0lBQ2xDLENBQUM7SUFFTSxXQUFXLEdBQVksS0FBSyxDQUFDO3dHQTlVeEIsb0JBQW9COzRHQUFwQixvQkFBb0IsY0FGcEIsTUFBTTs7NEZBRU4sb0JBQW9CO2tCQUhoQyxVQUFVO21CQUFDO29CQUNYLFVBQVUsRUFBRSxNQUFNO2lCQUNsQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSwgUExBVEZPUk1fSUQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFwaUNvbnN0YW50c1NlcnZpY2UgfSBmcm9tICcuL2FwaS5jb25zdGFudHMuc2VydmljZSc7XG5pbXBvcnQgeyBpc1BsYXRmb3JtQnJvd3NlciwgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ3VycmVuY3lDb25maWcsIGN1cnJlbmN5VHlwZSwgUGFyYW1zUHJvZHVjdHNXaXRoVW5pcXVlVmFyaWFudCwgRW52aXJvbm1lbnQgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEVOVklST05NRU5UX1RPS0VOIH0gZnJvbSAnLi4vcHJvdmlkZXJzJztcbi8qKlxuICogU2VydmljaW8gcXVlIHByb3ZlZSBsYXMgY29uc3RhbnRlcyBuZWNlc2FyaWFzIHF1ZSBzZSB1dGlsaXphbiBwb3IgdG9kYSBsYSBhcGxpY2FjacOzbi5cbiAqIEBleHBvcnRcbiAqIEBjbGFzcyBDb3JlQ29uc3RhbnRzU2VydmljZVxuICovXG5ASW5qZWN0YWJsZSh7XG5cdHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBDb3JlQ29uc3RhbnRzU2VydmljZSB7XG5cblx0cHVibGljIHNlYXJjaFZhbHVlOiBzdHJpbmcgPSAnJztcblx0LyoqXG5cdCAqIFNlcnZpY2lvIHF1ZSBjb250aWVuZSBsYXMgY29uc3RhbnRlcyB1c2FkYXMgcGFyYSBsYSBBUElcblx0ICovXG5cdHByaXZhdGUgYXBpQ29uc3RhbnRzID0gaW5qZWN0KEFwaUNvbnN0YW50c1NlcnZpY2UpXG5cdC8qKlxuXHQgKiBQcm92ZWUgZWwgSUQgZGUgbGEgcGxhdGFmb3JtYSBlbiBkb25kZSBzZSBlc3RhIGVqZWN1dGFuZG8gZWwgY29kaWdvLCBlc3RvIHNpcnZlIHBhcmEgcG9kZXIgZGlmZXJlbmNpYXIgc2kgZXMgZGUgdW4gc2Vydmlkb3IgbyB1biBuYXZlZ2Fkb3Igd2ViLlxuXHQgKi9cblx0cHJpdmF0ZSBwbGF0Zm9ybUlkOiBhbnkgPSBpbmplY3QoUExBVEZPUk1fSUQpXG5cdC8qKlxuXHQgKiBEb2N1bWVudCB0b2tlbiBwYXJhIGFjY2VzbyBTU1ItY29tcGF0aWJsZSBhbCBkb2N1bWVudG9cblx0ICovXG5cdHByaXZhdGUgZG9jdW1lbnQ6IERvY3VtZW50ID0gaW5qZWN0KERPQ1VNRU5UKVxuXHQvKipcblx0ICogQ29udGllbmUgbG9zIGRhdG9zIHByb3Zpc3RvIHBvciBlbCBmcm9udGVuZCBlbiBlbCBhcmNoaXZvIGVudmlyb25tZW50LnRzXG5cdCAqL1xuXHRwcml2YXRlIGVudmlyb25tZW50OiBFbnZpcm9ubWVudCA9IGluamVjdChFTlZJUk9OTUVOVF9UT0tFTilcblx0LyoqXG5cdCAqIEd1YXJkYSBsYSB2YXJpYWJsZSB3aW5kb3cgZGVsIHdlYiBicm93c2VyLlxuXHQgKi9cblx0cHJpdmF0ZSB3aW5kb3c/OldpbmRvdztcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xuXHRcdFx0dGhpcy53aW5kb3cgPSB3aW5kb3dcblx0XHR9XG5cdH1cblx0LyoqXG5cdCAqIFBhdGggdXNhZG8gZW4gbGFzIGNvbGVjY2lvbmVzIGRlIHByb2R1Y3Rvcy5cblx0ICovXG5cdHB1YmxpYyBQUk9EVUNUX0xJU1RfUk9VVEU6IHN0cmluZyA9ICdjb2xsZWN0aW9uLyc7XG5cdC8qKlxuXHQgKiBQYXRoIHVzYWRvIHBhcmEgYWNjZWRlciBhIGxhcyBzZWNjaW9uZXMuXG5cdCAqL1xuXHRwdWJsaWMgU0VDVElPTlNfUk9VVEU6IHN0cmluZyA9ICdzZWN0aW9ucy8nO1xuXHQvKipcblx0ICogUGF0aCBxdWUgYWxvamEgbGEgY2FycGV0YSBkZSBsb3MgYXNzZXRzLlxuXHQgKi9cblx0cHVibGljIHJlYWRvbmx5IEFTU0VUU19VUkw6IHN0cmluZyA9IHRoaXMuYXBpQ29uc3RhbnRzLkFQSV9VUkw7XG5cdC8qKlxuXHQgKiBSZXRvcm5hIGxhIHVybCBkb25kZSBzZSBndWFyZGEgbGFzIGltYWdlbmVzLlxuXHQgKiBAcGFyYW0gcG9zdE1lZGlhIFxuXHQgKiBAcmV0dXJucyBcblx0ICovXG5cdHB1YmxpYyBtZWRpYVVybCA9IChwb3N0TWVkaWE/OiBzdHJpbmcpID0+IHRoaXMuQVNTRVRTX1VSTCArICh0aGlzLkFTU0VUU19VUkwgPT0gdGhpcy5hcGlDb25zdGFudHMuQVBJX1VSTCA/ICdtZWRpYS8nIDogJycpICsgKHBvc3RNZWRpYSA/IHBvc3RNZWRpYSA6IFwiaW1hZ2UvXCIpO1xuXHQvKipcblx0ICogUmV0b3JuYSBsYSB1cmwgZG9uZGUgc2UgZ3VhcmRhIGxhcyBpbWFnZW5lcy5cblx0ICogQHBhcmFtIHBvc3RNZWRpYSBcblx0ICogQHJldHVybnMgXG5cdCAqL1xuXHRwdWJsaWMgbWVkaWFJbWFnZVVybCA9IChwb3N0TWVkaWE/OiBzdHJpbmcpID0+IHRoaXMuQVNTRVRTX1VSTCArICh0aGlzLkFTU0VUU19VUkwgPT0gdGhpcy5hcGlDb25zdGFudHMuQVBJX1VSTCA/ICdtZWRpYS9pbWFnZS8nIDogJycpICsgKHBvc3RNZWRpYSA/IHBvc3RNZWRpYSA6IFwiaW1hZ2UvXCIpO1xuXHQvKipcblx0ICogUmV0b3JuYSBsYSB1cmwgZGVsIHNpdGlvLlxuXHQgKiBAcGFyYW0gcG9zdE1lZGlhIFxuXHQgKiBAcmV0dXJucyBcblx0ICovXG5cdHB1YmxpYyB1cmwgPSAoKSA9PiB0aGlzLmFwaUNvbnN0YW50cy5BUElfVVJMLnJlcGxhY2UoL1xcLyQvLCAnJyk7IC8vIHJlbW92ZSBsYXN0IHNsYXNoXHRcblxuXHQvKipcblx0ICogVVJMIGRlbCBzaXRpbyBmcm9udGVuZCAtIENvbXBhdGlibGUgY29uIEFuZ3VsYXIgU1NSXG5cdCAqL1xuXHRwdWJsaWMgZ2V0IEZST05URU5EX1VSTCgpOiBzdHJpbmcge1xuXHRcdC8vIFZlcmlmaWNhciBzaSBlc3RhbW9zIGVuIGVsIG5hdmVnYWRvclxuXHRcdGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG5cdFx0XHQvLyBQcmltZXJvIGludGVudGEgbGVlciBkZSB3aW5kb3cuX19lbnYgKGNvbmZpZ3VyYWRvIHBvciBEb2NrZXIvQ0kpXG5cdFx0XHRjb25zdCB3aW5kb3dFbnYgPSAodGhpcy53aW5kb3cgYXMgYW55KT8uX19lbnY7XG5cdFx0XHRpZiAod2luZG93RW52Py5mcm9udGVuZFVybCkge1xuXHRcdFx0XHQvLyBMb2cgcGFyYSBkZWJ1Z2dpbmcgZW4gZGVzYXJyb2xsb1xuXHRcdFx0XHRpZiAoIXdpbmRvd0Vudi5mcm9udGVuZFVybC5zdGFydHNXaXRoKCdodHRwJykpIHtcblx0XHRcdFx0XHRjb25zb2xlLndhcm4oJ1tGUk9OVEVORF9VUkxdIEludmFsaWQgZnJvbnRlbmRVcmwgZm9ybWF0OicsIHdpbmRvd0Vudi5mcm9udGVuZFVybCk7XG5cdFx0XHRcdH1cblx0XHRcdFx0cmV0dXJuIHdpbmRvd0Vudi5mcm9udGVuZFVybDtcblx0XHRcdH1cblx0XHRcdFxuXHRcdFx0Ly8gU2kgbm8gaGF5IGNvbmZpZ3VyYWNpw7NuIGVzcGVjw61maWNhLCBjb25zdHJ1aXIgZGVzZGUgd2luZG93LmxvY2F0aW9uXG5cdFx0XHRpZiAodGhpcy53aW5kb3c/LmxvY2F0aW9uKSB7XG5cdFx0XHRcdGNvbnN0IHVybCA9IGAke3RoaXMud2luZG93LmxvY2F0aW9uLnByb3RvY29sfS8vJHt0aGlzLndpbmRvdy5sb2NhdGlvbi5ob3N0fWA7XG5cdFx0XHRcdC8vIFZlcmlmaWNhciBxdWUgbm8gc2VhIGxvY2FsaG9zdCBvIDEyNy4wLjAuMSBlbiBwcm9kdWNjacOzblxuXHRcdFx0XHRpZiAodXJsLmluY2x1ZGVzKCcxMjcuMC4wLjEnKSB8fCB1cmwuaW5jbHVkZXMoJ2xvY2FsaG9zdCcpKSB7XG5cdFx0XHRcdFx0Y29uc29sZS53YXJuKCdbRlJPTlRFTkRfVVJMXSBVc2luZyBsb2NhbGhvc3QgVVJMIGluIHByb2R1Y3Rpb24sIGNvbnNpZGVyIHNldHRpbmcgd2luZG93Ll9fZW52LmZyb250ZW5kVXJsJyk7XG5cdFx0XHRcdH1cblx0XHRcdFx0cmV0dXJuIHVybDtcblx0XHRcdH1cblx0XHR9XG5cdFx0XG5cdFx0Ly8gUGFyYSBTU1IsIGludGVudGFyIGNvbnN0cnVpciBkZXNkZSBlbCBkb2N1bWVudCBzaSBlc3TDoSBkaXNwb25pYmxlXG5cdFx0aWYgKHRoaXMuZG9jdW1lbnQ/LmxvY2F0aW9uKSB7XG5cdFx0XHRyZXR1cm4gYCR7dGhpcy5kb2N1bWVudC5sb2NhdGlvbi5wcm90b2NvbH0vLyR7dGhpcy5kb2N1bWVudC5sb2NhdGlvbi5ob3N0fWA7XG5cdFx0fVxuXHRcdFxuXHRcdC8vIEludGVudGFyIG9idGVuZXIgZGVzZGUgZW52aXJvbm1lbnRcblx0XHRpZiAodGhpcy5lbnZpcm9ubWVudC5mcm9udGVuZFVybCkge1xuXHRcdFx0cmV0dXJuIHRoaXMuZW52aXJvbm1lbnQuZnJvbnRlbmRVcmw7XG5cdFx0fVxuXHRcdFxuXHRcdC8vIMOabHRpbW8gZmFsbGJhY2sgLSB1c2FyIGxhIFVSTCBkZWwgQVBJIHNpIGVzdMOhIGNvbmZpZ3VyYWRhIHkgZXMgYWJzb2x1dGFcblx0XHRjb25zdCBhcGlVcmwgPSB0aGlzLmFwaUNvbnN0YW50cy5BUElfVVJMO1xuXHRcdGlmIChhcGlVcmwgJiYgKGFwaVVybC5zdGFydHNXaXRoKCdodHRwOi8vJykgfHwgYXBpVXJsLnN0YXJ0c1dpdGgoJ2h0dHBzOi8vJykpKSB7XG5cdFx0XHR0cnkge1xuXHRcdFx0XHRjb25zdCB1cmwgPSBuZXcgVVJMKGFwaVVybCk7XG5cdFx0XHRcdHJldHVybiBgJHt1cmwucHJvdG9jb2x9Ly8ke3VybC5ob3N0fWA7XG5cdFx0XHR9IGNhdGNoIChlKSB7XG5cdFx0XHRcdGNvbnNvbGUud2FybignW0ZST05URU5EX1VSTF0gQ291bGQgbm90IHBhcnNlIEFQSSBVUkwgYXMgZmFsbGJhY2s6JywgYXBpVXJsKTtcblx0XHRcdH1cblx0XHR9XG5cdFx0XG5cdFx0Ly8gRmFsbGJhY2sgZmluYWwgLSByZXRvcm5hciBVUkwgdmFjw61hXG5cdFx0Y29uc29sZS53YXJuKCdbRlJPTlRFTkRfVVJMXSBObyB2YWxpZCBmcm9udGVuZCBVUkwgZm91bmQsIHRoaXMgbWF5IGNhdXNlIGlzc3VlcyB3aXRoIG1ldGEgdGFncycpO1xuXHRcdHJldHVybiAnJztcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXRvcm5hIGxhIFVSTCBjb21wbGV0YSBkZWwgZnJvbnRlbmQgY29uIHVuYSBydXRhIG9wY2lvbmFsXG5cdCAqIEBwYXJhbSBwYXRoIC0gUnV0YSBvcGNpb25hbCBwYXJhIGFncmVnYXIgYSBsYSBVUkwgYmFzZVxuXHQgKiBAcmV0dXJucyB7c3RyaW5nfSBVUkwgY29tcGxldGEgZGVsIGZyb250ZW5kXG5cdCAqL1xuXHRwdWJsaWMgZ2V0RnJvbnRlbmRVcmwgPSAocGF0aD86IHN0cmluZyk6IHN0cmluZyA9PiB7XG5cdFx0Y29uc3QgYmFzZVVybCA9IHRoaXMuRlJPTlRFTkRfVVJMO1xuXHRcdGlmICghcGF0aCkge1xuXHRcdFx0cmV0dXJuIGJhc2VVcmw7XG5cdFx0fVxuXHRcdFxuXHRcdC8vIEFzZWd1cmFyIHF1ZSBsYSBydXRhIGNvbWllbmNlIGNvbiAnLycgeSBubyB0ZW5nYSBkb2JsZSBzbGFzaFxuXHRcdGNvbnN0IGNsZWFuUGF0aCA9IHBhdGguc3RhcnRzV2l0aCgnLycpID8gcGF0aCA6IGAvJHtwYXRofWA7XG5cdFx0Y29uc3QgY2xlYW5CYXNlVXJsID0gYmFzZVVybC5lbmRzV2l0aCgnLycpID8gYmFzZVVybC5zbGljZSgwLCAtMSkgOiBiYXNlVXJsO1xuXHRcdFxuXHRcdHJldHVybiBgJHtjbGVhbkJhc2VVcmx9JHtjbGVhblBhdGh9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXRvcm5hIGxhIFVSTCBhYnNvbHV0YSBkZSB1bmEgaW1hZ2VuIHBhcmEgbWV0YSB0YWdzIChjb21wYXRpYmxlIGNvbiBTU1IpXG5cdCAqIEBwYXJhbSBwb3N0TWVkaWEgLSBSdXRhIGRlIGxhIGltYWdlblxuXHQgKiBAcmV0dXJucyB7c3RyaW5nfSBVUkwgYWJzb2x1dGEgZGUgbGEgaW1hZ2VuXG5cdCAqL1xuXHRwdWJsaWMgZ2V0QWJzb2x1dGVJbWFnZVVybCA9IChwb3N0TWVkaWE/OiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuXHRcdC8vIFNpIGxhIFVSTCB5YSBlcyBhYnNvbHV0YSwgZGV2b2x2ZXJsYSB0YWwgY29tbyBlc3TDoVxuXHRcdGlmIChwb3N0TWVkaWEgJiYgKHBvc3RNZWRpYS5zdGFydHNXaXRoKCdodHRwOi8vJykgfHwgcG9zdE1lZGlhLnN0YXJ0c1dpdGgoJ2h0dHBzOi8vJykpKSB7XG5cdFx0XHRyZXR1cm4gcG9zdE1lZGlhO1xuXHRcdH1cblxuXHRcdC8vIENvbnN0cnVpciBsYSBVUkwgZGUgbGEgaW1hZ2VuIHVzYW5kbyBsYSBVUkwgZGVsIEFQSVxuXHRcdGNvbnN0IGltYWdlVXJsID0gdGhpcy5tZWRpYUltYWdlVXJsKHBvc3RNZWRpYSk7XG5cdFx0XG5cdFx0Ly8gU2kgbGEgVVJMIGRlIGxhIGltYWdlbiB5YSBlcyBhYnNvbHV0YSwgZGV2b2x2ZXJsYVxuXHRcdGlmIChpbWFnZVVybC5zdGFydHNXaXRoKCdodHRwOi8vJykgfHwgaW1hZ2VVcmwuc3RhcnRzV2l0aCgnaHR0cHM6Ly8nKSkge1xuXHRcdFx0cmV0dXJuIGltYWdlVXJsO1xuXHRcdH1cblx0XHRcblx0XHQvLyBTaSBlcyB1bmEgVVJMIHJlbGF0aXZhLCBjb252ZXJ0aXJsYSBhIGFic29sdXRhIHVzYW5kbyBsYSBVUkwgYmFzZSBkZWwgQVBJXG5cdFx0Y29uc3QgYXBpQmFzZVVybCA9IHRoaXMuYXBpQ29uc3RhbnRzLkFQSV9VUkw7XG5cdFx0aWYgKGFwaUJhc2VVcmwuc3RhcnRzV2l0aCgnaHR0cDovLycpIHx8IGFwaUJhc2VVcmwuc3RhcnRzV2l0aCgnaHR0cHM6Ly8nKSkge1xuXHRcdFx0Ly8gQVBJX1VSTCB5YSBlcyBhYnNvbHV0YVxuXHRcdFx0cmV0dXJuIGltYWdlVXJsO1xuXHRcdH1cblx0XHRcblx0XHQvLyBTaSBBUElfVVJMIGVzIHJlbGF0aXZhLCB1c2FyIGxhIFVSTCBkZWwgZnJvbnRlbmQgY29tbyBiYXNlXG5cdFx0Y29uc3QgZnJvbnRlbmRVcmwgPSB0aGlzLkZST05URU5EX1VSTDtcblx0XHRpZiAoIWZyb250ZW5kVXJsKSB7XG5cdFx0XHRyZXR1cm4gaW1hZ2VVcmw7IC8vIEZhbGxiYWNrIHNpIG5vIHBvZGVtb3MgZGV0ZXJtaW5hciBsYSBVUkwgZGVsIGZyb250ZW5kXG5cdFx0fVxuXHRcdFxuXHRcdC8vIENvbnN0cnVpciBVUkwgYWJzb2x1dGFcblx0XHRjb25zdCBjbGVhbkFwaVVybCA9IGFwaUJhc2VVcmwuc3RhcnRzV2l0aCgnLycpID8gYXBpQmFzZVVybC5zdWJzdHJpbmcoMSkgOiBhcGlCYXNlVXJsO1xuXHRcdGNvbnN0IGNsZWFuRnJvbnRlbmRVcmwgPSBmcm9udGVuZFVybC5lbmRzV2l0aCgnLycpID8gZnJvbnRlbmRVcmwuc2xpY2UoMCwgLTEpIDogZnJvbnRlbmRVcmw7XG5cdFx0Y29uc3QgY2xlYW5JbWFnZVVybCA9IGltYWdlVXJsLnN0YXJ0c1dpdGgoJy8nKSA/IGltYWdlVXJsLnN1YnN0cmluZygxKSA6IGltYWdlVXJsO1xuXHRcdFxuXHRcdHJldHVybiBgJHtjbGVhbkZyb250ZW5kVXJsfS8ke2NsZWFuQXBpVXJsfSR7Y2xlYW5JbWFnZVVybH1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFJldG9ybmEgbGEgdXJsIGRlIGxhcyBpbWFnZW5lcyBkZSBsb3MgYmFubmVyc1xuXHQgKiBAcmV0dXJucyBcblx0ICovXG5cdHB1YmxpYyBtZWRpYUJhbm5lclVybCA9ICgpID0+IHRoaXMuQVNTRVRTX1VSTCArICh0aGlzLkFTU0VUU19VUkwgPT0gdGhpcy5hcGlDb25zdGFudHMuQVBJX1VSTCA/ICdtZWRpYS8nIDogJycpICsgXCJiYW5uZXItaW1hZ2UvXCI7XG5cdFxuXHRtZWRpYVN0b3JlVXJsID0gKCkgPT4gdGhpcy5BU1NFVFNfVVJMICsgKHRoaXMuQVNTRVRTX1VSTCA9PSB0aGlzLmFwaUNvbnN0YW50cy5BUElfVVJMID8gJ21lZGlhLycgOiAnJykgKyBcInN0b3JlLWltYWdlL1wiO1xuXHRcblx0LyoqXG5cdCAqIFJldG9ybmEgYHRydWVgIHNpIGxhIHZpc3RhIGVzIG1vYmlsZSwgYGZhbHNlYCBjYXNvIGNvbnRyYXJpby5cblx0ICogQHJldHVybnMge2Jvb2xlYW59XG5cdCAqL1xuXHRwdWJsaWMgbW9iaWxlU2NyZWVuID0gKCk6IGJvb2xlYW4gPT4gdGhpcy53aW5kb3cgJiYgdGhpcy53aW5kb3c/LmlubmVyV2lkdGggPCA3NTAgfHwgZmFsc2U7XG5cdC8qKlxuXHQgKiBDb250aWVuZSBsb3MgdmFsb3JlcyBwYXJhIGxhIG1vbmVkYSBhY3R1YWxcblx0ICovXG5cdHB1YmxpYyBjdXJyZW5jeTogQ3VycmVuY3lDb25maWcgPSB7XG5cdFx0Y29kZTogJ0FSRycsXG5cdFx0c3ltYm9sOiAnJCcsXG5cdFx0cG9zaXRpb246ICdMZWZ0Jyxcblx0XHR3aXRob3V0RGVjaW1hbDogZmFsc2Vcblx0fTtcblxuXHQvKipcblx0ICogQXJyZWdsbyBkZSB2YWxvcmVzIHVzYWRvcyBwYXJhIGVsIHBpcGUgY3VycmVuY3lQcmljZVxuXHQgKi9cblx0cHVibGljIGN1cnJlbmN5VHlwZUNvbmZpZzogQ3VycmVuY3lDb25maWdbXSA9IFtcblx0XHR7XG5cdFx0XHRjb2RlOiAnRVVSJyxcblx0XHRcdHN5bWJvbDogJ+KCrCcsXG5cdFx0XHRwb3NpdGlvbjogJ1JpZ2h0Jyxcblx0XHRcdHdpdGhvdXREZWNpbWFsOiBmYWxzZVxuXG5cdFx0fSxcblx0XHR7XG5cdFx0XHRjb2RlOiAnQVJHJyxcblx0XHRcdHN5bWJvbDogJyQnLFxuXHRcdFx0cG9zaXRpb246ICdMZWZ0Jyxcblx0XHRcdHdpdGhvdXREZWNpbWFsOiBmYWxzZVxuXHRcdH0sXG5cdFx0e1xuXHRcdFx0Y29kZTogJ0FSUycsXG5cdFx0XHRzeW1ib2w6ICckJyxcblx0XHRcdHBvc2l0aW9uOiAnTGVmdCcsXG5cdFx0XHR3aXRob3V0RGVjaW1hbDogZmFsc2Vcblx0XHR9LFxuXHRcdHtcblx0XHRcdGNvZGU6ICdVU0QnLFxuXHRcdFx0c3ltYm9sOiAnJCcsXG5cdFx0XHRwb3NpdGlvbjogJ0xlZnQnLFxuXHRcdFx0d2l0aG91dERlY2ltYWw6IGZhbHNlXG5cdFx0fSxcblx0XHR7XG5cdFx0XHRjb2RlOiAnUFlHJyxcblx0XHRcdHN5bWJvbDogJ0dzLicsXG5cdFx0XHRwb3NpdGlvbjogJ0xlZnQnLFxuXHRcdFx0d2l0aG91dERlY2ltYWw6IGZhbHNlXG5cdFx0fSxcblx0XHR7XG5cdFx0XHRjb2RlOiAnUEVOJyxcblx0XHRcdHN5bWJvbDogJ1MvJyxcblx0XHRcdHBvc2l0aW9uOiAnTGVmdCcsXG5cdFx0XHR3aXRob3V0RGVjaW1hbDogZmFsc2Vcblx0XHR9LFxuXHRcdHtcblx0XHRcdGNvZGU6ICdTRUsnLFxuXHRcdFx0c3ltYm9sOiAnU0VLJyxcblx0XHRcdHBvc2l0aW9uOiAnUmlnaHQnLFxuXHRcdFx0d2l0aG91dERlY2ltYWw6IHRydWVcblx0XHR9LFxuXHRdXG5cdC8qKlxuXHQgKiBDYW1iaWEgbGEgY29uZmlndXJhY2nDs24gZGUgbGEgbW9uZWRhLlxuXHQgKiBAcGFyYW0gY3VycmVuY3lUeXBlQ29uZmlnIEFycmVnbG8gY29uIGxhcyBkaXN0aW50YXMgbW9uZWRhcy5cblx0ICovXG5cdHB1YmxpYyBzZXRDdXJyZW5jeVR5cGVDb25maWcoY3VycmVuY3lUeXBlQ29uZmlnOiBDdXJyZW5jeUNvbmZpZ1tdKSB7XG5cdFx0dGhpcy5jdXJyZW5jeVR5cGVDb25maWcgPSBjdXJyZW5jeVR5cGVDb25maWc7XG5cdH1cblxuXHQvKipcblx0ICogQHBhcmFtIGN1cnJlbmN5VHlwZUZpbmQgRGVmaW5pciBlbCBjb2RlIGRlbCB0aXBvIGRlIG1vbmVkYSBxdWUgc2UgcXVpZXJhIHV0aWxpemFyLlxuXHQgKiBTaSBlbCB0aXBvIGVzIENVU1RPTSBzZSB0b21hbiBsb3MgdmFsb3JlcyBkZWwgc2VndW5kbyBwYXJhbWV0cm8gZG9uZGUgc2UgcHVlZGUgZGVmaW5pciBsYSBzaW1ib2xvZ8OtYSB5IHBvc2VzacOzbiBxdWUgc2UgcXVpZXJhLlxuXHQgKiBAcGFyYW0gY3VzdG9tVHlwZSBGb3JtYXRvIGRlbCBwYXLDoW1ldHJvIGVqZW1wbG8geyBjb2RlOiAnQVJHJywgc3ltYm9sOiAnJCcsIHBvc2l0aW9uOiAnTCcgLCB3aXRob3V0RGVjaW1hbHM6IGZhbHNlIH0gLFxuXHQgKiB0b2RhcyBsYXMga2V5IHNvbiBvcGNpb25hbGVzIHkgcG9yIGRlZmVjdG8gc2UgdG9tYW4gbG9zIHZhbG9yZXMgZGVsIGVqZW1wbG8uXG5cdCAqIEByZXR1cm5zIHNlIHJldG9ybmEgbGEgY29uZmlndXJhY2nDs24gcXVlIHNlIHNldGVvIGEgbGEgcHJvcGllZGFkIGN1cnJlbmN5IGRlbCBzZXJ2aWNpby5cblx0ICovXG5cdHB1YmxpYyBzZXRDdXJyZW5jeShjdXJyZW5jeVR5cGVGaW5kOiBjdXJyZW5jeVR5cGUsIGN1c3RvbVR5cGU/OiBDdXJyZW5jeUNvbmZpZyk6IEN1cnJlbmN5Q29uZmlnIHtcblx0XHR0aGlzLmN1cnJlbmN5ID0gdGhpcy5jdXJyZW5jeVR5cGVDb25maWcuZmluZCgoY3Q6IEN1cnJlbmN5Q29uZmlnKSA9PiBjdC5jb2RlID09IGN1cnJlbmN5VHlwZUZpbmQudG9VcHBlckNhc2UoKSkgfHwgdGhpcy5jdXJyZW5jeVxuXHRcdGN1c3RvbVR5cGUgJiYgKHRoaXMuY3VycmVuY3kgPSB7IC4uLnRoaXMuY3VycmVuY3ksIC4uLmN1c3RvbVR5cGUgfSlcblx0XHRyZXR1cm4gdGhpcy5jdXJyZW5jeTtcblx0fTtcblxuXG5cdHB1YmxpYyBtb2RpZnlDaGFubmVsQ29uZmlnKGNoYW5uZWxDb25maWc6IGFueSkge1xuXHRcdGlmIChjaGFubmVsQ29uZmlnLmNoYW5uZWwgfHwgY2hhbm5lbENvbmZpZy5jb2RlKVxuXHRcdFx0dGhpcy5hcGlDb25zdGFudHMuc2V0Q2hhbm5lbChjaGFubmVsQ29uZmlnLmNoYW5uZWwgfHwgY2hhbm5lbENvbmZpZy5jb2RlKVxuXG5cdFx0aWYgKGNoYW5uZWxDb25maWcubG9jYWxlIHx8IGNoYW5uZWxDb25maWcubG9jYWxlcy5jb2RlKVxuXHRcdFx0dGhpcy5hcGlDb25zdGFudHMuc2V0TG9jYWxlKGNoYW5uZWxDb25maWcubG9jYWxlIHx8IGNoYW5uZWxDb25maWcubG9jYWxlcy5jb2RlKVxuXG5cdFx0aWYgKGNoYW5uZWxDb25maWcuY3VycmVuY3kgfHwgY2hhbm5lbENvbmZpZy5iYXNlQ3VycmVuY3kpXG5cdFx0XHR0aGlzLnNldEN1cnJlbmN5KGNoYW5uZWxDb25maWcuY3VycmVuY3kgfHwgY2hhbm5lbENvbmZpZy5iYXNlQ3VycmVuY3kpXG5cblx0XHRyZXR1cm4gY2hhbm5lbENvbmZpZztcblx0fVxuXG5cdC8qKlxuXHQqIEBkZXNjcmlwdGlvbiBzZSB1dGlsaXphIHBhcmEgY29uZmlndXJhciBxdWUgZmlsdHJvcyBkZWwgdGlwbyBgU29ydEZpbHRlcmAgc2UgcXVpZXJlIG1vc3RyYXIgZW4gbGEgdmlzdGEuXG5cdCogU2UgdXNhbiBsb3MgY29kaWdvIGRlIGxvcyBmaWx0cm9zIHBhcmEgaW5kaWNhciBjdWFsZXMgc2UgZGViZW4gbW9zdHJhci5cblx0Ki9cblx0cHJpdmF0ZSBzb3J0RmlsdGVyczogc3RyaW5nW10gPSBbJ3ByaWNlJywgJ29yZGVyLWFscGgnLCAncmVjZW50J11cblxuXHQvKipcblx0ICpcblx0ICogQHBhcmFtIGZpbHRlcnNDb2RlIGFycmVnbG8gZGUgc3RyaW5ncyBjb24gbG9zIGNvZGlnb3MgZGUgbG9zIGZpbHRyb3MuXG5cdCAqIFNpIHNlIGxlIHBhc2EgZWwgcGFyYW1ldHJvICoqYWxsKiogZXN0ZSBtb3N0cmFyYSB0b2Rvcy5cblx0ICogQGV4YW1wbGUgcHJpY2UgfCBvcmRlci1hbHBoIHwgcmVjZW50IHwgdXBkYXRlIHwgYWxsXG5cdCAqIEByZXR1cm5zXG5cdCAqL1xuXHRzZXRTb3J0RmlsdGVycyA9IChmaWx0ZXJzQ29kZTogc3RyaW5nW10gPSBbJ2FsbCddKSA9PiB0aGlzLnNvcnRGaWx0ZXJzID0gZmlsdGVyc0NvZGU7XG5cblx0Z2V0U29ydEZpbHRlcnMgPSAoKSA9PiB0aGlzLnNvcnRGaWx0ZXJzO1xuXG5cdC8vIEFCT1VUIFBST0RVQ1RTIFxuXHRwcml2YXRlIHByb2R1Y3RzV2l0aFVuaXF1ZVZhcmlhbnQ6IGJvb2xlYW4gPSBmYWxzZTtcblx0c2V0UHJvZHVjdFdpdGhVbmlxdWVWYXJpYW50KHZhbHVlOiBib29sZWFuKSB7IHRoaXMucHJvZHVjdHNXaXRoVW5pcXVlVmFyaWFudCA9IHZhbHVlOyB9XG5cdGdldFByb2R1Y3RXaXRoVW5pcXVlVmFyaWFudCgpIHsgcmV0dXJuIHRoaXMucHJvZHVjdHNXaXRoVW5pcXVlVmFyaWFudCB9XG5cblx0LyoqXG5cdCogQGRlc2NyaXB0aW9uIGVzdGEgdmFyaWFibGUgc2UgdXRpbGl6YSBwYXJhIGNvbmZpZ3VyYXIgbG9zIHBhcmFtZXRyb3MgY3VhbmRvIHNlIGRlc2VhIG1vc3RyYXJcblx0KiB2YXJpYW50ZXMgZWwgbGlzdGFkbyBkZSBwcm9kdWN0b3MuXG5cdCogQHBhcmFtIHtzdHJpbmd9dHlwZSB0aXBvIGRlIG9wdGlvbnNcblx0KiBAcGFyYW0ge3N0cmluZ31jb2RlIGNvZGlnbyBkZSBvcHRpb25zXG5cdCogQHBhcmFtIHtib29sZWFufWRlZmF1bHRGaXJzdE9wdGlvbiBgdHJ1ZWAgdG9tYSBlbCBwcmltZXIgb3B0aW9uIGRlbCBwcm9kdWN0byBlbiBnZW5lcmFsXG5cdCogQHBhcmFtIHtib29sZWFufWNoZWNrSWZTdG9jayBgdHJ1ZWAgc2UgcmVhbGl6YSB1biBjaGVxdWVvIGRlIHNpIGxhIHZhcmlhbnRlIHRpZW5lIHN0b2NrIHBhcmEgbW9zdHJhcmxhXG5cdCogQGV4YW1wbGUgIGBgYGphdmFzY3JpcHRcblx0KiB7XG5cdCAgIHR5cGU6ICdjb2xvcicsXG5cdCAgIGNvZGU6ICdjb2xvcicsXG5cdCAgIGRlZmF1bHRGaXJzdE9wdGlvbjogZmFsc2UgLFxuXHQgICBjaGVja0lmU3RvY2s6dHJ1ZVxuXHQgICB9IGBgYFxuXHQqL1xuXHRwcml2YXRlIHBhcmFtc1Byb2R1Y3RzV2l0aFVuaXF1ZVZhcmlhbnQ6IFBhcmFtc1Byb2R1Y3RzV2l0aFVuaXF1ZVZhcmlhbnQgPSB7XG5cdFx0dHlwZTogJ2NvbG9yJyxcblx0XHRjb2RlOiAnY29sb3InLFxuXHRcdGRlZmF1bHRGaXJzdE9wdGlvbjogZmFsc2UsXG5cdFx0Y2hlY2tJZlN0b2NrOiB0cnVlXG5cdH1cblxuXHRzZXRQYXJhbXNQcm9kdWN0c1dpdGhVbmlxdWVWYXJpYW50ID0gKHZhbHVlOiBQYXJhbXNQcm9kdWN0c1dpdGhVbmlxdWVWYXJpYW50KSA9PiB7XG5cdFx0dGhpcy5wYXJhbXNQcm9kdWN0c1dpdGhVbmlxdWVWYXJpYW50ID0ge1xuXHRcdFx0Li4udGhpcy5wYXJhbXNQcm9kdWN0c1dpdGhVbmlxdWVWYXJpYW50LFxuXHRcdFx0Li4udmFsdWVcblx0XHR9XG5cdH1cblxuXHRnZXRQYXJhbXNQcm9kdWN0c1dpdGhVbmlxdWVWYXJpYW50ID0gKCkgPT4gdGhpcy5wYXJhbXNQcm9kdWN0c1dpdGhVbmlxdWVWYXJpYW50XG5cdFxuXHRwdWJsaWMgZ2V0Q2hhbm5lbCgpe1xuXHRcdHJldHVybiB0aGlzLmFwaUNvbnN0YW50cy5DSEFOTkVMO1xuXHR9XG5cblx0cHVibGljIGZvcm1fc2VuZGVyOiBib29sZWFuID0gZmFsc2U7XG59XG4iXX0=
|
|
330
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5jb25zdGFudHMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWVhc3ljb21tZXJjZS12MTgvc3JjL2xpYi9jb25zdGFudHMvY29yZS5jb25zdGFudHMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRTlELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7QUFDakQ7Ozs7R0FJRztBQUlILE1BQU0sT0FBTyxvQkFBb0I7SUFFekIsV0FBVyxHQUFXLEVBQUUsQ0FBQztJQUNoQzs7T0FFRztJQUNLLFlBQVksR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQTtJQUNsRDs7T0FFRztJQUNLLFVBQVUsR0FBUSxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUE7SUFDN0M7O09BRUc7SUFDSyxRQUFRLEdBQWEsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBQzdDOztPQUVHO0lBQ0ssV0FBVyxHQUFnQixNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtJQUM1RDs7T0FFRztJQUNLLE1BQU0sQ0FBUztJQUV2Qjs7O09BR0c7SUFDSSxnQkFBZ0IsR0FBa0IsSUFBSSxDQUFDO0lBRTlDO1FBQ0MsSUFBSSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztZQUN4QyxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQTtRQUNyQixDQUFDO0lBQ0YsQ0FBQztJQUNEOztPQUVHO0lBQ0ksa0JBQWtCLEdBQVcsYUFBYSxDQUFDO0lBQ2xEOztPQUVH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S0FBSyxDQUFDLENBQUMsQ0FBQztJQUN2RiwyQkFBMkIsS0FBSyxPQUFPLElBQUksQ0FBQyx5QkFBeUIsQ0FBQSxDQUFDLENBQUM7SUFFdkU7Ozs7Ozs7Ozs7Ozs7O01BY0U7SUFDTSwrQkFBK0IsR0FBb0M7UUFDMUUsSUFBSSxFQUFFLE9BQU87UUFDYixJQUFJLEVBQUUsT0FBTztRQUNiLGtCQUFrQixFQUFFLEtBQUs7UUFDekIsWUFBWSxFQUFFLElBQUk7S0FDbEIsQ0FBQTtJQUVELGtDQUFrQyxHQUFHLENBQUMsS0FBc0MsRUFBRSxFQUFFO1FBQy9FLElBQUksQ0FBQywrQkFBK0IsR0FBRztZQUN0QyxHQUFHLElBQUksQ0FBQywrQkFBK0I7WUFDdkMsR0FBRyxLQUFLO1NBQ1IsQ0FBQTtJQUNGLENBQUMsQ0FBQTtJQUVELGtDQUFrQyxHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQywrQkFBK0IsQ0FBQTtJQUV4RSxVQUFVO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUM7SUFDbEMsQ0FBQztJQUVNLFdBQVcsR0FBWSxLQUFLLENBQUM7SUFFcEMsbUJBQW1CLENBQUMsSUFBbUI7UUFDdEMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQztJQUM5QixDQUFDO0lBRUQsbUJBQW1CO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDO0lBQzlCLENBQUM7d0dBNVZXLG9CQUFvQjs0R0FBcEIsb0JBQW9CLGNBRnBCLE1BQU07OzRGQUVOLG9CQUFvQjtrQkFIaEMsVUFBVTttQkFBQztvQkFDWCxVQUFVLEVBQUUsTUFBTTtpQkFDbEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUsIFBMQVRGT1JNX0lEIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBcGlDb25zdGFudHNTZXJ2aWNlIH0gZnJvbSAnLi9hcGkuY29uc3RhbnRzLnNlcnZpY2UnO1xuaW1wb3J0IHsgaXNQbGF0Zm9ybUJyb3dzZXIsIERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEN1cnJlbmN5Q29uZmlnLCBjdXJyZW5jeVR5cGUsIFBhcmFtc1Byb2R1Y3RzV2l0aFVuaXF1ZVZhcmlhbnQsIEVudmlyb25tZW50IH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBFTlZJUk9OTUVOVF9UT0tFTiB9IGZyb20gJy4uL3Byb3ZpZGVycyc7XG4vKipcbiAqIFNlcnZpY2lvIHF1ZSBwcm92ZWUgbGFzIGNvbnN0YW50ZXMgbmVjZXNhcmlhcyBxdWUgc2UgdXRpbGl6YW4gcG9yIHRvZGEgbGEgYXBsaWNhY2nDs24uXG4gKiBAZXhwb3J0XG4gKiBAY2xhc3MgQ29yZUNvbnN0YW50c1NlcnZpY2VcbiAqL1xuQEluamVjdGFibGUoe1xuXHRwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQ29yZUNvbnN0YW50c1NlcnZpY2Uge1xuXG5cdHB1YmxpYyBzZWFyY2hWYWx1ZTogc3RyaW5nID0gJyc7XG5cdC8qKlxuXHQgKiBTZXJ2aWNpbyBxdWUgY29udGllbmUgbGFzIGNvbnN0YW50ZXMgdXNhZGFzIHBhcmEgbGEgQVBJXG5cdCAqL1xuXHRwcml2YXRlIGFwaUNvbnN0YW50cyA9IGluamVjdChBcGlDb25zdGFudHNTZXJ2aWNlKVxuXHQvKipcblx0ICogUHJvdmVlIGVsIElEIGRlIGxhIHBsYXRhZm9ybWEgZW4gZG9uZGUgc2UgZXN0YSBlamVjdXRhbmRvIGVsIGNvZGlnbywgZXN0byBzaXJ2ZSBwYXJhIHBvZGVyIGRpZmVyZW5jaWFyIHNpIGVzIGRlIHVuIHNlcnZpZG9yIG8gdW4gbmF2ZWdhZG9yIHdlYi5cblx0ICovXG5cdHByaXZhdGUgcGxhdGZvcm1JZDogYW55ID0gaW5qZWN0KFBMQVRGT1JNX0lEKVxuXHQvKipcblx0ICogRG9jdW1lbnQgdG9rZW4gcGFyYSBhY2Nlc28gU1NSLWNvbXBhdGlibGUgYWwgZG9jdW1lbnRvXG5cdCAqL1xuXHRwcml2YXRlIGRvY3VtZW50OiBEb2N1bWVudCA9IGluamVjdChET0NVTUVOVClcblx0LyoqXG5cdCAqIENvbnRpZW5lIGxvcyBkYXRvcyBwcm92aXN0byBwb3IgZWwgZnJvbnRlbmQgZW4gZWwgYXJjaGl2byBlbnZpcm9ubWVudC50c1xuXHQgKi9cblx0cHJpdmF0ZSBlbnZpcm9ubWVudDogRW52aXJvbm1lbnQgPSBpbmplY3QoRU5WSVJPTk1FTlRfVE9LRU4pXG5cdC8qKlxuXHQgKiBHdWFyZGEgbGEgdmFyaWFibGUgd2luZG93IGRlbCB3ZWIgYnJvd3Nlci5cblx0ICovXG5cdHByaXZhdGUgd2luZG93PzpXaW5kb3c7XG5cblx0LyoqXG5cdCAqIFRpcG8gZGUgcnV0YSBhY3R1YWwgKGVqOiAnY2F0ZWdvcmllcycsICdhdHRyaWJ1dGVzJywgZXRjKS5cblx0ICogTG8gdXNhbW9zIHBhcmEgcXVlIFBhZ2luYXRpb25TZXJ2aWNlIHNlcGEgcXXDqSBmaWx0cm8gZXNwZXJhci5cblx0ICovXG5cdHB1YmxpYyBjdXJyZW50Um91dGVUeXBlOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xuXHRcdFx0dGhpcy53aW5kb3cgPSB3aW5kb3dcblx0XHR9XG5cdH1cblx0LyoqXG5cdCAqIFBhdGggdXNhZG8gZW4gbGFzIGNvbGVjY2lvbmVzIGRlIHByb2R1Y3Rvcy5cblx0ICovXG5cdHB1YmxpYyBQUk9EVUNUX0xJU1RfUk9VVEU6IHN0cmluZyA9ICdjb2xsZWN0aW9uLyc7XG5cdC8qKlxuXHQgKiBQYXRoIHVzYWRvIHBhcmEgYWNjZWRlciBhIGxhcyBzZWNjaW9uZXMuXG5cdCAqL1xuXHRwdWJsaWMgU0VDVElPTlNfUk9VVEU6IHN0cmluZyA9ICdzZWN0aW9ucy8nO1xuXHQvKipcblx0ICogUGF0aCBxdWUgYWxvamEgbGEgY2FycGV0YSBkZSBsb3MgYXNzZXRzLlxuXHQgKi9cblx0cHVibGljIHJlYWRvbmx5IEFTU0VUU19VUkw6IHN0cmluZyA9IHRoaXMuYXBpQ29uc3RhbnRzLkFQSV9VUkw7XG5cdC8qKlxuXHQgKiBSZXRvcm5hIGxhIHVybCBkb25kZSBzZSBndWFyZGEgbGFzIGltYWdlbmVzLlxuXHQgKiBAcGFyYW0gcG9zdE1lZGlhIFxuXHQgKiBAcmV0dXJucyBcblx0ICovXG5cdHB1YmxpYyBtZWRpYVVybCA9IChwb3N0TWVkaWE/OiBzdHJpbmcpID0+IHRoaXMuQVNTRVRTX1VSTCArICh0aGlzLkFTU0VUU19VUkwgPT0gdGhpcy5hcGlDb25zdGFudHMuQVBJX1VSTCA/ICdtZWRpYS8nIDogJycpICsgKHBvc3RNZWRpYSA/IHBvc3RNZWRpYSA6IFwiaW1hZ2UvXCIpO1xuXHQvKipcblx0ICogUmV0b3JuYSBsYSB1cmwgZG9uZGUgc2UgZ3VhcmRhIGxhcyBpbWFnZW5lcy5cblx0ICogQHBhcmFtIHBvc3RNZWRpYSBcblx0ICogQHJldHVybnMgXG5cdCAqL1xuXHRwdWJsaWMgbWVkaWFJbWFnZVVybCA9IChwb3N0TWVkaWE/OiBzdHJpbmcpID0+IHRoaXMuQVNTRVRTX1VSTCArICh0aGlzLkFTU0VUU19VUkwgPT0gdGhpcy5hcGlDb25zdGFudHMuQVBJX1VSTCA/ICdtZWRpYS9pbWFnZS8nIDogJycpICsgKHBvc3RNZWRpYSA/IHBvc3RNZWRpYSA6IFwiaW1hZ2UvXCIpO1xuXHQvKipcblx0ICogUmV0b3JuYSBsYSB1cmwgZGVsIHNpdGlvLlxuXHQgKiBAcGFyYW0gcG9zdE1lZGlhIFxuXHQgKiBAcmV0dXJucyBcblx0ICovXG5cdHB1YmxpYyB1cmwgPSAoKSA9PiB0aGlzLmFwaUNvbnN0YW50cy5BUElfVVJMLnJlcGxhY2UoL1xcLyQvLCAnJyk7IC8vIHJlbW92ZSBsYXN0IHNsYXNoXHRcblxuXHQvKipcblx0ICogVVJMIGRlbCBzaXRpbyBmcm9udGVuZCAtIENvbXBhdGlibGUgY29uIEFuZ3VsYXIgU1NSXG5cdCAqL1xuXHRwdWJsaWMgZ2V0IEZST05URU5EX1VSTCgpOiBzdHJpbmcge1xuXHRcdC8vIFZlcmlmaWNhciBzaSBlc3RhbW9zIGVuIGVsIG5hdmVnYWRvclxuXHRcdGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG5cdFx0XHQvLyBQcmltZXJvIGludGVudGEgbGVlciBkZSB3aW5kb3cuX19lbnYgKGNvbmZpZ3VyYWRvIHBvciBEb2NrZXIvQ0kpXG5cdFx0XHRjb25zdCB3aW5kb3dFbnYgPSAodGhpcy53aW5kb3cgYXMgYW55KT8uX19lbnY7XG5cdFx0XHRpZiAod2luZG93RW52Py5mcm9udGVuZFVybCkge1xuXHRcdFx0XHQvLyBMb2cgcGFyYSBkZWJ1Z2dpbmcgZW4gZGVzYXJyb2xsb1xuXHRcdFx0XHRpZiAoIXdpbmRvd0Vudi5mcm9udGVuZFVybC5zdGFydHNXaXRoKCdodHRwJykpIHtcblx0XHRcdFx0XHRjb25zb2xlLndhcm4oJ1tGUk9OVEVORF9VUkxdIEludmFsaWQgZnJvbnRlbmRVcmwgZm9ybWF0OicsIHdpbmRvd0Vudi5mcm9udGVuZFVybCk7XG5cdFx0XHRcdH1cblx0XHRcdFx0cmV0dXJuIHdpbmRvd0Vudi5mcm9udGVuZFVybDtcblx0XHRcdH1cblx0XHRcdFxuXHRcdFx0Ly8gU2kgbm8gaGF5IGNvbmZpZ3VyYWNpw7NuIGVzcGVjw61maWNhLCBjb25zdHJ1aXIgZGVzZGUgd2luZG93LmxvY2F0aW9uXG5cdFx0XHRpZiAodGhpcy53aW5kb3c/LmxvY2F0aW9uKSB7XG5cdFx0XHRcdGNvbnN0IHVybCA9IGAke3RoaXMud2luZG93LmxvY2F0aW9uLnByb3RvY29sfS8vJHt0aGlzLndpbmRvdy5sb2NhdGlvbi5ob3N0fWA7XG5cdFx0XHRcdC8vIFZlcmlmaWNhciBxdWUgbm8gc2VhIGxvY2FsaG9zdCBvIDEyNy4wLjAuMSBlbiBwcm9kdWNjacOzblxuXHRcdFx0XHRpZiAodXJsLmluY2x1ZGVzKCcxMjcuMC4wLjEnKSB8fCB1cmwuaW5jbHVkZXMoJ2xvY2FsaG9zdCcpKSB7XG5cdFx0XHRcdFx0Y29uc29sZS53YXJuKCdbRlJPTlRFTkRfVVJMXSBVc2luZyBsb2NhbGhvc3QgVVJMIGluIHByb2R1Y3Rpb24sIGNvbnNpZGVyIHNldHRpbmcgd2luZG93Ll9fZW52LmZyb250ZW5kVXJsJyk7XG5cdFx0XHRcdH1cblx0XHRcdFx0cmV0dXJuIHVybDtcblx0XHRcdH1cblx0XHR9XG5cdFx0XG5cdFx0Ly8gUGFyYSBTU1IsIGludGVudGFyIGNvbnN0cnVpciBkZXNkZSBlbCBkb2N1bWVudCBzaSBlc3TDoSBkaXNwb25pYmxlXG5cdFx0aWYgKHRoaXMuZG9jdW1lbnQ/LmxvY2F0aW9uKSB7XG5cdFx0XHRyZXR1cm4gYCR7dGhpcy5kb2N1bWVudC5sb2NhdGlvbi5wcm90b2NvbH0vLyR7dGhpcy5kb2N1bWVudC5sb2NhdGlvbi5ob3N0fWA7XG5cdFx0fVxuXHRcdFxuXHRcdC8vIEludGVudGFyIG9idGVuZXIgZGVzZGUgZW52aXJvbm1lbnRcblx0XHRpZiAodGhpcy5lbnZpcm9ubWVudC5mcm9udGVuZFVybCkge1xuXHRcdFx0cmV0dXJuIHRoaXMuZW52aXJvbm1lbnQuZnJvbnRlbmRVcmw7XG5cdFx0fVxuXHRcdFxuXHRcdC8vIMOabHRpbW8gZmFsbGJhY2sgLSB1c2FyIGxhIFVSTCBkZWwgQVBJIHNpIGVzdMOhIGNvbmZpZ3VyYWRhIHkgZXMgYWJzb2x1dGFcblx0XHRjb25zdCBhcGlVcmwgPSB0aGlzLmFwaUNvbnN0YW50cy5BUElfVVJMO1xuXHRcdGlmIChhcGlVcmwgJiYgKGFwaVVybC5zdGFydHNXaXRoKCdodHRwOi8vJykgfHwgYXBpVXJsLnN0YXJ0c1dpdGgoJ2h0dHBzOi8vJykpKSB7XG5cdFx0XHR0cnkge1xuXHRcdFx0XHRjb25zdCB1cmwgPSBuZXcgVVJMKGFwaVVybCk7XG5cdFx0XHRcdHJldHVybiBgJHt1cmwucHJvdG9jb2x9Ly8ke3VybC5ob3N0fWA7XG5cdFx0XHR9IGNhdGNoIChlKSB7XG5cdFx0XHRcdGNvbnNvbGUud2FybignW0ZST05URU5EX1VSTF0gQ291bGQgbm90IHBhcnNlIEFQSSBVUkwgYXMgZmFsbGJhY2s6JywgYXBpVXJsKTtcblx0XHRcdH1cblx0XHR9XG5cdFx0XG5cdFx0Ly8gRmFsbGJhY2sgZmluYWwgLSByZXRvcm5hciBVUkwgdmFjw61hXG5cdFx0Y29uc29sZS53YXJuKCdbRlJPTlRFTkRfVVJMXSBObyB2YWxpZCBmcm9udGVuZCBVUkwgZm91bmQsIHRoaXMgbWF5IGNhdXNlIGlzc3VlcyB3aXRoIG1ldGEgdGFncycpO1xuXHRcdHJldHVybiAnJztcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXRvcm5hIGxhIFVSTCBjb21wbGV0YSBkZWwgZnJvbnRlbmQgY29uIHVuYSBydXRhIG9wY2lvbmFsXG5cdCAqIEBwYXJhbSBwYXRoIC0gUnV0YSBvcGNpb25hbCBwYXJhIGFncmVnYXIgYSBsYSBVUkwgYmFzZVxuXHQgKiBAcmV0dXJucyB7c3RyaW5nfSBVUkwgY29tcGxldGEgZGVsIGZyb250ZW5kXG5cdCAqL1xuXHRwdWJsaWMgZ2V0RnJvbnRlbmRVcmwgPSAocGF0aD86IHN0cmluZyk6IHN0cmluZyA9PiB7XG5cdFx0Y29uc3QgYmFzZVVybCA9IHRoaXMuRlJPTlRFTkRfVVJMO1xuXHRcdGlmICghcGF0aCkge1xuXHRcdFx0cmV0dXJuIGJhc2VVcmw7XG5cdFx0fVxuXHRcdFxuXHRcdC8vIEFzZWd1cmFyIHF1ZSBsYSBydXRhIGNvbWllbmNlIGNvbiAnLycgeSBubyB0ZW5nYSBkb2JsZSBzbGFzaFxuXHRcdGNvbnN0IGNsZWFuUGF0aCA9IHBhdGguc3RhcnRzV2l0aCgnLycpID8gcGF0aCA6IGAvJHtwYXRofWA7XG5cdFx0Y29uc3QgY2xlYW5CYXNlVXJsID0gYmFzZVVybC5lbmRzV2l0aCgnLycpID8gYmFzZVVybC5zbGljZSgwLCAtMSkgOiBiYXNlVXJsO1xuXHRcdFxuXHRcdHJldHVybiBgJHtjbGVhbkJhc2VVcmx9JHtjbGVhblBhdGh9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXRvcm5hIGxhIFVSTCBhYnNvbHV0YSBkZSB1bmEgaW1hZ2VuIHBhcmEgbWV0YSB0YWdzIChjb21wYXRpYmxlIGNvbiBTU1IpXG5cdCAqIEBwYXJhbSBwb3N0TWVkaWEgLSBSdXRhIGRlIGxhIGltYWdlblxuXHQgKiBAcmV0dXJucyB7c3RyaW5nfSBVUkwgYWJzb2x1dGEgZGUgbGEgaW1hZ2VuXG5cdCAqL1xuXHRwdWJsaWMgZ2V0QWJzb2x1dGVJbWFnZVVybCA9IChwb3N0TWVkaWE/OiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuXHRcdC8vIFNpIGxhIFVSTCB5YSBlcyBhYnNvbHV0YSwgZGV2b2x2ZXJsYSB0YWwgY29tbyBlc3TDoVxuXHRcdGlmIChwb3N0TWVkaWEgJiYgKHBvc3RNZWRpYS5zdGFydHNXaXRoKCdodHRwOi8vJykgfHwgcG9zdE1lZGlhLnN0YXJ0c1dpdGgoJ2h0dHBzOi8vJykpKSB7XG5cdFx0XHRyZXR1cm4gcG9zdE1lZGlhO1xuXHRcdH1cblxuXHRcdC8vIENvbnN0cnVpciBsYSBVUkwgZGUgbGEgaW1hZ2VuIHVzYW5kbyBsYSBVUkwgZGVsIEFQSVxuXHRcdGNvbnN0IGltYWdlVXJsID0gdGhpcy5tZWRpYUltYWdlVXJsKHBvc3RNZWRpYSk7XG5cdFx0XG5cdFx0Ly8gU2kgbGEgVVJMIGRlIGxhIGltYWdlbiB5YSBlcyBhYnNvbHV0YSwgZGV2b2x2ZXJsYVxuXHRcdGlmIChpbWFnZVVybC5zdGFydHNXaXRoKCdodHRwOi8vJykgfHwgaW1hZ2VVcmwuc3RhcnRzV2l0aCgnaHR0cHM6Ly8nKSkge1xuXHRcdFx0cmV0dXJuIGltYWdlVXJsO1xuXHRcdH1cblx0XHRcblx0XHQvLyBTaSBlcyB1bmEgVVJMIHJlbGF0aXZhLCBjb252ZXJ0aXJsYSBhIGFic29sdXRhIHVzYW5kbyBsYSBVUkwgYmFzZSBkZWwgQVBJXG5cdFx0Y29uc3QgYXBpQmFzZVVybCA9IHRoaXMuYXBpQ29uc3RhbnRzLkFQSV9VUkw7XG5cdFx0aWYgKGFwaUJhc2VVcmwuc3RhcnRzV2l0aCgnaHR0cDovLycpIHx8IGFwaUJhc2VVcmwuc3RhcnRzV2l0aCgnaHR0cHM6Ly8nKSkge1xuXHRcdFx0Ly8gQVBJX1VSTCB5YSBlcyBhYnNvbHV0YVxuXHRcdFx0cmV0dXJuIGltYWdlVXJsO1xuXHRcdH1cblx0XHRcblx0XHQvLyBTaSBBUElfVVJMIGVzIHJlbGF0aXZhLCB1c2FyIGxhIFVSTCBkZWwgZnJvbnRlbmQgY29tbyBiYXNlXG5cdFx0Y29uc3QgZnJvbnRlbmRVcmwgPSB0aGlzLkZST05URU5EX1VSTDtcblx0XHRpZiAoIWZyb250ZW5kVXJsKSB7XG5cdFx0XHRyZXR1cm4gaW1hZ2VVcmw7IC8vIEZhbGxiYWNrIHNpIG5vIHBvZGVtb3MgZGV0ZXJtaW5hciBsYSBVUkwgZGVsIGZyb250ZW5kXG5cdFx0fVxuXHRcdFxuXHRcdC8vIENvbnN0cnVpciBVUkwgYWJzb2x1dGFcblx0XHRjb25zdCBjbGVhbkFwaVVybCA9IGFwaUJhc2VVcmwuc3RhcnRzV2l0aCgnLycpID8gYXBpQmFzZVVybC5zdWJzdHJpbmcoMSkgOiBhcGlCYXNlVXJsO1xuXHRcdGNvbnN0IGNsZWFuRnJvbnRlbmRVcmwgPSBmcm9udGVuZFVybC5lbmRzV2l0aCgnLycpID8gZnJvbnRlbmRVcmwuc2xpY2UoMCwgLTEpIDogZnJvbnRlbmRVcmw7XG5cdFx0Y29uc3QgY2xlYW5JbWFnZVVybCA9IGltYWdlVXJsLnN0YXJ0c1dpdGgoJy8nKSA/IGltYWdlVXJsLnN1YnN0cmluZygxKSA6IGltYWdlVXJsO1xuXHRcdFxuXHRcdHJldHVybiBgJHtjbGVhbkZyb250ZW5kVXJsfS8ke2NsZWFuQXBpVXJsfSR7Y2xlYW5JbWFnZVVybH1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFJldG9ybmEgbGEgdXJsIGRlIGxhcyBpbWFnZW5lcyBkZSBsb3MgYmFubmVyc1xuXHQgKiBAcmV0dXJucyBcblx0ICovXG5cdHB1YmxpYyBtZWRpYUJhbm5lclVybCA9ICgpID0+IHRoaXMuQVNTRVRTX1VSTCArICh0aGlzLkFTU0VUU19VUkwgPT0gdGhpcy5hcGlDb25zdGFudHMuQVBJX1VSTCA/ICdtZWRpYS8nIDogJycpICsgXCJiYW5uZXItaW1hZ2UvXCI7XG5cdFxuXHRtZWRpYVN0b3JlVXJsID0gKCkgPT4gdGhpcy5BU1NFVFNfVVJMICsgKHRoaXMuQVNTRVRTX1VSTCA9PSB0aGlzLmFwaUNvbnN0YW50cy5BUElfVVJMID8gJ21lZGlhLycgOiAnJykgKyBcInN0b3JlLWltYWdlL1wiO1xuXHRcblx0LyoqXG5cdCAqIFJldG9ybmEgYHRydWVgIHNpIGxhIHZpc3RhIGVzIG1vYmlsZSwgYGZhbHNlYCBjYXNvIGNvbnRyYXJpby5cblx0ICogQHJldHVybnMge2Jvb2xlYW59XG5cdCAqL1xuXHRwdWJsaWMgbW9iaWxlU2NyZWVuID0gKCk6IGJvb2xlYW4gPT4gdGhpcy53aW5kb3cgJiYgdGhpcy53aW5kb3c/LmlubmVyV2lkdGggPCA3NTAgfHwgZmFsc2U7XG5cdC8qKlxuXHQgKiBDb250aWVuZSBsb3MgdmFsb3JlcyBwYXJhIGxhIG1vbmVkYSBhY3R1YWxcblx0ICovXG5cdHB1YmxpYyBjdXJyZW5jeTogQ3VycmVuY3lDb25maWcgPSB7XG5cdFx0Y29kZTogJ0FSRycsXG5cdFx0c3ltYm9sOiAnJCcsXG5cdFx0cG9zaXRpb246ICdMZWZ0Jyxcblx0XHR3aXRob3V0RGVjaW1hbDogZmFsc2Vcblx0fTtcblxuXHQvKipcblx0ICogQXJyZWdsbyBkZSB2YWxvcmVzIHVzYWRvcyBwYXJhIGVsIHBpcGUgY3VycmVuY3lQcmljZVxuXHQgKi9cblx0cHVibGljIGN1cnJlbmN5VHlwZUNvbmZpZzogQ3VycmVuY3lDb25maWdbXSA9IFtcblx0XHR7XG5cdFx0XHRjb2RlOiAnRVVSJyxcblx0XHRcdHN5bWJvbDogJ+KCrCcsXG5cdFx0XHRwb3NpdGlvbjogJ1JpZ2h0Jyxcblx0XHRcdHdpdGhvdXREZWNpbWFsOiBmYWxzZVxuXG5cdFx0fSxcblx0XHR7XG5cdFx0XHRjb2RlOiAnQVJHJyxcblx0XHRcdHN5bWJvbDogJyQnLFxuXHRcdFx0cG9zaXRpb246ICdMZWZ0Jyxcblx0XHRcdHdpdGhvdXREZWNpbWFsOiBmYWxzZVxuXHRcdH0sXG5cdFx0e1xuXHRcdFx0Y29kZTogJ0FSUycsXG5cdFx0XHRzeW1ib2w6ICckJyxcblx0XHRcdHBvc2l0aW9uOiAnTGVmdCcsXG5cdFx0XHR3aXRob3V0RGVjaW1hbDogZmFsc2Vcblx0XHR9LFxuXHRcdHtcblx0XHRcdGNvZGU6ICdVU0QnLFxuXHRcdFx0c3ltYm9sOiAnJCcsXG5cdFx0XHRwb3NpdGlvbjogJ0xlZnQnLFxuXHRcdFx0d2l0aG91dERlY2ltYWw6IGZhbHNlXG5cdFx0fSxcblx0XHR7XG5cdFx0XHRjb2RlOiAnUFlHJyxcblx0XHRcdHN5bWJvbDogJ0dzLicsXG5cdFx0XHRwb3NpdGlvbjogJ0xlZnQnLFxuXHRcdFx0d2l0aG91dERlY2ltYWw6IGZhbHNlXG5cdFx0fSxcblx0XHR7XG5cdFx0XHRjb2RlOiAnUEVOJyxcblx0XHRcdHN5bWJvbDogJ1MvJyxcblx0XHRcdHBvc2l0aW9uOiAnTGVmdCcsXG5cdFx0XHR3aXRob3V0RGVjaW1hbDogZmFsc2Vcblx0XHR9LFxuXHRcdHtcblx0XHRcdGNvZGU6ICdTRUsnLFxuXHRcdFx0c3ltYm9sOiAnU0VLJyxcblx0XHRcdHBvc2l0aW9uOiAnUmlnaHQnLFxuXHRcdFx0d2l0aG91dERlY2ltYWw6IHRydWVcblx0XHR9LFxuXHRdXG5cdC8qKlxuXHQgKiBDYW1iaWEgbGEgY29uZmlndXJhY2nDs24gZGUgbGEgbW9uZWRhLlxuXHQgKiBAcGFyYW0gY3VycmVuY3lUeXBlQ29uZmlnIEFycmVnbG8gY29uIGxhcyBkaXN0aW50YXMgbW9uZWRhcy5cblx0ICovXG5cdHB1YmxpYyBzZXRDdXJyZW5jeVR5cGVDb25maWcoY3VycmVuY3lUeXBlQ29uZmlnOiBDdXJyZW5jeUNvbmZpZ1tdKSB7XG5cdFx0dGhpcy5jdXJyZW5jeVR5cGVDb25maWcgPSBjdXJyZW5jeVR5cGVDb25maWc7XG5cdH1cblxuXHQvKipcblx0ICogQHBhcmFtIGN1cnJlbmN5VHlwZUZpbmQgRGVmaW5pciBlbCBjb2RlIGRlbCB0aXBvIGRlIG1vbmVkYSBxdWUgc2UgcXVpZXJhIHV0aWxpemFyLlxuXHQgKiBTaSBlbCB0aXBvIGVzIENVU1RPTSBzZSB0b21hbiBsb3MgdmFsb3JlcyBkZWwgc2VndW5kbyBwYXJhbWV0cm8gZG9uZGUgc2UgcHVlZGUgZGVmaW5pciBsYSBzaW1ib2xvZ8OtYSB5IHBvc2VzacOzbiBxdWUgc2UgcXVpZXJhLlxuXHQgKiBAcGFyYW0gY3VzdG9tVHlwZSBGb3JtYXRvIGRlbCBwYXLDoW1ldHJvIGVqZW1wbG8geyBjb2RlOiAnQVJHJywgc3ltYm9sOiAnJCcsIHBvc2l0aW9uOiAnTCcgLCB3aXRob3V0RGVjaW1hbHM6IGZhbHNlIH0gLFxuXHQgKiB0b2RhcyBsYXMga2V5IHNvbiBvcGNpb25hbGVzIHkgcG9yIGRlZmVjdG8gc2UgdG9tYW4gbG9zIHZhbG9yZXMgZGVsIGVqZW1wbG8uXG5cdCAqIEByZXR1cm5zIHNlIHJldG9ybmEgbGEgY29uZmlndXJhY2nDs24gcXVlIHNlIHNldGVvIGEgbGEgcHJvcGllZGFkIGN1cnJlbmN5IGRlbCBzZXJ2aWNpby5cblx0ICovXG5cdHB1YmxpYyBzZXRDdXJyZW5jeShjdXJyZW5jeVR5cGVGaW5kOiBjdXJyZW5jeVR5cGUsIGN1c3RvbVR5cGU/OiBDdXJyZW5jeUNvbmZpZyk6IEN1cnJlbmN5Q29uZmlnIHtcblx0XHR0aGlzLmN1cnJlbmN5ID0gdGhpcy5jdXJyZW5jeVR5cGVDb25maWcuZmluZCgoY3Q6IEN1cnJlbmN5Q29uZmlnKSA9PiBjdC5jb2RlID09IGN1cnJlbmN5VHlwZUZpbmQudG9VcHBlckNhc2UoKSkgfHwgdGhpcy5jdXJyZW5jeVxuXHRcdGN1c3RvbVR5cGUgJiYgKHRoaXMuY3VycmVuY3kgPSB7IC4uLnRoaXMuY3VycmVuY3ksIC4uLmN1c3RvbVR5cGUgfSlcblx0XHRyZXR1cm4gdGhpcy5jdXJyZW5jeTtcblx0fTtcblxuXG5cdHB1YmxpYyBtb2RpZnlDaGFubmVsQ29uZmlnKGNoYW5uZWxDb25maWc6IGFueSkge1xuXHRcdGlmIChjaGFubmVsQ29uZmlnLmNoYW5uZWwgfHwgY2hhbm5lbENvbmZpZy5jb2RlKVxuXHRcdFx0dGhpcy5hcGlDb25zdGFudHMuc2V0Q2hhbm5lbChjaGFubmVsQ29uZmlnLmNoYW5uZWwgfHwgY2hhbm5lbENvbmZpZy5jb2RlKVxuXG5cdFx0aWYgKGNoYW5uZWxDb25maWcubG9jYWxlIHx8IGNoYW5uZWxDb25maWcubG9jYWxlcy5jb2RlKVxuXHRcdFx0dGhpcy5hcGlDb25zdGFudHMuc2V0TG9jYWxlKGNoYW5uZWxDb25maWcubG9jYWxlIHx8IGNoYW5uZWxDb25maWcubG9jYWxlcy5jb2RlKVxuXG5cdFx0aWYgKGNoYW5uZWxDb25maWcuY3VycmVuY3kgfHwgY2hhbm5lbENvbmZpZy5iYXNlQ3VycmVuY3kpXG5cdFx0XHR0aGlzLnNldEN1cnJlbmN5KGNoYW5uZWxDb25maWcuY3VycmVuY3kgfHwgY2hhbm5lbENvbmZpZy5iYXNlQ3VycmVuY3kpXG5cblx0XHRyZXR1cm4gY2hhbm5lbENvbmZpZztcblx0fVxuXG5cdC8qKlxuXHQqIEBkZXNjcmlwdGlvbiBzZSB1dGlsaXphIHBhcmEgY29uZmlndXJhciBxdWUgZmlsdHJvcyBkZWwgdGlwbyBgU29ydEZpbHRlcmAgc2UgcXVpZXJlIG1vc3RyYXIgZW4gbGEgdmlzdGEuXG5cdCogU2UgdXNhbiBsb3MgY29kaWdvIGRlIGxvcyBmaWx0cm9zIHBhcmEgaW5kaWNhciBjdWFsZXMgc2UgZGViZW4gbW9zdHJhci5cblx0Ki9cblx0cHJpdmF0ZSBzb3J0RmlsdGVyczogc3RyaW5nW10gPSBbJ3ByaWNlJywgJ29yZGVyLWFscGgnLCAncmVjZW50J11cblxuXHQvKipcblx0ICpcblx0ICogQHBhcmFtIGZpbHRlcnNDb2RlIGFycmVnbG8gZGUgc3RyaW5ncyBjb24gbG9zIGNvZGlnb3MgZGUgbG9zIGZpbHRyb3MuXG5cdCAqIFNpIHNlIGxlIHBhc2EgZWwgcGFyYW1ldHJvICoqYWxsKiogZXN0ZSBtb3N0cmFyYSB0b2Rvcy5cblx0ICogQGV4YW1wbGUgcHJpY2UgfCBvcmRlci1hbHBoIHwgcmVjZW50IHwgdXBkYXRlIHwgYWxsXG5cdCAqIEByZXR1cm5zXG5cdCAqL1xuXHRzZXRTb3J0RmlsdGVycyA9IChmaWx0ZXJzQ29kZTogc3RyaW5nW10gPSBbJ2FsbCddKSA9PiB0aGlzLnNvcnRGaWx0ZXJzID0gZmlsdGVyc0NvZGU7XG5cblx0Z2V0U29ydEZpbHRlcnMgPSAoKSA9PiB0aGlzLnNvcnRGaWx0ZXJzO1xuXG5cdC8vIEFCT1VUIFBST0RVQ1RTIFxuXHRwcml2YXRlIHByb2R1Y3RzV2l0aFVuaXF1ZVZhcmlhbnQ6IGJvb2xlYW4gPSBmYWxzZTtcblx0c2V0UHJvZHVjdFdpdGhVbmlxdWVWYXJpYW50KHZhbHVlOiBib29sZWFuKSB7IHRoaXMucHJvZHVjdHNXaXRoVW5pcXVlVmFyaWFudCA9IHZhbHVlOyB9XG5cdGdldFByb2R1Y3RXaXRoVW5pcXVlVmFyaWFudCgpIHsgcmV0dXJuIHRoaXMucHJvZHVjdHNXaXRoVW5pcXVlVmFyaWFudCB9XG5cblx0LyoqXG5cdCogQGRlc2NyaXB0aW9uIGVzdGEgdmFyaWFibGUgc2UgdXRpbGl6YSBwYXJhIGNvbmZpZ3VyYXIgbG9zIHBhcmFtZXRyb3MgY3VhbmRvIHNlIGRlc2VhIG1vc3RyYXJcblx0KiB2YXJpYW50ZXMgZWwgbGlzdGFkbyBkZSBwcm9kdWN0b3MuXG5cdCogQHBhcmFtIHtzdHJpbmd9dHlwZSB0aXBvIGRlIG9wdGlvbnNcblx0KiBAcGFyYW0ge3N0cmluZ31jb2RlIGNvZGlnbyBkZSBvcHRpb25zXG5cdCogQHBhcmFtIHtib29sZWFufWRlZmF1bHRGaXJzdE9wdGlvbiBgdHJ1ZWAgdG9tYSBlbCBwcmltZXIgb3B0aW9uIGRlbCBwcm9kdWN0byBlbiBnZW5lcmFsXG5cdCogQHBhcmFtIHtib29sZWFufWNoZWNrSWZTdG9jayBgdHJ1ZWAgc2UgcmVhbGl6YSB1biBjaGVxdWVvIGRlIHNpIGxhIHZhcmlhbnRlIHRpZW5lIHN0b2NrIHBhcmEgbW9zdHJhcmxhXG5cdCogQGV4YW1wbGUgIGBgYGphdmFzY3JpcHRcblx0KiB7XG5cdCAgIHR5cGU6ICdjb2xvcicsXG5cdCAgIGNvZGU6ICdjb2xvcicsXG5cdCAgIGRlZmF1bHRGaXJzdE9wdGlvbjogZmFsc2UgLFxuXHQgICBjaGVja0lmU3RvY2s6dHJ1ZVxuXHQgICB9IGBgYFxuXHQqL1xuXHRwcml2YXRlIHBhcmFtc1Byb2R1Y3RzV2l0aFVuaXF1ZVZhcmlhbnQ6IFBhcmFtc1Byb2R1Y3RzV2l0aFVuaXF1ZVZhcmlhbnQgPSB7XG5cdFx0dHlwZTogJ2NvbG9yJyxcblx0XHRjb2RlOiAnY29sb3InLFxuXHRcdGRlZmF1bHRGaXJzdE9wdGlvbjogZmFsc2UsXG5cdFx0Y2hlY2tJZlN0b2NrOiB0cnVlXG5cdH1cblxuXHRzZXRQYXJhbXNQcm9kdWN0c1dpdGhVbmlxdWVWYXJpYW50ID0gKHZhbHVlOiBQYXJhbXNQcm9kdWN0c1dpdGhVbmlxdWVWYXJpYW50KSA9PiB7XG5cdFx0dGhpcy5wYXJhbXNQcm9kdWN0c1dpdGhVbmlxdWVWYXJpYW50ID0ge1xuXHRcdFx0Li4udGhpcy5wYXJhbXNQcm9kdWN0c1dpdGhVbmlxdWVWYXJpYW50LFxuXHRcdFx0Li4udmFsdWVcblx0XHR9XG5cdH1cblxuXHRnZXRQYXJhbXNQcm9kdWN0c1dpdGhVbmlxdWVWYXJpYW50ID0gKCkgPT4gdGhpcy5wYXJhbXNQcm9kdWN0c1dpdGhVbmlxdWVWYXJpYW50XG5cdFxuXHRwdWJsaWMgZ2V0Q2hhbm5lbCgpe1xuXHRcdHJldHVybiB0aGlzLmFwaUNvbnN0YW50cy5DSEFOTkVMO1xuXHR9XG5cblx0cHVibGljIGZvcm1fc2VuZGVyOiBib29sZWFuID0gZmFsc2U7XG5cblx0c2V0Q3VycmVudFJvdXRlVHlwZSh0eXBlOiBzdHJpbmcgfCBudWxsKSB7XG5cdFx0dGhpcy5jdXJyZW50Um91dGVUeXBlID0gdHlwZTtcblx0fVxuXG5cdGdldEN1cnJlbnRSb3V0ZVR5cGUoKTogc3RyaW5nIHwgbnVsbCB7XG5cdFx0cmV0dXJuIHRoaXMuY3VycmVudFJvdXRlVHlwZTtcblx0fVxufVxuIl19
|