@po-ui/ng-templates 16.10.0 → 16.12.0
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/esm2022/lib/components/po-page-dynamic-search/po-page-dynamic-search.component.mjs +18 -9
- package/fesm2022/po-ui-ng-templates.mjs +17 -8
- package/fesm2022/po-ui-ng-templates.mjs.map +1 -1
- package/lib/components/po-page-dynamic-search/po-page-dynamic-search.component.d.ts +3 -2
- package/package.json +4 -4
- package/po-ui-ng-templates-16.12.0.tgz +0 -0
- package/schematics/ng-add/index.js +1 -1
- package/po-ui-ng-templates-16.10.0.tgz +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Component, ViewChild } from '@angular/core';
|
|
2
|
-
import { PoDynamicFieldType } from '@po-ui/ng-components';
|
|
2
|
+
import { PoDynamicFieldType, PoPageListComponent } from '@po-ui/ng-components';
|
|
3
3
|
import { capitalizeFirstLetter, getBrowserLanguage } from '../../utils/util';
|
|
4
4
|
import { PoAdvancedFilterComponent } from './po-advanced-filter/po-advanced-filter.component';
|
|
5
5
|
import { PoPageDynamicSearchBaseComponent } from './po-page-dynamic-search-base.component';
|
|
@@ -29,6 +29,7 @@ export class PoPageDynamicSearchComponent extends PoPageDynamicSearchBaseCompone
|
|
|
29
29
|
poPageCustomizationService;
|
|
30
30
|
changeDetector;
|
|
31
31
|
poAdvancedFilter;
|
|
32
|
+
poPageList;
|
|
32
33
|
loadSubscription;
|
|
33
34
|
_disclaimerGroup = {
|
|
34
35
|
remove: this.onRemoveDisclaimer.bind(this),
|
|
@@ -111,11 +112,14 @@ export class PoPageDynamicSearchComponent extends PoPageDynamicSearchBaseCompone
|
|
|
111
112
|
onAdvancedAction() {
|
|
112
113
|
this.poAdvancedFilter.open();
|
|
113
114
|
}
|
|
114
|
-
onAdvancedSearch(filteredItems) {
|
|
115
|
+
onAdvancedSearch(filteredItems, isAdvancedSearch) {
|
|
115
116
|
const { filter, optionsService } = filteredItems;
|
|
116
117
|
this._disclaimerGroup.disclaimers = this.setDisclaimers(filter, optionsService);
|
|
117
118
|
this.setFilters(filter);
|
|
118
119
|
this.advancedSearch.emit(filter);
|
|
120
|
+
if (isAdvancedSearch) {
|
|
121
|
+
this.poPageList.clearInputSearch();
|
|
122
|
+
}
|
|
119
123
|
}
|
|
120
124
|
getDisclaimersWithoutQuickSearch() {
|
|
121
125
|
const quickSearchProperty = 'search';
|
|
@@ -275,27 +279,32 @@ export class PoPageDynamicSearchComponent extends PoPageDynamicSearchBaseCompone
|
|
|
275
279
|
static ɵfac = function PoPageDynamicSearchComponent_Factory(t) { return new (t || PoPageDynamicSearchComponent)(i0.ɵɵdirectiveInject(i1.PoLanguageService), i0.ɵɵdirectiveInject(i2.PoPageCustomizationService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); };
|
|
276
280
|
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PoPageDynamicSearchComponent, selectors: [["po-page-dynamic-search"]], viewQuery: function PoPageDynamicSearchComponent_Query(rf, ctx) { if (rf & 1) {
|
|
277
281
|
i0.ɵɵviewQuery(PoAdvancedFilterComponent, 7);
|
|
282
|
+
i0.ɵɵviewQuery(PoPageListComponent, 7);
|
|
278
283
|
} if (rf & 2) {
|
|
279
284
|
let _t;
|
|
280
285
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.poAdvancedFilter = _t.first);
|
|
281
|
-
|
|
286
|
+
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.poPageList = _t.first);
|
|
287
|
+
} }, features: [i0.ɵɵInheritDefinitionFeature], ngContentSelectors: _c0, decls: 4, vars: 9, consts: [[3, "p-actions", "p-breadcrumb", "p-disclaimer-group", "p-filter", "p-title", "p-quick-search-value"], ["poPageList", ""], [3, "p-filters", "p-keep-filters", "p-literals", "p-search-event"]], template: function PoPageDynamicSearchComponent_Template(rf, ctx) { if (rf & 1) {
|
|
282
288
|
i0.ɵɵprojectionDef();
|
|
283
|
-
i0.ɵɵelementStart(0, "po-page-list", 0)(
|
|
284
|
-
i0.ɵɵlistener("p-search-event", function
|
|
289
|
+
i0.ɵɵelementStart(0, "po-page-list", 0, 1)(2, "po-advanced-filter", 2);
|
|
290
|
+
i0.ɵɵlistener("p-search-event", function PoPageDynamicSearchComponent_Template_po_advanced_filter_p_search_event_2_listener($event) { return ctx.onAdvancedSearch($event, true); });
|
|
285
291
|
i0.ɵɵelementEnd();
|
|
286
|
-
i0.ɵɵprojection(
|
|
292
|
+
i0.ɵɵprojection(3);
|
|
287
293
|
i0.ɵɵelementEnd();
|
|
288
294
|
} if (rf & 2) {
|
|
289
295
|
i0.ɵɵproperty("p-actions", ctx.actions)("p-breadcrumb", ctx.breadcrumb)("p-disclaimer-group", ctx.disclaimerGroup)("p-filter", ctx.filterSettings)("p-title", ctx.title)("p-quick-search-value", ctx.quickSearchValue);
|
|
290
|
-
i0.ɵɵadvance(
|
|
296
|
+
i0.ɵɵadvance(2);
|
|
291
297
|
i0.ɵɵproperty("p-filters", ctx.filters)("p-keep-filters", ctx.keepFilters)("p-literals", ctx.advancedFilterLiterals);
|
|
292
298
|
} }, dependencies: [i1.PoPageListComponent, i3.PoAdvancedFilterComponent], encapsulation: 2 });
|
|
293
299
|
}
|
|
294
300
|
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PoPageDynamicSearchComponent, [{
|
|
295
301
|
type: Component,
|
|
296
|
-
args: [{ selector: 'po-page-dynamic-search', template: "<po-page-list\n [p-actions]=\"actions\"\n [p-breadcrumb]=\"breadcrumb\"\n [p-disclaimer-group]=\"disclaimerGroup\"\n [p-filter]=\"filterSettings\"\n [p-title]=\"title\"\n [p-quick-search-value]=\"quickSearchValue\"\n>\n <po-advanced-filter\n [p-filters]=\"filters\"\n [p-keep-filters]=\"keepFilters\"\n [p-literals]=\"advancedFilterLiterals\"\n (p-search-event)=\"onAdvancedSearch($event)\"\n >\n </po-advanced-filter>\n\n <ng-content></ng-content>\n</po-page-list>\n" }]
|
|
302
|
+
args: [{ selector: 'po-page-dynamic-search', template: "<po-page-list\n #poPageList\n [p-actions]=\"actions\"\n [p-breadcrumb]=\"breadcrumb\"\n [p-disclaimer-group]=\"disclaimerGroup\"\n [p-filter]=\"filterSettings\"\n [p-title]=\"title\"\n [p-quick-search-value]=\"quickSearchValue\"\n>\n <po-advanced-filter\n [p-filters]=\"filters\"\n [p-keep-filters]=\"keepFilters\"\n [p-literals]=\"advancedFilterLiterals\"\n (p-search-event)=\"onAdvancedSearch($event, true)\"\n >\n </po-advanced-filter>\n\n <ng-content></ng-content>\n</po-page-list>\n" }]
|
|
297
303
|
}], function () { return [{ type: i1.PoLanguageService }, { type: i2.PoPageCustomizationService }, { type: i0.ChangeDetectorRef }]; }, { poAdvancedFilter: [{
|
|
298
304
|
type: ViewChild,
|
|
299
305
|
args: [PoAdvancedFilterComponent, { static: true }]
|
|
306
|
+
}], poPageList: [{
|
|
307
|
+
type: ViewChild,
|
|
308
|
+
args: [PoPageListComponent, { static: true }]
|
|
300
309
|
}] }); })();
|
|
301
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tcGFnZS1keW5hbWljLXNlYXJjaC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90ZW1wbGF0ZXMvc3JjL2xpYi9jb21wb25lbnRzL3BvLXBhZ2UtZHluYW1pYy1zZWFyY2gvcG8tcGFnZS1keW5hbWljLXNlYXJjaC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90ZW1wbGF0ZXMvc3JjL2xpYi9jb21wb25lbnRzL3BvLXBhZ2UtZHluYW1pYy1zZWFyY2gvcG8tcGFnZS1keW5hbWljLXNlYXJjaC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBd0MsTUFBTSxlQUFlLENBQUM7QUFHM0YsT0FBTyxFQUVMLGtCQUFrQixFQU1uQixNQUFNLHNCQUFzQixDQUFDO0FBRTlCLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRzdFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQzlGLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLHlDQUF5QyxDQUFDOzs7Ozs7QUFPM0Y7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBS0gsTUFBTSxPQUFPLDRCQUE2QixTQUFRLGdDQUFnQztJQXFCdEU7SUFDQTtJQUNBO0lBdEI4QyxnQkFBZ0IsQ0FBNEI7SUFFNUYsZ0JBQWdCLENBQWU7SUFFdEIsZ0JBQWdCLEdBQXNCO1FBQ3JELE1BQU0sRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztRQUMxQyxTQUFTLEVBQUUsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDakQsV0FBVyxFQUFFLEVBQUU7UUFDZixLQUFLLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxv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QUFFLFNBQVM7b0JBQ25CLEtBQUssRUFBRSxJQUFJO29CQUNYLFdBQVcsRUFBRSxVQUFVO2lCQUN4QjtnQkFDRDtvQkFDRSxRQUFRLEVBQUUsU0FBUztvQkFDbkIsS0FBSyxFQUFFLElBQUk7b0JBQ1gsV0FBVyxFQUFFLE9BQU87aUJBQ3JCO2dCQUNEO29CQUNFLFFBQVEsRUFBRSxZQUFZO2lCQUN2QjtnQkFDRDtvQkFDRSxRQUFRLEVBQUUsT0FBTztpQkFDbEI7Z0JBQ0Q7b0JBQ0UsUUFBUSxFQUFFLGFBQWE7aUJBQ3hCO2dCQUNEO29CQUNFLFFBQVEsRUFBRSxlQUFlO2lCQUMxQjtnQkFDRDtvQkFDRSxRQUFRLEVBQUUseUJBQXlCO2lCQUNwQztnQkFDRDtvQkFDRSxRQUFRLEVBQUUsc0JBQXNCO2lCQUNqQztnQkFDRDtvQkFDRSxRQUFRLEVBQUUsa0JBQWtCO2lCQUM3QjthQUNGO1NBQ0YsQ0FBQztRQUVGLE9BQU8sSUFBSSxDQUFDLDBCQUEwQixDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxjQUFjLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztJQUNwRyxDQUFDO3NGQXZUVSw0QkFBNEI7NkRBQTVCLDRCQUE0QjsyQkFDNUIseUJBQXlCOzs7Ozs7WUM3Q3RDLHVDQU9DLDRCQUFBO1lBS0csNklBQWtCLDRCQUF3QixJQUFDO1lBRTdDLGlCQUFxQjtZQUVyQixrQkFBeUI7WUFDM0IsaUJBQWU7O1lBaEJiLHVDQUFxQixnQ0FBQSwyQ0FBQSxnQ0FBQSxzQkFBQSw4Q0FBQTtZQVFuQixlQUFxQjtZQUFyQix1Q0FBcUIsbUNBQUEsMENBQUE7Ozt1RkRtQ1osNEJBQTRCO2NBSnhDLFNBQVM7MkJBQ0Usd0JBQXdCOzZJQUlzQixnQkFBZ0I7a0JBQXZFLFNBQVM7bUJBQUMseUJBQXlCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBWaWV3Q2hpbGQsIE9uSW5pdCwgT25EZXN0cm95LCBDaGFuZ2VEZXRlY3RvclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIFBvRGlzY2xhaW1lckdyb3VwLFxuICBQb0R5bmFtaWNGaWVsZFR5cGUsXG4gIFBvRHluYW1pY0Zvcm1GaWVsZCxcbiAgUG9MYW5ndWFnZVNlcnZpY2UsXG4gIFBvUGFnZUZpbHRlcixcbiAgUG9EaXNjbGFpbWVyR3JvdXBSZW1vdmVBY3Rpb24sXG4gIFBvQ29tYm9PcHRpb25cbn0gZnJvbSAnQHBvLXVpL25nLWNvbXBvbmVudHMnO1xuXG5pbXBvcnQgeyBjYXBpdGFsaXplRmlyc3RMZXR0ZXIsIGdldEJyb3dzZXJMYW5ndWFnZSB9IGZyb20gJy4uLy4uL3V0aWxzL3V0aWwnO1xuaW1wb3J0IHsgUG9QYWdlQ3VzdG9taXphdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9wby1wYWdlLWN1c3RvbWl6YXRpb24vcG8tcGFnZS1jdXN0b21pemF0aW9uLnNlcnZpY2UnO1xuXG5pbXBvcnQgeyBQb0FkdmFuY2VkRmlsdGVyQ29tcG9uZW50IH0gZnJvbSAnLi9wby1hZHZhbmNlZC1maWx0ZXIvcG8tYWR2YW5jZWQtZmlsdGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQb1BhZ2VEeW5hbWljU2VhcmNoQmFzZUNvbXBvbmVudCB9IGZyb20gJy4vcG8tcGFnZS1keW5hbWljLXNlYXJjaC1iYXNlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQb1BhZ2VEeW5hbWljU2VhcmNoT3B0aW9ucyB9IGZyb20gJy4vcG8tcGFnZS1keW5hbWljLXNlYXJjaC1vcHRpb25zLmludGVyZmFjZSc7XG5pbXBvcnQgeyBQb1BhZ2VEeW5hbWljT3B0aW9uc1NjaGVtYSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7IFBvUGFnZUR5bmFtaWNTZWFyY2hGaWx0ZXJzIH0gZnJvbSAnLi9wby1wYWdlLWR5bmFtaWMtc2VhcmNoLWZpbHRlcnMuaW50ZXJmYWNlJztcblxudHlwZSBVcmxPclBvQ3VzdG9taXphdGlvbkZ1bmN0aW9uID0gc3RyaW5nIHwgKCgpID0+IFBvUGFnZUR5bmFtaWNTZWFyY2hPcHRpb25zKTtcblxuLyoqXG4gKiBAZG9jc0V4dGVuZHMgUG9QYWdlRHluYW1pY1NlYXJjaEJhc2VDb21wb25lbnRcbiAqXG4gKiBAZXhhbXBsZVxuICpcbiAqIDxleGFtcGxlIG5hbWU9XCJwby1wYWdlLWR5bmFtaWMtc2VhcmNoLWJhc2ljXCIgdGl0bGU9XCJQTyBQYWdlIER5bmFtaWMgU2VhcmNoIEJhc2ljXCI+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1wYWdlLWR5bmFtaWMtc2VhcmNoLWJhc2ljL3NhbXBsZS1wby1wYWdlLWR5bmFtaWMtc2VhcmNoLWJhc2ljLmNvbXBvbmVudC5odG1sXCI+IDwvZmlsZT5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLXBhZ2UtZHluYW1pYy1zZWFyY2gtYmFzaWMvc2FtcGxlLXBvLXBhZ2UtZHluYW1pYy1zZWFyY2gtYmFzaWMuY29tcG9uZW50LnRzXCI+IDwvZmlsZT5cbiAqIDwvZXhhbXBsZT5cbiAqXG4gKiA8ZXhhbXBsZSBuYW1lPVwicG8tcGFnZS1keW5hbWljLXNlYXJjaC1oaXJpbmctcHJvY2Vzc2VzXCIgdGl0bGU9XCJQTyBQYWdlIER5bmFtaWMgU2VhcmNoIC0gSGlyaW5nIHByb2Nlc3Nlc1wiPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tcGFnZS1keW5hbWljLXNlYXJjaC1oaXJpbmctcHJvY2Vzc2VzL3NhbXBsZS1wby1wYWdlLWR5bmFtaWMtc2VhcmNoLWhpcmluZy1wcm9jZXNzZXMuY29tcG9uZW50Lmh0bWxcIj4gPC9maWxlPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tcGFnZS1keW5hbWljLXNlYXJjaC1oaXJpbmctcHJvY2Vzc2VzL3NhbXBsZS1wby1wYWdlLWR5bmFtaWMtc2VhcmNoLWhpcmluZy1wcm9jZXNzZXMuY29tcG9uZW50LnRzXCI+IDwvZmlsZT5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLXBhZ2UtZHluYW1pYy1zZWFyY2gtaGlyaW5nLXByb2Nlc3Nlcy9zYW1wbGUtcG8tcGFnZS1keW5hbWljLXNlYXJjaC1oaXJpbmctcHJvY2Vzc2VzLnNlcnZpY2UudHNcIj4gPC9maWxlPlxuICogPC9leGFtcGxlPlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwby1wYWdlLWR5bmFtaWMtc2VhcmNoJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3BvLXBhZ2UtZHluYW1pYy1zZWFyY2guY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFBvUGFnZUR5bmFtaWNTZWFyY2hDb21wb25lbnQgZXh0ZW5kcyBQb1BhZ2VEeW5hbWljU2VhcmNoQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQFZpZXdDaGlsZChQb0FkdmFuY2VkRmlsdGVyQ29tcG9uZW50LCB7IHN0YXRpYzogdHJ1ZSB9KSBwb0FkdmFuY2VkRmlsdGVyOiBQb0FkdmFuY2VkRmlsdGVyQ29tcG9uZW50O1xuXG4gIHByaXZhdGUgbG9hZFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2Rpc2NsYWltZXJHcm91cDogUG9EaXNjbGFpbWVyR3JvdXAgPSB7XG4gICAgcmVtb3ZlOiB0aGlzLm9uUmVtb3ZlRGlzY2xhaW1lci5iaW5kKHRoaXMpLFxuICAgIHJlbW92ZUFsbDogdGhpcy5vblJlbW92ZUFsbERpc2NsYWltZXJzLmJpbmQodGhpcyksXG4gICAgZGlzY2xhaW1lcnM6IFtdLFxuICAgIHRpdGxlOiB0aGlzLmxpdGVyYWxzLmRpc2NsYWltZXJHcm91cFRpdGxlLFxuICAgIGhpZGVSZW1vdmVBbGw6IHRoaXMuaGlkZVJlbW92ZUFsbERpc2NsYWltZXJcbiAgfTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9maWx0ZXJTZXR0aW5nczogUG9QYWdlRmlsdGVyID0ge1xuICAgIGFjdGlvbjogdGhpcy5vbkFjdGlvbi5iaW5kKHRoaXMpLFxuICAgIGFkdmFuY2VkQWN0aW9uOiB0aGlzLm9uQWR2YW5jZWRBY3Rpb24uYmluZCh0aGlzKSxcbiAgICBwbGFjZWhvbGRlcjogdGhpcy5saXRlcmFscy5zZWFyY2hQbGFjZWhvbGRlcixcbiAgICB3aWR0aDogdGhpcy5xdWlja1NlYXJjaFdpZHRoXG4gIH07XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBsYW5ndWFnZVNlcnZpY2U6IFBvTGFuZ3VhZ2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgcG9QYWdlQ3VzdG9taXphdGlvblNlcnZpY2U6IFBvUGFnZUN1c3RvbWl6YXRpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmXG4gICkge1xuICAgIHN1cGVyKGxhbmd1YWdlU2VydmljZSk7XG4gIH1cblxuICBnZXQgZGlzY2xhaW1lckdyb3VwKCkge1xuICAgIHJldHVybiBPYmplY3QuYXNzaWduKHt9LCB0aGlzLl9kaXNjbGFpbWVyR3JvdXAsIHtcbiAgICAgIHRpdGxlOiB0aGlzLmxpdGVyYWxzLmRpc2NsYWltZXJHcm91cFRpdGxlLFxuICAgICAgaGlkZVJlbW92ZUFsbDogdGhpcy5oaWRlUmVtb3ZlQWxsRGlzY2xhaW1lclxuICAgIH0pO1xuICB9XG5cbiAgZ2V0IGZpbHRlclNldHRpbmdzKCkge1xuICAgIGNvbnN0IHRoZXJlQXJlVmFsaWRGaWx0ZXJzID1cbiAgICAgIHRoaXMuZmlsdGVycy5sZW5ndGggPiAwICYmIHRoaXMuZmlsdGVycy5zb21lKGZpbHRlciA9PiBmaWx0ZXIudmlzaWJsZSA9PT0gdHJ1ZSB8fCBmaWx0ZXIudmlzaWJsZSA9PT0gdW5kZWZpbmVkKTtcbiAgICB0aGlzLl9maWx0ZXJTZXR0aW5ncy5hZHZhbmNlZEFjdGlvbiA9IHRoZXJlQXJlVmFsaWRGaWx0ZXJzID8gdGhpcy5vbkFkdmFuY2VkQWN0aW9uLmJpbmQodGhpcykgOiB1bmRlZmluZWQ7XG5cbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5fZmlsdGVyU2V0dGluZ3MsIHtcbiAgICAgIHBsYWNlaG9sZGVyOiB0aGlzLmxpdGVyYWxzLnNlYXJjaFBsYWNlaG9sZGVyLFxuICAgICAgd2lkdGg6IHRoaXMucXVpY2tTZWFyY2hXaWR0aFxuICAgIH0pO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5zZXRBZHZhbmNlZEZpbHRlckxpdGVyYWxzKHRoaXMubGl0ZXJhbHMpO1xuICAgIGlmICh0aGlzLm9uTG9hZCkge1xuICAgICAgdGhpcy5sb2FkT3B0aW9uc09uSW5pdGlhbGl6ZSh0aGlzLm9uTG9hZCk7XG4gICAgfVxuICAgIC8vY29sb2NhIG8gZGlzY2xhaW1lciBpbmljaWFsIGNhc28gZW52aWUgcC1xdWljay1zZWFyY2gtdmFsdWVcbiAgICBpZiAodGhpcy5xdWlja1NlYXJjaFZhbHVlKSB7XG4gICAgICB0aGlzLm9uQWN0aW9uKHRoaXMucXVpY2tTZWFyY2hWYWx1ZSwgdHJ1ZSk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgaWYgKHRoaXMubG9hZFN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5sb2FkU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgb25DaGFuZ2VGaWx0ZXJzKGZpbHRlcnM6IEFycmF5PFBvUGFnZUR5bmFtaWNTZWFyY2hGaWx0ZXJzPikge1xuICAgIGNvbnN0IGZpbHRlck9iamVjdFdpdGhWYWx1ZSA9IGZpbHRlcnNcbiAgICAgIC5maWx0ZXIoZmlsdGVyID0+IGZpbHRlci5pbml0VmFsdWUpXG4gICAgICAucmVkdWNlKChwcmV2LCBjdXJyZW50KSA9PiAoeyAuLi5wcmV2LCAuLi57IFtjdXJyZW50LnByb3BlcnR5XTogY3VycmVudC5pbml0VmFsdWUgfSB9KSwge30pO1xuXG4gICAgaWYgKE9iamVjdC5rZXlzKGZpbHRlck9iamVjdFdpdGhWYWx1ZSkubGVuZ3RoKSB7XG4gICAgICB0aGlzLm9uQWR2YW5jZWRTZWFyY2goeyBmaWx0ZXI6IGZpbHRlck9iamVjdFdpdGhWYWx1ZSB9KTtcbiAgICB9XG4gIH1cblxuICBvbkFjdGlvbihxdWlja0ZpbHRlcjogc3RyaW5nLCBxdWlja1NlYXJjaFZhbHVlPzogYm9vbGVhbikge1xuICAgIGNvbnN0IGRpc2NsYWltZXJRdWlja1NlYXJjaFVwZGF0ZWQgPSB7XG4gICAgICBwcm9wZXJ0eTogJ3NlYXJjaCcsXG4gICAgICBsYWJlbDogYCR7dGhpcy5saXRlcmFscy5xdWlja1NlYXJjaExhYmVsfSAke3F1aWNrRmlsdGVyfWAsXG4gICAgICB2YWx1ZTogcXVpY2tGaWx0ZXIsXG4gICAgICBoaWRlQ2xvc2U6IHRoaXMuaGlkZUNsb3NlRGlzY2xhaW1lcnMuc29tZShoaWRlQ2xvc2VEaXNjbGFpbWVyID0+IGhpZGVDbG9zZURpc2NsYWltZXIgPT09ICdzZWFyY2gnKSB8fCBmYWxzZVxuICAgIH07XG5cbiAgICBjb25zdCBnZXREaXNjbGFpbWVyc1dpdGhDb25jYXRGaWx0ZXJzID0gKCkgPT4gW1xuICAgICAgLi4udGhpcy5nZXREaXNjbGFpbWVyc1dpdGhvdXRRdWlja1NlYXJjaCgpLFxuICAgICAgZGlzY2xhaW1lclF1aWNrU2VhcmNoVXBkYXRlZFxuICAgIF07XG5cbiAgICB0aGlzLl9kaXNjbGFpbWVyR3JvdXAuZGlzY2xhaW1lcnMgPSB0aGlzLmNvbmNhdEZpbHRlcnNcbiAgICAgID8gZ2V0RGlzY2xhaW1lcnNXaXRoQ29uY2F0RmlsdGVycygpXG4gICAgICA6IFtkaXNjbGFpbWVyUXVpY2tTZWFyY2hVcGRhdGVkXTtcblxuICAgIGlmICh0aGlzLnF1aWNrU2VhcmNoLm9ic2VydmVycyAmJiB0aGlzLnF1aWNrU2VhcmNoLm9ic2VydmVycy5sZW5ndGggPiAwICYmICFxdWlja1NlYXJjaFZhbHVlKSB7XG4gICAgICB0aGlzLnF1aWNrU2VhcmNoLmVtaXQocXVpY2tGaWx0ZXIpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmtlZXBGaWx0ZXJzICYmICF0aGlzLmNvbmNhdEZpbHRlcnMpIHtcbiAgICAgIHRoaXMuZmlsdGVycy5mb3JFYWNoKGVsZW1lbnQgPT4gZGVsZXRlIGVsZW1lbnQuaW5pdFZhbHVlKTtcbiAgICB9XG5cbiAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIG9uQWR2YW5jZWRBY3Rpb24oKSB7XG4gICAgdGhpcy5wb0FkdmFuY2VkRmlsdGVyLm9wZW4oKTtcbiAgfVxuXG4gIG9uQWR2YW5jZWRTZWFyY2goZmlsdGVyZWRJdGVtcykge1xuICAgIGNvbnN0IHsgZmlsdGVyLCBvcHRpb25zU2VydmljZSB9ID0gZmlsdGVyZWRJdGVtcztcblxuICAgIHRoaXMuX2Rpc2NsYWltZXJHcm91cC5kaXNjbGFpbWVycyA9IHRoaXMuc2V0RGlzY2xhaW1lcnMoZmlsdGVyLCBvcHRpb25zU2VydmljZSk7XG5cbiAgICB0aGlzLnNldEZpbHRlcnMoZmlsdGVyKTtcblxuICAgIHRoaXMuYWR2YW5jZWRTZWFyY2guZW1pdChmaWx0ZXIpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXREaXNjbGFpbWVyc1dpdGhvdXRRdWlja1NlYXJjaCgpIHtcbiAgICBjb25zdCBxdWlja1NlYXJjaFByb3BlcnR5ID0gJ3NlYXJjaCc7XG4gICAgcmV0dXJuIHRoaXMuX2Rpc2NsYWltZXJHcm91cC5kaXNjbGFpbWVycy5maWx0ZXIoaXRlbSA9PiBpdGVtLnByb3BlcnR5ICE9PSBxdWlja1NlYXJjaFByb3BlcnR5KTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0RmlsdGVycyhmaWx0ZXJzKSB7XG4gICAgY29uc3QgZm9ybWF0dGVkRmlsdGVycyA9IHRoaXMuY29udmVydFRvRmlsdGVycyhmaWx0ZXJzKTtcblxuICAgIHRoaXMuZmlsdGVycy5mb3JFYWNoKGVsZW1lbnQgPT4ge1xuICAgICAgY29uc3QgY29tcGF0aWJsZU9iamVjdCA9IGZvcm1hdHRlZEZpbHRlcnMuZmluZChpdGVtID0+IGl0ZW0ucHJvcGVydHkgPT09IGVsZW1lbnQucHJvcGVydHkpO1xuXG4gICAgICBpZiAoY29tcGF0aWJsZU9iamVjdCkge1xuICAgICAgICBlbGVtZW50LmluaXRWYWx1ZSA9IGNvbXBhdGlibGVPYmplY3QudmFsdWU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkZWxldGUgZWxlbWVudC5pbml0VmFsdWU7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGNvbnZlcnRUb0ZpbHRlcnMoZmlsdGVycykge1xuICAgIHJldHVybiBPYmplY3QuZW50cmllcyhmaWx0ZXJzKS5tYXAoKFtwcm9wZXJ0eSwgdmFsdWVdKSA9PiAoeyBwcm9wZXJ0eSwgdmFsdWUgfSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBvcHRpb25zU2VydmljZURpc2NsYWltZXJMYWJlbCh2YWx1ZTogYW55LCBvcHRpb25zU2VydmljZU9iamVjdHNMaXN0OiBBcnJheTxQb0NvbWJvT3B0aW9uPikge1xuICAgIGNvbnN0IG9wdGlvblNlcnZpY2VNYXRjaCA9IG9wdGlvbnNTZXJ2aWNlT2JqZWN0c0xpc3QuZmluZChvcHRpb24gPT4gb3B0aW9uLnZhbHVlID09PSB2YWx1ZSk7XG5cbiAgICByZXR1cm4gb3B0aW9uU2VydmljZU1hdGNoLmxhYmVsIHx8IG9wdGlvblNlcnZpY2VNYXRjaC52YWx1ZTtcbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlEaXNjbGFpbWVyTGFiZWxWYWx1ZShmaWVsZDogYW55LCBmaWx0ZXJWYWx1ZTogYW55KSB7XG4gICAgY29uc3QgdmFsdWVzID0gQXJyYXkuaXNBcnJheShmaWx0ZXJWYWx1ZSkgPyBmaWx0ZXJWYWx1ZSA6IFtmaWx0ZXJWYWx1ZV07XG5cbiAgICBjb25zdCBsYWJlbHMgPSB2YWx1ZXMubWFwKHZhbHVlID0+IHtcbiAgICAgIGNvbnN0IGZpbHRlcmVkRmllbGQgPSBmaWVsZC5vcHRpb25zLmZpbmQob3B0aW9uID0+IG9wdGlvbi52YWx1ZSA9PT0gdmFsdWUgfHwgb3B0aW9uID09PSB2YWx1ZSk7XG5cbiAgICAgIGlmIChmaWx0ZXJlZEZpZWxkKSB7XG4gICAgICAgIHJldHVybiBmaWx0ZXJlZEZpZWxkLmxhYmVsIHx8IGZpbHRlcmVkRmllbGQudmFsdWUgfHwgZmlsdGVyZWRGaWVsZDtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBsYWJlbHMuam9pbignLCAnKTtcbiAgfVxuXG4gIHByaXZhdGUgZm9ybWF0RGF0ZShkYXRlOiBzdHJpbmcpIHtcbiAgICBjb25zdCB5ZWFyID0gcGFyc2VJbnQoZGF0ZS5zdWJzdHIoMCwgNCksIDEwKTtcbiAgICBjb25zdCBtb250aCA9IHBhcnNlSW50KGRhdGUuc3Vic3RyKDUsIDIpLCAxMCk7XG4gICAgY29uc3QgZGF5ID0gcGFyc2VJbnQoZGF0ZS5zdWJzdHIoOCwgMiksIDEwKTtcblxuICAgIHJldHVybiBuZXcgRGF0ZSh5ZWFyLCBtb250aCAtIDEsIGRheSkudG9Mb2NhbGVEYXRlU3RyaW5nKGdldEJyb3dzZXJMYW5ndWFnZSgpKTtcbiAgfVxuXG4gIHByaXZhdGUgZm9ybWF0QXJyYXlUb09iamVjdEtleVZhbHVlKFxuICAgIGZpbHRlcnM6IEFycmF5PHsgcHJvcGVydHk6IHN0cmluZzsgdmFsdWU/OiBhbnk7IGluaXRWYWx1ZT86IGFueSB9PlxuICApOiB7IFtrZXk6IHN0cmluZ106IGFueSB9IHtcbiAgICBjb25zdCBmb3JtYXR0ZWRPYmplY3QgPSBmaWx0ZXJzLnJlZHVjZShcbiAgICAgIChyZXN1bHQsIGl0ZW0pID0+IE9iamVjdC5hc3NpZ24ocmVzdWx0LCB7IFtpdGVtLnByb3BlcnR5XTogaXRlbS52YWx1ZSB8fCBpdGVtLmluaXRWYWx1ZSB9KSxcbiAgICAgIHt9XG4gICAgKTtcblxuICAgIE9iamVjdC5rZXlzKGZvcm1hdHRlZE9iamVjdCkuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgaWYgKCFmb3JtYXR0ZWRPYmplY3Rba2V5XSkge1xuICAgICAgICBkZWxldGUgZm9ybWF0dGVkT2JqZWN0W2tleV07XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gZm9ybWF0dGVkT2JqZWN0O1xuICB9XG5cbiAgcHJpdmF0ZSBmb3JtYXRWYWx1ZVRvQ3VycmVuY3koZmllbGQ6IGFueSwgdmFsdWU6IGFueSkge1xuICAgIGNvbnN0IGxhbmd1YWdlID0gdGhpcy5sYW5ndWFnZVNlcnZpY2UuZ2V0TGFuZ3VhZ2UoKTtcbiAgICByZXR1cm4gbmV3IEludGwuTnVtYmVyRm9ybWF0KGZpZWxkLmxvY2FsZSA/IGZpZWxkLmxvY2FsZSA6IGxhbmd1YWdlLCB7XG4gICAgICBtaW5pbXVtRnJhY3Rpb25EaWdpdHM6IDJcbiAgICB9KS5mb3JtYXQodmFsdWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRGaWVsZEJ5UHJvcGVydHkoZmllbGRzOiBBcnJheTxQb0R5bmFtaWNGb3JtRmllbGQ+LCBmaWVsZE5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBmaWVsZHMuZmluZCgoZmllbGQ6IFBvRHluYW1pY0Zvcm1GaWVsZCkgPT4gZmllbGQucHJvcGVydHkgPT09IGZpZWxkTmFtZSk7XG4gIH1cblxuICBwcml2YXRlIGdldEZpbHRlclZhbHVlVG9EaXNjbGFpbWVyKGZpZWxkOiBhbnksIHZhbHVlOiBhbnksIG9wdGlvbnNTZXJ2aWNlT2JqZWN0c0xpc3Q/OiBBcnJheTxQb0NvbWJvT3B0aW9uPikge1xuICAgIGlmIChmaWVsZC5vcHRpb25zU2VydmljZSAmJiBvcHRpb25zU2VydmljZU9iamVjdHNMaXN0KSB7XG4gICAgICByZXR1cm4gdGhpcy5vcHRpb25zU2VydmljZURpc2NsYWltZXJMYWJlbCh2YWx1ZSwgb3B0aW9uc1NlcnZpY2VPYmplY3RzTGlzdCk7XG4gICAgfVxuXG4gICAgaWYgKGZpZWxkLnR5cGUgPT09IFBvRHluYW1pY0ZpZWxkVHlwZS5DdXJyZW5jeSAmJiB2YWx1ZSkge1xuICAgICAgcmV0dXJuIHRoaXMuZm9ybWF0VmFsdWVUb0N1cnJlbmN5KGZpZWxkLCB2YWx1ZSk7XG4gICAgfVxuXG4gICAgaWYgKGZpZWxkLnR5cGUgPT09IFBvRHluYW1pY0ZpZWxkVHlwZS5EYXRlKSB7XG4gICAgICByZXR1cm4gZmllbGQucmFuZ2UgPyB0aGlzLmZvcm1hdERhdGUodmFsdWUuc3RhcnQpICsgJyAtICcgKyB0aGlzLmZvcm1hdERhdGUodmFsdWUuZW5kKSA6IHRoaXMuZm9ybWF0RGF0ZSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgaWYgKGZpZWxkLm9wdGlvbnMgJiYgdmFsdWUpIHtcbiAgICAgIHJldHVybiB0aGlzLmFwcGx5RGlzY2xhaW1lckxhYmVsVmFsdWUoZmllbGQsIHZhbHVlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICBwcml2YXRlIG9uUmVtb3ZlRGlzY2xhaW1lcihyZW1vdmVEYXRhOiBQb0Rpc2NsYWltZXJHcm91cFJlbW92ZUFjdGlvbikge1xuICAgIGNvbnN0IHsgY3VycmVudERpc2NsYWltZXJzIH0gPSByZW1vdmVEYXRhO1xuXG4gICAgdGhpcy5lbWl0Q2hhbmdlc0Rpc2NsYWltZXJzKGN1cnJlbnREaXNjbGFpbWVycyk7XG4gIH1cblxuICBwcml2YXRlIGVtaXRDaGFuZ2VzRGlzY2xhaW1lcnMoY3VycmVudERpc2NsYWltZXJzOiBhbnkpIHtcbiAgICB0aGlzLmNoYW5nZURpc2NsYWltZXJzLmVtaXQoY3VycmVudERpc2NsYWltZXJzKTtcbiAgICB0aGlzLnNldEZpbHRlcnModGhpcy5mb3JtYXRBcnJheVRvT2JqZWN0S2V5VmFsdWUoY3VycmVudERpc2NsYWltZXJzKSk7XG4gIH1cblxuICBwcml2YXRlIG9uUmVtb3ZlQWxsRGlzY2xhaW1lcnMoKSB7XG4gICAgdGhpcy5lbWl0Q2hhbmdlc0Rpc2NsYWltZXJzKFtdKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0RGlzY2xhaW1lcnMoZmlsdGVycywgb3B0aW9uc1NlcnZpY2VPYmplY3RzPzogQXJyYXk8UG9Db21ib09wdGlvbj4pIHtcbiAgICBjb25zdCBkaXNjbGFpbWVycyA9IFtdO1xuICAgIGNvbnN0IHByb3BlcnRpZXMgPSBPYmplY3Qua2V5cyhmaWx0ZXJzKTtcblxuICAgIHByb3BlcnRpZXMuZm9yRWFjaChwcm9wZXJ0eSA9PiB7XG4gICAgICBjb25zdCBmaWVsZCA9IHRoaXMuZ2V0RmllbGRCeVByb3BlcnR5KHRoaXMuZmlsdGVycywgcHJvcGVydHkpO1xuICAgICAgY29uc3QgbGFiZWwgPSBmaWVsZC5sYWJlbCB8fCBjYXBpdGFsaXplRmlyc3RMZXR0ZXIoZmllbGQucHJvcGVydHkpO1xuICAgICAgY29uc3QgdmFsdWUgPSBmaWx0ZXJzW3Byb3BlcnR5XTtcbiAgICAgIGNvbnN0IGhpZGVDbG9zZSA9XG4gICAgICAgIHRoaXMuaGlkZUNsb3NlRGlzY2xhaW1lcnMuc29tZShoaWRlQ2xvc2VEaXNjbGFpbWVyID0+IGhpZGVDbG9zZURpc2NsYWltZXIgPT09IHByb3BlcnR5KSB8fCBmYWxzZTtcblxuICAgICAgY29uc3QgdmFsdWVEaXNwbGF5ZWRPblRoZURpc2NsYWltZXJMYWJlbCA9IHRoaXMuZ2V0RmlsdGVyVmFsdWVUb0Rpc2NsYWltZXIoZmllbGQsIHZhbHVlLCBvcHRpb25zU2VydmljZU9iamVjdHMpO1xuXG4gICAgICBpZiAodmFsdWVEaXNwbGF5ZWRPblRoZURpc2NsYWltZXJMYWJlbCAhPT0gJycpIHtcbiAgICAgICAgZGlzY2xhaW1lcnMucHVzaCh7XG4gICAgICAgICAgbGFiZWw6IGAke2xhYmVsfTogJHt2YWx1ZURpc3BsYXllZE9uVGhlRGlzY2xhaW1lckxhYmVsfWAsXG4gICAgICAgICAgcHJvcGVydHksXG4gICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgaGlkZUNsb3NlXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGRpc2NsYWltZXJzO1xuICB9XG5cbiAgcHJpdmF0ZSBsb2FkT3B0aW9uc09uSW5pdGlhbGl6ZShvbkxvYWQ6IFVybE9yUG9DdXN0b21pemF0aW9uRnVuY3Rpb24pIHtcbiAgICB0aGlzLmxvYWRTdWJzY3JpcHRpb24gPSB0aGlzLmdldFBvRHluYW1pY1BhZ2VPcHRpb25zKG9uTG9hZCkuc3Vic2NyaWJlKHJlc3BvbnNlUG9PcHRpb24gPT5cbiAgICAgIHRoaXMucG9QYWdlQ3VzdG9taXphdGlvblNlcnZpY2UuY2hhbmdlT3JpZ2luYWxPcHRpb25zVG9OZXdPcHRpb25zKHRoaXMsIHJlc3BvbnNlUG9PcHRpb24pXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0UG9EeW5hbWljUGFnZU9wdGlvbnMob25Mb2FkOiBVcmxPclBvQ3VzdG9taXphdGlvbkZ1bmN0aW9uKTogT2JzZXJ2YWJsZTxQb1BhZ2VEeW5hbWljU2VhcmNoT3B0aW9ucz4ge1xuICAgIGNvbnN0IG9yaWdpbmFsT3B0aW9uOiBQb1BhZ2VEeW5hbWljU2VhcmNoT3B0aW9ucyA9IHtcbiAgICAgIHRpdGxlOiB0aGlzLnRpdGxlLFxuICAgICAgYWN0aW9uczogdGhpcy5hY3Rpb25zLFxuICAgICAgYnJlYWRjcnVtYjogdGhpcy5icmVhZGNydW1iLFxuICAgICAgZmlsdGVyczogdGhpcy5maWx0ZXJzLFxuICAgICAga2VlcEZpbHRlcnM6IHRoaXMua2VlcEZpbHRlcnMsXG4gICAgICBjb25jYXRGaWx0ZXJzOiB0aGlzLmNvbmNhdEZpbHRlcnMsXG4gICAgICBoaWRlUmVtb3ZlQWxsRGlzY2xhaW1lcjogdGhpcy5oaWRlUmVtb3ZlQWxsRGlzY2xhaW1lcixcbiAgICAgIGhpZGVDbG9zZURpc2NsYWltZXJzOiB0aGlzLmhpZGVDbG9zZURpc2NsYWltZXJzLFxuICAgICAgcXVpY2tTZWFyY2hXaWR0aDogdGhpcy5xdWlja1NlYXJjaFdpZHRoXG4gICAgfTtcblxuICAgIGNvbnN0IHBhZ2VPcHRpb25TY2hlbWE6IFBvUGFnZUR5bmFtaWNPcHRpb25zU2NoZW1hPFBvUGFnZUR5bmFtaWNTZWFyY2hPcHRpb25zPiA9IHtcbiAgICAgIHNjaGVtYTogW1xuICAgICAgICB7XG4gICAgICAgICAgbmFtZVByb3A6ICdmaWx0ZXJzJyxcbiAgICAgICAgICBtZXJnZTogdHJ1ZSxcbiAgICAgICAgICBrZXlGb3JNZXJnZTogJ3Byb3BlcnR5J1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZVByb3A6ICdhY3Rpb25zJyxcbiAgICAgICAgICBtZXJnZTogdHJ1ZSxcbiAgICAgICAgICBrZXlGb3JNZXJnZTogJ2xhYmVsJ1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZVByb3A6ICdicmVhZGNydW1iJ1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZVByb3A6ICd0aXRsZSdcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG5hbWVQcm9wOiAna2VlcEZpbHRlcnMnXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lUHJvcDogJ2NvbmNhdEZpbHRlcnMnXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lUHJvcDogJ2hpZGVSZW1vdmVBbGxEaXNjbGFpbWVyJ1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZVByb3A6ICdoaWRlQ2xvc2VEaXNjbGFpbWVycydcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG5hbWVQcm9wOiAncXVpY2tTZWFyY2hXaWR0aCdcbiAgICAgICAgfVxuICAgICAgXVxuICAgIH07XG5cbiAgICByZXR1cm4gdGhpcy5wb1BhZ2VDdXN0b21pemF0aW9uU2VydmljZS5nZXRDdXN0b21PcHRpb25zKG9uTG9hZCwgb3JpZ2luYWxPcHRpb24sIHBhZ2VPcHRpb25TY2hlbWEpO1xuICB9XG59XG4iLCI8cG8tcGFnZS1saXN0XG4gIFtwLWFjdGlvbnNdPVwiYWN0aW9uc1wiXG4gIFtwLWJyZWFkY3J1bWJdPVwiYnJlYWRjcnVtYlwiXG4gIFtwLWRpc2NsYWltZXItZ3JvdXBdPVwiZGlzY2xhaW1lckdyb3VwXCJcbiAgW3AtZmlsdGVyXT1cImZpbHRlclNldHRpbmdzXCJcbiAgW3AtdGl0bGVdPVwidGl0bGVcIlxuICBbcC1xdWljay1zZWFyY2gtdmFsdWVdPVwicXVpY2tTZWFyY2hWYWx1ZVwiXG4+XG4gIDxwby1hZHZhbmNlZC1maWx0ZXJcbiAgICBbcC1maWx0ZXJzXT1cImZpbHRlcnNcIlxuICAgIFtwLWtlZXAtZmlsdGVyc109XCJrZWVwRmlsdGVyc1wiXG4gICAgW3AtbGl0ZXJhbHNdPVwiYWR2YW5jZWRGaWx0ZXJMaXRlcmFsc1wiXG4gICAgKHAtc2VhcmNoLWV2ZW50KT1cIm9uQWR2YW5jZWRTZWFyY2goJGV2ZW50KVwiXG4gID5cbiAgPC9wby1hZHZhbmNlZC1maWx0ZXI+XG5cbiAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9wby1wYWdlLWxpc3Q+XG4iXX0=
|
|
310
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tcGFnZS1keW5hbWljLXNlYXJjaC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90ZW1wbGF0ZXMvc3JjL2xpYi9jb21wb25lbnRzL3BvLXBhZ2UtZHluYW1pYy1zZWFyY2gvcG8tcGFnZS1keW5hbWljLXNlYXJjaC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90ZW1wbGF0ZXMvc3JjL2xpYi9jb21wb25lbnRzL3BvLXBhZ2UtZHluYW1pYy1zZWFyY2gvcG8tcGFnZS1keW5hbWljLXNlYXJjaC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBd0MsTUFBTSxlQUFlLENBQUM7QUFHM0YsT0FBTyxFQUVMLGtCQUFrQixFQU1sQixtQkFBbUIsRUFDcEIsTUFBTSxzQkFBc0IsQ0FBQztBQUU5QixPQUFPLEVBQUUscUJBQXFCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUc3RSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUM5RixPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQzs7Ozs7O0FBTzNGOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUtILE1BQU0sT0FBTyw0QkFBNkIsU0FBUSxnQ0FBZ0M7SUFzQnRFO0lBQ0E7SUFDQTtJQXZCOEMsZ0JBQWdCLENBQTRCO0lBQ2xELFVBQVUsQ0FBc0I7SUFFMUUsZ0JBQWdCLENBQWU7SUFFdEIsZ0JBQWdCLEdBQXNCO1FBQ3JELE1BQU0sRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztRQUMxQyxTQUFTLEVBQUUsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDakQsV0FBVyxFQUFFLEVBQUU7UUFDZixL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bUJBQUMseUJBQXlCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO1lBQ0osVUFBVTtrQkFBM0QsU0FBUzttQkFBQyxtQkFBbUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIFZpZXdDaGlsZCwgT25Jbml0LCBPbkRlc3Ryb3ksIENoYW5nZURldGVjdG9yUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgUG9EaXNjbGFpbWVyR3JvdXAsXG4gIFBvRHluYW1pY0ZpZWxkVHlwZSxcbiAgUG9EeW5hbWljRm9ybUZpZWxkLFxuICBQb0xhbmd1YWdlU2VydmljZSxcbiAgUG9QYWdlRmlsdGVyLFxuICBQb0Rpc2NsYWltZXJHcm91cFJlbW92ZUFjdGlvbixcbiAgUG9Db21ib09wdGlvbixcbiAgUG9QYWdlTGlzdENvbXBvbmVudFxufSBmcm9tICdAcG8tdWkvbmctY29tcG9uZW50cyc7XG5cbmltcG9ydCB7IGNhcGl0YWxpemVGaXJzdExldHRlciwgZ2V0QnJvd3Nlckxhbmd1YWdlIH0gZnJvbSAnLi4vLi4vdXRpbHMvdXRpbCc7XG5pbXBvcnQgeyBQb1BhZ2VDdXN0b21pemF0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3BvLXBhZ2UtY3VzdG9taXphdGlvbi9wby1wYWdlLWN1c3RvbWl6YXRpb24uc2VydmljZSc7XG5cbmltcG9ydCB7IFBvQWR2YW5jZWRGaWx0ZXJDb21wb25lbnQgfSBmcm9tICcuL3BvLWFkdmFuY2VkLWZpbHRlci9wby1hZHZhbmNlZC1maWx0ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFBvUGFnZUR5bmFtaWNTZWFyY2hCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi9wby1wYWdlLWR5bmFtaWMtc2VhcmNoLWJhc2UuY29tcG9uZW50JztcbmltcG9ydCB7IFBvUGFnZUR5bmFtaWNTZWFyY2hPcHRpb25zIH0gZnJvbSAnLi9wby1wYWdlLWR5bmFtaWMtc2VhcmNoLW9wdGlvbnMuaW50ZXJmYWNlJztcbmltcG9ydCB7IFBvUGFnZUR5bmFtaWNPcHRpb25zU2NoZW1hIH0gZnJvbSAnLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHsgUG9QYWdlRHluYW1pY1NlYXJjaEZpbHRlcnMgfSBmcm9tICcuL3BvLXBhZ2UtZHluYW1pYy1zZWFyY2gtZmlsdGVycy5pbnRlcmZhY2UnO1xuXG50eXBlIFVybE9yUG9DdXN0b21pemF0aW9uRnVuY3Rpb24gPSBzdHJpbmcgfCAoKCkgPT4gUG9QYWdlRHluYW1pY1NlYXJjaE9wdGlvbnMpO1xuXG4vKipcbiAqIEBkb2NzRXh0ZW5kcyBQb1BhZ2VEeW5hbWljU2VhcmNoQmFzZUNvbXBvbmVudFxuICpcbiAqIEBleGFtcGxlXG4gKlxuICogPGV4YW1wbGUgbmFtZT1cInBvLXBhZ2UtZHluYW1pYy1zZWFyY2gtYmFzaWNcIiB0aXRsZT1cIlBPIFBhZ2UgRHluYW1pYyBTZWFyY2ggQmFzaWNcIj5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLXBhZ2UtZHluYW1pYy1zZWFyY2gtYmFzaWMvc2FtcGxlLXBvLXBhZ2UtZHluYW1pYy1zZWFyY2gtYmFzaWMuY29tcG9uZW50Lmh0bWxcIj4gPC9maWxlPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tcGFnZS1keW5hbWljLXNlYXJjaC1iYXNpYy9zYW1wbGUtcG8tcGFnZS1keW5hbWljLXNlYXJjaC1iYXNpYy5jb21wb25lbnQudHNcIj4gPC9maWxlPlxuICogPC9leGFtcGxlPlxuICpcbiAqIDxleGFtcGxlIG5hbWU9XCJwby1wYWdlLWR5bmFtaWMtc2VhcmNoLWhpcmluZy1wcm9jZXNzZXNcIiB0aXRsZT1cIlBPIFBhZ2UgRHluYW1pYyBTZWFyY2ggLSBIaXJpbmcgcHJvY2Vzc2VzXCI+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1wYWdlLWR5bmFtaWMtc2VhcmNoLWhpcmluZy1wcm9jZXNzZXMvc2FtcGxlLXBvLXBhZ2UtZHluYW1pYy1zZWFyY2gtaGlyaW5nLXByb2Nlc3Nlcy5jb21wb25lbnQuaHRtbFwiPiA8L2ZpbGU+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1wYWdlLWR5bmFtaWMtc2VhcmNoLWhpcmluZy1wcm9jZXNzZXMvc2FtcGxlLXBvLXBhZ2UtZHluYW1pYy1zZWFyY2gtaGlyaW5nLXByb2Nlc3Nlcy5jb21wb25lbnQudHNcIj4gPC9maWxlPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tcGFnZS1keW5hbWljLXNlYXJjaC1oaXJpbmctcHJvY2Vzc2VzL3NhbXBsZS1wby1wYWdlLWR5bmFtaWMtc2VhcmNoLWhpcmluZy1wcm9jZXNzZXMuc2VydmljZS50c1wiPiA8L2ZpbGU+XG4gKiA8L2V4YW1wbGU+XG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3BvLXBhZ2UtZHluYW1pYy1zZWFyY2gnLFxuICB0ZW1wbGF0ZVVybDogJy4vcG8tcGFnZS1keW5hbWljLXNlYXJjaC5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgUG9QYWdlRHluYW1pY1NlYXJjaENvbXBvbmVudCBleHRlbmRzIFBvUGFnZUR5bmFtaWNTZWFyY2hCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBAVmlld0NoaWxkKFBvQWR2YW5jZWRGaWx0ZXJDb21wb25lbnQsIHsgc3RhdGljOiB0cnVlIH0pIHBvQWR2YW5jZWRGaWx0ZXI6IFBvQWR2YW5jZWRGaWx0ZXJDb21wb25lbnQ7XG4gIEBWaWV3Q2hpbGQoUG9QYWdlTGlzdENvbXBvbmVudCwgeyBzdGF0aWM6IHRydWUgfSkgcG9QYWdlTGlzdDogUG9QYWdlTGlzdENvbXBvbmVudDtcblxuICBwcml2YXRlIGxvYWRTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9kaXNjbGFpbWVyR3JvdXA6IFBvRGlzY2xhaW1lckdyb3VwID0ge1xuICAgIHJlbW92ZTogdGhpcy5vblJlbW92ZURpc2NsYWltZXIuYmluZCh0aGlzKSxcbiAgICByZW1vdmVBbGw6IHRoaXMub25SZW1vdmVBbGxEaXNjbGFpbWVycy5iaW5kKHRoaXMpLFxuICAgIGRpc2NsYWltZXJzOiBbXSxcbiAgICB0aXRsZTogdGhpcy5saXRlcmFscy5kaXNjbGFpbWVyR3JvdXBUaXRsZSxcbiAgICBoaWRlUmVtb3ZlQWxsOiB0aGlzLmhpZGVSZW1vdmVBbGxEaXNjbGFpbWVyXG4gIH07XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfZmlsdGVyU2V0dGluZ3M6IFBvUGFnZUZpbHRlciA9IHtcbiAgICBhY3Rpb246IHRoaXMub25BY3Rpb24uYmluZCh0aGlzKSxcbiAgICBhZHZhbmNlZEFjdGlvbjogdGhpcy5vbkFkdmFuY2VkQWN0aW9uLmJpbmQodGhpcyksXG4gICAgcGxhY2Vob2xkZXI6IHRoaXMubGl0ZXJhbHMuc2VhcmNoUGxhY2Vob2xkZXIsXG4gICAgd2lkdGg6IHRoaXMucXVpY2tTZWFyY2hXaWR0aFxuICB9O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgbGFuZ3VhZ2VTZXJ2aWNlOiBQb0xhbmd1YWdlU2VydmljZSxcbiAgICBwcml2YXRlIHBvUGFnZUN1c3RvbWl6YXRpb25TZXJ2aWNlOiBQb1BhZ2VDdXN0b21pemF0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZlxuICApIHtcbiAgICBzdXBlcihsYW5ndWFnZVNlcnZpY2UpO1xuICB9XG5cbiAgZ2V0IGRpc2NsYWltZXJHcm91cCgpIHtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5fZGlzY2xhaW1lckdyb3VwLCB7XG4gICAgICB0aXRsZTogdGhpcy5saXRlcmFscy5kaXNjbGFpbWVyR3JvdXBUaXRsZSxcbiAgICAgIGhpZGVSZW1vdmVBbGw6IHRoaXMuaGlkZVJlbW92ZUFsbERpc2NsYWltZXJcbiAgICB9KTtcbiAgfVxuXG4gIGdldCBmaWx0ZXJTZXR0aW5ncygpIHtcbiAgICBjb25zdCB0aGVyZUFyZVZhbGlkRmlsdGVycyA9XG4gICAgICB0aGlzLmZpbHRlcnMubGVuZ3RoID4gMCAmJiB0aGlzLmZpbHRlcnMuc29tZShmaWx0ZXIgPT4gZmlsdGVyLnZpc2libGUgPT09IHRydWUgfHwgZmlsdGVyLnZpc2libGUgPT09IHVuZGVmaW5lZCk7XG4gICAgdGhpcy5fZmlsdGVyU2V0dGluZ3MuYWR2YW5jZWRBY3Rpb24gPSB0aGVyZUFyZVZhbGlkRmlsdGVycyA/IHRoaXMub25BZHZhbmNlZEFjdGlvbi5iaW5kKHRoaXMpIDogdW5kZWZpbmVkO1xuXG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oe30sIHRoaXMuX2ZpbHRlclNldHRpbmdzLCB7XG4gICAgICBwbGFjZWhvbGRlcjogdGhpcy5saXRlcmFscy5zZWFyY2hQbGFjZWhvbGRlcixcbiAgICAgIHdpZHRoOiB0aGlzLnF1aWNrU2VhcmNoV2lkdGhcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuc2V0QWR2YW5jZWRGaWx0ZXJMaXRlcmFscyh0aGlzLmxpdGVyYWxzKTtcbiAgICBpZiAodGhpcy5vbkxvYWQpIHtcbiAgICAgIHRoaXMubG9hZE9wdGlvbnNPbkluaXRpYWxpemUodGhpcy5vbkxvYWQpO1xuICAgIH1cbiAgICAvL2NvbG9jYSBvIGRpc2NsYWltZXIgaW5pY2lhbCBjYXNvIGVudmllIHAtcXVpY2stc2VhcmNoLXZhbHVlXG4gICAgaWYgKHRoaXMucXVpY2tTZWFyY2hWYWx1ZSkge1xuICAgICAgdGhpcy5vbkFjdGlvbih0aGlzLnF1aWNrU2VhcmNoVmFsdWUsIHRydWUpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIGlmICh0aGlzLmxvYWRTdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMubG9hZFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIG9uQ2hhbmdlRmlsdGVycyhmaWx0ZXJzOiBBcnJheTxQb1BhZ2VEeW5hbWljU2VhcmNoRmlsdGVycz4pIHtcbiAgICBjb25zdCBmaWx0ZXJPYmplY3RXaXRoVmFsdWUgPSBmaWx0ZXJzXG4gICAgICAuZmlsdGVyKGZpbHRlciA9PiBmaWx0ZXIuaW5pdFZhbHVlKVxuICAgICAgLnJlZHVjZSgocHJldiwgY3VycmVudCkgPT4gKHsgLi4ucHJldiwgLi4ueyBbY3VycmVudC5wcm9wZXJ0eV06IGN1cnJlbnQuaW5pdFZhbHVlIH0gfSksIHt9KTtcblxuICAgIGlmIChPYmplY3Qua2V5cyhmaWx0ZXJPYmplY3RXaXRoVmFsdWUpLmxlbmd0aCkge1xuICAgICAgdGhpcy5vbkFkdmFuY2VkU2VhcmNoKHsgZmlsdGVyOiBmaWx0ZXJPYmplY3RXaXRoVmFsdWUgfSk7XG4gICAgfVxuICB9XG5cbiAgb25BY3Rpb24ocXVpY2tGaWx0ZXI6IHN0cmluZywgcXVpY2tTZWFyY2hWYWx1ZT86IGJvb2xlYW4pIHtcbiAgICBjb25zdCBkaXNjbGFpbWVyUXVpY2tTZWFyY2hVcGRhdGVkID0ge1xuICAgICAgcHJvcGVydHk6ICdzZWFyY2gnLFxuICAgICAgbGFiZWw6IGAke3RoaXMubGl0ZXJhbHMucXVpY2tTZWFyY2hMYWJlbH0gJHtxdWlja0ZpbHRlcn1gLFxuICAgICAgdmFsdWU6IHF1aWNrRmlsdGVyLFxuICAgICAgaGlkZUNsb3NlOiB0aGlzLmhpZGVDbG9zZURpc2NsYWltZXJzLnNvbWUoaGlkZUNsb3NlRGlzY2xhaW1lciA9PiBoaWRlQ2xvc2VEaXNjbGFpbWVyID09PSAnc2VhcmNoJykgfHwgZmFsc2VcbiAgICB9O1xuXG4gICAgY29uc3QgZ2V0RGlzY2xhaW1lcnNXaXRoQ29uY2F0RmlsdGVycyA9ICgpID0+IFtcbiAgICAgIC4uLnRoaXMuZ2V0RGlzY2xhaW1lcnNXaXRob3V0UXVpY2tTZWFyY2goKSxcbiAgICAgIGRpc2NsYWltZXJRdWlja1NlYXJjaFVwZGF0ZWRcbiAgICBdO1xuXG4gICAgdGhpcy5fZGlzY2xhaW1lckdyb3VwLmRpc2NsYWltZXJzID0gdGhpcy5jb25jYXRGaWx0ZXJzXG4gICAgICA/IGdldERpc2NsYWltZXJzV2l0aENvbmNhdEZpbHRlcnMoKVxuICAgICAgOiBbZGlzY2xhaW1lclF1aWNrU2VhcmNoVXBkYXRlZF07XG5cbiAgICBpZiAodGhpcy5xdWlja1NlYXJjaC5vYnNlcnZlcnMgJiYgdGhpcy5xdWlja1NlYXJjaC5vYnNlcnZlcnMubGVuZ3RoID4gMCAmJiAhcXVpY2tTZWFyY2hWYWx1ZSkge1xuICAgICAgdGhpcy5xdWlja1NlYXJjaC5lbWl0KHF1aWNrRmlsdGVyKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5rZWVwRmlsdGVycyAmJiAhdGhpcy5jb25jYXRGaWx0ZXJzKSB7XG4gICAgICB0aGlzLmZpbHRlcnMuZm9yRWFjaChlbGVtZW50ID0+IGRlbGV0ZSBlbGVtZW50LmluaXRWYWx1ZSk7XG4gICAgfVxuXG4gICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBvbkFkdmFuY2VkQWN0aW9uKCkge1xuICAgIHRoaXMucG9BZHZhbmNlZEZpbHRlci5vcGVuKCk7XG4gIH1cblxuICBvbkFkdmFuY2VkU2VhcmNoKGZpbHRlcmVkSXRlbXMsIGlzQWR2YW5jZWRTZWFyY2g/KSB7XG4gICAgY29uc3QgeyBmaWx0ZXIsIG9wdGlvbnNTZXJ2aWNlIH0gPSBmaWx0ZXJlZEl0ZW1zO1xuXG4gICAgdGhpcy5fZGlzY2xhaW1lckdyb3VwLmRpc2NsYWltZXJzID0gdGhpcy5zZXREaXNjbGFpbWVycyhmaWx0ZXIsIG9wdGlvbnNTZXJ2aWNlKTtcblxuICAgIHRoaXMuc2V0RmlsdGVycyhmaWx0ZXIpO1xuXG4gICAgdGhpcy5hZHZhbmNlZFNlYXJjaC5lbWl0KGZpbHRlcik7XG5cbiAgICBpZiAoaXNBZHZhbmNlZFNlYXJjaCkge1xuICAgICAgdGhpcy5wb1BhZ2VMaXN0LmNsZWFySW5wdXRTZWFyY2goKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldERpc2NsYWltZXJzV2l0aG91dFF1aWNrU2VhcmNoKCkge1xuICAgIGNvbnN0IHF1aWNrU2VhcmNoUHJvcGVydHkgPSAnc2VhcmNoJztcbiAgICByZXR1cm4gdGhpcy5fZGlzY2xhaW1lckdyb3VwLmRpc2NsYWltZXJzLmZpbHRlcihpdGVtID0+IGl0ZW0ucHJvcGVydHkgIT09IHF1aWNrU2VhcmNoUHJvcGVydHkpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRGaWx0ZXJzKGZpbHRlcnMpIHtcbiAgICBjb25zdCBmb3JtYXR0ZWRGaWx0ZXJzID0gdGhpcy5jb252ZXJ0VG9GaWx0ZXJzKGZpbHRlcnMpO1xuXG4gICAgdGhpcy5maWx0ZXJzLmZvckVhY2goZWxlbWVudCA9PiB7XG4gICAgICBjb25zdCBjb21wYXRpYmxlT2JqZWN0ID0gZm9ybWF0dGVkRmlsdGVycy5maW5kKGl0ZW0gPT4gaXRlbS5wcm9wZXJ0eSA9PT0gZWxlbWVudC5wcm9wZXJ0eSk7XG5cbiAgICAgIGlmIChjb21wYXRpYmxlT2JqZWN0KSB7XG4gICAgICAgIGVsZW1lbnQuaW5pdFZhbHVlID0gY29tcGF0aWJsZU9iamVjdC52YWx1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGRlbGV0ZSBlbGVtZW50LmluaXRWYWx1ZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgY29udmVydFRvRmlsdGVycyhmaWx0ZXJzKSB7XG4gICAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKGZpbHRlcnMpLm1hcCgoW3Byb3BlcnR5LCB2YWx1ZV0pID0+ICh7IHByb3BlcnR5LCB2YWx1ZSB9KSk7XG4gIH1cblxuICBwcml2YXRlIG9wdGlvbnNTZXJ2aWNlRGlzY2xhaW1lckxhYmVsKHZhbHVlOiBhbnksIG9wdGlvbnNTZXJ2aWNlT2JqZWN0c0xpc3Q6IEFycmF5PFBvQ29tYm9PcHRpb24+KSB7XG4gICAgY29uc3Qgb3B0aW9uU2VydmljZU1hdGNoID0gb3B0aW9uc1NlcnZpY2VPYmplY3RzTGlzdC5maW5kKG9wdGlvbiA9PiBvcHRpb24udmFsdWUgPT09IHZhbHVlKTtcblxuICAgIHJldHVybiBvcHRpb25TZXJ2aWNlTWF0Y2gubGFiZWwgfHwgb3B0aW9uU2VydmljZU1hdGNoLnZhbHVlO1xuICB9XG5cbiAgcHJpdmF0ZSBhcHBseURpc2NsYWltZXJMYWJlbFZhbHVlKGZpZWxkOiBhbnksIGZpbHRlclZhbHVlOiBhbnkpIHtcbiAgICBjb25zdCB2YWx1ZXMgPSBBcnJheS5pc0FycmF5KGZpbHRlclZhbHVlKSA/IGZpbHRlclZhbHVlIDogW2ZpbHRlclZhbHVlXTtcblxuICAgIGNvbnN0IGxhYmVscyA9IHZhbHVlcy5tYXAodmFsdWUgPT4ge1xuICAgICAgY29uc3QgZmlsdGVyZWRGaWVsZCA9IGZpZWxkLm9wdGlvbnMuZmluZChvcHRpb24gPT4gb3B0aW9uLnZhbHVlID09PSB2YWx1ZSB8fCBvcHRpb24gPT09IHZhbHVlKTtcblxuICAgICAgaWYgKGZpbHRlcmVkRmllbGQpIHtcbiAgICAgICAgcmV0dXJuIGZpbHRlcmVkRmllbGQubGFiZWwgfHwgZmlsdGVyZWRGaWVsZC52YWx1ZSB8fCBmaWx0ZXJlZEZpZWxkO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGxhYmVscy5qb2luKCcsICcpO1xuICB9XG5cbiAgcHJpdmF0ZSBmb3JtYXREYXRlKGRhdGU6IHN0cmluZykge1xuICAgIGNvbnN0IHllYXIgPSBwYXJzZUludChkYXRlLnN1YnN0cigwLCA0KSwgMTApO1xuICAgIGNvbnN0IG1vbnRoID0gcGFyc2VJbnQoZGF0ZS5zdWJzdHIoNSwgMiksIDEwKTtcbiAgICBjb25zdCBkYXkgPSBwYXJzZUludChkYXRlLnN1YnN0cig4LCAyKSwgMTApO1xuXG4gICAgcmV0dXJuIG5ldyBEYXRlKHllYXIsIG1vbnRoIC0gMSwgZGF5KS50b0xvY2FsZURhdGVTdHJpbmcoZ2V0QnJvd3Nlckxhbmd1YWdlKCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBmb3JtYXRBcnJheVRvT2JqZWN0S2V5VmFsdWUoXG4gICAgZmlsdGVyczogQXJyYXk8eyBwcm9wZXJ0eTogc3RyaW5nOyB2YWx1ZT86IGFueTsgaW5pdFZhbHVlPzogYW55IH0+XG4gICk6IHsgW2tleTogc3RyaW5nXTogYW55IH0ge1xuICAgIGNvbnN0IGZvcm1hdHRlZE9iamVjdCA9IGZpbHRlcnMucmVkdWNlKFxuICAgICAgKHJlc3VsdCwgaXRlbSkgPT4gT2JqZWN0LmFzc2lnbihyZXN1bHQsIHsgW2l0ZW0ucHJvcGVydHldOiBpdGVtLnZhbHVlIHx8IGl0ZW0uaW5pdFZhbHVlIH0pLFxuICAgICAge31cbiAgICApO1xuXG4gICAgT2JqZWN0LmtleXMoZm9ybWF0dGVkT2JqZWN0KS5mb3JFYWNoKGtleSA9PiB7XG4gICAgICBpZiAoIWZvcm1hdHRlZE9iamVjdFtrZXldKSB7XG4gICAgICAgIGRlbGV0ZSBmb3JtYXR0ZWRPYmplY3Rba2V5XTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBmb3JtYXR0ZWRPYmplY3Q7XG4gIH1cblxuICBwcml2YXRlIGZvcm1hdFZhbHVlVG9DdXJyZW5jeShmaWVsZDogYW55LCB2YWx1ZTogYW55KSB7XG4gICAgY29uc3QgbGFuZ3VhZ2UgPSB0aGlzLmxhbmd1YWdlU2VydmljZS5nZXRMYW5ndWFnZSgpO1xuICAgIHJldHVybiBuZXcgSW50bC5OdW1iZXJGb3JtYXQoZmllbGQubG9jYWxlID8gZmllbGQubG9jYWxlIDogbGFuZ3VhZ2UsIHtcbiAgICAgIG1pbmltdW1GcmFjdGlvbkRpZ2l0czogMlxuICAgIH0pLmZvcm1hdCh2YWx1ZSk7XG4gIH1cblxuICBwcml2YXRlIGdldEZpZWxkQnlQcm9wZXJ0eShmaWVsZHM6IEFycmF5PFBvRHluYW1pY0Zvcm1GaWVsZD4sIGZpZWxkTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGZpZWxkcy5maW5kKChmaWVsZDogUG9EeW5hbWljRm9ybUZpZWxkKSA9PiBmaWVsZC5wcm9wZXJ0eSA9PT0gZmllbGROYW1lKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RmlsdGVyVmFsdWVUb0Rpc2NsYWltZXIoZmllbGQ6IGFueSwgdmFsdWU6IGFueSwgb3B0aW9uc1NlcnZpY2VPYmplY3RzTGlzdD86IEFycmF5PFBvQ29tYm9PcHRpb24+KSB7XG4gICAgaWYgKGZpZWxkLm9wdGlvbnNTZXJ2aWNlICYmIG9wdGlvbnNTZXJ2aWNlT2JqZWN0c0xpc3QpIHtcbiAgICAgIHJldHVybiB0aGlzLm9wdGlvbnNTZXJ2aWNlRGlzY2xhaW1lckxhYmVsKHZhbHVlLCBvcHRpb25zU2VydmljZU9iamVjdHNMaXN0KTtcbiAgICB9XG5cbiAgICBpZiAoZmllbGQudHlwZSA9PT0gUG9EeW5hbWljRmllbGRUeXBlLkN1cnJlbmN5ICYmIHZhbHVlKSB7XG4gICAgICByZXR1cm4gdGhpcy5mb3JtYXRWYWx1ZVRvQ3VycmVuY3koZmllbGQsIHZhbHVlKTtcbiAgICB9XG5cbiAgICBpZiAoZmllbGQudHlwZSA9PT0gUG9EeW5hbWljRmllbGRUeXBlLkRhdGUpIHtcbiAgICAgIHJldHVybiBmaWVsZC5yYW5nZSA/IHRoaXMuZm9ybWF0RGF0ZSh2YWx1ZS5zdGFydCkgKyAnIC0gJyArIHRoaXMuZm9ybWF0RGF0ZSh2YWx1ZS5lbmQpIDogdGhpcy5mb3JtYXREYXRlKHZhbHVlKTtcbiAgICB9XG5cbiAgICBpZiAoZmllbGQub3B0aW9ucyAmJiB2YWx1ZSkge1xuICAgICAgcmV0dXJuIHRoaXMuYXBwbHlEaXNjbGFpbWVyTGFiZWxWYWx1ZShmaWVsZCwgdmFsdWUpO1xuICAgIH1cblxuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuXG4gIHByaXZhdGUgb25SZW1vdmVEaXNjbGFpbWVyKHJlbW92ZURhdGE6IFBvRGlzY2xhaW1lckdyb3VwUmVtb3ZlQWN0aW9uKSB7XG4gICAgY29uc3QgeyBjdXJyZW50RGlzY2xhaW1lcnMgfSA9IHJlbW92ZURhdGE7XG5cbiAgICB0aGlzLmVtaXRDaGFuZ2VzRGlzY2xhaW1lcnMoY3VycmVudERpc2NsYWltZXJzKTtcbiAgfVxuXG4gIHByaXZhdGUgZW1pdENoYW5nZXNEaXNjbGFpbWVycyhjdXJyZW50RGlzY2xhaW1lcnM6IGFueSkge1xuICAgIHRoaXMuY2hhbmdlRGlzY2xhaW1lcnMuZW1pdChjdXJyZW50RGlzY2xhaW1lcnMpO1xuICAgIHRoaXMuc2V0RmlsdGVycyh0aGlzLmZvcm1hdEFycmF5VG9PYmplY3RLZXlWYWx1ZShjdXJyZW50RGlzY2xhaW1lcnMpKTtcbiAgfVxuXG4gIHByaXZhdGUgb25SZW1vdmVBbGxEaXNjbGFpbWVycygpIHtcbiAgICB0aGlzLmVtaXRDaGFuZ2VzRGlzY2xhaW1lcnMoW10pO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXREaXNjbGFpbWVycyhmaWx0ZXJzLCBvcHRpb25zU2VydmljZU9iamVjdHM/OiBBcnJheTxQb0NvbWJvT3B0aW9uPikge1xuICAgIGNvbnN0IGRpc2NsYWltZXJzID0gW107XG4gICAgY29uc3QgcHJvcGVydGllcyA9IE9iamVjdC5rZXlzKGZpbHRlcnMpO1xuXG4gICAgcHJvcGVydGllcy5mb3JFYWNoKHByb3BlcnR5ID0+IHtcbiAgICAgIGNvbnN0IGZpZWxkID0gdGhpcy5nZXRGaWVsZEJ5UHJvcGVydHkodGhpcy5maWx0ZXJzLCBwcm9wZXJ0eSk7XG4gICAgICBjb25zdCBsYWJlbCA9IGZpZWxkLmxhYmVsIHx8IGNhcGl0YWxpemVGaXJzdExldHRlcihmaWVsZC5wcm9wZXJ0eSk7XG4gICAgICBjb25zdCB2YWx1ZSA9IGZpbHRlcnNbcHJvcGVydHldO1xuICAgICAgY29uc3QgaGlkZUNsb3NlID1cbiAgICAgICAgdGhpcy5oaWRlQ2xvc2VEaXNjbGFpbWVycy5zb21lKGhpZGVDbG9zZURpc2NsYWltZXIgPT4gaGlkZUNsb3NlRGlzY2xhaW1lciA9PT0gcHJvcGVydHkpIHx8IGZhbHNlO1xuXG4gICAgICBjb25zdCB2YWx1ZURpc3BsYXllZE9uVGhlRGlzY2xhaW1lckxhYmVsID0gdGhpcy5nZXRGaWx0ZXJWYWx1ZVRvRGlzY2xhaW1lcihmaWVsZCwgdmFsdWUsIG9wdGlvbnNTZXJ2aWNlT2JqZWN0cyk7XG5cbiAgICAgIGlmICh2YWx1ZURpc3BsYXllZE9uVGhlRGlzY2xhaW1lckxhYmVsICE9PSAnJykge1xuICAgICAgICBkaXNjbGFpbWVycy5wdXNoKHtcbiAgICAgICAgICBsYWJlbDogYCR7bGFiZWx9OiAke3ZhbHVlRGlzcGxheWVkT25UaGVEaXNjbGFpbWVyTGFiZWx9YCxcbiAgICAgICAgICBwcm9wZXJ0eSxcbiAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICBoaWRlQ2xvc2VcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gZGlzY2xhaW1lcnM7XG4gIH1cblxuICBwcml2YXRlIGxvYWRPcHRpb25zT25Jbml0aWFsaXplKG9uTG9hZDogVXJsT3JQb0N1c3RvbWl6YXRpb25GdW5jdGlvbikge1xuICAgIHRoaXMubG9hZFN1YnNjcmlwdGlvbiA9IHRoaXMuZ2V0UG9EeW5hbWljUGFnZU9wdGlvbnMob25Mb2FkKS5zdWJzY3JpYmUocmVzcG9uc2VQb09wdGlvbiA9PlxuICAgICAgdGhpcy5wb1BhZ2VDdXN0b21pemF0aW9uU2VydmljZS5jaGFuZ2VPcmlnaW5hbE9wdGlvbnNUb05ld09wdGlvbnModGhpcywgcmVzcG9uc2VQb09wdGlvbilcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRQb0R5bmFtaWNQYWdlT3B0aW9ucyhvbkxvYWQ6IFVybE9yUG9DdXN0b21pemF0aW9uRnVuY3Rpb24pOiBPYnNlcnZhYmxlPFBvUGFnZUR5bmFtaWNTZWFyY2hPcHRpb25zPiB7XG4gICAgY29uc3Qgb3JpZ2luYWxPcHRpb246IFBvUGFnZUR5bmFtaWNTZWFyY2hPcHRpb25zID0ge1xuICAgICAgdGl0bGU6IHRoaXMudGl0bGUsXG4gICAgICBhY3Rpb25zOiB0aGlzLmFjdGlvbnMsXG4gICAgICBicmVhZGNydW1iOiB0aGlzLmJyZWFkY3J1bWIsXG4gICAgICBmaWx0ZXJzOiB0aGlzLmZpbHRlcnMsXG4gICAgICBrZWVwRmlsdGVyczogdGhpcy5rZWVwRmlsdGVycyxcbiAgICAgIGNvbmNhdEZpbHRlcnM6IHRoaXMuY29uY2F0RmlsdGVycyxcbiAgICAgIGhpZGVSZW1vdmVBbGxEaXNjbGFpbWVyOiB0aGlzLmhpZGVSZW1vdmVBbGxEaXNjbGFpbWVyLFxuICAgICAgaGlkZUNsb3NlRGlzY2xhaW1lcnM6IHRoaXMuaGlkZUNsb3NlRGlzY2xhaW1lcnMsXG4gICAgICBxdWlja1NlYXJjaFdpZHRoOiB0aGlzLnF1aWNrU2VhcmNoV2lkdGhcbiAgICB9O1xuXG4gICAgY29uc3QgcGFnZU9wdGlvblNjaGVtYTogUG9QYWdlRHluYW1pY09wdGlvbnNTY2hlbWE8UG9QYWdlRHluYW1pY1NlYXJjaE9wdGlvbnM+ID0ge1xuICAgICAgc2NoZW1hOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lUHJvcDogJ2ZpbHRlcnMnLFxuICAgICAgICAgIG1lcmdlOiB0cnVlLFxuICAgICAgICAgIGtleUZvck1lcmdlOiAncHJvcGVydHknXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lUHJvcDogJ2FjdGlvbnMnLFxuICAgICAgICAgIG1lcmdlOiB0cnVlLFxuICAgICAgICAgIGtleUZvck1lcmdlOiAnbGFiZWwnXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lUHJvcDogJ2JyZWFkY3J1bWInXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lUHJvcDogJ3RpdGxlJ1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZVByb3A6ICdrZWVwRmlsdGVycydcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG5hbWVQcm9wOiAnY29uY2F0RmlsdGVycydcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG5hbWVQcm9wOiAnaGlkZVJlbW92ZUFsbERpc2NsYWltZXInXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lUHJvcDogJ2hpZGVDbG9zZURpc2NsYWltZXJzJ1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZVByb3A6ICdxdWlja1NlYXJjaFdpZHRoJ1xuICAgICAgICB9XG4gICAgICBdXG4gICAgfTtcblxuICAgIHJldHVybiB0aGlzLnBvUGFnZUN1c3RvbWl6YXRpb25TZXJ2aWNlLmdldEN1c3RvbU9wdGlvbnMob25Mb2FkLCBvcmlnaW5hbE9wdGlvbiwgcGFnZU9wdGlvblNjaGVtYSk7XG4gIH1cbn1cbiIsIjxwby1wYWdlLWxpc3RcbiAgI3BvUGFnZUxpc3RcbiAgW3AtYWN0aW9uc109XCJhY3Rpb25zXCJcbiAgW3AtYnJlYWRjcnVtYl09XCJicmVhZGNydW1iXCJcbiAgW3AtZGlzY2xhaW1lci1ncm91cF09XCJkaXNjbGFpbWVyR3JvdXBcIlxuICBbcC1maWx0ZXJdPVwiZmlsdGVyU2V0dGluZ3NcIlxuICBbcC10aXRsZV09XCJ0aXRsZVwiXG4gIFtwLXF1aWNrLXNlYXJjaC12YWx1ZV09XCJxdWlja1NlYXJjaFZhbHVlXCJcbj5cbiAgPHBvLWFkdmFuY2VkLWZpbHRlclxuICAgIFtwLWZpbHRlcnNdPVwiZmlsdGVyc1wiXG4gICAgW3Ata2VlcC1maWx0ZXJzXT1cImtlZXBGaWx0ZXJzXCJcbiAgICBbcC1saXRlcmFsc109XCJhZHZhbmNlZEZpbHRlckxpdGVyYWxzXCJcbiAgICAocC1zZWFyY2gtZXZlbnQpPVwib25BZHZhbmNlZFNlYXJjaCgkZXZlbnQsIHRydWUpXCJcbiAgPlxuICA8L3BvLWFkdmFuY2VkLWZpbHRlcj5cblxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L3BvLXBhZ2UtbGlzdD5cbiJdfQ==
|
|
@@ -5,7 +5,7 @@ import { CommonModule } from '@angular/common';
|
|
|
5
5
|
import * as i5 from '@angular/forms';
|
|
6
6
|
import { FormsModule, NgForm } from '@angular/forms';
|
|
7
7
|
import * as i2 from '@po-ui/ng-components';
|
|
8
|
-
import { poLocaleDefault, poLocales, PoI18nPipe, PoFieldModule, PoModalModule, poLanguageDefault, PoDividerModule, PoLogoModule, PoModule, PoModalComponent, PoDynamicModule, PoPageModule, PoWidgetModule, PoButtonModule, PoGridModule, PoDynamicFormComponent, PoDynamicFieldType, PoLanguageModule, PoTableColumnSortType, PoTableModule, PoStepperOrientation, PoInfoOrientation, PoStepperStatus, PoContainerModule, PoDialogModule, PoInfoModule, PoStepperModule } from '@po-ui/ng-components';
|
|
8
|
+
import { poLocaleDefault, poLocales, PoI18nPipe, PoFieldModule, PoModalModule, poLanguageDefault, PoDividerModule, PoLogoModule, PoModule, PoModalComponent, PoDynamicModule, PoPageModule, PoWidgetModule, PoButtonModule, PoGridModule, PoDynamicFormComponent, PoDynamicFieldType, PoPageListComponent, PoLanguageModule, PoTableColumnSortType, PoTableModule, PoStepperOrientation, PoInfoOrientation, PoStepperStatus, PoContainerModule, PoDialogModule, PoInfoModule, PoStepperModule } from '@po-ui/ng-components';
|
|
9
9
|
import * as i1$1 from '@angular/router';
|
|
10
10
|
import { RouterModule } from '@angular/router';
|
|
11
11
|
import * as i1 from '@angular/common/http';
|
|
@@ -5266,6 +5266,7 @@ class PoPageDynamicSearchComponent extends PoPageDynamicSearchBaseComponent {
|
|
|
5266
5266
|
poPageCustomizationService;
|
|
5267
5267
|
changeDetector;
|
|
5268
5268
|
poAdvancedFilter;
|
|
5269
|
+
poPageList;
|
|
5269
5270
|
loadSubscription;
|
|
5270
5271
|
_disclaimerGroup = {
|
|
5271
5272
|
remove: this.onRemoveDisclaimer.bind(this),
|
|
@@ -5348,11 +5349,14 @@ class PoPageDynamicSearchComponent extends PoPageDynamicSearchBaseComponent {
|
|
|
5348
5349
|
onAdvancedAction() {
|
|
5349
5350
|
this.poAdvancedFilter.open();
|
|
5350
5351
|
}
|
|
5351
|
-
onAdvancedSearch(filteredItems) {
|
|
5352
|
+
onAdvancedSearch(filteredItems, isAdvancedSearch) {
|
|
5352
5353
|
const { filter, optionsService } = filteredItems;
|
|
5353
5354
|
this._disclaimerGroup.disclaimers = this.setDisclaimers(filter, optionsService);
|
|
5354
5355
|
this.setFilters(filter);
|
|
5355
5356
|
this.advancedSearch.emit(filter);
|
|
5357
|
+
if (isAdvancedSearch) {
|
|
5358
|
+
this.poPageList.clearInputSearch();
|
|
5359
|
+
}
|
|
5356
5360
|
}
|
|
5357
5361
|
getDisclaimersWithoutQuickSearch() {
|
|
5358
5362
|
const quickSearchProperty = 'search';
|
|
@@ -5512,28 +5516,33 @@ class PoPageDynamicSearchComponent extends PoPageDynamicSearchBaseComponent {
|
|
|
5512
5516
|
static ɵfac = function PoPageDynamicSearchComponent_Factory(t) { return new (t || PoPageDynamicSearchComponent)(i0.ɵɵdirectiveInject(i2.PoLanguageService), i0.ɵɵdirectiveInject(PoPageCustomizationService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); };
|
|
5513
5517
|
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PoPageDynamicSearchComponent, selectors: [["po-page-dynamic-search"]], viewQuery: function PoPageDynamicSearchComponent_Query(rf, ctx) { if (rf & 1) {
|
|
5514
5518
|
i0.ɵɵviewQuery(PoAdvancedFilterComponent, 7);
|
|
5519
|
+
i0.ɵɵviewQuery(PoPageListComponent, 7);
|
|
5515
5520
|
} if (rf & 2) {
|
|
5516
5521
|
let _t;
|
|
5517
5522
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.poAdvancedFilter = _t.first);
|
|
5518
|
-
|
|
5523
|
+
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.poPageList = _t.first);
|
|
5524
|
+
} }, features: [i0.ɵɵInheritDefinitionFeature], ngContentSelectors: _c0$4, decls: 4, vars: 9, consts: [[3, "p-actions", "p-breadcrumb", "p-disclaimer-group", "p-filter", "p-title", "p-quick-search-value"], ["poPageList", ""], [3, "p-filters", "p-keep-filters", "p-literals", "p-search-event"]], template: function PoPageDynamicSearchComponent_Template(rf, ctx) { if (rf & 1) {
|
|
5519
5525
|
i0.ɵɵprojectionDef();
|
|
5520
|
-
i0.ɵɵelementStart(0, "po-page-list", 0)(
|
|
5521
|
-
i0.ɵɵlistener("p-search-event", function
|
|
5526
|
+
i0.ɵɵelementStart(0, "po-page-list", 0, 1)(2, "po-advanced-filter", 2);
|
|
5527
|
+
i0.ɵɵlistener("p-search-event", function PoPageDynamicSearchComponent_Template_po_advanced_filter_p_search_event_2_listener($event) { return ctx.onAdvancedSearch($event, true); });
|
|
5522
5528
|
i0.ɵɵelementEnd();
|
|
5523
|
-
i0.ɵɵprojection(
|
|
5529
|
+
i0.ɵɵprojection(3);
|
|
5524
5530
|
i0.ɵɵelementEnd();
|
|
5525
5531
|
} if (rf & 2) {
|
|
5526
5532
|
i0.ɵɵproperty("p-actions", ctx.actions)("p-breadcrumb", ctx.breadcrumb)("p-disclaimer-group", ctx.disclaimerGroup)("p-filter", ctx.filterSettings)("p-title", ctx.title)("p-quick-search-value", ctx.quickSearchValue);
|
|
5527
|
-
i0.ɵɵadvance(
|
|
5533
|
+
i0.ɵɵadvance(2);
|
|
5528
5534
|
i0.ɵɵproperty("p-filters", ctx.filters)("p-keep-filters", ctx.keepFilters)("p-literals", ctx.advancedFilterLiterals);
|
|
5529
5535
|
} }, dependencies: [i2.PoPageListComponent, PoAdvancedFilterComponent], encapsulation: 2 });
|
|
5530
5536
|
}
|
|
5531
5537
|
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PoPageDynamicSearchComponent, [{
|
|
5532
5538
|
type: Component,
|
|
5533
|
-
args: [{ selector: 'po-page-dynamic-search', template: "<po-page-list\n [p-actions]=\"actions\"\n [p-breadcrumb]=\"breadcrumb\"\n [p-disclaimer-group]=\"disclaimerGroup\"\n [p-filter]=\"filterSettings\"\n [p-title]=\"title\"\n [p-quick-search-value]=\"quickSearchValue\"\n>\n <po-advanced-filter\n [p-filters]=\"filters\"\n [p-keep-filters]=\"keepFilters\"\n [p-literals]=\"advancedFilterLiterals\"\n (p-search-event)=\"onAdvancedSearch($event)\"\n >\n </po-advanced-filter>\n\n <ng-content></ng-content>\n</po-page-list>\n" }]
|
|
5539
|
+
args: [{ selector: 'po-page-dynamic-search', template: "<po-page-list\n #poPageList\n [p-actions]=\"actions\"\n [p-breadcrumb]=\"breadcrumb\"\n [p-disclaimer-group]=\"disclaimerGroup\"\n [p-filter]=\"filterSettings\"\n [p-title]=\"title\"\n [p-quick-search-value]=\"quickSearchValue\"\n>\n <po-advanced-filter\n [p-filters]=\"filters\"\n [p-keep-filters]=\"keepFilters\"\n [p-literals]=\"advancedFilterLiterals\"\n (p-search-event)=\"onAdvancedSearch($event, true)\"\n >\n </po-advanced-filter>\n\n <ng-content></ng-content>\n</po-page-list>\n" }]
|
|
5534
5540
|
}], function () { return [{ type: i2.PoLanguageService }, { type: PoPageCustomizationService }, { type: i0.ChangeDetectorRef }]; }, { poAdvancedFilter: [{
|
|
5535
5541
|
type: ViewChild,
|
|
5536
5542
|
args: [PoAdvancedFilterComponent, { static: true }]
|
|
5543
|
+
}], poPageList: [{
|
|
5544
|
+
type: ViewChild,
|
|
5545
|
+
args: [PoPageListComponent, { static: true }]
|
|
5537
5546
|
}] }); })();
|
|
5538
5547
|
|
|
5539
5548
|
/**
|