@acontplus/ng-notifications 1.1.1 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -8,12 +8,14 @@ SweetAlert2.
8
8
 
9
9
  ```bash
10
10
  # Using npm
11
- npm install @acontplus/ng-notifications
11
+ npm install @acontplus/ng-notifications @acontplus/ui-kit
12
12
 
13
13
  # Using pnpm
14
- pnpm add @acontplus/ng-notifications
14
+ pnpm add @acontplus/ng-notifications @acontplus/ui-kit
15
15
  ```
16
16
 
17
+ > **Note**: `@acontplus/ng-notifications` depends on `@acontplus/ui-kit` for notification constants (messages, durations, icons). Both packages must be installed.
18
+
17
19
  ## Features
18
20
 
19
21
  - **Toast Notifications**: Using ngx-toastr for non-blocking notifications
@@ -284,8 +286,38 @@ this.notificationService.snackbar.info({ message: 'Information' });
284
286
  ### Quick Methods
285
287
 
286
288
  ```typescript
287
- // Predefined messages
289
+ // Predefined messages (from @acontplus/ui-kit)
288
290
  this.notificationService.quickSave(); // "Data saved successfully"
289
291
  this.notificationService.quickDelete(); // "Item deleted"
290
292
  this.notificationService.networkError(); // "Network connection error"
291
293
  ```
294
+
295
+ ## Notification Constants
296
+
297
+ This library re-exports notification constants from `@acontplus/ui-kit` for backward compatibility:
298
+
299
+ ```typescript
300
+ import {
301
+ NOTIFICATION_MESSAGES,
302
+ NOTIFICATION_DURATIONS,
303
+ NOTIFICATION_ICONS,
304
+ } from '@acontplus/ng-notifications';
305
+
306
+ // Pre-defined messages
307
+ NOTIFICATION_MESSAGES.SUCCESS.SAVE; // 'Data saved successfully'
308
+ NOTIFICATION_MESSAGES.ERROR.NETWORK; // 'Network error occurred'
309
+ NOTIFICATION_MESSAGES.WARNING.UNSAVED_CHANGES; // 'You have unsaved changes'
310
+
311
+ // Standard durations
312
+ NOTIFICATION_DURATIONS.SHORT; // 3000ms
313
+ NOTIFICATION_DURATIONS.MEDIUM; // 5000ms
314
+ NOTIFICATION_DURATIONS.LONG; // 8000ms
315
+
316
+ // Icon mappings (Material icons)
317
+ NOTIFICATION_ICONS.success; // 'check_circle'
318
+ NOTIFICATION_ICONS.error; // 'error'
319
+ NOTIFICATION_ICONS.warning; // 'warning'
320
+ NOTIFICATION_ICONS.info; // 'info'
321
+ ```
322
+
323
+ These constants are defined in `@acontplus/ui-kit` to ensure they're framework-agnostic and reusable across different notification implementations.
@@ -6,56 +6,7 @@ import { MatSnackBar } from '@angular/material/snack-bar';
6
6
  import { map } from 'rxjs/operators';
7
7
  import Swal from 'sweetalert2';
8
8
  import { isPlatformBrowser } from '@angular/common';
9
-
10
- // Type definitions for notifications
11
-
12
- const NOTIFICATION_MESSAGES = {
13
- SUCCESS: {
14
- SAVE: 'Data saved successfully',
15
- DELETE: 'Item deleted successfully',
16
- UPDATE: 'Data updated successfully',
17
- UPLOAD: 'File uploaded successfully',
18
- CREATE: 'Item created successfully',
19
- SYNC: 'Data synchronized successfully',
20
- },
21
- ERROR: {
22
- SAVE: 'Failed to save data',
23
- DELETE: 'Failed to delete item',
24
- UPDATE: 'Failed to update data',
25
- UPLOAD: 'Failed to upload file',
26
- NETWORK: 'Network error occurred',
27
- UNKNOWN: 'An unexpected error occurred',
28
- VALIDATION: 'Validation error',
29
- UNAUTHORIZED: 'Unauthorized access',
30
- SERVER: 'Server error occurred',
31
- },
32
- WARNING: {
33
- UNSAVED_CHANGES: 'You have unsaved changes',
34
- SESSION_EXPIRING: 'Your session is about to expire',
35
- STORAGE_FULL: 'Storage is running low',
36
- DEPRECATED: 'This feature is deprecated',
37
- LIMIT_REACHED: 'Limit reached',
38
- },
39
- INFO: {
40
- LOADING: 'Loading data...',
41
- PROCESSING: 'Processing request...',
42
- MAINTENANCE: 'System maintenance scheduled',
43
- UPDATE_AVAILABLE: 'Update available',
44
- BACKUP_COMPLETE: 'Backup completed',
45
- },
46
- };
47
- const NOTIFICATION_DURATIONS = {
48
- SHORT: 3000,
49
- MEDIUM: 5000,
50
- LONG: 8000,
51
- PERSISTENT: 0,
52
- };
53
- const NOTIFICATION_ICONS = {
54
- success: 'check_circle',
55
- error: 'error',
56
- warning: 'warning',
57
- info: 'info',
58
- };
9
+ import { NOTIFICATION_MESSAGES } from '@acontplus/ui-kit';
59
10
 
60
11
  const TOASTR_NOTIFICATION_CONFIG = new InjectionToken('toastr-notification-config', {
61
12
  providedIn: 'root',
@@ -84,10 +35,10 @@ const SNACKBAR_CONFIG = new InjectionToken('acontplus-snackbar-config', {
84
35
 
85
36
  const NOTIFICATION_CONFIG = new InjectionToken('NOTIFICATION_CONFIG');
86
37
  class NotificationProviderBase {
87
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: NotificationProviderBase, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
88
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: NotificationProviderBase });
38
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: NotificationProviderBase, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
39
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: NotificationProviderBase });
89
40
  }
90
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: NotificationProviderBase, decorators: [{
41
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: NotificationProviderBase, decorators: [{
91
42
  type: Injectable
92
43
  }] });
93
44
 
@@ -138,10 +89,10 @@ class ToastrProvider extends NotificationProviderBase {
138
89
  const result = confirm(`${config.title || ''}\n${config.message}`);
139
90
  return of({ isConfirmed: result });
140
91
  }
141
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: ToastrProvider, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
142
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: ToastrProvider, providedIn: 'root' });
92
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: ToastrProvider, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
93
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: ToastrProvider, providedIn: 'root' });
143
94
  }
144
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: ToastrProvider, decorators: [{
95
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: ToastrProvider, decorators: [{
145
96
  type: Injectable,
146
97
  args: [{
147
98
  providedIn: 'root',
@@ -216,10 +167,10 @@ class SnackbarProvider extends NotificationProviderBase {
216
167
  }
217
168
  return `${title}: ${message}`;
218
169
  }
219
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: SnackbarProvider, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
220
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: SnackbarProvider, providedIn: 'root' });
170
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: SnackbarProvider, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
171
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: SnackbarProvider, providedIn: 'root' });
221
172
  }
