mat-helper 1.1.0 → 2.1.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.
@@ -1,7 +1,7 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { inject, Component } from '@angular/core';
3
3
  import * as i1 from '@angular/material/dialog';
4
- import { MAT_DIALOG_DATA, MatDialogActions, MatDialogContent, MatDialog } from '@angular/material/dialog';
4
+ import { MAT_DIALOG_DATA, MatDialogActions, MatDialogContent, MatDialog as MatDialog$1, MatDialogRef } from '@angular/material/dialog';
5
5
  import { MatSnackBar } from '@angular/material/snack-bar';
6
6
  import { MatButton } from '@angular/material/button';
7
7
 
@@ -47,7 +47,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImpor
47
47
 
48
48
  class MatHelper {
49
49
  snackBar = inject(MatSnackBar);
50
- dialog = inject(MatDialog);
50
+ dialog = inject(MatDialog$1);
51
51
  sidenav;
52
52
  toggleSideNav() {
53
53
  this.sidenav.toggle();
@@ -80,18 +80,14 @@ class MatHelper {
80
80
  duration: duration ? duration : 1000,
81
81
  });
82
82
  }
83
- presentConfirmDialog(message, onDidDismiss, confirmText, cancelText) {
83
+ presentConfirmDialog(data) {
84
84
  const dialogRef = this.dialog.open(ConfirmDialog, {
85
- minWidth: '300px',
86
- data: {
87
- message: message,
88
- confirmText: confirmText ? confirmText : 'Yes',
89
- cancelText: cancelText ? cancelText : 'No',
90
- },
85
+ minWidth: data.minWidth ? data.minWidth : '300px',
86
+ data,
91
87
  });
92
88
  dialogRef.afterClosed().subscribe((result) => {
93
89
  if (result) {
94
- onDidDismiss();
90
+ data.onDidDismiss?.();
95
91
  }
96
92
  });
97
93
  }
@@ -133,6 +129,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImpor
133
129
  args: [{ selector: 'lib-mat-helper', imports: [], template: ` <p>mat-helper works!</p> ` }]
134
130
  }] });
135
131
 
132
+ // possible enhancement
133
+ // https://chatgpt.com/s/t_698826ebaa588191bea98d1a90c72a07
134
+ class MatDialog {
135
+ data = inject(MAT_DIALOG_DATA);
136
+ dialogRef = inject((MatDialogRef));
137
+ close(output) {
138
+ if (output) {
139
+ this.dialogRef.close(output);
140
+ }
141
+ else {
142
+ this.dialogRef.close();
143
+ }
144
+ }
145
+ }
146
+
136
147
  /*
137
148
  * Public API Surface of mat-helper
138
149
  */
@@ -141,5 +152,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImpor
141
152
  * Generated bundle index. Do not edit.
142
153
  */
143
154
 
