@ohioepa/oepa-ui-lib 2.0.0 → 2.0.1
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 +24 -24
- package/esm2022/lib/account-search-input/account-search.service.mjs +1 -1
- package/esm2022/lib/account-search-modal/account-search-modal.component.mjs +3 -4
- package/esm2022/lib/action-btn/action-btn.component.mjs +3 -3
- package/esm2022/lib/action-btn-modal/action-btn-modal.component.mjs +3 -3
- package/esm2022/lib/comment-modal/comment-modal.component.mjs +3 -3
- package/esm2022/lib/confirmation-modal/confirmation-modal.component.mjs +3 -3
- package/esm2022/lib/date-input/date-input.component.mjs +1 -1
- package/esm2022/lib/date-input-modal/date-input-modal.component.mjs +6 -3
- package/esm2022/lib/datepicker/datepicker.component.mjs +9 -3
- package/esm2022/lib/daterangepicker/daterangepicker.component.mjs +3 -3
- package/esm2022/lib/dual-list-box/dual-list-box.component.mjs +3 -3
- package/esm2022/lib/edoc-attachment/edoc-attachment.component.mjs +3 -3
- package/esm2022/lib/entity/organization-create-modal/organization-create-modal.component.mjs +3 -3
- package/esm2022/lib/entity/organization-search-modal/organization-search-modal.component.mjs +3 -3
- package/esm2022/lib/entity/person-create-modal/person-create-modal.component.mjs +3 -3
- package/esm2022/lib/entity/person-search-modal/person-search-modal.component.mjs +3 -3
- package/esm2022/lib/entity/place-search-modal/place-search-modal.component.mjs +3 -3
- package/esm2022/lib/file-upload/file-upload.component.mjs +3 -3
- package/esm2022/lib/lynx-image-upload/lynx-image-upload.component.mjs +3 -3
- package/esm2022/lib/multi-file-upload/multi-file-upload.component.mjs +3 -3
- package/esm2022/lib/notes-modal/notes-modal.component.mjs +4 -4
- package/esm2022/lib/oepa-error-message/oepa-error-message.component.mjs +3 -3
- package/esm2022/lib/oepa-reference/oepa-reference.service.mjs +10 -2
- package/esm2022/lib/oepa-user-account/oepa-user-account.service.mjs +35 -20
- package/esm2022/lib/params-help-button/params-help.service.mjs +1 -1
- package/esm2022/lib/pin-modal/pin-modal.component.mjs +3 -3
- package/esm2022/lib/server-timeout-modal/server-timeout-modal.component.mjs +3 -3
- package/esm2022/lib/shopping-cart/shopping-cart-view/shopping-cart-view.component.mjs +4 -4
- package/esm2022/lib/table/oepa-table-config.mjs +1 -1
- package/esm2022/lib/table/oepa-table-popover.mjs +1 -1
- package/esm2022/lib/table/p-table/p-table.component.mjs +27 -6
- package/esm2022/lib/table/table-data-cell/table-data-cell.component.mjs +3 -3
- package/esm2022/lib/table/table-header-cell/table-header-cell.component.mjs +3 -3
- package/esm2022/lib/table/table.component.mjs +13 -14
- package/esm2022/lib/template-confirmation-modal/template-confirmation-modal.component.mjs +3 -3
- package/esm2022/lib/timeout-modal/timeout-modal.component.mjs +3 -3
- package/esm2022/lib/util/oepa-http-interceptor.mjs +22 -9
- package/fesm2022/ohioepa-oepa-ui-lib.mjs +161 -97
- package/fesm2022/ohioepa-oepa-ui-lib.mjs.map +1 -1
- package/lib/date-input-modal/date-input-modal.component.d.ts +3 -1
- package/lib/datepicker/datepicker.component.d.ts +5 -1
- package/lib/oepa-reference/oepa-reference.service.d.ts +5 -0
- package/lib/oepa-user-account/oepa-user-account.service.d.ts +3 -1
- package/lib/table/oepa-table-config.d.ts +6 -0
- package/lib/table/oepa-table-popover.d.ts +1 -1
- package/lib/table/p-table/p-table.component.d.ts +4 -0
- package/ohioepa-oepa-ui-lib-2.0.1.tgz +0 -0
- package/package.json +1 -1
- package/ohioepa-oepa-ui-lib-2.0.0.tgz +0 -0
|
@@ -16,6 +16,7 @@ export class DateInputModalComponent {
|
|
|
16
16
|
dateLabel = 'Date';
|
|
17
17
|
submitBtnLabel = 'Submit';
|
|
18
18
|
cancelBtnLabel = 'Cancel';
|
|
19
|
+
bsConfig = undefined;
|
|
19
20
|
onSubmit = new EventEmitter();
|
|
20
21
|
onCancel = new EventEmitter();
|
|
21
22
|
constructor(bsModalRef, fb) {
|
|
@@ -45,11 +46,11 @@ export class DateInputModalComponent {
|
|
|
45
46
|
this.bsModalRef.hide();
|
|
46
47
|
}
|
|
47
48
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DateInputModalComponent, deps: [{ token: i1.BsModalRef }, { token: i2.FormBuilder }], target: i0.ɵɵFactoryTarget.Component });
|
|
48
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DateInputModalComponent, selector: "oepa-date-input-modal", inputs: { title: "title", infoText: "infoText", dateLabel: "dateLabel", submitBtnLabel: "submitBtnLabel", cancelBtnLabel: "cancelBtnLabel" }, outputs: { onSubmit: "onSubmit", onCancel: "onCancel" }, ngImport: i0, template: "<div class=\"modal-header\">\n <
|
|
49
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DateInputModalComponent, selector: "oepa-date-input-modal", inputs: { title: "title", infoText: "infoText", dateLabel: "dateLabel", submitBtnLabel: "submitBtnLabel", cancelBtnLabel: "cancelBtnLabel", bsConfig: "bsConfig" }, outputs: { onSubmit: "onSubmit", onCancel: "onCancel" }, ngImport: i0, template: "<div class=\"modal-header\">\n <h1 class=\"modal-title pull-left\" id=\"dateInputModalTitle\">{{title}}</h1>\n <button type=\"button\" class=\"close pull-right\" aria-label=\"Close\" (click)=\"bsModalRef.hide()\">\n <span aria-hidden=\"true\">×</span>\n </button>\n</div>\n<div class=\"modal-body\">\n <div class=\"row\">\n <div *ngIf=\"infoText\" class=\"col-sm-12\">\n <div class=\"alert alert-info\">\n {{infoText}}\n </div>\n </div>\n <div class=\"col-sm-12\">\n <div>\n <label [for]=\"datepicker.inputId\">{{dateLabel}}</label>\n <oepa-datepicker\n #datepicker=\"oepa-datepicker\"\n [group]=\"dateForm\"\n field=\"date\"\n [bsConfig]=\"bsConfig || {}\"\n [showValidation]=\"true\"\n ></oepa-datepicker>\n </div>\n </div>\n </div>\n <div *ngIf=\"errorMessage\" class=\"col-sm-12\">\n <div class=\"alert alert-danger\">{{errorMessage}}</div>\n </div>\n</div>\n<div class=\"modal-footer\">\n <button type=\"submit\" class=\"btn btn-primary mr-1\" (click)=\"submit()\" \n [id]=\"'submitDateBtn'\" [disabled]=\"dateForm.status === 'INVALID'\" [attr.aria-label]=\"submitBtnLabel\">{{submitBtnLabel}}</button>\n <button [id]=\"'cancelDateInputBtn'\" type=\"button\" class=\"btn btn-primary mr-1\" (click)=\"cancel()\" [attr.aria-label]=\"cancelBtnLabel\">{{cancelBtnLabel}}</button>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.DatepickerComponent, selector: "oepa-datepicker", inputs: ["group", "field", "bsConfig", "showValidation", "placement", "tableIdx", "small"], exportAs: ["oepa-datepicker"] }] });
|
|
49
50
|
}
|
|
50
51
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DateInputModalComponent, decorators: [{
|
|
51
52
|
type: Component,
|
|
52
|
-
args: [{ selector: 'oepa-date-input-modal', template: "<div class=\"modal-header\">\n <
|
|
53
|
+
args: [{ selector: 'oepa-date-input-modal', template: "<div class=\"modal-header\">\n <h1 class=\"modal-title pull-left\" id=\"dateInputModalTitle\">{{title}}</h1>\n <button type=\"button\" class=\"close pull-right\" aria-label=\"Close\" (click)=\"bsModalRef.hide()\">\n <span aria-hidden=\"true\">×</span>\n </button>\n</div>\n<div class=\"modal-body\">\n <div class=\"row\">\n <div *ngIf=\"infoText\" class=\"col-sm-12\">\n <div class=\"alert alert-info\">\n {{infoText}}\n </div>\n </div>\n <div class=\"col-sm-12\">\n <div>\n <label [for]=\"datepicker.inputId\">{{dateLabel}}</label>\n <oepa-datepicker\n #datepicker=\"oepa-datepicker\"\n [group]=\"dateForm\"\n field=\"date\"\n [bsConfig]=\"bsConfig || {}\"\n [showValidation]=\"true\"\n ></oepa-datepicker>\n </div>\n </div>\n </div>\n <div *ngIf=\"errorMessage\" class=\"col-sm-12\">\n <div class=\"alert alert-danger\">{{errorMessage}}</div>\n </div>\n</div>\n<div class=\"modal-footer\">\n <button type=\"submit\" class=\"btn btn-primary mr-1\" (click)=\"submit()\" \n [id]=\"'submitDateBtn'\" [disabled]=\"dateForm.status === 'INVALID'\" [attr.aria-label]=\"submitBtnLabel\">{{submitBtnLabel}}</button>\n <button [id]=\"'cancelDateInputBtn'\" type=\"button\" class=\"btn btn-primary mr-1\" (click)=\"cancel()\" [attr.aria-label]=\"cancelBtnLabel\">{{cancelBtnLabel}}</button>\n</div>\n" }]
|
|
53
54
|
}], ctorParameters: () => [{ type: i1.BsModalRef }, { type: i2.FormBuilder }], propDecorators: { title: [{
|
|
54
55
|
type: Input
|
|
55
56
|
}], infoText: [{
|
|
@@ -60,9 +61,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
60
61
|
type: Input
|
|
61
62
|
}], cancelBtnLabel: [{
|
|
62
63
|
type: Input
|
|
64
|
+
}], bsConfig: [{
|
|
65
|
+
type: Input
|
|
63
66
|
}], onSubmit: [{
|
|
64
67
|
type: Output
|
|
65
68
|
}], onCancel: [{
|
|
66
69
|
type: Output
|
|
67
70
|
}] } });
|
|
68
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
71
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1pbnB1dC1tb2RhbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vZXBhLXVpLWxpYi9zcmMvbGliL2RhdGUtaW5wdXQtbW9kYWwvZGF0ZS1pbnB1dC1tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vZXBhLXVpLWxpYi9zcmMvbGliL2RhdGUtaW5wdXQtbW9kYWwvZGF0ZS1pbnB1dC1tb2RhbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBMEIsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7OztBQVNwRSxNQUFNLE9BQU8sdUJBQXVCO0lBZWY7SUFBZ0M7SUFkNUMsWUFBWSxHQUFXLEVBQUUsQ0FBQztJQUMxQixRQUFRLENBQWE7SUFDckIsSUFBSSxDQUFtQjtJQUVyQixLQUFLLEdBQVcsRUFBRSxDQUFDO0lBQ25CLFFBQVEsR0FBVyxFQUFFLENBQUM7SUFDdEIsU0FBUyxHQUFHLE1BQU0sQ0FBQztJQUNuQixjQUFjLEdBQUcsUUFBUSxDQUFDO0lBQzFCLGNBQWMsR0FBRyxRQUFRLENBQUM7SUFDMUIsUUFBUSxHQUE0QyxTQUFTLENBQUM7SUFFN0QsUUFBUSxHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO0lBQ3hELFFBQVEsR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztJQUVsRSxZQUFtQixVQUFzQixFQUFVLEVBQWU7UUFBL0MsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUFVLE9BQUUsR0FBRixFQUFFLENBQWE7SUFBSSxDQUFDO0lBRXZFLFFBQVE7UUFDTixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2YsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ3pCLENBQUM7UUFDRCxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUVPLFVBQVU7UUFDaEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQztZQUM1QixJQUFJLEVBQUUsQ0FBRSxJQUFJLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUM7U0FDeEMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUMzRCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNuQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxNQUFNO1FBQ0osSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzlCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDekIsQ0FBQzt3R0F6Q1UsdUJBQXVCOzRGQUF2Qix1QkFBdUIsMFJDVnBDLG01Q0FtQ0E7OzRGRHpCYSx1QkFBdUI7a0JBTG5DLFNBQVM7K0JBQ0UsdUJBQXVCO3lHQVN4QixLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUVJLFFBQVE7c0JBQWpCLE1BQU07Z0JBQ0csUUFBUTtzQkFBakIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Hcm91cCwgRm9ybUJ1aWxkZXIsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBCc0RhdGVwaWNrZXJDb25maWcgfSBmcm9tICduZ3gtYm9vdHN0cmFwL2RhdGVwaWNrZXInO1xuaW1wb3J0IHsgQnNNb2RhbFJlZiB9IGZyb20gJ25neC1ib290c3RyYXAvbW9kYWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdvZXBhLWRhdGUtaW5wdXQtbW9kYWwnLFxuICB0ZW1wbGF0ZVVybDogJy4vZGF0ZS1pbnB1dC1tb2RhbC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2RhdGUtaW5wdXQtbW9kYWwuY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIERhdGVJbnB1dE1vZGFsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHVibGljIGVycm9yTWVzc2FnZTogc3RyaW5nID0gJyc7XG4gIHB1YmxpYyBkYXRlRm9ybSE6IEZvcm1Hcm91cDtcbiAgcHVibGljIGRhdGU6IERhdGUgfCB1bmRlZmluZWQ7XG5cbiAgQElucHV0KCkgdGl0bGU6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBpbmZvVGV4dDogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIGRhdGVMYWJlbCA9ICdEYXRlJztcbiAgQElucHV0KCkgc3VibWl0QnRuTGFiZWwgPSAnU3VibWl0JztcbiAgQElucHV0KCkgY2FuY2VsQnRuTGFiZWwgPSAnQ2FuY2VsJztcbiAgQElucHV0KCkgYnNDb25maWc6IFBhcnRpYWw8QnNEYXRlcGlja2VyQ29uZmlnPiB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcblxuICBAT3V0cHV0KCkgb25TdWJtaXQ6IEV2ZW50RW1pdHRlcjxEYXRlPiA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0ZT4oKTtcbiAgQE91dHB1dCgpIG9uQ2FuY2VsOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgY29uc3RydWN0b3IocHVibGljIGJzTW9kYWxSZWY6IEJzTW9kYWxSZWYsIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyKSB7IH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAoIXRoaXMuZGF0ZSkge1xuICAgICAgdGhpcy5kYXRlID0gbmV3IERhdGUoKTtcbiAgICB9XG4gICAgdGhpcy5jcmVhdGVGb3JtKCk7XG4gIH1cbiAgXG4gIHByaXZhdGUgY3JlYXRlRm9ybSgpIHtcbiAgICB0aGlzLmRhdGVGb3JtID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICBkYXRlOiBbIHRoaXMuZGF0ZSwgVmFsaWRhdG9ycy5yZXF1aXJlZF1cbiAgICB9KTtcbiAgICB0aGlzLmRhdGVGb3JtLmNvbnRyb2xzWydkYXRlJ10udmFsdWVDaGFuZ2VzLnN1YnNjcmliZShkYXRlID0+IHtcbiAgICAgIHRoaXMuZGF0ZSA9IGRhdGU7XG4gICAgfSk7XG4gIH1cblxuICBzdWJtaXQoKSB7XG4gICAgdGhpcy5vblN1Ym1pdC5lbWl0KHRoaXMuZGF0ZSk7XG4gICAgdGhpcy5ic01vZGFsUmVmLmhpZGUoKTtcbiAgfVxuXG4gIGNhbmNlbCgpIHtcbiAgICB0aGlzLm9uQ2FuY2VsLmVtaXQoKTtcbiAgICB0aGlzLmJzTW9kYWxSZWYuaGlkZSgpO1xuICB9XG5cbn1cbiIsIjxkaXYgY2xhc3M9XCJtb2RhbC1oZWFkZXJcIj5cbiAgPGgxIGNsYXNzPVwibW9kYWwtdGl0bGUgcHVsbC1sZWZ0XCIgaWQ9XCJkYXRlSW5wdXRNb2RhbFRpdGxlXCI+e3t0aXRsZX19PC9oMT5cbiAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJjbG9zZSBwdWxsLXJpZ2h0XCIgYXJpYS1sYWJlbD1cIkNsb3NlXCIgKGNsaWNrKT1cImJzTW9kYWxSZWYuaGlkZSgpXCI+XG4gICAgPHNwYW4gYXJpYS1oaWRkZW49XCJ0cnVlXCI+JnRpbWVzOzwvc3Bhbj5cbiAgPC9idXR0b24+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJtb2RhbC1ib2R5XCI+XG4gIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICA8ZGl2ICpuZ0lmPVwiaW5mb1RleHRcIiBjbGFzcz1cImNvbC1zbS0xMlwiPlxuICAgICAgPGRpdiBjbGFzcz1cImFsZXJ0IGFsZXJ0LWluZm9cIj5cbiAgICAgICAge3tpbmZvVGV4dH19XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLTEyXCI+XG4gICAgICA8ZGl2PlxuICAgICAgICA8bGFiZWwgW2Zvcl09XCJkYXRlcGlja2VyLmlucHV0SWRcIj57e2RhdGVMYWJlbH19PC9sYWJlbD5cbiAgICAgICAgPG9lcGEtZGF0ZXBpY2tlclxuICAgICAgICAgICNkYXRlcGlja2VyPVwib2VwYS1kYXRlcGlja2VyXCJcbiAgICAgICAgICBbZ3JvdXBdPVwiZGF0ZUZvcm1cIlxuICAgICAgICAgIGZpZWxkPVwiZGF0ZVwiXG4gICAgICAgICAgW2JzQ29uZmlnXT1cImJzQ29uZmlnIHx8IHt9XCJcbiAgICAgICAgICBbc2hvd1ZhbGlkYXRpb25dPVwidHJ1ZVwiXG4gICAgICAgID48L29lcGEtZGF0ZXBpY2tlcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiAqbmdJZj1cImVycm9yTWVzc2FnZVwiIGNsYXNzPVwiY29sLXNtLTEyXCI+XG4gICAgPGRpdiBjbGFzcz1cImFsZXJ0IGFsZXJ0LWRhbmdlclwiPnt7ZXJyb3JNZXNzYWdlfX08L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJtb2RhbC1mb290ZXJcIj5cbiAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgbXItMVwiIChjbGljayk9XCJzdWJtaXQoKVwiIFxuICAgICAgICAgIFtpZF09XCInc3VibWl0RGF0ZUJ0bidcIiBbZGlzYWJsZWRdPVwiZGF0ZUZvcm0uc3RhdHVzID09PSAnSU5WQUxJRCdcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInN1Ym1pdEJ0bkxhYmVsXCI+e3tzdWJtaXRCdG5MYWJlbH19PC9idXR0b24+XG4gIDxidXR0b24gW2lkXT1cIidjYW5jZWxEYXRlSW5wdXRCdG4nXCIgdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IG1yLTFcIiAoY2xpY2spPVwiY2FuY2VsKClcIiBbYXR0ci5hcmlhLWxhYmVsXT1cImNhbmNlbEJ0bkxhYmVsXCI+e3tjYW5jZWxCdG5MYWJlbH19PC9idXR0b24+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -6,6 +6,12 @@ import * as i3 from "@angular/forms";
|
|
|
6
6
|
import * as i4 from "ngx-bootstrap/datepicker";
|
|
7
7
|
export class DatepickerComponent {
|
|
8
8
|
idService;
|
|
9
|
+
/**
|
|
10
|
+
* Exposes the input element's id for parent label association.
|
|
11
|
+
*/
|
|
12
|
+
get inputId() {
|
|
13
|
+
return this.componentId + '_Input';
|
|
14
|
+
}
|
|
9
15
|
componentId = 'OepaDatepickerComponent';
|
|
10
16
|
group;
|
|
11
17
|
field;
|
|
@@ -108,11 +114,11 @@ export class DatepickerComponent {
|
|
|
108
114
|
}
|
|
109
115
|
}
|
|
110
116
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DatepickerComponent, deps: [{ token: i1.OepaComponentIdService }], target: i0.ɵɵFactoryTarget.Component });
|
|
111
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DatepickerComponent, selector: "oepa-datepicker", inputs: { group: "group", field: "field", bsConfig: "bsConfig", showValidation: "showValidation", placement: "placement", tableIdx: "tableIdx", small: "small" }, usesOnChanges: true, ngImport: i0, template: "<div [formGroup]=\"group\">\n <div>\n
|
|
117
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DatepickerComponent, selector: "oepa-datepicker", inputs: { group: "group", field: "field", bsConfig: "bsConfig", showValidation: "showValidation", placement: "placement", tableIdx: "tableIdx", small: "small" }, exportAs: ["oepa-datepicker"], usesOnChanges: true, ngImport: i0, template: "\n<div [formGroup]=\"group\">\n <div>\n <div class=\"input-group\">\n <!-- a label (hidden or not) should be provided by the parent component to ensure accessibility -->\n <input\n [id]=\"componentId+'_Input'\"\n class=\"form-control\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n #dp=\"bsDatepicker\"\n bsDatepicker\n [formControlName]=\"field\"\n [bsConfig]=\"bsConfig\"\n [isDisabled]=\"group.get('field')?.disabled || false\"\n [placement]=\"getPlacement() || 'bottom'\"\n [ngClass]=\"{'is-invalid':showValidation && !checkValidity()}\"\n (bsValueChange)=\"onValueChange($event)\"\n [attr.aria-describedby]=\"(showValidation && group.get(field)?.invalid) ? (componentId + '_Error') : null\"\n [attr.aria-invalid]=\"showValidation && !checkValidity() ? 'true' : 'false'\"\n autocomplete=\"off\"\n >\n <div class=\"btn-group\" role=\"group\" aria-label=\"Datepicker controls\">\n <button\n type=\"button\"\n class=\"btn btn-primary\"\n (click)=\"dp.toggle()\"\n [id]=\"componentId+'_ToggleBtn'\"\n [disabled]=\"group.get(field)?.disabled\"\n aria-label=\"Open calendar\"\n >\n <i class=\"bi bi-calendar3\" aria-hidden=\"true\"></i>\n </button>\n <button\n type=\"button\"\n class=\"btn btn-primary\"\n (click)=\"clearDate()\"\n [id]=\"componentId+'_ClearBtn'\"\n [disabled]=\"group.get(field)?.disabled\"\n aria-label=\"Clear date\"\n >\n <i class=\"bi bi-x-lg\" aria-hidden=\"true\"></i>\n </button>\n </div>\n </div>\n <small\n class=\"invalid-feedback d-block\"\n *ngIf=\"showValidation && group.get(field)?.hasError('required')\"\n [id]=\"componentId+'_Error'\"\n role=\"alert\"\n aria-live=\"assertive\"\n >\n Date is required\n </small>\n <small\n class=\"invalid-feedback d-block\"\n *ngIf=\"showValidation && group.get(field)?.invalid && !group.get(field)?.hasError('required')\"\n [id]=\"componentId+'_Error'\"\n role=\"alert\"\n aria-live=\"assertive\"\n >\n Date is out of range\n </small>\n </div>\n</div>\n", styles: ["::ng-deep .bs-datepicker-head,::ng-deep .bs-datepicker-navigation-view,::ng-deep .bs-datepicker-navigation-view *{text-align:left!important}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i4.BsDatepickerDirective, selector: "[bsDatepicker]", inputs: ["placement", "triggers", "outsideClick", "container", "outsideEsc", "isDisabled", "minDate", "maxDate", "ignoreMinMaxErrors", "minMode", "daysDisabled", "datesDisabled", "datesEnabled", "dateCustomClasses", "dateTooltipTexts", "isOpen", "bsValue", "bsConfig"], outputs: ["onShown", "onHidden", "bsValueChange"], exportAs: ["bsDatepicker"] }, { kind: "directive", type: i4.BsDatepickerInputDirective, selector: "input[bsDatepicker]" }] });
|
|
112
118
|
}
|
|
113
119
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DatepickerComponent, decorators: [{
|
|
114
120
|
type: Component,
|
|
115
|
-
args: [{ selector: 'oepa-datepicker', template: "<div [formGroup]=\"group\">\n <div>\n
|
|
121
|
+
args: [{ selector: 'oepa-datepicker', exportAs: 'oepa-datepicker', template: "\n<div [formGroup]=\"group\">\n <div>\n <div class=\"input-group\">\n <!-- a label (hidden or not) should be provided by the parent component to ensure accessibility -->\n <input\n [id]=\"componentId+'_Input'\"\n class=\"form-control\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n #dp=\"bsDatepicker\"\n bsDatepicker\n [formControlName]=\"field\"\n [bsConfig]=\"bsConfig\"\n [isDisabled]=\"group.get('field')?.disabled || false\"\n [placement]=\"getPlacement() || 'bottom'\"\n [ngClass]=\"{'is-invalid':showValidation && !checkValidity()}\"\n (bsValueChange)=\"onValueChange($event)\"\n [attr.aria-describedby]=\"(showValidation && group.get(field)?.invalid) ? (componentId + '_Error') : null\"\n [attr.aria-invalid]=\"showValidation && !checkValidity() ? 'true' : 'false'\"\n autocomplete=\"off\"\n >\n <div class=\"btn-group\" role=\"group\" aria-label=\"Datepicker controls\">\n <button\n type=\"button\"\n class=\"btn btn-primary\"\n (click)=\"dp.toggle()\"\n [id]=\"componentId+'_ToggleBtn'\"\n [disabled]=\"group.get(field)?.disabled\"\n aria-label=\"Open calendar\"\n >\n <i class=\"bi bi-calendar3\" aria-hidden=\"true\"></i>\n </button>\n <button\n type=\"button\"\n class=\"btn btn-primary\"\n (click)=\"clearDate()\"\n [id]=\"componentId+'_ClearBtn'\"\n [disabled]=\"group.get(field)?.disabled\"\n aria-label=\"Clear date\"\n >\n <i class=\"bi bi-x-lg\" aria-hidden=\"true\"></i>\n </button>\n </div>\n </div>\n <small\n class=\"invalid-feedback d-block\"\n *ngIf=\"showValidation && group.get(field)?.hasError('required')\"\n [id]=\"componentId+'_Error'\"\n role=\"alert\"\n aria-live=\"assertive\"\n >\n Date is required\n </small>\n <small\n class=\"invalid-feedback d-block\"\n *ngIf=\"showValidation && group.get(field)?.invalid && !group.get(field)?.hasError('required')\"\n [id]=\"componentId+'_Error'\"\n role=\"alert\"\n aria-live=\"assertive\"\n >\n Date is out of range\n </small>\n </div>\n</div>\n", styles: ["::ng-deep .bs-datepicker-head,::ng-deep .bs-datepicker-navigation-view,::ng-deep .bs-datepicker-navigation-view *{text-align:left!important}\n"] }]
|
|
116
122
|
}], ctorParameters: () => [{ type: i1.OepaComponentIdService }], propDecorators: { group: [{
|
|
117
123
|
type: Input
|
|
118
124
|
}], field: [{
|
|
@@ -128,4 +134,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
128
134
|
}], small: [{
|
|
129
135
|
type: Input
|
|
130
136
|
}] } });
|
|
131
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vZXBhLXVpLWxpYi9zcmMvbGliL2RhdGVwaWNrZXIvZGF0ZXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vZXBhLXVpLWxpYi9zcmMvbGliL2RhdGVwaWNrZXIvZGF0ZXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBb0MsTUFBTSxlQUFlLENBQUM7Ozs7OztBQVluRixNQUFNLE9BQU8sbUJBQW1CO0lBOEJWO0lBN0JiLFdBQVcsR0FBRyx5QkFBeUIsQ0FBQztJQUN0QyxLQUFLLENBQWE7SUFDbEIsS0FBSyxDQUFVO0lBQ2YsUUFBUSxDQUErQjtJQUN2QyxjQUFjLEdBQUcsS0FBSyxDQUFDO0lBQ3ZCLFNBQVMsQ0FBVTtJQUNuQixRQUFRLENBQXFCO0lBQzdCLEtBQUssR0FBRyxLQUFLLENBQUM7SUFFaEIsT0FBTyxDQUFvQjtJQUMzQixPQUFPLENBQW9CO0lBQzNCLFVBQVUsR0FBRyxLQUFLLENBQUM7SUFFbkIsWUFBWTtRQUNqQixRQUFRLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUN2QixLQUFLLEtBQUs7Z0JBQ1IsT0FBTyxLQUFLLENBQUM7Z0JBQ2IsTUFBTTtZQUNSLEtBQUssTUFBTTtnQkFDVCxPQUFPLE1BQU0sQ0FBQztnQkFDZCxNQUFNO1lBQ1IsS0FBSyxPQUFPO2dCQUNWLE9BQU8sT0FBTyxDQUFDO2dCQUNmLE1BQU07WUFDUjtnQkFDRSxPQUFPLFFBQVEsQ0FBQztRQUNwQixDQUFDO0lBQ0gsQ0FBQztJQUVELFlBQW9CLFNBQWlDO1FBQWpDLGNBQVMsR0FBVCxTQUFTLENBQXdCO0lBQUksQ0FBQztJQUUxRCxhQUFhO1FBQ1gsS0FBSyxNQUFNLEdBQUcsSUFBSSxJQUFJLENB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RSxpQkFBaUI7MkZBTWxCLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBCc0RhdGVwaWNrZXJDb25maWcgfSBmcm9tICduZ3gtYm9vdHN0cmFwL2RhdGVwaWNrZXInO1xuXG5pbXBvcnQgeyBPZXBhQ29tcG9uZW50SWRTZXJ2aWNlIH0gZnJvbSAnQG9oaW9lcGEvb2VwYS1jb21tb24tbGliJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnb2VwYS1kYXRlcGlja2VyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGVwaWNrZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kYXRlcGlja2VyLmNvbXBvbmVudC5jc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBEYXRlcGlja2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICBwdWJsaWMgY29tcG9uZW50SWQgPSAnT2VwYURhdGVwaWNrZXJDb21wb25lbnQnO1xuICBASW5wdXQoKSBncm91cCE6IEZvcm1Hcm91cDtcbiAgQElucHV0KCkgZmllbGQhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGJzQ29uZmlnITogUGFydGlhbDxCc0RhdGVwaWNrZXJDb25maWc+O1xuICBASW5wdXQoKSBzaG93VmFsaWRhdGlvbiA9IGZhbHNlO1xuICBASW5wdXQoKSBwbGFjZW1lbnQhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHRhYmxlSWR4OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIHNtYWxsID0gZmFsc2U7XG5cbiAgcHVibGljIG1pbkRhdGUhOiBEYXRlIHwgdW5kZWZpbmVkO1xuICBwdWJsaWMgbWF4RGF0ZSE6IERhdGUgfCB1bmRlZmluZWQ7XG4gIHB1YmxpYyBpc0Rpc2FibGVkID0gZmFsc2U7XG5cbiAgcHVibGljIGdldFBsYWNlbWVudCgpIDogJ3RvcCcgfCAnYm90dG9tJyB8ICdsZWZ0JyB8ICdyaWdodCcge1xuICAgIHN3aXRjaCAodGhpcy5wbGFjZW1lbnQpIHtcbiAgICAgIGNhc2UgJ3RvcCc6XG4gICAgICAgIHJldHVybiAndG9wJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdsZWZ0JzpcbiAgICAgICAgcmV0dXJuICdsZWZ0JztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdyaWdodCc6XG4gICAgICAgIHJldHVybiAncmlnaHQnO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiAnYm90dG9tJztcbiAgICB9XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGlkU2VydmljZTogT2VwYUNvbXBvbmVudElkU2VydmljZSkgeyB9XG5cbiAgY2hlY2tWYWxpZGl0eSgpIHtcbiAgICBmb3IgKGNvbnN0IGtleSBpbiB0aGlzLmdyb3VwLmNvbnRyb2xzKSB7XG4gICAgICBpZiAodGhpcy5ncm91cC5jb250cm9scy5oYXNPd25Qcm9wZXJ0eShrZXkpICYmIGtleSA9PT0gdGhpcy5maWVsZCkge1xuICAgICAgICByZXR1cm4gdGhpcy5ncm91cC5jb250cm9sc1trZXldLnN0YXR1cyAhPT0gJ0lOVkFMSUQnO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNsZWFyRGF0ZSgpIHtcbiAgICBmb3IgKGNvbnN0IGtleSBpbiB0aGlzLmdyb3VwLmNvbnRyb2xzKSB7XG4gICAgICBpZiAodGhpcy5ncm91cC5jb250cm9scy5oYXNPd25Qcm9wZXJ0eShrZXkpICYmIGtleSA9PT0gdGhpcy5maWVsZCkge1xuICAgICAgICB0aGlzLmdyb3VwLmNvbnRyb2xzW2tleV0uc2V0VmFsdWUobnVsbCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKHRoaXMuYnNDb25maWcpIHtcbiAgICAgIGlmICh0aGlzLmJzQ29uZmlnLm1pbkRhdGUpIHtcbiAgICAgICAgdGhpcy5taW5EYXRlID0gdGhpcy5ic0NvbmZpZy5taW5EYXRlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5taW5EYXRlID0gdW5kZWZpbmVkO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMuYnNDb25maWcubWF4RGF0ZSkge1xuICAgICAgICB0aGlzLm1heERhdGUgPSB0aGlzLmJzQ29uZmlnLm1heERhdGU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLm1heERhdGUgPSB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5ic0NvbmZpZy5pc0Rpc2FibGVkKSB7XG4gICAgICAgIHRoaXMuaXNEaXNhYmxlZCA9IHRoaXMuYnNDb25maWcuaXNEaXNhYmxlZDsgLy8gZGVmYXVsdHMgdG8gZmFsc2VcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5ic0NvbmZpZyA9IHt9O1xuICAgIH1cbiAgICB0aGlzLmJzQ29uZmlnLnNob3dXZWVrTnVtYmVycyA9IGZhbHNlO1xuICAgIGlmICh0aGlzLmdyb3VwKSB7XG4gICAgICB0aGlzLmNvbXBvbmVudElkID0gdGhpcy5pZFNlcnZpY2UuZ2V0Q29tcG9uZW50SWQodGhpcy5ncm91cCk7XG4gICAgICB0aGlzLmNvbXBvbmVudElkICs9ICh0aGlzLmNvbXBvbmVudElkLmxlbmd0aCA+IDAgPyAnXycgOiAnJykgKyAodGhpcy5maWVsZCB8fCAnJykgKyAodGhpcy50YWJsZUlkeCB8fCAnJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUubG9nKCdPT1BTIE5vIGRhdGVwaWNrZXJGb3JtIHlldCcpO1xuICAgIH1cbiAgfVxuXG4gIC8vIGZvcmNlIHZhbHVlIHRvIG51bGwgaW4gY2FzZSB3aGVyZSB1c2VyIGVudGVycyBub24tbnVtZXJpYyB2YWx1ZXNcbiAgLy8gaW4gdGhlIGZpZWxkLiBUaGUgXCJub3JtYWxcIiBiZWhhdmlvciBvZiB0aGUgbmd4LWJvb3RzdHJhcCBkYXRlcGlja2VyXG4gIC8vIGlzIHRvIHNldCB0aGUgaW5wdXQgdmFsdWUgdG8gXCJJbnZhbGlkIERhdGVcIi4gVW5mb3J0dW5hdGVseSwgdGhpcyBtZXNzZXNcbiAgLy8gdXAgdmFsaWRhdGlvbi4gVGhlIG1ldGhvZCBiZWxvdyB3aWxsIGZvcmNlIHRoZSBpbnB1dCB2YWx1ZSB0byBudWxsXG4gIC8vIGluIHRoaXMgY2FzZSB3aGljaCB3aWxsIGVuc3VyZSB0aGF0IHZhbGlkYXRpb24gd29ya3MgcHJvcGVybHkuXG4gIG9uVmFsdWVDaGFuZ2UoZXZlbnQ6YW55KSB7XG4gICAgLy8gdGltZW91dCBpcyBuZWVkZWQgdG8gbWFrZSB0aGlzIHdvcmsgcHJvcGVybHlcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICh0aGlzLmdyb3VwICYmIHRoaXMuZ3JvdXAuY29udHJvbHNbdGhpcy5maWVsZF0pIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmdyb3VwLmNvbnRyb2xzW3RoaXMuZmllbGRdLnZhbHVlO1xuICAgICAgICBpZiAodmFsdWUgJiYgdmFsdWUudG9KU09OKCkgPT09IG51bGwpIHtcbiAgICAgICAgICB0aGlzLmdyb3VwLmNvbnRyb2xzW3RoaXMuZmllbGRdLnNldFZhbHVlKG51bGwpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZ3JvdXAuY29udHJvbHNbdGhpcy5maWVsZF0udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgICAgfVxuICAgIH0sIDUwKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAoY2hhbmdlc1snYnNDb25maWcnXSkge1xuICAgICAgaWYgKGNoYW5nZXNbJ2JzQ29uZmlnJ10uY3VycmVudFZhbHVlLm1pbkRhdGUgfHwgY2hhbmdlc1snYnNDb25maWcnXS5jdXJyZW50VmFsdWUubWluRGF0ZSA9PSBudWxsKSB7XG4gICAgICAgIHRoaXMubWluRGF0ZSA9IGNoYW5nZXNbJ2JzQ29uZmlnJ10uY3VycmVudFZhbHVlLm1pbkRhdGU7XG4gICAgICB9XG5cbiAgICAgIGlmIChjaGFuZ2VzWydic0NvbmZpZyddLmN1cnJlbnRWYWx1ZS5tYXhEYXRlIHx8IGNoYW5nZXNbJ2JzQ29uZmlnJ10uY3VycmVudFZhbHVlLm1heERhdGUgPT0gbnVsbCkge1xuICAgICAgICB0aGlzLm1heERhdGUgPSBjaGFuZ2VzWydic0NvbmZpZyddLmN1cnJlbnRWYWx1ZS5tYXhEYXRlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG59XG4iLCI8ZGl2IFtmb3JtR3JvdXBdPVwiZ3JvdXBcIj5cbiAgPGRpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cFwiPlxuICAgICAgICAgIDxpbnB1dCAgW2lkXT1cImNvbXBvbmVudElkKydfSW5wdXQnXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgICAgICAgIFttaW5EYXRlXT1cIm1pbkRhdGVcIlxuICAgICAgICAgICAgICAgICAgW21heERhdGVdPVwibWF4RGF0ZVwiXG4gICAgICAgICAgICAgICAgICAjZHA9XCJic0RhdGVwaWNrZXJcIlxuICAgICAgICAgICAgICAgICAgYnNEYXRlcGlja2VyXG4gICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImZpZWxkXCJcbiAgICAgICAgICAgICAgICAgIFtic0NvbmZpZ109XCJic0NvbmZpZ1wiXG4gICAgICAgICAgICAgICAgICBbaXNEaXNhYmxlZF09XCJncm91cC5nZXQoJ2ZpZWxkJyk/LmRpc2FibGVkIHx8IGZhbHNlXCJcbiAgICAgICAgICAgICAgICAgIFtwbGFjZW1lbnRdPVwiZ2V0UGxhY2VtZW50KCkgIHx8ICdib3R0b20nXCJcbiAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsnaXMtaW52YWxpZCc6c2hvd1ZhbGlkYXRpb24gJiYgIWNoZWNrVmFsaWRpdHkoKX1cIlxuICAgICAgICAgICAgICAgICAgKGJzVmFsdWVDaGFuZ2UpPVwib25WYWx1ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYnRuLWdyb3VwXCIgcm9sZT1cImdyb3VwXCI+XG4gICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCIgKGNsaWNrKT1cImRwLnRvZ2dsZSgpXCIgW2lkXT1cImNvbXBvbmVudElkKydfVG9nZ2xlQnRuJ1wiIFtkaXNhYmxlZF09XCJncm91cC5nZXQoZmllbGQpPy5kaXNhYmxlZFwiPlxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiYmkgYmktY2FsZW5kYXIzXCI+PC9pPlxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIiAoY2xpY2spPVwiY2xlYXJEYXRlKClcIiBbaWRdPVwiY29tcG9uZW50SWQrJ19DbGVhckJ0bidcIiBbZGlzYWJsZWRdPVwiZ3JvdXAuZ2V0KGZpZWxkKT8uZGlzYWJsZWRcIj5cbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImJpIGJpLXgtbGdcIj48L2k+XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8c21hbGwgY2xhc3M9XCJpbnZhbGlkLWZlZWRiYWNrIGQtYmxvY2tcIiAqbmdJZj1cInNob3dWYWxpZGF0aW9uICYmIGdyb3VwLmdldChmaWVsZCk/Lmhhc0Vycm9yKCdyZXF1aXJlZCcpXCI+RGF0ZSBpcyByZXF1aXJlZDwvc21hbGw+XG4gICAgICA8c21hbGwgY2xhc3M9XCJpbnZhbGlkLWZlZWRiYWNrIGQtYmxvY2tcIiAqbmdJZj1cInNob3dWYWxpZGF0aW9uICYmIGdyb3VwLmdldChmaWVsZCk/LmludmFsaWQgJiYgIWdyb3VwLmdldChmaWVsZCk/Lmhhc0Vycm9yKCdyZXF1aXJlZCcpXCI+RGF0ZSBpcyBvdXQgb2YgcmFuZ2U8L3NtYWxsPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
137
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vZXBhLXVpLWxpYi9zcmMvbGliL2RhdGVwaWNrZXIvZGF0ZXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vZXBhLXVpLWxpYi9zcmMvbGliL2RhdGVwaWNrZXIvZGF0ZXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBb0MsTUFBTSxlQUFlLENBQUM7Ozs7OztBQWFuRixNQUFNLE9BQU8sbUJBQW1CO0lBb0NWO0lBbkNwQjs7T0FFRztJQUNILElBQVcsT0FBTztRQUNoQixPQUFPLElBQUksQ0FBQyxXQUFXLEdBQUcsUUFBUSxDQUFDO0lBQ3JDLENBQUM7SUFDTSxXQUFXLEdBQUcseUJBQXlCLENBQUM7SUFDdEMsS0FBSyxDQUFhO0lBQ2xCLEtBQUssQ0FBVTtJQUNmLFFBQVEsQ0FBK0I7SUFDdkMsY0FBYyxHQUFHLEtBQUssQ0FBQztJQUN2QixTQUFTLENBQVU7SUFDbkIsUUFBUSxDQUFxQjtJQUM3QixLQUFLLEdBQUcsS0FBSyxDQUFDO0lBRWhCLE9BQU8sQ0FBb0I7SUFDM0IsT0FBTyxDQUFvQjtJQUMzQixVQUFVLEdBQUcsS0FBSyxDQUFDO0lBRW5CLFlBQVk7UUFDakIsUUFBUSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDdkIsS0FBSyxLQUFLO2dCQUNSLE9BQU8sS0FBSyxDQUFDO2dCQUNiLE1BQU07WUFDUixLQUFLLE1BQU07Z0JBQ1QsT0FBTyxNQUFNLENBQUM7Z0JBQ2QsTUFBTTtZQUNSLEtBQUssT0FBTztnQkFDVixPQUFPLE9BQU8sQ0FBQztnQkFDZixNQUFNO1lBQ1I7Z0JBQ0UsT0FBTyxRQUFRLENBQUM7UUFDcEIsQ0FBQztJQUNILENBQUM7SUFFRCxZQUFvQixTQUFpQztR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Q0FBQzt3R0E5R1UsbUJBQW1COzRGQUFuQixtQkFBbUIsNlFDYmhDLHl3RUFpRUE7OzRGRHBEYSxtQkFBbUI7a0JBTi9CLFNBQVM7K0JBQ0UsaUJBQWlCLFlBR2pCLGlCQUFpQjsyRkFVbEIsS0FBSztzQkFBYixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IEJzRGF0ZXBpY2tlckNvbmZpZyB9IGZyb20gJ25neC1ib290c3RyYXAvZGF0ZXBpY2tlcic7XG5cbmltcG9ydCB7IE9lcGFDb21wb25lbnRJZFNlcnZpY2UgfSBmcm9tICdAb2hpb2VwYS9vZXBhLWNvbW1vbi1saWInO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdvZXBhLWRhdGVwaWNrZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vZGF0ZXBpY2tlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2RhdGVwaWNrZXIuY29tcG9uZW50LmNzcyddLFxuICBleHBvcnRBczogJ29lcGEtZGF0ZXBpY2tlcidcbn0pXG5leHBvcnQgY2xhc3MgRGF0ZXBpY2tlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgLyoqXG4gICAqIEV4cG9zZXMgdGhlIGlucHV0IGVsZW1lbnQncyBpZCBmb3IgcGFyZW50IGxhYmVsIGFzc29jaWF0aW9uLlxuICAgKi9cbiAgcHVibGljIGdldCBpbnB1dElkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuY29tcG9uZW50SWQgKyAnX0lucHV0JztcbiAgfVxuICBwdWJsaWMgY29tcG9uZW50SWQgPSAnT2VwYURhdGVwaWNrZXJDb21wb25lbnQnO1xuICBASW5wdXQoKSBncm91cCE6IEZvcm1Hcm91cDtcbiAgQElucHV0KCkgZmllbGQhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGJzQ29uZmlnITogUGFydGlhbDxCc0RhdGVwaWNrZXJDb25maWc+O1xuICBASW5wdXQoKSBzaG93VmFsaWRhdGlvbiA9IGZhbHNlO1xuICBASW5wdXQoKSBwbGFjZW1lbnQhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHRhYmxlSWR4OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIHNtYWxsID0gZmFsc2U7XG5cbiAgcHVibGljIG1pbkRhdGUhOiBEYXRlIHwgdW5kZWZpbmVkO1xuICBwdWJsaWMgbWF4RGF0ZSE6IERhdGUgfCB1bmRlZmluZWQ7XG4gIHB1YmxpYyBpc0Rpc2FibGVkID0gZmFsc2U7XG5cbiAgcHVibGljIGdldFBsYWNlbWVudCgpIDogJ3RvcCcgfCAnYm90dG9tJyB8ICdsZWZ0JyB8ICdyaWdodCcge1xuICAgIHN3aXRjaCAodGhpcy5wbGFjZW1lbnQpIHtcbiAgICAgIGNhc2UgJ3RvcCc6XG4gICAgICAgIHJldHVybiAndG9wJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdsZWZ0JzpcbiAgICAgICAgcmV0dXJuICdsZWZ0JztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdyaWdodCc6XG4gICAgICAgIHJldHVybiAncmlnaHQnO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiAnYm90dG9tJztcbiAgICB9XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGlkU2VydmljZTogT2VwYUNvbXBvbmVudElkU2VydmljZSkgeyB9XG5cbiAgY2hlY2tWYWxpZGl0eSgpIHtcbiAgICBmb3IgKGNvbnN0IGtleSBpbiB0aGlzLmdyb3VwLmNvbnRyb2xzKSB7XG4gICAgICBpZiAodGhpcy5ncm91cC5jb250cm9scy5oYXNPd25Qcm9wZXJ0eShrZXkpICYmIGtleSA9PT0gdGhpcy5maWVsZCkge1xuICAgICAgICByZXR1cm4gdGhpcy5ncm91cC5jb250cm9sc1trZXldLnN0YXR1cyAhPT0gJ0lOVkFMSUQnO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNsZWFyRGF0ZSgpIHtcbiAgICBmb3IgKGNvbnN0IGtleSBpbiB0aGlzLmdyb3VwLmNvbnRyb2xzKSB7XG4gICAgICBpZiAodGhpcy5ncm91cC5jb250cm9scy5oYXNPd25Qcm9wZXJ0eShrZXkpICYmIGtleSA9PT0gdGhpcy5maWVsZCkge1xuICAgICAgICB0aGlzLmdyb3VwLmNvbnRyb2xzW2tleV0uc2V0VmFsdWUobnVsbCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKHRoaXMuYnNDb25maWcpIHtcbiAgICAgIGlmICh0aGlzLmJzQ29uZmlnLm1pbkRhdGUpIHtcbiAgICAgICAgdGhpcy5taW5EYXRlID0gdGhpcy5ic0NvbmZpZy5taW5EYXRlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5taW5EYXRlID0gdW5kZWZpbmVkO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMuYnNDb25maWcubWF4RGF0ZSkge1xuICAgICAgICB0aGlzLm1heERhdGUgPSB0aGlzLmJzQ29uZmlnLm1heERhdGU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLm1heERhdGUgPSB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5ic0NvbmZpZy5pc0Rpc2FibGVkKSB7XG4gICAgICAgIHRoaXMuaXNEaXNhYmxlZCA9IHRoaXMuYnNDb25maWcuaXNEaXNhYmxlZDsgLy8gZGVmYXVsdHMgdG8gZmFsc2VcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5ic0NvbmZpZyA9IHt9O1xuICAgIH1cbiAgICB0aGlzLmJzQ29uZmlnLnNob3dXZWVrTnVtYmVycyA9IGZhbHNlO1xuICAgIGlmICh0aGlzLmdyb3VwKSB7XG4gICAgICB0aGlzLmNvbXBvbmVudElkID0gdGhpcy5pZFNlcnZpY2UuZ2V0Q29tcG9uZW50SWQodGhpcy5ncm91cCk7XG4gICAgICB0aGlzLmNvbXBvbmVudElkICs9ICh0aGlzLmNvbXBvbmVudElkLmxlbmd0aCA+IDAgPyAnXycgOiAnJykgKyAodGhpcy5maWVsZCB8fCAnJykgKyAodGhpcy50YWJsZUlkeCB8fCAnJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUubG9nKCdPT1BTIE5vIGRhdGVwaWNrZXJGb3JtIHlldCcpO1xuICAgIH1cbiAgfVxuXG4gIC8vIGZvcmNlIHZhbHVlIHRvIG51bGwgaW4gY2FzZSB3aGVyZSB1c2VyIGVudGVycyBub24tbnVtZXJpYyB2YWx1ZXNcbiAgLy8gaW4gdGhlIGZpZWxkLiBUaGUgXCJub3JtYWxcIiBiZWhhdmlvciBvZiB0aGUgbmd4LWJvb3RzdHJhcCBkYXRlcGlja2VyXG4gIC8vIGlzIHRvIHNldCB0aGUgaW5wdXQgdmFsdWUgdG8gXCJJbnZhbGlkIERhdGVcIi4gVW5mb3J0dW5hdGVseSwgdGhpcyBtZXNzZXNcbiAgLy8gdXAgdmFsaWRhdGlvbi4gVGhlIG1ldGhvZCBiZWxvdyB3aWxsIGZvcmNlIHRoZSBpbnB1dCB2YWx1ZSB0byBudWxsXG4gIC8vIGluIHRoaXMgY2FzZSB3aGljaCB3aWxsIGVuc3VyZSB0aGF0IHZhbGlkYXRpb24gd29ya3MgcHJvcGVybHkuXG4gIG9uVmFsdWVDaGFuZ2UoZXZlbnQ6YW55KSB7XG4gICAgLy8gdGltZW91dCBpcyBuZWVkZWQgdG8gbWFrZSB0aGlzIHdvcmsgcHJvcGVybHlcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICh0aGlzLmdyb3VwICYmIHRoaXMuZ3JvdXAuY29udHJvbHNbdGhpcy5maWVsZF0pIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmdyb3VwLmNvbnRyb2xzW3RoaXMuZmllbGRdLnZhbHVlO1xuICAgICAgICBpZiAodmFsdWUgJiYgdmFsdWUudG9KU09OKCkgPT09IG51bGwpIHtcbiAgICAgICAgICB0aGlzLmdyb3VwLmNvbnRyb2xzW3RoaXMuZmllbGRdLnNldFZhbHVlKG51bGwpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZ3JvdXAuY29udHJvbHNbdGhpcy5maWVsZF0udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgICAgfVxuICAgIH0sIDUwKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAoY2hhbmdlc1snYnNDb25maWcnXSkge1xuICAgICAgaWYgKGNoYW5nZXNbJ2JzQ29uZmlnJ10uY3VycmVudFZhbHVlLm1pbkRhdGUgfHwgY2hhbmdlc1snYnNDb25maWcnXS5jdXJyZW50VmFsdWUubWluRGF0ZSA9PSBudWxsKSB7XG4gICAgICAgIHRoaXMubWluRGF0ZSA9IGNoYW5nZXNbJ2JzQ29uZmlnJ10uY3VycmVudFZhbHVlLm1pbkRhdGU7XG4gICAgICB9XG5cbiAgICAgIGlmIChjaGFuZ2VzWydic0NvbmZpZyddLmN1cnJlbnRWYWx1ZS5tYXhEYXRlIHx8IGNoYW5nZXNbJ2JzQ29uZmlnJ10uY3VycmVudFZhbHVlLm1heERhdGUgPT0gbnVsbCkge1xuICAgICAgICB0aGlzLm1heERhdGUgPSBjaGFuZ2VzWydic0NvbmZpZyddLmN1cnJlbnRWYWx1ZS5tYXhEYXRlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG59XG4iLCJcbjxkaXYgW2Zvcm1Hcm91cF09XCJncm91cFwiPlxuICA8ZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cFwiPlxuICAgICAgPCEtLSBhIGxhYmVsIChoaWRkZW4gb3Igbm90KSBzaG91bGQgYmUgcHJvdmlkZWQgYnkgdGhlIHBhcmVudCBjb21wb25lbnQgdG8gZW5zdXJlIGFjY2Vzc2liaWxpdHkgLS0+XG4gICAgICA8aW5wdXRcbiAgICAgICAgW2lkXT1cImNvbXBvbmVudElkKydfSW5wdXQnXCJcbiAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICBbbWluRGF0ZV09XCJtaW5EYXRlXCJcbiAgICAgICAgW21heERhdGVdPVwibWF4RGF0ZVwiXG4gICAgICAgICNkcD1cImJzRGF0ZXBpY2tlclwiXG4gICAgICAgIGJzRGF0ZXBpY2tlclxuICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImZpZWxkXCJcbiAgICAgICAgW2JzQ29uZmlnXT1cImJzQ29uZmlnXCJcbiAgICAgICAgW2lzRGlzYWJsZWRdPVwiZ3JvdXAuZ2V0KCdmaWVsZCcpPy5kaXNhYmxlZCB8fCBmYWxzZVwiXG4gICAgICAgIFtwbGFjZW1lbnRdPVwiZ2V0UGxhY2VtZW50KCkgIHx8ICdib3R0b20nXCJcbiAgICAgICAgW25nQ2xhc3NdPVwieydpcy1pbnZhbGlkJzpzaG93VmFsaWRhdGlvbiAmJiAhY2hlY2tWYWxpZGl0eSgpfVwiXG4gICAgICAgIChic1ZhbHVlQ2hhbmdlKT1cIm9uVmFsdWVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwiKHNob3dWYWxpZGF0aW9uICYmIGdyb3VwLmdldChmaWVsZCk/LmludmFsaWQpID8gKGNvbXBvbmVudElkICsgJ19FcnJvcicpIDogbnVsbFwiXG4gICAgICAgIFthdHRyLmFyaWEtaW52YWxpZF09XCJzaG93VmFsaWRhdGlvbiAmJiAhY2hlY2tWYWxpZGl0eSgpID8gJ3RydWUnIDogJ2ZhbHNlJ1wiXG4gICAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiXG4gICAgICA+XG4gICAgICA8ZGl2IGNsYXNzPVwiYnRuLWdyb3VwXCIgcm9sZT1cImdyb3VwXCIgYXJpYS1sYWJlbD1cIkRhdGVwaWNrZXIgY29udHJvbHNcIj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCJcbiAgICAgICAgICAoY2xpY2spPVwiZHAudG9nZ2xlKClcIlxuICAgICAgICAgIFtpZF09XCJjb21wb25lbnRJZCsnX1RvZ2dsZUJ0bidcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJncm91cC5nZXQoZmllbGQpPy5kaXNhYmxlZFwiXG4gICAgICAgICAgYXJpYS1sYWJlbD1cIk9wZW4gY2FsZW5kYXJcIlxuICAgICAgICA+XG4gICAgICAgICAgPGkgY2xhc3M9XCJiaSBiaS1jYWxlbmRhcjNcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIlxuICAgICAgICAgIChjbGljayk9XCJjbGVhckRhdGUoKVwiXG4gICAgICAgICAgW2lkXT1cImNvbXBvbmVudElkKydfQ2xlYXJCdG4nXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiZ3JvdXAuZ2V0KGZpZWxkKT8uZGlzYWJsZWRcIlxuICAgICAgICAgIGFyaWEtbGFiZWw9XCJDbGVhciBkYXRlXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxpIGNsYXNzPVwiYmkgYmkteC1sZ1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8c21hbGxcbiAgICAgIGNsYXNzPVwiaW52YWxpZC1mZWVkYmFjayBkLWJsb2NrXCJcbiAgICAgICpuZ0lmPVwic2hvd1ZhbGlkYXRpb24gJiYgZ3JvdXAuZ2V0KGZpZWxkKT8uaGFzRXJyb3IoJ3JlcXVpcmVkJylcIlxuICAgICAgW2lkXT1cImNvbXBvbmVudElkKydfRXJyb3InXCJcbiAgICAgIHJvbGU9XCJhbGVydFwiXG4gICAgICBhcmlhLWxpdmU9XCJhc3NlcnRpdmVcIlxuICAgID5cbiAgICAgIERhdGUgaXMgcmVxdWlyZWRcbiAgICA8L3NtYWxsPlxuICAgIDxzbWFsbFxuICAgICAgY2xhc3M9XCJpbnZhbGlkLWZlZWRiYWNrIGQtYmxvY2tcIlxuICAgICAgKm5nSWY9XCJzaG93VmFsaWRhdGlvbiAmJiBncm91cC5nZXQoZmllbGQpPy5pbnZhbGlkICYmICFncm91cC5nZXQoZmllbGQpPy5oYXNFcnJvcigncmVxdWlyZWQnKVwiXG4gICAgICBbaWRdPVwiY29tcG9uZW50SWQrJ19FcnJvcidcIlxuICAgICAgcm9sZT1cImFsZXJ0XCJcbiAgICAgIGFyaWEtbGl2ZT1cImFzc2VydGl2ZVwiXG4gICAgPlxuICAgICAgRGF0ZSBpcyBvdXQgb2YgcmFuZ2VcbiAgICA8L3NtYWxsPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -53,11 +53,11 @@ export class DaterangepickerComponent {
|
|
|
53
53
|
}
|
|
54
54
|
}
|
|
55
55
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DaterangepickerComponent, deps: [{ token: i1.OepaComponentIdService }], target: i0.ɵɵFactoryTarget.Component });
|
|
56
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DaterangepickerComponent, selector: "oepa-daterangepicker", inputs: { group: "group", field: "field", bsConfig: "bsConfig", showValidation: "showValidation" }, ngImport: i0, template: "<div [formGroup]=\"group\">\n <div>\n <div class=\"input-group\">\n <input [id]=\"componentId+'_Input'\"\n class=\"form-control\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n #drp=\"bsDaterangepicker\"\n bsDaterangepicker\n [formControlName]=\"field\"\n [bsConfig]=\"bsConfig\"\n [isDisabled]=\"isDisabled\"\n [ngClass]=\"{'is-invalid':showValidation && !checkValidity()}\"\n >\n <div *ngIf=\"!isDisabled\" class=\"input-group-btn\">\n <button class=\"btn btn-primary\" (click)=\"drp.toggle()\" [id]=\"componentId+'_ToggleBtn'\">\n <i class=\"bi bi-calendar3\"></i>\n </button>\n <button class=\"btn btn-primary\" (click)=\"clearRange()\" [id]=\"componentId+'_ClearBtn'\">\n <i class=\"bi bi-x-lg\"></i>\n </button>\n </div>\n </div>\n <small class=\"invalid-feedback d-block\" *ngIf=\"showValidation && !checkValidity()\">Date is required</small>\n </div>\n</div>", styles: [""], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i4.BsDaterangepickerDirective, selector: "[bsDaterangepicker]", inputs: ["placement", "triggers", "outsideClick", "container", "outsideEsc", "isOpen", "bsValue", "bsConfig", "isDisabled", "minDate", "maxDate", "dateCustomClasses", "daysDisabled", "datesDisabled", "datesEnabled"], outputs: ["onShown", "onHidden", "bsValueChange"], exportAs: ["bsDaterangepicker"] }, { kind: "directive", type: i4.BsDaterangepickerInputDirective, selector: "input[bsDaterangepicker]" }] });
|
|
56
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DaterangepickerComponent, selector: "oepa-daterangepicker", inputs: { group: "group", field: "field", bsConfig: "bsConfig", showValidation: "showValidation" }, ngImport: i0, template: "<div [formGroup]=\"group\">\n <div>\n <div class=\"input-group\">\n <input [id]=\"componentId+'_Input'\"\n class=\"form-control\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n #drp=\"bsDaterangepicker\"\n bsDaterangepicker\n [formControlName]=\"field\"\n [bsConfig]=\"bsConfig\"\n [isDisabled]=\"isDisabled\"\n [ngClass]=\"{'is-invalid':showValidation && !checkValidity()}\"\n >\n <div *ngIf=\"!isDisabled\" class=\"input-group-btn\">\n <button class=\"btn btn-primary\" (click)=\"drp.toggle()\" [id]=\"componentId+'_ToggleBtn'\" aria-label=\"Toggle Date Picker\">\n <i class=\"bi bi-calendar3\"></i>\n </button>\n <button class=\"btn btn-primary\" (click)=\"clearRange()\" [id]=\"componentId+'_ClearBtn'\" aria-label=\"Clear Range\">\n <i class=\"bi bi-x-lg\"></i>\n </button>\n </div>\n </div>\n <small class=\"invalid-feedback d-block\" *ngIf=\"showValidation && !checkValidity()\">Date is required</small>\n </div>\n</div>", styles: [""], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i4.BsDaterangepickerDirective, selector: "[bsDaterangepicker]", inputs: ["placement", "triggers", "outsideClick", "container", "outsideEsc", "isOpen", "bsValue", "bsConfig", "isDisabled", "minDate", "maxDate", "dateCustomClasses", "daysDisabled", "datesDisabled", "datesEnabled"], outputs: ["onShown", "onHidden", "bsValueChange"], exportAs: ["bsDaterangepicker"] }, { kind: "directive", type: i4.BsDaterangepickerInputDirective, selector: "input[bsDaterangepicker]" }] });
|
|
57
57
|
}
|
|
58
58
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DaterangepickerComponent, decorators: [{
|
|
59
59
|
type: Component,
|
|
60
|
-
args: [{ selector: 'oepa-daterangepicker', template: "<div [formGroup]=\"group\">\n <div>\n <div class=\"input-group\">\n <input [id]=\"componentId+'_Input'\"\n class=\"form-control\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n #drp=\"bsDaterangepicker\"\n bsDaterangepicker\n [formControlName]=\"field\"\n [bsConfig]=\"bsConfig\"\n [isDisabled]=\"isDisabled\"\n [ngClass]=\"{'is-invalid':showValidation && !checkValidity()}\"\n >\n <div *ngIf=\"!isDisabled\" class=\"input-group-btn\">\n <button class=\"btn btn-primary\" (click)=\"drp.toggle()\" [id]=\"componentId+'_ToggleBtn'\">\n <i class=\"bi bi-calendar3\"></i>\n </button>\n <button class=\"btn btn-primary\" (click)=\"clearRange()\" [id]=\"componentId+'_ClearBtn'\">\n <i class=\"bi bi-x-lg\"></i>\n </button>\n </div>\n </div>\n <small class=\"invalid-feedback d-block\" *ngIf=\"showValidation && !checkValidity()\">Date is required</small>\n </div>\n</div>" }]
|
|
60
|
+
args: [{ selector: 'oepa-daterangepicker', template: "<div [formGroup]=\"group\">\n <div>\n <div class=\"input-group\">\n <input [id]=\"componentId+'_Input'\"\n class=\"form-control\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n #drp=\"bsDaterangepicker\"\n bsDaterangepicker\n [formControlName]=\"field\"\n [bsConfig]=\"bsConfig\"\n [isDisabled]=\"isDisabled\"\n [ngClass]=\"{'is-invalid':showValidation && !checkValidity()}\"\n >\n <div *ngIf=\"!isDisabled\" class=\"input-group-btn\">\n <button class=\"btn btn-primary\" (click)=\"drp.toggle()\" [id]=\"componentId+'_ToggleBtn'\" aria-label=\"Toggle Date Picker\">\n <i class=\"bi bi-calendar3\"></i>\n </button>\n <button class=\"btn btn-primary\" (click)=\"clearRange()\" [id]=\"componentId+'_ClearBtn'\" aria-label=\"Clear Range\">\n <i class=\"bi bi-x-lg\"></i>\n </button>\n </div>\n </div>\n <small class=\"invalid-feedback d-block\" *ngIf=\"showValidation && !checkValidity()\">Date is required</small>\n </div>\n</div>" }]
|
|
61
61
|
}], ctorParameters: () => [{ type: i1.OepaComponentIdService }], propDecorators: { group: [{
|
|
62
62
|
type: Input
|
|
63
63
|
}], field: [{
|
|
@@ -67,4 +67,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
67
67
|
}], showValidation: [{
|
|
68
68
|
type: Input
|
|
69
69
|
}] } });
|
|
70
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXJhbmdlcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29lcGEtdWktbGliL3NyYy9saWIvZGF0ZXJhbmdlcGlja2VyL2RhdGVyYW5nZXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vZXBhLXVpLWxpYi9zcmMvbGliL2RhdGVyYW5nZXBpY2tlci9kYXRlcmFuZ2VwaWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7Ozs7OztBQVl6RCxNQUFNLE9BQU8sd0JBQXdCO0lBV2Y7SUFWYixXQUFXLEdBQUcsOEJBQThCLENBQUM7SUFDN0MsT0FBTyxDQUFtQjtJQUMxQixPQUFPLENBQW1CO0lBQzFCLFVBQVUsR0FBRyxLQUFLLENBQUM7SUFFakIsS0FBSyxDQUFhO0lBQ2xCLEtBQUssQ0FBVTtJQUNmLFFBQVEsQ0FBK0I7SUFDdkMsY0FBYyxHQUFHLEtBQUssQ0FBQztJQUVoQyxZQUFvQixTQUFpQztRQUFqQyxjQUFTLEdBQVQsU0FBUyxDQUF3QjtJQUFJLENBQUM7SUFFMUQsYUFBYTtRQUNYLEtBQUssTUFBTSxHQUFHLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUN0QyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLEtBQUssSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUNsRSxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sS0FBSyxPQUFPLENBQUM7WUFDckQsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxVQUFVO1FBQ1IsS0FBSyxNQUFNLEdBQUcsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3RDLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEdBQUcsS0FBSyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ2xFLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMxQyxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDekMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQztRQUN6QyxDQUFDO2FBQU0sQ0FBQztZQUNKLElBQUksQ0FBQyxPQUFPLEdBQUcsU0FBUyxDQUFDO1FBQzdCLENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUN6QyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDO1FBQ3pDLENBQUM7YUFBTSxDQUFDO1lBQ0osSUFBSSxDQUFDLE9BQU8sR0FBRyxTQUFTLENBQUM7UUFDN0IsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQzVDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxvQkFBb0I7UUFDcEUsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2IsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakUsQ0FBQztJQUNILENBQUM7d0dBL0NVLHdCQUF3Qjs0RkFBeEIsd0JBQXdCLGdLQ1pyQyxpc0NBeUJNOzs0RkRiTyx3QkFBd0I7a0JBTHBDLFNBQVM7K0JBQ0Usc0JBQXNCOzJGQVV2QixLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBCc0RhdGVwaWNrZXJDb25maWcgfSBmcm9tICduZ3gtYm9vdHN0cmFwL2RhdGVwaWNrZXInO1xuXG5pbXBvcnQgeyBPZXBhQ29tcG9uZW50SWRTZXJ2aWNlIH0gZnJvbSAnQG9oaW9lcGEvb2VwYS1jb21tb24tbGliJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnb2VwYS1kYXRlcmFuZ2VwaWNrZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vZGF0ZXJhbmdlcGlja2VyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZGF0ZXJhbmdlcGlja2VyLmNvbXBvbmVudC5jc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBEYXRlcmFuZ2VwaWNrZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBwdWJsaWMgY29tcG9uZW50SWQgPSAnT2VwYURhdGVyYW5nZXBpY2tlckNvbXBvbmVudCc7XG4gIHB1YmxpYyBtaW5EYXRlOiBEYXRlIHwgdW5kZWZpbmVkO1xuICBwdWJsaWMgbWF4RGF0ZTogRGF0ZSB8IHVuZGVmaW5lZDtcbiAgcHVibGljIGlzRGlzYWJsZWQgPSBmYWxzZTtcblxuICBASW5wdXQoKSBncm91cCE6IEZvcm1Hcm91cDtcbiAgQElucHV0KCkgZmllbGQhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGJzQ29uZmlnITogUGFydGlhbDxCc0RhdGVwaWNrZXJDb25maWc+O1xuICBASW5wdXQoKSBzaG93VmFsaWRhdGlvbiA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaWRTZXJ2aWNlOiBPZXBhQ29tcG9uZW50SWRTZXJ2aWNlKSB7IH1cblxuICBjaGVja1ZhbGlkaXR5KCkge1xuICAgIGZvciAoY29uc3Qga2V5IGluIHRoaXMuZ3JvdXAuY29udHJvbHMpIHtcbiAgICAgIGlmICh0aGlzLmdyb3VwLmNvbnRyb2xzLmhhc093blByb3BlcnR5KGtleSkgJiYga2V5ID09PSB0aGlzLmZpZWxkKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdyb3VwLmNvbnRyb2xzW2tleV0uc3RhdHVzID09PSAnVkFMSUQnO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNsZWFyUmFuZ2UoKSB7XG4gICAgZm9yIChjb25zdCBrZXkgaW4gdGhpcy5ncm91cC5jb250cm9scykge1xuICAgICAgaWYgKHRoaXMuZ3JvdXAuY29udHJvbHMuaGFzT3duUHJvcGVydHkoa2V5KSAmJiBrZXkgPT09IHRoaXMuZmllbGQpIHtcbiAgICAgICAgdGhpcy5ncm91cC5jb250cm9sc1trZXldLnNldFZhbHVlKG51bGwpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmICh0aGlzLmJzQ29uZmlnICYmIHRoaXMuYnNDb25maWcubWluRGF0ZSkge1xuICAgICAgICB0aGlzLm1pbkRhdGUgPSB0aGlzLmJzQ29uZmlnLm1pbkRhdGU7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5taW5EYXRlID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgICBpZiAodGhpcy5ic0NvbmZpZyAmJiB0aGlzLmJzQ29uZmlnLm1heERhdGUpIHtcbiAgICAgICAgdGhpcy5tYXhEYXRlID0gdGhpcy5ic0NvbmZpZy5tYXhEYXRlO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMubWF4RGF0ZSA9IHVuZGVmaW5lZDtcbiAgICB9XG4gICAgaWYgKHRoaXMuYnNDb25maWcgJiYgdGhpcy5ic0NvbmZpZy5pc0Rpc2FibGVkKSB7XG4gICAgICAgIHRoaXMuaXNEaXNhYmxlZCA9IHRoaXMuYnNDb25maWcuaXNEaXNhYmxlZDsgLy8gZGVmYXVsdHMgdG8gZmFsc2VcbiAgICB9XG4gICAgaWYgKHRoaXMuZ3JvdXApIHtcbiAgICAgICAgdGhpcy5jb21wb25lbnRJZCA9IHRoaXMuaWRTZXJ2aWNlLmdldENvbXBvbmVudElkKHRoaXMuZ3JvdXApO1xuICAgIH1cbiAgfVxuXG59XG4iLCI8ZGl2IFtmb3JtR3JvdXBdPVwiZ3JvdXBcIj5cbiAgPGRpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cFwiPlxuICAgICAgICAgIDxpbnB1dCAgW2lkXT1cImNvbXBvbmVudElkKydfSW5wdXQnXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgICAgICAgIFttaW5EYXRlXT1cIm1pbkRhdGVcIlxuICAgICAgICAgICAgICAgICAgW21heERhdGVdPVwibWF4RGF0ZVwiXG4gICAgICAgICAgICAgICAgICAjZHJwPVwiYnNEYXRlcmFuZ2VwaWNrZXJcIlxuICAgICAgICAgICAgICAgICAgYnNEYXRlcmFuZ2VwaWNrZXJcbiAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiZmllbGRcIlxuICAgICAgICAgICAgICAgICAgW2JzQ29uZmlnXT1cImJzQ29uZmlnXCJcbiAgICAgICAgICAgICAgICAgIFtpc0Rpc2FibGVkXT1cImlzRGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieydpcy1pbnZhbGlkJzpzaG93VmFsaWRhdGlvbiAmJiAhY2hlY2tWYWxpZGl0eSgpfVwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgPGRpdiAqbmdJZj1cIiFpc0Rpc2FibGVkXCIgY2xhc3M9XCJpbnB1dC1ncm91cC1idG5cIj5cbiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIiAoY2xpY2spPVwiZHJwLnRvZ2dsZSgpXCIgW2lkXT1cImNvbXBvbmVudElkKydfVG9nZ2xlQnRuJ1wiIGFyaWEtbGFiZWw9XCJUb2dnbGUgRGF0ZSBQaWNrZXJcIj5cbiAgICAgICAgICAgICAgPGkgY2xhc3M9XCJiaSBiaS1jYWxlbmRhcjNcIj48L2k+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIiAoY2xpY2spPVwiY2xlYXJSYW5nZSgpXCIgW2lkXT1cImNvbXBvbmVudElkKydfQ2xlYXJCdG4nXCIgYXJpYS1sYWJlbD1cIkNsZWFyIFJhbmdlXCI+XG4gICAgICAgICAgICAgIDxpIGNsYXNzPVwiYmkgYmkteC1sZ1wiPjwvaT5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8c21hbGwgY2xhc3M9XCJpbnZhbGlkLWZlZWRiYWNrIGQtYmxvY2tcIiAqbmdJZj1cInNob3dWYWxpZGF0aW9uICYmICFjaGVja1ZhbGlkaXR5KClcIj5EYXRlIGlzIHJlcXVpcmVkPC9zbWFsbD5cbiAgPC9kaXY+XG48L2Rpdj4iXX0=
|
|
@@ -284,7 +284,7 @@ export class DualListBoxComponent {
|
|
|
284
284
|
provide: NG_VALUE_ACCESSOR,
|
|
285
285
|
useExisting: forwardRef(() => DualListBoxComponent),
|
|
286
286
|
multi: true
|
|
287
|
-
}], ngImport: i0, template: "<div class=\"row\" [formGroup]=\"listBoxForm\">\n <div class=\"col-md-5 col-lg-5 col-sm-12\">\n <h4 class=\"text-center vertical-spacing-5\">{{availableText}}</h4>\n <input type=\"text\" class=\"form-control vertical-spacing-5\" placeholder=\"{{availableFilterPlaceholder}}\"\n formControlName=\"availableSearchInput\" />\n <select class=\"form-control list-box\" formControlName=\"availableListBox\" multiple [size]=\"listSize\">\n <option *ngFor=\"let item of availableItems | arrayFilter:['text', searchTermAvailable] | arraySort:[sortBy, 'ASC'];trackBy:trackByValue\"\n [value]=\"item?.value\"\n [id]=\"item?.value+'Option'\"\n (dblclick)=\"moveAvailableItemToSelected(item)\">{{item?.text}}</option>\n </select>\n </div>\n <div class=\"col-md-2 col-lg-2 col-sm-12 center-block text-center\">\n <button type=\"button\"\n class=\"btn btn-primary col-md-8 col-md-offset-2 atr top80 sm-spacing\"\n [disabled]=\"listBoxForm.disabled\"\n [id]=\"idField+'MoveAllBtn'\"\n *ngIf=\"moveAllButton\" (click)=\"moveAllItemsToSelected()\">\n <span class=\"bi bi-list-task\"></span>\n <span class=\"bi bi-chevron-right\"></span>\n </button>\n <button type=\"button\"\n class=\"btn btn-primary col-md-8 col-md-offset-2 str vertical-spacing-5 sm-spacing\"\n [disabled]=\"listBoxForm.disabled || !availableListBoxControl.value?.length\"\n [id]=\"idField+'MoveOneBtn'\"\n (click)=\"moveMarkedAvailableItemsToSelected()\">\n <span class=\"bi bi-chevron-right\"></span>\n </button>\n <button type=\"button\"\n class=\"btn btn-primary col-md-8 col-md-offset-2 stl vertical-spacing-5 sm-spacing\"\n [disabled]=\"listBoxForm.disabled || !selectedListBoxControl.value?.length\"\n [id]=\"idField+'MoveOneLeftBtn'\"\n (click)=\"moveMarkedSelectedItemsToAvailable()\">\n <span class=\"bi bi-chevron-left\"></span>\n </button>\n <button type=\"button\"\n class=\"btn btn-primary col-md-8 col-md-offset-2 atl bottom10 sm-spacing\"\n [disabled]=\"listBoxForm.disabled\"\n [id]=\"idField+'MoveAllLeftBtn'\"\n *ngIf=\"moveAllButton\" (click)=\"moveAllItemsToAvailable()\">\n <span class=\"bi bi-chevron-left\"></span>\n <span class=\"bi bi-list-task\"></span>\n </button>\n </div>\n <div class=\"col-md-5 col-lg-5 col-sm-12\">\n <h4 class=\"text-center vertical-spacing-5\">{{selectedText}}</h4>\n <input type=\"text\" class=\"form-control vertical-spacing-5\" placeholder=\"{{selectedFilterPlaceholder}}\"\n formControlName=\"selectedSearchInput\" />\n <select class=\"form-control list-box\" formControlName=\"selectedListBox\" multiple [size]=\"listSize\">\n <option *ngFor=\"let item of selectedItems | arrayFilter:['text', searchTermSelected] | arraySort:[sortBy, 'ASC'];trackBy:trackByValue\"\n [value]=\"item?.value\"\n (dblclick)=\"moveSelectedItemToAvailable(item)\">{{item?.text}}</option>\n </select>\n </div>\n</div>\n", styles: [".list-box{min-height:200px;width:100%}.top100{margin-top:100px}.top80{margin-top:80px}.bottom10{margin-bottom:10px}.vertical-spacing-5{margin-top:5px;margin-bottom:5px}.center-block{min-height:50px}@media only screen and (max-width : 768px){.sm-spacing{margin-top:10px;margin-bottom:10px}}@media only screen and (min-width : 768px) and (max-width : 992px){.sm-spacing{margin-top:10px;margin-bottom:10px}}@media only screen and (max-width : 480px){.sm-spacing{margin-top:10px;margin-bottom:10px}}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.SelectMultipleControlValueAccessor, selector: "select[multiple][formControlName],select[multiple][formControl],select[multiple][ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "pipe", type: i4.ArrayFilterPipe, name: "arrayFilter" }, { kind: "pipe", type: i4.ArraySortPipe, name: "arraySort" }] });
|
|
287
|
+
}], ngImport: i0, template: "<div class=\"row\" [formGroup]=\"listBoxForm\">\n <div class=\"col-md-5 col-lg-5 col-sm-12\">\n <h4 class=\"text-center vertical-spacing-5\">{{availableText}}</h4>\n <input type=\"text\" class=\"form-control vertical-spacing-5\" placeholder=\"{{availableFilterPlaceholder}}\"\n formControlName=\"availableSearchInput\" />\n <select class=\"form-control list-box\" formControlName=\"availableListBox\" multiple [size]=\"listSize\">\n <option *ngFor=\"let item of availableItems | arrayFilter:['text', searchTermAvailable] | arraySort:[sortBy, 'ASC'];trackBy:trackByValue\"\n [value]=\"item?.value\"\n [id]=\"item?.value+'Option'\"\n (dblclick)=\"moveAvailableItemToSelected(item)\">{{item?.text}}</option>\n </select>\n </div>\n <div class=\"col-md-2 col-lg-2 col-sm-12 center-block text-center\">\n <button type=\"button\"\n class=\"btn btn-primary col-md-8 col-md-offset-2 atr top80 sm-spacing\"\n [disabled]=\"listBoxForm.disabled\"\n [id]=\"idField+'MoveAllBtn'\"\n *ngIf=\"moveAllButton\" (click)=\"moveAllItemsToSelected()\" aria-label=\"Move All Items To Selected\">\n <span class=\"bi bi-list-task\"></span>\n <span class=\"bi bi-chevron-right\"></span>\n </button>\n <button type=\"button\"\n class=\"btn btn-primary col-md-8 col-md-offset-2 str vertical-spacing-5 sm-spacing\"\n [disabled]=\"listBoxForm.disabled || !availableListBoxControl.value?.length\"\n [id]=\"idField+'MoveOneBtn'\"\n (click)=\"moveMarkedAvailableItemsToSelected()\" aria-label=\"Move Marked Available Items To Selected\">\n <span class=\"bi bi-chevron-right\"></span>\n </button>\n <button type=\"button\"\n class=\"btn btn-primary col-md-8 col-md-offset-2 stl vertical-spacing-5 sm-spacing\"\n [disabled]=\"listBoxForm.disabled || !selectedListBoxControl.value?.length\"\n [id]=\"idField+'MoveOneLeftBtn'\"\n (click)=\"moveMarkedSelectedItemsToAvailable()\" aria-label=\"Move Marked Selected Items To Available\">\n <span class=\"bi bi-chevron-left\"></span>\n </button>\n <button type=\"button\"\n class=\"btn btn-primary col-md-8 col-md-offset-2 atl bottom10 sm-spacing\"\n [disabled]=\"listBoxForm.disabled\"\n [id]=\"idField+'MoveAllLeftBtn'\"\n *ngIf=\"moveAllButton\" (click)=\"moveAllItemsToAvailable()\" aria-label=\"Move All Items To Available\">\n <span class=\"bi bi-chevron-left\"></span>\n <span class=\"bi bi-list-task\"></span>\n </button>\n </div>\n <div class=\"col-md-5 col-lg-5 col-sm-12\">\n <h4 class=\"text-center vertical-spacing-5\">{{selectedText}}</h4>\n <input type=\"text\" class=\"form-control vertical-spacing-5\" placeholder=\"{{selectedFilterPlaceholder}}\"\n formControlName=\"selectedSearchInput\" />\n <select class=\"form-control list-box\" formControlName=\"selectedListBox\" multiple [size]=\"listSize\">\n <option *ngFor=\"let item of selectedItems | arrayFilter:['text', searchTermSelected] | arraySort:[sortBy, 'ASC'];trackBy:trackByValue\"\n [value]=\"item?.value\"\n (dblclick)=\"moveSelectedItemToAvailable(item)\">{{item?.text}}</option>\n </select>\n </div>\n</div>\n", styles: [".list-box{min-height:200px;width:100%}.top100{margin-top:100px}.top80{margin-top:80px}.bottom10{margin-bottom:10px}.vertical-spacing-5{margin-top:5px;margin-bottom:5px}.center-block{min-height:50px}@media only screen and (max-width : 768px){.sm-spacing{margin-top:10px;margin-bottom:10px}}@media only screen and (min-width : 768px) and (max-width : 992px){.sm-spacing{margin-top:10px;margin-bottom:10px}}@media only screen and (max-width : 480px){.sm-spacing{margin-top:10px;margin-bottom:10px}}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.SelectMultipleControlValueAccessor, selector: "select[multiple][formControlName],select[multiple][formControl],select[multiple][ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "pipe", type: i4.ArrayFilterPipe, name: "arrayFilter" }, { kind: "pipe", type: i4.ArraySortPipe, name: "arraySort" }] });
|
|
288
288
|
}
|
|
289
289
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DualListBoxComponent, decorators: [{
|
|
290
290
|
type: Component,
|
|
@@ -292,7 +292,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
292
292
|
provide: NG_VALUE_ACCESSOR,
|
|
293
293
|
useExisting: forwardRef(() => DualListBoxComponent),
|
|
294
294
|
multi: true
|
|
295
|
-
}], template: "<div class=\"row\" [formGroup]=\"listBoxForm\">\n <div class=\"col-md-5 col-lg-5 col-sm-12\">\n <h4 class=\"text-center vertical-spacing-5\">{{availableText}}</h4>\n <input type=\"text\" class=\"form-control vertical-spacing-5\" placeholder=\"{{availableFilterPlaceholder}}\"\n formControlName=\"availableSearchInput\" />\n <select class=\"form-control list-box\" formControlName=\"availableListBox\" multiple [size]=\"listSize\">\n <option *ngFor=\"let item of availableItems | arrayFilter:['text', searchTermAvailable] | arraySort:[sortBy, 'ASC'];trackBy:trackByValue\"\n [value]=\"item?.value\"\n [id]=\"item?.value+'Option'\"\n (dblclick)=\"moveAvailableItemToSelected(item)\">{{item?.text}}</option>\n </select>\n </div>\n <div class=\"col-md-2 col-lg-2 col-sm-12 center-block text-center\">\n <button type=\"button\"\n class=\"btn btn-primary col-md-8 col-md-offset-2 atr top80 sm-spacing\"\n [disabled]=\"listBoxForm.disabled\"\n [id]=\"idField+'MoveAllBtn'\"\n *ngIf=\"moveAllButton\" (click)=\"moveAllItemsToSelected()\">\n <span class=\"bi bi-list-task\"></span>\n <span class=\"bi bi-chevron-right\"></span>\n </button>\n <button type=\"button\"\n class=\"btn btn-primary col-md-8 col-md-offset-2 str vertical-spacing-5 sm-spacing\"\n [disabled]=\"listBoxForm.disabled || !availableListBoxControl.value?.length\"\n [id]=\"idField+'MoveOneBtn'\"\n (click)=\"moveMarkedAvailableItemsToSelected()\">\n <span class=\"bi bi-chevron-right\"></span>\n </button>\n <button type=\"button\"\n class=\"btn btn-primary col-md-8 col-md-offset-2 stl vertical-spacing-5 sm-spacing\"\n [disabled]=\"listBoxForm.disabled || !selectedListBoxControl.value?.length\"\n [id]=\"idField+'MoveOneLeftBtn'\"\n (click)=\"moveMarkedSelectedItemsToAvailable()\">\n <span class=\"bi bi-chevron-left\"></span>\n </button>\n <button type=\"button\"\n class=\"btn btn-primary col-md-8 col-md-offset-2 atl bottom10 sm-spacing\"\n [disabled]=\"listBoxForm.disabled\"\n [id]=\"idField+'MoveAllLeftBtn'\"\n *ngIf=\"moveAllButton\" (click)=\"moveAllItemsToAvailable()\">\n <span class=\"bi bi-chevron-left\"></span>\n <span class=\"bi bi-list-task\"></span>\n </button>\n </div>\n <div class=\"col-md-5 col-lg-5 col-sm-12\">\n <h4 class=\"text-center vertical-spacing-5\">{{selectedText}}</h4>\n <input type=\"text\" class=\"form-control vertical-spacing-5\" placeholder=\"{{selectedFilterPlaceholder}}\"\n formControlName=\"selectedSearchInput\" />\n <select class=\"form-control list-box\" formControlName=\"selectedListBox\" multiple [size]=\"listSize\">\n <option *ngFor=\"let item of selectedItems | arrayFilter:['text', searchTermSelected] | arraySort:[sortBy, 'ASC'];trackBy:trackByValue\"\n [value]=\"item?.value\"\n (dblclick)=\"moveSelectedItemToAvailable(item)\">{{item?.text}}</option>\n </select>\n </div>\n</div>\n", styles: [".list-box{min-height:200px;width:100%}.top100{margin-top:100px}.top80{margin-top:80px}.bottom10{margin-bottom:10px}.vertical-spacing-5{margin-top:5px;margin-bottom:5px}.center-block{min-height:50px}@media only screen and (max-width : 768px){.sm-spacing{margin-top:10px;margin-bottom:10px}}@media only screen and (min-width : 768px) and (max-width : 992px){.sm-spacing{margin-top:10px;margin-bottom:10px}}@media only screen and (max-width : 480px){.sm-spacing{margin-top:10px;margin-bottom:10px}}\n"] }]
|
|
295
|
+
}], template: "<div class=\"row\" [formGroup]=\"listBoxForm\">\n <div class=\"col-md-5 col-lg-5 col-sm-12\">\n <h4 class=\"text-center vertical-spacing-5\">{{availableText}}</h4>\n <input type=\"text\" class=\"form-control vertical-spacing-5\" placeholder=\"{{availableFilterPlaceholder}}\"\n formControlName=\"availableSearchInput\" />\n <select class=\"form-control list-box\" formControlName=\"availableListBox\" multiple [size]=\"listSize\">\n <option *ngFor=\"let item of availableItems | arrayFilter:['text', searchTermAvailable] | arraySort:[sortBy, 'ASC'];trackBy:trackByValue\"\n [value]=\"item?.value\"\n [id]=\"item?.value+'Option'\"\n (dblclick)=\"moveAvailableItemToSelected(item)\">{{item?.text}}</option>\n </select>\n </div>\n <div class=\"col-md-2 col-lg-2 col-sm-12 center-block text-center\">\n <button type=\"button\"\n class=\"btn btn-primary col-md-8 col-md-offset-2 atr top80 sm-spacing\"\n [disabled]=\"listBoxForm.disabled\"\n [id]=\"idField+'MoveAllBtn'\"\n *ngIf=\"moveAllButton\" (click)=\"moveAllItemsToSelected()\" aria-label=\"Move All Items To Selected\">\n <span class=\"bi bi-list-task\"></span>\n <span class=\"bi bi-chevron-right\"></span>\n </button>\n <button type=\"button\"\n class=\"btn btn-primary col-md-8 col-md-offset-2 str vertical-spacing-5 sm-spacing\"\n [disabled]=\"listBoxForm.disabled || !availableListBoxControl.value?.length\"\n [id]=\"idField+'MoveOneBtn'\"\n (click)=\"moveMarkedAvailableItemsToSelected()\" aria-label=\"Move Marked Available Items To Selected\">\n <span class=\"bi bi-chevron-right\"></span>\n </button>\n <button type=\"button\"\n class=\"btn btn-primary col-md-8 col-md-offset-2 stl vertical-spacing-5 sm-spacing\"\n [disabled]=\"listBoxForm.disabled || !selectedListBoxControl.value?.length\"\n [id]=\"idField+'MoveOneLeftBtn'\"\n (click)=\"moveMarkedSelectedItemsToAvailable()\" aria-label=\"Move Marked Selected Items To Available\">\n <span class=\"bi bi-chevron-left\"></span>\n </button>\n <button type=\"button\"\n class=\"btn btn-primary col-md-8 col-md-offset-2 atl bottom10 sm-spacing\"\n [disabled]=\"listBoxForm.disabled\"\n [id]=\"idField+'MoveAllLeftBtn'\"\n *ngIf=\"moveAllButton\" (click)=\"moveAllItemsToAvailable()\" aria-label=\"Move All Items To Available\">\n <span class=\"bi bi-chevron-left\"></span>\n <span class=\"bi bi-list-task\"></span>\n </button>\n </div>\n <div class=\"col-md-5 col-lg-5 col-sm-12\">\n <h4 class=\"text-center vertical-spacing-5\">{{selectedText}}</h4>\n <input type=\"text\" class=\"form-control vertical-spacing-5\" placeholder=\"{{selectedFilterPlaceholder}}\"\n formControlName=\"selectedSearchInput\" />\n <select class=\"form-control list-box\" formControlName=\"selectedListBox\" multiple [size]=\"listSize\">\n <option *ngFor=\"let item of selectedItems | arrayFilter:['text', searchTermSelected] | arraySort:[sortBy, 'ASC'];trackBy:trackByValue\"\n [value]=\"item?.value\"\n (dblclick)=\"moveSelectedItemToAvailable(item)\">{{item?.text}}</option>\n </select>\n </div>\n</div>\n", styles: [".list-box{min-height:200px;width:100%}.top100{margin-top:100px}.top80{margin-top:80px}.bottom10{margin-bottom:10px}.vertical-spacing-5{margin-top:5px;margin-bottom:5px}.center-block{min-height:50px}@media only screen and (max-width : 768px){.sm-spacing{margin-top:10px;margin-bottom:10px}}@media only screen and (min-width : 768px) and (max-width : 992px){.sm-spacing{margin-top:10px;margin-bottom:10px}}@media only screen and (max-width : 480px){.sm-spacing{margin-top:10px;margin-bottom:10px}}\n"] }]
|
|
296
296
|
}], ctorParameters: () => [{ type: i1.FormBuilder }, { type: i2.ToastrService }], propDecorators: { available: [{
|
|
297
297
|
type: Input
|
|
298
298
|
}], selected: [{
|
|
@@ -336,4 +336,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
336
336
|
}], onItemsMoved: [{
|
|
337
337
|
type: Output
|
|
338
338
|
}] } });
|
|
339
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHVhbC1saXN0LWJveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vZXBhLXVpLWxpYi9zcmMvbGliL2R1YWwtbGlzdC1ib3gvZHVhbC1saXN0LWJveC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vZXBhLXVpLWxpYi9zcmMvbGliL2R1YWwtbGlzdC1ib3gvZHVhbC1saXN0LWJveC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFVLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRixPQUFPLEVBQTBCLFdBQVcsRUFBRSxpQkFBaUIsRUFBd0IsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5RyxPQUFPLEVBQUUsWUFBWSxFQUFPLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSTlFLE9BQU8sZ0JBQWdCLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxjQUFjLE1BQU0sdUJBQXVCLENBQUM7Ozs7OztBQUVuRDs7O0dBR0c7QUFZSCxNQUFNLE9BQU8sb0JBQW9CO0lBb0ZaO0lBQXlCO0lBbEY1Qyx3Q0FBd0M7SUFDeEMsSUFBYSxTQUFTLENBQUMsS0FBaUI7UUFDcEMsSUFBSSxDQUFDLGNBQWMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBUyxFQUFFLEtBQWEsRUFBRSxFQUFFLENBQUMsQ0FBQztnQkFDdkUsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsUUFBUSxFQUFFO2dCQUN2QyxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7YUFDN0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNULENBQUM7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VTtzQkFBbEIsS0FBSztnQkFFRyxTQUFTO3NCQUFqQixLQUFLO2dCQUVHLEtBQUs7c0JBQWIsS0FBSztnQkFFRyxZQUFZO3NCQUFwQixLQUFLO2dCQUVHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBRUcsYUFBYTtzQkFBckIsS0FBSztnQkFFRyxZQUFZO3NCQUFwQixLQUFLO2dCQUVHLDBCQUEwQjtzQkFBbEMsS0FBSztnQkFFRyx5QkFBeUI7c0JBQWpDLEtBQUs7Z0JBRUcsT0FBTztzQkFBZixLQUFLO2dCQUVPLFFBQVE7c0JBQXBCLEtBQUs7Z0JBU0csUUFBUTtzQkFBaEIsS0FBSztnQkFFRyxNQUFNO3NCQUFkLEtBQUs7Z0JBRUcsa0JBQWtCO3NCQUExQixLQUFLO2dCQUdJLHVCQUF1QjtzQkFBaEMsTUFBTTtnQkFFRyx1QkFBdUI7c0JBQWhDLE1BQU07Z0JBRUcsWUFBWTtzQkFBckIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImRlY2xhcmUgdmFyIHJlcXVpcmU6IGFueTtcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBPbkluaXQsIGZvcndhcmRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Hcm91cCwgRm9ybUJ1aWxkZXIsIEZvcm1Db250cm9sLCBOR19WQUxVRV9BQ0NFU1NPUiwgQ29udHJvbFZhbHVlQWNjZXNzb3IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIG1hcCwgZGlzdGluY3RVbnRpbENoYW5nZWQsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFRvYXN0clNlcnZpY2UgfSBmcm9tICduZ3gtdG9hc3RyJztcbmltcG9ydCB7IElJdGVtc01vdmVkRXZlbnQgfSBmcm9tICcuL2l0ZW1zLW1vdmVkLWV2ZW50JztcbmltcG9ydCB7IElMaXN0Qm94SXRlbSB9IGZyb20gJy4vbGlzdC1ib3gtaXRlbSc7XG5pbXBvcnQgaW50ZXJzZWN0aW9uV2l0aCBmcm9tICdsb2Rhc2gvaW50ZXJzZWN0aW9uV2l0aCc7XG5pbXBvcnQgZGlmZmVyZW5jZVdpdGggZnJvbSAnbG9kYXNoL2RpZmZlcmVuY2VXaXRoJztcblxuLyoqXG4gKiBOT1RFOiBUaGlzIGNvZGUgaXMgYSBtb2RpZmllZCB2ZXJzaW9uIG9mIHRoZSBwcm9qZWN0OiBodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9uZzItZHVhbC1saXN0LWJveFxuICogTElDRU5TRTogTUlUIMKpIFtFbGRhciBHcmFudWxvXShtYWlsdG86ZWxkYXIzMkBnbWFpbC5jb20pXG4gKi9cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnb2VwYS1kdWFsLWxpc3QtYm94JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2R1YWwtbGlzdC1ib3guY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kdWFsLWxpc3QtYm94LmNvbXBvbmVudC5jc3MnXSxcbiAgcHJvdmlkZXJzOiBbe1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBEdWFsTGlzdEJveENvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICB9XVxufSlcbmV4cG9ydCBjbGFzcyBEdWFsTGlzdEJveENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuXG4gIC8vIGFycmF5IG9mIGl0ZW1zIHRvIGRpc3BsYXkgaW4gbGVmdCBib3hcbiAgQElucHV0KCkgc2V0IGF2YWlsYWJsZShpdGVtczogQXJyYXk8YW55Pikge1xuICAgICAgdGhpcy5hdmFpbGFibGVJdGVtcyA9IFsuLi4oaXRlbXMgfHwgW10pLm1hcCgoaXRlbTogYW55LCBpbmRleDogbnVtYmVyKSA9PiAoe1xuICAgICAgICAgIHZhbHVlOiBpdGVtW3RoaXMudmFsdWVGaWVsZF0udG9TdHJpbmcoKSxcbiAgICAgICAgICB0ZXh0OiBpdGVtW3RoaXMudGV4dEZpZWxkXVxuICAgICAgfSkpXTtcbiAgfTtcbiAgLy8gYXJyYXkgb2YgaXRlbXMgdG8gZGlzcGxheSBpbiByaWdodCBib3hcbiAgQElucHV0KCkgc2V0IHNlbGVjdGVkKGl0ZW1zOiBBcnJheTxhbnk+KSB7XG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSBbLi4uKGl0ZW1zIHx8IFtdKS5tYXAoKGl0ZW06IGFueSwgaW5kZXg6IG51bWJlcikgPT4gKHtcbiAgICAgICAgICB2YWx1ZTogaXRlbVt0aGlzLnZhbHVlRmllbGRdLnRvU3RyaW5nKCksXG4gICAgICAgICAgdGV4dDogaXRlbVt0aGlzLnRleHRGaWVsZF1cbiAgICAgIH0pKV07XG4gIH07XG4gIC8vIGlucHV0IHRvIHNldCBzZWFyY2ggdGVybSBmb3IgYXZhaWxhYmxlIGxpc3QgYm94IGZyb20gdGhlIG91dHNpZGVcbiAgQElucHV0KCkgc2V0IGF2YWlsYWJsZVNlYXJjaChzZWFyY2hUZXJtOiBzdHJpbmcpIHtcbiAgICAgIHRoaXMuc2VhcmNoVGVybUF2YWlsYWJsZSA9IHNlYXJjaFRlcm07XG4gICAgICB0aGlzLmF2YWlsYWJsZVNlYXJjaElucHV0Q29udHJvbC5zZXRWYWx1ZShzZWFyY2hUZXJtKTtcbiAgfTtcbiAgLy8gaW5wdXQgdG8gc2V0IHNlYXJjaCB0ZXJtIGZvciBzZWxlY3RlZCBsaXN0IGJveCBmcm9tIHRoZSBvdXRzaWRlXG4gIEBJbnB1dCgpIHNldCBzZWxlY3RlZFNlYXJjaChzZWFyY2hUZXJtOiBzdHJpbmcpIHtcbiAgICAgIHRoaXMuc2VhcmNoVGVybVNlbGVjdGVkID0gc2VhcmNoVGVybTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRTZWFyY2hJbnB1dENvbnRyb2wuc2V0VmFsdWUoc2VhcmNoVGVybSk7XG4gIH07XG4gIC8vIGZpZWxkIHRvIHVzZSBmb3IgdmFsdWUgb2Ygb3B0aW9uXG4gIEBJbnB1dCgpIHZhbHVlRmllbGQgPSAnaWQnO1xuICAvLyBmaWVsZCB0byB1c2UgZm9yIGRpc3BsYXlpbmcgb3B0aW9uIHRleHRcbiAgQElucHV0KCkgdGV4dEZpZWxkID0gJ25hbWUnO1xuICAvLyB0ZXh0IHRvIGRpc3BsYXkgYXMgdGl0bGUgYWJvdmUgY29tcG9uZW50XG4gIEBJbnB1dCgpIHRpdGxlOiBzdHJpbmcgPSAnJztcbiAgLy8gdGltZSB0byBkZWJvdW5jZSBzZWFyY2ggb3V0cHV0IGluIG1zXG4gIEBJbnB1dCgpIGRlYm91bmNlVGltZSA9IDUwMDtcbiAgLy8gc2hvdy9oaWRlIGJ1dHRvbiB0byBtb3ZlIGFsbCBpdGVtcyBiZXR3ZWVuIGJveGVzXG4gIEBJbnB1dCgpIG1vdmVBbGxCdXR0b24gPSB0cnVlO1xuICAvLyB0ZXh0IGRpc3BsYXllZCBvdmVyIHRoZSBhdmFpbGFibGUgaXRlbXMgbGlzdCBib3hcbiAgQElucHV0KCkgYXZhaWxhYmxlVGV4dCA9ICdBdmFpbGFibGUgaXRlbXMnO1xuICAvLyB0ZXh0IGRpc3BsYXllZCBvdmVyIHRoZSBzZWxlY3RlZCBpdGVtcyBsaXN0IGJveFxuICBASW5wdXQoKSBzZWxlY3RlZFRleHQgPSAnU2VsZWN0ZWQgaXRlbXMnO1xuICAvLyBzZXQgcGxhY2Vob2xkZXIgdGV4dCBpbiBhdmFpbGFibGUgaXRlbXMgbGlzdCBib3hcbiAgQElucHV0KCkgYXZhaWxhYmxlRmlsdGVyUGxhY2Vob2xkZXI9ICdGaWx0ZXIuLi4nO1xuICAvLyBzZXQgcGxhY2Vob2xkZXIgdGV4dCBpbiBzZWxlY3RlZCBpdGVtcyBsaXN0IGJveFxuICBASW5wdXQoKSBzZWxlY3RlZEZpbHRlclBsYWNlaG9sZGVyID0gJ0ZpbHRlci4uLic7XG4gIC8vIGZpZWxkIHRvIHVzZSBmb3IgaHRtbCBpZFxuICBASW5wdXQoKSBpZEZpZWxkID0gJ2lkJztcbiAgLy8gZGlzYWJsZSBjb21wb25lbnRcbiAgQElucHV0KCkgc2V0IGRpc2FibGVkKGRpc2FibGVkOiBib29sZWFuKSB7XG4gICAgICBpZiAodGhpcy5saXN0Qm94Rm9ybSkge1xuICAgICAgICAgIGlmIChkaXNhYmxlZCkge1xuICAgICAgICAgICAgICB0aGlzLmxpc3RCb3hGb3JtLmRpc2FibGUoKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICB0aGlzLmxpc3RCb3hGb3JtLmVuYWJsZSgpO1xuICAgICAgICAgIH1cbiAgICAgIH1cbiAgfVxuICBASW5wdXQoKSBsaXN0U2l6ZSA9IDEwO1xuXG4gIEBJbnB1dCgpIHNvcnRCeSA9ICd0ZXh0JztcblxuICBASW5wdXQoKSBtYXhTZWxlY3RhYmxlSXRlbXM6IG51bWJlciB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcblxuICAvLyBldmVudCBjYWxsZWQgd2hlbiBpdGVtIG9yIGl0ZW1zIGZyb20gYXZhaWxhYmxlIGl0ZW1zKGxlZnQgYm94KSBpcyBzZWxlY3RlZFxuICBAT3V0cHV0KCkgb25BdmFpbGFibGVJdGVtU2VsZWN0ZWQ6IEV2ZW50RW1pdHRlcjx7fSB8IEFycmF5PHt9Pj4gPSBuZXcgRXZlbnRFbWl0dGVyPHt9IHwgQXJyYXk8e30+PigpO1xuICAvLyBldmVudCBjYWxsZWQgd2hlbiBpdGVtIG9yIGl0ZW1zIGZyb20gc2VsZWN0ZWQgaXRlbXMocmlnaHQgYm94KSBpcyBzZWxlY3RlZFxuICBAT3V0cHV0KCkgb25TZWxlY3RlZEl0ZW1zU2VsZWN0ZWQ6IEV2ZW50RW1pdHRlcjx7fSB8IEFycmF5PHt9Pj4gPSBuZXcgRXZlbnRFbWl0dGVyPHt9IHwgQXJyYXk8e30+PigpO1xuICAvLyBldmVudCBjYWxsZWQgd2hlbiBpdGVtcyBhcmUgbW92ZWQgYmV0d2VlbiBib3hlcywgcmV0dXJucyBzdGF0ZSBvZiBib3RoIGJveGVzIGFuZCBpdGVtIG1vdmVkXG4gIEBPdXRwdXQoKSBvbkl0ZW1zTW92ZWQ6IEV2ZW50RW1pdHRlcjxJSXRlbXNNb3ZlZEV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8SUl0ZW1zTW92ZWRFdmVudD4oKTtcblxuICAvLyBwcml2YXRlIHZhcmlhYmxlcyB0byBtYW5hZ2UgY2xhc3NcbiAgc2VhcmNoVGVybUF2YWlsYWJsZSA9ICcnO1xuICBzZWFyY2hUZXJtU2VsZWN0ZWQgPSAnJztcbiAgYXZhaWxhYmxlSXRlbXM6IEFycmF5PElMaXN0Qm94SXRlbT4gPSBbXTtcbiAgc2VsZWN0ZWRJdGVtczogQXJyYXk8SUxpc3RCb3hJdGVtPiA9IFtdO1xuICBsaXN0Qm94Rm9ybTogRm9ybUdyb3VwO1xuICBhdmFpbGFibGVMaXN0Qm94Q29udHJvbDogRm9ybUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woKTtcbiAgc2VsZWN0ZWRMaXN0Qm94Q29udHJvbDogRm9ybUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woKTtcbiAgYXZhaWxhYmxlU2VhcmNoSW5wdXRDb250cm9sOiBGb3JtQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgpO1xuICBzZWxlY3RlZFNlYXJjaElucHV0Q29udHJvbDogRm9ybUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woKTtcblxuICAvLyBjb250cm9sIHZhbHVlIGFjY2Vzc29yc1xuICBfb25DaGFuZ2UgPSAoXzogYW55KSA9PiB7IH07XG4gIF9vblRvdWNoZWQgPSAoKSA9PiB7IH07XG5cbiAgY29uc3RydWN0b3IocHVibGljIGZiOiBGb3JtQnVpbGRlciwgcHJpdmF0ZSB0b2FzdHI6IFRvYXN0clNlcnZpY2UpIHsgXG4gICAgdGhpcy5saXN0Qm94Rm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgICBhdmFpbGFibGVMaXN0Qm94OiB0aGlzLmF2YWlsYWJsZUxpc3RCb3hDb250cm9sLFxuICAgICAgICBzZWxlY3RlZExpc3RCb3g6IHRoaXMuc2VsZWN0ZWRMaXN0Qm94Q29udHJvbCxcbiAgICAgICAgYXZhaWxhYmxlU2VhcmNoSW5wdXQ6IHRoaXMuYXZhaWxhYmxlU2VhcmNoSW5wdXRDb250cm9sLFxuICAgICAgICBzZWxlY3RlZFNlYXJjaElucHV0OiB0aGlzLnNlbGVjdGVkU2VhcmNoSW5wdXRDb250cm9sXG4gICAgfSk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmF2YWlsYWJsZUxpc3RCb3hDb250cm9sXG4gICAgICAgIC52YWx1ZUNoYW5nZXNcbiAgICAgICAgLnN1YnNjcmliZSgoaXRlbXM6IEFycmF5PHt9PikgPT4gdGhpcy5vbkF2YWlsYWJsZUl0ZW1TZWxlY3RlZC5lbWl0KGl0ZW1zKSk7XG4gICAgdGhpcy5zZWxlY3RlZExpc3RCb3hDb250cm9sXG4gICAgICAgIC52YWx1ZUNoYW5nZXNcbiAgICAgICAgLnN1YnNjcmliZSgoaXRlbXM6IEFycmF5PHt9PikgPT4gdGhpcy5vblNlbGVjdGVkSXRlbXNTZWxlY3RlZC5lbWl0KGl0ZW1zKSk7XG4gICAgdGhpcy5hdmFpbGFibGVTZWFyY2hJbnB1dENvbnRyb2xcbiAgICAgICAgLnZhbHVlQ2hhbmdlcy5waXBlKFxuICAgICAgICAgICAgZGVib3VuY2VUaW1lKHRoaXMuZGVib3VuY2VUaW1lKSxcbiAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICAgICAgICB0YXAoKHNlYXJjaDogc3RyaW5nKSA9PiB0aGlzLnNlYXJjaFRlcm1BdmFpbGFibGUgPSBzZWFyY2gpXG4gICAgICAgICkuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5zZWxlY3RlZFNlYXJjaElucHV0Q29udHJvbFxuICAgICAgICAudmFsdWVDaGFuZ2VzLnBpcGUoXG4gICAgICAgICAgICBkZWJvdW5jZVRpbWUodGhpcy5kZWJvdW5jZVRpbWUpLFxuICAgICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgICAgICAgIHRhcCgoc2VhcmNoOiBzdHJpbmcpID0+IHRoaXMuc2VhcmNoVGVybVNlbGVjdGVkID0gc2VhcmNoKVxuICAgICAgICApLnN1YnNjcmliZSgpO1xuICB9XG4gIC8qKlxuICAgKiBNb3ZlIGFsbCBpdGVtcyBmcm9tIGF2YWlsYWJsZSB0byBzZWxlY3RlZFxuICAgKi9cbiAgbW92ZUFsbEl0ZW1zVG9TZWxlY3RlZCgpOiB2b2lkIHtcbiAgICB0aGlzLnRvYXN0ci5jbGVhcigpO1xuICAgICAgaWYgKCF0aGlzLmF2YWlsYWJsZUl0ZW1zLmxlbmd0aCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLm1heFNlbGVjdGFibGVJdGVtcyAmJiAodGhpcy5hdmFpbGFibGVJdGVtcy5sZW5ndGggKyB0aGlzLnNlbGVjdGVkSXRlbXMubGVuZ3RoID4gdGhpcy5tYXhTZWxlY3RhYmxlSXRlbXMpKSB7XG4gICAgICAgIHRoaXMudG9hc3RyLmluZm8oJ09ubHkgJyArIHRoaXMubWF4U2VsZWN0YWJsZUl0ZW1zICsgJyBpdGVtcyBtYXkgYmUgYWRkZWQgdG8gJyArIHRoaXMuc2VsZWN0ZWRUZXh0LCAnJywgeyBkaXNhYmxlVGltZU91dDogZmFsc2UsIHRpbWVPdXQ6IDUwMDAgfSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IFsuLi50aGlzLnNlbGVjdGVkSXRlbXMsIC4uLnRoaXMuYXZhaWxhYmxlSXRlbXNdO1xuICAgICAgdGhpcy5hdmFpbGFibGVJdGVtcyA9IFtdO1xuICAgICAgdGhpcy5vbkl0ZW1zTW92ZWQuZW1pdCh7XG4gICAgICAgICAgYXZhaWxhYmxlOiB0aGlzLmF2YWlsYWJsZUl0ZW1zLFxuICAgICAgICAgIHNlbGVjdGVkOiB0aGlzLnNlbGVjdGVkSXRlbXMsXG4gICAgICAgICAgbW92ZWRJdGVtczogdGhpcy5hdmFpbGFibGVMaXN0Qm94Q29udHJvbC52YWx1ZSxcbiAgICAgICAgICBmcm9tOiAnYXZhaWxhYmxlJyxcbiAgICAgICAgICB0bzogJ3NlbGVjdGVkJ1xuICAgICAgfSk7XG4gICAgICB0aGlzLmF2YWlsYWJsZUxpc3RCb3hDb250cm9sLnNldFZhbHVlKFtdKTtcbiAgICAgIHRoaXMud3JpdGVWYWx1ZSh0aGlzLmdldFZhbHVlcygpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNb3ZlIGFsbCBpdGVtcyBmcm9tIHNlbGVjdGVkIHRvIGF2YWlsYWJsZVxuICAgKi9cbiAgbW92ZUFsbEl0ZW1zVG9BdmFpbGFibGUoKTogdm9pZCB7XG4gICAgdGhpcy50b2FzdHIuY2xlYXIoKTtcblxuICAgICAgaWYgKCF0aGlzLnNlbGVjdGVkSXRlbXMubGVuZ3RoKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdGhpcy5hdmFpbGFibGVJdGVtcyA9IFsuLi50aGlzLmF2YWlsYWJsZUl0ZW1zLCAuLi50aGlzLnNlbGVjdGVkSXRlbXNdO1xuICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zID0gW107XG4gICAgICB0aGlzLm9uSXRlbXNNb3ZlZC5lbWl0KHtcbiAgICAgICAgICBhdmFpbGFibGU6IHRoaXMuYXZhaWxhYmxlSXRlbXMsXG4gICAgICAgICAgc2VsZWN0ZWQ6IHRoaXMuc2VsZWN0ZWRJdGVtcyxcbiAgICAgICAgICBtb3ZlZEl0ZW1zOiB0aGlzLnNlbGVjdGVkTGlzdEJveENvbnRyb2wudmFsdWUsXG4gICAgICAgICAgZnJvbTogJ3NlbGVjdGVkJyxcbiAgICAgICAgICB0bzogJ2F2YWlsYWJsZSdcbiAgICAgIH0pO1xuICAgICAgdGhpcy5zZWxlY3RlZExpc3RCb3hDb250cm9sLnNldFZhbHVlKFtdKTtcbiAgICAgIHRoaXMud3JpdGVWYWx1ZShbXSk7XG4gIH1cblxuICAvKipcbiAgICogTW92ZSBtYXJrZWQgaXRlbXMgZnJvbSBhdmFpbGFibGUgaXRlbXMgdG8gc2VsZWN0ZWQgaXRlbXNcbiAgICovXG4gIG1vdmVNYXJrZWRBdmFpbGFibGVJdGVtc1RvU2VsZWN0ZWQoKTogdm9pZCB7XG4gICAgdGhpcy50b2FzdHIuY2xlYXIoKTtcbiAgICBsZXQgcGVuZGluZ0l0ZW1zID0gaW50ZXJzZWN0aW9uV2l0aCh0aGlzLmF2YWlsYWJsZUl0ZW1zLCB0aGlzLmF2YWlsYWJsZUxpc3RCb3hDb250cm9sLnZhbHVlLCAoaXRlbTogSUxpc3RCb3hJdGVtLCB2YWx1ZTogc3RyaW5nKSA9PiBpdGVtLnZhbHVlID09PSB2YWx1ZSk7XG4gICAgaWYgKHRoaXMubWF4U2VsZWN0YWJsZUl0ZW1zICYmIChwZW5kaW5nSXRlbXMubGVuZ3RoICsgdGhpcy5zZWxlY3RlZEl0ZW1zLmxlbmd0aCA+IHRoaXMubWF4U2VsZWN0YWJsZUl0ZW1zKSkge1xuICAgICAgICB0aGlzLnRvYXN0ci5pbmZvKCdPbmx5ICcgKyB0aGlzLm1heFNlbGVjdGFibGVJdGVtcyArICcgaXRlbXMgbWF5IGJlIGFkZGVkIHRvICcgKyB0aGlzLnNlbGVjdGVkVGV4dCwgJycsIHsgZGlzYWJsZVRpbWVPdXQ6IGZhbHNlLCB0aW1lT3V0OiA1MDAwIH0pO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICAvLyBmaXJzdCBtb3ZlIGl0ZW1zIHRvIHNlbGVjdGVkXG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSBbLi4udGhpcy5zZWxlY3RlZEl0ZW1zLFxuICAgICAgICAgIC4uLmludGVyc2VjdGlvbldpdGgodGhpcy5hdmFpbGFibGVJdGVtcywgdGhpcy5hdmFpbGFibGVMaXN0Qm94Q29udHJvbC52YWx1ZSxcbiAgICAgICAgICAgICAgKGl0ZW06IElMaXN0Qm94SXRlbSwgdmFsdWU6IHN0cmluZykgPT4gaXRlbS52YWx1ZSA9PT0gdmFsdWUpXTtcbiAgICAgIC8vIG5vdyBmaWx0ZXIgYXZhaWxhYmxlIGl0ZW1zIHRvIG5vdCBpbmNsdWRlIG1hcmtlZCB2YWx1ZXNcbiAgICAgIHRoaXMuYXZhaWxhYmxlSXRlbXMgPSBbLi4uZGlmZmVyZW5jZVdpdGgodGhpcy5hdmFpbGFibGVJdGVtcywgdGhpcy5hdmFpbGFibGVMaXN0Qm94Q29udHJvbC52YWx1ZSxcbiAgICAgICAgICAoaXRlbTogSUxpc3RCb3hJdGVtLCB2YWx1ZTogc3RyaW5nKSA9PiBpdGVtLnZhbHVlID09PSB2YWx1ZSldO1xuICAgICAgLy8gY2xlYXIgbWFya2VkIGF2YWlsYWJsZSBpdGVtcyBhbmQgZW1pdCBldmVudFxuICAgICAgdGhpcy5vbkl0ZW1zTW92ZWQuZW1pdCh7XG4gICAgICAgICAgYXZhaWxhYmxlOiB0aGlzLmF2YWlsYWJsZUl0ZW1zLFxuICAgICAgICAgIHNlbGVjdGVkOiB0aGlzLnNlbGVjdGVkSXRlbXMsXG4gICAgICAgICAgbW92ZWRJdGVtczogdGhpcy5hdmFpbGFibGVMaXN0Qm94Q29udHJvbC52YWx1ZSxcbiAgICAgICAgICBmcm9tOiAnYXZhaWxhYmxlJyxcbiAgICAgICAgICB0bzogJ3NlbGVjdGVkJ1xuICAgICAgfSk7XG4gICAgICB0aGlzLmF2YWlsYWJsZUxpc3RCb3hDb250cm9sLnNldFZhbHVlKFtdKTtcbiAgICAgIHRoaXMuYXZhaWxhYmxlU2VhcmNoSW5wdXRDb250cm9sLnNldFZhbHVlKCcnKTtcbiAgICAgIHRoaXMud3JpdGVWYWx1ZSh0aGlzLmdldFZhbHVlcygpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNb3ZlIG1hcmtlZCBpdGVtcyBmcm9tIHNlbGVjdGVkIGl0ZW1zIHRvIGF2YWlsYWJsZSBpdGVtc1xuICAgKi9cbiAgbW92ZU1hcmtlZFNlbGVjdGVkSXRlbXNUb0F2YWlsYWJsZSgpOiB2b2lkIHtcbiAgICB0aGlzLnRvYXN0ci5jbGVhcigpO1xuXG4gICAgICAvLyBmaXJzdCBtb3ZlIGl0ZW1zIHRvIGF2YWlsYWJsZVxuICAgICAgdGhpcy5hdmFpbGFibGVJdGVtcyA9IFsuLi50aGlzLmF2YWlsYWJsZUl0ZW1zLFxuICAgICAgICAgIC4uLmludGVyc2VjdGlvbldpdGgodGhpcy5zZWxlY3RlZEl0ZW1zLCB0aGlzLnNlbGVjdGVkTGlzdEJveENvbnRyb2wudmFsdWUsXG4gICAgICAgICAgICAgIChpdGVtOiBJTGlzdEJveEl0ZW0sIHZhbHVlOiBzdHJpbmcpID0+IGl0ZW0udmFsdWUgPT09IHZhbHVlKV07XG4gICAgICAvLyBub3cgZmlsdGVyIGF2YWlsYWJsZSBpdGVtcyB0byBub3QgaW5jbHVkZSBtYXJrZWQgdmFsdWVzXG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSBbLi4uZGlmZmVyZW5jZVdpdGgodGhpcy5zZWxlY3RlZEl0ZW1zLCB0aGlzLnNlbGVjdGVkTGlzdEJveENvbnRyb2wudmFsdWUsXG4gICAgICAgICAgKGl0ZW06IElMaXN0Qm94SXRlbSwgdmFsdWU6IHN0cmluZykgPT4gaXRlbS52YWx1ZSA9PT0gdmFsdWUpXTtcbiAgICAgIC8vIGNsZWFyIG1hcmtlZCBhdmFpbGFibGUgaXRlbXMgYW5kIGVtaXQgZXZlbnRcbiAgICAgIHRoaXMub25JdGVtc01vdmVkLmVtaXQoe1xuICAgICAgICAgIGF2YWlsYWJsZTogdGhpcy5hdmFpbGFibGVJdGVtcyxcbiAgICAgICAgICBzZWxlY3RlZDogdGhpcy5zZWxlY3RlZEl0ZW1zLFxuICAgICAgICAgIG1vdmVkSXRlbXM6IHRoaXMuc2VsZWN0ZWRMaXN0Qm94Q29udHJvbC52YWx1ZSxcbiAgICAgICAgICBmcm9tOiAnc2VsZWN0ZWQnLFxuICAgICAgICAgIHRvOiAnYXZhaWxhYmxlJ1xuICAgICAgfSk7XG4gICAgICB0aGlzLnNlbGVjdGVkTGlzdEJveENvbnRyb2wuc2V0VmFsdWUoW10pO1xuICAgICAgdGhpcy5zZWxlY3RlZFNlYXJjaElucHV0Q29udHJvbC5zZXRWYWx1ZSgnJyk7XG4gICAgICB0aGlzLndyaXRlVmFsdWUodGhpcy5nZXRWYWx1ZXMoKSk7XG4gIH1cblxuICAvKipcbiAgICogTW92ZSBzaW5nbGUgaXRlbSBmcm9tIGF2YWlsYWJsZSB0byBzZWxlY3RlZFxuICAgKiBAcGFyYW0gaXRlbVxuICAgKi9cbiAgbW92ZUF2YWlsYWJsZUl0ZW1Ub1NlbGVjdGVkKGl0ZW06IElMaXN0Qm94SXRlbSk6IHZvaWQge1xuXG4gICAgICB0aGlzLmF2YWlsYWJsZUl0ZW1zID0gdGhpcy5hdmFpbGFibGVJdGVtcy5maWx0ZXIoKGxpc3RJdGVtOiBJTGlzdEJveEl0ZW0pID0+IGxpc3RJdGVtLnZhbHVlICE9PSBpdGVtLnZhbHVlKTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IFsuLi50aGlzLnNlbGVjdGVkSXRlbXMsIGl0ZW1dO1xuICAgICAgdGhpcy5vbkl0ZW1zTW92ZWQuZW1pdCh7XG4gICAgICAgICAgYXZhaWxhYmxlOiB0aGlzLmF2YWlsYWJsZUl0ZW1zLFxuICAgICAgICAgIHNlbGVjdGVkOiB0aGlzLnNlbGVjdGVkSXRlbXMsXG4gICAgICAgICAgbW92ZWRJdGVtczogW2l0ZW0udmFsdWVdLFxuICAgICAgICAgIGZyb206ICdhdmFpbGFibGUnLFxuICAgICAgICAgIHRvOiAnc2VsZWN0ZWQnXG4gICAgICB9KTtcbiAgICAgIHRoaXMuYXZhaWxhYmxlU2VhcmNoSW5wdXRDb250cm9sLnNldFZhbHVlKCcnKTtcbiAgICAgIHRoaXMuYXZhaWxhYmxlTGlzdEJveENvbnRyb2wuc2V0VmFsdWUoW10pO1xuICAgICAgdGhpcy53cml0ZVZhbHVlKHRoaXMuZ2V0VmFsdWVzKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIE1vdmUgc2luZ2xlIGl0ZW0gZnJvbSBzZWxlY3RlZCB0byBhdmFpbGFibGVcbiAgICogQHBhcmFtIGl0ZW1cbiAgICovXG4gIG1vdmVTZWxlY3RlZEl0ZW1Ub0F2YWlsYWJsZShpdGVtOiBJTGlzdEJveEl0ZW0pOiB2b2lkIHtcblxuICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zID0gdGhpcy5zZWxlY3RlZEl0ZW1zLmZpbHRlcigobGlzdEl0ZW06IElMaXN0Qm94SXRlbSkgPT4gbGlzdEl0ZW0udmFsdWUgIT09IGl0ZW0udmFsdWUpO1xuICAgICAgdGhpcy5hdmFpbGFibGVJdGVtcyA9IFsuLi50aGlzLmF2YWlsYWJsZUl0ZW1zLCBpdGVtXTtcbiAgICAgIHRoaXMub25JdGVtc01vdmVkLmVtaXQoe1xuICAgICAgICAgIGF2YWlsYWJsZTogdGhpcy5hdmFpbGFibGVJdGVtcyxcbiAgICAgICAgICBzZWxlY3RlZDogdGhpcy5zZWxlY3RlZEl0ZW1zLFxuICAgICAgICAgIG1vdmVkSXRlbXM6IFtpdGVtLnZhbHVlXSxcbiAgICAgICAgICBmcm9tOiAnc2VsZWN0ZWQnLFxuICAgICAgICAgIHRvOiAnYXZhaWxhYmxlJ1xuICAgICAgfSk7XG4gICAgICB0aGlzLnNlbGVjdGVkU2VhcmNoSW5wdXRDb250cm9sLnNldFZhbHVlKCcnKTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRMaXN0Qm94Q29udHJvbC5zZXRWYWx1ZShbXSk7XG4gICAgICB0aGlzLndyaXRlVmFsdWUodGhpcy5nZXRWYWx1ZXMoKSk7XG4gIH1cblxuICAvKipcbiAgICogRnVuY3Rpb24gdG8gcGFzcyB0byBuZ0ZvciB0byBpbXByb3ZlIHBlcmZvcm1hbmNlLCB0cmFja3MgaXRlbXNcbiAgICogYnkgdGhlIHZhbHVlIGZpZWxkXG4gICAqIEBwYXJhbSBpbmRleFxuICAgKiBAcGFyYW0gaXRlbVxuICAgKi9cbiAgdHJhY2tCeVZhbHVlKGluZGV4OiBudW1iZXIsIGl0ZW06IGFueSk6IHN0cmluZyB7XG4gICAgICByZXR1cm4gaXRlbVt0aGlzLnZhbHVlRmllbGRdO1xuICB9XG5cbiAgLyogTWV0aG9kcyBmcm9tIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGludGVyZmFjZSwgcmVxdWlyZWQgZm9yIG5nTW9kZWwgYW5kIGZvcm1Db250cm9sTmFtZSAtIGJlZ2luICovXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRJdGVtcyAmJiB2YWx1ZSAmJiB2YWx1ZS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zID0gWy4uLnRoaXMuc2VsZWN0ZWRJdGVtcyxcbiAgICAgICAgICAgICAgLi4uaW50ZXJzZWN0aW9uV2l0aCh0aGlzLmF2YWlsYWJsZUl0ZW1zLCB2YWx1ZSwgKGl0ZW06IElMaXN0Qm94SXRlbSwgdmFsOiBzdHJpbmcpID0+IGl0ZW0udmFsdWUgPT09IHZhbCldO1xuICAgICAgICAgIHRoaXMuYXZhaWxhYmxlSXRlbXMgPSBbLi4uZGlmZmVyZW5jZVdpdGgodGhpcy5hdmFpbGFibGVJdGVtcywgdmFsdWUsXG4gICAgICAgICAgICAgIChpdGVtOiBJTGlzdEJveEl0ZW0sIHZhbDogc3RyaW5nKSA9PiBpdGVtLnZhbHVlID09PSB2YWwpXTtcbiAgICAgIH1cbiAgICAgIHRoaXMuX29uQ2hhbmdlKHZhbHVlKTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IChfOiBhbnkpID0+IHt9KTogdm9pZCB7XG4gICAgICB0aGlzLl9vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHt9KTogdm9pZCB7XG4gICAgICB0aGlzLl9vblRvdWNoZWQgPSBmbjtcbiAgfVxuICAvKiBNZXRob2RzIGZyb20gQ29udHJvbFZhbHVlQWNjZXNzb3IgaW50ZXJmYWNlLCByZXF1aXJlZCBmb3IgbmdNb2RlbCBhbmQgZm9ybUNvbnRyb2xOYW1lIC0gZW5kICovXG5cbiAgLyoqXG4gICAqIFV0aWxpdHkgbWV0aG9kIHRvIGdldCB2YWx1ZXMgZnJvbVxuICAgKiBzZWxlY3RlZCBpdGVtc1xuICAgKi9cbiAgcHJpdmF0ZSBnZXRWYWx1ZXMoKTogc3RyaW5nW10ge1xuICAgICAgcmV0dXJuICh0aGlzLnNlbGVjdGVkSXRlbXMgfHwgW10pLm1hcCgoaXRlbTogSUxpc3RCb3hJdGVtKSA9PiBpdGVtLnZhbHVlKTtcbiAgfVxuXG59XG5cbiIsIjxkaXYgY2xhc3M9XCJyb3dcIiBbZm9ybUdyb3VwXT1cImxpc3RCb3hGb3JtXCI+XG4gICAgPGRpdiBjbGFzcz1cImNvbC1tZC01IGNvbC1sZy01IGNvbC1zbS0xMlwiPlxuICAgICAgICA8aDQgY2xhc3M9XCJ0ZXh0LWNlbnRlciB2ZXJ0aWNhbC1zcGFjaW5nLTVcIj57e2F2YWlsYWJsZVRleHR9fTwvaDQ+XG4gICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sIHZlcnRpY2FsLXNwYWNpbmctNVwiIHBsYWNlaG9sZGVyPVwie3thdmFpbGFibGVGaWx0ZXJQbGFjZWhvbGRlcn19XCJcbiAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImF2YWlsYWJsZVNlYXJjaElucHV0XCIgLz5cbiAgICAgICAgPHNlbGVjdCBjbGFzcz1cImZvcm0tY29udHJvbCBsaXN0LWJveFwiIGZvcm1Db250cm9sTmFtZT1cImF2YWlsYWJsZUxpc3RCb3hcIiBtdWx0aXBsZSBbc2l6ZV09XCJsaXN0U2l6ZVwiPlxuICAgICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBhdmFpbGFibGVJdGVtcyB8IGFycmF5RmlsdGVyOlsndGV4dCcsIHNlYXJjaFRlcm1BdmFpbGFibGVdIHwgYXJyYXlTb3J0Oltzb3J0QnksICdBU0MnXTt0cmFja0J5OnRyYWNrQnlWYWx1ZVwiXG4gICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJpdGVtPy52YWx1ZVwiXG4gICAgICAgICAgICAgICAgICAgIFtpZF09XCJpdGVtPy52YWx1ZSsnT3B0aW9uJ1wiXG4gICAgICAgICAgICAgICAgICAgIChkYmxjbGljayk9XCJtb3ZlQXZhaWxhYmxlSXRlbVRvU2VsZWN0ZWQoaXRlbSlcIj57e2l0ZW0/LnRleHR9fTwvb3B0aW9uPlxuICAgICAgICA8L3NlbGVjdD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTIgY29sLWxnLTIgY29sLXNtLTEyIGNlbnRlci1ibG9jayB0ZXh0LWNlbnRlclwiPlxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IGNvbC1tZC04IGNvbC1tZC1vZmZzZXQtMiBhdHIgdG9wODAgc20tc3BhY2luZ1wiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImxpc3RCb3hGb3JtLmRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICBbaWRdPVwiaWRGaWVsZCsnTW92ZUFsbEJ0bidcIlxuICAgICAgICAgICAgICAgICpuZ0lmPVwibW92ZUFsbEJ1dHRvblwiIChjbGljayk9XCJtb3ZlQWxsSXRlbXNUb1NlbGVjdGVkKClcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmkgYmktbGlzdC10YXNrXCI+PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJiaSBiaS1jaGV2cm9uLXJpZ2h0XCI+PC9zcGFuPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBjb2wtbWQtOCBjb2wtbWQtb2Zmc2V0LTIgc3RyIHZlcnRpY2FsLXNwYWNpbmctNSBzbS1zcGFjaW5nXCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwibGlzdEJveEZvcm0uZGlzYWJsZWQgfHwgIWF2YWlsYWJsZUxpc3RCb3hDb250cm9sLnZhbHVlPy5sZW5ndGhcIlxuICAgICAgICAgICAgICAgIFtpZF09XCJpZEZpZWxkKydNb3ZlT25lQnRuJ1wiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm1vdmVNYXJrZWRBdmFpbGFibGVJdGVtc1RvU2VsZWN0ZWQoKVwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJiaSBiaS1jaGV2cm9uLXJpZ2h0XCI+PC9zcGFuPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBjb2wtbWQtOCBjb2wtbWQtb2Zmc2V0LTIgc3RsIHZlcnRpY2FsLXNwYWNpbmctNSBzbS1zcGFjaW5nXCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwibGlzdEJveEZvcm0uZGlzYWJsZWQgfHwgIXNlbGVjdGVkTGlzdEJveENvbnRyb2wudmFsdWU/Lmxlbmd0aFwiXG4gICAgICAgICAgICAgICAgW2lkXT1cImlkRmllbGQrJ01vdmVPbmVMZWZ0QnRuJ1wiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm1vdmVNYXJrZWRTZWxlY3RlZEl0ZW1zVG9BdmFpbGFibGUoKVwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJiaSBiaS1jaGV2cm9uLWxlZnRcIj48L3NwYW4+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IGNvbC1tZC04IGNvbC1tZC1vZmZzZXQtMiBhdGwgYm90dG9tMTAgc20tc3BhY2luZ1wiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImxpc3RCb3hGb3JtLmRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICBbaWRdPVwiaWRGaWVsZCsnTW92ZUFsbExlZnRCdG4nXCJcbiAgICAgICAgICAgICAgICAqbmdJZj1cIm1vdmVBbGxCdXR0b25cIiAoY2xpY2spPVwibW92ZUFsbEl0ZW1zVG9BdmFpbGFibGUoKVwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJiaSBiaS1jaGV2cm9uLWxlZnRcIj48L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJpIGJpLWxpc3QtdGFza1wiPjwvc3Bhbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImNvbC1tZC01IGNvbC1sZy01IGNvbC1zbS0xMlwiPlxuICAgICAgICA8aDQgY2xhc3M9XCJ0ZXh0LWNlbnRlciB2ZXJ0aWNhbC1zcGFjaW5nLTVcIj57e3NlbGVjdGVkVGV4dH19PC9oND5cbiAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2wgdmVydGljYWwtc3BhY2luZy01XCIgcGxhY2Vob2xkZXI9XCJ7e3NlbGVjdGVkRmlsdGVyUGxhY2Vob2xkZXJ9fVwiXG4gICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJzZWxlY3RlZFNlYXJjaElucHV0XCIgLz5cbiAgICAgICAgPHNlbGVjdCBjbGFzcz1cImZvcm0tY29udHJvbCBsaXN0LWJveFwiIGZvcm1Db250cm9sTmFtZT1cInNlbGVjdGVkTGlzdEJveFwiIG11bHRpcGxlIFtzaXplXT1cImxpc3RTaXplXCI+XG4gICAgICAgICAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCBpdGVtIG9mIHNlbGVjdGVkSXRlbXMgfCBhcnJheUZpbHRlcjpbJ3RleHQnLCBzZWFyY2hUZXJtU2VsZWN0ZWRdIHwgYXJyYXlTb3J0Oltzb3J0QnksICdBU0MnXTt0cmFja0J5OnRyYWNrQnlWYWx1ZVwiXG4gICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJpdGVtPy52YWx1ZVwiXG4gICAgICAgICAgICAgICAgICAgIChkYmxjbGljayk9XCJtb3ZlU2VsZWN0ZWRJdGVtVG9BdmFpbGFibGUoaXRlbSlcIj57e2l0ZW0/LnRleHR9fTwvb3B0aW9uPlxuICAgICAgICA8L3NlbGVjdD5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
339
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHVhbC1saXN0LWJveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vZXBhLXVpLWxpYi9zcmMvbGliL2R1YWwtbGlzdC1ib3gvZHVhbC1saXN0LWJveC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vZXBhLXVpLWxpYi9zcmMvbGliL2R1YWwtbGlzdC1ib3gvZHVhbC1saXN0LWJveC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFVLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRixPQUFPLEVBQTBCLFdBQVcsRUFBRSxpQkFBaUIsRUFBd0IsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5RyxPQUFPLEVBQUUsWUFBWSxFQUFPLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSTlFLE9BQU8sZ0JBQWdCLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxjQUFjLE1BQU0sdUJBQXVCLENBQUM7Ozs7OztBQUVuRDs7O0dBR0c7QUFZSCxNQUFNLE9BQU8sb0JBQW9CO0lBb0ZaO0lBQXlCO0lBbEY1Qyx3Q0FBd0M7SUFDeEMsSUFBYSxTQUFTLENBQUMsS0FBaUI7UUFDcEMsSUFBSSxDQUFDLGNBQWMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBUyxFQUFFLEtBQWEsRUFBRSxFQUFFLENBQUMsQ0FBQztnQkFDdkUsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsUUFBUSxFQUFFO2dCQUN2QyxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7YUFDN0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNULENBQUM7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VTtzQkFBbEIsS0FBSztnQkFFRyxTQUFTO3NCQUFqQixLQUFLO2dCQUVHLEtBQUs7c0JBQWIsS0FBSztnQkFFRyxZQUFZO3NCQUFwQixLQUFLO2dCQUVHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBRUcsYUFBYTtzQkFBckIsS0FBSztnQkFFRyxZQUFZO3NCQUFwQixLQUFLO2dCQUVHLDBCQUEwQjtzQkFBbEMsS0FBSztnQkFFRyx5QkFBeUI7c0JBQWpDLEtBQUs7Z0JBRUcsT0FBTztzQkFBZixLQUFLO2dCQUVPLFFBQVE7c0JBQXBCLEtBQUs7Z0JBU0csUUFBUTtzQkFBaEIsS0FBSztnQkFFRyxNQUFNO3NCQUFkLEtBQUs7Z0JBRUcsa0JBQWtCO3NCQUExQixLQUFLO2dCQUdJLHVCQUF1QjtzQkFBaEMsTUFBTTtnQkFFRyx1QkFBdUI7c0JBQWhDLE1BQU07Z0JBRUcsWUFBWTtzQkFBckIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImRlY2xhcmUgdmFyIHJlcXVpcmU6IGFueTtcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBPbkluaXQsIGZvcndhcmRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Hcm91cCwgRm9ybUJ1aWxkZXIsIEZvcm1Db250cm9sLCBOR19WQUxVRV9BQ0NFU1NPUiwgQ29udHJvbFZhbHVlQWNjZXNzb3IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIG1hcCwgZGlzdGluY3RVbnRpbENoYW5nZWQsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFRvYXN0clNlcnZpY2UgfSBmcm9tICduZ3gtdG9hc3RyJztcbmltcG9ydCB7IElJdGVtc01vdmVkRXZlbnQgfSBmcm9tICcuL2l0ZW1zLW1vdmVkLWV2ZW50JztcbmltcG9ydCB7IElMaXN0Qm94SXRlbSB9IGZyb20gJy4vbGlzdC1ib3gtaXRlbSc7XG5pbXBvcnQgaW50ZXJzZWN0aW9uV2l0aCBmcm9tICdsb2Rhc2gvaW50ZXJzZWN0aW9uV2l0aCc7XG5pbXBvcnQgZGlmZmVyZW5jZVdpdGggZnJvbSAnbG9kYXNoL2RpZmZlcmVuY2VXaXRoJztcblxuLyoqXG4gKiBOT1RFOiBUaGlzIGNvZGUgaXMgYSBtb2RpZmllZCB2ZXJzaW9uIG9mIHRoZSBwcm9qZWN0OiBodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9uZzItZHVhbC1saXN0LWJveFxuICogTElDRU5TRTogTUlUIMKpIFtFbGRhciBHcmFudWxvXShtYWlsdG86ZWxkYXIzMkBnbWFpbC5jb20pXG4gKi9cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnb2VwYS1kdWFsLWxpc3QtYm94JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2R1YWwtbGlzdC1ib3guY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kdWFsLWxpc3QtYm94LmNvbXBvbmVudC5jc3MnXSxcbiAgcHJvdmlkZXJzOiBbe1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBEdWFsTGlzdEJveENvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICB9XVxufSlcbmV4cG9ydCBjbGFzcyBEdWFsTGlzdEJveENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuXG4gIC8vIGFycmF5IG9mIGl0ZW1zIHRvIGRpc3BsYXkgaW4gbGVmdCBib3hcbiAgQElucHV0KCkgc2V0IGF2YWlsYWJsZShpdGVtczogQXJyYXk8YW55Pikge1xuICAgICAgdGhpcy5hdmFpbGFibGVJdGVtcyA9IFsuLi4oaXRlbXMgfHwgW10pLm1hcCgoaXRlbTogYW55LCBpbmRleDogbnVtYmVyKSA9PiAoe1xuICAgICAgICAgIHZhbHVlOiBpdGVtW3RoaXMudmFsdWVGaWVsZF0udG9TdHJpbmcoKSxcbiAgICAgICAgICB0ZXh0OiBpdGVtW3RoaXMudGV4dEZpZWxkXVxuICAgICAgfSkpXTtcbiAgfTtcbiAgLy8gYXJyYXkgb2YgaXRlbXMgdG8gZGlzcGxheSBpbiByaWdodCBib3hcbiAgQElucHV0KCkgc2V0IHNlbGVjdGVkKGl0ZW1zOiBBcnJheTxhbnk+KSB7XG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSBbLi4uKGl0ZW1zIHx8IFtdKS5tYXAoKGl0ZW06IGFueSwgaW5kZXg6IG51bWJlcikgPT4gKHtcbiAgICAgICAgICB2YWx1ZTogaXRlbVt0aGlzLnZhbHVlRmllbGRdLnRvU3RyaW5nKCksXG4gICAgICAgICAgdGV4dDogaXRlbVt0aGlzLnRleHRGaWVsZF1cbiAgICAgIH0pKV07XG4gIH07XG4gIC8vIGlucHV0IHRvIHNldCBzZWFyY2ggdGVybSBmb3IgYXZhaWxhYmxlIGxpc3QgYm94IGZyb20gdGhlIG91dHNpZGVcbiAgQElucHV0KCkgc2V0IGF2YWlsYWJsZVNlYXJjaChzZWFyY2hUZXJtOiBzdHJpbmcpIHtcbiAgICAgIHRoaXMuc2VhcmNoVGVybUF2YWlsYWJsZSA9IHNlYXJjaFRlcm07XG4gICAgICB0aGlzLmF2YWlsYWJsZVNlYXJjaElucHV0Q29udHJvbC5zZXRWYWx1ZShzZWFyY2hUZXJtKTtcbiAgfTtcbiAgLy8gaW5wdXQgdG8gc2V0IHNlYXJjaCB0ZXJtIGZvciBzZWxlY3RlZCBsaXN0IGJveCBmcm9tIHRoZSBvdXRzaWRlXG4gIEBJbnB1dCgpIHNldCBzZWxlY3RlZFNlYXJjaChzZWFyY2hUZXJtOiBzdHJpbmcpIHtcbiAgICAgIHRoaXMuc2VhcmNoVGVybVNlbGVjdGVkID0gc2VhcmNoVGVybTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRTZWFyY2hJbnB1dENvbnRyb2wuc2V0VmFsdWUoc2VhcmNoVGVybSk7XG4gIH07XG4gIC8vIGZpZWxkIHRvIHVzZSBmb3IgdmFsdWUgb2Ygb3B0aW9uXG4gIEBJbnB1dCgpIHZhbHVlRmllbGQgPSAnaWQnO1xuICAvLyBmaWVsZCB0byB1c2UgZm9yIGRpc3BsYXlpbmcgb3B0aW9uIHRleHRcbiAgQElucHV0KCkgdGV4dEZpZWxkID0gJ25hbWUnO1xuICAvLyB0ZXh0IHRvIGRpc3BsYXkgYXMgdGl0bGUgYWJvdmUgY29tcG9uZW50XG4gIEBJbnB1dCgpIHRpdGxlOiBzdHJpbmcgPSAnJztcbiAgLy8gdGltZSB0byBkZWJvdW5jZSBzZWFyY2ggb3V0cHV0IGluIG1zXG4gIEBJbnB1dCgpIGRlYm91bmNlVGltZSA9IDUwMDtcbiAgLy8gc2hvdy9oaWRlIGJ1dHRvbiB0byBtb3ZlIGFsbCBpdGVtcyBiZXR3ZWVuIGJveGVzXG4gIEBJbnB1dCgpIG1vdmVBbGxCdXR0b24gPSB0cnVlO1xuICAvLyB0ZXh0IGRpc3BsYXllZCBvdmVyIHRoZSBhdmFpbGFibGUgaXRlbXMgbGlzdCBib3hcbiAgQElucHV0KCkgYXZhaWxhYmxlVGV4dCA9ICdBdmFpbGFibGUgaXRlbXMnO1xuICAvLyB0ZXh0IGRpc3BsYXllZCBvdmVyIHRoZSBzZWxlY3RlZCBpdGVtcyBsaXN0IGJveFxuICBASW5wdXQoKSBzZWxlY3RlZFRleHQgPSAnU2VsZWN0ZWQgaXRlbXMnO1xuICAvLyBzZXQgcGxhY2Vob2xkZXIgdGV4dCBpbiBhdmFpbGFibGUgaXRlbXMgbGlzdCBib3hcbiAgQElucHV0KCkgYXZhaWxhYmxlRmlsdGVyUGxhY2Vob2xkZXI9ICdGaWx0ZXIuLi4nO1xuICAvLyBzZXQgcGxhY2Vob2xkZXIgdGV4dCBpbiBzZWxlY3RlZCBpdGVtcyBsaXN0IGJveFxuICBASW5wdXQoKSBzZWxlY3RlZEZpbHRlclBsYWNlaG9sZGVyID0gJ0ZpbHRlci4uLic7XG4gIC8vIGZpZWxkIHRvIHVzZSBmb3IgaHRtbCBpZFxuICBASW5wdXQoKSBpZEZpZWxkID0gJ2lkJztcbiAgLy8gZGlzYWJsZSBjb21wb25lbnRcbiAgQElucHV0KCkgc2V0IGRpc2FibGVkKGRpc2FibGVkOiBib29sZWFuKSB7XG4gICAgICBpZiAodGhpcy5saXN0Qm94Rm9ybSkge1xuICAgICAgICAgIGlmIChkaXNhYmxlZCkge1xuICAgICAgICAgICAgICB0aGlzLmxpc3RCb3hGb3JtLmRpc2FibGUoKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICB0aGlzLmxpc3RCb3hGb3JtLmVuYWJsZSgpO1xuICAgICAgICAgIH1cbiAgICAgIH1cbiAgfVxuICBASW5wdXQoKSBsaXN0U2l6ZSA9IDEwO1xuXG4gIEBJbnB1dCgpIHNvcnRCeSA9ICd0ZXh0JztcblxuICBASW5wdXQoKSBtYXhTZWxlY3RhYmxlSXRlbXM6IG51bWJlciB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcblxuICAvLyBldmVudCBjYWxsZWQgd2hlbiBpdGVtIG9yIGl0ZW1zIGZyb20gYXZhaWxhYmxlIGl0ZW1zKGxlZnQgYm94KSBpcyBzZWxlY3RlZFxuICBAT3V0cHV0KCkgb25BdmFpbGFibGVJdGVtU2VsZWN0ZWQ6IEV2ZW50RW1pdHRlcjx7fSB8IEFycmF5PHt9Pj4gPSBuZXcgRXZlbnRFbWl0dGVyPHt9IHwgQXJyYXk8e30+PigpO1xuICAvLyBldmVudCBjYWxsZWQgd2hlbiBpdGVtIG9yIGl0ZW1zIGZyb20gc2VsZWN0ZWQgaXRlbXMocmlnaHQgYm94KSBpcyBzZWxlY3RlZFxuICBAT3V0cHV0KCkgb25TZWxlY3RlZEl0ZW1zU2VsZWN0ZWQ6IEV2ZW50RW1pdHRlcjx7fSB8IEFycmF5PHt9Pj4gPSBuZXcgRXZlbnRFbWl0dGVyPHt9IHwgQXJyYXk8e30+PigpO1xuICAvLyBldmVudCBjYWxsZWQgd2hlbiBpdGVtcyBhcmUgbW92ZWQgYmV0d2VlbiBib3hlcywgcmV0dXJucyBzdGF0ZSBvZiBib3RoIGJveGVzIGFuZCBpdGVtIG1vdmVkXG4gIEBPdXRwdXQoKSBvbkl0ZW1zTW92ZWQ6IEV2ZW50RW1pdHRlcjxJSXRlbXNNb3ZlZEV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8SUl0ZW1zTW92ZWRFdmVudD4oKTtcblxuICAvLyBwcml2YXRlIHZhcmlhYmxlcyB0byBtYW5hZ2UgY2xhc3NcbiAgc2VhcmNoVGVybUF2YWlsYWJsZSA9ICcnO1xuICBzZWFyY2hUZXJtU2VsZWN0ZWQgPSAnJztcbiAgYXZhaWxhYmxlSXRlbXM6IEFycmF5PElMaXN0Qm94SXRlbT4gPSBbXTtcbiAgc2VsZWN0ZWRJdGVtczogQXJyYXk8SUxpc3RCb3hJdGVtPiA9IFtdO1xuICBsaXN0Qm94Rm9ybTogRm9ybUdyb3VwO1xuICBhdmFpbGFibGVMaXN0Qm94Q29udHJvbDogRm9ybUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woKTtcbiAgc2VsZWN0ZWRMaXN0Qm94Q29udHJvbDogRm9ybUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woKTtcbiAgYXZhaWxhYmxlU2VhcmNoSW5wdXRDb250cm9sOiBGb3JtQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgpO1xuICBzZWxlY3RlZFNlYXJjaElucHV0Q29udHJvbDogRm9ybUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woKTtcblxuICAvLyBjb250cm9sIHZhbHVlIGFjY2Vzc29yc1xuICBfb25DaGFuZ2UgPSAoXzogYW55KSA9PiB7IH07XG4gIF9vblRvdWNoZWQgPSAoKSA9PiB7IH07XG5cbiAgY29uc3RydWN0b3IocHVibGljIGZiOiBGb3JtQnVpbGRlciwgcHJpdmF0ZSB0b2FzdHI6IFRvYXN0clNlcnZpY2UpIHsgXG4gICAgdGhpcy5saXN0Qm94Rm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgICBhdmFpbGFibGVMaXN0Qm94OiB0aGlzLmF2YWlsYWJsZUxpc3RCb3hDb250cm9sLFxuICAgICAgICBzZWxlY3RlZExpc3RCb3g6IHRoaXMuc2VsZWN0ZWRMaXN0Qm94Q29udHJvbCxcbiAgICAgICAgYXZhaWxhYmxlU2VhcmNoSW5wdXQ6IHRoaXMuYXZhaWxhYmxlU2VhcmNoSW5wdXRDb250cm9sLFxuICAgICAgICBzZWxlY3RlZFNlYXJjaElucHV0OiB0aGlzLnNlbGVjdGVkU2VhcmNoSW5wdXRDb250cm9sXG4gICAgfSk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmF2YWlsYWJsZUxpc3RCb3hDb250cm9sXG4gICAgICAgIC52YWx1ZUNoYW5nZXNcbiAgICAgICAgLnN1YnNjcmliZSgoaXRlbXM6IEFycmF5PHt9PikgPT4gdGhpcy5vbkF2YWlsYWJsZUl0ZW1TZWxlY3RlZC5lbWl0KGl0ZW1zKSk7XG4gICAgdGhpcy5zZWxlY3RlZExpc3RCb3hDb250cm9sXG4gICAgICAgIC52YWx1ZUNoYW5nZXNcbiAgICAgICAgLnN1YnNjcmliZSgoaXRlbXM6IEFycmF5PHt9PikgPT4gdGhpcy5vblNlbGVjdGVkSXRlbXNTZWxlY3RlZC5lbWl0KGl0ZW1zKSk7XG4gICAgdGhpcy5hdmFpbGFibGVTZWFyY2hJbnB1dENvbnRyb2xcbiAgICAgICAgLnZhbHVlQ2hhbmdlcy5waXBlKFxuICAgICAgICAgICAgZGVib3VuY2VUaW1lKHRoaXMuZGVib3VuY2VUaW1lKSxcbiAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICAgICAgICB0YXAoKHNlYXJjaDogc3RyaW5nKSA9PiB0aGlzLnNlYXJjaFRlcm1BdmFpbGFibGUgPSBzZWFyY2gpXG4gICAgICAgICkuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5zZWxlY3RlZFNlYXJjaElucHV0Q29udHJvbFxuICAgICAgICAudmFsdWVDaGFuZ2VzLnBpcGUoXG4gICAgICAgICAgICBkZWJvdW5jZVRpbWUodGhpcy5kZWJvdW5jZVRpbWUpLFxuICAgICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgICAgICAgIHRhcCgoc2VhcmNoOiBzdHJpbmcpID0+IHRoaXMuc2VhcmNoVGVybVNlbGVjdGVkID0gc2VhcmNoKVxuICAgICAgICApLnN1YnNjcmliZSgpO1xuICB9XG4gIC8qKlxuICAgKiBNb3ZlIGFsbCBpdGVtcyBmcm9tIGF2YWlsYWJsZSB0byBzZWxlY3RlZFxuICAgKi9cbiAgbW92ZUFsbEl0ZW1zVG9TZWxlY3RlZCgpOiB2b2lkIHtcbiAgICB0aGlzLnRvYXN0ci5jbGVhcigpO1xuICAgICAgaWYgKCF0aGlzLmF2YWlsYWJsZUl0ZW1zLmxlbmd0aCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLm1heFNlbGVjdGFibGVJdGVtcyAmJiAodGhpcy5hdmFpbGFibGVJdGVtcy5sZW5ndGggKyB0aGlzLnNlbGVjdGVkSXRlbXMubGVuZ3RoID4gdGhpcy5tYXhTZWxlY3RhYmxlSXRlbXMpKSB7XG4gICAgICAgIHRoaXMudG9hc3RyLmluZm8oJ09ubHkgJyArIHRoaXMubWF4U2VsZWN0YWJsZUl0ZW1zICsgJyBpdGVtcyBtYXkgYmUgYWRkZWQgdG8gJyArIHRoaXMuc2VsZWN0ZWRUZXh0LCAnJywgeyBkaXNhYmxlVGltZU91dDogZmFsc2UsIHRpbWVPdXQ6IDUwMDAgfSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IFsuLi50aGlzLnNlbGVjdGVkSXRlbXMsIC4uLnRoaXMuYXZhaWxhYmxlSXRlbXNdO1xuICAgICAgdGhpcy5hdmFpbGFibGVJdGVtcyA9IFtdO1xuICAgICAgdGhpcy5vbkl0ZW1zTW92ZWQuZW1pdCh7XG4gICAgICAgICAgYXZhaWxhYmxlOiB0aGlzLmF2YWlsYWJsZUl0ZW1zLFxuICAgICAgICAgIHNlbGVjdGVkOiB0aGlzLnNlbGVjdGVkSXRlbXMsXG4gICAgICAgICAgbW92ZWRJdGVtczogdGhpcy5hdmFpbGFibGVMaXN0Qm94Q29udHJvbC52YWx1ZSxcbiAgICAgICAgICBmcm9tOiAnYXZhaWxhYmxlJyxcbiAgICAgICAgICB0bzogJ3NlbGVjdGVkJ1xuICAgICAgfSk7XG4gICAgICB0aGlzLmF2YWlsYWJsZUxpc3RCb3hDb250cm9sLnNldFZhbHVlKFtdKTtcbiAgICAgIHRoaXMud3JpdGVWYWx1ZSh0aGlzLmdldFZhbHVlcygpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNb3ZlIGFsbCBpdGVtcyBmcm9tIHNlbGVjdGVkIHRvIGF2YWlsYWJsZVxuICAgKi9cbiAgbW92ZUFsbEl0ZW1zVG9BdmFpbGFibGUoKTogdm9pZCB7XG4gICAgdGhpcy50b2FzdHIuY2xlYXIoKTtcblxuICAgICAgaWYgKCF0aGlzLnNlbGVjdGVkSXRlbXMubGVuZ3RoKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdGhpcy5hdmFpbGFibGVJdGVtcyA9IFsuLi50aGlzLmF2YWlsYWJsZUl0ZW1zLCAuLi50aGlzLnNlbGVjdGVkSXRlbXNdO1xuICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zID0gW107XG4gICAgICB0aGlzLm9uSXRlbXNNb3ZlZC5lbWl0KHtcbiAgICAgICAgICBhdmFpbGFibGU6IHRoaXMuYXZhaWxhYmxlSXRlbXMsXG4gICAgICAgICAgc2VsZWN0ZWQ6IHRoaXMuc2VsZWN0ZWRJdGVtcyxcbiAgICAgICAgICBtb3ZlZEl0ZW1zOiB0aGlzLnNlbGVjdGVkTGlzdEJveENvbnRyb2wudmFsdWUsXG4gICAgICAgICAgZnJvbTogJ3NlbGVjdGVkJyxcbiAgICAgICAgICB0bzogJ2F2YWlsYWJsZSdcbiAgICAgIH0pO1xuICAgICAgdGhpcy5zZWxlY3RlZExpc3RCb3hDb250cm9sLnNldFZhbHVlKFtdKTtcbiAgICAgIHRoaXMud3JpdGVWYWx1ZShbXSk7XG4gIH1cblxuICAvKipcbiAgICogTW92ZSBtYXJrZWQgaXRlbXMgZnJvbSBhdmFpbGFibGUgaXRlbXMgdG8gc2VsZWN0ZWQgaXRlbXNcbiAgICovXG4gIG1vdmVNYXJrZWRBdmFpbGFibGVJdGVtc1RvU2VsZWN0ZWQoKTogdm9pZCB7XG4gICAgdGhpcy50b2FzdHIuY2xlYXIoKTtcbiAgICBsZXQgcGVuZGluZ0l0ZW1zID0gaW50ZXJzZWN0aW9uV2l0aCh0aGlzLmF2YWlsYWJsZUl0ZW1zLCB0aGlzLmF2YWlsYWJsZUxpc3RCb3hDb250cm9sLnZhbHVlLCAoaXRlbTogSUxpc3RCb3hJdGVtLCB2YWx1ZTogc3RyaW5nKSA9PiBpdGVtLnZhbHVlID09PSB2YWx1ZSk7XG4gICAgaWYgKHRoaXMubWF4U2VsZWN0YWJsZUl0ZW1zICYmIChwZW5kaW5nSXRlbXMubGVuZ3RoICsgdGhpcy5zZWxlY3RlZEl0ZW1zLmxlbmd0aCA+IHRoaXMubWF4U2VsZWN0YWJsZUl0ZW1zKSkge1xuICAgICAgICB0aGlzLnRvYXN0ci5pbmZvKCdPbmx5ICcgKyB0aGlzLm1heFNlbGVjdGFibGVJdGVtcyArICcgaXRlbXMgbWF5IGJlIGFkZGVkIHRvICcgKyB0aGlzLnNlbGVjdGVkVGV4dCwgJycsIHsgZGlzYWJsZVRpbWVPdXQ6IGZhbHNlLCB0aW1lT3V0OiA1MDAwIH0pO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICAvLyBmaXJzdCBtb3ZlIGl0ZW1zIHRvIHNlbGVjdGVkXG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSBbLi4udGhpcy5zZWxlY3RlZEl0ZW1zLFxuICAgICAgICAgIC4uLmludGVyc2VjdGlvbldpdGgodGhpcy5hdmFpbGFibGVJdGVtcywgdGhpcy5hdmFpbGFibGVMaXN0Qm94Q29udHJvbC52YWx1ZSxcbiAgICAgICAgICAgICAgKGl0ZW06IElMaXN0Qm94SXRlbSwgdmFsdWU6IHN0cmluZykgPT4gaXRlbS52YWx1ZSA9PT0gdmFsdWUpXTtcbiAgICAgIC8vIG5vdyBmaWx0ZXIgYXZhaWxhYmxlIGl0ZW1zIHRvIG5vdCBpbmNsdWRlIG1hcmtlZCB2YWx1ZXNcbiAgICAgIHRoaXMuYXZhaWxhYmxlSXRlbXMgPSBbLi4uZGlmZmVyZW5jZVdpdGgodGhpcy5hdmFpbGFibGVJdGVtcywgdGhpcy5hdmFpbGFibGVMaXN0Qm94Q29udHJvbC52YWx1ZSxcbiAgICAgICAgICAoaXRlbTogSUxpc3RCb3hJdGVtLCB2YWx1ZTogc3RyaW5nKSA9PiBpdGVtLnZhbHVlID09PSB2YWx1ZSldO1xuICAgICAgLy8gY2xlYXIgbWFya2VkIGF2YWlsYWJsZSBpdGVtcyBhbmQgZW1pdCBldmVudFxuICAgICAgdGhpcy5vbkl0ZW1zTW92ZWQuZW1pdCh7XG4gICAgICAgICAgYXZhaWxhYmxlOiB0aGlzLmF2YWlsYWJsZUl0ZW1zLFxuICAgICAgICAgIHNlbGVjdGVkOiB0aGlzLnNlbGVjdGVkSXRlbXMsXG4gICAgICAgICAgbW92ZWRJdGVtczogdGhpcy5hdmFpbGFibGVMaXN0Qm94Q29udHJvbC52YWx1ZSxcbiAgICAgICAgICBmcm9tOiAnYXZhaWxhYmxlJyxcbiAgICAgICAgICB0bzogJ3NlbGVjdGVkJ1xuICAgICAgfSk7XG4gICAgICB0aGlzLmF2YWlsYWJsZUxpc3RCb3hDb250cm9sLnNldFZhbHVlKFtdKTtcbiAgICAgIHRoaXMuYXZhaWxhYmxlU2VhcmNoSW5wdXRDb250cm9sLnNldFZhbHVlKCcnKTtcbiAgICAgIHRoaXMud3JpdGVWYWx1ZSh0aGlzLmdldFZhbHVlcygpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNb3ZlIG1hcmtlZCBpdGVtcyBmcm9tIHNlbGVjdGVkIGl0ZW1zIHRvIGF2YWlsYWJsZSBpdGVtc1xuICAgKi9cbiAgbW92ZU1hcmtlZFNlbGVjdGVkSXRlbXNUb0F2YWlsYWJsZSgpOiB2b2lkIHtcbiAgICB0aGlzLnRvYXN0ci5jbGVhcigpO1xuXG4gICAgICAvLyBmaXJzdCBtb3ZlIGl0ZW1zIHRvIGF2YWlsYWJsZVxuICAgICAgdGhpcy5hdmFpbGFibGVJdGVtcyA9IFsuLi50aGlzLmF2YWlsYWJsZUl0ZW1zLFxuICAgICAgICAgIC4uLmludGVyc2VjdGlvbldpdGgodGhpcy5zZWxlY3RlZEl0ZW1zLCB0aGlzLnNlbGVjdGVkTGlzdEJveENvbnRyb2wudmFsdWUsXG4gICAgICAgICAgICAgIChpdGVtOiBJTGlzdEJveEl0ZW0sIHZhbHVlOiBzdHJpbmcpID0+IGl0ZW0udmFsdWUgPT09IHZhbHVlKV07XG4gICAgICAvLyBub3cgZmlsdGVyIGF2YWlsYWJsZSBpdGVtcyB0byBub3QgaW5jbHVkZSBtYXJrZWQgdmFsdWVzXG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSBbLi4uZGlmZmVyZW5jZVdpdGgodGhpcy5zZWxlY3RlZEl0ZW1zLCB0aGlzLnNlbGVjdGVkTGlzdEJveENvbnRyb2wudmFsdWUsXG4gICAgICAgICAgKGl0ZW06IElMaXN0Qm94SXRlbSwgdmFsdWU6IHN0cmluZykgPT4gaXRlbS52YWx1ZSA9PT0gdmFsdWUpXTtcbiAgICAgIC8vIGNsZWFyIG1hcmtlZCBhdmFpbGFibGUgaXRlbXMgYW5kIGVtaXQgZXZlbnRcbiAgICAgIHRoaXMub25JdGVtc01vdmVkLmVtaXQoe1xuICAgICAgICAgIGF2YWlsYWJsZTogdGhpcy5hdmFpbGFibGVJdGVtcyxcbiAgICAgICAgICBzZWxlY3RlZDogdGhpcy5zZWxlY3RlZEl0ZW1zLFxuICAgICAgICAgIG1vdmVkSXRlbXM6IHRoaXMuc2VsZWN0ZWRMaXN0Qm94Q29udHJvbC52YWx1ZSxcbiAgICAgICAgICBmcm9tOiAnc2VsZWN0ZWQnLFxuICAgICAgICAgIHRvOiAnYXZhaWxhYmxlJ1xuICAgICAgfSk7XG4gICAgICB0aGlzLnNlbGVjdGVkTGlzdEJveENvbnRyb2wuc2V0VmFsdWUoW10pO1xuICAgICAgdGhpcy5zZWxlY3RlZFNlYXJjaElucHV0Q29udHJvbC5zZXRWYWx1ZSgnJyk7XG4gICAgICB0aGlzLndyaXRlVmFsdWUodGhpcy5nZXRWYWx1ZXMoKSk7XG4gIH1cblxuICAvKipcbiAgICogTW92ZSBzaW5nbGUgaXRlbSBmcm9tIGF2YWlsYWJsZSB0byBzZWxlY3RlZFxuICAgKiBAcGFyYW0gaXRlbVxuICAgKi9cbiAgbW92ZUF2YWlsYWJsZUl0ZW1Ub1NlbGVjdGVkKGl0ZW06IElMaXN0Qm94SXRlbSk6IHZvaWQge1xuXG4gICAgICB0aGlzLmF2YWlsYWJsZUl0ZW1zID0gdGhpcy5hdmFpbGFibGVJdGVtcy5maWx0ZXIoKGxpc3RJdGVtOiBJTGlzdEJveEl0ZW0pID0+IGxpc3RJdGVtLnZhbHVlICE9PSBpdGVtLnZhbHVlKTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IFsuLi50aGlzLnNlbGVjdGVkSXRlbXMsIGl0ZW1dO1xuICAgICAgdGhpcy5vbkl0ZW1zTW92ZWQuZW1pdCh7XG4gICAgICAgICAgYXZhaWxhYmxlOiB0aGlzLmF2YWlsYWJsZUl0ZW1zLFxuICAgICAgICAgIHNlbGVjdGVkOiB0aGlzLnNlbGVjdGVkSXRlbXMsXG4gICAgICAgICAgbW92ZWRJdGVtczogW2l0ZW0udmFsdWVdLFxuICAgICAgICAgIGZyb206ICdhdmFpbGFibGUnLFxuICAgICAgICAgIHRvOiAnc2VsZWN0ZWQnXG4gICAgICB9KTtcbiAgICAgIHRoaXMuYXZhaWxhYmxlU2VhcmNoSW5wdXRDb250cm9sLnNldFZhbHVlKCcnKTtcbiAgICAgIHRoaXMuYXZhaWxhYmxlTGlzdEJveENvbnRyb2wuc2V0VmFsdWUoW10pO1xuICAgICAgdGhpcy53cml0ZVZhbHVlKHRoaXMuZ2V0VmFsdWVzKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIE1vdmUgc2luZ2xlIGl0ZW0gZnJvbSBzZWxlY3RlZCB0byBhdmFpbGFibGVcbiAgICogQHBhcmFtIGl0ZW1cbiAgICovXG4gIG1vdmVTZWxlY3RlZEl0ZW1Ub0F2YWlsYWJsZShpdGVtOiBJTGlzdEJveEl0ZW0pOiB2b2lkIHtcblxuICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zID0gdGhpcy5zZWxlY3RlZEl0ZW1zLmZpbHRlcigobGlzdEl0ZW06IElMaXN0Qm94SXRlbSkgPT4gbGlzdEl0ZW0udmFsdWUgIT09IGl0ZW0udmFsdWUpO1xuICAgICAgdGhpcy5hdmFpbGFibGVJdGVtcyA9IFsuLi50aGlzLmF2YWlsYWJsZUl0ZW1zLCBpdGVtXTtcbiAgICAgIHRoaXMub25JdGVtc01vdmVkLmVtaXQoe1xuICAgICAgICAgIGF2YWlsYWJsZTogdGhpcy5hdmFpbGFibGVJdGVtcyxcbiAgICAgICAgICBzZWxlY3RlZDogdGhpcy5zZWxlY3RlZEl0ZW1zLFxuICAgICAgICAgIG1vdmVkSXRlbXM6IFtpdGVtLnZhbHVlXSxcbiAgICAgICAgICBmcm9tOiAnc2VsZWN0ZWQnLFxuICAgICAgICAgIHRvOiAnYXZhaWxhYmxlJ1xuICAgICAgfSk7XG4gICAgICB0aGlzLnNlbGVjdGVkU2VhcmNoSW5wdXRDb250cm9sLnNldFZhbHVlKCcnKTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRMaXN0Qm94Q29udHJvbC5zZXRWYWx1ZShbXSk7XG4gICAgICB0aGlzLndyaXRlVmFsdWUodGhpcy5nZXRWYWx1ZXMoKSk7XG4gIH1cblxuICAvKipcbiAgICogRnVuY3Rpb24gdG8gcGFzcyB0byBuZ0ZvciB0byBpbXByb3ZlIHBlcmZvcm1hbmNlLCB0cmFja3MgaXRlbXNcbiAgICogYnkgdGhlIHZhbHVlIGZpZWxkXG4gICAqIEBwYXJhbSBpbmRleFxuICAgKiBAcGFyYW0gaXRlbVxuICAgKi9cbiAgdHJhY2tCeVZhbHVlKGluZGV4OiBudW1iZXIsIGl0ZW06IGFueSk6IHN0cmluZyB7XG4gICAgICByZXR1cm4gaXRlbVt0aGlzLnZhbHVlRmllbGRdO1xuICB9XG5cbiAgLyogTWV0aG9kcyBmcm9tIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGludGVyZmFjZSwgcmVxdWlyZWQgZm9yIG5nTW9kZWwgYW5kIGZvcm1Db250cm9sTmFtZSAtIGJlZ2luICovXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRJdGVtcyAmJiB2YWx1ZSAmJiB2YWx1ZS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zID0gWy4uLnRoaXMuc2VsZWN0ZWRJdGVtcyxcbiAgICAgICAgICAgICAgLi4uaW50ZXJzZWN0aW9uV2l0aCh0aGlzLmF2YWlsYWJsZUl0ZW1zLCB2YWx1ZSwgKGl0ZW06IElMaXN0Qm94SXRlbSwgdmFsOiBzdHJpbmcpID0+IGl0ZW0udmFsdWUgPT09IHZhbCldO1xuICAgICAgICAgIHRoaXMuYXZhaWxhYmxlSXRlbXMgPSBbLi4uZGlmZmVyZW5jZVdpdGgodGhpcy5hdmFpbGFibGVJdGVtcywgdmFsdWUsXG4gICAgICAgICAgICAgIChpdGVtOiBJTGlzdEJveEl0ZW0sIHZhbDogc3RyaW5nKSA9PiBpdGVtLnZhbHVlID09PSB2YWwpXTtcbiAgICAgIH1cbiAgICAgIHRoaXMuX29uQ2hhbmdlKHZhbHVlKTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IChfOiBhbnkpID0+IHt9KTogdm9pZCB7XG4gICAgICB0aGlzLl9vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHt9KTogdm9pZCB7XG4gICAgICB0aGlzLl9vblRvdWNoZWQgPSBmbjtcbiAgfVxuICAvKiBNZXRob2RzIGZyb20gQ29udHJvbFZhbHVlQWNjZXNzb3IgaW50ZXJmYWNlLCByZXF1aXJlZCBmb3IgbmdNb2RlbCBhbmQgZm9ybUNvbnRyb2xOYW1lIC0gZW5kICovXG5cbiAgLyoqXG4gICAqIFV0aWxpdHkgbWV0aG9kIHRvIGdldCB2YWx1ZXMgZnJvbVxuICAgKiBzZWxlY3RlZCBpdGVtc1xuICAgKi9cbiAgcHJpdmF0ZSBnZXRWYWx1ZXMoKTogc3RyaW5nW10ge1xuICAgICAgcmV0dXJuICh0aGlzLnNlbGVjdGVkSXRlbXMgfHwgW10pLm1hcCgoaXRlbTogSUxpc3RCb3hJdGVtKSA9PiBpdGVtLnZhbHVlKTtcbiAgfVxuXG59XG5cbiIsIjxkaXYgY2xhc3M9XCJyb3dcIiBbZm9ybUdyb3VwXT1cImxpc3RCb3hGb3JtXCI+XG4gICAgPGRpdiBjbGFzcz1cImNvbC1tZC01IGNvbC1sZy01IGNvbC1zbS0xMlwiPlxuICAgICAgICA8aDQgY2xhc3M9XCJ0ZXh0LWNlbnRlciB2ZXJ0aWNhbC1zcGFjaW5nLTVcIj57e2F2YWlsYWJsZVRleHR9fTwvaDQ+XG4gICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sIHZlcnRpY2FsLXNwYWNpbmctNVwiIHBsYWNlaG9sZGVyPVwie3thdmFpbGFibGVGaWx0ZXJQbGFjZWhvbGRlcn19XCJcbiAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImF2YWlsYWJsZVNlYXJjaElucHV0XCIgLz5cbiAgICAgICAgPHNlbGVjdCBjbGFzcz1cImZvcm0tY29udHJvbCBsaXN0LWJveFwiIGZvcm1Db250cm9sTmFtZT1cImF2YWlsYWJsZUxpc3RCb3hcIiBtdWx0aXBsZSBbc2l6ZV09XCJsaXN0U2l6ZVwiPlxuICAgICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBhdmFpbGFibGVJdGVtcyB8IGFycmF5RmlsdGVyOlsndGV4dCcsIHNlYXJjaFRlcm1BdmFpbGFibGVdIHwgYXJyYXlTb3J0Oltzb3J0QnksICdBU0MnXTt0cmFja0J5OnRyYWNrQnlWYWx1ZVwiXG4gICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJpdGVtPy52YWx1ZVwiXG4gICAgICAgICAgICAgICAgICAgIFtpZF09XCJpdGVtPy52YWx1ZSsnT3B0aW9uJ1wiXG4gICAgICAgICAgICAgICAgICAgIChkYmxjbGljayk9XCJtb3ZlQXZhaWxhYmxlSXRlbVRvU2VsZWN0ZWQoaXRlbSlcIj57e2l0ZW0/LnRleHR9fTwvb3B0aW9uPlxuICAgICAgICA8L3NlbGVjdD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTIgY29sLWxnLTIgY29sLXNtLTEyIGNlbnRlci1ibG9jayB0ZXh0LWNlbnRlclwiPlxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IGNvbC1tZC04IGNvbC1tZC1vZmZzZXQtMiBhdHIgdG9wODAgc20tc3BhY2luZ1wiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImxpc3RCb3hGb3JtLmRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICBbaWRdPVwiaWRGaWVsZCsnTW92ZUFsbEJ0bidcIlxuICAgICAgICAgICAgICAgICpuZ0lmPVwibW92ZUFsbEJ1dHRvblwiIChjbGljayk9XCJtb3ZlQWxsSXRlbXNUb1NlbGVjdGVkKClcIiBhcmlhLWxhYmVsPVwiTW92ZSBBbGwgSXRlbXMgVG8gU2VsZWN0ZWRcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmkgYmktbGlzdC10YXNrXCI+PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJiaSBiaS1jaGV2cm9uLXJpZ2h0XCI+PC9zcGFuPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBjb2wtbWQtOCBjb2wtbWQtb2Zmc2V0LTIgc3RyIHZlcnRpY2FsLXNwYWNpbmctNSBzbS1zcGFjaW5nXCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwibGlzdEJveEZvcm0uZGlzYWJsZWQgfHwgIWF2YWlsYWJsZUxpc3RCb3hDb250cm9sLnZhbHVlPy5sZW5ndGhcIlxuICAgICAgICAgICAgICAgIFtpZF09XCJpZEZpZWxkKydNb3ZlT25lQnRuJ1wiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm1vdmVNYXJrZWRBdmFpbGFibGVJdGVtc1RvU2VsZWN0ZWQoKVwiIGFyaWEtbGFiZWw9XCJNb3ZlIE1hcmtlZCBBdmFpbGFibGUgSXRlbXMgVG8gU2VsZWN0ZWRcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmkgYmktY2hldnJvbi1yaWdodFwiPjwvc3Bhbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgY29sLW1kLTggY29sLW1kLW9mZnNldC0yIHN0bCB2ZXJ0aWNhbC1zcGFjaW5nLTUgc20tc3BhY2luZ1wiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImxpc3RCb3hGb3JtLmRpc2FibGVkIHx8ICFzZWxlY3RlZExpc3RCb3hDb250cm9sLnZhbHVlPy5sZW5ndGhcIlxuICAgICAgICAgICAgICAgIFtpZF09XCJpZEZpZWxkKydNb3ZlT25lTGVmdEJ0bidcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJtb3ZlTWFya2VkU2VsZWN0ZWRJdGVtc1RvQXZhaWxhYmxlKClcIiBhcmlhLWxhYmVsPVwiTW92ZSBNYXJrZWQgU2VsZWN0ZWQgSXRlbXMgVG8gQXZhaWxhYmxlXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJpIGJpLWNoZXZyb24tbGVmdFwiPjwvc3Bhbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgY29sLW1kLTggY29sLW1kLW9mZnNldC0yIGF0bCBib3R0b20xMCBzbS1zcGFjaW5nXCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwibGlzdEJveEZvcm0uZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgIFtpZF09XCJpZEZpZWxkKydNb3ZlQWxsTGVmdEJ0bidcIlxuICAgICAgICAgICAgICAgICpuZ0lmPVwibW92ZUFsbEJ1dHRvblwiIChjbGljayk9XCJtb3ZlQWxsSXRlbXNUb0F2YWlsYWJsZSgpXCIgYXJpYS1sYWJlbD1cIk1vdmUgQWxsIEl0ZW1zIFRvIEF2YWlsYWJsZVwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJiaSBiaS1jaGV2cm9uLWxlZnRcIj48L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJpIGJpLWxpc3QtdGFza1wiPjwvc3Bhbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImNvbC1tZC01IGNvbC1sZy01IGNvbC1zbS0xMlwiPlxuICAgICAgICA8aDQgY2xhc3M9XCJ0ZXh0LWNlbnRlciB2ZXJ0aWNhbC1zcGFjaW5nLTVcIj57e3NlbGVjdGVkVGV4dH19PC9oND5cbiAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2wgdmVydGljYWwtc3BhY2luZy01XCIgcGxhY2Vob2xkZXI9XCJ7e3NlbGVjdGVkRmlsdGVyUGxhY2Vob2xkZXJ9fVwiXG4gICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJzZWxlY3RlZFNlYXJjaElucHV0XCIgLz5cbiAgICAgICAgPHNlbGVjdCBjbGFzcz1cImZvcm0tY29udHJvbCBsaXN0LWJveFwiIGZvcm1Db250cm9sTmFtZT1cInNlbGVjdGVkTGlzdEJveFwiIG11bHRpcGxlIFtzaXplXT1cImxpc3RTaXplXCI+XG4gICAgICAgICAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCBpdGVtIG9mIHNlbGVjdGVkSXRlbXMgfCBhcnJheUZpbHRlcjpbJ3RleHQnLCBzZWFyY2hUZXJtU2VsZWN0ZWRdIHwgYXJyYXlTb3J0Oltzb3J0QnksICdBU0MnXTt0cmFja0J5OnRyYWNrQnlWYWx1ZVwiXG4gICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJpdGVtPy52YWx1ZVwiXG4gICAgICAgICAgICAgICAgICAgIChkYmxjbGljayk9XCJtb3ZlU2VsZWN0ZWRJdGVtVG9BdmFpbGFibGUoaXRlbSlcIj57e2l0ZW0/LnRleHR9fTwvb3B0aW9uPlxuICAgICAgICA8L3NlbGVjdD5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuIl19
|