@universis/ngx-tables 6.14.2 → 9.14.2
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/bundles/universis-ngx-tables.umd.js +4902 -6847
- package/bundles/universis-ngx-tables.umd.js.map +1 -1
- package/bundles/universis-ngx-tables.umd.min.js +15 -1
- package/bundles/universis-ngx-tables.umd.min.js.map +1 -1
- package/esm2015/lib/actions/table.actions.js +7 -49
- package/esm2015/lib/advanced-aggregator.js +0 -5
- package/esm2015/lib/components/add-items/add-items.component.js +36 -96
- package/esm2015/lib/components/advanced-aggregator/advanced-aggregator.component.js +48 -103
- package/esm2015/lib/components/advanced-aggregator-list/advanced-aggregator-list.component.js +36 -58
- package/esm2015/lib/components/advanced-list/advanced-list.component.js +67 -120
- package/esm2015/lib/components/advanced-row-action/advanced-row-action.component.js +61 -118
- package/esm2015/lib/components/advanced-search-form/advanced-search-form.component.js +47 -99
- package/esm2015/lib/components/advanced-select/advanced-select.component.js +25 -58
- package/esm2015/lib/components/advanced-select/advanced-select.service.js +10 -27
- package/esm2015/lib/components/advanced-table/advanced-filter-value-provider.service.js +13 -36
- package/esm2015/lib/components/advanced-table/advanced-table-resolvers.js +22 -50
- package/esm2015/lib/components/advanced-table/advanced-table-search-base.js +15 -37
- package/esm2015/lib/components/advanced-table/advanced-table-search.component.js +55 -227
- package/esm2015/lib/components/advanced-table/advanced-table-settings.component.js +23 -96
- package/esm2015/lib/components/advanced-table/advanced-table.component.js +303 -688
- package/esm2015/lib/components/advanced-table/advanced-table.formatters.interface.js +1 -10
- package/esm2015/lib/components/advanced-table/advanced-table.formatters.js +19 -230
- package/esm2015/lib/components/advanced-table/advanced-table.interfaces.js +0 -5
- package/esm2015/lib/components/advanced-table/custom-button.formatter.js +3 -17
- package/esm2015/lib/components/advanced-table-modal/advanced-table-modal-base.component.js +77 -198
- package/esm2015/lib/components/column-selector/column-selector.component.js +39 -109
- package/esm2015/lib/components/column-selector/column-selector.service.js +9 -26
- package/esm2015/lib/components/table-simple-header/table-simple-header.component.js +28 -51
- package/esm2015/lib/directives/advance-search-state.directive.js +22 -54
- package/esm2015/lib/directives/advance-table-state.directive.js +20 -39
- package/esm2015/lib/directives/advanced-search-router-state.directive.js +15 -37
- package/esm2015/lib/directives/advanced-table-editor.directive.js +24 -54
- package/esm2015/lib/directives/btnexp.directive.js +55 -97
- package/esm2015/lib/i18n/tables.el.js +3 -7
- package/esm2015/lib/i18n/tables.en.js +3 -7
- package/esm2015/lib/pipes/advanced-aggregator.pipe.js +15 -18
- package/esm2015/lib/pipes/advansed-aggregator-list-title-parse.pipe.js +13 -25
- package/esm2015/lib/reducers/index.js +7 -37
- package/esm2015/lib/services/advanced-aggregator/advanced-aggregator.service.js +27 -48
- package/esm2015/lib/tables.activated-table.service.js +11 -46
- package/esm2015/lib/tables.module.js +90 -105
- package/esm2015/public_api.js +29 -34
- package/esm2015/universis-ngx-tables.js +2 -7
- package/esm5/lib/actions/table.actions.js +7 -38
- package/esm5/lib/advanced-aggregator.js +0 -5
- package/esm5/lib/components/add-items/add-items.component.js +42 -127
- package/esm5/lib/components/advanced-aggregator/advanced-aggregator.component.js +58 -141
- package/esm5/lib/components/advanced-aggregator-list/advanced-aggregator-list.component.js +32 -71
- package/esm5/lib/components/advanced-list/advanced-list.component.js +67 -136
- package/esm5/lib/components/advanced-row-action/advanced-row-action.component.js +62 -139
- package/esm5/lib/components/advanced-search-form/advanced-search-form.component.js +45 -116
- package/esm5/lib/components/advanced-select/advanced-select.component.js +23 -57
- package/esm5/lib/components/advanced-select/advanced-select.service.js +8 -27
- package/esm5/lib/components/advanced-table/advanced-filter-value-provider.service.js +15 -50
- package/esm5/lib/components/advanced-table/advanced-table-resolvers.js +18 -52
- package/esm5/lib/components/advanced-table/advanced-table-search-base.js +17 -48
- package/esm5/lib/components/advanced-table/advanced-table-search.component.js +84 -329
- package/esm5/lib/components/advanced-table/advanced-table-settings.component.js +27 -116
- package/esm5/lib/components/advanced-table/advanced-table.component.js +324 -863
- package/esm5/lib/components/advanced-table/advanced-table.formatters.interface.js +1 -10
- package/esm5/lib/components/advanced-table/advanced-table.formatters.js +58 -393
- package/esm5/lib/components/advanced-table/advanced-table.interfaces.js +0 -5
- package/esm5/lib/components/advanced-table/custom-button.formatter.js +6 -27
- package/esm5/lib/components/advanced-table-modal/advanced-table-modal-base.component.js +90 -296
- package/esm5/lib/components/column-selector/column-selector.component.js +46 -143
- package/esm5/lib/components/column-selector/column-selector.service.js +7 -26
- package/esm5/lib/components/table-simple-header/table-simple-header.component.js +26 -61
- package/esm5/lib/directives/advance-search-state.directive.js +24 -74
- package/esm5/lib/directives/advance-table-state.directive.js +17 -37
- package/esm5/lib/directives/advanced-search-router-state.directive.js +13 -43
- package/esm5/lib/directives/advanced-table-editor.directive.js +31 -81
- package/esm5/lib/directives/btnexp.directive.js +43 -175
- package/esm5/lib/i18n/tables.el.js +3 -7
- package/esm5/lib/i18n/tables.en.js +3 -7
- package/esm5/lib/pipes/advanced-aggregator.pipe.js +9 -35
- package/esm5/lib/pipes/advansed-aggregator-list-title-parse.pipe.js +9 -36
- package/esm5/lib/reducers/index.js +8 -38
- package/esm5/lib/services/advanced-aggregator/advanced-aggregator.service.js +21 -82
- package/esm5/lib/tables.activated-table.service.js +10 -42
- package/esm5/lib/tables.module.js +89 -105
- package/esm5/public_api.js +29 -34
- package/esm5/universis-ngx-tables.js +2 -7
- package/fesm2015/universis-ngx-tables.js +1177 -2186
- package/fesm2015/universis-ngx-tables.js.map +1 -1
- package/fesm5/universis-ngx-tables.js +1235 -3067
- package/fesm5/universis-ngx-tables.js.map +1 -1
- package/lib/actions/table.actions.d.ts +3 -3
- package/lib/components/add-items/add-items.component.d.ts +1 -1
- package/lib/components/advanced-aggregator/advanced-aggregator.component.d.ts +7 -4
- package/lib/components/advanced-aggregator-list/advanced-aggregator-list.component.d.ts +1 -1
- package/lib/components/advanced-row-action/advanced-row-action.component.d.ts +1 -1
- package/lib/components/advanced-table/advanced-table-search-base.d.ts +3 -2
- package/lib/components/advanced-table/advanced-table-search.component.d.ts +3 -2
- package/lib/components/advanced-table/advanced-table.component.d.ts +13 -8
- package/lib/directives/advanced-table-editor.directive.d.ts +1 -1
- package/lib/i18n/tables.el.d.ts +108 -108
- package/lib/i18n/tables.en.d.ts +107 -107
- package/lib/reducers/index.d.ts +3 -3
- package/lib/tables.activated-table.service.d.ts +2 -1
- package/package.json +20 -31
- package/universis-ngx-tables.metadata.json +1 -1
|
@@ -1,13 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
* @fileoverview added by tsickle
|
|
3
|
-
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
|
|
4
|
-
*/
|
|
5
|
-
import * as tslib_1 from "tslib";
|
|
1
|
+
import { __awaiter, __decorate, __generator } from "tslib";
|
|
6
2
|
import { Component, ViewChild, Input } from '@angular/core';
|
|
7
3
|
import { AngularDataContext } from '@themost/angular';
|
|
8
4
|
import { TranslateService } from '@ngx-translate/core';
|
|
9
5
|
import { ActivatedRoute } from '@angular/router';
|
|
10
|
-
|
|
6
|
+
// tslint:disable-next-line: max-line-length
|
|
7
|
+
import { AdvancedTableConfiguration } from '../advanced-table/advanced-table.component';
|
|
11
8
|
import { ErrorService, DIALOG_BUTTONS, ModalService, UserActivityService } from '@universis/common';
|
|
12
9
|
import { ResponseError } from '@themost/client';
|
|
13
10
|
import { ToastService } from '@universis/common';
|
|
@@ -24,13 +21,7 @@ var AdvancedListComponent = /** @class */ (function () {
|
|
|
24
21
|
this.allowSaveOption = true;
|
|
25
22
|
this.readonly = false;
|
|
26
23
|
}
|
|
27
|
-
|
|
28
|
-
* @return {?}
|
|
29
|
-
*/
|
|
30
|
-
AdvancedListComponent.prototype.ngOnDestroy = /**
|
|
31
|
-
* @return {?}
|
|
32
|
-
*/
|
|
33
|
-
function () {
|
|
24
|
+
AdvancedListComponent.prototype.ngOnDestroy = function () {
|
|
34
25
|
if (this.dataSubscription) {
|
|
35
26
|
this.dataSubscription.unsubscribe();
|
|
36
27
|
}
|
|
@@ -41,17 +32,11 @@ var AdvancedListComponent = /** @class */ (function () {
|
|
|
41
32
|
this.subscription.unsubscribe();
|
|
42
33
|
}
|
|
43
34
|
};
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
*/
|
|
47
|
-
AdvancedListComponent.prototype.ngAfterViewInit = /**
|
|
48
|
-
* @return {?}
|
|
49
|
-
*/
|
|
50
|
-
function () {
|
|
51
|
-
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
35
|
+
AdvancedListComponent.prototype.ngAfterViewInit = function () {
|
|
36
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
52
37
|
var table_1, metadata_1, err_1;
|
|
53
38
|
var _this = this;
|
|
54
|
-
return
|
|
39
|
+
return __generator(this, function (_a) {
|
|
55
40
|
switch (_a.label) {
|
|
56
41
|
case 0:
|
|
57
42
|
_a.trys.push([0, 2, , 3]);
|
|
@@ -64,9 +49,8 @@ var AdvancedListComponent = /** @class */ (function () {
|
|
|
64
49
|
metadata_1 = _a.sent();
|
|
65
50
|
// get route data
|
|
66
51
|
this.dataSubscription = this._activatedRoute.data.subscribe(function (routeData) {
|
|
67
|
-
|
|
68
|
-
var re = new RegExp("^" + routeData
|
|
69
|
-
/** @type {?} */
|
|
52
|
+
// get entityType
|
|
53
|
+
var re = new RegExp("^" + routeData.model + "$", 'ig');
|
|
70
54
|
var entitySet = metadata_1.EntityContainer.EntitySet.find(function (x) {
|
|
71
55
|
return re.test(x.Name);
|
|
72
56
|
});
|
|
@@ -75,49 +59,48 @@ var AdvancedListComponent = /** @class */ (function () {
|
|
|
75
59
|
// navigate to error
|
|
76
60
|
return _this._errorService.navigateToError(new ResponseError('EntitySet Not Found', 404));
|
|
77
61
|
}
|
|
78
|
-
|
|
62
|
+
// get entity type
|
|
79
63
|
var entityType = metadata_1.EntityType.find(function (x) {
|
|
80
64
|
return x.Name === entitySet.EntityType;
|
|
81
65
|
});
|
|
82
66
|
if (entityType == null) {
|
|
83
67
|
return _this._errorService.navigateToError(new ResponseError('EntityType Not Found', 404));
|
|
84
68
|
}
|
|
85
|
-
if (routeData
|
|
86
|
-
if (Object.prototype.hasOwnProperty.call(routeData
|
|
87
|
-
_this.allowSaveOption = routeData
|
|
69
|
+
if (routeData.searchConfiguration) {
|
|
70
|
+
if (Object.prototype.hasOwnProperty.call(routeData.searchConfiguration, 'allowSave')) {
|
|
71
|
+
_this.allowSaveOption = routeData.searchConfiguration.allowSave;
|
|
88
72
|
}
|
|
89
|
-
_this.searchConfiguration = routeData
|
|
73
|
+
_this.searchConfiguration = routeData.searchConfiguration;
|
|
90
74
|
}
|
|
91
|
-
if (routeData
|
|
92
|
-
_this.tableConfiguration = routeData
|
|
75
|
+
if (routeData.tableConfiguration) {
|
|
76
|
+
_this.tableConfiguration = routeData.tableConfiguration;
|
|
93
77
|
}
|
|
94
|
-
if (routeData
|
|
95
|
-
_this.description = _this._translateService.instant(routeData
|
|
78
|
+
if (routeData.description) {
|
|
79
|
+
_this.description = _this._translateService.instant(routeData.description);
|
|
96
80
|
}
|
|
97
|
-
if (routeData
|
|
98
|
-
_this.longDescription = _this._translateService.instant(routeData
|
|
81
|
+
if (routeData.longDescription) {
|
|
82
|
+
_this.longDescription = _this._translateService.instant(routeData.longDescription);
|
|
99
83
|
}
|
|
100
|
-
if (routeData
|
|
101
|
-
_this.category = _this._translateService.instant(routeData
|
|
84
|
+
if (routeData.category) {
|
|
85
|
+
_this.category = _this._translateService.instant(routeData.category);
|
|
102
86
|
}
|
|
103
87
|
if (Object.prototype.hasOwnProperty.call(routeData, 'readonly')) {
|
|
104
|
-
_this.readonly = routeData
|
|
88
|
+
_this.readonly = routeData.readonly;
|
|
105
89
|
}
|
|
106
|
-
|
|
90
|
+
// clone default configuration
|
|
107
91
|
var defaultConfiguration = AdvancedTableConfiguration.cast(_this.tableConfiguration, true);
|
|
108
|
-
|
|
92
|
+
// correct edit button link
|
|
109
93
|
var column = defaultConfiguration.columns.find(function (col) {
|
|
110
94
|
return col.formatter === 'ButtonFormatter' && col.formatString === '(modal:edit)';
|
|
111
95
|
});
|
|
112
96
|
if (column) {
|
|
113
|
-
/** @type {?} */
|
|
114
97
|
var url_1 = [];
|
|
115
98
|
_this._activatedRoute.snapshot.pathFromRoot.forEach(function (route) {
|
|
116
99
|
url_1.push.apply(url_1, route.url);
|
|
117
100
|
});
|
|
118
101
|
column.formatString = "#/" + url_1.join('/') + "/(modal:${id}/edit)";
|
|
119
102
|
}
|
|
120
|
-
|
|
103
|
+
// create list configuration by assigning list entity set
|
|
121
104
|
var setConfig = Object.assign({
|
|
122
105
|
model: entitySet.Name
|
|
123
106
|
}, defaultConfiguration);
|
|
@@ -126,21 +109,18 @@ var AdvancedListComponent = /** @class */ (function () {
|
|
|
126
109
|
}
|
|
127
110
|
table_1.config = setConfig;
|
|
128
111
|
// fetch data
|
|
129
|
-
// fetch data
|
|
130
112
|
table_1.fetch(true);
|
|
131
113
|
// do reload by using hidden fragment e.g. /classes#reload
|
|
132
|
-
// do reload by using hidden fragment e.g. /classes#reload
|
|
133
114
|
_this.reloadSubscription = _this._activatedRoute.fragment.subscribe(function (fragment) {
|
|
134
115
|
if (fragment && fragment === 'reload') {
|
|
135
|
-
_this._toastService.show(
|
|
116
|
+
_this._toastService.show(_this.description, _this._translateService.instant('Settings.OperationCompleted'));
|
|
136
117
|
table_1.fetch(true);
|
|
137
118
|
}
|
|
138
119
|
});
|
|
139
120
|
// finally add user activity
|
|
140
|
-
// finally add user activity
|
|
141
121
|
_this._userActivityService.setItem({
|
|
142
|
-
category:
|
|
143
|
-
description:
|
|
122
|
+
category: _this.category,
|
|
123
|
+
description: _this.description,
|
|
144
124
|
url: window.location.hash.substring(1),
|
|
145
125
|
dateCreated: new Date
|
|
146
126
|
});
|
|
@@ -159,36 +139,17 @@ var AdvancedListComponent = /** @class */ (function () {
|
|
|
159
139
|
* Data load event handler of advanced table component
|
|
160
140
|
* @param data
|
|
161
141
|
*/
|
|
162
|
-
|
|
163
|
-
* Data load event handler of advanced table component
|
|
164
|
-
* @param {?} data
|
|
165
|
-
* @return {?}
|
|
166
|
-
*/
|
|
167
|
-
AdvancedListComponent.prototype.onDataLoad = /**
|
|
168
|
-
* Data load event handler of advanced table component
|
|
169
|
-
* @param {?} data
|
|
170
|
-
* @return {?}
|
|
171
|
-
*/
|
|
172
|
-
function (data) {
|
|
142
|
+
AdvancedListComponent.prototype.onDataLoad = function (data) {
|
|
173
143
|
this.recordsTotal = data.recordsTotal;
|
|
174
144
|
};
|
|
175
145
|
/**
|
|
176
146
|
* Remove selected items
|
|
177
147
|
*/
|
|
178
|
-
|
|
179
|
-
* Remove selected items
|
|
180
|
-
* @return {?}
|
|
181
|
-
*/
|
|
182
|
-
AdvancedListComponent.prototype.remove = /**
|
|
183
|
-
* Remove selected items
|
|
184
|
-
* @return {?}
|
|
185
|
-
*/
|
|
186
|
-
function () {
|
|
148
|
+
AdvancedListComponent.prototype.remove = function () {
|
|
187
149
|
var _this = this;
|
|
188
|
-
/** @type {?} */
|
|
189
150
|
var table = this.table;
|
|
190
151
|
if (table && table.selected && table.selected.length) {
|
|
191
|
-
|
|
152
|
+
// get items to remove
|
|
192
153
|
var items_1 = table.selected;
|
|
193
154
|
return this._modalService.showWarningDialog(this._translateService.instant('Tables.RemoveItemsTitle'), this._translateService.instant('Tables.RemoveItemsMessage'), DIALOG_BUTTONS.OkCancel).then(function (result) {
|
|
194
155
|
if (result === 'ok') {
|
|
@@ -205,14 +166,6 @@ var AdvancedListComponent = /** @class */ (function () {
|
|
|
205
166
|
});
|
|
206
167
|
}
|
|
207
168
|
};
|
|
208
|
-
AdvancedListComponent.decorators = [
|
|
209
|
-
{ type: Component, args: [{
|
|
210
|
-
// tslint:disable-next-line:component-selector
|
|
211
|
-
selector: 'app-advanced-list',
|
|
212
|
-
template: "<div>\n <div class=\"row\" *ngIf=\"description\">\n <div class=\"col-auto\">\n <h2>{{description}}</h2>\n <ng-container *ngIf=\"longDescription\">\n <p [innerHTML]=\"longDescription\"></p>\n </ng-container>\n </div>\n </div>\n <div class=\"row\" *ngIf=\"searchConfiguration\">\n <div class=\"col-12\" [ngVar]=\"{}\" #filter=\"ngVar\">\n <app-advanced-table-search #advancedSearch [(filter)]=\"filter.value\" [collapsed]=\"true\" [table]=\"table\" [allowSave]=\"allowSaveOption\">\n <advanced-search>\n <app-advanced-search-form [form]=\"searchConfiguration\" (filterChange)=\"advancedSearch.asyncAdvancedSearch()\" #search [(filter)]=\"filter.value\"></app-advanced-search-form>\n </advanced-search>\n </app-advanced-table-search>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col-auto mt-4\">\n <div class=\"font-xl text-secondary\" *ngIf=\"recordsTotal > 1\">\n <span>{{recordsTotal}}</span><span> </span><span [translate]=\"'Tables.Items'\"></span>\n </div>\n <div class=\"font-xl text-secondary\" *ngIf=\"recordsTotal === 1\">\n <span>{{recordsTotal}}</span><span> </span><span [translate]=\"'Tables.Item'\"></span>\n </div>\n </div>\n <div class=\"pull-right ml-auto mr-3 mt-3\">\n <div class=\"font-lg btn-toolbar mt-3\">\n <a *ngIf=\"readonly === false && table.selected && table.selected.length\"\n class=\"text-danger text-decoration-none mr-2\" href=\"javascript:void(0)\" (click)=\"remove()\">\n <span>-</span><span> </span><span [translate]=\"'Tables.RemoveItem'\"></span>\n </a>\n <a *ngIf=\"readonly === false\" class=\"text-indigo text-decoration-none\" [routerLink]=\"['.', { outlets:{ modal:'add'} }]\">\n <span>+</span><span> </span><span [translate]=\"'Tables.AddItem'\"></span>\n </a>\n </div>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col-12 mb-4\">\n <app-advanced-table [selectable]=\"true\" #table\n [showFooter]=\"false\"\n (load)=\"onDataLoad($event)\" [height]=\"600\"></app-advanced-table>\n </div>\n </div>\n <router-modal></router-modal>\n</div>\n"
|
|
213
|
-
}] }
|
|
214
|
-
];
|
|
215
|
-
/** @nocollapse */
|
|
216
169
|
AdvancedListComponent.ctorParameters = function () { return [
|
|
217
170
|
{ type: AngularDataContext },
|
|
218
171
|
{ type: TranslateService },
|
|
@@ -222,63 +175,41 @@ var AdvancedListComponent = /** @class */ (function () {
|
|
|
222
175
|
{ type: ModalService },
|
|
223
176
|
{ type: UserActivityService }
|
|
224
177
|
]; };
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
178
|
+
__decorate([
|
|
179
|
+
Input('entitySet')
|
|
180
|
+
], AdvancedListComponent.prototype, "entitySet", void 0);
|
|
181
|
+
__decorate([
|
|
182
|
+
Input('category')
|
|
183
|
+
], AdvancedListComponent.prototype, "category", void 0);
|
|
184
|
+
__decorate([
|
|
185
|
+
Input('description')
|
|
186
|
+
], AdvancedListComponent.prototype, "description", void 0);
|
|
187
|
+
__decorate([
|
|
188
|
+
Input('longDescription')
|
|
189
|
+
], AdvancedListComponent.prototype, "longDescription", void 0);
|
|
190
|
+
__decorate([
|
|
191
|
+
Input('tableConfiguration')
|
|
192
|
+
], AdvancedListComponent.prototype, "tableConfiguration", void 0);
|
|
193
|
+
__decorate([
|
|
194
|
+
Input('searchConfiguration')
|
|
195
|
+
], AdvancedListComponent.prototype, "searchConfiguration", void 0);
|
|
196
|
+
__decorate([
|
|
197
|
+
ViewChild('table')
|
|
198
|
+
], AdvancedListComponent.prototype, "table", void 0);
|
|
199
|
+
__decorate([
|
|
200
|
+
Input('allowSaveOption')
|
|
201
|
+
], AdvancedListComponent.prototype, "allowSaveOption", void 0);
|
|
202
|
+
__decorate([
|
|
203
|
+
Input('readonly')
|
|
204
|
+
], AdvancedListComponent.prototype, "readonly", void 0);
|
|
205
|
+
AdvancedListComponent = __decorate([
|
|
206
|
+
Component({
|
|
207
|
+
// tslint:disable-next-line:component-selector
|
|
208
|
+
selector: 'app-advanced-list',
|
|
209
|
+
template: "<div>\n <div class=\"row\" *ngIf=\"description\">\n <div class=\"col-auto\">\n <h2>{{description}}</h2>\n <ng-container *ngIf=\"longDescription\">\n <p [innerHTML]=\"longDescription\"></p>\n </ng-container>\n </div>\n </div>\n <div class=\"row\" *ngIf=\"searchConfiguration\">\n <div class=\"col-12\" [ngVar]=\"{}\" #filter=\"ngVar\">\n <app-advanced-table-search #advancedSearch [(filter)]=\"filter.value\" [collapsed]=\"true\" [table]=\"table\" [allowSave]=\"allowSaveOption\">\n <advanced-search>\n <app-advanced-search-form [form]=\"searchConfiguration\" (filterChange)=\"advancedSearch.asyncAdvancedSearch()\" #search [(filter)]=\"filter.value\"></app-advanced-search-form>\n </advanced-search>\n </app-advanced-table-search>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col-auto mt-4\">\n <div class=\"font-xl text-secondary\" *ngIf=\"recordsTotal > 1\">\n <span>{{recordsTotal}}</span><span> </span><span [translate]=\"'Tables.Items'\"></span>\n </div>\n <div class=\"font-xl text-secondary\" *ngIf=\"recordsTotal === 1\">\n <span>{{recordsTotal}}</span><span> </span><span [translate]=\"'Tables.Item'\"></span>\n </div>\n </div>\n <div class=\"pull-right ml-auto mr-3 mt-3\">\n <div class=\"font-lg btn-toolbar mt-3\">\n <a *ngIf=\"readonly === false && table.selected && table.selected.length\"\n class=\"text-danger text-decoration-none mr-2\" href=\"javascript:void(0)\" (click)=\"remove()\">\n <span>-</span><span> </span><span [translate]=\"'Tables.RemoveItem'\"></span>\n </a>\n <a *ngIf=\"readonly === false\" class=\"text-indigo text-decoration-none\" [routerLink]=\"['.', { outlets:{ modal:'add'} }]\">\n <span>+</span><span> </span><span [translate]=\"'Tables.AddItem'\"></span>\n </a>\n </div>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col-12 mb-4\">\n <app-advanced-table [selectable]=\"true\" #table\n [showFooter]=\"false\"\n (load)=\"onDataLoad($event)\" [height]=\"600\"></app-advanced-table>\n </div>\n </div>\n <router-modal></router-modal>\n</div>\n"
|
|
210
|
+
})
|
|
211
|
+
], AdvancedListComponent);
|
|
236
212
|
return AdvancedListComponent;
|
|
237
213
|
}());
|
|
238
214
|
export { AdvancedListComponent };
|
|
239
|
-
if (false) {
|
|
240
|
-
/** @type {?} */
|
|
241
|
-
AdvancedListComponent.prototype.recordsTotal;
|
|
242
|
-
/** @type {?} */
|
|
243
|
-
AdvancedListComponent.prototype.config;
|
|
244
|
-
/** @type {?} */
|
|
245
|
-
AdvancedListComponent.prototype.subscription;
|
|
246
|
-
/** @type {?} */
|
|
247
|
-
AdvancedListComponent.prototype.dataSubscription;
|
|
248
|
-
/** @type {?} */
|
|
249
|
-
AdvancedListComponent.prototype.reloadSubscription;
|
|
250
|
-
/** @type {?} */
|
|
251
|
-
AdvancedListComponent.prototype.entitySet;
|
|
252
|
-
/** @type {?} */
|
|
253
|
-
AdvancedListComponent.prototype.category;
|
|
254
|
-
/** @type {?} */
|
|
255
|
-
AdvancedListComponent.prototype.description;
|
|
256
|
-
/** @type {?} */
|
|
257
|
-
AdvancedListComponent.prototype.longDescription;
|
|
258
|
-
/** @type {?} */
|
|
259
|
-
AdvancedListComponent.prototype.tableConfiguration;
|
|
260
|
-
/** @type {?} */
|
|
261
|
-
AdvancedListComponent.prototype.searchConfiguration;
|
|
262
|
-
/** @type {?} */
|
|
263
|
-
AdvancedListComponent.prototype.table;
|
|
264
|
-
/** @type {?} */
|
|
265
|
-
AdvancedListComponent.prototype.allowSaveOption;
|
|
266
|
-
/** @type {?} */
|
|
267
|
-
AdvancedListComponent.prototype.readonly;
|
|
268
|
-
/** @type {?} */
|
|
269
|
-
AdvancedListComponent.prototype._context;
|
|
270
|
-
/** @type {?} */
|
|
271
|
-
AdvancedListComponent.prototype._translateService;
|
|
272
|
-
/** @type {?} */
|
|
273
|
-
AdvancedListComponent.prototype._activatedRoute;
|
|
274
|
-
/** @type {?} */
|
|
275
|
-
AdvancedListComponent.prototype._errorService;
|
|
276
|
-
/** @type {?} */
|
|
277
|
-
AdvancedListComponent.prototype._toastService;
|
|
278
|
-
/** @type {?} */
|
|
279
|
-
AdvancedListComponent.prototype._modalService;
|
|
280
|
-
/** @type {?} */
|
|
281
|
-
AdvancedListComponent.prototype._userActivityService;
|
|
282
|
-
}
|
|
283
|
-
|
|
284
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWR2YW5jZWQtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdW5pdmVyc2lzL25neC10YWJsZXMvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9hZHZhbmNlZC1saXN0L2FkdmFuY2VkLWxpc3QuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxTQUFTLEVBQWEsS0FBSyxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUM5RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV2RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFakQsT0FBTyxFQUFFLHNCQUFzQixFQUEyQiwwQkFBMEIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ3pJLE9BQU8sRUFBRSxZQUFZLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3BHLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVoRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7O0lBd0IvQywrQkFBb0IsUUFBNEIsRUFDdEMsbUJBQ0EsaUJBQ0EsZUFDQSxlQUNBLGVBQ0E7UUFOVSxhQUFRLEdBQVIsUUFBUSxDQUFvQjtRQUN0QyxzQkFBaUIsR0FBakIsaUJBQWlCO1FBQ2pCLG9CQUFlLEdBQWYsZUFBZTtRQUNmLGtCQUFhLEdBQWIsYUFBYTtRQUNiLGtCQUFhLEdBQWIsYUFBYTtRQUNiLGtCQUFhLEdBQWIsYUFBYTtRQUNiLHlCQUFvQixHQUFwQixvQkFBb0I7NEJBckJBLEdBQUc7K0JBWVcsSUFBSTt3QkFDVCxLQUFLO0tBU3JDOzs7O0lBQ1AsMkNBQVc7OztJQUFYO1FBQ0UsSUFBSSxJQUFJLENBQUMs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OztnQkEvS0YsU0FBUyxTQUFDOztvQkFFVCxRQUFRLEVBQUUsbUJBQW1CO29CQUM3QiwrckVBQTZDO2lCQUM5Qzs7OztnQkFmUSxrQkFBa0I7Z0JBQ2xCLGdCQUFnQjtnQkFFaEIsY0FBYztnQkFHZCxZQUFZO2dCQUdaLFlBQVk7Z0JBSGtCLFlBQVk7Z0JBQUUsbUJBQW1COzs7NEJBaUJyRSxLQUFLLFNBQUMsV0FBVzsyQkFDakIsS0FBSyxTQUFDLFVBQVU7OEJBQ2hCLEtBQUssU0FBQyxhQUFhO2tDQUNuQixLQUFLLFNBQUMsaUJBQWlCO3FDQUN2QixLQUFLLFNBQUMsb0JBQW9CO3NDQUMxQixLQUFLLFNBQUMscUJBQXFCO3dCQUMzQixTQUFTLFNBQUMsT0FBTztrQ0FDakIsS0FBSyxTQUFDLGlCQUFpQjsyQkFDdkIsS0FBSyxTQUFDLFVBQVU7O2dDQWhDbkI7O1NBaUJhLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBWaWV3Q2hpbGQsIE9uRGVzdHJveSwgSW5wdXQsIEFmdGVyVmlld0luaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFuZ3VsYXJEYXRhQ29udGV4dCB9IGZyb20gJ0B0aGVtb3N0L2FuZ3VsYXInO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG4vLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG1heC1saW5lLWxlbmd0aFxuaW1wb3J0IHsgQWR2YW5jZWRUYWJsZUNvbXBvbmVudCwgQWR2YW5jZWRUYWJsZURhdGFSZXN1bHQsIEFkdmFuY2VkVGFibGVDb25maWd1cmF0aW9uIH0gZnJvbSAnLi4vYWR2YW5jZWQtdGFibGUvYWR2YW5jZWQtdGFibGUuY29tcG9uZW50JztcbmltcG9ydCB7IEVycm9yU2VydmljZSwgRElBTE9HX0JVVFRPTlMsIE1vZGFsU2VydmljZSwgVXNlckFjdGl2aXR5U2VydmljZSB9IGZyb20gJ0B1bml2ZXJzaXMvY29tbW9uJztcbmltcG9ydCB7IFJlc3BvbnNlRXJyb3IgfSBmcm9tICdAdGhlbW9zdC9jbGllbnQnO1xuaW1wb3J0IHsgVGFibGVDb25maWd1cmF0aW9uIH0gZnJvbSAnLi4vYWR2YW5jZWQtdGFibGUvYWR2YW5jZWQtdGFibGUuaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBUb2FzdFNlcnZpY2UgfSBmcm9tICdAdW5pdmVyc2lzL2NvbW1vbic7XG5cbkBDb21wb25lbnQoe1xuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6Y29tcG9uZW50LXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnYXBwLWFkdmFuY2VkLWxpc3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vYWR2YW5jZWQtbGlzdC5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgQWR2YW5jZWRMaXN0Q29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcblxuICBwdWJsaWMgcmVjb3Jkc1RvdGFsOiBudW1iZXIgPSBOYU47XG4gIHB1YmxpYyBjb25maWc/OiBUYWJsZUNvbmZpZ3VyYXRpb247XG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uPzogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIGRhdGFTdWJzY3JpcHRpb24/OiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgcmVsb2FkU3Vic2NyaXB0aW9uPzogU3Vic2NyaXB0aW9uO1xuICBASW5wdXQoJ2VudGl0eVNldCcpIGVudGl0eVNldD86IHN0cmluZztcbiAgQElucHV0KCdjYXRlZ29yeScpIGNhdGVnb3J5Pzogc3RyaW5nO1xuICBASW5wdXQoJ2Rlc2NyaXB0aW9uJykgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIEBJbnB1dCgnbG9uZ0Rlc2NyaXB0aW9uJykgbG9uZ0Rlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBASW5wdXQoJ3RhYmxlQ29uZmlndXJhdGlvbicpIHRhYmxlQ29uZmlndXJhdGlvbjogYW55O1xuICBASW5wdXQoJ3NlYXJjaENvbmZpZ3VyYXRpb24nKSBzZWFyY2hDb25maWd1cmF0aW9uOiBhbnk7XG4gIEBWaWV3Q2hpbGQoJ3RhYmxlJykgdGFibGU/OiBBZHZhbmNlZFRhYmxlQ29tcG9uZW50O1xuICBASW5wdXQoJ2FsbG93U2F2ZU9wdGlvbicpIGFsbG93U2F2ZU9wdGlvbiA9IHRydWU7XG4gIEBJbnB1dCgncmVhZG9ubHknKSByZWFkb25seTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2NvbnRleHQ6IEFuZ3VsYXJEYXRhQ29udGV4dCxcbiAgICBwcml2YXRlIF90cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgX2FjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIF9lcnJvclNlcnZpY2U6IEVycm9yU2VydmljZSxcbiAgICBwcml2YXRlIF90b2FzdFNlcnZpY2U6IFRvYXN0U2VydmljZSxcbiAgICBwcml2YXRlIF9tb2RhbFNlcnZpY2U6IE1vZGFsU2VydmljZSxcbiAgICBwcml2YXRlIF91c2VyQWN0aXZpdHlTZXJ2aWNlOiBVc2VyQWN0aXZpdHlTZXJ2aWNlXG4gICAgKSB7IH1cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZGF0YVN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5kYXRhU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICAgIGlmICh0aGlzLnJlbG9hZFN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5yZWxvYWRTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuc3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICB0cnkge1xuICAgICAgaWYgKHRoaXMudGFibGUgPT0gbnVsbCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBjb25zdCB0YWJsZSA9IHRoaXMudGFibGU7XG4gICAgICAvLyBnZXQgbWV0YWRhdGFcbiAgICAgIGNvbnN0IG1ldGFkYXRhID0gYXdhaXQgdGhpcy5fY29udGV4dC5nZXRNZXRhZGF0YSgpO1xuICAgICAgLy8gZ2V0IHJvdXRlIGRhdGFcbiAgICAgIHRoaXMuZGF0YVN1YnNjcmlwdGlvbiA9IHRoaXMuX2FjdGl2YXRlZFJvdXRlLmRhdGEuc3Vic2NyaWJlKCByb3V0ZURhdGEgPT4ge1xuICAgICAgICAvLyBnZXQgZW50aXR5VHlwZVxuICAgICAgICBjb25zdCByZSA9IG5ldyBSZWdFeHAoYF4ke3JvdXRlRGF0YS5tb2RlbH0kYCwgJ2lnJyk7XG4gICAgICAgIGNvbnN0IGVudGl0eVNldCA9IG1ldGFkYXRhLkVudGl0eUNvbnRhaW5lci5FbnRpdHlTZXQuZmluZCggeCA9PiB7XG4gICAgICAgICAgcmV0dXJuIHJlLnRlc3QoeC5OYW1lKTtcbiAgICAgICAgfSk7XG4gICAgICAgIC8vIGlmIGVudGl0eSB0eXBlIGlzIG51bGxcbiAgICAgICAgaWYgKGVudGl0eVNldCA9PSBudWxsKSB7XG4gICAgICAgICAgLy8gbmF2aWdhdGUgdG8gZXJyb3JcbiAgICAgICAgICByZXR1cm4gdGhpcy5fZXJyb3JTZXJ2aWNlLm5hdmlnYXRlVG9FcnJvcihuZXcgUmVzcG9uc2VFcnJvcignRW50aXR5U2V0IE5vdCBGb3VuZCcsIDQwNCkpO1xuICAgICAgICB9XG4gICAgICAgIC8vIGdldCBlbnRpdHkgdHlwZVxuICAgICAgICBjb25zdCBlbnRpdHlUeXBlID0gbWV0YWRhdGEuRW50aXR5VHlwZS5maW5kKCB4ID0+IHtcbiAgICAgICAgICByZXR1cm4geC5OYW1lID09PSBlbnRpdHlTZXQuRW50aXR5VHlwZTtcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChlbnRpdHlUeXBlID09IG51bGwpIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5fZXJyb3JTZXJ2aWNlLm5hdmlnYXRlVG9FcnJvcihuZXcgUmVzcG9uc2VFcnJvcignRW50aXR5VHlwZSBOb3QgRm91bmQnLCA0MDQpKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocm91dGVEYXRhLnNlYXJjaENvbmZpZ3VyYXRpb24pIHtcbiAgICAgICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHJvdXRlRGF0YS5zZWFyY2hDb25maWd1cmF0aW9uLCAnYWxsb3dTYXZlJykpIHtcbiAgICAgICAgICAgIHRoaXMuYWxsb3dTYXZlT3B0aW9uID0gcm91dGVEYXRhLnNlYXJjaENvbmZpZ3VyYXRpb24uYWxsb3dTYXZlO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLnNlYXJjaENvbmZpZ3VyYXRpb24gPSByb3V0ZURhdGEuc2VhcmNoQ29uZmlndXJhdGlvbjtcbiAgICAgICAgfVxuICAgICAgICBpZiAocm91dGVEYXRhLnRhYmxlQ29uZmlndXJhdGlvbikge1xuICAgICAgICAgIHRoaXMudGFibGVDb25maWd1cmF0aW9uID0gcm91dGVEYXRhLnRhYmxlQ29uZmlndXJhdGlvbjtcbiAgICAgICAgfVxuICAgICAgICBpZiAocm91dGVEYXRhLmRlc2NyaXB0aW9uKSB7XG4gICAgICAgICAgdGhpcy5kZXNjcmlwdGlvbiA9IHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChyb3V0ZURhdGEuZGVzY3JpcHRpb24pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChyb3V0ZURhdGEubG9uZ0Rlc2NyaXB0aW9uKSB7XG4gICAgICAgICAgdGhpcy5sb25nRGVzY3JpcHRpb24gPSB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQocm91dGVEYXRhLmxvbmdEZXNjcmlwdGlvbik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHJvdXRlRGF0YS5jYXRlZ29yeSkge1xuICAgICAgICAgIHRoaXMuY2F0ZWdvcnkgPSB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQocm91dGVEYXRhLmNhdGVnb3J5KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHJvdXRlRGF0YSwgJ3JlYWRvbmx5JykpIHtcbiAgICAgICAgICB0aGlzLnJlYWRvbmx5ID0gcm91dGVEYXRhLnJlYWRvbmx5O1xuICAgICAgICB9XG4gICAgICAgIC8vIGNsb25lIGRlZmF1bHQgY29uZmlndXJhdGlvblxuICAgICAgICBjb25zdCBkZWZhdWx0Q29uZmlndXJhdGlvbiA9IEFkdmFuY2VkVGFibGVDb25maWd1cmF0aW9uLmNhc3QodGhpcy50YWJsZUNvbmZpZ3VyYXRpb24sIHRydWUpO1xuICAgICAgICAvLyBjb3JyZWN0IGVkaXQgYnV0dG9uIGxpbmtcbiAgICAgICAgY29uc3QgY29sdW1uID0gZGVmYXVsdENvbmZpZ3VyYXRpb24uY29sdW1ucy5maW5kKCBjb2wgPT4ge1xuICAgICAgICAgIHJldHVybiBjb2wuZm9ybWF0dGVyID09PSAnQnV0dG9uRm9ybWF0dGVyJyAmJiBjb2wuZm9ybWF0U3RyaW5nID09PSAnKG1vZGFsOmVkaXQpJztcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChjb2x1bW4pIHtcbiAgICAgICAgICBjb25zdCB1cmw6IEFycmF5PHN0cmluZz4gPSBbXTtcbiAgICAgICAgICB0aGlzLl9hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5wYXRoRnJvbVJvb3QuZm9yRWFjaCggcm91dGUgPT4ge1xuICAgICAgICAgICAgdXJsLnB1c2guYXBwbHkodXJsLCByb3V0ZS51cmwpO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIGNvbHVtbi5mb3JtYXRTdHJpbmcgPSBgIy8ke3VybC5qb2luKCcvJyl9Lyhtb2RhbDpcXCRcXHtpZFxcfS9lZGl0KWA7XG4gICAgICAgIH1cbiAgICAgICAgLy8gY3JlYXRlIGxpc3QgY29uZmlndXJhdGlvbiBieSBhc3NpZ25pbmcgbGlzdCBlbnRpdHkgc2V0XG4gICAgICAgIGNvbnN0IHNldENvbmZpZyA9IE9iamVjdC5hc3NpZ24oe1xuICAgICAgICAgIG1vZGVsOiBlbnRpdHlTZXQuTmFtZVxuICAgICAgICB9LCBkZWZhdWx0Q29uZmlndXJhdGlvbik7XG4gICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc2V0Q29uZmlnLCAnc2VsZWN0YWJsZScpKSB7XG4gICAgICAgICAgc2V0Q29uZmlnLnNlbGVjdGFibGUgPSAhdGhpcy5yZWFkb25seTtcbiAgICAgICAgfVxuICAgICAgICB0YWJsZS5jb25maWcgPSBzZXRDb25maWc7XG4gICAgICAgIC8vIGZldGNoIGRhdGFcbiAgICAgICAgdGFibGUuZmV0Y2godHJ1ZSk7XG4gICAgICAgIC8vIGRvIHJlbG9hZCBieSB1c2luZyBoaWRkZW4gZnJhZ21lbnQgZS5nLiAvY2xhc3NlcyNyZWxvYWRcbiAgICAgICAgdGhpcy5yZWxvYWRTdWJzY3JpcHRpb24gPSB0aGlzLl9hY3RpdmF0ZWRSb3V0ZS5mcmFnbWVudC5zdWJzY3JpYmUoZnJhZ21lbnQgPT4ge1xuICAgICAgICAgIGlmIChmcmFnbWVudCAmJiBmcmFnbWVudCA9PT0gJ3JlbG9hZCcpIHtcbiAgICAgICAgICAgIHRoaXMuX3RvYXN0U2VydmljZS5zaG93KFxuICAgICAgICAgICAgICB0aGlzLmRlc2NyaXB0aW9uIGFzIHN0cmluZyxcbiAgICAgICAgICAgICAgdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdTZXR0aW5ncy5PcGVyYXRpb25Db21wbGV0ZWQnKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHRhYmxlLmZldGNoKHRydWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIC8vIGZpbmFsbHkgYWRkIHVzZXIgYWN0aXZpdHlcbiAgICAgICAgdGhpcy5fdXNlckFjdGl2aXR5U2VydmljZS5zZXRJdGVtKHtcbiAgICAgICAgICBjYXRlZ29yeTogdGhpcy5jYXRlZ29yeSBhcyBzdHJpbmcsXG4gICAgICAgICAgZGVzY3JpcHRpb246IHRoaXMuZGVzY3JpcHRpb24gYXMgc3RyaW5nLFxuICAgICAgICAgIHVybDogd2luZG93LmxvY2F0aW9uLmhhc2guc3Vic3RyaW5nKDEpLFxuICAgICAgICAgIGRhdGVDcmVhdGVkOiBuZXcgRGF0ZVxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgY29uc29sZS5lcnJvcihlcnIpO1xuICAgICAgcmV0dXJuIHRoaXMuX2Vycm9yU2VydmljZS5zaG93RXJyb3IoZXJyKTtcbiAgICB9XG4gIH1cblxuXG4gIC8qKlxuICAgKiBEYXRhIGxvYWQgZXZlbnQgaGFuZGxlciBvZiBhZHZhbmNlZCB0YWJsZSBjb21wb25lbnRcbiAgICogQHBhcmFtIGRhdGFcbiAgICovXG4gIG9uRGF0YUxvYWQoZGF0YTogQWR2YW5jZWRUYWJsZURhdGFSZXN1bHQpIHtcbiAgICB0aGlzLnJlY29yZHNUb3RhbCA9IGRhdGEucmVjb3Jkc1RvdGFsO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZSBzZWxlY3RlZCBpdGVtc1xuICAgKi9cbiAgcmVtb3ZlKCkge1xuICAgIGNvbnN0IHRhYmxlID0gdGhpcy50YWJsZTtcbiAgICBpZiAodGFibGUgJiYgdGFibGUuc2VsZWN0ZWQgJiYgdGFibGUuc2VsZWN0ZWQubGVuZ3RoKSB7XG4gICAgICAvLyBnZXQgaXRlbXMgdG8gcmVtb3ZlXG4gICAgICBjb25zdCBpdGVtcyA9IHRhYmxlLnNlbGVjdGVkO1xuICAgICAgcmV0dXJuIHRoaXMuX21vZGFsU2VydmljZS5zaG93V2FybmluZ0RpYWxvZyhcbiAgICAgICAgdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdUYWJsZXMuUmVtb3ZlSXRlbXNUaXRsZScpLFxuICAgICAgICB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ1RhYmxlcy5SZW1vdmVJdGVtc01lc3NhZ2UnKSxcbiAgICAgICAgRElBTE9HX0JVVFRPTlMuT2tDYW5jZWwpLnRoZW4ocmVzdWx0ID0+IHtcbiAgICAgICAgICBpZiAocmVzdWx0ID09PSAnb2snKSB7XG4gICAgICAgICAgICB0aGlzLl9jb250ZXh0Lm1vZGVsKHRhYmxlLmNvbmZpZy5tb2RlbCkucmVtb3ZlKGl0ZW1zKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5fdG9hc3RTZXJ2aWNlLnNob3coXG4gICAgICAgICAgICAgICAgdGhpcy5kZXNjcmlwdGlvbiArICc6JyArIHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnVGFibGVzLlJlbW92ZUl0ZW1NZXNzYWdlLnRpdGxlJyksXG4gICAgICAgICAgICAgICAgdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KChpdGVtcy5sZW5ndGggPT09IDEgP1xuICAgICAgICAgICAgICAgICAgJ1RhYmxlcy5SZW1vdmVJdGVtTWVzc2FnZS5vbmUnIDogJ1RhYmxlcy5SZW1vdmVJdGVtTWVzc2FnZS5tYW55JylcbiAgICAgICAgICAgICAgICAgICwgeyB2YWx1ZTogaXRlbXMubGVuZ3RoIH0pXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIHRhYmxlLmZldGNoKHRydWUpO1xuICAgICAgICAgICAgfSkuY2F0Y2goZXJyID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5fZXJyb3JTZXJ2aWNlLnNob3dFcnJvcihlcnIsIHtcbiAgICAgICAgICAgICAgICBjb250aW51ZUxpbms6ICcuJ1xuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
215
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWR2YW5jZWQtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdW5pdmVyc2lzL25neC10YWJsZXMvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9hZHZhbmNlZC1saXN0L2FkdmFuY2VkLWxpc3QuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLFNBQVMsRUFBYSxLQUFLLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQzlGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXZELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRCw0Q0FBNEM7QUFDNUMsT0FBTyxFQUFtRCwwQkFBMEIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ3pJLE9BQU8sRUFBRSxZQUFZLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3BHLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVoRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFPakQ7SUFpQkUsK0JBQW9CLFFBQTRCLEVBQ3RDLGlCQUFtQyxFQUNuQyxlQUErQixFQUMvQixhQUEyQixFQUMzQixhQUEyQixFQUMzQixhQUEyQixFQUMzQixvQkFBeUM7UUFOL0IsYUFBUSxHQUFSLFFBQVEsQ0FBb0I7UUFDdEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFrQjtRQUNuQyxvQkFBZSxHQUFmLGVBQWUsQ0FBZ0I7UUFDL0Isa0JBQWEsR0FBYixhQUFhLENBQWM7UUFDM0Isa0JBQWEsR0FBYixhQUFhLENBQWM7UUFDM0Isa0JBQWEsR0FBYixhQUFhLENBQWM7UUFDM0IseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFxQjtR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QUM5QyxDQUFDO09BQ1cscUJBQXFCLENBMktqQztJQUFELDRCQUFDO0NBQUEsQUEzS0QsSUEyS0M7U0EzS1kscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIFZpZXdDaGlsZCwgT25EZXN0cm95LCBJbnB1dCwgQWZ0ZXJWaWV3SW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQW5ndWxhckRhdGFDb250ZXh0IH0gZnJvbSAnQHRoZW1vc3QvYW5ndWxhcic7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbi8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbWF4LWxpbmUtbGVuZ3RoXG5pbXBvcnQgeyBBZHZhbmNlZFRhYmxlQ29tcG9uZW50LCBBZHZhbmNlZFRhYmxlRGF0YVJlc3VsdCwgQWR2YW5jZWRUYWJsZUNvbmZpZ3VyYXRpb24gfSBmcm9tICcuLi9hZHZhbmNlZC10YWJsZS9hZHZhbmNlZC10YWJsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRXJyb3JTZXJ2aWNlLCBESUFMT0dfQlVUVE9OUywgTW9kYWxTZXJ2aWNlLCBVc2VyQWN0aXZpdHlTZXJ2aWNlIH0gZnJvbSAnQHVuaXZlcnNpcy9jb21tb24nO1xuaW1wb3J0IHsgUmVzcG9uc2VFcnJvciB9IGZyb20gJ0B0aGVtb3N0L2NsaWVudCc7XG5pbXBvcnQgeyBUYWJsZUNvbmZpZ3VyYXRpb24gfSBmcm9tICcuLi9hZHZhbmNlZC10YWJsZS9hZHZhbmNlZC10YWJsZS5pbnRlcmZhY2VzJztcbmltcG9ydCB7IFRvYXN0U2VydmljZSB9IGZyb20gJ0B1bml2ZXJzaXMvY29tbW9uJztcblxuQENvbXBvbmVudCh7XG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpjb21wb25lbnQtc2VsZWN0b3JcbiAgc2VsZWN0b3I6ICdhcHAtYWR2YW5jZWQtbGlzdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9hZHZhbmNlZC1saXN0LmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBBZHZhbmNlZExpc3RDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuXG4gIHB1YmxpYyByZWNvcmRzVG90YWw6IG51bWJlciA9IE5hTjtcbiAgcHVibGljIGNvbmZpZz86IFRhYmxlQ29uZmlndXJhdGlvbjtcbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb24/OiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgZGF0YVN1YnNjcmlwdGlvbj86IFN1YnNjcmlwdGlvbjtcbiAgcHJpdmF0ZSByZWxvYWRTdWJzY3JpcHRpb24/OiBTdWJzY3JpcHRpb247XG4gIEBJbnB1dCgnZW50aXR5U2V0JykgZW50aXR5U2V0Pzogc3RyaW5nO1xuICBASW5wdXQoJ2NhdGVnb3J5JykgY2F0ZWdvcnk/OiBzdHJpbmc7XG4gIEBJbnB1dCgnZGVzY3JpcHRpb24nKSBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgQElucHV0KCdsb25nRGVzY3JpcHRpb24nKSBsb25nRGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIEBJbnB1dCgndGFibGVDb25maWd1cmF0aW9uJykgdGFibGVDb25maWd1cmF0aW9uOiBhbnk7XG4gIEBJbnB1dCgnc2VhcmNoQ29uZmlndXJhdGlvbicpIHNlYXJjaENvbmZpZ3VyYXRpb246IGFueTtcbiAgQFZpZXdDaGlsZCgndGFibGUnKSB0YWJsZT86IEFkdmFuY2VkVGFibGVDb21wb25lbnQ7XG4gIEBJbnB1dCgnYWxsb3dTYXZlT3B0aW9uJykgYWxsb3dTYXZlT3B0aW9uID0gdHJ1ZTtcbiAgQElucHV0KCdyZWFkb25seScpIHJlYWRvbmx5OiBib29sZWFuID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfY29udGV4dDogQW5ndWxhckRhdGFDb250ZXh0LFxuICAgIHByaXZhdGUgX3RyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBfYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHByaXZhdGUgX2Vycm9yU2VydmljZTogRXJyb3JTZXJ2aWNlLFxuICAgIHByaXZhdGUgX3RvYXN0U2VydmljZTogVG9hc3RTZXJ2aWNlLFxuICAgIHByaXZhdGUgX21vZGFsU2VydmljZTogTW9kYWxTZXJ2aWNlLFxuICAgIHByaXZhdGUgX3VzZXJBY3Rpdml0eVNlcnZpY2U6IFVzZXJBY3Rpdml0eVNlcnZpY2VcbiAgICApIHsgfVxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kYXRhU3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLmRhdGFTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gICAgaWYgKHRoaXMucmVsb2FkU3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLnJlbG9hZFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgICBpZiAodGhpcy5zdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRyeSB7XG4gICAgICBpZiAodGhpcy50YWJsZSA9PSBudWxsKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHRhYmxlID0gdGhpcy50YWJsZTtcbiAgICAgIC8vIGdldCBtZXRhZGF0YVxuICAgICAgY29uc3QgbWV0YWRhdGEgPSBhd2FpdCB0aGlzLl9jb250ZXh0LmdldE1ldGFkYXRhKCk7XG4gICAgICAvLyBnZXQgcm91dGUgZGF0YVxuICAgICAgdGhpcy5kYXRhU3Vic2NyaXB0aW9uID0gdGhpcy5fYWN0aXZhdGVkUm91dGUuZGF0YS5zdWJzY3JpYmUoIHJvdXRlRGF0YSA9PiB7XG4gICAgICAgIC8vIGdldCBlbnRpdHlUeXBlXG4gICAgICAgIGNvbnN0IHJlID0gbmV3IFJlZ0V4cChgXiR7cm91dGVEYXRhLm1vZGVsfSRgLCAnaWcnKTtcbiAgICAgICAgY29uc3QgZW50aXR5U2V0ID0gbWV0YWRhdGEuRW50aXR5Q29udGFpbmVyLkVudGl0eVNldC5maW5kKCB4ID0+IHtcbiAgICAgICAgICByZXR1cm4gcmUudGVzdCh4Lk5hbWUpO1xuICAgICAgICB9KTtcbiAgICAgICAgLy8gaWYgZW50aXR5IHR5cGUgaXMgbnVsbFxuICAgICAgICBpZiAoZW50aXR5U2V0ID09IG51bGwpIHtcbiAgICAgICAgICAvLyBuYXZpZ2F0ZSB0byBlcnJvclxuICAgICAgICAgIHJldHVybiB0aGlzLl9lcnJvclNlcnZpY2UubmF2aWdhdGVUb0Vycm9yKG5ldyBSZXNwb25zZUVycm9yKCdFbnRpdHlTZXQgTm90IEZvdW5kJywgNDA0KSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gZ2V0IGVudGl0eSB0eXBlXG4gICAgICAgIGNvbnN0IGVudGl0eVR5cGUgPSBtZXRhZGF0YS5FbnRpdHlUeXBlLmZpbmQoIHggPT4ge1xuICAgICAgICAgIHJldHVybiB4Lk5hbWUgPT09IGVudGl0eVNldC5FbnRpdHlUeXBlO1xuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGVudGl0eVR5cGUgPT0gbnVsbCkge1xuICAgICAgICAgIHJldHVybiB0aGlzLl9lcnJvclNlcnZpY2UubmF2aWdhdGVUb0Vycm9yKG5ldyBSZXNwb25zZUVycm9yKCdFbnRpdHlUeXBlIE5vdCBGb3VuZCcsIDQwNCkpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChyb3V0ZURhdGEuc2VhcmNoQ29uZmlndXJhdGlvbikge1xuICAgICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocm91dGVEYXRhLnNlYXJjaENvbmZpZ3VyYXRpb24sICdhbGxvd1NhdmUnKSkge1xuICAgICAgICAgICAgdGhpcy5hbGxvd1NhdmVPcHRpb24gPSByb3V0ZURhdGEuc2VhcmNoQ29uZmlndXJhdGlvbi5hbGxvd1NhdmU7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuc2VhcmNoQ29uZmlndXJhdGlvbiA9IHJvdXRlRGF0YS5zZWFyY2hDb25maWd1cmF0aW9uO1xuICAgICAgICB9XG4gICAgICAgIGlmIChyb3V0ZURhdGEudGFibGVDb25maWd1cmF0aW9uKSB7XG4gICAgICAgICAgdGhpcy50YWJsZUNvbmZpZ3VyYXRpb24gPSByb3V0ZURhdGEudGFibGVDb25maWd1cmF0aW9uO1xuICAgICAgICB9XG4gICAgICAgIGlmIChyb3V0ZURhdGEuZGVzY3JpcHRpb24pIHtcbiAgICAgICAgICB0aGlzLmRlc2NyaXB0aW9uID0gdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KHJvdXRlRGF0YS5kZXNjcmlwdGlvbik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHJvdXRlRGF0YS5sb25nRGVzY3JpcHRpb24pIHtcbiAgICAgICAgICB0aGlzLmxvbmdEZXNjcmlwdGlvbiA9IHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChyb3V0ZURhdGEubG9uZ0Rlc2NyaXB0aW9uKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocm91dGVEYXRhLmNhdGVnb3J5KSB7XG4gICAgICAgICAgdGhpcy5jYXRlZ29yeSA9IHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChyb3V0ZURhdGEuY2F0ZWdvcnkpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocm91dGVEYXRhLCAncmVhZG9ubHknKSkge1xuICAgICAgICAgIHRoaXMucmVhZG9ubHkgPSByb3V0ZURhdGEucmVhZG9ubHk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gY2xvbmUgZGVmYXVsdCBjb25maWd1cmF0aW9uXG4gICAgICAgIGNvbnN0IGRlZmF1bHRDb25maWd1cmF0aW9uID0gQWR2YW5jZWRUYWJsZUNvbmZpZ3VyYXRpb24uY2FzdCh0aGlzLnRhYmxlQ29uZmlndXJhdGlvbiwgdHJ1ZSk7XG4gICAgICAgIC8vIGNvcnJlY3QgZWRpdCBidXR0b24gbGlua1xuICAgICAgICBjb25zdCBjb2x1bW4gPSBkZWZhdWx0Q29uZmlndXJhdGlvbi5jb2x1bW5zLmZpbmQoIGNvbCA9PiB7XG4gICAgICAgICAgcmV0dXJuIGNvbC5mb3JtYXR0ZXIgPT09ICdCdXR0b25Gb3JtYXR0ZXInICYmIGNvbC5mb3JtYXRTdHJpbmcgPT09ICcobW9kYWw6ZWRpdCknO1xuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGNvbHVtbikge1xuICAgICAgICAgIGNvbnN0IHVybDogQXJyYXk8c3RyaW5nPiA9IFtdO1xuICAgICAgICAgIHRoaXMuX2FjdGl2YXRlZFJvdXRlLnNuYXBzaG90LnBhdGhGcm9tUm9vdC5mb3JFYWNoKCByb3V0ZSA9PiB7XG4gICAgICAgICAgICB1cmwucHVzaC5hcHBseSh1cmwsIHJvdXRlLnVybCk7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgY29sdW1uLmZvcm1hdFN0cmluZyA9IGAjLyR7dXJsLmpvaW4oJy8nKX0vKG1vZGFsOlxcJFxce2lkXFx9L2VkaXQpYDtcbiAgICAgICAgfVxuICAgICAgICAvLyBjcmVhdGUgbGlzdCBjb25maWd1cmF0aW9uIGJ5IGFzc2lnbmluZyBsaXN0IGVudGl0eSBzZXRcbiAgICAgICAgY29uc3Qgc2V0Q29uZmlnID0gT2JqZWN0LmFzc2lnbih7XG4gICAgICAgICAgbW9kZWw6IGVudGl0eVNldC5OYW1lXG4gICAgICAgIH0sIGRlZmF1bHRDb25maWd1cmF0aW9uKTtcbiAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzZXRDb25maWcsICdzZWxlY3RhYmxlJykpIHtcbiAgICAgICAgICBzZXRDb25maWcuc2VsZWN0YWJsZSA9ICF0aGlzLnJlYWRvbmx5O1xuICAgICAgICB9XG4gICAgICAgIHRhYmxlLmNvbmZpZyA9IHNldENvbmZpZztcbiAgICAgICAgLy8gZmV0Y2ggZGF0YVxuICAgICAgICB0YWJsZS5mZXRjaCh0cnVlKTtcbiAgICAgICAgLy8gZG8gcmVsb2FkIGJ5IHVzaW5nIGhpZGRlbiBmcmFnbWVudCBlLmcuIC9jbGFzc2VzI3JlbG9hZFxuICAgICAgICB0aGlzLnJlbG9hZFN1YnNjcmlwdGlvbiA9IHRoaXMuX2FjdGl2YXRlZFJvdXRlLmZyYWdtZW50LnN1YnNjcmliZShmcmFnbWVudCA9PiB7XG4gICAgICAgICAgaWYgKGZyYWdtZW50ICYmIGZyYWdtZW50ID09PSAncmVsb2FkJykge1xuICAgICAgICAgICAgdGhpcy5fdG9hc3RTZXJ2aWNlLnNob3coXG4gICAgICAgICAgICAgIHRoaXMuZGVzY3JpcHRpb24gYXMgc3RyaW5nLFxuICAgICAgICAgICAgICB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ1NldHRpbmdzLk9wZXJhdGlvbkNvbXBsZXRlZCcpXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgdGFibGUuZmV0Y2godHJ1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgLy8gZmluYWxseSBhZGQgdXNlciBhY3Rpdml0eVxuICAgICAgICB0aGlzLl91c2VyQWN0aXZpdHlTZXJ2aWNlLnNldEl0ZW0oe1xuICAgICAgICAgIGNhdGVnb3J5OiB0aGlzLmNhdGVnb3J5IGFzIHN0cmluZyxcbiAgICAgICAgICBkZXNjcmlwdGlvbjogdGhpcy5kZXNjcmlwdGlvbiBhcyBzdHJpbmcsXG4gICAgICAgICAgdXJsOiB3aW5kb3cubG9jYXRpb24uaGFzaC5zdWJzdHJpbmcoMSksXG4gICAgICAgICAgZGF0ZUNyZWF0ZWQ6IG5ldyBEYXRlXG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGVycik7XG4gICAgICByZXR1cm4gdGhpcy5fZXJyb3JTZXJ2aWNlLnNob3dFcnJvcihlcnIpO1xuICAgIH1cbiAgfVxuXG5cbiAgLyoqXG4gICAqIERhdGEgbG9hZCBldmVudCBoYW5kbGVyIG9mIGFkdmFuY2VkIHRhYmxlIGNvbXBvbmVudFxuICAgKiBAcGFyYW0gZGF0YVxuICAgKi9cbiAgb25EYXRhTG9hZChkYXRhOiBBZHZhbmNlZFRhYmxlRGF0YVJlc3VsdCkge1xuICAgIHRoaXMucmVjb3Jkc1RvdGFsID0gZGF0YS5yZWNvcmRzVG90YWw7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIHNlbGVjdGVkIGl0ZW1zXG4gICAqL1xuICByZW1vdmUoKSB7XG4gICAgY29uc3QgdGFibGUgPSB0aGlzLnRhYmxlO1xuICAgIGlmICh0YWJsZSAmJiB0YWJsZS5zZWxlY3RlZCAmJiB0YWJsZS5zZWxlY3RlZC5sZW5ndGgpIHtcbiAgICAgIC8vIGdldCBpdGVtcyB0byByZW1vdmVcbiAgICAgIGNvbnN0IGl0ZW1zID0gdGFibGUuc2VsZWN0ZWQ7XG4gICAgICByZXR1cm4gdGhpcy5fbW9kYWxTZXJ2aWNlLnNob3dXYXJuaW5nRGlhbG9nKFxuICAgICAgICB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ1RhYmxlcy5SZW1vdmVJdGVtc1RpdGxlJyksXG4gICAgICAgIHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnVGFibGVzLlJlbW92ZUl0ZW1zTWVzc2FnZScpLFxuICAgICAgICBESUFMT0dfQlVUVE9OUy5Pa0NhbmNlbCkudGhlbihyZXN1bHQgPT4ge1xuICAgICAgICAgIGlmIChyZXN1bHQgPT09ICdvaycpIHtcbiAgICAgICAgICAgIHRoaXMuX2NvbnRleHQubW9kZWwodGFibGUuY29uZmlnLm1vZGVsKS5yZW1vdmUoaXRlbXMpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgICB0aGlzLl90b2FzdFNlcnZpY2Uuc2hvdyhcbiAgICAgICAgICAgICAgICB0aGlzLmRlc2NyaXB0aW9uICsgJzonICsgdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdUYWJsZXMuUmVtb3ZlSXRlbU1lc3NhZ2UudGl0bGUnKSxcbiAgICAgICAgICAgICAgICB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoKGl0ZW1zLmxlbmd0aCA9PT0gMSA/XG4gICAgICAgICAgICAgICAgICAnVGFibGVzLlJlbW92ZUl0ZW1NZXNzYWdlLm9uZScgOiAnVGFibGVzLlJlbW92ZUl0ZW1NZXNzYWdlLm1hbnknKVxuICAgICAgICAgICAgICAgICAgLCB7IHZhbHVlOiBpdGVtcy5sZW5ndGggfSlcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgdGFibGUuZmV0Y2godHJ1ZSk7XG4gICAgICAgICAgICB9KS5jYXRjaChlcnIgPT4ge1xuICAgICAgICAgICAgICB0aGlzLl9lcnJvclNlcnZpY2Uuc2hvd0Vycm9yKGVyciwge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlTGluazogJy4nXG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|