ng-easycommerce 0.0.688 → 0.0.689
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 +13 -0
- package/assets/docs/SEO.md +174 -0
- package/bundles/ng-easycommerce.umd.js +859 -558
- package/bundles/ng-easycommerce.umd.js.map +1 -1
- package/bundles/ng-easycommerce.umd.min.js +1 -1
- package/bundles/ng-easycommerce.umd.min.js.map +1 -1
- package/esm2015/lib/ec-component/auth-ec/auth-ec.component.js +31 -3
- package/esm2015/lib/ec-component/auth-ec/confirm-account-ec/confirm-account-ec.component.js +14 -3
- package/esm2015/lib/ec-component/auth-ec/forgot-password-ec/forgot-password-ec.component.js +14 -3
- package/esm2015/lib/ec-component/cart-ec/cart-ec.component.js +17 -3
- package/esm2015/lib/ec-component/checkout-ec/checkout-ec.component.js +17 -3
- package/esm2015/lib/ec-component/checkout-ec/dataform-ec/dataform-ec.component.js +3 -3
- package/esm2015/lib/ec-component/collection-ec/collection-ec.component.js +36 -3
- package/esm2015/lib/ec-component/home-ec/home-ec.component.js +14 -3
- package/esm2015/lib/ec-component/password-reset-ec/password-reset-ec.component.js +14 -3
- package/esm2015/lib/ec-component/product-detail-ec/product-detail-ec.component.js +17 -12
- package/esm2015/lib/ec-component/section-container-ec/section-container-ec.component.js +45 -4
- package/esm2015/lib/ec-directive/add-action-redirect.directive.js +35 -13
- package/esm2015/lib/ec-directive/product-off.directive.js +2 -2
- package/esm2015/lib/services/seo.service.js +112 -0
- package/esm2015/public-api.js +2 -1
- package/esm5/lib/ec-component/auth-ec/auth-ec.component.js +31 -3
- package/esm5/lib/ec-component/auth-ec/confirm-account-ec/confirm-account-ec.component.js +14 -3
- package/esm5/lib/ec-component/auth-ec/forgot-password-ec/forgot-password-ec.component.js +14 -3
- package/esm5/lib/ec-component/cart-ec/cart-ec.component.js +17 -3
- package/esm5/lib/ec-component/checkout-ec/checkout-ec.component.js +17 -3
- package/esm5/lib/ec-component/checkout-ec/dataform-ec/dataform-ec.component.js +3 -3
- package/esm5/lib/ec-component/collection-ec/collection-ec.component.js +36 -3
- package/esm5/lib/ec-component/home-ec/home-ec.component.js +14 -3
- package/esm5/lib/ec-component/password-reset-ec/password-reset-ec.component.js +14 -3
- package/esm5/lib/ec-component/product-detail-ec/product-detail-ec.component.js +17 -12
- package/esm5/lib/ec-component/section-container-ec/section-container-ec.component.js +45 -4
- package/esm5/lib/ec-directive/add-action-redirect.directive.js +35 -13
- package/esm5/lib/ec-directive/product-off.directive.js +2 -2
- package/esm5/lib/services/seo.service.js +116 -0
- package/esm5/public-api.js +2 -1
- package/fesm2015/ng-easycommerce.js +855 -559
- package/fesm2015/ng-easycommerce.js.map +1 -1
- package/fesm5/ng-easycommerce.js +860 -560
- package/fesm5/ng-easycommerce.js.map +1 -1
- package/lib/ec-component/auth-ec/auth-ec.component.d.ts +4 -1
- package/lib/ec-component/auth-ec/confirm-account-ec/confirm-account-ec.component.d.ts +3 -1
- package/lib/ec-component/auth-ec/forgot-password-ec/forgot-password-ec.component.d.ts +3 -1
- package/lib/ec-component/cart-ec/cart-ec.component.d.ts +4 -1
- package/lib/ec-component/checkout-ec/checkout-ec.component.d.ts +4 -1
- package/lib/ec-component/collection-ec/collection-ec.component.d.ts +5 -1
- package/lib/ec-component/home-ec/home-ec.component.d.ts +3 -1
- package/lib/ec-component/password-reset-ec/password-reset-ec.component.d.ts +3 -1
- package/lib/ec-component/product-detail-ec/product-detail-ec.component.d.ts +3 -3
- package/lib/ec-component/section-container-ec/section-container-ec.component.d.ts +7 -1
- package/lib/ec-directive/add-action-redirect.directive.d.ts +1 -0
- package/lib/services/seo.service.d.ts +16 -0
- package/ng-easycommerce.metadata.json +1 -1
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
|
@@ -38,6 +38,7 @@ var __spread = (this && this.__spread) || function () {
|
|
|
38
38
|
return ar;
|
|
39
39
|
};
|
|
40
40
|
import { Component, Input } from '@angular/core';
|
|
41
|
+
import { SeoService } from '../../services/seo.service';
|
|
41
42
|
import { ActivatedRoute } from '@angular/router';
|
|
42
43
|
// import { Constants, Filter, OptionsService, Product, ProductsService } from 'ng-easycommerce';
|
|
43
44
|
import { combineLatest } from 'rxjs';
|
|
@@ -52,7 +53,7 @@ import { ParametersService } from '../../services/parameters.service';
|
|
|
52
53
|
import { ProductsService } from '../../services/products/products.service';
|
|
53
54
|
var CollectionEcComponent = /** @class */ (function (_super) {
|
|
54
55
|
__extends(CollectionEcComponent, _super);
|
|
55
|
-
function CollectionEcComponent(productsService, paramsSrv, activeRoute, optionsService, authService, analyticsService, cartService, consts, filtersService) {
|
|
56
|
+
function CollectionEcComponent(productsService, paramsSrv, activeRoute, optionsService, authService, analyticsService, cartService, consts, filtersService, seo) {
|
|
56
57
|
var _this = _super.call(this) || this;
|
|
57
58
|
_this.productsService = productsService;
|
|
58
59
|
_this.paramsSrv = paramsSrv;
|
|
@@ -63,6 +64,7 @@ var CollectionEcComponent = /** @class */ (function (_super) {
|
|
|
63
64
|
_this.cartService = cartService;
|
|
64
65
|
_this.consts = consts;
|
|
65
66
|
_this.filtersService = filtersService;
|
|
67
|
+
_this.seo = seo;
|
|
66
68
|
_this.filters = [];
|
|
67
69
|
_this.filtersConfig = { filters: [] };
|
|
68
70
|
_this.finished = false;
|
|
@@ -139,6 +141,35 @@ var CollectionEcComponent = /** @class */ (function (_super) {
|
|
|
139
141
|
_this.getObjectWithVariant = function () {
|
|
140
142
|
return _this.consts.getParamsProductsWithUniqueVariant();
|
|
141
143
|
};
|
|
144
|
+
_this.normalizeSeoBreadcrumbTitle = function (value) {
|
|
145
|
+
var _a, _b, _c, _d, _e, _f;
|
|
146
|
+
if (!value) {
|
|
147
|
+
return '';
|
|
148
|
+
}
|
|
149
|
+
if (typeof value === 'string') {
|
|
150
|
+
return value.trim();
|
|
151
|
+
}
|
|
152
|
+
return (_f = (_d = (_b = (_a = value) === null || _a === void 0 ? void 0 : _a.title, (_b !== null && _b !== void 0 ? _b : (_c = value) === null || _c === void 0 ? void 0 : _c.name)), (_d !== null && _d !== void 0 ? _d : (_e = value) === null || _e === void 0 ? void 0 : _e.label)), (_f !== null && _f !== void 0 ? _f : '')).toString().trim();
|
|
153
|
+
};
|
|
154
|
+
_this.updateCollectionSeo = function () {
|
|
155
|
+
var _a;
|
|
156
|
+
var siteName = _this.seo.getSiteName();
|
|
157
|
+
var breadcrumbTitle = _this.normalizeSeoBreadcrumbTitle(((_a = _this.breadcrumb) === null || _a === void 0 ? void 0 : _a.length) ? _this.breadcrumb[_this.breadcrumb.length - 1] : null);
|
|
158
|
+
var searchTitle = typeof window !== 'undefined' ? (new URLSearchParams(window.location.search).get('search') || '').trim() : '';
|
|
159
|
+
var titlePrefix = breadcrumbTitle || (searchTitle ? "Resultados para \"" + searchTitle + "\"" : 'Productos');
|
|
160
|
+
var description = breadcrumbTitle
|
|
161
|
+
? "Cat\u00E1logo de " + breadcrumbTitle.toLowerCase() + " en " + siteName + "."
|
|
162
|
+
: (searchTitle
|
|
163
|
+
? "Listado de productos para la b\u00FAsqueda \"" + searchTitle + "\" en " + siteName + "."
|
|
164
|
+
: "Cat\u00E1logo de productos de " + siteName + ".");
|
|
165
|
+
_this.seo.setTitle(titlePrefix + " | " + siteName);
|
|
166
|
+
_this.seo.setDescription(description);
|
|
167
|
+
_this.seo.setOgType('website');
|
|
168
|
+
_this.seo.setRobots('index, follow');
|
|
169
|
+
if (typeof window !== 'undefined') {
|
|
170
|
+
_this.seo.setCanonical(window.location.href);
|
|
171
|
+
}
|
|
172
|
+
};
|
|
142
173
|
_this.paramsSrv.parameters.subscribe(function (param) { return _this.params = param; });
|
|
143
174
|
_this.defaultFilters = _this.consts.getDefaultFilters();
|
|
144
175
|
_this.filtersConfig.filters = _this.consts.getFilterConfig();
|
|
@@ -213,6 +244,7 @@ var CollectionEcComponent = /** @class */ (function (_super) {
|
|
|
213
244
|
_this.breadcrumb = _this.optionsService.getBreadcrumbByFilters(res);
|
|
214
245
|
_this.filters = _this.getSpecificFilters(res, _this.filtersConfig.filters);
|
|
215
246
|
_this.filters_top = _this.getSpecificFilters(res, ['sort']);
|
|
247
|
+
_this.updateCollectionSeo();
|
|
216
248
|
});
|
|
217
249
|
_this.productsService.finished().subscribe(function (res) { return _this.finished = res; });
|
|
218
250
|
}
|
|
@@ -234,7 +266,8 @@ var CollectionEcComponent = /** @class */ (function (_super) {
|
|
|
234
266
|
{ type: AnalyticsService },
|
|
235
267
|
{ type: CartService },
|
|
236
268
|
{ type: Constants },
|
|
237
|
-
{ type: FiltersService }
|
|
269
|
+
{ type: FiltersService },
|
|
270
|
+
{ type: SeoService }
|
|
238
271
|
]; };
|
|
239
272
|
__decorate([
|
|
240
273
|
Input()
|
|
@@ -258,4 +291,4 @@ var CollectionEcComponent = /** @class */ (function (_super) {
|
|
|
258
291
|
return CollectionEcComponent;
|
|
259
292
|
}(ComponentHelper));
|
|
260
293
|
export { CollectionEcComponent };
|
|
261
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdGlvbi1lYy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZy1lYXN5Y29tbWVyY2UvIiwic291cmNlcyI6WyJsaWIvZWMtY29tcG9uZW50L2NvbGxlY3Rpb24tZWMvY29sbGVjdGlvbi1lYy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQWdDLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVqRCxpR0FBaUc7QUFDakcsT0FBTyxFQUFFLGFBQWEsRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDbkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRWpFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUk5QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzFELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNoRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDaEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDdEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBUTNFO0lBQTJDLHlDQUFlO0lBc0J0RCwrQkFBbUIsZUFBZ0MsRUFDckMsU0FBNEIsRUFDNUIsV0FBMkIsRUFDM0IsY0FBOEIsRUFDakMsV0FBd0IsRUFDdkIsZ0JBQWtDLEVBQ25DLFdBQXdCLEVBQ3hCLE1BQWlCLEVBQ2pCLGNBQThCO1FBUnpD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QUMsZUFBZSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUN0RSxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztZQUNyQixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztTQUN4QjtJQUNMLENBQUM7O2dCQXhJbUMsZUFBZTtnQkFDMUIsaUJBQWlCO2dCQUNmLGNBQWM7Z0JBQ1gsY0FBYztnQkFDcEIsV0FBVztnQkFDTCxnQkFBZ0I7Z0JBQ3RCLFdBQVc7Z0JBQ2hCLFNBQVM7Z0JBQ0QsY0FBYzs7SUFiaEM7UUFBUixLQUFLLEVBQUU7dURBQU07SUFDTDtRQUFSLEtBQUssRUFBRTt3REFBTztJQUNOO1FBQVIsS0FBSyxFQUFFOzRFQUE0QztJQUMzQztRQUFSLEtBQUssRUFBRTtpRUFBd0M7SUFwQnZDLHFCQUFxQjtRQUxqQyxTQUFTLENBQUM7WUFDUCxRQUFRLEVBQUUsbUJBQW1CO1lBQzdCLDZSQUE2Qzs7U0FFaEQsQ0FBQztPQUNXLHFCQUFxQixDQXNMakM7SUFBRCw0QkFBQztDQUFBLEFBdExELENBQTJDLGVBQWUsR0FzTHpEO1NBdExZLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEZpbHRlckVsZW1lbnQgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2ZpbHRlcic7XG4vLyBpbXBvcnQgeyBDb25zdGFudHMsIEZpbHRlciwgT3B0aW9uc1NlcnZpY2UsIFByb2R1Y3QsIFByb2R1Y3RzU2VydmljZSB9IGZyb20gJ25nLWVhc3ljb21tZXJjZSc7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IENvbXBvbmVudEhlbHBlciB9IGZyb20gJy4uLy4uL2NsYXNzZXMvY29tcG9uZW50LWhlbHBlcic7XG5pbXBvcnQgeyBGaWx0ZXIgfSBmcm9tICcuLi8uLi9jbGFzc2VzL2ZpbHRlcnMvRmlsdGVyJztcbmltcG9ydCB7IENvbnN0YW50cyB9IGZyb20gJy4uLy4uL2NvcmUuY29uc3RzJztcbmltcG9ydCB7IERlZmF1bHRGaWx0ZXIsIEZpbHRlckNvbmZpZywgRmlsdGVyVHlwZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvZmlsdGVyJztcbmltcG9ydCB7IFBhcmFtc1Byb2R1Y3RzV2l0aFVuaXF1ZVZhcmlhbnQgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL3BhcmFtc0ludGVyZmFjZXMvcGFyYW1zUHJvZHVjdHNXaXRoVW5pcXVlVmFyaWFudCc7XG5pbXBvcnQgeyBQcm9kdWN0IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9wcm9kdWN0JztcbmltcG9ydCB7IEFuYWx5dGljc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9hbmFseXRpY3Muc2VydmljZSc7XG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2F1dGguc2VydmljZSc7XG5pbXBvcnQgeyBDYXJ0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2NhcnQuc2VydmljZSc7XG5pbXBvcnQgeyBGaWx0ZXJzU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2ZpbHRlcnMuc2VydmljZSc7XG5pbXBvcnQgeyBPcHRpb25zU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL29wdGlvbnMuc2VydmljZSc7XG5pbXBvcnQgeyBQYXJhbWV0ZXJzU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3BhcmFtZXRlcnMuc2VydmljZSc7XG5pbXBvcnQgeyBQcm9kdWN0c1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9wcm9kdWN0cy9wcm9kdWN0cy5zZXJ2aWNlJztcblxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FwcC1jb2xsZWN0aW9uLWVjJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vY29sbGVjdGlvbi1lYy5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vY29sbGVjdGlvbi1lYy5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIENvbGxlY3Rpb25FY0NvbXBvbmVudCBleHRlbmRzIENvbXBvbmVudEhlbHBlciBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgICBwdWJsaWMgZmlsdGVyczogRmlsdGVyW10gPSBbXTtcbiAgICBwdWJsaWMgZmlsdGVyc190b3A6IEZpbHRlcltdO1xuICAgIHByaXZhdGUgZGVmYXVsdEZpbHRlcnM6IERlZmF1bHRGaWx0ZXJbXTtcbiAgICBwcml2YXRlIGZpbHRlcnNDb25maWc6IEZpbHRlckNvbmZpZyA9IHtmaWx0ZXJzOltdfTtcbiAgICAvLyBwdWJsaWMgb3B0aW9uc0ZpbHRlcnM6IFsnYWxsJ107XG4gICAgcHVibGljIHByb2R1Y3RzOiBQcm9kdWN0W107XG4gICAgcHVibGljIGZpbmlzaGVkID0gZmFsc2U7XG4gICAgcHJvdGVjdGVkIHN1c2NyaXBjaW9uOiBTdWJzY3JpcHRpb247XG4gICAgcHVibGljIGxvYWRpbmcgPSB0cnVlO1xuICAgIHB1YmxpYyBicmVhZGNydW1iOiBzdHJpbmdbXSA9IFtdXG4gICAgcHVibGljIGlzQ29sbGVjdGlvbiA9IHRydWU7XG4gICAgcHVibGljIHBhcmFtczogYW55O1xuXG4gICAgcHVibGljIGZpbHRlckluVmlldzpGaWx0ZXJFbGVtZW50O1xuXG4gICAgQElucHV0KCkgdHlwZTtcbiAgICBASW5wdXQoKSB2YWx1ZTtcbiAgICBASW5wdXQoKSBwcm9kdWN0c1dpdGhVbmlxdWVWYXJpYW50OiBib29sZWFuID0gZmFsc2U7XG4gICAgQElucHV0KCkgb3B0aW9uc0ZpbHRlcnM6IEZpbHRlclR5cGVbXSA9IFsnYWxsJ107XG5cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgcHJvZHVjdHNTZXJ2aWNlOiBQcm9kdWN0c1NlcnZpY2UsXG4gICAgICAgIHByb3RlY3RlZCBwYXJhbXNTcnY6IFBhcmFtZXRlcnNTZXJ2aWNlLFxuICAgICAgICBwcm90ZWN0ZWQgYWN0aXZlUm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgICAgICBwcm90ZWN0ZWQgb3B0aW9uc1NlcnZpY2U6IE9wdGlvbnNTZXJ2aWNlLFxuICAgICAgICBwdWJsaWMgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGFuYWx5dGljc1NlcnZpY2U6IEFuYWx5dGljc1NlcnZpY2UsXG4gICAgICAgIHB1YmxpYyBjYXJ0U2VydmljZTogQ2FydFNlcnZpY2UsXG4gICAgICAgIHB1YmxpYyBjb25zdHM6IENvbnN0YW50cyxcbiAgICAgICAgcHVibGljIGZpbHRlcnNTZXJ2aWNlOiBGaWx0ZXJzU2VydmljZSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLnBhcmFtc1Nydi5wYXJhbWV0ZXJzLnN1YnNjcmliZShwYXJhbSA9PiB0aGlzLnBhcmFtcyA9IHBhcmFtKVxuICAgICAgICB0aGlzLmRlZmF1bHRGaWx0ZXJzID0gdGhpcy5jb25zdHMuZ2V0RGVmYXVsdEZpbHRlcnMoKVxuICAgICAgICB0aGlzLmZpbHRlcnNDb25maWcuZmlsdGVycyA9IHRoaXMuY29uc3RzLmdldEZpbHRlckNvbmZpZygpXG4gICAgICAgIHRoaXMucHJvZHVjdHNTZXJ2aWNlLmZpbHRlcnNJblZpZXckLnN1YnNjcmliZSggcmVzID0+IHRoaXMuZmlsdGVySW5WaWV3ID0gcmVzKVxuICAgICAgICB0aGlzLmVjT25Db25zdHJ1Y3QoKVxuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB3aW5kb3cuc2Nyb2xsKDAsIDApO1xuICAgICAgICB0aGlzLnByb2R1Y3RzID0gW107XG4gICAgICAgIHRoaXMuZWNPbkluaXQoKVxuICAgICAgICB0aGlzLmdldFByb2R1Y3RzQW5kU3Vic2NyaWJlKCk7XG4gICAgfVxuICAgIGdldFByb2R1Y3RzQW5kU3Vic2NyaWJlKCk6IHZvaWQge1xuICAgICAgICBjb21iaW5lTGF0ZXN0KFt0aGlzLmFjdGl2ZVJvdXRlLnBhcmFtcywgdGhpcy5vcHRpb25zU2VydmljZS5yZWFkeSwgdGhpcy5hY3RpdmVSb3V0ZS5xdWVyeVBhcmFtc10pLnN1YnNjcmliZSgoW3BhcmFtcywgcmVhZHksIHF1ZXJ5UGFyYW1zXSkgPT4ge1xuICAgICAgICAgICAgaWYgKHJlYWR5LnJlYWR5QWxsKSB7XG4gICAgICAgICAgICAgICAgbGV0IGNhbWJpbyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHRoaXMucHJvZHVjdHMgPSBbXTtcbiAgICAgICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgICAgICAgICAgICAgIGlmICghcGFyYW1zWyd0eXBlJ10gfHwgIXBhcmFtc1sndmFsdWUnXSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnByb2R1Y3RzU2VydmljZS5nZXRQcm9kdWN0c0ZvckZpbHRlcih7IGxhdGVzdDogdHJ1ZSwgbGltaXQ6IDEwIH0sIHRoaXMub3B0aW9uc0ZpbHRlcnMsIHF1ZXJ5UGFyYW1zLnNlYXJjaCwgdGhpcy5kZWZhdWx0RmlsdGVycyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnByb2R1Y3RzU2VydmljZS5nZXRQcm9kdWN0c0ZvckZpbHRlcih7IHR5cGU6IHBhcmFtcy50eXBlLCB2YWx1ZTogcGFyYW1zLnZhbHVlIH0sIHRoaXMub3B0aW9uc0ZpbHRlcnMsIHF1ZXJ5UGFyYW1zLnNlYXJjaCwgIHRoaXMuZGVmYXVsdEZpbHRlcnMpO1xuICAgICAgICAgICAgICAgICAgICBjYW1iaW8gPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnR5cGUgPSBwYXJhbXNbJ3R5cGUnXTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy52YWx1ZSA9IHBhcmFtc1sndmFsdWUnXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdHJ5IHsgdGhpcy5zdXNjcmlwY2lvbi51bnN1YnNjcmliZSgpOyB9IGNhdGNoIChlKSB7IH07XG4gICAgICAgICAgICAgICAgdGhpcy5zdXNjcmlwY2lvbiA9IHRoaXMucHJvZHVjdHNTZXJ2aWNlLnByb2R1Y3RzJC5zdWJzY3JpYmUoXG4gICAgICAgICAgICAgICAgICAgIHJlcyA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXMubGVuZ3RoID09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnByb2R1Y3RzID0gW107XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5maW5pc2hlZCA9IHRoaXMucHJvZHVjdHNTZXJ2aWNlLmlzRmluaXNoZWQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMucHJvZHVjdHNXaXRoVW5pcXVlVmFyaWFudCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY2FtYmlvKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnByb2R1Y3RzID0gdGhpcy5wcm9kdWN0c1NlcnZpY2UuZ2V0UHJvZHVjdHNXaXRoVW5pcXVlVmFyaWFudChyZXMsIHRoaXMuZ2V0T2JqZWN0V2l0aFZhcmlhbnQoKSApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hcHBseUZpbHRlcnNJblZpZXcoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FtYmlvID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXMgPSB0aGlzLnByb2R1Y3RzU2VydmljZS5nZXRQcm9kdWN0c1dpdGhVbmlxdWVWYXJpYW50KHJlcywgdGhpcy5nZXRPYmplY3RXaXRoVmFyaWFudCgpICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnByb2R1Y3RzLnB1c2goLi4ucmVzKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hcHBseUZpbHRlcnNJblZpZXcoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY2FtYmlvKSB7IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9kdWN0cyA9IHJlczsgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFwcGx5RmlsdGVyc0luVmlldygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FtYmlvID0gZmFsc2U7IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9kdWN0cy5wdXNoKC4uLnJlcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFwcGx5RmlsdGVyc0luVmlldygpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFuYWx5dGljc1NlcnZpY2UuY2FsbEV2ZW50KCd2aWV3X2l0ZW1fbGlzdCcsIHsgcHJvZHVjdHM6IHRoaXMucHJvZHVjdHMsIGl0ZW1fbGlzdF9uYW1lOiAnQ29sbGVjdGlvbicsIGl0ZW1fbGlzdF9pZDogMCB9KVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGlzLnByb2R1Y3RzU2VydmljZS5maWx0ZXJzJC5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5icmVhZGNydW1iID0gdGhpcy5vcHRpb25zU2VydmljZS5nZXRCcmVhZGNydW1iQnlGaWx0ZXJzKHJlcyk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZmlsdGVycyA9IHRoaXMuZ2V0U3BlY2lmaWNGaWx0ZXJzKHJlcywgdGhpcy5maWx0ZXJzQ29uZmlnLmZpbHRlcnMpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZpbHRlcnNfdG9wID0gdGhpcy5nZXRTcGVjaWZpY0ZpbHRlcnMocmVzLCBbJ3NvcnQnXSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhpcy5wcm9kdWN0c1NlcnZpY2UuZmluaXNoZWQoKS5zdWJzY3JpYmUocmVzID0+IHRoaXMuZmluaXNoZWQgPSByZXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBSZWFsaXphIHVuIHNvcnQgZGUgcHJvZHVjdG9zIHBvciBlbCBjYW1wbyBkYXRlQ3JlYXRlIGRlIGxhIHZhcmlhbnRlXG4gICAgICogQHBhcmFtIGEgUHJvZHVjdG8gYVxuICAgICAqIEBwYXJhbSBiIFByb2R1Y3RvIGJcbiAgICAgKiBAcGFyYW0gdHlwZSBzaSBlcyBgYXNjYCB8IGBkZXNjYFxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9ICoqMSoqIHBhcmEgYHRydWVgIHwgKiowKiogcGFyYSBgZmFsc2VgXG4gICAgICovXG4gICAgc29ydFByb2R1Y3RzID0gKGE6YW55LCBiOmFueSwgdHlwZTpzdHJpbmc9J2FzYycpID0+IHtcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICAgICAgbGV0IHRvQ29tcGFyZUEgPSBhLnZhcmlhbnRzICYmIGEudmFyaWFudHMubGVuZ3RoID4gMCA/IGEudmFyaWFudHNbMF1bJ2RhdGVDcmVhdGUnXSA6IG51bGw7XG4gICAgICAgIGxldCB0b0NvbXBhcmVCID0gYi52YXJpYW50cyAmJiBiLnZhcmlhbnRzLmxlbmd0aCA+IDAgPyBiLnZhcmlhbnRzWzBdWydkYXRlQ3JlYXRlJ10gOiBudWxsO1xuXG4gICAgICAgIGlmKHRvQ29tcGFyZUEgJiYgdG9Db21wYXJlQikge1xuICAgICAgICAgICAgbGV0IGRhdGVBID0gbmV3IERhdGUodG9Db21wYXJlQSk7XG4gICAgICAgICAgICBsZXQgZGF0ZUIgPSBuZXcgRGF0ZSh0b0NvbXBhcmVCKTtcblxuICAgICAgICAgICAgc3dpdGNoKHR5cGUpe1xuICAgICAgICAgICAgICAgIGNhc2UgJ2Rlc2MnOiByZXR1cm4gKGRhdGVBID49IGRhdGVCKSA/IDEgOiAwOyBicmVha1xuICAgICAgICAgICAgICAgIGNhc2UgJ2FzYyc6IHJldHVybiAoZGF0ZUEgPD0gZGF0ZUIpID8gMSA6IDA7IGJyZWFrXG4gICAgICAgICAgICAgICAgZGVmYXVsdDogcmV0dXJuIDBcbiAgICAgICAgICAgIH1cbiAgICAgICAgfWVsc2V7XG4gICAgICAgICAgICByZXR1cm4gMFxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIGFwbGljYSBlbCBmaWx0cm8gZW4gbGEgdmlzdGEuIFxuICAgICAqL1xuICAgIGFwcGx5RmlsdGVyc0luVmlldyA9ICgpID0+IHtcbiAgICAgICBcbiAgICAgICAgaWYgKHRoaXMuZmlsdGVySW5WaWV3Py5ub1VybCkge1xuICAgICAgICAgICAgdGhpcy5wcm9kdWN0cyA9IHRoaXMucHJvZHVjdHMuc29ydCgoYSwgYikgPT4gdGhpcy5zb3J0UHJvZHVjdHMoYSxiLHRoaXMuZmlsdGVySW5WaWV3LnZhbHVlKSlcbiAgICAgICAgICAgIHRoaXMubG9hZGluZyA9ZmFsc2VcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldFNwZWNpZmljRmlsdGVycyA9IChmaWx0ZXJzOiBGaWx0ZXJbXSwgdHlwZXM6IEZpbHRlclR5cGVbXSk6IEZpbHRlcltdID0+IHtcbiAgICAgICAgbGV0IHJlc3VsdCA9IFtdO1xuICAgICAgICB0eXBlcy5mb3JFYWNoKHR5cGUgPT4ge1xuICAgICAgICAgICAgbGV0IHJlc3VsdF9maWx0ZXIgPSBmaWx0ZXJzLmZpbmQoZmlsdGVyID0+IGZpbHRlci50eXBlKCkgPT0gdHlwZSk7XG4gICAgICAgICAgICBpZiAocmVzdWx0X2ZpbHRlcikgcmVzdWx0LnB1c2gocmVzdWx0X2ZpbHRlcik7XG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICBvblNjcm9sbCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICAgICAgaWYgKCF0aGlzLnByb2R1Y3RzU2VydmljZS5pc1dhaXRpbmcoKSAmJiAhdGhpcy5wcm9kdWN0c1NlcnZpY2UuZ2V0TmV4dCgpKSB7XG4gICAgICAgICAgICB0aGlzLmZpbmlzaGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgYXJlUHJvZHVjdHMgPSAoKSA9PiB0aGlzLnByb2R1Y3RzLmxlbmd0aCA+IDA7XG4gICAgaXNXYWl0aW5nID0gKCkgPT4gdGhpcy5wcm9kdWN0c1NlcnZpY2UuaXNXYWl0aW5nKCk7XG4gICAgc2V0RmluaXNoZWQgPSAoKSA9PiB0aGlzLmZpbmlzaGVkID0gdHJ1ZTtcblxuXG4gICAgY2hhbmdlRmlsdGVyID0gKGUpID0+IHtcbiAgICAgICAgaWYgKCF0aGlzLmlzQ29sbGVjdGlvbikge1xuICAgICAgICAgICAgdGhpcy5pc0NvbGxlY3Rpb24gPSB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgYWRkQWxsUHJvZHVjdG9zVG9DYXJ0ID0gKHByb2R1Y3RzID0gbnVsbCkgPT4ge1xuICAgICAgICBsZXQgaXRlbXMgPSBbXTtcbiAgICAgICAgKHByb2R1Y3RzIHx8IHRoaXMucHJvZHVjdHMpLm1hcChwcm9kID0+IHByb2QucHJvZHVjdFdpdGhVbmlxdWVWYXJpYW50Lm1hcChwID0+IGl0ZW1zLnB1c2gocCkpKVxuICAgICAgICBpdGVtcyA9IGl0ZW1zLmZpbHRlcihwcm9kID0+IHByb2QucHJvZHVjdFRvQ2FydEl0ZW0pLm1hcChwcm9kID0+IHByb2QucHJvZHVjdFRvQ2FydEl0ZW0gKVxuICAgICAgICBpdGVtcz8ubGVuZ3RoICYmIHRoaXMuY2FydFNlcnZpY2UuYWRkQWxsVG9DYXJ0KGl0ZW1zKVxuICAgIH1cblxuICAgIGdldE9iamVjdFdpdGhWYXJpYW50ID0gKCk6IFBhcmFtc1Byb2R1Y3RzV2l0aFVuaXF1ZVZhcmlhbnQgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jb25zdHMuZ2V0UGFyYW1zUHJvZHVjdHNXaXRoVW5pcXVlVmFyaWFudCgpXG4gICAgfSBcblxufVxuIl19
|
|
294
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdGlvbi1lYy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZy1lYXN5Y29tbWVyY2UvIiwic291cmNlcyI6WyJsaWIvZWMtY29tcG9uZW50L2NvbGxlY3Rpb24tZWMvY29sbGVjdGlvbi1lYy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQWdDLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFakQsaUdBQWlHO0FBQ2pHLE9BQU8sRUFBRSxhQUFhLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUVqRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFJOUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDcEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzFELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDaEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQVEzRTtJQUEyQyx5Q0FBZTtJQXNCdEQsK0JBQW1CLGVBQWdDLEVBQ3JDLFNBQTRCLEVBQzVCLFdBQTJCLEVBQzNCLGNBQThCLEVBQ2pDLFdBQXdCLEVBQ3ZCLGdCQUFr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REFBTTtJQUNMO1FBQVIsS0FBSyxFQUFFO3dEQUFPO0lBQ047UUFBUixLQUFLLEVBQUU7NEVBQTRDO0lBQzNDO1FBQVIsS0FBSyxFQUFFO2lFQUF3QztJQXBCdkMscUJBQXFCO1FBTGpDLFNBQVMsQ0FBQztZQUNQLFFBQVEsRUFBRSxtQkFBbUI7WUFDN0IsNlJBQTZDOztTQUVoRCxDQUFDO09BQ1cscUJBQXFCLENBeU5qQztJQUFELDRCQUFDO0NBQUEsQUF6TkQsQ0FBMkMsZUFBZSxHQXlOekQ7U0F6TlkscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2VvU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3Nlby5zZXJ2aWNlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEZpbHRlckVsZW1lbnQgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2ZpbHRlcic7XG4vLyBpbXBvcnQgeyBDb25zdGFudHMsIEZpbHRlciwgT3B0aW9uc1NlcnZpY2UsIFByb2R1Y3QsIFByb2R1Y3RzU2VydmljZSB9IGZyb20gJ25nLWVhc3ljb21tZXJjZSc7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IENvbXBvbmVudEhlbHBlciB9IGZyb20gJy4uLy4uL2NsYXNzZXMvY29tcG9uZW50LWhlbHBlcic7XG5pbXBvcnQgeyBGaWx0ZXIgfSBmcm9tICcuLi8uLi9jbGFzc2VzL2ZpbHRlcnMvRmlsdGVyJztcbmltcG9ydCB7IENvbnN0YW50cyB9IGZyb20gJy4uLy4uL2NvcmUuY29uc3RzJztcbmltcG9ydCB7IERlZmF1bHRGaWx0ZXIsIEZpbHRlckNvbmZpZywgRmlsdGVyVHlwZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvZmlsdGVyJztcbmltcG9ydCB7IFBhcmFtc1Byb2R1Y3RzV2l0aFVuaXF1ZVZhcmlhbnQgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL3BhcmFtc0ludGVyZmFjZXMvcGFyYW1zUHJvZHVjdHNXaXRoVW5pcXVlVmFyaWFudCc7XG5pbXBvcnQgeyBQcm9kdWN0IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9wcm9kdWN0JztcbmltcG9ydCB7IEFuYWx5dGljc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9hbmFseXRpY3Muc2VydmljZSc7XG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2F1dGguc2VydmljZSc7XG5pbXBvcnQgeyBDYXJ0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2NhcnQuc2VydmljZSc7XG5pbXBvcnQgeyBGaWx0ZXJzU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2ZpbHRlcnMuc2VydmljZSc7XG5pbXBvcnQgeyBPcHRpb25zU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL29wdGlvbnMuc2VydmljZSc7XG5pbXBvcnQgeyBQYXJhbWV0ZXJzU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3BhcmFtZXRlcnMuc2VydmljZSc7XG5pbXBvcnQgeyBQcm9kdWN0c1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9wcm9kdWN0cy9wcm9kdWN0cy5zZXJ2aWNlJztcblxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FwcC1jb2xsZWN0aW9uLWVjJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vY29sbGVjdGlvbi1lYy5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vY29sbGVjdGlvbi1lYy5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIENvbGxlY3Rpb25FY0NvbXBvbmVudCBleHRlbmRzIENvbXBvbmVudEhlbHBlciBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgICBwdWJsaWMgZmlsdGVyczogRmlsdGVyW10gPSBbXTtcbiAgICBwdWJsaWMgZmlsdGVyc190b3A6IEZpbHRlcltdO1xuICAgIHByaXZhdGUgZGVmYXVsdEZpbHRlcnM6IERlZmF1bHRGaWx0ZXJbXTtcbiAgICBwcml2YXRlIGZpbHRlcnNDb25maWc6IEZpbHRlckNvbmZpZyA9IHtmaWx0ZXJzOltdfTtcbiAgICAvLyBwdWJsaWMgb3B0aW9uc0ZpbHRlcnM6IFsnYWxsJ107XG4gICAgcHVibGljIHByb2R1Y3RzOiBQcm9kdWN0W107XG4gICAgcHVibGljIGZpbmlzaGVkID0gZmFsc2U7XG4gICAgcHJvdGVjdGVkIHN1c2NyaXBjaW9uOiBTdWJzY3JpcHRpb247XG4gICAgcHVibGljIGxvYWRpbmcgPSB0cnVlO1xuICAgIHB1YmxpYyBicmVhZGNydW1iOiBzdHJpbmdbXSA9IFtdXG4gICAgcHVibGljIGlzQ29sbGVjdGlvbiA9IHRydWU7XG4gICAgcHVibGljIHBhcmFtczogYW55O1xuXG4gICAgcHVibGljIGZpbHRlckluVmlldzpGaWx0ZXJFbGVtZW50O1xuXG4gICAgQElucHV0KCkgdHlwZTtcbiAgICBASW5wdXQoKSB2YWx1ZTtcbiAgICBASW5wdXQoKSBwcm9kdWN0c1dpdGhVbmlxdWVWYXJpYW50OiBib29sZWFuID0gZmFsc2U7XG4gICAgQElucHV0KCkgb3B0aW9uc0ZpbHRlcnM6IEZpbHRlclR5cGVbXSA9IFsnYWxsJ107XG5cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgcHJvZHVjdHNTZXJ2aWNlOiBQcm9kdWN0c1NlcnZpY2UsXG4gICAgICAgIHByb3RlY3RlZCBwYXJhbXNTcnY6IFBhcmFtZXRlcnNTZXJ2aWNlLFxuICAgICAgICBwcm90ZWN0ZWQgYWN0aXZlUm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgICAgICBwcm90ZWN0ZWQgb3B0aW9uc1NlcnZpY2U6IE9wdGlvbnNTZXJ2aWNlLFxuICAgICAgICBwdWJsaWMgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGFuYWx5dGljc1NlcnZpY2U6IEFuYWx5dGljc1NlcnZpY2UsXG4gICAgICAgIHB1YmxpYyBjYXJ0U2VydmljZTogQ2FydFNlcnZpY2UsXG4gICAgICAgIHB1YmxpYyBjb25zdHM6IENvbnN0YW50cyxcbiAgICAgICAgcHVibGljIGZpbHRlcnNTZXJ2aWNlOiBGaWx0ZXJzU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBzZW86IFNlb1NlcnZpY2UpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5wYXJhbXNTcnYucGFyYW1ldGVycy5zdWJzY3JpYmUocGFyYW0gPT4gdGhpcy5wYXJhbXMgPSBwYXJhbSlcbiAgICAgICAgdGhpcy5kZWZhdWx0RmlsdGVycyA9IHRoaXMuY29uc3RzLmdldERlZmF1bHRGaWx0ZXJzKClcbiAgICAgICAgdGhpcy5maWx0ZXJzQ29uZmlnLmZpbHRlcnMgPSB0aGlzLmNvbnN0cy5nZXRGaWx0ZXJDb25maWcoKVxuICAgICAgICB0aGlzLnByb2R1Y3RzU2VydmljZS5maWx0ZXJzSW5WaWV3JC5zdWJzY3JpYmUoIHJlcyA9PiB0aGlzLmZpbHRlckluVmlldyA9IHJlcylcbiAgICAgICAgdGhpcy5lY09uQ29uc3RydWN0KClcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgd2luZG93LnNjcm9sbCgwLCAwKTtcbiAgICAgICAgdGhpcy5wcm9kdWN0cyA9IFtdO1xuICAgICAgICB0aGlzLmVjT25Jbml0KClcbiAgICAgICAgdGhpcy5nZXRQcm9kdWN0c0FuZFN1YnNjcmliZSgpO1xuICAgIH1cbiAgICBnZXRQcm9kdWN0c0FuZFN1YnNjcmliZSgpOiB2b2lkIHtcbiAgICAgICAgY29tYmluZUxhdGVzdChbdGhpcy5hY3RpdmVSb3V0ZS5wYXJhbXMsIHRoaXMub3B0aW9uc1NlcnZpY2UucmVhZHksIHRoaXMuYWN0aXZlUm91dGUucXVlcnlQYXJhbXNdKS5zdWJzY3JpYmUoKFtwYXJhbXMsIHJlYWR5LCBxdWVyeVBhcmFtc10pID0+IHtcbiAgICAgICAgICAgIGlmIChyZWFkeS5yZWFkeUFsbCkge1xuICAgICAgICAgICAgICAgIGxldCBjYW1iaW8gPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB0aGlzLnByb2R1Y3RzID0gW107XG4gICAgICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBpZiAoIXBhcmFtc1sndHlwZSddIHx8ICFwYXJhbXNbJ3ZhbHVlJ10pIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9kdWN0c1NlcnZpY2UuZ2V0UHJvZHVjdHNGb3JGaWx0ZXIoeyBsYXRlc3Q6IHRydWUsIGxpbWl0OiAxMCB9LCB0aGlzLm9wdGlvbnNGaWx0ZXJzLCBxdWVyeVBhcmFtcy5zZWFyY2gsIHRoaXMuZGVmYXVsdEZpbHRlcnMpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9kdWN0c1NlcnZpY2UuZ2V0UHJvZHVjdHNGb3JGaWx0ZXIoeyB0eXBlOiBwYXJhbXMudHlwZSwgdmFsdWU6IHBhcmFtcy52YWx1ZSB9LCB0aGlzLm9wdGlvbnNGaWx0ZXJzLCBxdWVyeVBhcmFtcy5zZWFyY2gsICB0aGlzLmRlZmF1bHRGaWx0ZXJzKTtcbiAgICAgICAgICAgICAgICAgICAgY2FtYmlvID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50eXBlID0gcGFyYW1zWyd0eXBlJ107XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudmFsdWUgPSBwYXJhbXNbJ3ZhbHVlJ107XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRyeSB7IHRoaXMuc3VzY3JpcGNpb24udW5zdWJzY3JpYmUoKTsgfSBjYXRjaCAoZSkgeyB9O1xuICAgICAgICAgICAgICAgIHRoaXMuc3VzY3JpcGNpb24gPSB0aGlzLnByb2R1Y3RzU2VydmljZS5wcm9kdWN0cyQuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICAgICAgICByZXMgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzLmxlbmd0aCA9PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9kdWN0cyA9IFtdO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmluaXNoZWQgPSB0aGlzLnByb2R1Y3RzU2VydmljZS5pc0ZpbmlzaGVkKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnByb2R1Y3RzV2l0aFVuaXF1ZVZhcmlhbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNhbWJpbykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9kdWN0cyA9IHRoaXMucHJvZHVjdHNTZXJ2aWNlLmdldFByb2R1Y3RzV2l0aFVuaXF1ZVZhcmlhbnQocmVzLCB0aGlzLmdldE9iamVjdFdpdGhWYXJpYW50KCkgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYXBwbHlGaWx0ZXJzSW5WaWV3KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbWJpbyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzID0gdGhpcy5wcm9kdWN0c1NlcnZpY2UuZ2V0UHJvZHVjdHNXaXRoVW5pcXVlVmFyaWFudChyZXMsIHRoaXMuZ2V0T2JqZWN0V2l0aFZhcmlhbnQoKSApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9kdWN0cy5wdXNoKC4uLnJlcylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYXBwbHlGaWx0ZXJzSW5WaWV3KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNhbWJpbykgeyBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJvZHVjdHMgPSByZXM7IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hcHBseUZpbHRlcnNJblZpZXcoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbWJpbyA9IGZhbHNlOyBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJvZHVjdHMucHVzaCguLi5yZXMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hcHBseUZpbHRlcnNJblZpZXcoKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hbmFseXRpY3NTZXJ2aWNlLmNhbGxFdmVudCgndmlld19pdGVtX2xpc3QnLCB7IHByb2R1Y3RzOiB0aGlzLnByb2R1Y3RzLCBpdGVtX2xpc3RfbmFtZTogJ0NvbGxlY3Rpb24nLCBpdGVtX2xpc3RfaWQ6IDAgfSlcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhpcy5wcm9kdWN0c1NlcnZpY2UuZmlsdGVycyQuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYnJlYWRjcnVtYiA9IHRoaXMub3B0aW9uc1NlcnZpY2UuZ2V0QnJlYWRjcnVtYkJ5RmlsdGVycyhyZXMpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZpbHRlcnMgPSB0aGlzLmdldFNwZWNpZmljRmlsdGVycyhyZXMsIHRoaXMuZmlsdGVyc0NvbmZpZy5maWx0ZXJzKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5maWx0ZXJzX3RvcCA9IHRoaXMuZ2V0U3BlY2lmaWNGaWx0ZXJzKHJlcywgWydzb3J0J10pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZUNvbGxlY3Rpb25TZW8oKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGlzLnByb2R1Y3RzU2VydmljZS5maW5pc2hlZCgpLnN1YnNjcmliZShyZXMgPT4gdGhpcy5maW5pc2hlZCA9IHJlcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFJlYWxpemEgdW4gc29ydCBkZSBwcm9kdWN0b3MgcG9yIGVsIGNhbXBvIGRhdGVDcmVhdGUgZGUgbGEgdmFyaWFudGVcbiAgICAgKiBAcGFyYW0gYSBQcm9kdWN0byBhXG4gICAgICogQHBhcmFtIGIgUHJvZHVjdG8gYlxuICAgICAqIEBwYXJhbSB0eXBlIHNpIGVzIGBhc2NgIHwgYGRlc2NgXG4gICAgICogQHJldHVybnMge251bWJlcn0gKioxKiogcGFyYSBgdHJ1ZWAgfCAqKjAqKiBwYXJhIGBmYWxzZWBcbiAgICAgKi9cbiAgICBzb3J0UHJvZHVjdHMgPSAoYTphbnksIGI6YW55LCB0eXBlOnN0cmluZz0nYXNjJykgPT4ge1xuICAgICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgICAgICBsZXQgdG9Db21wYXJlQSA9IGEudmFyaWFudHMgJiYgYS52YXJpYW50cy5sZW5ndGggPiAwID8gYS52YXJpYW50c1swXVsnZGF0ZUNyZWF0ZSddIDogbnVsbDtcbiAgICAgICAgbGV0IHRvQ29tcGFyZUIgPSBiLnZhcmlhbnRzICYmIGIudmFyaWFudHMubGVuZ3RoID4gMCA/IGIudmFyaWFudHNbMF1bJ2RhdGVDcmVhdGUnXSA6IG51bGw7XG5cbiAgICAgICAgaWYodG9Db21wYXJlQSAmJiB0b0NvbXBhcmVCKSB7XG4gICAgICAgICAgICBsZXQgZGF0ZUEgPSBuZXcgRGF0ZSh0b0NvbXBhcmVBKTtcbiAgICAgICAgICAgIGxldCBkYXRlQiA9IG5ldyBEYXRlKHRvQ29tcGFyZUIpO1xuXG4gICAgICAgICAgICBzd2l0Y2godHlwZSl7XG4gICAgICAgICAgICAgICAgY2FzZSAnZGVzYyc6IHJldHVybiAoZGF0ZUEgPj0gZGF0ZUIpID8gMSA6IDA7IGJyZWFrXG4gICAgICAgICAgICAgICAgY2FzZSAnYXNjJzogcmV0dXJuIChkYXRlQSA8PSBkYXRlQikgPyAxIDogMDsgYnJlYWtcbiAgICAgICAgICAgICAgICBkZWZhdWx0OiByZXR1cm4gMFxuICAgICAgICAgICAgfVxuICAgICAgICB9ZWxzZXtcbiAgICAgICAgICAgIHJldHVybiAwXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gYXBsaWNhIGVsIGZpbHRybyBlbiBsYSB2aXN0YS4gXG4gICAgICovXG4gICAgYXBwbHlGaWx0ZXJzSW5WaWV3ID0gKCkgPT4ge1xuICAgICAgIFxuICAgICAgICBpZiAodGhpcy5maWx0ZXJJblZpZXc/Lm5vVXJsKSB7XG4gICAgICAgICAgICB0aGlzLnByb2R1Y3RzID0gdGhpcy5wcm9kdWN0cy5zb3J0KChhLCBiKSA9PiB0aGlzLnNvcnRQcm9kdWN0cyhhLGIsdGhpcy5maWx0ZXJJblZpZXcudmFsdWUpKVxuICAgICAgICAgICAgdGhpcy5sb2FkaW5nID1mYWxzZVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0U3BlY2lmaWNGaWx0ZXJzID0gKGZpbHRlcnM6IEZpbHRlcltdLCB0eXBlczogRmlsdGVyVHlwZVtdKTogRmlsdGVyW10gPT4ge1xuICAgICAgICBsZXQgcmVzdWx0ID0gW107XG4gICAgICAgIHR5cGVzLmZvckVhY2godHlwZSA9PiB7XG4gICAgICAgICAgICBsZXQgcmVzdWx0X2ZpbHRlciA9IGZpbHRlcnMuZmluZChmaWx0ZXIgPT4gZmlsdGVyLnR5cGUoKSA9PSB0eXBlKTtcbiAgICAgICAgICAgIGlmIChyZXN1bHRfZmlsdGVyKSByZXN1bHQucHVzaChyZXN1bHRfZmlsdGVyKTtcbiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIG9uU2Nyb2xsKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgICAgICBpZiAoIXRoaXMucHJvZHVjdHNTZXJ2aWNlLmlzV2FpdGluZygpICYmICF0aGlzLnByb2R1Y3RzU2VydmljZS5nZXROZXh0KCkpIHtcbiAgICAgICAgICAgIHRoaXMuZmluaXNoZWQgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBhcmVQcm9kdWN0cyA9ICgpID0+IHRoaXMucHJvZHVjdHMubGVuZ3RoID4gMDtcbiAgICBpc1dhaXRpbmcgPSAoKSA9PiB0aGlzLnByb2R1Y3RzU2VydmljZS5pc1dhaXRpbmcoKTtcbiAgICBzZXRGaW5pc2hlZCA9ICgpID0+IHRoaXMuZmluaXNoZWQgPSB0cnVlO1xuXG5cbiAgICBjaGFuZ2VGaWx0ZXIgPSAoZSkgPT4ge1xuICAgICAgICBpZiAoIXRoaXMuaXNDb2xsZWN0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLmlzQ29sbGVjdGlvbiA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBhZGRBbGxQcm9kdWN0b3NUb0NhcnQgPSAocHJvZHVjdHMgPSBudWxsKSA9PiB7XG4gICAgICAgIGxldCBpdGVtcyA9IFtdO1xuICAgICAgICAocHJvZHVjdHMgfHwgdGhpcy5wcm9kdWN0cykubWFwKHByb2QgPT4gcHJvZC5wcm9kdWN0V2l0aFVuaXF1ZVZhcmlhbnQubWFwKHAgPT4gaXRlbXMucHVzaChwKSkpXG4gICAgICAgIGl0ZW1zID0gaXRlbXMuZmlsdGVyKHByb2QgPT4gcHJvZC5wcm9kdWN0VG9DYXJ0SXRlbSkubWFwKHByb2QgPT4gcHJvZC5wcm9kdWN0VG9DYXJ0SXRlbSApXG4gICAgICAgIGl0ZW1zPy5sZW5ndGggJiYgdGhpcy5jYXJ0U2VydmljZS5hZGRBbGxUb0NhcnQoaXRlbXMpXG4gICAgfVxuXG4gICAgZ2V0T2JqZWN0V2l0aFZhcmlhbnQgPSAoKTogUGFyYW1zUHJvZHVjdHNXaXRoVW5pcXVlVmFyaWFudCA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbnN0cy5nZXRQYXJhbXNQcm9kdWN0c1dpdGhVbmlxdWVWYXJpYW50KClcbiAgICB9IFxuXG4gICAgcHJpdmF0ZSBub3JtYWxpemVTZW9CcmVhZGNydW1iVGl0bGUgPSAodmFsdWU6IGFueSk6IHN0cmluZyA9PiB7XG4gICAgICAgIGlmICghdmFsdWUpIHtcbiAgICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICByZXR1cm4gdmFsdWUudHJpbSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuICh2YWx1ZT8udGl0bGUgPz8gdmFsdWU/Lm5hbWUgPz8gdmFsdWU/LmxhYmVsID8/ICcnKS50b1N0cmluZygpLnRyaW0oKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZUNvbGxlY3Rpb25TZW8gPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHNpdGVOYW1lID0gdGhpcy5zZW8uZ2V0U2l0ZU5hbWUoKTtcbiAgICAgICAgY29uc3QgYnJlYWRjcnVtYlRpdGxlID0gdGhpcy5ub3JtYWxpemVTZW9CcmVhZGNydW1iVGl0bGUodGhpcy5icmVhZGNydW1iPy5sZW5ndGggPyB0aGlzLmJyZWFkY3J1bWJbdGhpcy5icmVhZGNydW1iLmxlbmd0aCAtIDFdIDogbnVsbCk7XG4gICAgICAgIGNvbnN0IHNlYXJjaFRpdGxlID0gdHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgPyAobmV3IFVSTFNlYXJjaFBhcmFtcyh3aW5kb3cubG9jYXRpb24uc2VhcmNoKS5nZXQoJ3NlYXJjaCcpIHx8ICcnKS50cmltKCkgOiAnJztcbiAgICAgICAgY29uc3QgdGl0bGVQcmVmaXggPSBicmVhZGNydW1iVGl0bGUgfHwgKHNlYXJjaFRpdGxlID8gYFJlc3VsdGFkb3MgcGFyYSBcIiR7c2VhcmNoVGl0bGV9XCJgIDogJ1Byb2R1Y3RvcycpO1xuICAgICAgICBjb25zdCBkZXNjcmlwdGlvbiA9IGJyZWFkY3J1bWJUaXRsZVxuICAgICAgICAgICAgPyBgQ2F0w6Fsb2dvIGRlICR7YnJlYWRjcnVtYlRpdGxlLnRvTG93ZXJDYXNlKCl9IGVuICR7c2l0ZU5hbWV9LmBcbiAgICAgICAgICAgIDogKHNlYXJjaFRpdGxlXG4gICAgICAgICAgICAgICAgPyBgTGlzdGFkbyBkZSBwcm9kdWN0b3MgcGFyYSBsYSBiw7pzcXVlZGEgXCIke3NlYXJjaFRpdGxlfVwiIGVuICR7c2l0ZU5hbWV9LmBcbiAgICAgICAgICAgICAgICA6IGBDYXTDoWxvZ28gZGUgcHJvZHVjdG9zIGRlICR7c2l0ZU5hbWV9LmApO1xuXG4gICAgICAgIHRoaXMuc2VvLnNldFRpdGxlKGAke3RpdGxlUHJlZml4fSB8ICR7c2l0ZU5hbWV9YCk7XG4gICAgICAgIHRoaXMuc2VvLnNldERlc2NyaXB0aW9uKGRlc2NyaXB0aW9uKTtcbiAgICAgICAgdGhpcy5zZW8uc2V0T2dUeXBlKCd3ZWJzaXRlJyk7XG4gICAgICAgIHRoaXMuc2VvLnNldFJvYm90cygnaW5kZXgsIGZvbGxvdycpO1xuXG4gICAgICAgIGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgdGhpcy5zZW8uc2V0Q2Fub25pY2FsKHdpbmRvdy5sb2NhdGlvbi5ocmVmKTtcbiAgICAgICAgfVxuICAgIH1cblxufVxuIl19
|
|
@@ -18,27 +18,38 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
18
18
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
19
19
|
};
|
|
20
20
|
import { Component } from '@angular/core';
|
|
21
|
+
import { SeoService } from '../../services/seo.service';
|
|
21
22
|
import { ComponentHelper } from '../../classes/component-helper';
|
|
22
23
|
import { Constants } from '../../core.consts';
|
|
23
24
|
import { BlocksService } from '../../services/blocks/blocks.service';
|
|
24
25
|
var HomeEcComponent = /** @class */ (function (_super) {
|
|
25
26
|
__extends(HomeEcComponent, _super);
|
|
26
|
-
function HomeEcComponent(blocksService, consts) {
|
|
27
|
+
function HomeEcComponent(blocksService, consts, seo) {
|
|
27
28
|
var _this = _super.call(this) || this;
|
|
28
29
|
_this.blocksService = blocksService;
|
|
29
30
|
_this.consts = consts;
|
|
31
|
+
_this.seo = seo;
|
|
30
32
|
_this.getHTMLContent = function (block) { return block.translations[_this.consts.getLocale()].content; };
|
|
31
33
|
_this.noNewsletter = function (block) { return !block.code.includes('newsletter'); };
|
|
32
34
|
_this.ecOnConstruct();
|
|
33
35
|
return _this;
|
|
34
36
|
}
|
|
35
37
|
HomeEcComponent.prototype.ngOnInit = function () {
|
|
38
|
+
var siteName = this.seo.getSiteName();
|
|
39
|
+
this.seo.setTitle("Home | " + siteName);
|
|
40
|
+
this.seo.setDescription('Catálogo de productos y marcas.');
|
|
41
|
+
this.seo.setOgType('website');
|
|
42
|
+
this.seo.setRobots('index, follow');
|
|
43
|
+
if (typeof window !== 'undefined') {
|
|
44
|
+
this.seo.setCanonical(window.location.href);
|
|
45
|
+
}
|
|
36
46
|
this.blocksService.getBlocks('home');
|
|
37
47
|
this.ecOnInit();
|
|
38
48
|
};
|
|
39
49
|
HomeEcComponent.ctorParameters = function () { return [
|
|
40
50
|
{ type: BlocksService },
|
|
41
|
-
{ type: Constants }
|
|
51
|
+
{ type: Constants },
|
|
52
|
+
{ type: SeoService }
|
|
42
53
|
]; };
|
|
43
54
|
HomeEcComponent = __decorate([
|
|
44
55
|
Component({
|
|
@@ -50,4 +61,4 @@ var HomeEcComponent = /** @class */ (function (_super) {
|
|
|
50
61
|
return HomeEcComponent;
|
|
51
62
|
}(ComponentHelper));
|
|
52
63
|
export { HomeEcComponent };
|
|
53
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
64
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9tZS1lYy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZy1lYXN5Y29tbWVyY2UvIiwic291cmNlcyI6WyJsaWIvZWMtY29tcG9uZW50L2hvbWUtZWMvaG9tZS1lYy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNqRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFOUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBUXJFO0lBQXFDLG1DQUFlO0lBRS9DLHlCQUFtQixhQUE0QixFQUFZLE1BQWlCLEVBQVksR0FBZTtRQUF2RyxZQUNHLGlCQUFPLFNBRVI7UUFIaUIsbUJBQWEsR0FBYixhQUFhLENBQWU7UUFBWSxZQUFNLEdBQU4sTUFBTSxDQUFXO1FBQVksU0FBRyxHQUFILEdBQUcsQ0FBWTtRQW1Cdkcsb0JBQWMsR0FBRyxVQUFDLEtBQWEsSUFBSyxPQUFBLEtBQUssQ0FBQyxZQUFZLENBQUMsS0FBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBbkQsQ0FBbUQsQ0FBQztRQUV4RixrQkFBWSxHQUFHLFVBQUMsS0FBSyxJQUFLLE9BQUEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsRUFBbEMsQ0FBa0MsQ0FBQztRQW5CMUQsS0FBSSxDQUFDLGFBQWEsRUFBRSxDQUFBOztJQUN0QixDQUFDO0lBRUYsa0NBQVEsR0FBUjtRQUNLLElBQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDeEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsWUFBVSxRQUFVLENBQUMsQ0FBQztRQUN4QyxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO1FBQzNELElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzlCLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ3BDLElBQUksT0FBTyxNQUFNLEtBQUssV0FBVyxFQUFFO1lBQzlCLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDaEQ7UUFDRCxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN2QyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUE7SUFFbEIsQ0FBQzs7Z0JBakJpQyxhQUFhO2dCQUFvQixTQUFTO2dCQUFpQixVQUFVOztJQUYvRixlQUFlO1FBTDNCLFNBQVMsQ0FBQztZQUNOLFFBQVEsRUFBRSxhQUFhO1lBQ3ZCLGdFQUF1Qzs7U0FFM0MsQ0FBQztPQUNXLGVBQWUsQ0F3QjNCO0lBQUQsc0JBQUM7Q0FBQSxBQXhCRCxDQUFxQyxlQUFlLEdBd0JuRDtTQXhCWSxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNlb1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9zZW8uc2VydmljZSc7XG5pbXBvcnQgeyBDb21wb25lbnRIZWxwZXIgfSBmcm9tICcuLi8uLi9jbGFzc2VzL2NvbXBvbmVudC1oZWxwZXInO1xuaW1wb3J0IHsgQ29uc3RhbnRzIH0gZnJvbSAnLi4vLi4vY29yZS5jb25zdHMnO1xuaW1wb3J0IHsgSUJsb2NrIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9ibG9jayc7XG5pbXBvcnQgeyBCbG9ja3NTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvYmxvY2tzL2Jsb2Nrcy5zZXJ2aWNlJztcblxuXG5AQ29tcG9uZW50KHtcbiAgICAgc2VsZWN0b3I6ICdhcHAtaG9tZS1lYycsXG4gICAgIHRlbXBsYXRlVXJsOiAnLi9ob21lLWVjLmNvbXBvbmVudC5odG1sJyxcbiAgICAgc3R5bGVVcmxzOiBbJy4vaG9tZS1lYy5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEhvbWVFY0NvbXBvbmVudCBleHRlbmRzIENvbXBvbmVudEhlbHBlciBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgICAgY29uc3RydWN0b3IocHVibGljIGJsb2Nrc1NlcnZpY2U6IEJsb2Nrc1NlcnZpY2UsIHByb3RlY3RlZCBjb25zdHM6IENvbnN0YW50cywgcHJvdGVjdGVkIHNlbzogU2VvU2VydmljZSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLmVjT25Db25zdHJ1Y3QoKVxuICAgICAgfVxuXG4gICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICAgIGNvbnN0IHNpdGVOYW1lID0gdGhpcy5zZW8uZ2V0U2l0ZU5hbWUoKTtcbiAgICAgICAgICB0aGlzLnNlby5zZXRUaXRsZShgSG9tZSB8ICR7c2l0ZU5hbWV9YCk7XG4gICAgICAgICAgdGhpcy5zZW8uc2V0RGVzY3JpcHRpb24oJ0NhdMOhbG9nbyBkZSBwcm9kdWN0b3MgeSBtYXJjYXMuJyk7XG4gICAgICAgICAgdGhpcy5zZW8uc2V0T2dUeXBlKCd3ZWJzaXRlJyk7XG4gICAgICAgICAgdGhpcy5zZW8uc2V0Um9ib3RzKCdpbmRleCwgZm9sbG93Jyk7XG4gICAgICAgICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAgICB0aGlzLnNlby5zZXRDYW5vbmljYWwod2luZG93LmxvY2F0aW9uLmhyZWYpO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLmJsb2Nrc1NlcnZpY2UuZ2V0QmxvY2tzKCdob21lJyk7XG4gICAgICAgIHRoaXMuZWNPbkluaXQoKVxuXG4gICAgIH1cblxuICAgICBnZXRIVE1MQ29udGVudCA9IChibG9jazogSUJsb2NrKSA9PiBibG9jay50cmFuc2xhdGlvbnNbdGhpcy5jb25zdHMuZ2V0TG9jYWxlKCldLmNvbnRlbnQ7XG5cbiAgICAgbm9OZXdzbGV0dGVyID0gKGJsb2NrKSA9PiAhYmxvY2suY29kZS5pbmNsdWRlcygnbmV3c2xldHRlcicpO1xufVxuIl19
|
|
@@ -18,6 +18,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
18
18
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
19
19
|
};
|
|
20
20
|
import { Component } from '@angular/core';
|
|
21
|
+
import { SeoService } from '../../services/seo.service';
|
|
21
22
|
import { FormBuilder, FormGroup, Validators } from '@angular/forms';
|
|
22
23
|
import { ActivatedRoute, Router } from '@angular/router';
|
|
23
24
|
import { ComponentHelper } from '../../classes/component-helper';
|
|
@@ -25,13 +26,14 @@ import { AuthService } from '../../services/auth.service';
|
|
|
25
26
|
import { ToastService } from '../../utils/toast.service';
|
|
26
27
|
var PasswordResetEcComponent = /** @class */ (function (_super) {
|
|
27
28
|
__extends(PasswordResetEcComponent, _super);
|
|
28
|
-
function PasswordResetEcComponent(authService, toastr, activedRoute, router, formBuilder) {
|
|
29
|
+
function PasswordResetEcComponent(authService, toastr, activedRoute, router, formBuilder, seo) {
|
|
29
30
|
var _this = _super.call(this) || this;
|
|
30
31
|
_this.authService = authService;
|
|
31
32
|
_this.toastr = toastr;
|
|
32
33
|
_this.activedRoute = activedRoute;
|
|
33
34
|
_this.router = router;
|
|
34
35
|
_this.formBuilder = formBuilder;
|
|
36
|
+
_this.seo = seo;
|
|
35
37
|
_this.email = "";
|
|
36
38
|
_this.loading = false;
|
|
37
39
|
_this.ready = false;
|
|
@@ -93,6 +95,14 @@ var PasswordResetEcComponent = /** @class */ (function (_super) {
|
|
|
93
95
|
PasswordResetEcComponent.prototype.ngOnInit = function () {
|
|
94
96
|
this.token = this.activedRoute.snapshot.queryParams.token;
|
|
95
97
|
!this.token && this.router.navigateByUrl('/');
|
|
98
|
+
var siteName = this.seo.getSiteName();
|
|
99
|
+
this.seo.setTitle("Restablecer contrase\u00F1a | " + siteName);
|
|
100
|
+
this.seo.setDescription("Defin\u00ED una nueva contrase\u00F1a para tu cuenta de " + siteName + ".");
|
|
101
|
+
this.seo.setOgType('website');
|
|
102
|
+
this.seo.setRobots('noindex, nofollow');
|
|
103
|
+
if (typeof window !== 'undefined') {
|
|
104
|
+
this.seo.setCanonical(window.location.href);
|
|
105
|
+
}
|
|
96
106
|
this.formGroup = this.formBuilder.group({
|
|
97
107
|
first: ['', Validators.required],
|
|
98
108
|
second: ['', Validators.required]
|
|
@@ -104,7 +114,8 @@ var PasswordResetEcComponent = /** @class */ (function (_super) {
|
|
|
104
114
|
{ type: ToastService },
|
|
105
115
|
{ type: ActivatedRoute },
|
|
106
116
|
{ type: Router },
|
|
107
|
-
{ type: FormBuilder }
|
|
117
|
+
{ type: FormBuilder },
|
|
118
|
+
{ type: SeoService }
|
|
108
119
|
]; };
|
|
109
120
|
PasswordResetEcComponent = __decorate([
|
|
110
121
|
Component({
|
|
@@ -116,4 +127,4 @@ var PasswordResetEcComponent = /** @class */ (function (_super) {
|
|
|
116
127
|
return PasswordResetEcComponent;
|
|
117
128
|
}(ComponentHelper));
|
|
118
129
|
export { PasswordResetEcComponent };
|
|
119
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFzc3dvcmQtcmVzZXQtZWMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmctZWFzeWNvbW1lcmNlLyIsInNvdXJjZXMiOlsibGliL2VjLWNvbXBvbmVudC9wYXNzd29yZC1yZXNldC1lYy9wYXNzd29yZC1yZXNldC1lYy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDakUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzFELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQU96RDtJQUE4Qyw0Q0FBZTtJQVF4RCxrQ0FBc0IsV0FBd0IsRUFBWSxNQUFvQixFQUFZLFlBQTRCLEVBQzFHLE1BQWMsRUFBWSxXQUF3QjtRQUQ5RCxZQUVPLGlCQUFPLFNBRVI7UUFKZ0IsaUJBQVcsR0FBWCxXQUFXLENBQWE7UUFBWSxZQUFNLEdBQU4sTUFBTSxDQUFjO1FBQVksa0JBQVksR0FBWixZQUFZLENBQWdCO1FBQzFHLFlBQU0sR0FBTixNQUFNLENBQVE7UUFBWSxpQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQVB2RCxXQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ1gsYUFBTyxHQUFHLEtBQUssQ0FBQztRQUNoQixXQUFLLEdBQUcsS0FBSyxDQUFDO1FBcUJyQixxQkFBZSxHQUFHLFVBQUMsS0FBSztZQUNuQixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDdkIsSUFBSSxLQUFJLENBQUMsV0FBVyxFQUFFO2dC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O1FBQ3JDLENBQUMsQ0FBQTtRQWpFTyxLQUFJLENBQUMsYUFBYSxFQUFFLENBQUE7O0lBQ3RCLENBQUM7SUFFTiwyQ0FBUSxHQUFSO1FBQ0ssSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDO1FBQzFELENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM5QyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDO1lBQ25DLEtBQUssRUFBRSxDQUFDLEVBQUUsRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDO1lBQ2hDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDO1NBQ3JDLENBQUMsQ0FBQTtRQUNKLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQTtJQUVsQixDQUFDOztnQkFma0MsV0FBVztnQkFBb0IsWUFBWTtnQkFBMEIsY0FBYztnQkFDbEcsTUFBTTtnQkFBeUIsV0FBVzs7SUFUdEQsd0JBQXdCO1FBTHBDLFNBQVMsQ0FBQztZQUNOLFFBQVEsRUFBRSx1QkFBdUI7WUFDakMsazNGQUErQzs7U0FFbkQsQ0FBQztPQUNXLHdCQUF3QixDQTZFcEM7SUFBRCwrQkFBQztDQUFBLEFBN0VELENBQThDLGVBQWUsR0E2RTVEO1NBN0VZLHdCQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBDb21wb25lbnRIZWxwZXIgfSBmcm9tICcuLi8uLi9jbGFzc2VzL2NvbXBvbmVudC1oZWxwZXInO1xuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHsgVG9hc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdXRpbHMvdG9hc3Quc2VydmljZSc7XG5kZWNsYXJlIHZhciAkOmFueTtcbkBDb21wb25lbnQoe1xuICAgICBzZWxlY3RvcjogJ2FwcC1wYXNzd29yZC1yZXNldC1lYycsXG4gICAgIHRlbXBsYXRlVXJsOiAncGFzc3dvcmQtcmVzZXQtZWMuY29tcG9uZW50Lmh0bWwnLFxuICAgICBzdHlsZVVybHM6IFsncGFzc3dvcmQtcmVzZXQtZWMuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBQYXNzd29yZFJlc2V0RWNDb21wb25lbnQgZXh0ZW5kcyBDb21wb25lbnRIZWxwZXIgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gICAgIHB1YmxpYyBlbWFpbCA9IFwiXCI7XG4gICAgIHB1YmxpYyBsb2FkaW5nID0gZmFsc2U7XG4gICAgIHB1YmxpYyByZWFkeSA9IGZhbHNlO1xuICAgICBwcm90ZWN0ZWQgdG9rZW47XG4gICAgIHB1YmxpYyBmb3JtR3JvdXA6IEZvcm1Hcm91cDtcblxuICAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLCBwcm90ZWN0ZWQgdG9hc3RyOiBUb2FzdFNlcnZpY2UsIHByb3RlY3RlZCBhY3RpdmVkUm91dGU6IEFjdGl2YXRlZFJvdXRlLCBcbiAgICAgICAgICBwdWJsaWMgcm91dGVyOiBSb3V0ZXIsIHByb3RlY3RlZCBmb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIpIHtcbiAgICAgICAgICAgIHN1cGVyKCk7XG4gICAgICAgICAgICB0aGlzLmVjT25Db25zdHJ1Y3QoKVxuICAgICAgICAgIH1cblxuICAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgICB0aGlzLnRva2VuID0gdGhpcy5hY3RpdmVkUm91dGUuc25hcHNob3QucXVlcnlQYXJhbXMudG9rZW47XG4gICAgICAgICAgIXRoaXMudG9rZW4gJiYgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCgnLycpO1xuICAgICAgICAgIHRoaXMuZm9ybUdyb3VwID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XG4gICAgICAgICAgICAgICBmaXJzdDogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgICAgICAgICAgIHNlY29uZDogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXVxuICAgICAgICAgIH0pXG4gICAgICAgIHRoaXMuZWNPbkluaXQoKVxuXG4gICAgIH1cblxuICAgICBzZW5kTmV3UGFzc3dvcmQgPSAoZXZlbnQpID0+IHtcbiAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgIGlmICh0aGlzLmludmFsaWRGb3JtKCkpIHJldHVybjtcbiAgICAgICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgICAgICAgIHRoaXMuYXV0aFNlcnZpY2UucGFzc3dvcmRSZXNldCh0aGlzLmZvcm1Hcm91cC52YWx1ZS5maXJzdCwgdGhpcy50b2tlbikudG9Qcm9taXNlKClcbiAgICAgICAgICAgICAgIC50aGVuKHRoaXMucHJvY2Vzc09rKVxuICAgICAgICAgICAgICAgLmNhdGNoKHRoaXMucHJvY2Vzc0Vycm9yKTtcbiAgICAgfVxuXG4gICAgIGludmFsaWRGb3JtID0gKCkgPT4ge1xuICAgICAgICAgIGlmICh0aGlzLmZvcm1Hcm91cC52YWxpZCkge1xuICAgICAgICAgICAgICAgY29uc3QgcGFzc3dvcmRzID0gdGhpcy5mb3JtR3JvdXAudmFsdWU7XG4gICAgICAgICAgICAgICBpZiAocGFzc3dvcmRzLmZpcnN0ID09IHBhc3N3b3Jkcy5zZWNvbmQpIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgIGVsc2UgdGhpcy50b2FzdHIuc2hvdygncGFzc3dvcmQtZG9lc250LW1hdGNoJyk7XG4gICAgICAgICAgfSBlbHNlIHRoaXMudG9hc3RyLnNob3coJ2ludmFsaWQtZm9ybScpO1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICB9XG5cbiAgICAgcHJvY2Vzc09rID0gKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5yZWFkeSA9IHRydWU7XG4gICAgIH1cblxuICAgICBwcm9jZXNzRXJyb3IgPSAocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAoIXJlc3BvbnNlIHx8IHJlc3BvbnNlLmVycm9yKVxuICAgICAgICAgICAgICAgPyB0aGlzLnRvYXN0ci5zaG93KCdvcGVyYXRpb24tZXJyb3InKVxuICAgICAgICAgICAgICAgOiB0aGlzLnRvYXN0ci5zaG93KHJlc3BvbnNlLmVycm9yKTtcbiAgICAgfVxuXG4gICAgIHNlbmRUb0xvZ2luID0gKCkgPT4gdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCgnL2F1dGgvbG9naW4nKTtcblxuICAgICBzaG93UGFzc3dvcmQgPSAoKSA9PiB7XG4gICAgICAgIGlmKCQoJyNjb250cmFzZcOxYTEnKS5nZXQoMCkudHlwZSA9PSAncGFzc3dvcmQnKXtcbiAgICAgICAgICAgICQoJyNjb250cmFzZcOxYTEnKS5nZXQoMCkudHlwZSA9ICd0ZXh0J1xuICAgICAgICB9ZWxzZXtcbiAgICAgICAgICAgICQoJyNjb250cmFzZcOxYTEnKS5nZXQoMCkudHlwZSA9ICdwYXNzd29yZCdcbiAgICAgICAgfVxuXG4gICAgICAgICQoJyNzaG93MScpLnRvZ2dsZUNsYXNzKCdkLW5vbmUnKVxuICAgICAgICAkKCcjaGlkZTEnKS50b2dnbGVDbGFzcygnZC1ub25lJylcbiAgICB9XG4gICAgc2hvd1Bhc3N3b3JkMiA9ICgpID0+IHtcbiAgICAgICAgaWYoJCgnI2NvbnRyYXNlw7FhMicpLmdldCgwKS50eXBlID09ICdwYXNzd29yZCcpe1xuICAgICAgICAgICAgJCgnI2NvbnRyYXNlw7FhMicpLmdldCgwKS50eXBlID0gJ3RleHQnXG4gICAgICAgIH1lbHNle1xuICAgICAgICAgICAgJCgnI2NvbnRyYXNlw7FhMicpLmdldCgwKS50eXBlID0gJ3Bhc3N3b3JkJ1xuICAgICAgICB9XG5cbiAgICAgICAgJCgnI3Nob3cyJykudG9nZ2xlQ2xhc3MoJ2Qtbm9uZScpXG4gICAgICAgICQoJyNoaWRlMicpLnRvZ2dsZUNsYXNzKCdkLW5vbmUnKVxuICAgIH1cbn0iXX0=
|
|
130
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFzc3dvcmQtcmVzZXQtZWMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmctZWFzeWNvbW1lcmNlLyIsInNvdXJjZXMiOlsibGliL2VjLWNvbXBvbmVudC9wYXNzd29yZC1yZXNldC1lYy9wYXNzd29yZC1yZXNldC1lYy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFPekQ7SUFBOEMsNENBQWU7SUFReEQsa0NBQXNCLFdBQXdCLEVBQVksTUFBb0IsRUFBWSxZQUE0QixFQUMxRyxNQUFjLEVBQVksV0FBd0IsRUFBWSxHQUFlO1FBRHpGLFlBRU8saUJBQU8sU0FFUjtRQUpnQixpQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUFZLFlBQU0sR0FBTixNQUFNLENBQWM7UUFBWSxrQkFBWSxHQUFaLFlBQVksQ0FBZ0I7UUFDMUcsWUFBTSxHQUFOLE1BQU0sQ0FBUTtRQUFZLGlCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQVksU0FBRyxHQUFILEdBQUcsQ0FBWTtRQVBsRixXQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ1gsYUFBTyxHQUFHLEtBQUssQ0FBQztRQUNoQixXQUFLLEdBQUcsS0FBSyxDQUFDO1FBNkJyQixxQkFBZSxH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QTtJQUVsQixDQUFDOztnQkF2QmtDLFdBQVc7Z0JBQW9CLFlBQVk7Z0JBQTBCLGNBQWM7Z0JBQ2xHLE1BQU07Z0JBQXlCLFdBQVc7Z0JBQWlCLFVBQVU7O0lBVGpGLHdCQUF3QjtRQUxwQyxTQUFTLENBQUM7WUFDTixRQUFRLEVBQUUsdUJBQXVCO1lBQ2pDLGszRkFBK0M7O1NBRW5ELENBQUM7T0FDVyx3QkFBd0IsQ0FxRnBDO0lBQUQsK0JBQUM7Q0FBQSxBQXJGRCxDQUE4QyxlQUFlLEdBcUY1RDtTQXJGWSx3QkFBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2VvU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3Nlby5zZXJ2aWNlJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IENvbXBvbmVudEhlbHBlciB9IGZyb20gJy4uLy4uL2NsYXNzZXMvY29tcG9uZW50LWhlbHBlcic7XG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2F1dGguc2VydmljZSc7XG5pbXBvcnQgeyBUb2FzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi91dGlscy90b2FzdC5zZXJ2aWNlJztcbmRlY2xhcmUgdmFyICQ6YW55O1xuQENvbXBvbmVudCh7XG4gICAgIHNlbGVjdG9yOiAnYXBwLXBhc3N3b3JkLXJlc2V0LWVjJyxcbiAgICAgdGVtcGxhdGVVcmw6ICdwYXNzd29yZC1yZXNldC1lYy5jb21wb25lbnQuaHRtbCcsXG4gICAgIHN0eWxlVXJsczogWydwYXNzd29yZC1yZXNldC1lYy5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFBhc3N3b3JkUmVzZXRFY0NvbXBvbmVudCBleHRlbmRzIENvbXBvbmVudEhlbHBlciBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgICAgcHVibGljIGVtYWlsID0gXCJcIjtcbiAgICAgcHVibGljIGxvYWRpbmcgPSBmYWxzZTtcbiAgICAgcHVibGljIHJlYWR5ID0gZmFsc2U7XG4gICAgIHByb3RlY3RlZCB0b2tlbjtcbiAgICAgcHVibGljIGZvcm1Hcm91cDogRm9ybUdyb3VwO1xuXG4gICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UsIHByb3RlY3RlZCB0b2FzdHI6IFRvYXN0U2VydmljZSwgcHJvdGVjdGVkIGFjdGl2ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUsIFxuICAgICAgICAgIHB1YmxpYyByb3V0ZXI6IFJvdXRlciwgcHJvdGVjdGVkIGZvcm1CdWlsZGVyOiBGb3JtQnVpbGRlciwgcHJvdGVjdGVkIHNlbzogU2VvU2VydmljZSkge1xuICAgICAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgICAgIHRoaXMuZWNPbkNvbnN0cnVjdCgpXG4gICAgICAgICAgfVxuXG4gICAgIG5nT25Jbml0KCkge1xuICAgICAgICAgIHRoaXMudG9rZW4gPSB0aGlzLmFjdGl2ZWRSb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtcy50b2tlbjtcbiAgICAgICAgICAhdGhpcy50b2tlbiAmJiB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKCcvJyk7XG4gICAgICAgICAgY29uc3Qgc2l0ZU5hbWUgPSB0aGlzLnNlby5nZXRTaXRlTmFtZSgpO1xuICAgICAgICAgIHRoaXMuc2VvLnNldFRpdGxlKGBSZXN0YWJsZWNlciBjb250cmFzZcOxYSB8ICR7c2l0ZU5hbWV9YCk7XG4gICAgICAgICAgdGhpcy5zZW8uc2V0RGVzY3JpcHRpb24oYERlZmluw60gdW5hIG51ZXZhIGNvbnRyYXNlw7FhIHBhcmEgdHUgY3VlbnRhIGRlICR7c2l0ZU5hbWV9LmApO1xuICAgICAgICAgIHRoaXMuc2VvLnNldE9nVHlwZSgnd2Vic2l0ZScpO1xuICAgICAgICAgIHRoaXMuc2VvLnNldFJvYm90cygnbm9pbmRleCwgbm9mb2xsb3cnKTtcbiAgICAgICAgICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgIHRoaXMuc2VvLnNldENhbm9uaWNhbCh3aW5kb3cubG9jYXRpb24uaHJlZik7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuZm9ybUdyb3VwID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XG4gICAgICAgICAgICAgICBmaXJzdDogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgICAgICAgICAgIHNlY29uZDogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXVxuICAgICAgICAgIH0pXG4gICAgICAgIHRoaXMuZWNPbkluaXQoKVxuXG4gICAgIH1cblxuICAgICBzZW5kTmV3UGFzc3dvcmQgPSAoZXZlbnQpID0+IHtcbiAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgIGlmICh0aGlzLmludmFsaWRGb3JtKCkpIHJldHVybjtcbiAgICAgICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgICAgICAgIHRoaXMuYXV0aFNlcnZpY2UucGFzc3dvcmRSZXNldCh0aGlzLmZvcm1Hcm91cC52YWx1ZS5maXJzdCwgdGhpcy50b2tlbikudG9Qcm9taXNlKClcbiAgICAgICAgICAgICAgIC50aGVuKHRoaXMucHJvY2Vzc09rKVxuICAgICAgICAgICAgICAgLmNhdGNoKHRoaXMucHJvY2Vzc0Vycm9yKTtcbiAgICAgfVxuXG4gICAgIGludmFsaWRGb3JtID0gKCkgPT4ge1xuICAgICAgICAgIGlmICh0aGlzLmZvcm1Hcm91cC52YWxpZCkge1xuICAgICAgICAgICAgICAgY29uc3QgcGFzc3dvcmRzID0gdGhpcy5mb3JtR3JvdXAudmFsdWU7XG4gICAgICAgICAgICAgICBpZiAocGFzc3dvcmRzLmZpcnN0ID09IHBhc3N3b3Jkcy5zZWNvbmQpIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgIGVsc2UgdGhpcy50b2FzdHIuc2hvdygncGFzc3dvcmQtZG9lc250LW1hdGNoJyk7XG4gICAgICAgICAgfSBlbHNlIHRoaXMudG9hc3RyLnNob3coJ2ludmFsaWQtZm9ybScpO1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICB9XG5cbiAgICAgcHJvY2Vzc09rID0gKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5yZWFkeSA9IHRydWU7XG4gICAgIH1cblxuICAgICBwcm9jZXNzRXJyb3IgPSAocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAoIXJlc3BvbnNlIHx8IHJlc3BvbnNlLmVycm9yKVxuICAgICAgICAgICAgICAgPyB0aGlzLnRvYXN0ci5zaG93KCdvcGVyYXRpb24tZXJyb3InKVxuICAgICAgICAgICAgICAgOiB0aGlzLnRvYXN0ci5zaG93KHJlc3BvbnNlLmVycm9yKTtcbiAgICAgfVxuXG4gICAgIHNlbmRUb0xvZ2luID0gKCkgPT4gdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCgnL2F1dGgvbG9naW4nKTtcblxuICAgICBzaG93UGFzc3dvcmQgPSAoKSA9PiB7XG4gICAgICAgIGlmKCQoJyNjb250cmFzZcOxYTEnKS5nZXQoMCkudHlwZSA9PSAncGFzc3dvcmQnKXtcbiAgICAgICAgICAgICQoJyNjb250cmFzZcOxYTEnKS5nZXQoMCkudHlwZSA9ICd0ZXh0J1xuICAgICAgICB9ZWxzZXtcbiAgICAgICAgICAgICQoJyNjb250cmFzZcOxYTEnKS5nZXQoMCkudHlwZSA9ICdwYXNzd29yZCdcbiAgICAgICAgfVxuXG4gICAgICAgICQoJyNzaG93MScpLnRvZ2dsZUNsYXNzKCdkLW5vbmUnKVxuICAgICAgICAkKCcjaGlkZTEnKS50b2dnbGVDbGFzcygnZC1ub25lJylcbiAgICB9XG4gICAgc2hvd1Bhc3N3b3JkMiA9ICgpID0+IHtcbiAgICAgICAgaWYoJCgnI2NvbnRyYXNlw7FhMicpLmdldCgwKS50eXBlID09ICdwYXNzd29yZCcpe1xuICAgICAgICAgICAgJCgnI2NvbnRyYXNlw7FhMicpLmdldCgwKS50eXBlID0gJ3RleHQnXG4gICAgICAgIH1lbHNle1xuICAgICAgICAgICAgJCgnI2NvbnRyYXNlw7FhMicpLmdldCgwKS50eXBlID0gJ3Bhc3N3b3JkJ1xuICAgICAgICB9XG5cbiAgICAgICAgJCgnI3Nob3cyJykudG9nZ2xlQ2xhc3MoJ2Qtbm9uZScpXG4gICAgICAgICQoJyNoaWRlMicpLnRvZ2dsZUNsYXNzKCdkLW5vbmUnKVxuICAgIH1cbn0iXX0=
|
|
@@ -91,14 +91,14 @@ import { OptionsService } from '../../services/options.service';
|
|
|
91
91
|
import { ProductDetailService } from '../../services/products/product-detail.service';
|
|
92
92
|
import { ProductsService } from '../../services/products/products.service';
|
|
93
93
|
import { ToastService } from '../../utils/toast.service';
|
|
94
|
-
import {
|
|
94
|
+
import { SeoService } from '../../services/seo.service';
|
|
95
95
|
import { Injector } from '@angular/core';
|
|
96
96
|
import { ChannelConfigService } from '../../services/channel-config.service';
|
|
97
97
|
import { combineLatest } from 'rxjs';
|
|
98
98
|
import { startWith, filter as rxFilter } from 'rxjs/operators';
|
|
99
99
|
var ProductDetailEcComponent = /** @class */ (function (_super) {
|
|
100
100
|
__extends(ProductDetailEcComponent, _super);
|
|
101
|
-
function ProductDetailEcComponent(productService, consts, activedRoute, cartService, optionsService, productsService, analyticsService, router, toastrService,
|
|
101
|
+
function ProductDetailEcComponent(productService, consts, activedRoute, cartService, optionsService, productsService, analyticsService, router, toastrService, injector, seo) {
|
|
102
102
|
var _this = _super.call(this) || this;
|
|
103
103
|
_this.productService = productService;
|
|
104
104
|
_this.consts = consts;
|
|
@@ -109,8 +109,8 @@ var ProductDetailEcComponent = /** @class */ (function (_super) {
|
|
|
109
109
|
_this.analyticsService = analyticsService;
|
|
110
110
|
_this.router = router;
|
|
111
111
|
_this.toastrService = toastrService;
|
|
112
|
-
_this.meta = meta;
|
|
113
112
|
_this.injector = injector;
|
|
113
|
+
_this.seo = seo;
|
|
114
114
|
_this.show = false;
|
|
115
115
|
_this.quantity = 1;
|
|
116
116
|
_this.comments = '';
|
|
@@ -265,12 +265,17 @@ var ProductDetailEcComponent = /** @class */ (function (_super) {
|
|
|
265
265
|
_this.product = res;
|
|
266
266
|
window.scroll(0, 0);
|
|
267
267
|
_this.breadcrumb = _this.optionsService.getBreadcrumb(_this.product.category);
|
|
268
|
-
if (_this.product.name) {
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
_this.
|
|
272
|
-
_this.
|
|
273
|
-
_this.
|
|
268
|
+
if (_this.product.name && _this.seo) {
|
|
269
|
+
var siteName = _this.seo.getSiteName();
|
|
270
|
+
var description = _this.deleteHTML(_this.product.description || '');
|
|
271
|
+
_this.seo.setTitle(_this.product.name + " | " + siteName);
|
|
272
|
+
_this.seo.setDescription(description);
|
|
273
|
+
_this.seo.setOgImage(_this.consts.mediaUrl() + _this.product.picturesdefault[0]);
|
|
274
|
+
_this.seo.setOgType('product');
|
|
275
|
+
_this.seo.setRobots('index, follow');
|
|
276
|
+
if (typeof window !== 'undefined') {
|
|
277
|
+
_this.seo.setCanonical(window.location.href);
|
|
278
|
+
}
|
|
274
279
|
}
|
|
275
280
|
}
|
|
276
281
|
});
|
|
@@ -344,8 +349,8 @@ var ProductDetailEcComponent = /** @class */ (function (_super) {
|
|
|
344
349
|
{ type: AnalyticsService },
|
|
345
350
|
{ type: Router },
|
|
346
351
|
{ type: ToastService },
|
|
347
|
-
{ type:
|
|
348
|
-
{ type:
|
|
352
|
+
{ type: Injector },
|
|
353
|
+
{ type: SeoService }
|
|
349
354
|
]; };
|
|
350
355
|
__decorate([
|
|
351
356
|
ViewChild('contact')
|
|
@@ -361,4 +366,4 @@ var ProductDetailEcComponent = /** @class */ (function (_super) {
|
|
|
361
366
|
return ProductDetailEcComponent;
|
|
362
367
|
}(ComponentHelper));
|
|
363
368
|
export { ProductDetailEcComponent };
|
|
364
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1kZXRhaWwtZWMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmctZWFzeWNvbW1lcmNlLyIsInNvdXJjZXMiOlsibGliL2VjLWNvbXBvbmVudC9wcm9kdWN0LWRldGFpbC1lYy9wcm9kdWN0LWRldGFpbC1lYy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsU0FBUyxFQUFjLE1BQU0sZUFBZSxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNqRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDOUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDcEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzFELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNoRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUN0RixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDM0UsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FB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SSxDQUFDLFdBQVcsR0FBRyxPQUFBLEVBQUUsMENBQUUsZ0JBQWdCLEtBQUksSUFBSSxDQUFDO1lBQ2hELEtBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSSxDQUFDLGVBQWUsSUFBSSxLQUFJLENBQUMsV0FBVyxJQUFJLENBQUMsQ0FBQztZQUM5RCxLQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztRQUM1QixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCw4Q0FBVyxHQUFYOztRQUNJLE1BQUEsSUFBSSxDQUFDLFVBQVUsMENBQUUsV0FBVyxHQUFHO0lBQ25DLENBQUM7SUFZRCx5Q0FBTSxHQUFOO1FBQ0ksSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUE0QixDQUFDO1FBQ25ELEVBQUUsQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN4QixDQUFDOztnQkFqSDBCLG9CQUFvQjtnQkFDNUIsU0FBUztnQkFDQSxjQUFjO2dCQUNsQixXQUFXO2dCQUNSLGNBQWM7Z0JBQ2IsZUFBZTtnQkFDZCxnQkFBZ0I7Z0JBQzFCLE1BQU07Z0JBQ0ksWUFBWTtnQkFDdkIsSUFBSTtnQkFDRCxRQUFROztJQWJQO1FBQXJCLFNBQVMsQ0FBQyxTQUFTLENBQUM7NkRBQXFCO0lBdEJqQyx3QkFBd0I7UUFOcEMsU0FBUyxDQUFDO1lBQ1AsUUFBUSxFQUFFLHVCQUF1QjtZQUNqQyxZQUFpRDtZQUVqRCxTQUFTLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQzs7U0FDcEMsQ0FBQztPQUNXLHdCQUF3QixDQXVQcEM7SUFBRCwrQkFBQztDQUFBLEFBdlBELENBQThDLGVBQWUsR0F1UDVEO1NBdlBZLHdCQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBWaWV3Q2hpbGQsIEVsZW1lbnRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgZmlsdGVyIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQ29tcG9uZW50SGVscGVyIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9jb21wb25lbnQtaGVscGVyJztcbmltcG9ydCB7IENvbnN0YW50cyB9IGZyb20gJy4uLy4uL2NvcmUuY29uc3RzJztcbmltcG9ydCB7IEFuYWx5dGljc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9hbmFseXRpY3Muc2VydmljZSc7XG5pbXBvcnQgeyBDYXJ0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2NhcnQuc2VydmljZSc7XG5pbXBvcnQgeyBPcHRpb25zU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL29wdGlvbnMuc2VydmljZSc7XG5pbXBvcnQgeyBQcm9kdWN0RGV0YWlsU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3Byb2R1Y3RzL3Byb2R1Y3QtZGV0YWlsLnNlcnZpY2UnO1xuaW1wb3J0IHsgUHJvZHVjdHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcHJvZHVjdHMvcHJvZHVjdHMuc2VydmljZSc7XG5pbXBvcnQgeyBUb2FzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi91dGlscy90b2FzdC5zZXJ2aWNlJztcbmltcG9ydCB7IE1ldGEgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDaGFubmVsQ29uZmlnU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2NoYW5uZWwtY29uZmlnLnNlcnZpY2UnO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBzdGFydFdpdGgsIGZpbHRlciBhcyByeEZpbHRlciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FwcC1wcm9kdWN0LWRldGFpbC1lYycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3Byb2R1Y3QtZGV0YWlsLWVjLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9wcm9kdWN0LWRldGFpbC1lYy5jb21wb25lbnQuc2NzcyddLFxuICAgIHByb3ZpZGVyczogW1Byb2R1Y3REZXRhaWxTZXJ2aWNlXVxufSlcbmV4cG9ydCBjbGFzcyBQcm9kdWN0RGV0YWlsRWNDb21wb25lbnQgZXh0ZW5kcyBDb21wb25lbnRIZWxwZXIgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gICAgcHVibGljIHByb2R1Y3Q6IGFueTtcbiAgICBwdWJsaWMgbWVkaWFVcmw7XG4gICAgcHVibGljIHNob3cgPSBmYWxzZTtcbiAgICBwdWJsaWMgcXVhbnRpdHkgPSAxO1xuICAgIHB1YmxpYyBjb21tZW50czogc3RyaW5nID0gJyc7XG4gICAgcHVibGljIGJyZWFkY3J1bWIgPSBbXTtcbiAgICBwdWJsaWMgY2Fyb3VzZWw6IGFueTtcbiAgICBwdWJsaWMgY29kZSA9IG51bGw7XG4gICAgcHVibGljIGZvY3VzSW1hZ2U6IHN0cmluZyA9IG51bGxcbiAgICBwdWJsaWMgb3dsT3B0aW9ucyA9IHt9XG4gICAgcHVibGljIHNob3dSZXZpZXdzOiBib29sZWFuID0gZmFsc2U7XG4gICAgcHVibGljIGhpZGVQcmljZXM6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBwdWJsaWMgY3JlZGl0QWNjb3VudFNob3dQcmljZXM6IGJvb2xlYW4gfCBudWxsID0gbnVsbDtcbiAgICBwdWJsaWMgZW5hYmxlRmllbGROb3Rlc0luQXJ0aWNsZUZpbGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBwdWJsaWMgcXVhbnRpdHlFcnJvcjogc3RyaW5nID0gJyc7XG4gICAgcHVibGljIG1pbmltdW1JdGVtc1F0eTogbnVtYmVyID0gbnVsbDtcbiAgICBwdWJsaWMgbXVsdGlwbGVRdHk6IG51bWJlciA9IG51bGw7XG4gICAgcHJpdmF0ZSBwcmVmaWxsU3ViPzogU3Vic2NyaXB0aW9uO1xuXG5cbiAgICBAVmlld0NoaWxkKCdjb250YWN0JykgY29udGFjdDogRWxlbWVudFJlZjtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgcHJvZHVjdFNlcnZpY2U6IFByb2R1Y3REZXRhaWxTZXJ2aWNlLFxuICAgICAgICBwdWJsaWMgY29uc3RzOiBDb25zdGFudHMsXG4gICAgICAgIHByb3RlY3RlZCBhY3RpdmVkUm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgICAgICBwdWJsaWMgY2FydFNlcnZpY2U6IENhcnRTZXJ2aWNlLFxuICAgICAgICBwdWJsaWMgb3B0aW9uc1NlcnZpY2U6IE9wdGlvbnNTZXJ2aWNlLFxuICAgICAgICBwdWJsaWMgcHJvZHVjdHNTZXJ2aWNlOiBQcm9kdWN0c1NlcnZpY2UsXG4gICAgICAgIHB1YmxpYyBhbmFseXRpY3NTZXJ2aWNlOiBBbmFseXRpY3NTZXJ2aWNlLFxuICAgICAgICBwdWJsaWMgcm91dGVyOiBSb3V0ZXIsXG4gICAgICAgIHByb3RlY3RlZCB0b2FzdHJTZXJ2aWNlOiBUb2FzdFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgbWV0YTogTWV0YSxcbiAgICAgICAgcHVibGljIGluamVjdG9yOiBJbmplY3Rvcikge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLm1lZGlhVXJsID0gdGhpcy5jb25zdHMubWVkaWFVcmwoKTtcbiAgICAgICAgdGhpcy5hY3RpdmVkUm91dGUucGFyYW1zLnN1YnNjcmliZShxdWVyeVBhcmFtcyA9PiB7XG4gICAgICAgICAgICBsZXQgdmFyaWFudDogYW55ID0gKHRoaXMuYWN0aXZlZFJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1NYXAuZ2V0KCd2YXJpYW50JykpO1xuICAgICAgICAgICAgbGV0IGNvZGUgPSBxdWVyeVBhcmFtcy5pZDtcbiAgICAgICAgICAgIHRoaXMucHJvZHVjdFNlcnZpY2UubG9hZFByb2R1Y3QoY29kZSwgdmFyaWFudCk7XG4gICAgICAgICAgICB0aGlzLmNvZGUgPSBxdWVyeVBhcmFtcy5pZFxuICAgICAgICB9KVxuICAgICAgICB0aGlzLnByb2R1Y3RTZXJ2aWNlLnByb2R1Y3QkLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgICAgICAgaWYgKHJlcyA9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvJ10pXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMucHJvZHVjdCA9IHJlcztcbiAgICAgICAgICAgICAgICB3aW5kb3cuc2Nyb2xsKDAsIDApO1xuICAgICAgICAgICAgICAgIHRoaXMuYnJlYWRjcnVtYiA9IHRoaXMub3B0aW9uc1NlcnZpY2UuZ2V0QnJlYWRjcnVtYih0aGlzLnByb2R1Y3QuY2F0ZWdvcnkpO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLnByb2R1Y3QubmFtZSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm1ldGEudXBkYXRlVGFnKHsgcHJvcGVydHk6ICdvZzp0aXRsZScsIGNvbnRlbnQ6IHRoaXMucHJvZHVjdC5uYW1lIH0pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm1ldGEudXBkYXRlVGFnKHsgcHJvcGVydHk6ICdvZzpkZXNjcmlwdGlvbicsIGNvbnRlbnQ6IHRoaXMuZGVsZXRlSFRNTCh0aGlzLnByb2R1Y3QuZGVzY3JpcHRpb24pIH0pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm1ldGEudXBkYXRlVGFnKHsgcHJvcGVydHk6ICdvZzppbWFnZScsIGNvbnRlbnQ6IHRoaXMuY29uc3RzLm1lZGlhVXJsKCkgKyB0aGlzLnByb2R1Y3QucGljdHVyZXNkZWZhdWx0WzBdIH0pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm1ldGEudXBkYXRlVGFnKHsgcHJvcGVydHk6ICdvZzp0eXBlJywgY29udGVudDogJ3Byb2R1Y3QnIH0pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm1ldGEudXBkYXRlVGFnKHsgcHJvcGVydHk6ICdvZzp1cmwnLCBjb250ZW50OiB3aW5kb3cubG9jYXRpb24uaHJlZiB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnByb2R1Y3RTZXJ2aWNlLnByb2R1Y3QkLnBpcGUoZmlsdGVyKGRhdGEgPT4gZGF0YSAmJiBkYXRhLmlkICYmIGRhdGEuaWQgIT0gMCkpLnN1YnNjcmliZShcbiAgICAgICAgICAgIChwcm9kdWN0UGFyYW0pID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmFuYWx5dGljc1NlcnZpY2UuY2FsbEV2ZW50KCd2aWV3X2l0ZW0nLCB7IC4uLnByb2R1Y3RQYXJhbSwgY3VycmVuY3k6IHRoaXMuY29uc3RzLmN1cnJlbmN5LmNvZGUgfSlcbiAgICAgICAgICAgICAgICB0aGlzLmNoYW5nZUltZ0ZvY3VzKHByb2R1Y3RQYXJhbS5waWN0dXJlc2RlZmF1bHRbMF0pXG4gICAgICAgICAgICB9XG4gICAgICAgIClcbiAgICAgICAgdGhpcy5pbmplY3Rvci5nZXQoQ2hhbm5lbENvbmZpZ1NlcnZpY2UpLmNoYW5uZWxDb25maWckLnN1YnNjcmliZShjaGFubmVsID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2hvd1Jldmlld3MgPSBjaGFubmVsLnNob3dSZXZpZXdzO1xuICAgICAgICAgICAgdGhpcy5oaWRlUHJpY2VzID0gY2hhbm5lbD8uaGlkZVByaWNlcyA/PyBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuZW5hYmxlRmllbGROb3Rlc0luQXJ0aWNsZUZpbGUgPSBjaGFubmVsPy5lbmFibGVGaWVsZE5vdGVzSW5BcnRpY2xlRmlsZSA/PyBmYWxzZTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5jYXJ0U2VydmljZS5zaG93UHJpY2UkLnN1YnNjcmliZSgoc2hvd1ByaWNlKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNyZWRpdEFjY291bnRTaG93UHJpY2VzID0gc2hvd1ByaWNlO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5lY09uQ29uc3RydWN0KClcblxuICAgIH1cblxuICAgIGRlbGV0ZUhUTUwoY2FkZW5hOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICAvLyBFeHByZXNpw7NuIHJlZ3VsYXIgcGFyYSBidXNjYXIgZXRpcXVldGFzIEhUTUxcbiAgICAgICAgY29uc3QgZXhwcmVzaW9uUmVndWxhciA9IC88W14+XSo+L2c7XG4gICAgICAgIC8vIFJlZW1wbGF6YSB0b2RhcyBsYXMgZXRpcXVldGFzIEhUTUwgcG9yIHVuYSBjYWRlbmEgdmFjw61hXG4gICAgICAgIHJldHVybiBjYWRlbmEucmVwbGFjZShleHByZXNpb25SZWd1bGFyLCAnJyk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZWNPbkluaXQoKVxuXG4gICAgICAgIC8vIFByZWxsZW5hciBjb21lbnRhcmlvcyBjdWFuZG86XG4gICAgICAgIC8vIC0gY2FyZ3VlIGVsIHByb2R1Y3RvXG4gICAgICAgIC8vIC0gY2FtYmllIGxhIHZhcmlhbnRlIHNlbGVjY2lvbmFkYSAoYXNvY2lhdGVkRGF0YSQpXG4gICAgICAgIC8vIC0gY2FtYmllbiBsb3Mgw610ZW1zIGRlbCBjYXJyaXRvICAgICAgICBcbiAgICAgICAgdGhpcy5wcmVmaWxsU3ViID0gY29tYmluZUxhdGVzdChbXG4gICAgICAgICAgICB0aGlzLnByb2R1Y3RTZXJ2aWNlLnByb2R1Y3QkLnBpcGUocnhGaWx0ZXIoKHA6IGFueSkgPT4gISFwICYmICEhcC5pZCkpLFxuICAgICAgICAgICAgdGhpcy5wcm9kdWN0U2VydmljZS5hc29jaWF0ZWREYXRhJC5waXBlKHN0YXJ0V2l0aChudWxsIGFzIGFueSkpLFxuICAgICAgICAgICAgdGhpcy5jYXJ0U2VydmljZS5jYXJ0SXRlbXMucGlwZShzdGFydFdpdGgoW10gYXMgYW55W10pKSxcbiAgICAgICAgXSkuc3Vic2NyaWJlKChbcHJvZHVjdCwgZGF0YSwgaXRlbXNdOiBbYW55LCBhbnksIGFueVtdXSkgPT4ge1xuICAgICAgICAgICAgXG4gICAgICAgICAgICBjb25zdCB2YXJpYW50SWQgPVxuICAgICAgICAgICAgICAgIGRhdGE/LnZhcmlhbnRDb2RlID8/XG4gICAgICAgICAgICAgICAgZGF0YT8udmFyaWFudF9pZCA/P1xuICAgICAgICAgICAgICAgIHByb2R1Y3Q/LnZhcmlhbnRzPy5bMF0/LmNvZGUgPz9cbiAgICAgICAgICAgICAgICBudWxsO1xuICAgICAgICAgICAgXG4gICAgICAgICAgICBjb25zdCBtYXRjaCA9IGl0ZW1zPy5maW5kKGl0ID0+XG4gICAgICAgICAgICAgICAgaXQ/LnByb2R1Y3Q/LmlkID09PSBwcm9kdWN0Py5pZCAmJlxuICAgICAgICAgICAgICAgICh2YXJpYW50SWQgPyBpdD8udmFyaWFudF9pZCA9PT0gdmFyaWFudElkIDogdHJ1ZSlcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIHRoaXMuY29tbWVudHMgPSAobWF0Y2g/LmNvbW1lbnRzID8/ICcnKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5wcm9kdWN0U2VydmljZS5hc29jaWF0ZWREYXRhJC5zdWJzY3JpYmUoYWQgPT4ge1xuICAgICAgICAgICAgdGhpcy5taW5pbXVtSXRlbXNRdHkgPSBhZD8ubWluaW11bUl0ZW1zUXVhbnRpdHkgfHwgbnVsbDtcbiAgICAgICAgICAgIHRoaXMubXVsdGlwbGVRdHkgPSBhZD8ubXVsdGlwbGVRdWFudGl0eSB8fCBudWxsO1xuICAgICAgICAgICAgdGhpcy5xdWFudGl0eSA9IHRoaXMubWluaW11bUl0ZW1zUXR5IHx8IHRoaXMubXVsdGlwbGVRdHkgfHwgMTtcbiAgICAgICAgICAgIHRoaXMucXVhbnRpdHlFcnJvciA9ICcnO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5wcmVmaWxsU3ViPy51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIGFkZFRvQ2FydCA9ICgpID0+IHtcbiAgICAgICAgY29uc3Qgbm90ZSA9IHRoaXMuY29tbWVudHM/LnRyaW0oKSB8fCBudWxsO1xuICAgICAgICB0aGlzLnF1YW50aXR5ID4gMCAmJiB0aGlzLnByb2R1Y3RTZXJ2aWNlLmFkZFRvQ2FydCh0aGlzLnF1YW50aXR5LCB1bmRlZmluZWQsIG5vdGUpO1xuICAgIH1cblxuICAgIGFkZEFsbFByb2R1Y3Rvc1RvQ2FydCA9ICgpID0+IHtcbiAgICAgICAgbGV0IGl0ZW1zID0gdGhpcy5wcm9kdWN0LnByb2R1Y3RXaXRoVW5pcXVlVmFyaWFudD8uZmlsdGVyKHByb2QgPT4gcHJvZC5wcm9kdWN0VG9DYXJ0SXRlbSkubWFwKHByb2QgPT4gcHJvZC5wcm9kdWN0VG9DYXJ0SXRlbSlcbiAgICAgICAgaXRlbXM/Lmxlbmd0aCAmJiB0aGlzLmNhcnRTZXJ2aWNlLmFkZEFsbFRvQ2FydChpdGVtcylcbiAgICB9XG5cbiAgICBzY3JvbGwoKSB7XG4gICAgICAgIGxldCBlbCA9IHRoaXMuY29udGFjdC5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuICAgICAgICBlbC5zY3JvbGxJbnRvVmlldygpO1xuICAgIH1cblxuICAgIHNhdmVSZWYgPSAoY2Fyb3VzZWwpID0+IHtcbiAgICAgICAgdGhpcy5jYXJvdXNlbCA9IGNhcm91c2VsO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBhY3R1YWxpemEgbGEgdmFyaWFibGUgcXVhbnRpdHkgc3VtYW5kb2xlICd4JyBjb250ZW5pZG8uXG4gICAgICogU2kgaGF5IHVuIG11bHRpcGxlUXVhbnRpdHkgY29uZmlndXJhZG8sIGhhY2Ugc25hcCBhbCBzaWd1aWVudGUgbcO6bHRpcGxvIHbDoWxpZG9cbiAgICAgKiBjdWFuZG8gbGEgY2FudGlkYWQgYWN0dWFsIHlhIGVzIGludsOhbGlkYS5cbiAgICAgKiBAcGFyYW0gc3RvY2sgbsO6bWVybyBtw6F4aW1vIGRpc3BvbmlibGUgZW4gc3RvY2suXG4gICAgICogQHBhcmFtIGNoYW5nZUFtb3VudCBjYW50aWRhZCBxdWUgc2UgcXVpZXJlIHN1bWFyIChpZ25vcmFkbyBzaSBtdWx0aXBsZVF0eSBlc3TDoSBzZXRlYWRvKS5cbiAgICAgKiBAcGFyYW0gZm9yY2VNdWx0aXBsZSBsZWdhY3kg4oCUIHNpIGVzIHRydWUsIG9ibGlnYSBhIHF1ZSBlbCByZXN1bHRhZG8gc2VhIG3Dumx0aXBsbyBkZSBjaGFuZ2VBbW91bnQuXG4gICAgICovXG4gICAgcGx1cyA9IChzdG9jaz86IG51bWJlciwgY2hhbmdlQW1vdW50OiBudW1iZXIgPSAxLCBmb3JjZU11bHRpcGxlOiBib29sZWFuID0gZmFsc2UpID0+IHtcbiAgICAgICAgY29uc3Qgc3RlcCA9IHRoaXMubXVsdGlwbGVRdHkgfHwgY2hhbmdlQW1vdW50O1xuICAgICAgICBjb25zdCBjdXJyZW50UXVhbnRpdHkgPSBOdW1iZXIodGhpcy5xdWFudGl0eSk7XG4gICAgICAgIGxldCBuZXdRdWFudGl0eTogbnVtYmVyO1xuXG4gICAgICAgIGlmIChzdGVwID4gMSkge1xuICAgICAgICAgICAgbmV3UXVhbnRpdHkgPSBjdXJyZW50UXVhbnRpdHkgJSBzdGVwICE9PSAwXG4gICAgICAgICAgICAgICAgPyBNYXRoLmNlaWwoY3VycmVudFF1YW50aXR5IC8gc3RlcCkgKiBzdGVwXG4gICAgICAgICAgICAgICAgOiBjdXJyZW50UXVhbnRpdHkgKyBzdGVwO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbmV3UXVhbnRpdHkgPSBjdXJyZW50UXVhbnRpdHkgKyBzdGVwO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFzdG9jayB8fCBuZXdRdWFudGl0eSA8PSBzdG9jaykge1xuICAgICAgICAgICAgdGhpcy5xdWFudGl0eSA9IG5ld1F1YW50aXR5O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy50b2FzdHJTZXJ2aWNlLnNob3coJ291dC1vZi1zdG9jay1hY3R1YWxseScpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudmFsaWRhdGVEZXRhaWwoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gYWN0dWFsaXphIGxhIHZhcmlhYmxlIHF1YW50aXR5IHJlc3RhbmRvbGUgJ3gnIGNvbnRlbmlkby5cbiAgICAgKiBTaSBoYXkgdW4gbXVsdGlwbGVRdWFudGl0eSBjb25maWd1cmFkbywgaGFjZSBzbmFwIGFsIG3Dumx0aXBsbyB2w6FsaWRvIGluZmVyaW9yXG4gICAgICogY3VhbmRvIGxhIGNhbnRpZGFkIGFjdHVhbCB5YSBlcyBpbnbDoWxpZGEuXG4gICAgICogQHBhcmFtIGNoYW5nZUFtb3VudCBjYW50aWRhZCBxdWUgc2UgcXVpZXJlIHJlc3RhciAoaWdub3JhZG8gc2kgbXVsdGlwbGVRdHkgZXN0w6Egc2V0ZWFkbykuXG4gICAgICogQHBhcmFtIG1pbmltdW0gY2FudGlkYWQgbcOtbmltYSBwZXJtaXRpZGEgKGlnbm9yYWRvIHNpIG1pbmltdW1JdGVtc1F0eSBlc3TDoSBzZXRlYWRvKS5cbiAgICAgKiBAcGFyYW0gZm9yY2VNdWx0aXBsZSBsZWdhY3kg4oCUIHNpIGVzIHRydWUsIG9ibGlnYSBhIHF1ZSBlbCByZXN1bHRhZG8gc2VhIG3Dumx0aXBsbyBkZSBjaGFuZ2VBbW91bnQuXG4gICAgICovXG4gICAgbGVzcyA9IChjaGFuZ2VBbW91bnQ6IG51bWJlciA9IDEsIG1pbmltdW06IG51bWJlciA9IDEsIGZvcmNlTXVsdGlwbGU6IGJvb2xlYW4gPSBmYWxzZSkgPT4ge1xuICAgICAgICBjb25zdCBzdGVwID0gdGhpcy5tdWx0aXBsZVF0eSB8fCBjaGFuZ2VBbW91bnQ7XG4gICAgICAgIGNvbnN0IGZsb29yID0gdGhpcy5taW5pbXVtSXRlbXNRdHkgfHwgKHN0ZXAgPiAxID8gc3RlcCA6IG1pbmltdW0pO1xuICAgICAgICBsZXQgbmV3UXVhbnRpdHk6IG51bWJlcjtcblxuICAgICAgICBpZiAoc3RlcCA+IDEpIHtcbiAgICAgICAgICAgIG5ld1F1YW50aXR5ID0gdGhpcy5xdWFudGl0eSAlIHN0ZXAgIT09IDBcbiAgICAgICAgICAgICAgICA/IE1hdGguZmxvb3IodGhpcy5xdWFudGl0eSAvIHN0ZXApICogc3RlcFxuICAgICAgICAgICAgICAgIDogdGhpcy5xdWFudGl0eSAtIHN0ZXA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBuZXdRdWFudGl0eSA9IHRoaXMucXVhbnRpdHkgLSBzdGVwO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5xdWFudGl0eSA9IG5ld1F1YW50aXR5ID49IGZsb29yID8gbmV3UXVhbnRpdHkgOiBmbG9vcjtcbiAgICAgICAgdGhpcy52YWxpZGF0ZURldGFpbCgpO1xuICAgIH1cblxuICAgIG9uUXVhbnRpdHlJbnB1dCA9ICh2YWx1ZTogc3RyaW5nKSA9PiB7XG4gICAgICAgIGNvbnN0IHBhcnNlZCA9IHBhcnNlSW50KHZhbHVlLCAxMCk7XG4gICAgICAgIGlmICghaXNOYU4ocGFyc2VkKSkge1xuICAgICAgICAgICAgdGhpcy5xdWFudGl0eSA9IHBhcnNlZDtcbiAgICAgICAgICAgIHRoaXMudmFsaWRhdGVEZXRhaWwoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHZhbGlkYXRlRGV0YWlsID0gKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5taW5pbXVtSXRlbXNRdHkgJiYgdGhpcy5xdWFudGl0eSA8IHRoaXMubWluaW11bUl0ZW1zUXR5KSB7XG4gICAgICAgICAgICB0aGlzLnF1YW50aXR5RXJyb3IgPSAnTGEgY2FudGlkYWQgZGViZSBzZXIgYWwgbWVub3MgJyArIHRoaXMubWluaW11bUl0ZW1zUXR5O1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMubXVsdGlwbGVRdHkgJiYgdGhpcy5xdWFudGl0eSAlIHRoaXMubXVsdGlwbGVRdHkgIT09IDApIHtcbiAgICAgICAgICAgIHRoaXMucXVhbnRpdHlFcnJvciA9ICdMYSBjYW50aWRhZCBkZWJlIHNlciBtXFx1MDBmYWx0aXBsbyBkZSAnICsgdGhpcy5tdWx0aXBsZVF0eTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMucXVhbnRpdHlFcnJvciA9ICcnO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaXNRdWFudGl0eVZhbGlkRGV0YWlsID0gKCk6IGJvb2xlYW4gPT4ge1xuICAgICAgICBpZiAodGhpcy5taW5pbXVtSXRlbXNRdHkgJiYgdGhpcy5xdWFudGl0eSA8IHRoaXMubWluaW11bUl0ZW1zUXR5KSByZXR1cm4gZmFsc2U7XG4gICAgICAgIGlmICh0aGlzLm11bHRpcGxlUXR5ICYmIHRoaXMucXVhbnRpdHkgJSB0aGlzLm11bHRpcGxlUXR5ICE9PSAwKSByZXR1cm4gZmFsc2U7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHNob3dDb250YWN0ID0gKCkgPT4gdGhpcy5zaG93ID0gdHJ1ZTtcbiAgICBoaWRlQ29udGFjdCA9ICgpID0+IHRoaXMuc2hvdyA9IGZhbHNlO1xuXG4gICAgdGhlcmVJc01vcmVJbmZvID0gKHByb2R1Y3Q6IGFueSkgPT4ge1xuICAgICAgICBsZXQgcmVzdWx0O1xuICAgICAgICBpZiAocHJvZHVjdD8uc3BlY2lhbF9tYXJrICYmIHByb2R1Y3Q/LnNwZWNpYWxfbWFyay5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJlc3VsdCA9IHByb2R1Y3Q/LnNwZWNpYWxfbWFyaz8uZmluZChzcGVjaWFsX21hcmsgPT4gc3BlY2lhbF9tYXJrLnR5cGUgPT0gJ21vcmVfaW5mbycpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgY2hhbmdlSW1nRm9jdXMgPSAoaW1nKSA9PiB7XG4gICAgICAgIHRoaXMuZm9jdXNJbWFnZSA9IGltZ1xuICAgIH1cbiAgICBjb3B5UHJvZHVjdFVybCA9IGFzeW5jICgpID0+IHtcbiAgICAgICAgY29uc3QgY29waWVkID0gYXdhaXQgdGhpcy5jb3B5VGV4dFRvQ2xpcGJvYXJkKHRoaXMuZ2V0Q3VycmVudFVybCgpKTtcbiAgICAgICAgdGhpcy50b2FzdHJTZXJ2aWNlLnNob3coY29waWVkID8gJ3NoYXJlLWxpbmstY29waWVkJyA6ICdzaGFyZS1saW5rLWNvcHktZmFpbGVkJyk7XG4gICAgfVxuXG4gICAgb3BlbldoYXRzYXBwU2hhcmUgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHNoYXJlVXJsID0gdGhpcy5idWlsZFdoYXRzYXBwU2hhcmVVcmwoKTtcbiAgICAgICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICB3aW5kb3cub3BlbihzaGFyZVVybCwgJ19ibGFuaycsICdub29wZW5lcixub3JlZmVycmVyJyk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
|
|
369
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1kZXRhaWwtZWMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmctZWFzeWNvbW1lcmNlLyIsInNvdXJjZXMiOlsibGliL2VjLWNvbXBvbmVudC9wcm9kdWN0LWRldGFpbC1lYy9wcm9kdWN0LWRldGFpbC1lYy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsU0FBUyxFQUFjLE1BQU0sZUFBZSxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNqRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDOUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDcEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzFELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNoRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUN0RixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDM0UsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FB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LEtBQUksSUFBSSxDQUFDO1lBQ3hELEtBQUksQ0FBQyxXQUFXLEdBQUcsT0FBQSxFQUFFLDBDQUFFLGdCQUFnQixLQUFJLElBQUksQ0FBQztZQUNoRCxLQUFJLENBQUMsUUFBUSxHQUFHLEtBQUksQ0FBQyxlQUFlLElBQUksS0FBSSxDQUFDLFdBQVcsSUFBSSxDQUFDLENBQUM7WUFDOUQsS0FBSSxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7UUFDNUIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsOENBQVcsR0FBWDs7UUFDSSxNQUFBLElBQUksQ0FBQyxVQUFVLDBDQUFFLFdBQVcsR0FBRztJQUNuQyxDQUFDO0lBWUQseUNBQU0sR0FBTjtRQUNJLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBNEIsQ0FBQztRQUNuRCxFQUFFLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDeEIsQ0FBQzs7Z0JBdEgwQixvQkFBb0I7Z0JBQzVCLFNBQVM7Z0JBQ0EsY0FBYztnQkFDbEIsV0FBVztnQkFDUixjQUFjO2dCQUNiLGVBQWU7Z0JBQ2QsZ0JBQWdCO2dCQUMxQixNQUFNO2dCQUNJLFlBQVk7Z0JBQ3BCLFFBQVE7Z0JBQ1gsVUFBVTs7SUFiTjtRQUFyQixTQUFTLENBQUMsU0FBUyxDQUFDOzZEQUFxQjtJQXRCakMsd0JBQXdCO1FBTnBDLFNBQVMsQ0FBQztZQUNQLFFBQVEsRUFBRSx1QkFBdUI7WUFDakMsWUFBaUQ7WUFFakQsU0FBUyxFQUFFLENBQUMsb0JBQW9CLENBQUM7O1NBQ3BDLENBQUM7T0FDVyx3QkFBd0IsQ0E0UHBDO0lBQUQsK0JBQUM7Q0FBQSxBQTVQRCxDQUE4QyxlQUFlLEdBNFA1RDtTQTVQWSx3QkFBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgVmlld0NoaWxkLCBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IGZpbHRlciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IENvbXBvbmVudEhlbHBlciB9IGZyb20gJy4uLy4uL2NsYXNzZXMvY29tcG9uZW50LWhlbHBlcic7XG5pbXBvcnQgeyBDb25zdGFudHMgfSBmcm9tICcuLi8uLi9jb3JlLmNvbnN0cyc7XG5pbXBvcnQgeyBBbmFseXRpY3NTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvYW5hbHl0aWNzLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ2FydFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jYXJ0LnNlcnZpY2UnO1xuaW1wb3J0IHsgT3B0aW9uc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9vcHRpb25zLnNlcnZpY2UnO1xuaW1wb3J0IHsgUHJvZHVjdERldGFpbFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9wcm9kdWN0cy9wcm9kdWN0LWRldGFpbC5zZXJ2aWNlJztcbmltcG9ydCB7IFByb2R1Y3RzU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3Byb2R1Y3RzL3Byb2R1Y3RzLnNlcnZpY2UnO1xuaW1wb3J0IHsgVG9hc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdXRpbHMvdG9hc3Quc2VydmljZSc7XG5pbXBvcnQgeyBTZW9TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvc2VvLnNlcnZpY2UnO1xuaW1wb3J0IHsgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENoYW5uZWxDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY2hhbm5lbC1jb25maWcuc2VydmljZSc7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHN0YXJ0V2l0aCwgZmlsdGVyIGFzIHJ4RmlsdGVyIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYXBwLXByb2R1Y3QtZGV0YWlsLWVjJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vcHJvZHVjdC1kZXRhaWwtZWMuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3Byb2R1Y3QtZGV0YWlsLWVjLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgcHJvdmlkZXJzOiBbUHJvZHVjdERldGFpbFNlcnZpY2VdXG59KVxuZXhwb3J0IGNsYXNzIFByb2R1Y3REZXRhaWxFY0NvbXBvbmVudCBleHRlbmRzIENvbXBvbmVudEhlbHBlciBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgICBwdWJsaWMgcHJvZHVjdDogYW55O1xuICAgIHB1YmxpYyBtZWRpYVVybDtcbiAgICBwdWJsaWMgc2hvdyA9IGZhbHNlO1xuICAgIHB1YmxpYyBxdWFudGl0eSA9IDE7XG4gICAgcHVibGljIGNvbW1lbnRzOiBzdHJpbmcgPSAnJztcbiAgICBwdWJsaWMgYnJlYWRjcnVtYiA9IFtdO1xuICAgIHB1YmxpYyBjYXJvdXNlbDogYW55O1xuICAgIHB1YmxpYyBjb2RlID0gbnVsbDtcbiAgICBwdWJsaWMgZm9jdXNJbWFnZTogc3RyaW5nID0gbnVsbFxuICAgIHB1YmxpYyBvd2xPcHRpb25zID0ge31cbiAgICBwdWJsaWMgc2hvd1Jldmlld3M6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBwdWJsaWMgaGlkZVByaWNlczogYm9vbGVhbiA9IGZhbHNlO1xuICAgIHB1YmxpYyBjcmVkaXRBY2NvdW50U2hvd1ByaWNlczogYm9vbGVhbiB8IG51bGwgPSBudWxsO1xuICAgIHB1YmxpYyBlbmFibGVGaWVsZE5vdGVzSW5BcnRpY2xlRmlsZTogYm9vbGVhbiA9IGZhbHNlO1xuICAgIHB1YmxpYyBxdWFudGl0eUVycm9yOiBzdHJpbmcgPSAnJztcbiAgICBwdWJsaWMgbWluaW11bUl0ZW1zUXR5OiBudW1iZXIgPSBudWxsO1xuICAgIHB1YmxpYyBtdWx0aXBsZVF0eTogbnVtYmVyID0gbnVsbDtcbiAgICBwcml2YXRlIHByZWZpbGxTdWI/OiBTdWJzY3JpcHRpb247XG5cblxuICAgIEBWaWV3Q2hpbGQoJ2NvbnRhY3QnKSBjb250YWN0OiBFbGVtZW50UmVmO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyBwcm9kdWN0U2VydmljZTogUHJvZHVjdERldGFpbFNlcnZpY2UsXG4gICAgICAgIHB1YmxpYyBjb25zdHM6IENvbnN0YW50cyxcbiAgICAgICAgcHJvdGVjdGVkIGFjdGl2ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgICAgIHB1YmxpYyBjYXJ0U2VydmljZTogQ2FydFNlcnZpY2UsXG4gICAgICAgIHB1YmxpYyBvcHRpb25zU2VydmljZTogT3B0aW9uc1NlcnZpY2UsXG4gICAgICAgIHB1YmxpYyBwcm9kdWN0c1NlcnZpY2U6IFByb2R1Y3RzU2VydmljZSxcbiAgICAgICAgcHVibGljIGFuYWx5dGljc1NlcnZpY2U6IEFuYWx5dGljc1NlcnZpY2UsXG4gICAgICAgIHB1YmxpYyByb3V0ZXI6IFJvdXRlcixcbiAgICAgICAgcHJvdGVjdGVkIHRvYXN0clNlcnZpY2U6IFRvYXN0U2VydmljZSxcbiAgICAgICAgcHVibGljIGluamVjdG9yOiBJbmplY3RvcixcbiAgICAgICAgcHJpdmF0ZSBzZW8/OiBTZW9TZXJ2aWNlKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMubWVkaWFVcmwgPSB0aGlzLmNvbnN0cy5tZWRpYVVybCgpO1xuICAgICAgICB0aGlzLmFjdGl2ZWRSb3V0ZS5wYXJhbXMuc3Vic2NyaWJlKHF1ZXJ5UGFyYW1zID0+IHtcbiAgICAgICAgICAgIGxldCB2YXJpYW50OiBhbnkgPSAodGhpcy5hY3RpdmVkUm91dGUuc25hcHNob3QucXVlcnlQYXJhbU1hcC5nZXQoJ3ZhcmlhbnQnKSk7XG4gICAgICAgICAgICBsZXQgY29kZSA9IHF1ZXJ5UGFyYW1zLmlkO1xuICAgICAgICAgICAgdGhpcy5wcm9kdWN0U2VydmljZS5sb2FkUHJvZHVjdChjb2RlLCB2YXJpYW50KTtcbiAgICAgICAgICAgIHRoaXMuY29kZSA9IHF1ZXJ5UGFyYW1zLmlkXG4gICAgICAgIH0pXG4gICAgICAgIHRoaXMucHJvZHVjdFNlcnZpY2UucHJvZHVjdCQuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgICAgICBpZiAocmVzID09IG51bGwpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy8nXSlcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wcm9kdWN0ID0gcmVzO1xuICAgICAgICAgICAgICAgIHdpbmRvdy5zY3JvbGwoMCwgMCk7XG4gICAgICAgICAgICAgICAgdGhpcy5icmVhZGNydW1iID0gdGhpcy5vcHRpb25zU2VydmljZS5nZXRCcmVhZGNydW1iKHRoaXMucHJvZHVjdC5jYXRlZ29yeSk7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMucHJvZHVjdC5uYW1lICYmIHRoaXMuc2VvKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHNpdGVOYW1lID0gdGhpcy5zZW8uZ2V0U2l0ZU5hbWUoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGVzY3JpcHRpb24gPSB0aGlzLmRlbGV0ZUhUTUwodGhpcy5wcm9kdWN0LmRlc2NyaXB0aW9uIHx8ICcnKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZW8uc2V0VGl0bGUoYCR7dGhpcy5wcm9kdWN0Lm5hbWV9IHwgJHtzaXRlTmFtZX1gKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZW8uc2V0RGVzY3JpcHRpb24oZGVzY3JpcHRpb24pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlby5zZXRPZ0ltYWdlKHRoaXMuY29uc3RzLm1lZGlhVXJsKCkgKyB0aGlzLnByb2R1Y3QucGljdHVyZXNkZWZhdWx0WzBdKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZW8uc2V0T2dUeXBlKCdwcm9kdWN0Jyk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VvLnNldFJvYm90cygnaW5kZXgsIGZvbGxvdycpO1xuICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2VvLnNldENhbm9uaWNhbCh3aW5kb3cubG9jYXRpb24uaHJlZik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnByb2R1Y3RTZXJ2aWNlLnByb2R1Y3QkLnBpcGUoZmlsdGVyKGRhdGEgPT4gZGF0YSAmJiBkYXRhLmlkICYmIGRhdGEuaWQgIT0gMCkpLnN1YnNjcmliZShcbiAgICAgICAgICAgIChwcm9kdWN0UGFyYW0pID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmFuYWx5dGljc1NlcnZpY2UuY2FsbEV2ZW50KCd2aWV3X2l0ZW0nLCB7IC4uLnByb2R1Y3RQYXJhbSwgY3VycmVuY3k6IHRoaXMuY29uc3RzLmN1cnJlbmN5LmNvZGUgfSlcbiAgICAgICAgICAgICAgICB0aGlzLmNoYW5nZUltZ0ZvY3VzKHByb2R1Y3RQYXJhbS5waWN0dXJlc2RlZmF1bHRbMF0pXG4gICAgICAgICAgICB9XG4gICAgICAgIClcbiAgICAgICAgdGhpcy5pbmplY3Rvci5nZXQoQ2hhbm5lbENvbmZpZ1NlcnZpY2UpLmNoYW5uZWxDb25maWckLnN1YnNjcmliZShjaGFubmVsID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2hvd1Jldmlld3MgPSBjaGFubmVsLnNob3dSZXZpZXdzO1xuICAgICAgICAgICAgdGhpcy5oaWRlUHJpY2VzID0gY2hhbm5lbD8uaGlkZVByaWNlcyA/PyBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuZW5hYmxlRmllbGROb3Rlc0luQXJ0aWNsZUZpbGUgPSBjaGFubmVsPy5lbmFibGVGaWVsZE5vdGVzSW5BcnRpY2xlRmlsZSA/PyBmYWxzZTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5jYXJ0U2VydmljZS5zaG93UHJpY2UkLnN1YnNjcmliZSgoc2hvd1ByaWNlKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNyZWRpdEFjY291bnRTaG93UHJpY2VzID0gc2hvd1ByaWNlO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5lY09uQ29uc3RydWN0KClcblxuICAgIH1cblxuICAgIGRlbGV0ZUhUTUwoY2FkZW5hOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICAvLyBFeHByZXNpw7NuIHJlZ3VsYXIgcGFyYSBidXNjYXIgZXRpcXVldGFzIEhUTUxcbiAgICAgICAgY29uc3QgZXhwcmVzaW9uUmVndWxhciA9IC88W14+XSo+L2c7XG4gICAgICAgIC8vIFJlZW1wbGF6YSB0b2RhcyBsYXMgZXRpcXVldGFzIEhUTUwgcG9yIHVuYSBjYWRlbmEgdmFjw61hXG4gICAgICAgIHJldHVybiBjYWRlbmEucmVwbGFjZShleHByZXNpb25SZWd1bGFyLCAnJyk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZWNPbkluaXQoKVxuXG4gICAgICAgIC8vIFByZWxsZW5hciBjb21lbnRhcmlvcyBjdWFuZG86XG4gICAgICAgIC8vIC0gY2FyZ3VlIGVsIHByb2R1Y3RvXG4gICAgICAgIC8vIC0gY2FtYmllIGxhIHZhcmlhbnRlIHNlbGVjY2lvbmFkYSAoYXNvY2lhdGVkRGF0YSQpXG4gICAgICAgIC8vIC0gY2FtYmllbiBsb3Mgw610ZW1zIGRlbCBjYXJyaXRvICAgICAgICBcbiAgICAgICAgdGhpcy5wcmVmaWxsU3ViID0gY29tYmluZUxhdGVzdChbXG4gICAgICAgICAgICB0aGlzLnByb2R1Y3RTZXJ2aWNlLnByb2R1Y3QkLnBpcGUocnhGaWx0ZXIoKHA6IGFueSkgPT4gISFwICYmICEhcC5pZCkpLFxuICAgICAgICAgICAgdGhpcy5wcm9kdWN0U2VydmljZS5hc29jaWF0ZWREYXRhJC5waXBlKHN0YXJ0V2l0aChudWxsIGFzIGFueSkpLFxuICAgICAgICAgICAgdGhpcy5jYXJ0U2VydmljZS5jYXJ0SXRlbXMucGlwZShzdGFydFdpdGgoW10gYXMgYW55W10pKSxcbiAgICAgICAgXSkuc3Vic2NyaWJlKChbcHJvZHVjdCwgZGF0YSwgaXRlbXNdOiBbYW55LCBhbnksIGFueVtdXSkgPT4ge1xuICAgICAgICAgICAgXG4gICAgICAgICAgICBjb25zdCB2YXJpYW50SWQgPVxuICAgICAgICAgICAgICAgIGRhdGE/LnZhcmlhbnRDb2RlID8/XG4gICAgICAgICAgICAgICAgZGF0YT8udmFyaWFudF9pZCA/P1xuICAgICAgICAgICAgICAgIHByb2R1Y3Q/LnZhcmlhbnRzPy5bMF0/LmNvZGUgPz9cbiAgICAgICAgICAgICAgICBudWxsO1xuICAgICAgICAgICAgXG4gICAgICAgICAgICBjb25zdCBtYXRjaCA9IGl0ZW1zPy5maW5kKGl0ID0+XG4gICAgICAgICAgICAgICAgaXQ/LnByb2R1Y3Q/LmlkID09PSBwcm9kdWN0Py5pZCAmJlxuICAgICAgICAgICAgICAgICh2YXJpYW50SWQgPyBpdD8udmFyaWFudF9pZCA9PT0gdmFyaWFudElkIDogdHJ1ZSlcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIHRoaXMuY29tbWVudHMgPSAobWF0Y2g/LmNvbW1lbnRzID8/ICcnKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5wcm9kdWN0U2VydmljZS5hc29jaWF0ZWREYXRhJC5zdWJzY3JpYmUoYWQgPT4ge1xuICAgICAgICAgICAgdGhpcy5taW5pbXVtSXRlbXNRdHkgPSBhZD8ubWluaW11bUl0ZW1zUXVhbnRpdHkgfHwgbnVsbDtcbiAgICAgICAgICAgIHRoaXMubXVsdGlwbGVRdHkgPSBhZD8ubXVsdGlwbGVRdWFudGl0eSB8fCBudWxsO1xuICAgICAgICAgICAgdGhpcy5xdWFudGl0eSA9IHRoaXMubWluaW11bUl0ZW1zUXR5IHx8IHRoaXMubXVsdGlwbGVRdHkgfHwgMTtcbiAgICAgICAgICAgIHRoaXMucXVhbnRpdHlFcnJvciA9ICcnO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5wcmVmaWxsU3ViPy51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIGFkZFRvQ2FydCA9ICgpID0+IHtcbiAgICAgICAgY29uc3Qgbm90ZSA9IHRoaXMuY29tbWVudHM/LnRyaW0oKSB8fCBudWxsO1xuICAgICAgICB0aGlzLnF1YW50aXR5ID4gMCAmJiB0aGlzLnByb2R1Y3RTZXJ2aWNlLmFkZFRvQ2FydCh0aGlzLnF1YW50aXR5LCB1bmRlZmluZWQsIG5vdGUpO1xuICAgIH1cblxuICAgIGFkZEFsbFByb2R1Y3Rvc1RvQ2FydCA9ICgpID0+IHtcbiAgICAgICAgbGV0IGl0ZW1zID0gdGhpcy5wcm9kdWN0LnByb2R1Y3RXaXRoVW5pcXVlVmFyaWFudD8uZmlsdGVyKHByb2QgPT4gcHJvZC5wcm9kdWN0VG9DYXJ0SXRlbSkubWFwKHByb2QgPT4gcHJvZC5wcm9kdWN0VG9DYXJ0SXRlbSlcbiAgICAgICAgaXRlbXM/Lmxlbmd0aCAmJiB0aGlzLmNhcnRTZXJ2aWNlLmFkZEFsbFRvQ2FydChpdGVtcylcbiAgICB9XG5cbiAgICBzY3JvbGwoKSB7XG4gICAgICAgIGxldCBlbCA9IHRoaXMuY29udGFjdC5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuICAgICAgICBlbC5zY3JvbGxJbnRvVmlldygpO1xuICAgIH1cblxuICAgIHNhdmVSZWYgPSAoY2Fyb3VzZWwpID0+IHtcbiAgICAgICAgdGhpcy5jYXJvdXNlbCA9IGNhcm91c2VsO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBhY3R1YWxpemEgbGEgdmFyaWFibGUgcXVhbnRpdHkgc3VtYW5kb2xlICd4JyBjb250ZW5pZG8uXG4gICAgICogU2kgaGF5IHVuIG11bHRpcGxlUXVhbnRpdHkgY29uZmlndXJhZG8sIGhhY2Ugc25hcCBhbCBzaWd1aWVudGUgbcO6bHRpcGxvIHbDoWxpZG9cbiAgICAgKiBjdWFuZG8gbGEgY2FudGlkYWQgYWN0dWFsIHlhIGVzIGludsOhbGlkYS5cbiAgICAgKiBAcGFyYW0gc3RvY2sgbsO6bWVybyBtw6F4aW1vIGRpc3BvbmlibGUgZW4gc3RvY2suXG4gICAgICogQHBhcmFtIGNoYW5nZUFtb3VudCBjYW50aWRhZCBxdWUgc2UgcXVpZXJlIHN1bWFyIChpZ25vcmFkbyBzaSBtdWx0aXBsZVF0eSBlc3TDoSBzZXRlYWRvKS5cbiAgICAgKiBAcGFyYW0gZm9yY2VNdWx0aXBsZSBsZWdhY3kg4oCUIHNpIGVzIHRydWUsIG9ibGlnYSBhIHF1ZSBlbCByZXN1bHRhZG8gc2VhIG3Dumx0aXBsbyBkZSBjaGFuZ2VBbW91bnQuXG4gICAgICovXG4gICAgcGx1cyA9IChzdG9jaz86IG51bWJlciwgY2hhbmdlQW1vdW50OiBudW1iZXIgPSAxLCBmb3JjZU11bHRpcGxlOiBib29sZWFuID0gZmFsc2UpID0+IHtcbiAgICAgICAgY29uc3Qgc3RlcCA9IHRoaXMubXVsdGlwbGVRdHkgfHwgY2hhbmdlQW1vdW50O1xuICAgICAgICBjb25zdCBjdXJyZW50UXVhbnRpdHkgPSBOdW1iZXIodGhpcy5xdWFudGl0eSk7XG4gICAgICAgIGxldCBuZXdRdWFudGl0eTogbnVtYmVyO1xuXG4gICAgICAgIGlmIChzdGVwID4gMSkge1xuICAgICAgICAgICAgbmV3UXVhbnRpdHkgPSBjdXJyZW50UXVhbnRpdHkgJSBzdGVwICE9PSAwXG4gICAgICAgICAgICAgICAgPyBNYXRoLmNlaWwoY3VycmVudFF1YW50aXR5IC8gc3RlcCkgKiBzdGVwXG4gICAgICAgICAgICAgICAgOiBjdXJyZW50UXVhbnRpdHkgKyBzdGVwO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbmV3UXVhbnRpdHkgPSBjdXJyZW50UXVhbnRpdHkgKyBzdGVwO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFzdG9jayB8fCBuZXdRdWFudGl0eSA8PSBzdG9jaykge1xuICAgICAgICAgICAgdGhpcy5xdWFudGl0eSA9IG5ld1F1YW50aXR5O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy50b2FzdHJTZXJ2aWNlLnNob3coJ291dC1vZi1zdG9jay1hY3R1YWxseScpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudmFsaWRhdGVEZXRhaWwoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gYWN0dWFsaXphIGxhIHZhcmlhYmxlIHF1YW50aXR5IHJlc3RhbmRvbGUgJ3gnIGNvbnRlbmlkby5cbiAgICAgKiBTaSBoYXkgdW4gbXVsdGlwbGVRdWFudGl0eSBjb25maWd1cmFkbywgaGFjZSBzbmFwIGFsIG3Dumx0aXBsbyB2w6FsaWRvIGluZmVyaW9yXG4gICAgICogY3VhbmRvIGxhIGNhbnRpZGFkIGFjdHVhbCB5YSBlcyBpbnbDoWxpZGEuXG4gICAgICogQHBhcmFtIGNoYW5nZUFtb3VudCBjYW50aWRhZCBxdWUgc2UgcXVpZXJlIHJlc3RhciAoaWdub3JhZG8gc2kgbXVsdGlwbGVRdHkgZXN0w6Egc2V0ZWFkbykuXG4gICAgICogQHBhcmFtIG1pbmltdW0gY2FudGlkYWQgbcOtbmltYSBwZXJtaXRpZGEgKGlnbm9yYWRvIHNpIG1pbmltdW1JdGVtc1F0eSBlc3TDoSBzZXRlYWRvKS5cbiAgICAgKiBAcGFyYW0gZm9yY2VNdWx0aXBsZSBsZWdhY3kg4oCUIHNpIGVzIHRydWUsIG9ibGlnYSBhIHF1ZSBlbCByZXN1bHRhZG8gc2VhIG3Dumx0aXBsbyBkZSBjaGFuZ2VBbW91bnQuXG4gICAgICovXG4gICAgbGVzcyA9IChjaGFuZ2VBbW91bnQ6IG51bWJlciA9IDEsIG1pbmltdW06IG51bWJlciA9IDEsIGZvcmNlTXVsdGlwbGU6IGJvb2xlYW4gPSBmYWxzZSkgPT4ge1xuICAgICAgICBjb25zdCBzdGVwID0gdGhpcy5tdWx0aXBsZVF0eSB8fCBjaGFuZ2VBbW91bnQ7XG4gICAgICAgIGNvbnN0IGZsb29yID0gdGhpcy5taW5pbXVtSXRlbXNRdHkgfHwgKHN0ZXAgPiAxID8gc3RlcCA6IG1pbmltdW0pO1xuICAgICAgICBsZXQgbmV3UXVhbnRpdHk6IG51bWJlcjtcblxuICAgICAgICBpZiAoc3RlcCA+IDEpIHtcbiAgICAgICAgICAgIG5ld1F1YW50aXR5ID0gdGhpcy5xdWFudGl0eSAlIHN0ZXAgIT09IDBcbiAgICAgICAgICAgICAgICA/IE1hdGguZmxvb3IodGhpcy5xdWFudGl0eSAvIHN0ZXApICogc3RlcFxuICAgICAgICAgICAgICAgIDogdGhpcy5xdWFudGl0eSAtIHN0ZXA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBuZXdRdWFudGl0eSA9IHRoaXMucXVhbnRpdHkgLSBzdGVwO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5xdWFudGl0eSA9IG5ld1F1YW50aXR5ID49IGZsb29yID8gbmV3UXVhbnRpdHkgOiBmbG9vcjtcbiAgICAgICAgdGhpcy52YWxpZGF0ZURldGFpbCgpO1xuICAgIH1cblxuICAgIG9uUXVhbnRpdHlJbnB1dCA9ICh2YWx1ZTogc3RyaW5nKSA9PiB7XG4gICAgICAgIGNvbnN0IHBhcnNlZCA9IHBhcnNlSW50KHZhbHVlLCAxMCk7XG4gICAgICAgIGlmICghaXNOYU4ocGFyc2VkKSkge1xuICAgICAgICAgICAgdGhpcy5xdWFudGl0eSA9IHBhcnNlZDtcbiAgICAgICAgICAgIHRoaXMudmFsaWRhdGVEZXRhaWwoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHZhbGlkYXRlRGV0YWlsID0gKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5taW5pbXVtSXRlbXNRdHkgJiYgdGhpcy5xdWFudGl0eSA8IHRoaXMubWluaW11bUl0ZW1zUXR5KSB7XG4gICAgICAgICAgICB0aGlzLnF1YW50aXR5RXJyb3IgPSAnTGEgY2FudGlkYWQgZGViZSBzZXIgYWwgbWVub3MgJyArIHRoaXMubWluaW11bUl0ZW1zUXR5O1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMubXVsdGlwbGVRdHkgJiYgdGhpcy5xdWFudGl0eSAlIHRoaXMubXVsdGlwbGVRdHkgIT09IDApIHtcbiAgICAgICAgICAgIHRoaXMucXVhbnRpdHlFcnJvciA9ICdMYSBjYW50aWRhZCBkZWJlIHNlciBtXFx1MDBmYWx0aXBsbyBkZSAnICsgdGhpcy5tdWx0aXBsZVF0eTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMucXVhbnRpdHlFcnJvciA9ICcnO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaXNRdWFudGl0eVZhbGlkRGV0YWlsID0gKCk6IGJvb2xlYW4gPT4ge1xuICAgICAgICBpZiAodGhpcy5taW5pbXVtSXRlbXNRdHkgJiYgdGhpcy5xdWFudGl0eSA8IHRoaXMubWluaW11bUl0ZW1zUXR5KSByZXR1cm4gZmFsc2U7XG4gICAgICAgIGlmICh0aGlzLm11bHRpcGxlUXR5ICYmIHRoaXMucXVhbnRpdHkgJSB0aGlzLm11bHRpcGxlUXR5ICE9PSAwKSByZXR1cm4gZmFsc2U7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHNob3dDb250YWN0ID0gKCkgPT4gdGhpcy5zaG93ID0gdHJ1ZTtcbiAgICBoaWRlQ29udGFjdCA9ICgpID0+IHRoaXMuc2hvdyA9IGZhbHNlO1xuXG4gICAgdGhlcmVJc01vcmVJbmZvID0gKHByb2R1Y3Q6IGFueSkgPT4ge1xuICAgICAgICBsZXQgcmVzdWx0O1xuICAgICAgICBpZiAocHJvZHVjdD8uc3BlY2lhbF9tYXJrICYmIHByb2R1Y3Q/LnNwZWNpYWxfbWFyay5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJlc3VsdCA9IHByb2R1Y3Q/LnNwZWNpYWxfbWFyaz8uZmluZChzcGVjaWFsX21hcmsgPT4gc3BlY2lhbF9tYXJrLnR5cGUgPT0gJ21vcmVfaW5mbycpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgY2hhbmdlSW1nRm9jdXMgPSAoaW1nKSA9PiB7XG4gICAgICAgIHRoaXMuZm9jdXNJbWFnZSA9IGltZ1xuICAgIH1cbiAgICBjb3B5UHJvZHVjdFVybCA9IGFzeW5jICgpID0+IHtcbiAgICAgICAgY29uc3QgY29waWVkID0gYXdhaXQgdGhpcy5jb3B5VGV4dFRvQ2xpcGJvYXJkKHRoaXMuZ2V0Q3VycmVudFVybCgpKTtcbiAgICAgICAgdGhpcy50b2FzdHJTZXJ2aWNlLnNob3coY29waWVkID8gJ3NoYXJlLWxpbmstY29waWVkJyA6ICdzaGFyZS1saW5rLWNvcHktZmFpbGVkJyk7XG4gICAgfVxuXG4gICAgb3BlbldoYXRzYXBwU2hhcmUgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHNoYXJlVXJsID0gdGhpcy5idWlsZFdoYXRzYXBwU2hhcmVVcmwoKTtcbiAgICAgICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICB3aW5kb3cub3BlbihzaGFyZVVybCwgJ19ibGFuaycsICdub29wZW5lcixub3JlZmVycmVyJyk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
|