144
- export { Alert, ConfirmDialog, MatHelper };
155
+ export { Alert, ConfirmDialog, MatDialog, MatHelper };
145
156
  //# sourceMappingURL=mat-helper.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"mat-helper.mjs","sources":["../../../projects/mat-helper/src/lib/components/alert/alert.ts","../../../projects/mat-helper/src/lib/components/alert/alert.html","../../../projects/mat-helper/src/lib/components/confirm-dialog/confirm-dialog.ts","../../../projects/mat-helper/src/lib/components/confirm-dialog/confirm-dialog.html","../../../projects/mat-helper/src/lib/mat-helper.ts","../../../projects/mat-helper/src/public-api.ts","../../../projects/mat-helper/src/mat-helper.ts"],"sourcesContent":["import { Component, inject } from '@angular/core';\r\nimport { MatButton } from '@angular/material/button';\r\nimport {\r\n MAT_DIALOG_DATA,\r\n MatDialogActions,\r\n MatDialogContent,\r\n MatDialogRef,\r\n} from '@angular/material/dialog';\r\n\r\nexport interface AlertInput {\r\n message: string;\r\n}\r\n\r\n@Component({\r\n selector: 'lib-alert',\r\n imports: [MatDialogActions, MatDialogContent, MatButton],\r\n templateUrl: './alert.html',\r\n styleUrl: './alert.css',\r\n})\r\nexport class Alert {\r\n readonly data = inject<AlertInput>(MAT_DIALOG_DATA);\r\n constructor(private dialogRef: MatDialogRef<Alert>) {}\r\n close(): void {\r\n this.dialogRef.close();\r\n }\r\n}\r\n","<mat-dialog-content>\r\n <div style=\"white-space: pre-line\">{{ data.message }}</div>\r\n</mat-dialog-content>\r\n<mat-dialog-actions>\r\n <button mat-button (click)=\"close()\">OK</button>\r\n</mat-dialog-actions>\r\n","import { Component, inject } from '@angular/core';\r\nimport { MatButton } from '@angular/material/button';\r\nimport {\r\n MatDialogContent,\r\n MatDialogActions,\r\n MAT_DIALOG_DATA,\r\n MatDialogRef,\r\n} from '@angular/material/dialog';\r\n\r\nexport interface ConfirmDialogInput {\r\n title?: string;\r\n message: string;\r\n confirmText?: string;\r\n cancelText?: string;\r\n}\r\n\r\n@Component({\r\n selector: 'lib-confirm-dialog',\r\n imports: [MatDialogContent, MatDialogActions, MatButton],\r\n templateUrl: './confirm-dialog.html',\r\n styleUrl: './confirm-dialog.css',\r\n})\r\nexport class ConfirmDialog {\r\n readonly data = inject<ConfirmDialogInput>(MAT_DIALOG_DATA);\r\n constructor(private dialogRef: MatDialogRef<ConfirmDialog>) {}\r\n close(): void {\r\n this.dialogRef.close();\r\n }\r\n\r\n onCancel(): void {\r\n this.dialogRef.close(false);\r\n }\r\n\r\n onConfirm(): void {\r\n this.dialogRef.close(true);\r\n }\r\n}\r\n","@if (data.title) {\r\n<h2 mat-dialog-title>{{ data.title }}</h2>\r\n\r\n}\r\n\r\n<mat-dialog-content>\r\n <div style=\"white-space: pre-line\">{{ data.message }}</div>\r\n</mat-dialog-content>\r\n<mat-dialog-actions align=\"end\">\r\n <button mat-button (click)=\"onCancel()\">\r\n {{ data.cancelText || 'Cancel' }}\r\n </button>\r\n <button mat-flat-button color=\"warn\" (click)=\"onConfirm()\">\r\n {{ data.confirmText || 'Confirm' }}\r\n </button>\r\n</mat-dialog-actions>\r\n","import { Component, ElementRef, inject } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatSnackBar, MatSnackBarConfig } from '@angular/material/snack-bar';\r\nimport { Alert, AlertInput } from './components/alert/alert';\r\nimport { ConfirmDialog, ConfirmDialogInput } from './components/confirm-dialog/confirm-dialog';\r\nimport { MatSidenav } from '@angular/material/sidenav';\r\n\r\n@Component({\r\n selector: 'lib-mat-helper',\r\n imports: [],\r\n template: ` <p>mat-helper works!</p> `,\r\n styles: ``,\r\n})\r\nexport class MatHelper {\r\n public snackBar = inject(MatSnackBar);\r\n public dialog = inject(MatDialog);\r\n\r\n private sidenav!: MatSidenav;\r\n\r\n toggleSideNav() {\r\n this.sidenav.toggle();\r\n }\r\n\r\n setSideNav(sidenav: MatSidenav) {\r\n this.sidenav = sidenav;\r\n }\r\n\r\n async presentAlert(text: string, onDidDismiss?: () => void) {\r\n const dialogRef = this.dialog.open(Alert, {\r\n minWidth: '300px',\r\n data: { message: text } as AlertInput,\r\n });\r\n\r\n if (onDidDismiss) {\r\n dialogRef.afterClosed().subscribe(() => {\r\n onDidDismiss();\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Displays a toast (snackbar) message.\r\n * @param message Message to display.\r\n * @param duration Duration in milliseconds (default: 1000ms).\r\n * @param action Action button text (default: \"OK\").\r\n * @param config Optional snackbar configuration override.\r\n */\r\n presentToast(\r\n message: string,\r\n duration?: number,\r\n action?: string | undefined,\r\n config?: MatSnackBarConfig<any> | undefined,\r\n ) {\r\n this.snackBar.open(\r\n message,\r\n action ? action : 'OK',\r\n config\r\n ? config\r\n : {\r\n duration: duration ? duration : 1000,\r\n },\r\n );\r\n }\r\n\r\n presentConfirmDialog(\r\n message: string,\r\n onDidDismiss: () => void,\r\n confirmText?: string,\r\n cancelText?: string,\r\n ) {\r\n const dialogRef = this.dialog.open(ConfirmDialog, {\r\n minWidth: '300px',\r\n data: <ConfirmDialogInput>{\r\n message: message,\r\n confirmText: confirmText ? confirmText : 'Yes',\r\n cancelText: cancelText ? cancelText : 'No',\r\n },\r\n });\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (result) {\r\n onDidDismiss();\r\n }\r\n });\r\n }\r\n\r\n scrollToTarget(elementRef: ElementRef): void {\r\n if (elementRef) {\r\n const nativeElement = elementRef.nativeElement;\r\n\r\n nativeElement.scrollIntoView({\r\n behavior: 'smooth',\r\n block: 'start',\r\n });\r\n // console.log('Scrolling to target element...');\r\n } else {\r\n console.error('Target element reference not found.');\r\n }\r\n }\r\n\r\n copyToClipboard(text: string) {\r\n navigator.clipboard\r\n .writeText(text)\r\n .then(() => {\r\n this.presentToast('Copied.');\r\n // this.snackBar.open('Copied.', 'OK', {\r\n // duration: 1000,\r\n // });\r\n })\r\n .catch((e) => {\r\n this.presentToast('Error.');\r\n // this.snackBar.open('Error.', 'OK', {\r\n // duration: 1000,\r\n // });\r\n console.log(e);\r\n });\r\n }\r\n}\r\n","/*\r\n * Public API Surface of mat-helper\r\n */\r\n\r\nexport * from './lib/mat-helper';\r\n\r\nexport * from './lib/components/alert/alert';\r\nexport * from './lib/components/confirm-dialog/confirm-dialog';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mat-helper.mjs","sources":["../../../projects/mat-helper/src/lib/components/alert/alert.ts","../../../projects/mat-helper/src/lib/components/alert/alert.html","../../../projects/mat-helper/src/lib/components/confirm-dialog/confirm-dialog.ts","../../../projects/mat-helper/src/lib/components/confirm-dialog/confirm-dialog.html","../../../projects/mat-helper/src/lib/mat-helper.ts","../../../projects/mat-helper/src/classes/MatDialog.ts","../../../projects/mat-helper/src/public-api.ts","../../../projects/mat-helper/src/mat-helper.ts"],"sourcesContent":["import { Component, inject } from '@angular/core';\r\nimport { MatButton } from '@angular/material/button';\r\nimport {\r\n MAT_DIALOG_DATA,\r\n MatDialogActions,\r\n MatDialogContent,\r\n MatDialogRef,\r\n} from '@angular/material/dialog';\r\n\r\nexport interface AlertInput {\r\n message: string;\r\n}\r\n\r\n@Component({\r\n selector: 'lib-alert',\r\n imports: [MatDialogActions, MatDialogContent, MatButton],\r\n templateUrl: './alert.html',\r\n styleUrl: './alert.css',\r\n})\r\nexport class Alert {\r\n readonly data = inject<AlertInput>(MAT_DIALOG_DATA);\r\n constructor(private dialogRef: MatDialogRef<Alert>) {}\r\n close(): void {\r\n this.dialogRef.close();\r\n }\r\n}\r\n","<mat-dialog-content>\r\n <div style=\"white-space: pre-line\">{{ data.message }}</div>\r\n</mat-dialog-content>\r\n<mat-dialog-actions>\r\n <button mat-button (click)=\"close()\">OK</button>\r\n</mat-dialog-actions>\r\n","import { Component, inject } from '@angular/core';\r\nimport { MatButton } from '@angular/material/button';\r\nimport {\r\n MatDialogContent,\r\n MatDialogActions,\r\n MAT_DIALOG_DATA,\r\n MatDialogRef,\r\n} from '@angular/material/dialog';\r\n\r\nexport interface ConfirmDialogInput {\r\n title?: string;\r\n message: string;\r\n confirmText?: string;\r\n cancelText?: string;\r\n\r\n // for confirm dialog config\r\n onDidDismiss?: () => void;\r\n minWidth?: string | number | undefined;\r\n}\r\n\r\n@Component({\r\n selector: 'lib-confirm-dialog',\r\n imports: [MatDialogContent, MatDialogActions, MatButton],\r\n templateUrl: './confirm-dialog.html',\r\n styleUrl: './confirm-dialog.css',\r\n})\r\nexport class ConfirmDialog {\r\n readonly data = inject<ConfirmDialogInput>(MAT_DIALOG_DATA);\r\n constructor(private dialogRef: MatDialogRef<ConfirmDialog>) {}\r\n close(): void {\r\n this.dialogRef.close();\r\n }\r\n\r\n onCancel(): void {\r\n this.dialogRef.close(false);\r\n }\r\n\r\n onConfirm(): void {\r\n this.dialogRef.close(true);\r\n }\r\n}\r\n","@if (data.title) {\r\n<h2 mat-dialog-title>{{ data.title }}</h2>\r\n\r\n}\r\n\r\n<mat-dialog-content>\r\n <div style=\"white-space: pre-line\">{{ data.message }}</div>\r\n</mat-dialog-content>\r\n<mat-dialog-actions align=\"end\">\r\n <button mat-button (click)=\"onCancel()\">\r\n {{ data.cancelText || 'Cancel' }}\r\n </button>\r\n <button mat-flat-button color=\"warn\" (click)=\"onConfirm()\">\r\n {{ data.confirmText || 'Confirm' }}\r\n </button>\r\n</mat-dialog-actions>\r\n","import { Component, ElementRef, inject } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatSnackBar, MatSnackBarConfig } from '@angular/material/snack-bar';\r\nimport { Alert, AlertInput } from './components/alert/alert';\r\nimport { ConfirmDialog, ConfirmDialogInput } from './components/confirm-dialog/confirm-dialog';\r\nimport { MatSidenav } from '@angular/material/sidenav';\r\n\r\n@Component({\r\n selector: 'lib-mat-helper',\r\n imports: [],\r\n template: ` <p>mat-helper works!</p> `,\r\n styles: ``,\r\n})\r\nexport class MatHelper {\r\n public snackBar = inject(MatSnackBar);\r\n public dialog = inject(MatDialog);\r\n\r\n private sidenav!: MatSidenav;\r\n\r\n toggleSideNav() {\r\n this.sidenav.toggle();\r\n }\r\n\r\n setSideNav(sidenav: MatSidenav) {\r\n this.sidenav = sidenav;\r\n }\r\n\r\n async presentAlert(text: string, onDidDismiss?: () => void) {\r\n const dialogRef = this.dialog.open(Alert, {\r\n minWidth: '300px',\r\n data: { message: text } as AlertInput,\r\n });\r\n\r\n if (onDidDismiss) {\r\n dialogRef.afterClosed().subscribe(() => {\r\n onDidDismiss();\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Displays a toast (snackbar) message.\r\n * @param message Message to display.\r\n * @param duration Duration in milliseconds (default: 1000ms).\r\n * @param action Action button text (default: \"OK\").\r\n * @param config Optional snackbar configuration override.\r\n */\r\n presentToast(\r\n message: string,\r\n duration?: number,\r\n action?: string | undefined,\r\n config?: MatSnackBarConfig<any> | undefined,\r\n ) {\r\n this.snackBar.open(\r\n message,\r\n action ? action : 'OK',\r\n config\r\n ? config\r\n : {\r\n duration: duration ? duration : 1000,\r\n },\r\n );\r\n }\r\n\r\n presentConfirmDialog(data: ConfirmDialogInput) {\r\n const dialogRef = this.dialog.open(ConfirmDialog, {\r\n minWidth: data.minWidth ? data.minWidth : '300px',\r\n data,\r\n });\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (result) {\r\n data.onDidDismiss?.();\r\n }\r\n });\r\n }\r\n\r\n scrollToTarget(elementRef: ElementRef): void {\r\n if (elementRef) {\r\n const nativeElement = elementRef.nativeElement;\r\n\r\n nativeElement.scrollIntoView({\r\n behavior: 'smooth',\r\n block: 'start',\r\n });\r\n // console.log('Scrolling to target element...');\r\n } else {\r\n console.error('Target element reference not found.');\r\n }\r\n }\r\n\r\n copyToClipboard(text: string) {\r\n navigator.clipboard\r\n .writeText(text)\r\n .then(() => {\r\n this.presentToast('Copied.');\r\n // this.snackBar.open('Copied.', 'OK', {\r\n // duration: 1000,\r\n // });\r\n })\r\n .catch((e) => {\r\n this.presentToast('Error.');\r\n // this.snackBar.open('Error.', 'OK', {\r\n // duration: 1000,\r\n // });\r\n console.log(e);\r\n });\r\n }\r\n}\r\n","import { inject } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\n\r\n// possible enhancement\r\n// https://chatgpt.com/s/t_698826ebaa588191bea98d1a90c72a07\r\nexport class MatDialog<Component, Input, Output = void> {\r\n readonly data = inject<Input>(MAT_DIALOG_DATA);\r\n readonly dialogRef = inject(MatDialogRef<Component>);\r\n\r\n close(output?: Output) {\r\n if (output) {\r\n this.dialogRef.close(output);\r\n } else {\r\n this.dialogRef.close();\r\n }\r\n }\r\n}\r\n","/*\r\n * Public API Surface of mat-helper\r\n */\r\n\r\nexport * from './lib/mat-helper';\r\n\r\nexport * from './lib/components/alert/alert';\r\nexport * from './lib/components/confirm-dialog/confirm-dialog';\r\n\r\nexport * from './classes/MatDialog';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["MatDialog"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mat-helper",
