@sumaris-net/ngx-components 2.12.26-alpha2 → 2.12.26
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/doc/changelog.md +6 -0
- package/esm2022/src/app/admin/services/validator/person.validator.mjs +11 -8
- package/esm2022/src/app/admin/users/users.mjs +11 -5
- package/esm2022/src/app/core/account/account.page.mjs +12 -5
- package/esm2022/src/app/core/account/new-token.modal.mjs +15 -8
- package/esm2022/src/app/core/account/password/change-password.form.mjs +10 -5
- package/esm2022/src/app/core/account/password/change-password.page.mjs +9 -4
- package/esm2022/src/app/core/account/token.table.mjs +12 -5
- package/esm2022/src/app/core/auth/auth.form.mjs +11 -5
- package/esm2022/src/app/core/auth/auth.modal.mjs +17 -14
- package/esm2022/src/app/core/auth/reset-password.modal.mjs +20 -16
- package/esm2022/src/app/core/form/array/testing/form-array.test.mjs +13 -5
- package/esm2022/src/app/core/form/entity/editor.class.mjs +20 -14
- package/esm2022/src/app/core/form/entity/entity-editor-modal.class.mjs +21 -10
- package/esm2022/src/app/core/form/entity/entity-editor.class.mjs +24 -11
- package/esm2022/src/app/core/form/entity/tab-editor.class.mjs +21 -5
- package/esm2022/src/app/core/form/form-container.class.mjs +5 -4
- package/esm2022/src/app/core/form/form.class.mjs +13 -13
- package/esm2022/src/app/core/form/list/list.form.mjs +20 -10
- package/esm2022/src/app/core/form/properties/properties.form.mjs +26 -17
- package/esm2022/src/app/core/form/properties/properties.table.mjs +14 -10
- package/esm2022/src/app/core/form/properties/property.validator.mjs +8 -5
- package/esm2022/src/app/core/form/username/username.form.mjs +10 -5
- package/esm2022/src/app/core/home/home.mjs +63 -40
- package/esm2022/src/app/core/install/install-upgrade-card.component.mjs +34 -21
- package/esm2022/src/app/core/menu/menu.component.mjs +53 -33
- package/esm2022/src/app/core/menu/testing/menu-other.testing.mjs +15 -13
- package/esm2022/src/app/core/menu/testing/menu.testing.mjs +15 -13
- package/esm2022/src/app/core/peer/select-peer.modal.mjs +40 -26
- package/esm2022/src/app/core/services/testing/referential.validator.mjs +8 -5
- package/esm2022/src/app/core/services/validator/account.validator.mjs +18 -8
- package/esm2022/src/app/core/services/validator/base.validator.class.mjs +11 -9
- package/esm2022/src/app/core/services/validator/local-settings.validator.mjs +10 -8
- package/esm2022/src/app/core/services/validator/user-settings.validator.mjs +6 -5
- package/esm2022/src/app/core/services/validator/user-token.validator.mjs +6 -5
- package/esm2022/src/app/core/settings/settings.page.mjs +35 -25
- package/esm2022/src/app/core/table/async-table.class.mjs +32 -16
- package/esm2022/src/app/core/table/column/actions-column.component.mjs +9 -8
- package/esm2022/src/app/core/table/column/nav-actions-column.component.mjs +9 -8
- package/esm2022/src/app/core/table/column/row-field.component.mjs +11 -6
- package/esm2022/src/app/core/table/memory-table.class.mjs +4 -4
- package/esm2022/src/app/core/table/table.class.mjs +40 -27
- package/esm2022/src/app/core/table/table.pipes.mjs +21 -15
- package/esm2022/src/app/core/table/testing/table-validator.service.mjs +8 -5
- package/esm2022/src/app/core/table/testing/table.testing.mjs +11 -6
- package/esm2022/src/app/core/table/testing/table2-validator.service.mjs +8 -5
- package/esm2022/src/app/core/table/testing/table2.testing.mjs +13 -9
- package/esm2022/src/app/shared/form/field.component.mjs +16 -14
- package/esm2022/src/app/shared/help/help.modal.mjs +25 -20
- package/esm2022/src/app/shared/image/gallery/image-gallery.component.mjs +40 -31
- package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.mjs +18 -14
- package/esm2022/src/app/shared/material/autocomplete/testing/autocomplete.test.mjs +14 -13
- package/esm2022/src/app/shared/material/badge/badge.test.mjs +8 -6
- package/esm2022/src/app/shared/material/boolean/material.boolean.mjs +21 -14
- package/esm2022/src/app/shared/material/boolean/testing/boolean.test.page.mjs +12 -5
- package/esm2022/src/app/shared/material/chips/material.chips.mjs +23 -18
- package/esm2022/src/app/shared/material/datetime/material.date.mjs +41 -33
- package/esm2022/src/app/shared/material/datetime/material.dateshort.mjs +42 -36
- package/esm2022/src/app/shared/material/datetime/material.datetime.mjs +41 -33
- package/esm2022/src/app/shared/material/datetime/testing/mat-date-time.test.mjs +13 -11
- package/esm2022/src/app/shared/material/datetime/testing/mat-date.test.mjs +14 -12
- package/esm2022/src/app/shared/material/datetime/testing/mat-dateshort.test.mjs +14 -12
- package/esm2022/src/app/shared/material/duration/material.duration.mjs +29 -18
- package/esm2022/src/app/shared/material/duration/testing/mat-duration.test.mjs +14 -12
- package/esm2022/src/app/shared/material/latlong/material.latlong.mjs +32 -25
- package/esm2022/src/app/shared/material/swipe/material.swipe.mjs +20 -15
- package/esm2022/src/app/shared/material/testing/common.test.mjs +14 -12
- package/esm2022/src/app/shared/material/text/text-form.component.mjs +12 -5
- package/esm2022/src/app/shared/named-filter/named-filter-selector.component.mjs +13 -6
- package/esm2022/src/app/shared/named-filter/testing/named-filter-selector.testing.mjs +12 -13
- package/esm2022/src/app/shared/pipes/form.pipes.mjs +26 -18
- package/esm2022/src/app/shared/pipes/selection.pipes.mjs +35 -33
- package/esm2022/src/app/shared/storage/storage-explorer.component.mjs +53 -28
- package/esm2022/src/app/shared/toolbar/toolbar.mjs +30 -20
- package/esm2022/src/app/shared/upload-file/upload-file-popover.component.mjs +16 -14
- package/esm2022/src/app/shared/upload-file/upload-file.component.mjs +20 -18
- package/esm2022/src/app/social/job/progression/job-progression.icon.mjs +26 -18
- package/esm2022/src/app/social/message/message.form.mjs +10 -5
- package/esm2022/src/app/social/message/message.modal.mjs +19 -16
- package/esm2022/src/app/social/user-event/notification/user-event-notification.icon.mjs +27 -18
- package/esm2022/src/app/social/user-event/notification/user-event-notification.list.mjs +40 -23
- package/fesm2022/sumaris-net.ngx-components.mjs +1250 -756
- package/fesm2022/sumaris-net.ngx-components.mjs.map +1 -1
- package/package.json +1 -1
- package/src/app/admin/services/validator/person.validator.d.ts +3 -2
- package/src/app/admin/users/users.d.ts +4 -2
- package/src/app/core/account/account.page.d.ts +4 -2
- package/src/app/core/account/new-token.modal.d.ts +3 -2
- package/src/app/core/account/password/change-password.form.d.ts +4 -2
- package/src/app/core/account/password/change-password.page.d.ts +4 -2
- package/src/app/core/account/token.table.d.ts +6 -3
- package/src/app/core/auth/auth.form.d.ts +5 -3
- package/src/app/core/auth/auth.modal.d.ts +7 -5
- package/src/app/core/auth/reset-password.modal.d.ts +6 -6
- package/src/app/core/form/array/testing/form-array.test.d.ts +5 -2
- package/src/app/core/form/entity/editor.class.d.ts +7 -7
- package/src/app/core/form/entity/entity-editor-modal.class.d.ts +5 -3
- package/src/app/core/form/entity/entity-editor.class.d.ts +7 -4
- package/src/app/core/form/entity/tab-editor.class.d.ts +11 -2
- package/src/app/core/form/form-container.class.d.ts +1 -2
- package/src/app/core/form/form.class.d.ts +3 -5
- package/src/app/core/form/list/list.form.d.ts +8 -3
- package/src/app/core/form/properties/properties.form.d.ts +7 -3
- package/src/app/core/form/properties/properties.table.d.ts +5 -3
- package/src/app/core/form/properties/property.validator.d.ts +3 -1
- package/src/app/core/form/username/username.form.d.ts +5 -3
- package/src/app/core/home/home.d.ts +22 -16
- package/src/app/core/install/install-upgrade-card.component.d.ts +15 -10
- package/src/app/core/menu/menu.component.d.ts +17 -13
- package/src/app/core/menu/testing/menu-other.testing.d.ts +5 -1
- package/src/app/core/menu/testing/menu.testing.d.ts +5 -1
- package/src/app/core/peer/select-peer.modal.d.ts +15 -10
- package/src/app/core/services/testing/referential.validator.d.ts +3 -2
- package/src/app/core/services/validator/account.validator.d.ts +8 -2
- package/src/app/core/services/validator/base.validator.class.d.ts +3 -3
- package/src/app/core/services/validator/local-settings.validator.d.ts +4 -3
- package/src/app/core/services/validator/user-settings.validator.d.ts +2 -2
- package/src/app/core/services/validator/user-token.validator.d.ts +2 -2
- package/src/app/core/settings/settings.page.d.ts +9 -3
- package/src/app/core/table/async-table.class.d.ts +14 -14
- package/src/app/core/table/column/actions-column.component.d.ts +3 -3
- package/src/app/core/table/column/nav-actions-column.component.d.ts +4 -4
- package/src/app/core/table/column/row-field.component.d.ts +2 -2
- package/src/app/core/table/memory-table.class.d.ts +2 -2
- package/src/app/core/table/table.class.d.ts +14 -15
- package/src/app/core/table/table.pipes.d.ts +5 -4
- package/src/app/core/table/testing/table-validator.service.d.ts +3 -2
- package/src/app/core/table/testing/table.testing.d.ts +4 -2
- package/src/app/core/table/testing/table2-validator.service.d.ts +3 -1
- package/src/app/core/table/testing/table2.testing.d.ts +4 -2
- package/src/app/shared/form/field.component.d.ts +5 -5
- package/src/app/shared/help/help.modal.d.ts +8 -7
- package/src/app/shared/image/gallery/image-gallery.component.d.ts +8 -8
- package/src/app/shared/inputs.d.ts +1 -1
- package/src/app/shared/material/autocomplete/material.autocomplete.d.ts +7 -6
- package/src/app/shared/material/autocomplete/testing/autocomplete.test.d.ts +4 -4
- package/src/app/shared/material/badge/badge.test.d.ts +3 -2
- package/src/app/shared/material/boolean/material.boolean.d.ts +6 -5
- package/src/app/shared/material/boolean/testing/boolean.test.page.d.ts +5 -2
- package/src/app/shared/material/chips/material.chips.d.ts +5 -5
- package/src/app/shared/material/datetime/material.date.d.ts +11 -10
- package/src/app/shared/material/datetime/material.dateshort.d.ts +11 -10
- package/src/app/shared/material/datetime/material.datetime.d.ts +11 -10
- package/src/app/shared/material/datetime/testing/mat-date-time.test.d.ts +4 -4
- package/src/app/shared/material/datetime/testing/mat-date.test.d.ts +3 -3
- package/src/app/shared/material/datetime/testing/mat-dateshort.test.d.ts +3 -3
- package/src/app/shared/material/duration/material.duration.d.ts +12 -6
- package/src/app/shared/material/duration/testing/mat-duration.test.d.ts +3 -3
- package/src/app/shared/material/latlong/material.latlong.d.ts +9 -9
- package/src/app/shared/material/swipe/material.swipe.d.ts +5 -5
- package/src/app/shared/material/testing/common.test.d.ts +4 -4
- package/src/app/shared/material/text/text-form.component.d.ts +6 -3
- package/src/app/shared/named-filter/named-filter-selector.component.d.ts +5 -2
- package/src/app/shared/named-filter/testing/named-filter-selector.testing.d.ts +3 -4
- package/src/app/shared/pipes/form.pipes.d.ts +7 -6
- package/src/app/shared/pipes/selection.pipes.d.ts +10 -10
- package/src/app/shared/storage/storage-explorer.component.d.ts +15 -12
- package/src/app/shared/toolbar/toolbar.d.ts +12 -10
- package/src/app/shared/upload-file/upload-file-popover.component.d.ts +4 -4
- package/src/app/shared/upload-file/upload-file.component.d.ts +3 -3
- package/src/app/social/job/progression/job-progression.icon.d.ts +6 -5
- package/src/app/social/message/message.form.d.ts +4 -2
- package/src/app/social/message/message.modal.d.ts +5 -5
- package/src/app/social/user-event/notification/user-event-notification.icon.d.ts +8 -7
- package/src/app/social/user-event/notification/user-event-notification.list.d.ts +9 -8
- package/src/assets/manifest.json +1 -1
- package/src/theme/_ngx-components.table.scss +1 -2
|
@@ -10,13 +10,15 @@ import * as i4 from "@angular/material/input";
|
|
|
10
10
|
import * as i5 from "../../../shared/directives/autofocus.directive";
|
|
11
11
|
import * as i6 from "@ngx-translate/core";
|
|
12
12
|
export class AppUsernameForm extends AppForm {
|
|
13
|
+
cd;
|
|
13
14
|
mobile;
|
|
14
15
|
usernamePlaceHolder = 'USER.EMAIL';
|
|
15
16
|
emailValidator = true;
|
|
16
|
-
constructor(formBuilder) {
|
|
17
|
-
super(formBuilder.group({
|
|
17
|
+
constructor(injector, formBuilder, cd) {
|
|
18
|
+
super(injector, formBuilder.group({
|
|
18
19
|
username: new UntypedFormControl(null, Validators.required),
|
|
19
20
|
}));
|
|
21
|
+
this.cd = cd;
|
|
20
22
|
}
|
|
21
23
|
ngOnInit() {
|
|
22
24
|
super.ngOnInit();
|
|
@@ -29,13 +31,16 @@ export class AppUsernameForm extends AppForm {
|
|
|
29
31
|
userNameControl.addValidators(Validators.email);
|
|
30
32
|
}
|
|
31
33
|
}
|
|
32
|
-
|
|
34
|
+
markForCheck() {
|
|
35
|
+
this.cd.markForCheck();
|
|
36
|
+
}
|
|
37
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AppUsernameForm, deps: [{ token: i0.Injector }, { token: i1.UntypedFormBuilder }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
33
38
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.3.12", type: AppUsernameForm, selector: "app-username-form", inputs: { mobile: ["mobile", "mobile", booleanAttribute], usernamePlaceHolder: "usernamePlaceHolder", emailValidator: ["emailValidator", "emailValidator", booleanAttribute] }, usesInheritance: true, ngImport: i0, template: "<form *ngIf=\"form.controls; let controls\" [formGroup]=\"form\" class=\"form-container\">\n <!-- Username -->\n <mat-form-field>\n <mat-label>{{ usernamePlaceHolder | translate }}</mat-label>\n <input\n matInput\n [appAutofocus]=\"!mobile\"\n [autofocusDelay]=\"500\"\n formControlName=\"username\"\n autocomplete=\"off\"\n required\n />\n\n <!-- error -->\n <mat-error *ngIf=\"form.controls.username.hasError('required') && form.controls.username.touched\">\n {{ 'ERROR.FIELD_REQUIRED' | translate }}\n </mat-error>\n <mat-error\n *ngIf=\"\n form.controls.username.hasError('email') &&\n !form.controls.username.hasError('required') &&\n controls.email.touched\n \"\n >\n <span>{{ 'ERROR.FIELD_NOT_VALID_EMAIL' | translate }}</span>\n </mat-error>\n </mat-form-field>\n</form>\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { 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.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { 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: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: i5.AutofocusDirective, selector: "[autofocus], input[appAutofocus]", inputs: ["appAutofocus", "autofocusDelay"] }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
34
39
|
}
|
|
35
40
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AppUsernameForm, decorators: [{
|
|
36
41
|
type: Component,
|
|
37
42
|
args: [{ selector: 'app-username-form', changeDetection: ChangeDetectionStrategy.OnPush, template: "<form *ngIf=\"form.controls; let controls\" [formGroup]=\"form\" class=\"form-container\">\n <!-- Username -->\n <mat-form-field>\n <mat-label>{{ usernamePlaceHolder | translate }}</mat-label>\n <input\n matInput\n [appAutofocus]=\"!mobile\"\n [autofocusDelay]=\"500\"\n formControlName=\"username\"\n autocomplete=\"off\"\n required\n />\n\n <!-- error -->\n <mat-error *ngIf=\"form.controls.username.hasError('required') && form.controls.username.touched\">\n {{ 'ERROR.FIELD_REQUIRED' | translate }}\n </mat-error>\n <mat-error\n *ngIf=\"\n form.controls.username.hasError('email') &&\n !form.controls.username.hasError('required') &&\n controls.email.touched\n \"\n >\n <span>{{ 'ERROR.FIELD_NOT_VALID_EMAIL' | translate }}</span>\n </mat-error>\n </mat-form-field>\n</form>\n" }]
|
|
38
|
-
}], ctorParameters: () => [{ type: i1.UntypedFormBuilder }], propDecorators: { mobile: [{
|
|
43
|
+
}], ctorParameters: () => [{ type: i0.Injector }, { type: i1.UntypedFormBuilder }, { type: i0.ChangeDetectorRef }], propDecorators: { mobile: [{
|
|
39
44
|
type: Input,
|
|
40
45
|
args: [{ transform: booleanAttribute }]
|
|
41
46
|
}], usernamePlaceHolder: [{
|
|
@@ -44,4 +49,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
44
49
|
type: Input,
|
|
45
50
|
args: [{ transform: booleanAttribute }]
|
|
46
51
|
}] } });
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlcm5hbWUuZm9ybS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29yZS9mb3JtL3VzZXJuYW1lL3VzZXJuYW1lLmZvcm0udHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvcmUvZm9ybS91c2VybmFtZS91c2VybmFtZS5mb3JtLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLHVCQUF1QixFQUFxQixTQUFTLEVBQVksS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pILE9BQU8sRUFBc0Isa0JBQWtCLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEYsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7Ozs7Ozs7O0FBT3JELE1BQU0sT0FBTyxlQUFnQixTQUFRLE9BQTZCO0lBUXBEO0lBUDRCLE1BQU0sQ0FBVTtJQUMvQyxtQkFBbUIsR0FBVyxZQUFZLENBQUM7SUFDWixjQUFjLEdBQUcsSUFBSSxDQUFDO0lBRTlELFlBQ0UsUUFBa0IsRUFDbEIsV0FBK0IsRUFDckIsRUFBcUI7UUFFL0IsS0FBSyxDQUNILFFBQVEsRUFDUixXQUFXLENBQUMsS0FBSyxDQUFDO1lBQ2hCLFFBQVEsRUFBRSxJQUFJLGtCQUFrQixDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDO1NBQzVELENBQUMsQ0FDSCxDQUFDO1FBUFEsT0FBRSxHQUFGLEVBQUUsQ0FBbUI7SUFRakMsQ0FBQztJQUVELFFBQVE7UUFDTixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxJQUFJLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUU5QyxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNsRCxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsSUFBSSxlQUFlLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQzNFLGVBQWUsQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckQsQ0FBQzthQUFNLElBQUksSUFBSSxDQUFDLGNBQWMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDbEYsZUFBZSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbEQsQ0FBQztJQUNILENBQUM7SUFFRCxZQUFZO1FBQ1YsSUFBSSxDQUFDLEVBQUUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN6QixDQUFDO3dHQWhDVSxlQUFlOzRGQUFmLGVBQWUsd0VBQ04sZ0JBQWdCLG9HQUVoQixnQkFBZ0Isb0RDYnRDLG0zQkE0QkE7OzRGRGxCYSxlQUFlO2tCQUwzQixTQUFTOytCQUNFLG1CQUFtQixtQkFFWix1QkFBdUIsQ0FBQyxNQUFNOzhJQUdQLE1BQU07c0JBQTdDLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBQzdCLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDa0MsY0FBYztzQkFBckQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGJvb2xlYW5BdHRyaWJ1dGUsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBJbmplY3RvciwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFVudHlwZWRGb3JtQnVpbGRlciwgVW50eXBlZEZvcm1Db250cm9sLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQXBwRm9ybSB9IGZyb20gJy4uL2Zvcm0uY2xhc3MnO1xuaW1wb3J0IHsgaXNNb2JpbGUgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvcGxhdGZvcm1zJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLXVzZXJuYW1lLWZvcm0nLFxuICB0ZW1wbGF0ZVVybDogJ3VzZXJuYW1lLmZvcm0uaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBBcHBVc2VybmFtZUZvcm0gZXh0ZW5kcyBBcHBGb3JtPHsgdXNlcm5hbWU6IHN0cmluZyB9PiB7XG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBtb2JpbGU6IGJvb2xlYW47XG4gIEBJbnB1dCgpIHVzZXJuYW1lUGxhY2VIb2xkZXI6IHN0cmluZyA9ICdVU0VSLkVNQUlMJztcbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGVtYWlsVmFsaWRhdG9yID0gdHJ1ZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgZm9ybUJ1aWxkZXI6IFVudHlwZWRGb3JtQnVpbGRlcixcbiAgICBwcm90ZWN0ZWQgY2Q6IENoYW5nZURldGVjdG9yUmVmXG4gICkge1xuICAgIHN1cGVyKFxuICAgICAgaW5qZWN0b3IsXG4gICAgICBmb3JtQnVpbGRlci5ncm91cCh7XG4gICAgICAgIHVzZXJuYW1lOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKG51bGwsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICB0aGlzLm1vYmlsZSA9IHRoaXMubW9iaWxlID8/IGlzTW9iaWxlKHdpbmRvdyk7XG5cbiAgICBjb25zdCB1c2VyTmFtZUNvbnRyb2wgPSB0aGlzLmZvcm0uZ2V0KCd1c2VybmFtZScpO1xuICAgIGlmICghdGhpcy5lbWFpbFZhbGlkYXRvciAmJiB1c2VyTmFtZUNvbnRyb2wuaGFzVmFsaWRhdG9yKFZhbGlkYXRvcnMuZW1haWwpKSB7XG4gICAgICB1c2VyTmFtZUNvbnRyb2wucmVtb3ZlVmFsaWRhdG9ycyhWYWxpZGF0b3JzLmVtYWlsKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuZW1haWxWYWxpZGF0b3IgJiYgIXVzZXJOYW1lQ29udHJvbC5oYXNWYWxpZGF0b3IoVmFsaWRhdG9ycy5lbWFpbCkpIHtcbiAgICAgIHVzZXJOYW1lQ29udHJvbC5hZGRWYWxpZGF0b3JzKFZhbGlkYXRvcnMuZW1haWwpO1xuICAgIH1cbiAgfVxuXG4gIG1hcmtGb3JDaGVjaygpIHtcbiAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xuICB9XG59XG4iLCI8Zm9ybSAqbmdJZj1cImZvcm0uY29udHJvbHM7IGxldCBjb250cm9sc1wiIFtmb3JtR3JvdXBdPVwiZm9ybVwiIGNsYXNzPVwiZm9ybS1jb250YWluZXJcIj5cbiAgPCEtLSBVc2VybmFtZSAtLT5cbiAgPG1hdC1mb3JtLWZpZWxkPlxuICAgIDxtYXQtbGFiZWw+e3sgdXNlcm5hbWVQbGFjZUhvbGRlciB8IHRyYW5zbGF0ZSB9fTwvbWF0LWxhYmVsPlxuICAgIDxpbnB1dFxuICAgICAgbWF0SW5wdXRcbiAgICAgIFthcHBBdXRvZm9jdXNdPVwiIW1vYmlsZVwiXG4gICAgICBbYXV0b2ZvY3VzRGVsYXldPVwiNTAwXCJcbiAgICAgIGZvcm1Db250cm9sTmFtZT1cInVzZXJuYW1lXCJcbiAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiXG4gICAgICByZXF1aXJlZFxuICAgIC8+XG5cbiAgICA8IS0tIGVycm9yIC0tPlxuICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJmb3JtLmNvbnRyb2xzLnVzZXJuYW1lLmhhc0Vycm9yKCdyZXF1aXJlZCcpICYmIGZvcm0uY29udHJvbHMudXNlcm5hbWUudG91Y2hlZFwiPlxuICAgICAge3sgJ0VSUk9SLkZJRUxEX1JFUVVJUkVEJyB8IHRyYW5zbGF0ZSB9fVxuICAgIDwvbWF0LWVycm9yPlxuICAgIDxtYXQtZXJyb3JcbiAgICAgICpuZ0lmPVwiXG4gICAgICAgIGZvcm0uY29udHJvbHMudXNlcm5hbWUuaGFzRXJyb3IoJ2VtYWlsJykgJiZcbiAgICAgICAgIWZvcm0uY29udHJvbHMudXNlcm5hbWUuaGFzRXJyb3IoJ3JlcXVpcmVkJykgJiZcbiAgICAgICAgY29udHJvbHMuZW1haWwudG91Y2hlZFxuICAgICAgXCJcbiAgICA+XG4gICAgICA8c3Bhbj57eyAnRVJST1IuRklFTERfTk9UX1ZBTElEX0VNQUlMJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICA8L21hdC1lcnJvcj5cbiAgPC9tYXQtZm9ybS1maWVsZD5cbjwvZm9ybT5cbiJdfQ==
|