222
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: SnackbarProvider, decorators: [{
173
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: SnackbarProvider, decorators: [{
223
174
  type: Injectable,
224
175
  args: [{
225
176
  providedIn: 'root',
@@ -253,10 +204,10 @@ class ThemeDetector {
253
204
  getCurrentTheme() {
254
205
  return this.themeSubject.value;
255
206
  }
256
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: ThemeDetector, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
257
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: ThemeDetector, providedIn: 'root' });
207
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: ThemeDetector, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
208
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: ThemeDetector, providedIn: 'root' });
258
209
  }
259
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: ThemeDetector, decorators: [{
210
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: ThemeDetector, decorators: [{
260
211
  type: Injectable,
261
212
  args: [{
262
213
  providedIn: 'root',
@@ -327,10 +278,10 @@ class SweetalertProvider extends NotificationProviderBase {
327
278
  value: result.value,
328
279
  })));
329
280
  }
330
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: SweetalertProvider, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
331
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: SweetalertProvider, providedIn: 'root' });
281
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: SweetalertProvider, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
282
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: SweetalertProvider, providedIn: 'root' });
332
283
  }
333
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: SweetalertProvider, decorators: [{
284
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: SweetalertProvider, decorators: [{
334
285
  type: Injectable,
335
286
  args: [{
336
287
  providedIn: 'root',
@@ -416,10 +367,10 @@ class NotificationService {
416
367
  title: 'Session Alert',
417
368
  });
418
369
  }
419
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: NotificationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
420
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: NotificationService, providedIn: 'root' });
370
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: NotificationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
371
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: NotificationService, providedIn: 'root' });
421
372
  }
