@mosa-ng/core 20.1.2 → 21.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.
@@ -158,10 +158,10 @@ class TranslateCollectorService {
158
158
  localStorage.setItem(MOSA_MERGED_TRANSLATION(lang), JSON.stringify(merged));
159
159
  this.myTranslateService.reloadLang(lang);
160
160
  }
161
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: TranslateCollectorService, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Injectable }); }
162
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: TranslateCollectorService, providedIn: 'root' }); }
161
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: TranslateCollectorService, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Injectable }); }
162
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: TranslateCollectorService, providedIn: 'root' }); }
163
163
  }
164
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: TranslateCollectorService, decorators: [{
164
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: TranslateCollectorService, decorators: [{
165
165
  type: Injectable,
166
166
  args: [{
167
167
  providedIn: 'root',
@@ -200,10 +200,10 @@ class AssetsI18nLoaderService {
200
200
  return of(null);
201
201
  }));
202
202
  }
203
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: AssetsI18nLoaderService, deps: [{ token: i1$1.HttpClient }, { token: TranslateCollectorService }], target: i0.ɵɵFactoryTarget.Injectable }); }
204
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: AssetsI18nLoaderService, providedIn: 'root' }); }
203
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: AssetsI18nLoaderService, deps: [{ token: i1$1.HttpClient }, { token: TranslateCollectorService }], target: i0.ɵɵFactoryTarget.Injectable }); }
204
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: AssetsI18nLoaderService, providedIn: 'root' }); }
205
205
  }
206
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: AssetsI18nLoaderService, decorators: [{
206
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: AssetsI18nLoaderService, decorators: [{
207
207
  type: Injectable,
208
208
  args: [{
209
209
  providedIn: 'root',
@@ -392,10 +392,10 @@ class CoreLoggerService {
392
392
  }
393
393
  return val;
394
394
  }
395
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: CoreLoggerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
396
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: CoreLoggerService, providedIn: 'root' }); }
395
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: CoreLoggerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
396
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: CoreLoggerService, providedIn: 'root' }); }
397
397
  }
398
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: CoreLoggerService, decorators: [{
398
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: CoreLoggerService, decorators: [{
399
399
  type: Injectable,
400
400
  args: [{
401
401
  providedIn: 'root',
@@ -581,10 +581,10 @@ class ApiService {
581
581
  }
582
582
  return options;
583
583
  }
584
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: ApiService, deps: [{ token: CoreLoggerService }, { token: i1$1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
585
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: ApiService, providedIn: 'root' }); }
584
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: ApiService, deps: [{ token: CoreLoggerService }, { token: i1$1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
585
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: ApiService, providedIn: 'root' }); }
586
586
  }
587
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: ApiService, decorators: [{
587
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: ApiService, decorators: [{
588
588
  type: Injectable,
589
589
  args: [{
590
590
  providedIn: 'root',
@@ -622,10 +622,10 @@ class MosaSocketService {
622
622
  };
623
623
  return Subject.create(observer, observable);
624
624
  }
625
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: MosaSocketService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
626
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: MosaSocketService, providedIn: 'root' }); }
625
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: MosaSocketService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
626
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: MosaSocketService, providedIn: 'root' }); }
627
627
  }
628
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: MosaSocketService, decorators: [{
628
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: MosaSocketService, decorators: [{
629
629
  type: Injectable,
630
630
  args: [{
631
631
  providedIn: 'root',
@@ -645,10 +645,10 @@ class CustomTranslateLoaderService {
645
645
  const defaultTranslation = localStorage.getItem(MOSA_FALLBACK_TRANSLATION);
646
646
  return isNullOrEmpty(defaultTranslation) ? {} : JSON.parse(defaultTranslation);
647
647
  }
648
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: CustomTranslateLoaderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
649
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: CustomTranslateLoaderService, providedIn: 'root' }); }
648
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: CustomTranslateLoaderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
649
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: CustomTranslateLoaderService, providedIn: 'root' }); }
650
650
  }
651
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: CustomTranslateLoaderService, decorators: [{
651
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: CustomTranslateLoaderService, decorators: [{
652
652
  type: Injectable,
653
653
  args: [{
654
654
  providedIn: 'root',
@@ -659,10 +659,10 @@ class CanDeactivateGuard {
659
659
  canDeactivate(component) {
660
660
  return component.canDeactivate ? component.canDeactivate() : true;
661
661
  }
662
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: CanDeactivateGuard, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
663
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: CanDeactivateGuard, providedIn: 'root' }); }
662
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: CanDeactivateGuard, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
663
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: CanDeactivateGuard, providedIn: 'root' }); }
664
664
  }
665
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: CanDeactivateGuard, decorators: [{
665
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: CanDeactivateGuard, decorators: [{
666
666
  type: Injectable,
667
667
  args: [{
668
668
  providedIn: 'root',
@@ -1045,10 +1045,10 @@ class DictionaryItemPipe {
1045
1045
  transform(key, dictionary) {
1046
1046
  return dictionary.get(key)?.value;
1047
1047
  }
1048
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: DictionaryItemPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
1049
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.11", ngImport: i0, type: DictionaryItemPipe, isStandalone: true, name: "dictionaryItem" }); }
1048
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: DictionaryItemPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
1049
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.0.6", ngImport: i0, type: DictionaryItemPipe, isStandalone: true, name: "dictionaryItem" }); }
1050
1050
  }
1051
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: DictionaryItemPipe, decorators: [{
1051
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: DictionaryItemPipe, decorators: [{
1052
1052
  type: Pipe,
1053
1053
  args: [{ name: 'dictionaryItem' }]
1054
1054
  }] });
@@ -1067,10 +1067,10 @@ class FilterPipe {
1067
1067
  // Return whole item
1068
1068
  return foundItems;
1069
1069
  }
1070
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: FilterPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
1071
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.11", ngImport: i0, type: FilterPipe, isStandalone: true, name: "filter" }); }
1070
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: FilterPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
1071
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.0.6", ngImport: i0, type: FilterPipe, isStandalone: true, name: "filter" }); }
1072
1072
  }
1073
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: FilterPipe, decorators: [{
1073
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: FilterPipe, decorators: [{
1074
1074
  type: Pipe,
1075
1075
  args: [{ name: 'filter' }]
1076
1076
  }] });
@@ -1089,10 +1089,10 @@ class FindPipe {
1089
1089
  // Return whole item
1090
1090
  return foundItem;
1091
1091
  }
1092
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: FindPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
1093
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.11", ngImport: i0, type: FindPipe, isStandalone: true, name: "find" }); }
1092
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: FindPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
1093
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.0.6", ngImport: i0, type: FindPipe, isStandalone: true, name: "find" }); }
1094
1094
  }
1095
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: FindPipe, decorators: [{
1095
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: FindPipe, decorators: [{
1096
1096
  type: Pipe,
1097
1097
  args: [{ name: 'find' }]
1098
1098
  }] });
@@ -1109,10 +1109,10 @@ class JoinPipe {
1109
1109
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
1110
1110
  return array.map((val) => returnField ? val[returnField] : val).join(separator);
1111
1111
  }
1112
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: JoinPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
1113
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.11", ngImport: i0, type: JoinPipe, isStandalone: true, name: "join" }); }
1112
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: JoinPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
1113
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.0.6", ngImport: i0, type: JoinPipe, isStandalone: true, name: "join" }); }
1114
1114
  }
1115
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: JoinPipe, decorators: [{
1115
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: JoinPipe, decorators: [{
1116
1116
  type: Pipe,
1117
1117
  args: [{ name: 'join' }]
1118
1118
  }] });
@@ -1219,10 +1219,10 @@ class MosaDatePipe {
1219
1219
  years: this.myTranslateService.instant('mosa.pipes.timeSince.years'),
1220
1220
  };
1221
1221
  }
1222
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: MosaDatePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
1223
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.11", ngImport: i0, type: MosaDatePipe, isStandalone: true, name: "mosaDate" }); }
1222
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: MosaDatePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
1223
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.0.6", ngImport: i0, type: MosaDatePipe, isStandalone: true, name: "mosaDate" }); }
1224
1224
  }
1225
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: MosaDatePipe, decorators: [{
1225
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: MosaDatePipe, decorators: [{
1226
1226
  type: Pipe,
1227
1227
  args: [{ name: 'mosaDate' }]
1228
1228
  }], ctorParameters: () => [] });
@@ -1296,10 +1296,10 @@ class MosaDurationPipe {
1296
1296
  }
1297
1297
  return '';
1298
1298
  }
1299
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: MosaDurationPipe, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Pipe }); }
1300
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.11", ngImport: i0, type: MosaDurationPipe, isStandalone: true, name: "mosaDuration" }); }
1299
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: MosaDurationPipe, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Pipe }); }
1300
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.0.6", ngImport: i0, type: MosaDurationPipe, isStandalone: true, name: "mosaDuration" }); }
1301
1301
  }
1302
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: MosaDurationPipe, decorators: [{
1302
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: MosaDurationPipe, decorators: [{
1303
1303
  type: Pipe,
1304
1304
  args: [{ name: 'mosaDuration' }]
1305
1305
  }], ctorParameters: () => [{ type: i1.TranslateService }] });
