@enigmatry/entry-components 1.2.58 → 1.2.60

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.
@@ -0,0 +1,95 @@
1
+ # Entry Dialog
2
+
3
+ Enables working with built-in (alert and confirm) and custom dialogs. Supports dialog configuration on module level.
4
+
5
+ ## Imports
6
+
7
+ ```ts
8
+ import { EntryDialogModule } from '@enigmatry/entry-components/entry-dialog';
9
+ import { MatDialogModule } from '@angular/material/dialog';
10
+ ```
11
+
12
+ ## Basic usage
13
+
14
+ `EntryDialogService` is used to open dialogs:
15
+
16
+ ```ts
17
+ constructor (entryDialogService: EntryDialogService) {
18
+ entryDialogService.openAlert({
19
+ title: 'ALERT!', message: 'I want to tell you that I love you :)'
20
+ })
21
+ }
22
+ ```
23
+
24
+ ## Configuration
25
+
26
+ `ENTRY_DIALOG_CONFIG`: `InjectionToken<EntryDialogConfig>` - Optional configuration used to override defaults.
27
+
28
+ ```ts
29
+ // ...
30
+
31
+ @NgModule({
32
+ imports: [
33
+ EntryDialogModule,
34
+ MatDialogModule
35
+ ],
36
+ providers: [
37
+ {
38
+ provide: ENTRY_DIALOG_CONFIG,
39
+ useFactory: () => new EntryDialogConfig('Yes', 'No', 'align-center')
40
+ }
41
+ ]
42
+ })
43
+ export class AppModule { }
44
+ ```
45
+
46
+ ## EntryDialogService Methods
47
+
48
+ `openAlert(data: IEntryAlertDialogData): Observable<any>`
49
+
50
+ Opens alert dialog containing title and message defined in `data` parameter.
51
+
52
+ `openConfirm(data: IEntryConfirmDialogData): Observable<bool | undefined>`
53
+
54
+ Opens confirm dialog containing title and message defined in `data` parameter.
55
+
56
+ Returns `true` if confirmed, `false` if canceled or closed, and `undefined` if closed by clicking outside of dialog.
57
+
58
+ `open(component: Type<EntryDialogComponent>, data: unknown = undefined, cssClass: string = ''): Observable<any>`
59
+
60
+ Opens custom dialog component defined by `component` parameter. Optionally, it can receive input `data` or `cssClass`.
61
+
62
+ ## Classes and Interfaces
63
+
64
+ | `IEntryAlertDialogData` | |
65
+ | - | - |
66
+ | title: `string` | Dialog header title |
67
+ | message: `string` | Dialog content message |
68
+ | confirmText?: `string` | Optional confirm button text |
69
+
70
+ | `IEntryConfirmDialogData` | |
71
+ | - | - |
72
+ | title: `string` | Dialog header title |
73
+ | message: `string` | Dialog content message |
74
+ | confirmText?: `string` | Optional confirm button text |
75
+ | cancelText?: `string` | Optional cancel button text |
76
+
77
+ | `EntryDialogConfig` | |
78
+ | - | - |
79
+ | confirmButtonText: `string` | Confirm button text (default 'Ok') |
80
+ | cancelButtonText: `string` | Cancel button text (default 'Cancel') |
81
+ | buttonsAlignment: `string` | Buttons alignment values: `'align-right'`, `'align-center'` or `''` (default `'align-right'`) |
82
+
83
+ | `IEntryDialogButtonsConfig` | |
84
+ | - | - |
85
+ | confirmButtonText: `string` | Confirm button text |
86
+ | cancelButtonText: `string` | Cancel button text |
87
+ | buttonsAlignment: `string` | Buttons alignment values: `'align-right'`, `'align-center'` or `''` |
88
+ | visible: `bool` | Hides or shows dialog buttons |
89
+
90
+ | `EntryDialogComponent` | |
91
+ | - | - |
92
+ | title: `string` | Dialog header title |
93
+ | buttons: `IEntryDialogButtonsConfig` | Dialog buttons configuration |
94
+ | disableConfirm: `bool` | Disables confirm button |
95
+ | buttonsTemplate?: `TemplateRef<>` | Optional dialog buttons custom template |
@@ -8,9 +8,30 @@ import * as i0 from "@angular/core";
8
8
  export declare class EntryDialogService {
9
9
  private readonly matDialog;
10
10
  constructor(matDialog: MatDialog);
11
+ /**
12
+ * Opens alert dialog
13
+ *
14
+ * @param data - Contains title, message and optional confirm button text of IEntryAlertDialogData type
15
+ * @returns Observable of any
16
+ */
11
17
  openAlert: (data: IEntryAlertDialogData) => Observable<any>;
12
- readonly openConfirm: (data: IEntryConfirmDialogData) => Observable<boolean | undefined>;
13
- readonly open: (component: Type<EntryDialogComponent>, data?: unknown, cssClass?: string) => Observable<any>;
18
+ /**
19
+ * Opens confirm dialog
20
+ *
21
+ * @param data - Contains title, message and optional confirm/cancel buttons text of IEntryConfirmDialogData type
22
+ * @returns Observable of bool or undefined, `true` if confirmed, `false` if canceled or closed
23
+ * , `undefined` if closed by clicking outside of the dialog
24
+ */
25
+ openConfirm: (data: IEntryConfirmDialogData) => Observable<boolean | undefined>;
26
+ /**
27
+ * Opens dialog with custom component
28
+ *
29
+ * @param component - Dialog custom component implementation
30
+ * @param data - Optional parameter used to supply component with input parameters
31
+ * @param cssClass - Optional parameter used to set custom class to Material overlay pane
32
+ * @returns Observable of any containing result of dialog with custom component
33
+ */
34
+ open: (component: Type<EntryDialogComponent>, data?: unknown, cssClass?: string) => Observable<any>;
14
35
  readonly close: () => void;
15
36
  private setPanelClassFor;
16
37
  static ɵfac: i0.ɵɵFactoryDeclaration<EntryDialogService, never>;
@@ -8,8 +8,29 @@ import * as i1 from "@angular/material/dialog";
8
8
  export class EntryDialogService {
9
9
  constructor(matDialog) {
10
10
  this.matDialog = matDialog;
11
+ /**
12
+ * Opens alert dialog
13
+ *
14
+ * @param data - Contains title, message and optional confirm button text of IEntryAlertDialogData type
15
+ * @returns Observable of any
16
+ */
11
17
  this.openAlert = (data) => this.open(EntryAlertDialogComponent, data);
18
+ /**
19
+ * Opens confirm dialog
20
+ *
21
+ * @param data - Contains title, message and optional confirm/cancel buttons text of IEntryConfirmDialogData type
22
+ * @returns Observable of bool or undefined, `true` if confirmed, `false` if canceled or closed
23
+ * , `undefined` if closed by clicking outside of the dialog
24
+ */
12
25
  this.openConfirm = (data) => this.open(EntryConfirmDialogComponent, data);
26
+ /**
27
+ * Opens dialog with custom component
28
+ *
29
+ * @param component - Dialog custom component implementation
30
+ * @param data - Optional parameter used to supply component with input parameters
31
+ * @param cssClass - Optional parameter used to set custom class to Material overlay pane
32
+ * @returns Observable of any containing result of dialog with custom component
33
+ */
13
34
  this.open = (component, data = undefined, cssClass = '') => {
14
35
  const configuration = new MatDialogConfig();
15
36
  configuration.data = data;
@@ -33,4 +54,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
33
54
  providedIn: 'root'
34
55
  }]
35
56
  }], ctorParameters: function () { return [{ type: i1.MatDialog }]; } });
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50cnktZGlhbG9nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbnRyeS1jb21wb25lbnRzL2RpYWxvZy9lbnRyeS1kaWFsb2cuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFRLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBYSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUV0RSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdEMsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFFekYsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sa0RBQWtELENBQUM7OztBQU0vRixNQUFNLE9BQU8sa0JBQWtCO0lBQzdCLFlBQTZCLFNBQW9CO1FBQXBCLGNBQVMsR0FBVCxTQUFTLENBQVc7UUFFakQsY0FBUyxHQUFHLENBQUMsSUFBMkIsRUFBbUIsRUFBRSxDQUMzRCxJQUFJLENBQUMsSUFBSSxDQUFDLHlCQUF5QixFQUFFLElBQUksQ0FBQyxDQUFDO1FBRXBDLGdCQUFXLEdBQUcsQ0FBQyxJQUE2QixFQUFtQyxFQUFFLENBQ3hGLElBQUksQ0FBQyxJQUFJLENBQUMsMkJBQTJCLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFFdEMsU0FBSSxHQUFHLENBQUMsU0FBcUMsRUFBRSxPQUFnQixTQUFTLEVBQUUsV0FBbUIsRUFBRSxFQUFFLEVBQUU7WUFDMUcsTUFBTSxhQUFhLEdBQUcsSUFBSSxlQUFlLEVBQVcsQ0FBQztZQUNyRCxhQUFhLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztZQUMxQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBRS9DLE9BQU8sSUFBSSxDQUFDLFNBQVM7aUJBQ2xCLElBQUksQ0FBQyxTQUFTLEVBQUUsYUFBYSxDQUFDO2lCQUM5QixXQUFXLEVBQUU7aUJBQ2IsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ25CLENBQUMsQ0FBQztRQUVPLFVBQUssR0FBRyxHQUFTLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRS9DLHFCQUFnQixHQUFHLENBQUksYUFBaUMsRUFBRSxRQUFnQixFQUFFLEVBQUU7WUFDcEYsYUFBYSxDQUFDLFVBQVUsR0FBRyxDQUFDLGtCQUFrQixFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQzVELENBQUMsQ0FBQztJQXZCbUQsQ0FBQzs7Z0hBRDNDLGtCQUFrQjtvSEFBbEIsa0JBQWtCLGNBRmpCLE1BQU07NEZBRVAsa0JBQWtCO2tCQUg5QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdERpYWxvZywgTWF0RGlhbG9nQ29uZmlnIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IEVudHJ5RGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9kaWFsb2dzL2VudHJ5LWRpYWxvZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IElFbnRyeUFsZXJ0RGlhbG9nRGF0YSB9IGZyb20gJy4vZGlhbG9ncy9hbGVydC9lbnRyeS1hbGVydC1kaWFsb2ctZGF0YS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRW50cnlBbGVydERpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vZGlhbG9ncy9hbGVydC9lbnRyeS1hbGVydC1kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEVudHJ5Q29uZmlybURpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vZGlhbG9ncy9jb25maXJtL2VudHJ5LWNvbmZpcm0tZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJRW50cnlDb25maXJtRGlhbG9nRGF0YSB9IGZyb20gJy4vZGlhbG9ncy9jb25maXJtL2VudHJ5LWNvbmZpcm0tZGlhbG9nLWRhdGEuaW50ZXJmYWNlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgRW50cnlEaWFsb2dTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBtYXREaWFsb2c6IE1hdERpYWxvZykgeyB9XG5cbiAgb3BlbkFsZXJ0ID0gKGRhdGE6IElFbnRyeUFsZXJ0RGlhbG9nRGF0YSk6IE9ic2VydmFibGU8YW55PiA9PlxuICAgIHRoaXMub3BlbihFbnRyeUFsZXJ0RGlhbG9nQ29tcG9uZW50LCBkYXRhKTtcblxuICByZWFkb25seSBvcGVuQ29uZmlybSA9IChkYXRhOiBJRW50cnlDb25maXJtRGlhbG9nRGF0YSk6IE9ic2VydmFibGU8Ym9vbGVhbiB8IHVuZGVmaW5lZD4gPT5cbiAgICB0aGlzLm9wZW4oRW50cnlDb25maXJtRGlhbG9nQ29tcG9uZW50LCBkYXRhKTtcblxuICByZWFkb25seSBvcGVuID0gKGNvbXBvbmVudDogVHlwZTxFbnRyeURpYWxvZ0NvbXBvbmVudD4sIGRhdGE6IHVua25vd24gPSB1bmRlZmluZWQsIGNzc0NsYXNzOiBzdHJpbmcgPSAnJykgPT4ge1xuICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBuZXcgTWF0RGlhbG9nQ29uZmlnPHVua25vd24+KCk7XG4gICAgY29uZmlndXJhdGlvbi5kYXRhID0gZGF0YTtcbiAgICB0aGlzLnNldFBhbmVsQ2xhc3NGb3IoY29uZmlndXJhdGlvbiwgY3NzQ2xhc3MpO1xuXG4gICAgcmV0dXJuIHRoaXMubWF0RGlhbG9nXG4gICAgICAub3Blbihjb21wb25lbnQsIGNvbmZpZ3VyYXRpb24pXG4gICAgICAuYWZ0ZXJDbG9zZWQoKVxuICAgICAgLnBpcGUodGFrZSgxKSk7XG4gIH07XG5cbiAgcmVhZG9ubHkgY2xvc2UgPSAoKTogdm9pZCA9PiB0aGlzLm1hdERpYWxvZy5jbG9zZUFsbCgpO1xuXG4gIHByaXZhdGUgc2V0UGFuZWxDbGFzc0ZvciA9IDxUPihjb25maWd1cmF0aW9uOiBNYXREaWFsb2dDb25maWc8VD4sIGNzc0NsYXNzOiBzdHJpbmcpID0+IHtcbiAgICBjb25maWd1cmF0aW9uLnBhbmVsQ2xhc3MgPSBbJ2RpYWxvZy1jb250YWluZXInLCBjc3NDbGFzc107XG4gIH07XG59XG4iXX0=
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50cnktZGlhbG9nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbnRyeS1jb21wb25lbnRzL2RpYWxvZy9lbnRyeS1kaWFsb2cuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFRLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBYSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUV0RSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdEMsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFFekYsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sa0RBQWtELENBQUM7OztBQU0vRixNQUFNLE9BQU8sa0JBQWtCO0lBQzdCLFlBQTZCLFNBQW9CO1FBQXBCLGNBQVMsR0FBVCxTQUFTLENBQVc7UUFFakQ7Ozs7O1dBS0c7UUFDSCxjQUFTLEdBQUcsQ0FBQyxJQUEyQixFQUFtQixFQUFFLENBQzNELElBQUksQ0FBQyxJQUFJLENBQUMseUJBQXlCLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFFN0M7Ozs7OztXQU1HO1FBQ0gsZ0JBQVcsR0FBRyxDQUFDLElBQTZCLEVBQW1DLEVBQUUsQ0FDL0UsSUFBSSxDQUFDLElBQUksQ0FBQywyQkFBMkIsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUUvQzs7Ozs7OztXQU9HO1FBQ0gsU0FBSSxHQUFHLENBQ0wsU0FBcUMsRUFDckMsT0FBZ0IsU0FBUyxFQUN6QixXQUFtQixFQUFFLEVBQW1CLEVBQUU7WUFDMUMsTUFBTSxhQUFhLEdBQUcsSUFBSSxlQUFlLEVBQVcsQ0FBQztZQUNyRCxhQUFhLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztZQUMxQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBRS9DLE9BQU8sSUFBSSxDQUFDLFNBQVM7aUJBQ2xCLElBQUksQ0FBQyxTQUFTLEVBQUUsYUFBYSxDQUFDO2lCQUM5QixXQUFXLEVBQUU7aUJBQ2IsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ25CLENBQUMsQ0FBQztRQUVPLFVBQUssR0FBRyxHQUFTLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRS9DLHFCQUFnQixHQUFHLENBQUksYUFBaUMsRUFBRSxRQUFnQixFQUFFLEVBQUU7WUFDcEYsYUFBYSxDQUFDLFVBQVUsR0FBRyxDQUFDLGtCQUFrQixFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQzVELENBQUMsQ0FBQztJQS9DbUQsQ0FBQzs7Z0hBRDNDLGtCQUFrQjtvSEFBbEIsa0JBQWtCLGNBRmpCLE1BQU07NEZBRVAsa0JBQWtCO2tCQUg5QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdERpYWxvZywgTWF0RGlhbG9nQ29uZmlnIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IEVudHJ5RGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9kaWFsb2dzL2VudHJ5LWRpYWxvZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IElFbnRyeUFsZXJ0RGlhbG9nRGF0YSB9IGZyb20gJy4vZGlhbG9ncy9hbGVydC9lbnRyeS1hbGVydC1kaWFsb2ctZGF0YS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRW50cnlBbGVydERpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vZGlhbG9ncy9hbGVydC9lbnRyeS1hbGVydC1kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEVudHJ5Q29uZmlybURpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vZGlhbG9ncy9jb25maXJtL2VudHJ5LWNvbmZpcm0tZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJRW50cnlDb25maXJtRGlhbG9nRGF0YSB9IGZyb20gJy4vZGlhbG9ncy9jb25maXJtL2VudHJ5LWNvbmZpcm0tZGlhbG9nLWRhdGEuaW50ZXJmYWNlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgRW50cnlEaWFsb2dTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBtYXREaWFsb2c6IE1hdERpYWxvZykgeyB9XG5cbiAgLyoqXG4gICAqIE9wZW5zIGFsZXJ0IGRpYWxvZ1xuICAgKlxuICAgKiBAcGFyYW0gZGF0YSAtIENvbnRhaW5zIHRpdGxlLCBtZXNzYWdlIGFuZCBvcHRpb25hbCBjb25maXJtIGJ1dHRvbiB0ZXh0IG9mIElFbnRyeUFsZXJ0RGlhbG9nRGF0YSB0eXBlXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGUgb2YgYW55XG4gICAqL1xuICBvcGVuQWxlcnQgPSAoZGF0YTogSUVudHJ5QWxlcnREaWFsb2dEYXRhKTogT2JzZXJ2YWJsZTxhbnk+ID0+XG4gICAgdGhpcy5vcGVuKEVudHJ5QWxlcnREaWFsb2dDb21wb25lbnQsIGRhdGEpO1xuXG4gIC8qKlxuICAgKiBPcGVucyBjb25maXJtIGRpYWxvZ1xuICAgKlxuICAgKiBAcGFyYW0gZGF0YSAtIENvbnRhaW5zIHRpdGxlLCBtZXNzYWdlIGFuZCBvcHRpb25hbCBjb25maXJtL2NhbmNlbCBidXR0b25zIHRleHQgb2YgSUVudHJ5Q29uZmlybURpYWxvZ0RhdGEgdHlwZVxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlIG9mIGJvb2wgb3IgdW5kZWZpbmVkLCBgdHJ1ZWAgaWYgY29uZmlybWVkLCBgZmFsc2VgIGlmIGNhbmNlbGVkIG9yIGNsb3NlZFxuICAgKiAsIGB1bmRlZmluZWRgIGlmIGNsb3NlZCBieSBjbGlja2luZyBvdXRzaWRlIG9mIHRoZSBkaWFsb2dcbiAgICovXG4gIG9wZW5Db25maXJtID0gKGRhdGE6IElFbnRyeUNvbmZpcm1EaWFsb2dEYXRhKTogT2JzZXJ2YWJsZTxib29sZWFuIHwgdW5kZWZpbmVkPiA9PlxuICAgIHRoaXMub3BlbihFbnRyeUNvbmZpcm1EaWFsb2dDb21wb25lbnQsIGRhdGEpO1xuXG4gIC8qKlxuICAgKiBPcGVucyBkaWFsb2cgd2l0aCBjdXN0b20gY29tcG9uZW50XG4gICAqXG4gICAqIEBwYXJhbSBjb21wb25lbnQgLSBEaWFsb2cgY3VzdG9tIGNvbXBvbmVudCBpbXBsZW1lbnRhdGlvblxuICAgKiBAcGFyYW0gZGF0YSAtIE9wdGlvbmFsIHBhcmFtZXRlciB1c2VkIHRvIHN1cHBseSBjb21wb25lbnQgd2l0aCBpbnB1dCBwYXJhbWV0ZXJzXG4gICAqIEBwYXJhbSBjc3NDbGFzcyAtIE9wdGlvbmFsIHBhcmFtZXRlciB1c2VkIHRvIHNldCBjdXN0b20gY2xhc3MgdG8gTWF0ZXJpYWwgb3ZlcmxheSBwYW5lXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGUgb2YgYW55IGNvbnRhaW5pbmcgcmVzdWx0IG9mIGRpYWxvZyB3aXRoIGN1c3RvbSBjb21wb25lbnRcbiAgICovXG4gIG9wZW4gPSAoXG4gICAgY29tcG9uZW50OiBUeXBlPEVudHJ5RGlhbG9nQ29tcG9uZW50PixcbiAgICBkYXRhOiB1bmtub3duID0gdW5kZWZpbmVkLFxuICAgIGNzc0NsYXNzOiBzdHJpbmcgPSAnJyk6IE9ic2VydmFibGU8YW55PiA9PiB7XG4gICAgY29uc3QgY29uZmlndXJhdGlvbiA9IG5ldyBNYXREaWFsb2dDb25maWc8dW5rbm93bj4oKTtcbiAgICBjb25maWd1cmF0aW9uLmRhdGEgPSBkYXRhO1xuICAgIHRoaXMuc2V0UGFuZWxDbGFzc0Zvcihjb25maWd1cmF0aW9uLCBjc3NDbGFzcyk7XG5cbiAgICByZXR1cm4gdGhpcy5tYXREaWFsb2dcbiAgICAgIC5vcGVuKGNvbXBvbmVudCwgY29uZmlndXJhdGlvbilcbiAgICAgIC5hZnRlckNsb3NlZCgpXG4gICAgICAucGlwZSh0YWtlKDEpKTtcbiAgfTtcblxuICByZWFkb25seSBjbG9zZSA9ICgpOiB2b2lkID0+IHRoaXMubWF0RGlhbG9nLmNsb3NlQWxsKCk7XG5cbiAgcHJpdmF0ZSBzZXRQYW5lbENsYXNzRm9yID0gPFQ+KGNvbmZpZ3VyYXRpb246IE1hdERpYWxvZ0NvbmZpZzxUPiwgY3NzQ2xhc3M6IHN0cmluZykgPT4ge1xuICAgIGNvbmZpZ3VyYXRpb24ucGFuZWxDbGFzcyA9IFsnZGlhbG9nLWNvbnRhaW5lcicsIGNzc0NsYXNzXTtcbiAgfTtcbn1cbiJdfQ==
@@ -136,8 +136,29 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
136
136
  class EntryDialogService {
137
137
  constructor(matDialog) {
138
138
  this.matDialog = matDialog;
139
+ /**
140
+ * Opens alert dialog
141
+ *
142
+ * @param data - Contains title, message and optional confirm button text of IEntryAlertDialogData type
143
+ * @returns Observable of any
144
+ */
139
145
  this.openAlert = (data) => this.open(EntryAlertDialogComponent, data);
146
+ /**
147
+ * Opens confirm dialog
148
+ *
149
+ * @param data - Contains title, message and optional confirm/cancel buttons text of IEntryConfirmDialogData type
150
+ * @returns Observable of bool or undefined, `true` if confirmed, `false` if canceled or closed
151
+ * , `undefined` if closed by clicking outside of the dialog
152
+ */
140
153
  this.openConfirm = (data) => this.open(EntryConfirmDialogComponent, data);
154
+ /**
155
+ * Opens dialog with custom component
156
+ *
157
+ * @param component - Dialog custom component implementation
158
+ * @param data - Optional parameter used to supply component with input parameters
159
+ * @param cssClass - Optional parameter used to set custom class to Material overlay pane
160
+ * @returns Observable of any containing result of dialog with custom component
161
+ */
141
162
  this.open = (component, data = undefined, cssClass = '') => {
142
163
  const configuration = new MatDialogConfig();
143
164
  configuration.data = data;
@@ -1 +1 @@
1
- {"version":3,"file":"enigmatry-entry-components-dialog.mjs","sources":["../../../../projects/entry-components/dialog/entry-dialog-config.model.ts","../../../../projects/entry-components/dialog/dialogs/entry-dialog.component.ts","../../../../projects/entry-components/dialog/dialogs/entry-dialog.component.html","../../../../projects/entry-components/dialog/dialogs/alert/entry-alert-dialog.component.ts","../../../../projects/entry-components/dialog/dialogs/alert/entry-alert-dialog.component.html","../../../../projects/entry-components/dialog/dialogs/confirm/entry-confirm-dialog.component.ts","../../../../projects/entry-components/dialog/dialogs/confirm/entry-confirm-dialog.component.html","../../../../projects/entry-components/dialog/entry-dialog.service.ts","../../../../projects/entry-components/dialog/entry-dialog.module.ts","../../../../projects/entry-components/dialog/enigmatry-entry-components-dialog.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\nexport class EntryDialogConfig {\n confirmButtonText: string;\n cancelButtonText: string;\n buttonsAlignment: 'align-right' | 'align-center' | '';\n\n constructor(config: Partial<EntryDialogConfig> = {}) {\n this.confirmButtonText = config.confirmButtonText ?? 'Ok';\n this.cancelButtonText = config.cancelButtonText ?? 'Cancel';\n this.buttonsAlignment = config.buttonsAlignment ?? 'align-right';\n }\n}\nexport const ENTRY_DIALOG_CONFIG = new InjectionToken<EntryDialogConfig>('EntryDialogConfig',\n {\n providedIn: 'root',\n factory: () => new EntryDialogConfig()\n }\n);\n","import { Component, HostListener, Inject, Input, TemplateRef } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { Observable, of } from 'rxjs';\nimport { IEntryDialogButtonsConfig } from '../entry-dialog-buttons-config.interface';\nimport { ENTRY_DIALOG_CONFIG, EntryDialogConfig } from '../entry-dialog-config.model';\n\n@Component({\n selector: 'entry-dialog',\n templateUrl: './entry-dialog.component.html',\n styleUrls: ['./entry-dialog.component.scss']\n})\nexport class EntryDialogComponent {\n\n @Input() title: string;\n @Input() buttons: IEntryDialogButtonsConfig = {\n buttonsAlignment: this.config.buttonsAlignment,\n confirmButtonText: this.config.confirmButtonText,\n cancelButtonText: this.config.cancelButtonText,\n visible: true\n };\n\n @Input() disableConfirm = false;\n @Input() buttonsTemplate: TemplateRef<any> | null | undefined;\n\n constructor(\n protected readonly mdDialogRef: MatDialogRef<EntryDialogComponent>,\n @Inject(ENTRY_DIALOG_CONFIG) protected readonly config: EntryDialogConfig) { }\n\n @Input() confirm: () => Observable<unknown> = () => of(true);\n @Input() cancel = () => this.close(false);\n\n @HostListener('keydown.esc')\n readonly onEsc = () => this.cancel();\n\n readonly onSubmit = () => {\n this.confirm().subscribe({\n next: closeDialog => {\n if (closeDialog) {\n this.close(closeDialog);\n }\n }\n });\n };\n\n readonly close = (value: unknown = true) => this.mdDialogRef.close(value);\n}\n","<div class=\"dialog-form\">\n <div class=\"dialog-header\">\n <h1 class=\"dialog-title\">\n {{ title }}\n </h1>\n\n <button type=\"button\" class=\"dialog-close-button\" (click)=\"cancel()\">\n <span class=\"icon-close dialog-close-icon\"></span>\n </button>\n </div>\n\n <mat-dialog-content\n class=\"dialog-content\"\n [ngClass]=\"{'with-actions': buttons.visible}\">\n <ng-content></ng-content>\n </mat-dialog-content>\n\n <ng-template [ngIf]=\"buttonsTemplate\" [ngIfElse]=\"defaultButtonsTemplate\">\n <ng-template [ngTemplateOutlet]=\"buttonsTemplate\"></ng-template>\n </ng-template>\n\n <ng-template #defaultButtonsTemplate>\n <div *ngIf=\"buttons.visible\" class=\"dialog-footer {{ buttons.buttonsAlignment }}\">\n <button\n type=\"button\"\n class=\"button button-accent dialog-footer-button\"\n cdkFocusInitial\n (click)=\"onSubmit()\">{{buttons.confirmButtonText}}</button>\n <button\n type=\"button\"\n class=\"button button-primary dialog-footer-button\"\n *ngIf=\"buttons.cancelButtonText !== ''\"\n (click)=\"cancel()\">{{buttons.cancelButtonText}}</button>\n </div>\n </ng-template>\n</div>","import { ChangeDetectionStrategy, Component, Inject } from '@angular/core';\nimport { EntryDialogComponent } from '../entry-dialog.component';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { IEntryAlertDialogData } from './entry-alert-dialog-data.interface';\nimport { IEntryDialogButtonsConfig } from '../../entry-dialog-buttons-config.interface';\nimport { ENTRY_DIALOG_CONFIG, EntryDialogConfig } from '../../entry-dialog-config.model';\n\n@Component({\n selector: 'entry-alert-dialog',\n templateUrl: './entry-alert-dialog.component.html',\n styleUrls: ['./entry-alert-dialog.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class EntryAlertDialogComponent extends EntryDialogComponent {\n readonly buttons: IEntryDialogButtonsConfig = {\n confirmButtonText: this.data.confirmText ?? this.config.confirmButtonText,\n cancelButtonText: '',\n buttonsAlignment: 'align-center',\n visible: true\n };\n\n constructor(\n protected readonly mdDialogRef: MatDialogRef<EntryDialogComponent>,\n @Inject(ENTRY_DIALOG_CONFIG) protected readonly config: EntryDialogConfig,\n @Inject(MAT_DIALOG_DATA) public data: IEntryAlertDialogData) {\n super(mdDialogRef, config);\n }\n}\n","<entry-dialog [title]='data.title' [buttons]=\"buttons\">\n <p>{{data.message}}</p>\n</entry-dialog>","import { ChangeDetectionStrategy, Component, Inject } from '@angular/core';\nimport { IEntryDialogButtonsConfig } from '../../entry-dialog-buttons-config.interface';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { EntryDialogComponent } from '../entry-dialog.component';\nimport { IEntryConfirmDialogData } from './entry-confirm-dialog-data.interface';\nimport { ENTRY_DIALOG_CONFIG, EntryDialogConfig } from '../../entry-dialog-config.model';\n\n@Component({\n selector: 'entry-confirm-dialog',\n templateUrl: './entry-confirm-dialog.component.html',\n styleUrls: ['./entry-confirm-dialog.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class EntryConfirmDialogComponent extends EntryDialogComponent {\n readonly buttons: IEntryDialogButtonsConfig = {\n confirmButtonText: this.data.confirmText ?? this.config.confirmButtonText,\n cancelButtonText: this.data.cancelText ?? this.config.cancelButtonText,\n buttonsAlignment: 'align-right',\n visible: true\n };\n\n constructor(\n protected readonly mdDialogRef: MatDialogRef<EntryDialogComponent>,\n @Inject(ENTRY_DIALOG_CONFIG) protected readonly config: EntryDialogConfig,\n @Inject(MAT_DIALOG_DATA) readonly data: IEntryConfirmDialogData) {\n super(mdDialogRef, config);\n }\n}\n","<entry-dialog [title]='data.title' [buttons]=\"buttons\">\n <p>{{data.message}}</p>\n</entry-dialog>","import { Injectable, Type } from '@angular/core';\nimport { MatDialog, MatDialogConfig } from '@angular/material/dialog';\nimport { EntryDialogComponent } from './dialogs/entry-dialog.component';\nimport { take } from 'rxjs/operators';\nimport { IEntryAlertDialogData } from './dialogs/alert/entry-alert-dialog-data.interface';\nimport { EntryAlertDialogComponent } from './dialogs/alert/entry-alert-dialog.component';\nimport { Observable } from 'rxjs';\nimport { EntryConfirmDialogComponent } from './dialogs/confirm/entry-confirm-dialog.component';\nimport { IEntryConfirmDialogData } from './dialogs/confirm/entry-confirm-dialog-data.interface';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class EntryDialogService {\n constructor(private readonly matDialog: MatDialog) { }\n\n openAlert = (data: IEntryAlertDialogData): Observable<any> =>\n this.open(EntryAlertDialogComponent, data);\n\n readonly openConfirm = (data: IEntryConfirmDialogData): Observable<boolean | undefined> =>\n this.open(EntryConfirmDialogComponent, data);\n\n readonly open = (component: Type<EntryDialogComponent>, data: unknown = undefined, cssClass: string = '') => {\n const configuration = new MatDialogConfig<unknown>();\n configuration.data = data;\n this.setPanelClassFor(configuration, cssClass);\n\n return this.matDialog\n .open(component, configuration)\n .afterClosed()\n .pipe(take(1));\n };\n\n readonly close = (): void => this.matDialog.closeAll();\n\n private setPanelClassFor = <T>(configuration: MatDialogConfig<T>, cssClass: string) => {\n configuration.panelClass = ['dialog-container', cssClass];\n };\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { EntryAlertDialogComponent } from './dialogs/alert/entry-alert-dialog.component';\nimport { EntryConfirmDialogComponent } from './dialogs/confirm/entry-confirm-dialog.component';\nimport { EntryDialogComponent } from './dialogs/entry-dialog.component';\n\n@NgModule({\n declarations: [\n EntryDialogComponent,\n EntryAlertDialogComponent,\n EntryConfirmDialogComponent\n ],\n imports: [\n CommonModule,\n MatDialogModule\n ],\n exports: [\n EntryDialogComponent,\n EntryAlertDialogComponent,\n EntryConfirmDialogComponent\n ]\n})\nexport class EntryDialogModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.EntryDialogComponent"],"mappings":"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"}
1
+ {"version":3,"file":"enigmatry-entry-components-dialog.mjs","sources":["../../../../projects/entry-components/dialog/entry-dialog-config.model.ts","../../../../projects/entry-components/dialog/dialogs/entry-dialog.component.ts","../../../../projects/entry-components/dialog/dialogs/entry-dialog.component.html","../../../../projects/entry-components/dialog/dialogs/alert/entry-alert-dialog.component.ts","../../../../projects/entry-components/dialog/dialogs/alert/entry-alert-dialog.component.html","../../../../projects/entry-components/dialog/dialogs/confirm/entry-confirm-dialog.component.ts","../../../../projects/entry-components/dialog/dialogs/confirm/entry-confirm-dialog.component.html","../../../../projects/entry-components/dialog/entry-dialog.service.ts","../../../../projects/entry-components/dialog/entry-dialog.module.ts","../../../../projects/entry-components/dialog/enigmatry-entry-components-dialog.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\nexport class EntryDialogConfig {\n confirmButtonText: string;\n cancelButtonText: string;\n buttonsAlignment: 'align-right' | 'align-center' | '';\n\n constructor(config: Partial<EntryDialogConfig> = {}) {\n this.confirmButtonText = config.confirmButtonText ?? 'Ok';\n this.cancelButtonText = config.cancelButtonText ?? 'Cancel';\n this.buttonsAlignment = config.buttonsAlignment ?? 'align-right';\n }\n}\nexport const ENTRY_DIALOG_CONFIG = new InjectionToken<EntryDialogConfig>('EntryDialogConfig',\n {\n providedIn: 'root',\n factory: () => new EntryDialogConfig()\n }\n);\n","import { Component, HostListener, Inject, Input, TemplateRef } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { Observable, of } from 'rxjs';\nimport { IEntryDialogButtonsConfig } from '../entry-dialog-buttons-config.interface';\nimport { ENTRY_DIALOG_CONFIG, EntryDialogConfig } from '../entry-dialog-config.model';\n\n@Component({\n selector: 'entry-dialog',\n templateUrl: './entry-dialog.component.html',\n styleUrls: ['./entry-dialog.component.scss']\n})\nexport class EntryDialogComponent {\n\n @Input() title: string;\n @Input() buttons: IEntryDialogButtonsConfig = {\n buttonsAlignment: this.config.buttonsAlignment,\n confirmButtonText: this.config.confirmButtonText,\n cancelButtonText: this.config.cancelButtonText,\n visible: true\n };\n\n @Input() disableConfirm = false;\n @Input() buttonsTemplate: TemplateRef<any> | null | undefined;\n\n constructor(\n protected readonly mdDialogRef: MatDialogRef<EntryDialogComponent>,\n @Inject(ENTRY_DIALOG_CONFIG) protected readonly config: EntryDialogConfig) { }\n\n @Input() confirm: () => Observable<unknown> = () => of(true);\n @Input() cancel = () => this.close(false);\n\n @HostListener('keydown.esc')\n readonly onEsc = () => this.cancel();\n\n readonly onSubmit = () => {\n this.confirm().subscribe({\n next: closeDialog => {\n if (closeDialog) {\n this.close(closeDialog);\n }\n }\n });\n };\n\n readonly close = (value: unknown = true) => this.mdDialogRef.close(value);\n}\n","<div class=\"dialog-form\">\n <div class=\"dialog-header\">\n <h1 class=\"dialog-title\">\n {{ title }}\n </h1>\n\n <button type=\"button\" class=\"dialog-close-button\" (click)=\"cancel()\">\n <span class=\"icon-close dialog-close-icon\"></span>\n </button>\n </div>\n\n <mat-dialog-content\n class=\"dialog-content\"\n [ngClass]=\"{'with-actions': buttons.visible}\">\n <ng-content></ng-content>\n </mat-dialog-content>\n\n <ng-template [ngIf]=\"buttonsTemplate\" [ngIfElse]=\"defaultButtonsTemplate\">\n <ng-template [ngTemplateOutlet]=\"buttonsTemplate\"></ng-template>\n </ng-template>\n\n <ng-template #defaultButtonsTemplate>\n <div *ngIf=\"buttons.visible\" class=\"dialog-footer {{ buttons.buttonsAlignment }}\">\n <button\n type=\"button\"\n class=\"button button-accent dialog-footer-button\"\n cdkFocusInitial\n (click)=\"onSubmit()\">{{buttons.confirmButtonText}}</button>\n <button\n type=\"button\"\n class=\"button button-primary dialog-footer-button\"\n *ngIf=\"buttons.cancelButtonText !== ''\"\n (click)=\"cancel()\">{{buttons.cancelButtonText}}</button>\n </div>\n </ng-template>\n</div>","import { ChangeDetectionStrategy, Component, Inject } from '@angular/core';\nimport { EntryDialogComponent } from '../entry-dialog.component';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { IEntryAlertDialogData } from './entry-alert-dialog-data.interface';\nimport { IEntryDialogButtonsConfig } from '../../entry-dialog-buttons-config.interface';\nimport { ENTRY_DIALOG_CONFIG, EntryDialogConfig } from '../../entry-dialog-config.model';\n\n@Component({\n selector: 'entry-alert-dialog',\n templateUrl: './entry-alert-dialog.component.html',\n styleUrls: ['./entry-alert-dialog.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class EntryAlertDialogComponent extends EntryDialogComponent {\n readonly buttons: IEntryDialogButtonsConfig = {\n confirmButtonText: this.data.confirmText ?? this.config.confirmButtonText,\n cancelButtonText: '',\n buttonsAlignment: 'align-center',\n visible: true\n };\n\n constructor(\n protected readonly mdDialogRef: MatDialogRef<EntryDialogComponent>,\n @Inject(ENTRY_DIALOG_CONFIG) protected readonly config: EntryDialogConfig,\n @Inject(MAT_DIALOG_DATA) public data: IEntryAlertDialogData) {\n super(mdDialogRef, config);\n }\n}\n","<entry-dialog [title]='data.title' [buttons]=\"buttons\">\n <p>{{data.message}}</p>\n</entry-dialog>","import { ChangeDetectionStrategy, Component, Inject } from '@angular/core';\nimport { IEntryDialogButtonsConfig } from '../../entry-dialog-buttons-config.interface';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { EntryDialogComponent } from '../entry-dialog.component';\nimport { IEntryConfirmDialogData } from './entry-confirm-dialog-data.interface';\nimport { ENTRY_DIALOG_CONFIG, EntryDialogConfig } from '../../entry-dialog-config.model';\n\n@Component({\n selector: 'entry-confirm-dialog',\n templateUrl: './entry-confirm-dialog.component.html',\n styleUrls: ['./entry-confirm-dialog.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class EntryConfirmDialogComponent extends EntryDialogComponent {\n readonly buttons: IEntryDialogButtonsConfig = {\n confirmButtonText: this.data.confirmText ?? this.config.confirmButtonText,\n cancelButtonText: this.data.cancelText ?? this.config.cancelButtonText,\n buttonsAlignment: 'align-right',\n visible: true\n };\n\n constructor(\n protected readonly mdDialogRef: MatDialogRef<EntryDialogComponent>,\n @Inject(ENTRY_DIALOG_CONFIG) protected readonly config: EntryDialogConfig,\n @Inject(MAT_DIALOG_DATA) readonly data: IEntryConfirmDialogData) {\n super(mdDialogRef, config);\n }\n}\n","<entry-dialog [title]='data.title' [buttons]=\"buttons\">\n <p>{{data.message}}</p>\n</entry-dialog>","import { Injectable, Type } from '@angular/core';\nimport { MatDialog, MatDialogConfig } from '@angular/material/dialog';\nimport { EntryDialogComponent } from './dialogs/entry-dialog.component';\nimport { take } from 'rxjs/operators';\nimport { IEntryAlertDialogData } from './dialogs/alert/entry-alert-dialog-data.interface';\nimport { EntryAlertDialogComponent } from './dialogs/alert/entry-alert-dialog.component';\nimport { Observable } from 'rxjs';\nimport { EntryConfirmDialogComponent } from './dialogs/confirm/entry-confirm-dialog.component';\nimport { IEntryConfirmDialogData } from './dialogs/confirm/entry-confirm-dialog-data.interface';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class EntryDialogService {\n constructor(private readonly matDialog: MatDialog) { }\n\n /**\n * Opens alert dialog\n *\n * @param data - Contains title, message and optional confirm button text of IEntryAlertDialogData type\n * @returns Observable of any\n */\n openAlert = (data: IEntryAlertDialogData): Observable<any> =>\n this.open(EntryAlertDialogComponent, data);\n\n /**\n * Opens confirm dialog\n *\n * @param data - Contains title, message and optional confirm/cancel buttons text of IEntryConfirmDialogData type\n * @returns Observable of bool or undefined, `true` if confirmed, `false` if canceled or closed\n * , `undefined` if closed by clicking outside of the dialog\n */\n openConfirm = (data: IEntryConfirmDialogData): Observable<boolean | undefined> =>\n this.open(EntryConfirmDialogComponent, data);\n\n /**\n * Opens dialog with custom component\n *\n * @param component - Dialog custom component implementation\n * @param data - Optional parameter used to supply component with input parameters\n * @param cssClass - Optional parameter used to set custom class to Material overlay pane\n * @returns Observable of any containing result of dialog with custom component\n */\n open = (\n component: Type<EntryDialogComponent>,\n data: unknown = undefined,\n cssClass: string = ''): Observable<any> => {\n const configuration = new MatDialogConfig<unknown>();\n configuration.data = data;\n this.setPanelClassFor(configuration, cssClass);\n\n return this.matDialog\n .open(component, configuration)\n .afterClosed()\n .pipe(take(1));\n };\n\n readonly close = (): void => this.matDialog.closeAll();\n\n private setPanelClassFor = <T>(configuration: MatDialogConfig<T>, cssClass: string) => {\n configuration.panelClass = ['dialog-container', cssClass];\n };\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { EntryAlertDialogComponent } from './dialogs/alert/entry-alert-dialog.component';\nimport { EntryConfirmDialogComponent } from './dialogs/confirm/entry-confirm-dialog.component';\nimport { EntryDialogComponent } from './dialogs/entry-dialog.component';\n\n@NgModule({\n declarations: [\n EntryDialogComponent,\n EntryAlertDialogComponent,\n EntryConfirmDialogComponent\n ],\n imports: [\n CommonModule,\n MatDialogModule\n ],\n exports: [\n EntryDialogComponent,\n EntryAlertDialogComponent,\n EntryConfirmDialogComponent\n ]\n})\nexport class EntryDialogModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.EntryDialogComponent"],"mappings":"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"}
@@ -127,8 +127,29 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
127
127
  class EntryDialogService {
128
128
  constructor(matDialog) {
129
129
  this.matDialog = matDialog;
130
+ /**
131
+ * Opens alert dialog
132
+ *
133
+ * @param data - Contains title, message and optional confirm button text of IEntryAlertDialogData type
134
+ * @returns Observable of any
135
+ */
130
136
  this.openAlert = (data) => this.open(EntryAlertDialogComponent, data);
137
+ /**
138
+ * Opens confirm dialog
139
+ *
140
+ * @param data - Contains title, message and optional confirm/cancel buttons text of IEntryConfirmDialogData type
141
+ * @returns Observable of bool or undefined, `true` if confirmed, `false` if canceled or closed
142
+ * , `undefined` if closed by clicking outside of the dialog
143
+ */
131
144
  this.openConfirm = (data) => this.open(EntryConfirmDialogComponent, data);
145
+ /**
146
+ * Opens dialog with custom component
147
+ *
148
+ * @param component - Dialog custom component implementation
149
+ * @param data - Optional parameter used to supply component with input parameters
150
+ * @param cssClass - Optional parameter used to set custom class to Material overlay pane
151
+ * @returns Observable of any containing result of dialog with custom component
152
+ */
132
153
  this.open = (component, data = undefined, cssClass = '') => {
133
154
  const configuration = new MatDialogConfig();
134
155
  configuration.data = data;
@@ -1 +1 @@
1
- {"version":3,"file":"enigmatry-entry-components-dialog.mjs","sources":["../../../../projects/entry-components/dialog/entry-dialog-config.model.ts","../../../../projects/entry-components/dialog/dialogs/entry-dialog.component.ts","../../../../projects/entry-components/dialog/dialogs/entry-dialog.component.html","../../../../projects/entry-components/dialog/dialogs/alert/entry-alert-dialog.component.ts","../../../../projects/entry-components/dialog/dialogs/alert/entry-alert-dialog.component.html","../../../../projects/entry-components/dialog/dialogs/confirm/entry-confirm-dialog.component.ts","../../../../projects/entry-components/dialog/dialogs/confirm/entry-confirm-dialog.component.html","../../../../projects/entry-components/dialog/entry-dialog.service.ts","../../../../projects/entry-components/dialog/entry-dialog.module.ts","../../../../projects/entry-components/dialog/enigmatry-entry-components-dialog.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\nexport class EntryDialogConfig {\n confirmButtonText: string;\n cancelButtonText: string;\n buttonsAlignment: 'align-right' | 'align-center' | '';\n\n constructor(config: Partial<EntryDialogConfig> = {}) {\n this.confirmButtonText = config.confirmButtonText ?? 'Ok';\n this.cancelButtonText = config.cancelButtonText ?? 'Cancel';\n this.buttonsAlignment = config.buttonsAlignment ?? 'align-right';\n }\n}\nexport const ENTRY_DIALOG_CONFIG = new InjectionToken<EntryDialogConfig>('EntryDialogConfig',\n {\n providedIn: 'root',\n factory: () => new EntryDialogConfig()\n }\n);\n","import { Component, HostListener, Inject, Input, TemplateRef } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { Observable, of } from 'rxjs';\nimport { IEntryDialogButtonsConfig } from '../entry-dialog-buttons-config.interface';\nimport { ENTRY_DIALOG_CONFIG, EntryDialogConfig } from '../entry-dialog-config.model';\n\n@Component({\n selector: 'entry-dialog',\n templateUrl: './entry-dialog.component.html',\n styleUrls: ['./entry-dialog.component.scss']\n})\nexport class EntryDialogComponent {\n\n @Input() title: string;\n @Input() buttons: IEntryDialogButtonsConfig = {\n buttonsAlignment: this.config.buttonsAlignment,\n confirmButtonText: this.config.confirmButtonText,\n cancelButtonText: this.config.cancelButtonText,\n visible: true\n };\n\n @Input() disableConfirm = false;\n @Input() buttonsTemplate: TemplateRef<any> | null | undefined;\n\n constructor(\n protected readonly mdDialogRef: MatDialogRef<EntryDialogComponent>,\n @Inject(ENTRY_DIALOG_CONFIG) protected readonly config: EntryDialogConfig) { }\n\n @Input() confirm: () => Observable<unknown> = () => of(true);\n @Input() cancel = () => this.close(false);\n\n @HostListener('keydown.esc')\n readonly onEsc = () => this.cancel();\n\n readonly onSubmit = () => {\n this.confirm().subscribe({\n next: closeDialog => {\n if (closeDialog) {\n this.close(closeDialog);\n }\n }\n });\n };\n\n readonly close = (value: unknown = true) => this.mdDialogRef.close(value);\n}\n","<div class=\"dialog-form\">\n <div class=\"dialog-header\">\n <h1 class=\"dialog-title\">\n {{ title }}\n </h1>\n\n <button type=\"button\" class=\"dialog-close-button\" (click)=\"cancel()\">\n <span class=\"icon-close dialog-close-icon\"></span>\n </button>\n </div>\n\n <mat-dialog-content\n class=\"dialog-content\"\n [ngClass]=\"{'with-actions': buttons.visible}\">\n <ng-content></ng-content>\n </mat-dialog-content>\n\n <ng-template [ngIf]=\"buttonsTemplate\" [ngIfElse]=\"defaultButtonsTemplate\">\n <ng-template [ngTemplateOutlet]=\"buttonsTemplate\"></ng-template>\n </ng-template>\n\n <ng-template #defaultButtonsTemplate>\n <div *ngIf=\"buttons.visible\" class=\"dialog-footer {{ buttons.buttonsAlignment }}\">\n <button\n type=\"button\"\n class=\"button button-accent dialog-footer-button\"\n cdkFocusInitial\n (click)=\"onSubmit()\">{{buttons.confirmButtonText}}</button>\n <button\n type=\"button\"\n class=\"button button-primary dialog-footer-button\"\n *ngIf=\"buttons.cancelButtonText !== ''\"\n (click)=\"cancel()\">{{buttons.cancelButtonText}}</button>\n </div>\n </ng-template>\n</div>","import { ChangeDetectionStrategy, Component, Inject } from '@angular/core';\nimport { EntryDialogComponent } from '../entry-dialog.component';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { IEntryAlertDialogData } from './entry-alert-dialog-data.interface';\nimport { IEntryDialogButtonsConfig } from '../../entry-dialog-buttons-config.interface';\nimport { ENTRY_DIALOG_CONFIG, EntryDialogConfig } from '../../entry-dialog-config.model';\n\n@Component({\n selector: 'entry-alert-dialog',\n templateUrl: './entry-alert-dialog.component.html',\n styleUrls: ['./entry-alert-dialog.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class EntryAlertDialogComponent extends EntryDialogComponent {\n readonly buttons: IEntryDialogButtonsConfig = {\n confirmButtonText: this.data.confirmText ?? this.config.confirmButtonText,\n cancelButtonText: '',\n buttonsAlignment: 'align-center',\n visible: true\n };\n\n constructor(\n protected readonly mdDialogRef: MatDialogRef<EntryDialogComponent>,\n @Inject(ENTRY_DIALOG_CONFIG) protected readonly config: EntryDialogConfig,\n @Inject(MAT_DIALOG_DATA) public data: IEntryAlertDialogData) {\n super(mdDialogRef, config);\n }\n}\n","<entry-dialog [title]='data.title' [buttons]=\"buttons\">\n <p>{{data.message}}</p>\n</entry-dialog>","import { ChangeDetectionStrategy, Component, Inject } from '@angular/core';\nimport { IEntryDialogButtonsConfig } from '../../entry-dialog-buttons-config.interface';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { EntryDialogComponent } from '../entry-dialog.component';\nimport { IEntryConfirmDialogData } from './entry-confirm-dialog-data.interface';\nimport { ENTRY_DIALOG_CONFIG, EntryDialogConfig } from '../../entry-dialog-config.model';\n\n@Component({\n selector: 'entry-confirm-dialog',\n templateUrl: './entry-confirm-dialog.component.html',\n styleUrls: ['./entry-confirm-dialog.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class EntryConfirmDialogComponent extends EntryDialogComponent {\n readonly buttons: IEntryDialogButtonsConfig = {\n confirmButtonText: this.data.confirmText ?? this.config.confirmButtonText,\n cancelButtonText: this.data.cancelText ?? this.config.cancelButtonText,\n buttonsAlignment: 'align-right',\n visible: true\n };\n\n constructor(\n protected readonly mdDialogRef: MatDialogRef<EntryDialogComponent>,\n @Inject(ENTRY_DIALOG_CONFIG) protected readonly config: EntryDialogConfig,\n @Inject(MAT_DIALOG_DATA) readonly data: IEntryConfirmDialogData) {\n super(mdDialogRef, config);\n }\n}\n","<entry-dialog [title]='data.title' [buttons]=\"buttons\">\n <p>{{data.message}}</p>\n</entry-dialog>","import { Injectable, Type } from '@angular/core';\nimport { MatDialog, MatDialogConfig } from '@angular/material/dialog';\nimport { EntryDialogComponent } from './dialogs/entry-dialog.component';\nimport { take } from 'rxjs/operators';\nimport { IEntryAlertDialogData } from './dialogs/alert/entry-alert-dialog-data.interface';\nimport { EntryAlertDialogComponent } from './dialogs/alert/entry-alert-dialog.component';\nimport { Observable } from 'rxjs';\nimport { EntryConfirmDialogComponent } from './dialogs/confirm/entry-confirm-dialog.component';\nimport { IEntryConfirmDialogData } from './dialogs/confirm/entry-confirm-dialog-data.interface';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class EntryDialogService {\n constructor(private readonly matDialog: MatDialog) { }\n\n openAlert = (data: IEntryAlertDialogData): Observable<any> =>\n this.open(EntryAlertDialogComponent, data);\n\n readonly openConfirm = (data: IEntryConfirmDialogData): Observable<boolean | undefined> =>\n this.open(EntryConfirmDialogComponent, data);\n\n readonly open = (component: Type<EntryDialogComponent>, data: unknown = undefined, cssClass: string = '') => {\n const configuration = new MatDialogConfig<unknown>();\n configuration.data = data;\n this.setPanelClassFor(configuration, cssClass);\n\n return this.matDialog\n .open(component, configuration)\n .afterClosed()\n .pipe(take(1));\n };\n\n readonly close = (): void => this.matDialog.closeAll();\n\n private setPanelClassFor = <T>(configuration: MatDialogConfig<T>, cssClass: string) => {\n configuration.panelClass = ['dialog-container', cssClass];\n };\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { EntryAlertDialogComponent } from './dialogs/alert/entry-alert-dialog.component';\nimport { EntryConfirmDialogComponent } from './dialogs/confirm/entry-confirm-dialog.component';\nimport { EntryDialogComponent } from './dialogs/entry-dialog.component';\n\n@NgModule({\n declarations: [\n EntryDialogComponent,\n EntryAlertDialogComponent,\n EntryConfirmDialogComponent\n ],\n imports: [\n CommonModule,\n MatDialogModule\n ],\n exports: [\n EntryDialogComponent,\n EntryAlertDialogComponent,\n EntryConfirmDialogComponent\n ]\n})\nexport class EntryDialogModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.EntryDialogComponent"],"mappings":"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"}
1
+ {"version":3,"file":"enigmatry-entry-components-dialog.mjs","sources":["../../../../projects/entry-components/dialog/entry-dialog-config.model.ts","../../../../projects/entry-components/dialog/dialogs/entry-dialog.component.ts","../../../../projects/entry-components/dialog/dialogs/entry-dialog.component.html","../../../../projects/entry-components/dialog/dialogs/alert/entry-alert-dialog.component.ts","../../../../projects/entry-components/dialog/dialogs/alert/entry-alert-dialog.component.html","../../../../projects/entry-components/dialog/dialogs/confirm/entry-confirm-dialog.component.ts","../../../../projects/entry-components/dialog/dialogs/confirm/entry-confirm-dialog.component.html","../../../../projects/entry-components/dialog/entry-dialog.service.ts","../../../../projects/entry-components/dialog/entry-dialog.module.ts","../../../../projects/entry-components/dialog/enigmatry-entry-components-dialog.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\nexport class EntryDialogConfig {\n confirmButtonText: string;\n cancelButtonText: string;\n buttonsAlignment: 'align-right' | 'align-center' | '';\n\n constructor(config: Partial<EntryDialogConfig> = {}) {\n this.confirmButtonText = config.confirmButtonText ?? 'Ok';\n this.cancelButtonText = config.cancelButtonText ?? 'Cancel';\n this.buttonsAlignment = config.buttonsAlignment ?? 'align-right';\n }\n}\nexport const ENTRY_DIALOG_CONFIG = new InjectionToken<EntryDialogConfig>('EntryDialogConfig',\n {\n providedIn: 'root',\n factory: () => new EntryDialogConfig()\n }\n);\n","import { Component, HostListener, Inject, Input, TemplateRef } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { Observable, of } from 'rxjs';\nimport { IEntryDialogButtonsConfig } from '../entry-dialog-buttons-config.interface';\nimport { ENTRY_DIALOG_CONFIG, EntryDialogConfig } from '../entry-dialog-config.model';\n\n@Component({\n selector: 'entry-dialog',\n templateUrl: './entry-dialog.component.html',\n styleUrls: ['./entry-dialog.component.scss']\n})\nexport class EntryDialogComponent {\n\n @Input() title: string;\n @Input() buttons: IEntryDialogButtonsConfig = {\n buttonsAlignment: this.config.buttonsAlignment,\n confirmButtonText: this.config.confirmButtonText,\n cancelButtonText: this.config.cancelButtonText,\n visible: true\n };\n\n @Input() disableConfirm = false;\n @Input() buttonsTemplate: TemplateRef<any> | null | undefined;\n\n constructor(\n protected readonly mdDialogRef: MatDialogRef<EntryDialogComponent>,\n @Inject(ENTRY_DIALOG_CONFIG) protected readonly config: EntryDialogConfig) { }\n\n @Input() confirm: () => Observable<unknown> = () => of(true);\n @Input() cancel = () => this.close(false);\n\n @HostListener('keydown.esc')\n readonly onEsc = () => this.cancel();\n\n readonly onSubmit = () => {\n this.confirm().subscribe({\n next: closeDialog => {\n if (closeDialog) {\n this.close(closeDialog);\n }\n }\n });\n };\n\n readonly close = (value: unknown = true) => this.mdDialogRef.close(value);\n}\n","<div class=\"dialog-form\">\n <div class=\"dialog-header\">\n <h1 class=\"dialog-title\">\n {{ title }}\n </h1>\n\n <button type=\"button\" class=\"dialog-close-button\" (click)=\"cancel()\">\n <span class=\"icon-close dialog-close-icon\"></span>\n </button>\n </div>\n\n <mat-dialog-content\n class=\"dialog-content\"\n [ngClass]=\"{'with-actions': buttons.visible}\">\n <ng-content></ng-content>\n </mat-dialog-content>\n\n <ng-template [ngIf]=\"buttonsTemplate\" [ngIfElse]=\"defaultButtonsTemplate\">\n <ng-template [ngTemplateOutlet]=\"buttonsTemplate\"></ng-template>\n </ng-template>\n\n <ng-template #defaultButtonsTemplate>\n <div *ngIf=\"buttons.visible\" class=\"dialog-footer {{ buttons.buttonsAlignment }}\">\n <button\n type=\"button\"\n class=\"button button-accent dialog-footer-button\"\n cdkFocusInitial\n (click)=\"onSubmit()\">{{buttons.confirmButtonText}}</button>\n <button\n type=\"button\"\n class=\"button button-primary dialog-footer-button\"\n *ngIf=\"buttons.cancelButtonText !== ''\"\n (click)=\"cancel()\">{{buttons.cancelButtonText}}</button>\n </div>\n </ng-template>\n</div>","import { ChangeDetectionStrategy, Component, Inject } from '@angular/core';\nimport { EntryDialogComponent } from '../entry-dialog.component';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { IEntryAlertDialogData } from './entry-alert-dialog-data.interface';\nimport { IEntryDialogButtonsConfig } from '../../entry-dialog-buttons-config.interface';\nimport { ENTRY_DIALOG_CONFIG, EntryDialogConfig } from '../../entry-dialog-config.model';\n\n@Component({\n selector: 'entry-alert-dialog',\n templateUrl: './entry-alert-dialog.component.html',\n styleUrls: ['./entry-alert-dialog.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class EntryAlertDialogComponent extends EntryDialogComponent {\n readonly buttons: IEntryDialogButtonsConfig = {\n confirmButtonText: this.data.confirmText ?? this.config.confirmButtonText,\n cancelButtonText: '',\n buttonsAlignment: 'align-center',\n visible: true\n };\n\n constructor(\n protected readonly mdDialogRef: MatDialogRef<EntryDialogComponent>,\n @Inject(ENTRY_DIALOG_CONFIG) protected readonly config: EntryDialogConfig,\n @Inject(MAT_DIALOG_DATA) public data: IEntryAlertDialogData) {\n super(mdDialogRef, config);\n }\n}\n","<entry-dialog [title]='data.title' [buttons]=\"buttons\">\n <p>{{data.message}}</p>\n</entry-dialog>","import { ChangeDetectionStrategy, Component, Inject } from '@angular/core';\nimport { IEntryDialogButtonsConfig } from '../../entry-dialog-buttons-config.interface';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { EntryDialogComponent } from '../entry-dialog.component';\nimport { IEntryConfirmDialogData } from './entry-confirm-dialog-data.interface';\nimport { ENTRY_DIALOG_CONFIG, EntryDialogConfig } from '../../entry-dialog-config.model';\n\n@Component({\n selector: 'entry-confirm-dialog',\n templateUrl: './entry-confirm-dialog.component.html',\n styleUrls: ['./entry-confirm-dialog.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class EntryConfirmDialogComponent extends EntryDialogComponent {\n readonly buttons: IEntryDialogButtonsConfig = {\n confirmButtonText: this.data.confirmText ?? this.config.confirmButtonText,\n cancelButtonText: this.data.cancelText ?? this.config.cancelButtonText,\n buttonsAlignment: 'align-right',\n visible: true\n };\n\n constructor(\n protected readonly mdDialogRef: MatDialogRef<EntryDialogComponent>,\n @Inject(ENTRY_DIALOG_CONFIG) protected readonly config: EntryDialogConfig,\n @Inject(MAT_DIALOG_DATA) readonly data: IEntryConfirmDialogData) {\n super(mdDialogRef, config);\n }\n}\n","<entry-dialog [title]='data.title' [buttons]=\"buttons\">\n <p>{{data.message}}</p>\n</entry-dialog>","import { Injectable, Type } from '@angular/core';\nimport { MatDialog, MatDialogConfig } from '@angular/material/dialog';\nimport { EntryDialogComponent } from './dialogs/entry-dialog.component';\nimport { take } from 'rxjs/operators';\nimport { IEntryAlertDialogData } from './dialogs/alert/entry-alert-dialog-data.interface';\nimport { EntryAlertDialogComponent } from './dialogs/alert/entry-alert-dialog.component';\nimport { Observable } from 'rxjs';\nimport { EntryConfirmDialogComponent } from './dialogs/confirm/entry-confirm-dialog.component';\nimport { IEntryConfirmDialogData } from './dialogs/confirm/entry-confirm-dialog-data.interface';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class EntryDialogService {\n constructor(private readonly matDialog: MatDialog) { }\n\n /**\n * Opens alert dialog\n *\n * @param data - Contains title, message and optional confirm button text of IEntryAlertDialogData type\n * @returns Observable of any\n */\n openAlert = (data: IEntryAlertDialogData): Observable<any> =>\n this.open(EntryAlertDialogComponent, data);\n\n /**\n * Opens confirm dialog\n *\n * @param data - Contains title, message and optional confirm/cancel buttons text of IEntryConfirmDialogData type\n * @returns Observable of bool or undefined, `true` if confirmed, `false` if canceled or closed\n * , `undefined` if closed by clicking outside of the dialog\n */\n openConfirm = (data: IEntryConfirmDialogData): Observable<boolean | undefined> =>\n this.open(EntryConfirmDialogComponent, data);\n\n /**\n * Opens dialog with custom component\n *\n * @param component - Dialog custom component implementation\n * @param data - Optional parameter used to supply component with input parameters\n * @param cssClass - Optional parameter used to set custom class to Material overlay pane\n * @returns Observable of any containing result of dialog with custom component\n */\n open = (\n component: Type<EntryDialogComponent>,\n data: unknown = undefined,\n cssClass: string = ''): Observable<any> => {\n const configuration = new MatDialogConfig<unknown>();\n configuration.data = data;\n this.setPanelClassFor(configuration, cssClass);\n\n return this.matDialog\n .open(component, configuration)\n .afterClosed()\n .pipe(take(1));\n };\n\n readonly close = (): void => this.matDialog.closeAll();\n\n private setPanelClassFor = <T>(configuration: MatDialogConfig<T>, cssClass: string) => {\n configuration.panelClass = ['dialog-container', cssClass];\n };\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { EntryAlertDialogComponent } from './dialogs/alert/entry-alert-dialog.component';\nimport { EntryConfirmDialogComponent } from './dialogs/confirm/entry-confirm-dialog.component';\nimport { EntryDialogComponent } from './dialogs/entry-dialog.component';\n\n@NgModule({\n declarations: [\n EntryDialogComponent,\n EntryAlertDialogComponent,\n EntryConfirmDialogComponent\n ],\n imports: [\n CommonModule,\n MatDialogModule\n ],\n exports: [\n EntryDialogComponent,\n EntryAlertDialogComponent,\n EntryConfirmDialogComponent\n ]\n})\nexport class EntryDialogModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.EntryDialogComponent"],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ # Entry Header
2
+
3
+ Simple way of providing header layout and styling for the page or section header.
4
+
5
+ ## Imports
6
+
7
+ ```ts
8
+ import { EntryHeaderModule } from '@enigmatry/entry-components/entry-header';
9
+ ```
10
+
11
+ ## Basic usage
12
+
13
+ `entry-header` is used to provide standard layout and styles:
14
+
15
+ ```html
16
+ <entry-header [title]="'Title here'">
17
+ <div buttons>
18
+ <button mat-raised-button color="primary">Add new</button>
19
+ <button mat-raised-button color="accent">Other action</button>
20
+ </div>
21
+ <div content>
22
+ Content goes here...
23
+ </div>
24
+ </entry-header>
25
+ ```
26
+
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@enigmatry/entry-components",
3
- "version": "1.2.58",
3
+ "version": "1.2.60",
4
4
  "author": "Enigmatry",
5
5
  "description": "Enigmatry entry angular material components",
6
6
  "homepage": "https://github.com/enigmatry/entry-angular-building-blocks/tree/master/projects/entry-components#readme",