@igo2/core 21.0.0-next.43 → 21.0.0-next.44

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.
@@ -22,10 +22,10 @@ class ActivityService {
22
22
  this.ids.splice(index, 1);
23
23
  this.counter$.next(this.ids.length);
24
24
  }
25
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: ActivityService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
26
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: ActivityService, providedIn: 'root' });
25
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: ActivityService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
26
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: ActivityService, providedIn: 'root' });
27
27
  }
28
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: ActivityService, decorators: [{
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: ActivityService, decorators: [{
29
29
  type: Injectable,
30
30
  args: [{
31
31
  providedIn: 'root'
@@ -49,10 +49,10 @@ class ActivityInterceptor {
49
49
  this.activityService.unregister(id);
50
50
  }));
51
51
  }
52
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: ActivityInterceptor, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
53
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: ActivityInterceptor });
52
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: ActivityInterceptor, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
53
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: ActivityInterceptor });
54
54
  }
55
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: ActivityInterceptor, decorators: [{
55
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: ActivityInterceptor, decorators: [{
56
56
  type: Injectable
57
57
  }] });
58
58
 
@@ -69,11 +69,11 @@ class IgoActivityModule {
69
69
  ]
70
70
  };
71
71
  }
72
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: IgoActivityModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
73
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.24", ngImport: i0, type: IgoActivityModule });
74
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: IgoActivityModule });
72
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: IgoActivityModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
73
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.25", ngImport: i0, type: IgoActivityModule });
74
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: IgoActivityModule });
75
75
  }
76
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: IgoActivityModule, decorators: [{
76
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: IgoActivityModule, decorators: [{
77
77
  type: NgModule,
78
78
  args: [{
79
79
  imports: [],
@@ -75,10 +75,10 @@ class AnalyticsService {
75
75
  if (this.options.provider === 'matomo')
76
76
  this.paq.push(['trackEvent', category, action, parameters]);
77
77
  }
78
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: AnalyticsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
79
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: AnalyticsService, providedIn: 'root' });
78
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: AnalyticsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
79
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: AnalyticsService, providedIn: 'root' });
80
80
  }
81
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: AnalyticsService, decorators: [{
81
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: AnalyticsService, decorators: [{
82
82
  type: Injectable,
83
83
  args: [{
84
84
  providedIn: 'root'
@@ -1 +1 @@
1
- {"version":3,"file":"igo2-core-auth.mjs","sources":["../../../packages/core/auth/src/xhr-interceptor.interface.ts","../../../packages/core/auth/src/public_api.ts","../../../packages/core/auth/src/igo2-core-auth.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\n/**\n * Abstraction over an XHR interceptor used to authenticate raw XHR requests\n * (e.g. OpenLayers tile/feature loaders), which bypass Angular's\n * `HttpClient` and `HTTP_INTERCEPTORS`.\n */\nexport interface IXhrInterceptor {\n interceptXhr(xhr: XMLHttpRequest, url: string): boolean;\n alterUrlWithKeyAuth(url: string): string | undefined;\n}\n\nexport const XHR_INTERCEPTOR = new InjectionToken<IXhrInterceptor>(\n 'XHR_INTERCEPTOR'\n);\n","/*\n * Public API Surface of core/auth\n */\n\nexport * from './xhr-interceptor.interface';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;MAYa,eAAe,GAAG,IAAI,cAAc,CAC/C,iBAAiB;;ACbnB;;AAEG;;ACFH;;AAEG;;"}
1
+ {"version":3,"file":"igo2-core-auth.mjs","sources":["../../../packages/core/auth/src/xhr-interceptor.interface.ts","../../../packages/core/auth/src/public_api.ts","../../../packages/core/auth/src/igo2-core-auth.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\n/**\n * Abstraction over an XHR interceptor used to authenticate raw XHR requests\n * (e.g. OpenLayers tile/feature loaders), which bypass Angular's\n * `HttpClient` and `HTTP_INTERCEPTORS`.\n */\nexport interface IXhrInterceptor {\n prepareXhr?(url: string): Promise<boolean>;\n interceptXhr(xhr: XMLHttpRequest, url: string): boolean;\n alterUrlWithKeyAuth(url: string): string | undefined;\n}\n\nexport const XHR_INTERCEPTOR = new InjectionToken<IXhrInterceptor>(\n 'XHR_INTERCEPTOR'\n);\n","/*\n * Public API Surface of core/auth\n */\n\nexport * from './xhr-interceptor.interface';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;MAaa,eAAe,GAAG,IAAI,cAAc,CAC/C,iBAAiB;;ACdnB;;AAEG;;ACFH;;AAEG;;"}
@@ -15,8 +15,8 @@ const ALTERNATE_CONFIG_FROM_DEPRECATION = new Map(Object.entries(CONFIG_DEPRECAT
15
15
  ]));
16
16
 
17
17
  const version = {
18
- lib: '21.0.0-next.43',
19
- releaseDate: 1791484266246
18
+ lib: '21.0.0-next.44',
19
+ releaseDate: 1792605428214
20
20
  };
21
21
 
22
22
  class ConfigService {
@@ -100,10 +100,10 @@ class ConfigService {
100
100
  });
101
101
  });
102
102
  }
103
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: ConfigService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
104
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: ConfigService, providedIn: 'root' });
103
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: ConfigService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
104
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: ConfigService, providedIn: 'root' });
105
105
  }
106
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: ConfigService, decorators: [{
106
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: ConfigService, decorators: [{
107
107
  type: Injectable,
108
108
  args: [{
109
109
  providedIn: 'root'
@@ -135,11 +135,11 @@ class IgoConfigModule {
135
135
  providers: [provideConfig({})]
136
136
  };
137
137
  }
138
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: IgoConfigModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
139
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.24", ngImport: i0, type: IgoConfigModule });
140
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: IgoConfigModule });
138
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: IgoConfigModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
139
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.25", ngImport: i0, type: IgoConfigModule });
140
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: IgoConfigModule });
141
141
  }