@@ -1 +1 @@
1
- {"version":3,"file":"mosa-ng-core.mjs","sources":["../../../../projects/core/src/lib/utils/commons.util.ts","../../../../projects/core/src/lib/enums/i18n-supported.enum.ts","../../../../projects/core/src/lib/constants/local-storage.constant.ts","../../../../projects/core/src/lib/services/translation/translate-collector.service.ts","../../../../projects/core/src/lib/services/translation/assets-i18n-loader.service.ts","../../../../projects/core/src/lib/services/core-logger.service.ts","../../../../projects/core/src/lib/services/api.service.ts","../../../../projects/core/src/lib/services/mosa-socket.service.ts","../../../../projects/core/src/lib/services/translation/custom-translate-loader.service.ts","../../../../projects/core/src/lib/services/guards/can-deactivate.guard.ts","../../../../projects/core/src/lib/utils/dictionary.util.ts","../../../../projects/core/src/lib/utils/prototypes.util.ts","../../../../projects/core/src/lib/utils/sieve.util.ts","../../../../projects/core/src/lib/enums/theme.enum.ts","../../../../projects/core/src/lib/enums/content-position.enum.ts","../../../../projects/core/src/lib/enums/browser.enum.ts","../../../../projects/core/src/lib/pipes/dictionary-item.pipe.ts","../../../../projects/core/src/lib/pipes/filter.pipe.ts","../../../../projects/core/src/lib/pipes/find.pipe.ts","../../../../projects/core/src/lib/pipes/join.pipe.ts","../../../../projects/core/src/lib/pipes/mosa-date.pipe.ts","../../../../projects/core/src/lib/pipes/mosa-duration.pipe.ts","../../../../projects/core/src/lib/provider.ts","../../../../projects/core/src/mosa-ng-core.ts"],"sourcesContent":["import { ITransformMatrix } from '../models/transform-matrix.model';\n\n/**\n * Checks if an object is null or undefined. Does not check for\n * empty strings, or false booleans\n * @param val\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function isNullOrUndefined(val: any): boolean {\n return val === null || val === undefined;\n}\n\n/**\n * Checks if a string is null or empty\n * @param str\n */\nexport function isNullOrEmpty(str: string | null | undefined): boolean {\n return !str?.trim();\n}\n\n/**\n * Checks if a string or number is zero or higher\n * @param num\n */\nexport function isZeroOrHigher(num: number | string | null | undefined): boolean {\n return num != null && +num >= 0;\n}\n\n/**\n * Checks if an object is a number\n * @param num\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function isNumber(num: any): boolean {\n return num !== null && !isNaN(+num);\n}\n\n/**\n * Round to nearest number given\n * @param value\n * @param round\n */\nexport function roundNearest(value: number): number {\n return Math.ceil(value / 5) * 5;\n}\n\n/**\n * Merge a two dimensional array\n * @param array\n */\nexport function mergeArray<T>(array: T[][]): T[] {\n return array.reduce((flat: T[], toFlatten: T[] | T[][]): T[] =>\n flat.concat(Array.isArray(toFlatten) ? mergeArray<T>(toFlatten as T[][]) : toFlatten), []);\n}\n\n/**\n * Get CSS Transform matrix from an element\n * @param element\n */\nexport function getTransformMatrix(element: HTMLElement): ITransformMatrix {\n const values = element.style.transform.split(/\\w+\\(|\\);?/);\n const transform = values[ 1 ].split(/,\\s?/g).map((numStr: string): number => parseInt(numStr, 10));\n\n return {\n x: transform[ 0 ],\n y: transform[ 1 ],\n z: transform[ 2 ],\n };\n}\n\nexport function some<T>(item: T, searchValue: T[keyof T] | T[keyof T][], searchKey?: keyof T): boolean {\n let searchValues: T[keyof T][] = searchValue as T[keyof T][];\n if (!Array.isArray(searchValue)) {\n searchValues = [ searchValue ];\n }\n\n return searchValues.includes(searchKey ? item[ searchKey ] : item as T[keyof T]);\n}\n\n/**\n * Generates a random string with numbers and letters\n * @param length\n */\nexport function getRandomString(length: number = 10): string {\n const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n let result: string = '';\n for (let i: number = 0; i < length; i++) {\n result += characters.charAt(Math.floor(Math.random() * characters.length));\n }\n return result;\n}\n\n/**\n * Trys to convert a json string. If it fails it returns [null] or a given fallback of [T]\n */\nexport function tryJsonParse<T>(data: string | undefined | null, fallback?: () => T): T | null {\n try {\n if (!isNullOrEmpty(data)) {\n return JSON.parse(data!);\n }\n } catch {\n // Ignore - go on with fallback check\n }\n\n if (fallback) {\n return fallback();\n }\n return null;\n}\n","export enum I18nSupported {\n enUS = 'en-US',\n deDE = 'de-DE',\n deCH = 'de-CH',\n deAT = 'de-AT',\n enGB = 'en-GB',\n frFR = 'fr-FR',\n esES = 'es-ES',\n ptPT = 'pt-PT',\n}\n","import { I18nSupported } from '../enums/i18n-supported.enum';\n\nexport const MOSA_MERGED_TRANSLATION = (lang: string): string => `mosa_${ lang }_merged_${ location.host }`;\nexport const MOSA_FALLBACK_TRANSLATION = `mosa_${ I18nSupported.enUS }_merged_${ location.host }`;\n","import { Injectable } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { MOSA_MERGED_TRANSLATION } from '../../constants/local-storage.constant';\nimport { IKeyMap } from '../../models/key-map.model';\nimport { isNullOrUndefined } from '../../utils/commons.util';\n\nexport interface ITranslationMap {\n priority: number;\n translation: IKeyMap<string>;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TranslateCollectorService {\n\n private translationMap: IKeyMap<ITranslationMap[]> = {};\n\n constructor(private readonly myTranslateService: TranslateService) {\n }\n\n public addTranslations(translation: Record<string, string>, lang: string, priority: number): void {\n if (isNullOrUndefined(this.translationMap[ lang ])) {\n this.translationMap[ lang ] = [];\n }\n\n this.translationMap[ lang ].push({ priority, translation });\n this.translationMap[ lang ].sort((a: ITranslationMap, b: ITranslationMap) => a.priority - b.priority);\n const merged: IKeyMap<string> = JSON.parse(localStorage.getItem(MOSA_MERGED_TRANSLATION(lang))|| '{}');\n\n for (const translationsData of this.translationMap[ lang ]) {\n const translations: IKeyMap<string> = translationsData.translation;\n if (translations != null) {\n Object.keys(translations).forEach((key: string) => void (merged[ key ] = translations[ key ]));\n }\n }\n\n let trans: boolean = true;\n let count: number = 0;\n while (trans) {\n count++;\n trans = false;\n if (count >= 10) {\n console.warn('Limit reached! Please check translation file! Last replaced values:');\n }\n Object.keys(merged).forEach((key: string) => {\n if (merged[ key ].startsWith('@:')) {\n merged[ key ] = merged[ merged[ key ].substring(2, merged[ key ].length) ];\n trans = count < 10;\n if (count > 10) {\n console.warn(merged[ key ]);\n }\n }\n });\n }\n localStorage.setItem(MOSA_MERGED_TRANSLATION(lang), JSON.stringify(merged));\n this.myTranslateService.reloadLang(lang);\n }\n\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { firstValueFrom, Observable, of } from 'rxjs';\nimport { catchError, tap } from 'rxjs/operators';\nimport { getRandomString } from '../../utils/commons.util';\nimport { TranslateCollectorService } from './translate-collector.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AssetsI18nLoaderService {\n\n protected priority: number = 0;\n protected supportedLanguages: string[] = [];\n\n constructor(\n protected myHttpClient: HttpClient,\n protected myTranslateCollectorService: TranslateCollectorService,\n ) {\n }\n\n public async init(path?: string, libName?: string, priority?: number): Promise<void> {\n if (this.supportedLanguages.length > 0) {\n for (let i: number = 0; i < this.supportedLanguages.length; i++) {\n await firstValueFrom(this.loadTranslations(this.supportedLanguages[ i ], path, libName, priority));\n }\n return;\n }\n\n const res: { languages: string[] } | null = await firstValueFrom(this.myHttpClient.get<{ languages: string[] }>(`assets/i18n/supported-languages.json?v=${getRandomString()}`)).catch(() => null);\n if (!res) {\n console.error('Missing file -> assets/i18n/supported-languages.json');\n return;\n }\n\n this.supportedLanguages = res.languages;\n\n for (let i: number = 0; i < this.supportedLanguages.length; i++) {\n await firstValueFrom(this.loadTranslations(this.supportedLanguages[ i ], path, libName, priority));\n }\n }\n\n protected loadTranslations(lang: string, path?: string, libName?: string, priority?: number): Observable<Record<string, string> | null> {\n const filename: string = libName ? `${libName}-${lang}.json` : `${lang}.json`;\n return this.myHttpClient.get<Record<string, string>>(`${(path || './assets/i18n/') + filename}?v=${getRandomString()}`)\n .pipe(\n tap((response: Record<string, string>) =>\n this.myTranslateCollectorService.addTranslations(response, lang, priority || this.priority)),\n catchError(() => {\n console.error(`Missing file -> ${filename}`);\n return of(null);\n }),\n );\n }\n}\n","import { HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { ILogEvent } from '../models/logger/log-event.model';\nimport { LogType } from '../models/logger/log-type.model';\nimport { ILoggerConfig } from '../models/logger/logger-config.model';\nimport { ILoggerDefaultConfig } from '../models/logger/logger-default-config.model';\nimport { isNullOrUndefined } from '../utils/commons.util';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CoreLoggerService {\n\n public defaultConfig: ILoggerDefaultConfig | undefined;\n\n private readonly uiLogs$: BehaviorSubject<ILogEvent | null> = new BehaviorSubject<ILogEvent | null>(null);\n\n /**\n * Default constructor\n */\n constructor() {\n }\n\n public subUiLogs(): Observable<ILogEvent | null> {\n return this.uiLogs$.asObservable();\n }\n\n /**\n * Gets the error message from any type of object\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public getErrorMsg(err: any): string {\n let msg: string = 'Unknown Error';\n\n if (!err) {\n return msg;\n }\n\n if (err instanceof HttpErrorResponse) {\n if (typeof err.error !== 'string') {\n return `mosa.commons.errors.status[${err.status}].message`;\n }\n\n return err.error;\n }\n\n if (typeof err === 'string') {\n msg = err;\n } else if (err.msg) {\n msg = err.msg;\n } else if (err.error?.msg) {\n msg = err.error.msg;\n } else if (err.error?.message) {\n msg = err.error.message;\n } else if (err.error?.errors?.[ 0 ]?.message) {\n msg = err.error.errors[ 0 ].message;\n } else if (err.message) {\n msg = err.message;\n } else if (err.Message) {\n msg = err.Message;\n }\n\n if (typeof err.error === 'string') {\n msg = err.error;\n }\n\n return msg;\n }\n\n /**\n * Get the title to be shown in logger toast\n * @param err\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public getErrorTitle(err: any): string {\n let title: string = 'mosa.commons.logs.error.label';\n if (err?.label) {\n title = err.label;\n } else if (err?.title) {\n title = err.title;\n } else if (err?.error?.label) {\n title = err.error.label;\n } else if (err?.error?.title) {\n title = err.error.title;\n }\n return title;\n }\n\n /**\n * Logs an error to the user\n * @param data\n * @param showUser\n * @param config\n */\n public logError(config: ILoggerConfig): void {\n config = this.serializeConfig(config);\n config.msg = this.getErrorMsg(config.msg);\n\n if (!config.title) {\n config.title = this.getErrorTitle(config.msg);\n }\n\n config.className = 'snackbar-error';\n\n this.show(config, 'error');\n }\n\n /**\n * Logs a success message to the user\n * @param data\n * @param config\n */\n public logSuccess(config: ILoggerConfig): void {\n config = this.serializeConfig(config);\n config.className = 'snackbar-success';\n\n this.show(config, 'success');\n }\n\n /**\n * Logs a warning to the user\n * @param data\n * @param showUser\n * @param config\n */\n public logWarning(config: ILoggerConfig): void {\n config = this.serializeConfig(config);\n config.className = 'snackbar-warning';\n\n this.show(config, 'warning');\n }\n\n /**\n * Logs an info to the user\n * @param data\n * @param config\n */\n public logInfo(config: ILoggerConfig): void {\n config = this.serializeConfig(config);\n config.className = 'snackbar-info';\n\n this.show(config, 'info');\n }\n\n /**\n * Logs any kind of message to the user\n * @param data\n * @param config\n */\n public log(config: ILoggerConfig): void {\n config = this.serializeConfig(config);\n config.className = 'snackbar-default';\n\n this.show(config, 'default');\n }\n\n /**\n * Show the log\n * @requires @mosa-ng/material\n * @param data\n * @param type\n * @param config\n */\n public show(config: ILoggerConfig, type: LogType): void {\n this.uiLogs$.next({ title: config.title, msg: config.msg, type, config });\n }\n\n /**\n * Serializes empty values, so no error is being returned\n * @param config\n * @private\n */\n private serializeConfig(config: ILoggerConfig | undefined): ILoggerConfig {\n // Check if user has default config\n if (!this.defaultConfig) {\n this.defaultConfig = {\n debug: true,\n };\n }\n\n if (!config) {\n // Get user default config\n config = {\n showDismiss: this.defaultConfig.showDismiss,\n closeOnClick: isNullOrUndefined(this.defaultConfig.closeOnClick) ? true : this.defaultConfig.closeOnClick,\n className: this.defaultConfig.className,\n duration: this.defaultConfig.duration || 4,\n };\n }\n\n // Serialize configuration\n config.duration = CoreLoggerService.getValue<number>(config.duration!, this.defaultConfig.duration!, 4);\n config.className = CoreLoggerService.getValue<string>(config.className!, this.defaultConfig.className!, '');\n config.showDismiss = CoreLoggerService.getValue<boolean>(config.showDismiss!, this.defaultConfig.showDismiss!, false);\n config.closeOnClick = CoreLoggerService.getValue<boolean>(config.closeOnClick!, this.defaultConfig.closeOnClick!, true);\n\n return config;\n }\n\n /**\n * Gets a value which is not undefined or null\n * @param val\n * @param val1\n * @param def\n * @private\n */\n private static getValue<T>(val: T, val1: T, def: T): T {\n if (isNullOrUndefined(val)) {\n if (isNullOrUndefined(val1)) {\n return def;\n }\n return val1;\n }\n return val;\n }\n\n}\n","import { HttpClient, HttpErrorResponse, HttpEvent, HttpHeaders, HttpResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { firstValueFrom, Observable, throwError } from 'rxjs';\nimport { catchError, map } from 'rxjs/operators';\nimport { IApiOptions } from '../models/api-options.model';\nimport { ITokenSettings } from '../models/token-settings.model';\nimport { CoreLoggerService } from './core-logger.service';\nimport { isNullOrEmpty } from '../utils/commons.util';\n\nexport const LOCAL_STORAGE_TOKEN_KEY = 'tokenSettings';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ApiService {\n\n constructor(\n private readonly myCoreLoggerService: CoreLoggerService,\n private readonly myHttpClient: HttpClient,\n ) {\n }\n\n /**\n * Sets the token\n * @param tokenSettings\n */\n public setToken(tokenSettings: ITokenSettings): void {\n window.localStorage.setItem(LOCAL_STORAGE_TOKEN_KEY, JSON.stringify(tokenSettings));\n }\n\n /**\n * Gets token\n */\n public getToken(): ITokenSettings | null {\n const tokenSettings: string | null = window.localStorage.getItem(LOCAL_STORAGE_TOKEN_KEY);\n if (isNullOrEmpty(tokenSettings)) {\n return null;\n }\n\n return JSON.parse(tokenSettings!);\n }\n\n /**\n * Deletes token\n */\n public deleteToken(): void {\n window.localStorage.removeItem(LOCAL_STORAGE_TOKEN_KEY);\n }\n\n /**\n * Makes an http get call\n * @param url\n * @param headers\n * @param options\n */\n public get<T>(url: string, headers?: HttpHeaders, options?: IApiOptions): Observable<T> {\n options = ApiService.serializeOptions(options);\n headers = this.getHeaders(headers, options);\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return this.myHttpClient.get<T>(url, { ...options.httpOptions as any, headers })\n .pipe(\n map((response: HttpEvent<T>) => this.handleResponse(response)),\n catchError((err: HttpErrorResponse): Observable<never> => this.handleError(err, options)),\n );\n }\n\n /**\n * Makes an async http get call, which also includes the response headers\n * @param url\n * @param headers\n * @param options\n */\n public async getWithHeadersAsync<T>(url: string, headers?: HttpHeaders, options?: IApiOptions): Promise<HttpEvent<T>> {\n return firstValueFrom(this.getWithHeaders<T>(url, headers, options));\n }\n\n /**\n * Makes an http get call, which also includes the response headers\n * @param url\n * @param headers\n * @param options\n */\n public getWithHeaders<T>(url: string, headers?: HttpHeaders, options?: IApiOptions): Observable<HttpEvent<T>> {\n options = ApiService.serializeOptions(options);\n headers = this.getHeaders(headers, options);\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return this.myHttpClient.get<T>(url, { ...options.httpOptions as any, headers, observe: 'response' })\n .pipe(\n catchError((err: HttpErrorResponse): Observable<never> => this.handleError(err, options)),\n );\n }\n\n /**\n * Makes an http patch call (For partial updates)\n * @param url\n * @param data\n * @param headers\n * @param options\n */\n public patch<T, T1>(url: string, data?: T, headers?: HttpHeaders, options?: IApiOptions): Observable<T1> {\n options = ApiService.serializeOptions(options);\n headers = this.getHeaders(headers, options);\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return this.myHttpClient.patch<T1>(url, data, { ...options.httpOptions as any, headers })\n .pipe(\n map((response: HttpEvent<T1>) => this.handleResponse(response)),\n catchError((err: HttpErrorResponse): Observable<never> => this.handleError(err, options)),\n );\n }\n\n /**\n * Makes an http put call\n * @param url\n * @param data\n * @param headers\n * @param options\n */\n public put<T, T1>(url: string, data?: T, headers?: HttpHeaders, options?: IApiOptions): Observable<T1> {\n options = ApiService.serializeOptions(options);\n headers = this.getHeaders(headers, options);\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return this.myHttpClient.put<T1>(url, data, { ...options.httpOptions as any, headers })\n .pipe(\n map((response: HttpEvent<T1>) => this.handleResponse(response)),\n catchError((err: HttpErrorResponse): Observable<never> => this.handleError(err, options)),\n );\n }\n\n /**\n * Makes an http post call\n * @param url\n * @param data\n * @param headers\n * @param options\n */\n public post<T, T1>(url: string, data?: T, headers?: HttpHeaders, options?: IApiOptions): Observable<T1> {\n options = ApiService.serializeOptions(options);\n headers = this.getHeaders(headers, options);\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return this.myHttpClient.post<T1>(url, data, { ...options.httpOptions as any, headers })\n .pipe(\n map((response: HttpEvent<T1>) => this.handleResponse(response)),\n catchError((err: HttpErrorResponse): Observable<never> => this.handleError(err, options)),\n );\n }\n\n /**\n * makes an http delete call\n * @param url\n * @param headers\n * @param options\n * @returns Observable\n */\n public delete<T>(url: string, headers?: HttpHeaders, options?: IApiOptions): Observable<T> {\n options = ApiService.serializeOptions(options);\n headers = this.getHeaders(headers, options);\n // eslint-disable-next-line @typescript-eslint/no-empty-object-type\n return this.myHttpClient.delete<T>(url, { ...options.httpOptions as {}, headers })\n .pipe(\n catchError((err: HttpErrorResponse): Observable<never> => this.handleError(err, options)),\n );\n }\n\n /**\n * Appends a script to the html body\n * @param path\n * @param attributes\n * @param onLoad\n */\n public loadExternalScript(path: string, attributes?: { key: string, value: string }[],\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n onLoad?: ((this: GlobalEventHandlers, ev: Event) => any)): void {\n const script = document.createElement('script');\n script.type = 'text/javascript';\n script.src = path;\n script.async = true;\n\n if (onLoad) {\n script.onload = onLoad;\n }\n\n if (attributes) {\n for (const attribute of attributes) {\n script.setAttribute(attribute.key, attribute.value);\n }\n }\n\n document.body.append(script);\n }\n\n private handleError(err: HttpErrorResponse, options: IApiOptions): Observable<never> {\n if (!options?.skipErrorHandling) {\n this.myCoreLoggerService.logError({ msg: err });\n }\n\n return throwError(() => err);\n }\n\n private handleResponse<T>(response: HttpEvent<T>): T {\n if (response instanceof HttpResponse) {\n return response.body as T;\n }\n return response as T;\n }\n\n private getHeaders(headers?: HttpHeaders, options?: IApiOptions): HttpHeaders {\n if (!headers) {\n headers = new HttpHeaders();\n }\n\n if (!options?.skipContentType) {\n if (!headers.get('Content-Type')) {\n headers = headers.set('Content-Type', 'application/json');\n }\n }\n\n const tokenSettings: ITokenSettings | null = this.getToken();\n if (!options?.skipAuth && tokenSettings) {\n headers = headers.set('Authorization', `${tokenSettings.tokenType} ${tokenSettings.token}`);\n }\n return headers;\n }\n\n private static serializeOptions(options?: IApiOptions): IApiOptions {\n if (!options) {\n options = {};\n }\n\n if (!options.httpOptions) {\n options.httpOptions = {};\n }\n\n return options;\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { Observable, Observer, Subject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class MosaSocketService {\n\n private subject: Subject<MessageEvent> | undefined;\n\n constructor() {\n }\n\n public connect(url: string): Subject<MessageEvent> {\n if (!this.subject) {\n this.subject = this.create(url);\n }\n return this.subject;\n }\n\n public send(data: MessageEvent): void {\n this.subject?.next(data);\n }\n\n private create(url: string): Subject<MessageEvent> {\n const ws = new WebSocket(url);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const observable = new Observable((obs: Observer<MessageEvent>): any => {\n ws.onmessage = obs.next.bind(obs);\n ws.onerror = obs.error.bind(obs);\n ws.onclose = obs.complete.bind(obs);\n return ws.close.bind(ws);\n });\n const observer = {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n next: (data: any): void => {\n if (ws.readyState === WebSocket.OPEN) {\n ws.send(JSON.stringify(data));\n }\n },\n };\n return Subject.create(observer, observable);\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { Observable, Observer } from 'rxjs';\nimport { MOSA_FALLBACK_TRANSLATION, MOSA_MERGED_TRANSLATION } from '../../constants/local-storage.constant';\nimport { IKeyMap } from '../../models/key-map.model';\nimport { isNullOrEmpty, tryJsonParse } from '../../utils/commons.util';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CustomTranslateLoaderService {\n\n public getTranslation(lang: string): Observable<IKeyMap<string> | null> {\n return new Observable<IKeyMap<string> | null>((observer: Observer<IKeyMap<string> | null>) => {\n const item: string | null = localStorage.getItem(MOSA_MERGED_TRANSLATION(lang));\n const responseObj: IKeyMap<string> | null = tryJsonParse(item, () => this.loadFallbackLanguage());\n\n observer.next(responseObj);\n observer.complete();\n });\n }\n\n private loadFallbackLanguage(): IKeyMap<string> {\n const defaultTranslation: string | null = localStorage.getItem(MOSA_FALLBACK_TRANSLATION);\n return isNullOrEmpty(defaultTranslation) ? {} : JSON.parse(defaultTranslation!);\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { CanDeactivate } from '@angular/router';\nimport { Observable } from 'rxjs';\n\nexport interface ICanComponentDeactivate {\n canDeactivate: () => Observable<boolean> | Promise<boolean> | boolean;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CanDeactivateGuard implements CanDeactivate<ICanComponentDeactivate> {\n\n public canDeactivate(component: ICanComponentDeactivate): boolean {\n return component.canDeactivate ? component.canDeactivate() as boolean : true;\n }\n\n}\n","import { BehaviorSubject, Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { IDictionaryItem } from '../models/dictionary-item.model';\nimport { IKeyMap } from '../models/key-map.model';\n\nexport class Dictionary<Key, Value> {\n\n private readonly dictionaryItems$: BehaviorSubject<IDictionaryItem<Key, Value>[]>;\n\n /**\n * Default constructor.\n * @param data Requires an array of IDictionaryItem with a key and a value\n */\n constructor(...data: IDictionaryItem<Key, Value>[]) {\n this.dictionaryItems$ = new BehaviorSubject<IDictionaryItem<Key, Value>[]>(data);\n }\n\n /**\n * Observable to subscribe to dictionary changes\n */\n public valueChanges(): Observable<IDictionaryItem<Key, Value>[]> {\n return this.dictionaryItems$.asObservable();\n }\n\n /**\n * Observable to subscribe to dictionary as object changes\n */\n public objectArray(): Observable<IKeyMap<Value>> {\n return this.dictionaryItems$.asObservable()\n .pipe(\n map((items: IDictionaryItem<Key, Value>[]): IKeyMap<Value> => this.toObject(items)),\n );\n }\n\n /**\n * Gets the items of the dictionary\n * @returns dictionary items\n */\n public get items(): IDictionaryItem<Key, Value>[] {\n return this.dictionaryItems$.value;\n }\n\n /**\n * Gets a dictionary item by key\n * @param key\n * @returns single dictionary item\n */\n public get(key: Key): IDictionaryItem<Key, Value> | undefined {\n return this.dictionaryItems$.value.find((item: IDictionaryItem<Key, Value>): boolean => item.key === key);\n }\n\n /**\n * Checks if dictionary contains item\n * @param key\n */\n public contains(key: Key): boolean {\n return this.get(key) != null;\n }\n\n /**\n * Adds a dictionary item\n * @param key\n * @param value\n */\n public add(key: Key, value: Value): void {\n const dictionaryItems: IDictionaryItem<Key, Value>[] = [ ...this.dictionaryItems$.value ];\n dictionaryItems.push({ key, value });\n this.updateItems(dictionaryItems);\n }\n\n /**\n * Updates a dictionary item\n * @param data\n * @param index\n */\n public update(data: IDictionaryItem<Key, Value>, index?: number): void {\n const dictionaryItems: IDictionaryItem<Key, Value>[] = [ ...this.dictionaryItems$.value ];\n if (!index) {\n index = this.getIndex(data.key);\n }\n\n if (index !== -1) {\n dictionaryItems[ index ] = data;\n } else {\n console.warn('Dictionary: Index not found');\n }\n this.updateItems(dictionaryItems);\n }\n\n /**\n * Gets an index with a specific key\n * @param key\n */\n public getIndex(key: Key): number {\n return this.dictionaryItems$.value.findIndex((val: IDictionaryItem<Key, Value>): boolean => val.key === key);\n }\n\n /**\n * Removes an item from the dictionary\n * @param value\n * @param index\n */\n public remove(value: Key, index?: number): void {\n const dictionaryItems: IDictionaryItem<Key, Value>[] = [ ...this.dictionaryItems$.value ];\n if (!index) {\n index = this.getIndex(value);\n }\n\n if (index !== -1) {\n dictionaryItems.splice(index, 1);\n } else {\n console.warn('Dictionary: Index not found');\n }\n this.updateItems(dictionaryItems);\n }\n\n /**\n * Private function to cast array to an object\n * @param items\n * @private\n */\n private toObject(items: IDictionaryItem<Key, Value>[]): IKeyMap<Value> {\n const obj: IKeyMap<Value> = {};\n for (const item of items) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n obj[ item.key as any ] = item.value;\n }\n return obj;\n }\n\n /**\n * Private function to update dictionary items\n * @param items\n * @private\n */\n private updateItems(items: IDictionaryItem<Key, Value>[]): void {\n this.dictionaryItems$.next(items);\n }\n\n}\n","/**\n * Cast any type\n * @param data to be casted\n * @returns casted data\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any,max-classes-per-file\nexport function cast<T>(data: any): T {\n return data as T;\n}\n\nexport class StringExtensions implements IStringExtensions {\n public getPart(maxChars: number, appendDot?: boolean): string {\n let newStr = cast<string>(this).replace(/\\\\n/g, ' ');\n if (newStr.length > maxChars) {\n newStr = newStr.substring(0, maxChars);\n if (appendDot && newStr.length > maxChars - 3) {\n newStr += '...';\n }\n }\n return newStr;\n }\n\n public fromJSON<T>(): T | null {\n let str: string = cast<string>(this);\n if (typeof this !== 'string') {\n str = JSON.stringify(str);\n }\n\n try {\n str = JSON.parse(str);\n } catch {\n return null;\n }\n\n if (typeof str === 'object') {\n return str as T;\n }\n\n return null;\n }\n\n public toCSSClass(): string {\n return cast<string>(this)?.replace(/([a-z])([A-Z])/, '$1-$2').toLowerCase();\n }\n\n public toUTC(): string {\n return `${cast<string>(this)}Z`;\n }\n}\n\nexport class ArrayExtensions implements IArrayExtensions {\n public hasChanges<T>(data: T[]): boolean {\n return JSON.stringify(this) !== JSON.stringify(data);\n }\n\n public replaceRange<T>(data: T[], start: number, end: number): T[] {\n const array: T[] = cast<T[]>(this);\n let replaceDataIndex: number = 0;\n for (let i: number = start; i < end; i++) {\n if (!array[ i ] && !data[ replaceDataIndex ]) {\n array.splice(i, 1);\n continue;\n }\n\n array[ i ] = data[ replaceDataIndex ];\n replaceDataIndex++;\n }\n return array;\n }\n}\n\nexport class NumberExtensions implements INumberExtensions {\n public between(start: number, end: number): boolean {\n const num: number = cast<number>(this);\n return num >= start && num <= end;\n }\n}\n\n/**\n * @interface StringExtensions\n */\nexport interface IStringExtensions {\n /**\n * Gets a part of a string\n * @param maxChars maximum amount of chars\n * @param appendDot append three dots at the end\n * @returns splitted string\n */\n getPart(maxChars: number, appendDot?: boolean): string;\n\n /**\n * Converts a string from json\n * @returns object of expected type\n */\n fromJSON<T>(): T | null;\n\n /**\n * Converts a string to a css class\n * @returns converted kebab case css class\n */\n toCSSClass(): string;\n\n /**\n * Converts a datetime string to utc format\n */\n toUTC(): string;\n}\n\nexport interface IArrayExtensions {\n /**\n * Checks if array has changes\n * @param data array passed\n * @deprecated learn how to program\n */\n hasChanges: <T>(data: T[]) => boolean;\n /**\n * Replaces a specific element range in an array\n * @param data\n */\n replaceRange: <T>(replaceData: T[], start: number, end: number) => T[];\n}\n\nexport interface INumberExtensions {\n /**\n * checks if a number in a range\n * @param start of range\n * @param end of range\n */\n between(start: number, end: number): boolean;\n}\n\ndeclare global {\n // eslint-disable-next-line @typescript-eslint/naming-convention,id-blacklist,@typescript-eslint/no-empty-object-type\n interface String extends IStringExtensions {\n }\n\n // eslint-disable-next-line @typescript-eslint/naming-convention,@typescript-eslint/no-empty-object-type,@typescript-eslint/no-unused-vars\n interface Array<T> extends IArrayExtensions {\n }\n\n // eslint-disable-next-line @typescript-eslint/naming-convention,id-blacklist,@typescript-eslint/no-empty-object-type\n interface Number extends INumberExtensions {\n }\n}\n\nexport class Prototypes {\n\n /**\n * Initialize prototypes\n */\n public static init(): void {\n const stringExtensions = new StringExtensions();\n const arrayExtensions = new ArrayExtensions();\n const numberExtensions = new NumberExtensions();\n\n String.prototype.getPart = stringExtensions.getPart;\n String.prototype.fromJSON = stringExtensions.fromJSON;\n String.prototype.toCSSClass = stringExtensions.toCSSClass;\n String.prototype.toUTC = stringExtensions.toUTC;\n\n Array.prototype.hasChanges = arrayExtensions.hasChanges;\n Array.prototype.replaceRange = arrayExtensions.replaceRange;\n\n Number.prototype.between = numberExtensions.between;\n }\n}\n","import { ISieveFilter } from '../models/sieve/sieve-filter.model';\nimport { SieveOperator } from '../models/sieve/sieve-operator.model';\nimport { ISieveOptions } from '../models/sieve/sieve-options.model';\nimport { ISieveSort } from '../models/sieve/sieve-sort.model';\n\nexport class Sieve {\n\n private readonly options: ISieveOptions;\n\n constructor(options: ISieveOptions) {\n this.options = options;\n this.options.baseUrl = options.baseUrl || '';\n this.options.filters = options.filters || [];\n this.options.sorts = options.sorts || [];\n }\n\n /**\n * public getter to get page size\n */\n public get pageSize(): number {\n return this.options.pageSize || 10;\n }\n\n /**\n * Setter to set page size\n */\n public set pageSize(pageSize: number) {\n this.options.pageSize = pageSize;\n }\n\n /**\n * public getter to get page\n */\n public get page(): number {\n return this.options.page || 0;\n }\n\n /**\n * Setter to set page\n */\n public set page(page: number) {\n this.options.page = page;\n }\n\n /**\n * public getter to get filters\n */\n public get filters(): ISieveFilter[] | undefined {\n return this.options.filters;\n }\n\n /**\n * Setter to set filters\n */\n public set filters(filters: ISieveFilter[]) {\n this.options.filters = filters;\n }\n\n /**\n * public getter to get sorts\n */\n public get sorts(): ISieveSort[] | undefined {\n return this.options.sorts;\n }\n\n /**\n * Setter to set sorts\n */\n public set sorts(sorts: ISieveSort[]) {\n this.options.sorts = sorts;\n }\n\n /**\n * method to add a sort option\n * @param name of the item to sort\n * @param desc sort descending\n */\n public addSort(name: string, desc?: boolean): void {\n this.options.sorts?.push({\n name,\n desc,\n });\n }\n\n /**\n * method to add a filter option\n * @param key of the item\n * @param operator { SieveOperator }\n * @param value filtered value\n */\n public addFilter(key: string, operator: SieveOperator, value: string): void {\n this.options.filters?.push({\n key,\n operator,\n value,\n });\n }\n\n /**\n * Getter for base url\n */\n public get baseUrl(): string | undefined {\n return this.options.baseUrl;\n }\n\n /**\n * Setter for base url\n * @param url\n */\n public set baseUrl(url: string) {\n this.options.baseUrl = url;\n }\n\n /**\n * Convert to queried string\n */\n public getUrl(): string {\n return `${ this.options.baseUrl }${ this.toQuery() }`;\n }\n\n /**\n * to Query\n * @private converts options to actual query\n */\n private toQuery(): string {\n let query = '?';\n\n if (this.page) {\n query += `page=${ this.page }`;\n }\n\n if (this.pageSize) {\n query += `&pageSize=${ this.pageSize }`;\n }\n\n if (this.filters?.length) {\n let filterQuery: string = '&filters=';\n\n for (const filter of this.filters) {\n if (filter.value) {\n filterQuery += `${ filter.key }${ filter.operator }${ filter.value },`;\n }\n }\n\n if (filterQuery !== '&filters=') {\n filterQuery = filterQuery.slice(0, -1);\n query += filterQuery;\n }\n }\n\n if (this.sorts?.length) {\n let sortQuery: string = '&sorts=';\n\n for (const sort of this.sorts) {\n sortQuery += `${ sort.desc ? '-' : '+' }${ sort.name },`;\n }\n\n sortQuery = sortQuery.slice(0, -1);\n query += sortQuery;\n }\n\n if (query.startsWith('&')) {\n query = query.slice(1);\n }\n\n return query;\n }\n\n}\n","export enum Theme {\n light,\n dark,\n}\n","export enum ContentPosition {\n top = 'top',\n topLeft = 'top-left',\n topRight = 'top-right',\n bottom = 'bottom',\n bottomLeft = 'bottom-left',\n bottomRight = 'bottom-right',\n center = 'center',\n centerLeft = 'center-left',\n centerRight = 'center-right',\n}\n","export enum Browser {\n chrome,\n firefox,\n internetExplorer,\n opera,\n edge,\n safari,\n other,\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { Dictionary } from '../utils/dictionary.util';\n\n@Pipe({ name: 'dictionaryItem' })\nexport class DictionaryItemPipe implements PipeTransform {\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public transform(key: any, dictionary: Dictionary<any, any>): string {\n return dictionary.get(key)?.value;\n }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { some } from '../utils/commons.util';\n\n@Pipe({ name: 'filter' })\nexport class FilterPipe implements PipeTransform {\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public transform<T>(array: T[] | undefined, searchValue: any, searchKey?: keyof T): T[] {\n // Return if array is empty or null\n if (!array?.length) {\n return [];\n }\n\n const foundItems: T[] = array.filter((v: T): boolean => some(v, searchValue, searchKey));\n if (!foundItems.length) {\n return [];\n }\n\n // Return whole item\n return foundItems;\n }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { some } from '../utils/commons.util';\n\n@Pipe({ name: 'find' })\nexport class FindPipe implements PipeTransform {\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public transform<T>(array: T[] | undefined, searchValue: any, searchKey?: keyof T): T | null {\n // Return if array is empty or null\n if (!array?.length) {\n return null;\n }\n\n const foundItem: T | undefined = array.find((v: T): boolean => some(v, searchValue, searchKey));\n if (!foundItem) {\n return null;\n }\n\n // Return whole item\n return foundItem;\n }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ name: 'join' })\nexport class JoinPipe implements PipeTransform {\n\n /**\n * Join array by separator\n * @param array\n * @param returnField\n * @param separator\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public transform(array: any[], returnField: any, separator: string = ', '): string {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return array.map((val: any): string => returnField ? val[ returnField ] : val).join(separator);\n }\n\n}\n","import { DatePipe } from '@angular/common';\nimport { inject, Pipe, PipeTransform } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\n@Pipe({ name: 'mosaDate' })\nexport class MosaDatePipe implements PipeTransform {\n\n private readonly store$: BehaviorSubject<number> = new BehaviorSubject<number>(new Date().getTime());\n\n private templates: Record<string, string> = {};\n\n private readonly myTranslateService: TranslateService = inject(TranslateService);\n private readonly myDatePipe: DatePipe = inject(DatePipe);\n\n constructor() {\n this.updateTemplates();\n setInterval((): void => this.store$.next(new Date().getTime()), 10);\n this.myTranslateService.onLangChange.subscribe((): void => {\n this.updateTemplates();\n this.store$.next(new Date().getTime());\n });\n }\n\n public transform(date: string | Date | undefined, mode: 'full' | 'timeSince' | 'date' = 'timeSince', options?: { withPrefix?: boolean, withSuffix?: boolean }): Observable<string> {\n return this.store$.pipe(map((currentDate: number): string => this.calcDate(currentDate, date, mode, options)));\n }\n\n private calcDate(currentTimestamp: number, date: string | Date | undefined, mode: 'full' | 'timeSince' | 'date', options?: { withPrefix?: boolean, withSuffix?: boolean }): string {\n if (!date) {\n return '';\n }\n\n let parsed: Date;\n if (date instanceof Date) {\n parsed = new Date(date.toString());\n } else {\n parsed = new Date(date);\n }\n\n if (!currentTimestamp) {\n currentTimestamp = new Date().getTime();\n }\n const currentDate = new Date(currentTimestamp);\n const parsedTimestamp: number = parsed.getTime();\n\n const convertedDate: string | null = this.myDatePipe.transform(parsed, 'dd. MMM. yyyy hh:mm aaa');\n if (mode === 'full' || mode === 'timeSince') {\n const seconds: number = Math.abs(((currentTimestamp - parsedTimestamp) * .001) >> 0);\n const minutes: number = seconds / 60;\n const hours: number = minutes / 60;\n const days: number = hours / 24;\n const years: number = days / 365;\n\n const yearDifference = (currentDate.getFullYear() - parsed.getFullYear()) * 12;\n const monthDifference = currentDate.getMonth() - parsed.getMonth();\n\n let timeSince: string = '';\n if (parsedTimestamp > currentTimestamp) {\n timeSince = (options?.withPrefix ? this.templates[ 'prefixFuture' ] : '') + (\n seconds > 0 && seconds < 2 && this.template('second', 1) ||\n seconds < 60 && this.template('seconds', seconds) ||\n seconds < 120 && this.template('minute', 1) ||\n minutes < 60 && this.template('minutes', minutes) ||\n minutes < 120 && this.template('hour', 1) ||\n hours < 24 && this.template('hours', hours) ||\n hours < 42 && this.template('day', 1) ||\n days < 30 && this.template('days', days) ||\n days < 45 && this.template('month', 1) ||\n days < 365 && this.template('months', yearDifference + monthDifference) ||\n years < 1.5 && this.template('year', 1) ||\n this.template('years', years)\n ) + (options?.withSuffix ? this.templates[ 'suffixFuture' ] : '');\n } else {\n timeSince = (options?.withPrefix ? this.templates[ 'prefixPast' ] : '') + (\n seconds > 0 && seconds < 2 && this.template('second', 1) ||\n seconds < 60 && this.template('seconds', seconds) ||\n seconds < 120 && this.template('minute', 1) ||\n minutes < 60 && this.template('minutes', minutes) ||\n minutes < 120 && this.template('hour', 1) ||\n hours < 24 && this.template('hours', hours) ||\n hours < 42 && this.template('day', 1) ||\n days < 30 && this.template('days', days) ||\n days < 45 && this.template('month', 1) ||\n days < 365 && this.template('months', yearDifference + monthDifference) ||\n years < 1.5 && this.template('year', 1) ||\n this.template('years', years)\n ) + (options?.withSuffix ? this.templates[ 'suffixPast' ] : '');\n }\n\n if (mode === 'timeSince') {\n return timeSince;\n }\n\n if (mode === 'full') {\n return `${convertedDate} (${timeSince})`;\n }\n }\n\n return convertedDate || '';\n }\n\n private template(key: string, val: number): string {\n return this.templates[ key ]?.replace(/%d/i, String(Math.abs(Math.round(val))));\n }\n\n private updateTemplates(): void {\n this.templates = {\n prefixPast: this.myTranslateService.instant('mosa.pipes.timeSince.prefix.past'),\n suffixPast: this.myTranslateService.instant('mosa.pipes.timeSince.suffix.past'),\n prefixFuture: this.myTranslateService.instant('mosa.pipes.timeSince.prefix.future'),\n suffixFuture: this.myTranslateService.instant('mosa.pipes.timeSince.suffix.future'),\n second: this.myTranslateService.instant('mosa.pipes.timeSince.second'),\n seconds: this.myTranslateService.instant('mosa.pipes.timeSince.seconds'),\n minute: this.myTranslateService.instant('mosa.pipes.timeSince.minute'),\n minutes: this.myTranslateService.instant('mosa.pipes.timeSince.minutes'),\n hour: this.myTranslateService.instant('mosa.pipes.timeSince.hour'),\n hours: this.myTranslateService.instant('mosa.pipes.timeSince.hours'),\n day: this.myTranslateService.instant('mosa.pipes.timeSince.day'),\n days: this.myTranslateService.instant('mosa.pipes.timeSince.days'),\n month: this.myTranslateService.instant('mosa.pipes.timeSince.month'),\n months: this.myTranslateService.instant('mosa.pipes.timeSince.months'),\n year: this.myTranslateService.instant('mosa.pipes.timeSince.year'),\n years: this.myTranslateService.instant('mosa.pipes.timeSince.years'),\n };\n }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { MosaDurationFormat } from '../models/mosa-duration.model';\n\n@Pipe({ name: 'mosaDuration' })\nexport class MosaDurationPipe implements PipeTransform {\n\n private readonly store$: BehaviorSubject<number> = new BehaviorSubject<number>(new Date().getTime());\n private readonly interval: NodeJS.Timeout;\n\n constructor(\n private readonly myTranslateService: TranslateService,\n ) {\n this.interval = setInterval(() => this.store$.next(new Date().getTime()), 1000);\n this.myTranslateService.onLangChange.subscribe((): void => this.store$.next(new Date().getTime()));\n }\n\n /**\n * Converts a timestamp to a duration in the given format\n * @param millis\n * @param format\n * @returns\n * auto: 15000 -> 15 seconds\n * seconds: 15000 -> 15 seconds\n * minutes: 60000 -> 1 minute\n * hours: 7200000 -> 2 hours\n * days: 172800000 -> 2 days\n */\n public transform(millis: number | undefined, format: MosaDurationFormat = 'auto'): Observable<string> {\n return this.store$.pipe(\n map((currentDate: number): string => {\n if (!millis) {\n clearInterval(this.interval);\n return '';\n }\n\n if (millis - currentDate < 0) {\n clearInterval(this.interval);\n return '';\n }\n\n return this.calcDuration(currentDate, millis, format);\n }),\n );\n }\n\n\n private getTranslation(num: number, format: MosaDurationFormat): string {\n if (num === 1) {\n return `${num.toFixed(0)} ${this.myTranslateService.instant(`mosa.commons.dateTime[${format}].label`)}`;\n }\n return `${num.toFixed(0)} ${this.myTranslateService.instant(`mosa.commons.dateTime[${format}].plural.label`)}`;\n }\n\n\n private calcDuration(currentDate: number, millis: number, format: MosaDurationFormat): string {\n millis = millis - currentDate;\n\n const seconds: number = millis / 1000;\n if (format === 'seconds') {\n return this.getTranslation(seconds, 'seconds');\n }\n\n const minutes: number = seconds / 60;\n if (format === 'minutes') {\n return this.getTranslation(minutes, 'minutes');\n }\n\n const hours: number = minutes / 60;\n if (format === 'hours') {\n return this.getTranslation(hours, 'hours');\n }\n\n const days: number = hours / 24;\n if (format === 'days') {\n return this.getTranslation(days, 'days');\n }\n\n if (format === 'auto') {\n if (seconds < 60) {\n return this.getTranslation(seconds, 'seconds');\n }\n\n if (minutes < 60) {\n return this.getTranslation(minutes, 'minutes');\n }\n\n if (hours < 24) {\n return this.getTranslation(hours, 'hours');\n }\n\n return this.getTranslation(days, 'days');\n }\n\n return '';\n }\n}\n","import { EnvironmentProviders, inject, makeEnvironmentProviders, provideAppInitializer } from '@angular/core';\nimport { AssetsI18nLoaderService } from './services/translation/assets-i18n-loader.service';\n\n/*\n * Public API Surface of core\n */\n\n/**\n * Services\n */\nexport * from './services/api.service';\nexport * from './services/mosa-socket.service';\nexport * from './services/core-logger.service';\n\nexport * from './services/translation/translate-collector.service';\nexport * from './services/translation/custom-translate-loader.service';\nexport * from './services/translation/assets-i18n-loader.service';\n\n/**\n * Guards\n */\nexport * from './services/guards/can-deactivate.guard';\n\n/**\n * Models\n */\nexport * from './models/dictionary-item.model';\nexport * from './models/api-options.model';\nexport * from './models/mosa-duration.model';\nexport * from './models/token-settings.model';\nexport * from './models/transform-matrix.model';\nexport * from './models/key-map.model';\nexport * from './models/item.model';\nexport * from './models/size.model';\n\nexport * from './models/sieve/sieve-response.model';\nexport * from './models/sieve/sieve-sort.model';\nexport * from './models/sieve/sieve-filter.model';\nexport * from './models/sieve/sieve-operator.model';\nexport * from './models/sieve/sieve-options.model';\n\nexport * from './models/logger/logger-config.model';\nexport * from './models/logger/log.model';\nexport * from './models/logger/log-event.model';\nexport * from './models/logger/log-message-data.model';\nexport * from './models/logger/logger-base-config.model';\nexport * from './models/logger/logger-default-config.model';\nexport * from './models/logger/log-type.model';\n\nexport * from './models/types/form.type';\n\n/**\n * Utils\n */\nexport * from './utils/commons.util';\nexport * from './utils/dictionary.util';\nexport * from './utils/promise.util';\nexport * from './utils/prototypes.util';\nexport * from './utils/sieve.util';\n\n/**\n * Enums\n */\nexport * from './enums/theme.enum';\nexport * from './enums/content-position.enum';\nexport * from './enums/browser.enum';\nexport * from './enums/i18n-supported.enum';\n\n/**\n * Constants\n */\nexport * from './constants/local-storage.constant';\n\n/**\n * Pipes\n */\nexport * from './pipes/dictionary-item.pipe';\nexport * from './pipes/filter.pipe';\nexport * from './pipes/find.pipe';\nexport * from './pipes/join.pipe';\nexport * from './pipes/mosa-date.pipe';\nexport * from './pipes/mosa-duration.pipe';\n\nfunction initI18n(i18n: AssetsI18nLoaderService): Promise<void> {\n return i18n.init(undefined, undefined, 1);\n}\n\nfunction initI18nCore(i18n: AssetsI18nLoaderService): Promise<void> {\n return i18n.init(undefined, 'mosa');\n}\n\nexport const provideMosaCore: () => EnvironmentProviders = () => makeEnvironmentProviders([\n provideAppInitializer(() => initI18n(inject(AssetsI18nLoaderService))),\n provideAppInitializer(() => initI18nCore(inject(AssetsI18nLoaderService))),\n]);\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2.TranslateCollectorService","i1.CoreLoggerService","i2"],"mappings":"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"}
1
+ {"version":3,"file":"mosa-ng-core.mjs","sources":["../../../../projects/core/src/lib/utils/commons.util.ts","../../../../projects/core/src/lib/enums/i18n-supported.enum.ts","../../../../projects/core/src/lib/constants/local-storage.constant.ts","../../../../projects/core/src/lib/services/translation/translate-collector.service.ts","../../../../projects/core/src/lib/services/translation/assets-i18n-loader.service.ts","../../../../projects/core/src/lib/services/core-logger.service.ts","../../../../projects/core/src/lib/services/api.service.ts","../../../../projects/core/src/lib/services/mosa-socket.service.ts","../../../../projects/core/src/lib/services/translation/custom-translate-loader.service.ts","../../../../projects/core/src/lib/services/guards/can-deactivate.guard.ts","../../../../projects/core/src/lib/utils/dictionary.util.ts","../../../../projects/core/src/lib/utils/prototypes.util.ts","../../../../projects/core/src/lib/utils/sieve.util.ts","../../../../projects/core/src/lib/enums/theme.enum.ts","../../../../projects/core/src/lib/enums/content-position.enum.ts","../../../../projects/core/src/lib/enums/browser.enum.ts","../../../../projects/core/src/lib/pipes/dictionary-item.pipe.ts","../../../../projects/core/src/lib/pipes/filter.pipe.ts","../../../../projects/core/src/lib/pipes/find.pipe.ts","../../../../projects/core/src/lib/pipes/join.pipe.ts","../../../../projects/core/src/lib/pipes/mosa-date.pipe.ts","../../../../projects/core/src/lib/pipes/mosa-duration.pipe.ts","../../../../projects/core/src/lib/provider.ts","../../../../projects/core/src/mosa-ng-core.ts"],"sourcesContent":["import { ITransformMatrix } from '../models/transform-matrix.model';\n\n/**\n * Checks if an object is null or undefined. Does not check for\n * empty strings, or false booleans\n * @param val\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function isNullOrUndefined(val: any): boolean {\n return val === null || val === undefined;\n}\n\n/**\n * Checks if a string is null or empty\n * @param str\n */\nexport function isNullOrEmpty(str: string | null | undefined): boolean {\n return !str?.trim();\n}\n\n/**\n * Checks if a string or number is zero or higher\n * @param num\n */\nexport function isZeroOrHigher(num: number | string | null | undefined): boolean {\n return num != null && +num >= 0;\n}\n\n/**\n * Checks if an object is a number\n * @param num\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function isNumber(num: any): boolean {\n return num !== null && !isNaN(+num);\n}\n\n/**\n * Round to nearest number given\n * @param value\n * @param round\n */\nexport function roundNearest(value: number): number {\n return Math.ceil(value / 5) * 5;\n}\n\n/**\n * Merge a two dimensional array\n * @param array\n */\nexport function mergeArray<T>(array: T[][]): T[] {\n return array.reduce((flat: T[], toFlatten: T[] | T[][]): T[] =>\n flat.concat(Array.isArray(toFlatten) ? mergeArray<T>(toFlatten as T[][]) : toFlatten), []);\n}\n\n/**\n * Get CSS Transform matrix from an element\n * @param element\n */\nexport function getTransformMatrix(element: HTMLElement): ITransformMatrix {\n const values = element.style.transform.split(/\\w+\\(|\\);?/);\n const transform = values[ 1 ].split(/,\\s?/g).map((numStr: string): number => parseInt(numStr, 10));\n\n return {\n x: transform[ 0 ],\n y: transform[ 1 ],\n z: transform[ 2 ],\n };\n}\n\nexport function some<T>(item: T, searchValue: T[keyof T] | T[keyof T][], searchKey?: keyof T): boolean {\n let searchValues: T[keyof T][] = searchValue as T[keyof T][];\n if (!Array.isArray(searchValue)) {\n searchValues = [ searchValue ];\n }\n\n return searchValues.includes(searchKey ? item[ searchKey ] : item as T[keyof T]);\n}\n\n/**\n * Generates a random string with numbers and letters\n * @param length\n */\nexport function getRandomString(length: number = 10): string {\n const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n let result: string = '';\n for (let i: number = 0; i < length; i++) {\n result += characters.charAt(Math.floor(Math.random() * characters.length));\n }\n return result;\n}\n\n/**\n * Trys to convert a json string. If it fails it returns [null] or a given fallback of [T]\n */\nexport function tryJsonParse<T>(data: string | undefined | null, fallback?: () => T): T | null {\n try {\n if (!isNullOrEmpty(data)) {\n return JSON.parse(data!);\n }\n } catch {\n // Ignore - go on with fallback check\n }\n\n if (fallback) {\n return fallback();\n }\n return null;\n}\n","export enum I18nSupported {\n enUS = 'en-US',\n deDE = 'de-DE',\n deCH = 'de-CH',\n deAT = 'de-AT',\n enGB = 'en-GB',\n frFR = 'fr-FR',\n esES = 'es-ES',\n ptPT = 'pt-PT',\n}\n","import { I18nSupported } from '../enums/i18n-supported.enum';\n\nexport const MOSA_MERGED_TRANSLATION = (lang: string): string => `mosa_${ lang }_merged_${ location.host }`;\nexport const MOSA_FALLBACK_TRANSLATION = `mosa_${ I18nSupported.enUS }_merged_${ location.host }`;\n","import { Injectable } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { MOSA_MERGED_TRANSLATION } from '../../constants/local-storage.constant';\nimport { IKeyMap } from '../../models/key-map.model';\nimport { isNullOrUndefined } from '../../utils/commons.util';\n\nexport interface ITranslationMap {\n priority: number;\n translation: IKeyMap<string>;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TranslateCollectorService {\n\n private translationMap: IKeyMap<ITranslationMap[]> = {};\n\n constructor(private readonly myTranslateService: TranslateService) {\n }\n\n public addTranslations(translation: Record<string, string>, lang: string, priority: number): void {\n if (isNullOrUndefined(this.translationMap[ lang ])) {\n this.translationMap[ lang ] = [];\n }\n\n this.translationMap[ lang ].push({ priority, translation });\n this.translationMap[ lang ].sort((a: ITranslationMap, b: ITranslationMap) => a.priority - b.priority);\n const merged: IKeyMap<string> = JSON.parse(localStorage.getItem(MOSA_MERGED_TRANSLATION(lang))|| '{}');\n\n for (const translationsData of this.translationMap[ lang ]) {\n const translations: IKeyMap<string> = translationsData.translation;\n if (translations != null) {\n Object.keys(translations).forEach((key: string) => void (merged[ key ] = translations[ key ]));\n }\n }\n\n let trans: boolean = true;\n let count: number = 0;\n while (trans) {\n count++;\n trans = false;\n if (count >= 10) {\n console.warn('Limit reached! Please check translation file! Last replaced values:');\n }\n Object.keys(merged).forEach((key: string) => {\n if (merged[ key ].startsWith('@:')) {\n merged[ key ] = merged[ merged[ key ].substring(2, merged[ key ].length) ];\n trans = count < 10;\n if (count > 10) {\n console.warn(merged[ key ]);\n }\n }\n });\n }\n localStorage.setItem(MOSA_MERGED_TRANSLATION(lang), JSON.stringify(merged));\n this.myTranslateService.reloadLang(lang);\n }\n\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { firstValueFrom, Observable, of } from 'rxjs';\nimport { catchError, tap } from 'rxjs/operators';\nimport { getRandomString } from '../../utils/commons.util';\nimport { TranslateCollectorService } from './translate-collector.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AssetsI18nLoaderService {\n\n protected priority: number = 0;\n protected supportedLanguages: string[] = [];\n\n constructor(\n protected myHttpClient: HttpClient,\n protected myTranslateCollectorService: TranslateCollectorService,\n ) {\n }\n\n public async init(path?: string, libName?: string, priority?: number): Promise<void> {\n if (this.supportedLanguages.length > 0) {\n for (let i: number = 0; i < this.supportedLanguages.length; i++) {\n await firstValueFrom(this.loadTranslations(this.supportedLanguages[ i ], path, libName, priority));\n }\n return;\n }\n\n const res: { languages: string[] } | null = await firstValueFrom(this.myHttpClient.get<{ languages: string[] }>(`assets/i18n/supported-languages.json?v=${getRandomString()}`)).catch(() => null);\n if (!res) {\n console.error('Missing file -> assets/i18n/supported-languages.json');\n return;\n }\n\n this.supportedLanguages = res.languages;\n\n for (let i: number = 0; i < this.supportedLanguages.length; i++) {\n await firstValueFrom(this.loadTranslations(this.supportedLanguages[ i ], path, libName, priority));\n }\n }\n\n protected loadTranslations(lang: string, path?: string, libName?: string, priority?: number): Observable<Record<string, string> | null> {\n const filename: string = libName ? `${libName}-${lang}.json` : `${lang}.json`;\n return this.myHttpClient.get<Record<string, string>>(`${(path || './assets/i18n/') + filename}?v=${getRandomString()}`)\n .pipe(\n tap((response: Record<string, string>) =>\n this.myTranslateCollectorService.addTranslations(response, lang, priority || this.priority)),\n catchError(() => {\n console.error(`Missing file -> ${filename}`);\n return of(null);\n }),\n );\n }\n}\n","import { HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { ILogEvent } from '../models/logger/log-event.model';\nimport { LogType } from '../models/logger/log-type.model';\nimport { ILoggerConfig } from '../models/logger/logger-config.model';\nimport { ILoggerDefaultConfig } from '../models/logger/logger-default-config.model';\nimport { isNullOrUndefined } from '../utils/commons.util';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CoreLoggerService {\n\n public defaultConfig: ILoggerDefaultConfig | undefined;\n\n private readonly uiLogs$: BehaviorSubject<ILogEvent | null> = new BehaviorSubject<ILogEvent | null>(null);\n\n /**\n * Default constructor\n */\n constructor() {\n }\n\n public subUiLogs(): Observable<ILogEvent | null> {\n return this.uiLogs$.asObservable();\n }\n\n /**\n * Gets the error message from any type of object\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public getErrorMsg(err: any): string {\n let msg: string = 'Unknown Error';\n\n if (!err) {\n return msg;\n }\n\n if (err instanceof HttpErrorResponse) {\n if (typeof err.error !== 'string') {\n return `mosa.commons.errors.status[${err.status}].message`;\n }\n\n return err.error;\n }\n\n if (typeof err === 'string') {\n msg = err;\n } else if (err.msg) {\n msg = err.msg;\n } else if (err.error?.msg) {\n msg = err.error.msg;\n } else if (err.error?.message) {\n msg = err.error.message;\n } else if (err.error?.errors?.[ 0 ]?.message) {\n msg = err.error.errors[ 0 ].message;\n } else if (err.message) {\n msg = err.message;\n } else if (err.Message) {\n msg = err.Message;\n }\n\n if (typeof err.error === 'string') {\n msg = err.error;\n }\n\n return msg;\n }\n\n /**\n * Get the title to be shown in logger toast\n * @param err\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public getErrorTitle(err: any): string {\n let title: string = 'mosa.commons.logs.error.label';\n if (err?.label) {\n title = err.label;\n } else if (err?.title) {\n title = err.title;\n } else if (err?.error?.label) {\n title = err.error.label;\n } else if (err?.error?.title) {\n title = err.error.title;\n }\n return title;\n }\n\n /**\n * Logs an error to the user\n * @param data\n * @param showUser\n * @param config\n */\n public logError(config: ILoggerConfig): void {\n config = this.serializeConfig(config);\n config.msg = this.getErrorMsg(config.msg);\n\n if (!config.title) {\n config.title = this.getErrorTitle(config.msg);\n }\n\n config.className = 'snackbar-error';\n\n this.show(config, 'error');\n }\n\n /**\n * Logs a success message to the user\n * @param data\n * @param config\n */\n public logSuccess(config: ILoggerConfig): void {\n config = this.serializeConfig(config);\n config.className = 'snackbar-success';\n\n this.show(config, 'success');\n }\n\n /**\n * Logs a warning to the user\n * @param data\n * @param showUser\n * @param config\n */\n public logWarning(config: ILoggerConfig): void {\n config = this.serializeConfig(config);\n config.className = 'snackbar-warning';\n\n this.show(config, 'warning');\n }\n\n /**\n * Logs an info to the user\n * @param data\n * @param config\n */\n public logInfo(config: ILoggerConfig): void {\n config = this.serializeConfig(config);\n config.className = 'snackbar-info';\n\n this.show(config, 'info');\n }\n\n /**\n * Logs any kind of message to the user\n * @param data\n * @param config\n */\n public log(config: ILoggerConfig): void {\n config = this.serializeConfig(config);\n config.className = 'snackbar-default';\n\n this.show(config, 'default');\n }\n\n /**\n * Show the log\n * @requires @mosa-ng/material\n * @param data\n * @param type\n * @param config\n */\n public show(config: ILoggerConfig, type: LogType): void {\n this.uiLogs$.next({ title: config.title, msg: config.msg, type, config });\n }\n\n /**\n * Serializes empty values, so no error is being returned\n * @param config\n * @private\n */\n private serializeConfig(config: ILoggerConfig | undefined): ILoggerConfig {\n // Check if user has default config\n if (!this.defaultConfig) {\n this.defaultConfig = {\n debug: true,\n };\n }\n\n if (!config) {\n // Get user default config\n config = {\n showDismiss: this.defaultConfig.showDismiss,\n closeOnClick: isNullOrUndefined(this.defaultConfig.closeOnClick) ? true : this.defaultConfig.closeOnClick,\n className: this.defaultConfig.className,\n duration: this.defaultConfig.duration || 4,\n };\n }\n\n // Serialize configuration\n config.duration = CoreLoggerService.getValue<number>(config.duration!, this.defaultConfig.duration!, 4);\n config.className = CoreLoggerService.getValue<string>(config.className!, this.defaultConfig.className!, '');\n config.showDismiss = CoreLoggerService.getValue<boolean>(config.showDismiss!, this.defaultConfig.showDismiss!, false);\n config.closeOnClick = CoreLoggerService.getValue<boolean>(config.closeOnClick!, this.defaultConfig.closeOnClick!, true);\n\n return config;\n }\n\n /**\n * Gets a value which is not undefined or null\n * @param val\n * @param val1\n * @param def\n * @private\n */\n private static getValue<T>(val: T, val1: T, def: T): T {\n if (isNullOrUndefined(val)) {\n if (isNullOrUndefined(val1)) {\n return def;\n }\n return val1;\n }\n return val;\n }\n\n}\n","import { HttpClient, HttpErrorResponse, HttpEvent, HttpHeaders, HttpResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { firstValueFrom, Observable, throwError } from 'rxjs';\nimport { catchError, map } from 'rxjs/operators';\nimport { IApiOptions } from '../models/api-options.model';\nimport { ITokenSettings } from '../models/token-settings.model';\nimport { CoreLoggerService } from './core-logger.service';\nimport { isNullOrEmpty } from '../utils/commons.util';\n\nexport const LOCAL_STORAGE_TOKEN_KEY = 'tokenSettings';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ApiService {\n\n constructor(\n private readonly myCoreLoggerService: CoreLoggerService,\n private readonly myHttpClient: HttpClient,\n ) {\n }\n\n /**\n * Sets the token\n * @param tokenSettings\n */\n public setToken(tokenSettings: ITokenSettings): void {\n window.localStorage.setItem(LOCAL_STORAGE_TOKEN_KEY, JSON.stringify(tokenSettings));\n }\n\n /**\n * Gets token\n */\n public getToken(): ITokenSettings | null {\n const tokenSettings: string | null = window.localStorage.getItem(LOCAL_STORAGE_TOKEN_KEY);\n if (isNullOrEmpty(tokenSettings)) {\n return null;\n }\n\n return JSON.parse(tokenSettings!);\n }\n\n /**\n * Deletes token\n */\n public deleteToken(): void {\n window.localStorage.removeItem(LOCAL_STORAGE_TOKEN_KEY);\n }\n\n /**\n * Makes an http get call\n * @param url\n * @param headers\n * @param options\n */\n public get<T>(url: string, headers?: HttpHeaders, options?: IApiOptions): Observable<T> {\n options = ApiService.serializeOptions(options);\n headers = this.getHeaders(headers, options);\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return this.myHttpClient.get<T>(url, { ...options.httpOptions as any, headers })\n .pipe(\n map((response: HttpEvent<T>) => this.handleResponse(response)),\n catchError((err: HttpErrorResponse): Observable<never> => this.handleError(err, options)),\n );\n }\n\n /**\n * Makes an async http get call, which also includes the response headers\n * @param url\n * @param headers\n * @param options\n */\n public async getWithHeadersAsync<T>(url: string, headers?: HttpHeaders, options?: IApiOptions): Promise<HttpEvent<T>> {\n return firstValueFrom(this.getWithHeaders<T>(url, headers, options));\n }\n\n /**\n * Makes an http get call, which also includes the response headers\n * @param url\n * @param headers\n * @param options\n */\n public getWithHeaders<T>(url: string, headers?: HttpHeaders, options?: IApiOptions): Observable<HttpEvent<T>> {\n options = ApiService.serializeOptions(options);\n headers = this.getHeaders(headers, options);\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return this.myHttpClient.get<T>(url, { ...options.httpOptions as any, headers, observe: 'response' })\n .pipe(\n catchError((err: HttpErrorResponse): Observable<never> => this.handleError(err, options)),\n );\n }\n\n /**\n * Makes an http patch call (For partial updates)\n * @param url\n * @param data\n * @param headers\n * @param options\n */\n public patch<T, T1>(url: string, data?: T, headers?: HttpHeaders, options?: IApiOptions): Observable<T1> {\n options = ApiService.serializeOptions(options);\n headers = this.getHeaders(headers, options);\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return this.myHttpClient.patch<T1>(url, data, { ...options.httpOptions as any, headers })\n .pipe(\n map((response: HttpEvent<T1>) => this.handleResponse(response)),\n catchError((err: HttpErrorResponse): Observable<never> => this.handleError(err, options)),\n );\n }\n\n /**\n * Makes an http put call\n * @param url\n * @param data\n * @param headers\n * @param options\n */\n public put<T, T1>(url: string, data?: T, headers?: HttpHeaders, options?: IApiOptions): Observable<T1> {\n options = ApiService.serializeOptions(options);\n headers = this.getHeaders(headers, options);\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return this.myHttpClient.put<T1>(url, data, { ...options.httpOptions as any, headers })\n .pipe(\n map((response: HttpEvent<T1>) => this.handleResponse(response)),\n catchError((err: HttpErrorResponse): Observable<never> => this.handleError(err, options)),\n );\n }\n\n /**\n * Makes an http post call\n * @param url\n * @param data\n * @param headers\n * @param options\n */\n public post<T, T1>(url: string, data?: T, headers?: HttpHeaders, options?: IApiOptions): Observable<T1> {\n options = ApiService.serializeOptions(options);\n headers = this.getHeaders(headers, options);\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return this.myHttpClient.post<T1>(url, data, { ...options.httpOptions as any, headers })\n .pipe(\n map((response: HttpEvent<T1>) => this.handleResponse(response)),\n catchError((err: HttpErrorResponse): Observable<never> => this.handleError(err, options)),\n );\n }\n\n /**\n * makes an http delete call\n * @param url\n * @param headers\n * @param options\n * @returns Observable\n */\n public delete<T>(url: string, headers?: HttpHeaders, options?: IApiOptions): Observable<T> {\n options = ApiService.serializeOptions(options);\n headers = this.getHeaders(headers, options);\n // eslint-disable-next-line @typescript-eslint/no-empty-object-type\n return this.myHttpClient.delete<T>(url, { ...options.httpOptions as {}, headers })\n .pipe(\n catchError((err: HttpErrorResponse): Observable<never> => this.handleError(err, options)),\n );\n }\n\n /**\n * Appends a script to the html body\n * @param path\n * @param attributes\n * @param onLoad\n */\n public loadExternalScript(path: string, attributes?: { key: string, value: string }[],\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n onLoad?: ((this: GlobalEventHandlers, ev: Event) => any)): void {\n const script = document.createElement('script');\n script.type = 'text/javascript';\n script.src = path;\n script.async = true;\n\n if (onLoad) {\n script.onload = onLoad;\n }\n\n if (attributes) {\n for (const attribute of attributes) {\n script.setAttribute(attribute.key, attribute.value);\n }\n }\n\n document.body.append(script);\n }\n\n private handleError(err: HttpErrorResponse, options: IApiOptions): Observable<never> {\n if (!options?.skipErrorHandling) {\n this.myCoreLoggerService.logError({ msg: err });\n }\n\n return throwError(() => err);\n }\n\n private handleResponse<T>(response: HttpEvent<T>): T {\n if (response instanceof HttpResponse) {\n return response.body as T;\n }\n return response as T;\n }\n\n private getHeaders(headers?: HttpHeaders, options?: IApiOptions): HttpHeaders {\n if (!headers) {\n headers = new HttpHeaders();\n }\n\n if (!options?.skipContentType) {\n if (!headers.get('Content-Type')) {\n headers = headers.set('Content-Type', 'application/json');\n }\n }\n\n const tokenSettings: ITokenSettings | null = this.getToken();\n if (!options?.skipAuth && tokenSettings) {\n headers = headers.set('Authorization', `${tokenSettings.tokenType} ${tokenSettings.token}`);\n }\n return headers;\n }\n\n private static serializeOptions(options?: IApiOptions): IApiOptions {\n if (!options) {\n options = {};\n }\n\n if (!options.httpOptions) {\n options.httpOptions = {};\n }\n\n return options;\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { Observable, Observer, Subject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class MosaSocketService {\n\n private subject: Subject<MessageEvent> | undefined;\n\n constructor() {\n }\n\n public connect(url: string): Subject<MessageEvent> {\n if (!this.subject) {\n this.subject = this.create(url);\n }\n return this.subject;\n }\n\n public send(data: MessageEvent): void {\n this.subject?.next(data);\n }\n\n private create(url: string): Subject<MessageEvent> {\n const ws = new WebSocket(url);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const observable = new Observable((obs: Observer<MessageEvent>): any => {\n ws.onmessage = obs.next.bind(obs);\n ws.onerror = obs.error.bind(obs);\n ws.onclose = obs.complete.bind(obs);\n return ws.close.bind(ws);\n });\n const observer = {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n next: (data: any): void => {\n if (ws.readyState === WebSocket.OPEN) {\n ws.send(JSON.stringify(data));\n }\n },\n };\n return Subject.create(observer, observable);\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { Observable, Observer } from 'rxjs';\nimport { MOSA_FALLBACK_TRANSLATION, MOSA_MERGED_TRANSLATION } from '../../constants/local-storage.constant';\nimport { IKeyMap } from '../../models/key-map.model';\nimport { isNullOrEmpty, tryJsonParse } from '../../utils/commons.util';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CustomTranslateLoaderService {\n\n public getTranslation(lang: string): Observable<IKeyMap<string> | null> {\n return new Observable<IKeyMap<string> | null>((observer: Observer<IKeyMap<string> | null>) => {\n const item: string | null = localStorage.getItem(MOSA_MERGED_TRANSLATION(lang));\n const responseObj: IKeyMap<string> | null = tryJsonParse(item, () => this.loadFallbackLanguage());\n\n observer.next(responseObj);\n observer.complete();\n });\n }\n\n private loadFallbackLanguage(): IKeyMap<string> {\n const defaultTranslation: string | null = localStorage.getItem(MOSA_FALLBACK_TRANSLATION);\n return isNullOrEmpty(defaultTranslation) ? {} : JSON.parse(defaultTranslation!);\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { CanDeactivate } from '@angular/router';\nimport { Observable } from 'rxjs';\n\nexport interface ICanComponentDeactivate {\n canDeactivate: () => Observable<boolean> | Promise<boolean> | boolean;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CanDeactivateGuard implements CanDeactivate<ICanComponentDeactivate> {\n\n public canDeactivate(component: ICanComponentDeactivate): boolean {\n return component.canDeactivate ? component.canDeactivate() as boolean : true;\n }\n\n}\n","import { BehaviorSubject, Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { IDictionaryItem } from '../models/dictionary-item.model';\nimport { IKeyMap } from '../models/key-map.model';\n\nexport class Dictionary<Key, Value> {\n\n private readonly dictionaryItems$: BehaviorSubject<IDictionaryItem<Key, Value>[]>;\n\n /**\n * Default constructor.\n * @param data Requires an array of IDictionaryItem with a key and a value\n */\n constructor(...data: IDictionaryItem<Key, Value>[]) {\n this.dictionaryItems$ = new BehaviorSubject<IDictionaryItem<Key, Value>[]>(data);\n }\n\n /**\n * Observable to subscribe to dictionary changes\n */\n public valueChanges(): Observable<IDictionaryItem<Key, Value>[]> {\n return this.dictionaryItems$.asObservable();\n }\n\n /**\n * Observable to subscribe to dictionary as object changes\n */\n public objectArray(): Observable<IKeyMap<Value>> {\n return this.dictionaryItems$.asObservable()\n .pipe(\n map((items: IDictionaryItem<Key, Value>[]): IKeyMap<Value> => this.toObject(items)),\n );\n }\n\n /**\n * Gets the items of the dictionary\n * @returns dictionary items\n */\n public get items(): IDictionaryItem<Key, Value>[] {\n return this.dictionaryItems$.value;\n }\n\n /**\n * Gets a dictionary item by key\n * @param key\n * @returns single dictionary item\n */\n public get(key: Key): IDictionaryItem<Key, Value> | undefined {\n return this.dictionaryItems$.value.find((item: IDictionaryItem<Key, Value>): boolean => item.key === key);\n }\n\n /**\n * Checks if dictionary contains item\n * @param key\n */\n public contains(key: Key): boolean {\n return this.get(key) != null;\n }\n\n /**\n * Adds a dictionary item\n * @param key\n * @param value\n */\n public add(key: Key, value: Value): void {\n const dictionaryItems: IDictionaryItem<Key, Value>[] = [ ...this.dictionaryItems$.value ];\n dictionaryItems.push({ key, value });\n this.updateItems(dictionaryItems);\n }\n\n /**\n * Updates a dictionary item\n * @param data\n * @param index\n */\n public update(data: IDictionaryItem<Key, Value>, index?: number): void {\n const dictionaryItems: IDictionaryItem<Key, Value>[] = [ ...this.dictionaryItems$.value ];\n if (!index) {\n index = this.getIndex(data.key);\n }\n\n if (index !== -1) {\n dictionaryItems[ index ] = data;\n } else {\n console.warn('Dictionary: Index not found');\n }\n this.updateItems(dictionaryItems);\n }\n\n /**\n * Gets an index with a specific key\n * @param key\n */\n public getIndex(key: Key): number {\n return this.dictionaryItems$.value.findIndex((val: IDictionaryItem<Key, Value>): boolean => val.key === key);\n }\n\n /**\n * Removes an item from the dictionary\n * @param value\n * @param index\n */\n public remove(value: Key, index?: number): void {\n const dictionaryItems: IDictionaryItem<Key, Value>[] = [ ...this.dictionaryItems$.value ];\n if (!index) {\n index = this.getIndex(value);\n }\n\n if (index !== -1) {\n dictionaryItems.splice(index, 1);\n } else {\n console.warn('Dictionary: Index not found');\n }\n this.updateItems(dictionaryItems);\n }\n\n /**\n * Private function to cast array to an object\n * @param items\n * @private\n */\n private toObject(items: IDictionaryItem<Key, Value>[]): IKeyMap<Value> {\n const obj: IKeyMap<Value> = {};\n for (const item of items) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n obj[ item.key as any ] = item.value;\n }\n return obj;\n }\n\n /**\n * Private function to update dictionary items\n * @param items\n * @private\n */\n private updateItems(items: IDictionaryItem<Key, Value>[]): void {\n this.dictionaryItems$.next(items);\n }\n\n}\n","/**\n * Cast any type\n * @param data to be casted\n * @returns casted data\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any,max-classes-per-file\nexport function cast<T>(data: any): T {\n return data as T;\n}\n\nexport class StringExtensions implements IStringExtensions {\n public getPart(maxChars: number, appendDot?: boolean): string {\n let newStr = cast<string>(this).replace(/\\\\n/g, ' ');\n if (newStr.length > maxChars) {\n newStr = newStr.substring(0, maxChars);\n if (appendDot && newStr.length > maxChars - 3) {\n newStr += '...';\n }\n }\n return newStr;\n }\n\n public fromJSON<T>(): T | null {\n let str: string = cast<string>(this);\n if (typeof this !== 'string') {\n str = JSON.stringify(str);\n }\n\n try {\n str = JSON.parse(str);\n } catch {\n return null;\n }\n\n if (typeof str === 'object') {\n return str as T;\n }\n\n return null;\n }\n\n public toCSSClass(): string {\n return cast<string>(this)?.replace(/([a-z])([A-Z])/, '$1-$2').toLowerCase();\n }\n\n public toUTC(): string {\n return `${cast<string>(this)}Z`;\n }\n}\n\nexport class ArrayExtensions implements IArrayExtensions {\n public hasChanges<T>(data: T[]): boolean {\n return JSON.stringify(this) !== JSON.stringify(data);\n }\n\n public replaceRange<T>(data: T[], start: number, end: number): T[] {\n const array: T[] = cast<T[]>(this);\n let replaceDataIndex: number = 0;\n for (let i: number = start; i < end; i++) {\n if (!array[ i ] && !data[ replaceDataIndex ]) {\n array.splice(i, 1);\n continue;\n }\n\n array[ i ] = data[ replaceDataIndex ];\n replaceDataIndex++;\n }\n return array;\n }\n}\n\nexport class NumberExtensions implements INumberExtensions {\n public between(start: number, end: number): boolean {\n const num: number = cast<number>(this);\n return num >= start && num <= end;\n }\n}\n\n/**\n * @interface StringExtensions\n */\nexport interface IStringExtensions {\n /**\n * Gets a part of a string\n * @param maxChars maximum amount of chars\n * @param appendDot append three dots at the end\n * @returns splitted string\n */\n getPart(maxChars: number, appendDot?: boolean): string;\n\n /**\n * Converts a string from json\n * @returns object of expected type\n */\n fromJSON<T>(): T | null;\n\n /**\n * Converts a string to a css class\n * @returns converted kebab case css class\n */\n toCSSClass(): string;\n\n /**\n * Converts a datetime string to utc format\n */\n toUTC(): string;\n}\n\nexport interface IArrayExtensions {\n /**\n * Checks if array has changes\n * @param data array passed\n * @deprecated learn how to program\n */\n hasChanges: <T>(data: T[]) => boolean;\n /**\n * Replaces a specific element range in an array\n * @param data\n */\n replaceRange: <T>(replaceData: T[], start: number, end: number) => T[];\n}\n\nexport interface INumberExtensions {\n /**\n * checks if a number in a range\n * @param start of range\n * @param end of range\n */\n between(start: number, end: number): boolean;\n}\n\ndeclare global {\n // eslint-disable-next-line @typescript-eslint/naming-convention,id-blacklist,@typescript-eslint/no-empty-object-type\n interface String extends IStringExtensions {\n }\n\n // eslint-disable-next-line @typescript-eslint/naming-convention,@typescript-eslint/no-empty-object-type,@typescript-eslint/no-unused-vars\n interface Array<T> extends IArrayExtensions {\n }\n\n // eslint-disable-next-line @typescript-eslint/naming-convention,id-blacklist,@typescript-eslint/no-empty-object-type\n interface Number extends INumberExtensions {\n }\n}\n\nexport class Prototypes {\n\n /**\n * Initialize prototypes\n */\n public static init(): void {\n const stringExtensions = new StringExtensions();\n const arrayExtensions = new ArrayExtensions();\n const numberExtensions = new NumberExtensions();\n\n String.prototype.getPart = stringExtensions.getPart;\n String.prototype.fromJSON = stringExtensions.fromJSON;\n String.prototype.toCSSClass = stringExtensions.toCSSClass;\n String.prototype.toUTC = stringExtensions.toUTC;\n\n Array.prototype.hasChanges = arrayExtensions.hasChanges;\n Array.prototype.replaceRange = arrayExtensions.replaceRange;\n\n Number.prototype.between = numberExtensions.between;\n }\n}\n","import { ISieveFilter } from '../models/sieve/sieve-filter.model';\nimport { SieveOperator } from '../models/sieve/sieve-operator.model';\nimport { ISieveOptions } from '../models/sieve/sieve-options.model';\nimport { ISieveSort } from '../models/sieve/sieve-sort.model';\n\nexport class Sieve {\n\n private readonly options: ISieveOptions;\n\n constructor(options: ISieveOptions) {\n this.options = options;\n this.options.baseUrl = options.baseUrl || '';\n this.options.filters = options.filters || [];\n this.options.sorts = options.sorts || [];\n }\n\n /**\n * public getter to get page size\n */\n public get pageSize(): number {\n return this.options.pageSize || 10;\n }\n\n /**\n * Setter to set page size\n */\n public set pageSize(pageSize: number) {\n this.options.pageSize = pageSize;\n }\n\n /**\n * public getter to get page\n */\n public get page(): number {\n return this.options.page || 0;\n }\n\n /**\n * Setter to set page\n */\n public set page(page: number) {\n this.options.page = page;\n }\n\n /**\n * public getter to get filters\n */\n public get filters(): ISieveFilter[] | undefined {\n return this.options.filters;\n }\n\n /**\n * Setter to set filters\n */\n public set filters(filters: ISieveFilter[]) {\n this.options.filters = filters;\n }\n\n /**\n * public getter to get sorts\n */\n public get sorts(): ISieveSort[] | undefined {\n return this.options.sorts;\n }\n\n /**\n * Setter to set sorts\n */\n public set sorts(sorts: ISieveSort[]) {\n this.options.sorts = sorts;\n }\n\n /**\n * method to add a sort option\n * @param name of the item to sort\n * @param desc sort descending\n */\n public addSort(name: string, desc?: boolean): void {\n this.options.sorts?.push({\n name,\n desc,\n });\n }\n\n /**\n * method to add a filter option\n * @param key of the item\n * @param operator { SieveOperator }\n * @param value filtered value\n */\n public addFilter(key: string, operator: SieveOperator, value: string): void {\n this.options.filters?.push({\n key,\n operator,\n value,\n });\n }\n\n /**\n * Getter for base url\n */\n public get baseUrl(): string | undefined {\n return this.options.baseUrl;\n }\n\n /**\n * Setter for base url\n * @param url\n */\n public set baseUrl(url: string) {\n this.options.baseUrl = url;\n }\n\n /**\n * Convert to queried string\n */\n public getUrl(): string {\n return `${ this.options.baseUrl }${ this.toQuery() }`;\n }\n\n /**\n * to Query\n * @private converts options to actual query\n */\n private toQuery(): string {\n let query = '?';\n\n if (this.page) {\n query += `page=${ this.page }`;\n }\n\n if (this.pageSize) {\n query += `&pageSize=${ this.pageSize }`;\n }\n\n if (this.filters?.length) {\n let filterQuery: string = '&filters=';\n\n for (const filter of this.filters) {\n if (filter.value) {\n filterQuery += `${ filter.key }${ filter.operator }${ filter.value },`;\n }\n }\n\n if (filterQuery !== '&filters=') {\n filterQuery = filterQuery.slice(0, -1);\n query += filterQuery;\n }\n }\n\n if (this.sorts?.length) {\n let sortQuery: string = '&sorts=';\n\n for (const sort of this.sorts) {\n sortQuery += `${ sort.desc ? '-' : '+' }${ sort.name },`;\n }\n\n sortQuery = sortQuery.slice(0, -1);\n query += sortQuery;\n }\n\n if (query.startsWith('&')) {\n query = query.slice(1);\n }\n\n return query;\n }\n\n}\n","export enum Theme {\n light,\n dark,\n}\n","export enum ContentPosition {\n top = 'top',\n topLeft = 'top-left',\n topRight = 'top-right',\n bottom = 'bottom',\n bottomLeft = 'bottom-left',\n bottomRight = 'bottom-right',\n center = 'center',\n centerLeft = 'center-left',\n centerRight = 'center-right',\n}\n","export enum Browser {\n chrome,\n firefox,\n internetExplorer,\n opera,\n edge,\n safari,\n other,\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { Dictionary } from '../utils/dictionary.util';\n\n@Pipe({ name: 'dictionaryItem' })\nexport class DictionaryItemPipe implements PipeTransform {\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public transform(key: any, dictionary: Dictionary<any, any>): string {\n return dictionary.get(key)?.value;\n }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { some } from '../utils/commons.util';\n\n@Pipe({ name: 'filter' })\nexport class FilterPipe implements PipeTransform {\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public transform<T>(array: T[] | undefined, searchValue: any, searchKey?: keyof T): T[] {\n // Return if array is empty or null\n if (!array?.length) {\n return [];\n }\n\n const foundItems: T[] = array.filter((v: T): boolean => some(v, searchValue, searchKey));\n if (!foundItems.length) {\n return [];\n }\n\n // Return whole item\n return foundItems;\n }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { some } from '../utils/commons.util';\n\n@Pipe({ name: 'find' })\nexport class FindPipe implements PipeTransform {\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public transform<T>(array: T[] | undefined, searchValue: any, searchKey?: keyof T): T | null {\n // Return if array is empty or null\n if (!array?.length) {\n return null;\n }\n\n const foundItem: T | undefined = array.find((v: T): boolean => some(v, searchValue, searchKey));\n if (!foundItem) {\n return null;\n }\n\n // Return whole item\n return foundItem;\n }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ name: 'join' })\nexport class JoinPipe implements PipeTransform {\n\n /**\n * Join array by separator\n * @param array\n * @param returnField\n * @param separator\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public transform(array: any[], returnField: any, separator: string = ', '): string {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return array.map((val: any): string => returnField ? val[ returnField ] : val).join(separator);\n }\n\n}\n","import { DatePipe } from '@angular/common';\nimport { inject, Pipe, PipeTransform } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\n@Pipe({ name: 'mosaDate' })\nexport class MosaDatePipe implements PipeTransform {\n\n private readonly store$: BehaviorSubject<number> = new BehaviorSubject<number>(new Date().getTime());\n\n private templates: Record<string, string> = {};\n\n private readonly myTranslateService: TranslateService = inject(TranslateService);\n private readonly myDatePipe: DatePipe = inject(DatePipe);\n\n constructor() {\n this.updateTemplates();\n setInterval((): void => this.store$.next(new Date().getTime()), 10);\n this.myTranslateService.onLangChange.subscribe((): void => {\n this.updateTemplates();\n this.store$.next(new Date().getTime());\n });\n }\n\n public transform(date: string | Date | undefined, mode: 'full' | 'timeSince' | 'date' = 'timeSince', options?: { withPrefix?: boolean, withSuffix?: boolean }): Observable<string> {\n return this.store$.pipe(map((currentDate: number): string => this.calcDate(currentDate, date, mode, options)));\n }\n\n private calcDate(currentTimestamp: number, date: string | Date | undefined, mode: 'full' | 'timeSince' | 'date', options?: { withPrefix?: boolean, withSuffix?: boolean }): string {\n if (!date) {\n return '';\n }\n\n let parsed: Date;\n if (date instanceof Date) {\n parsed = new Date(date.toString());\n } else {\n parsed = new Date(date);\n }\n\n if (!currentTimestamp) {\n currentTimestamp = new Date().getTime();\n }\n const currentDate = new Date(currentTimestamp);\n const parsedTimestamp: number = parsed.getTime();\n\n const convertedDate: string | null = this.myDatePipe.transform(parsed, 'dd. MMM. yyyy hh:mm aaa');\n if (mode === 'full' || mode === 'timeSince') {\n const seconds: number = Math.abs(((currentTimestamp - parsedTimestamp) * .001) >> 0);\n const minutes: number = seconds / 60;\n const hours: number = minutes / 60;\n const days: number = hours / 24;\n const years: number = days / 365;\n\n const yearDifference = (currentDate.getFullYear() - parsed.getFullYear()) * 12;\n const monthDifference = currentDate.getMonth() - parsed.getMonth();\n\n let timeSince: string = '';\n if (parsedTimestamp > currentTimestamp) {\n timeSince = (options?.withPrefix ? this.templates[ 'prefixFuture' ] : '') + (\n seconds > 0 && seconds < 2 && this.template('second', 1) ||\n seconds < 60 && this.template('seconds', seconds) ||\n seconds < 120 && this.template('minute', 1) ||\n minutes < 60 && this.template('minutes', minutes) ||\n minutes < 120 && this.template('hour', 1) ||\n hours < 24 && this.template('hours', hours) ||\n hours < 42 && this.template('day', 1) ||\n days < 30 && this.template('days', days) ||\n days < 45 && this.template('month', 1) ||\n days < 365 && this.template('months', yearDifference + monthDifference) ||\n years < 1.5 && this.template('year', 1) ||\n this.template('years', years)\n ) + (options?.withSuffix ? this.templates[ 'suffixFuture' ] : '');\n } else {\n timeSince = (options?.withPrefix ? this.templates[ 'prefixPast' ] : '') + (\n seconds > 0 && seconds < 2 && this.template('second', 1) ||\n seconds < 60 && this.template('seconds', seconds) ||\n seconds < 120 && this.template('minute', 1) ||\n minutes < 60 && this.template('minutes', minutes) ||\n minutes < 120 && this.template('hour', 1) ||\n hours < 24 && this.template('hours', hours) ||\n hours < 42 && this.template('day', 1) ||\n days < 30 && this.template('days', days) ||\n days < 45 && this.template('month', 1) ||\n days < 365 && this.template('months', yearDifference + monthDifference) ||\n years < 1.5 && this.template('year', 1) ||\n this.template('years', years)\n ) + (options?.withSuffix ? this.templates[ 'suffixPast' ] : '');\n }\n\n if (mode === 'timeSince') {\n return timeSince;\n }\n\n if (mode === 'full') {\n return `${convertedDate} (${timeSince})`;\n }\n }\n\n return convertedDate || '';\n }\n\n private template(key: string, val: number): string {\n return this.templates[ key ]?.replace(/%d/i, String(Math.abs(Math.round(val))));\n }\n\n private updateTemplates(): void {\n this.templates = {\n prefixPast: this.myTranslateService.instant('mosa.pipes.timeSince.prefix.past'),\n suffixPast: this.myTranslateService.instant('mosa.pipes.timeSince.suffix.past'),\n prefixFuture: this.myTranslateService.instant('mosa.pipes.timeSince.prefix.future'),\n suffixFuture: this.myTranslateService.instant('mosa.pipes.timeSince.suffix.future'),\n second: this.myTranslateService.instant('mosa.pipes.timeSince.second'),\n seconds: this.myTranslateService.instant('mosa.pipes.timeSince.seconds'),\n minute: this.myTranslateService.instant('mosa.pipes.timeSince.minute'),\n minutes: this.myTranslateService.instant('mosa.pipes.timeSince.minutes'),\n hour: this.myTranslateService.instant('mosa.pipes.timeSince.hour'),\n hours: this.myTranslateService.instant('mosa.pipes.timeSince.hours'),\n day: this.myTranslateService.instant('mosa.pipes.timeSince.day'),\n days: this.myTranslateService.instant('mosa.pipes.timeSince.days'),\n month: this.myTranslateService.instant('mosa.pipes.timeSince.month'),\n months: this.myTranslateService.instant('mosa.pipes.timeSince.months'),\n year: this.myTranslateService.instant('mosa.pipes.timeSince.year'),\n years: this.myTranslateService.instant('mosa.pipes.timeSince.years'),\n };\n }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { MosaDurationFormat } from '../models/mosa-duration.model';\n\n@Pipe({ name: 'mosaDuration' })\nexport class MosaDurationPipe implements PipeTransform {\n\n private readonly store$: BehaviorSubject<number> = new BehaviorSubject<number>(new Date().getTime());\n private readonly interval: NodeJS.Timeout;\n\n constructor(\n private readonly myTranslateService: TranslateService,\n ) {\n this.interval = setInterval(() => this.store$.next(new Date().getTime()), 1000);\n this.myTranslateService.onLangChange.subscribe((): void => this.store$.next(new Date().getTime()));\n }\n\n /**\n * Converts a timestamp to a duration in the given format\n * @param millis\n * @param format\n * @returns\n * auto: 15000 -> 15 seconds\n * seconds: 15000 -> 15 seconds\n * minutes: 60000 -> 1 minute\n * hours: 7200000 -> 2 hours\n * days: 172800000 -> 2 days\n */\n public transform(millis: number | undefined, format: MosaDurationFormat = 'auto'): Observable<string> {\n return this.store$.pipe(\n map((currentDate: number): string => {\n if (!millis) {\n clearInterval(this.interval);\n return '';\n }\n\n if (millis - currentDate < 0) {\n clearInterval(this.interval);\n return '';\n }\n\n return this.calcDuration(currentDate, millis, format);\n }),\n );\n }\n\n\n private getTranslation(num: number, format: MosaDurationFormat): string {\n if (num === 1) {\n return `${num.toFixed(0)} ${this.myTranslateService.instant(`mosa.commons.dateTime[${format}].label`)}`;\n }\n return `${num.toFixed(0)} ${this.myTranslateService.instant(`mosa.commons.dateTime[${format}].plural.label`)}`;\n }\n\n\n private calcDuration(currentDate: number, millis: number, format: MosaDurationFormat): string {\n millis = millis - currentDate;\n\n const seconds: number = millis / 1000;\n if (format === 'seconds') {\n return this.getTranslation(seconds, 'seconds');\n }\n\n const minutes: number = seconds / 60;\n if (format === 'minutes') {\n return this.getTranslation(minutes, 'minutes');\n }\n\n const hours: number = minutes / 60;\n if (format === 'hours') {\n return this.getTranslation(hours, 'hours');\n }\n\n const days: number = hours / 24;\n if (format === 'days') {\n return this.getTranslation(days, 'days');\n }\n\n if (format === 'auto') {\n if (seconds < 60) {\n return this.getTranslation(seconds, 'seconds');\n }\n\n if (minutes < 60) {\n return this.getTranslation(minutes, 'minutes');\n }\n\n if (hours < 24) {\n return this.getTranslation(hours, 'hours');\n }\n\n return this.getTranslation(days, 'days');\n }\n\n return '';\n }\n}\n","import { EnvironmentProviders, inject, makeEnvironmentProviders, provideAppInitializer } from '@angular/core';\nimport { AssetsI18nLoaderService } from './services/translation/assets-i18n-loader.service';\n\n/*\n * Public API Surface of core\n */\n\n/**\n * Services\n */\nexport * from './services/api.service';\nexport * from './services/mosa-socket.service';\nexport * from './services/core-logger.service';\n\nexport * from './services/translation/translate-collector.service';\nexport * from './services/translation/custom-translate-loader.service';\nexport * from './services/translation/assets-i18n-loader.service';\n\n/**\n * Guards\n */\nexport * from './services/guards/can-deactivate.guard';\n\n/**\n * Models\n */\nexport * from './models/dictionary-item.model';\nexport * from './models/api-options.model';\nexport * from './models/mosa-duration.model';\nexport * from './models/token-settings.model';\nexport * from './models/transform-matrix.model';\nexport * from './models/key-map.model';\nexport * from './models/item.model';\nexport * from './models/size.model';\n\nexport * from './models/sieve/sieve-response.model';\nexport * from './models/sieve/sieve-sort.model';\nexport * from './models/sieve/sieve-filter.model';\nexport * from './models/sieve/sieve-operator.model';\nexport * from './models/sieve/sieve-options.model';\n\nexport * from './models/logger/logger-config.model';\nexport * from './models/logger/log.model';\nexport * from './models/logger/log-event.model';\nexport * from './models/logger/log-message-data.model';\nexport * from './models/logger/logger-base-config.model';\nexport * from './models/logger/logger-default-config.model';\nexport * from './models/logger/log-type.model';\n\nexport * from './models/types/form.type';\n\n/**\n * Utils\n */\nexport * from './utils/commons.util';\nexport * from './utils/dictionary.util';\nexport * from './utils/promise.util';\nexport * from './utils/prototypes.util';\nexport * from './utils/sieve.util';\n\n/**\n * Enums\n */\nexport * from './enums/theme.enum';\nexport * from './enums/content-position.enum';\nexport * from './enums/browser.enum';\nexport * from './enums/i18n-supported.enum';\n\n/**\n * Constants\n */\nexport * from './constants/local-storage.constant';\n\n/**\n * Pipes\n */\nexport * from './pipes/dictionary-item.pipe';\nexport * from './pipes/filter.pipe';\nexport * from './pipes/find.pipe';\nexport * from './pipes/join.pipe';\nexport * from './pipes/mosa-date.pipe';\nexport * from './pipes/mosa-duration.pipe';\n\nfunction initI18n(i18n: AssetsI18nLoaderService): Promise<void> {\n return i18n.init(undefined, undefined, 1);\n}\n\nfunction initI18nCore(i18n: AssetsI18nLoaderService): Promise<void> {\n return i18n.init(undefined, 'mosa');\n}\n\nexport const provideMosaCore: () => EnvironmentProviders = () => makeEnvironmentProviders([\n provideAppInitializer(() => initI18n(inject(AssetsI18nLoaderService))),\n provideAppInitializer(() => initI18nCore(inject(AssetsI18nLoaderService))),\n]);\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2.TranslateCollectorService","i1.CoreLoggerService","i2"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mosa-ng/core",
3
- "version": "20.1.2",
3
+ "version": "21.0.0",
4
4
  "peerDependencies": {
5
5
  "@angular/common": ">=20.0.0 < 21.0.0",
6
6
  "@angular/core": ">=20.0.0 < 21.0.0"
@@ -10,13 +10,13 @@
10
10
  },
11
11
  "sideEffects": false,
12
12
  "module": "fesm2022/mosa-ng-core.mjs",
13
- "typings": "index.d.ts",
13
+ "typings": "types/mosa-ng-core.d.ts",
14
14
  "exports": {
15
15
  "./package.json": {
16
16
  "default": "./package.json"
17
17
  },
18
18
  ".": {
19
- "types": "./index.d.ts",
19
+ "types": "./types/mosa-ng-core.d.ts",
20
20
  "default": "./fesm2022/mosa-ng-core.mjs"
21
21
  }
22
22
  }
File without changes