3
- "version": "1.1.0",
3
+ "version": "2.1.0",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^21.1.0",
6
6
  "@angular/core": "^21.1.0"
@@ -1,12 +1,31 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { ElementRef } from '@angular/core';
3
- import { MatDialog, MatDialogRef } from '@angular/material/dialog';
3
+ import { MatDialogRef, MatDialog as MatDialog$1 } from '@angular/material/dialog';
4
4
  import { MatSnackBar, MatSnackBarConfig } from '@angular/material/snack-bar';
5
5
  import { MatSidenav } from '@angular/material/sidenav';
6
6
 
7
+ interface ConfirmDialogInput {
8
+ title?: string;
9
+ message: string;
10
+ confirmText?: string;
11
+ cancelText?: string;
12
+ onDidDismiss?: () => void;
13
+ minWidth?: string | number | undefined;
14
+ }
15
+ declare class ConfirmDialog {
16
+ private dialogRef;
17
+ readonly data: ConfirmDialogInput;
18
+ constructor(dialogRef: MatDialogRef<ConfirmDialog>);
19
+ close(): void;
20
+ onCancel(): void;
21
+ onConfirm(): void;
22
+ static ɵfac: i0.ɵɵFactoryDeclaration<ConfirmDialog, never>;
23
+ static ɵcmp: i0.ɵɵComponentDeclaration<ConfirmDialog, "lib-confirm-dialog", never, {}, {}, never, never, true, never>;
24
+ }
25
+
7
26
  declare class MatHelper {
8
27
  snackBar: MatSnackBar;
9
- dialog: MatDialog;
28
+ dialog: MatDialog$1;
10
29
  private sidenav;
11
30
  toggleSideNav(): void;
12
31
  setSideNav(sidenav: MatSidenav): void;
@@ -19,7 +38,7 @@ declare class MatHelper {
19
38
  * @param config Optional snackbar configuration override.
20
39
  */
21
40
  presentToast(message: string, duration?: number, action?: string | undefined, config?: MatSnackBarConfig<any> | undefined): void;
22
- presentConfirmDialog(message: string, onDidDismiss: () => void, confirmText?: string, cancelText?: string): void;
41
+ presentConfirmDialog(data: ConfirmDialogInput): void;
23
42
  scrollToTarget(elementRef: ElementRef): void;
24
43
  copyToClipboard(text: string): void;
25
44
  static ɵfac: i0.ɵɵFactoryDeclaration<MatHelper, never>;
@@ -38,22 +57,11 @@ declare class Alert {
38
57
  static ɵcmp: i0.ɵɵComponentDeclaration<Alert, "lib-alert", never, {}, {}, never, never, true, never>;
39
58
  }
40
59
 
41
- interface ConfirmDialogInput {
42
- title?: string;
43
- message: string;
44
- confirmText?: string;
45
- cancelText?: string;
46
- }
47
- declare class ConfirmDialog {
48
- private dialogRef;
49
- readonly data: ConfirmDialogInput;
50
- constructor(dialogRef: MatDialogRef<ConfirmDialog>);
51
- close(): void;
52
- onCancel(): void;
53
- onConfirm(): void;
54
- static ɵfac: i0.ɵɵFactoryDeclaration<ConfirmDialog, never>;
55
- static ɵcmp: i0.ɵɵComponentDeclaration<ConfirmDialog, "lib-confirm-dialog", never, {}, {}, never, never, true, never>;
60
+ declare class MatDialog<Component, Input, Output = void> {
61
+ readonly data: Input;
62
+ readonly dialogRef: MatDialogRef<any, any>;
63
+ close(output?: Output): void;
56
64
  }
57
65
 
58
- export { Alert, ConfirmDialog, MatHelper };
66
+ export { Alert, ConfirmDialog, MatDialog, MatHelper };
59
67
  export type { AlertInput, ConfirmDialogInput };