ng-easycommerce-v18 0.6.21 → 0.6.23
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 +11 -0
- package/assets/ec-i18n/ct.json +2 -0
- package/assets/ec-i18n/en.json +2 -0
- package/assets/ec-i18n/es.json +2 -1
- package/assets/ec-i18n/fr.json +2 -0
- package/assets/ec-i18n/gl.json +2 -0
- package/assets/ec-i18n/pr.json +2 -0
- package/esm2022/lib/ec-components/auth-ec/register-form-ec/register-form-ec.component.mjs +13 -7
- package/esm2022/lib/ec-components/blocks-ec/block-form-contact-ec/block-form-contact-ec.component.mjs +3 -2
- package/esm2022/lib/ec-components/blocks-ec/block-newsletter-ec/block-newsletter-ec.component.mjs +6 -2
- package/esm2022/lib/ec-components/collection-ec/collection-ec.component.mjs +11 -9
- package/fesm2022/ng-easycommerce-v18.mjs +29 -16
- package/fesm2022/ng-easycommerce-v18.mjs.map +1 -1
- package/lib/ec-components/auth-ec/register-form-ec/register-form-ec.component.d.ts +1 -0
- package/lib/ec-components/collection-ec/collection-ec.component.d.ts +1 -0
- package/package.json +1 -1
|
@@ -24,6 +24,7 @@ export class CollectionEcComponent {
|
|
|
24
24
|
constanst = inject(CoreConstantsService);
|
|
25
25
|
products = [];
|
|
26
26
|
breadcrumb = [];
|
|
27
|
+
seoBreadcrumb = [];
|
|
27
28
|
defaultFilters = [];
|
|
28
29
|
loading = false;
|
|
29
30
|
productsLoading = false;
|
|
@@ -83,6 +84,7 @@ export class CollectionEcComponent {
|
|
|
83
84
|
.pipe(takeUntil(this.destroy$))
|
|
84
85
|
.subscribe(filters => {
|
|
85
86
|
this.breadcrumb = this._optionsService.getBreadcrumbByFilters(filters);
|
|
87
|
+
this.seoBreadcrumb = this._optionsService.getBreadcrumbByFilters(filters.filter((filter) => filter.type() === 'categories'));
|
|
86
88
|
this.updateCollectionSeo();
|
|
87
89
|
});
|
|
88
90
|
this._productsService.loading$
|
|
@@ -181,17 +183,17 @@ export class CollectionEcComponent {
|
|
|
181
183
|
}
|
|
182
184
|
updateCollectionSeo() {
|
|
183
185
|
const siteName = this._seoService.getSiteName();
|
|
184
|
-
const breadcrumbTitle = this.
|
|
185
|
-
? this.
|
|
186
|
+
const breadcrumbTitle = this.seoBreadcrumb?.length
|
|
187
|
+
? this.seoBreadcrumb[this.seoBreadcrumb.length - 1]?.title
|
|
186
188
|
: null;
|
|
187
189
|
const searchTitle = this.constanst.searchValue?.trim();
|
|
188
|
-
const titlePrefix = searchTitle
|
|
189
|
-
? `Resultados para "${searchTitle}"`
|
|
190
|
-
: (breadcrumbTitle || 'Colección');
|
|
190
|
+
const titlePrefix = breadcrumbTitle || (searchTitle ? `Resultados para "${searchTitle}"` : 'Colección');
|
|
191
191
|
this._seoService.setTitle(`${titlePrefix} | ${siteName}`);
|
|
192
|
-
this._seoService.setDescription(
|
|
193
|
-
?
|
|
194
|
-
:
|
|
192
|
+
this._seoService.setDescription(breadcrumbTitle
|
|
193
|
+
? 'Listado de productos, categorías y filtros.'
|
|
194
|
+
: (searchTitle
|
|
195
|
+
? `Listado de productos para la búsqueda "${searchTitle}".`
|
|
196
|
+
: 'Listado de productos, categorías y filtros.'));
|
|
195
197
|
this._seoService.setOgType('website');
|
|
196
198
|
if (typeof window !== 'undefined') {
|
|
197
199
|
this._seoService.setCanonical(window.location.href);
|
|
@@ -240,4 +242,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
240
242
|
}], ctorParameters: () => [], propDecorators: { optionsFilters: [{
|
|
241
243
|
type: Input
|
|
242
244
|
}] } });
|
|
243
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdGlvbi1lYy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvZWMtY29tcG9uZW50cy9jb2xsZWN0aW9uLWVjL2NvbGxlY3Rpb24tZWMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvY29sbGVjdGlvbi1lYy9jb2xsZWN0aW9uLWVjLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBbUIsU0FBUyxFQUFnQixNQUFNLEVBQUUsS0FBSyxFQUFxQixXQUFXLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWhJLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUUsaUJBQWlCLEVBQUUsZUFBZSxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDNUssT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZELHdDQUF3QztBQUN4QyxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxvQkFBb0IsRUFBWSxHQUFHLEVBQWMsT0FBTyxFQUFRLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVqSSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFTcEQsTUFBTSxPQUFPLHFCQUFxQjtJQUV2QixnQkFBZ0IsR0FBb0IsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFBO0lBQzNELFlBQVksR0FB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QUFDLENBQUM7UUFFaEUsSUFBSSxLQUFLLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDekIsK0JBQStCO1lBQy9CLFVBQVUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ25DLENBQUM7YUFBTSxDQUFDO1lBQ1Asa0NBQWtDO1lBQ2xDLFVBQVUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3RDLENBQUM7UUFFRCwwRUFBMEU7UUFDMUUsSUFBSSxDQUFDLHdCQUF3QixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNoRCxDQUFDO3dHQTlRVyxxQkFBcUI7NEZBQXJCLHFCQUFxQiwySENsQmxDLHNaQWdCQTs7NEZERWEscUJBQXFCO2tCQVBqQyxTQUFTOytCQUNDLG1CQUFtQixjQUNqQixJQUFJLFdBQ1AsQ0FBQyx1QkFBdUIsQ0FBQzt3REF1Q3pCLGNBQWM7c0JBQXRCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhZnRlck5leHRSZW5kZXIsIENvbXBvbmVudCwgSG9zdExpc3RlbmVyLCBpbmplY3QsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgUExBVEZPUk1fSUQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGVmYXVsdEZpbHRlciwgRmlsdGVyVHlwZSwgUGFnaW5hdGlvblNldHRpbmdzLCBQcm9kdWN0IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBBdXRoU2VydmljZSwgQ2FydFNlcnZpY2UsIEZpbHRlcnNTZXJ2aWNlLCBPcHRpb25zU2VydmljZSwgUGFnaW5hdGlvblNlcnZpY2UsIFByb2R1Y3RzU2VydmljZSwgU2VvU2VydmljZSwgVG9hc3RTZXJ2aWNlLCBXaXNobGlzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi9lYy1zZXJ2aWNlcyc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBDb3JlQ29uc3RhbnRzU2VydmljZSB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG4vLyBBw5FBRElETyBCZWhhdmlvclN1YmplY3QgQSBMT1MgSU1QT1JUU1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgZm9ya0pvaW4sIG1hcCwgT2JzZXJ2YWJsZSwgU3ViamVjdCwgdGFrZSwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBGaWx0ZXIgfSBmcm9tICcuLi8uLi9jbGFzc2VzJztcbmltcG9ydCB7IEluZmluaXRlU2Nyb2xsRGlyZWN0aXZlIH0gZnJvbSBcIm5neC1pbmZpbml0ZS1zY3JvbGxcIjtcbmltcG9ydCB7IGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbGliLWNvbGxlY3Rpb24tZWMnLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHRpbXBvcnRzOiBbSW5maW5pdGVTY3JvbGxEaXJlY3RpdmVdLFxuXHR0ZW1wbGF0ZVVybDogJy4vY29sbGVjdGlvbi1lYy5jb21wb25lbnQuaHRtbCcsXG5cdHN0eWxlVXJsOiAnLi9jb2xsZWN0aW9uLWVjLmNvbXBvbmVudC5zY3NzJ1xufSlcbmV4cG9ydCBjbGFzcyBDb2xsZWN0aW9uRWNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cblx0cHJvdGVjdGVkIF9wcm9kdWN0c1NlcnZpY2U6IFByb2R1Y3RzU2VydmljZSA9IGluamVjdChQcm9kdWN0c1NlcnZpY2UpXG5cdHByb3RlY3RlZCBfYWN0aXZlUm91dGU6IEFjdGl2YXRlZFJvdXRlID0gaW5qZWN0KEFjdGl2YXRlZFJvdXRlKVxuXHRwcm90ZWN0ZWQgX29wdGlvbnNTZXJ2aWNlOiBPcHRpb25zU2VydmljZSA9IGluamVjdChPcHRpb25zU2VydmljZSlcblx0cHJpdmF0ZSBfZmlsdGVyc1NlcnZpY2U6IEZpbHRlcnNTZXJ2aWNlID0gaW5qZWN0KEZpbHRlcnNTZXJ2aWNlKTtcblx0cHJpdmF0ZSBfcGFnaW5hdGlvblNlcnZpY2U6IFBhZ2luYXRpb25TZXJ2aWNlID0gaW5qZWN0KFBhZ2luYXRpb25TZXJ2aWNlKTtcblx0cHJpdmF0ZSBfY2FydFNlcnZpY2U6IENhcnRTZXJ2aWNlID0gaW5qZWN0KENhcnRTZXJ2aWNlKTtcblx0cHJpdmF0ZSBfdG9hc3RTZXJ2aWNlOiBUb2FzdFNlcnZpY2UgPSBpbmplY3QoVG9hc3RTZXJ2aWNlKTtcblx0cHJpdmF0ZSBfd2lzaGxpc3RTZXJ2aWNlOiBXaXNobGlzdFNlcnZpY2UgPSBpbmplY3QoV2lzaGxpc3RTZXJ2aWNlKTtcdFxuXHRwcml2YXRlIF9zZW9TZXJ2aWNlOiBTZW9TZXJ2aWNlID0gaW5qZWN0KFNlb1NlcnZpY2UpO1xuXG5cdHB1YmxpYyBwYXJhbXMkID0gdGhpcy5fYWN0aXZlUm91dGUucGFyYW1zXG5cdHB1YmxpYyBxdWVyeVBhcmFtcyQgPSB0aGlzLl9hY3RpdmVSb3V0ZS5xdWVyeVBhcmFtc1xuXHRwdWJsaWMgcHJvZHVjdHMkID0gdGhpcy5fcHJvZHVjdHNTZXJ2aWNlLnByb2R1Y3RzJFxuXG5cdHB1YmxpYyBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UgPSBpbmplY3QoQXV0aFNlcnZpY2UpXG5cdHB1YmxpYyBjb25zdGFuc3Q6IENvcmVDb25zdGFudHNTZXJ2aWNlID0gaW5qZWN0KENvcmVDb25zdGFudHNTZXJ2aWNlKVxuXG5cdHB1YmxpYyBwcm9kdWN0czogUHJvZHVjdFtdID0gW107XG5cdHB1YmxpYyBicmVhZGNydW1iOiBhbnlbXSA9IFtdO1xuXHRwdWJsaWMgZGVmYXVsdEZpbHRlcnM6IERlZmF1bHRGaWx0ZXJbXSA9IFtdO1xuXHRwdWJsaWMgbG9hZGluZzogQm9vbGVhbiA9IGZhbHNlO1xuXHRwdWJsaWMgcHJvZHVjdHNMb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XG5cdHB1YmxpYyBjb3VudFByb2R1Y3RzID0gc2lnbmFsPG51bWJlcj4oMClcblx0cHJpdmF0ZSBsb2FkZWQgPSBzaWduYWwoZmFsc2UpO1xuXG5cdC8vIEVzdGFkbyBwYXJhIGFncmVnYWRvIG1hc2l2byBkZXNkZSBsYSB2aXN0YSBkZSBjb2xsZWN0aW9uLlxuXHRwdWJsaWMgYWRkaW5nVG9DYXJ0OiBib29sZWFuID0gZmFsc2U7XG5cdHB1YmxpYyBidWxrQWRkRW5hYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuXHRwdWJsaWMgYnVsa1Jlc2V0VG9rZW46IG51bWJlciA9IDA7XG5cdHByaXZhdGUgcGVuZGluZ0J1bGtSZXNldCA9IGZhbHNlO1xuXHRwcml2YXRlIGJ1bGtDYXJ0Q2hhbmdlZCA9IGZhbHNlO1xuXHRwcml2YXRlIGxhc3RDYXJ0U2lnbmF0dXJlID0gJyc7XG5cblx0QElucHV0KCkgb3B0aW9uc0ZpbHRlcnM6IEZpbHRlclR5cGVbXSA9IFsnYWxsJ107XG5cblx0ZmlsdGVyc19zb3J0OiBGaWx0ZXJbXSA9IFtdO1xuXG5cdHB1YmxpYyBmaWx0ZXJzJDogT2JzZXJ2YWJsZTxGaWx0ZXJbXT4gPSB0aGlzLl9maWx0ZXJzU2VydmljZS5maWx0ZXJzJDtcblx0cHVibGljIHJlYWR5JDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IHRoaXMuX2ZpbHRlcnNTZXJ2aWNlLnJlYWR5JDtcblxuXHRwcml2YXRlIHdpbmRvdz86IFdpbmRvdztcblxuXHRwdWJsaWMgaXNMaXN0OiBib29sZWFuID0gZmFsc2Vcblx0cHJpdmF0ZSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cdHNldEFzTGlzdCA9ICh2YWx1ZTogYm9vbGVhbikgPT4gdGhpcy5pc0xpc3QgPSB2YWx1ZVxuXG5cdC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXHQvLyDwn4yfIE5VRVZPOiBMw5NHSUNBIERFIFdJU0hMSVNUIChGQVZPUklUT1MpXG5cdC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXHQvLyBVc2Ftb3MgdW4gQmVoYXZpb3JTdWJqZWN0IGNvbiB1biBTZXQgcGFyYSBiw7pzcXVlZGFzIGluc3RhbnTDoW5lYXMgZW4gbGEgdmlzdGFcblx0cHJpdmF0ZSBmYXZvcml0ZVByb2R1Y3RDb2Rlc1N1YmogPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFNldDxzdHJpbmc+PihuZXcgU2V0PHN0cmluZz4oKSk7XG5cdHB1YmxpYyBmYXZvcml0ZVByb2R1Y3RDb2RlcyQgPSB0aGlzLmZhdm9yaXRlUHJvZHVjdENvZGVzU3Viai5hc09ic2VydmFibGUoKTtcblx0Ly8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cblx0bmdPbkluaXQoKTogdm9pZCB7XG5cdFx0aWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcblx0XHRcdHRoaXMud2luZG93Py5zY3JvbGwoMCwgMCk7XG5cdFx0fVxuXG5cdFx0Ly8g8J+MnyBOVUVWTzogQ2FyZ2FyIGxvcyBjw7NkaWdvcyBkZSB3aXNobGlzdCBzb2xvIHNpIGVsIHVzdWFyaW8gZXN0w6EgYXV0ZW50aWNhZG9cblx0XHRpZiAodGhpcy5hdXRoU2VydmljZS5pc0F1dGhlbnRpY2F0ZWQoKSkge1xuXHRcdFx0dGhpcy5sb2FkRmF2b3JpdGVQcm9kdWN0Q29kZXMoKTtcblx0XHR9XG5cblx0XHRjb21iaW5lTGF0ZXN0KFt0aGlzLnBhcmFtcyQsIHRoaXMucXVlcnlQYXJhbXMkXSlcblx0XHRcdC5waXBlKFxuXHRcdFx0XHRtYXAoKFtwYXJhbXMsIHF1ZXJ5XSkgPT4gKHsgcGFyYW1zLCBxdWVyeSB9KSksXG5cdFx0XHRcdGRpc3RpbmN0VW50aWxDaGFuZ2VkKChhLCBiKSA9PiBKU09OLnN0cmluZ2lmeShhKSA9PT0gSlNPTi5zdHJpbmdpZnkoYikpLFxuXHRcdFx0XHR0YWtlVW50aWwodGhpcy5kZXN0cm95JClcblx0XHRcdClcblx0XHRcdC5zdWJzY3JpYmUoKHsgcGFyYW1zLCBxdWVyeSB9KSA9PiB7XG5cdFx0XHRcdGNvbnN0IHJvdXRlVHlwZSA9IHBhcmFtc1sndHlwZSddIHx8IG51bGw7XG5cdFx0XHRcdHRoaXMuY29uc3RhbnN0LnNldEN1cnJlbnRSb3V0ZVR5cGUocm91dGVUeXBlKTtcblxuXHRcdFx0XHRjb25zdCBwYWdpbmF0aW9uU2V0dGluZ3M6IFBhZ2luYXRpb25TZXR0aW5ncyA9IHtcblx0XHRcdFx0XHRsYXRlc3Q6IHRydWUsXG5cdFx0XHRcdFx0bGltaXQ6IDEwLFxuXHRcdFx0XHRcdHR5cGU6IHBhcmFtc1sndHlwZSddIHx8IG51bGwsXG5cdFx0XHRcdFx0dmFsdWU6IHBhcmFtc1sndmFsdWUnXSB8fCBudWxsXG5cdFx0XHRcdH07XG5cblx0XHRcdFx0dGhpcy5fZmlsdGVyc1NlcnZpY2UuaHlkcmF0ZUZyb21Sb3V0ZShwYWdpbmF0aW9uU2V0dGluZ3MsIHBhcmFtcywgcXVlcnkpO1xuXHRcdFx0XHR0aGlzLl9wYWdpbmF0aW9uU2VydmljZS5yZWZyZXNoQ3VycmVudFF1ZXJ5KCk7XG5cdFx0XHR9KTtcblxuXHRcdHRoaXMuYnVsa0FkZEVuYWJsZWQgPSB0aGlzLmNvbnN0YW5zdC5nZXRCdWxrQWRkRW5hYmxlZCgpO1xuXG5cdFx0dGhpcy5wcm9kdWN0cyRcblx0XHRcdC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcblx0XHRcdC5zdWJzY3JpYmUocHJvZHVjdHMgPT4ge1xuXHRcdFx0XHR0aGlzLnByb2R1Y3RzID0gcHJvZHVjdHMgfHwgW107XG5cdFx0XHR9KTtcblxuXHRcdHRoaXMuX2ZpbHRlcnNTZXJ2aWNlLmZpbHRlcnMkXG5cdFx0XHQucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG5cdFx0XHQuc3Vic2NyaWJlKGZpbHRlcnMgPT4ge1xuXHRcdFx0XHR0aGlzLmJyZWFkY3J1bWIgPSB0aGlzLl9vcHRpb25zU2VydmljZS5nZXRCcmVhZGNydW1iQnlGaWx0ZXJzKGZpbHRlcnMpO1xuXHRcdFx0XHR0aGlzLnVwZGF0ZUNvbGxlY3Rpb25TZW8oKTtcblx0XHRcdH0pO1xuXG5cdFx0dGhpcy5fcHJvZHVjdHNTZXJ2aWNlLmxvYWRpbmckXG5cdFx0XHQucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG5cdFx0XHQuc3Vic2NyaWJlKChsb2FkaW5nKSA9PiB7XG5cdFx0XHRcdHRoaXMucHJvZHVjdHNMb2FkaW5nID0gbG9hZGluZztcblx0XHRcdH0pO1xuXG5cdFx0dGhpcy5fY2FydFNlcnZpY2UubG9hZGluZyRcblx0XHRcdC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcblx0XHRcdC5zdWJzY3JpYmUoKGxvYWRpbmcpID0+IHtcblx0XHRcdFx0dGhpcy5hZGRpbmdUb0NhcnQgPSBsb2FkaW5nO1xuXHRcdFx0XHRpZiAoIWxvYWRpbmcgJiYgdGhpcy5wZW5kaW5nQnVsa1Jlc2V0KSB7XG5cdFx0XHRcdFx0aWYgKHRoaXMuYnVsa0NhcnRDaGFuZ2VkKSB7XG5cdFx0XHRcdFx0XHR0aGlzLnJlc2V0QnVsa1NlbGVjdGlvbnMoKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0dGhpcy5wZW5kaW5nQnVsa1Jlc2V0ID0gZmFsc2U7XG5cdFx0XHRcdFx0dGhpcy5idWxrQ2FydENoYW5nZWQgPSBmYWxzZTtcblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cblx0XHR0aGlzLl9jYXJ0U2VydmljZS5jYXJ0SXRlbXMkXG5cdFx0XHQucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG5cdFx0XHQuc3Vic2NyaWJlKChpdGVtcykgPT4ge1xuXHRcdFx0XHRjb25zdCBzaWduYXR1cmUgPSBKU09OLnN0cmluZ2lmeShpdGVtcyB8fCBbXSk7XG5cdFx0XHRcdGlmICh0aGlzLnBlbmRpbmdCdWxrUmVzZXQgJiYgc2lnbmF0dXJlICE9PSB0aGlzLmxhc3RDYXJ0U2lnbmF0dXJlKSB7XG5cdFx0XHRcdFx0dGhpcy5idWxrQ2FydENoYW5nZWQgPSB0cnVlO1xuXHRcdFx0XHR9XG5cdFx0XHRcdHRoaXMubGFzdENhcnRTaWduYXR1cmUgPSBzaWduYXR1cmU7XG5cdFx0XHR9KTtcblx0fVxuXG5cdHByaXZhdGUgdG90YWwgPSAwO1xuXHRwcm90ZWN0ZWQgcGxhdGZvcm1JZDogYW55ID0gaW5qZWN0KFBMQVRGT1JNX0lEKVxuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG5cdFx0XHR0aGlzLndpbmRvdyA9IHdpbmRvd1xuXHRcdH1cblx0XHR0aGlzLnByb2R1Y3RzJFxuXHRcdFx0LnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuXHRcdFx0LnN1YnNjcmliZShwcm9kdWN0cyA9PiB7XG5cdFx0XHRcdGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG5cdFx0XHRcdFx0dGhpcy5sb2FkZWQuc2V0KHRydWUpO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0fVxuXG5cdG5nT25EZXN0cm95KCk6IHZvaWQge1xuXHRcdHRoaXMuZGVzdHJveSQubmV4dCgpO1xuXHRcdHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcblx0fVxuXG5cdG9uU2Nyb2xsKCkge1xuXHRcdHRoaXMubG9hZGluZyA9IHRydWU7XG5cdFx0dGhpcy5fcHJvZHVjdHNTZXJ2aWNlLnVwZGF0ZVByb2R1Y3RzKClcblx0fVxuXG5cdHB1YmxpYyBwcm9kdWN0SGFzU3RvY2socHJvZHVjdDogUHJvZHVjdCk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiB0aGlzLl9wcm9kdWN0c1NlcnZpY2UuaGFzU3RvY2socHJvZHVjdCk7XG5cdH1cblxuXHRhZGRBbGxQcm9kdWN0b3NUb0NhcnQgPSAocHJvZHVjdHM6IFByb2R1Y3RbXSB8IG51bGwgPSBudWxsKSA9PiB7XG5cdFx0aWYgKCF0aGlzLmJ1bGtBZGRFbmFibGVkKSByZXR1cm47XG5cdFx0Y29uc3QgcHJvZHVjdExpc3QgPSBwcm9kdWN0cyB8fCBbXTtcblx0XHRjb25zdCBzZWxlY3RlZCA9IHByb2R1Y3RMaXN0LmZpbHRlcigocHJvZDogYW55KSA9PiBwcm9kPy5wcm9kdWN0VG9DYXJ0SXRlbT8ucXVhbnRpdHkgPiAwKTtcblx0XHRjb25zdCBpdGVtcyA9IHNlbGVjdGVkXG5cdFx0XHQubWFwKChwcm9kOiBhbnkpID0+IHByb2QucHJvZHVjdFRvQ2FydEl0ZW0pXG5cdFx0XHQuZmlsdGVyKChpdGVtOiBhbnkpID0+IGl0ZW0gJiYgaXRlbS5xdWFudGl0eSA+IDApO1xuXG5cdFx0aWYgKCFpdGVtcy5sZW5ndGgpIHJldHVybjtcblxuXHRcdGNvbnN0IGludmFsaWRzID0gc2VsZWN0ZWQuZmlsdGVyKChwcm9kOiBhbnkpID0+IHtcblx0XHRcdGNvbnN0IHZhcmlhbnQgPSBwcm9kPy52YXJpYW50cz8uWzBdO1xuXHRcdFx0Y29uc3QgdmFyaWFudENvZGUgPSB2YXJpYW50Py5jb2RlO1xuXHRcdFx0Y29uc3Qgc3RvY2sgPSBOdW1iZXIodmFyaWFudD8uc3RvY2sgPz8gcHJvZD8uc3RvY2sgPz8gMCk7XG5cdFx0XHRjb25zdCByZXF1ZXN0ZWQgPSBOdW1iZXIocHJvZD8ucHJvZHVjdFRvQ2FydEl0ZW0/LnF1YW50aXR5ID8/IDApO1xuXHRcdFx0Y29uc3QgY3VycmVudEluQ2FydCA9IHZhcmlhbnRDb2RlXG5cdFx0XHRcdD8gTnVtYmVyKHRoaXMuX2NhcnRTZXJ2aWNlLmdldENvdW50RnJvbUl0ZW1JbkNhcnQodmFyaWFudENvZGUpID8/IDApXG5cdFx0XHRcdDogMDtcblxuXHRcdFx0cmV0dXJuICF2YXJpYW50Q29kZSB8fCBzdG9jayA8PSAwIHx8IHJlcXVlc3RlZCArIGN1cnJlbnRJbkNhcnQgPiBzdG9jaztcblx0XHR9KTtcblxuXHRcdGlmIChpbnZhbGlkcy5sZW5ndGggPiAwKSB7XG5cdFx0XHRjb25zdCBuYW1lcyA9IGludmFsaWRzXG5cdFx0XHRcdC5tYXAoKHByb2Q6IGFueSkgPT4gKHByb2Q/Lm5hbWUgPyBTdHJpbmcocHJvZC5uYW1lKSA6ICdwcm9kdWN0bycpKVxuXHRcdFx0XHQuc2xpY2UoMCwgMyk7XG5cdFx0XHRjb25zdCByZW1haW5pbmcgPSBpbnZhbGlkcy5sZW5ndGggLSBuYW1lcy5sZW5ndGg7XG5cdFx0XHRjb25zdCBsaXN0ID0gcmVtYWluaW5nID4gMCA/IGAke25hbWVzLmpvaW4oJywgJyl9IHkgJHtyZW1haW5pbmd9IG3DoXNgIDogbmFtZXMuam9pbignLCAnKTtcblx0XHRcdHRoaXMuX3RvYXN0U2VydmljZS5lcnJvcignYnVsay1zdG9jay1pbnN1ZmZpY2llbnQnLCB7IGl0ZW1zOiBsaXN0IH0pO1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdHRoaXMucGVuZGluZ0J1bGtSZXNldCA9IHRydWU7XG5cdFx0dGhpcy5idWxrQ2FydENoYW5nZWQgPSBmYWxzZTtcblx0XHR0aGlzLl9jYXJ0U2VydmljZS5hZGRBbGxUb0NhcnQoaXRlbXMpO1xuXHR9O1xuXG5cdGhhc0J1bGtTZWxlY3Rpb24gPSAocHJvZHVjdHM6IFByb2R1Y3RbXSB8IG51bGwgPSBudWxsKSA9PiB7XG5cdFx0cmV0dXJuICEhKHByb2R1Y3RzIHx8IFtdKS5zb21lKChwcm9kOiBhbnkpID0+IHByb2Q/LnByb2R1Y3RUb0NhcnRJdGVtPy5xdWFudGl0eSA+IDApO1xuXHR9O1xuXG5cdHByaXZhdGUgcmVzZXRCdWxrU2VsZWN0aW9ucygpOiB2b2lkIHtcblx0XHR0aGlzLnByb2R1Y3RzLmZvckVhY2goKHByb2R1Y3Q6IGFueSkgPT4ge1xuXHRcdFx0cHJvZHVjdC5wcm9kdWN0VG9DYXJ0SXRlbSA9IHVuZGVmaW5lZDtcblx0XHR9KTtcblx0XHR0aGlzLmJ1bGtSZXNldFRva2VuICs9IDE7XG5cdH1cblxuXHRwcm90ZWN0ZWQgdXBkYXRlQ29sbGVjdGlvblNlbygpOiB2b2lkIHtcblx0XHRjb25zdCBzaXRlTmFtZSA9IHRoaXMuX3Nlb1NlcnZpY2UuZ2V0U2l0ZU5hbWUoKTtcblx0XHRjb25zdCBicmVhZGNydW1iVGl0bGUgPSB0aGlzLmJyZWFkY3J1bWI/Lmxlbmd0aFxuXHRcdFx0PyB0aGlzLmJyZWFkY3J1bWJbdGhpcy5icmVhZGNydW1iLmxlbmd0aCAtIDFdPy50aXRsZVxuXHRcdFx0OiBudWxsO1xuXHRcdGNvbnN0IHNlYXJjaFRpdGxlID0gdGhpcy5jb25zdGFuc3Quc2VhcmNoVmFsdWU/LnRyaW0oKTtcblxuXHRcdGNvbnN0IHRpdGxlUHJlZml4ID0gc2VhcmNoVGl0bGVcblx0XHRcdD8gYFJlc3VsdGFkb3MgcGFyYSBcIiR7c2VhcmNoVGl0bGV9XCJgXG5cdFx0XHQ6IChicmVhZGNydW1iVGl0bGUgfHwgJ0NvbGVjY2nDs24nKTtcblxuXHRcdHRoaXMuX3Nlb1NlcnZpY2Uuc2V0VGl0bGUoYCR7dGl0bGVQcmVmaXh9IHwgJHtzaXRlTmFtZX1gKTtcblx0XHR0aGlzLl9zZW9TZXJ2aWNlLnNldERlc2NyaXB0aW9uKHNlYXJjaFRpdGxlXG5cdFx0XHQ/IGBMaXN0YWRvIGRlIHByb2R1Y3RvcyBwYXJhIGxhIGLDunNxdWVkYSBcIiR7c2VhcmNoVGl0bGV9XCIuYFxuXHRcdFx0OiAnTGlzdGFkbyBkZSBwcm9kdWN0b3MsIGNhdGVnb3LDrWFzIHkgZmlsdHJvcy4nKTtcblx0XHR0aGlzLl9zZW9TZXJ2aWNlLnNldE9nVHlwZSgnd2Vic2l0ZScpO1xuXG5cdFx0aWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKSB7XG5cdFx0XHR0aGlzLl9zZW9TZXJ2aWNlLnNldENhbm9uaWNhbCh3aW5kb3cubG9jYXRpb24uaHJlZik7XG5cdFx0fVxuXHR9XG5cblx0Ly8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cdC8vIPCfjJ8gTlVFVk9TIE3DiVRPRE9TIFBBUkEgTEEgV0lTSExJU1Rcblx0Ly8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cblx0cHJpdmF0ZSBsb2FkRmF2b3JpdGVQcm9kdWN0Q29kZXMoKSB7XG5cdFx0dGhpcy5fd2lzaGxpc3RTZXJ2aWNlLmdldFdpc2hsaXN0cygpLnRoZW4oKHdpc2hsaXN0czogYW55W10pID0+IHtcblx0XHRcdGNvbnN0IGNvZGVzID0gbmV3IFNldDxzdHJpbmc+KCk7XG5cblx0XHRcdC8vIFJlY29ycmVtb3MgbGFzIGxpc3RhcyB5IGd1YXJkYW1vcyBsb3MgQ8OTRElHT1MgZGUgbG9zIHByb2R1Y3Rvc1xuXHRcdFx0d2lzaGxpc3RzLmZvckVhY2gobGlzdCA9PiB7XG5cdFx0XHRcdGxpc3QuaXRlbXM/LmZvckVhY2goKGl0ZW06IGFueSkgPT4gY29kZXMuYWRkKGl0ZW0ucHJvZHVjdF9jb2RlKSk7XG5cdFx0XHR9KTtcblxuXHRcdFx0Ly8gQWN0dWFsaXphbW9zIGxhIHZpc3RhXG5cdFx0XHR0aGlzLmZhdm9yaXRlUHJvZHVjdENvZGVzU3Viai5uZXh0KGNvZGVzKTtcblx0XHR9KS5jYXRjaChlcnIgPT4ge1xuXHRcdFx0Y29uc29sZS5lcnJvcignRXJyb3IgY2FyZ2FuZG8gZmF2b3JpdG9zJywgZXJyKTtcblx0XHR9KTtcblx0fVxuXG5cdC8qKlxuXHQgKiBFc3RlIG3DqXRvZG8gc2Vyw6EgbGxhbWFkbyBwb3IgZWwgY29tcG9uZW50ZSA8YXBwLXByb2R1Y3Q+IChsYSB0YXJqZXRhKSBcblx0ICogY2FkYSB2ZXogcXVlIGVsIHVzdWFyaW8gaGFnYSBjbGljIGVuIGVsIGljb25vIGRlbCBjb3JhesOzbi5cblx0ICovXG5cdHB1YmxpYyBvbldpc2hsaXN0VG9nZ2xlKGV2ZW50OiB7IHByb2R1Y3RDb2RlOiBzdHJpbmcsIGlzTm93RmF2b3JpdGU6IGJvb2xlYW4gfSkge1xuXHRcdC8vIENsb25hbW9zIGVsIFNldCBhY3R1YWxcblx0XHRjb25zdCBjdXJyZW50U2V0ID0gbmV3IFNldCh0aGlzLmZhdm9yaXRlUHJvZHVjdENvZGVzU3Viai52YWx1ZSk7XG5cblx0XHRpZiAoZXZlbnQuaXNOb3dGYXZvcml0ZSkge1xuXHRcdFx0Ly8gQcOxYWRpZG8gYSBsYSBsaXN0YSBkZSBkZXNlb3Ncblx0XHRcdGN1cnJlbnRTZXQuYWRkKGV2ZW50LnByb2R1Y3RDb2RlKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0Ly8gRWxpbWluYWRvIGRlIGxhIGxpc3RhIGRlIGRlc2Vvc1xuXHRcdFx0Y3VycmVudFNldC5kZWxldGUoZXZlbnQucHJvZHVjdENvZGUpO1xuXHRcdH1cblxuXHRcdC8vIEVtaXRpbW9zIGVsIG51ZXZvIFNldCBwYXJhIHF1ZSBBbmd1bGFyIGFjdHVhbGljZSBsb3MgaWNvbm9zIGFsIGluc3RhbnRlXG5cdFx0dGhpcy5mYXZvcml0ZVByb2R1Y3RDb2Rlc1N1YmoubmV4dChjdXJyZW50U2V0KTtcblx0fVxufSIsIjxzZWN0aW9uIGNsYXNzPVwiY29udGFpbmVyLXhsIG1iLTVcIj5cbiAgICA8ZGl2IGNsYXNzPVwicm93IG0tMCBwLTBcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImQtbm9uZSBkLWxnLWJsb2NrIGNvbC0zXCI+XG4gICAgICAgICAgICA8IS0tRmlsdHJvcy0tPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1sZy05IG10LTIgcC0wXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgPCEtLSBAZm9yKFsnYScsICdiJywgJ2MnLCAnZCddIGFzIHByb2R1Y3Qpe1xuXG4gICAgICAgICAgICAgICAgfSAtLT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgIDwvZGl2PlxuPC9zZWN0aW9uPlxuIl19
|
|
245
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdGlvbi1lYy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvZWMtY29tcG9uZW50cy9jb2xsZWN0aW9uLWVjL2NvbGxlY3Rpb24tZWMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvY29sbGVjdGlvbi1lYy9jb2xsZWN0aW9uLWVjLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBbUIsU0FBUyxFQUFnQixNQUFNLEVBQUUsS0FBSyxFQUFxQixXQUFXLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWhJLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUUsaUJBQWlCLEVBQUUsZUFBZSxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDNUssT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZELHdDQUF3QztBQUN4QyxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxvQkFBb0IsRUFBWSxHQUFHLEVBQWMsT0FBTyxFQUFRLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVqSSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFTcEQsTUFBTSxPQUFPLHFCQUFxQjtJQUV2QixnQkFBZ0IsR0FBb0IsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFBO0lBQzNELFlBQVksR0FB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QyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNkLE9BQU8sQ0FBQyxLQUFLLENBQUMsMEJBQTBCLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDaEQsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksZ0JBQWdCLENBQUMsS0FBc0Q7UUFDN0UseUJBQXlCO1FBQ3pCLE1BQU0sVUFBVSxHQUFHLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVoRSxJQUFJLEtBQUssQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUN6QiwrQkFBK0I7WUFDL0IsVUFBVSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbkMsQ0FBQzthQUFNLENBQUM7WUFDUCxrQ0FBa0M7WUFDbEMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDdEMsQ0FBQztRQUVELDBFQUEwRTtRQUMxRSxJQUFJLENBQUMsd0JBQXdCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ2hELENBQUM7d0dBaFJXLHFCQUFxQjs0RkFBckIscUJBQXFCLDJIQ2xCbEMsc1pBZ0JBOzs0RkRFYSxxQkFBcUI7a0JBUGpDLFNBQVM7K0JBQ0MsbUJBQW1CLGNBQ2pCLElBQUksV0FDUCxDQUFDLHVCQUF1QixDQUFDO3dEQXdDekIsY0FBYztzQkFBdEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFmdGVyTmV4dFJlbmRlciwgQ29tcG9uZW50LCBIb3N0TGlzdGVuZXIsIGluamVjdCwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBQTEFURk9STV9JRCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEZWZhdWx0RmlsdGVyLCBGaWx0ZXJUeXBlLCBQYWdpbmF0aW9uU2V0dGluZ3MsIFByb2R1Y3QgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEF1dGhTZXJ2aWNlLCBDYXJ0U2VydmljZSwgRmlsdGVyc1NlcnZpY2UsIE9wdGlvbnNTZXJ2aWNlLCBQYWdpbmF0aW9uU2VydmljZSwgUHJvZHVjdHNTZXJ2aWNlLCBTZW9TZXJ2aWNlLCBUb2FzdFNlcnZpY2UsIFdpc2hsaXN0U2VydmljZSB9IGZyb20gJy4uLy4uL2VjLXNlcnZpY2VzJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IENvcmVDb25zdGFudHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcbi8vIEHDkUFESURPIEJlaGF2aW9yU3ViamVjdCBBIExPUyBJTVBPUlRTXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmb3JrSm9pbiwgbWFwLCBPYnNlcnZhYmxlLCBTdWJqZWN0LCB0YWtlLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEZpbHRlciB9IGZyb20gJy4uLy4uL2NsYXNzZXMnO1xuaW1wb3J0IHsgSW5maW5pdGVTY3JvbGxEaXJlY3RpdmUgfSBmcm9tIFwibmd4LWluZmluaXRlLXNjcm9sbFwiO1xuaW1wb3J0IHsgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICdsaWItY29sbGVjdGlvbi1lYycsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdGltcG9ydHM6IFtJbmZpbml0ZVNjcm9sbERpcmVjdGl2ZV0sXG5cdHRlbXBsYXRlVXJsOiAnLi9jb2xsZWN0aW9uLWVjLmNvbXBvbmVudC5odG1sJyxcblx0c3R5bGVVcmw6ICcuL2NvbGxlY3Rpb24tZWMuY29tcG9uZW50LnNjc3MnXG59KVxuZXhwb3J0IGNsYXNzIENvbGxlY3Rpb25FY0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuXHRwcm90ZWN0ZWQgX3Byb2R1Y3RzU2VydmljZTogUHJvZHVjdHNTZXJ2aWNlID0gaW5qZWN0KFByb2R1Y3RzU2VydmljZSlcblx0cHJvdGVjdGVkIF9hY3RpdmVSb3V0ZTogQWN0aXZhdGVkUm91dGUgPSBpbmplY3QoQWN0aXZhdGVkUm91dGUpXG5cdHByb3RlY3RlZCBfb3B0aW9uc1NlcnZpY2U6IE9wdGlvbnNTZXJ2aWNlID0gaW5qZWN0KE9wdGlvbnNTZXJ2aWNlKVxuXHRwcml2YXRlIF9maWx0ZXJzU2VydmljZTogRmlsdGVyc1NlcnZpY2UgPSBpbmplY3QoRmlsdGVyc1NlcnZpY2UpO1xuXHRwcml2YXRlIF9wYWdpbmF0aW9uU2VydmljZTogUGFnaW5hdGlvblNlcnZpY2UgPSBpbmplY3QoUGFnaW5hdGlvblNlcnZpY2UpO1xuXHRwcml2YXRlIF9jYXJ0U2VydmljZTogQ2FydFNlcnZpY2UgPSBpbmplY3QoQ2FydFNlcnZpY2UpO1xuXHRwcml2YXRlIF90b2FzdFNlcnZpY2U6IFRvYXN0U2VydmljZSA9IGluamVjdChUb2FzdFNlcnZpY2UpO1xuXHRwcml2YXRlIF93aXNobGlzdFNlcnZpY2U6IFdpc2hsaXN0U2VydmljZSA9IGluamVjdChXaXNobGlzdFNlcnZpY2UpO1x0XG5cdHByaXZhdGUgX3Nlb1NlcnZpY2U6IFNlb1NlcnZpY2UgPSBpbmplY3QoU2VvU2VydmljZSk7XG5cblx0cHVibGljIHBhcmFtcyQgPSB0aGlzLl9hY3RpdmVSb3V0ZS5wYXJhbXNcblx0cHVibGljIHF1ZXJ5UGFyYW1zJCA9IHRoaXMuX2FjdGl2ZVJvdXRlLnF1ZXJ5UGFyYW1zXG5cdHB1YmxpYyBwcm9kdWN0cyQgPSB0aGlzLl9wcm9kdWN0c1NlcnZpY2UucHJvZHVjdHMkXG5cblx0cHVibGljIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSA9IGluamVjdChBdXRoU2VydmljZSlcblx0cHVibGljIGNvbnN0YW5zdDogQ29yZUNvbnN0YW50c1NlcnZpY2UgPSBpbmplY3QoQ29yZUNvbnN0YW50c1NlcnZpY2UpXG5cblx0cHVibGljIHByb2R1Y3RzOiBQcm9kdWN0W10gPSBbXTtcblx0cHVibGljIGJyZWFkY3J1bWI6IGFueVtdID0gW107XG5cdHB1YmxpYyBzZW9CcmVhZGNydW1iOiBhbnlbXSA9IFtdO1xuXHRwdWJsaWMgZGVmYXVsdEZpbHRlcnM6IERlZmF1bHRGaWx0ZXJbXSA9IFtdO1xuXHRwdWJsaWMgbG9hZGluZzogQm9vbGVhbiA9IGZhbHNlO1xuXHRwdWJsaWMgcHJvZHVjdHNMb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XG5cdHB1YmxpYyBjb3VudFByb2R1Y3RzID0gc2lnbmFsPG51bWJlcj4oMClcblx0cHJpdmF0ZSBsb2FkZWQgPSBzaWduYWwoZmFsc2UpO1xuXG5cdC8vIEVzdGFkbyBwYXJhIGFncmVnYWRvIG1hc2l2byBkZXNkZSBsYSB2aXN0YSBkZSBjb2xsZWN0aW9uLlxuXHRwdWJsaWMgYWRkaW5nVG9DYXJ0OiBib29sZWFuID0gZmFsc2U7XG5cdHB1YmxpYyBidWxrQWRkRW5hYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuXHRwdWJsaWMgYnVsa1Jlc2V0VG9rZW46IG51bWJlciA9IDA7XG5cdHByaXZhdGUgcGVuZGluZ0J1bGtSZXNldCA9IGZhbHNlO1xuXHRwcml2YXRlIGJ1bGtDYXJ0Q2hhbmdlZCA9IGZhbHNlO1xuXHRwcml2YXRlIGxhc3RDYXJ0U2lnbmF0dXJlID0gJyc7XG5cblx0QElucHV0KCkgb3B0aW9uc0ZpbHRlcnM6IEZpbHRlclR5cGVbXSA9IFsnYWxsJ107XG5cblx0ZmlsdGVyc19zb3J0OiBGaWx0ZXJbXSA9IFtdO1xuXG5cdHB1YmxpYyBmaWx0ZXJzJDogT2JzZXJ2YWJsZTxGaWx0ZXJbXT4gPSB0aGlzLl9maWx0ZXJzU2VydmljZS5maWx0ZXJzJDtcblx0cHVibGljIHJlYWR5JDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IHRoaXMuX2ZpbHRlcnNTZXJ2aWNlLnJlYWR5JDtcblxuXHRwcml2YXRlIHdpbmRvdz86IFdpbmRvdztcblxuXHRwdWJsaWMgaXNMaXN0OiBib29sZWFuID0gZmFsc2Vcblx0cHJpdmF0ZSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cdHNldEFzTGlzdCA9ICh2YWx1ZTogYm9vbGVhbikgPT4gdGhpcy5pc0xpc3QgPSB2YWx1ZVxuXG5cdC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXHQvLyDwn4yfIE5VRVZPOiBMw5NHSUNBIERFIFdJU0hMSVNUIChGQVZPUklUT1MpXG5cdC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXHQvLyBVc2Ftb3MgdW4gQmVoYXZpb3JTdWJqZWN0IGNvbiB1biBTZXQgcGFyYSBiw7pzcXVlZGFzIGluc3RhbnTDoW5lYXMgZW4gbGEgdmlzdGFcblx0cHJpdmF0ZSBmYXZvcml0ZVByb2R1Y3RDb2Rlc1N1YmogPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFNldDxzdHJpbmc+PihuZXcgU2V0PHN0cmluZz4oKSk7XG5cdHB1YmxpYyBmYXZvcml0ZVByb2R1Y3RDb2RlcyQgPSB0aGlzLmZhdm9yaXRlUHJvZHVjdENvZGVzU3Viai5hc09ic2VydmFibGUoKTtcblx0Ly8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cblx0bmdPbkluaXQoKTogdm9pZCB7XG5cdFx0aWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcblx0XHRcdHRoaXMud2luZG93Py5zY3JvbGwoMCwgMCk7XG5cdFx0fVxuXG5cdFx0Ly8g8J+MnyBOVUVWTzogQ2FyZ2FyIGxvcyBjw7NkaWdvcyBkZSB3aXNobGlzdCBzb2xvIHNpIGVsIHVzdWFyaW8gZXN0w6EgYXV0ZW50aWNhZG9cblx0XHRpZiAodGhpcy5hdXRoU2VydmljZS5pc0F1dGhlbnRpY2F0ZWQoKSkge1xuXHRcdFx0dGhpcy5sb2FkRmF2b3JpdGVQcm9kdWN0Q29kZXMoKTtcblx0XHR9XG5cblx0XHRjb21iaW5lTGF0ZXN0KFt0aGlzLnBhcmFtcyQsIHRoaXMucXVlcnlQYXJhbXMkXSlcblx0XHRcdC5waXBlKFxuXHRcdFx0XHRtYXAoKFtwYXJhbXMsIHF1ZXJ5XSkgPT4gKHsgcGFyYW1zLCBxdWVyeSB9KSksXG5cdFx0XHRcdGRpc3RpbmN0VW50aWxDaGFuZ2VkKChhLCBiKSA9PiBKU09OLnN0cmluZ2lmeShhKSA9PT0gSlNPTi5zdHJpbmdpZnkoYikpLFxuXHRcdFx0XHR0YWtlVW50aWwodGhpcy5kZXN0cm95JClcblx0XHRcdClcblx0XHRcdC5zdWJzY3JpYmUoKHsgcGFyYW1zLCBxdWVyeSB9KSA9PiB7XG5cdFx0XHRcdGNvbnN0IHJvdXRlVHlwZSA9IHBhcmFtc1sndHlwZSddIHx8IG51bGw7XG5cdFx0XHRcdHRoaXMuY29uc3RhbnN0LnNldEN1cnJlbnRSb3V0ZVR5cGUocm91dGVUeXBlKTtcblxuXHRcdFx0XHRjb25zdCBwYWdpbmF0aW9uU2V0dGluZ3M6IFBhZ2luYXRpb25TZXR0aW5ncyA9IHtcblx0XHRcdFx0XHRsYXRlc3Q6IHRydWUsXG5cdFx0XHRcdFx0bGltaXQ6IDEwLFxuXHRcdFx0XHRcdHR5cGU6IHBhcmFtc1sndHlwZSddIHx8IG51bGwsXG5cdFx0XHRcdFx0dmFsdWU6IHBhcmFtc1sndmFsdWUnXSB8fCBudWxsXG5cdFx0XHRcdH07XG5cblx0XHRcdFx0dGhpcy5fZmlsdGVyc1NlcnZpY2UuaHlkcmF0ZUZyb21Sb3V0ZShwYWdpbmF0aW9uU2V0dGluZ3MsIHBhcmFtcywgcXVlcnkpO1xuXHRcdFx0XHR0aGlzLl9wYWdpbmF0aW9uU2VydmljZS5yZWZyZXNoQ3VycmVudFF1ZXJ5KCk7XG5cdFx0XHR9KTtcblxuXHRcdHRoaXMuYnVsa0FkZEVuYWJsZWQgPSB0aGlzLmNvbnN0YW5zdC5nZXRCdWxrQWRkRW5hYmxlZCgpO1xuXG5cdFx0dGhpcy5wcm9kdWN0cyRcblx0XHRcdC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcblx0XHRcdC5zdWJzY3JpYmUocHJvZHVjdHMgPT4ge1xuXHRcdFx0XHR0aGlzLnByb2R1Y3RzID0gcHJvZHVjdHMgfHwgW107XG5cdFx0XHR9KTtcblxuXHRcdHRoaXMuX2ZpbHRlcnNTZXJ2aWNlLmZpbHRlcnMkXG5cdFx0XHQucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG5cdFx0XHQuc3Vic2NyaWJlKGZpbHRlcnMgPT4ge1xuXHRcdFx0XHR0aGlzLmJyZWFkY3J1bWIgPSB0aGlzLl9vcHRpb25zU2VydmljZS5nZXRCcmVhZGNydW1iQnlGaWx0ZXJzKGZpbHRlcnMpO1xuXHRcdFx0XHR0aGlzLnNlb0JyZWFkY3J1bWIgPSB0aGlzLl9vcHRpb25zU2VydmljZS5nZXRCcmVhZGNydW1iQnlGaWx0ZXJzKGZpbHRlcnMuZmlsdGVyKChmaWx0ZXI6IGFueSkgPT4gZmlsdGVyLnR5cGUoKSA9PT0gJ2NhdGVnb3JpZXMnKSk7XG5cdFx0XHRcdHRoaXMudXBkYXRlQ29sbGVjdGlvblNlbygpO1xuXHRcdFx0fSk7XG5cblx0XHR0aGlzLl9wcm9kdWN0c1NlcnZpY2UubG9hZGluZyRcblx0XHRcdC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcblx0XHRcdC5zdWJzY3JpYmUoKGxvYWRpbmcpID0+IHtcblx0XHRcdFx0dGhpcy5wcm9kdWN0c0xvYWRpbmcgPSBsb2FkaW5nO1xuXHRcdFx0fSk7XG5cblx0XHR0aGlzLl9jYXJ0U2VydmljZS5sb2FkaW5nJFxuXHRcdFx0LnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuXHRcdFx0LnN1YnNjcmliZSgobG9hZGluZykgPT4ge1xuXHRcdFx0XHR0aGlzLmFkZGluZ1RvQ2FydCA9IGxvYWRpbmc7XG5cdFx0XHRcdGlmICghbG9hZGluZyAmJiB0aGlzLnBlbmRpbmdCdWxrUmVzZXQpIHtcblx0XHRcdFx0XHRpZiAodGhpcy5idWxrQ2FydENoYW5nZWQpIHtcblx0XHRcdFx0XHRcdHRoaXMucmVzZXRCdWxrU2VsZWN0aW9ucygpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHR0aGlzLnBlbmRpbmdCdWxrUmVzZXQgPSBmYWxzZTtcblx0XHRcdFx0XHR0aGlzLmJ1bGtDYXJ0Q2hhbmdlZCA9IGZhbHNlO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblxuXHRcdHRoaXMuX2NhcnRTZXJ2aWNlLmNhcnRJdGVtcyRcblx0XHRcdC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcblx0XHRcdC5zdWJzY3JpYmUoKGl0ZW1zKSA9PiB7XG5cdFx0XHRcdGNvbnN0IHNpZ25hdHVyZSA9IEpTT04uc3RyaW5naWZ5KGl0ZW1zIHx8IFtdKTtcblx0XHRcdFx0aWYgKHRoaXMucGVuZGluZ0J1bGtSZXNldCAmJiBzaWduYXR1cmUgIT09IHRoaXMubGFzdENhcnRTaWduYXR1cmUpIHtcblx0XHRcdFx0XHR0aGlzLmJ1bGtDYXJ0Q2hhbmdlZCA9IHRydWU7XG5cdFx0XHRcdH1cblx0XHRcdFx0dGhpcy5sYXN0Q2FydFNpZ25hdHVyZSA9IHNpZ25hdHVyZTtcblx0XHRcdH0pO1xuXHR9XG5cblx0cHJpdmF0ZSB0b3RhbCA9IDA7XG5cdHByb3RlY3RlZCBwbGF0Zm9ybUlkOiBhbnkgPSBpbmplY3QoUExBVEZPUk1fSUQpXG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0aWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcblx0XHRcdHRoaXMud2luZG93ID0gd2luZG93XG5cdFx0fVxuXHRcdHRoaXMucHJvZHVjdHMkXG5cdFx0XHQucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG5cdFx0XHQuc3Vic2NyaWJlKHByb2R1Y3RzID0+IHtcblx0XHRcdFx0aWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcblx0XHRcdFx0XHR0aGlzLmxvYWRlZC5zZXQodHJ1ZSk7XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHR9XG5cblx0bmdPbkRlc3Ryb3koKTogdm9pZCB7XG5cdFx0dGhpcy5kZXN0cm95JC5uZXh0KCk7XG5cdFx0dGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuXHR9XG5cblx0b25TY3JvbGwoKSB7XG5cdFx0dGhpcy5sb2FkaW5nID0gdHJ1ZTtcblx0XHR0aGlzLl9wcm9kdWN0c1NlcnZpY2UudXBkYXRlUHJvZHVjdHMoKVxuXHR9XG5cblx0cHVibGljIHByb2R1Y3RIYXNTdG9jayhwcm9kdWN0OiBQcm9kdWN0KTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIHRoaXMuX3Byb2R1Y3RzU2VydmljZS5oYXNTdG9jayhwcm9kdWN0KTtcblx0fVxuXG5cdGFkZEFsbFByb2R1Y3Rvc1RvQ2FydCA9IChwcm9kdWN0czogUHJvZHVjdFtdIHwgbnVsbCA9IG51bGwpID0+IHtcblx0XHRpZiAoIXRoaXMuYnVsa0FkZEVuYWJsZWQpIHJldHVybjtcblx0XHRjb25zdCBwcm9kdWN0TGlzdCA9IHByb2R1Y3RzIHx8IFtdO1xuXHRcdGNvbnN0IHNlbGVjdGVkID0gcHJvZHVjdExpc3QuZmlsdGVyKChwcm9kOiBhbnkpID0+IHByb2Q/LnByb2R1Y3RUb0NhcnRJdGVtPy5xdWFudGl0eSA+IDApO1xuXHRcdGNvbnN0IGl0ZW1zID0gc2VsZWN0ZWRcblx0XHRcdC5tYXAoKHByb2Q6IGFueSkgPT4gcHJvZC5wcm9kdWN0VG9DYXJ0SXRlbSlcblx0XHRcdC5maWx0ZXIoKGl0ZW06IGFueSkgPT4gaXRlbSAmJiBpdGVtLnF1YW50aXR5ID4gMCk7XG5cblx0XHRpZiAoIWl0ZW1zLmxlbmd0aCkgcmV0dXJuO1xuXG5cdFx0Y29uc3QgaW52YWxpZHMgPSBzZWxlY3RlZC5maWx0ZXIoKHByb2Q6IGFueSkgPT4ge1xuXHRcdFx0Y29uc3QgdmFyaWFudCA9IHByb2Q/LnZhcmlhbnRzPy5bMF07XG5cdFx0XHRjb25zdCB2YXJpYW50Q29kZSA9IHZhcmlhbnQ/LmNvZGU7XG5cdFx0XHRjb25zdCBzdG9jayA9IE51bWJlcih2YXJpYW50Py5zdG9jayA/PyBwcm9kPy5zdG9jayA/PyAwKTtcblx0XHRcdGNvbnN0IHJlcXVlc3RlZCA9IE51bWJlcihwcm9kPy5wcm9kdWN0VG9DYXJ0SXRlbT8ucXVhbnRpdHkgPz8gMCk7XG5cdFx0XHRjb25zdCBjdXJyZW50SW5DYXJ0ID0gdmFyaWFudENvZGVcblx0XHRcdFx0PyBOdW1iZXIodGhpcy5fY2FydFNlcnZpY2UuZ2V0Q291bnRGcm9tSXRlbUluQ2FydCh2YXJpYW50Q29kZSkgPz8gMClcblx0XHRcdFx0OiAwO1xuXG5cdFx0XHRyZXR1cm4gIXZhcmlhbnRDb2RlIHx8IHN0b2NrIDw9IDAgfHwgcmVxdWVzdGVkICsgY3VycmVudEluQ2FydCA+IHN0b2NrO1xuXHRcdH0pO1xuXG5cdFx0aWYgKGludmFsaWRzLmxlbmd0aCA+IDApIHtcblx0XHRcdGNvbnN0IG5hbWVzID0gaW52YWxpZHNcblx0XHRcdFx0Lm1hcCgocHJvZDogYW55KSA9PiAocHJvZD8ubmFtZSA/IFN0cmluZyhwcm9kLm5hbWUpIDogJ3Byb2R1Y3RvJykpXG5cdFx0XHRcdC5zbGljZSgwLCAzKTtcblx0XHRcdGNvbnN0IHJlbWFpbmluZyA9IGludmFsaWRzLmxlbmd0aCAtIG5hbWVzLmxlbmd0aDtcblx0XHRcdGNvbnN0IGxpc3QgPSByZW1haW5pbmcgPiAwID8gYCR7bmFtZXMuam9pbignLCAnKX0geSAke3JlbWFpbmluZ30gbcOhc2AgOiBuYW1lcy5qb2luKCcsICcpO1xuXHRcdFx0dGhpcy5fdG9hc3RTZXJ2aWNlLmVycm9yKCdidWxrLXN0b2NrLWluc3VmZmljaWVudCcsIHsgaXRlbXM6IGxpc3QgfSk7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0dGhpcy5wZW5kaW5nQnVsa1Jlc2V0ID0gdHJ1ZTtcblx0XHR0aGlzLmJ1bGtDYXJ0Q2hhbmdlZCA9IGZhbHNlO1xuXHRcdHRoaXMuX2NhcnRTZXJ2aWNlLmFkZEFsbFRvQ2FydChpdGVtcyk7XG5cdH07XG5cblx0aGFzQnVsa1NlbGVjdGlvbiA9IChwcm9kdWN0czogUHJvZHVjdFtdIHwgbnVsbCA9IG51bGwpID0+IHtcblx0XHRyZXR1cm4gISEocHJvZHVjdHMgfHwgW10pLnNvbWUoKHByb2Q6IGFueSkgPT4gcHJvZD8ucHJvZHVjdFRvQ2FydEl0ZW0/LnF1YW50aXR5ID4gMCk7XG5cdH07XG5cblx0cHJpdmF0ZSByZXNldEJ1bGtTZWxlY3Rpb25zKCk6IHZvaWQge1xuXHRcdHRoaXMucHJvZHVjdHMuZm9yRWFjaCgocHJvZHVjdDogYW55KSA9PiB7XG5cdFx0XHRwcm9kdWN0LnByb2R1Y3RUb0NhcnRJdGVtID0gdW5kZWZpbmVkO1xuXHRcdH0pO1xuXHRcdHRoaXMuYnVsa1Jlc2V0VG9rZW4gKz0gMTtcblx0fVxuXG5cdHByb3RlY3RlZCB1cGRhdGVDb2xsZWN0aW9uU2VvKCk6IHZvaWQge1xuXHRcdGNvbnN0IHNpdGVOYW1lID0gdGhpcy5fc2VvU2VydmljZS5nZXRTaXRlTmFtZSgpO1xuXHRcdGNvbnN0IGJyZWFkY3J1bWJUaXRsZSA9IHRoaXMuc2VvQnJlYWRjcnVtYj8ubGVuZ3RoXG5cdFx0XHQ/IHRoaXMuc2VvQnJlYWRjcnVtYlt0aGlzLnNlb0JyZWFkY3J1bWIubGVuZ3RoIC0gMV0/LnRpdGxlXG5cdFx0XHQ6IG51bGw7XG5cdFx0Y29uc3Qgc2VhcmNoVGl0bGUgPSB0aGlzLmNvbnN0YW5zdC5zZWFyY2hWYWx1ZT8udHJpbSgpO1xuXG5cdFx0Y29uc3QgdGl0bGVQcmVmaXggPSBicmVhZGNydW1iVGl0bGUgfHwgKHNlYXJjaFRpdGxlID8gYFJlc3VsdGFkb3MgcGFyYSBcIiR7c2VhcmNoVGl0bGV9XCJgIDogJ0NvbGVjY2nDs24nKTtcblxuXHRcdHRoaXMuX3Nlb1NlcnZpY2Uuc2V0VGl0bGUoYCR7dGl0bGVQcmVmaXh9IHwgJHtzaXRlTmFtZX1gKTtcblx0XHR0aGlzLl9zZW9TZXJ2aWNlLnNldERlc2NyaXB0aW9uKGJyZWFkY3J1bWJUaXRsZVxuXHRcdFx0PyAnTGlzdGFkbyBkZSBwcm9kdWN0b3MsIGNhdGVnb3LDrWFzIHkgZmlsdHJvcy4nXG5cdFx0XHQ6IChzZWFyY2hUaXRsZVxuXHRcdFx0XHQ/IGBMaXN0YWRvIGRlIHByb2R1Y3RvcyBwYXJhIGxhIGLDunNxdWVkYSBcIiR7c2VhcmNoVGl0bGV9XCIuYFxuXHRcdFx0XHQ6ICdMaXN0YWRvIGRlIHByb2R1Y3RvcywgY2F0ZWdvcsOtYXMgeSBmaWx0cm9zLicpKTtcblx0XHR0aGlzLl9zZW9TZXJ2aWNlLnNldE9nVHlwZSgnd2Vic2l0ZScpO1xuXG5cdFx0aWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKSB7XG5cdFx0XHR0aGlzLl9zZW9TZXJ2aWNlLnNldENhbm9uaWNhbCh3aW5kb3cubG9jYXRpb24uaHJlZik7XG5cdFx0fVxuXHR9XG5cblx0Ly8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cdC8vIPCfjJ8gTlVFVk9TIE3DiVRPRE9TIFBBUkEgTEEgV0lTSExJU1Rcblx0Ly8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cblx0cHJpdmF0ZSBsb2FkRmF2b3JpdGVQcm9kdWN0Q29kZXMoKSB7XG5cdFx0dGhpcy5fd2lzaGxpc3RTZXJ2aWNlLmdldFdpc2hsaXN0cygpLnRoZW4oKHdpc2hsaXN0czogYW55W10pID0+IHtcblx0XHRcdGNvbnN0IGNvZGVzID0gbmV3IFNldDxzdHJpbmc+KCk7XG5cblx0XHRcdC8vIFJlY29ycmVtb3MgbGFzIGxpc3RhcyB5IGd1YXJkYW1vcyBsb3MgQ8OTRElHT1MgZGUgbG9zIHByb2R1Y3Rvc1xuXHRcdFx0d2lzaGxpc3RzLmZvckVhY2gobGlzdCA9PiB7XG5cdFx0XHRcdGxpc3QuaXRlbXM/LmZvckVhY2goKGl0ZW06IGFueSkgPT4gY29kZXMuYWRkKGl0ZW0ucHJvZHVjdF9jb2RlKSk7XG5cdFx0XHR9KTtcblxuXHRcdFx0Ly8gQWN0dWFsaXphbW9zIGxhIHZpc3RhXG5cdFx0XHR0aGlzLmZhdm9yaXRlUHJvZHVjdENvZGVzU3Viai5uZXh0KGNvZGVzKTtcblx0XHR9KS5jYXRjaChlcnIgPT4ge1xuXHRcdFx0Y29uc29sZS5lcnJvcignRXJyb3IgY2FyZ2FuZG8gZmF2b3JpdG9zJywgZXJyKTtcblx0XHR9KTtcblx0fVxuXG5cdC8qKlxuXHQgKiBFc3RlIG3DqXRvZG8gc2Vyw6EgbGxhbWFkbyBwb3IgZWwgY29tcG9uZW50ZSA8YXBwLXByb2R1Y3Q+IChsYSB0YXJqZXRhKSBcblx0ICogY2FkYSB2ZXogcXVlIGVsIHVzdWFyaW8gaGFnYSBjbGljIGVuIGVsIGljb25vIGRlbCBjb3JhesOzbi5cblx0ICovXG5cdHB1YmxpYyBvbldpc2hsaXN0VG9nZ2xlKGV2ZW50OiB7IHByb2R1Y3RDb2RlOiBzdHJpbmcsIGlzTm93RmF2b3JpdGU6IGJvb2xlYW4gfSkge1xuXHRcdC8vIENsb25hbW9zIGVsIFNldCBhY3R1YWxcblx0XHRjb25zdCBjdXJyZW50U2V0ID0gbmV3IFNldCh0aGlzLmZhdm9yaXRlUHJvZHVjdENvZGVzU3Viai52YWx1ZSk7XG5cblx0XHRpZiAoZXZlbnQuaXNOb3dGYXZvcml0ZSkge1xuXHRcdFx0Ly8gQcOxYWRpZG8gYSBsYSBsaXN0YSBkZSBkZXNlb3Ncblx0XHRcdGN1cnJlbnRTZXQuYWRkKGV2ZW50LnByb2R1Y3RDb2RlKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0Ly8gRWxpbWluYWRvIGRlIGxhIGxpc3RhIGRlIGRlc2Vvc1xuXHRcdFx0Y3VycmVudFNldC5kZWxldGUoZXZlbnQucHJvZHVjdENvZGUpO1xuXHRcdH1cblxuXHRcdC8vIEVtaXRpbW9zIGVsIG51ZXZvIFNldCBwYXJhIHF1ZSBBbmd1bGFyIGFjdHVhbGljZSBsb3MgaWNvbm9zIGFsIGluc3RhbnRlXG5cdFx0dGhpcy5mYXZvcml0ZVByb2R1Y3RDb2Rlc1N1YmoubmV4dChjdXJyZW50U2V0KTtcblx0fVxufVxuIiwiPHNlY3Rpb24gY2xhc3M9XCJjb250YWluZXIteGwgbWItNVwiPlxuICAgIDxkaXYgY2xhc3M9XCJyb3cgbS0wIHAtMFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZC1ub25lIGQtbGctYmxvY2sgY29sLTNcIj5cbiAgICAgICAgICAgIDwhLS1GaWx0cm9zLS0+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLWxnLTkgbXQtMiBwLTBcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICA8IS0tIEBmb3IoWydhJywgJ2InLCAnYycsICdkJ10gYXMgcHJvZHVjdCl7XG5cbiAgICAgICAgICAgICAgICB9IC0tPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgPC9kaXY+XG48L3NlY3Rpb24+XG4iXX0=
|
|
@@ -11124,9 +11124,13 @@ class BlockNewsletterEcComponent {
|
|
|
11124
11124
|
this._toastService.show(this.success_message || success_message);
|
|
11125
11125
|
}
|
|
11126
11126
|
catch (err) {
|
|
11127
|
-
|
|
11127
|
+
const status = err?.status ?? err?.error?.status;
|
|
11128
|
+
if (status === 400) {
|
|
11128
11129
|
this._toastService.error('newsletter_email_already_registered');
|
|
11129
11130
|
}
|
|
11131
|
+
else if (status === 429) {
|
|
11132
|
+
this._toastService.error('form-rate-limit');
|
|
11133
|
+
}
|
|
11130
11134
|
else {
|
|
11131
11135
|
this._toastService.error('inquiry-error');
|
|
11132
11136
|
}
|
|
@@ -13057,7 +13061,8 @@ class BlockFormContactEcComponent extends BlockEcComponent {
|
|
|
13057
13061
|
this.loading = false;
|
|
13058
13062
|
this.redirect && this._router.navigateByUrl('/home');
|
|
13059
13063
|
}, (err) => {
|
|
13060
|
-
|
|
13064
|
+
const status = err?.status ?? err?.error?.status;
|
|
13065
|
+
this._toastService.error(status === 429 ? 'form-rate-limit' : 'inquiry-error');
|
|
13061
13066
|
this.loading = false;
|
|
13062
13067
|
});
|
|
13063
13068
|
}
|
|
@@ -13199,6 +13204,7 @@ class CollectionEcComponent {
|
|
|
13199
13204
|
constanst = inject(CoreConstantsService);
|
|
13200
13205
|
products = [];
|
|
13201
13206
|
breadcrumb = [];
|
|
13207
|
+
seoBreadcrumb = [];
|
|
13202
13208
|
defaultFilters = [];
|
|
13203
13209
|
loading = false;
|
|
13204
13210
|
productsLoading = false;
|
|
@@ -13258,6 +13264,7 @@ class CollectionEcComponent {
|
|
|
13258
13264
|
.pipe(takeUntil(this.destroy$))
|
|
13259
13265
|
.subscribe(filters => {
|
|
13260
13266
|
this.breadcrumb = this._optionsService.getBreadcrumbByFilters(filters);
|
|
13267
|
+
this.seoBreadcrumb = this._optionsService.getBreadcrumbByFilters(filters.filter((filter) => filter.type() === 'categories'));
|
|
13261
13268
|
this.updateCollectionSeo();
|
|
13262
13269
|
});
|
|
13263
13270
|
this._productsService.loading$
|
|
@@ -13356,17 +13363,17 @@ class CollectionEcComponent {
|
|
|
13356
13363
|
}
|
|
13357
13364
|
updateCollectionSeo() {
|
|
13358
13365
|
const siteName = this._seoService.getSiteName();
|
|
13359
|
-
const breadcrumbTitle = this.
|
|
13360
|
-
? this.
|
|
13366
|
+
const breadcrumbTitle = this.seoBreadcrumb?.length
|
|
13367
|
+
? this.seoBreadcrumb[this.seoBreadcrumb.length - 1]?.title
|
|
13361
13368
|
: null;
|
|
13362
13369
|
const searchTitle = this.constanst.searchValue?.trim();
|
|
13363
|
-
const titlePrefix = searchTitle
|
|
13364
|
-
? `Resultados para "${searchTitle}"`
|
|
13365
|
-
: (breadcrumbTitle || 'Colección');
|
|
13370
|
+
const titlePrefix = breadcrumbTitle || (searchTitle ? `Resultados para "${searchTitle}"` : 'Colección');
|
|
13366
13371
|
this._seoService.setTitle(`${titlePrefix} | ${siteName}`);
|
|
13367
|
-
this._seoService.setDescription(
|
|
13368
|
-
?
|
|
13369
|
-
:
|
|
13372
|
+
this._seoService.setDescription(breadcrumbTitle
|
|
13373
|
+
? 'Listado de productos, categorías y filtros.'
|
|
13374
|
+
: (searchTitle
|
|
13375
|
+
? `Listado de productos para la búsqueda "${searchTitle}".`
|
|
13376
|
+
: 'Listado de productos, categorías y filtros.'));
|
|
13370
13377
|
this._seoService.setOgType('website');
|
|
13371
13378
|
if (typeof window !== 'undefined') {
|
|
13372
13379
|
this._seoService.setCanonical(window.location.href);
|
|
@@ -13846,12 +13853,7 @@ class RegisterFormEcComponent {
|
|
|
13846
13853
|
})
|
|
13847
13854
|
.catch(error => {
|
|
13848
13855
|
this.register_loading = false;
|
|
13849
|
-
|
|
13850
|
-
this._toastService.show('El email ingresado ya se encuentra registrado.');
|
|
13851
|
-
}
|
|
13852
|
-
else {
|
|
13853
|
-
this._toastService.show('Error en el registro. Vuelva a intentarlo más tarde.');
|
|
13854
|
-
}
|
|
13856
|
+
this._toastService.show(this.resolveRegisterErrorMessage(error));
|
|
13855
13857
|
})
|
|
13856
13858
|
.finally(() => {
|
|
13857
13859
|
this.loading = false;
|
|
@@ -13903,6 +13905,17 @@ class RegisterFormEcComponent {
|
|
|
13903
13905
|
togglePassword() {
|
|
13904
13906
|
this.showPassword = !this.showPassword;
|
|
13905
13907
|
}
|
|
13908
|
+
resolveRegisterErrorMessage(error) {
|
|
13909
|
+
const status = error?.status ?? error?.error?.code;
|
|
13910
|
+
const backendMessage = `${error?.error?.message ?? error?.message ?? ''}`.toLowerCase();
|
|
13911
|
+
if (status === 409 || (backendMessage.includes('canal') && backendMessage.includes('activo'))) {
|
|
13912
|
+
return 'email-register-channel-inactive';
|
|
13913
|
+
}
|
|
13914
|
+
if (status === 400 || backendMessage.includes('registrado') || backendMessage.includes('registered')) {
|
|
13915
|
+
return 'email-already-registered';
|
|
13916
|
+
}
|
|
13917
|
+
return 'email-register-error';
|
|
13918
|
+
}
|
|
13906
13919
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RegisterFormEcComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
13907
13920
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: RegisterFormEcComponent, isStandalone: true, selector: "app-register-form-ec", inputs: { redirect: "redirect" }, outputs: { ready: "ready" }, ngImport: i0, template: "<div class=\"w-100 pl-md-5 position-relative\" id=\"register\">\n <div class=\"py-2\">\n <h5>CREAR CUENTA</h5>\n </div>\n <form id=\"registro\" [formGroup]=\"registerForm\" (submit)=\"register($event)\">\n <div class=\"form-group\">\n <label for=\"\" class=\"form-label\">NOMBRE</label>\n <input formControlName=\"firstName\" class=\"form-control rounded-0\" type=\"text\" placeholder=\"Nombre\">\n </div>\n <div class=\"form-group\">\n <label for=\"\" class=\"form-label\">APELLIDO</label>\n <input formControlName=\"lastName\" class=\"form-control rounded-0\" type=\"text\" placeholder=\"Apellido\">\n </div>\n <div class=\"form-group\">\n <label for=\"\" class=\"\">CORREO ELECTRONICO</label>\n <input formControlName=\"email\" email required class=\"form-control rounded-0\" type=\"email\"\n placeholder=\"Correo electr\u00F3nico\">\n </div>\n <div class=\"form-group\">\n <label for=\"\" class=\"form-label\">CONTRASE\u00D1A</label>\n <input formControlName=\"plainPassword\" required class=\"form-control rounded-0\" type=\"password\"\n placeholder=\"Contrase\u00F1a\">\n </div>\n <div class=\"form-group\">\n <label for=\"\" class=\"form-label\">REPETIR CONTRASE\u00D1A</label>\n <input formControlName=\"plainPassword2\" required class=\"form-control rounded-0\" type=\"password\"\n placeholder=\"Repetir contrase\u00F1a\">\n </div>\n\n <div class=\"custom-control d-flex flex-row form-check custom-checkbox mr-sm-2 mt-4 mb-2\">\n <input type=\"checkbox\" formControlName=\"terms\" required class=\"custom-control-input form-check-input\" name=\"Color2\"\n id=\"Color2\">\n <label class=\"custom-control-label ff-ubuntu-light font-sm form-check-label\" for=\"Color2\"> He\n le\u00EDdo y acepto las pol\u00EDticas de privacidad y los t\u00E9rminos y\n condiciones</label>\n </div>\n\n <div class=\"custom-control d-flex flex-row form-check custom-checkbox mr-sm-2 mb-4\">\n <input type=\"checkbox\" formControlName=\"newsletter\" class=\"custom-control-input form-check-input\" name=\"Color3\" id=\"Color3\">\n <label class=\"custom-control-label form-check-label ff-ubuntu-light font-sm\" for=\"Color3\">\n Suscripci\u00F3n al Newsletter</label>\n </div>\n\n <div class=\"row\">\n <div class=\"col-12\">\n <button [disabled]=\"registerForm.invalid\" type=\"submit\"\n class=\"btn btn-primary px-5 py-2 h-fit\">CREAR</button>\n </div>\n </div>\n </form>\n @if(loading){\n <app-loading-section-ec />\n }\n \n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$4.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i1$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$4.CheckboxRequiredValidator, selector: "input[type=checkbox][required][formControlName],input[type=checkbox][required][formControl],input[type=checkbox][required][ngModel]" }, { kind: "directive", type: i1$4.EmailValidator, selector: "[email][formControlName],[email][formControl],[email][ngModel]", inputs: ["email"] }, { kind: "directive", type: i1$4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: LoadingSectionEcComponent, selector: "app-loading-section-ec" }] });
|
|
13908
13921
|
}
|