142
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: IgoConfigModule, decorators: [{
142
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: IgoConfigModule, decorators: [{
143
143
  type: NgModule,
144
144
  args: [{
145
145
  imports: [],
@@ -1 +1 @@
1
- {"version":3,"file":"igo2-core-config.mjs","sources":["../../../packages/core/config/src/config-deprecated.ts","../../../packages/core/config/src/version.ts","../../../packages/core/config/src/config.service.ts","../../../packages/core/config/src/config.provider.ts","../../../packages/core/config/src/config.module.ts","../../../packages/core/config/src/igo2-core-config.ts"],"sourcesContent":["import { AlternateConfigOptions, DeprecatedOptions } from './config.interface';\n\nexport const CONFIG_DEPRECATED: Record<string, DeprecatedOptions> = {};\n\nexport const ALTERNATE_CONFIG_FROM_DEPRECATION = new Map<\n string,\n AlternateConfigOptions\n>(\n Object.entries(CONFIG_DEPRECATED)\n .filter(([_, options]) => options.alternativeKey)\n .map(\n ([key, options]) =>\n [\n options.alternativeKey!,\n {\n deprecatedKey: key\n } satisfies AlternateConfigOptions\n ] as const\n )\n);\n","export interface Version {\n app?: string;\n lib?: string;\n releaseDateApp?: number;\n releaseDate?: number;\n}\n\nexport const version: Version = {\n lib: '21.0.0-next.43',\n releaseDate: 1791484266246\n};\n","import { HttpBackend, HttpClient } from '@angular/common/http';\nimport { Injectable, inject } from '@angular/core';\n\nimport { ObjectUtils } from '@igo2/utils';\n\nimport { BehaviorSubject, throwError } from 'rxjs';\n\nimport {\n ALTERNATE_CONFIG_FROM_DEPRECATION,\n CONFIG_DEPRECATED\n} from './config-deprecated';\nimport { ConfigOptions } from './config.interface';\nimport { version } from './version';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ConfigService<T extends object = Record<string, any>> {\n private config!: T | undefined;\n private httpClient: HttpClient;\n private configDeprecated = new Map(Object.entries(CONFIG_DEPRECATED));\n\n private _isLoaded$ = new BehaviorSubject(false);\n isLoaded$ = this._isLoaded$.asObservable();\n\n constructor() {\n const handler = inject(HttpBackend);\n\n this.httpClient = new HttpClient(handler);\n }\n\n /**\n * Use to get the all config file (merge from environnement.ts and config.json)\n */\n public getConfigs(): any {\n Array.from(this.configDeprecated.keys()).map((deprecatedKey) => {\n const deprecatedValue = ObjectUtils.resolve(\n this.config ?? {},\n deprecatedKey\n );\n if (deprecatedValue !== undefined) {\n this.handleDeprecatedConfig(deprecatedKey);\n }\n });\n return this.config;\n }\n\n /**\n * Use to get the data found in config file\n */\n public getConfig<T = any>(key: string, defaultValue?: unknown): T {\n let value = ObjectUtils.resolve(this.config ?? {}, key);\n\n const isDeprecated = this.configDeprecated.get(key);\n if (isDeprecated && value !== undefined) {\n this.handleDeprecatedConfig(key);\n } else if (value === undefined) {\n value = this.handleDeprecationPossibility(key);\n }\n\n return (value ?? defaultValue) as T;\n }\n\n private handleDeprecatedConfig(key: string): void {\n const options = this.configDeprecated.get(key);\n\n let message = `This config (${key}) is deprecated and will be removed shortly`;\n if (options?.alternativeKey) {\n message += ` You should use this key (${options.alternativeKey}) as an alternate solution`;\n }\n\n const currentDate = new Date();\n options?.mayBeRemoveIn && currentDate >= options.mayBeRemoveIn\n ? console.error(message)\n : console.warn(message);\n }\n\n private handleDeprecationPossibility(key: string): any {\n const options = ALTERNATE_CONFIG_FROM_DEPRECATION.get(key);\n if (!options) {\n return;\n }\n\n return this.getConfig(options.deprecatedKey);\n }\n\n /**\n * This method loads \"[path]\" to get all config's variables\n */\n public load(options: ConfigOptions<T>): void | Promise<unknown> {\n const baseConfig = options.default;\n const path = options.path;\n if (!path) {\n this.config = baseConfig;\n this._isLoaded$.next(true);\n return;\n }\n\n return new Promise((resolve) => {\n this.httpClient.get<Record<string, unknown>>(path).subscribe({\n next: (configResponse) => {\n this.config = ObjectUtils.mergeDeep(\n ObjectUtils.mergeDeep({ version }, baseConfig ?? {}),\n configResponse\n ) as T;\n this._isLoaded$.next(true);\n resolve(true);\n },\n error: (error) => {\n console.log(`Configuration file ${path} could not be read`);\n this._isLoaded$.next(false);\n resolve(true);\n return throwError(() => error.error || 'Server error');\n }\n });\n });\n }\n}\n","import {\n EnvironmentProviders,\n InjectionToken,\n inject,\n makeEnvironmentProviders,\n provideAppInitializer\n} from '@angular/core';\n\nimport { ConfigOptions } from './config.interface';\nimport { ConfigService } from './config.service';\n\nexport const CONFIG_OPTIONS = new InjectionToken<ConfigOptions>(\n 'configOptions'\n);\n\nexport function provideConfig(options: ConfigOptions): EnvironmentProviders {\n return makeEnvironmentProviders([\n {\n provide: CONFIG_OPTIONS,\n useValue: options\n },\n provideAppInitializer(async () => {\n const configService = inject(ConfigService);\n const options = inject(CONFIG_OPTIONS);\n return configService.load(options);\n })\n ]);\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\n\nimport { provideConfig } from './config.provider';\n\n/**\n * @deprecated import the provideConfig directly\n */\n@NgModule({\n imports: [],\n declarations: [],\n exports: []\n})\nexport class IgoConfigModule {\n static forRoot(): ModuleWithProviders<IgoConfigModule> {\n return {\n ngModule: IgoConfigModule,\n providers: [provideConfig({})]\n };\n }\n}\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":"igo2-core-config.mjs","sources":["../../../packages/core/config/src/config-deprecated.ts","../../../packages/core/config/src/version.ts","../../../packages/core/config/src/config.service.ts","../../../packages/core/config/src/config.provider.ts","../../../packages/core/config/src/config.module.ts","../../../packages/core/config/src/igo2-core-config.ts"],"sourcesContent":["import { AlternateConfigOptions, DeprecatedOptions } from './config.interface';\n\nexport const CONFIG_DEPRECATED: Record<string, DeprecatedOptions> = {};\n\nexport const ALTERNATE_CONFIG_FROM_DEPRECATION = new Map<\n string,\n AlternateConfigOptions\n>(\n Object.entries(CONFIG_DEPRECATED)\n .filter(([_, options]) => options.alternativeKey)\n .map(\n ([key, options]) =>\n [\n options.alternativeKey!,\n {\n deprecatedKey: key\n } satisfies AlternateConfigOptions\n ] as const\n )\n);\n","export interface Version {\n app?: string;\n lib?: string;\n releaseDateApp?: number;\n releaseDate?: number;\n}\n\nexport const version: Version = {\n lib: '21.0.0-next.44',\n releaseDate: 1792605428214\n};\n","import { HttpBackend, HttpClient } from '@angular/common/http';\nimport { Injectable, inject } from '@angular/core';\n\nimport { ObjectUtils } from '@igo2/utils';\n\nimport { BehaviorSubject, throwError } from 'rxjs';\n\nimport {\n ALTERNATE_CONFIG_FROM_DEPRECATION,\n CONFIG_DEPRECATED\n} from './config-deprecated';\nimport { ConfigOptions } from './config.interface';\nimport { version } from './version';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ConfigService<T extends object = Record<string, any>> {\n private config!: T | undefined;\n private httpClient: HttpClient;\n private configDeprecated = new Map(Object.entries(CONFIG_DEPRECATED));\n\n private _isLoaded$ = new BehaviorSubject(false);\n isLoaded$ = this._isLoaded$.asObservable();\n\n constructor() {\n const handler = inject(HttpBackend);\n\n this.httpClient = new HttpClient(handler);\n }\n\n /**\n * Use to get the all config file (merge from environnement.ts and config.json)\n */\n public getConfigs(): any {\n Array.from(this.configDeprecated.keys()).map((deprecatedKey) => {\n const deprecatedValue = ObjectUtils.resolve(\n this.config ?? {},\n deprecatedKey\n );\n if (deprecatedValue !== undefined) {\n this.handleDeprecatedConfig(deprecatedKey);\n }\n });\n return this.config;\n }\n\n /**\n * Use to get the data found in config file\n */\n public getConfig<T = any>(key: string, defaultValue?: unknown): T {\n let value = ObjectUtils.resolve(this.config ?? {}, key);\n\n const isDeprecated = this.configDeprecated.get(key);\n if (isDeprecated && value !== undefined) {\n this.handleDeprecatedConfig(key);\n } else if (value === undefined) {\n value = this.handleDeprecationPossibility(key);\n }\n\n return (value ?? defaultValue) as T;\n }\n\n private handleDeprecatedConfig(key: string): void {\n const options = this.configDeprecated.get(key);\n\n let message = `This config (${key}) is deprecated and will be removed shortly`;\n if (options?.alternativeKey) {\n message += ` You should use this key (${options.alternativeKey}) as an alternate solution`;\n }\n\n const currentDate = new Date();\n options?.mayBeRemoveIn && currentDate >= options.mayBeRemoveIn\n ? console.error(message)\n : console.warn(message);\n }\n\n private handleDeprecationPossibility(key: string): any {\n const options = ALTERNATE_CONFIG_FROM_DEPRECATION.get(key);\n if (!options) {\n return;\n }\n\n return this.getConfig(options.deprecatedKey);\n }\n\n /**\n * This method loads \"[path]\" to get all config's variables\n */\n public load(options: ConfigOptions<T>): void | Promise<unknown> {\n const baseConfig = options.default;\n const path = options.path;\n if (!path) {\n this.config = baseConfig;\n this._isLoaded$.next(true);\n return;\n }\n\n return new Promise((resolve) => {\n this.httpClient.get<Record<string, unknown>>(path).subscribe({\n next: (configResponse) => {\n this.config = ObjectUtils.mergeDeep(\n ObjectUtils.mergeDeep({ version }, baseConfig ?? {}),\n configResponse\n ) as T;\n this._isLoaded$.next(true);\n resolve(true);\n },\n error: (error) => {\n console.log(`Configuration file ${path} could not be read`);\n this._isLoaded$.next(false);\n resolve(true);\n return throwError(() => error.error || 'Server error');\n }\n });\n });\n }\n}\n","import {\n EnvironmentProviders,\n InjectionToken,\n inject,\n makeEnvironmentProviders,\n provideAppInitializer\n} from '@angular/core';\n\nimport { ConfigOptions } from './config.interface';\nimport { ConfigService } from './config.service';\n\nexport const CONFIG_OPTIONS = new InjectionToken<ConfigOptions>(\n 'configOptions'\n);\n\nexport function provideConfig(options: ConfigOptions): EnvironmentProviders {\n return makeEnvironmentProviders([\n {\n provide: CONFIG_OPTIONS,\n useValue: options\n },\n provideAppInitializer(async () => {\n const configService = inject(ConfigService);\n const options = inject(CONFIG_OPTIONS);\n return configService.load(options);\n })\n ]);\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\n\nimport { provideConfig } from './config.provider';\n\n/**\n * @deprecated import the provideConfig directly\n */\n@NgModule({\n imports: [],\n declarations: [],\n exports: []\n})\nexport class IgoConfigModule {\n static forRoot(): ModuleWithProviders<IgoConfigModule> {\n return {\n ngModule: IgoConfigModule,\n providers: [provideConfig({})]\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
@@ -9,11 +9,11 @@ import { ConfigService } from '@igo2/core/config';
9
9
  import { timeout, catchError } from 'rxjs/operators';
10
10
 
11
11
  class IgoLanguageModule {
12
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: IgoLanguageModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
13
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.24", ngImport: i0, type: IgoLanguageModule, exports: [TranslateModule] });
14
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: IgoLanguageModule, imports: [TranslateModule] });
12
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: IgoLanguageModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
13
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.25", ngImport: i0, type: IgoLanguageModule, exports: [TranslateModule] });
14
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: IgoLanguageModule, imports: [TranslateModule] });
15
15
  }
16
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: IgoLanguageModule, decorators: [{
16
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: IgoLanguageModule, decorators: [{
17
17
  type: NgModule,
18
18
  args: [{
19
19
  exports: [TranslateModule]
@@ -120,10 +120,10 @@ class LanguageService {
120
120
  this.language$.next(this.language);
121
121
  });
122
122
  }
123
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: LanguageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
124
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: LanguageService, providedIn: 'root' });
123
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: LanguageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
124
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: LanguageService, providedIn: 'root' });
125
125
  }
126
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: LanguageService, decorators: [{
126
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: LanguageService, decorators: [{
127
127
  type: Injectable,
128
128
  args: [{
129
129
  providedIn: 'root'
@@ -83,10 +83,10 @@ class MediaService {
83
83
  isDesktop() {
84
84
  return this.getMedia() === Media.Desktop;
85
85
  }
86
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: MediaService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
87
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: MediaService, providedIn: 'root' });
86
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: MediaService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
87
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: MediaService, providedIn: 'root' });
88
88
  }
89
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: MediaService, decorators: [{
89
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: MediaService, decorators: [{
90
90
  type: Injectable,
91
91
  args: [{
92
92
  providedIn: 'root'
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { inject, output, signal, ChangeDetectionStrategy, Component, ApplicationRef, createComponent, Injectable, provideAppInitializer } from '@angular/core';
2
+ import { inject, output, signal, ChangeDetectionStrategy, Component, ApplicationRef, createComponent, Injectable, provideAppInitializer, Injector } from '@angular/core';
3
3
  import { NgClass, DOCUMENT } from '@angular/common';
4
4
  import { MatIconButton } from '@angular/material/button';
5
5
  import * as i1 from '@angular/material/icon';
@@ -112,10 +112,10 @@ class ToastComponent {
112
112
  this.progressIntervalId = null;
113
113
  }
114
114
  }
115
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: ToastComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
116
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.24", type: ToastComponent, isStandalone: true, selector: "igo-toast", outputs: { removed: "removed" }, host: { listeners: { "mouseenter": "onEnter()", "mouseleave": "onLeave()", "touchstart": "onEnter()", "touchend": "onLeave()" }, properties: { "class": "animationState()" } }, ngImport: i0, template: "<div\n class=\"igo-toast\"\n [ngClass]=\"'toast-' + type\"\n [attr.tabindex]=\"config.tapToDismiss ? '0' : null\"\n (click)=\"onTap()\"\n (keydown.enter)=\"onTap()\"\n>\n @if (showIcon) {\n <mat-icon class=\"toast-icon\">\n @switch (type) {\n @case ('success') {\n check_circle\n }\n @case ('error') {\n error\n }\n @case ('warning') {\n warning\n }\n @default {\n info\n }\n }\n </mat-icon>\n }\n <div class=\"toast-content\">\n @if (title) {\n <header class=\"toast-title\">{{ title }}</header>\n }\n @if (!enableHtml) {\n <p class=\"toast-message\">{{ message }}</p>\n } @else {\n <p class=\"toast-message\" [innerHTML]=\"safeMessage\"></p>\n }\n </div>\n @if (config.closeButton) {\n <button matIconButton class=\"toast-close-button\" (click)=\"close($event)\">\n <mat-icon>close</mat-icon>\n </button>\n }\n @if (config.progressBar && !config.disableTimeOut) {\n <mat-progress-bar mode=\"determinate\" [value]=\"progress()\" />\n }\n</div>\n", styles: [":host{display:block;pointer-events:all;opacity:0;transition:opacity .3s ease-out}:host.active{opacity:1;transition:opacity .3s ease-in}:host.inactive,:host.removed{opacity:0}:host ::ng-deep .mdc-linear-progress__bar{transition:transform .15s 0ms cubic-bezier(.4,0,.6,1)}.igo-toast{position:relative;overflow:hidden;padding:12px 16px;border-radius:4px;box-shadow:0 3px 6px -1px #0000001f,0 10px 36px -4px #4d60e84d;color:#fff;min-width:300px;max-width:400px;cursor:pointer;display:flex;align-items:flex-start;gap:12px}.toast-success{background-color:#51a351}.toast-error{background-color:var(--mat-sys-error);color:var(--mat-sys-on-error)}.toast-info{background-color:var(--mat-sys-primary);color:var(--mat-sys-on-primary)}.toast-warning{background-color:#f89406}.toast-show{background-color:var(--mat-sys-primary);color:var(--mat-sys-on-primary)}.toast-icon{flex-shrink:0;font-size:22px;width:22px;height:22px}.toast-content{flex:1;min-width:0}.toast-title{font-weight:700;font-size:var(--sdg-font-size-h5, 19px);line-height:24px}.toast-message{color:inherit;font-size:13px;word-wrap:break-word;margin-bottom:0!important}.toast-close-button{position:absolute;top:4px;right:4px;opacity:.8;color:inherit}.toast-close-button:hover{opacity:1}mat-progress-bar{position:absolute;bottom:0;left:0;width:100%;--mdc-linear-progress-active-indicator-transition-duration: 0ms;--mdc-linear-progress-active-indicator-color: rgba( 255, 255, 255, .7 ) !important;--mdc-linear-progress-track-color: rgba(255, 255, 255, .3) !important;--mat-progress-bar-active-indicator-color: rgba(255, 255, 255, .7);--mat-progress-bar-track-color: rgba(255, 255, 255, .3);--mdc-linear-progress-track-height: 3px;--mdc-linear-progress-active-indicator-height: 3px}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
115
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: ToastComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
116
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.25", type: ToastComponent, isStandalone: true, selector: "igo-toast", outputs: { removed: "removed" }, host: { listeners: { "mouseenter": "onEnter()", "mouseleave": "onLeave()", "touchstart": "onEnter()", "touchend": "onLeave()" }, properties: { "class": "animationState()" } }, ngImport: i0, template: "<div\n class=\"igo-toast\"\n [ngClass]=\"'toast-' + type\"\n [attr.tabindex]=\"config.tapToDismiss ? '0' : null\"\n (click)=\"onTap()\"\n (keydown.enter)=\"onTap()\"\n>\n @if (showIcon) {\n <mat-icon class=\"toast-icon\">\n @switch (type) {\n @case ('success') {\n check_circle\n }\n @case ('error') {\n error\n }\n @case ('warning') {\n warning\n }\n @default {\n info\n }\n }\n </mat-icon>\n }\n <div class=\"toast-content\">\n @if (title) {\n <header class=\"toast-title\">{{ title }}</header>\n }\n @if (!enableHtml) {\n <p class=\"toast-message\">{{ message }}</p>\n } @else {\n <p class=\"toast-message\" [innerHTML]=\"safeMessage\"></p>\n }\n </div>\n @if (config.closeButton) {\n <button matIconButton class=\"toast-close-button\" (click)=\"close($event)\">\n <mat-icon>close</mat-icon>\n </button>\n }\n @if (config.progressBar && !config.disableTimeOut) {\n <mat-progress-bar mode=\"determinate\" [value]=\"progress()\" />\n }\n</div>\n", styles: [":host{display:block;pointer-events:all;opacity:0;transition:opacity .3s ease-out}:host.active{opacity:1;transition:opacity .3s ease-in}:host.inactive,:host.removed{opacity:0}:host ::ng-deep .mdc-linear-progress__bar{transition:transform .15s 0ms cubic-bezier(.4,0,.6,1)}.igo-toast{position:relative;overflow:hidden;padding:12px 16px;border-radius:4px;box-shadow:0 3px 6px -1px #0000001f,0 10px 36px -4px #4d60e84d;color:#fff;min-width:300px;max-width:400px;cursor:pointer;display:flex;align-items:flex-start;gap:12px}.toast-success{background-color:#51a351}.toast-error{background-color:var(--mat-sys-error);color:var(--mat-sys-on-error)}.toast-info{background-color:var(--mat-sys-primary);color:var(--mat-sys-on-primary)}.toast-warning{background-color:#f89406}.toast-show{background-color:var(--mat-sys-primary);color:var(--mat-sys-on-primary)}.toast-icon{flex-shrink:0;font-size:22px;width:22px;height:22px}.toast-content{flex:1;min-width:0}.toast-title{font-weight:700;font-size:var(--sdg-font-size-h5, 19px);line-height:24px}.toast-message{color:inherit;font-size:13px;word-wrap:break-word;margin-bottom:0!important}.toast-close-button{position:absolute;top:4px;right:4px;opacity:.8;color:inherit}.toast-close-button:hover{opacity:1}mat-progress-bar{position:absolute;bottom:0;left:0;width:100%;--mdc-linear-progress-active-indicator-transition-duration: 0ms;--mdc-linear-progress-active-indicator-color: rgba( 255, 255, 255, .7 ) !important;--mdc-linear-progress-track-color: rgba(255, 255, 255, .3) !important;--mat-progress-bar-active-indicator-color: rgba(255, 255, 255, .7);--mat-progress-bar-track-color: rgba(255, 255, 255, .3);--mdc-linear-progress-track-height: 3px;--mdc-linear-progress-active-indicator-height: 3px}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
117
117
  }
118
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: ToastComponent, decorators: [{
118
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: ToastComponent, decorators: [{
119
119
  type: Component,
120
120
  args: [{ selector: 'igo-toast', standalone: true, imports: [NgClass, MatIconModule, MatIconButton, MatProgressBar], changeDetection: ChangeDetectionStrategy.OnPush, host: {
121
121
  '[class]': 'animationState()',
@@ -127,10 +127,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.24", ngImpo
127
127
  }], propDecorators: { removed: [{ type: i0.Output, args: ["removed"] }] } });
128
128
 
129
129
  class ToastContainerComponent {
130
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: ToastContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
131
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.24", type: ToastContainerComponent, isStandalone: true, selector: "igo-toast-container", ngImport: i0, template: `<ng-content></ng-content>`, isInline: true, styles: [":host{position:fixed;pointer-events:none;z-index:10000;display:flex;flex-direction:column;row-gap:8px}:host.toast-bottom-right{bottom:12px;right:12px;align-items:flex-end}:host.toast-bottom-left{bottom:12px;left:12px;align-items:flex-start}:host.toast-top-right{top:12px;right:12px;align-items:flex-end}:host.toast-top-left{top:12px;left:12px;align-items:flex-start}:host.toast-top-center{top:12px;left:50%;transform:translate(-50%);align-items:center}:host.toast-bottom-center{bottom:12px;left:50%;transform:translate(-50%);align-items:center}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
130
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: ToastContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
131
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.25", type: ToastContainerComponent, isStandalone: true, selector: "igo-toast-container", ngImport: i0, template: `<ng-content></ng-content>`, isInline: true, styles: [":host{position:fixed;pointer-events:none;z-index:10000;display:flex;flex-direction:column;row-gap:8px}:host.toast-bottom-right{bottom:12px;right:12px;align-items:flex-end}:host.toast-bottom-left{bottom:12px;left:12px;align-items:flex-start}:host.toast-top-right{top:12px;right:12px;align-items:flex-end}:host.toast-top-left{top:12px;left:12px;align-items:flex-start}:host.toast-top-center{top:12px;left:50%;transform:translate(-50%);align-items:center}:host.toast-bottom-center{bottom:12px;left:50%;transform:translate(-50%);align-items:center}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
132
132
  }
133
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: ToastContainerComponent, decorators: [{
133
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: ToastContainerComponent, decorators: [{
134
134
  type: Component,
135
135
  args: [{ selector: 'igo-toast-container', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: `<ng-content></ng-content>`, styles: [":host{position:fixed;pointer-events:none;z-index:10000;display:flex;flex-direction:column;row-gap:8px}:host.toast-bottom-right{bottom:12px;right:12px;align-items:flex-end}:host.toast-bottom-left{bottom:12px;left:12px;align-items:flex-start}:host.toast-top-right{top:12px;right:12px;align-items:flex-end}:host.toast-top-left{top:12px;left:12px;align-items:flex-start}:host.toast-top-center{top:12px;left:50%;transform:translate(-50%);align-items:center}:host.toast-bottom-center{bottom:12px;left:50%;transform:translate(-50%);align-items:center}\n"] }]
136
136
  }] });
@@ -262,10 +262,10 @@ class ToastService {
262
262
  this.document.body.appendChild(el);
263
263
  return this.containerRef;
264
264
  }
265
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: ToastService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
266
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: ToastService, providedIn: 'root' });
265
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: ToastService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
266
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: ToastService, providedIn: 'root' });
267
267
  }
268
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: ToastService, decorators: [{
268
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: ToastService, decorators: [{
269
269
  type: Injectable,
270
270
  args: [{ providedIn: 'root' }]
271
271
  }] });
@@ -285,10 +285,13 @@ function provideMessage(config) {
285
285
 
286
286
  class MessageService {
287
287
  configService = inject(ConfigService);
288
- languageService = inject(LanguageService);
288
+ injector = inject(Injector);
289
289
  toastService = inject(ToastService);
290
290
  messages$ = new BehaviorSubject([]);
291
291
  options;
292
+ get languageService() {
293
+ return this.injector.get(LanguageService, null);
294
+ }
292
295
  constructor() {
293
296
  this.options = this.configService.getConfig('message');
294
297
  }
@@ -362,8 +365,12 @@ class MessageService {
362
365
  handleToast(type, text, title, options = {}, textInterpolateParams, titleInterpolateParams) {
363
366
  const translatedTextInterpolateParams = this.translateInterpolateParams(textInterpolateParams);
364
367
  const translatedTitleInterpolateParams = this.translateInterpolateParams(titleInterpolateParams);
365
- const translatedMessage = this.languageService.translate.instant(text, translatedTextInterpolateParams);
366
- const translatedTitle = this.languageService.translate.instant(title, translatedTitleInterpolateParams);
368
+ const translatedMessage = this.languageService
369
+ ? this.languageService.translate.instant(text, translatedTextInterpolateParams)
370
+ : text;
371
+ const translatedTitle = this.languageService
372
+ ? this.languageService.translate.instant(title, translatedTitleInterpolateParams)
373
+ : title;
367
374
  let activeToast;
368
375
  switch (type) {
369
376
  case 'success':
@@ -402,7 +409,7 @@ class MessageService {
402
409
  return Object.keys(params).reduce((acc, key) => {
403
410
  const value = params[key];
404
411
  acc[key] =
405
- typeof value === 'string'
412
+ typeof value === 'string' && this.languageService
406
413
  ? this.languageService.translate.instant(value)
407
414
  : value;
408
415
  return acc;
@@ -432,10 +439,10 @@ class MessageService {
432
439
  message.title = undefined;
433
440
  return message;
434
441
  }
435
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: MessageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
436
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: MessageService, providedIn: 'root' });
442
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: MessageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
443
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: MessageService, providedIn: 'root' });
437
444
  }
438
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: MessageService, decorators: [{
445
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: MessageService, decorators: [{
439
446
  type: Injectable,
440
447
  args: [{
441
448
  providedIn: 'root'
@@ -1 +1 @@
1
- {"version":3,"file":"igo2-core-message.mjs","sources":["../../../packages/core/message/src/message.enum.ts","../../../packages/core/message/src/toast/toast/toast.component.ts","../../../packages/core/message/src/toast/toast/toast.component.html","../../../packages/core/message/src/toast/toast-container.component.ts","../../../packages/core/message/src/toast/toast.interface.ts","../../../packages/core/message/src/toast/toast.service.ts","../../../packages/core/message/src/message.provider.ts","../../../packages/core/message/src/message.service.ts","../../../packages/core/message/src/igo2-core-message.ts"],"sourcesContent":["export enum MessageType {\n ERROR = 'error',\n ALERT = 'warning',\n // eslint-disable-next-line @typescript-eslint/no-duplicate-enum-values\n WARNING = 'warning',\n INFO = 'info',\n SUCCESS = 'success',\n SHOW = 'show'\n}\n","import { NgClass } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n OnDestroy,\n OnInit,\n inject,\n output,\n signal\n} from '@angular/core';\nimport { MatIconButton } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatProgressBar } from '@angular/material/progress-bar';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\n\nimport { ToastConfig, ToastType } from '../toast.interface';\n\n@Component({\n selector: 'igo-toast',\n standalone: true,\n imports: [NgClass, MatIconModule, MatIconButton, MatProgressBar],\n changeDetection: ChangeDetectionStrategy.OnPush,\n templateUrl: './toast.component.html',\n styleUrl: './toast.component.scss',\n host: {\n '[class]': 'animationState()',\n '(mouseenter)': 'onEnter()',\n '(mouseleave)': 'onLeave()',\n '(touchstart)': 'onEnter()',\n '(touchend)': 'onLeave()'\n }\n})\nexport class ToastComponent implements OnInit, OnDestroy {\n private sanitizer = inject(DomSanitizer);\n\n readonly removed = output<number>();\n toastId!: number;\n type!: ToastType;\n title = '';\n config!: ToastConfig;\n enableHtml = false;\n showIcon = false;\n\n private _message = '';\n safeMessage: SafeHtml = '';\n\n get message(): string {\n return this._message;\n }\n\n set message(value: string) {\n this._message = value;\n this.safeMessage = this.sanitizer.bypassSecurityTrustHtml(value);\n }\n\n progress = signal(100);\n animationState = signal<'inactive' | 'active' | 'removed'>('inactive');\n\n private timeoutId: ReturnType<typeof setTimeout> | null = null;\n private progressIntervalId: ReturnType<typeof setInterval> | null = null;\n private startTime = 0;\n private remainingTime = 0;\n private totalTimeOut = 0;\n\n ngOnInit() {\n this.animationState.set('active');\n if (!this.config.disableTimeOut) {\n this.remainingTime = this.config.timeOut ?? 10000;\n this.totalTimeOut = this.remainingTime;\n this.startTimer();\n }\n }\n\n ngOnDestroy() {\n this.clearTimers();\n }\n\n onEnter() {\n if (!this.config.disableTimeOut) {\n this.remainingTime = (this.progress() / 100) * this.totalTimeOut;\n this.clearTimers();\n }\n }\n\n onLeave() {\n if (!this.config.disableTimeOut) {\n if (!this.config.freezeProgressOnHover) {\n const extendedTimeOut = this.config.extendedTimeOut ?? 10000;\n this.remainingTime = extendedTimeOut;\n this.totalTimeOut = extendedTimeOut;\n }\n this.startTimer();\n }\n }\n\n onTap() {\n if (this.config.tapToDismiss) {\n this.remove();\n }\n }\n\n close(event: Event) {\n event.stopPropagation();\n this.remove();\n }\n\n remove() {\n this.clearTimers();\n this.animationState.set('removed');\n setTimeout(() => {\n this.removed.emit(this.toastId);\n }, 300);\n }\n\n private startTimer() {\n this.startTime = Date.now();\n const duration = this.remainingTime;\n this.progress.set((duration / this.totalTimeOut) * 100);\n\n this.progressIntervalId = setInterval(() => {\n const elapsed = Date.now() - this.startTime;\n const remaining = Math.max(0, duration - elapsed);\n this.progress.set((remaining / this.totalTimeOut) * 100);\n }, 50);\n\n this.timeoutId = setTimeout(() => {\n this.remove();\n }, duration);\n }\n\n private clearTimers() {\n if (this.timeoutId) {\n clearTimeout(this.timeoutId);\n this.timeoutId = null;\n }\n if (this.progressIntervalId) {\n clearInterval(this.progressIntervalId);\n this.progressIntervalId = null;\n }\n }\n}\n","<div\n class=\"igo-toast\"\n [ngClass]=\"'toast-' + type\"\n [attr.tabindex]=\"config.tapToDismiss ? '0' : null\"\n (click)=\"onTap()\"\n (keydown.enter)=\"onTap()\"\n>\n @if (showIcon) {\n <mat-icon class=\"toast-icon\">\n @switch (type) {\n @case ('success') {\n check_circle\n }\n @case ('error') {\n error\n }\n @case ('warning') {\n warning\n }\n @default {\n info\n }\n }\n </mat-icon>\n }\n <div class=\"toast-content\">\n @if (title) {\n <header class=\"toast-title\">{{ title }}</header>\n }\n @if (!enableHtml) {\n <p class=\"toast-message\">{{ message }}</p>\n } @else {\n <p class=\"toast-message\" [innerHTML]=\"safeMessage\"></p>\n }\n </div>\n @if (config.closeButton) {\n <button matIconButton class=\"toast-close-button\" (click)=\"close($event)\">\n <mat-icon>close</mat-icon>\n </button>\n }\n @if (config.progressBar && !config.disableTimeOut) {\n <mat-progress-bar mode=\"determinate\" [value]=\"progress()\" />\n }\n</div>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n selector: 'igo-toast-container',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `<ng-content></ng-content>`,\n styles: [\n `\n :host {\n position: fixed;\n pointer-events: none;\n z-index: 10000;\n display: flex;\n flex-direction: column;\n row-gap: 8px;\n }\n\n :host.toast-bottom-right {\n bottom: 12px;\n right: 12px;\n align-items: flex-end;\n }\n\n :host.toast-bottom-left {\n bottom: 12px;\n left: 12px;\n align-items: flex-start;\n }\n\n :host.toast-top-right {\n top: 12px;\n right: 12px;\n align-items: flex-end;\n }\n\n :host.toast-top-left {\n top: 12px;\n left: 12px;\n align-items: flex-start;\n }\n\n :host.toast-top-center {\n top: 12px;\n left: 50%;\n transform: translateX(-50%);\n align-items: center;\n }\n\n :host.toast-bottom-center {\n bottom: 12px;\n left: 50%;\n transform: translateX(-50%);\n align-items: center;\n }\n `\n ]\n})\nexport class ToastContainerComponent {}\n","export interface ToastConfig {\n timeOut: number;\n extendedTimeOut: number;\n closeButton: boolean;\n progressBar: boolean;\n tapToDismiss: boolean;\n positionClass: string;\n maxOpened: number;\n preventDuplicates: boolean;\n enableHtml: boolean;\n disableTimeOut: boolean;\n showIcon: boolean;\n freezeProgressOnHover: boolean;\n}\n\nexport type IndividualToastConfig = Partial<ToastConfig>;\n\nexport interface ToastRef {\n toastId: number;\n message: string;\n title: string;\n type: ToastType;\n config: ToastConfig;\n}\n\nexport type ToastType = 'success' | 'error' | 'info' | 'warning' | 'show';\n\nexport const DEFAULT_TOAST_CONFIG: ToastConfig = {\n timeOut: 10000,\n extendedTimeOut: 10000,\n closeButton: true,\n progressBar: true,\n tapToDismiss: true,\n positionClass: 'toast-bottom-right',\n maxOpened: 4,\n preventDuplicates: true,\n enableHtml: true,\n disableTimeOut: false,\n showIcon: false,\n freezeProgressOnHover: true\n};\n","import { DOCUMENT } from '@angular/common';\nimport {\n ApplicationRef,\n ComponentRef,\n Injectable,\n createComponent,\n inject\n} from '@angular/core';\n\nimport { ToastContainerComponent } from './toast-container.component';\nimport {\n DEFAULT_TOAST_CONFIG,\n IndividualToastConfig,\n ToastConfig,\n ToastRef,\n ToastType\n} from './toast.interface';\nimport { ToastComponent } from './toast/toast.component';\n\nexport interface ActiveToast {\n toastId: number;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class ToastService {\n private appRef = inject(ApplicationRef);\n private document = inject(DOCUMENT);\n\n private toastIdCounter = 0;\n private toasts: Map<number, ComponentRef<ToastComponent>> = new Map();\n private containerRef: ComponentRef<ToastContainerComponent> | null = null;\n private config: ToastConfig = { ...DEFAULT_TOAST_CONFIG };\n private lastMessage = '';\n private lastTitle = '';\n\n configure(config: Partial<ToastConfig>) {\n this.config = { ...this.config, ...config };\n }\n\n success(\n message: string,\n title: string,\n options?: IndividualToastConfig\n ): ActiveToast {\n return this.show('success', message, title, options);\n }\n\n error(\n message: string,\n title: string,\n options?: IndividualToastConfig\n ): ActiveToast {\n return this.show('error', message, title, options);\n }\n\n info(\n message: string,\n title: string,\n options?: IndividualToastConfig\n ): ActiveToast {\n return this.show('info', message, title, options);\n }\n\n warning(\n message: string,\n title: string,\n options?: IndividualToastConfig\n ): ActiveToast {\n return this.show('warning', message, title, options);\n }\n\n remove(toastId: number) {\n const ref = this.toasts.get(toastId);\n if (ref) {\n ref.instance.remove();\n }\n }\n\n /** Called by ToastComponent when removal animation completes */\n removeToast(toastId: number) {\n const ref = this.toasts.get(toastId);\n if (ref) {\n this.appRef.detachView(ref.hostView);\n ref.destroy();\n this.toasts.delete(toastId);\n }\n if (this.toasts.size === 0 && this.containerRef) {\n this.appRef.detachView(this.containerRef.hostView);\n this.containerRef.destroy();\n this.containerRef = null;\n }\n }\n\n getActiveToasts(): ToastRef[] {\n return Array.from(this.toasts.entries()).map(([id, ref]) => ({\n toastId: id,\n message: ref.instance.message,\n title: ref.instance.title,\n type: ref.instance.type,\n config: ref.instance.config as ToastConfig\n }));\n }\n\n updateToast(toastId: number, message: string, title: string) {\n const ref = this.toasts.get(toastId);\n if (ref) {\n ref.instance.message = message;\n ref.instance.title = title;\n }\n }\n\n private show(\n type: ToastType,\n message: string,\n title: string,\n options?: IndividualToastConfig\n ): ActiveToast {\n const mergedConfig = { ...this.config, ...options };\n\n // Prevent duplicates\n if (mergedConfig.preventDuplicates) {\n if (this.lastMessage === message && this.lastTitle === title) {\n // Return last toast id\n const lastEntry = Array.from(this.toasts.entries()).pop();\n if (lastEntry) {\n return { toastId: lastEntry[0] };\n }\n }\n }\n\n // Enforce max opened\n if (mergedConfig.maxOpened && this.toasts.size >= mergedConfig.maxOpened) {\n const firstKey = this.toasts.keys().next().value!;\n this.remove(firstKey);\n }\n\n this.lastMessage = message;\n this.lastTitle = title;\n\n const toastId = ++this.toastIdCounter;\n const container = this.getOrCreateContainer(\n mergedConfig.positionClass || 'toast-bottom-right'\n );\n\n const toastRef = createComponent(ToastComponent, {\n environmentInjector: this.appRef.injector\n });\n\n toastRef.instance.toastId = toastId;\n toastRef.instance.type = type;\n toastRef.instance.message = message;\n toastRef.instance.title = title;\n toastRef.instance.config = mergedConfig;\n toastRef.instance.enableHtml = mergedConfig.enableHtml ?? true;\n toastRef.instance.showIcon = mergedConfig.showIcon ?? false;\n toastRef.instance.removed.subscribe((removedToastId) => {\n this.removeToast(removedToastId);\n });\n\n this.toasts.set(toastId, toastRef);\n this.appRef.attachView(toastRef.hostView);\n container.location.nativeElement.appendChild(\n toastRef.location.nativeElement\n );\n\n return { toastId };\n }\n\n private getOrCreateContainer(\n positionClass: string\n ): ComponentRef<ToastContainerComponent> {\n if (this.containerRef) {\n return this.containerRef;\n }\n\n this.containerRef = createComponent(ToastContainerComponent, {\n environmentInjector: this.appRef.injector\n });\n\n this.appRef.attachView(this.containerRef.hostView);\n const el = this.containerRef.location.nativeElement as HTMLElement;\n el.classList.add(positionClass);\n this.document.body.appendChild(el);\n return this.containerRef;\n }\n}\n","import {\n EnvironmentProviders,\n inject,\n provideAppInitializer\n} from '@angular/core';\n\nimport { ToastConfig, ToastService } from './toast';\n\n/**\n * Provides the message service with custom toast configuration.\n * Since ToastService is providedIn: 'root', this simply configures it.\n */\nexport function provideMessage(\n config?: Partial<ToastConfig>\n): EnvironmentProviders {\n return provideAppInitializer(() => {\n if (!config) {\n return;\n }\n inject(ToastService).configure(config);\n });\n}\n","import { HttpErrorResponse } from '@angular/common/http';\nimport { Injectable, inject } from '@angular/core';\n\nimport { ConfigService } from '@igo2/core/config';\nimport { LanguageService } from '@igo2/core/language';\n\nimport { BehaviorSubject } from 'rxjs';\n\nimport { MessageType } from './message.enum';\nimport { Message, MessageOptions } from './message.interface';\nimport { ActiveToast, IndividualToastConfig, ToastService } from './toast';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MessageService {\n private configService = inject(ConfigService);\n private languageService = inject(LanguageService);\n private toastService = inject(ToastService);\n\n public messages$ = new BehaviorSubject<Message[]>([]);\n private options?: MessageOptions;\n\n constructor() {\n this.options = this.configService.getConfig('message');\n }\n\n showError(httpError: HttpErrorResponse) {\n const errorPayload = httpError.error as\n { caught?: boolean; message?: string; title?: string } | undefined;\n\n if (errorPayload && typeof errorPayload === 'object') {\n errorPayload.caught = true;\n }\n\n const message =\n typeof errorPayload?.message === 'string'\n ? errorPayload.message\n : httpError.message;\n const title =\n typeof errorPayload?.title === 'string'\n ? errorPayload.title\n : 'igo.core.message.error';\n\n return this.error(message, title);\n }\n\n message(message: Message) {\n this.messages$.next(this.messages$.value.concat([message]));\n\n const options = { ...(message.options ?? {}) } as MessageOptions;\n const currentDate = new Date();\n const fromDate = this.parseDate(options.from, new Date('1 jan 1900'));\n const toDate = this.parseDate(options.to, new Date('1 jan 3000'));\n\n options.from = fromDate;\n options.to = toDate;\n\n if (message.showIcon !== undefined) {\n options.showIcon = message.showIcon;\n }\n\n if (currentDate >= fromDate && currentDate <= toDate) {\n message = this.handleTemplate(message);\n\n if (message.text) {\n let messageShown: ActiveToast;\n switch (message.type) {\n case MessageType.SUCCESS:\n messageShown = this.success(\n message.text,\n message.title,\n options,\n message.textInterpolateParams,\n message.titleInterpolateParams\n );\n break;\n case MessageType.ERROR:\n messageShown = this.error(\n message.text,\n message.title,\n options,\n message.textInterpolateParams,\n message.titleInterpolateParams\n );\n break;\n case MessageType.INFO:\n case MessageType.SHOW:\n messageShown = this.info(\n message.text,\n message.title,\n options,\n message.textInterpolateParams,\n message.titleInterpolateParams\n );\n break;\n case MessageType.ALERT:\n case MessageType.WARNING:\n messageShown = this.alert(\n message.text,\n message.title,\n options,\n message.textInterpolateParams,\n message.titleInterpolateParams\n );\n break;\n default:\n messageShown = this.info(\n message.text,\n message.title,\n options,\n message.textInterpolateParams,\n message.titleInterpolateParams\n );\n break;\n }\n options.id = messageShown.toastId;\n message.options = options;\n }\n }\n }\n\n success(\n text: string,\n title = 'igo.core.message.success',\n options: IndividualToastConfig = {},\n textInterpolateParams?: Record<string, unknown>,\n titleInterpolateParams?: Record<string, unknown>\n ): ActiveToast {\n return this.handleToast(\n 'success',\n text,\n title,\n options,\n textInterpolateParams,\n titleInterpolateParams\n );\n }\n\n error(\n text: string,\n title = 'igo.core.message.error',\n options: IndividualToastConfig = {},\n textInterpolateParams?: Record<string, unknown>,\n titleInterpolateParams?: Record<string, unknown>\n ): ActiveToast {\n return this.handleToast(\n 'error',\n text,\n title,\n options,\n textInterpolateParams,\n titleInterpolateParams\n );\n }\n\n info(\n text: string,\n title = 'igo.core.message.info',\n options: IndividualToastConfig = {},\n textInterpolateParams?: Record<string, unknown>,\n titleInterpolateParams?: Record<string, unknown>\n ): ActiveToast {\n return this.handleToast(\n 'info',\n text,\n title,\n options,\n textInterpolateParams,\n titleInterpolateParams\n );\n }\n\n alert(\n text: string,\n title = 'igo.core.message.alert',\n options: IndividualToastConfig = {},\n textInterpolateParams?: Record<string, unknown>,\n titleInterpolateParams?: Record<string, unknown>\n ): ActiveToast {\n return this.handleToast(\n 'warning',\n text,\n title,\n options,\n textInterpolateParams,\n titleInterpolateParams\n );\n }\n\n show(\n text: string,\n title = 'igo.core.message.info',\n options: IndividualToastConfig = {},\n textInterpolateParams?: Record<string, unknown>,\n titleInterpolateParams?: Record<string, unknown>\n ): ActiveToast {\n return this.handleToast(\n 'info',\n text,\n title,\n options,\n textInterpolateParams,\n titleInterpolateParams\n );\n }\n\n private handleToast(\n type: 'warning' | 'info' | 'error' | 'success',\n text: string,\n title: string,\n options: IndividualToastConfig = {},\n textInterpolateParams?: Record<string, unknown>,\n titleInterpolateParams?: Record<string, unknown>\n ): ActiveToast {\n const translatedTextInterpolateParams = this.translateInterpolateParams(\n textInterpolateParams\n );\n const translatedTitleInterpolateParams = this.translateInterpolateParams(\n titleInterpolateParams\n );\n\n const translatedMessage = this.languageService.translate.instant(\n text,\n translatedTextInterpolateParams\n );\n const translatedTitle = this.languageService.translate.instant(\n title,\n translatedTitleInterpolateParams\n );\n\n let activeToast: ActiveToast;\n switch (type) {\n case 'success':\n activeToast = this.toastService.success(\n translatedMessage,\n translatedTitle,\n options\n );\n break;\n case 'error':\n activeToast = this.toastService.error(\n translatedMessage,\n translatedTitle,\n options\n );\n break;\n case 'info':\n activeToast = this.toastService.info(\n translatedMessage,\n translatedTitle,\n options\n );\n break;\n case 'warning':\n activeToast = this.toastService.warning(\n translatedMessage,\n translatedTitle,\n options\n );\n break;\n }\n\n return activeToast;\n }\n\n private parseDate(value: Date | string | undefined, fallback: Date): Date {\n if (!value) {\n return fallback;\n }\n\n if (value instanceof Date) {\n return value;\n }\n\n const directParse = new Date(value);\n if (!Number.isNaN(directParse.getTime())) {\n return directParse;\n }\n\n const normalizedParse = new Date(Date.parse(value.replace(/-/g, ' ')));\n return Number.isNaN(normalizedParse.getTime()) ? fallback : normalizedParse;\n }\n\n private translateInterpolateParams(\n params?: Record<string, unknown>\n ): Record<string, unknown> {\n if (!params) {\n return {};\n }\n\n return Object.keys(params).reduce(\n (acc, key) => {\n const value = params[key];\n acc[key] =\n typeof value === 'string'\n ? this.languageService.translate.instant(value)\n : value;\n return acc;\n },\n {} as Record<string, unknown>\n );\n }\n\n remove(id: number) {\n this.toastService.remove(id);\n }\n\n removeAllAreNotError() {\n for (const mess of this.messages$.value) {\n if (mess.options?.id && mess.type !== MessageType.ERROR) {\n this.remove(mess.options.id);\n }\n }\n }\n\n private handleTemplate(message: Message): Message {\n if (!this.options?.template || message.html) {\n return message;\n }\n\n let html = this.options?.template;\n html = html.replace('${text}', message.text);\n if (message.title) {\n html = html.replace('${title}', message.title);\n }\n\n message.html = undefined;\n message.text = html;\n message.title = undefined;\n return message;\n }\n}\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":"igo2-core-message.mjs","sources":["../../../packages/core/message/src/message.enum.ts","../../../packages/core/message/src/toast/toast/toast.component.ts","../../../packages/core/message/src/toast/toast/toast.component.html","../../../packages/core/message/src/toast/toast-container.component.ts","../../../packages/core/message/src/toast/toast.interface.ts","../../../packages/core/message/src/toast/toast.service.ts","../../../packages/core/message/src/message.provider.ts","../../../packages/core/message/src/message.service.ts","../../../packages/core/message/src/igo2-core-message.ts"],"sourcesContent":["export enum MessageType {\n ERROR = 'error',\n ALERT = 'warning',\n // eslint-disable-next-line @typescript-eslint/no-duplicate-enum-values\n WARNING = 'warning',\n INFO = 'info',\n SUCCESS = 'success',\n SHOW = 'show'\n}\n","import { NgClass } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n OnDestroy,\n OnInit,\n inject,\n output,\n signal\n} from '@angular/core';\nimport { MatIconButton } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatProgressBar } from '@angular/material/progress-bar';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\n\nimport { ToastConfig, ToastType } from '../toast.interface';\n\n@Component({\n selector: 'igo-toast',\n standalone: true,\n imports: [NgClass, MatIconModule, MatIconButton, MatProgressBar],\n changeDetection: ChangeDetectionStrategy.OnPush,\n templateUrl: './toast.component.html',\n styleUrl: './toast.component.scss',\n host: {\n '[class]': 'animationState()',\n '(mouseenter)': 'onEnter()',\n '(mouseleave)': 'onLeave()',\n '(touchstart)': 'onEnter()',\n '(touchend)': 'onLeave()'\n }\n})\nexport class ToastComponent implements OnInit, OnDestroy {\n private sanitizer = inject(DomSanitizer);\n\n readonly removed = output<number>();\n toastId!: number;\n type!: ToastType;\n title = '';\n config!: ToastConfig;\n enableHtml = false;\n showIcon = false;\n\n private _message = '';\n safeMessage: SafeHtml = '';\n\n get message(): string {\n return this._message;\n }\n\n set message(value: string) {\n this._message = value;\n this.safeMessage = this.sanitizer.bypassSecurityTrustHtml(value);\n }\n\n progress = signal(100);\n animationState = signal<'inactive' | 'active' | 'removed'>('inactive');\n\n private timeoutId: ReturnType<typeof setTimeout> | null = null;\n private progressIntervalId: ReturnType<typeof setInterval> | null = null;\n private startTime = 0;\n private remainingTime = 0;\n private totalTimeOut = 0;\n\n ngOnInit() {\n this.animationState.set('active');\n if (!this.config.disableTimeOut) {\n this.remainingTime = this.config.timeOut ?? 10000;\n this.totalTimeOut = this.remainingTime;\n this.startTimer();\n }\n }\n\n ngOnDestroy() {\n this.clearTimers();\n }\n\n onEnter() {\n if (!this.config.disableTimeOut) {\n this.remainingTime = (this.progress() / 100) * this.totalTimeOut;\n this.clearTimers();\n }\n }\n\n onLeave() {\n if (!this.config.disableTimeOut) {\n if (!this.config.freezeProgressOnHover) {\n const extendedTimeOut = this.config.extendedTimeOut ?? 10000;\n this.remainingTime = extendedTimeOut;\n this.totalTimeOut = extendedTimeOut;\n }\n this.startTimer();\n }\n }\n\n onTap() {\n if (this.config.tapToDismiss) {\n this.remove();\n }\n }\n\n close(event: Event) {\n event.stopPropagation();\n this.remove();\n }\n\n remove() {\n this.clearTimers();\n this.animationState.set('removed');\n setTimeout(() => {\n this.removed.emit(this.toastId);\n }, 300);\n }\n\n private startTimer() {\n this.startTime = Date.now();\n const duration = this.remainingTime;\n this.progress.set((duration / this.totalTimeOut) * 100);\n\n this.progressIntervalId = setInterval(() => {\n const elapsed = Date.now() - this.startTime;\n const remaining = Math.max(0, duration - elapsed);\n this.progress.set((remaining / this.totalTimeOut) * 100);\n }, 50);\n\n this.timeoutId = setTimeout(() => {\n this.remove();\n }, duration);\n }\n\n private clearTimers() {\n if (this.timeoutId) {\n clearTimeout(this.timeoutId);\n this.timeoutId = null;\n }\n if (this.progressIntervalId) {\n clearInterval(this.progressIntervalId);\n this.progressIntervalId = null;\n }\n }\n}\n","<div\n class=\"igo-toast\"\n [ngClass]=\"'toast-' + type\"\n [attr.tabindex]=\"config.tapToDismiss ? '0' : null\"\n (click)=\"onTap()\"\n (keydown.enter)=\"onTap()\"\n>\n @if (showIcon) {\n <mat-icon class=\"toast-icon\">\n @switch (type) {\n @case ('success') {\n check_circle\n }\n @case ('error') {\n error\n }\n @case ('warning') {\n warning\n }\n @default {\n info\n }\n }\n </mat-icon>\n }\n <div class=\"toast-content\">\n @if (title) {\n <header class=\"toast-title\">{{ title }}</header>\n }\n @if (!enableHtml) {\n <p class=\"toast-message\">{{ message }}</p>\n } @else {\n <p class=\"toast-message\" [innerHTML]=\"safeMessage\"></p>\n }\n </div>\n @if (config.closeButton) {\n <button matIconButton class=\"toast-close-button\" (click)=\"close($event)\">\n <mat-icon>close</mat-icon>\n </button>\n }\n @if (config.progressBar && !config.disableTimeOut) {\n <mat-progress-bar mode=\"determinate\" [value]=\"progress()\" />\n }\n</div>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n selector: 'igo-toast-container',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `<ng-content></ng-content>`,\n styles: [\n `\n :host {\n position: fixed;\n pointer-events: none;\n z-index: 10000;\n display: flex;\n flex-direction: column;\n row-gap: 8px;\n }\n\n :host.toast-bottom-right {\n bottom: 12px;\n right: 12px;\n align-items: flex-end;\n }\n\n :host.toast-bottom-left {\n bottom: 12px;\n left: 12px;\n align-items: flex-start;\n }\n\n :host.toast-top-right {\n top: 12px;\n right: 12px;\n align-items: flex-end;\n }\n\n :host.toast-top-left {\n top: 12px;\n left: 12px;\n align-items: flex-start;\n }\n\n :host.toast-top-center {\n top: 12px;\n left: 50%;\n transform: translateX(-50%);\n align-items: center;\n }\n\n :host.toast-bottom-center {\n bottom: 12px;\n left: 50%;\n transform: translateX(-50%);\n align-items: center;\n }\n `\n ]\n})\nexport class ToastContainerComponent {}\n","export interface ToastConfig {\n timeOut: number;\n extendedTimeOut: number;\n closeButton: boolean;\n progressBar: boolean;\n tapToDismiss: boolean;\n positionClass: string;\n maxOpened: number;\n preventDuplicates: boolean;\n enableHtml: boolean;\n disableTimeOut: boolean;\n showIcon: boolean;\n freezeProgressOnHover: boolean;\n}\n\nexport type IndividualToastConfig = Partial<ToastConfig>;\n\nexport interface ToastRef {\n toastId: number;\n message: string;\n title: string;\n type: ToastType;\n config: ToastConfig;\n}\n\nexport type ToastType = 'success' | 'error' | 'info' | 'warning' | 'show';\n\nexport const DEFAULT_TOAST_CONFIG: ToastConfig = {\n timeOut: 10000,\n extendedTimeOut: 10000,\n closeButton: true,\n progressBar: true,\n tapToDismiss: true,\n positionClass: 'toast-bottom-right',\n maxOpened: 4,\n preventDuplicates: true,\n enableHtml: true,\n disableTimeOut: false,\n showIcon: false,\n freezeProgressOnHover: true\n};\n","import { DOCUMENT } from '@angular/common';\nimport {\n ApplicationRef,\n ComponentRef,\n Injectable,\n createComponent,\n inject\n} from '@angular/core';\n\nimport { ToastContainerComponent } from './toast-container.component';\nimport {\n DEFAULT_TOAST_CONFIG,\n IndividualToastConfig,\n ToastConfig,\n ToastRef,\n ToastType\n} from './toast.interface';\nimport { ToastComponent } from './toast/toast.component';\n\nexport interface ActiveToast {\n toastId: number;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class ToastService {\n private appRef = inject(ApplicationRef);\n private document = inject(DOCUMENT);\n\n private toastIdCounter = 0;\n private toasts: Map<number, ComponentRef<ToastComponent>> = new Map();\n private containerRef: ComponentRef<ToastContainerComponent> | null = null;\n private config: ToastConfig = { ...DEFAULT_TOAST_CONFIG };\n private lastMessage = '';\n private lastTitle = '';\n\n configure(config: Partial<ToastConfig>) {\n this.config = { ...this.config, ...config };\n }\n\n success(\n message: string,\n title: string,\n options?: IndividualToastConfig\n ): ActiveToast {\n return this.show('success', message, title, options);\n }\n\n error(\n message: string,\n title: string,\n options?: IndividualToastConfig\n ): ActiveToast {\n return this.show('error', message, title, options);\n }\n\n info(\n message: string,\n title: string,\n options?: IndividualToastConfig\n ): ActiveToast {\n return this.show('info', message, title, options);\n }\n\n warning(\n message: string,\n title: string,\n options?: IndividualToastConfig\n ): ActiveToast {\n return this.show('warning', message, title, options);\n }\n\n remove(toastId: number) {\n const ref = this.toasts.get(toastId);\n if (ref) {\n ref.instance.remove();\n }\n }\n\n /** Called by ToastComponent when removal animation completes */\n removeToast(toastId: number) {\n const ref = this.toasts.get(toastId);\n if (ref) {\n this.appRef.detachView(ref.hostView);\n ref.destroy();\n this.toasts.delete(toastId);\n }\n if (this.toasts.size === 0 && this.containerRef) {\n this.appRef.detachView(this.containerRef.hostView);\n this.containerRef.destroy();\n this.containerRef = null;\n }\n }\n\n getActiveToasts(): ToastRef[] {\n return Array.from(this.toasts.entries()).map(([id, ref]) => ({\n toastId: id,\n message: ref.instance.message,\n title: ref.instance.title,\n type: ref.instance.type,\n config: ref.instance.config as ToastConfig\n }));\n }\n\n updateToast(toastId: number, message: string, title: string) {\n const ref = this.toasts.get(toastId);\n if (ref) {\n ref.instance.message = message;\n ref.instance.title = title;\n }\n }\n\n private show(\n type: ToastType,\n message: string,\n title: string,\n options?: IndividualToastConfig\n ): ActiveToast {\n const mergedConfig = { ...this.config, ...options };\n\n // Prevent duplicates\n if (mergedConfig.preventDuplicates) {\n if (this.lastMessage === message && this.lastTitle === title) {\n // Return last toast id\n const lastEntry = Array.from(this.toasts.entries()).pop();\n if (lastEntry) {\n return { toastId: lastEntry[0] };\n }\n }\n }\n\n // Enforce max opened\n if (mergedConfig.maxOpened && this.toasts.size >= mergedConfig.maxOpened) {\n const firstKey = this.toasts.keys().next().value!;\n this.remove(firstKey);\n }\n\n this.lastMessage = message;\n this.lastTitle = title;\n\n const toastId = ++this.toastIdCounter;\n const container = this.getOrCreateContainer(\n mergedConfig.positionClass || 'toast-bottom-right'\n );\n\n const toastRef = createComponent(ToastComponent, {\n environmentInjector: this.appRef.injector\n });\n\n toastRef.instance.toastId = toastId;\n toastRef.instance.type = type;\n toastRef.instance.message = message;\n toastRef.instance.title = title;\n toastRef.instance.config = mergedConfig;\n toastRef.instance.enableHtml = mergedConfig.enableHtml ?? true;\n toastRef.instance.showIcon = mergedConfig.showIcon ?? false;\n toastRef.instance.removed.subscribe((removedToastId) => {\n this.removeToast(removedToastId);\n });\n\n this.toasts.set(toastId, toastRef);\n this.appRef.attachView(toastRef.hostView);\n container.location.nativeElement.appendChild(\n toastRef.location.nativeElement\n );\n\n return { toastId };\n }\n\n private getOrCreateContainer(\n positionClass: string\n ): ComponentRef<ToastContainerComponent> {\n if (this.containerRef) {\n return this.containerRef;\n }\n\n this.containerRef = createComponent(ToastContainerComponent, {\n environmentInjector: this.appRef.injector\n });\n\n this.appRef.attachView(this.containerRef.hostView);\n const el = this.containerRef.location.nativeElement as HTMLElement;\n el.classList.add(positionClass);\n this.document.body.appendChild(el);\n return this.containerRef;\n }\n}\n","import {\n EnvironmentProviders,\n inject,\n provideAppInitializer\n} from '@angular/core';\n\nimport { ToastConfig, ToastService } from './toast';\n\n/**\n * Provides the message service with custom toast configuration.\n * Since ToastService is providedIn: 'root', this simply configures it.\n */\nexport function provideMessage(\n config?: Partial<ToastConfig>\n): EnvironmentProviders {\n return provideAppInitializer(() => {\n if (!config) {\n return;\n }\n inject(ToastService).configure(config);\n });\n}\n","import { HttpErrorResponse } from '@angular/common/http';\nimport { Injectable, Injector, inject } from '@angular/core';\n\nimport { ConfigService } from '@igo2/core/config';\nimport { LanguageService } from '@igo2/core/language';\n\nimport { BehaviorSubject } from 'rxjs';\n\nimport { MessageType } from './message.enum';\nimport { Message, MessageOptions } from './message.interface';\nimport { ActiveToast, IndividualToastConfig, ToastService } from './toast';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MessageService {\n private configService = inject(ConfigService);\n private injector = inject(Injector);\n private toastService = inject(ToastService);\n\n public messages$ = new BehaviorSubject<Message[]>([]);\n private options?: MessageOptions;\n\n private get languageService(): LanguageService | null {\n return this.injector.get(LanguageService, null);\n }\n\n constructor() {\n this.options = this.configService.getConfig('message');\n }\n\n showError(httpError: HttpErrorResponse) {\n const errorPayload = httpError.error as\n { caught?: boolean; message?: string; title?: string } | undefined;\n\n if (errorPayload && typeof errorPayload === 'object') {\n errorPayload.caught = true;\n }\n\n const message =\n typeof errorPayload?.message === 'string'\n ? errorPayload.message\n : httpError.message;\n const title =\n typeof errorPayload?.title === 'string'\n ? errorPayload.title\n : 'igo.core.message.error';\n\n return this.error(message, title);\n }\n\n message(message: Message) {\n this.messages$.next(this.messages$.value.concat([message]));\n\n const options = { ...(message.options ?? {}) } as MessageOptions;\n const currentDate = new Date();\n const fromDate = this.parseDate(options.from, new Date('1 jan 1900'));\n const toDate = this.parseDate(options.to, new Date('1 jan 3000'));\n\n options.from = fromDate;\n options.to = toDate;\n\n if (message.showIcon !== undefined) {\n options.showIcon = message.showIcon;\n }\n\n if (currentDate >= fromDate && currentDate <= toDate) {\n message = this.handleTemplate(message);\n\n if (message.text) {\n let messageShown: ActiveToast;\n switch (message.type) {\n case MessageType.SUCCESS:\n messageShown = this.success(\n message.text,\n message.title,\n options,\n message.textInterpolateParams,\n message.titleInterpolateParams\n );\n break;\n case MessageType.ERROR:\n messageShown = this.error(\n message.text,\n message.title,\n options,\n message.textInterpolateParams,\n message.titleInterpolateParams\n );\n break;\n case MessageType.INFO:\n case MessageType.SHOW:\n messageShown = this.info(\n message.text,\n message.title,\n options,\n message.textInterpolateParams,\n message.titleInterpolateParams\n );\n break;\n case MessageType.ALERT:\n case MessageType.WARNING:\n messageShown = this.alert(\n message.text,\n message.title,\n options,\n message.textInterpolateParams,\n message.titleInterpolateParams\n );\n break;\n default:\n messageShown = this.info(\n message.text,\n message.title,\n options,\n message.textInterpolateParams,\n message.titleInterpolateParams\n );\n break;\n }\n options.id = messageShown.toastId;\n message.options = options;\n }\n }\n }\n\n success(\n text: string,\n title = 'igo.core.message.success',\n options: IndividualToastConfig = {},\n textInterpolateParams?: Record<string, unknown>,\n titleInterpolateParams?: Record<string, unknown>\n ): ActiveToast {\n return this.handleToast(\n 'success',\n text,\n title,\n options,\n textInterpolateParams,\n titleInterpolateParams\n );\n }\n\n error(\n text: string,\n title = 'igo.core.message.error',\n options: IndividualToastConfig = {},\n textInterpolateParams?: Record<string, unknown>,\n titleInterpolateParams?: Record<string, unknown>\n ): ActiveToast {\n return this.handleToast(\n 'error',\n text,\n title,\n options,\n textInterpolateParams,\n titleInterpolateParams\n );\n }\n\n info(\n text: string,\n title = 'igo.core.message.info',\n options: IndividualToastConfig = {},\n textInterpolateParams?: Record<string, unknown>,\n titleInterpolateParams?: Record<string, unknown>\n ): ActiveToast {\n return this.handleToast(\n 'info',\n text,\n title,\n options,\n textInterpolateParams,\n titleInterpolateParams\n );\n }\n\n alert(\n text: string,\n title = 'igo.core.message.alert',\n options: IndividualToastConfig = {},\n textInterpolateParams?: Record<string, unknown>,\n titleInterpolateParams?: Record<string, unknown>\n ): ActiveToast {\n return this.handleToast(\n 'warning',\n text,\n title,\n options,\n textInterpolateParams,\n titleInterpolateParams\n );\n }\n\n show(\n text: string,\n title = 'igo.core.message.info',\n options: IndividualToastConfig = {},\n textInterpolateParams?: Record<string, unknown>,\n titleInterpolateParams?: Record<string, unknown>\n ): ActiveToast {\n return this.handleToast(\n 'info',\n text,\n title,\n options,\n textInterpolateParams,\n titleInterpolateParams\n );\n }\n\n private handleToast(\n type: 'warning' | 'info' | 'error' | 'success',\n text: string,\n title: string,\n options: IndividualToastConfig = {},\n textInterpolateParams?: Record<string, unknown>,\n titleInterpolateParams?: Record<string, unknown>\n ): ActiveToast {\n const translatedTextInterpolateParams = this.translateInterpolateParams(\n textInterpolateParams\n );\n const translatedTitleInterpolateParams = this.translateInterpolateParams(\n titleInterpolateParams\n );\n\n const translatedMessage = this.languageService\n ? this.languageService.translate.instant(\n text,\n translatedTextInterpolateParams\n )\n : text;\n const translatedTitle = this.languageService\n ? this.languageService.translate.instant(\n title,\n translatedTitleInterpolateParams\n )\n : title;\n\n let activeToast: ActiveToast;\n switch (type) {\n case 'success':\n activeToast = this.toastService.success(\n translatedMessage,\n translatedTitle,\n options\n );\n break;\n case 'error':\n activeToast = this.toastService.error(\n translatedMessage,\n translatedTitle,\n options\n );\n break;\n case 'info':\n activeToast = this.toastService.info(\n translatedMessage,\n translatedTitle,\n options\n );\n break;\n case 'warning':\n activeToast = this.toastService.warning(\n translatedMessage,\n translatedTitle,\n options\n );\n break;\n }\n\n return activeToast;\n }\n\n private parseDate(value: Date | string | undefined, fallback: Date): Date {\n if (!value) {\n return fallback;\n }\n\n if (value instanceof Date) {\n return value;\n }\n\n const directParse = new Date(value);\n if (!Number.isNaN(directParse.getTime())) {\n return directParse;\n }\n\n const normalizedParse = new Date(Date.parse(value.replace(/-/g, ' ')));\n return Number.isNaN(normalizedParse.getTime()) ? fallback : normalizedParse;\n }\n\n private translateInterpolateParams(\n params?: Record<string, unknown>\n ): Record<string, unknown> {\n if (!params) {\n return {};\n }\n\n return Object.keys(params).reduce(\n (acc, key) => {\n const value = params[key];\n acc[key] =\n typeof value === 'string' && this.languageService\n ? this.languageService.translate.instant(value)\n : value;\n return acc;\n },\n {} as Record<string, unknown>\n );\n }\n\n remove(id: number) {\n this.toastService.remove(id);\n }\n\n removeAllAreNotError() {\n for (const mess of this.messages$.value) {\n if (mess.options?.id && mess.type !== MessageType.ERROR) {\n this.remove(mess.options.id);\n }\n }\n }\n\n private handleTemplate(message: Message): Message {\n if (!this.options?.template || message.html) {\n return message;\n }\n\n let html = this.options?.template;\n html = html.replace('${text}', message.text);\n if (message.title) {\n html = html.replace('${title}', message.title);\n }\n\n message.html = undefined;\n message.text = html;\n message.title = undefined;\n return message;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
@@ -48,10 +48,10 @@ class NetworkService {
48
48
  ? this.stateChangeEventEmitter.pipe(debounceTime(300), startWith(this.state))
49
49
  : this.stateChangeEventEmitter.pipe(debounceTime(300));
50
50
  }
51
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: NetworkService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
52
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: NetworkService, providedIn: 'root' });
51
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: NetworkService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
52
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: NetworkService, providedIn: 'root' });
53
53
  }
54
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: NetworkService, decorators: [{
54
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: NetworkService, decorators: [{
55
55
  type: Injectable,
56
56
  args: [{
57
57
  providedIn: 'root'
@@ -17,10 +17,10 @@ class RegexService {
17
17
  }
18
18
  return;
19
19
  }
20
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: RegexService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
21
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: RegexService, providedIn: 'root' });
20
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: RegexService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
21
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: RegexService, providedIn: 'root' });
22
22
  }
23
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.24", ngImport: i0, type: RegexService, decorators: [{
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: RegexService, decorators: [{
24
24
  type: Injectable,
25
25
  args: [{
26
26
  providedIn: 'root'