@bnsights/bbsf-controls 1.0.51 → 1.0.52
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -0
- package/bnsights-bbsf-controls-1.0.52.tgz +0 -0
- package/bnsights-bbsf-controls.metadata.json +1 -1
- package/bundles/bnsights-bbsf-controls.umd.js +26 -14
- package/bundles/bnsights-bbsf-controls.umd.js.map +1 -1
- package/esm2015/lib/Shared/Models/ConfirmationModalOptions.js +3 -1
- package/esm2015/lib/controls/ConfirmationModal/ConfirmationModal.component.js +3 -4
- package/esm2015/lib/controls/TagsInput/TagsInput.component.js +23 -12
- package/fesm2015/bnsights-bbsf-controls.js +26 -14
- package/fesm2015/bnsights-bbsf-controls.js.map +1 -1
- package/lib/Shared/Models/ConfirmationModalOptions.d.ts +1 -0
- package/package.json +1 -1
- package/bnsights-bbsf-controls-1.0.51.tgz +0 -0
|
@@ -28,6 +28,8 @@ export class ConfirmationModalOptions {
|
|
|
28
28
|
this.DisableSuccessNotification = false;
|
|
29
29
|
//If ="true" disable notification after submission error
|
|
30
30
|
this.DisableErrorNotification = false;
|
|
31
|
+
//If ="true" disable prevent modal from dismiss automatically
|
|
32
|
+
this.DisableModalDismiss = false;
|
|
31
33
|
}
|
|
32
34
|
}
|
|
33
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29uZmlybWF0aW9uTW9kYWxPcHRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmJzZi1jb250cm9scy9zcmMvbGliL1NoYXJlZC9Nb2RlbHMvQ29uZmlybWF0aW9uTW9kYWxPcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBR3ZFLE1BQU0sT0FBTyx3QkFBd0I7SUFBckM7UUFDRSxxQ0FBcUM7UUFDckMsdUJBQWtCLEdBQVUsSUFBSSxDQUFDO1FBRWpDLG9DQUFvQztRQUNwQyxxQkFBZ0IsR0FBVyxJQUFJLENBQUM7UUFFaEMsa0RBQWtEO1FBQ2xELHFCQUFnQixHQUFXLElBQUksQ0FBQztRQUVoQywwQ0FBMEM7UUFDMUMsMEJBQXFCLEdBQTBCLHFCQUFxQixDQUFDLE1BQU0sQ0FBQztRQUU1RSw0Q0FBNEM7UUFDNUMsMEJBQXFCLEdBQWEsSUFBSSxDQUFDO1FBRXZDLGtEQUFrRDtRQUNsRCx1QkFBa0IsR0FBVSxFQUFFLENBQUM7UUFFL0IsOEVBQThFO1FBQzlFLG9CQUFlLEdBQXlCLElBQUksQ0FBQTtRQUU1Qyx5RUFBeUU7UUFDekUscUJBQWdCLEdBQXFCLGdCQUFnQixDQUFDLFlBQVksQ0FBQztRQUVuRSx5REFBeUQ7UUFDekQsbUJBQWMsR0FBYSxJQUFJLENBQUM7UUFFaEMsMkRBQTJEO1FBQzNELHFCQUFnQixHQUFhLElBQUksQ0FBQztRQUVsQywwREFBMEQ7UUFDMUQsK0JBQTBCLEdBQVcsSUFBSSxDQUFDO1FBRTFDLDBEQUEwRDtRQUMxRCwrQkFBMEIsR0FBWSxLQUFLLENBQUM7UUFFNUMsd0RBQXdEO1FBQ3hELDZCQUF3QixHQUFZLEtBQUssQ0FBQztRQUUxQyw4REFBOEQ7UUFDOUQsd0JBQW1CLEdBQVksS0FBSyxDQUFDO0lBRXZDLENBQUM7Q0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBhZ2luZ0NvbXBvbmVudCB9IGZyb20gXCIuLi8uLi9jb250cm9scy9QYWdpbmcvUGFnaW5nLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBQYWdpbmdBY3Rpb25Nb2RlIH0gZnJvbSBcIi4uL0VudW1zL1BhZ2luZ0FjdGlvbk1vZGVcIjtcclxuaW1wb3J0IHsgU3R5bGVDb25maXJtYXRpb25Nb2RlIH0gZnJvbSBcIi4uL0VudW1zL1N0eWxlQ29uZmlybWF0aW9uTW9kZVwiO1xyXG5cclxuXHJcbmV4cG9ydCBjbGFzcyBDb25maXJtYXRpb25Nb2RhbE9wdGlvbnMge1xyXG4gIC8vUmVwcmVzZW50cyBjb25maXJtYXRpb24gbW9kYWwgdGl0bGVcclxuICBDb25maXJtYXRpb25IZWFkZXI6IHN0cmluZyA9bnVsbDtcclxuXHJcbiAgLy9SZXByZXNlbnRzIGNvbmZpcm1hdGlvbiBtb2RhbCBib2R5XHJcbiAgQ29uZmlybWF0aW9uQm9keTogc3RyaW5nID0gbnVsbDtcclxuXHJcbiAgLy9SZXByZXNlbnRzIGNvbmZpcm1hdGlvbiBtb2RhbCBzdWJtaXQgYnV0dG9uIHRleHRcclxuICBTdWJtaXRCdXR0b25UZXh0OiBzdHJpbmcgPSBudWxsO1xyXG5cclxuICAvL1JlcHJlc2VudHMgY29uZmlybWF0aW9uIG1vZGFsIGJvZHkgc3R5bGVcclxuICBTdHlsZUNvbmZpcm1hdGlvbk1vZGU6IFN0eWxlQ29uZmlybWF0aW9uTW9kZSA9IFN0eWxlQ29uZmlybWF0aW9uTW9kZS5EYW5nZXI7XHJcblxyXG4gIC8vUmVwcmVzZW50cyBzZXJ2aWNlIGZ1bmN0aW9uIGZvciBzdWJtaXNzaW9uXHJcbiAgU2VydmljZVN1Ym1pdEZ1bmN0aW9uOiBGdW5jdGlvbiA9IG51bGw7XHJcblxyXG4gIC8vUmVwcmVzZW50cyBtb2RlbCBzZW50IHRvIHNlcnZpY2Ugc3VibWl0IGZ1bmN0aW9uXHJcbiAgU2VydmljZVN1Ym1pdE1vZGVsOiBhbnlbXSA9IFtdO1xyXG5cclxuICAvL1JlcHJlc2VudHPCoHJlZnJlbmNlIHRvIHBhZ2luZyBjb250cm9sIHRoYXQgbmVlZHMgdG8gYmUgdXBkYXRlZCBhZnRlciBzdWNjZXNzXHJcbiAgUGFnaW5nUmVmZXJlbmNlOiBQYWdpbmdDb21wb25lbnQ8YW55PiA9IG51bGxcclxuXHJcbiAgLy9SZXByZXNlbnRzIHBhZ2luZyBhY3Rpb24gZXhjdXRlcyBhZnRlciBzdWJtaXNzaW9uIChSZWluaXRpYWxpemUvVXBkYXRlKVxyXG4gIFBhZ2luZ0FjdGlvbk1vZGU6IFBhZ2luZ0FjdGlvbk1vZGUgPSBQYWdpbmdBY3Rpb25Nb2RlLlJlaW5pdGlhbGl6ZTtcclxuXHJcbiAgLy9SZXByZXNlbnRzwqBmdW5jdGlvbiB0aGF0IGV4Y3V0ZXMgYWZ0ZXIgc3VibWlzc2lvbiBlcnJvclxyXG4gIE9uRXJyb3JIYW5kbGVyOiBGdW5jdGlvbiA9IG51bGw7XHJcblxyXG4gIC8vUmVwcmVzZW50c8KgZnVuY3Rpb24gdGhhdCBleGN1dGVzIGFmdGVyIHN1Ym1pc3Npb24gc3VjY2Vzc1xyXG4gIE9uU3VjY2Vzc0hhbmRsZXI6IEZ1bmN0aW9uID0gbnVsbDtcclxuXHJcbiAgLy9SZXByZXNlbnRzwqBtZXNzYWdlIGFwcGVhcnMgaW4gbm90aWZpY2F0aW9uIGFmdGVyIHN1Y2Nlc3NcclxuICBTdWNjZXNzTm90aWZpY2F0aW9uTWVzc2FnZTogc3RyaW5nID0gbnVsbDtcclxuXHJcbiAgLy9JZiA9XCJ0cnVlXCIgZGlzYWJsZSBub3RpZmljYXRpb24gYWZ0ZXIgc3VibWlzc2lvbiBzdWNjZXNzXHJcbiAgRGlzYWJsZVN1Y2Nlc3NOb3RpZmljYXRpb246IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLy9JZiA9XCJ0cnVlXCIgZGlzYWJsZSBub3RpZmljYXRpb24gYWZ0ZXIgc3VibWlzc2lvbiBlcnJvclxyXG4gIERpc2FibGVFcnJvck5vdGlmaWNhdGlvbjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAvL0lmID1cInRydWVcIiBkaXNhYmxlIHByZXZlbnQgbW9kYWwgZnJvbSBkaXNtaXNzIGF1dG9tYXRpY2FsbHkgXHJcbiAgRGlzYWJsZU1vZGFsRGlzbWlzczogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxufVxyXG4iXX0=
|
|
@@ -72,12 +72,11 @@ export class ConfirmationModalComponent {
|
|
|
72
72
|
}
|
|
73
73
|
//Modal confirmation submit function
|
|
74
74
|
submit() {
|
|
75
|
-
console.log("options in submit function");
|
|
76
|
-
console.log(this.options);
|
|
77
75
|
let submitModel = this.options.ServiceSubmitModel;
|
|
78
76
|
let submittedService = this.options.ServiceSubmitFunction.apply(null, submitModel);
|
|
79
77
|
submittedService.subscribe((result) => {
|
|
80
|
-
this.
|
|
78
|
+
if (!this.options.DisableModalDismiss)
|
|
79
|
+
this.modalService.dismissAll();
|
|
81
80
|
if (!this.options.DisableSuccessNotification) {
|
|
82
81
|
if (!this.options.SuccessNotificationMessage)
|
|
83
82
|
this.options.SuccessNotificationMessage = this.utilityService.getResourceValue("DeletedSuccessfully");
|
|
@@ -136,4 +135,4 @@ ConfirmationModalComponent.propDecorators = {
|
|
|
136
135
|
options: [{ type: Input }],
|
|
137
136
|
confirmationModal: [{ type: ViewChild, args: ['confirmationModal', { static: false },] }]
|
|
138
137
|
};
|
|
139
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29uZmlybWF0aW9uTW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmJzZi1jb250cm9scy9zcmMvbGliL2NvbnRyb2xzL0NvbmZpcm1hdGlvbk1vZGFsL0NvbmZpcm1hdGlvbk1vZGFsLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFjLEtBQUssRUFBVSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEYsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUV6RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUV2RSxPQUFPLElBQXdCLE1BQU0sYUFBYSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQU16QyxNQUFNLE9BQU8sMEJBQTBCO0lBV3JDLFlBQW1CLGNBQThCLEVBQVUsWUFBc0IsRUFBVSxNQUFjO1FBQXRGLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUFVLGlCQUFZLEdBQVosWUFBWSxDQUFVO1FBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQVR6RyxnQkFBVyxHQUEwQixxQkFBcUIsQ0FBQyxNQUFNLENBQUM7UUFDbEUsaUJBQVksR0FBMEIscUJBQXFCLENBQUMsT0FBTyxDQUFDO1FBQ3BFLGlCQUFZLEdBQTBCLHFCQUFxQixDQUFDLE9BQU8sQ0FBQztJQU95QyxDQUFDO0lBRTlHLFFBQVE7SUFDUixDQUFDO0lBRUQsd0NBQXdDO0lBQ3hDLFNBQVM7UUFDUCxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksRUFBRSxDQUFBO1FBQ2xDLCtCQUErQjtRQUMvQixJ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QyxDQUFDO1lBQzFCLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLHdCQUF3QjtnQkFDeEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxrQkFBa0IsRUFBRSxDQUFBO1NBQzNDO1FBQ0QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNwQyxDQUFDOzs7WUFuSUYsU0FBUyxTQUFDO2dCQUNULFlBQStDO2dCQUMvQyxRQUFRLEVBQUUsd0JBQXdCO2FBQ25DOzs7WUFYUSxjQUFjO1lBRGQsUUFBUTtZQU9SLE1BQU07OztzQkFPWixLQUFLO2dDQUlMLFNBQVMsU0FBQyxtQkFBbUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwRXJyb3JSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbnB1dCwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTmdiTW9kYWwgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcbmltcG9ydCB7IFV0aWxpdHlTZXJ2aWNlIH0gZnJvbSAnQGJuc2lnaHRzL2Jic2YtdXRpbGl0aWVzJ1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFN0eWxlQ29uZmlybWF0aW9uTW9kZSB9IGZyb20gJy4uLy4uLy4uL3B1YmxpYy1hcGknO1xyXG5pbXBvcnQgeyBQYWdpbmdBY3Rpb25Nb2RlIH0gZnJvbSAnLi4vLi4vU2hhcmVkL0VudW1zL1BhZ2luZ0FjdGlvbk1vZGUnO1xyXG5pbXBvcnQgeyBDb25maXJtYXRpb25Nb2RhbE9wdGlvbnMgfSBmcm9tICcuLi8uLi9TaGFyZWQvTW9kZWxzL0NvbmZpcm1hdGlvbk1vZGFsT3B0aW9ucyc7XHJcbmltcG9ydCBTd2FsLCB7IFN3ZWV0QWxlcnRJY29uIH0gZnJvbSAnc3dlZXRhbGVydDInO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgdGVtcGxhdGVVcmw6ICdDb25maXJtYXRpb25Nb2RhbC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc2VsZWN0b3I6ICdCQlNGLUNvbmZpcm1hdGlvbk1vZGFsJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIENvbmZpcm1hdGlvbk1vZGFsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBASW5wdXQoKSBvcHRpb25zOiBDb25maXJtYXRpb25Nb2RhbE9wdGlvbnM7XHJcbiAgc3R5bGVEYW5nZXI6IFN0eWxlQ29uZmlybWF0aW9uTW9kZSA9IFN0eWxlQ29uZmlybWF0aW9uTW9kZS5EYW5nZXI7XHJcbiAgc3R5bGVXYXJuaW5nOiBTdHlsZUNvbmZpcm1hdGlvbk1vZGUgPSBTdHlsZUNvbmZpcm1hdGlvbk1vZGUuV2FybmluZztcclxuICBzdHlsZVN1Y2Nlc3M6IFN0eWxlQ29uZmlybWF0aW9uTW9kZSA9IFN0eWxlQ29uZmlybWF0aW9uTW9kZS5TdWNjZXNzO1xyXG4gIEBWaWV3Q2hpbGQoJ2NvbmZpcm1hdGlvbk1vZGFsJywgeyBzdGF0aWM6IGZhbHNlIH0pIGNvbmZpcm1hdGlvbk1vZGFsOiBFbGVtZW50UmVmO1xyXG4gIGljb246IFN3ZWV0QWxlcnRJY29uO1xyXG4gIGJ0bkNvbG9yOiBhbnk7XHJcbiAgaWNvbkh0bWw6IHN0cmluZztcclxuXHJcbiAgXHJcbiAgY29uc3RydWN0b3IocHVibGljIHV0aWxpdHlTZXJ2aWNlOiBVdGlsaXR5U2VydmljZSwgcHJpdmF0ZSBtb2RhbFNlcnZpY2U6IE5nYk1vZGFsLCBwcml2YXRlIHJvdXRlcjogUm91dGVyKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgfVxyXG5cclxuICAvL01ldGhvZCB1c2VkIHRvIHNob3cgY29uZmlybWF0aW9uIG1vZGFsXHJcbiAgc2hvd01vZGFsKCkge1xyXG4gICAgdGhpcy51dGlsaXR5U2VydmljZS5zdGFydEJsb2NrVUkoKVxyXG4gICAgLy9jaGVjayBmb3Igb3B0aW9ucyB0ZXh0IHZhbHVlc1xyXG4gICAgdGhpcy5zZXRUZXh0VmFsdWVzKCk7XHJcbiAgICAvL3N3ZWV0YWxlcnQgc3R5bGVzLy9cclxuICAgIHN3aXRjaCAodGhpcy5vcHRpb25zLlN0eWxlQ29uZmlybWF0aW9uTW9kZSkge1xyXG4gICAgICBjYXNlIHRoaXMuc3R5bGVTdWNjZXNzOiB7XHJcbiAgICAgICAgdGhpcy5pY29uID0gJ3N1Y2Nlc3MnXHJcbiAgICAgICAgdGhpcy5idG5Db2xvciA9ICcjNTBjZDg5J1xyXG4gICAgICAgIHRoaXMuaWNvbkh0bWw9JzxpIGNsYXNzPVwiZmEgZmEtY2hlY2tcIj48L2k+J1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICAgIGNhc2UgdGhpcy5zdHlsZVdhcm5pbmc6IHtcclxuICAgICAgICB0aGlzLmljb24gPSAnd2FybmluZydcclxuICAgICAgICB0aGlzLmJ0bkNvbG9yID0gJyNmZmM3MDAnXHJcbiAgICAgICAgdGhpcy5pY29uSHRtbD0nPGkgY2xhc3M9XCJmYSBmYS13YXJuaW5nXCI+PC9pPidcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIH1cclxuICAgICAgY2FzZSB0aGlzLnN0eWxlRGFuZ2VyOiB7XHJcbiAgICAgICAgdGhpcy5pY29uID0gJ2Vycm9yJ1xyXG4gICAgICAgIHRoaXMuYnRuQ29sb3IgPSAnI2YxNDE2YydcclxuICAgICAgICB0aGlzLmljb25IdG1sPSc8aSBjbGFzcz1cImZhIGZhLWNsb3NlXCI+PC9pPidcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIFN3YWwuZmlyZSh7XHJcbiAgICAgICAgICB0aXRsZTp0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUodGhpcy5vcHRpb25zLkNvbmZpcm1hdGlvbkhlYWRlciksXHJcbiAgICAgICAgICB0ZXh0OiB0aGlzLm9wdGlvbnMuQ29uZmlybWF0aW9uQm9keSxcclxuICAgICAgICAgIGljb246IHRoaXMuaWNvbixcclxuICAgICAgICAgIGljb25Db2xvcjp0aGlzLmJ0bkNvbG9yLFxyXG4gICAgICAgICAgc2hvd0NhbmNlbEJ1dHRvbjogdHJ1ZSxcclxuICAgICAgICAgIGNvbmZpcm1CdXR0b25Db2xvcjogdGhpcy5idG5Db2xvcixcclxuICAgICAgICAgIGNhbmNlbEJ1dHRvbkNvbG9yOiAnI2Y1ZjhmYScsXHJcbiAgICAgICAgICBjYW5jZWxCdXR0b25UZXh0OnRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkNhbmNlbExhYmVsXCIpLFxyXG5cclxuICAgICAgICAgIGNvbmZpcm1CdXR0b25UZXh0OnRoaXMub3B0aW9ucy5TdWJtaXRCdXR0b25UZXh0LFxyXG4gICAgICAgICAgc2hvd0Nsb3NlQnV0dG9uOiB0cnVlLFxyXG4gICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlc3VsdC5pc0NvbmZpcm1lZCkge1xyXG4gICAgICAgICAgICB0aGlzLnN1Ym1pdCgpXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgIHRoaXMudXRpbGl0eVNlcnZpY2Uuc3RvcEJsb2NrVUkoKVxyXG4gIH1cclxuICBwcml2YXRlIHNldFRleHRWYWx1ZXMoKSB7XHJcbiAgICBpZiAoIXRoaXMub3B0aW9ucy5Db25maXJtYXRpb25IZWFkZXIpXHJcbiAgICAgIHRoaXMub3B0aW9ucy5Db25maXJtYXRpb25IZWFkZXIgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJEZWxldGVDb25maXJtYXRpb25cIik7XHJcbiAgICBpZiAoIXRoaXMub3B0aW9ucy5Db25maXJtYXRpb25Cb2R5KVxyXG4gICAgICB0aGlzLm9wdGlvbnMuQ29uZmlybWF0aW9uQm9keSA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkRlbGV0ZV9RdWVzdGlvblwiKTtcclxuICAgIGlmICghdGhpcy5vcHRpb25zLlN1Ym1pdEJ1dHRvblRleHQpXHJcbiAgICAgIHRoaXMub3B0aW9ucy5TdWJtaXRCdXR0b25UZXh0ID0gdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiRGVsZXRlXCIpO1xyXG4gICAgaWYgKCF0aGlzLm9wdGlvbnMuU3VjY2Vzc05vdGlmaWNhdGlvbk1lc3NhZ2UpXHJcbiAgICAgIHRoaXMub3B0aW9ucy5TdWNjZXNzTm90aWZpY2F0aW9uTWVzc2FnZSA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkRlbGV0ZWRTdWNjZXNzZnVsbHlcIik7XHJcbiAgfVxyXG4gIC8vTW9kYWwgY29uZmlybWF0aW9uIHN1Ym1pdCBmdW5jdGlvblxyXG4gIHN1Ym1pdCgpIHtcclxuICAgIGNvbnNvbGUubG9nKFwib3B0aW9ucyBpbiBzdWJtaXQgZnVuY3Rpb25cIik7XHJcbiAgICBjb25zb2xlLmxvZyh0aGlzLm9wdGlvbnMpO1xyXG4gICAgbGV0IHN1Ym1pdE1vZGVsID0gdGhpcy5vcHRpb25zLlNlcnZpY2VTdWJtaXRNb2RlbDtcclxuXHJcbiAgICBsZXQgc3VibWl0dGVkU2VydmljZSA9IHRoaXMub3B0aW9ucy5TZXJ2aWNlU3VibWl0RnVuY3Rpb24uYXBwbHkobnVsbCwgc3VibWl0TW9kZWwpIGFzIE9ic2VydmFibGU8YW55PlxyXG4gICAgc3VibWl0dGVkU2VydmljZS5zdWJzY3JpYmUoXHJcbiAgICAgIChyZXN1bHQpID0+IHtcclxuICAgICAgICB0aGlzLm1vZGFsU2VydmljZS5kaXNtaXNzQWxsKCk7XHJcblxyXG4gICAgICAgIGlmICghdGhpcy5vcHRpb25zLkRpc2FibGVTdWNjZXNzTm90aWZpY2F0aW9uKSB7XHJcbiAgICAgICAgICBpZiAoIXRoaXMub3B0aW9ucy5TdWNjZXNzTm90aWZpY2F0aW9uTWVzc2FnZSlcclxuICAgICAgICAgICAgdGhpcy5vcHRpb25zLlN1Y2Nlc3NOb3RpZmljYXRpb25NZXNzYWdlID0gdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiRGVsZXRlZFN1Y2Nlc3NmdWxseVwiKTtcclxuICAgICAgICAgIHRoaXMudXRpbGl0eVNlcnZpY2Uubm90aWZ5U3VjY2Vzc01lc3NhZ2UodGhpcy5vcHRpb25zLlN1Y2Nlc3NOb3RpZmljYXRpb25NZXNzYWdlKVxyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGhpcy5vcHRpb25zLk9uU3VjY2Vzc0hhbmRsZXIpXHJcbiAgICAgICAgICB0aGlzLm9wdGlvbnMuT25TdWNjZXNzSGFuZGxlcihyZXN1bHQpXHJcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5QYWdpbmdSZWZlcmVuY2UpIHtcclxuICAgICAgICAgIGxldCBwYWdpbmcgPSB0aGlzLm9wdGlvbnMuUGFnaW5nUmVmZXJlbmNlO1xyXG4gICAgICAgICAgdGhpcy5vcHRpb25zLlBhZ2luZ0FjdGlvbk1vZGUgPT0gUGFnaW5nQWN0aW9uTW9kZS5SZWluaXRpYWxpemUgPyBwYWdpbmcuUmVpbml0aWFsaXplUGFnaW5nKCkgOiBwYWdpbmcuVXBkYXRlUGFnaW5nKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMudXRpbGl0eVNlcnZpY2Uuc3RvcEJsb2NrVUkoKTtcclxuICAgICAgfSwgKGVycm9yKSA9PiB7XHJcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5PbkVycm9ySGFuZGxlcilcclxuICAgICAgICAgIHRoaXMub3B0aW9ucy5PbkVycm9ySGFuZGxlcihlcnJvcilcclxuICAgICAgICBlbHNlXHJcbiAgICAgICAgICB0aGlzLmhhbmRsZUVycm9yKGVycm9yKVxyXG4gICAgICB9KVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBoYW5kbGVFcnJvcihlcnI6IEh0dHBFcnJvclJlc3BvbnNlKSB7XHJcbiAgICBsZXQgZXJyb3JNZXNzYWdlID0gJyc7XHJcbiAgICBpZiAoZXJyLmVycm9yIGluc3RhbmNlb2YgRXJyb3JFdmVudCkge1xyXG4gICAgICBlcnJvck1lc3NhZ2UgPSBgQW4gZXJyb3Igb2NjdXJyZWQ6ICR7ZXJyLmVycm9yLm1lc3NhZ2V9YDtcclxuICAgICAgaWYgKCF0aGlzLm9wdGlvbnMuRGlzYWJsZUVycm9yTm90aWZpY2F0aW9uKVxyXG4gICAgICAgIHRoaXMudXRpbGl0eVNlcnZpY2Uubm90aWZ5RXJyb3JNZXNzYWdlKClcclxuICAgIH1cclxuXHJcbiAgICBlbHNlIGlmIChlcnIuc3RhdHVzID09IDQwMSkge1xyXG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbXCIvQWRtaW4vYWNjb3VudC9sb2dpblwiXSlcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGVyci5zdGF0dXMgPT0gNTEwKSB7XHJcbiAgICAgIGVycm9yTWVzc2FnZSA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0Q3VycmVudExhbmd1YWdlKCk9PVwiZW5cIj8gXCJDYW4gbm90IGRlbGV0ZSB0aGlzIGl0ZW0gYXMgaXQgaXMgcmVsYXRlZCB0byBvdGhlcnNcIjpcItmE2Kcg2YrZhdmD2YYg2K3YsNmBINmH2LDYpyDYp9mE2LnZhti12LEg2YTYo9mG2Ycg2YXYsdiq2KjYtyDYqNi52YbYp9i12LEg2KPYrtix2YlcIjtcclxuICAgICAgaWYgKCF0aGlzLm9wdGlvbnMuRGlzYWJsZUVycm9yTm90aWZpY2F0aW9uKVxyXG4gICAgICAgIHRoaXMudXRpbGl0eVNlcnZpY2Uubm90aWZ5RXJyb3JNZXNzYWdlKGVycm9yTWVzc2FnZSlcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICBlcnJvck1lc3NhZ2UgPSBgU2VydmVyIHJldHVybmVkIGNvZGU6ICR7ZXJyLnN0YXR1c30sIGVycm9yIG1lc3NhZ2UgaXM6ICR7ZXJyLm1lc3NhZ2V9YDtcclxuICAgICAgY29uc29sZS5sb2coZXJyb3JNZXNzYWdlKTtcclxuICAgICAgaWYgKCF0aGlzLm9wdGlvbnMuRGlzYWJsZUVycm9yTm90aWZpY2F0aW9uKVxyXG4gICAgICAgIHRoaXMudXRpbGl0eVNlcnZpY2Uubm90aWZ5RXJyb3JNZXNzYWdlKClcclxuICAgIH1cclxuICAgIHRoaXMudXRpbGl0eVNlcnZpY2Uuc3RvcEJsb2NrVUkoKTtcclxuICB9XHJcblxyXG5cclxufVxyXG4iXX0=
|
|
138
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29uZmlybWF0aW9uTW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmJzZi1jb250cm9scy9zcmMvbGliL2NvbnRyb2xzL0NvbmZpcm1hdGlvbk1vZGFsL0NvbmZpcm1hdGlvbk1vZGFsLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFjLEtBQUssRUFBVSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEYsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUV6RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUV2RSxPQUFPLElBQXdCLE1BQU0sYUFBYSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQU16QyxNQUFNLE9BQU8sMEJBQTBCO0lBV3JDLFlBQW1CLGNBQThCLEVBQVUsWUFBc0IsRUFBVSxNQUFjO1FBQXRGLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUFVLGlCQUFZLEdBQVosWUFBWSxDQUFVO1FBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQVR6RyxnQkFBVyxHQUEwQixxQkFBcUIsQ0FBQyxNQUFNLENBQUM7UUFDbEUsaUJBQVksR0FBMEIscUJBQXFCLENBQUMsT0FBTyxDQUFDO1FBQ3BFLGlCQUFZLEdBQTBCLHFCQUFxQixDQUFDLE9BQU8sQ0FBQztJQU95QyxDQUFDO0lBRTlHLFFBQVE7SUFDUixDQUFDO0lBRUQsd0NBQXdDO0lBQ3hDLFNBQVM7UUFDUCxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksRUFBRSxDQUFBO1FBQ2xDLCtCQUErQjtRQUMvQixJ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Z0JBQ3hDLElBQUksQ0FBQyxjQUFjLENBQUMsa0JBQWtCLEVBQUUsQ0FBQTtTQUMzQztRQUNELElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDcEMsQ0FBQzs7O1lBbElGLFNBQVMsU0FBQztnQkFDVCxZQUErQztnQkFDL0MsUUFBUSxFQUFFLHdCQUF3QjthQUNuQzs7O1lBWFEsY0FBYztZQURkLFFBQVE7WUFPUixNQUFNOzs7c0JBT1osS0FBSztnQ0FJTCxTQUFTLFNBQUMsbUJBQW1CLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5nYk1vZGFsIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xyXG5pbXBvcnQgeyBVdGlsaXR5U2VydmljZSB9IGZyb20gJ0BibnNpZ2h0cy9iYnNmLXV0aWxpdGllcydcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBTdHlsZUNvbmZpcm1hdGlvbk1vZGUgfSBmcm9tICcuLi8uLi8uLi9wdWJsaWMtYXBpJztcclxuaW1wb3J0IHsgUGFnaW5nQWN0aW9uTW9kZSB9IGZyb20gJy4uLy4uL1NoYXJlZC9FbnVtcy9QYWdpbmdBY3Rpb25Nb2RlJztcclxuaW1wb3J0IHsgQ29uZmlybWF0aW9uTW9kYWxPcHRpb25zIH0gZnJvbSAnLi4vLi4vU2hhcmVkL01vZGVscy9Db25maXJtYXRpb25Nb2RhbE9wdGlvbnMnO1xyXG5pbXBvcnQgU3dhbCwgeyBTd2VldEFsZXJ0SWNvbiB9IGZyb20gJ3N3ZWV0YWxlcnQyJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHRlbXBsYXRlVXJsOiAnQ29uZmlybWF0aW9uTW9kYWwuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHNlbGVjdG9yOiAnQkJTRi1Db25maXJtYXRpb25Nb2RhbCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb25maXJtYXRpb25Nb2RhbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQElucHV0KCkgb3B0aW9uczogQ29uZmlybWF0aW9uTW9kYWxPcHRpb25zO1xyXG4gIHN0eWxlRGFuZ2VyOiBTdHlsZUNvbmZpcm1hdGlvbk1vZGUgPSBTdHlsZUNvbmZpcm1hdGlvbk1vZGUuRGFuZ2VyO1xyXG4gIHN0eWxlV2FybmluZzogU3R5bGVDb25maXJtYXRpb25Nb2RlID0gU3R5bGVDb25maXJtYXRpb25Nb2RlLldhcm5pbmc7XHJcbiAgc3R5bGVTdWNjZXNzOiBTdHlsZUNvbmZpcm1hdGlvbk1vZGUgPSBTdHlsZUNvbmZpcm1hdGlvbk1vZGUuU3VjY2VzcztcclxuICBAVmlld0NoaWxkKCdjb25maXJtYXRpb25Nb2RhbCcsIHsgc3RhdGljOiBmYWxzZSB9KSBjb25maXJtYXRpb25Nb2RhbDogRWxlbWVudFJlZjtcclxuICBpY29uOiBTd2VldEFsZXJ0SWNvbjtcclxuICBidG5Db2xvcjogYW55O1xyXG4gIGljb25IdG1sOiBzdHJpbmc7XHJcblxyXG4gIFxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB1dGlsaXR5U2VydmljZTogVXRpbGl0eVNlcnZpY2UsIHByaXZhdGUgbW9kYWxTZXJ2aWNlOiBOZ2JNb2RhbCwgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcikgeyB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gIH1cclxuXHJcbiAgLy9NZXRob2QgdXNlZCB0byBzaG93IGNvbmZpcm1hdGlvbiBtb2RhbFxyXG4gIHNob3dNb2RhbCgpIHtcclxuICAgIHRoaXMudXRpbGl0eVNlcnZpY2Uuc3RhcnRCbG9ja1VJKClcclxuICAgIC8vY2hlY2sgZm9yIG9wdGlvbnMgdGV4dCB2YWx1ZXNcclxuICAgIHRoaXMuc2V0VGV4dFZhbHVlcygpO1xyXG4gICAgLy9zd2VldGFsZXJ0IHN0eWxlcy8vXHJcbiAgICBzd2l0Y2ggKHRoaXMub3B0aW9ucy5TdHlsZUNvbmZpcm1hdGlvbk1vZGUpIHtcclxuICAgICAgY2FzZSB0aGlzLnN0eWxlU3VjY2Vzczoge1xyXG4gICAgICAgIHRoaXMuaWNvbiA9ICdzdWNjZXNzJ1xyXG4gICAgICAgIHRoaXMuYnRuQ29sb3IgPSAnIzUwY2Q4OSdcclxuICAgICAgICB0aGlzLmljb25IdG1sPSc8aSBjbGFzcz1cImZhIGZhLWNoZWNrXCI+PC9pPidcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgICBjYXNlIHRoaXMuc3R5bGVXYXJuaW5nOiB7XHJcbiAgICAgICAgdGhpcy5pY29uID0gJ3dhcm5pbmcnXHJcbiAgICAgICAgdGhpcy5idG5Db2xvciA9ICcjZmZjNzAwJ1xyXG4gICAgICAgIHRoaXMuaWNvbkh0bWw9JzxpIGNsYXNzPVwiZmEgZmEtd2FybmluZ1wiPjwvaT4nXHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICB9XHJcbiAgICAgIGNhc2UgdGhpcy5zdHlsZURhbmdlcjoge1xyXG4gICAgICAgIHRoaXMuaWNvbiA9ICdlcnJvcidcclxuICAgICAgICB0aGlzLmJ0bkNvbG9yID0gJyNmMTQxNmMnXHJcbiAgICAgICAgdGhpcy5pY29uSHRtbD0nPGkgY2xhc3M9XCJmYSBmYS1jbG9zZVwiPjwvaT4nXHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBTd2FsLmZpcmUoe1xyXG4gICAgICAgICAgdGl0bGU6dGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKHRoaXMub3B0aW9ucy5Db25maXJtYXRpb25IZWFkZXIpLFxyXG4gICAgICAgICAgdGV4dDogdGhpcy5vcHRpb25zLkNvbmZpcm1hdGlvbkJvZHksXHJcbiAgICAgICAgICBpY29uOiB0aGlzLmljb24sXHJcbiAgICAgICAgICBpY29uQ29sb3I6dGhpcy5idG5Db2xvcixcclxuICAgICAgICAgIHNob3dDYW5jZWxCdXR0b246IHRydWUsXHJcbiAgICAgICAgICBjb25maXJtQnV0dG9uQ29sb3I6IHRoaXMuYnRuQ29sb3IsXHJcbiAgICAgICAgICBjYW5jZWxCdXR0b25Db2xvcjogJyNmNWY4ZmEnLFxyXG4gICAgICAgICAgY2FuY2VsQnV0dG9uVGV4dDp0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJDYW5jZWxMYWJlbFwiKSxcclxuXHJcbiAgICAgICAgICBjb25maXJtQnV0dG9uVGV4dDp0aGlzLm9wdGlvbnMuU3VibWl0QnV0dG9uVGV4dCxcclxuICAgICAgICAgIHNob3dDbG9zZUJ1dHRvbjogdHJ1ZSxcclxuICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHtcclxuICAgICAgICAgIGlmIChyZXN1bHQuaXNDb25maXJtZWQpIHtcclxuICAgICAgICAgICAgdGhpcy5zdWJtaXQoKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICB0aGlzLnV0aWxpdHlTZXJ2aWNlLnN0b3BCbG9ja1VJKClcclxuICB9XHJcbiAgcHJpdmF0ZSBzZXRUZXh0VmFsdWVzKCkge1xyXG4gICAgaWYgKCF0aGlzLm9wdGlvbnMuQ29uZmlybWF0aW9uSGVhZGVyKVxyXG4gICAgICB0aGlzLm9wdGlvbnMuQ29uZmlybWF0aW9uSGVhZGVyID0gdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiRGVsZXRlQ29uZmlybWF0aW9uXCIpO1xyXG4gICAgaWYgKCF0aGlzLm9wdGlvbnMuQ29uZmlybWF0aW9uQm9keSlcclxuICAgICAgdGhpcy5vcHRpb25zLkNvbmZpcm1hdGlvbkJvZHkgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJEZWxldGVfUXVlc3Rpb25cIik7XHJcbiAgICBpZiAoIXRoaXMub3B0aW9ucy5TdWJtaXRCdXR0b25UZXh0KVxyXG4gICAgICB0aGlzLm9wdGlvbnMuU3VibWl0QnV0dG9uVGV4dCA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkRlbGV0ZVwiKTtcclxuICAgIGlmICghdGhpcy5vcHRpb25zLlN1Y2Nlc3NOb3RpZmljYXRpb25NZXNzYWdlKVxyXG4gICAgICB0aGlzLm9wdGlvbnMuU3VjY2Vzc05vdGlmaWNhdGlvbk1lc3NhZ2UgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJEZWxldGVkU3VjY2Vzc2Z1bGx5XCIpO1xyXG4gIH1cclxuICAvL01vZGFsIGNvbmZpcm1hdGlvbiBzdWJtaXQgZnVuY3Rpb25cclxuICBzdWJtaXQoKSB7XHJcbiAgICBsZXQgc3VibWl0TW9kZWwgPSB0aGlzLm9wdGlvbnMuU2VydmljZVN1Ym1pdE1vZGVsO1xyXG5cclxuICAgIGxldCBzdWJtaXR0ZWRTZXJ2aWNlID0gdGhpcy5vcHRpb25zLlNlcnZpY2VTdWJtaXRGdW5jdGlvbi5hcHBseShudWxsLCBzdWJtaXRNb2RlbCkgYXMgT2JzZXJ2YWJsZTxhbnk+XHJcbiAgICBzdWJtaXR0ZWRTZXJ2aWNlLnN1YnNjcmliZShcclxuICAgICAgKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgIGlmKCF0aGlzLm9wdGlvbnMuRGlzYWJsZU1vZGFsRGlzbWlzcylcclxuICAgICAgICB0aGlzLm1vZGFsU2VydmljZS5kaXNtaXNzQWxsKCk7XHJcblxyXG4gICAgICAgIGlmICghdGhpcy5vcHRpb25zLkRpc2FibGVTdWNjZXNzTm90aWZpY2F0aW9uKSB7XHJcbiAgICAgICAgICBpZiAoIXRoaXMub3B0aW9ucy5TdWNjZXNzTm90aWZpY2F0aW9uTWVzc2FnZSlcclxuICAgICAgICAgICAgdGhpcy5vcHRpb25zLlN1Y2Nlc3NOb3RpZmljYXRpb25NZXNzYWdlID0gdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiRGVsZXRlZFN1Y2Nlc3NmdWxseVwiKTtcclxuICAgICAgICAgIHRoaXMudXRpbGl0eVNlcnZpY2Uubm90aWZ5U3VjY2Vzc01lc3NhZ2UodGhpcy5vcHRpb25zLlN1Y2Nlc3NOb3RpZmljYXRpb25NZXNzYWdlKVxyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGhpcy5vcHRpb25zLk9uU3VjY2Vzc0hhbmRsZXIpXHJcbiAgICAgICAgICB0aGlzLm9wdGlvbnMuT25TdWNjZXNzSGFuZGxlcihyZXN1bHQpXHJcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5QYWdpbmdSZWZlcmVuY2UpIHtcclxuICAgICAgICAgIGxldCBwYWdpbmcgPSB0aGlzLm9wdGlvbnMuUGFnaW5nUmVmZXJlbmNlO1xyXG4gICAgICAgICAgdGhpcy5vcHRpb25zLlBhZ2luZ0FjdGlvbk1vZGUgPT0gUGFnaW5nQWN0aW9uTW9kZS5SZWluaXRpYWxpemUgPyBwYWdpbmcuUmVpbml0aWFsaXplUGFnaW5nKCkgOiBwYWdpbmcuVXBkYXRlUGFnaW5nKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMudXRpbGl0eVNlcnZpY2Uuc3RvcEJsb2NrVUkoKTtcclxuICAgICAgfSwgKGVycm9yKSA9PiB7XHJcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5PbkVycm9ySGFuZGxlcilcclxuICAgICAgICAgIHRoaXMub3B0aW9ucy5PbkVycm9ySGFuZGxlcihlcnJvcilcclxuICAgICAgICBlbHNlXHJcbiAgICAgICAgICB0aGlzLmhhbmRsZUVycm9yKGVycm9yKVxyXG4gICAgICB9KVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBoYW5kbGVFcnJvcihlcnI6IEh0dHBFcnJvclJlc3BvbnNlKSB7XHJcbiAgICBsZXQgZXJyb3JNZXNzYWdlID0gJyc7XHJcbiAgICBpZiAoZXJyLmVycm9yIGluc3RhbmNlb2YgRXJyb3JFdmVudCkge1xyXG4gICAgICBlcnJvck1lc3NhZ2UgPSBgQW4gZXJyb3Igb2NjdXJyZWQ6ICR7ZXJyLmVycm9yLm1lc3NhZ2V9YDtcclxuICAgICAgaWYgKCF0aGlzLm9wdGlvbnMuRGlzYWJsZUVycm9yTm90aWZpY2F0aW9uKVxyXG4gICAgICAgIHRoaXMudXRpbGl0eVNlcnZpY2Uubm90aWZ5RXJyb3JNZXNzYWdlKClcclxuICAgIH1cclxuXHJcbiAgICBlbHNlIGlmIChlcnIuc3RhdHVzID09IDQwMSkge1xyXG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbXCIvQWRtaW4vYWNjb3VudC9sb2dpblwiXSlcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGVyci5zdGF0dXMgPT0gNTEwKSB7XHJcbiAgICAgIGVycm9yTWVzc2FnZSA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0Q3VycmVudExhbmd1YWdlKCk9PVwiZW5cIj8gXCJDYW4gbm90IGRlbGV0ZSB0aGlzIGl0ZW0gYXMgaXQgaXMgcmVsYXRlZCB0byBvdGhlcnNcIjpcItmE2Kcg2YrZhdmD2YYg2K3YsNmBINmH2LDYpyDYp9mE2LnZhti12LEg2YTYo9mG2Ycg2YXYsdiq2KjYtyDYqNi52YbYp9i12LEg2KPYrtix2YlcIjtcclxuICAgICAgaWYgKCF0aGlzLm9wdGlvbnMuRGlzYWJsZUVycm9yTm90aWZpY2F0aW9uKVxyXG4gICAgICAgIHRoaXMudXRpbGl0eVNlcnZpY2Uubm90aWZ5RXJyb3JNZXNzYWdlKGVycm9yTWVzc2FnZSlcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICBlcnJvck1lc3NhZ2UgPSBgU2VydmVyIHJldHVybmVkIGNvZGU6ICR7ZXJyLnN0YXR1c30sIGVycm9yIG1lc3NhZ2UgaXM6ICR7ZXJyLm1lc3NhZ2V9YDtcclxuICAgICAgY29uc29sZS5sb2coZXJyb3JNZXNzYWdlKTtcclxuICAgICAgaWYgKCF0aGlzLm9wdGlvbnMuRGlzYWJsZUVycm9yTm90aWZpY2F0aW9uKVxyXG4gICAgICAgIHRoaXMudXRpbGl0eVNlcnZpY2Uubm90aWZ5RXJyb3JNZXNzYWdlKClcclxuICAgIH1cclxuICAgIHRoaXMudXRpbGl0eVNlcnZpY2Uuc3RvcEJsb2NrVUkoKTtcclxuICB9XHJcblxyXG5cclxufVxyXG4iXX0=
|
|
@@ -78,6 +78,9 @@ export class TagsInputComponent {
|
|
|
78
78
|
// this.group.addControl(this.options.Name, new FormControl(''));
|
|
79
79
|
// this.TagInputControl = this.group.controls[this.options.Name]; // new FormControl('',validationRules);
|
|
80
80
|
this.TagsFormControl.setValue(this.options.Value);
|
|
81
|
+
if (this.options.IsRequired) {
|
|
82
|
+
this.validationRules.push(Validators.required);
|
|
83
|
+
}
|
|
81
84
|
if (this.options.CustomValidation.length > 0) {
|
|
82
85
|
let Validations = this.options.CustomValidation;
|
|
83
86
|
for (let index = 0; index < Validations.length; index++) {
|
|
@@ -85,9 +88,6 @@ export class TagsInputComponent {
|
|
|
85
88
|
this.validationRules.push(Validation.functionBody);
|
|
86
89
|
}
|
|
87
90
|
}
|
|
88
|
-
if (this.options.IsRequired) {
|
|
89
|
-
this.validationRules.push(Validators.required);
|
|
90
|
-
}
|
|
91
91
|
this.TagsFormControl.setValidators(this.validationRules);
|
|
92
92
|
this.TagsFormControl.setAsyncValidators(this.validationRulesasync);
|
|
93
93
|
if (this.options.IsDisabled) {
|
|
@@ -96,7 +96,7 @@ export class TagsInputComponent {
|
|
|
96
96
|
if (this.options.Value != undefined && this.options.Value != []) {
|
|
97
97
|
for (let index = 0; index < this.options.Value.length; index++) {
|
|
98
98
|
const element = this.options.Value[index];
|
|
99
|
-
this.SelectedId.push(element.
|
|
99
|
+
this.SelectedId.push(element.id);
|
|
100
100
|
}
|
|
101
101
|
this.tags = this.options.Value;
|
|
102
102
|
this.TagsFormControl.setValue(this.options.Value);
|
|
@@ -130,7 +130,7 @@ export class TagsInputComponent {
|
|
|
130
130
|
this.controlUtility.CopyInputMessage(inputElement);
|
|
131
131
|
}
|
|
132
132
|
searchFunctionFactory(Text) {
|
|
133
|
-
let Url = `${this.options.ActionURL}?${this.options.QueryParamName}=${Text}&${this.options.SelectedItemsParamName}=${this.SelectedId}`;
|
|
133
|
+
let Url = `${this.options.ActionURL}?${this.options.QueryParamName}=${encodeURIComponent(Text)}&${this.options.SelectedItemsParamName}=${this.SelectedId}`;
|
|
134
134
|
if (this.options.ExtraFilters)
|
|
135
135
|
Url = Url + `&${this.options.ExtraFilters}`;
|
|
136
136
|
let requestOptionsModel = new RequestOptionsModel();
|
|
@@ -140,7 +140,7 @@ export class TagsInputComponent {
|
|
|
140
140
|
return Model;
|
|
141
141
|
}
|
|
142
142
|
AddTag(event, key) {
|
|
143
|
-
if (this.IsNoMatch == true && this.options.AllowNewSelection == false &&
|
|
143
|
+
if (this.IsNoMatch == true && this.options.AllowNewSelection == false && key.selected) {
|
|
144
144
|
this.TagsFormControl.setErrors({ "errorMassage": this.options.NoResultText });
|
|
145
145
|
this.TagsFormControl.markAsTouched();
|
|
146
146
|
this.TagsFormControl.invalid;
|
|
@@ -152,28 +152,39 @@ export class TagsInputComponent {
|
|
|
152
152
|
}
|
|
153
153
|
else if (this.IsNoMatch == true && event == "Enter" && this.options.AllowNewSelection && key.selected) {
|
|
154
154
|
if (!(this.tags.length >= this.options.MaxNumberTags)) {
|
|
155
|
-
this.tags.push({
|
|
156
|
-
|
|
155
|
+
this.tags.push({ name: key.selected });
|
|
156
|
+
this.group.get(this.options.Name).setValue(this.tags);
|
|
157
|
+
this.group.get(this.options.Name).markAllAsTouched();
|
|
158
|
+
this.group.updateValueAndValidity();
|
|
159
|
+
if (this.group.get(this.options.Name).valid) {
|
|
160
|
+
key.selected = null;
|
|
161
|
+
return;
|
|
162
|
+
}
|
|
163
|
+
else
|
|
164
|
+
this.tags.pop();
|
|
157
165
|
}
|
|
158
166
|
}
|
|
159
167
|
}
|
|
160
168
|
onTagsChanged(result) {
|
|
161
169
|
//console.log(this.tags)
|
|
162
170
|
if (result["change"] == "add") {
|
|
163
|
-
this.SelectedId.push(result.tag.
|
|
171
|
+
this.SelectedId.push(result.tag.id);
|
|
164
172
|
}
|
|
165
173
|
if (result["change"] == "remove") {
|
|
166
|
-
this.SelectedId = this.SelectedId.filter((item) => item != result.tag.
|
|
174
|
+
this.SelectedId = this.SelectedId.filter((item) => item != result.tag.id);
|
|
167
175
|
if (this.SelectedId.length == 0 && this.options.IsRequired == true) {
|
|
168
176
|
this.TagsFormControl.setErrors({ required: "" });
|
|
169
177
|
this.TagsFormControl.markAsTouched();
|
|
170
178
|
this.TagsFormControl.invalid;
|
|
171
179
|
}
|
|
172
180
|
}
|
|
173
|
-
let originalValue = this.TagsFormControl.value.map(function (a) { return a.
|
|
181
|
+
let originalValue = this.TagsFormControl.value.map(function (a) { return a.id; });
|
|
174
182
|
if (this.options.PatchFunction && this.options.PatchPath && this.TagsFormControl.valid) {
|
|
175
183
|
this.controlUtility.patchControlValue(originalValue, this.options.PatchFunction, this.options.PatchPath);
|
|
176
184
|
}
|
|
185
|
+
this.group.get(this.options.Name).setValue(this.tags);
|
|
186
|
+
this.TagsFormControl.updateValueAndValidity();
|
|
187
|
+
this.group.updateValueAndValidity();
|
|
177
188
|
this.OnChange.emit(originalValue);
|
|
178
189
|
}
|
|
179
190
|
onNoOptionsMatch(event) {
|
|
@@ -204,4 +215,4 @@ TagsInputComponent.propDecorators = {
|
|
|
204
215
|
options: [{ type: Input }],
|
|
205
216
|
OnChange: [{ type: Output }]
|
|
206
217
|
};
|
|
207
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGFnc0lucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Jic2YtY29udHJvbHMvc3JjL2xpYi9jb250cm9scy9UYWdzSW5wdXQvVGFnc0lucHV0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBVyxRQUFRLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRyxPQUFPLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQW1CLGdCQUFnQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0gsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBRXRFLE9BQU8sRUFBRSxVQUFVLEVBQWUsTUFBTSxzQkFBc0IsQ0FBQztBQUUvRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUscUJBQXFCLEVBQUUsbUJBQW1CLEVBQUUsY0FBYyxFQUFFLE1BQU8sMEJBQTBCLENBQUM7QUFDakksT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBUzlFLE1BQU0sT0FBTyxrQkFBa0I7SUFJN0IsNENBQTRDO0lBQzVDLFlBQW9CLElBQWdCLEVBQVUsY0FBOEIsRUFBUyxxQkFBMkMsRUFBc0IsZ0JBQWtDLEVBQVMsb0JBQXdDLEVBQy9OLGNBQThCLEVBQVUsd0JBQWtELEVBQzFGLGNBQThCO1FBRnBCLFNBQUksR0FBSixJQUFJLENBQVk7UUFBVSxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFBUywwQkFBcUIsR0FBckIscUJBQXFCLENBQXNCO1FBQXNCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFBUyx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQW9CO1FBQy9OLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUFVLDZCQUF3QixHQUF4Qix3QkFB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U0FDeEc7UUFDRCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQTtJQUNuQyxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsS0FBSztRQUNwQixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUN6QixDQUFDOztBQXpMTSx5Q0FBc0IsR0FBRyxJQUFJLENBQUM7O1lBVHRDLFNBQVMsU0FBQztnQkFDVCwrQ0FBK0M7Z0JBQy9DLFFBQVEsRUFBRSxnQkFBZ0I7Z0JBQzFCLHM4RUFBeUM7O2FBRTFDOzs7WUFYUSxVQUFVO1lBRlYsY0FBYztZQUlZLHFCQUFxQjtZQUxNLGdCQUFnQix1QkFvQnVELFFBQVE7WUFwQjdELGtCQUFrQjtZQUtuQixjQUFjO1lBQXBGLHdCQUF3QjtZQUN4QixjQUFjOzs7b0JBbUJwQixLQUFLO3NCQUNMLEtBQUs7dUJBQ0wsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgRG9DaGVjaywgT3B0aW9uYWwsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Db250cm9sLCBWYWxpZGF0b3JzLCBGb3JtR3JvdXAsIEFic3RyYWN0Q29udHJvbCwgQ29udHJvbENvbnRhaW5lciwgRm9ybUdyb3VwRGlyZWN0aXZlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBDb250cm9sVXRpbGl0eSB9IGZyb20gJy4uLy4uL1NoYXJlZC9zZXJ2aWNlcy9Db250cm9sVXRpbGl0eSc7XHJcbmltcG9ydCB7IFRhZ3NJbnB1dE9wdGlvbnMgfSBmcm9tICcuLi8uLi9TaGFyZWQvTW9kZWxzL1RhZ3NJbnB1dE9wdGlvbnMnO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwSGVhZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBDb250cm9sVmFsaWRhdGlvblNlcnZpY2UsIFJlcXVlc3RIYW5kbGVyU2VydmljZSwgUmVxdWVzdE9wdGlvbnNNb2RlbCwgVXRpbGl0eVNlcnZpY2UgfSBmcm9tICAnQGJuc2lnaHRzL2Jic2YtdXRpbGl0aWVzJztcclxuaW1wb3J0IHsgR2xvYmFsU2V0dGluZ3MgfSBmcm9tICcuLi8uLi9TaGFyZWQvc2VydmljZXMvR2xvYmFsU2V0dGluZ3Muc2VydmljZSc7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBjb21wb25lbnQtc2VsZWN0b3JcclxuICBzZWxlY3RvcjogJ0JCU0YtVGFnc0lucHV0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vVGFnc0lucHV0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9UYWdzSW5wdXQuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVGFnc0lucHV0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcblxyXG4gIHN0YXRpYyBjb250cm9sQ29udGFpbmVyc3RhdGljID0gbnVsbDtcclxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG1heC1saW5lLWxlbmd0aFxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cDogSHR0cENsaWVudCwgcHJpdmF0ZSBjb250cm9sVXRpbGl0eTogQ29udHJvbFV0aWxpdHkscHJpdmF0ZSByZXF1ZXN0SGFuZGxlclNlcnZpY2U6UmVxdWVzdEhhbmRsZXJTZXJ2aWNlLCBAT3B0aW9uYWwoKSBwcml2YXRlIGNvbnRyb2xDb250YWluZXI6IENvbnRyb2xDb250YWluZXIsIHB1YmxpYyBUYWdzSW5wdXRDb250cm9sSG9zdDogRm9ybUdyb3VwRGlyZWN0aXZlLFxyXG4gICAgcHJpdmF0ZSBVdGlsaXR5U2VydmljZTogVXRpbGl0eVNlcnZpY2UsIHByaXZhdGUgY29udHJvbFZhbGlkYXRpb25TZXJ2aWNlOiBDb250cm9sVmFsaWRhdGlvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGdsb2JhbFNldHRpbmdzOiBHbG9iYWxTZXR0aW5ncykge1xyXG4gICAgVGFnc0lucHV0Q29tcG9uZW50LmNvbnRyb2xDb250YWluZXJzdGF0aWMgPSB0aGlzLmNvbnRyb2xDb250YWluZXI7XHJcbiAgfVxyXG4gIEBJbnB1dCgpIGdyb3VwOiBGb3JtR3JvdXA7XHJcbiAgQElucHV0KCkgb3B0aW9uczogVGFnc0lucHV0T3B0aW9ucztcclxuICBAT3V0cHV0KCkgT25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIC8vIFRhZ0lucHV0Q29udHJvbDogQWJzdHJhY3RDb250cm9sO1xyXG4gIFNlbGVjdGVkSWQ6IGFueVtdID0gW11cclxuICB0YWdzID0gW107XHJcbiAgTmV3U2VsZWN0aW9uVmFsaWRhdGlvbktleTogc3RyaW5nID0gXCJcIjtcclxuICBUYWdzRm9ybUdyb3VwOiBGb3JtR3JvdXA7XHJcbiAgVGFnc0Zvcm1Db250cm9sOiBBYnN0cmFjdENvbnRyb2xcclxuICBJc05vTWF0Y2g6IGFueVxyXG4gIG1hcmtBbGxBc1RvdWNoZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICB2YWxpZGF0aW9uUnVsZXMgPSBbXTtcclxuICB2YWxpZGF0aW9uUnVsZXNhc3luYyA9IFtdO1xyXG4gIHN0YXRpYyBzaG93RXJyb3JPZklucHV0cyhlcnJvcnM6IGFueSkge1xyXG5cclxuICAgIGNvbnN0IGNvbnRyb2xDb250YWluZXJzdGF0aWMgPSBUYWdzSW5wdXRDb21wb25lbnQuY29udHJvbENvbnRhaW5lcnN0YXRpYztcclxuICAgIGNvbnN0IGZvcm1Hcm91cCA9IGNvbnRyb2xDb250YWluZXJzdGF0aWMuY29udHJvbCBhcyBGb3JtR3JvdXA7XHJcbiAgICBmb3IgKGNvbnN0IGtleSBpbiBlcnJvcnMpIHtcclxuICAgICAgaWYgKGVycm9ycy5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XHJcbiAgICAgICAgZm9yIChjb25zdCBpdGVyYXRvciBvZiBlcnJvcnNba2V5XSkge1xyXG4gICAgICAgICAgY29uc3QgZm9ybUNvbnRyb2wgPSBmb3JtR3JvdXAuZ2V0KGtleSkgYXMgRm9ybUNvbnRyb2w7XHJcbiAgICAgICAgICBmb3JtQ29udHJvbC5zZXRFcnJvcnMoeyBcIkZsdWVudEFwaVwiOiBpdGVyYXRvciB9KTtcclxuICAgICAgICAgIGZvcm1Db250cm9sLm1hcmtBc1RvdWNoZWQoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5jb250cm9sVmFsaWRhdGlvblNlcnZpY2UuaXNDcmVhdGVkQmVmb3IgPSBmYWxzZVxyXG5cclxuICAgIHRoaXMub3B0aW9ucy5EYXRhc291cmNlSXRlbVRleHQgPSB0aGlzLm9wdGlvbnMuRGF0YXNvdXJjZUl0ZW1UZXh0LnRvTG93ZXJDYXNlKCk7XHJcbiAgICB0aGlzLlRhZ3NGb3JtR3JvdXAgPSBuZXcgRm9ybUdyb3VwKHt9KTs7XHJcbiAgICB0aGlzLlRhZ3NGb3JtR3JvdXAuYWRkQ29udHJvbChcInRhZ3NcIiwgbmV3IEZvcm1Db250cm9sKCcnKSk7XHJcbiAgICB0aGlzLlRhZ3NGb3JtQ29udHJvbCA9IHRoaXMuVGFnc0Zvcm1Hcm91cC5jb250cm9sc1tcInRhZ3NcIl07IC8vICBuZXcgRm9ybUNvbnRyb2woJycsdmFsaWRhdGlvblJ1bGVzKTtcclxuICAgIHRoaXMuZ3JvdXAuYWRkQ29udHJvbCh0aGlzLm9wdGlvbnMuTmFtZSwgdGhpcy5UYWdzRm9ybUNvbnRyb2wpO1xyXG5cclxuICAgIGlmICghdGhpcy5vcHRpb25zLlZpZXdUeXBlKVxyXG4gICAgICB0aGlzLm9wdGlvbnMuVmlld1R5cGUgPSB0aGlzLmdsb2JhbFNldHRpbmdzLlZpZXdUeXBlO1xyXG5cclxuICAgIGlmICh0aGlzLm9wdGlvbnMuTGFiZWxLZXkgIT0gbnVsbCAmJiB0aGlzLm9wdGlvbnMuTGFiZWxLZXkgIT0gXCJcIilcclxuICAgICAgdGhpcy5vcHRpb25zLkxhYmVsVmFsdWUgPSB0aGlzLlV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUodGhpcy5vcHRpb25zLkxhYmVsS2V5KTtcclxuXHJcbiAgICBpZiAoIXRoaXMub3B0aW9ucy5Ob1Jlc3VsdFRleHQpXHJcbiAgICAgIHRoaXMub3B0aW9ucy5Ob1Jlc3VsdFRleHQgPSB0aGlzLlV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJOb0l0ZW1zTWF0Y2hcIik7XHJcblxyXG4gICAgLy8gdGhpcy5ncm91cC5hZGRDb250cm9sKHRoaXMub3B0aW9ucy5OYW1lLCBuZXcgRm9ybUNvbnRyb2woJycpKTtcclxuICAgIC8vIHRoaXMuVGFnSW5wdXRDb250cm9sID0gdGhpcy5ncm91cC5jb250cm9sc1t0aGlzLm9wdGlvbnMuTmFtZV07IC8vICBuZXcgRm9ybUNvbnRyb2woJycsdmFsaWRhdGlvblJ1bGVzKTtcclxuXHJcbiAgICB0aGlzLlRhZ3NGb3JtQ29udHJvbC5zZXRWYWx1ZSh0aGlzLm9wdGlvbnMuVmFsdWUpO1xyXG5cclxuICAgIGlmICh0aGlzLm9wdGlvbnMuQ3VzdG9tVmFsaWRhdGlvbi5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGxldCBWYWxpZGF0aW9ucyA9IHRoaXMub3B0aW9ucy5DdXN0b21WYWxpZGF0aW9uXHJcbiAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBWYWxpZGF0aW9ucy5sZW5ndGg7IGluZGV4KyspIHtcclxuICAgICAgICBjb25zdCBWYWxpZGF0aW9uID0gVmFsaWRhdGlvbnNbaW5kZXhdO1xyXG4gICAgICAgIHRoaXMudmFsaWRhdGlvblJ1bGVzLnB1c2goVmFsaWRhdGlvbi5mdW5jdGlvbkJvZHkpO1xyXG4gICAgICB9XHJcblxyXG4gICAgfVxyXG5cclxuXHJcbiAgICBpZiAodGhpcy5vcHRpb25zLklzUmVxdWlyZWQpIHtcclxuICAgICAgdGhpcy52YWxpZGF0aW9uUnVsZXMucHVzaChWYWxpZGF0b3JzLnJlcXVpcmVkKTtcclxuICAgIH1cclxuICAgIHRoaXMuVGFnc0Zvcm1Db250cm9sLnNldFZhbGlkYXRvcnModGhpcy52YWxpZGF0aW9uUnVsZXMpO1xyXG4gICAgdGhpcy5UYWdzRm9ybUNvbnRyb2wuc2V0QXN5bmNWYWxpZGF0b3JzKHRoaXMudmFsaWRhdGlvblJ1bGVzYXN5bmMpO1xyXG4gICAgaWYgKHRoaXMub3B0aW9ucy5Jc0Rpc2FibGVkKSB7XHJcbiAgICAgIHRoaXMuVGFnc0Zvcm1Db250cm9sLmRpc2FibGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5vcHRpb25zLlZhbHVlICE9IHVuZGVmaW5lZCAmJiB0aGlzLm9wdGlvbnMuVmFsdWUgIT0gW10pIHtcclxuICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IHRoaXMub3B0aW9ucy5WYWx1ZS5sZW5ndGg7IGluZGV4KyspIHtcclxuICAgICAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5vcHRpb25zLlZhbHVlW2luZGV4XTtcclxuICAgICAgICB0aGlzLlNlbGVjdGVkSWQucHVzaChlbGVtZW50LmtleSk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy50YWdzID0gdGhpcy5vcHRpb25zLlZhbHVlXHJcbiAgICAgIHRoaXMuVGFnc0Zvcm1Db250cm9sLnNldFZhbHVlKHRoaXMub3B0aW9ucy5WYWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5UYWdzSW5wdXRDb250cm9sSG9zdC5uZ1N1Ym1pdC5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XHJcbiAgICAgIHRoaXMuZ3JvdXAubWFya0FsbEFzVG91Y2hlZCgpXHJcbiAgICAgIHRoaXMubWFya0FsbEFzVG91Y2hlZCA9IHRydWVcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMub3B0aW9ucy5BdHRyaWJ1dGVMaXN0ICE9IG51bGwpIHtcclxuICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLm9wdGlvbnMuTmFtZSk7XHJcbiAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCB0aGlzLm9wdGlvbnMuQXR0cmlidXRlTGlzdC5sZW5ndGg7IGluZGV4KyspIHtcclxuICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSh0aGlzLm9wdGlvbnMuQXR0cmlidXRlTGlzdFtpbmRleF0uS2V5LCB0aGlzLm9wdGlvbnMuQXR0cmlidXRlTGlzdFtpbmRleF0udmFsdWUpO1xyXG4gICAgICB9XHJcblxyXG4gICAgfVxyXG5cclxuICAgIGxldCBpbnB1dEVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLm9wdGlvbnMuTmFtZSkuZ2V0RWxlbWVudHNCeVRhZ05hbWUoXCJpbnB1dFwiKVswXVxyXG4gICAgaW5wdXRFbGVtZW50LnNldEF0dHJpYnV0ZShcImF1dG9jb21wbGV0ZVwiLCBcIm9mZlwiKVxyXG4gIH1cclxuXHJcbiAgcmVzZXRFcnJvciA9ICgpID0+IHtcclxuICAgIHRoaXMuY29udHJvbFZhbGlkYXRpb25TZXJ2aWNlLlJlbW92ZUdsb2JhbEVycm9yKCk7XHJcbiAgfVxyXG5cclxuICBzaG93R2xvYmFsRXJyb3IoKSB7XHJcbiAgICB0aGlzLmNvbnRyb2xVdGlsaXR5LnNob3dHbG9iYWxFcnJvcigpXHJcbiAgfVxyXG5cclxuICBnZXRFcnJvclZhbGlkYXRpb24oRXJyb3JMaXN0KSB7XHJcbiAgICBpZiAodGhpcy5tYXJrQWxsQXNUb3VjaGVkICYmIHRoaXMuZ3JvdXAuaW52YWxpZCkge1xyXG4gICAgICB0aGlzLnNob3dHbG9iYWxFcnJvcigpXHJcbiAgICAgIHRoaXMubWFya0FsbEFzVG91Y2hlZCA9IGZhbHNlXHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuY29udHJvbFV0aWxpdHkuZ2V0RXJyb3JWYWxpZGF0aW9uTWFzc2FnZShFcnJvckxpc3QsIHRoaXMuZ3JvdXAsIHRoaXMub3B0aW9ucyk7XHJcbiAgfVxyXG5cclxuXHJcbiAgY29weUlucHV0TWVzc2FnZShpbnB1dEVsZW1lbnQpIHtcclxuICAgIHRoaXMuY29udHJvbFV0aWxpdHkuQ29weUlucHV0TWVzc2FnZShpbnB1dEVsZW1lbnQpXHJcbiAgfVxyXG5cclxuICBzZWFyY2hGdW5jdGlvbkZhY3RvcnkoVGV4dDogYW55KTogT2JzZXJ2YWJsZTxvYmplY3Q+IHtcclxuXHJcblxyXG4gICAgbGV0IFVybCA9IGAke3RoaXMub3B0aW9ucy5BY3Rpb25VUkx9PyR7dGhpcy5vcHRpb25zLlF1ZXJ5UGFyYW1OYW1lfT0ke1RleHR9JiR7dGhpcy5vcHRpb25zLlNlbGVjdGVkSXRlbXNQYXJhbU5hbWV9PSR7dGhpcy5TZWxlY3RlZElkfWBcclxuICAgIGlmICh0aGlzLm9wdGlvbnMuRXh0cmFGaWx0ZXJzKVxyXG4gICAgICBVcmwgPSBVcmwgKyBgJiR7dGhpcy5vcHRpb25zLkV4dHJhRmlsdGVyc31gXHJcbiAgICBsZXQgcmVxdWVzdE9wdGlvbnNNb2RlbD0gbmV3IFJlcXVlc3RPcHRpb25zTW9kZWwoKVxyXG4gICAgcmVxdWVzdE9wdGlvbnNNb2RlbC5kaXNhYmxlQmxvY2tVST10cnVlO1xyXG4gICAgcmVxdWVzdE9wdGlvbnNNb2RlbC5kaXNhYmxlU3VjY2Vzc05vdGlmaWNhdGlvbj10cnVlO1xyXG4gICAgbGV0IE1vZGVsID0gdGhpcy5yZXF1ZXN0SGFuZGxlclNlcnZpY2UuZ2V0KFVybCxudWxsLG51bGwscmVxdWVzdE9wdGlvbnNNb2RlbClcclxuICAgIHJldHVybiBNb2RlbCBhcyBhbnk7XHJcbiAgfVxyXG5cclxuXHJcbiAgQWRkVGFnKGV2ZW50LCBrZXkpIHtcclxuICAgIGlmICh0aGlzLklzTm9NYXRjaCA9PSB0cnVlICYmIHRoaXMub3B0aW9ucy5BbGxvd05ld1NlbGVjdGlvbiA9PSBmYWxzZSAmJiAoa2V5LnNlbGVjdGVkICE9IG51bGwgfHwga2V5LnNlbGVjdGVkICE9IFwiXCIpKSB7XHJcbiAgICAgIHRoaXMuVGFnc0Zvcm1Db250cm9sLnNldEVycm9ycyh7IFwiZXJyb3JNYXNzYWdlXCI6IHRoaXMub3B0aW9ucy5Ob1Jlc3VsdFRleHQgfSk7XHJcbiAgICAgIHRoaXMuVGFnc0Zvcm1Db250cm9sLm1hcmtBc1RvdWNoZWQoKTtcclxuICAgICAgdGhpcy5UYWdzRm9ybUNvbnRyb2wuaW52YWxpZDtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKHRoaXMuSXNOb01hdGNoID09IGZhbHNlICYmIHRoaXMub3B0aW9ucy5BbGxvd05ld1NlbGVjdGlvbiA9PSBmYWxzZSkge1xyXG4gICAgICB0aGlzLlRhZ3NGb3JtQ29udHJvbC5jbGVhclZhbGlkYXRvcnMoKTtcclxuICAgICAgdGhpcy5UYWdzRm9ybUNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gICAgICB0aGlzLlRhZ3NGb3JtQ29udHJvbC52YWxpZDtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKHRoaXMuSXNOb01hdGNoID09IHRydWUgJiYgZXZlbnQgPT0gXCJFbnRlclwiICYmIHRoaXMub3B0aW9ucy5BbGxvd05ld1NlbGVjdGlvbiAmJiBrZXkuc2VsZWN0ZWQpIHtcclxuICAgICAgaWYgKCEodGhpcy50YWdzLmxlbmd0aCA+PSB0aGlzLm9wdGlvbnMuTWF4TnVtYmVyVGFncykpIHtcclxuICAgICAgICB0aGlzLnRhZ3MucHVzaCh7IGtleTogXCJcIiwgdmFsdWU6IGtleS5zZWxlY3RlZCB9KTtcclxuICAgICAgICBrZXkuc2VsZWN0ZWQgPSBudWxsO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvblRhZ3NDaGFuZ2VkKHJlc3VsdCkge1xyXG4gICAgLy9jb25zb2xlLmxvZyh0aGlzLnRhZ3MpXHJcblxyXG4gICAgaWYgKHJlc3VsdFtcImNoYW5nZVwiXSA9PSBcImFkZFwiKSB7XHJcbiAgICAgIHRoaXMuU2VsZWN0ZWRJZC5wdXNoKHJlc3VsdC50YWcua2V5KTtcclxuICAgIH1cclxuICAgIGlmIChyZXN1bHRbXCJjaGFuZ2VcIl0gPT0gXCJyZW1vdmVcIikge1xyXG4gICAgICB0aGlzLlNlbGVjdGVkSWQgPSB0aGlzLlNlbGVjdGVkSWQuZmlsdGVyKChpdGVtKSA9PiBpdGVtICE9IHJlc3VsdC50YWcua2V5KTtcclxuICAgICAgaWYgKHRoaXMuU2VsZWN0ZWRJZC5sZW5ndGggPT0gMCAmJiB0aGlzLm9wdGlvbnMuSXNSZXF1aXJlZCA9PSB0cnVlKSB7XHJcbiAgICAgICAgdGhpcy5UYWdzRm9ybUNvbnRyb2wuc2V0RXJyb3JzKHsgcmVxdWlyZWQ6IFwiXCIgfSk7XHJcbiAgICAgICAgdGhpcy5UYWdzRm9ybUNvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xyXG4gICAgICAgIHRoaXMuVGFnc0Zvcm1Db250cm9sLmludmFsaWQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGxldCBvcmlnaW5hbFZhbHVlID0gdGhpcy5UYWdzRm9ybUNvbnRyb2wudmFsdWUubWFwKGZ1bmN0aW9uIChhKSB7IHJldHVybiBhLmtleTsgfSk7XHJcbiAgICBpZiAodGhpcy5vcHRpb25zLlBhdGNoRnVuY3Rpb24gJiYgdGhpcy5vcHRpb25zLlBhdGNoUGF0aCAmJiB0aGlzLlRhZ3NGb3JtQ29udHJvbC52YWxpZCkge1xyXG4gICAgICB0aGlzLmNvbnRyb2xVdGlsaXR5LnBhdGNoQ29udHJvbFZhbHVlKG9yaWdpbmFsVmFsdWUsdGhpcy5vcHRpb25zLlBhdGNoRnVuY3Rpb24gLHRoaXMub3B0aW9ucy5QYXRjaFBhdGgpXHJcbiAgICB9XHJcbiAgICB0aGlzLk9uQ2hhbmdlLmVtaXQob3JpZ2luYWxWYWx1ZSlcclxuICB9XHJcblxyXG4gIG9uTm9PcHRpb25zTWF0Y2goZXZlbnQpIHtcclxuICAgIHRoaXMuSXNOb01hdGNoID0gZXZlbnQ7XHJcbiAgfVxyXG5cclxuICAvL0V4dGVybmFsIE1ldGhvZFxyXG4gIFJlbW92ZVJlcXVpcmVkVmFsaWRhdGlvbiA9ICgpID0+IHtcclxuICAgIHRoaXMuY29udHJvbFV0aWxpdHkuUmVtb3ZlUmVxdWlyZWRWYWxpZGF0aW9uKHRoaXMuVGFnc0Zvcm1Db250cm9sLCB0aGlzLnZhbGlkYXRpb25SdWxlcywgdGhpcy5vcHRpb25zKVxyXG4gIH1cclxuICAvL0V4dGVybmFsIE1ldGhvZFxyXG4gIEFkZFJlcXVpcmVkVmFsaWRhdGlvbiA9ICgpID0+IHtcclxuICAgIHRoaXMuY29udHJvbFV0aWxpdHkuQWRkUmVxdWlyZWRWYWxpZGF0aW9uKHRoaXMuVGFnc0Zvcm1Db250cm9sLCB0aGlzLnZhbGlkYXRpb25SdWxlcywgdGhpcy5vcHRpb25zKVxyXG4gIH1cclxuICAvL0V4dGVybmFsIE1ldGhvZFxyXG4gIFJlbW92ZUN1c3RvbVZhbGlkYXRpb24gPSAoQ3VzdG9tVmFsaWRhdGlvbikgPT4ge1xyXG4gICAgdGhpcy5jb250cm9sVXRpbGl0eS5SZW1vdmVDdXN0b21WYWxpZGF0aW9uKHRoaXMuVGFnc0Zvcm1Db250cm9sLCB0aGlzLnZhbGlkYXRpb25SdWxlcywgQ3VzdG9tVmFsaWRhdGlvbilcclxuICB9XHJcbiAgLy9FeHRlcm5hbCBNZXRob2RcclxuICBBZGRDdXN0b21WYWxpZGF0aW9uID0gKEN1c3RvbVZhbGlkYXRpb24pID0+IHtcclxuICAgIHRoaXMuY29udHJvbFV0aWxpdHkuQWRkQ3VzdG9tVmFsaWRhdGlvbih0aGlzLlRhZ3NGb3JtQ29udHJvbCwgdGhpcy52YWxpZGF0aW9uUnVsZXMsIEN1c3RvbVZhbGlkYXRpb24pXHJcbiAgfVxyXG5cclxuICAvL0V4dGVybmFsIE1ldGhvZFxyXG4gIElzVmFsaWQgPSAoKSA9PiB7XHJcbiAgICB0aGlzLmNvbnRyb2xVdGlsaXR5LklzVmFsaWQodGhpcy5UYWdzRm9ybUNvbnRyb2wpXHJcbiAgfVxyXG59XHJcblxyXG5cclxuIl19
|
|
218
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGFnc0lucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Jic2YtY29udHJvbHMvc3JjL2xpYi9jb250cm9scy9UYWdzSW5wdXQvVGFnc0lucHV0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBVyxRQUFRLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRyxPQUFPLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQW1CLGdCQUFnQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0gsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBRXRFLE9BQU8sRUFBRSxVQUFVLEVBQWUsTUFBTSxzQkFBc0IsQ0FBQztBQUUvRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUscUJBQXFCLEVBQUUsbUJBQW1CLEVBQUUsY0FBYyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEksT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBUzlFLE1BQU0sT0FBTyxrQkFBa0I7SUFJN0IsNENBQTRDO0lBQzVDLFlBQW9CLElBQWdCLEVBQVUsY0FBOEIsRUFBVSxxQkFBNEMsRUFBc0IsZ0JBQWtDLEVBQVMsb0JBQXdDLEVBQ2pPLGNBQThCLEVBQVUsd0JBQWtELEVBQzFGLGNBQThCO1FBRnBCLFNBQUksR0FBSixJQUFJLENBQVk7UUFBVSxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFBVSwwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO1FBQXNCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFBUyx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQW9CO1FBQ2pPLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUFVLDZCQUF3QixHQUF4Qix3QkFB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O3VCQUNMLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIERvQ2hlY2ssIE9wdGlvbmFsLCBPdXRwdXQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgVmFsaWRhdG9ycywgRm9ybUdyb3VwLCBBYnN0cmFjdENvbnRyb2wsIENvbnRyb2xDb250YWluZXIsIEZvcm1Hcm91cERpcmVjdGl2ZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgQ29udHJvbFV0aWxpdHkgfSBmcm9tICcuLi8uLi9TaGFyZWQvc2VydmljZXMvQ29udHJvbFV0aWxpdHknO1xyXG5pbXBvcnQgeyBUYWdzSW5wdXRPcHRpb25zIH0gZnJvbSAnLi4vLi4vU2hhcmVkL01vZGVscy9UYWdzSW5wdXRPcHRpb25zJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEhlYWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQ29udHJvbFZhbGlkYXRpb25TZXJ2aWNlLCBSZXF1ZXN0SGFuZGxlclNlcnZpY2UsIFJlcXVlc3RPcHRpb25zTW9kZWwsIFV0aWxpdHlTZXJ2aWNlIH0gZnJvbSAnQGJuc2lnaHRzL2Jic2YtdXRpbGl0aWVzJztcclxuaW1wb3J0IHsgR2xvYmFsU2V0dGluZ3MgfSBmcm9tICcuLi8uLi9TaGFyZWQvc2VydmljZXMvR2xvYmFsU2V0dGluZ3Muc2VydmljZSc7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBjb21wb25lbnQtc2VsZWN0b3JcclxuICBzZWxlY3RvcjogJ0JCU0YtVGFnc0lucHV0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vVGFnc0lucHV0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9UYWdzSW5wdXQuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVGFnc0lucHV0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcblxyXG4gIHN0YXRpYyBjb250cm9sQ29udGFpbmVyc3RhdGljID0gbnVsbDtcclxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG1heC1saW5lLWxlbmd0aFxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cDogSHR0cENsaWVudCwgcHJpdmF0ZSBjb250cm9sVXRpbGl0eTogQ29udHJvbFV0aWxpdHksIHByaXZhdGUgcmVxdWVzdEhhbmRsZXJTZXJ2aWNlOiBSZXF1ZXN0SGFuZGxlclNlcnZpY2UsIEBPcHRpb25hbCgpIHByaXZhdGUgY29udHJvbENvbnRhaW5lcjogQ29udHJvbENvbnRhaW5lciwgcHVibGljIFRhZ3NJbnB1dENvbnRyb2xIb3N0OiBGb3JtR3JvdXBEaXJlY3RpdmUsXHJcbiAgICBwcml2YXRlIFV0aWxpdHlTZXJ2aWNlOiBVdGlsaXR5U2VydmljZSwgcHJpdmF0ZSBjb250cm9sVmFsaWRhdGlvblNlcnZpY2U6IENvbnRyb2xWYWxpZGF0aW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgZ2xvYmFsU2V0dGluZ3M6IEdsb2JhbFNldHRpbmdzKSB7XHJcbiAgICBUYWdzSW5wdXRDb21wb25lbnQuY29udHJvbENvbnRhaW5lcnN0YXRpYyA9IHRoaXMuY29udHJvbENvbnRhaW5lcjtcclxuICB9XHJcbiAgQElucHV0KCkgZ3JvdXA6IEZvcm1Hcm91cDtcclxuICBASW5wdXQoKSBvcHRpb25zOiBUYWdzSW5wdXRPcHRpb25zO1xyXG4gIEBPdXRwdXQoKSBPbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgLy8gVGFnSW5wdXRDb250cm9sOiBBYnN0cmFjdENvbnRyb2w7XHJcbiAgU2VsZWN0ZWRJZDogYW55W10gPSBbXVxyXG4gIHRhZ3MgPSBbXTtcclxuICBOZXdTZWxlY3Rpb25WYWxpZGF0aW9uS2V5OiBzdHJpbmcgPSBcIlwiO1xyXG4gIFRhZ3NGb3JtR3JvdXA6IEZvcm1Hcm91cDtcclxuICBUYWdzRm9ybUNvbnRyb2w6IEFic3RyYWN0Q29udHJvbFxyXG4gIElzTm9NYXRjaDogYW55XHJcbiAgbWFya0FsbEFzVG91Y2hlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHZhbGlkYXRpb25SdWxlcyA9IFtdO1xyXG4gIHZhbGlkYXRpb25SdWxlc2FzeW5jID0gW107XHJcbiAgc3RhdGljIHNob3dFcnJvck9mSW5wdXRzKGVycm9yczogYW55KSB7XHJcblxyXG4gICAgY29uc3QgY29udHJvbENvbnRhaW5lcnN0YXRpYyA9IFRhZ3NJbnB1dENvbXBvbmVudC5jb250cm9sQ29udGFpbmVyc3RhdGljO1xyXG4gICAgY29uc3QgZm9ybUdyb3VwID0gY29udHJvbENvbnRhaW5lcnN0YXRpYy5jb250cm9sIGFzIEZvcm1Hcm91cDtcclxuICAgIGZvciAoY29uc3Qga2V5IGluIGVycm9ycykge1xyXG4gICAgICBpZiAoZXJyb3JzLmhhc093blByb3BlcnR5KGtleSkpIHtcclxuICAgICAgICBmb3IgKGNvbnN0IGl0ZXJhdG9yIG9mIGVycm9yc1trZXldKSB7XHJcbiAgICAgICAgICBjb25zdCBmb3JtQ29udHJvbCA9IGZvcm1Hcm91cC5nZXQoa2V5KSBhcyBGb3JtQ29udHJvbDtcclxuICAgICAgICAgIGZvcm1Db250cm9sLnNldEVycm9ycyh7IFwiRmx1ZW50QXBpXCI6IGl0ZXJhdG9yIH0pO1xyXG4gICAgICAgICAgZm9ybUNvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmNvbnRyb2xWYWxpZGF0aW9uU2VydmljZS5pc0NyZWF0ZWRCZWZvciA9IGZhbHNlXHJcblxyXG4gICAgdGhpcy5vcHRpb25zLkRhdGFzb3VyY2VJdGVtVGV4dCA9IHRoaXMub3B0aW9ucy5EYXRhc291cmNlSXRlbVRleHQudG9Mb3dlckNhc2UoKTtcclxuICAgIHRoaXMuVGFnc0Zvcm1Hcm91cCA9IG5ldyBGb3JtR3JvdXAoe30pOztcclxuICAgIHRoaXMuVGFnc0Zvcm1Hcm91cC5hZGRDb250cm9sKFwidGFnc1wiLCBuZXcgRm9ybUNvbnRyb2woJycpKTtcclxuICAgIHRoaXMuVGFnc0Zvcm1Db250cm9sID0gdGhpcy5UYWdzRm9ybUdyb3VwLmNvbnRyb2xzW1widGFnc1wiXTsgLy8gIG5ldyBGb3JtQ29udHJvbCgnJyx2YWxpZGF0aW9uUnVsZXMpO1xyXG4gICAgdGhpcy5ncm91cC5hZGRDb250cm9sKHRoaXMub3B0aW9ucy5OYW1lLCB0aGlzLlRhZ3NGb3JtQ29udHJvbCk7XHJcblxyXG4gICAgaWYgKCF0aGlzLm9wdGlvbnMuVmlld1R5cGUpXHJcbiAgICAgIHRoaXMub3B0aW9ucy5WaWV3VHlwZSA9IHRoaXMuZ2xvYmFsU2V0dGluZ3MuVmlld1R5cGU7XHJcblxyXG4gICAgaWYgKHRoaXMub3B0aW9ucy5MYWJlbEtleSAhPSBudWxsICYmIHRoaXMub3B0aW9ucy5MYWJlbEtleSAhPSBcIlwiKVxyXG4gICAgICB0aGlzLm9wdGlvbnMuTGFiZWxWYWx1ZSA9IHRoaXMuVXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZSh0aGlzLm9wdGlvbnMuTGFiZWxLZXkpO1xyXG5cclxuICAgIGlmICghdGhpcy5vcHRpb25zLk5vUmVzdWx0VGV4dClcclxuICAgICAgdGhpcy5vcHRpb25zLk5vUmVzdWx0VGV4dCA9IHRoaXMuVXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIk5vSXRlbXNNYXRjaFwiKTtcclxuXHJcbiAgICAvLyB0aGlzLmdyb3VwLmFkZENvbnRyb2wodGhpcy5vcHRpb25zLk5hbWUsIG5ldyBGb3JtQ29udHJvbCgnJykpO1xyXG4gICAgLy8gdGhpcy5UYWdJbnB1dENvbnRyb2wgPSB0aGlzLmdyb3VwLmNvbnRyb2xzW3RoaXMub3B0aW9ucy5OYW1lXTsgLy8gIG5ldyBGb3JtQ29udHJvbCgnJyx2YWxpZGF0aW9uUnVsZXMpO1xyXG5cclxuICAgIHRoaXMuVGFnc0Zvcm1Db250cm9sLnNldFZhbHVlKHRoaXMub3B0aW9ucy5WYWx1ZSk7XHJcblxyXG4gICAgaWYgKHRoaXMub3B0aW9ucy5Jc1JlcXVpcmVkKSB7XHJcbiAgICAgIHRoaXMudmFsaWRhdGlvblJ1bGVzLnB1c2goVmFsaWRhdG9ycy5yZXF1aXJlZCk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMub3B0aW9ucy5DdXN0b21WYWxpZGF0aW9uLmxlbmd0aCA+IDApIHtcclxuICAgICAgbGV0IFZhbGlkYXRpb25zID0gdGhpcy5vcHRpb25zLkN1c3RvbVZhbGlkYXRpb25cclxuICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IFZhbGlkYXRpb25zLmxlbmd0aDsgaW5kZXgrKykge1xyXG4gICAgICAgIGNvbnN0IFZhbGlkYXRpb24gPSBWYWxpZGF0aW9uc1tpbmRleF07XHJcbiAgICAgICAgdGhpcy52YWxpZGF0aW9uUnVsZXMucHVzaChWYWxpZGF0aW9uLmZ1bmN0aW9uQm9keSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5UYWdzRm9ybUNvbnRyb2wuc2V0VmFsaWRhdG9ycyh0aGlzLnZhbGlkYXRpb25SdWxlcyk7XHJcbiAgICB0aGlzLlRhZ3NGb3JtQ29udHJvbC5zZXRBc3luY1ZhbGlkYXRvcnModGhpcy52YWxpZGF0aW9uUnVsZXNhc3luYyk7XHJcbiAgICBpZiAodGhpcy5vcHRpb25zLklzRGlzYWJsZWQpIHtcclxuICAgICAgdGhpcy5UYWdzRm9ybUNvbnRyb2wuZGlzYWJsZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLm9wdGlvbnMuVmFsdWUgIT0gdW5kZWZpbmVkICYmIHRoaXMub3B0aW9ucy5WYWx1ZSAhPSBbXSkge1xyXG4gICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgdGhpcy5vcHRpb25zLlZhbHVlLmxlbmd0aDsgaW5kZXgrKykge1xyXG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLm9wdGlvbnMuVmFsdWVbaW5kZXhdO1xyXG4gICAgICAgIHRoaXMuU2VsZWN0ZWRJZC5wdXNoKGVsZW1lbnQuaWQpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMudGFncyA9IHRoaXMub3B0aW9ucy5WYWx1ZVxyXG4gICAgICB0aGlzLlRhZ3NGb3JtQ29udHJvbC5zZXRWYWx1ZSh0aGlzLm9wdGlvbnMuVmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuVGFnc0lucHV0Q29udHJvbEhvc3QubmdTdWJtaXQuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xyXG4gICAgICB0aGlzLmdyb3VwLm1hcmtBbGxBc1RvdWNoZWQoKVxyXG4gICAgICB0aGlzLm1hcmtBbGxBc1RvdWNoZWQgPSB0cnVlXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLm9wdGlvbnMuQXR0cmlidXRlTGlzdCAhPSBudWxsKSB7XHJcbiAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5vcHRpb25zLk5hbWUpO1xyXG4gICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgdGhpcy5vcHRpb25zLkF0dHJpYnV0ZUxpc3QubGVuZ3RoOyBpbmRleCsrKSB7XHJcbiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUodGhpcy5vcHRpb25zLkF0dHJpYnV0ZUxpc3RbaW5kZXhdLktleSwgdGhpcy5vcHRpb25zLkF0dHJpYnV0ZUxpc3RbaW5kZXhdLnZhbHVlKTtcclxuICAgICAgfVxyXG5cclxuICAgIH1cclxuXHJcbiAgICBsZXQgaW5wdXRFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5vcHRpb25zLk5hbWUpLmdldEVsZW1lbnRzQnlUYWdOYW1lKFwiaW5wdXRcIilbMF1cclxuICAgIGlucHV0RWxlbWVudC5zZXRBdHRyaWJ1dGUoXCJhdXRvY29tcGxldGVcIiwgXCJvZmZcIilcclxuICB9XHJcblxyXG4gIHJlc2V0RXJyb3IgPSAoKSA9PiB7XHJcbiAgICB0aGlzLmNvbnRyb2xWYWxpZGF0aW9uU2VydmljZS5SZW1vdmVHbG9iYWxFcnJvcigpO1xyXG4gIH1cclxuXHJcbiAgc2hvd0dsb2JhbEVycm9yKCkge1xyXG4gICAgdGhpcy5jb250cm9sVXRpbGl0eS5zaG93R2xvYmFsRXJyb3IoKVxyXG4gIH1cclxuXHJcbiAgZ2V0RXJyb3JWYWxpZGF0aW9uKEVycm9yTGlzdCkge1xyXG4gICAgaWYgKHRoaXMubWFya0FsbEFzVG91Y2hlZCAmJiB0aGlzLmdyb3VwLmludmFsaWQpIHtcclxuICAgICAgdGhpcy5zaG93R2xvYmFsRXJyb3IoKVxyXG4gICAgICB0aGlzLm1hcmtBbGxBc1RvdWNoZWQgPSBmYWxzZVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzLmNvbnRyb2xVdGlsaXR5LmdldEVycm9yVmFsaWRhdGlvbk1hc3NhZ2UoRXJyb3JMaXN0LCB0aGlzLmdyb3VwLCB0aGlzLm9wdGlvbnMpO1xyXG4gIH1cclxuXHJcblxyXG4gIGNvcHlJbnB1dE1lc3NhZ2UoaW5wdXRFbGVtZW50KSB7XHJcbiAgICB0aGlzLmNvbnRyb2xVdGlsaXR5LkNvcHlJbnB1dE1lc3NhZ2UoaW5wdXRFbGVtZW50KVxyXG4gIH1cclxuXHJcbiAgc2VhcmNoRnVuY3Rpb25GYWN0b3J5KFRleHQ6IGFueSk6IE9ic2VydmFibGU8b2JqZWN0PiB7XHJcblxyXG4gICAgbGV0IFVybCA9IGAke3RoaXMub3B0aW9ucy5BY3Rpb25VUkx9PyR7dGhpcy5vcHRpb25zLlF1ZXJ5UGFyYW1OYW1lfT0ke2VuY29kZVVSSUNvbXBvbmVudChUZXh0KX0mJHt0aGlzLm9wdGlvbnMuU2VsZWN0ZWRJdGVtc1BhcmFtTmFtZX09JHt0aGlzLlNlbGVjdGVkSWR9YFxyXG4gICAgaWYgKHRoaXMub3B0aW9ucy5FeHRyYUZpbHRlcnMpXHJcbiAgICAgIFVybCA9IFVybCArIGAmJHt0aGlzLm9wdGlvbnMuRXh0cmFGaWx0ZXJzfWBcclxuICAgIGxldCByZXF1ZXN0T3B0aW9uc01vZGVsID0gbmV3IFJlcXVlc3RPcHRpb25zTW9kZWwoKVxyXG4gICAgcmVxdWVzdE9wdGlvbnNNb2RlbC5kaXNhYmxlQmxvY2tVSSA9IHRydWU7XHJcbiAgICByZXF1ZXN0T3B0aW9uc01vZGVsLmRpc2FibGVTdWNjZXNzTm90aWZpY2F0aW9uID0gdHJ1ZTtcclxuICAgIGxldCBNb2RlbCA9IHRoaXMucmVxdWVzdEhhbmRsZXJTZXJ2aWNlLmdldChVcmwsIG51bGwsIG51bGwsIHJlcXVlc3RPcHRpb25zTW9kZWwpXHJcbiAgICByZXR1cm4gTW9kZWwgYXMgYW55O1xyXG4gIH1cclxuXHJcbiAgQWRkVGFnKGV2ZW50LCBrZXkpIHtcclxuICAgIGlmICh0aGlzLklzTm9NYXRjaCA9PSB0cnVlICYmIHRoaXMub3B0aW9ucy5BbGxvd05ld1NlbGVjdGlvbiA9PSBmYWxzZSAmJiBrZXkuc2VsZWN0ZWQpIHtcclxuICAgICAgdGhpcy5UYWdzRm9ybUNvbnRyb2wuc2V0RXJyb3JzKHsgXCJlcnJvck1hc3NhZ2VcIjogdGhpcy5vcHRpb25zLk5vUmVzdWx0VGV4dCB9KTtcclxuICAgICAgdGhpcy5UYWdzRm9ybUNvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xyXG4gICAgICB0aGlzLlRhZ3NGb3JtQ29udHJvbC5pbnZhbGlkO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAodGhpcy5Jc05vTWF0Y2ggPT0gZmFsc2UgJiYgdGhpcy5vcHRpb25zLkFsbG93TmV3U2VsZWN0aW9uID09IGZhbHNlKSB7XHJcbiAgICAgIHRoaXMuVGFnc0Zvcm1Db250cm9sLmNsZWFyVmFsaWRhdG9ycygpO1xyXG4gICAgICB0aGlzLlRhZ3NGb3JtQ29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICAgIHRoaXMuVGFnc0Zvcm1Db250cm9sLnZhbGlkO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAodGhpcy5Jc05vTWF0Y2ggPT0gdHJ1ZSAmJiBldmVudCA9PSBcIkVudGVyXCIgJiYgdGhpcy5vcHRpb25zLkFsbG93TmV3U2VsZWN0aW9uICYmIGtleS5zZWxlY3RlZCkge1xyXG4gICAgICBpZiAoISh0aGlzLnRhZ3MubGVuZ3RoID49IHRoaXMub3B0aW9ucy5NYXhOdW1iZXJUYWdzKSkge1xyXG4gICAgICAgIHRoaXMudGFncy5wdXNoKHsgbmFtZToga2V5LnNlbGVjdGVkIH0pO1xyXG4gICAgICAgIHRoaXMuZ3JvdXAuZ2V0KHRoaXMub3B0aW9ucy5OYW1lKS5zZXRWYWx1ZSh0aGlzLnRhZ3MpO1xyXG4gICAgICAgIHRoaXMuZ3JvdXAuZ2V0KHRoaXMub3B0aW9ucy5OYW1lKS5tYXJrQWxsQXNUb3VjaGVkKCk7XHJcbiAgICAgICAgdGhpcy5ncm91cC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICAgICAgaWYgKHRoaXMuZ3JvdXAuZ2V0KHRoaXMub3B0aW9ucy5OYW1lKS52YWxpZCkge1xyXG4gICAgICAgICAga2V5LnNlbGVjdGVkID0gbnVsbDtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgICAgdGhpcy50YWdzLnBvcCgpXHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBvblRhZ3NDaGFuZ2VkKHJlc3VsdCkge1xyXG4gICAgLy9jb25zb2xlLmxvZyh0aGlzLnRhZ3MpXHJcbiAgICBpZiAocmVzdWx0W1wiY2hhbmdlXCJdID09IFwiYWRkXCIpIHtcclxuICAgICAgdGhpcy5TZWxlY3RlZElkLnB1c2gocmVzdWx0LnRhZy5pZCk7XHJcbiAgICB9XHJcbiAgICBpZiAocmVzdWx0W1wiY2hhbmdlXCJdID09IFwicmVtb3ZlXCIpIHtcclxuICAgICAgdGhpcy5TZWxlY3RlZElkID0gdGhpcy5TZWxlY3RlZElkLmZpbHRlcigoaXRlbSkgPT4gaXRlbSAhPSByZXN1bHQudGFnLmlkKTtcclxuICAgICAgaWYgKHRoaXMuU2VsZWN0ZWRJZC5sZW5ndGggPT0gMCAmJiB0aGlzLm9wdGlvbnMuSXNSZXF1aXJlZCA9PSB0cnVlKSB7XHJcbiAgICAgICAgdGhpcy5UYWdzRm9ybUNvbnRyb2wuc2V0RXJyb3JzKHsgcmVxdWlyZWQ6IFwiXCIgfSk7XHJcbiAgICAgICAgdGhpcy5UYWdzRm9ybUNvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xyXG4gICAgICAgIHRoaXMuVGFnc0Zvcm1Db250cm9sLmludmFsaWQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGxldCBvcmlnaW5hbFZhbHVlID0gdGhpcy5UYWdzRm9ybUNvbnRyb2wudmFsdWUubWFwKGZ1bmN0aW9uIChhKSB7IHJldHVybiBhLmlkOyB9KTtcclxuICAgIGlmICh0aGlzLm9wdGlvbnMuUGF0Y2hGdW5jdGlvbiAmJiB0aGlzLm9wdGlvbnMuUGF0Y2hQYXRoICYmIHRoaXMuVGFnc0Zvcm1Db250cm9sLnZhbGlkKSB7XHJcbiAgICAgIHRoaXMuY29udHJvbFV0aWxpdHkucGF0Y2hDb250cm9sVmFsdWUob3JpZ2luYWxWYWx1ZSwgdGhpcy5vcHRpb25zLlBhdGNoRnVuY3Rpb24sIHRoaXMub3B0aW9ucy5QYXRjaFBhdGgpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5ncm91cC5nZXQodGhpcy5vcHRpb25zLk5hbWUpLnNldFZhbHVlKHRoaXMudGFncyk7XHJcbiAgICB0aGlzLlRhZ3NGb3JtQ29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICB0aGlzLmdyb3VwLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICAgIHRoaXMuT25DaGFuZ2UuZW1pdChvcmlnaW5hbFZhbHVlKTtcclxuICB9XHJcblxyXG4gIG9uTm9PcHRpb25zTWF0Y2goZXZlbnQpIHtcclxuICAgIHRoaXMuSXNOb01hdGNoID0gZXZlbnQ7XHJcbiAgfVxyXG5cclxuICAvL0V4dGVybmFsIE1ldGhvZFxyXG4gIFJlbW92ZVJlcXVpcmVkVmFsaWRhdGlvbiA9ICgpID0+IHtcclxuICAgIHRoaXMuY29udHJvbFV0aWxpdHkuUmVtb3ZlUmVxdWlyZWRWYWxpZGF0aW9uKHRoaXMuVGFnc0Zvcm1Db250cm9sLCB0aGlzLnZhbGlkYXRpb25SdWxlcywgdGhpcy5vcHRpb25zKVxyXG4gIH1cclxuICAvL0V4dGVybmFsIE1ldGhvZFxyXG4gIEFkZFJlcXVpcmVkVmFsaWRhdGlvbiA9ICgpID0+IHtcclxuICAgIHRoaXMuY29udHJvbFV0aWxpdHkuQWRkUmVxdWlyZWRWYWxpZGF0aW9uKHRoaXMuVGFnc0Zvcm1Db250cm9sLCB0aGlzLnZhbGlkYXRpb25SdWxlcywgdGhpcy5vcHRpb25zKVxyXG4gIH1cclxuICAvL0V4dGVybmFsIE1ldGhvZFxyXG5cclxuICBSZW1vdmVDdXN0b21WYWxpZGF0aW9uID0gKEN1c3RvbVZhbGlkYXRpb24pID0+IHtcclxuICAgIHRoaXMuY29udHJvbFV0aWxpdHkuUmVtb3ZlQ3VzdG9tVmFsaWRhdGlvbih0aGlzLlRhZ3NGb3JtQ29udHJvbCwgdGhpcy52YWxpZGF0aW9uUnVsZXMsIEN1c3RvbVZhbGlkYXRpb24pXHJcbiAgfVxyXG4gIC8vRXh0ZXJuYWwgTWV0aG9kXHJcbiAgQWRkQ3VzdG9tVmFsaWRhdGlvbiA9IChDdXN0b21WYWxpZGF0aW9uKSA9PiB7XHJcbiAgICB0aGlzLmNvbnRyb2xVdGlsaXR5LkFkZEN1c3RvbVZhbGlkYXRpb24odGhpcy5UYWdzRm9ybUNvbnRyb2wsIHRoaXMudmFsaWRhdGlvblJ1bGVzLCBDdXN0b21WYWxpZGF0aW9uKVxyXG4gIH1cclxuXHJcbiAgLy9FeHRlcm5hbCBNZXRob2RcclxuICBJc1ZhbGlkID0gKCkgPT4ge1xyXG4gICAgdGhpcy5jb250cm9sVXRpbGl0eS5Jc1ZhbGlkKHRoaXMuVGFnc0Zvcm1Db250cm9sKVxyXG4gIH1cclxufVxyXG5cclxuXHJcbiJdfQ==
|
|
@@ -4066,6 +4066,9 @@ class TagsInputComponent {
|
|
|
4066
4066
|
// this.group.addControl(this.options.Name, new FormControl(''));
|
|
4067
4067
|
// this.TagInputControl = this.group.controls[this.options.Name]; // new FormControl('',validationRules);
|
|
4068
4068
|
this.TagsFormControl.setValue(this.options.Value);
|
|
4069
|
+
if (this.options.IsRequired) {
|
|
4070
|
+
this.validationRules.push(Validators.required);
|
|
4071
|
+
}
|
|
4069
4072
|
if (this.options.CustomValidation.length > 0) {
|
|
4070
4073
|
let Validations = this.options.CustomValidation;
|
|
4071
4074
|
for (let index = 0; index < Validations.length; index++) {
|
|
@@ -4073,9 +4076,6 @@ class TagsInputComponent {
|
|
|
4073
4076
|
this.validationRules.push(Validation.functionBody);
|
|
4074
4077
|
}
|
|
4075
4078
|
}
|
|
4076
|
-
if (this.options.IsRequired) {
|
|
4077
|
-
this.validationRules.push(Validators.required);
|
|
4078
|
-
}
|
|
4079
4079
|
this.TagsFormControl.setValidators(this.validationRules);
|
|
4080
4080
|
this.TagsFormControl.setAsyncValidators(this.validationRulesasync);
|
|
4081
4081
|
if (this.options.IsDisabled) {
|
|
@@ -4084,7 +4084,7 @@ class TagsInputComponent {
|
|
|
4084
4084
|
if (this.options.Value != undefined && this.options.Value != []) {
|
|
4085
4085
|
for (let index = 0; index < this.options.Value.length; index++) {
|
|
4086
4086
|
const element = this.options.Value[index];
|
|
4087
|
-
this.SelectedId.push(element.
|
|
4087
|
+
this.SelectedId.push(element.id);
|
|
4088
4088
|
}
|
|
4089
4089
|
this.tags = this.options.Value;
|
|
4090
4090
|
this.TagsFormControl.setValue(this.options.Value);
|
|
@@ -4118,7 +4118,7 @@ class TagsInputComponent {
|
|
|
4118
4118
|
this.controlUtility.CopyInputMessage(inputElement);
|
|
4119
4119
|
}
|
|
4120
4120
|
searchFunctionFactory(Text) {
|
|
4121
|
-
let Url = `${this.options.ActionURL}?${this.options.QueryParamName}=${Text}&${this.options.SelectedItemsParamName}=${this.SelectedId}`;
|
|
4121
|
+
let Url = `${this.options.ActionURL}?${this.options.QueryParamName}=${encodeURIComponent(Text)}&${this.options.SelectedItemsParamName}=${this.SelectedId}`;
|
|
4122
4122
|
if (this.options.ExtraFilters)
|
|
4123
4123
|
Url = Url + `&${this.options.ExtraFilters}`;
|
|
4124
4124
|
let requestOptionsModel = new RequestOptionsModel();
|
|
@@ -4128,7 +4128,7 @@ class TagsInputComponent {
|
|
|
4128
4128
|
return Model;
|
|
4129
4129
|
}
|
|
4130
4130
|
AddTag(event, key) {
|
|
4131
|
-
if (this.IsNoMatch == true && this.options.AllowNewSelection == false &&
|
|
4131
|
+
if (this.IsNoMatch == true && this.options.AllowNewSelection == false && key.selected) {
|
|
4132
4132
|
this.TagsFormControl.setErrors({ "errorMassage": this.options.NoResultText });
|
|
4133
4133
|
this.TagsFormControl.markAsTouched();
|
|
4134
4134
|
this.TagsFormControl.invalid;
|
|
@@ -4140,28 +4140,39 @@ class TagsInputComponent {
|
|
|
4140
4140
|
}
|
|
4141
4141
|
else if (this.IsNoMatch == true && event == "Enter" && this.options.AllowNewSelection && key.selected) {
|
|
4142
4142
|
if (!(this.tags.length >= this.options.MaxNumberTags)) {
|
|
4143
|
-
this.tags.push({
|
|
4144
|
-
|
|
4143
|
+
this.tags.push({ name: key.selected });
|
|
4144
|
+
this.group.get(this.options.Name).setValue(this.tags);
|
|
4145
|
+
this.group.get(this.options.Name).markAllAsTouched();
|
|
4146
|
+
this.group.updateValueAndValidity();
|
|
4147
|
+
if (this.group.get(this.options.Name).valid) {
|
|
4148
|
+
key.selected = null;
|
|
4149
|
+
return;
|
|
4150
|
+
}
|
|
4151
|
+
else
|
|
4152
|
+
this.tags.pop();
|
|
4145
4153
|
}
|
|
4146
4154
|
}
|
|
4147
4155
|
}
|
|
4148
4156
|
onTagsChanged(result) {
|
|
4149
4157
|
//console.log(this.tags)
|
|
4150
4158
|
if (result["change"] == "add") {
|
|
4151
|
-
this.SelectedId.push(result.tag.
|
|
4159
|
+
this.SelectedId.push(result.tag.id);
|
|
4152
4160
|
}
|
|
4153
4161
|
if (result["change"] == "remove") {
|
|
4154
|
-
this.SelectedId = this.SelectedId.filter((item) => item != result.tag.
|
|
4162
|
+
this.SelectedId = this.SelectedId.filter((item) => item != result.tag.id);
|
|
4155
4163
|
if (this.SelectedId.length == 0 && this.options.IsRequired == true) {
|
|
4156
4164
|
this.TagsFormControl.setErrors({ required: "" });
|
|
4157
4165
|
this.TagsFormControl.markAsTouched();
|
|
4158
4166
|
this.TagsFormControl.invalid;
|
|
4159
4167
|
}
|
|
4160
4168
|
}
|
|
4161
|
-
let originalValue = this.TagsFormControl.value.map(function (a) { return a.
|
|
4169
|
+
let originalValue = this.TagsFormControl.value.map(function (a) { return a.id; });
|
|
4162
4170
|
if (this.options.PatchFunction && this.options.PatchPath && this.TagsFormControl.valid) {
|
|
4163
4171
|
this.controlUtility.patchControlValue(originalValue, this.options.PatchFunction, this.options.PatchPath);
|
|
4164
4172
|
}
|
|
4173
|
+
this.group.get(this.options.Name).setValue(this.tags);
|
|
4174
|
+
this.TagsFormControl.updateValueAndValidity();
|
|
4175
|
+
this.group.updateValueAndValidity();
|
|
4165
4176
|
this.OnChange.emit(originalValue);
|
|
4166
4177
|
}
|
|
4167
4178
|
onNoOptionsMatch(event) {
|
|
@@ -5663,12 +5674,11 @@ class ConfirmationModalComponent {
|
|
|
5663
5674
|
}
|
|
5664
5675
|
//Modal confirmation submit function
|
|
5665
5676
|
submit() {
|
|
5666
|
-
console.log("options in submit function");
|
|
5667
|
-
console.log(this.options);
|
|
5668
5677
|
let submitModel = this.options.ServiceSubmitModel;
|
|
5669
5678
|
let submittedService = this.options.ServiceSubmitFunction.apply(null, submitModel);
|
|
5670
5679
|
submittedService.subscribe((result) => {
|
|
5671
|
-
this.
|
|
5680
|
+
if (!this.options.DisableModalDismiss)
|
|
5681
|
+
this.modalService.dismissAll();
|
|
5672
5682
|
if (!this.options.DisableSuccessNotification) {
|
|
5673
5683
|
if (!this.options.SuccessNotificationMessage)
|
|
5674
5684
|
this.options.SuccessNotificationMessage = this.utilityService.getResourceValue("DeletedSuccessfully");
|
|
@@ -7730,6 +7740,8 @@ class ConfirmationModalOptions {
|
|
|
7730
7740
|
this.DisableSuccessNotification = false;
|
|
7731
7741
|
//If ="true" disable notification after submission error
|
|
7732
7742
|
this.DisableErrorNotification = false;
|
|
7743
|
+
//If ="true" disable prevent modal from dismiss automatically
|
|
7744
|
+
this.DisableModalDismiss = false;
|
|
7733
7745
|
}
|
|
7734
7746
|
}
|
|
7735
7747
|
|