@meshmakers/shared-ui 2.1.17-0 → 3.1.25-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/esm2022/lib/breadcrumb/breadcrumb.module.mjs +22 -0
- package/esm2022/lib/breadcrumb/mat-breadcrumb/mat-breadcrumb.component.mjs +109 -0
- package/esm2022/lib/breadcrumb/model/breadcrumb.mjs +2 -0
- package/esm2022/lib/breadcrumb/services/breadcrumb.service.mjs +22 -0
- package/esm2022/lib/confirmation-dialog/confirmation-dialog.module.mjs +26 -0
- package/esm2022/lib/confirmation-dialog/confirmation-window/confirmation-window.component.mjs +75 -0
- package/esm2022/lib/confirmation-dialog/services/confirmation.service.mjs +69 -0
- package/esm2022/lib/ia-shared-ui/ia-autocomplete-input/ia-autocomplete-input.mjs +295 -0
- package/esm2022/lib/ia-shared-ui/ia-entity-select-input/ia-entity-select-input.component.mjs +288 -0
- package/esm2022/lib/ia-shared-ui/ia-multiple-entity-select-input/ia-multiple-entity-select-input.component.mjs +311 -0
- package/esm2022/lib/ia-shared-ui/ia-notification-bar/ia-notification-bar.component.mjs +39 -0
- package/esm2022/lib/ia-shared-ui/ia-shared-ui.module.mjs +74 -0
- package/esm2022/lib/ia-shared-ui/message-details/message-details.component.mjs +26 -0
- package/esm2022/lib/progress-notifier/progress-notifier.module.mjs +27 -0
- package/esm2022/lib/progress-notifier/progress-window/progress-window.component.mjs +35 -0
- package/esm2022/lib/progress-notifier/services/progress-notifier.service.mjs +63 -0
- package/esm2022/lib/progress-notifier/shared/progressValue.mjs +9 -0
- package/esm2022/lib/shared/abstractDetailsComponent.mjs +53 -0
- package/esm2022/lib/shared/commonValidators.mjs +36 -0
- package/esm2022/public-api.mjs +19 -0
- package/fesm2022/meshmakers-shared-ui.mjs +1499 -0
- package/fesm2022/meshmakers-shared-ui.mjs.map +1 -0
- package/lib/breadcrumb/breadcrumb.module.d.ts +12 -0
- package/lib/breadcrumb/mat-breadcrumb/mat-breadcrumb.component.d.ts +21 -0
- package/lib/breadcrumb/model/breadcrumb.d.ts +4 -0
- package/lib/breadcrumb/services/breadcrumb.service.d.ts +11 -0
- package/lib/confirmation-dialog/confirmation-dialog.module.d.ts +2 -3
- package/lib/confirmation-dialog/confirmation-window/confirmation-window.component.d.ts +3 -3
- package/lib/confirmation-dialog/services/confirmation.service.d.ts +4 -4
- package/lib/ia-shared-ui/ia-autocomplete-input/ia-autocomplete-input.d.ts +13 -13
- package/lib/ia-shared-ui/ia-entity-select-input/ia-entity-select-input.component.d.ts +12 -12
- package/lib/ia-shared-ui/ia-multiple-entity-select-input/ia-multiple-entity-select-input.component.d.ts +16 -16
- package/lib/ia-shared-ui/ia-notification-bar/ia-notification-bar.component.d.ts +4 -4
- package/lib/ia-shared-ui/message-details/message-details.component.d.ts +2 -2
- package/lib/progress-notifier/progress-notifier.module.d.ts +3 -4
- package/lib/progress-notifier/progress-window/progress-window.component.d.ts +2 -2
- package/lib/progress-notifier/services/progress-notifier.service.d.ts +2 -2
- package/lib/shared/abstractDetailsComponent.d.ts +8 -4
- package/lib/shared/commonValidators.d.ts +2 -4
- package/package.json +6 -12
- package/public-api.d.ts +3 -0
- package/esm2020/lib/confirmation-dialog/confirmation-dialog.module.mjs +0 -40
- package/esm2020/lib/confirmation-dialog/confirmation-window/confirmation-window.component.mjs +0 -69
- package/esm2020/lib/confirmation-dialog/services/confirmation.service.mjs +0 -68
- package/esm2020/lib/ia-shared-ui/ia-autocomplete-input/ia-autocomplete-input.mjs +0 -276
- package/esm2020/lib/ia-shared-ui/ia-entity-select-input/ia-entity-select-input.component.mjs +0 -276
- package/esm2020/lib/ia-shared-ui/ia-multiple-entity-select-input/ia-multiple-entity-select-input.component.mjs +0 -300
- package/esm2020/lib/ia-shared-ui/ia-notification-bar/ia-notification-bar.component.mjs +0 -36
- package/esm2020/lib/ia-shared-ui/ia-shared-ui.module.mjs +0 -88
- package/esm2020/lib/ia-shared-ui/message-details/message-details.component.mjs +0 -24
- package/esm2020/lib/progress-notifier/progress-notifier.module.mjs +0 -44
- package/esm2020/lib/progress-notifier/progress-window/progress-window.component.mjs +0 -34
- package/esm2020/lib/progress-notifier/services/progress-notifier.service.mjs +0 -59
- package/esm2020/lib/progress-notifier/shared/progressValue.mjs +0 -7
- package/esm2020/lib/shared/abstractDetailsComponent.mjs +0 -38
- package/esm2020/lib/shared/commonValidators.mjs +0 -36
- package/esm2020/public-api.mjs +0 -16
- package/fesm2015/meshmakers-shared-ui.mjs +0 -1352
- package/fesm2015/meshmakers-shared-ui.mjs.map +0 -1
- package/fesm2020/meshmakers-shared-ui.mjs +0 -1329
- package/fesm2020/meshmakers-shared-ui.mjs.map +0 -1
- /package/{esm2020 → esm2022}/lib/confirmation-dialog/shared/confirmation.mjs +0 -0
- /package/{esm2020 → esm2022}/meshmakers-shared-ui.mjs +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { OnInit } from '@angular/core';
|
|
2
|
-
import { Observable } from
|
|
3
|
-
import { ProgressValue } from
|
|
2
|
+
import { Observable } from 'rxjs';
|
|
3
|
+
import { ProgressValue } from '../shared/progressValue';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
export interface ProgressWindowData {
|
|
6
6
|
title: string;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { MatDialog } from
|
|
1
|
+
import { MatDialog } from '@angular/material/dialog';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
export declare class ProgressNotifierService {
|
|
4
|
-
private dialog;
|
|
4
|
+
private readonly dialog;
|
|
5
5
|
private readonly _currentProgressValue;
|
|
6
6
|
private currentDialogRef;
|
|
7
7
|
constructor(dialog: MatDialog);
|
|
@@ -1,9 +1,13 @@
|
|
|
1
|
-
import { FormGroup } from
|
|
1
|
+
import { FormGroup } from '@angular/forms';
|
|
2
2
|
export declare abstract class AbstractDetailsComponent<TEntity> {
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
private _loading;
|
|
4
|
+
private readonly _ownerForm;
|
|
5
|
+
private _entity;
|
|
5
6
|
protected constructor(formGroup: FormGroup);
|
|
6
|
-
|
|
7
|
+
get loading(): boolean;
|
|
8
|
+
set loading(value: boolean);
|
|
9
|
+
get entity(): TEntity | null;
|
|
10
|
+
set entity(value: TEntity | null);
|
|
7
11
|
get ownerForm(): FormGroup;
|
|
8
12
|
get isLoaded(): boolean;
|
|
9
13
|
hasError: (controlName: string, errorName: string) => boolean;
|
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
import { ValidatorFn } from
|
|
2
|
-
export
|
|
3
|
-
(value: TValue): boolean;
|
|
4
|
-
}
|
|
1
|
+
import { ValidatorFn } from '@angular/forms';
|
|
2
|
+
export type CompareValueFn<TValue> = (value: TValue) => boolean;
|
|
5
3
|
export declare class CommonValidators {
|
|
6
4
|
static phoneNumber(): ValidatorFn;
|
|
7
5
|
static httpUri(): ValidatorFn;
|
package/package.json
CHANGED
|
@@ -1,19 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@meshmakers/shared-ui",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "3.1.25-0",
|
|
4
4
|
"peerDependencies": {
|
|
5
5
|
"@angular/common": "^15.2.0",
|
|
6
6
|
"@angular/core": "^15.2.0"
|
|
7
7
|
},
|
|
8
8
|
"dependencies": {
|
|
9
|
-
"tslib": "^2.
|
|
9
|
+
"tslib": "^2.6.2"
|
|
10
10
|
},
|
|
11
11
|
"sideEffects": false,
|
|
12
|
-
"module": "
|
|
13
|
-
"es2020": "fesm2020/meshmakers-shared-ui.mjs",
|
|
14
|
-
"esm2020": "esm2020/meshmakers-shared-ui.mjs",
|
|
15
|
-
"fesm2020": "fesm2020/meshmakers-shared-ui.mjs",
|
|
16
|
-
"fesm2015": "fesm2015/meshmakers-shared-ui.mjs",
|
|
12
|
+
"module": "fesm2022/meshmakers-shared-ui.mjs",
|
|
17
13
|
"typings": "index.d.ts",
|
|
18
14
|
"exports": {
|
|
19
15
|
"./package.json": {
|
|
@@ -21,11 +17,9 @@
|
|
|
21
17
|
},
|
|
22
18
|
".": {
|
|
23
19
|
"types": "./index.d.ts",
|
|
24
|
-
"
|
|
25
|
-
"
|
|
26
|
-
"
|
|
27
|
-
"node": "./fesm2015/meshmakers-shared-ui.mjs",
|
|
28
|
-
"default": "./fesm2020/meshmakers-shared-ui.mjs"
|
|
20
|
+
"esm2022": "./esm2022/meshmakers-shared-ui.mjs",
|
|
21
|
+
"esm": "./esm2022/meshmakers-shared-ui.mjs",
|
|
22
|
+
"default": "./fesm2022/meshmakers-shared-ui.mjs"
|
|
29
23
|
}
|
|
30
24
|
}
|
|
31
25
|
}
|
package/public-api.d.ts
CHANGED
|
@@ -10,3 +10,6 @@ export * from './lib/confirmation-dialog/services/confirmation.service';
|
|
|
10
10
|
export * from './lib/confirmation-dialog/shared/confirmation';
|
|
11
11
|
export * from './lib/shared/commonValidators';
|
|
12
12
|
export * from './lib/shared/abstractDetailsComponent';
|
|
13
|
+
export * from './lib/breadcrumb/breadcrumb.module';
|
|
14
|
+
export * from './lib/breadcrumb/mat-breadcrumb/mat-breadcrumb.component';
|
|
15
|
+
export * from './lib/breadcrumb/services/breadcrumb.service';
|
|
@@ -1,40 +0,0 @@
|
|
|
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: "15.2.8", ngImport: i0, type: ConfirmationDialogModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
20
|
-
ConfirmationDialogModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.8", ngImport: i0, type: ConfirmationDialogModule, declarations: [ConfirmationWindowComponent], imports: [CommonModule,
|
|
21
|
-
MatDialogModule,
|
|
22
|
-
FlexLayoutModule,
|
|
23
|
-
MatButtonModule] });
|
|
24
|
-
ConfirmationDialogModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: ConfirmationDialogModule, imports: [CommonModule,
|
|
25
|
-
MatDialogModule,
|
|
26
|
-
FlexLayoutModule,
|
|
27
|
-
MatButtonModule] });
|
|
28
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", 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==
|
package/esm2020/lib/confirmation-dialog/confirmation-window/confirmation-window.component.mjs
DELETED
|
@@ -1,69 +0,0 @@
|
|
|
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
|
-
this.button2Text = null;
|
|
14
|
-
this.button2Result = null;
|
|
15
|
-
this.button3Text = null;
|
|
16
|
-
this.button3Result = null;
|
|
17
|
-
if (data.dialogType === DialogType.OkCancel) {
|
|
18
|
-
this.button1Text = "OK";
|
|
19
|
-
this.button1Result = ButtonTypes.Ok;
|
|
20
|
-
this.button2Text = "Cancel";
|
|
21
|
-
this.button2Result = ButtonTypes.Cancel;
|
|
22
|
-
}
|
|
23
|
-
else if (data.dialogType === DialogType.YesNoCancel) {
|
|
24
|
-
this.button1Text = "Yes";
|
|
25
|
-
this.button1Result = ButtonTypes.Yes;
|
|
26
|
-
this.button2Text = "No";
|
|
27
|
-
this.button2Result = ButtonTypes.No;
|
|
28
|
-
this.button3Text = "Cancel";
|
|
29
|
-
this.button3Result = ButtonTypes.Cancel;
|
|
30
|
-
}
|
|
31
|
-
else if (data.dialogType === DialogType.Ok) {
|
|
32
|
-
this.button1Text = "OK";
|
|
33
|
-
this.button1Result = ButtonTypes.Ok;
|
|
34
|
-
}
|
|
35
|
-
else {
|
|
36
|
-
this.button1Text = "Yes";
|
|
37
|
-
this.button1Result = ButtonTypes.Yes;
|
|
38
|
-
this.button2Text = "No";
|
|
39
|
-
this.button2Result = ButtonTypes.No;
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
ngOnInit() {
|
|
43
|
-
}
|
|
44
|
-
onButton1() {
|
|
45
|
-
this.dialogRef.close({
|
|
46
|
-
result: this.button1Result
|
|
47
|
-
});
|
|
48
|
-
}
|
|
49
|
-
onButton2() {
|
|
50
|
-
this.dialogRef.close({
|
|
51
|
-
result: this.button2Result
|
|
52
|
-
});
|
|
53
|
-
}
|
|
54
|
-
onButton3() {
|
|
55
|
-
this.dialogRef.close({
|
|
56
|
-
result: this.button3Result
|
|
57
|
-
});
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
ConfirmationWindowComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: ConfirmationWindowComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
|
|
61
|
-
ConfirmationWindowComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", 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-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }] });
|
|
62
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: ConfirmationWindowComponent, decorators: [{
|
|
63
|
-
type: Component,
|
|
64
|
-
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" }]
|
|
65
|
-
}], ctorParameters: function () { return [{ type: i1.MatDialogRef }, { type: undefined, decorators: [{
|
|
66
|
-
type: Inject,
|
|
67
|
-
args: [MAT_DIALOG_DATA]
|
|
68
|
-
}] }]; } });
|
|
69
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlybWF0aW9uLXdpbmRvdy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZXNobWFrZXJzL3NoYXJlZC11aS9zcmMvbGliL2NvbmZpcm1hdGlvbi1kaWFsb2cvY29uZmlybWF0aW9uLXdpbmRvdy9jb25maXJtYXRpb24td2luZG93LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21lc2htYWtlcnMvc2hhcmVkLXVpL3NyYy9saWIvY29uZmlybWF0aW9uLWRpYWxvZy9jb25maXJtYXRpb24td2luZG93L2NvbmZpcm1hdGlvbi13aW5kb3cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxNQUFNLEVBQVMsTUFBTSxlQUFlLENBQUM7QUFDeEQsT0FBTyxFQUFDLGVBQWUsRUFBZSxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZFLE9BQU8sRUFBQyxXQUFXLEVBQW9ELFVBQVUsRUFBQyxNQUFNLHdCQUF3QixDQUFDOzs7Ozs7QUFPakgsTUFBTSxPQUFPLDJCQUEyQjtJQVN0QyxZQUFvQixTQUFvRCxFQUFrQyxJQUE0QjtRQUFsSCxjQUFTLEdBQVQsU0FBUyxDQUEyQztRQUFrQyxTQUFJLEdBQUosSUFBSSxDQUF3QjtRQUVwSSxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztRQUN4QixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztRQUMxQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztRQUN4QixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztRQUUxQixJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssVUFBVSxDQUFDLFFBQVEsRUFBRTtZQUMzQyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztZQUN4QixJQUFJLENBQUMsYUFBYSxHQUFHLFdBQVcsQ0FBQyxFQUFFLENBQUM7WUFDcEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxRQUFRLENBQUM7WUFDNUIsSUFBSSxDQUFDLGFBQWEsR0FBRyxXQUFXLENBQUMsTUFBTSxDQUFDO1NBRXpDO2FBQU0sSUFBSSxJQUFJLENBQUMsVUFBVSxLQUFLLFVBQVUsQ0FBQyxXQUFXLEVBQUU7WUFDckQsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7WUFDekIsSUFBSSxDQUFDLGFBQWEsR0FBRyxXQUFXLENBQUMsR0FBRyxDQUFDO1lBQ3JDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxhQUFhLEdBQUcsV0FBVyxDQUFDLEVBQUUsQ0FBQztZQUNwQyxJQUFJLENBQUMsV0FBVyxHQUFHLFFBQVEsQ0FBQztZQUM1QixJQUFJLENBQUMsYUFBYSxHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQUM7U0FDekM7YUFBTSxJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssVUFBVSxDQUFDLEVBQUUsRUFBRTtZQUM1QyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztZQUN4QixJQUFJLENBQUMsYUFBYSxHQUFHLFdBQVcsQ0FBQyxFQUFFLENBQUM7U0FDckM7YUFBTTtZQUNMLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1lBQ3pCLElBQUksQ0FBQyxhQUFhLEdBQUcsV0FBVyxDQUFDLEdBQUcsQ0FBQztZQUNyQyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztZQUN4QixJQUFJLENBQUMsYUFBYSxHQUFHLFdBQVcsQ0FBQyxFQUFFLENBQUM7U0FDckM7SUFFSCxDQUFDO0lBRUQsUUFBUTtJQUVSLENBQUM7SUFFRCxTQUFTO1FBRVAsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQTJCO1lBQzdDLE1BQU0sRUFBRSxJQUFJLENBQUMsYUFBYTtTQUMzQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsU0FBUztRQUNQLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUEyQjtZQUM3QyxNQUFNLEVBQUUsSUFBSSxDQUFDLGFBQWE7U0FDM0IsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFNBQVM7UUFDUCxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBMkI7WUFDN0MsTUFBTSxFQUFFLElBQUksQ0FBQyxhQUFhO1NBQzNCLENBQUMsQ0FBQztJQUNMLENBQUM7O3dIQTlEVSwyQkFBMkIsOENBUzRDLGVBQWU7NEdBVHRGLDJCQUEyQix5RUNUeEMsdWFBT0E7MkZERWEsMkJBQTJCO2tCQUx2QyxTQUFTOytCQUNFLG1DQUFtQzs7MEJBYThCLE1BQU07MkJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBJbmplY3QsIE9uSW5pdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge01BVF9ESUFMT0dfREFUQSwgTWF0RGlhbG9nUmVmfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nXCI7XG5pbXBvcnQge0J1dHRvblR5cGVzLCBDb25maXJtYXRpb25XaW5kb3dEYXRhLCBDb25maXJtYXRpb25XaW5kb3dSZXN1bHQsIERpYWxvZ1R5cGV9IGZyb20gXCIuLi9zaGFyZWQvY29uZmlybWF0aW9uXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1zaGFyZWQtdWktY29uZmlybWF0aW9uLXdpbmRvdycsXG4gIHRlbXBsYXRlVXJsOiAnLi9jb25maXJtYXRpb24td2luZG93LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY29uZmlybWF0aW9uLXdpbmRvdy5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQ29uZmlybWF0aW9uV2luZG93Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBidXR0b24xVGV4dDogc3RyaW5nO1xuICBidXR0b24xUmVzdWx0OiBCdXR0b25UeXBlcztcbiAgYnV0dG9uMlRleHQ6IHN0cmluZyB8IG51bGw7XG4gIGJ1dHRvbjJSZXN1bHQ6IEJ1dHRvblR5cGVzIHwgbnVsbDtcbiAgYnV0dG9uM1RleHQ6IHN0cmluZyB8IG51bGw7XG4gIGJ1dHRvbjNSZXN1bHQ6IEJ1dHRvblR5cGVzIHwgbnVsbDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPENvbmZpcm1hdGlvbldpbmRvd0NvbXBvbmVudD4sIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgZGF0YTogQ29uZmlybWF0aW9uV2luZG93RGF0YSkge1xuXG4gICAgdGhpcy5idXR0b24yVGV4dCA9IG51bGw7XG4gICAgdGhpcy5idXR0b24yUmVzdWx0ID0gbnVsbDtcbiAgICB0aGlzLmJ1dHRvbjNUZXh0ID0gbnVsbDtcbiAgICB0aGlzLmJ1dHRvbjNSZXN1bHQgPSBudWxsO1xuXG4gICAgaWYgKGRhdGEuZGlhbG9nVHlwZSA9PT0gRGlhbG9nVHlwZS5Pa0NhbmNlbCkge1xuICAgICAgdGhpcy5idXR0b24xVGV4dCA9IFwiT0tcIjtcbiAgICAgIHRoaXMuYnV0dG9uMVJlc3VsdCA9IEJ1dHRvblR5cGVzLk9rO1xuICAgICAgdGhpcy5idXR0b24yVGV4dCA9IFwiQ2FuY2VsXCI7XG4gICAgICB0aGlzLmJ1dHRvbjJSZXN1bHQgPSBCdXR0b25UeXBlcy5DYW5jZWw7XG5cbiAgICB9IGVsc2UgaWYgKGRhdGEuZGlhbG9nVHlwZSA9PT0gRGlhbG9nVHlwZS5ZZXNOb0NhbmNlbCkge1xuICAgICAgdGhpcy5idXR0b24xVGV4dCA9IFwiWWVzXCI7XG4gICAgICB0aGlzLmJ1dHRvbjFSZXN1bHQgPSBCdXR0b25UeXBlcy5ZZXM7XG4gICAgICB0aGlzLmJ1dHRvbjJUZXh0ID0gXCJOb1wiO1xuICAgICAgdGhpcy5idXR0b24yUmVzdWx0ID0gQnV0dG9uVHlwZXMuTm87XG4gICAgICB0aGlzLmJ1dHRvbjNUZXh0ID0gXCJDYW5jZWxcIjtcbiAgICAgIHRoaXMuYnV0dG9uM1Jlc3VsdCA9IEJ1dHRvblR5cGVzLkNhbmNlbDtcbiAgICB9IGVsc2UgaWYgKGRhdGEuZGlhbG9nVHlwZSA9PT0gRGlhbG9nVHlwZS5Paykge1xuICAgICAgdGhpcy5idXR0b24xVGV4dCA9IFwiT0tcIjtcbiAgICAgIHRoaXMuYnV0dG9uMVJlc3VsdCA9IEJ1dHRvblR5cGVzLk9rO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmJ1dHRvbjFUZXh0ID0gXCJZZXNcIjtcbiAgICAgIHRoaXMuYnV0dG9uMVJlc3VsdCA9IEJ1dHRvblR5cGVzLlllcztcbiAgICAgIHRoaXMuYnV0dG9uMlRleHQgPSBcIk5vXCI7XG4gICAgICB0aGlzLmJ1dHRvbjJSZXN1bHQgPSBCdXR0b25UeXBlcy5ObztcbiAgICB9XG5cbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuXG4gIH1cblxuICBvbkJ1dHRvbjEoKSB7XG5cbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSg8Q29uZmlybWF0aW9uV2luZG93UmVzdWx0PntcbiAgICAgIHJlc3VsdDogdGhpcy5idXR0b24xUmVzdWx0XG4gICAgfSk7XG4gIH1cblxuICBvbkJ1dHRvbjIoKSB7XG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoPENvbmZpcm1hdGlvbldpbmRvd1Jlc3VsdD57XG4gICAgICByZXN1bHQ6IHRoaXMuYnV0dG9uMlJlc3VsdFxuICAgIH0pO1xuICB9XG5cbiAgb25CdXR0b24zKCkge1xuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKDxDb25maXJtYXRpb25XaW5kb3dSZXN1bHQ+e1xuICAgICAgcmVzdWx0OiB0aGlzLmJ1dHRvbjNSZXN1bHRcbiAgICB9KTtcbiAgfVxufVxuIiwiPGgxIG1hdC1kaWFsb2ctdGl0bGU+e3tkYXRhLnRpdGxlfX08L2gxPlxuPGRpdiBtYXQtZGlhbG9nLWNvbnRlbnQ+e3tkYXRhLm1lc3NhZ2V9fTwvZGl2PlxuPGRpdiBmeExheW91dEFsaWduPVwiZW5kXCIgbWF0LWRpYWxvZy1hY3Rpb25zPlxuICA8YnV0dG9uIChjbGljayk9XCJvbkJ1dHRvbjEoKVwiIGNvbG9yPVwicHJpbWFyeVwiIG1hdC1idXR0b24+e3tidXR0b24xVGV4dH19PC9idXR0b24+XG4gIDxidXR0b24gKGNsaWNrKT1cIm9uQnV0dG9uMigpXCIgKm5nSWY9XCJidXR0b24yVGV4dFwiIG1hdC1idXR0b24+e3tidXR0b24yVGV4dH19PC9idXR0b24+XG4gIDxidXR0b24gKGNsaWNrKT1cIm9uQnV0dG9uMygpXCIgKm5nSWY9XCJidXR0b24zVGV4dFwiIG1hdC1idXR0b24+e3tidXR0b24zVGV4dH19PC9idXR0b24+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -1,68 +0,0 @@
|
|
|
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: "15.2.8", ngImport: i0, type: ConfirmationService, deps: [{ token: i1.MatDialog }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
61
|
-
ConfirmationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: ConfirmationService, providedIn: 'root' });
|
|
62
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlybWF0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZXNobWFrZXJzL3NoYXJlZC11aS9zcmMvbGliL2NvbmZpcm1hdGlvbi1kaWFsb2cvc2VydmljZXMvY29uZmlybWF0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUd6QyxPQUFPLEVBQUMsMkJBQTJCLEVBQUMsTUFBTSxzREFBc0QsQ0FBQztBQUNqRyxPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkMsT0FBTyxFQUFDLFdBQVcsRUFBb0QsVUFBVSxFQUFDLE1BQU0sd0JBQXdCLENBQUM7OztBQUtqSCxNQUFNLE9BQU8sbUJBQW1CO0lBRTlCLFlBQW9CLE1BQWlCO1FBQWpCLFdBQU0sR0FBTixNQUFNLENBQVc7SUFDckMsQ0FBQztJQUVELDJCQUEyQixDQUFDLEtBQWEsRUFBRSxPQUFlO1FBRXhELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFnRiwyQkFBMkIsRUFBRTtZQUM3SSxLQUFLLEVBQUUsTUFBTTtZQUNiLFFBQVEsRUFBRSxNQUFNO1lBQ2hCLElBQUksRUFBMEI7Z0JBQzVCLEtBQUssRUFBRSxLQUFLO2dCQUNaLE9BQU8sRUFBRSxPQUFPO2dCQUNoQixVQUFVLEVBQUUsVUFBVSxDQUFDLEtBQUs7YUFDN0I7U0FDRixDQUFDLENBQUM7UUFFSCxPQUFPLFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLE1BQU0sSUFBSSxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUN0RixDQUFDO0lBRUQsaUNBQWlDLENBQUMsS0FBYSxFQUFFLE9BQWU7UUFFOUQsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQWdGLDJCQUEyQixFQUFFO1lBQzdJLEtBQUssRUFBRSxNQUFNO1lBQ2IsUUFBUSxFQUFFLE1BQU07WUFDaEIsSUFBSSxFQUEwQjtnQkFDNUIsS0FBSyxFQUFFLEtBQUs7Z0JBQ1osT0FBTyxFQUFFLE9BQU87Z0JBQ2hCLFVBQVUsRUFBRSxVQUFVLENBQUMsV0FBVzthQUNuQztTQUNGLENBQUMsQ0FBQztRQUVILE9BQU8sU0FBUyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ2pDLENBQUM7SUFFRCw4QkFBOEIsQ0FBQyxLQUFhLEVBQUUsT0FBZTtRQUUzRCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBZ0YsMkJBQTJCLEVBQUU7WUFDN0ksS0FBSyxFQUFFLE1BQU07WUFDYixRQUFRLEVBQUUsTUFBTTtZQUNoQixJQUFJLEVBQTBCO2dCQUM1QixLQUFLLEVBQUUsS0FBSztnQkFDWixPQUFPLEVBQUUsT0FBTztnQkFDaEIsVUFBVSxFQUFFLFVBQVUsQ0FBQyxRQUFRO2FBQ2hDO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsT0FBTyxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxNQUFNLElBQUksV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDckYsQ0FBQztJQUVELFlBQVksQ0FBQyxLQUFhLEVBQUUsT0FBZTtRQUV6QyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBZ0YsMkJBQTJCLEVBQUU7WUFDN0ksS0FBSyxFQUFFLE1BQU07WUFDYixRQUFRLEVBQUUsTUFBTTtZQUNoQixJQUFJLEVBQTBCO2dCQUM1QixLQUFLLEVBQUUsS0FBSztnQkFDWixPQUFPLEVBQUUsT0FBTztnQkFDaEIsVUFBVSxFQUFFLFVBQVUsQ0FBQyxFQUFFO2FBQzFCO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsT0FBTyxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxNQUFNLElBQUksV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDckYsQ0FBQzs7Z0hBL0RVLG1CQUFtQjtvSEFBbkIsbUJBQW1CLGNBRmxCLE1BQU07MkZBRVAsbUJBQW1CO2tCQUgvQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQge01hdERpYWxvZ30gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2RpYWxvZ1wiO1xuaW1wb3J0IHtDb25maXJtYXRpb25XaW5kb3dDb21wb25lbnR9IGZyb20gXCIuLi9jb25maXJtYXRpb24td2luZG93L2NvbmZpcm1hdGlvbi13aW5kb3cuY29tcG9uZW50XCI7XG5pbXBvcnQge21hcH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XG5pbXBvcnQge0J1dHRvblR5cGVzLCBDb25maXJtYXRpb25XaW5kb3dEYXRhLCBDb25maXJtYXRpb25XaW5kb3dSZXN1bHQsIERpYWxvZ1R5cGV9IGZyb20gXCIuLi9zaGFyZWQvY29uZmlybWF0aW9uXCI7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIENvbmZpcm1hdGlvblNlcnZpY2Uge1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZGlhbG9nOiBNYXREaWFsb2cpIHtcbiAgfVxuXG4gIHNob3dZZXNOb0NvbmZpcm1hdGlvbkRpYWxvZyh0aXRsZTogc3RyaW5nLCBtZXNzYWdlOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcblxuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW48Q29uZmlybWF0aW9uV2luZG93Q29tcG9uZW50LCBDb25maXJtYXRpb25XaW5kb3dEYXRhLCBDb25maXJtYXRpb25XaW5kb3dSZXN1bHQ+KENvbmZpcm1hdGlvbldpbmRvd0NvbXBvbmVudCwge1xuICAgICAgd2lkdGg6ICc1MHZ3JyxcbiAgICAgIG1heFdpZHRoOiAnNTB2dycsXG4gICAgICBkYXRhOiA8Q29uZmlybWF0aW9uV2luZG93RGF0YT57XG4gICAgICAgIHRpdGxlOiB0aXRsZSxcbiAgICAgICAgbWVzc2FnZTogbWVzc2FnZSxcbiAgICAgICAgZGlhbG9nVHlwZTogRGlhbG9nVHlwZS5ZZXNOb1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnBpcGUobWFwKHZhbHVlID0+IHZhbHVlPy5yZXN1bHQgPT0gQnV0dG9uVHlwZXMuWWVzKSk7XG4gIH1cblxuICBzaG93WWVzTm9DYW5jZWxDb25maXJtYXRpb25EaWFsb2codGl0bGU6IHN0cmluZywgbWVzc2FnZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxDb25maXJtYXRpb25XaW5kb3dSZXN1bHQgfCB1bmRlZmluZWQ+IHtcblxuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW48Q29uZmlybWF0aW9uV2luZG93Q29tcG9uZW50LCBDb25maXJtYXRpb25XaW5kb3dEYXRhLCBDb25maXJtYXRpb25XaW5kb3dSZXN1bHQ+KENvbmZpcm1hdGlvbldpbmRvd0NvbXBvbmVudCwge1xuICAgICAgd2lkdGg6ICc1MHZ3JyxcbiAgICAgIG1heFdpZHRoOiAnNTB2dycsXG4gICAgICBkYXRhOiA8Q29uZmlybWF0aW9uV2luZG93RGF0YT57XG4gICAgICAgIHRpdGxlOiB0aXRsZSxcbiAgICAgICAgbWVzc2FnZTogbWVzc2FnZSxcbiAgICAgICAgZGlhbG9nVHlwZTogRGlhbG9nVHlwZS5ZZXNOb0NhbmNlbFxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpO1xuICB9XG5cbiAgc2hvd09rQ2FuY2VsQ29uZmlybWF0aW9uRGlhbG9nKHRpdGxlOiBzdHJpbmcsIG1lc3NhZ2U6IHN0cmluZyk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuXG4gICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbjxDb25maXJtYXRpb25XaW5kb3dDb21wb25lbnQsIENvbmZpcm1hdGlvbldpbmRvd0RhdGEsIENvbmZpcm1hdGlvbldpbmRvd1Jlc3VsdD4oQ29uZmlybWF0aW9uV2luZG93Q29tcG9uZW50LCB7XG4gICAgICB3aWR0aDogJzUwdncnLFxuICAgICAgbWF4V2lkdGg6ICc1MHZ3JyxcbiAgICAgIGRhdGE6IDxDb25maXJtYXRpb25XaW5kb3dEYXRhPntcbiAgICAgICAgdGl0bGU6IHRpdGxlLFxuICAgICAgICBtZXNzYWdlOiBtZXNzYWdlLFxuICAgICAgICBkaWFsb2dUeXBlOiBEaWFsb2dUeXBlLk9rQ2FuY2VsXG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkucGlwZShtYXAodmFsdWUgPT4gdmFsdWU/LnJlc3VsdCA9PSBCdXR0b25UeXBlcy5PaykpO1xuICB9XG5cbiAgc2hvd09rRGlhbG9nKHRpdGxlOiBzdHJpbmcsIG1lc3NhZ2U6IHN0cmluZyk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuXG4gICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbjxDb25maXJtYXRpb25XaW5kb3dDb21wb25lbnQsIENvbmZpcm1hdGlvbldpbmRvd0RhdGEsIENvbmZpcm1hdGlvbldpbmRvd1Jlc3VsdD4oQ29uZmlybWF0aW9uV2luZG93Q29tcG9uZW50LCB7XG4gICAgICB3aWR0aDogJzUwdncnLFxuICAgICAgbWF4V2lkdGg6ICc1MHZ3JyxcbiAgICAgIGRhdGE6IDxDb25maXJtYXRpb25XaW5kb3dEYXRhPntcbiAgICAgICAgdGl0bGU6IHRpdGxlLFxuICAgICAgICBtZXNzYWdlOiBtZXNzYWdlLFxuICAgICAgICBkaWFsb2dUeXBlOiBEaWFsb2dUeXBlLk9rXG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkucGlwZShtYXAodmFsdWUgPT4gdmFsdWU/LnJlc3VsdCA9PSBCdXR0b25UeXBlcy5PaykpO1xuICB9XG5cbn1cbiJdfQ==
|
|
@@ -1,276 +0,0 @@
|
|
|
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 { of, 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.ngControl = null;
|
|
32
|
-
this.errorState = false;
|
|
33
|
-
this._selectedString = null;
|
|
34
|
-
this.inputField = null;
|
|
35
|
-
this._dataSource = null;
|
|
36
|
-
this._placeholder = "";
|
|
37
|
-
this._prefix = "";
|
|
38
|
-
this.searchFormControl = new FormControl();
|
|
39
|
-
this.isLoading = false;
|
|
40
|
-
this._disabled = false;
|
|
41
|
-
this.focused = false;
|
|
42
|
-
fm.monitor(elRef.nativeElement, true).subscribe(origin => {
|
|
43
|
-
this.focused = !!origin;
|
|
44
|
-
this.stateChanges.next();
|
|
45
|
-
});
|
|
46
|
-
}
|
|
47
|
-
get dataSource() {
|
|
48
|
-
return this._dataSource;
|
|
49
|
-
}
|
|
50
|
-
set dataSource(value) {
|
|
51
|
-
this._dataSource = value;
|
|
52
|
-
}
|
|
53
|
-
get disabled() {
|
|
54
|
-
return this._disabled;
|
|
55
|
-
}
|
|
56
|
-
set disabled(dis) {
|
|
57
|
-
this._disabled = coerceBooleanProperty(dis);
|
|
58
|
-
this._disabled ? this.searchFormControl.disable() : this.searchFormControl.enable();
|
|
59
|
-
this.stateChanges.next();
|
|
60
|
-
}
|
|
61
|
-
get placeholder() {
|
|
62
|
-
return this._placeholder;
|
|
63
|
-
}
|
|
64
|
-
set placeholder(plh) {
|
|
65
|
-
this._placeholder = plh;
|
|
66
|
-
this.stateChanges.next();
|
|
67
|
-
}
|
|
68
|
-
get required() {
|
|
69
|
-
return this._required;
|
|
70
|
-
}
|
|
71
|
-
set required(req) {
|
|
72
|
-
this._required = coerceBooleanProperty(req);
|
|
73
|
-
if (this.inputField) {
|
|
74
|
-
this.inputField.required = this._required;
|
|
75
|
-
}
|
|
76
|
-
this.stateChanges.next();
|
|
77
|
-
}
|
|
78
|
-
get prefix() {
|
|
79
|
-
return this._prefix;
|
|
80
|
-
}
|
|
81
|
-
set prefix(value) {
|
|
82
|
-
if (value !== this._prefix) {
|
|
83
|
-
this._prefix = value;
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
get value() {
|
|
87
|
-
return this._selectedString;
|
|
88
|
-
}
|
|
89
|
-
set value(value) {
|
|
90
|
-
if (value !== this._selectedString) {
|
|
91
|
-
this._selectedString = value;
|
|
92
|
-
this.searchFormControl.setValue(value);
|
|
93
|
-
this.valueChange.emit(value);
|
|
94
|
-
this._propagateChange(this._selectedString);
|
|
95
|
-
this.stateChanges.next();
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
get empty() {
|
|
99
|
-
let n = this.searchFormControl.value;
|
|
100
|
-
return !n;
|
|
101
|
-
}
|
|
102
|
-
get shouldLabelFloat() {
|
|
103
|
-
return this.focused || !this.empty;
|
|
104
|
-
}
|
|
105
|
-
ngOnInit() {
|
|
106
|
-
this.ngControl = this.injector.get(NgControl, null);
|
|
107
|
-
if (this.ngControl != null) {
|
|
108
|
-
this.ngControl.valueAccessor = this;
|
|
109
|
-
}
|
|
110
|
-
// If prefix defined, usually this is used for a code scanner.
|
|
111
|
-
// The goal is to select the entity in direct way.
|
|
112
|
-
if (this._prefix) {
|
|
113
|
-
this.searchFormControl
|
|
114
|
-
.valueChanges
|
|
115
|
-
.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) ?? of(null)))
|
|
116
|
-
.subscribe(resultSet => {
|
|
117
|
-
if (resultSet && resultSet.list) {
|
|
118
|
-
if (resultSet.list.length === 1) {
|
|
119
|
-
this.value = resultSet.list[0];
|
|
120
|
-
}
|
|
121
|
-
else {
|
|
122
|
-
this.filteredStrings = resultSet.list;
|
|
123
|
-
this.searchFormControl.patchValue(resultSet.searchTerm, { emitEvent: false });
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
this.isLoading = false;
|
|
127
|
-
});
|
|
128
|
-
}
|
|
129
|
-
// This is the search functionality when search by human.
|
|
130
|
-
this.searchFormControl
|
|
131
|
-
.valueChanges
|
|
132
|
-
.pipe(debounceTime(300), tap(_ => {
|
|
133
|
-
this.filteredStrings = [];
|
|
134
|
-
}), 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) ?? of(null)))
|
|
135
|
-
.subscribe(resultSet => {
|
|
136
|
-
if (resultSet && resultSet.list) {
|
|
137
|
-
this.filteredStrings = resultSet.list;
|
|
138
|
-
this.searchFormControl.patchValue(resultSet.searchTerm, { emitEvent: false });
|
|
139
|
-
}
|
|
140
|
-
this.isLoading = false;
|
|
141
|
-
});
|
|
142
|
-
}
|
|
143
|
-
ngOnDestroy() {
|
|
144
|
-
this.stateChanges.complete();
|
|
145
|
-
this.fm.stopMonitoring(this.elRef.nativeElement);
|
|
146
|
-
}
|
|
147
|
-
ngDoCheck() {
|
|
148
|
-
if (this.ngControl) {
|
|
149
|
-
this.errorState = (this.ngControl.invalid && this.ngControl.touched) ?? false;
|
|
150
|
-
this.stateChanges.next();
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
clear() {
|
|
154
|
-
this.filteredStrings = [];
|
|
155
|
-
this.searchFormControl.reset(null);
|
|
156
|
-
}
|
|
157
|
-
focus() {
|
|
158
|
-
this.elRef.nativeElement.querySelector('input').focus();
|
|
159
|
-
}
|
|
160
|
-
onOptionSelected(event) {
|
|
161
|
-
this.value = event.option.value;
|
|
162
|
-
this.filteredStrings = [];
|
|
163
|
-
}
|
|
164
|
-
onOptionActivated(event) {
|
|
165
|
-
this.activatedValue = event.option?.value;
|
|
166
|
-
}
|
|
167
|
-
onAutoCompleteClosed() {
|
|
168
|
-
if (this.activatedValue) {
|
|
169
|
-
this.value = this.activatedValue;
|
|
170
|
-
this.activatedValue = null;
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
|
-
reset() {
|
|
174
|
-
this.value = null;
|
|
175
|
-
}
|
|
176
|
-
onFocusOut() {
|
|
177
|
-
if (this.filteredStrings.length === 1) {
|
|
178
|
-
this.activatedValue = this.filteredStrings[0];
|
|
179
|
-
this.value = this.filteredStrings[0];
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
onTouched() {
|
|
183
|
-
this._onTouched();
|
|
184
|
-
this.stateChanges.next();
|
|
185
|
-
}
|
|
186
|
-
registerOnChange(fn) {
|
|
187
|
-
this._propagateChange = fn;
|
|
188
|
-
}
|
|
189
|
-
registerOnTouched(fn) {
|
|
190
|
-
this.onTouched = fn;
|
|
191
|
-
}
|
|
192
|
-
writeValue(obj) {
|
|
193
|
-
this.clear();
|
|
194
|
-
this.value = obj;
|
|
195
|
-
}
|
|
196
|
-
setDisabledState(isDisabled) {
|
|
197
|
-
this.disabled = isDisabled;
|
|
198
|
-
}
|
|
199
|
-
onContainerClick(event) {
|
|
200
|
-
if (event.target.tagName.toLowerCase() != 'input') {
|
|
201
|
-
this.focus();
|
|
202
|
-
}
|
|
203
|
-
}
|
|
204
|
-
setDescribedByIds(ids) {
|
|
205
|
-
this.describedBy = ids.join(' ');
|
|
206
|
-
}
|
|
207
|
-
validate(control) {
|
|
208
|
-
const selection = control.value;
|
|
209
|
-
if (typeof selection === 'string' && selection.length < 1) {
|
|
210
|
-
return { incorrect: true };
|
|
211
|
-
}
|
|
212
|
-
return null;
|
|
213
|
-
}
|
|
214
|
-
}
|
|
215
|
-
IaAutocompleteInput.nextId = 0;
|
|
216
|
-
IaAutocompleteInput.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: IaAutocompleteInput, deps: [{ token: i0.ElementRef }, { token: i0.Injector }, { token: i1.FocusMonitor }], target: i0.ɵɵFactoryTarget.Component });
|
|
217
|
-
IaAutocompleteInput.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", 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: [
|
|
218
|
-
{
|
|
219
|
-
provide: NG_VALUE_ACCESSOR,
|
|
220
|
-
useExisting: forwardRef(() => IaAutocompleteInput),
|
|
221
|
-
multi: true
|
|
222
|
-
},
|
|
223
|
-
{
|
|
224
|
-
provide: MatFormFieldControl,
|
|
225
|
-
useExisting: IaAutocompleteInput
|
|
226
|
-
},
|
|
227
|
-
{
|
|
228
|
-
provide: NG_VALIDATORS,
|
|
229
|
-
useExisting: forwardRef(() => IaAutocompleteInput),
|
|
230
|
-
multi: true
|
|
231
|
-
}
|
|
232
|
-
], 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", "hideSingleSelectionIndicator"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i4.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "directive", type: i3.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { 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", "mode", "value", "diameter", "strokeWidth"], 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"] }] });
|
|
233
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: IaAutocompleteInput, decorators: [{
|
|
234
|
-
type: Component,
|
|
235
|
-
args: [{ selector: 'ia-autocomplete', host: {
|
|
236
|
-
'[id]': 'id',
|
|
237
|
-
'[attr.aria-describedby]': 'describedBy'
|
|
238
|
-
}, providers: [
|
|
239
|
-
{
|
|
240
|
-
provide: NG_VALUE_ACCESSOR,
|
|
241
|
-
useExisting: forwardRef(() => IaAutocompleteInput),
|
|
242
|
-
multi: true
|
|
243
|
-
},
|
|
244
|
-
{
|
|
245
|
-
provide: MatFormFieldControl,
|
|
246
|
-
useExisting: IaAutocompleteInput
|
|
247
|
-
},
|
|
248
|
-
{
|
|
249
|
-
provide: NG_VALIDATORS,
|
|
250
|
-
useExisting: forwardRef(() => IaAutocompleteInput),
|
|
251
|
-
multi: true
|
|
252
|
-
}
|
|
253
|
-
], 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"] }]
|
|
254
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Injector }, { type: i1.FocusMonitor }]; }, propDecorators: { id: [{
|
|
255
|
-
type: HostBinding
|
|
256
|
-
}], inputField: [{
|
|
257
|
-
type: ViewChild,
|
|
258
|
-
args: ['input']
|
|
259
|
-
}], describedBy: [{
|
|
260
|
-
type: HostBinding,
|
|
261
|
-
args: ['attr.aria-describedby']
|
|
262
|
-
}], dataSource: [{
|
|
263
|
-
type: Input
|
|
264
|
-
}], disabled: [{
|
|
265
|
-
type: Input
|
|
266
|
-
}], placeholder: [{
|
|
267
|
-
type: Input
|
|
268
|
-
}], required: [{
|
|
269
|
-
type: Input
|
|
270
|
-
}], prefix: [{
|
|
271
|
-
type: Input
|
|
272
|
-
}], shouldLabelFloat: [{
|
|
273
|
-
type: HostBinding,
|
|
274
|
-
args: ['class.floating']
|
|
275
|
-
}] } });
|
|
276
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWEtYXV0b2NvbXBsZXRlLWlucHV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVzaG1ha2Vycy9zaGFyZWQtdWkvc3JjL2xpYi9pYS1zaGFyZWQtdWkvaWEtYXV0b2NvbXBsZXRlLWlucHV0L2lhLWF1dG9jb21wbGV0ZS1pbnB1dC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21lc2htYWtlcnMvc2hhcmVkLXVpL3NyYy9saWIvaWEtc2hhcmVkLXVpL2lhLWF1dG9jb21wbGV0ZS1pbnB1dC9pYS1hdXRvY29tcGxldGUtaW5wdXQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUdULFlBQVksRUFDWixVQUFVLEVBQ1YsV0FBVyxFQUVYLEtBQUssRUFHTCxTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDakUsT0FBTyxFQUdMLFdBQVcsRUFDWCxhQUFhLEVBQ2IsaUJBQWlCLEVBQ2pCLFNBQVMsRUFHVixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQzVELE9BQU8sRUFBQyxZQUFZLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFHekUsT0FBTyxFQUFDLEVBQUUsRUFBRSxPQUFPLEVBQUMsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7OztBQTZCakMsTUFBTSxPQUFPLG1CQUFtQjtJQWtCOUIsWUFBbUIsS0FBaUIsRUFBVSxRQUFrQixFQUFVLEVBQWdCO1FBQXZFLFVBQUssR0FBTCxLQUFLLENBQVk7UUFBVSxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQVUsT0FBRSxHQUFGLEVBQUUsQ0FBYztRQVpuRixvQkFBZSxHQUFhLEVB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QUNqQzt3QkFDRDs0QkFDRSxPQUFPLEVBQUUsYUFBYTs0QkFDdEIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsb0JBQW9CLENBQUM7NEJBQ2xELEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGO21KQWE4QixFQUFFO3NCQUFoQyxXQUFXO2dCQUdnQixVQUFVO3NCQUFyQyxTQUFTO3VCQUFDLE9BQU87Z0JBQzRCLFdBQVc7c0JBQXhELFdBQVc7dUJBQUMsdUJBQXVCO2dCQTZCekIsVUFBVTtzQkFEcEIsS0FBSztnQkFRSyxRQUFRO3NCQURsQixLQUFLO2dCQWNLLFdBQVc7c0JBRHJCLEtBQUs7Z0JBYUssUUFBUTtzQkFEbEIsS0FBSztnQkFnQkssTUFBTTtzQkFEaEIsS0FBSztnQkErQkssZ0JBQWdCO3NCQUQxQixXQUFXO3VCQUFDLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRG9DaGVjayxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBmb3J3YXJkUmVmLFxuICBIb3N0QmluZGluZyxcbiAgSW5qZWN0b3IsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtNYXRGb3JtRmllbGRDb250cm9sfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZFwiO1xuaW1wb3J0IHtcbiAgQWJzdHJhY3RDb250cm9sLFxuICBDb250cm9sVmFsdWVBY2Nlc3NvcixcbiAgRm9ybUNvbnRyb2wsXG4gIE5HX1ZBTElEQVRPUlMsXG4gIE5HX1ZBTFVFX0FDQ0VTU09SLFxuICBOZ0NvbnRyb2wsXG4gIFZhbGlkYXRpb25FcnJvcnMsXG4gIFZhbGlkYXRvclxufSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7Y29lcmNlQm9vbGVhblByb3BlcnR5fSBmcm9tIFwiQGFuZ3VsYXIvY2RrL2NvZXJjaW9uXCI7XG5pbXBvcnQge2RlYm91bmNlVGltZSwgZmlsdGVyLCBtYXAsIHN3aXRjaE1hcCwgdGFwfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcbmltcG9ydCB7TWF0QXV0b2NvbXBsZXRlQWN0aXZhdGVkRXZlbnQsIE1hdEF1dG9jb21wbGV0ZVNlbGVjdGVkRXZlbnR9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9hdXRvY29tcGxldGVcIjtcbmltcG9ydCB7TWF0SW5wdXR9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9pbnB1dFwiO1xuaW1wb3J0IHtvZiwgU3ViamVjdH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7Rm9jdXNNb25pdG9yfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL2ExMXlcIjtcbmltcG9ydCB7QXV0b0NvbXBsZXRlRGF0YVNvdXJjZX0gZnJvbSBcIkBtZXNobWFrZXJzL3NoYXJlZC1zZXJ2aWNlc1wiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpYS1hdXRvY29tcGxldGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vaWEtYXV0b2NvbXBsZXRlLWlucHV0Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9pYS1hdXRvY29tcGxldGUtaW5wdXQuY3NzJ10sXG4gIGhvc3Q6IHtcbiAgICAnW2lkXSc6ICdpZCcsXG4gICAgJ1thdHRyLmFyaWEtZGVzY3JpYmVkYnldJzogJ2Rlc2NyaWJlZEJ5J1xuICB9LFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IElhQXV0b2NvbXBsZXRlSW5wdXQpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IE1hdEZvcm1GaWVsZENvbnRyb2wsXG4gICAgICB1c2VFeGlzdGluZzogSWFBdXRvY29tcGxldGVJbnB1dFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IElhQXV0b2NvbXBsZXRlSW5wdXQpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgSWFBdXRvY29tcGxldGVJbnB1dCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBEb0NoZWNrLCBDb250cm9sVmFsdWVBY2Nlc3NvciwgTWF0Rm9ybUZpZWxkQ29udHJvbDxhbnk+LCBWYWxpZGF0b3Ige1xuXG5cbiAgcHJpdmF0ZSBzdGF0aWMgbmV4dElkID0gMDtcbiAgcHVibGljIHJlYWRvbmx5IHNlYXJjaEZvcm1Db250cm9sOiBGb3JtQ29udHJvbDtcbiAgcHVibGljIGlzTG9hZGluZzogYm9vbGVhbjtcbiAgcHVibGljIGZpbHRlcmVkU3RyaW5nczogc3RyaW5nW10gPSBbXTtcbiAgcHVibGljIG5nQ29udHJvbDogTmdDb250cm9sIHwgbnVsbDtcbiAgcHVibGljIGVycm9yU3RhdGU6IGJvb2xlYW47XG4gIHB1YmxpYyBmb2N1c2VkOiBib29sZWFuO1xuICBwdWJsaWMgcmVhZG9ubHkgc3RhdGVDaGFuZ2VzID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgQEhvc3RCaW5kaW5nKCkgcHVibGljIHJlYWRvbmx5IGlkID0gYGlhLWF1dG9jb21wbGV0ZS0ke0lhQXV0b2NvbXBsZXRlSW5wdXQubmV4dElkKyt9YDtcbiAgcHVibGljIHZhbHVlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBwcml2YXRlIF9zZWxlY3RlZFN0cmluZzogc3RyaW5nIHwgbnVsbDtcbiAgQFZpZXdDaGlsZCgnaW5wdXQnKSBwcml2YXRlIGlucHV0RmllbGQ6IE1hdElucHV0IHwgbnVsbDtcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtZGVzY3JpYmVkYnknKSBwcml2YXRlIGRlc2NyaWJlZEJ5ID0gJyc7XG4gIHByaXZhdGUgYWN0aXZhdGVkVmFsdWU6IGFueTtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZWxSZWY6IEVsZW1lbnRSZWYsIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLCBwcml2YXRlIGZtOiBGb2N1c01vbml0b3IpIHtcbiAgICB0aGlzLm5nQ29udHJvbCA9IG51bGw7XG4gICAgdGhpcy5lcnJvclN0YXRlID0gZmFsc2U7XG4gICAgdGhpcy5fc2VsZWN0ZWRTdHJpbmcgPSBudWxsO1xuICAgIHRoaXMuaW5wdXRGaWVsZCA9IG51bGw7XG4gICAgdGhpcy5fZGF0YVNvdXJjZSA9IG51bGw7XG4gICAgdGhpcy5fcGxhY2Vob2xkZXIgPSBcIlwiO1xuICAgIHRoaXMuX3ByZWZpeCA9IFwiXCI7XG5cbiAgICB0aGlzLnNlYXJjaEZvcm1Db250cm9sID0gbmV3IEZvcm1Db250cm9sKCk7XG4gICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICB0aGlzLl9kaXNhYmxlZCA9IGZhbHNlO1xuICAgIHRoaXMuZm9jdXNlZCA9IGZhbHNlO1xuICAgIGZtLm1vbml0b3IoZWxSZWYubmF0aXZlRWxlbWVudCwgdHJ1ZSkuc3Vic2NyaWJlKG9yaWdpbiA9PiB7XG4gICAgICB0aGlzLmZvY3VzZWQgPSAhIW9yaWdpbjtcbiAgICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX2RhdGFTb3VyY2U6IEF1dG9Db21wbGV0ZURhdGFTb3VyY2UgfCBudWxsO1xuXG4gIHB1YmxpYyBnZXQgZGF0YVNvdXJjZSgpOiBBdXRvQ29tcGxldGVEYXRhU291cmNlIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX2RhdGFTb3VyY2U7XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGRhdGFTb3VyY2UodmFsdWU6IEF1dG9Db21wbGV0ZURhdGFTb3VyY2UgfCBudWxsKSB7XG4gICAgdGhpcy5fZGF0YVNvdXJjZSA9IHZhbHVlO1xuICB9XG5cbiAgcHJpdmF0ZSBfZGlzYWJsZWQgPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgZ2V0IGRpc2FibGVkKCkge1xuICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZDtcbiAgfVxuXG4gIHB1YmxpYyBzZXQgZGlzYWJsZWQoZGlzKSB7XG4gICAgdGhpcy5fZGlzYWJsZWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkoZGlzKTtcbiAgICB0aGlzLl9kaXNhYmxlZCA/IHRoaXMuc2VhcmNoRm9ybUNvbnRyb2wuZGlzYWJsZSgpIDogdGhpcy5zZWFyY2hGb3JtQ29udHJvbC5lbmFibGUoKTtcbiAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XG4gIH1cblxuICBwcml2YXRlIF9wbGFjZWhvbGRlcjogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBnZXQgcGxhY2Vob2xkZXIoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fcGxhY2Vob2xkZXI7XG4gIH1cblxuICBwdWJsaWMgc2V0IHBsYWNlaG9sZGVyKHBsaDogc3RyaW5nKSB7XG4gICAgdGhpcy5fcGxhY2Vob2xkZXIgPSBwbGg7XG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVxdWlyZWQgPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgZ2V0IHJlcXVpcmVkKCkge1xuICAgIHJldHVybiB0aGlzLl9yZXF1aXJlZDtcbiAgfVxuXG4gIHB1YmxpYyBzZXQgcmVxdWlyZWQocmVxKSB7XG4gICAgdGhpcy5fcmVxdWlyZWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkocmVxKTtcbiAgICBpZiAodGhpcy5pbnB1dEZpZWxkKSB7XG4gICAgICB0aGlzLmlucHV0RmllbGQucmVxdWlyZWQgPSB0aGlzLl9yZXF1aXJlZDtcbiAgICB9XG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfcHJlZml4OiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGdldCBwcmVmaXgoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fcHJlZml4O1xuICB9XG5cbiAgcHVibGljIHNldCBwcmVmaXgodmFsdWU6IHN0cmluZykge1xuICAgIGlmICh2YWx1ZSAhPT0gdGhpcy5fcHJlZml4KSB7XG4gICAgICB0aGlzLl9wcmVmaXggPSB2YWx1ZTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IHZhbHVlKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuX3NlbGVjdGVkU3RyaW5nO1xuICB9XG5cbiAgcHVibGljIHNldCB2YWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgaWYgKHZhbHVlICE9PSB0aGlzLl9zZWxlY3RlZFN0cmluZykge1xuICAgICAgdGhpcy5fc2VsZWN0ZWRTdHJpbmcgPSB2YWx1ZTtcbiAgICAgIHRoaXMuc2VhcmNoRm9ybUNvbnRyb2wuc2V0VmFsdWUodmFsdWUpO1xuICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHZhbHVlKTtcbiAgICAgIHRoaXMuX3Byb3BhZ2F0ZUNoYW5nZSh0aGlzLl9zZWxlY3RlZFN0cmluZyk7XG4gICAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBlbXB0eSgpIHtcbiAgICBsZXQgbiA9IHRoaXMuc2VhcmNoRm9ybUNvbnRyb2wudmFsdWU7XG4gICAgcmV0dXJuICFuO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mbG9hdGluZycpXG4gIHB1YmxpYyBnZXQgc2hvdWxkTGFiZWxGbG9hdCgpIHtcbiAgICByZXR1cm4gdGhpcy5mb2N1c2VkIHx8ICF0aGlzLmVtcHR5O1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5uZ0NvbnRyb2wgPSB0aGlzLmluamVjdG9yLmdldChOZ0NvbnRyb2wsIG51bGwpO1xuICAgIGlmICh0aGlzLm5nQ29udHJvbCAhPSBudWxsKSB7XG4gICAgICB0aGlzLm5nQ29udHJvbC52YWx1ZUFjY2Vzc29yID0gdGhpcztcbiAgICB9XG5cbiAgICAvLyBJZiBwcmVmaXggZGVmaW5lZCwgdXN1YWxseSB0aGlzIGlzIHVzZWQgZm9yIGEgY29kZSBzY2FubmVyLlxuICAgIC8vIFRoZSBnb2FsIGlzIHRvIHNlbGVjdCB0aGUgZW50aXR5IGluIGRpcmVjdCB3YXkuXG4gICAgaWYgKHRoaXMuX3ByZWZpeCkge1xuICAgICAgdGhpcy5zZWFyY2hGb3JtQ29udHJvbFxuICAgICAgICAudmFsdWVDaGFuZ2VzXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIGRlYm91bmNlVGltZSgzMDApLFxuICAgICAgICAgIGZpbHRlcih2YWx1ZSA9PiB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSxcbiAgICAgICAgICBmaWx0ZXIodmFsdWUgPT4gdmFsdWUuc3RhcnRzV2l0aCh0aGlzLl9wcmVmaXgpKSxcbiAgICAgICAgICB0YXAoKCkgPT4gdGhpcy52YWx1ZSA9IG51bGwpLFxuICAgICAgICAgIHRhcCgoKSA9PiB0aGlzLmlzTG9hZGluZyA9IHRydWUpLFxuICAgICAgICAgIG1hcCh2YWx1ZSA9PiB0aGlzLl9kYXRhU291cmNlPy5vblByZXByb2Nlc3NTZWFyY2hTdHJpbmcodmFsdWUpID8/IFwiXCIpLFxuICAgICAgICAgIHN3aXRjaE1hcCh2YWx1ZSA9PiB0aGlzLl9kYXRhU291cmNlPy5vbkZpbHRlcih2YWx1ZSkgPz8gb2YobnVsbCkpXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZShyZXN1bHRTZXQgPT4ge1xuXG4gICAgICAgICAgaWYgKHJlc3VsdFNldCAmJiByZXN1bHRTZXQubGlzdCkge1xuICAgICAgICAgICAgaWYgKHJlc3VsdFNldC5saXN0Lmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgICAgICB0aGlzLnZhbHVlID0gcmVzdWx0U2V0Lmxpc3RbMF07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICB0aGlzLmZpbHRlcmVkU3RyaW5ncyA9IHJlc3VsdFNldC5saXN0O1xuICAgICAgICAgICAgICB0aGlzLnNlYXJjaEZvcm1Db250cm9sLnBhdGNoVmFsdWUocmVzdWx0U2V0LnNlYXJjaFRlcm0sIHtlbWl0RXZlbnQ6IGZhbHNlfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG5cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8gVGhpcyBpcyB0aGUgc2VhcmNoIGZ1bmN0aW9uYWxpdHkgd2hlbiBzZWFyY2ggYnkgaHVtYW4uXG4gICAgdGhpcy5zZWFyY2hGb3JtQ29udHJvbFxuICAgICAgLnZhbHVlQ2hhbmdlc1xuICAgICAgLnBpcGUoXG4gICAgICAgIGRlYm91bmNlVGltZSgzMDApLFxuICAgICAgICB0YXAoXyA9PiB7XG4gICAgICAgICAgICB0aGlzLmZpbHRlcmVkU3RyaW5ncyA9IFtdO1xuICAgICAgICAgIH1cbiAgICAgICAgKSxcbiAgICAgICAgZmlsdGVyKHZhbHVlID0+IHZhbHVlICE9IG51bGwgJiYgdmFsdWUudG9TdHJpbmcoKS5sZW5ndGggPj0gMSksXG4gICAgICAgIHRhcCgoKSA9PiB0aGlzLmlzTG9hZGluZyA9IHRydWUpLFxuICAgICAgICBtYXAodmFsdWUgPT4gdGhpcy5fZGF0YVNvdXJjZT8ub25QcmVwcm9jZXNzU2VhcmNoU3RyaW5nKHZhbHVlKSksXG4gICAgICAgIHRhcCh2YWx1ZSA9PiB0aGlzLnZhbHVlID0gdmFsdWUpLFxuICAgICAgICBzd2l0Y2hNYXAodmFsdWUgPT4gdGhpcy5fZGF0YVNvdXJjZT8ub25GaWx0ZXIodmFsdWUhKSA/PyBvZihudWxsKSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUocmVzdWx0U2V0ID0+IHtcbiAgICAgICAgICBpZiAocmVzdWx0U2V0ICYmIHJlc3VsdFNldC5saXN0KSB7XG4gICAgICAgICAgICB0aGlzLmZpbHRlcmVkU3RyaW5ncyA9IHJlc3VsdFNldC5saXN0O1xuICAgICAgICAgICAgdGhpcy5zZWFyY2hGb3JtQ29udHJvbC5wYXRjaFZhbHVlKHJlc3VsdFNldC5zZWFyY2hUZXJtLCB7ZW1pdEV2ZW50OiBmYWxzZX0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICApO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMuY29tcGxldGUoKTtcbiAgICB0aGlzLmZtLnN0b3BNb25pdG9yaW5nKHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudCk7XG4gIH1cblxuICBuZ0RvQ2hlY2soKTogdm9pZCB7XG4gICAgaWYgKHRoaXMubmdDb250cm9sKSB7XG4gICAgICB0aGlzLmVycm9yU3RhdGUgPSAodGhpcy5uZ0NvbnRyb2wuaW52YWxpZCAmJiB0aGlzLm5nQ29udHJvbC50b3VjaGVkKSA/PyBmYWxzZTtcbiAgICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgY2xlYXIoKSB7XG4gICAgdGhpcy5maWx0ZXJlZFN0cmluZ3MgPSBbXTtcbiAgICB0aGlzLnNlYXJjaEZvcm1Db250cm9sLnJlc2V0KG51bGwpO1xuICB9XG5cbiAgcHVibGljIGZvY3VzKCkge1xuICAgIHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dCcpLmZvY3VzKCk7XG4gIH1cblxuICBwdWJsaWMgb25PcHRpb25TZWxlY3RlZChldmVudDogTWF0QXV0b2NvbXBsZXRlU2VsZWN0ZWRFdmVudCkge1xuICAgIHRoaXMudmFsdWUgPSBldmVudC5vcHRpb24udmFsdWU7XG4gICAgdGhpcy5maWx0ZXJlZFN0cmluZ3MgPSBbXTtcbiAgfVxuXG4gIHB1YmxpYyBvbk9wdGlvbkFjdGl2YXRlZChldmVudDogTWF0QXV0b2NvbXBsZXRlQWN0aXZhdGVkRXZlbnQpIHtcbiAgICB0aGlzLmFjdGl2YXRlZFZhbHVlID0gZXZlbnQub3B0aW9uPy52YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBvbkF1dG9Db21wbGV0ZUNsb3NlZCgpIHtcblxuICAgIGlmICh0aGlzLmFjdGl2YXRlZFZhbHVlKSB7XG5cbiAgICAgIHRoaXMudmFsdWUgPSB0aGlzLmFjdGl2YXRlZFZhbHVlO1xuICAgICAgdGhpcy5hY3RpdmF0ZWRWYWx1ZSA9IG51bGw7XG5cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcmVzZXQoKSB7XG4gICAgdGhpcy52YWx1ZSA9IG51bGw7XG4gIH1cblxuICBwdWJsaWMgb25Gb2N1c091dCgpIHtcblxuICAgIGlmICh0aGlzLmZpbHRlcmVkU3RyaW5ncy5sZW5ndGggPT09IDEpIHtcbiAgICAgIHRoaXMuYWN0aXZhdGVkVmFsdWUgPSB0aGlzLmZpbHRlcmVkU3RyaW5nc1swXTtcbiAgICAgIHRoaXMudmFsdWUgPSB0aGlzLmZpbHRlcmVkU3RyaW5nc1swXTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25Ub3VjaGVkKCkge1xuXG4gICAgdGhpcy5fb25Ub3VjaGVkKCk7XG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMuX3Byb3BhZ2F0ZUNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgcHVibGljIHdyaXRlVmFsdWUob2JqOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLmNsZWFyKCk7XG4gICAgdGhpcy52YWx1ZSA9IG9iajtcbiAgfVxuXG4gIHB1YmxpYyBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgfVxuXG4gIHB1YmxpYyBvbkNvbnRhaW5lckNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgaWYgKChldmVudC50YXJnZXQgYXMgRWxlbWVudCkudGFnTmFtZS50b0xvd2VyQ2FzZSgpICE9ICdpbnB1dCcpIHtcbiAgICAgIHRoaXMuZm9jdXMoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc2V0RGVzY3JpYmVkQnlJZHMoaWRzOiBzdHJpbmdbXSk6IHZvaWQge1xuICAgIHRoaXMuZGVzY3JpYmVkQnkgPSBpZHMuam9pbignICcpO1xuICB9XG5cbiAgdmFsaWRhdGUoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xuICAgIGNvbnN0IHNlbGVjdGlvbjogYW55ID0gY29udHJvbC52YWx1ZTtcbiAgICBpZiAodHlwZW9mIHNlbGVjdGlvbiA9PT0gJ3N0cmluZycgJiYgKDxzdHJpbmc+c2VsZWN0aW9uKS5sZW5ndGggPCAxKSB7XG4gICAgICByZXR1cm4ge2luY29ycmVjdDogdHJ1ZX07XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcHJpdmF0ZSBfcHJvcGFnYXRlQ2hhbmdlID0gKF86IGFueSkgPT4ge1xuICB9O1xuXG4gIHByaXZhdGUgX29uVG91Y2hlZCA9ICgpID0+IHtcbiAgfTtcbn1cbiIsIjxpbnB1dCAjaW5wdXQgKGJsdXIpPVwib25Ub3VjaGVkKClcIiAoZm9jdXNvdXQpPVwib25Gb2N1c091dCgpXCIgW2Zvcm1Db250cm9sXT1cInNlYXJjaEZvcm1Db250cm9sXCIgW21hdEF1dG9jb21wbGV0ZV09XCJhdXRvXCJcbiAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIiBtYXRJbnB1dD5cbjxtYXQtYXV0b2NvbXBsZXRlICNhdXRvPVwibWF0QXV0b2NvbXBsZXRlXCJcbiAgICAgICAgICAgICAgICAgIChjbG9zZWQpPVwib25BdXRvQ29tcGxldGVDbG9zZWQoKVwiIChvcHRpb25BY3RpdmF0ZWQpPVwib25PcHRpb25BY3RpdmF0ZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAob3B0aW9uU2VsZWN0ZWQpPVwib25PcHRpb25TZWxlY3RlZCgkZXZlbnQpXCI+XG4gIDxtYXQtb3B0aW9uICpuZ0lmPVwiaXNMb2FkaW5nXCIgY2xhc3M9XCJpcy1sb2FkaW5nXCI+XG4gICAgPG1hdC1zcGlubmVyIGRpYW1ldGVyPVwiNTBcIj48L21hdC1zcGlubmVyPlxuICA8L21hdC1vcHRpb24+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNMb2FkaW5nXCI+XG4gICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IHN0ciBvZiBmaWx0ZXJlZFN0cmluZ3NcIiBbdmFsdWVdPVwic3RyXCI+XG4gICAgICB7e3N0cn19XG4gICAgPC9tYXQtb3B0aW9uPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvbWF0LWF1dG9jb21wbGV0ZT5cbiJdfQ==
|