@meshmakers/shared-ui 0.0.0-0
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 +27 -0
- package/esm2020/lib/confirmation-dialog/confirmation-dialog.module.mjs +40 -0
- package/esm2020/lib/confirmation-dialog/confirmation-window/confirmation-window.component.mjs +65 -0
- package/esm2020/lib/confirmation-dialog/services/confirmation.service.mjs +68 -0
- package/esm2020/lib/confirmation-dialog/shared/confirmation.mjs +15 -0
- package/esm2020/lib/ia-shared-ui/ia-autocomplete-input/ia-autocomplete-input.mjs +263 -0
- package/esm2020/lib/ia-shared-ui/ia-entity-select-input/ia-entity-select-input.component.mjs +264 -0
- package/esm2020/lib/ia-shared-ui/ia-notification-bar/ia-notification-bar.component.mjs +35 -0
- package/esm2020/lib/ia-shared-ui/ia-shared-ui.module.mjs +66 -0
- package/esm2020/lib/ia-shared-ui/message-details/message-details.component.mjs +24 -0
- package/esm2020/lib/progress-notifier/progress-notifier.module.mjs +44 -0
- package/esm2020/lib/progress-notifier/progress-window/progress-window.component.mjs +33 -0
- package/esm2020/lib/progress-notifier/services/progress-notifier.service.mjs +58 -0
- package/esm2020/lib/progress-notifier/shared/progressValue.mjs +3 -0
- package/esm2020/lib/shared/abstractDetailsComponent.mjs +37 -0
- package/esm2020/lib/shared/commonValidators.mjs +29 -0
- package/esm2020/meshmakers-shared-ui.mjs +5 -0
- package/esm2020/public-api.mjs +15 -0
- package/fesm2015/meshmakers-shared-ui.mjs +991 -0
- package/fesm2015/meshmakers-shared-ui.mjs.map +1 -0
- package/fesm2020/meshmakers-shared-ui.mjs +982 -0
- package/fesm2020/meshmakers-shared-ui.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/confirmation-dialog/confirmation-dialog.module.d.ts +13 -0
- package/lib/confirmation-dialog/confirmation-window/confirmation-window.component.d.ts +21 -0
- package/lib/confirmation-dialog/services/confirmation.service.d.ts +14 -0
- package/lib/confirmation-dialog/shared/confirmation.d.ts +20 -0
- package/lib/ia-shared-ui/ia-autocomplete-input/ia-autocomplete-input.d.ts +69 -0
- package/lib/ia-shared-ui/ia-entity-select-input/ia-entity-select-input.component.d.ts +70 -0
- package/lib/ia-shared-ui/ia-notification-bar/ia-notification-bar.component.d.ts +15 -0
- package/lib/ia-shared-ui/ia-shared-ui.module.d.ts +19 -0
- package/lib/ia-shared-ui/message-details/message-details.component.d.ts +13 -0
- package/lib/progress-notifier/progress-notifier.module.d.ts +14 -0
- package/lib/progress-notifier/progress-window/progress-window.component.d.ts +23 -0
- package/lib/progress-notifier/services/progress-notifier.service.d.ts +17 -0
- package/lib/progress-notifier/shared/progressValue.d.ts +4 -0
- package/lib/shared/abstractDetailsComponent.d.ts +15 -0
- package/lib/shared/commonValidators.d.ts +10 -0
- package/package.json +27 -0
- package/public-api.d.ts +11 -0
package/README.md
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# SharedUi
|
|
2
|
+
|
|
3
|
+
This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 9.0.1.
|
|
4
|
+
|
|
5
|
+
## Code scaffolding
|
|
6
|
+
|
|
7
|
+
Run `ng generate component component-name --project shared-ui` to generate a new component. You can also
|
|
8
|
+
use `ng generate directive|pipe|service|class|guard|interface|enum|module --project shared-ui`.
|
|
9
|
+
> Note: Don't forget to add `--project shared-ui` or else it will be added to the default project in your `angular.json`
|
|
10
|
+
> file.
|
|
11
|
+
|
|
12
|
+
## Build
|
|
13
|
+
|
|
14
|
+
Run `ng build shared-ui` to build the project. The build artifacts will be stored in the `dist/` directory.
|
|
15
|
+
|
|
16
|
+
## Publishing
|
|
17
|
+
|
|
18
|
+
After building your library with `ng build shared-ui`, go to the dist folder `cd dist/shared-ui` and run `npm publish`.
|
|
19
|
+
|
|
20
|
+
## Running unit tests
|
|
21
|
+
|
|
22
|
+
Run `ng test shared-ui` to execute the unit tests via [Karma](https://karma-runner.github.io).
|
|
23
|
+
|
|
24
|
+
## Further help
|
|
25
|
+
|
|
26
|
+
To get more help on the Angular CLI use `ng help` or go check out
|
|
27
|
+
the [Angular CLI README](https://github.com/angular/angular-cli/blob/master/README.md).
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { ConfirmationWindowComponent } from './confirmation-window/confirmation-window.component';
|
|
4
|
+
import { ConfirmationService } from "./services/confirmation.service";
|
|
5
|
+
import { MatDialogModule } from "@angular/material/dialog";
|
|
6
|
+
import { FlexLayoutModule } from "@angular/flex-layout";
|
|
7
|
+
import { MatButtonModule } from "@angular/material/button";
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
export class ConfirmationDialogModule {
|
|
10
|
+
static forRoot() {
|
|
11
|
+
return {
|
|
12
|
+
ngModule: ConfirmationDialogModule,
|
|
13
|
+
providers: [
|
|
14
|
+
ConfirmationService
|
|
15
|
+
]
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
ConfirmationDialogModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: ConfirmationDialogModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
20
|
+
ConfirmationDialogModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.2", ngImport: i0, type: ConfirmationDialogModule, declarations: [ConfirmationWindowComponent], imports: [CommonModule,
|
|
21
|
+
MatDialogModule,
|
|
22
|
+
FlexLayoutModule,
|
|
23
|
+
MatButtonModule] });
|
|
24
|
+
ConfirmationDialogModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: ConfirmationDialogModule, imports: [CommonModule,
|
|
25
|
+
MatDialogModule,
|
|
26
|
+
FlexLayoutModule,
|
|
27
|
+
MatButtonModule] });
|
|
28
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: ConfirmationDialogModule, decorators: [{
|
|
29
|
+
type: NgModule,
|
|
30
|
+
args: [{
|
|
31
|
+
declarations: [ConfirmationWindowComponent],
|
|
32
|
+
imports: [
|
|
33
|
+
CommonModule,
|
|
34
|
+
MatDialogModule,
|
|
35
|
+
FlexLayoutModule,
|
|
36
|
+
MatButtonModule,
|
|
37
|
+
]
|
|
38
|
+
}]
|
|
39
|
+
}] });
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlybWF0aW9uLWRpYWxvZy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZXNobWFrZXJzL3NoYXJlZC11aS9zcmMvbGliL2NvbmZpcm1hdGlvbi1kaWFsb2cvY29uZmlybWF0aW9uLWRpYWxvZy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFzQixRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDNUQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLHFEQUFxRCxDQUFDO0FBQ2hHLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQ3BFLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUN0RCxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7O0FBWXpELE1BQU0sT0FBTyx3QkFBd0I7SUFDbkMsTUFBTSxDQUFDLE9BQU87UUFDWixPQUFPO1lBQ0wsUUFBUSxFQUFFLHdCQUF3QjtZQUNsQyxTQUFTLEVBQUU7Z0JBQ1QsbUJBQW1CO2FBQ3BCO1NBQ0YsQ0FBQTtJQUNILENBQUM7O3FIQVJVLHdCQUF3QjtzSEFBeEIsd0JBQXdCLGlCQVJwQiwyQkFBMkIsYUFFeEMsWUFBWTtRQUNaLGVBQWU7UUFDZixnQkFBZ0I7UUFDaEIsZUFBZTtzSEFHTix3QkFBd0IsWUFOakMsWUFBWTtRQUNaLGVBQWU7UUFDZixnQkFBZ0I7UUFDaEIsZUFBZTsyRkFHTix3QkFBd0I7a0JBVHBDLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsMkJBQTJCLENBQUM7b0JBQzNDLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLGVBQWU7d0JBQ2YsZ0JBQWdCO3dCQUNoQixlQUFlO3FCQUNoQjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge0NvbmZpcm1hdGlvbldpbmRvd0NvbXBvbmVudH0gZnJvbSAnLi9jb25maXJtYXRpb24td2luZG93L2NvbmZpcm1hdGlvbi13aW5kb3cuY29tcG9uZW50JztcbmltcG9ydCB7Q29uZmlybWF0aW9uU2VydmljZX0gZnJvbSBcIi4vc2VydmljZXMvY29uZmlybWF0aW9uLnNlcnZpY2VcIjtcbmltcG9ydCB7TWF0RGlhbG9nTW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nXCI7XG5pbXBvcnQge0ZsZXhMYXlvdXRNb2R1bGV9IGZyb20gXCJAYW5ndWxhci9mbGV4LWxheW91dFwiO1xuaW1wb3J0IHtNYXRCdXR0b25Nb2R1bGV9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9idXR0b25cIjtcblxuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtDb25maXJtYXRpb25XaW5kb3dDb21wb25lbnRdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIE1hdERpYWxvZ01vZHVsZSxcbiAgICBGbGV4TGF5b3V0TW9kdWxlLFxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBDb25maXJtYXRpb25EaWFsb2dNb2R1bGUge1xuICBzdGF0aWMgZm9yUm9vdCgpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPENvbmZpcm1hdGlvbkRpYWxvZ01vZHVsZT4ge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogQ29uZmlybWF0aW9uRGlhbG9nTW9kdWxlLFxuICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIENvbmZpcm1hdGlvblNlcnZpY2VcbiAgICAgIF1cbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { Component, Inject } from '@angular/core';
|
|
2
|
+
import { MAT_DIALOG_DATA } from "@angular/material/dialog";
|
|
3
|
+
import { ButtonTypes, DialogType } from "../shared/confirmation";
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@angular/material/dialog";
|
|
6
|
+
import * as i2 from "@angular/common";
|
|
7
|
+
import * as i3 from "@angular/flex-layout/flex";
|
|
8
|
+
import * as i4 from "@angular/material/button";
|
|
9
|
+
export class ConfirmationWindowComponent {
|
|
10
|
+
constructor(dialogRef, data) {
|
|
11
|
+
this.dialogRef = dialogRef;
|
|
12
|
+
this.data = data;
|
|
13
|
+
if (data.dialogType === DialogType.OkCancel) {
|
|
14
|
+
this.button1Text = "OK";
|
|
15
|
+
this.button1Result = ButtonTypes.Ok;
|
|
16
|
+
this.button2Text = "Cancel";
|
|
17
|
+
this.button2Result = ButtonTypes.Cancel;
|
|
18
|
+
}
|
|
19
|
+
else if (data.dialogType === DialogType.YesNoCancel) {
|
|
20
|
+
this.button1Text = "Yes";
|
|
21
|
+
this.button1Result = ButtonTypes.Yes;
|
|
22
|
+
this.button2Text = "No";
|
|
23
|
+
this.button2Result = ButtonTypes.No;
|
|
24
|
+
this.button3Text = "Cancel";
|
|
25
|
+
this.button3Result = ButtonTypes.Cancel;
|
|
26
|
+
}
|
|
27
|
+
else if (data.dialogType === DialogType.Ok) {
|
|
28
|
+
this.button1Text = "OK";
|
|
29
|
+
this.button1Result = ButtonTypes.Ok;
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
this.button1Text = "Yes";
|
|
33
|
+
this.button1Result = ButtonTypes.Yes;
|
|
34
|
+
this.button2Text = "No";
|
|
35
|
+
this.button2Result = ButtonTypes.No;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
ngOnInit() {
|
|
39
|
+
}
|
|
40
|
+
onButton1() {
|
|
41
|
+
this.dialogRef.close({
|
|
42
|
+
result: this.button1Result
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
onButton2() {
|
|
46
|
+
this.dialogRef.close({
|
|
47
|
+
result: this.button2Result
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
onButton3() {
|
|
51
|
+
this.dialogRef.close({
|
|
52
|
+
result: this.button3Result
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
ConfirmationWindowComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: ConfirmationWindowComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
|
|
57
|
+
ConfirmationWindowComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.2", type: ConfirmationWindowComponent, selector: "lib-shared-ui-confirmation-window", ngImport: i0, template: "<h1 mat-dialog-title>{{data.title}}</h1>\n<div mat-dialog-content>{{data.message}}</div>\n<div fxLayoutAlign=\"end\" mat-dialog-actions>\n <button (click)=\"onButton1()\" color=\"primary\" mat-button>{{button1Text}}</button>\n <button (click)=\"onButton2()\" *ngIf=\"button2Text\" mat-button>{{button2Text}}</button>\n <button (click)=\"onButton3()\" *ngIf=\"button3Text\" mat-button>{{button3Text}}</button>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i3.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "component", type: i4.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }] });
|
|
58
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: ConfirmationWindowComponent, decorators: [{
|
|
59
|
+
type: Component,
|
|
60
|
+
args: [{ selector: 'lib-shared-ui-confirmation-window', template: "<h1 mat-dialog-title>{{data.title}}</h1>\n<div mat-dialog-content>{{data.message}}</div>\n<div fxLayoutAlign=\"end\" mat-dialog-actions>\n <button (click)=\"onButton1()\" color=\"primary\" mat-button>{{button1Text}}</button>\n <button (click)=\"onButton2()\" *ngIf=\"button2Text\" mat-button>{{button2Text}}</button>\n <button (click)=\"onButton3()\" *ngIf=\"button3Text\" mat-button>{{button3Text}}</button>\n</div>\n" }]
|
|
61
|
+
}], ctorParameters: function () { return [{ type: i1.MatDialogRef }, { type: undefined, decorators: [{
|
|
62
|
+
type: Inject,
|
|
63
|
+
args: [MAT_DIALOG_DATA]
|
|
64
|
+
}] }]; } });
|
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlybWF0aW9uLXdpbmRvdy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZXNobWFrZXJzL3NoYXJlZC11aS9zcmMvbGliL2NvbmZpcm1hdGlvbi1kaWFsb2cvY29uZmlybWF0aW9uLXdpbmRvdy9jb25maXJtYXRpb24td2luZG93LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21lc2htYWtlcnMvc2hhcmVkLXVpL3NyYy9saWIvY29uZmlybWF0aW9uLWRpYWxvZy9jb25maXJtYXRpb24td2luZG93L2NvbmZpcm1hdGlvbi13aW5kb3cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxNQUFNLEVBQVMsTUFBTSxlQUFlLENBQUM7QUFDeEQsT0FBTyxFQUFDLGVBQWUsRUFBZSxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZFLE9BQU8sRUFBQyxXQUFXLEVBQW9ELFVBQVUsRUFBQyxNQUFNLHdCQUF3QixDQUFDOzs7Ozs7QUFPakgsTUFBTSxPQUFPLDJCQUEyQjtJQVN0QyxZQUFvQixTQUFvRCxFQUFrQyxJQUE0QjtRQUFsSCxjQUFTLEdBQVQsU0FBUyxDQUEyQztRQUFrQyxTQUFJLEdBQUosSUFBSSxDQUF3QjtRQUVwSSxJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssVUFBVSxDQUFDLFFBQVEsRUFBRTtZQUMzQyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztZQUN4QixJQUFJLENBQUMsYUFBYSxHQUFHLFdBQVcsQ0FBQyxFQUFFLENBQUM7WUFDcEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxRQUFRLENBQUM7WUFDNUIsSUFBSSxDQUFDLGFBQWEsR0FBRyxXQUFXLENBQUMsTUFBTSxDQUFDO1NBRXpDO2FBQU0sSUFBSSxJQUFJLENBQUMsVUFBVSxLQUFLLFVBQVUsQ0FBQyxXQUFXLEVBQUU7WUFDckQsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7WUFDekIsSUFBSSxDQUFDLGFBQWEsR0FBRyxXQUFXLENBQUMsR0FBRyxDQUFDO1lBQ3JDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxhQUFhLEdBQUcsV0FBVyxDQUFDLEVBQUUsQ0FBQztZQUNwQyxJQUFJLENBQUMsV0FBVyxHQUFHLFFBQVEsQ0FBQztZQUM1QixJQUFJLENBQUMsYUFBYSxHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQUM7U0FDekM7YUFBTSxJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssVUFBVSxDQUFDLEVBQUUsRUFBRTtZQUM1QyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztZQUN4QixJQUFJLENBQUMsYUFBYSxHQUFHLFdBQVcsQ0FBQyxFQUFFLENBQUM7U0FDckM7YUFBTTtZQUNMLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1lBQ3pCLElBQUksQ0FBQyxhQUFhLEdBQUcsV0FBVyxDQUFDLEdBQUcsQ0FBQztZQUNyQyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztZQUN4QixJQUFJLENBQUMsYUFBYSxHQUFHLFdBQVcsQ0FBQyxFQUFFLENBQUM7U0FDckM7SUFFSCxDQUFDO0lBRUQsUUFBUTtJQUVSLENBQUM7SUFFRCxTQUFTO1FBRVAsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQTJCO1lBQzdDLE1BQU0sRUFBRSxJQUFJLENBQUMsYUFBYTtTQUMzQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsU0FBUztRQUNQLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUEyQjtZQUM3QyxNQUFNLEVBQUUsSUFBSSxDQUFDLGFBQWE7U0FDM0IsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFNBQVM7UUFDUCxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBMkI7WUFDN0MsTUFBTSxFQUFFLElBQUksQ0FBQyxhQUFhO1NBQzNCLENBQUMsQ0FBQztJQUNMLENBQUM7O3dIQXpEVSwyQkFBMkIsOENBUzRDLGVBQWU7NEdBVHRGLDJCQUEyQix5RUNUeEMsdWFBT0E7MkZERWEsMkJBQTJCO2tCQUx2QyxTQUFTOytCQUNFLG1DQUFtQzs7MEJBYThCLE1BQU07MkJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBJbmplY3QsIE9uSW5pdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge01BVF9ESUFMT0dfREFUQSwgTWF0RGlhbG9nUmVmfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nXCI7XG5pbXBvcnQge0J1dHRvblR5cGVzLCBDb25maXJtYXRpb25XaW5kb3dEYXRhLCBDb25maXJtYXRpb25XaW5kb3dSZXN1bHQsIERpYWxvZ1R5cGV9IGZyb20gXCIuLi9zaGFyZWQvY29uZmlybWF0aW9uXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1zaGFyZWQtdWktY29uZmlybWF0aW9uLXdpbmRvdycsXG4gIHRlbXBsYXRlVXJsOiAnLi9jb25maXJtYXRpb24td2luZG93LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY29uZmlybWF0aW9uLXdpbmRvdy5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQ29uZmlybWF0aW9uV2luZG93Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBidXR0b24xVGV4dDogc3RyaW5nO1xuICBidXR0b24xUmVzdWx0OiBCdXR0b25UeXBlcztcbiAgYnV0dG9uMlRleHQ6IHN0cmluZztcbiAgYnV0dG9uMlJlc3VsdDogQnV0dG9uVHlwZXM7XG4gIGJ1dHRvbjNUZXh0OiBzdHJpbmc7XG4gIGJ1dHRvbjNSZXN1bHQ6IEJ1dHRvblR5cGVzO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8Q29uZmlybWF0aW9uV2luZG93Q29tcG9uZW50PiwgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHB1YmxpYyBkYXRhOiBDb25maXJtYXRpb25XaW5kb3dEYXRhKSB7XG5cbiAgICBpZiAoZGF0YS5kaWFsb2dUeXBlID09PSBEaWFsb2dUeXBlLk9rQ2FuY2VsKSB7XG4gICAgICB0aGlzLmJ1dHRvbjFUZXh0ID0gXCJPS1wiO1xuICAgICAgdGhpcy5idXR0b24xUmVzdWx0ID0gQnV0dG9uVHlwZXMuT2s7XG4gICAgICB0aGlzLmJ1dHRvbjJUZXh0ID0gXCJDYW5jZWxcIjtcbiAgICAgIHRoaXMuYnV0dG9uMlJlc3VsdCA9IEJ1dHRvblR5cGVzLkNhbmNlbDtcblxuICAgIH0gZWxzZSBpZiAoZGF0YS5kaWFsb2dUeXBlID09PSBEaWFsb2dUeXBlLlllc05vQ2FuY2VsKSB7XG4gICAgICB0aGlzLmJ1dHRvbjFUZXh0ID0gXCJZZXNcIjtcbiAgICAgIHRoaXMuYnV0dG9uMVJlc3VsdCA9IEJ1dHRvblR5cGVzLlllcztcbiAgICAgIHRoaXMuYnV0dG9uMlRleHQgPSBcIk5vXCI7XG4gICAgICB0aGlzLmJ1dHRvbjJSZXN1bHQgPSBCdXR0b25UeXBlcy5ObztcbiAgICAgIHRoaXMuYnV0dG9uM1RleHQgPSBcIkNhbmNlbFwiO1xuICAgICAgdGhpcy5idXR0b24zUmVzdWx0ID0gQnV0dG9uVHlwZXMuQ2FuY2VsO1xuICAgIH0gZWxzZSBpZiAoZGF0YS5kaWFsb2dUeXBlID09PSBEaWFsb2dUeXBlLk9rKSB7XG4gICAgICB0aGlzLmJ1dHRvbjFUZXh0ID0gXCJPS1wiO1xuICAgICAgdGhpcy5idXR0b24xUmVzdWx0ID0gQnV0dG9uVHlwZXMuT2s7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuYnV0dG9uMVRleHQgPSBcIlllc1wiO1xuICAgICAgdGhpcy5idXR0b24xUmVzdWx0ID0gQnV0dG9uVHlwZXMuWWVzO1xuICAgICAgdGhpcy5idXR0b24yVGV4dCA9IFwiTm9cIjtcbiAgICAgIHRoaXMuYnV0dG9uMlJlc3VsdCA9IEJ1dHRvblR5cGVzLk5vO1xuICAgIH1cblxuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG5cbiAgfVxuXG4gIG9uQnV0dG9uMSgpIHtcblxuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKDxDb25maXJtYXRpb25XaW5kb3dSZXN1bHQ+e1xuICAgICAgcmVzdWx0OiB0aGlzLmJ1dHRvbjFSZXN1bHRcbiAgICB9KTtcbiAgfVxuXG4gIG9uQnV0dG9uMigpIHtcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSg8Q29uZmlybWF0aW9uV2luZG93UmVzdWx0PntcbiAgICAgIHJlc3VsdDogdGhpcy5idXR0b24yUmVzdWx0XG4gICAgfSk7XG4gIH1cblxuICBvbkJ1dHRvbjMoKSB7XG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoPENvbmZpcm1hdGlvbldpbmRvd1Jlc3VsdD57XG4gICAgICByZXN1bHQ6IHRoaXMuYnV0dG9uM1Jlc3VsdFxuICAgIH0pO1xuICB9XG59XG4iLCI8aDEgbWF0LWRpYWxvZy10aXRsZT57e2RhdGEudGl0bGV9fTwvaDE+XG48ZGl2IG1hdC1kaWFsb2ctY29udGVudD57e2RhdGEubWVzc2FnZX19PC9kaXY+XG48ZGl2IGZ4TGF5b3V0QWxpZ249XCJlbmRcIiBtYXQtZGlhbG9nLWFjdGlvbnM+XG4gIDxidXR0b24gKGNsaWNrKT1cIm9uQnV0dG9uMSgpXCIgY29sb3I9XCJwcmltYXJ5XCIgbWF0LWJ1dHRvbj57e2J1dHRvbjFUZXh0fX08L2J1dHRvbj5cbiAgPGJ1dHRvbiAoY2xpY2spPVwib25CdXR0b24yKClcIiAqbmdJZj1cImJ1dHRvbjJUZXh0XCIgbWF0LWJ1dHRvbj57e2J1dHRvbjJUZXh0fX08L2J1dHRvbj5cbiAgPGJ1dHRvbiAoY2xpY2spPVwib25CdXR0b24zKClcIiAqbmdJZj1cImJ1dHRvbjNUZXh0XCIgbWF0LWJ1dHRvbj57e2J1dHRvbjNUZXh0fX08L2J1dHRvbj5cbjwvZGl2PlxuIl19
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { ConfirmationWindowComponent } from "../confirmation-window/confirmation-window.component";
|
|
3
|
+
import { map } from "rxjs/operators";
|
|
4
|
+
import { ButtonTypes, DialogType } from "../shared/confirmation";
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@angular/material/dialog";
|
|
7
|
+
export class ConfirmationService {
|
|
8
|
+
constructor(dialog) {
|
|
9
|
+
this.dialog = dialog;
|
|
10
|
+
}
|
|
11
|
+
showYesNoConfirmationDialog(title, message) {
|
|
12
|
+
const dialogRef = this.dialog.open(ConfirmationWindowComponent, {
|
|
13
|
+
width: '50vw',
|
|
14
|
+
maxWidth: '50vw',
|
|
15
|
+
data: {
|
|
16
|
+
title: title,
|
|
17
|
+
message: message,
|
|
18
|
+
dialogType: DialogType.YesNo
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
return dialogRef.afterClosed().pipe(map(value => value.result == ButtonTypes.Yes));
|
|
22
|
+
}
|
|
23
|
+
showYesNoCancelConfirmationDialog(title, message) {
|
|
24
|
+
const dialogRef = this.dialog.open(ConfirmationWindowComponent, {
|
|
25
|
+
width: '50vw',
|
|
26
|
+
maxWidth: '50vw',
|
|
27
|
+
data: {
|
|
28
|
+
title: title,
|
|
29
|
+
message: message,
|
|
30
|
+
dialogType: DialogType.YesNoCancel
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
return dialogRef.afterClosed();
|
|
34
|
+
}
|
|
35
|
+
showOkCancelConfirmationDialog(title, message) {
|
|
36
|
+
const dialogRef = this.dialog.open(ConfirmationWindowComponent, {
|
|
37
|
+
width: '50vw',
|
|
38
|
+
maxWidth: '50vw',
|
|
39
|
+
data: {
|
|
40
|
+
title: title,
|
|
41
|
+
message: message,
|
|
42
|
+
dialogType: DialogType.OkCancel
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
return dialogRef.afterClosed().pipe(map(value => value.result == ButtonTypes.Ok));
|
|
46
|
+
}
|
|
47
|
+
showOkDialog(title, message) {
|
|
48
|
+
const dialogRef = this.dialog.open(ConfirmationWindowComponent, {
|
|
49
|
+
width: '50vw',
|
|
50
|
+
maxWidth: '50vw',
|
|
51
|
+
data: {
|
|
52
|
+
title: title,
|
|
53
|
+
message: message,
|
|
54
|
+
dialogType: DialogType.Ok
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
return dialogRef.afterClosed().pipe(map(value => value.result == ButtonTypes.Ok));
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
ConfirmationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: ConfirmationService, deps: [{ token: i1.MatDialog }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
61
|
+
ConfirmationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: ConfirmationService, providedIn: 'root' });
|
|
62
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: ConfirmationService, decorators: [{
|
|
63
|
+
type: Injectable,
|
|
64
|
+
args: [{
|
|
65
|
+
providedIn: 'root'
|
|
66
|
+
}]
|
|
67
|
+
}], ctorParameters: function () { return [{ type: i1.MatDialog }]; } });
|
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlybWF0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZXNobWFrZXJzL3NoYXJlZC11aS9zcmMvbGliL2NvbmZpcm1hdGlvbi1kaWFsb2cvc2VydmljZXMvY29uZmlybWF0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUd6QyxPQUFPLEVBQUMsMkJBQTJCLEVBQUMsTUFBTSxzREFBc0QsQ0FBQztBQUNqRyxPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkMsT0FBTyxFQUFDLFdBQVcsRUFBb0QsVUFBVSxFQUFDLE1BQU0sd0JBQXdCLENBQUM7OztBQUtqSCxNQUFNLE9BQU8sbUJBQW1CO0lBRTlCLFlBQW9CLE1BQWlCO1FBQWpCLFdBQU0sR0FBTixNQUFNLENBQVc7SUFDckMsQ0FBQztJQUVELDJCQUEyQixDQUFDLEtBQWEsRUFBRSxPQUFlO1FBRXhELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFnRiwyQkFBMkIsRUFBRTtZQUM3SSxLQUFLLEVBQUUsTUFBTTtZQUNiLFFBQVEsRUFBRSxNQUFNO1lBQ2hCLElBQUksRUFBMEI7Z0JBQzVCLEtBQUssRUFBRSxLQUFLO2dCQUNaLE9BQU8sRUFBRSxPQUFPO2dCQUNoQixVQUFVLEVBQUUsVUFBVSxDQUFDLEtBQUs7YUFDN0I7U0FDRixDQUFDLENBQUM7UUFFSCxPQUFPLFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLE1BQU0sSUFBSSxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNyRixDQUFDO0lBRUQsaUNBQWlDLENBQUMsS0FBYSxFQUFFLE9BQWU7UUFFOUQsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQWdGLDJCQUEyQixFQUFFO1lBQzdJLEtBQUssRUFBRSxNQUFNO1lBQ2IsUUFBUSxFQUFFLE1BQU07WUFDaEIsSUFBSSxFQUEwQjtnQkFDNUIsS0FBSyxFQUFFLEtBQUs7Z0JBQ1osT0FBTyxFQUFFLE9BQU87Z0JBQ2hCLFVBQVUsRUFBRSxVQUFVLENBQUMsV0FBVzthQUNuQztTQUNGLENBQUMsQ0FBQztRQUVILE9BQU8sU0FBUyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ2pDLENBQUM7SUFFRCw4QkFBOEIsQ0FBQyxLQUFhLEVBQUUsT0FBZTtRQUUzRCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBZ0YsMkJBQTJCLEVBQUU7WUFDN0ksS0FBSyxFQUFFLE1BQU07WUFDYixRQUFRLEVBQUUsTUFBTTtZQUNoQixJQUFJLEVBQTBCO2dCQUM1QixLQUFLLEVBQUUsS0FBSztnQkFDWixPQUFPLEVBQUUsT0FBTztnQkFDaEIsVUFBVSxFQUFFLFVBQVUsQ0FBQyxRQUFRO2FBQ2hDO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsT0FBTyxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxNQUFNLElBQUksV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDcEYsQ0FBQztJQUVELFlBQVksQ0FBQyxLQUFhLEVBQUUsT0FBZTtRQUV6QyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBZ0YsMkJBQTJCLEVBQUU7WUFDN0ksS0FBSyxFQUFFLE1BQU07WUFDYixRQUFRLEVBQUUsTUFBTTtZQUNoQixJQUFJLEVBQTBCO2dCQUM1QixLQUFLLEVBQUUsS0FBSztnQkFDWixPQUFPLEVBQUUsT0FBTztnQkFDaEIsVUFBVSxFQUFFLFVBQVUsQ0FBQyxFQUFFO2FBQzFCO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsT0FBTyxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxNQUFNLElBQUksV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDcEYsQ0FBQzs7Z0hBL0RVLG1CQUFtQjtvSEFBbkIsbUJBQW1CLGNBRmxCLE1BQU07MkZBRVAsbUJBQW1CO2tCQUgvQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQge01hdERpYWxvZ30gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2RpYWxvZ1wiO1xuaW1wb3J0IHtDb25maXJtYXRpb25XaW5kb3dDb21wb25lbnR9IGZyb20gXCIuLi9jb25maXJtYXRpb24td2luZG93L2NvbmZpcm1hdGlvbi13aW5kb3cuY29tcG9uZW50XCI7XG5pbXBvcnQge21hcH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XG5pbXBvcnQge0J1dHRvblR5cGVzLCBDb25maXJtYXRpb25XaW5kb3dEYXRhLCBDb25maXJtYXRpb25XaW5kb3dSZXN1bHQsIERpYWxvZ1R5cGV9IGZyb20gXCIuLi9zaGFyZWQvY29uZmlybWF0aW9uXCI7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIENvbmZpcm1hdGlvblNlcnZpY2Uge1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZGlhbG9nOiBNYXREaWFsb2cpIHtcbiAgfVxuXG4gIHNob3dZZXNOb0NvbmZpcm1hdGlvbkRpYWxvZyh0aXRsZTogc3RyaW5nLCBtZXNzYWdlOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcblxuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW48Q29uZmlybWF0aW9uV2luZG93Q29tcG9uZW50LCBDb25maXJtYXRpb25XaW5kb3dEYXRhLCBDb25maXJtYXRpb25XaW5kb3dSZXN1bHQ+KENvbmZpcm1hdGlvbldpbmRvd0NvbXBvbmVudCwge1xuICAgICAgd2lkdGg6ICc1MHZ3JyxcbiAgICAgIG1heFdpZHRoOiAnNTB2dycsXG4gICAgICBkYXRhOiA8Q29uZmlybWF0aW9uV2luZG93RGF0YT57XG4gICAgICAgIHRpdGxlOiB0aXRsZSxcbiAgICAgICAgbWVzc2FnZTogbWVzc2FnZSxcbiAgICAgICAgZGlhbG9nVHlwZTogRGlhbG9nVHlwZS5ZZXNOb1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnBpcGUobWFwKHZhbHVlID0+IHZhbHVlLnJlc3VsdCA9PSBCdXR0b25UeXBlcy5ZZXMpKTtcbiAgfVxuXG4gIHNob3dZZXNOb0NhbmNlbENvbmZpcm1hdGlvbkRpYWxvZyh0aXRsZTogc3RyaW5nLCBtZXNzYWdlOiBzdHJpbmcpOiBPYnNlcnZhYmxlPENvbmZpcm1hdGlvbldpbmRvd1Jlc3VsdD4ge1xuXG4gICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbjxDb25maXJtYXRpb25XaW5kb3dDb21wb25lbnQsIENvbmZpcm1hdGlvbldpbmRvd0RhdGEsIENvbmZpcm1hdGlvbldpbmRvd1Jlc3VsdD4oQ29uZmlybWF0aW9uV2luZG93Q29tcG9uZW50LCB7XG4gICAgICB3aWR0aDogJzUwdncnLFxuICAgICAgbWF4V2lkdGg6ICc1MHZ3JyxcbiAgICAgIGRhdGE6IDxDb25maXJtYXRpb25XaW5kb3dEYXRhPntcbiAgICAgICAgdGl0bGU6IHRpdGxlLFxuICAgICAgICBtZXNzYWdlOiBtZXNzYWdlLFxuICAgICAgICBkaWFsb2dUeXBlOiBEaWFsb2dUeXBlLlllc05vQ2FuY2VsXG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCk7XG4gIH1cblxuICBzaG93T2tDYW5jZWxDb25maXJtYXRpb25EaWFsb2codGl0bGU6IHN0cmluZywgbWVzc2FnZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG5cbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuPENvbmZpcm1hdGlvbldpbmRvd0NvbXBvbmVudCwgQ29uZmlybWF0aW9uV2luZG93RGF0YSwgQ29uZmlybWF0aW9uV2luZG93UmVzdWx0PihDb25maXJtYXRpb25XaW5kb3dDb21wb25lbnQsIHtcbiAgICAgIHdpZHRoOiAnNTB2dycsXG4gICAgICBtYXhXaWR0aDogJzUwdncnLFxuICAgICAgZGF0YTogPENvbmZpcm1hdGlvbldpbmRvd0RhdGE+e1xuICAgICAgICB0aXRsZTogdGl0bGUsXG4gICAgICAgIG1lc3NhZ2U6IG1lc3NhZ2UsXG4gICAgICAgIGRpYWxvZ1R5cGU6IERpYWxvZ1R5cGUuT2tDYW5jZWxcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5waXBlKG1hcCh2YWx1ZSA9PiB2YWx1ZS5yZXN1bHQgPT0gQnV0dG9uVHlwZXMuT2spKTtcbiAgfVxuXG4gIHNob3dPa0RpYWxvZyh0aXRsZTogc3RyaW5nLCBtZXNzYWdlOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcblxuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW48Q29uZmlybWF0aW9uV2luZG93Q29tcG9uZW50LCBDb25maXJtYXRpb25XaW5kb3dEYXRhLCBDb25maXJtYXRpb25XaW5kb3dSZXN1bHQ+KENvbmZpcm1hdGlvbldpbmRvd0NvbXBvbmVudCwge1xuICAgICAgd2lkdGg6ICc1MHZ3JyxcbiAgICAgIG1heFdpZHRoOiAnNTB2dycsXG4gICAgICBkYXRhOiA8Q29uZmlybWF0aW9uV2luZG93RGF0YT57XG4gICAgICAgIHRpdGxlOiB0aXRsZSxcbiAgICAgICAgbWVzc2FnZTogbWVzc2FnZSxcbiAgICAgICAgZGlhbG9nVHlwZTogRGlhbG9nVHlwZS5Pa1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnBpcGUobWFwKHZhbHVlID0+IHZhbHVlLnJlc3VsdCA9PSBCdXR0b25UeXBlcy5PaykpO1xuICB9XG5cbn1cbiJdfQ==
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export var ButtonTypes;
|
|
2
|
+
(function (ButtonTypes) {
|
|
3
|
+
ButtonTypes[ButtonTypes["Ok"] = 0] = "Ok";
|
|
4
|
+
ButtonTypes[ButtonTypes["Cancel"] = 1] = "Cancel";
|
|
5
|
+
ButtonTypes[ButtonTypes["Yes"] = 2] = "Yes";
|
|
6
|
+
ButtonTypes[ButtonTypes["No"] = 3] = "No";
|
|
7
|
+
})(ButtonTypes || (ButtonTypes = {}));
|
|
8
|
+
export var DialogType;
|
|
9
|
+
(function (DialogType) {
|
|
10
|
+
DialogType[DialogType["YesNo"] = 0] = "YesNo";
|
|
11
|
+
DialogType[DialogType["YesNoCancel"] = 1] = "YesNoCancel";
|
|
12
|
+
DialogType[DialogType["OkCancel"] = 2] = "OkCancel";
|
|
13
|
+
DialogType[DialogType["Ok"] = 3] = "Ok";
|
|
14
|
+
})(DialogType || (DialogType = {}));
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlybWF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVzaG1ha2Vycy9zaGFyZWQtdWkvc3JjL2xpYi9jb25maXJtYXRpb24tZGlhbG9nL3NoYXJlZC9jb25maXJtYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFOLElBQVksV0FLWDtBQUxELFdBQVksV0FBVztJQUNyQix5Q0FBRSxDQUFBO0lBQ0YsaURBQU0sQ0FBQTtJQUNOLDJDQUFHLENBQUE7SUFDSCx5Q0FBRSxDQUFBO0FBQ0osQ0FBQyxFQUxXLFdBQVcsS0FBWCxXQUFXLFFBS3RCO0FBRUQsTUFBTSxDQUFOLElBQVksVUFLWDtBQUxELFdBQVksVUFBVTtJQUNwQiw2Q0FBUyxDQUFBO0lBQ1QseURBQWUsQ0FBQTtJQUNmLG1EQUFZLENBQUE7SUFDWix1Q0FBTSxDQUFBO0FBQ1IsQ0FBQyxFQUxXLFVBQVUsS0FBVixVQUFVLFFBS3JCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gQnV0dG9uVHlwZXMge1xuICBPayxcbiAgQ2FuY2VsLFxuICBZZXMsXG4gIE5vXG59XG5cbmV4cG9ydCBlbnVtIERpYWxvZ1R5cGUge1xuICBZZXNObyA9IDAsXG4gIFllc05vQ2FuY2VsID0gMSxcbiAgT2tDYW5jZWwgPSAyLFxuICBPayA9IDNcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb25maXJtYXRpb25XaW5kb3dEYXRhIHtcbiAgdGl0bGU6IHN0cmluZztcbiAgbWVzc2FnZTogc3RyaW5nO1xuICBkaWFsb2dUeXBlOiBEaWFsb2dUeXBlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbmZpcm1hdGlvbldpbmRvd1Jlc3VsdCB7XG4gIHJlc3VsdDogQnV0dG9uVHlwZXM7XG59XG4iXX0=
|
|
@@ -0,0 +1,263 @@
|
|
|
1
|
+
import { Component, EventEmitter, forwardRef, HostBinding, Input, ViewChild } from '@angular/core';
|
|
2
|
+
import { MatFormFieldControl } from "@angular/material/form-field";
|
|
3
|
+
import { FormControl, NG_VALIDATORS, NG_VALUE_ACCESSOR, NgControl } from "@angular/forms";
|
|
4
|
+
import { coerceBooleanProperty } from "@angular/cdk/coercion";
|
|
5
|
+
import { debounceTime, filter, map, switchMap, tap } from "rxjs/operators";
|
|
6
|
+
import { Subject } from "rxjs";
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "@angular/cdk/a11y";
|
|
9
|
+
import * as i2 from "@angular/common";
|
|
10
|
+
import * as i3 from "@angular/material/autocomplete";
|
|
11
|
+
import * as i4 from "@angular/material/core";
|
|
12
|
+
import * as i5 from "@angular/material/input";
|
|
13
|
+
import * as i6 from "@angular/material/progress-spinner";
|
|
14
|
+
import * as i7 from "@angular/forms";
|
|
15
|
+
export class IaAutocompleteInput {
|
|
16
|
+
constructor(elRef, injector, fm) {
|
|
17
|
+
this.elRef = elRef;
|
|
18
|
+
this.injector = injector;
|
|
19
|
+
this.fm = fm;
|
|
20
|
+
this.filteredStrings = [];
|
|
21
|
+
this.stateChanges = new Subject();
|
|
22
|
+
this.id = `ia-autocomplete-${IaAutocompleteInput.nextId++}`;
|
|
23
|
+
this.valueChange = new EventEmitter();
|
|
24
|
+
this.describedBy = '';
|
|
25
|
+
this._disabled = false;
|
|
26
|
+
this._required = false;
|
|
27
|
+
this._propagateChange = (_) => {
|
|
28
|
+
};
|
|
29
|
+
this._onTouched = () => {
|
|
30
|
+
};
|
|
31
|
+
this.searchFormControl = new FormControl();
|
|
32
|
+
this.isLoading = false;
|
|
33
|
+
this._disabled = false;
|
|
34
|
+
this.focused = false;
|
|
35
|
+
fm.monitor(elRef.nativeElement, true).subscribe(origin => {
|
|
36
|
+
this.focused = !!origin;
|
|
37
|
+
this.stateChanges.next();
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
get dataSource() {
|
|
41
|
+
return this._dataSource;
|
|
42
|
+
}
|
|
43
|
+
set dataSource(value) {
|
|
44
|
+
this._dataSource = value;
|
|
45
|
+
}
|
|
46
|
+
get disabled() {
|
|
47
|
+
return this._disabled;
|
|
48
|
+
}
|
|
49
|
+
set disabled(dis) {
|
|
50
|
+
this._disabled = coerceBooleanProperty(dis);
|
|
51
|
+
this._disabled ? this.searchFormControl.disable() : this.searchFormControl.enable();
|
|
52
|
+
this.stateChanges.next();
|
|
53
|
+
}
|
|
54
|
+
get placeholder() {
|
|
55
|
+
return this._placeholder;
|
|
56
|
+
}
|
|
57
|
+
set placeholder(plh) {
|
|
58
|
+
this._placeholder = plh;
|
|
59
|
+
this.stateChanges.next();
|
|
60
|
+
}
|
|
61
|
+
get required() {
|
|
62
|
+
return this._required;
|
|
63
|
+
}
|
|
64
|
+
set required(req) {
|
|
65
|
+
this._required = coerceBooleanProperty(req);
|
|
66
|
+
this.inputField.required = this._required;
|
|
67
|
+
this.stateChanges.next();
|
|
68
|
+
}
|
|
69
|
+
get prefix() {
|
|
70
|
+
return this._prefix;
|
|
71
|
+
}
|
|
72
|
+
set prefix(value) {
|
|
73
|
+
if (value !== this._prefix) {
|
|
74
|
+
this._prefix = value;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
get value() {
|
|
78
|
+
return this._selectedString;
|
|
79
|
+
}
|
|
80
|
+
set value(value) {
|
|
81
|
+
if (value !== this._selectedString) {
|
|
82
|
+
this._selectedString = value;
|
|
83
|
+
this.searchFormControl.setValue(value);
|
|
84
|
+
this.valueChange.emit(value);
|
|
85
|
+
this._propagateChange(this._selectedString);
|
|
86
|
+
this.stateChanges.next();
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
get empty() {
|
|
90
|
+
let n = this.searchFormControl.value;
|
|
91
|
+
return !!!n;
|
|
92
|
+
}
|
|
93
|
+
get shouldLabelFloat() {
|
|
94
|
+
return this.focused || !this.empty;
|
|
95
|
+
}
|
|
96
|
+
ngOnInit() {
|
|
97
|
+
this.ngControl = this.injector.get(NgControl, null);
|
|
98
|
+
if (this.ngControl != null) {
|
|
99
|
+
this.ngControl.valueAccessor = this;
|
|
100
|
+
}
|
|
101
|
+
// If prefix defined, usually this is used for a code scanner.
|
|
102
|
+
// The goal is to select the entity in direct way.
|
|
103
|
+
if (this._prefix) {
|
|
104
|
+
this.searchFormControl
|
|
105
|
+
.valueChanges
|
|
106
|
+
.pipe(debounceTime(300), filter(value => typeof value === 'string'), filter(value => value.startsWith(this._prefix)), tap(() => this.value = null), tap(() => this.isLoading = true), map(value => this._dataSource.onPreprocessSearchString(value)), switchMap(value => this._dataSource.onFilter(value)))
|
|
107
|
+
.subscribe(resultSet => {
|
|
108
|
+
if (resultSet.list.length === 1) {
|
|
109
|
+
this.value = resultSet[0];
|
|
110
|
+
}
|
|
111
|
+
else {
|
|
112
|
+
this.filteredStrings = resultSet.list;
|
|
113
|
+
this.searchFormControl.patchValue(resultSet.searchTerm, { emitEvent: false });
|
|
114
|
+
}
|
|
115
|
+
this.isLoading = false;
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
// This is the search functionality when search by human.
|
|
119
|
+
this.searchFormControl
|
|
120
|
+
.valueChanges
|
|
121
|
+
.pipe(debounceTime(300), tap(value => {
|
|
122
|
+
this.filteredStrings = [];
|
|
123
|
+
}), filter(value => value != null && value.toString().length >= 1), tap(() => this.isLoading = true), map(value => this._dataSource.onPreprocessSearchString(value)), tap(value => this.value = value), switchMap(value => this._dataSource.onFilter(value)))
|
|
124
|
+
.subscribe(resultSet => {
|
|
125
|
+
this.filteredStrings = resultSet.list;
|
|
126
|
+
this.searchFormControl.patchValue(resultSet.searchTerm, { emitEvent: false });
|
|
127
|
+
this.isLoading = false;
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
ngOnDestroy() {
|
|
131
|
+
this.stateChanges.complete();
|
|
132
|
+
this.fm.stopMonitoring(this.elRef.nativeElement);
|
|
133
|
+
}
|
|
134
|
+
ngDoCheck() {
|
|
135
|
+
if (this.ngControl) {
|
|
136
|
+
this.errorState = this.ngControl.invalid && this.ngControl.touched;
|
|
137
|
+
this.stateChanges.next();
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
clear() {
|
|
141
|
+
this.filteredStrings = [];
|
|
142
|
+
this.searchFormControl.reset(null);
|
|
143
|
+
}
|
|
144
|
+
focus() {
|
|
145
|
+
this.elRef.nativeElement.querySelector('input').focus();
|
|
146
|
+
}
|
|
147
|
+
onOptionSelected(event) {
|
|
148
|
+
this.value = event.option.value;
|
|
149
|
+
this.filteredStrings = [];
|
|
150
|
+
}
|
|
151
|
+
onOptionActivated(event) {
|
|
152
|
+
this.activatedValue = event.option?.value;
|
|
153
|
+
}
|
|
154
|
+
onAutoCompleteClosed() {
|
|
155
|
+
if (this.activatedValue) {
|
|
156
|
+
this.value = this.activatedValue;
|
|
157
|
+
this.activatedValue = null;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
reset() {
|
|
161
|
+
this.value = null;
|
|
162
|
+
}
|
|
163
|
+
onFocusOut() {
|
|
164
|
+
if (this.filteredStrings.length === 1) {
|
|
165
|
+
this.activatedValue = this.filteredStrings[0];
|
|
166
|
+
this.value = this.filteredStrings[0];
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
onTouched() {
|
|
170
|
+
this._onTouched();
|
|
171
|
+
this.stateChanges.next();
|
|
172
|
+
}
|
|
173
|
+
registerOnChange(fn) {
|
|
174
|
+
this._propagateChange = fn;
|
|
175
|
+
}
|
|
176
|
+
registerOnTouched(fn) {
|
|
177
|
+
this.onTouched = fn;
|
|
178
|
+
}
|
|
179
|
+
writeValue(obj) {
|
|
180
|
+
this.clear();
|
|
181
|
+
this.value = obj;
|
|
182
|
+
}
|
|
183
|
+
setDisabledState(isDisabled) {
|
|
184
|
+
this.disabled = isDisabled;
|
|
185
|
+
}
|
|
186
|
+
onContainerClick(event) {
|
|
187
|
+
if (event.target.tagName.toLowerCase() != 'input') {
|
|
188
|
+
this.focus();
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
setDescribedByIds(ids) {
|
|
192
|
+
this.describedBy = ids.join(' ');
|
|
193
|
+
}
|
|
194
|
+
validate(control) {
|
|
195
|
+
const selection = control.value;
|
|
196
|
+
if (typeof selection === 'string' && selection.length < 1) {
|
|
197
|
+
return { incorrect: true };
|
|
198
|
+
}
|
|
199
|
+
return null;
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
IaAutocompleteInput.nextId = 0;
|
|
203
|
+
IaAutocompleteInput.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: IaAutocompleteInput, deps: [{ token: i0.ElementRef }, { token: i0.Injector }, { token: i1.FocusMonitor }], target: i0.ɵɵFactoryTarget.Component });
|
|
204
|
+
IaAutocompleteInput.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.2", type: IaAutocompleteInput, selector: "ia-autocomplete", inputs: { dataSource: "dataSource", disabled: "disabled", placeholder: "placeholder", required: "required", prefix: "prefix" }, host: { properties: { "id": "this.id", "attr.aria-describedby": "this.describedBy", "class.floating": "this.shouldLabelFloat" } }, providers: [
|
|
205
|
+
{
|
|
206
|
+
provide: NG_VALUE_ACCESSOR,
|
|
207
|
+
useExisting: forwardRef(() => IaAutocompleteInput),
|
|
208
|
+
multi: true
|
|
209
|
+
},
|
|
210
|
+
{
|
|
211
|
+
provide: MatFormFieldControl,
|
|
212
|
+
useExisting: IaAutocompleteInput
|
|
213
|
+
},
|
|
214
|
+
{
|
|
215
|
+
provide: NG_VALIDATORS,
|
|
216
|
+
useExisting: forwardRef(() => IaAutocompleteInput),
|
|
217
|
+
multi: true
|
|
218
|
+
}
|
|
219
|
+
], viewQueries: [{ propertyName: "inputField", first: true, predicate: ["input"], descendants: true }], ngImport: i0, template: "<input #input (blur)=\"onTouched()\" (focusout)=\"onFocusOut()\" [formControl]=\"searchFormControl\" [matAutocomplete]=\"auto\"\n [placeholder]=\"placeholder\" matInput>\n<mat-autocomplete #auto=\"matAutocomplete\"\n (closed)=\"onAutoCompleteClosed()\" (optionActivated)=\"onOptionActivated($event)\"\n (optionSelected)=\"onOptionSelected($event)\">\n <mat-option *ngIf=\"isLoading\" class=\"is-loading\">\n <mat-spinner diameter=\"50\"></mat-spinner>\n </mat-option>\n <ng-container *ngIf=\"!isLoading\">\n <mat-option *ngFor=\"let str of filteredStrings\" [value]=\"str\">\n {{str}}\n </mat-option>\n </ng-container>\n</mat-autocomplete>\n", styles: ["span{opacity:0;transition:opacity .2s}:host.floating span{opacity:1}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple"], exportAs: ["matAutocomplete"] }, { kind: "directive", type: i3.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { kind: "component", type: i4.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "directive", type: i5.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: "component", type: i6.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }, { kind: "directive", type: i7.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: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
|
|
220
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: IaAutocompleteInput, decorators: [{
|
|
221
|
+
type: Component,
|
|
222
|
+
args: [{ selector: 'ia-autocomplete', host: {
|
|
223
|
+
'[id]': 'id',
|
|
224
|
+
'[attr.aria-describedby]': 'describedBy'
|
|
225
|
+
}, providers: [
|
|
226
|
+
{
|
|
227
|
+
provide: NG_VALUE_ACCESSOR,
|
|
228
|
+
useExisting: forwardRef(() => IaAutocompleteInput),
|
|
229
|
+
multi: true
|
|
230
|
+
},
|
|
231
|
+
{
|
|
232
|
+
provide: MatFormFieldControl,
|
|
233
|
+
useExisting: IaAutocompleteInput
|
|
234
|
+
},
|
|
235
|
+
{
|
|
236
|
+
provide: NG_VALIDATORS,
|
|
237
|
+
useExisting: forwardRef(() => IaAutocompleteInput),
|
|
238
|
+
multi: true
|
|
239
|
+
}
|
|
240
|
+
], template: "<input #input (blur)=\"onTouched()\" (focusout)=\"onFocusOut()\" [formControl]=\"searchFormControl\" [matAutocomplete]=\"auto\"\n [placeholder]=\"placeholder\" matInput>\n<mat-autocomplete #auto=\"matAutocomplete\"\n (closed)=\"onAutoCompleteClosed()\" (optionActivated)=\"onOptionActivated($event)\"\n (optionSelected)=\"onOptionSelected($event)\">\n <mat-option *ngIf=\"isLoading\" class=\"is-loading\">\n <mat-spinner diameter=\"50\"></mat-spinner>\n </mat-option>\n <ng-container *ngIf=\"!isLoading\">\n <mat-option *ngFor=\"let str of filteredStrings\" [value]=\"str\">\n {{str}}\n </mat-option>\n </ng-container>\n</mat-autocomplete>\n", styles: ["span{opacity:0;transition:opacity .2s}:host.floating span{opacity:1}\n"] }]
|
|
241
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Injector }, { type: i1.FocusMonitor }]; }, propDecorators: { id: [{
|
|
242
|
+
type: HostBinding
|
|
243
|
+
}], inputField: [{
|
|
244
|
+
type: ViewChild,
|
|
245
|
+
args: ['input']
|
|
246
|
+
}], describedBy: [{
|
|
247
|
+
type: HostBinding,
|
|
248
|
+
args: ['attr.aria-describedby']
|
|
249
|
+
}], dataSource: [{
|
|
250
|
+
type: Input
|
|
251
|
+
}], disabled: [{
|
|
252
|
+
type: Input
|
|
253
|
+
}], placeholder: [{
|
|
254
|
+
type: Input
|
|
255
|
+
}], required: [{
|
|
256
|
+
type: Input
|
|
257
|
+
}], prefix: [{
|
|
258
|
+
type: Input
|
|
259
|
+
}], shouldLabelFloat: [{
|
|
260
|
+
type: HostBinding,
|
|
261
|
+
args: ['class.floating']
|
|
262
|
+
}] } });
|
|
263
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWEtYXV0b2NvbXBsZXRlLWlucHV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVzaG1ha2Vycy9zaGFyZWQtdWkvc3JjL2xpYi9pYS1zaGFyZWQtdWkvaWEtYXV0b2NvbXBsZXRlLWlucHV0L2lhLWF1dG9jb21wbGV0ZS1pbnB1dC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21lc2htYWtlcnMvc2hhcmVkLXVpL3NyYy9saWIvaWEtc2hhcmVkLXVpL2lhLWF1dG9jb21wbGV0ZS1pbnB1dC9pYS1hdXRvY29tcGxldGUtaW5wdXQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUdULFlBQVksRUFDWixVQUFVLEVBQ1YsV0FBVyxFQUVYLEtBQUssRUFHTCxTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDakUsT0FBTyxFQUdMLFdBQVcsRUFDWCxhQUFhLEVBQ2IsaUJBQWlCLEVBQ2pCLFNBQVMsRUFHVixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQzVELE9BQU8sRUFBQyxZQUFZLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFHekUsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLE1BQU0sQ0FBQzs7Ozs7Ozs7O0FBNkI3QixNQUFNLE9BQU8sbUJBQW1CO0lBa0I5QixZQUFtQixLQUFpQixFQUFVLFFBQWtCLEVBQVUsRUFBZ0I7UUFBdkUsVUFBSyxHQUFMLEtBQUssQ0FBWTtRQUFVLGFBQVEsR0FBUixRQUFRLENBQVU7UUFBVSxPQUFFLEdBQUYsRUFBRSxDQUFjO1FBWm5GLG9CQUFlLEdBQWEsRUFBRSxDQUFDO1FB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QUFPLEVBQUUsbUJBQW1CO1lBQzVCLFdBQVcsRUFBRSxtQkFBbUI7U0FDakM7UUFDRDtZQUNFLE9BQU8sRUFBRSxhQUFhO1lBQ3RCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsbUJBQW1CLENBQUM7WUFDbEQsS0FBSyxFQUFFLElBQUk7U0FDWjtLQUNGLCtIQ3ZESCw2ckJBY0E7MkZEMkNhLG1CQUFtQjtrQkF6Qi9CLFNBQVM7K0JBQ0UsaUJBQWlCLFFBR3JCO3dCQUNKLE1BQU0sRUFBRSxJQUFJO3dCQUNaLHlCQUF5QixFQUFFLGFBQWE7cUJBQ3pDLGFBQ1U7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsb0JBQW9CLENBQUM7NEJBQ2xELEtBQUssRUFBRSxJQUFJO3lCQUNaO3dCQUNEOzRCQUNFLE9BQU8sRUFBRSxtQkFBbUI7NEJBQzVCLFdBQVcscUJBQXFCO3lCQUNqQzt3QkFDRDs0QkFDRSxPQUFPLEVBQUUsYUFBYTs0QkFDdEIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsb0JBQW9CLENBQUM7NEJBQ2xELEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGO21KQWE4QixFQUFFO3NCQUFoQyxXQUFXO2dCQUdnQixVQUFVO3NCQUFyQyxTQUFTO3VCQUFDLE9BQU87Z0JBQzRCLFdBQVc7c0JBQXhELFdBQVc7dUJBQUMsdUJBQXVCO2dCQXNCekIsVUFBVTtzQkFEcEIsS0FBSztnQkFRSyxRQUFRO3NCQURsQixLQUFLO2dCQWNLLFdBQVc7c0JBRHJCLEtBQUs7Z0JBYUssUUFBUTtzQkFEbEIsS0FBSztnQkFjSyxNQUFNO3NCQURoQixLQUFLO2dCQStCSyxnQkFBZ0I7c0JBRDFCLFdBQVc7dUJBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBEb0NoZWNrLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIGZvcndhcmRSZWYsXG4gIEhvc3RCaW5kaW5nLFxuICBJbmplY3RvcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge01hdEZvcm1GaWVsZENvbnRyb2x9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkXCI7XG5pbXBvcnQge1xuICBBYnN0cmFjdENvbnRyb2wsXG4gIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxuICBGb3JtQ29udHJvbCxcbiAgTkdfVkFMSURBVE9SUyxcbiAgTkdfVkFMVUVfQUNDRVNTT1IsXG4gIE5nQ29udHJvbCxcbiAgVmFsaWRhdGlvbkVycm9ycyxcbiAgVmFsaWRhdG9yXG59IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHtjb2VyY2VCb29sZWFuUHJvcGVydHl9IGZyb20gXCJAYW5ndWxhci9jZGsvY29lcmNpb25cIjtcbmltcG9ydCB7ZGVib3VuY2VUaW1lLCBmaWx0ZXIsIG1hcCwgc3dpdGNoTWFwLCB0YXB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xuaW1wb3J0IHtNYXRBdXRvY29tcGxldGVBY3RpdmF0ZWRFdmVudCwgTWF0QXV0b2NvbXBsZXRlU2VsZWN0ZWRFdmVudH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2F1dG9jb21wbGV0ZVwiO1xuaW1wb3J0IHtNYXRJbnB1dH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2lucHV0XCI7XG5pbXBvcnQge1N1YmplY3R9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQge0ZvY3VzTW9uaXRvcn0gZnJvbSBcIkBhbmd1bGFyL2Nkay9hMTF5XCI7XG5pbXBvcnQge0F1dG9Db21wbGV0ZURhdGFTb3VyY2V9IGZyb20gXCJAbWVzaG1ha2Vycy9zaGFyZWQtc2VydmljZXNcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaWEtYXV0b2NvbXBsZXRlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2lhLWF1dG9jb21wbGV0ZS1pbnB1dC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vaWEtYXV0b2NvbXBsZXRlLWlucHV0LmNzcyddLFxuICBob3N0OiB7XG4gICAgJ1tpZF0nOiAnaWQnLFxuICAgICdbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XSc6ICdkZXNjcmliZWRCeSdcbiAgfSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBJYUF1dG9jb21wbGV0ZUlucHV0KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBNYXRGb3JtRmllbGRDb250cm9sLFxuICAgICAgdXNlRXhpc3Rpbmc6IElhQXV0b2NvbXBsZXRlSW5wdXRcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBJYUF1dG9jb21wbGV0ZUlucHV0KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIElhQXV0b2NvbXBsZXRlSW5wdXQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgRG9DaGVjaywgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE1hdEZvcm1GaWVsZENvbnRyb2w8YW55PiwgVmFsaWRhdG9yIHtcblxuXG4gIHByaXZhdGUgc3RhdGljIG5leHRJZCA9IDA7XG4gIHB1YmxpYyByZWFkb25seSBzZWFyY2hGb3JtQ29udHJvbDogRm9ybUNvbnRyb2w7XG4gIHB1YmxpYyBpc0xvYWRpbmc6IGJvb2xlYW47XG4gIHB1YmxpYyBmaWx0ZXJlZFN0cmluZ3M6IHN0cmluZ1tdID0gW107XG4gIHB1YmxpYyBuZ0NvbnRyb2w6IE5nQ29udHJvbDtcbiAgcHVibGljIGVycm9yU3RhdGU6IGJvb2xlYW47XG4gIHB1YmxpYyBmb2N1c2VkOiBib29sZWFuO1xuICBwdWJsaWMgcmVhZG9ubHkgc3RhdGVDaGFuZ2VzID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgQEhvc3RCaW5kaW5nKCkgcHVibGljIHJlYWRvbmx5IGlkID0gYGlhLWF1dG9jb21wbGV0ZS0ke0lhQXV0b2NvbXBsZXRlSW5wdXQubmV4dElkKyt9YDtcbiAgcHVibGljIHZhbHVlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBwcml2YXRlIF9zZWxlY3RlZFN0cmluZzogc3RyaW5nO1xuICBAVmlld0NoaWxkKCdpbnB1dCcpIHByaXZhdGUgaW5wdXRGaWVsZDogTWF0SW5wdXQ7XG4gIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLWRlc2NyaWJlZGJ5JykgcHJpdmF0ZSBkZXNjcmliZWRCeSA9ICcnO1xuICBwcml2YXRlIGFjdGl2YXRlZFZhbHVlOiBhbnk7XG5cbiAgY29uc3RydWN0b3IocHVibGljIGVsUmVmOiBFbGVtZW50UmVmLCBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvciwgcHJpdmF0ZSBmbTogRm9jdXNNb25pdG9yKSB7XG5cbiAgICB0aGlzLnNlYXJjaEZvcm1Db250cm9sID0gbmV3IEZvcm1Db250cm9sKCk7XG4gICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICB0aGlzLl9kaXNhYmxlZCA9IGZhbHNlO1xuICAgIHRoaXMuZm9jdXNlZCA9IGZhbHNlO1xuICAgIGZtLm1vbml0b3IoZWxSZWYubmF0aXZlRWxlbWVudCwgdHJ1ZSkuc3Vic2NyaWJlKG9yaWdpbiA9PiB7XG4gICAgICB0aGlzLmZvY3VzZWQgPSAhIW9yaWdpbjtcbiAgICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX2RhdGFTb3VyY2U6IEF1dG9Db21wbGV0ZURhdGFTb3VyY2U7XG5cbiAgcHVibGljIGdldCBkYXRhU291cmNlKCkge1xuICAgIHJldHVybiB0aGlzLl9kYXRhU291cmNlO1xuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBkYXRhU291cmNlKHZhbHVlOiBBdXRvQ29tcGxldGVEYXRhU291cmNlKSB7XG4gICAgdGhpcy5fZGF0YVNvdXJjZSA9IHZhbHVlO1xuICB9XG5cbiAgcHJpdmF0ZSBfZGlzYWJsZWQgPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgZ2V0IGRpc2FibGVkKCkge1xuICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZDtcbiAgfVxuXG4gIHB1YmxpYyBzZXQgZGlzYWJsZWQoZGlzKSB7XG4gICAgdGhpcy5fZGlzYWJsZWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkoZGlzKTtcbiAgICB0aGlzLl9kaXNhYmxlZCA/IHRoaXMuc2VhcmNoRm9ybUNvbnRyb2wuZGlzYWJsZSgpIDogdGhpcy5zZWFyY2hGb3JtQ29udHJvbC5lbmFibGUoKTtcbiAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XG4gIH1cblxuICBwcml2YXRlIF9wbGFjZWhvbGRlcjogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBnZXQgcGxhY2Vob2xkZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3BsYWNlaG9sZGVyO1xuICB9XG5cbiAgcHVibGljIHNldCBwbGFjZWhvbGRlcihwbGgpIHtcbiAgICB0aGlzLl9wbGFjZWhvbGRlciA9IHBsaDtcbiAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XG4gIH1cblxuICBwcml2YXRlIF9yZXF1aXJlZCA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBnZXQgcmVxdWlyZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3JlcXVpcmVkO1xuICB9XG5cbiAgcHVibGljIHNldCByZXF1aXJlZChyZXEpIHtcbiAgICB0aGlzLl9yZXF1aXJlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eShyZXEpO1xuICAgIHRoaXMuaW5wdXRGaWVsZC5yZXF1aXJlZCA9IHRoaXMuX3JlcXVpcmVkO1xuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcbiAgfVxuXG4gIHByaXZhdGUgX3ByZWZpeDogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBnZXQgcHJlZml4KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX3ByZWZpeDtcbiAgfVxuXG4gIHB1YmxpYyBzZXQgcHJlZml4KHZhbHVlOiBzdHJpbmcpIHtcbiAgICBpZiAodmFsdWUgIT09IHRoaXMuX3ByZWZpeCkge1xuICAgICAgdGhpcy5fcHJlZml4ID0gdmFsdWU7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCB2YWx1ZSgpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLl9zZWxlY3RlZFN0cmluZztcbiAgfVxuXG4gIHB1YmxpYyBzZXQgdmFsdWUodmFsdWU6IGFueSkge1xuICAgIGlmICh2YWx1ZSAhPT0gdGhpcy5fc2VsZWN0ZWRTdHJpbmcpIHtcbiAgICAgIHRoaXMuX3NlbGVjdGVkU3RyaW5nID0gdmFsdWU7XG4gICAgICB0aGlzLnNlYXJjaEZvcm1Db250cm9sLnNldFZhbHVlKHZhbHVlKTtcbiAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh2YWx1ZSk7XG4gICAgICB0aGlzLl9wcm9wYWdhdGVDaGFuZ2UodGhpcy5fc2VsZWN0ZWRTdHJpbmcpO1xuICAgICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgZW1wdHkoKSB7XG4gICAgbGV0IG4gPSB0aGlzLnNlYXJjaEZvcm1Db250cm9sLnZhbHVlO1xuICAgIHJldHVybiAhISFuO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mbG9hdGluZycpXG4gIHB1YmxpYyBnZXQgc2hvdWxkTGFiZWxGbG9hdCgpIHtcbiAgICByZXR1cm4gdGhpcy5mb2N1c2VkIHx8ICF0aGlzLmVtcHR5O1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5uZ0NvbnRyb2wgPSB0aGlzLmluamVjdG9yLmdldChOZ0NvbnRyb2wsIG51bGwpO1xuICAgIGlmICh0aGlzLm5nQ29udHJvbCAhPSBudWxsKSB7XG4gICAgICB0aGlzLm5nQ29udHJvbC52YWx1ZUFjY2Vzc29yID0gdGhpcztcbiAgICB9XG5cbiAgICAvLyBJZiBwcmVmaXggZGVmaW5lZCwgdXN1YWxseSB0aGlzIGlzIHVzZWQgZm9yIGEgY29kZSBzY2FubmVyLlxuICAgIC8vIFRoZSBnb2FsIGlzIHRvIHNlbGVjdCB0aGUgZW50aXR5IGluIGRpcmVjdCB3YXkuXG4gICAgaWYgKHRoaXMuX3ByZWZpeCkge1xuICAgICAgdGhpcy5zZWFyY2hGb3JtQ29udHJvbFxuICAgICAgICAudmFsdWVDaGFuZ2VzXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIGRlYm91bmNlVGltZSgzMDApLFxuICAgICAgICAgIGZpbHRlcih2YWx1ZSA9PiB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSxcbiAgICAgICAgICBmaWx0ZXIodmFsdWUgPT4gdmFsdWUuc3RhcnRzV2l0aCh0aGlzLl9wcmVmaXgpKSxcbiAgICAgICAgICB0YXAoKCkgPT4gdGhpcy52YWx1ZSA9IG51bGwpLFxuICAgICAgICAgIHRhcCgoKSA9PiB0aGlzLmlzTG9hZGluZyA9IHRydWUpLFxuICAgICAgICAgIG1hcCh2YWx1ZSA9PiB0aGlzLl9kYXRhU291cmNlLm9uUHJlcHJvY2Vzc1NlYXJjaFN0cmluZyh2YWx1ZSkpLFxuICAgICAgICAgIHN3aXRjaE1hcCh2YWx1ZSA9PiB0aGlzLl9kYXRhU291cmNlLm9uRmlsdGVyKHZhbHVlKSlcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKHJlc3VsdFNldCA9PiB7XG5cbiAgICAgICAgICBpZiAocmVzdWx0U2V0Lmxpc3QubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICB0aGlzLnZhbHVlID0gcmVzdWx0U2V0WzBdO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmZpbHRlcmVkU3RyaW5ncyA9IHJlc3VsdFNldC5saXN0O1xuICAgICAgICAgICAgdGhpcy5zZWFyY2hGb3JtQ29udHJvbC5wYXRjaFZhbHVlKHJlc3VsdFNldC5zZWFyY2hUZXJtLCB7ZW1pdEV2ZW50OiBmYWxzZX0pO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG5cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8gVGhpcyBpcyB0aGUgc2VhcmNoIGZ1bmN0aW9uYWxpdHkgd2hlbiBzZWFyY2ggYnkgaHVtYW4uXG4gICAgdGhpcy5zZWFyY2hGb3JtQ29udHJvbFxuICAgICAgLnZhbHVlQ2hhbmdlc1xuICAgICAgLnBpcGUoXG4gICAgICAgIGRlYm91bmNlVGltZSgzMDApLFxuICAgICAgICB0YXAodmFsdWUgPT4ge1xuICAgICAgICAgICAgdGhpcy5maWx0ZXJlZFN0cmluZ3MgPSBbXTtcbiAgICAgICAgICB9XG4gICAgICAgICksXG4gICAgICAgIGZpbHRlcih2YWx1ZSA9PiB2YWx1ZSAhPSBudWxsICYmIHZhbHVlLnRvU3RyaW5nKCkubGVuZ3RoID49IDEpLFxuICAgICAgICB0YXAoKCkgPT4gdGhpcy5pc0xvYWRpbmcgPSB0cnVlKSxcbiAgICAgICAgbWFwKHZhbHVlID0+IHRoaXMuX2RhdGFTb3VyY2Uub25QcmVwcm9jZXNzU2VhcmNoU3RyaW5nKHZhbHVlKSksXG4gICAgICAgIHRhcCh2YWx1ZSA9PiB0aGlzLnZhbHVlID0gdmFsdWUpLFxuICAgICAgICBzd2l0Y2hNYXAodmFsdWUgPT4gdGhpcy5fZGF0YVNvdXJjZS5vbkZpbHRlcih2YWx1ZSkpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKHJlc3VsdFNldCA9PiB7XG4gICAgICAgICAgdGhpcy5maWx0ZXJlZFN0cmluZ3MgPSByZXN1bHRTZXQubGlzdDtcbiAgICAgICAgICB0aGlzLnNlYXJjaEZvcm1Db250cm9sLnBhdGNoVmFsdWUocmVzdWx0U2V0LnNlYXJjaFRlcm0sIHtlbWl0RXZlbnQ6IGZhbHNlfSk7XG4gICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5mbS5zdG9wTW9uaXRvcmluZyh0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQpO1xuICB9XG5cbiAgbmdEb0NoZWNrKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLm5nQ29udHJvbCkge1xuICAgICAgdGhpcy5lcnJvclN0YXRlID0gdGhpcy5uZ0NvbnRyb2wuaW52YWxpZCAmJiB0aGlzLm5nQ29udHJvbC50b3VjaGVkO1xuICAgICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBjbGVhcigpIHtcbiAgICB0aGlzLmZpbHRlcmVkU3RyaW5ncyA9IFtdO1xuICAgIHRoaXMuc2VhcmNoRm9ybUNvbnRyb2wucmVzZXQobnVsbCk7XG4gIH1cblxuICBwdWJsaWMgZm9jdXMoKSB7XG4gICAgdGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0JykuZm9jdXMoKTtcbiAgfVxuXG4gIHB1YmxpYyBvbk9wdGlvblNlbGVjdGVkKGV2ZW50OiBNYXRBdXRvY29tcGxldGVTZWxlY3RlZEV2ZW50KSB7XG4gICAgdGhpcy52YWx1ZSA9IGV2ZW50Lm9wdGlvbi52YWx1ZTtcbiAgICB0aGlzLmZpbHRlcmVkU3RyaW5ncyA9IFtdO1xuICB9XG5cbiAgcHVibGljIG9uT3B0aW9uQWN0aXZhdGVkKGV2ZW50OiBNYXRBdXRvY29tcGxldGVBY3RpdmF0ZWRFdmVudCkge1xuICAgIHRoaXMuYWN0aXZhdGVkVmFsdWUgPSBldmVudC5vcHRpb24/LnZhbHVlO1xuICB9XG5cbiAgcHVibGljIG9uQXV0b0NvbXBsZXRlQ2xvc2VkKCkge1xuXG4gICAgaWYgKHRoaXMuYWN0aXZhdGVkVmFsdWUpIHtcblxuICAgICAgdGhpcy52YWx1ZSA9IHRoaXMuYWN0aXZhdGVkVmFsdWU7XG4gICAgICB0aGlzLmFjdGl2YXRlZFZhbHVlID0gbnVsbDtcblxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyByZXNldCgpIHtcbiAgICB0aGlzLnZhbHVlID0gbnVsbDtcbiAgfVxuXG4gIHB1YmxpYyBvbkZvY3VzT3V0KCkge1xuXG4gICAgaWYgKHRoaXMuZmlsdGVyZWRTdHJpbmdzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgdGhpcy5hY3RpdmF0ZWRWYWx1ZSA9IHRoaXMuZmlsdGVyZWRTdHJpbmdzWzBdO1xuICAgICAgdGhpcy52YWx1ZSA9IHRoaXMuZmlsdGVyZWRTdHJpbmdzWzBdO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvblRvdWNoZWQoKSB7XG5cbiAgICB0aGlzLl9vblRvdWNoZWQoKTtcbiAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5fcHJvcGFnYXRlQ2hhbmdlID0gZm47XG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cblxuICBwdWJsaWMgd3JpdGVWYWx1ZShvYmo6IGFueSk6IHZvaWQge1xuICAgIHRoaXMuY2xlYXIoKTtcbiAgICB0aGlzLnZhbHVlID0gb2JqO1xuICB9XG5cbiAgcHVibGljIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICB9XG5cbiAgcHVibGljIG9uQ29udGFpbmVyQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoKGV2ZW50LnRhcmdldCBhcyBFbGVtZW50KS50YWdOYW1lLnRvTG93ZXJDYXNlKCkgIT0gJ2lucHV0Jykge1xuICAgICAgdGhpcy5mb2N1cygpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzZXREZXNjcmliZWRCeUlkcyhpZHM6IHN0cmluZ1tdKTogdm9pZCB7XG4gICAgdGhpcy5kZXNjcmliZWRCeSA9IGlkcy5qb2luKCcgJyk7XG4gIH1cblxuICB2YWxpZGF0ZShjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XG4gICAgY29uc3Qgc2VsZWN0aW9uOiBhbnkgPSBjb250cm9sLnZhbHVlO1xuICAgIGlmICh0eXBlb2Ygc2VsZWN0aW9uID09PSAnc3RyaW5nJyAmJiAoPHN0cmluZz5zZWxlY3Rpb24pLmxlbmd0aCA8IDEpIHtcbiAgICAgIHJldHVybiB7aW5jb3JyZWN0OiB0cnVlfTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBwcml2YXRlIF9wcm9wYWdhdGVDaGFuZ2UgPSAoXzogYW55KSA9PiB7XG4gIH07XG5cbiAgcHJpdmF0ZSBfb25Ub3VjaGVkID0gKCkgPT4ge1xuICB9O1xufVxuIiwiPGlucHV0ICNpbnB1dCAoYmx1cik9XCJvblRvdWNoZWQoKVwiIChmb2N1c291dCk9XCJvbkZvY3VzT3V0KClcIiBbZm9ybUNvbnRyb2xdPVwic2VhcmNoRm9ybUNvbnRyb2xcIiBbbWF0QXV0b2NvbXBsZXRlXT1cImF1dG9cIlxuICAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiIG1hdElucHV0PlxuPG1hdC1hdXRvY29tcGxldGUgI2F1dG89XCJtYXRBdXRvY29tcGxldGVcIlxuICAgICAgICAgICAgICAgICAgKGNsb3NlZCk9XCJvbkF1dG9Db21wbGV0ZUNsb3NlZCgpXCIgKG9wdGlvbkFjdGl2YXRlZCk9XCJvbk9wdGlvbkFjdGl2YXRlZCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgIChvcHRpb25TZWxlY3RlZCk9XCJvbk9wdGlvblNlbGVjdGVkKCRldmVudClcIj5cbiAgPG1hdC1vcHRpb24gKm5nSWY9XCJpc0xvYWRpbmdcIiBjbGFzcz1cImlzLWxvYWRpbmdcIj5cbiAgICA8bWF0LXNwaW5uZXIgZGlhbWV0ZXI9XCI1MFwiPjwvbWF0LXNwaW5uZXI+XG4gIDwvbWF0LW9wdGlvbj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc0xvYWRpbmdcIj5cbiAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgc3RyIG9mIGZpbHRlcmVkU3RyaW5nc1wiIFt2YWx1ZV09XCJzdHJcIj5cbiAgICAgIHt7c3RyfX1cbiAgICA8L21hdC1vcHRpb24+XG4gIDwvbmctY29udGFpbmVyPlxuPC9tYXQtYXV0b2NvbXBsZXRlPlxuIl19
|