@smartbit4all/ng-client 3.2.0 → 3.2.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/esm2020/lib/smart-filter-editor/smart-filter-editor-content/smart-filter-editor-content.component.mjs +24 -19
- package/fesm2015/smartbit4all-ng-client.mjs +24 -20
- package/fesm2015/smartbit4all-ng-client.mjs.map +1 -1
- package/fesm2020/smartbit4all-ng-client.mjs +23 -18
- package/fesm2020/smartbit4all-ng-client.mjs.map +1 -1
- package/package.json +1 -1
- package/smartbit4all-ng-client-3.2.2.tgz +0 -0
- package/smartbit4all-ng-client-3.2.0.tgz +0 -0
|
@@ -20,32 +20,19 @@ export class SmartFilterEditorContentComponent {
|
|
|
20
20
|
this.expressionUiActionModels = [];
|
|
21
21
|
this.type = FilterExpressionBuilderUiModel.TypeEnum;
|
|
22
22
|
}
|
|
23
|
-
ngAfterViewInit() {
|
|
24
|
-
if (this.smartFilterChangeSubscription) {
|
|
25
|
-
this.smartFilterChangeSubscription.unsubscribe();
|
|
26
|
-
}
|
|
27
|
-
this.smartFilterChangeSubscription = this.simpleFilterFormChild.onBlurSubject?.pipe(takeUntil(this._destroy$)).subscribe(() => {
|
|
28
|
-
this.saveFilter();
|
|
29
|
-
});
|
|
30
|
-
if (this.smartFilterSophisticatedChangeSubscription) {
|
|
31
|
-
this.smartFilterSophisticatedChangeSubscription.unsubscribe();
|
|
32
|
-
}
|
|
33
|
-
this.smartFilterSophisticatedChangeSubscription =
|
|
34
|
-
this.simpleFilterFormChild.sophisticatedValueChange?.pipe(takeUntil(this._destroy$)).subscribe((change) => {
|
|
35
|
-
if (change.kind === 'selection') {
|
|
36
|
-
this.saveFilter();
|
|
37
|
-
}
|
|
38
|
-
});
|
|
39
|
-
}
|
|
23
|
+
ngAfterViewInit() { }
|
|
40
24
|
ngOnInit() {
|
|
41
25
|
this.service.load();
|
|
42
|
-
this.setUp();
|
|
26
|
+
this.service.modelChanged.pipe(takeUntil(this._destroy$)).subscribe(() => this.setUp());
|
|
43
27
|
}
|
|
44
28
|
ngOnDestroy() {
|
|
45
29
|
this._destroy$.next();
|
|
46
30
|
this._destroy$.complete();
|
|
47
31
|
}
|
|
48
32
|
setupSimpleFilter() {
|
|
33
|
+
if (this.simpleFilterForm) {
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
49
36
|
let widgets = [];
|
|
50
37
|
let key;
|
|
51
38
|
let model = {};
|
|
@@ -85,6 +72,21 @@ export class SmartFilterEditorContentComponent {
|
|
|
85
72
|
useOnBlurEvent: true,
|
|
86
73
|
widgets,
|
|
87
74
|
};
|
|
75
|
+
if (this.smartFilterChangeSubscription) {
|
|
76
|
+
this.smartFilterChangeSubscription.unsubscribe();
|
|
77
|
+
}
|
|
78
|
+
this.smartFilterChangeSubscription = this.simpleFilterFormChild.onBlurSubject?.pipe(takeUntil(this._destroy$)).subscribe(() => {
|
|
79
|
+
this.saveFilter();
|
|
80
|
+
});
|
|
81
|
+
if (this.smartFilterSophisticatedChangeSubscription) {
|
|
82
|
+
this.smartFilterSophisticatedChangeSubscription.unsubscribe();
|
|
83
|
+
}
|
|
84
|
+
this.smartFilterSophisticatedChangeSubscription =
|
|
85
|
+
this.simpleFilterFormChild.sophisticatedValueChange?.pipe(takeUntil(this._destroy$)).subscribe((change) => {
|
|
86
|
+
if (change.kind === 'selection') {
|
|
87
|
+
this.saveFilter();
|
|
88
|
+
}
|
|
89
|
+
});
|
|
88
90
|
}
|
|
89
91
|
extractFilterFieldFromFormModel() {
|
|
90
92
|
let simpleFilter = this.simpleFilterFormChild?.submitForm(false).componentModel.data;
|
|
@@ -134,6 +136,9 @@ export class SmartFilterEditorContentComponent {
|
|
|
134
136
|
}
|
|
135
137
|
}
|
|
136
138
|
constructForm() {
|
|
139
|
+
if (this.smartForm) {
|
|
140
|
+
return;
|
|
141
|
+
}
|
|
137
142
|
let generatedWidgets = this.layoutService.render({
|
|
138
143
|
layoutDefinitions: this.service.model?.selectedFieldEditor?.layoutDef?.widgets,
|
|
139
144
|
});
|
|
@@ -238,4 +243,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
|
|
|
238
243
|
type: ViewChild,
|
|
239
244
|
args: ['simpleFilterFromChild']
|
|
240
245
|
}] } });
|
|
241
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtZmlsdGVyLWVkaXRvci1jb250ZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NtYXJ0LW5nLWNsaWVudC9zcmMvbGliL3NtYXJ0LWZpbHRlci1lZGl0b3Ivc21hcnQtZmlsdGVyLWVkaXRvci1jb250ZW50L3NtYXJ0LWZpbHRlci1lZGl0b3ItY29udGVudC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi9zbWFydC1maWx0ZXItZWRpdG9yL3NtYXJ0LWZpbHRlci1lZGl0b3ItY29udGVudC9zbWFydC1maWx0ZXItZWRpdG9yLWNvbnRlbnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLFNBQVMsRUFDVCxLQUFLLEVBR0wsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxPQUFPLEVBQWdCLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN4RCxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM5RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUMvRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQU9oRSxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUU3RixPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQzs7Ozs7Ozs7QUFRekYsTUFBTSxPQUFPLGlDQUFpQztJQWU1QyxZQUFvQixhQUErQztRQUEvQyxrQkFBYSxHQUFiLGFBQWEsQ0FBa0M7UUFkM0QsY0FBUyxHQUFrQixJQUFJLE9BQU8sRUFBRSxDQUFDO1FBR2pELG1CQUFjLEdBQW9CLEVBQUUsQ0FBQztRQUNyQyw2QkFBd0IsR0FBb0IsRUFB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LENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFLO29CQUNwRCxLQUFLLEVBQUUsS0FBSyxDQUFDLFlBQVk7b0JBQ3pCLElBQUksRUFBRSxtQkFBbUIsQ0FBQyxJQUFJO29CQUM5QixLQUFLLEVBQUUsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUk7aUJBQ3RELENBQUM7WUFDSixDQUFDLENBQUM7U0FDSCxDQUFDO1FBRUYsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQzs7OEhBOVNVLGlDQUFpQztrSEFBakMsaUNBQWlDLDBUQzlCOUMsdTBEQWdEQTsyRkRsQmEsaUNBQWlDO2tCQUw3QyxTQUFTOytCQUNFLGdDQUFnQzt1SEFNakMsT0FBTztzQkFBZixLQUFLO2dCQUthLFNBQVM7c0JBQTNCLFNBQVM7dUJBQUMsTUFBTTtnQkFHbUIscUJBQXFCO3NCQUF4RCxTQUFTO3VCQUFDLHVCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQWZ0ZXJWaWV3Q2hlY2tlZCxcclxuICBBZnRlclZpZXdJbml0LFxyXG4gIENvbXBvbmVudCxcclxuICBJbnB1dCxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT25Jbml0LFxyXG4gIFZpZXdDaGlsZCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IFN1YmplY3QsIFN1YnNjcmlwdGlvbiwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEZpbHRlckV4cHJlc3Npb25GaWVsZFdpZGdldFR5cGUgfSBmcm9tICcuLi8uLi9zbWFydC1maWx0ZXIvcHJvamVjdHMnO1xyXG5pbXBvcnQgeyBTbWFydEZvcm1XaWRnZXREaXJlY3Rpb24gfSBmcm9tICcuLi8uLi9zbWFydC1mb3JtL2FwaS9tb2RlbC9zbWFydEZvcm1XaWRnZXREaXJlY3Rpb24nO1xyXG5pbXBvcnQgeyBTbWFydEZvcm1XaWRnZXRUeXBlIH0gZnJvbSAnLi4vLi4vc21hcnQtZm9ybS9wcm9qZWN0cyc7XHJcbmltcG9ydCB7IFNtYXJ0Zm9ybUxheW91dERlZmluaXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc21hcnQtZm9ybS9zZXJ2aWNlcy9zbWFydGZvcm0ubGF5b3V0LWRlZmluaXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7IFNtYXJ0Zm9ybUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL3NtYXJ0LWZvcm0vc21hcnRmb3JtLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFNtYXJ0Rm9ybVdpZGdldCB9IGZyb20gJy4uLy4uL3NtYXJ0LWZvcm0vc21hcnRmb3JtLmZvcm0tbW9kZWwnO1xyXG5pbXBvcnQgeyBTbWFydEZvcm0sIFNvcGhpc3RpY2F0ZWRWYWx1ZUNoYW5nZSwgVmFsdWUgfSBmcm9tICcuLi8uLi9zbWFydC1mb3JtL3NtYXJ0Zm9ybS5tb2RlbCc7XHJcbmltcG9ydCB7IFVpQWN0aW9uIH0gZnJvbSAnLi4vLi4vdmlldy1jb250ZXh0L2FwaS9tb2RlbC91aUFjdGlvbic7XHJcbmltcG9ydCB7IFVpQWN0aW9uTW9kZWwgfSBmcm9tICcuLi8uLi92aWV3LWNvbnRleHQvc21hcnQtdWktYWN0aW9uL3VpLWFjdGlvbi5tb2RlbCc7XHJcbmltcG9ydCB7IEZpbHRlckV4cHJlc3Npb25CdWlsZGVyVWlNb2RlbCB9IGZyb20gJy4uL2FwaS9tb2RlbC9maWx0ZXJFeHByZXNzaW9uQnVpbGRlclVpTW9kZWwnO1xyXG5pbXBvcnQgeyBGaWx0ZXJFeHByZXNzaW9uRmllbGQgfSBmcm9tICcuLi9hcGkvbW9kZWwvZmlsdGVyRXhwcmVzc2lvbkZpZWxkJztcclxuaW1wb3J0IHsgRmlsdGVyRXhwcmVzc2lvbkJ1aWxkZXJBcGlBY3Rpb25zIH0gZnJvbSAnLi4vZmlsdGVyRXhwcmVzc2lvbkJ1aWxkZXJBcGlBY3Rpb25zJztcclxuaW1wb3J0IHsgSVNtYXJ0RmlsdGVyRWRpdG9yU2VydmljZSB9IGZyb20gJy4uL3NtYXJ0LWZpbHRlci1lZGl0b3Iuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NtYXJ0LWZpbHRlci1leHByZXNzaW9uLWVkaXRvcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3NtYXJ0LWZpbHRlci1lZGl0b3ItY29udGVudC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vc21hcnQtZmlsdGVyLWVkaXRvci1jb250ZW50LmNvbXBvbmVudC5jc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNtYXJ0RmlsdGVyRWRpdG9yQ29udGVudENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlclZpZXdJbml0IHtcclxuICBwcml2YXRlIF9kZXN0cm95JDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgQElucHV0KCkgc2VydmljZSE6IElTbWFydEZpbHRlckVkaXRvclNlcnZpY2U7XHJcblxyXG4gIHVpQWN0aW9uTW9kZWxzOiBVaUFjdGlvbk1vZGVsW10gPSBbXTtcclxuICBleHByZXNzaW9uVWlBY3Rpb25Nb2RlbHM6IFVpQWN0aW9uTW9kZWxbXSA9IFtdO1xyXG5cclxuICBAVmlld0NoaWxkKCdmb3JtJykgZm9ybUNoaWxkPzogU21hcnRmb3JtQ29tcG9uZW50O1xyXG4gIHNtYXJ0Rm9ybT86IFNtYXJ0Rm9ybTtcclxuXHJcbiAgQFZpZXdDaGlsZCgnc2ltcGxlRmlsdGVyRnJvbUNoaWxkJykgc2ltcGxlRmlsdGVyRm9ybUNoaWxkPzogU21hcnRmb3JtQ29tcG9uZW50O1xyXG4gIHNpbXBsZUZpbHRlckZvcm0/OiBTbWFydEZvcm07XHJcblxyXG4gIHR5cGUgPSBGaWx0ZXJFeHByZXNzaW9uQnVpbGRlclVpTW9kZWwuVHlwZUVudW07XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbGF5b3V0U2VydmljZTogU21hcnRmb3JtTGF5b3V0RGVmaW5pdGlvblNlcnZpY2UpIHt9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnNtYXJ0RmlsdGVyQ2hhbmdlU3Vic2NyaXB0aW9uKSB7XHJcbiAgICAgIHRoaXMuc21hcnRGaWx0ZXJDaGFuZ2VTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnNtYXJ0RmlsdGVyQ2hhbmdlU3Vic2NyaXB0aW9uID0gdGhpcy5zaW1wbGVGaWx0ZXJGb3JtQ2hpbGQhLm9uQmx1clN1YmplY3Q/LnBpcGUoXHJcbiAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JClcclxuICAgICkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgdGhpcy5zYXZlRmlsdGVyKCk7XHJcbiAgICB9KTtcclxuXHJcbiAgICBpZiAodGhpcy5zbWFydEZpbHRlclNvcGhpc3RpY2F0ZWRDaGFuZ2VTdWJzY3JpcHRpb24pIHtcclxuICAgICAgdGhpcy5zbWFydEZpbHRlclNvcGhpc3RpY2F0ZWRDaGFuZ2VTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnNtYXJ0RmlsdGVyU29waGlzdGljYXRlZENoYW5nZVN1YnNjcmlwdGlvbiA9XHJcbiAgICAgIHRoaXMuc2ltcGxlRmlsdGVyRm9ybUNoaWxkIS5zb3BoaXN0aWNhdGVkVmFsdWVDaGFuZ2U/LnBpcGUoXHJcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKVxyXG4gICAgICApLnN1YnNjcmliZSgoY2hhbmdlKSA9PiB7XHJcbiAgICAgICAgaWYgKGNoYW5nZS5raW5kID09PSAnc2VsZWN0aW9uJykge1xyXG4gICAgICAgICAgdGhpcy5zYXZlRmlsdGVyKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIHNtYXJ0RmlsdGVyQ2hhbmdlU3Vic2NyaXB0aW9uPzogU3Vic2NyaXB0aW9uO1xyXG4gIHNtYXJ0RmlsdGVyU29waGlzdGljYXRlZENoYW5nZVN1YnNjcmlwdGlvbj86IFN1YnNjcmlwdGlvbjtcclxuICBzbWFydGZvcm1DaGFuZ2VTdWJzY3JpcHRpb24/OiBTdWJzY3JpcHRpb247XHJcbiAgc21hcnRmb3JtU29waGlzdGljYXRlZENoYW5nZVN1YnNjcmlwdGlvbj86IFN1YnNjcmlwdGlvbjtcclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlcnZpY2UubG9hZCgpO1xyXG4gICAgdGhpcy5zZXRVcCgpO1xyXG4gIH1cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX2Rlc3Ryb3kkLm5leHQoKTtcclxuICAgIHRoaXMuX2Rlc3Ryb3kkLmNvbXBsZXRlKCk7XHJcbiAgfVxyXG5cclxuICBzZXR1cFNpbXBsZUZpbHRlcigpOiB2b2lkIHtcclxuICAgIGxldCB3aWRnZXRzOiBTbWFydEZvcm1XaWRnZXQ8YW55PltdID0gW107XHJcblxyXG4gICAgbGV0IGtleTogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG5cclxuICAgIGxldCBtb2RlbDogeyBba2V5OiBzdHJpbmddOiBhbnkgfSA9IHt9O1xyXG5cclxuICAgIHRoaXMuc2VydmljZS5tb2RlbD8ubW9kZWw/LndvcmtwbGFjZUxpc3Q/LmZpbHRlcnMuZm9yRWFjaChcclxuICAgICAgKGZpbHRlckV4cHJlc3Npb25GaWVsZDogRmlsdGVyRXhwcmVzc2lvbkZpZWxkLCBpbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICAgICAgbW9kZWxbaW5kZXhdID0gZmlsdGVyRXhwcmVzc2lvbkZpZWxkO1xyXG5cclxuICAgICAgICBpZiAoZmlsdGVyRXhwcmVzc2lvbkZpZWxkLndpZGdldFR5cGUgPT09ICdTRUxFQ1RfTVVMVElQTEUnKSB7XHJcbiAgICAgICAgICBrZXkgPSBpbmRleCArICcuZXhwcmVzc2lvbkRhdGEub3BlcmFuZDIuc2VsZWN0ZWRWYWx1ZXMnO1xyXG4gICAgICAgICAgd2lkZ2V0cy5wdXNoKFxyXG4gICAgICAgICAgICB0aGlzLmNvbnN0cnVjdEZvcm1XaWRnZXQoXHJcbiAgICAgICAgICAgICAga2V5LFxyXG4gICAgICAgICAgICAgIGZpbHRlckV4cHJlc3Npb25GaWVsZC5sYWJlbDIhLFxyXG4gICAgICAgICAgICAgIGZpbHRlckV4cHJlc3Npb25GaWVsZC53aWRnZXRUeXBlID8/IEZpbHRlckV4cHJlc3Npb25GaWVsZFdpZGdldFR5cGUuVGV4dEZpZWxkLFxyXG4gICAgICAgICAgICAgIGZpbHRlckV4cHJlc3Npb25GaWVsZC5wb3NzaWJsZVZhbHVlcyBhcyBWYWx1ZVtdXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoZmlsdGVyRXhwcmVzc2lvbkZpZWxkLmV4cHJlc3Npb25EYXRhPy5jdXJyZW50T3BlcmF0aW9uID09PSAnQkVUV0VFTicpIHtcclxuICAgICAgICAgIGtleSA9IGluZGV4ICsgJy5leHByZXNzaW9uRGF0YS5vcGVyYW5kMi52YWx1ZUFzU3RyaW5nJztcclxuICAgICAgICAgIHdpZGdldHMucHVzaChcclxuICAgICAgICAgICAgdGhpcy5jb25zdHJ1Y3RGb3JtV2lkZ2V0KFxyXG4gICAgICAgICAgICAgIGtleSxcclxuICAgICAgICAgICAgICBmaWx0ZXJFeHByZXNzaW9uRmllbGQubGFiZWwyISxcclxuICAgICAgICAgICAgICBmaWx0ZXJFeHByZXNzaW9uRmllbGQud2lkZ2V0VHlwZSA/PyBGaWx0ZXJFeHByZXNzaW9uRmllbGRXaWRnZXRUeXBlLlRleHRGaWVsZCxcclxuICAgICAgICAgICAgICBmaWx0ZXJFeHByZXNzaW9uRmllbGQucG9zc2libGVWYWx1ZXMgYXMgVmFsdWVbXVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICApO1xyXG5cclxuICAgICAgICAgIGtleSA9IGluZGV4ICsgJy5leHByZXNzaW9uRGF0YS5vcGVyYW5kMy52YWx1ZUFzU3RyaW5nJztcclxuICAgICAgICAgIHdpZGdldHMucHVzaChcclxuICAgICAgICAgICAgdGhpcy5jb25zdHJ1Y3RGb3JtV2lkZ2V0KFxyXG4gICAgICAgICAgICAgIGtleSxcclxuICAgICAgICAgICAgICBmaWx0ZXJFeHByZXNzaW9uRmllbGQubGFiZWwyISxcclxuICAgICAgICAgICAgICBmaWx0ZXJFeHByZXNzaW9uRmllbGQud2lkZ2V0VHlwZSA/PyBGaWx0ZXJFeHByZXNzaW9uRmllbGRXaWRnZXRUeXBlLlRleHRGaWVsZCxcclxuICAgICAgICAgICAgICBmaWx0ZXJFeHByZXNzaW9uRmllbGQucG9zc2libGVWYWx1ZXMgYXMgVmFsdWVbXVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKGZpbHRlckV4cHJlc3Npb25GaWVsZC5leHByZXNzaW9uRGF0YT8ub3BlcmFuZDIpIHtcclxuICAgICAgICAgIGlmIChrZXkgIT09IGluZGV4ICsgJy5leHByZXNzaW9uRGF0YS5vcGVyYW5kMi5zZWxlY3RlZFZhbHVlcycpIHtcclxuICAgICAgICAgICAga2V5ID0gaW5kZXggKyAnLmV4cHJlc3Npb25EYXRhLm9wZXJhbmQyLnZhbHVlQXNTdHJpbmcnO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgd2lkZ2V0cy5wdXNoKFxyXG4gICAgICAgICAgICB0aGlzLmNvbnN0cnVjdEZvcm1XaWRnZXQoXHJcbiAgICAgICAgICAgICAga2V5LFxyXG4gICAgICAgICAgICAgIGZpbHRlckV4cHJlc3Npb25GaWVsZC5sYWJlbDIhLFxyXG4gICAgICAgICAgICAgIGZpbHRlckV4cHJlc3Npb25GaWVsZC53aWRnZXRUeXBlID8/IEZpbHRlckV4cHJlc3Npb25GaWVsZFdpZGdldFR5cGUuVGV4dEZpZWxkLFxyXG4gICAgICAgICAgICAgIGZpbHRlckV4cHJlc3Npb25GaWVsZC5wb3NzaWJsZVZhbHVlcyBhcyBWYWx1ZVtdXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChmaWx0ZXJFeHByZXNzaW9uRmllbGQ/LmV4cHJlc3Npb25EYXRhPy5vcGVyYW5kMykge1xyXG4gICAgICAgICAgaWYgKGtleSAhPT0gaW5kZXggKyAnLnNlbGVjdGVkVmFsdWVzJykge1xyXG4gICAgICAgICAgICBrZXkgPSBpbmRleCArICcuZXhwcmVzc2lvbkRhdGEub3BlcmFuZDMudmFsdWVBc1N0cmluZyc7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB3aWRnZXRzLnB1c2goXHJcbiAgICAgICAgICAgIHRoaXMuY29uc3RydWN0Rm9ybVdpZGdldChcclxuICAgICAgICAgICAgICBrZXksXHJcbiAgICAgICAgICAgICAgZmlsdGVyRXhwcmVzc2lvbkZpZWxkLmxhYmVsMyEsXHJcbiAgICAgICAgICAgICAgZmlsdGVyRXhwcmVzc2lvbkZpZWxkLndpZGdldFR5cGUgPz8gRmlsdGVyRXhwcmVzc2lvbkZpZWxkV2lkZ2V0VHlwZS5UZXh0RmllbGQsXHJcbiAgICAgICAgICAgICAgZmlsdGVyRXhwcmVzc2lvbkZpZWxkLnBvc3NpYmxlVmFsdWVzIGFzIFZhbHVlW11cclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICk7XHJcblxyXG4gICAgdGhpcy5zaW1wbGVGaWx0ZXJGb3JtID0ge1xyXG4gICAgICBkaXJlY3Rpb246IFNtYXJ0Rm9ybVdpZGdldERpcmVjdGlvbi5ST1csXHJcbiAgICAgIGNvbXBvbmVudE1vZGVsOiB7IGRhdGE6IG1vZGVsIH0sXHJcbiAgICAgIHVzZU9uVmFsdWVDaGFuZ2VFdmVudDogdHJ1ZSxcclxuICAgICAgdXNlT25CbHVyRXZlbnQ6IHRydWUsXHJcbiAgICAgIHdpZGdldHMsXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBleHRyYWN0RmlsdGVyRmllbGRGcm9tRm9ybU1vZGVsKCk6IHZvaWQge1xyXG4gICAgbGV0IHNpbXBsZUZpbHRlciA9IHRoaXMuc2ltcGxlRmlsdGVyRm9ybUNoaWxkPy5zdWJtaXRGb3JtKGZhbHNlKS5jb21wb25lbnRNb2RlbC5kYXRhO1xyXG4gICAgbGV0IHJlc3VsdDogRmlsdGVyRXhwcmVzc2lvbkZpZWxkW10gPSBbXTtcclxuXHJcbiAgICBPYmplY3Qua2V5cyhzaW1wbGVGaWx0ZXIpLmZvckVhY2goKGtleTogc3RyaW5nKSA9PiB7XHJcbiAgICAgIHJlc3VsdC5wdXNoKHNpbXBsZUZpbHRlcltrZXldKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5zZXJ2aWNlLm1vZGVsIS5tb2RlbCEud29ya3BsYWNlTGlzdCEuZmlsdGVycyA9IHJlc3VsdDtcclxuICB9XHJcblxyXG4gIHNldFVwKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuc2VydmljZS5tb2RlbD8udHlwZSA9PT0gdGhpcy50eXBlLlNpbXBsZSkge1xyXG4gICAgICB0aGlzLnNldHVwU2ltcGxlRmlsdGVyKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmNvbnN0cnVjdFVpQWN0aW9uTW9kZWxzKCk7XHJcblxyXG4gICAgICBpZiAodGhpcy5zZXJ2aWNlIS5tb2RlbCEuc2VsZWN0ZWRGaWVsZEVkaXRvcikge1xyXG4gICAgICAgIHRoaXMuY29uc3RydWN0Rm9ybSgpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuc21hcnRGb3JtID0gdW5kZWZpbmVkO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RVaUFjdGlvbk1vZGVscygpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnNlcnZpY2UubW9kZWw/LnBvc3NpYmxlQWN0aW9ucykge1xyXG4gICAgICB0aGlzLnVpQWN0aW9uTW9kZWxzID0gdGhpcy5zZXJ2aWNlLm1vZGVsLnBvc3NpYmxlQWN0aW9ucy5tYXAoKGFjdGlvbjogVWlBY3Rpb24pID0+IHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgc2VydmljZVRvVXNlOiB0aGlzLnNlcnZpY2UsXHJcbiAgICAgICAgICB1aUFjdGlvbjogYWN0aW9uLFxyXG4gICAgICAgIH07XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLnNlcnZpY2UubW9kZWw/LnNlbGVjdGVkRmllbGRFZGl0b3I/LnBvc3NpYmxlQWN0aW9ucykge1xyXG4gICAgICB0aGlzLmV4cHJlc3Npb25VaUFjdGlvbk1vZGVscyA9IHRoaXMuc2VydmljZS5tb2RlbD8uc2VsZWN0ZWRGaWVsZEVkaXRvci5wb3NzaWJsZUFjdGlvbnMubWFwKFxyXG4gICAgICAgICh1aUFjdGlvbjogVWlBY3Rpb24pID0+IHtcclxuICAgICAgICAgIGxldCBjb3BpZWRVaUFjdGlvbjogVWlBY3Rpb24gPSB7fTtcclxuICAgICAgICAgIE9iamVjdC5rZXlzKHVpQWN0aW9uKS5tYXAoKGtleTogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgICAgIChjb3BpZWRVaUFjdGlvbiBhcyBhbnkpW2tleV0gPSAodWlBY3Rpb24gYXMgYW55KVtrZXldO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICBjb3BpZWRVaUFjdGlvbi5wYXJhbXMgPSB7XHJcbiAgICAgICAgICAgIGZpZWxkOiB0aGlzLnNlcnZpY2UubW9kZWw/LnNlbGVjdGVkRmllbGQsXHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgc2VydmljZVRvVXNlOiB0aGlzLnNlcnZpY2UsXHJcbiAgICAgICAgICAgIHVpQWN0aW9uOiBjb3BpZWRVaUFjdGlvbixcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgfVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0Rm9ybSgpOiB2b2lkIHtcclxuICAgIGxldCBnZW5lcmF0ZWRXaWRnZXRzOiBTbWFydEZvcm1XaWRnZXQ8YW55PltdID0gdGhpcy5sYXlvdXRTZXJ2aWNlLnJlbmRlcih7XHJcbiAgICAgIGxheW91dERlZmluaXRpb25zOiB0aGlzLnNlcnZpY2UubW9kZWw/LnNlbGVjdGVkRmllbGRFZGl0b3I/LmxheW91dERlZj8ud2lkZ2V0cyxcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuc21hcnRGb3JtID0ge1xyXG4gICAgICBkaXJlY3Rpb246IFNtYXJ0Rm9ybVdpZGdldERpcmVjdGlvbi5ST1csXHJcbiAgICAgIHVzZU9uQmx1ckV2ZW50OiB0cnVlLFxyXG4gICAgICB1c2VPblZhbHVlQ2hhbmdlRXZlbnQ6IHRydWUsXHJcbiAgICAgIGNvbXBvbmVudE1vZGVsOiB7IGRhdGE6IHRoaXMuc2VydmljZS5tb2RlbD8uc2VsZWN0ZWRGaWVsZCB9LFxyXG4gICAgICB3aWRnZXRzOiBnZW5lcmF0ZWRXaWRnZXRzLFxyXG4gICAgfTtcclxuXHJcbiAgICBpZiAodGhpcy5zbWFydGZvcm1DaGFuZ2VTdWJzY3JpcHRpb24pIHtcclxuICAgICAgdGhpcy5zbWFydGZvcm1DaGFuZ2VTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnNtYXJ0Zm9ybUNoYW5nZVN1YnNjcmlwdGlvbiA9IHRoaXMuZm9ybUNoaWxkPy5vbkJsdXJTdWJqZWN0XHJcbiAgICAgID8ucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICB0aGlzLnNhdmUoKTtcclxuICAgICAgfSk7XHJcblxyXG4gICAgaWYgKHRoaXMuc21hcnRmb3JtU29waGlzdGljYXRlZENoYW5nZVN1YnNjcmlwdGlvbikge1xyXG4gICAgICB0aGlzLnNtYXJ0Zm9ybVNvcGhpc3RpY2F0ZWRDaGFuZ2VTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnNtYXJ0Zm9ybVNvcGhpc3RpY2F0ZWRDaGFuZ2VTdWJzY3JpcHRpb24gPSB0aGlzLmZvcm1DaGlsZD8uc29waGlzdGljYXRlZFZhbHVlQ2hhbmdlXHJcbiAgICAgID8ucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKChjaGFuZ2U6IFNvcGhpc3RpY2F0ZWRWYWx1ZUNoYW5nZSkgPT4ge1xyXG4gICAgICAgIGlmIChjaGFuZ2Uua2V5ID09PSAnZXhwcmVzc2lvbkRhdGEuY3VycmVudE9wZXJhdGlvbicpIHtcclxuICAgICAgICAgIHRoaXMuc2F2ZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBzYXZlKCk6IHZvaWQge1xyXG4gICAgdGhpcy5mb3JtQ2hpbGQ/LnN1Ym1pdEZvcm0oZmFsc2UpO1xyXG4gICAgdGhpcy5zZXJ2aWNlLnBlZm9ybVdpZGdldEFjdGlvbih7XHJcbiAgICAgIGNvZGU6ICdVUERBVEVfRklMVEVSX0VYUFJFU1NJT04nLFxyXG4gICAgICBwYXJhbXM6IHtcclxuICAgICAgICBtb2RlbDogdGhpcy5zZXJ2aWNlLm1vZGVsPy5zZWxlY3RlZEZpZWxkLFxyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICByZW1vdmUoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlcnZpY2UucGVmb3JtV2lkZ2V0QWN0aW9uKHtcclxuICAgICAgY29kZTogJ1JFTU9WRV9GSUxURVJfRVhQUkVTU0lPTicsXHJcbiAgICAgIHBhcmFtczoge1xyXG4gICAgICAgIG1vZGVsOiB0aGlzLnNlcnZpY2UubW9kZWw/LnNlbGVjdGVkRmllbGQsXHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGdldEZpbHRlcmVkVWlBY3Rpb25Nb2RlbHMoZmlsdGVyUHJlZGljYXRlOiAodWlBY3Rpb246IFVpQWN0aW9uKSA9PiBib29sZWFuKTogVWlBY3Rpb25Nb2RlbFtdIHtcclxuICAgIC8vIHJldHVybiB0aGlzLnNlcnZpY2UubW9kZWwhLnBvc3NpYmxlQWN0aW9ucyEuZmlsdGVyKGZpbHRlclByZWRpY2F0ZSkubWFwKCh1aUFjdGlvbjogVWlBY3Rpb24pID0+IHtcclxuICAgIC8vICAgcmV0dXJuIHtcclxuICAgIC8vICAgICBzZXJ2aWNlVG9Vc2U6IHRoaXMuc2VydmljZSxcclxuICAgIC8vICAgICB1aUFjdGlvbixcclxuICAgIC8vICAgfTtcclxuICAgIC8vIH0pO1xyXG4gICAgcmV0dXJuIFtdO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgc2F2ZUZpbHRlcigpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIHRoaXMuZXh0cmFjdEZpbHRlckZpZWxkRnJvbUZvcm1Nb2RlbCgpO1xyXG4gICAgdGhpcy5zZXJ2aWNlLnBlcmZvcm1VaUFjdGlvblJlcXVlc3Qoe1xyXG4gICAgICBjb2RlOiBGaWx0ZXJFeHByZXNzaW9uQnVpbGRlckFwaUFjdGlvbnMuU0FWRV9FWFBSRVNTSU9OX0ZJRUxEX0xJU1QsXHJcbiAgICAgIHBhcmFtczoge1xyXG4gICAgICAgIG1vZGVsOiB0aGlzLnNlcnZpY2UubW9kZWwhLFxyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNvbnN0cnVjdEZvcm1XaWRnZXQoXHJcbiAgICBrZXk6IHN0cmluZyxcclxuICAgIGxhYmVsOiBzdHJpbmcsXHJcbiAgICB3aWRnZXRUeXBlOiBGaWx0ZXJFeHByZXNzaW9uRmllbGRXaWRnZXRUeXBlLFxyXG4gICAgcG9zc2libGVWYWx1ZXM6IFZhbHVlW11cclxuICApOiBTbWFydEZvcm1XaWRnZXQ8YW55PiB7XHJcbiAgICBsZXQgdHlwZTogYW55ID0gd2lkZ2V0VHlwZTtcclxuXHJcbiAgICBpZiAodHlwZSA9PT0gRmlsdGVyRXhwcmVzc2lvbkZpZWxkV2lkZ2V0VHlwZS5EYXRlKSB7XHJcbiAgICAgIHR5cGUgPSBTbWFydEZvcm1XaWRnZXRUeXBlLkRBVEVfUElDS0VSO1xyXG4gICAgfSBlbHNlIGlmICh0eXBlID09PSBGaWx0ZXJFeHByZXNzaW9uRmllbGRXaWRnZXRUeXBlLkRhdGVUaW1lKSB7XHJcbiAgICAgIHR5cGUgPSBTbWFydEZvcm1XaWRnZXRUeXBlLkRBVEVfVElNRV9QSUNLRVI7XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IHdpZGdldDogU21hcnRGb3JtV2lkZ2V0PGFueT4gPSB7XHJcbiAgICAgIGtleSxcclxuICAgICAgbGFiZWwsXHJcbiAgICAgIHR5cGUsXHJcbiAgICAgIHZhbHVlOiAnJyxcclxuICAgICAgc2hvd0xhYmVsOiB0cnVlLFxyXG4gICAgICB2YWx1ZUxpc3Q6IHBvc3NpYmxlVmFsdWVzLm1hcCgodmFsdWU6IFZhbHVlKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgIGtleTogdmFsdWUub2JqZWN0VXJpID8gdmFsdWUub2JqZWN0VXJpIDogdmFsdWUuY29kZSEsXHJcbiAgICAgICAgICBsYWJlbDogdmFsdWUuZGlzcGxheVZhbHVlLFxyXG4gICAgICAgICAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5JVEVNLFxyXG4gICAgICAgICAgdmFsdWU6IHZhbHVlLm9iamVjdFVyaSA/IHZhbHVlLm9iamVjdFVyaSA6IHZhbHVlLmNvZGUsXHJcbiAgICAgICAgfTtcclxuICAgICAgfSksXHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiB3aWRnZXQ7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJ0YXJnZXRHcm91cENvbnRlbnRDb250YWluZXJcIj5cclxuICA8aDM+e3sgc2VydmljZS5tb2RlbD8ubW9kZWw/LmxhYmVsIH19PC9oMz5cclxuXHJcbiAgPGRpdiAqbmdJZj1cInNlcnZpY2UubW9kZWw/LnR5cGUgPT09IHR5cGUuU2ltcGxlOyB0aGVuIHNpbXBsZUZpbHRlcjsgZWxzZSBjb21wbGV4RmlsdGVyXCI+PC9kaXY+XHJcblxyXG4gIDxuZy10ZW1wbGF0ZSAjc2ltcGxlRmlsdGVyPlxyXG4gICAgPGRpdiBjbGFzcz1cImV4cHJlc3Npb25zQ29udGFpbmVyXCI+XHJcbiAgICAgIDxzbWFydGZvcm0gI3NpbXBsZUZpbHRlckZyb21DaGlsZCBbc21hcnRGb3JtXT1cInNpbXBsZUZpbHRlckZvcm1cIj48L3NtYXJ0Zm9ybT5cclxuICAgIDwvZGl2PlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcbiAgPG5nLXRlbXBsYXRlICNjb21wbGV4RmlsdGVyPlxyXG4gICAgPGRpdiBjbGFzcz1cInVpQWN0aW9uc0JhclwiICpuZ0lmPVwiIXNlcnZpY2UubW9kZWw/LnJlYWRPbmx5XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ1aUFjdGlvbnNJbnNpZGVPZkJhclwiPlxyXG4gICAgICAgIDxzbWFydC11aS1hY3Rpb24tdG9vbGJhciBbdWlBY3Rpb25Nb2RlbHNdPVwidWlBY3Rpb25Nb2RlbHNcIj48L3NtYXJ0LXVpLWFjdGlvbi10b29sYmFyPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdlxyXG4gICAgICAqbmdJZj1cIlxyXG4gICAgICAgIHNlcnZpY2U/Lm1vZGVsPy5tb2RlbD8ud29ya3BsYWNlTGlzdD8uZmlsdGVycz8ubGVuZ3RoO1xyXG4gICAgICAgIHRoZW4gd2l0aFBhcmFtZXRlcnM7XHJcbiAgICAgICAgZWxzZSB3aXRob3V0UGFyYW1ldGVyc1xyXG4gICAgICBcIlxyXG4gICAgPjwvZGl2PlxyXG4gICAgPG5nLXRlbXBsYXRlICN3aXRob3V0UGFyYW1ldGVycz5cclxuICAgICAgPGRpdiBjbGFzcz1cIndpdGhvdXRQYXJhbWV0ZXJzQ29udGFpbmVyXCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJtYXQtYm9keVwiPiBNw6lnIG5pbmNzIG1lZ2FkdmEgcGFyYW3DqXRlciA8L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDxuZy10ZW1wbGF0ZSAjd2l0aFBhcmFtZXRlcnM+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ3aXRoUGFyYW1ldGVyc0NvbnRhaW5lclwiPlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgIGNsYXNzPVwiZXhwcmVzc2lvbnNDb250YWluZXJcIlxyXG4gICAgICAgICAgKm5nSWY9XCJzZXJ2aWNlPy5tb2RlbD8ubW9kZWw/LndvcmtwbGFjZUxpc3Q/LmZpbHRlcnM/Lmxlbmd0aFwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPGFwcC1leHByZXNzaW9uLWl0ZW1zXHJcbiAgICAgICAgICAgIFtpdGVtc109XCIoc2VydmljZS5tb2RlbD8ubW9kZWw/LndvcmtwbGFjZUxpc3QpIS5maWx0ZXJzXCJcclxuICAgICAgICAgID48L2FwcC1leHByZXNzaW9uLWl0ZW1zPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJleHByZXNzaW9uRWRpdG9yQ29udGFpbmVyXCI+XHJcbiAgICAgICAgICA8c21hcnRmb3JtICNmb3JtIFtzbWFydEZvcm1dPVwic21hcnRGb3JtXCI+PC9zbWFydGZvcm0+XHJcbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwic21hcnRGb3JtXCI+XHJcbiAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cInJlbW92ZSgpXCIgbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCI+VMO2cmzDqXM8L2J1dHRvbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
246
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtZmlsdGVyLWVkaXRvci1jb250ZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NtYXJ0LW5nLWNsaWVudC9zcmMvbGliL3NtYXJ0LWZpbHRlci1lZGl0b3Ivc21hcnQtZmlsdGVyLWVkaXRvci1jb250ZW50L3NtYXJ0LWZpbHRlci1lZGl0b3ItY29udGVudC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi9zbWFydC1maWx0ZXItZWRpdG9yL3NtYXJ0LWZpbHRlci1lZGl0b3ItY29udGVudC9zbWFydC1maWx0ZXItZWRpdG9yLWNvbnRlbnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLFNBQVMsRUFDVCxLQUFLLEVBR0wsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxPQUFPLEVBQXNCLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM5RCxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM5RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUMvRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQU9oRSxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUU3RixPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQzs7Ozs7Ozs7QUFRekYsTUFBTSxPQUFPLGlDQUFpQztJQWU1QyxZQUFvQixhQUErQztRQUEvQyxrQkFBYSxHQUFiLGFBQWEsQ0FBa0M7UUFkM0QsY0FBUyxHQUFrQixJQUFJLE9BQU8sRUFBRSxDQUFDO1FBR2pELG1CQUFjLEdBQW9CLEVBQUUsQ0FBQztRQUNyQyw2QkFBd0IsR0FBb0IsRUFB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QkFBZ0IsQ0FBQztTQUM3QztRQUVELElBQUksTUFBTSxHQUF5QjtZQUNqQyxHQUFHO1lBQ0gsS0FBSztZQUNMLElBQUk7WUFDSixLQUFLLEVBQUUsRUFBRTtZQUNULFNBQVMsRUFBRSxJQUFJO1lBQ2YsU0FBUyxFQUFFLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFZLEVBQUUsRUFBRTtnQkFDN0MsT0FBTztvQkFDTCxHQUFHLEVBQUUsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUs7b0JBQ3BELEtBQUssRUFBRSxLQUFLLENBQUMsWUFBWTtvQkFDekIsSUFBSSxFQUFFLG1CQUFtQixDQUFDLElBQUk7b0JBQzlCLEtBQUssRUFBRSxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSTtpQkFDdEQsQ0FBQztZQUNKLENBQUMsQ0FBQztTQUNILENBQUM7UUFFRixPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDOzs4SEF0VFUsaUNBQWlDO2tIQUFqQyxpQ0FBaUMsMFRDOUI5Qyx1MERBZ0RBOzJGRGxCYSxpQ0FBaUM7a0JBTDdDLFNBQVM7K0JBQ0UsZ0NBQWdDO3VIQU1qQyxPQUFPO3NCQUFmLEtBQUs7Z0JBS2EsU0FBUztzQkFBM0IsU0FBUzt1QkFBQyxNQUFNO2dCQUdtQixxQkFBcUI7c0JBQXhELFNBQVM7dUJBQUMsdUJBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBBZnRlclZpZXdDaGVja2VkLFxyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgQ29tcG9uZW50LFxyXG4gIElucHV0LFxyXG4gIE9uRGVzdHJveSxcclxuICBPbkluaXQsXHJcbiAgVmlld0NoaWxkLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgU3ViamVjdCwgU3Vic2NyaXB0aW9uLCB0YWtlLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgRmlsdGVyRXhwcmVzc2lvbkZpZWxkV2lkZ2V0VHlwZSB9IGZyb20gJy4uLy4uL3NtYXJ0LWZpbHRlci9wcm9qZWN0cyc7XHJcbmltcG9ydCB7IFNtYXJ0Rm9ybVdpZGdldERpcmVjdGlvbiB9IGZyb20gJy4uLy4uL3NtYXJ0LWZvcm0vYXBpL21vZGVsL3NtYXJ0Rm9ybVdpZGdldERpcmVjdGlvbic7XHJcbmltcG9ydCB7IFNtYXJ0Rm9ybVdpZGdldFR5cGUgfSBmcm9tICcuLi8uLi9zbWFydC1mb3JtL3Byb2plY3RzJztcclxuaW1wb3J0IHsgU21hcnRmb3JtTGF5b3V0RGVmaW5pdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zbWFydC1mb3JtL3NlcnZpY2VzL3NtYXJ0Zm9ybS5sYXlvdXQtZGVmaW5pdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU21hcnRmb3JtQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vc21hcnQtZm9ybS9zbWFydGZvcm0uY29tcG9uZW50JztcclxuaW1wb3J0IHsgU21hcnRGb3JtV2lkZ2V0IH0gZnJvbSAnLi4vLi4vc21hcnQtZm9ybS9zbWFydGZvcm0uZm9ybS1tb2RlbCc7XHJcbmltcG9ydCB7IFNtYXJ0Rm9ybSwgU29waGlzdGljYXRlZFZhbHVlQ2hhbmdlLCBWYWx1ZSB9IGZyb20gJy4uLy4uL3NtYXJ0LWZvcm0vc21hcnRmb3JtLm1vZGVsJztcclxuaW1wb3J0IHsgVWlBY3Rpb24gfSBmcm9tICcuLi8uLi92aWV3LWNvbnRleHQvYXBpL21vZGVsL3VpQWN0aW9uJztcclxuaW1wb3J0IHsgVWlBY3Rpb25Nb2RlbCB9IGZyb20gJy4uLy4uL3ZpZXctY29udGV4dC9zbWFydC11aS1hY3Rpb24vdWktYWN0aW9uLm1vZGVsJztcclxuaW1wb3J0IHsgRmlsdGVyRXhwcmVzc2lvbkJ1aWxkZXJVaU1vZGVsIH0gZnJvbSAnLi4vYXBpL21vZGVsL2ZpbHRlckV4cHJlc3Npb25CdWlsZGVyVWlNb2RlbCc7XHJcbmltcG9ydCB7IEZpbHRlckV4cHJlc3Npb25GaWVsZCB9IGZyb20gJy4uL2FwaS9tb2RlbC9maWx0ZXJFeHByZXNzaW9uRmllbGQnO1xyXG5pbXBvcnQgeyBGaWx0ZXJFeHByZXNzaW9uQnVpbGRlckFwaUFjdGlvbnMgfSBmcm9tICcuLi9maWx0ZXJFeHByZXNzaW9uQnVpbGRlckFwaUFjdGlvbnMnO1xyXG5pbXBvcnQgeyBJU21hcnRGaWx0ZXJFZGl0b3JTZXJ2aWNlIH0gZnJvbSAnLi4vc21hcnQtZmlsdGVyLWVkaXRvci5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc21hcnQtZmlsdGVyLWV4cHJlc3Npb24tZWRpdG9yJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vc21hcnQtZmlsdGVyLWVkaXRvci1jb250ZW50LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9zbWFydC1maWx0ZXItZWRpdG9yLWNvbnRlbnQuY29tcG9uZW50LmNzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU21hcnRGaWx0ZXJFZGl0b3JDb250ZW50Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQge1xyXG4gIHByaXZhdGUgX2Rlc3Ryb3kkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3QoKTtcclxuICBASW5wdXQoKSBzZXJ2aWNlITogSVNtYXJ0RmlsdGVyRWRpdG9yU2VydmljZTtcclxuXHJcbiAgdWlBY3Rpb25Nb2RlbHM6IFVpQWN0aW9uTW9kZWxbXSA9IFtdO1xyXG4gIGV4cHJlc3Npb25VaUFjdGlvbk1vZGVsczogVWlBY3Rpb25Nb2RlbFtdID0gW107XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2Zvcm0nKSBmb3JtQ2hpbGQ/OiBTbWFydGZvcm1Db21wb25lbnQ7XHJcbiAgc21hcnRGb3JtPzogU21hcnRGb3JtO1xyXG5cclxuICBAVmlld0NoaWxkKCdzaW1wbGVGaWx0ZXJGcm9tQ2hpbGQnKSBzaW1wbGVGaWx0ZXJGb3JtQ2hpbGQ/OiBTbWFydGZvcm1Db21wb25lbnQ7XHJcbiAgc2ltcGxlRmlsdGVyRm9ybT86IFNtYXJ0Rm9ybTtcclxuXHJcbiAgdHlwZSA9IEZpbHRlckV4cHJlc3Npb25CdWlsZGVyVWlNb2RlbC5UeXBlRW51bTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBsYXlvdXRTZXJ2aWNlOiBTbWFydGZvcm1MYXlvdXREZWZpbml0aW9uU2VydmljZSkge31cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge31cclxuXHJcbiAgc21hcnRGaWx0ZXJDaGFuZ2VTdWJzY3JpcHRpb24/OiBTdWJzY3JpcHRpb247XHJcbiAgc21hcnRGaWx0ZXJTb3BoaXN0aWNhdGVkQ2hhbmdlU3Vic2NyaXB0aW9uPzogU3Vic2NyaXB0aW9uO1xyXG4gIHNtYXJ0Zm9ybUNoYW5nZVN1YnNjcmlwdGlvbj86IFN1YnNjcmlwdGlvbjtcclxuICBzbWFydGZvcm1Tb3BoaXN0aWNhdGVkQ2hhbmdlU3Vic2NyaXB0aW9uPzogU3Vic2NyaXB0aW9uO1xyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuc2VydmljZS5sb2FkKCk7XHJcbiAgICB0aGlzLnNlcnZpY2UubW9kZWxDaGFuZ2VkLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSkuc3Vic2NyaWJlKCgpID0+IHRoaXMuc2V0VXAoKSk7XHJcbiAgfVxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fZGVzdHJveSQubmV4dCgpO1xyXG4gICAgdGhpcy5fZGVzdHJveSQuY29tcGxldGUoKTtcclxuICB9XHJcblxyXG4gIHNldHVwU2ltcGxlRmlsdGVyKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuc2ltcGxlRmlsdGVyRm9ybSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IHdpZGdldHM6IFNtYXJ0Rm9ybVdpZGdldDxhbnk+W10gPSBbXTtcclxuXHJcbiAgICBsZXQga2V5OiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcblxyXG4gICAgbGV0IG1vZGVsOiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0ge307XHJcblxyXG4gICAgdGhpcy5zZXJ2aWNlLm1vZGVsPy5tb2RlbD8ud29ya3BsYWNlTGlzdD8uZmlsdGVycy5mb3JFYWNoKFxyXG4gICAgICAoZmlsdGVyRXhwcmVzc2lvbkZpZWxkOiBGaWx0ZXJFeHByZXNzaW9uRmllbGQsIGluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgICBtb2RlbFtpbmRleF0gPSBmaWx0ZXJFeHByZXNzaW9uRmllbGQ7XHJcblxyXG4gICAgICAgIGlmIChmaWx0ZXJFeHByZXNzaW9uRmllbGQud2lkZ2V0VHlwZSA9PT0gJ1NFTEVDVF9NVUxUSVBMRScpIHtcclxuICAgICAgICAgIGtleSA9IGluZGV4ICsgJy5leHByZXNzaW9uRGF0YS5vcGVyYW5kMi5zZWxlY3RlZFZhbHVlcyc7XHJcbiAgICAgICAgICB3aWRnZXRzLnB1c2goXHJcbiAgICAgICAgICAgIHRoaXMuY29uc3RydWN0Rm9ybVdpZGdldChcclxuICAgICAgICAgICAgICBrZXksXHJcbiAgICAgICAgICAgICAgZmlsdGVyRXhwcmVzc2lvbkZpZWxkLmxhYmVsMiEsXHJcbiAgICAgICAgICAgICAgZmlsdGVyRXhwcmVzc2lvbkZpZWxkLndpZGdldFR5cGUgPz8gRmlsdGVyRXhwcmVzc2lvbkZpZWxkV2lkZ2V0VHlwZS5UZXh0RmllbGQsXHJcbiAgICAgICAgICAgICAgZmlsdGVyRXhwcmVzc2lvbkZpZWxkLnBvc3NpYmxlVmFsdWVzIGFzIFZhbHVlW11cclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChmaWx0ZXJFeHByZXNzaW9uRmllbGQuZXhwcmVzc2lvbkRhdGE/LmN1cnJlbnRPcGVyYXRpb24gPT09ICdCRVRXRUVOJykge1xyXG4gICAgICAgICAga2V5ID0gaW5kZXggKyAnLmV4cHJlc3Npb25EYXRhLm9wZXJhbmQyLnZhbHVlQXNTdHJpbmcnO1xyXG4gICAgICAgICAgd2lkZ2V0cy5wdXNoKFxyXG4gICAgICAgICAgICB0aGlzLmNvbnN0cnVjdEZvcm1XaWRnZXQoXHJcbiAgICAgICAgICAgICAga2V5LFxyXG4gICAgICAgICAgICAgIGZpbHRlckV4cHJlc3Npb25GaWVsZC5sYWJlbDIhLFxyXG4gICAgICAgICAgICAgIGZpbHRlckV4cHJlc3Npb25GaWVsZC53aWRnZXRUeXBlID8/IEZpbHRlckV4cHJlc3Npb25GaWVsZFdpZGdldFR5cGUuVGV4dEZpZWxkLFxyXG4gICAgICAgICAgICAgIGZpbHRlckV4cHJlc3Npb25GaWVsZC5wb3NzaWJsZVZhbHVlcyBhcyBWYWx1ZVtdXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICk7XHJcblxyXG4gICAgICAgICAga2V5ID0gaW5kZXggKyAnLmV4cHJlc3Npb25EYXRhLm9wZXJhbmQzLnZhbHVlQXNTdHJpbmcnO1xyXG4gICAgICAgICAgd2lkZ2V0cy5wdXNoKFxyXG4gICAgICAgICAgICB0aGlzLmNvbnN0cnVjdEZvcm1XaWRnZXQoXHJcbiAgICAgICAgICAgICAga2V5LFxyXG4gICAgICAgICAgICAgIGZpbHRlckV4cHJlc3Npb25GaWVsZC5sYWJlbDIhLFxyXG4gICAgICAgICAgICAgIGZpbHRlckV4cHJlc3Npb25GaWVsZC53aWRnZXRUeXBlID8/IEZpbHRlckV4cHJlc3Npb25GaWVsZFdpZGdldFR5cGUuVGV4dEZpZWxkLFxyXG4gICAgICAgICAgICAgIGZpbHRlckV4cHJlc3Npb25GaWVsZC5wb3NzaWJsZVZhbHVlcyBhcyBWYWx1ZVtdXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoZmlsdGVyRXhwcmVzc2lvbkZpZWxkLmV4cHJlc3Npb25EYXRhPy5vcGVyYW5kMikge1xyXG4gICAgICAgICAgaWYgKGtleSAhPT0gaW5kZXggKyAnLmV4cHJlc3Npb25EYXRhLm9wZXJhbmQyLnNlbGVjdGVkVmFsdWVzJykge1xyXG4gICAgICAgICAgICBrZXkgPSBpbmRleCArICcuZXhwcmVzc2lvbkRhdGEub3BlcmFuZDIudmFsdWVBc1N0cmluZyc7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB3aWRnZXRzLnB1c2goXHJcbiAgICAgICAgICAgIHRoaXMuY29uc3RydWN0Rm9ybVdpZGdldChcclxuICAgICAgICAgICAgICBrZXksXHJcbiAgICAgICAgICAgICAgZmlsdGVyRXhwcmVzc2lvbkZpZWxkLmxhYmVsMiEsXHJcbiAgICAgICAgICAgICAgZmlsdGVyRXhwcmVzc2lvbkZpZWxkLndpZGdldFR5cGUgPz8gRmlsdGVyRXhwcmVzc2lvbkZpZWxkV2lkZ2V0VHlwZS5UZXh0RmllbGQsXHJcbiAgICAgICAgICAgICAgZmlsdGVyRXhwcmVzc2lvbkZpZWxkLnBvc3NpYmxlVmFsdWVzIGFzIFZhbHVlW11cclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGZpbHRlckV4cHJlc3Npb25GaWVsZD8uZXhwcmVzc2lvbkRhdGE/Lm9wZXJhbmQzKSB7XHJcbiAgICAgICAgICBpZiAoa2V5ICE9PSBpbmRleCArICcuc2VsZWN0ZWRWYWx1ZXMnKSB7XHJcbiAgICAgICAgICAgIGtleSA9IGluZGV4ICsgJy5leHByZXNzaW9uRGF0YS5vcGVyYW5kMy52YWx1ZUFzU3RyaW5nJztcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHdpZGdldHMucHVzaChcclxuICAgICAgICAgICAgdGhpcy5jb25zdHJ1Y3RGb3JtV2lkZ2V0KFxyXG4gICAgICAgICAgICAgIGtleSxcclxuICAgICAgICAgICAgICBmaWx0ZXJFeHByZXNzaW9uRmllbGQubGFiZWwzISxcclxuICAgICAgICAgICAgICBmaWx0ZXJFeHByZXNzaW9uRmllbGQud2lkZ2V0VHlwZSA/PyBGaWx0ZXJFeHByZXNzaW9uRmllbGRXaWRnZXRUeXBlLlRleHRGaWVsZCxcclxuICAgICAgICAgICAgICBmaWx0ZXJFeHByZXNzaW9uRmllbGQucG9zc2libGVWYWx1ZXMgYXMgVmFsdWVbXVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgKTtcclxuXHJcbiAgICB0aGlzLnNpbXBsZUZpbHRlckZvcm0gPSB7XHJcbiAgICAgIGRpcmVjdGlvbjogU21hcnRGb3JtV2lkZ2V0RGlyZWN0aW9uLlJPVyxcclxuICAgICAgY29tcG9uZW50TW9kZWw6IHsgZGF0YTogbW9kZWwgfSxcclxuICAgICAgdXNlT25WYWx1ZUNoYW5nZUV2ZW50OiB0cnVlLFxyXG4gICAgICB1c2VPbkJsdXJFdmVudDogdHJ1ZSxcclxuICAgICAgd2lkZ2V0cyxcclxuICAgIH07XHJcblxyXG4gICAgaWYgKHRoaXMuc21hcnRGaWx0ZXJDaGFuZ2VTdWJzY3JpcHRpb24pIHtcclxuICAgICAgdGhpcy5zbWFydEZpbHRlckNoYW5nZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc21hcnRGaWx0ZXJDaGFuZ2VTdWJzY3JpcHRpb24gPSB0aGlzLnNpbXBsZUZpbHRlckZvcm1DaGlsZCEub25CbHVyU3ViamVjdD8ucGlwZShcclxuICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKVxyXG4gICAgKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICB0aGlzLnNhdmVGaWx0ZXIoKTtcclxuICAgIH0pO1xyXG5cclxuICAgIGlmICh0aGlzLnNtYXJ0RmlsdGVyU29waGlzdGljYXRlZENoYW5nZVN1YnNjcmlwdGlvbikge1xyXG4gICAgICB0aGlzLnNtYXJ0RmlsdGVyU29waGlzdGljYXRlZENoYW5nZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc21hcnRGaWx0ZXJTb3BoaXN0aWNhdGVkQ2hhbmdlU3Vic2NyaXB0aW9uID1cclxuICAgICAgdGhpcy5zaW1wbGVGaWx0ZXJGb3JtQ2hpbGQhLnNvcGhpc3RpY2F0ZWRWYWx1ZUNoYW5nZT8ucGlwZShcclxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpXHJcbiAgICAgICkuc3Vic2NyaWJlKChjaGFuZ2UpID0+IHtcclxuICAgICAgICBpZiAoY2hhbmdlLmtpbmQgPT09ICdzZWxlY3Rpb24nKSB7XHJcbiAgICAgICAgICB0aGlzLnNhdmVGaWx0ZXIoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBleHRyYWN0RmlsdGVyRmllbGRGcm9tRm9ybU1vZGVsKCk6IHZvaWQge1xyXG4gICAgbGV0IHNpbXBsZUZpbHRlciA9IHRoaXMuc2ltcGxlRmlsdGVyRm9ybUNoaWxkPy5zdWJtaXRGb3JtKGZhbHNlKS5jb21wb25lbnRNb2RlbC5kYXRhO1xyXG4gICAgbGV0IHJlc3VsdDogRmlsdGVyRXhwcmVzc2lvbkZpZWxkW10gPSBbXTtcclxuXHJcbiAgICBPYmplY3Qua2V5cyhzaW1wbGVGaWx0ZXIpLmZvckVhY2goKGtleTogc3RyaW5nKSA9PiB7XHJcbiAgICAgIHJlc3VsdC5wdXNoKHNpbXBsZUZpbHRlcltrZXldKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5zZXJ2aWNlLm1vZGVsIS5tb2RlbCEud29ya3BsYWNlTGlzdCEuZmlsdGVycyA9IHJlc3VsdDtcclxuICB9XHJcblxyXG4gIHNldFVwKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuc2VydmljZS5tb2RlbD8udHlwZSA9PT0gdGhpcy50eXBlLlNpbXBsZSkge1xyXG4gICAgICB0aGlzLnNldHVwU2ltcGxlRmlsdGVyKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmNvbnN0cnVjdFVpQWN0aW9uTW9kZWxzKCk7XHJcblxyXG4gICAgICBpZiAodGhpcy5zZXJ2aWNlIS5tb2RlbCEuc2VsZWN0ZWRGaWVsZEVkaXRvcikge1xyXG4gICAgICAgIHRoaXMuY29uc3RydWN0Rm9ybSgpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuc21hcnRGb3JtID0gdW5kZWZpbmVkO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RVaUFjdGlvbk1vZGVscygpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnNlcnZpY2UubW9kZWw/LnBvc3NpYmxlQWN0aW9ucykge1xyXG4gICAgICB0aGlzLnVpQWN0aW9uTW9kZWxzID0gdGhpcy5zZXJ2aWNlLm1vZGVsLnBvc3NpYmxlQWN0aW9ucy5tYXAoKGFjdGlvbjogVWlBY3Rpb24pID0+IHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgc2VydmljZVRvVXNlOiB0aGlzLnNlcnZpY2UsXHJcbiAgICAgICAgICB1aUFjdGlvbjogYWN0aW9uLFxyXG4gICAgICAgIH07XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLnNlcnZpY2UubW9kZWw/LnNlbGVjdGVkRmllbGRFZGl0b3I/LnBvc3NpYmxlQWN0aW9ucykge1xyXG4gICAgICB0aGlzLmV4cHJlc3Npb25VaUFjdGlvbk1vZGVscyA9IHRoaXMuc2VydmljZS5tb2RlbD8uc2VsZWN0ZWRGaWVsZEVkaXRvci5wb3NzaWJsZUFjdGlvbnMubWFwKFxyXG4gICAgICAgICh1aUFjdGlvbjogVWlBY3Rpb24pID0+IHtcclxuICAgICAgICAgIGxldCBjb3BpZWRVaUFjdGlvbjogVWlBY3Rpb24gPSB7fTtcclxuICAgICAgICAgIE9iamVjdC5rZXlzKHVpQWN0aW9uKS5tYXAoKGtleTogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgICAgIChjb3BpZWRVaUFjdGlvbiBhcyBhbnkpW2tleV0gPSAodWlBY3Rpb24gYXMgYW55KVtrZXldO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICBjb3BpZWRVaUFjdGlvbi5wYXJhbXMgPSB7XHJcbiAgICAgICAgICAgIGZpZWxkOiB0aGlzLnNlcnZpY2UubW9kZWw/LnNlbGVjdGVkRmllbGQsXHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgc2VydmljZVRvVXNlOiB0aGlzLnNlcnZpY2UsXHJcbiAgICAgICAgICAgIHVpQWN0aW9uOiBjb3BpZWRVaUFjdGlvbixcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgfVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0Rm9ybSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnNtYXJ0Rm9ybSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IGdlbmVyYXRlZFdpZGdldHM6IFNtYXJ0Rm9ybVdpZGdldDxhbnk+W10gPSB0aGlzLmxheW91dFNlcnZpY2UucmVuZGVyKHtcclxuICAgICAgbGF5b3V0RGVmaW5pdGlvbnM6IHRoaXMuc2VydmljZS5tb2RlbD8uc2VsZWN0ZWRGaWVsZEVkaXRvcj8ubGF5b3V0RGVmPy53aWRnZXRzLFxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5zbWFydEZvcm0gPSB7XHJcbiAgICAgIGRpcmVjdGlvbjogU21hcnRGb3JtV2lkZ2V0RGlyZWN0aW9uLlJPVyxcclxuICAgICAgdXNlT25CbHVyRXZlbnQ6IHRydWUsXHJcbiAgICAgIHVzZU9uVmFsdWVDaGFuZ2VFdmVudDogdHJ1ZSxcclxuICAgICAgY29tcG9uZW50TW9kZWw6IHsgZGF0YTogdGhpcy5zZXJ2aWNlLm1vZGVsPy5zZWxlY3RlZEZpZWxkIH0sXHJcbiAgICAgIHdpZGdldHM6IGdlbmVyYXRlZFdpZGdldHMsXHJcbiAgICB9O1xyXG5cclxuICAgIGlmICh0aGlzLnNtYXJ0Zm9ybUNoYW5nZVN1YnNjcmlwdGlvbikge1xyXG4gICAgICB0aGlzLnNtYXJ0Zm9ybUNoYW5nZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc21hcnRmb3JtQ2hhbmdlU3Vic2NyaXB0aW9uID0gdGhpcy5mb3JtQ2hpbGQ/Lm9uQmx1clN1YmplY3RcclxuICAgICAgPy5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2F2ZSgpO1xyXG4gICAgICB9KTtcclxuXHJcbiAgICBpZiAodGhpcy5zbWFydGZvcm1Tb3BoaXN0aWNhdGVkQ2hhbmdlU3Vic2NyaXB0aW9uKSB7XHJcbiAgICAgIHRoaXMuc21hcnRmb3JtU29waGlzdGljYXRlZENoYW5nZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc21hcnRmb3JtU29waGlzdGljYXRlZENoYW5nZVN1YnNjcmlwdGlvbiA9IHRoaXMuZm9ybUNoaWxkPy5zb3BoaXN0aWNhdGVkVmFsdWVDaGFuZ2VcclxuICAgICAgPy5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKGNoYW5nZTogU29waGlzdGljYXRlZFZhbHVlQ2hhbmdlKSA9PiB7XHJcbiAgICAgICAgaWYgKGNoYW5nZS5rZXkgPT09ICdleHByZXNzaW9uRGF0YS5jdXJyZW50T3BlcmF0aW9uJykge1xyXG4gICAgICAgICAgdGhpcy5zYXZlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIHNhdmUoKTogdm9pZCB7XHJcbiAgICB0aGlzLmZvcm1DaGlsZD8uc3VibWl0Rm9ybShmYWxzZSk7XHJcbiAgICB0aGlzLnNlcnZpY2UucGVmb3JtV2lkZ2V0QWN0aW9uKHtcclxuICAgICAgY29kZTogJ1VQREFURV9GSUxURVJfRVhQUkVTU0lPTicsXHJcbiAgICAgIHBhcmFtczoge1xyXG4gICAgICAgIG1vZGVsOiB0aGlzLnNlcnZpY2UubW9kZWw/LnNlbGVjdGVkRmllbGQsXHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHJlbW92ZSgpOiB2b2lkIHtcclxuICAgIHRoaXMuc2VydmljZS5wZWZvcm1XaWRnZXRBY3Rpb24oe1xyXG4gICAgICBjb2RlOiAnUkVNT1ZFX0ZJTFRFUl9FWFBSRVNTSU9OJyxcclxuICAgICAgcGFyYW1zOiB7XHJcbiAgICAgICAgbW9kZWw6IHRoaXMuc2VydmljZS5tb2RlbD8uc2VsZWN0ZWRGaWVsZCxcclxuICAgICAgfSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0RmlsdGVyZWRVaUFjdGlvbk1vZGVscyhmaWx0ZXJQcmVkaWNhdGU6ICh1aUFjdGlvbjogVWlBY3Rpb24pID0+IGJvb2xlYW4pOiBVaUFjdGlvbk1vZGVsW10ge1xyXG4gICAgLy8gcmV0dXJuIHRoaXMuc2VydmljZS5tb2RlbCEucG9zc2libGVBY3Rpb25zIS5maWx0ZXIoZmlsdGVyUHJlZGljYXRlKS5tYXAoKHVpQWN0aW9uOiBVaUFjdGlvbikgPT4ge1xyXG4gICAgLy8gICByZXR1cm4ge1xyXG4gICAgLy8gICAgIHNlcnZpY2VUb1VzZTogdGhpcy5zZXJ2aWNlLFxyXG4gICAgLy8gICAgIHVpQWN0aW9uLFxyXG4gICAgLy8gICB9O1xyXG4gICAgLy8gfSk7XHJcbiAgICByZXR1cm4gW107XHJcbiAgfVxyXG5cclxuICBhc3luYyBzYXZlRmlsdGVyKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgdGhpcy5leHRyYWN0RmlsdGVyRmllbGRGcm9tRm9ybU1vZGVsKCk7XHJcbiAgICB0aGlzLnNlcnZpY2UucGVyZm9ybVVpQWN0aW9uUmVxdWVzdCh7XHJcbiAgICAgIGNvZGU6IEZpbHRlckV4cHJlc3Npb25CdWlsZGVyQXBpQWN0aW9ucy5TQVZFX0VYUFJFU1NJT05fRklFTERfTElTVCxcclxuICAgICAgcGFyYW1zOiB7XHJcbiAgICAgICAgbW9kZWw6IHRoaXMuc2VydmljZS5tb2RlbCEsXHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY29uc3RydWN0Rm9ybVdpZGdldChcclxuICAgIGtleTogc3RyaW5nLFxyXG4gICAgbGFiZWw6IHN0cmluZyxcclxuICAgIHdpZGdldFR5cGU6IEZpbHRlckV4cHJlc3Npb25GaWVsZFdpZGdldFR5cGUsXHJcbiAgICBwb3NzaWJsZVZhbHVlczogVmFsdWVbXVxyXG4gICk6IFNtYXJ0Rm9ybVdpZGdldDxhbnk+IHtcclxuICAgIGxldCB0eXBlOiBhbnkgPSB3aWRnZXRUeXBlO1xyXG5cclxuICAgIGlmICh0eXBlID09PSBGaWx0ZXJFeHByZXNzaW9uRmllbGRXaWRnZXRUeXBlLkRhdGUpIHtcclxuICAgICAgdHlwZSA9IFNtYXJ0Rm9ybVdpZGdldFR5cGUuREFURV9QSUNLRVI7XHJcbiAgICB9IGVsc2UgaWYgKHR5cGUgPT09IEZpbHRlckV4cHJlc3Npb25GaWVsZFdpZGdldFR5cGUuRGF0ZVRpbWUpIHtcclxuICAgICAgdHlwZSA9IFNtYXJ0Rm9ybVdpZGdldFR5cGUuREFURV9USU1FX1BJQ0tFUjtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgd2lkZ2V0OiBTbWFydEZvcm1XaWRnZXQ8YW55PiA9IHtcclxuICAgICAga2V5LFxyXG4gICAgICBsYWJlbCxcclxuICAgICAgdHlwZSxcclxuICAgICAgdmFsdWU6ICcnLFxyXG4gICAgICBzaG93TGFiZWw6IHRydWUsXHJcbiAgICAgIHZhbHVlTGlzdDogcG9zc2libGVWYWx1ZXMubWFwKCh2YWx1ZTogVmFsdWUpID0+IHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAga2V5OiB2YWx1ZS5vYmplY3RVcmkgPyB2YWx1ZS5vYmplY3RVcmkgOiB2YWx1ZS5jb2RlISxcclxuICAgICAgICAgIGxhYmVsOiB2YWx1ZS5kaXNwbGF5VmFsdWUsXHJcbiAgICAgICAgICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLklURU0sXHJcbiAgICAgICAgICB2YWx1ZTogdmFsdWUub2JqZWN0VXJpID8gdmFsdWUub2JqZWN0VXJpIDogdmFsdWUuY29kZSxcclxuICAgICAgICB9O1xyXG4gICAgICB9KSxcclxuICAgIH07XHJcblxyXG4gICAgcmV0dXJuIHdpZGdldDtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInRhcmdldEdyb3VwQ29udGVudENvbnRhaW5lclwiPlxyXG4gIDxoMz57eyBzZXJ2aWNlLm1vZGVsPy5tb2RlbD8ubGFiZWwgfX08L2gzPlxyXG5cclxuICA8ZGl2ICpuZ0lmPVwic2VydmljZS5tb2RlbD8udHlwZSA9PT0gdHlwZS5TaW1wbGU7IHRoZW4gc2ltcGxlRmlsdGVyOyBlbHNlIGNvbXBsZXhGaWx0ZXJcIj48L2Rpdj5cclxuXHJcbiAgPG5nLXRlbXBsYXRlICNzaW1wbGVGaWx0ZXI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZXhwcmVzc2lvbnNDb250YWluZXJcIj5cclxuICAgICAgPHNtYXJ0Zm9ybSAjc2ltcGxlRmlsdGVyRnJvbUNoaWxkIFtzbWFydEZvcm1dPVwic2ltcGxlRmlsdGVyRm9ybVwiPjwvc21hcnRmb3JtPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuICA8bmctdGVtcGxhdGUgI2NvbXBsZXhGaWx0ZXI+XHJcbiAgICA8ZGl2IGNsYXNzPVwidWlBY3Rpb25zQmFyXCIgKm5nSWY9XCIhc2VydmljZS5tb2RlbD8ucmVhZE9ubHlcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInVpQWN0aW9uc0luc2lkZU9mQmFyXCI+XHJcbiAgICAgICAgPHNtYXJ0LXVpLWFjdGlvbi10b29sYmFyIFt1aUFjdGlvbk1vZGVsc109XCJ1aUFjdGlvbk1vZGVsc1wiPjwvc21hcnQtdWktYWN0aW9uLXRvb2xiYXI+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2XHJcbiAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgc2VydmljZT8ubW9kZWw/Lm1vZGVsPy53b3JrcGxhY2VMaXN0Py5maWx0ZXJzPy5sZW5ndGg7XHJcbiAgICAgICAgdGhlbiB3aXRoUGFyYW1ldGVycztcclxuICAgICAgICBlbHNlIHdpdGhvdXRQYXJhbWV0ZXJzXHJcbiAgICAgIFwiXHJcbiAgICA+PC9kaXY+XHJcbiAgICA8bmctdGVtcGxhdGUgI3dpdGhvdXRQYXJhbWV0ZXJzPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwid2l0aG91dFBhcmFtZXRlcnNDb250YWluZXJcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cIm1hdC1ib2R5XCI+IE3DqWcgbmluY3MgbWVnYWR2YSBwYXJhbcOpdGVyIDwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPG5nLXRlbXBsYXRlICN3aXRoUGFyYW1ldGVycz5cclxuICAgICAgPGRpdiBjbGFzcz1cIndpdGhQYXJhbWV0ZXJzQ29udGFpbmVyXCI+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgY2xhc3M9XCJleHByZXNzaW9uc0NvbnRhaW5lclwiXHJcbiAgICAgICAgICAqbmdJZj1cInNlcnZpY2U/Lm1vZGVsPy5tb2RlbD8ud29ya3BsYWNlTGlzdD8uZmlsdGVycz8ubGVuZ3RoXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8YXBwLWV4cHJlc3Npb24taXRlbXNcclxuICAgICAgICAgICAgW2l0ZW1zXT1cIihzZXJ2aWNlLm1vZGVsPy5tb2RlbD8ud29ya3BsYWNlTGlzdCkhLmZpbHRlcnNcIlxyXG4gICAgICAgICAgPjwvYXBwLWV4cHJlc3Npb24taXRlbXM+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImV4cHJlc3Npb25FZGl0b3JDb250YWluZXJcIj5cclxuICAgICAgICAgIDxzbWFydGZvcm0gI2Zvcm0gW3NtYXJ0Rm9ybV09XCJzbWFydEZvcm1cIj48L3NtYXJ0Zm9ybT5cclxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJzbWFydEZvcm1cIj5cclxuICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwicmVtb3ZlKClcIiBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIj5Uw7ZybMOpczwvYnV0dG9uPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuICA8L25nLXRlbXBsYXRlPlxyXG48L2Rpdj5cclxuIl19
|
|
@@ -13753,34 +13753,20 @@ class SmartFilterEditorContentComponent {
|
|
|
13753
13753
|
this.expressionUiActionModels = [];
|
|
13754
13754
|
this.type = FilterExpressionBuilderUiModel.TypeEnum;
|
|
13755
13755
|
}
|
|
13756
|
-
ngAfterViewInit() {
|
|
13757
|
-
var _a, _b;
|
|
13758
|
-
if (this.smartFilterChangeSubscription) {
|
|
13759
|
-
this.smartFilterChangeSubscription.unsubscribe();
|
|
13760
|
-
}
|
|
13761
|
-
this.smartFilterChangeSubscription = (_a = this.simpleFilterFormChild.onBlurSubject) === null || _a === void 0 ? void 0 : _a.pipe(takeUntil(this._destroy$)).subscribe(() => {
|
|
13762
|
-
this.saveFilter();
|
|
13763
|
-
});
|
|
13764
|
-
if (this.smartFilterSophisticatedChangeSubscription) {
|
|
13765
|
-
this.smartFilterSophisticatedChangeSubscription.unsubscribe();
|
|
13766
|
-
}
|
|
13767
|
-
this.smartFilterSophisticatedChangeSubscription =
|
|
13768
|
-
(_b = this.simpleFilterFormChild.sophisticatedValueChange) === null || _b === void 0 ? void 0 : _b.pipe(takeUntil(this._destroy$)).subscribe((change) => {
|
|
13769
|
-
if (change.kind === 'selection') {
|
|
13770
|
-
this.saveFilter();
|
|
13771
|
-
}
|
|
13772
|
-
});
|
|
13773
|
-
}
|
|
13756
|
+
ngAfterViewInit() { }
|
|
13774
13757
|
ngOnInit() {
|
|
13775
13758
|
this.service.load();
|
|
13776
|
-
this.setUp();
|
|
13759
|
+
this.service.modelChanged.pipe(takeUntil(this._destroy$)).subscribe(() => this.setUp());
|
|
13777
13760
|
}
|
|
13778
13761
|
ngOnDestroy() {
|
|
13779
13762
|
this._destroy$.next();
|
|
13780
13763
|
this._destroy$.complete();
|
|
13781
13764
|
}
|
|
13782
13765
|
setupSimpleFilter() {
|
|
13783
|
-
var _a, _b, _c;
|
|
13766
|
+
var _a, _b, _c, _d, _e;
|
|
13767
|
+
if (this.simpleFilterForm) {
|
|
13768
|
+
return;
|
|
13769
|
+
}
|
|
13784
13770
|
let widgets = [];
|
|
13785
13771
|
let key;
|
|
13786
13772
|
let model = {};
|
|
@@ -13821,6 +13807,21 @@ class SmartFilterEditorContentComponent {
|
|
|
13821
13807
|
useOnBlurEvent: true,
|
|
13822
13808
|
widgets,
|
|
13823
13809
|
};
|
|
13810
|
+
if (this.smartFilterChangeSubscription) {
|
|
13811
|
+
this.smartFilterChangeSubscription.unsubscribe();
|
|
13812
|
+
}
|
|
13813
|
+
this.smartFilterChangeSubscription = (_d = this.simpleFilterFormChild.onBlurSubject) === null || _d === void 0 ? void 0 : _d.pipe(takeUntil(this._destroy$)).subscribe(() => {
|
|
13814
|
+
this.saveFilter();
|
|
13815
|
+
});
|
|
13816
|
+
if (this.smartFilterSophisticatedChangeSubscription) {
|
|
13817
|
+
this.smartFilterSophisticatedChangeSubscription.unsubscribe();
|
|
13818
|
+
}
|
|
13819
|
+
this.smartFilterSophisticatedChangeSubscription =
|
|
13820
|
+
(_e = this.simpleFilterFormChild.sophisticatedValueChange) === null || _e === void 0 ? void 0 : _e.pipe(takeUntil(this._destroy$)).subscribe((change) => {
|
|
13821
|
+
if (change.kind === 'selection') {
|
|
13822
|
+
this.saveFilter();
|
|
13823
|
+
}
|
|
13824
|
+
});
|
|
13824
13825
|
}
|
|
13825
13826
|
extractFilterFieldFromFormModel() {
|
|
13826
13827
|
var _a;
|
|
@@ -13875,6 +13876,9 @@ class SmartFilterEditorContentComponent {
|
|
|
13875
13876
|
}
|
|
13876
13877
|
constructForm() {
|
|
13877
13878
|
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
13879
|
+
if (this.smartForm) {
|
|
13880
|
+
return;
|
|
13881
|
+
}
|
|
13878
13882
|
let generatedWidgets = this.layoutService.render({
|
|
13879
13883
|
layoutDefinitions: (_c = (_b = (_a = this.service.model) === null || _a === void 0 ? void 0 : _a.selectedFieldEditor) === null || _b === void 0 ? void 0 : _b.layoutDef) === null || _c === void 0 ? void 0 : _c.widgets,
|
|
13880
13884
|
});
|