422
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: NotificationService, decorators: [{
373
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: NotificationService, decorators: [{
423
374
  type: Injectable,
424
375
  args: [{
425
376
  providedIn: 'root',
@@ -464,5 +415,5 @@ function provideNotifications(config, toastrConfig) {
464
415
  * Generated bundle index. Do not edit.
465
416
  */
466
417
 
467
- export { DEFAULT_SNACKBAR_CONFIG, NOTIFICATION_CONFIG, NOTIFICATION_DURATIONS, NOTIFICATION_ICONS, NOTIFICATION_MESSAGES, NotificationProviderBase, NotificationService, SNACKBAR_CONFIG, SnackbarProvider, SweetalertProvider, TOASTR_NOTIFICATION_CONFIG, ToastrProvider, provideNotifications };
418
+ export { DEFAULT_SNACKBAR_CONFIG, NOTIFICATION_CONFIG, NotificationProviderBase, NotificationService, SNACKBAR_CONFIG, SnackbarProvider, SweetalertProvider, TOASTR_NOTIFICATION_CONFIG, ToastrProvider, provideNotifications };
468
419
  //# sourceMappingURL=acontplus-ng-notifications.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"acontplus-ng-notifications.mjs","sources":["../../../../packages/ng-notifications/src/lib/types/notification.types.ts","../../../../packages/ng-notifications/src/lib/constants/notification.constants.ts","../../../../packages/ng-notifications/src/lib/config/toastr-config.ts","../../../../packages/ng-notifications/src/lib/config/snackbar-config.ts","../../../../packages/ng-notifications/src/lib/providers/notification-provider.ts","../../../../packages/ng-notifications/src/lib/providers/toastr-provider.ts","../../../../packages/ng-notifications/src/lib/providers/snackbar-provider.ts","../../../../packages/ng-notifications/src/lib/services/theme-detector.ts","../../../../packages/ng-notifications/src/lib/providers/sweetalert-provider.ts","../../../../packages/ng-notifications/src/lib/services/notification-service.ts","../../../../packages/ng-notifications/src/lib/providers.ts","../../../../packages/ng-notifications/src/acontplus-ng-notifications.ts"],"sourcesContent":["// Type definitions for notifications\n\nexport type NotificationType = 'success' | 'error' | 'warning' | 'info';\nexport type NotificationPosition =\n | 'top-right'\n | 'top-left'\n | 'bottom-right'\n | 'bottom-left'\n | 'top-center'\n | 'bottom-center';\nexport type NotificationProvider = 'toastr' | 'snackbar' | 'sweetalert';\n\nexport interface BaseNotificationConfig {\n readonly message: string;\n readonly title?: string;\n readonly type?: NotificationType;\n}\n\nexport interface NotificationCallProps extends BaseNotificationConfig {\n readonly config?: unknown;\n}\n\nexport interface SweetAlertConfig extends BaseNotificationConfig {\n readonly html?: string;\n readonly confirmButtonText?: string;\n readonly cancelButtonText?: string;\n readonly showCancelButton?: boolean;\n readonly allowOutsideClick?: boolean;\n readonly customClass?: string;\n}\n\nexport interface NotificationResult {\n isConfirmed?: boolean;\n isDenied?: boolean;\n isDismissed?: boolean;\n value?: unknown;\n}\n","export const NOTIFICATION_MESSAGES = {\n SUCCESS: {\n SAVE: 'Data saved successfully',\n DELETE: 'Item deleted successfully',\n UPDATE: 'Data updated successfully',\n UPLOAD: 'File uploaded successfully',\n CREATE: 'Item created successfully',\n SYNC: 'Data synchronized successfully',\n },\n ERROR: {\n SAVE: 'Failed to save data',\n DELETE: 'Failed to delete item',\n UPDATE: 'Failed to update data',\n UPLOAD: 'Failed to upload file',\n NETWORK: 'Network error occurred',\n UNKNOWN: 'An unexpected error occurred',\n VALIDATION: 'Validation error',\n UNAUTHORIZED: 'Unauthorized access',\n SERVER: 'Server error occurred',\n },\n WARNING: {\n UNSAVED_CHANGES: 'You have unsaved changes',\n SESSION_EXPIRING: 'Your session is about to expire',\n STORAGE_FULL: 'Storage is running low',\n DEPRECATED: 'This feature is deprecated',\n LIMIT_REACHED: 'Limit reached',\n },\n INFO: {\n LOADING: 'Loading data...',\n PROCESSING: 'Processing request...',\n MAINTENANCE: 'System maintenance scheduled',\n UPDATE_AVAILABLE: 'Update available',\n BACKUP_COMPLETE: 'Backup completed',\n },\n} as const;\n\nexport const NOTIFICATION_DURATIONS = {\n SHORT: 3000,\n MEDIUM: 5000,\n LONG: 8000,\n PERSISTENT: 0,\n} as const;\n\nexport const NOTIFICATION_ICONS = {\n success: 'check_circle',\n error: 'error',\n warning: 'warning',\n info: 'info',\n} as const;\n","import { InjectionToken } from '@angular/core';\nimport { IndividualConfig } from 'ngx-toastr';\n\nexport type ToastrNotificationConfig = Partial<IndividualConfig>;\n\nexport const TOASTR_NOTIFICATION_CONFIG = new InjectionToken<ToastrNotificationConfig>(\n 'toastr-notification-config',\n {\n providedIn: 'root',\n factory: () => ({\n positionClass: 'toast-bottom-center',\n timeOut: 5000,\n extendedTimeOut: 1500,\n closeButton: true,\n newestOnTop: true,\n }),\n },\n);\n","import { InjectionToken } from '@angular/core';\nimport { MatSnackBarConfig } from '@angular/material/snack-bar';\n\nexport interface SnackbarConfig extends MatSnackBarConfig {\n readonly defaultAction?: string;\n readonly iconEnabled?: boolean;\n readonly titleEnabled?: boolean;\n}\n\nexport const DEFAULT_SNACKBAR_CONFIG: SnackbarConfig = {\n duration: 5000,\n horizontalPosition: 'center',\n verticalPosition: 'bottom',\n panelClass: [],\n defaultAction: 'Close',\n iconEnabled: true,\n titleEnabled: true,\n};\n\nexport const SNACKBAR_CONFIG = new InjectionToken<SnackbarConfig>('acontplus-snackbar-config', {\n providedIn: 'root',\n factory: () => DEFAULT_SNACKBAR_CONFIG,\n});\n","import { Injectable, InjectionToken } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport {\n NotificationCallProps,\n NotificationResult,\n SweetAlertConfig,\n NotificationProvider,\n} from '../types/notification.types';\n\nexport const NOTIFICATION_CONFIG = new InjectionToken<NotificationProviderConfig>(\n 'NOTIFICATION_CONFIG',\n);\n\nexport interface NotificationProviderConfig {\n defaultProvider: NotificationProvider;\n toastr?: unknown;\n snackbar?: unknown;\n sweetalert?: {\n defaultTheme?: 'auto' | 'material-ui' | 'material-ui-light' | 'material-ui-dark' | string;\n [key: string]: unknown;\n };\n}\n\n@Injectable()\nexport abstract class NotificationProviderBase {\n abstract success(props: NotificationCallProps): void | Observable<NotificationResult>;\n abstract error(props: NotificationCallProps): void | Observable<NotificationResult>;\n abstract warning(props: NotificationCallProps): void | Observable<NotificationResult>;\n abstract info(props: NotificationCallProps): void | Observable<NotificationResult>;\n abstract confirm(config: SweetAlertConfig): Observable<NotificationResult>;\n}\n","import { Injectable, inject } from '@angular/core';\nimport { IndividualConfig, ToastrService } from 'ngx-toastr';\nimport { Observable, of } from 'rxjs';\nimport { NotificationProviderBase } from './notification-provider';\nimport { TOASTR_NOTIFICATION_CONFIG } from '../config/toastr-config';\nimport {\n NotificationCallProps,\n NotificationResult,\n SweetAlertConfig,\n} from '../types/notification.types';\n\nexport type ToastrType = 'success' | 'error' | 'warning' | 'info';\n\nexport interface ToastrShowProps {\n readonly type: ToastrType;\n readonly message: string;\n readonly title?: string;\n readonly options?: Partial<IndividualConfig>;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ToastrProvider extends NotificationProviderBase {\n private readonly toastrService = inject(ToastrService);\n private readonly config = inject(TOASTR_NOTIFICATION_CONFIG);\n\n /**\n * Generic show method for dynamic toast types\n */\n show(props: ToastrShowProps): void {\n const { type, message, title, options: overrideOptions } = props;\n const finalOptions = { ...this.config, ...overrideOptions };\n\n this.toastrService[type](message, title, finalOptions);\n }\n\n success(props: NotificationCallProps): void {\n this.show({\n type: 'success',\n message: props.message,\n title: props.title,\n options: props.config as Partial<IndividualConfig>,\n });\n }\n\n error(props: NotificationCallProps): void {\n this.show({\n type: 'error',\n message: props.message,\n title: props.title,\n options: props.config as Partial<IndividualConfig>,\n });\n }\n\n warning(props: NotificationCallProps): void {\n this.show({\n type: 'warning',\n message: props.message,\n title: props.title,\n options: props.config as Partial<IndividualConfig>,\n });\n }\n\n info(props: NotificationCallProps): void {\n this.show({\n type: 'info',\n message: props.message,\n title: props.title,\n options: props.config as Partial<IndividualConfig>,\n });\n }\n\n confirm(config: SweetAlertConfig): Observable<NotificationResult> {\n const result = confirm(`${config.title || ''}\\n${config.message}`);\n return of({ isConfirmed: result });\n }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { Observable, of } from 'rxjs';\nimport { NotificationProviderBase } from './notification-provider';\nimport { SNACKBAR_CONFIG, SnackbarConfig } from '../config/snackbar-config';\nimport {\n NotificationCallProps,\n NotificationResult,\n SweetAlertConfig,\n} from '../types/notification.types';\nimport { SnackbarProps } from '../models/notification';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SnackbarProvider extends NotificationProviderBase {\n private readonly snackBar = inject(MatSnackBar);\n private readonly config = inject(SNACKBAR_CONFIG);\n\n /**\n * Display a snackbar with specific type and configuration\n */\n show(props: SnackbarProps): void {\n const {\n type,\n message,\n title,\n action = this.config.defaultAction,\n config: userConfig = {},\n } = props;\n\n const typeClass = `acontplus-snackbar-${type}`;\n const panelClasses = this.buildPanelClasses(typeClass, userConfig.panelClass);\n\n const finalConfig = {\n ...this.config,\n ...userConfig,\n panelClass: panelClasses,\n };\n\n const displayMessage = this.buildMessage(message, title);\n this.snackBar.open(displayMessage, action, finalConfig);\n }\n\n success(props: NotificationCallProps): void {\n this.show({\n type: 'success',\n message: props.message,\n title: props.title,\n config: props.config as Partial<SnackbarConfig>,\n });\n }\n\n error(props: NotificationCallProps): void {\n this.show({\n type: 'error',\n message: props.message,\n title: props.title,\n config: props.config as Partial<SnackbarConfig>,\n });\n }\n\n warning(props: NotificationCallProps): void {\n this.show({\n type: 'warning',\n message: props.message,\n title: props.title,\n config: props.config as Partial<SnackbarConfig>,\n });\n }\n\n info(props: NotificationCallProps): void {\n this.show({\n type: 'info',\n message: props.message,\n title: props.title,\n config: props.config as Partial<SnackbarConfig>,\n });\n }\n\n confirm(config: SweetAlertConfig): Observable<NotificationResult> {\n const result = confirm(`${config.title || ''}\\n${config.message}`);\n return of({ isConfirmed: result });\n }\n\n private buildPanelClasses(typeClass: string, userClasses?: string | string[]): string[] {\n const classes = ['acontplus-snackbar', typeClass];\n\n if (userClasses) {\n const normalizedClasses = Array.isArray(userClasses) ? userClasses : [userClasses];\n classes.push(...normalizedClasses);\n }\n\n return classes;\n }\n\n private buildMessage(message: string, title?: string): string {\n if (!this.config.titleEnabled || !title) {\n return message;\n }\n return `${title}: ${message}`;\n }\n}\n","import { Injectable, PLATFORM_ID, inject } from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\nimport { BehaviorSubject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ThemeDetector {\n private themeSubject = new BehaviorSubject<string>('material-ui-light');\n private readonly platformId = inject(PLATFORM_ID);\n public theme$ = this.themeSubject.asObservable();\n\n constructor() {\n if (isPlatformBrowser(this.platformId)) {\n this.detectTheme();\n this.watchThemeChanges();\n }\n }\n\n private detectTheme(): void {\n if (!isPlatformBrowser(this.platformId)) return;\n\n const isDark =\n document.body.classList.contains('dark-theme') ||\n document.documentElement.classList.contains('dark-theme');\n this.themeSubject.next(isDark ? 'material-ui-dark' : 'material-ui-light');\n }\n\n private watchThemeChanges(): void {\n if (!isPlatformBrowser(this.platformId)) return;\n\n const observer = new MutationObserver(() => this.detectTheme());\n observer.observe(document.body, { attributes: true, attributeFilter: ['class'] });\n observer.observe(document.documentElement, { attributes: true, attributeFilter: ['class'] });\n }\n\n getCurrentTheme(): string {\n return this.themeSubject.value;\n }\n}\n","import { Injectable, inject } from '@angular/core';\nimport { Observable, from } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport Swal from 'sweetalert2';\nimport {\n NotificationProviderBase,\n NotificationProviderConfig,\n NOTIFICATION_CONFIG,\n} from './notification-provider';\nimport {\n NotificationCallProps,\n NotificationResult,\n NotificationType,\n SweetAlertConfig,\n} from '../types/notification.types';\nimport { ThemeDetector } from '../services/theme-detector';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SweetalertProvider extends NotificationProviderBase {\n private config = inject<NotificationProviderConfig>(NOTIFICATION_CONFIG);\n private themeDetector = inject(ThemeDetector);\n\n private getTheme(): string {\n const configTheme = (this.config.sweetalert as any)?.defaultTheme;\n\n // Default to 'auto' if no theme specified\n if (!configTheme || configTheme === 'auto') {\n // Auto-detect theme based on CSS classes\n const isDark =\n document?.body?.classList?.contains('dark-theme') ||\n document?.documentElement?.classList?.contains('dark-theme');\n return isDark ? 'material-ui-dark' : 'material-ui-light';\n }\n\n return configTheme;\n }\n success(props: NotificationCallProps): Observable<NotificationResult> {\n return this.showAlert({ ...props, type: 'success' });\n }\n\n error(props: NotificationCallProps): Observable<NotificationResult> {\n return this.showAlert({ ...props, type: 'error' });\n }\n\n warning(props: NotificationCallProps): Observable<NotificationResult> {\n return this.showAlert({ ...props, type: 'warning' });\n }\n\n info(props: NotificationCallProps): Observable<NotificationResult> {\n return this.showAlert({ ...props, type: 'info' });\n }\n\n confirm(config: SweetAlertConfig): Observable<NotificationResult> {\n const swalConfig = {\n title: config.title,\n text: config.message,\n html: config.html,\n icon: 'question' as const,\n showCancelButton: config.showCancelButton !== false,\n confirmButtonText: config.confirmButtonText || 'Confirm',\n cancelButtonText: config.cancelButtonText || 'Cancel',\n allowOutsideClick: config.allowOutsideClick !== false,\n customClass: config.customClass ? { container: config.customClass } : undefined,\n theme: this.getTheme(),\n };\n\n return from(Swal.fire(swalConfig as any)).pipe(\n map((result) => ({\n isConfirmed: result.isConfirmed,\n isDenied: result.isDenied,\n isDismissed: result.isDismissed,\n value: result.value,\n })),\n );\n }\n\n private showAlert(\n props: NotificationCallProps & { type: NotificationType },\n ): Observable<NotificationResult> {\n const configOptions = props.config as Record<string, unknown> | undefined;\n const { duration, ...otherConfig } = configOptions || {};\n const swalConfig = {\n title: props.title,\n text: props.message,\n icon: props.type as 'success' | 'error' | 'warning' | 'info',\n theme: this.getTheme(),\n ...(duration ? { timer: duration as number, timerProgressBar: true } : {}),\n ...otherConfig,\n };\n\n return from(Swal.fire(swalConfig as any)).pipe(\n map((result) => ({\n isConfirmed: result.isConfirmed,\n isDenied: result.isDenied,\n isDismissed: result.isDismissed,\n value: result.value,\n })),\n );\n }\n}\n","import { Injectable, inject } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport {\n NotificationProviderBase,\n NOTIFICATION_CONFIG,\n NotificationProviderConfig,\n} from '../providers/notification-provider';\nimport { ToastrProvider } from '../providers/toastr-provider';\nimport { SnackbarProvider } from '../providers/snackbar-provider';\nimport { SweetalertProvider } from '../providers/sweetalert-provider';\nimport {\n NotificationCallProps,\n NotificationResult,\n SweetAlertConfig,\n NotificationProvider,\n NotificationType,\n} from '../types/notification.types';\nimport { NOTIFICATION_MESSAGES } from '../constants/notification.constants';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class NotificationService {\n private config = inject<NotificationProviderConfig>(NOTIFICATION_CONFIG);\n private toastrProvider = inject(ToastrProvider);\n private snackbarProvider = inject(SnackbarProvider);\n private sweetAlertProvider = inject(SweetalertProvider);\n\n private providers = new Map<NotificationProvider, NotificationProviderBase>();\n private currentProvider: NotificationProviderBase;\n\n // Expose predefined messages\n readonly messages = NOTIFICATION_MESSAGES;\n\n constructor() {\n this.providers.set('toastr', this.toastrProvider);\n this.providers.set('snackbar', this.snackbarProvider);\n this.providers.set('sweetalert', this.sweetAlertProvider);\n\n this.currentProvider =\n this.providers.get(this.config.defaultProvider) || this.sweetAlertProvider;\n }\n\n setProvider(provider: NotificationProvider): void {\n const providerInstance = this.providers.get(provider);\n if (providerInstance) {\n this.currentProvider = providerInstance;\n }\n }\n\n success(props: NotificationCallProps): void | Observable<NotificationResult> {\n return this.currentProvider.success(props);\n }\n\n error(props: NotificationCallProps): void | Observable<NotificationResult> {\n return this.currentProvider.error(props);\n }\n\n warning(props: NotificationCallProps): void | Observable<NotificationResult> {\n return this.currentProvider.warning(props);\n }\n\n info(props: NotificationCallProps): void | Observable<NotificationResult> {\n return this.currentProvider.info(props);\n }\n\n confirm(config: SweetAlertConfig): Observable<NotificationResult> {\n return this.currentProvider.confirm(config);\n }\n\n show(\n props: { type: NotificationType } & NotificationCallProps,\n ): void | Observable<NotificationResult> {\n return this.currentProvider[props.type]({\n message: props.message,\n title: props.title,\n config: props.config,\n });\n }\n\n // Provider-specific methods maintaining your current API\n get toastr(): ToastrProvider {\n return this.providers.get('toastr') as ToastrProvider;\n }\n\n get snackbar(): SnackbarProvider {\n return this.providers.get('snackbar') as SnackbarProvider;\n }\n\n get sweetAlert(): SweetalertProvider {\n return this.providers.get('sweetalert') as SweetalertProvider;\n }\n\n // Quick methods using predefined messages\n quickSave(type: 'success' | 'error' = 'success'): void {\n const message = type === 'success' ? this.messages.SUCCESS.SAVE : this.messages.ERROR.SAVE;\n this.currentProvider[type]({ message });\n }\n\n quickDelete(type: 'success' | 'error' = 'success'): void {\n const message = type === 'success' ? this.messages.SUCCESS.DELETE : this.messages.ERROR.DELETE;\n this.currentProvider[type]({ message });\n }\n\n quickUpdate(type: 'success' | 'error' = 'success'): void {\n const message = type === 'success' ? this.messages.SUCCESS.UPDATE : this.messages.ERROR.UPDATE;\n this.currentProvider[type]({ message });\n }\n\n networkError(): void {\n this.currentProvider.error({\n message: this.messages.ERROR.NETWORK,\n title: 'Connection Error',\n });\n }\n\n sessionWarning(): void {\n this.currentProvider.warning({\n message: this.messages.WARNING.SESSION_EXPIRING,\n title: 'Session Alert',\n });\n }\n}\n","import { EnvironmentProviders, makeEnvironmentProviders } from '@angular/core';\nimport { provideToastr, GlobalConfig, ToastNoAnimation } from 'ngx-toastr';\nimport { NotificationService } from './services/notification-service';\nimport { NOTIFICATION_CONFIG, NotificationProviderConfig } from './providers/notification-provider';\nimport { ToastrProvider } from './providers/toastr-provider';\nimport { SnackbarProvider } from './providers/snackbar-provider';\nimport { SweetalertProvider } from './providers/sweetalert-provider';\n\n// Default toastr config (can be overridden)\nconst DEFAULT_TOASTR_CONFIG: Partial<GlobalConfig> = {\n positionClass: 'toast-bottom-center',\n timeOut: 5000,\n extendedTimeOut: 1500,\n closeButton: true,\n newestOnTop: true,\n preventDuplicates: true,\n progressBar: true,\n toastComponent: ToastNoAnimation,\n};\n\nexport function provideNotifications(\n config?: Partial<NotificationProviderConfig>,\n toastrConfig?: Partial<GlobalConfig>, // New optional param for dynamic toastr options\n): EnvironmentProviders {\n return makeEnvironmentProviders([\n provideToastr({\n ...DEFAULT_TOASTR_CONFIG,\n ...toastrConfig, // Merge with user-provided config for flexibility\n }),\n\n // Notification providers\n ToastrProvider,\n SnackbarProvider,\n SweetalertProvider,\n\n // Configuration\n {\n provide: NOTIFICATION_CONFIG,\n useValue: {\n defaultProvider: 'toastr',\n ...config,\n },\n },\n\n // Main service\n NotificationService,\n ]);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"acontplus-ng-notifications.mjs","sources":["../../../../packages/ng-notifications/src/lib/config/toastr-config.ts","../../../../packages/ng-notifications/src/lib/config/snackbar-config.ts","../../../../packages/ng-notifications/src/lib/providers/notification-provider.ts","../../../../packages/ng-notifications/src/lib/providers/toastr-provider.ts","../../../../packages/ng-notifications/src/lib/providers/snackbar-provider.ts","../../../../packages/ng-notifications/src/lib/services/theme-detector.ts","../../../../packages/ng-notifications/src/lib/providers/sweetalert-provider.ts","../../../../packages/ng-notifications/src/lib/services/notification-service.ts","../../../../packages/ng-notifications/src/lib/providers.ts","../../../../packages/ng-notifications/src/acontplus-ng-notifications.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { IndividualConfig } from 'ngx-toastr';\n\nexport type ToastrNotificationConfig = Partial<IndividualConfig>;\n\nexport const TOASTR_NOTIFICATION_CONFIG = new InjectionToken<ToastrNotificationConfig>(\n 'toastr-notification-config',\n {\n providedIn: 'root',\n factory: () => ({\n positionClass: 'toast-bottom-center',\n timeOut: 5000,\n extendedTimeOut: 1500,\n closeButton: true,\n newestOnTop: true,\n }),\n },\n);\n","import { InjectionToken } from '@angular/core';\nimport { MatSnackBarConfig } from '@angular/material/snack-bar';\n\nexport interface SnackbarConfig extends MatSnackBarConfig {\n readonly defaultAction?: string;\n readonly iconEnabled?: boolean;\n readonly titleEnabled?: boolean;\n}\n\nexport const DEFAULT_SNACKBAR_CONFIG: SnackbarConfig = {\n duration: 5000,\n horizontalPosition: 'center',\n verticalPosition: 'bottom',\n panelClass: [],\n defaultAction: 'Close',\n iconEnabled: true,\n titleEnabled: true,\n};\n\nexport const SNACKBAR_CONFIG = new InjectionToken<SnackbarConfig>('acontplus-snackbar-config', {\n providedIn: 'root',\n factory: () => DEFAULT_SNACKBAR_CONFIG,\n});\n","import { Injectable, InjectionToken } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport type { NotificationProvider, NotificationResult } from '@acontplus/ui-kit';\nimport { NotificationCallProps, SweetAlertConfig } from '../types/notification.types';\n\nexport const NOTIFICATION_CONFIG = new InjectionToken<NotificationProviderConfig>(\n 'NOTIFICATION_CONFIG',\n);\n\nexport interface NotificationProviderConfig {\n defaultProvider: NotificationProvider;\n toastr?: unknown;\n snackbar?: unknown;\n sweetalert?: {\n defaultTheme?: 'auto' | 'material-ui' | 'material-ui-light' | 'material-ui-dark' | string;\n [key: string]: unknown;\n };\n}\n\n@Injectable()\nexport abstract class NotificationProviderBase {\n abstract success(props: NotificationCallProps): void | Observable<NotificationResult>;\n abstract error(props: NotificationCallProps): void | Observable<NotificationResult>;\n abstract warning(props: NotificationCallProps): void | Observable<NotificationResult>;\n abstract info(props: NotificationCallProps): void | Observable<NotificationResult>;\n abstract confirm(config: SweetAlertConfig): Observable<NotificationResult>;\n}\n","import { Injectable, inject } from '@angular/core';\nimport { IndividualConfig, ToastrService } from 'ngx-toastr';\nimport { Observable, of } from 'rxjs';\nimport { NotificationProviderBase } from './notification-provider';\nimport { TOASTR_NOTIFICATION_CONFIG } from '../config/toastr-config';\nimport type { NotificationResult } from '@acontplus/ui-kit';\nimport { NotificationCallProps, SweetAlertConfig } from '../types/notification.types';\n\nexport type ToastrType = 'success' | 'error' | 'warning' | 'info';\n\nexport interface ToastrShowProps {\n readonly type: ToastrType;\n readonly message: string;\n readonly title?: string;\n readonly options?: Partial<IndividualConfig>;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ToastrProvider extends NotificationProviderBase {\n private readonly toastrService = inject(ToastrService);\n private readonly config = inject(TOASTR_NOTIFICATION_CONFIG);\n\n /**\n * Generic show method for dynamic toast types\n */\n show(props: ToastrShowProps): void {\n const { type, message, title, options: overrideOptions } = props;\n const finalOptions = { ...this.config, ...overrideOptions };\n\n this.toastrService[type](message, title, finalOptions);\n }\n\n success(props: NotificationCallProps): void {\n this.show({\n type: 'success',\n message: props.message,\n title: props.title,\n options: props.config as Partial<IndividualConfig>,\n });\n }\n\n error(props: NotificationCallProps): void {\n this.show({\n type: 'error',\n message: props.message,\n title: props.title,\n options: props.config as Partial<IndividualConfig>,\n });\n }\n\n warning(props: NotificationCallProps): void {\n this.show({\n type: 'warning',\n message: props.message,\n title: props.title,\n options: props.config as Partial<IndividualConfig>,\n });\n }\n\n info(props: NotificationCallProps): void {\n this.show({\n type: 'info',\n message: props.message,\n title: props.title,\n options: props.config as Partial<IndividualConfig>,\n });\n }\n\n confirm(config: SweetAlertConfig): Observable<NotificationResult> {\n const result = confirm(`${config.title || ''}\\n${config.message}`);\n return of({ isConfirmed: result });\n }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { Observable, of } from 'rxjs';\nimport { NotificationProviderBase } from './notification-provider';\nimport { SNACKBAR_CONFIG, SnackbarConfig } from '../config/snackbar-config';\nimport type { NotificationResult } from '@acontplus/ui-kit';\nimport { NotificationCallProps, SweetAlertConfig } from '../types/notification.types';\nimport { SnackbarProps } from '../models/notification';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SnackbarProvider extends NotificationProviderBase {\n private readonly snackBar = inject(MatSnackBar);\n private readonly config = inject(SNACKBAR_CONFIG);\n\n /**\n * Display a snackbar with specific type and configuration\n */\n show(props: SnackbarProps): void {\n const {\n type,\n message,\n title,\n action = this.config.defaultAction,\n config: userConfig = {},\n } = props;\n\n const typeClass = `acontplus-snackbar-${type}`;\n const panelClasses = this.buildPanelClasses(typeClass, userConfig.panelClass);\n\n const finalConfig = {\n ...this.config,\n ...userConfig,\n panelClass: panelClasses,\n };\n\n const displayMessage = this.buildMessage(message, title);\n this.snackBar.open(displayMessage, action, finalConfig);\n }\n\n success(props: NotificationCallProps): void {\n this.show({\n type: 'success',\n message: props.message,\n title: props.title,\n config: props.config as Partial<SnackbarConfig>,\n });\n }\n\n error(props: NotificationCallProps): void {\n this.show({\n type: 'error',\n message: props.message,\n title: props.title,\n config: props.config as Partial<SnackbarConfig>,\n });\n }\n\n warning(props: NotificationCallProps): void {\n this.show({\n type: 'warning',\n message: props.message,\n title: props.title,\n config: props.config as Partial<SnackbarConfig>,\n });\n }\n\n info(props: NotificationCallProps): void {\n this.show({\n type: 'info',\n message: props.message,\n title: props.title,\n config: props.config as Partial<SnackbarConfig>,\n });\n }\n\n confirm(config: SweetAlertConfig): Observable<NotificationResult> {\n const result = confirm(`${config.title || ''}\\n${config.message}`);\n return of({ isConfirmed: result });\n }\n\n private buildPanelClasses(typeClass: string, userClasses?: string | string[]): string[] {\n const classes = ['acontplus-snackbar', typeClass];\n\n if (userClasses) {\n const normalizedClasses = Array.isArray(userClasses) ? userClasses : [userClasses];\n classes.push(...normalizedClasses);\n }\n\n return classes;\n }\n\n private buildMessage(message: string, title?: string): string {\n if (!this.config.titleEnabled || !title) {\n return message;\n }\n return `${title}: ${message}`;\n }\n}\n","import { Injectable, PLATFORM_ID, inject } from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\nimport { BehaviorSubject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ThemeDetector {\n private themeSubject = new BehaviorSubject<string>('material-ui-light');\n private readonly platformId = inject(PLATFORM_ID);\n public theme$ = this.themeSubject.asObservable();\n\n constructor() {\n if (isPlatformBrowser(this.platformId)) {\n this.detectTheme();\n this.watchThemeChanges();\n }\n }\n\n private detectTheme(): void {\n if (!isPlatformBrowser(this.platformId)) return;\n\n const isDark =\n document.body.classList.contains('dark-theme') ||\n document.documentElement.classList.contains('dark-theme');\n this.themeSubject.next(isDark ? 'material-ui-dark' : 'material-ui-light');\n }\n\n private watchThemeChanges(): void {\n if (!isPlatformBrowser(this.platformId)) return;\n\n const observer = new MutationObserver(() => this.detectTheme());\n observer.observe(document.body, { attributes: true, attributeFilter: ['class'] });\n observer.observe(document.documentElement, { attributes: true, attributeFilter: ['class'] });\n }\n\n getCurrentTheme(): string {\n return this.themeSubject.value;\n }\n}\n","import { Injectable, inject } from '@angular/core';\nimport { Observable, from } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport Swal from 'sweetalert2';\nimport {\n NotificationProviderBase,\n NotificationProviderConfig,\n NOTIFICATION_CONFIG,\n} from './notification-provider';\nimport type { NotificationResult, NotificationType } from '@acontplus/ui-kit';\nimport { NotificationCallProps, SweetAlertConfig } from '../types/notification.types';\nimport { ThemeDetector } from '../services/theme-detector';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SweetalertProvider extends NotificationProviderBase {\n private config = inject<NotificationProviderConfig>(NOTIFICATION_CONFIG);\n private themeDetector = inject(ThemeDetector);\n\n private getTheme(): string {\n const configTheme = (this.config.sweetalert as any)?.defaultTheme;\n\n // Default to 'auto' if no theme specified\n if (!configTheme || configTheme === 'auto') {\n // Auto-detect theme based on CSS classes\n const isDark =\n document?.body?.classList?.contains('dark-theme') ||\n document?.documentElement?.classList?.contains('dark-theme');\n return isDark ? 'material-ui-dark' : 'material-ui-light';\n }\n\n return configTheme;\n }\n success(props: NotificationCallProps): Observable<NotificationResult> {\n return this.showAlert({ ...props, type: 'success' });\n }\n\n error(props: NotificationCallProps): Observable<NotificationResult> {\n return this.showAlert({ ...props, type: 'error' });\n }\n\n warning(props: NotificationCallProps): Observable<NotificationResult> {\n return this.showAlert({ ...props, type: 'warning' });\n }\n\n info(props: NotificationCallProps): Observable<NotificationResult> {\n return this.showAlert({ ...props, type: 'info' });\n }\n\n confirm(config: SweetAlertConfig): Observable<NotificationResult> {\n const swalConfig = {\n title: config.title,\n text: config.message,\n html: config.html,\n icon: 'question' as const,\n showCancelButton: config.showCancelButton !== false,\n confirmButtonText: config.confirmButtonText || 'Confirm',\n cancelButtonText: config.cancelButtonText || 'Cancel',\n allowOutsideClick: config.allowOutsideClick !== false,\n customClass: config.customClass ? { container: config.customClass } : undefined,\n theme: this.getTheme(),\n };\n\n return from(Swal.fire(swalConfig as any)).pipe(\n map((result) => ({\n isConfirmed: result.isConfirmed,\n isDenied: result.isDenied,\n isDismissed: result.isDismissed,\n value: result.value,\n })),\n );\n }\n\n private showAlert(\n props: NotificationCallProps & { type: NotificationType },\n ): Observable<NotificationResult> {\n const configOptions = props.config as Record<string, unknown> | undefined;\n const { duration, ...otherConfig } = configOptions || {};\n const swalConfig = {\n title: props.title,\n text: props.message,\n icon: props.type as 'success' | 'error' | 'warning' | 'info',\n theme: this.getTheme(),\n ...(duration ? { timer: duration as number, timerProgressBar: true } : {}),\n ...otherConfig,\n };\n\n return from(Swal.fire(swalConfig as any)).pipe(\n map((result) => ({\n isConfirmed: result.isConfirmed,\n isDenied: result.isDenied,\n isDismissed: result.isDismissed,\n value: result.value,\n })),\n );\n }\n}\n","import { Injectable, inject } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport {\n NotificationProviderBase,\n NOTIFICATION_CONFIG,\n NotificationProviderConfig,\n} from '../providers/notification-provider';\nimport { ToastrProvider } from '../providers/toastr-provider';\nimport { SnackbarProvider } from '../providers/snackbar-provider';\nimport { SweetalertProvider } from '../providers/sweetalert-provider';\nimport {\n NOTIFICATION_MESSAGES,\n type NotificationProvider,\n type NotificationResult,\n type NotificationType,\n} from '@acontplus/ui-kit';\nimport { NotificationCallProps, SweetAlertConfig } from '../types/notification.types';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class NotificationService {\n private config = inject<NotificationProviderConfig>(NOTIFICATION_CONFIG);\n private toastrProvider = inject(ToastrProvider);\n private snackbarProvider = inject(SnackbarProvider);\n private sweetAlertProvider = inject(SweetalertProvider);\n\n private providers = new Map<NotificationProvider, NotificationProviderBase>();\n private currentProvider: NotificationProviderBase;\n\n // Expose predefined messages\n readonly messages = NOTIFICATION_MESSAGES;\n\n constructor() {\n this.providers.set('toastr', this.toastrProvider);\n this.providers.set('snackbar', this.snackbarProvider);\n this.providers.set('sweetalert', this.sweetAlertProvider);\n\n this.currentProvider =\n this.providers.get(this.config.defaultProvider) || this.sweetAlertProvider;\n }\n\n setProvider(provider: NotificationProvider): void {\n const providerInstance = this.providers.get(provider);\n if (providerInstance) {\n this.currentProvider = providerInstance;\n }\n }\n\n success(props: NotificationCallProps): void | Observable<NotificationResult> {\n return this.currentProvider.success(props);\n }\n\n error(props: NotificationCallProps): void | Observable<NotificationResult> {\n return this.currentProvider.error(props);\n }\n\n warning(props: NotificationCallProps): void | Observable<NotificationResult> {\n return this.currentProvider.warning(props);\n }\n\n info(props: NotificationCallProps): void | Observable<NotificationResult> {\n return this.currentProvider.info(props);\n }\n\n confirm(config: SweetAlertConfig): Observable<NotificationResult> {\n return this.currentProvider.confirm(config);\n }\n\n show(\n props: { type: NotificationType } & NotificationCallProps,\n ): void | Observable<NotificationResult> {\n return this.currentProvider[props.type]({\n message: props.message,\n title: props.title,\n config: props.config,\n });\n }\n\n // Provider-specific methods maintaining your current API\n get toastr(): ToastrProvider {\n return this.providers.get('toastr') as ToastrProvider;\n }\n\n get snackbar(): SnackbarProvider {\n return this.providers.get('snackbar') as SnackbarProvider;\n }\n\n get sweetAlert(): SweetalertProvider {\n return this.providers.get('sweetalert') as SweetalertProvider;\n }\n\n // Quick methods using predefined messages\n quickSave(type: 'success' | 'error' = 'success'): void {\n const message = type === 'success' ? this.messages.SUCCESS.SAVE : this.messages.ERROR.SAVE;\n this.currentProvider[type]({ message });\n }\n\n quickDelete(type: 'success' | 'error' = 'success'): void {\n const message = type === 'success' ? this.messages.SUCCESS.DELETE : this.messages.ERROR.DELETE;\n this.currentProvider[type]({ message });\n }\n\n quickUpdate(type: 'success' | 'error' = 'success'): void {\n const message = type === 'success' ? this.messages.SUCCESS.UPDATE : this.messages.ERROR.UPDATE;\n this.currentProvider[type]({ message });\n }\n\n networkError(): void {\n this.currentProvider.error({\n message: this.messages.ERROR.NETWORK,\n title: 'Connection Error',\n });\n }\n\n sessionWarning(): void {\n this.currentProvider.warning({\n message: this.messages.WARNING.SESSION_EXPIRING,\n title: 'Session Alert',\n });\n }\n}\n","import { EnvironmentProviders, makeEnvironmentProviders } from '@angular/core';\nimport { provideToastr, GlobalConfig, ToastNoAnimation } from 'ngx-toastr';\nimport { NotificationService } from './services/notification-service';\nimport { NOTIFICATION_CONFIG, NotificationProviderConfig } from './providers/notification-provider';\nimport { ToastrProvider } from './providers/toastr-provider';\nimport { SnackbarProvider } from './providers/snackbar-provider';\nimport { SweetalertProvider } from './providers/sweetalert-provider';\n\n// Default toastr config (can be overridden)\nconst DEFAULT_TOASTR_CONFIG: Partial<GlobalConfig> = {\n positionClass: 'toast-bottom-center',\n timeOut: 5000,\n extendedTimeOut: 1500,\n closeButton: true,\n newestOnTop: true,\n preventDuplicates: true,\n progressBar: true,\n toastComponent: ToastNoAnimation,\n};\n\nexport function provideNotifications(\n config?: Partial<NotificationProviderConfig>,\n toastrConfig?: Partial<GlobalConfig>, // New optional param for dynamic toastr options\n): EnvironmentProviders {\n return makeEnvironmentProviders([\n provideToastr({\n ...DEFAULT_TOASTR_CONFIG,\n ...toastrConfig, // Merge with user-provided config for flexibility\n }),\n\n // Notification providers\n ToastrProvider,\n SnackbarProvider,\n SweetalertProvider,\n\n // Configuration\n {\n provide: NOTIFICATION_CONFIG,\n useValue: {\n defaultProvider: 'toastr',\n ...config,\n },\n },\n\n // Main service\n NotificationService,\n ]);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,19 +1,20 @@
1
1
  {
2
2
  "name": "@acontplus/ng-notifications",
3
- "version": "1.1.1",
3
+ "version": "2.0.0",
4
4
  "description": "Comprehensive Angular notification system with toast notifications (ngx-toastr), alerts (SweetAlert2), snackbars, theme detection, notification providers, and configurable styling. Supports multiple notification types with Angular Material integration.",
5
5
  "peerDependencies": {
6
- "@angular/common": "^20.3.9",
7
- "@angular/core": "^20.3.9",
8
- "@angular/material": "^20.2.12",
6
+ "@acontplus/ui-kit": "^2.0.0",
7
+ "@angular/common": "^21.0.6",
8
+ "@angular/core": "^21.0.6",
9
+ "@angular/material": "^21.0.5",
9
10
  "ngx-toastr": "^19.1.0",
10
- "sweetalert2": "^11.26.2",
11
+ "sweetalert2": "^11.26.3",
11
12
  "rxjs": "^7.8.2"
12
13
  },
13
14
  "sideEffects": true,
14
15
  "main": "fesm2022/acontplus-ng-notifications.mjs",
15
16
  "module": "fesm2022/acontplus-ng-notifications.mjs",
16
- "typings": "index.d.ts",
17
+ "typings": "types/acontplus-ng-notifications.d.ts",
17
18
  "files": [
18
19
  "index.d.ts",
19
20
  "*.d.ts",
@@ -71,7 +72,7 @@
71
72
  "default": "./package.json"
72
73
  },
73
74
  ".": {
74
- "types": "./index.d.ts",
75
+ "types": "./types/acontplus-ng-notifications.d.ts",
75
76
  "default": "./fesm2022/acontplus-ng-notifications.mjs"
76
77
  }
77
78
  },
@@ -1,17 +1,10 @@
1
+ import { BaseNotificationConfig, NotificationType, NotificationProvider, NotificationResult } from '@acontplus/ui-kit';
1
2
  import * as i0 from '@angular/core';
2
3
  import { InjectionToken, EnvironmentProviders } from '@angular/core';
3
4
  import { IndividualConfig, GlobalConfig } from 'ngx-toastr';
4
5
  import { MatSnackBarConfig } from '@angular/material/snack-bar';
5
6
  import { Observable } from 'rxjs';
6
7
 
7
- type NotificationType = 'success' | 'error' | 'warning' | 'info';
8
- type NotificationPosition = 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left' | 'top-center' | 'bottom-center';
9
- type NotificationProvider = 'toastr' | 'snackbar' | 'sweetalert';
10
- interface BaseNotificationConfig {
11
- readonly message: string;
12
- readonly title?: string;
13
- readonly type?: NotificationType;
14
- }
15
8
  interface NotificationCallProps extends BaseNotificationConfig {
16
9
  readonly config?: unknown;
17
10
  }
@@ -23,60 +16,6 @@ interface SweetAlertConfig extends BaseNotificationConfig {
23
16
  readonly allowOutsideClick?: boolean;
24
17
  readonly customClass?: string;
25
18
  }
26
- interface NotificationResult {
27
- isConfirmed?: boolean;
28
- isDenied?: boolean;
29
- isDismissed?: boolean;
30
- value?: unknown;
31
- }
32
-
33
- declare const NOTIFICATION_MESSAGES: {
34
- readonly SUCCESS: {
35
- readonly SAVE: "Data saved successfully";
36
- readonly DELETE: "Item deleted successfully";
37
- readonly UPDATE: "Data updated successfully";
38
- readonly UPLOAD: "File uploaded successfully";
39
- readonly CREATE: "Item created successfully";
40
- readonly SYNC: "Data synchronized successfully";
41
- };
42
- readonly ERROR: {
43
- readonly SAVE: "Failed to save data";
44
- readonly DELETE: "Failed to delete item";
45
- readonly UPDATE: "Failed to update data";
46
- readonly UPLOAD: "Failed to upload file";
47
- readonly NETWORK: "Network error occurred";
48
- readonly UNKNOWN: "An unexpected error occurred";
49
- readonly VALIDATION: "Validation error";
50
- readonly UNAUTHORIZED: "Unauthorized access";
51
- readonly SERVER: "Server error occurred";
52
- };
53
- readonly WARNING: {
54
- readonly UNSAVED_CHANGES: "You have unsaved changes";
55
- readonly SESSION_EXPIRING: "Your session is about to expire";
56
- readonly STORAGE_FULL: "Storage is running low";
57
- readonly DEPRECATED: "This feature is deprecated";
58
- readonly LIMIT_REACHED: "Limit reached";
59
- };
60
- readonly INFO: {
61
- readonly LOADING: "Loading data...";
62
- readonly PROCESSING: "Processing request...";
63
- readonly MAINTENANCE: "System maintenance scheduled";
64
- readonly UPDATE_AVAILABLE: "Update available";
65
- readonly BACKUP_COMPLETE: "Backup completed";
66
- };
67
- };
68
- declare const NOTIFICATION_DURATIONS: {
69
- readonly SHORT: 3000;
70
- readonly MEDIUM: 5000;
71
- readonly LONG: 8000;
72
- readonly PERSISTENT: 0;
73
- };
74
- declare const NOTIFICATION_ICONS: {
75
- readonly success: "check_circle";
76
- readonly error: "error";
77
- readonly warning: "warning";
78
- readonly info: "info";
79
- };
80
19
 
81
20
  type ToastrNotificationConfig = Partial<IndividualConfig>;
82
21
  declare const TOASTR_NOTIFICATION_CONFIG: InjectionToken<Partial<IndividualConfig<any>>>;
@@ -249,5 +188,5 @@ declare class NotificationService {
249
188
 
250
189
  declare function provideNotifications(config?: Partial<NotificationProviderConfig>, toastrConfig?: Partial<GlobalConfig>): EnvironmentProviders;
251
190
 
252
- export { DEFAULT_SNACKBAR_CONFIG, NOTIFICATION_CONFIG, NOTIFICATION_DURATIONS, NOTIFICATION_ICONS, NOTIFICATION_MESSAGES, NotificationProviderBase, NotificationService, SNACKBAR_CONFIG, SnackbarProvider, SweetalertProvider, TOASTR_NOTIFICATION_CONFIG, ToastrProvider, provideNotifications };
253
- export type { BaseNotificationConfig, NotificationCallProps, NotificationPosition, NotificationProvider, NotificationProviderConfig, NotificationResult, NotificationType, SnackbarCallProps, SnackbarConfig, SnackbarProps, SweetAlertConfig, ToastrCallProps, ToastrNotificationConfig, ToastrShowProps, ToastrType };
191
+ export { DEFAULT_SNACKBAR_CONFIG, NOTIFICATION_CONFIG, NotificationProviderBase, NotificationService, SNACKBAR_CONFIG, SnackbarProvider, SweetalertProvider, TOASTR_NOTIFICATION_CONFIG, ToastrProvider, provideNotifications };
192
+ export type { NotificationCallProps, NotificationProviderConfig, SnackbarCallProps, SnackbarConfig, SnackbarProps, SweetAlertConfig, ToastrCallProps, ToastrNotificationConfig, ToastrShowProps, ToastrType };