@ohioepa/oepa-ui-lib 2.0.4 → 2.0.6
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/date-input/date-input.component.mjs +1 -1
- package/esm2022/lib/date-input-modal/date-input-modal.component.mjs +1 -1
- package/esm2022/lib/datepicker/datepicker.component.mjs +29 -18
- package/esm2022/lib/daterangepicker/daterangepicker.component.mjs +26 -11
- 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/oepa-user-account/oepa-user-account.service.mjs +5 -7
- package/esm2022/lib/params-help-button/params-help.service.mjs +1 -1
- package/esm2022/lib/table/table-header-cell/table-header-cell.component.mjs +3 -3
- package/fesm2022/ohioepa-oepa-ui-lib.mjs +68 -43
- package/fesm2022/ohioepa-oepa-ui-lib.mjs.map +1 -1
- package/lib/datepicker/datepicker.component.d.ts +5 -3
- package/lib/daterangepicker/daterangepicker.component.d.ts +5 -3
- package/lib/oepa-user-account/oepa-user-account.service.d.ts +3 -3
- package/ohioepa-oepa-ui-lib-2.0.6.tgz +0 -0
- package/package.json +1 -1
- package/ohioepa-oepa-ui-lib-2.0.4.tgz +0 -0
package/README.md
CHANGED
|
@@ -1,24 +1,24 @@
|
|
|
1
|
-
# OepaUiLib
|
|
2
|
-
|
|
3
|
-
This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 18.2.0.
|
|
4
|
-
|
|
5
|
-
## Code scaffolding
|
|
6
|
-
|
|
7
|
-
Run `ng generate component component-name --project oepa-ui-lib` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project oepa-ui-lib`.
|
|
8
|
-
> Note: Don't forget to add `--project oepa-ui-lib` or else it will be added to the default project in your `angular.json` file.
|
|
9
|
-
|
|
10
|
-
## Build
|
|
11
|
-
|
|
12
|
-
Run `ng build oepa-ui-lib` to build the project. The build artifacts will be stored in the `dist/` directory.
|
|
13
|
-
|
|
14
|
-
## Publishing
|
|
15
|
-
|
|
16
|
-
After building your library with `ng build oepa-ui-lib`, go to the dist folder `cd dist/oepa-ui-lib` and run `npm publish`.
|
|
17
|
-
|
|
18
|
-
## Running unit tests
|
|
19
|
-
|
|
20
|
-
Run `ng test oepa-ui-lib` to execute the unit tests via [Karma](https://karma-runner.github.io).
|
|
21
|
-
|
|
22
|
-
## Further help
|
|
23
|
-
|
|
24
|
-
To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.dev/tools/cli) page.
|
|
1
|
+
# OepaUiLib
|
|
2
|
+
|
|
3
|
+
This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 18.2.0.
|
|
4
|
+
|
|
5
|
+
## Code scaffolding
|
|
6
|
+
|
|
7
|
+
Run `ng generate component component-name --project oepa-ui-lib` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project oepa-ui-lib`.
|
|
8
|
+
> Note: Don't forget to add `--project oepa-ui-lib` or else it will be added to the default project in your `angular.json` file.
|
|
9
|
+
|
|
10
|
+
## Build
|
|
11
|
+
|
|
12
|
+
Run `ng build oepa-ui-lib` to build the project. The build artifacts will be stored in the `dist/` directory.
|
|
13
|
+
|
|
14
|
+
## Publishing
|
|
15
|
+
|
|
16
|
+
After building your library with `ng build oepa-ui-lib`, go to the dist folder `cd dist/oepa-ui-lib` and run `npm publish`.
|
|
17
|
+
|
|
18
|
+
## Running unit tests
|
|
19
|
+
|
|
20
|
+
Run `ng test oepa-ui-lib` to execute the unit tests via [Karma](https://karma-runner.github.io).
|
|
21
|
+
|
|
22
|
+
## Further help
|
|
23
|
+
|
|
24
|
+
To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.dev/tools/cli) page.
|
|
@@ -35,4 +35,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
35
35
|
type: Inject,
|
|
36
36
|
args: ['app']
|
|
37
37
|
}] }] });
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudC1zZWFyY2guc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29lcGEtdWktbGliL3NyYy9saWIvYWNjb3VudC1zZWFyY2gtaW5wdXQvYWNjb3VudC1zZWFyY2guc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDL0QsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQU9uRCxNQUFNLE9BQU8sb0JBQW9CO0lBRVg7SUFDYTtJQUNSO0lBRnpCLFlBQW9CLElBQWdCLEVBQ0gsV0FBbUIsRUFDM0IsR0FBVztRQUZoQixTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ0gsZ0JBQVcsR0FBWCxXQUFXLENBQVE7UUFDM0IsUUFBRyxHQUFILEdBQUcsQ0FBUTtJQUFJLENBQUM7SUFFaEMsb0JBQW9CLENBQUMsU0FBaUIsRUFBRSxNQUFlO1FBQzVELE1BQU0sT0FBTyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7UUFDbEMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxjQUFjLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztRQUNuRCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsV0FBVyxHQUFHLFNBQVMsQ0FBQztRQUMzQyxNQUFNLE1BQU0sR0FBTztZQUNqQixLQUFLLEVBQUUsSUFBSSxDQUFDLEdBQUc7U0FDaEIsQ0FBQztRQUNBLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQVksR0FBRyxFQUFFLE1BQU0sRUFBRSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUM1RyxDQUFDO3dHQWRRLG9CQUFvQiw0Q0FHckIsYUFBYSxhQUNiLEtBQUs7NEdBSkosb0JBQW9CLGNBRm5CLE1BQU07OzRGQUVQLG9CQUFvQjtrQkFIaEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQUlJLE1BQU07MkJBQUMsYUFBYTs7MEJBQ3BCLE1BQU07MkJBQUMsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBIZWFkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWNjb3VudCB9IGZyb20gJ0BvaGlvZXBhL29lcGEtZWJpei1saWInO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBY2NvdW50U2VhcmNoU2VydmljZSB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cDogSHR0cENsaWVudCwgXHJcbiAgICBASW5qZWN0KCdlYml6Um9vdFVSTCcpIHByaXZhdGUgZWJpelJvb3RVUkw6IHN0cmluZyxcclxuICAgIEBJbmplY3QoJ2FwcCcpIHByaXZhdGUgYXBwOiBzdHJpbmcpIHsgfVxyXG5cclxuICAgIHB1YmxpYyBzZWFyY2hBY2NvdW50c0Zyb21EQihzZWFyY2hVUkw6IHN0cmluZywgZmlsdGVyOiBBY2NvdW50KTogT2JzZXJ2YWJsZTxBY2NvdW50W10+IHtcclxuICAgICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpO1xyXG4gICAgICBoZWFkZXJzLmFwcGVuZCgnQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgY29uc3QgdXJsID0gdGhpcy5lYml6Um9vdFVSTCArIHNlYXJjaFVSTDtcclxuICAgIGNvbnN0IHBhcmFtczphbnkgPSB7XHJcbiAgICAgICdhcHAnOiB0aGlzLmFwcFxyXG4gICAgfTtcclxuICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEFjY291bnRbXT4odXJsLCBmaWx0ZXIsIHsgaGVhZGVyczogaGVhZGVycywgcmVzcG9uc2VUeXBlOiAnanNvbicsIHBhcmFtczogcGFyYW1zIH0pO1xyXG4gICAgfVxyXG5cclxufVxyXG4iXX0=
|
|
@@ -29,7 +29,7 @@ export class DateInputComponent {
|
|
|
29
29
|
}
|
|
30
30
|
}
|
|
31
31
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DateInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
32
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DateInputComponent, selector: "oepa-date-input", inputs: { group: "group", field: "field", tableIdx: "tableIdx", placement: "placement", showValidation: "showValidation", pauseChangeProcessing: "pauseChangeProcessing" }, outputs: { onValueChange: "onValueChange" }, ngImport: i0, template: "<div [formGroup]=\"group\" role=\"group\" aria-label=\"Date Input Group\">\n <oepa-datepicker [group]=\"group\" [field]=\"field\" [tableIdx]=\"tableIdx\" \n [placement]=\"placement\" [showValidation]=\"showValidation\"></oepa-datepicker>\n</div>", styles: [""], dependencies: [{ 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: "component", type: i2.DatepickerComponent, selector: "oepa-datepicker", inputs: ["group", "field", "bsConfig", "showValidation", "placement", "tableIdx", "small"], exportAs: ["oepa-datepicker"] }] });
|
|
32
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DateInputComponent, selector: "oepa-date-input", inputs: { group: "group", field: "field", tableIdx: "tableIdx", placement: "placement", showValidation: "showValidation", pauseChangeProcessing: "pauseChangeProcessing" }, outputs: { onValueChange: "onValueChange" }, ngImport: i0, template: "<div [formGroup]=\"group\" role=\"group\" aria-label=\"Date Input Group\">\n <oepa-datepicker [group]=\"group\" [field]=\"field\" [tableIdx]=\"tableIdx\" \n [placement]=\"placement\" [showValidation]=\"showValidation\"></oepa-datepicker>\n</div>", styles: [""], dependencies: [{ 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: "component", type: i2.DatepickerComponent, selector: "oepa-datepicker", inputs: ["componentId", "group", "field", "bsConfig", "showValidation", "placement", "tableIdx", "small"], exportAs: ["oepa-datepicker"] }] });
|
|
33
33
|
}
|
|
34
34
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DateInputComponent, decorators: [{
|
|
35
35
|
type: Component,
|
|
@@ -46,7 +46,7 @@ export class DateInputModalComponent {
|
|
|
46
46
|
this.bsModalRef.hide();
|
|
47
47
|
}
|
|
48
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 });
|
|
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\" role=\"banner\">\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\" role=\"dialog\" aria-labelledby=\"dateInputModalTitle\">\n <div class=\"row\">\n <div *ngIf=\"infoText\" class=\"col-sm-12\">\n <div class=\"alert alert-info\" role=\"alert\">\n {{infoText}}\n </div>\n </div>\n <div class=\"col-sm-12\">\n <div>\n <label [for]=\"datepicker.inputId\" [id]=\"datepicker.inputId+'_Label'\">{{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\" role=\"alert\">{{errorMessage}}</div>\n </div>\n</div>\n<div class=\"modal-footer\" role=\"contentinfo\">\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
|
+
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\" role=\"banner\">\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\" role=\"dialog\" aria-labelledby=\"dateInputModalTitle\">\n <div class=\"row\">\n <div *ngIf=\"infoText\" class=\"col-sm-12\">\n <div class=\"alert alert-info\" role=\"alert\">\n {{infoText}}\n </div>\n </div>\n <div class=\"col-sm-12\">\n <div>\n <label [for]=\"datepicker.inputId\" [id]=\"datepicker.inputId+'_Label'\">{{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\" role=\"alert\">{{errorMessage}}</div>\n </div>\n</div>\n<div class=\"modal-footer\" role=\"contentinfo\">\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: ["componentId", "group", "field", "bsConfig", "showValidation", "placement", "tableIdx", "small"], exportAs: ["oepa-datepicker"] }] });
|
|
50
50
|
}
|
|
51
51
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DateInputModalComponent, decorators: [{
|
|
52
52
|
type: Component,
|
|
@@ -6,11 +6,10 @@ 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
|
-
|
|
11
|
-
|
|
9
|
+
_componentId;
|
|
10
|
+
set componentId(value) {
|
|
11
|
+
this._componentId = value;
|
|
12
12
|
}
|
|
13
|
-
componentId = 'OepaDatepickerComponent';
|
|
14
13
|
group;
|
|
15
14
|
field;
|
|
16
15
|
bsConfig;
|
|
@@ -18,6 +17,20 @@ export class DatepickerComponent {
|
|
|
18
17
|
placement;
|
|
19
18
|
tableIdx;
|
|
20
19
|
small = false;
|
|
20
|
+
// Exposes the input element's id for parent label association.
|
|
21
|
+
get componentIdComputed() {
|
|
22
|
+
// Priority: explicit input → generated → fallback
|
|
23
|
+
if (this._componentId)
|
|
24
|
+
return this._componentId;
|
|
25
|
+
if (this.group && this.field) {
|
|
26
|
+
const base = this.idService.getComponentId(this.group);
|
|
27
|
+
return base + (base ? '_' : '') + this.field + (this.tableIdx ?? '');
|
|
28
|
+
}
|
|
29
|
+
return 'oepa-datepicker';
|
|
30
|
+
}
|
|
31
|
+
get inputId() {
|
|
32
|
+
return this.componentIdComputed + '_Input';
|
|
33
|
+
}
|
|
21
34
|
minDate;
|
|
22
35
|
maxDate;
|
|
23
36
|
isDisabled = false;
|
|
@@ -25,13 +38,10 @@ export class DatepickerComponent {
|
|
|
25
38
|
switch (this.placement) {
|
|
26
39
|
case 'top':
|
|
27
40
|
return 'top';
|
|
28
|
-
break;
|
|
29
41
|
case 'left':
|
|
30
42
|
return 'left';
|
|
31
|
-
break;
|
|
32
43
|
case 'right':
|
|
33
44
|
return 'right';
|
|
34
|
-
break;
|
|
35
45
|
default:
|
|
36
46
|
return 'bottom';
|
|
37
47
|
}
|
|
@@ -76,13 +86,12 @@ export class DatepickerComponent {
|
|
|
76
86
|
this.bsConfig = {};
|
|
77
87
|
}
|
|
78
88
|
this.bsConfig.showWeekNumbers = false;
|
|
79
|
-
if (this.group) {
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
}
|
|
89
|
+
// if (this.group) {
|
|
90
|
+
// this.componentId = this.idService.getComponentId(this.group);
|
|
91
|
+
// this.componentId += (this.componentId.length > 0 ? '_' : '') + (this.field || '') + (this.tableIdx || '');
|
|
92
|
+
// } else {
|
|
93
|
+
// console.log('OOPS No datepickerForm yet');
|
|
94
|
+
// }
|
|
86
95
|
}
|
|
87
96
|
// force value to null in case where user enters non-numeric values
|
|
88
97
|
// in the field. The "normal" behavior of the ngx-bootstrap datepicker
|
|
@@ -112,12 +121,14 @@ export class DatepickerComponent {
|
|
|
112
121
|
}
|
|
113
122
|
}
|
|
114
123
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DatepickerComponent, deps: [{ token: i1.OepaComponentIdService }], target: i0.ɵɵFactoryTarget.Component });
|
|
115
|
-
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: "<div [formGroup]=\"group\" role=\"group\" aria-label=\"Datepicker 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]=\"
|
|
124
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DatepickerComponent, selector: "oepa-datepicker", inputs: { componentId: "componentId", group: "group", field: "field", bsConfig: "bsConfig", showValidation: "showValidation", placement: "placement", tableIdx: "tableIdx", small: "small" }, exportAs: ["oepa-datepicker"], usesOnChanges: true, ngImport: i0, template: "<div [formGroup]=\"group\" role=\"group\" aria-label=\"Datepicker 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]=\"componentIdComputed+'_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) ? (componentIdComputed + '_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]=\"componentIdComputed+'_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]=\"componentIdComputed+'_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]=\"componentIdComputed+'_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]=\"componentIdComputed+'_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]" }] });
|
|
116
125
|
}
|
|
117
126
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DatepickerComponent, decorators: [{
|
|
118
127
|
type: Component,
|
|
119
|
-
args: [{ selector: 'oepa-datepicker', exportAs: 'oepa-datepicker', template: "<div [formGroup]=\"group\" role=\"group\" aria-label=\"Datepicker 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]=\"
|
|
120
|
-
}], ctorParameters: () => [{ type: i1.OepaComponentIdService }], propDecorators: {
|
|
128
|
+
args: [{ selector: 'oepa-datepicker', exportAs: 'oepa-datepicker', template: "<div [formGroup]=\"group\" role=\"group\" aria-label=\"Datepicker 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]=\"componentIdComputed+'_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) ? (componentIdComputed + '_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]=\"componentIdComputed+'_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]=\"componentIdComputed+'_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]=\"componentIdComputed+'_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]=\"componentIdComputed+'_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"] }]
|
|
129
|
+
}], ctorParameters: () => [{ type: i1.OepaComponentIdService }], propDecorators: { componentId: [{
|
|
130
|
+
type: Input
|
|
131
|
+
}], group: [{
|
|
121
132
|
type: Input
|
|
122
133
|
}], field: [{
|
|
123
134
|
type: Input
|
|
@@ -132,4 +143,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
132
143
|
}], small: [{
|
|
133
144
|
type: Input
|
|
134
145
|
}] } });
|
|
135
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vZXBhLXVpLWxpYi9zcmMvbGliL2RhdGVwaWNrZXIvZGF0ZXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vZXBhLXVpLWxpYi9zcmMvbGliL2RhdGVwaWNrZXIvZGF0ZXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBb0MsTUFBTSxlQUFlLENBQUM7Ozs7OztBQWFuRixNQUFNLE9BQU8sbUJBQW1CO0lBa0NWO0lBakNwQiwrREFBK0Q7SUFDL0QsSUFBVyxPQUFPO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFdBQVcsR0FBRyxRQUFRLENBQUM7SUFDckMsQ0FBQztJQUNNLFdBQVcsR0FBRyx5QkFBeUIsQ0FBQztJQUN0QyxLQUFLLENBQWE7SUFDbEIsS0FBSyxDQUFVO0lBQ2YsUUFBUSxDQUErQjtJQUN2QyxjQUFjLEdBQUcsS0FBSyxDQUFDO0lBQ3ZCLFNBQVMsQ0FBVTtJQUNuQixRQUFRLENBQXFCO0lBQzdCLEtBQUssR0FBRyxLQUFLLENBQUM7SUFFaEIsT0FBTyxDQUFvQjtJQUMzQixPQUFPLENBQW9CO0lBQzNCLFVBQVUsR0FBRyxLQUFLLENBQUM7SUFFbkIsWUFBWTtRQUNqQixRQUFRLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUN2QixLQUFLLEtBQUs7Z0JBQ1IsT0FBTyxLQUFLLENBQUM7Z0JBQ2IsTUFBTTtZQUNSLEtBQUssTUFBTTtnQkFDVCxPQUFPLE1BQU0sQ0FBQztnQkFDZCxNQUFNO1lBQ1IsS0FBSyxPQUFPO2dCQUNWLE9BQU8sT0FBTyxDQUFDO2dCQUNmLE1BQU07WUFDUjtnQkFDRSxPQUFPLFFBQVEsQ0FBQztRQUNwQixDQUFDO0lBQ0gsQ0FBQztJQUVELFlBQW9CLFNBQWlD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SCxDQUFDO3dHQTVHVSxtQkFBbUI7NEZBQW5CLG1CQUFtQiw2UUNiaEMsc3pFQWdFQTs7NEZEbkRhLG1CQUFtQjtrQkFOL0IsU0FBUzsrQkFDRSxpQkFBaUIsWUFHakIsaUJBQWlCOzJGQVFsQixLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0LCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgQnNEYXRlcGlja2VyQ29uZmlnIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC9kYXRlcGlja2VyJztcblxuaW1wb3J0IHsgT2VwYUNvbXBvbmVudElkU2VydmljZSB9IGZyb20gJ0BvaGlvZXBhL29lcGEtY29tbW9uLWxpYic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ29lcGEtZGF0ZXBpY2tlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXRlcGlja2VyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZGF0ZXBpY2tlci5jb21wb25lbnQuY3NzJ10sXG4gIGV4cG9ydEFzOiAnb2VwYS1kYXRlcGlja2VyJ1xufSlcbmV4cG9ydCBjbGFzcyBEYXRlcGlja2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICAvLyBFeHBvc2VzIHRoZSBpbnB1dCBlbGVtZW50J3MgaWQgZm9yIHBhcmVudCBsYWJlbCBhc3NvY2lhdGlvbi5cbiAgcHVibGljIGdldCBpbnB1dElkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuY29tcG9uZW50SWQgKyAnX0lucHV0JztcbiAgfVxuICBwdWJsaWMgY29tcG9uZW50SWQgPSAnT2VwYURhdGVwaWNrZXJDb21wb25lbnQnO1xuICBASW5wdXQoKSBncm91cCE6IEZvcm1Hcm91cDtcbiAgQElucHV0KCkgZmllbGQhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGJzQ29uZmlnITogUGFydGlhbDxCc0RhdGVwaWNrZXJDb25maWc+O1xuICBASW5wdXQoKSBzaG93VmFsaWRhdGlvbiA9IGZhbHNlO1xuICBASW5wdXQoKSBwbGFjZW1lbnQhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHRhYmxlSWR4OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIHNtYWxsID0gZmFsc2U7XG5cbiAgcHVibGljIG1pbkRhdGUhOiBEYXRlIHwgdW5kZWZpbmVkO1xuICBwdWJsaWMgbWF4RGF0ZSE6IERhdGUgfCB1bmRlZmluZWQ7XG4gIHB1YmxpYyBpc0Rpc2FibGVkID0gZmFsc2U7XG5cbiAgcHVibGljIGdldFBsYWNlbWVudCgpIDogJ3RvcCcgfCAnYm90dG9tJyB8ICdsZWZ0JyB8ICdyaWdodCcge1xuICAgIHN3aXRjaCAodGhpcy5wbGFjZW1lbnQpIHtcbiAgICAgIGNhc2UgJ3RvcCc6XG4gICAgICAgIHJldHVybiAndG9wJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdsZWZ0JzpcbiAgICAgICAgcmV0dXJuICdsZWZ0JztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdyaWdodCc6XG4gICAgICAgIHJldHVybiAncmlnaHQnO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiAnYm90dG9tJztcbiAgICB9XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGlkU2VydmljZTogT2VwYUNvbXBvbmVudElkU2VydmljZSkgeyB9XG5cbiAgY2hlY2tWYWxpZGl0eSgpIHtcbiAgICBmb3IgKGNvbnN0IGtleSBpbiB0aGlzLmdyb3VwLmNvbnRyb2xzKSB7XG4gICAgICBpZiAodGhpcy5ncm91cC5jb250cm9scy5oYXNPd25Qcm9wZXJ0eShrZXkpICYmIGtleSA9PT0gdGhpcy5maWVsZCkge1xuICAgICAgICByZXR1cm4gdGhpcy5ncm91cC5jb250cm9sc1trZXldLnN0YXR1cyAhPT0gJ0lOVkFMSUQnO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNsZWFyRGF0ZSgpIHtcbiAgICBmb3IgKGNvbnN0IGtleSBpbiB0aGlzLmdyb3VwLmNvbnRyb2xzKSB7XG4gICAgICBpZiAodGhpcy5ncm91cC5jb250cm9scy5oYXNPd25Qcm9wZXJ0eShrZXkpICYmIGtleSA9PT0gdGhpcy5maWVsZCkge1xuICAgICAgICB0aGlzLmdyb3VwLmNvbnRyb2xzW2tleV0uc2V0VmFsdWUobnVsbCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKHRoaXMuYnNDb25maWcpIHtcbiAgICAgIGlmICh0aGlzLmJzQ29uZmlnLm1pbkRhdGUpIHtcbiAgICAgICAgdGhpcy5taW5EYXRlID0gdGhpcy5ic0NvbmZpZy5taW5EYXRlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5taW5EYXRlID0gdW5kZWZpbmVkO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMuYnNDb25maWcubWF4RGF0ZSkge1xuICAgICAgICB0aGlzLm1heERhdGUgPSB0aGlzLmJzQ29uZmlnLm1heERhdGU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLm1heERhdGUgPSB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5ic0NvbmZpZy5pc0Rpc2FibGVkKSB7XG4gICAgICAgIHRoaXMuaXNEaXNhYmxlZCA9IHRoaXMuYnNDb25maWcuaXNEaXNhYmxlZDsgLy8gZGVmYXVsdHMgdG8gZmFsc2VcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5ic0NvbmZpZyA9IHt9O1xuICAgIH1cbiAgICB0aGlzLmJzQ29uZmlnLnNob3dXZWVrTnVtYmVycyA9IGZhbHNlO1xuICAgIGlmICh0aGlzLmdyb3VwKSB7XG4gICAgICB0aGlzLmNvbXBvbmVudElkID0gdGhpcy5pZFNlcnZpY2UuZ2V0Q29tcG9uZW50SWQodGhpcy5ncm91cCk7XG4gICAgICB0aGlzLmNvbXBvbmVudElkICs9ICh0aGlzLmNvbXBvbmVudElkLmxlbmd0aCA+IDAgPyAnXycgOiAnJykgKyAodGhpcy5maWVsZCB8fCAnJykgKyAodGhpcy50YWJsZUlkeCB8fCAnJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUubG9nKCdPT1BTIE5vIGRhdGVwaWNrZXJGb3JtIHlldCcpO1xuICAgIH1cbiAgfVxuXG4gIC8vIGZvcmNlIHZhbHVlIHRvIG51bGwgaW4gY2FzZSB3aGVyZSB1c2VyIGVudGVycyBub24tbnVtZXJpYyB2YWx1ZXNcbiAgLy8gaW4gdGhlIGZpZWxkLiBUaGUgXCJub3JtYWxcIiBiZWhhdmlvciBvZiB0aGUgbmd4LWJvb3RzdHJhcCBkYXRlcGlja2VyXG4gIC8vIGlzIHRvIHNldCB0aGUgaW5wdXQgdmFsdWUgdG8gXCJJbnZhbGlkIERhdGVcIi4gVW5mb3J0dW5hdGVseSwgdGhpcyBtZXNzZXNcbiAgLy8gdXAgdmFsaWRhdGlvbi4gVGhlIG1ldGhvZCBiZWxvdyB3aWxsIGZvcmNlIHRoZSBpbnB1dCB2YWx1ZSB0byBudWxsXG4gIC8vIGluIHRoaXMgY2FzZSB3aGljaCB3aWxsIGVuc3VyZSB0aGF0IHZhbGlkYXRpb24gd29ya3MgcHJvcGVybHkuXG4gIG9uVmFsdWVDaGFuZ2UoZXZlbnQ6YW55KSB7XG4gICAgLy8gdGltZW91dCBpcyBuZWVkZWQgdG8gbWFrZSB0aGlzIHdvcmsgcHJvcGVybHlcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICh0aGlzLmdyb3VwICYmIHRoaXMuZ3JvdXAuY29udHJvbHNbdGhpcy5maWVsZF0pIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmdyb3VwLmNvbnRyb2xzW3RoaXMuZmllbGRdLnZhbHVlO1xuICAgICAgICBpZiAodmFsdWUgJiYgdmFsdWUudG9KU09OKCkgPT09IG51bGwpIHtcbiAgICAgICAgICB0aGlzLmdyb3VwLmNvbnRyb2xzW3RoaXMuZmllbGRdLnNldFZhbHVlKG51bGwpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZ3JvdXAuY29udHJvbHNbdGhpcy5maWVsZF0udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgICAgfVxuICAgIH0sIDUwKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAoY2hhbmdlc1snYnNDb25maWcnXSkge1xuICAgICAgaWYgKGNoYW5nZXNbJ2JzQ29uZmlnJ10uY3VycmVudFZhbHVlLm1pbkRhdGUgfHwgY2hhbmdlc1snYnNDb25maWcnXS5jdXJyZW50VmFsdWUubWluRGF0ZSA9PSBudWxsKSB7XG4gICAgICAgIHRoaXMubWluRGF0ZSA9IGNoYW5nZXNbJ2JzQ29uZmlnJ10uY3VycmVudFZhbHVlLm1pbkRhdGU7XG4gICAgICB9XG5cbiAgICAgIGlmIChjaGFuZ2VzWydic0NvbmZpZyddLmN1cnJlbnRWYWx1ZS5tYXhEYXRlIHx8IGNoYW5nZXNbJ2JzQ29uZmlnJ10uY3VycmVudFZhbHVlLm1heERhdGUgPT0gbnVsbCkge1xuICAgICAgICB0aGlzLm1heERhdGUgPSBjaGFuZ2VzWydic0NvbmZpZyddLmN1cnJlbnRWYWx1ZS5tYXhEYXRlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG59XG4iLCI8ZGl2IFtmb3JtR3JvdXBdPVwiZ3JvdXBcIiByb2xlPVwiZ3JvdXBcIiBhcmlhLWxhYmVsPVwiRGF0ZXBpY2tlciBHcm91cFwiPlxuICA8ZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cFwiPlxuICAgICAgPCEtLSBhIGxhYmVsIChoaWRkZW4gb3Igbm90KSBzaG91bGQgYmUgcHJvdmlkZWQgYnkgdGhlIHBhcmVudCBjb21wb25lbnQgdG8gZW5zdXJlIGFjY2Vzc2liaWxpdHkgLS0+XG4gICAgICA8aW5wdXRcbiAgICAgICAgW2lkXT1cImNvbXBvbmVudElkKydfSW5wdXQnXCJcbiAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICBbbWluRGF0ZV09XCJtaW5EYXRlXCJcbiAgICAgICAgW21heERhdGVdPVwibWF4RGF0ZVwiXG4gICAgICAgICNkcD1cImJzRGF0ZXBpY2tlclwiXG4gICAgICAgIGJzRGF0ZXBpY2tlclxuICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImZpZWxkXCJcbiAgICAgICAgW2JzQ29uZmlnXT1cImJzQ29uZmlnXCJcbiAgICAgICAgW2lzRGlzYWJsZWRdPVwiZ3JvdXAuZ2V0KCdmaWVsZCcpPy5kaXNhYmxlZCB8fCBmYWxzZVwiXG4gICAgICAgIFtwbGFjZW1lbnRdPVwiZ2V0UGxhY2VtZW50KCkgIHx8ICdib3R0b20nXCJcbiAgICAgICAgW25nQ2xhc3NdPVwieydpcy1pbnZhbGlkJzpzaG93VmFsaWRhdGlvbiAmJiAhY2hlY2tWYWxpZGl0eSgpfVwiXG4gICAgICAgIChic1ZhbHVlQ2hhbmdlKT1cIm9uVmFsdWVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwiKHNob3dWYWxpZGF0aW9uICYmIGdyb3VwLmdldChmaWVsZCk/LmludmFsaWQpID8gKGNvbXBvbmVudElkICsgJ19FcnJvcicpIDogbnVsbFwiXG4gICAgICAgIFthdHRyLmFyaWEtaW52YWxpZF09XCJzaG93VmFsaWRhdGlvbiAmJiAhY2hlY2tWYWxpZGl0eSgpID8gJ3RydWUnIDogJ2ZhbHNlJ1wiXG4gICAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiXG4gICAgICA+XG4gICAgICA8ZGl2IGNsYXNzPVwiYnRuLWdyb3VwXCIgcm9sZT1cImdyb3VwXCIgYXJpYS1sYWJlbD1cIkRhdGVwaWNrZXIgY29udHJvbHNcIj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCJcbiAgICAgICAgICAoY2xpY2spPVwiZHAudG9nZ2xlKClcIlxuICAgICAgICAgIFtpZF09XCJjb21wb25lbnRJZCsnX1RvZ2dsZUJ0bidcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJncm91cC5nZXQoZmllbGQpPy5kaXNhYmxlZFwiXG4gICAgICAgICAgYXJpYS1sYWJlbD1cIk9wZW4gY2FsZW5kYXJcIlxuICAgICAgICA+XG4gICAgICAgICAgPGkgY2xhc3M9XCJiaSBiaS1jYWxlbmRhcjNcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIlxuICAgICAgICAgIChjbGljayk9XCJjbGVhckRhdGUoKVwiXG4gICAgICAgICAgW2lkXT1cImNvbXBvbmVudElkKydfQ2xlYXJCdG4nXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiZ3JvdXAuZ2V0KGZpZWxkKT8uZGlzYWJsZWRcIlxuICAgICAgICAgIGFyaWEtbGFiZWw9XCJDbGVhciBkYXRlXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxpIGNsYXNzPVwiYmkgYmkteC1sZ1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8c21hbGxcbiAgICAgIGNsYXNzPVwiaW52YWxpZC1mZWVkYmFjayBkLWJsb2NrXCJcbiAgICAgICpuZ0lmPVwic2hvd1ZhbGlkYXRpb24gJiYgZ3JvdXAuZ2V0KGZpZWxkKT8uaGFzRXJyb3IoJ3JlcXVpcmVkJylcIlxuICAgICAgW2lkXT1cImNvbXBvbmVudElkKydfRXJyb3InXCJcbiAgICAgIHJvbGU9XCJhbGVydFwiXG4gICAgICBhcmlhLWxpdmU9XCJhc3NlcnRpdmVcIlxuICAgID5cbiAgICAgIERhdGUgaXMgcmVxdWlyZWRcbiAgICA8L3NtYWxsPlxuICAgIDxzbWFsbFxuICAgICAgY2xhc3M9XCJpbnZhbGlkLWZlZWRiYWNrIGQtYmxvY2tcIlxuICAgICAgKm5nSWY9XCJzaG93VmFsaWRhdGlvbiAmJiBncm91cC5nZXQoZmllbGQpPy5pbnZhbGlkICYmICFncm91cC5nZXQoZmllbGQpPy5oYXNFcnJvcigncmVxdWlyZWQnKVwiXG4gICAgICBbaWRdPVwiY29tcG9uZW50SWQrJ19FcnJvcidcIlxuICAgICAgcm9sZT1cImFsZXJ0XCJcbiAgICAgIGFyaWEtbGl2ZT1cImFzc2VydGl2ZVwiXG4gICAgPlxuICAgICAgRGF0ZSBpcyBvdXQgb2YgcmFuZ2VcbiAgICA8L3NtYWxsPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
146
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vZXBhLXVpLWxpYi9zcmMvbGliL2RhdGVwaWNrZXIvZGF0ZXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vZXBhLXVpLWxpYi9zcmMvbGliL2RhdGVwaWNrZXIvZGF0ZXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBb0MsTUFBTSxlQUFlLENBQUM7Ozs7OztBQWFuRixNQUFNLE9BQU8sbUJBQW1CO0lBaURWO0lBaERaLFlBQVksQ0FBVTtJQUU5QixJQUNJLFdBQVcsQ0FBQyxLQUF5QjtRQUN2QyxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztJQUM1QixDQUFDO0lBQ1EsS0FBSyxDQUFhO0lBQ2xCLEtBQUssQ0FBVTtJQUNmLFFBQVEsQ0FBK0I7SUFDdkMsY0FBYyxHQUFHLEtBQUssQ0FBQztJQUN2QixTQUFTLENBQVU7SUFDbkIsUUFBUSxDQUFxQjtJQUM3QixLQUFLLEdBQUcsS0FBSyxDQUFDO0lBRXZCLCtEQUErRDtJQUMvRCxJQUFJLG1CQUFtQjtRQUNyQixrREFBa0Q7UUFDbEQsSUFBSSxJQUFJLENBQUMsWUFBWTtZQUFFLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztRQUVoRCxJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQzdCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN2RCxPQUFPLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxHQUFH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QUFPLElBQUksSUFBSSxFQUFFLENBQUM7Z0JBQ2pHLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUM7WUFDMUQsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO3dHQTNIVSxtQkFBbUI7NEZBQW5CLG1CQUFtQix5U0NiaEMsbzJFQWdFQTs7NEZEbkRhLG1CQUFtQjtrQkFOL0IsU0FBUzsrQkFDRSxpQkFBaUIsWUFHakIsaUJBQWlCOzJGQU12QixXQUFXO3NCQURkLEtBQUs7Z0JBSUcsS0FBSztzQkFBYixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IEJzRGF0ZXBpY2tlckNvbmZpZyB9IGZyb20gJ25neC1ib290c3RyYXAvZGF0ZXBpY2tlcic7XG5cbmltcG9ydCB7IE9lcGFDb21wb25lbnRJZFNlcnZpY2UgfSBmcm9tICdAb2hpb2VwYS9vZXBhLWNvbW1vbi1saWInO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdvZXBhLWRhdGVwaWNrZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vZGF0ZXBpY2tlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2RhdGVwaWNrZXIuY29tcG9uZW50LmNzcyddLFxuICBleHBvcnRBczogJ29lcGEtZGF0ZXBpY2tlcidcbn0pXG5leHBvcnQgY2xhc3MgRGF0ZXBpY2tlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgcHJpdmF0ZSBfY29tcG9uZW50SWQ/OiBzdHJpbmc7XG4gIFxuICBASW5wdXQoKVxuICBzZXQgY29tcG9uZW50SWQodmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuX2NvbXBvbmVudElkID0gdmFsdWU7XG4gIH1cbiAgQElucHV0KCkgZ3JvdXAhOiBGb3JtR3JvdXA7XG4gIEBJbnB1dCgpIGZpZWxkITogc3RyaW5nO1xuICBASW5wdXQoKSBic0NvbmZpZyE6IFBhcnRpYWw8QnNEYXRlcGlja2VyQ29uZmlnPjtcbiAgQElucHV0KCkgc2hvd1ZhbGlkYXRpb24gPSBmYWxzZTtcbiAgQElucHV0KCkgcGxhY2VtZW50ITogc3RyaW5nO1xuICBASW5wdXQoKSB0YWJsZUlkeDogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICBASW5wdXQoKSBzbWFsbCA9IGZhbHNlO1xuICBcbiAgLy8gRXhwb3NlcyB0aGUgaW5wdXQgZWxlbWVudCdzIGlkIGZvciBwYXJlbnQgbGFiZWwgYXNzb2NpYXRpb24uXG4gIGdldCBjb21wb25lbnRJZENvbXB1dGVkKCk6IHN0cmluZyB7XG4gICAgLy8gUHJpb3JpdHk6IGV4cGxpY2l0IGlucHV0IOKGkiBnZW5lcmF0ZWQg4oaSIGZhbGxiYWNrXG4gICAgaWYgKHRoaXMuX2NvbXBvbmVudElkKSByZXR1cm4gdGhpcy5fY29tcG9uZW50SWQ7XG5cbiAgICBpZiAodGhpcy5ncm91cCAmJiB0aGlzLmZpZWxkKSB7XG4gICAgICBjb25zdCBiYXNlID0gdGhpcy5pZFNlcnZpY2UuZ2V0Q29tcG9uZW50SWQodGhpcy5ncm91cCk7XG4gICAgICByZXR1cm4gYmFzZSArIChiYXNlID8gJ18nIDogJycpICsgdGhpcy5maWVsZCArICh0aGlzLnRhYmxlSWR4ID8/ICcnKTtcbiAgICB9XG5cbiAgICByZXR1cm4gJ29lcGEtZGF0ZXBpY2tlcic7XG4gIH1cblxuICBnZXQgaW5wdXRJZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmNvbXBvbmVudElkQ29tcHV0ZWQgKyAnX0lucHV0JztcbiAgfVxuICBcbiAgcHVibGljIG1pbkRhdGUhOiBEYXRlIHwgdW5kZWZpbmVkO1xuICBwdWJsaWMgbWF4RGF0ZSE6IERhdGUgfCB1bmRlZmluZWQ7XG4gIHB1YmxpYyBpc0Rpc2FibGVkID0gZmFsc2U7XG5cbiAgcHVibGljIGdldFBsYWNlbWVudCgpIDogJ3RvcCcgfCAnYm90dG9tJyB8ICdsZWZ0JyB8ICdyaWdodCcge1xuICAgIHN3aXRjaCAodGhpcy5wbGFjZW1lbnQpIHtcbiAgICAgIGNhc2UgJ3RvcCc6XG4gICAgICAgIHJldHVybiAndG9wJztcbiAgICAgIGNhc2UgJ2xlZnQnOlxuICAgICAgICByZXR1cm4gJ2xlZnQnO1xuICAgICAgY2FzZSAncmlnaHQnOlxuICAgICAgICByZXR1cm4gJ3JpZ2h0JztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiAnYm90dG9tJztcbiAgICB9XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGlkU2VydmljZTogT2VwYUNvbXBvbmVudElkU2VydmljZSkgeyB9XG5cbiAgY2hlY2tWYWxpZGl0eSgpIHtcbiAgICBmb3IgKGNvbnN0IGtleSBpbiB0aGlzLmdyb3VwLmNvbnRyb2xzKSB7XG4gICAgICBpZiAodGhpcy5ncm91cC5jb250cm9scy5oYXNPd25Qcm9wZXJ0eShrZXkpICYmIGtleSA9PT0gdGhpcy5maWVsZCkge1xuICAgICAgICByZXR1cm4gdGhpcy5ncm91cC5jb250cm9sc1trZXldLnN0YXR1cyAhPT0gJ0lOVkFMSUQnO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNsZWFyRGF0ZSgpIHtcbiAgICBmb3IgKGNvbnN0IGtleSBpbiB0aGlzLmdyb3VwLmNvbnRyb2xzKSB7XG4gICAgICBpZiAodGhpcy5ncm91cC5jb250cm9scy5oYXNPd25Qcm9wZXJ0eShrZXkpICYmIGtleSA9PT0gdGhpcy5maWVsZCkge1xuICAgICAgICB0aGlzLmdyb3VwLmNvbnRyb2xzW2tleV0uc2V0VmFsdWUobnVsbCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKHRoaXMuYnNDb25maWcpIHtcbiAgICAgIGlmICh0aGlzLmJzQ29uZmlnLm1pbkRhdGUpIHtcbiAgICAgICAgdGhpcy5taW5EYXRlID0gdGhpcy5ic0NvbmZpZy5taW5EYXRlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5taW5EYXRlID0gdW5kZWZpbmVkO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMuYnNDb25maWcubWF4RGF0ZSkge1xuICAgICAgICB0aGlzLm1heERhdGUgPSB0aGlzLmJzQ29uZmlnLm1heERhdGU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLm1heERhdGUgPSB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5ic0NvbmZpZy5pc0Rpc2FibGVkKSB7XG4gICAgICAgIHRoaXMuaXNEaXNhYmxlZCA9IHRoaXMuYnNDb25maWcuaXNEaXNhYmxlZDsgLy8gZGVmYXVsdHMgdG8gZmFsc2VcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5ic0NvbmZpZyA9IHt9O1xuICAgIH1cbiAgICB0aGlzLmJzQ29uZmlnLnNob3dXZWVrTnVtYmVycyA9IGZhbHNlO1xuICAgIC8vIGlmICh0aGlzLmdyb3VwKSB7XG4gICAgLy8gICB0aGlzLmNvbXBvbmVudElkID0gdGhpcy5pZFNlcnZpY2UuZ2V0Q29tcG9uZW50SWQodGhpcy5ncm91cCk7XG4gICAgLy8gICB0aGlzLmNvbXBvbmVudElkICs9ICh0aGlzLmNvbXBvbmVudElkLmxlbmd0aCA+IDAgPyAnXycgOiAnJykgKyAodGhpcy5maWVsZCB8fCAnJykgKyAodGhpcy50YWJsZUlkeCB8fCAnJyk7XG4gICAgLy8gfSBlbHNlIHtcbiAgICAvLyAgIGNvbnNvbGUubG9nKCdPT1BTIE5vIGRhdGVwaWNrZXJGb3JtIHlldCcpO1xuICAgIC8vIH1cbiAgfVxuXG4gIC8vIGZvcmNlIHZhbHVlIHRvIG51bGwgaW4gY2FzZSB3aGVyZSB1c2VyIGVudGVycyBub24tbnVtZXJpYyB2YWx1ZXNcbiAgLy8gaW4gdGhlIGZpZWxkLiBUaGUgXCJub3JtYWxcIiBiZWhhdmlvciBvZiB0aGUgbmd4LWJvb3RzdHJhcCBkYXRlcGlja2VyXG4gIC8vIGlzIHRvIHNldCB0aGUgaW5wdXQgdmFsdWUgdG8gXCJJbnZhbGlkIERhdGVcIi4gVW5mb3J0dW5hdGVseSwgdGhpcyBtZXNzZXNcbiAgLy8gdXAgdmFsaWRhdGlvbi4gVGhlIG1ldGhvZCBiZWxvdyB3aWxsIGZvcmNlIHRoZSBpbnB1dCB2YWx1ZSB0byBudWxsXG4gIC8vIGluIHRoaXMgY2FzZSB3aGljaCB3aWxsIGVuc3VyZSB0aGF0IHZhbGlkYXRpb24gd29ya3MgcHJvcGVybHkuXG4gIG9uVmFsdWVDaGFuZ2UoZXZlbnQ6YW55KSB7XG4gICAgLy8gdGltZW91dCBpcyBuZWVkZWQgdG8gbWFrZSB0aGlzIHdvcmsgcHJvcGVybHlcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICh0aGlzLmdyb3VwICYmIHRoaXMuZ3JvdXAuY29udHJvbHNbdGhpcy5maWVsZF0pIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmdyb3VwLmNvbnRyb2xzW3RoaXMuZmllbGRdLnZhbHVlO1xuICAgICAgICBpZiAodmFsdWUgJiYgdmFsdWUudG9KU09OKCkgPT09IG51bGwpIHtcbiAgICAgICAgICB0aGlzLmdyb3VwLmNvbnRyb2xzW3RoaXMuZmllbGRdLnNldFZhbHVlKG51bGwpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZ3JvdXAuY29udHJvbHNbdGhpcy5maWVsZF0udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgICAgfVxuICAgIH0sIDUwKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAoY2hhbmdlc1snYnNDb25maWcnXSkge1xuICAgICAgaWYgKGNoYW5nZXNbJ2JzQ29uZmlnJ10uY3VycmVudFZhbHVlLm1pbkRhdGUgfHwgY2hhbmdlc1snYnNDb25maWcnXS5jdXJyZW50VmFsdWUubWluRGF0ZSA9PSBudWxsKSB7XG4gICAgICAgIHRoaXMubWluRGF0ZSA9IGNoYW5nZXNbJ2JzQ29uZmlnJ10uY3VycmVudFZhbHVlLm1pbkRhdGU7XG4gICAgICB9XG5cbiAgICAgIGlmIChjaGFuZ2VzWydic0NvbmZpZyddLmN1cnJlbnRWYWx1ZS5tYXhEYXRlIHx8IGNoYW5nZXNbJ2JzQ29uZmlnJ10uY3VycmVudFZhbHVlLm1heERhdGUgPT0gbnVsbCkge1xuICAgICAgICB0aGlzLm1heERhdGUgPSBjaGFuZ2VzWydic0NvbmZpZyddLmN1cnJlbnRWYWx1ZS5tYXhEYXRlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG59XG4iLCI8ZGl2IFtmb3JtR3JvdXBdPVwiZ3JvdXBcIiByb2xlPVwiZ3JvdXBcIiBhcmlhLWxhYmVsPVwiRGF0ZXBpY2tlciBHcm91cFwiPlxuICA8ZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cFwiPlxuICAgICAgPCEtLSBhIGxhYmVsIChoaWRkZW4gb3Igbm90KSBzaG91bGQgYmUgcHJvdmlkZWQgYnkgdGhlIHBhcmVudCBjb21wb25lbnQgdG8gZW5zdXJlIGFjY2Vzc2liaWxpdHkgLS0+XG4gICAgICA8aW5wdXRcbiAgICAgICAgW2lkXT1cImNvbXBvbmVudElkQ29tcHV0ZWQrJ19JbnB1dCdcIlxuICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgIFttaW5EYXRlXT1cIm1pbkRhdGVcIlxuICAgICAgICBbbWF4RGF0ZV09XCJtYXhEYXRlXCJcbiAgICAgICAgI2RwPVwiYnNEYXRlcGlja2VyXCJcbiAgICAgICAgYnNEYXRlcGlja2VyXG4gICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiZmllbGRcIlxuICAgICAgICBbYnNDb25maWddPVwiYnNDb25maWdcIlxuICAgICAgICBbaXNEaXNhYmxlZF09XCJncm91cC5nZXQoZmllbGQpPy5kaXNhYmxlZCB8fCBmYWxzZVwiXG4gICAgICAgIFtwbGFjZW1lbnRdPVwiZ2V0UGxhY2VtZW50KCkgIHx8ICdib3R0b20nXCJcbiAgICAgICAgW25nQ2xhc3NdPVwieydpcy1pbnZhbGlkJzpzaG93VmFsaWRhdGlvbiAmJiAhY2hlY2tWYWxpZGl0eSgpfVwiXG4gICAgICAgIChic1ZhbHVlQ2hhbmdlKT1cIm9uVmFsdWVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwiKHNob3dWYWxpZGF0aW9uICYmIGdyb3VwLmdldChmaWVsZCk/LmludmFsaWQpID8gKGNvbXBvbmVudElkQ29tcHV0ZWQgKyAnX0Vycm9yJykgOiBudWxsXCJcbiAgICAgICAgW2F0dHIuYXJpYS1pbnZhbGlkXT1cInNob3dWYWxpZGF0aW9uICYmICFjaGVja1ZhbGlkaXR5KCkgPyAndHJ1ZScgOiAnZmFsc2UnXCJcbiAgICAgICAgYXV0b2NvbXBsZXRlPVwib2ZmXCJcbiAgICAgID5cbiAgICAgIDxkaXYgY2xhc3M9XCJidG4tZ3JvdXBcIiByb2xlPVwiZ3JvdXBcIiBhcmlhLWxhYmVsPVwiRGF0ZXBpY2tlciBjb250cm9sc1wiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIlxuICAgICAgICAgIChjbGljayk9XCJkcC50b2dnbGUoKVwiXG4gICAgICAgICAgW2lkXT1cImNvbXBvbmVudElkQ29tcHV0ZWQrJ19Ub2dnbGVCdG4nXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiZ3JvdXAuZ2V0KGZpZWxkKT8uZGlzYWJsZWRcIlxuICAgICAgICAgIGFyaWEtbGFiZWw9XCJPcGVuIGNhbGVuZGFyXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxpIGNsYXNzPVwiYmkgYmktY2FsZW5kYXIzXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCJcbiAgICAgICAgICAoY2xpY2spPVwiY2xlYXJEYXRlKClcIlxuICAgICAgICAgIFtpZF09XCJjb21wb25lbnRJZENvbXB1dGVkKydfQ2xlYXJCdG4nXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiZ3JvdXAuZ2V0KGZpZWxkKT8uZGlzYWJsZWRcIlxuICAgICAgICAgIGFyaWEtbGFiZWw9XCJDbGVhciBkYXRlXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxpIGNsYXNzPVwiYmkgYmkteC1sZ1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8c21hbGxcbiAgICAgIGNsYXNzPVwiaW52YWxpZC1mZWVkYmFjayBkLWJsb2NrXCJcbiAgICAgICpuZ0lmPVwic2hvd1ZhbGlkYXRpb24gJiYgZ3JvdXAuZ2V0KGZpZWxkKT8uaGFzRXJyb3IoJ3JlcXVpcmVkJylcIlxuICAgICAgW2lkXT1cImNvbXBvbmVudElkQ29tcHV0ZWQrJ19FcnJvcidcIlxuICAgICAgcm9sZT1cImFsZXJ0XCJcbiAgICAgIGFyaWEtbGl2ZT1cImFzc2VydGl2ZVwiXG4gICAgPlxuICAgICAgRGF0ZSBpcyByZXF1aXJlZFxuICAgIDwvc21hbGw+XG4gICAgPHNtYWxsXG4gICAgICBjbGFzcz1cImludmFsaWQtZmVlZGJhY2sgZC1ibG9ja1wiXG4gICAgICAqbmdJZj1cInNob3dWYWxpZGF0aW9uICYmIGdyb3VwLmdldChmaWVsZCk/LmludmFsaWQgJiYgIWdyb3VwLmdldChmaWVsZCk/Lmhhc0Vycm9yKCdyZXF1aXJlZCcpXCJcbiAgICAgIFtpZF09XCJjb21wb25lbnRJZENvbXB1dGVkKydfRXJyb3InXCJcbiAgICAgIHJvbGU9XCJhbGVydFwiXG4gICAgICBhcmlhLWxpdmU9XCJhc3NlcnRpdmVcIlxuICAgID5cbiAgICAgIERhdGUgaXMgb3V0IG9mIHJhbmdlXG4gICAgPC9zbWFsbD5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -6,14 +6,27 @@ import * as i3 from "@angular/forms";
|
|
|
6
6
|
import * as i4 from "ngx-bootstrap/datepicker";
|
|
7
7
|
export class DaterangepickerComponent {
|
|
8
8
|
idService;
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
_componentId;
|
|
10
|
+
set componentId(value) {
|
|
11
|
+
this._componentId = value;
|
|
12
12
|
}
|
|
13
|
-
componentId = 'OepaDaterangepickerComponent';
|
|
14
13
|
minDate;
|
|
15
14
|
maxDate;
|
|
16
15
|
isDisabled = false;
|
|
16
|
+
// Exposes the input element's id for parent label association.
|
|
17
|
+
get componentIdComputed() {
|
|
18
|
+
// Priority: explicit input → generated → fallback
|
|
19
|
+
if (this._componentId)
|
|
20
|
+
return this._componentId;
|
|
21
|
+
if (this.group && this.field) {
|
|
22
|
+
const base = this.idService.getComponentId(this.group);
|
|
23
|
+
return base + (base ? '_' : '') + this.field;
|
|
24
|
+
}
|
|
25
|
+
return 'oepa-datepicker';
|
|
26
|
+
}
|
|
27
|
+
get inputId() {
|
|
28
|
+
return this.componentIdComputed + '_Input';
|
|
29
|
+
}
|
|
17
30
|
group;
|
|
18
31
|
field;
|
|
19
32
|
bsConfig;
|
|
@@ -52,17 +65,19 @@ export class DaterangepickerComponent {
|
|
|
52
65
|
if (this.bsConfig && this.bsConfig.isDisabled) {
|
|
53
66
|
this.isDisabled = this.bsConfig.isDisabled; // defaults to false
|
|
54
67
|
}
|
|
55
|
-
if (this.group) {
|
|
56
|
-
|
|
57
|
-
}
|
|
68
|
+
// if (this.group) {
|
|
69
|
+
// this.componentId = this.idService.getComponentId(this.group);
|
|
70
|
+
// }
|
|
58
71
|
}
|
|
59
72
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DaterangepickerComponent, deps: [{ token: i1.OepaComponentIdService }], target: i0.ɵɵFactoryTarget.Component });
|
|
60
|
-
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" }, exportAs: ["oepa-datepicker"], ngImport: i0, template: "<div [formGroup]=\"group\">\n <div>\n <div class=\"input-group\">\n <input [id]=\"
|
|
73
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DaterangepickerComponent, selector: "oepa-daterangepicker", inputs: { componentId: "componentId", group: "group", field: "field", bsConfig: "bsConfig", showValidation: "showValidation" }, exportAs: ["oepa-datepicker"], ngImport: i0, template: "<div [formGroup]=\"group\">\n <div>\n <div class=\"input-group\">\n <input [id]=\"componentIdComputed+'_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 role=\"textbox\"\n >\n <div *ngIf=\"!isDisabled\" class=\"input-group-btn\">\n <button class=\"btn btn-primary\"\n (click)=\"drp.toggle()\"\n [id]=\"componentIdComputed+'_ToggleBtn'\"\n aria-label=\"Toggle Date Picker\"\n type=\"button\"\n tabindex=\"0\"\n >\n <i class=\"bi bi-calendar3\" aria-hidden=\"true\"></i>\n </button>\n <button class=\"btn btn-primary\"\n (click)=\"clearRange()\"\n [id]=\"componentIdComputed+'_ClearBtn'\"\n aria-label=\"Clear selected date range \"\n type=\"button\"\n tabindex=\"0\"\n >\n <i class=\"bi bi-x-lg\" aria-hidden=\"true\"></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]" }] });
|
|
61
74
|
}
|
|
62
75
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DaterangepickerComponent, decorators: [{
|
|
63
76
|
type: Component,
|
|
64
|
-
args: [{ selector: 'oepa-daterangepicker', exportAs: 'oepa-datepicker', template: "<div [formGroup]=\"group\">\n <div>\n <div class=\"input-group\">\n <input [id]=\"
|
|
65
|
-
}], ctorParameters: () => [{ type: i1.OepaComponentIdService }], propDecorators: {
|
|
77
|
+
args: [{ selector: 'oepa-daterangepicker', exportAs: 'oepa-datepicker', template: "<div [formGroup]=\"group\">\n <div>\n <div class=\"input-group\">\n <input [id]=\"componentIdComputed+'_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 role=\"textbox\"\n >\n <div *ngIf=\"!isDisabled\" class=\"input-group-btn\">\n <button class=\"btn btn-primary\"\n (click)=\"drp.toggle()\"\n [id]=\"componentIdComputed+'_ToggleBtn'\"\n aria-label=\"Toggle Date Picker\"\n type=\"button\"\n tabindex=\"0\"\n >\n <i class=\"bi bi-calendar3\" aria-hidden=\"true\"></i>\n </button>\n <button class=\"btn btn-primary\"\n (click)=\"clearRange()\"\n [id]=\"componentIdComputed+'_ClearBtn'\"\n aria-label=\"Clear selected date range \"\n type=\"button\"\n tabindex=\"0\"\n >\n <i class=\"bi bi-x-lg\" aria-hidden=\"true\"></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>" }]
|
|
78
|
+
}], ctorParameters: () => [{ type: i1.OepaComponentIdService }], propDecorators: { componentId: [{
|
|
79
|
+
type: Input
|
|
80
|
+
}], group: [{
|
|
66
81
|
type: Input
|
|
67
82
|
}], field: [{
|
|
68
83
|
type: Input
|
|
@@ -71,4 +86,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
71
86
|
}], showValidation: [{
|
|
72
87
|
type: Input
|
|
73
88
|
}] } });
|
|
74
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
89
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXJhbmdlcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29lcGEtdWktbGliL3NyYy9saWIvZGF0ZXJhbmdlcGlja2VyL2RhdGVyYW5nZXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vZXBhLXVpLWxpYi9zcmMvbGliL2RhdGVyYW5nZXBpY2tlci9kYXRlcmFuZ2VwaWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7Ozs7OztBQWF6RCxNQUFNLE9BQU8sd0JBQXdCO0lBa0NmO0lBakNaLFlBQVksQ0FBVTtJQUU5QixJQUNJLFdBQVcsQ0FBQyxLQUF5QjtRQUN2QyxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztJQUM1QixDQUFDO0lBRU0sT0FBTyxDQUFtQjtJQUMxQixPQUFPLENBQW1CO0lBQzFCLFVBQVUsR0FBRyxLQUFLLENBQUM7SUFFMUIsK0RBQStEO0lBQy9ELElBQUksbUJBQW1CO1FBQ3JCLGtEQUFrRDtRQUNsRCxJQUFJLElBQUksQ0FBQyxZQUFZO1lBQUUsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO1FBRWhELElBQUksSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDN0IsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3ZELE9BQU8sSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDL0MsQ0FBQztRQUVELE9BQU8saUJBQWlCLENBQUM7SUFDM0IsQ0FBQztJQUVELElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLG1CQUFtQixHQUFHLFFBQVEsQ0FBQztJQUM3QyxDQUFDO0lBRVEsS0FBSyxDQUFhO0lBQ2xCLEtBQUssQ0FBVTtJQUNmLFFBQVEsQ0FBK0I7SUFDdkMsY0FBYyxHQUFHLEtBQUssQ0FBQztJQUVoQyxZQUFvQixTQUFpQztRQUFqQyxjQUFTLEdBQVQsU0FBUyxDQUF3QjtJQUFJLENBQUM7SUFFMUQsYUFBYTtRQUNYLEtBQUssTUFBTSxHQUFHLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUN0QyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLEtBQUssSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUNsRSxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sS0FBSyxPQUFPLENBQUM7WUFDckQsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxVQUFVO1FBQ1IsS0FBSyxNQUFNLEdBQUcsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3RDLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEdBQUcsS0FBSyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ2xFLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMxQyxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDekMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQztRQUN6QyxDQUFDO2FBQU0sQ0FBQztZQUNKLElBQUksQ0FBQyxPQUFPLEdBQUcsU0FBUyxDQUFDO1FBQzdCLENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUN6QyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDO1FBQ3pDLENBQUM7YUFBTSxDQUFDO1lBQ0osSUFBSSxDQUFDLE9BQU8sR0FBRyxTQUFTLENBQUM7UUFDN0IsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQzVDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxvQkFBb0I7UUFDcEUsQ0FBQztRQUNELG9CQUFvQjtRQUNwQixvRUFBb0U7UUFDcEUsSUFBSTtJQUNOLENBQUM7d0dBdEVVLHdCQUF3Qjs0RkFBeEIsd0JBQXdCLDJOQ2JyQyx3akRBc0NNOzs0RkR6Qk8sd0JBQXdCO2tCQU5wQyxTQUFTOytCQUNFLHNCQUFzQixZQUd0QixpQkFBaUI7MkZBTXZCLFdBQVc7c0JBRGQsS0FBSztnQkEwQkcsS0FBSztzQkFBYixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgQnNEYXRlcGlja2VyQ29uZmlnIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC9kYXRlcGlja2VyJztcblxuaW1wb3J0IHsgT2VwYUNvbXBvbmVudElkU2VydmljZSB9IGZyb20gJ0BvaGlvZXBhL29lcGEtY29tbW9uLWxpYic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ29lcGEtZGF0ZXJhbmdlcGlja2VyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGVyYW5nZXBpY2tlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2RhdGVyYW5nZXBpY2tlci5jb21wb25lbnQuY3NzJ10sXG4gIGV4cG9ydEFzOiAnb2VwYS1kYXRlcGlja2VyJ1xufSlcbmV4cG9ydCBjbGFzcyBEYXRlcmFuZ2VwaWNrZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBwcml2YXRlIF9jb21wb25lbnRJZD86IHN0cmluZztcbiAgXG4gIEBJbnB1dCgpXG4gIHNldCBjb21wb25lbnRJZCh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5fY29tcG9uZW50SWQgPSB2YWx1ZTtcbiAgfVxuICBcbiAgcHVibGljIG1pbkRhdGU6IERhdGUgfCB1bmRlZmluZWQ7XG4gIHB1YmxpYyBtYXhEYXRlOiBEYXRlIHwgdW5kZWZpbmVkO1xuICBwdWJsaWMgaXNEaXNhYmxlZCA9IGZhbHNlO1xuXG4gIC8vIEV4cG9zZXMgdGhlIGlucHV0IGVsZW1lbnQncyBpZCBmb3IgcGFyZW50IGxhYmVsIGFzc29jaWF0aW9uLlxuICBnZXQgY29tcG9uZW50SWRDb21wdXRlZCgpOiBzdHJpbmcge1xuICAgIC8vIFByaW9yaXR5OiBleHBsaWNpdCBpbnB1dCDihpIgZ2VuZXJhdGVkIOKGkiBmYWxsYmFja1xuICAgIGlmICh0aGlzLl9jb21wb25lbnRJZCkgcmV0dXJuIHRoaXMuX2NvbXBvbmVudElkO1xuXG4gICAgaWYgKHRoaXMuZ3JvdXAgJiYgdGhpcy5maWVsZCkge1xuICAgICAgY29uc3QgYmFzZSA9IHRoaXMuaWRTZXJ2aWNlLmdldENvbXBvbmVudElkKHRoaXMuZ3JvdXApO1xuICAgICAgcmV0dXJuIGJhc2UgKyAoYmFzZSA/ICdfJyA6ICcnKSArIHRoaXMuZmllbGQ7XG4gICAgfVxuXG4gICAgcmV0dXJuICdvZXBhLWRhdGVwaWNrZXInO1xuICB9XG5cbiAgZ2V0IGlucHV0SWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5jb21wb25lbnRJZENvbXB1dGVkICsgJ19JbnB1dCc7XG4gIH1cblxuICBASW5wdXQoKSBncm91cCE6IEZvcm1Hcm91cDtcbiAgQElucHV0KCkgZmllbGQhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGJzQ29uZmlnITogUGFydGlhbDxCc0RhdGVwaWNrZXJDb25maWc+O1xuICBASW5wdXQoKSBzaG93VmFsaWRhdGlvbiA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaWRTZXJ2aWNlOiBPZXBhQ29tcG9uZW50SWRTZXJ2aWNlKSB7IH1cblxuICBjaGVja1ZhbGlkaXR5KCkge1xuICAgIGZvciAoY29uc3Qga2V5IGluIHRoaXMuZ3JvdXAuY29udHJvbHMpIHtcbiAgICAgIGlmICh0aGlzLmdyb3VwLmNvbnRyb2xzLmhhc093blByb3BlcnR5KGtleSkgJiYga2V5ID09PSB0aGlzLmZpZWxkKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdyb3VwLmNvbnRyb2xzW2tleV0uc3RhdHVzID09PSAnVkFMSUQnO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNsZWFyUmFuZ2UoKSB7XG4gICAgZm9yIChjb25zdCBrZXkgaW4gdGhpcy5ncm91cC5jb250cm9scykge1xuICAgICAgaWYgKHRoaXMuZ3JvdXAuY29udHJvbHMuaGFzT3duUHJvcGVydHkoa2V5KSAmJiBrZXkgPT09IHRoaXMuZmllbGQpIHtcbiAgICAgICAgdGhpcy5ncm91cC5jb250cm9sc1trZXldLnNldFZhbHVlKG51bGwpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmICh0aGlzLmJzQ29uZmlnICYmIHRoaXMuYnNDb25maWcubWluRGF0ZSkge1xuICAgICAgICB0aGlzLm1pbkRhdGUgPSB0aGlzLmJzQ29uZmlnLm1pbkRhdGU7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5taW5EYXRlID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgICBpZiAodGhpcy5ic0NvbmZpZyAmJiB0aGlzLmJzQ29uZmlnLm1heERhdGUpIHtcbiAgICAgICAgdGhpcy5tYXhEYXRlID0gdGhpcy5ic0NvbmZpZy5tYXhEYXRlO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMubWF4RGF0ZSA9IHVuZGVmaW5lZDtcbiAgICB9XG4gICAgaWYgKHRoaXMuYnNDb25maWcgJiYgdGhpcy5ic0NvbmZpZy5pc0Rpc2FibGVkKSB7XG4gICAgICAgIHRoaXMuaXNEaXNhYmxlZCA9IHRoaXMuYnNDb25maWcuaXNEaXNhYmxlZDsgLy8gZGVmYXVsdHMgdG8gZmFsc2VcbiAgICB9XG4gICAgLy8gaWYgKHRoaXMuZ3JvdXApIHtcbiAgICAvLyAgICAgdGhpcy5jb21wb25lbnRJZCA9IHRoaXMuaWRTZXJ2aWNlLmdldENvbXBvbmVudElkKHRoaXMuZ3JvdXApO1xuICAgIC8vIH1cbiAgfVxuXG59XG4iLCI8ZGl2IFtmb3JtR3JvdXBdPVwiZ3JvdXBcIj5cbiAgPGRpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cFwiPlxuICAgICAgICAgICAgPGlucHV0ICBbaWRdPVwiY29tcG9uZW50SWRDb21wdXRlZCsnX0lucHV0J1wiXG4gICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgICAgW21pbkRhdGVdPVwibWluRGF0ZVwiXG4gICAgICAgICAgICAgIFttYXhEYXRlXT1cIm1heERhdGVcIlxuICAgICAgICAgICAgICAjZHJwPVwiYnNEYXRlcmFuZ2VwaWNrZXJcIlxuICAgICAgICAgICAgICBic0RhdGVyYW5nZXBpY2tlclxuICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImZpZWxkXCJcbiAgICAgICAgICAgICAgW2JzQ29uZmlnXT1cImJzQ29uZmlnXCJcbiAgICAgICAgICAgICAgW2lzRGlzYWJsZWRdPVwiaXNEaXNhYmxlZFwiXG4gICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsnaXMtaW52YWxpZCc6c2hvd1ZhbGlkYXRpb24gJiYgIWNoZWNrVmFsaWRpdHkoKX1cIlxuICAgICAgICAgICAgICByb2xlPVwidGV4dGJveFwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIWlzRGlzYWJsZWRcIiBjbGFzcz1cImlucHV0LWdyb3VwLWJ0blwiPlxuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJkcnAudG9nZ2xlKClcIlxuICAgICAgICAgICAgICAgICAgICBbaWRdPVwiY29tcG9uZW50SWRDb21wdXRlZCsnX1RvZ2dsZUJ0bidcIlxuICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiVG9nZ2xlIERhdGUgUGlja2VyXCJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxpIGNsYXNzPVwiYmkgYmktY2FsZW5kYXIzXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNsZWFyUmFuZ2UoKVwiXG4gICAgICAgICAgICAgICAgICAgIFtpZF09XCJjb21wb25lbnRJZENvbXB1dGVkKydfQ2xlYXJCdG4nXCJcbiAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIkNsZWFyIHNlbGVjdGVkIGRhdGUgcmFuZ2UgXCJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxpIGNsYXNzPVwiYmkgYmkteC1sZ1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8c21hbGwgY2xhc3M9XCJpbnZhbGlkLWZlZWRiYWNrIGQtYmxvY2tcIiAqbmdJZj1cInNob3dWYWxpZGF0aW9uICYmICFjaGVja1ZhbGlkaXR5KClcIj5EYXRlIGlzIHJlcXVpcmVkPC9zbWFsbD5cbiAgPC9kaXY+XG48L2Rpdj4iXX0=
|