@igo2/core 1.13.0 → 1.13.2

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.
Files changed (107) hide show
  1. package/__ivy_ngcc__/locale/en.auth.json +29 -29
  2. package/__ivy_ngcc__/locale/en.common.json +43 -43
  3. package/__ivy_ngcc__/locale/en.context.json +199 -198
  4. package/__ivy_ngcc__/locale/en.core.json +29 -29
  5. package/__ivy_ngcc__/locale/en.geo.json +756 -737
  6. package/__ivy_ngcc__/locale/en.integration.json +123 -123
  7. package/__ivy_ngcc__/locale/en.json +25 -5
  8. package/__ivy_ngcc__/locale/fr.auth.json +32 -32
  9. package/__ivy_ngcc__/locale/fr.common.json +43 -43
  10. package/__ivy_ngcc__/locale/fr.context.json +199 -198
  11. package/__ivy_ngcc__/locale/fr.core.json +29 -29
  12. package/__ivy_ngcc__/locale/fr.geo.json +756 -737
  13. package/__ivy_ngcc__/locale/fr.integration.json +125 -125
  14. package/__ivy_ngcc__/locale/fr.json +24 -4
  15. package/esm2020/lib/activity/activity.interceptor.mjs +1 -1
  16. package/esm2020/lib/activity/activity.module.mjs +1 -1
  17. package/esm2020/lib/activity/activity.service.mjs +1 -1
  18. package/esm2020/lib/activity/index.mjs +1 -1
  19. package/esm2020/lib/analytics/index.mjs +1 -1
  20. package/esm2020/lib/analytics/shared/analytics.interface.mjs +1 -1
  21. package/esm2020/lib/analytics/shared/analytics.service.mjs +1 -1
  22. package/esm2020/lib/analytics/shared/index.mjs +1 -1
  23. package/esm2020/lib/compression/compressedData.interface.mjs +1 -1
  24. package/esm2020/lib/compression/compression.service.mjs +1 -1
  25. package/esm2020/lib/compression/index.mjs +1 -1
  26. package/esm2020/lib/config/config.interface.mjs +1 -1
  27. package/esm2020/lib/config/config.module.mjs +1 -1
  28. package/esm2020/lib/config/config.provider.mjs +1 -1
  29. package/esm2020/lib/config/config.service.mjs +1 -1
  30. package/esm2020/lib/config/index.mjs +1 -1
  31. package/esm2020/lib/config/version.mjs +3 -3
  32. package/esm2020/lib/core.module.mjs +1 -1
  33. package/esm2020/lib/gesture/gesture.module.mjs +1 -1
  34. package/esm2020/lib/gesture/gesture.provider.mjs +1 -1
  35. package/esm2020/lib/language/index.mjs +1 -1
  36. package/esm2020/lib/language/language.module.mjs +1 -1
  37. package/esm2020/lib/language/shared/index.mjs +1 -1
  38. package/esm2020/lib/language/shared/language.interface.mjs +1 -1
  39. package/esm2020/lib/language/shared/language.loader.mjs +1 -1
  40. package/esm2020/lib/language/shared/language.provider.mjs +1 -1
  41. package/esm2020/lib/language/shared/language.service.mjs +5 -1
  42. package/esm2020/lib/language/shared/missing-translation.guard.mjs +2 -2
  43. package/esm2020/lib/media/index.mjs +1 -1
  44. package/esm2020/lib/media/media.enum.mjs +1 -1
  45. package/esm2020/lib/media/media.service.mjs +1 -1
  46. package/esm2020/lib/message/index.mjs +1 -1
  47. package/esm2020/lib/message/message.module.mjs +1 -1
  48. package/esm2020/lib/message/shared/index.mjs +1 -1
  49. package/esm2020/lib/message/shared/message.enum.mjs +2 -1
  50. package/esm2020/lib/message/shared/message.interface.mjs +1 -1
  51. package/esm2020/lib/message/shared/message.service.mjs +101 -23
  52. package/esm2020/lib/network/index.mjs +1 -1
  53. package/esm2020/lib/network/network.interfaces.mjs +1 -1
  54. package/esm2020/lib/network/network.service.mjs +1 -1
  55. package/esm2020/lib/request/error.interceptor.mjs +9 -2
  56. package/esm2020/lib/request/error.module.mjs +1 -1
  57. package/esm2020/lib/request/index.mjs +1 -1
  58. package/esm2020/lib/request/logging.interceptor.mjs +2 -2
  59. package/esm2020/lib/request/logging.module.mjs +1 -1
  60. package/esm2020/lib/route/route.interface.mjs +1 -1
  61. package/esm2020/lib/route/route.service.mjs +1 -1
  62. package/esm2020/lib/storage/index.mjs +1 -1
  63. package/esm2020/lib/storage/storage.interface.mjs +1 -1
  64. package/esm2020/lib/storage/storage.service.mjs +1 -1
  65. package/esm2020/public_api.mjs +1 -1
  66. package/fesm2015/igo2-core.mjs +116 -28
  67. package/fesm2015/igo2-core.mjs.map +1 -1
  68. package/fesm2020/igo2-core.mjs +116 -28
  69. package/fesm2020/igo2-core.mjs.map +1 -1
  70. package/lib/language/shared/language.service.d.ts +2 -0
  71. package/lib/message/shared/message.enum.d.ts +2 -1
  72. package/lib/message/shared/message.interface.d.ts +3 -0
  73. package/lib/message/shared/message.service.d.ts +7 -4
  74. package/lib/request/error.interceptor.d.ts +1 -1
  75. package/locale/en.auth.json +29 -29
  76. package/locale/en.common.json +43 -43
  77. package/locale/en.context.json +199 -198
  78. package/locale/en.core.json +29 -29
  79. package/locale/en.geo.json +756 -737
  80. package/locale/en.integration.json +123 -123
  81. package/locale/en.json +25 -5
  82. package/locale/fr.auth.json +32 -32
  83. package/locale/fr.common.json +43 -43
  84. package/locale/fr.context.json +199 -198
  85. package/locale/fr.core.json +29 -29
  86. package/locale/fr.geo.json +756 -737
  87. package/locale/fr.integration.json +125 -125
  88. package/locale/fr.json +24 -4
  89. package/package.json +3 -3
  90. package/style/all.theming.scss +5 -5
  91. package/style/core.theming.scss +9 -9
  92. package/style/foreground.scss +20 -20
  93. package/style/index.theming.scss +825 -763
  94. package/style/material.font.scss +9 -9
  95. package/style/partial/core.variables.scss +4 -4
  96. package/style/partial/media.scss +80 -80
  97. package/style/setup.scss +2 -2
  98. package/style/themes/blue.theme.scss +19 -19
  99. package/style/themes/bluedq.theme.scss +52 -52
  100. package/style/themes/bluegrey.theme.scss +16 -16
  101. package/style/themes/dark.theme.scss +16 -16
  102. package/style/themes/deeppurple.theme.scss +16 -16
  103. package/style/themes/indigo.theme.scss +16 -16
  104. package/style/themes/orange.theme.scss +16 -16
  105. package/style/themes/teal.theme.scss +16 -16
  106. package/style/theming.scss +5 -5
  107. package/style/typography.scss +17 -17
@@ -2,8 +2,8 @@ import * as i0 from '@angular/core';
2
2
  import { Injectable, NgModule, InjectionToken, APP_INITIALIZER, Injector, Inject, Optional, SkipSelf, EventEmitter } from '@angular/core';
3
3
  import { CommonModule } from '@angular/common';
4
4
  import { HTTP_INTERCEPTORS, HttpClient, HttpErrorResponse, HttpClientModule, HttpResponse } from '@angular/common/http';
5
- import { finalize, catchError, map, tap, debounceTime, startWith } from 'rxjs/operators';
6
- import { BehaviorSubject, throwError, combineLatest, Observable, fromEvent } from 'rxjs';
5
+ import { finalize, catchError, map, debounceTime, first, tap, startWith } from 'rxjs/operators';
6
+ import { BehaviorSubject, throwError, combineLatest, forkJoin, Observable, fromEvent } from 'rxjs';
7
7
  import { uuid, ObjectUtils } from '@igo2/utils';
8
8
  import * as i1 from '@ngx-translate/core';
9
9
  import { TranslateLoader, TranslateModule, MissingTranslationHandler } from '@ngx-translate/core';
@@ -106,8 +106,8 @@ IgoActivityModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({});
106
106
  })();
107
107
 
108
108
  const version = {
109
- lib: '1.13.0',
110
- releaseDate: 1665780785791
109
+ lib: '1.13.2',
110
+ releaseDate: 1668455692587
111
111
  };
112
112
 
113
113
  class ConfigService {
@@ -243,7 +243,7 @@ function provideDefaultLanguageLoader(loader) {
243
243
  class IgoMissingTranslationHandler {
244
244
  handle(params) {
245
245
  if (!params.translateService.langs.length) {
246
- const error = 'Translations are not yet loaded. \
246
+ const error = 'Translations are not yet loaded. \
247
247
  Check that the LanguageService is injected.';
248
248
  throw new Error(error);
249
249
  }
@@ -351,20 +351,24 @@ var MessageType;
351
351
  MessageType["WARNING"] = "warning";
352
352
  MessageType["INFO"] = "info";
353
353
  MessageType["SUCCESS"] = "success";
354
+ MessageType["SHOW"] = "show";
354
355
  })(MessageType || (MessageType = {}));
355
356
 
356
357
  class LanguageService {
357
358
  constructor(translate) {
358
359
  this.translate = translate;
359
360
  this.language = this.translate.getBrowserLang();
361
+ this.language$ = new BehaviorSubject(undefined);
360
362
  const lang = this.getLanguage();
361
363
  this.translate.setDefaultLang(lang);
364
+ this.language$.next(lang);
362
365
  }
363
366
  getLanguage() {
364
367
  return this.language.match(/en|fr/) ? this.language : 'en';
365
368
  }
366
369
  setLanguage(language) {
367
370
  this.language = language.match(/en|fr/) ? language : 'en';
371
+ this.language$.next(this.language);
368
372
  this.translate.use(this.language);
369
373
  this.translate.reloadLang(this.language);
370
374
  }
@@ -386,7 +390,39 @@ class MessageService {
386
390
  this.configService = configService;
387
391
  this.languageService = languageService;
388
392
  this.messages$ = new BehaviorSubject([]);
393
+ this.activeMessageTranslations = [];
389
394
  this.options = this.configService.getConfig('message') || {};
395
+ this.languageService.language$.pipe(debounceTime(500)).subscribe(r => {
396
+ if (this.toastr.toasts.length === 0) {
397
+ this.activeMessageTranslations = [];
398
+ }
399
+ this.toastr.toasts.map(toast => {
400
+ const activeMessageTranslation = this.activeMessageTranslations.find(amt => amt.id === toast.toastId);
401
+ if (activeMessageTranslation) {
402
+ const translatedTextInterpolateParams = Object.assign({}, activeMessageTranslation.textInterpolateParams);
403
+ const translatedTitleInterpolateParams = Object.assign({}, activeMessageTranslation.titleInterpolateParams);
404
+ if (activeMessageTranslation.textInterpolateParams) {
405
+ Object.keys(activeMessageTranslation.textInterpolateParams).map(k => {
406
+ translatedTextInterpolateParams[k] =
407
+ this.languageService.translate.instant(activeMessageTranslation.textInterpolateParams[k]);
408
+ });
409
+ }
410
+ if (activeMessageTranslation.titleInterpolateParams) {
411
+ Object.keys(activeMessageTranslation.titleInterpolateParams).map(k => {
412
+ translatedTitleInterpolateParams[k] =
413
+ this.languageService.translate.instant(activeMessageTranslation.titleInterpolateParams[k]);
414
+ });
415
+ }
416
+ forkJoin([
417
+ this.languageService.translate.get(activeMessageTranslation.textKey, translatedTextInterpolateParams),
418
+ this.languageService.translate.get(activeMessageTranslation.titleKey, translatedTitleInterpolateParams)
419
+ ]).pipe(first()).subscribe((res) => {
420
+ toast.toastRef.componentInstance.message = res[0];
421
+ toast.toastRef.componentInstance.title = res[1];
422
+ });
423
+ }
424
+ });
425
+ });
390
426
  }
391
427
  get toastr() {
392
428
  return this.injector.get(ToastrService);
@@ -396,6 +432,8 @@ class MessageService {
396
432
  return this.error(httpError.error.message, httpError.error.title);
397
433
  }
398
434
  message(message) {
435
+ const messageType = message.type;
436
+ this.toastr.toastrConfig.iconClasses[messageType] = `toast-${messageType}`;
399
437
  this.messages$.next(this.messages$.value.concat([message]));
400
438
  message.options = message.options || {};
401
439
  const currentDate = new Date();
@@ -408,50 +446,93 @@ class MessageService {
408
446
  message.options.to = new Date(Date.parse(message.options.to.replace(/-/g, ' ')));
409
447
  }
410
448
  if (currentDate > message.options.from && currentDate < message.options.to) {
449
+ if (message.showIcon === false) {
450
+ this.toastr.toastrConfig.iconClasses[messageType] = `toast-${messageType} toast-no-icon`;
451
+ }
411
452
  message = this.handleTemplate(message);
412
453
  if (message.text) {
413
454
  let messageShown;
414
455
  switch (message.type) {
415
456
  case MessageType.SUCCESS:
416
- messageShown = this.success(message.text, message.title, message.options);
457
+ messageShown = this.success(message.text, message.title, message.options, message.textInterpolateParams, message.titleInterpolateParams);
417
458
  break;
418
459
  case MessageType.ERROR:
419
- messageShown = this.error(message.text, message.title, message.options);
460
+ messageShown = this.error(message.text, message.title, message.options, message.textInterpolateParams, message.titleInterpolateParams);
420
461
  break;
421
462
  case MessageType.INFO:
422
- messageShown = this.info(message.text, message.title, message.options);
463
+ messageShown = this.info(message.text, message.title, message.options, message.textInterpolateParams, message.titleInterpolateParams);
464
+ break;
465
+ case MessageType.SHOW:
466
+ messageShown = this.show(message.text, message.title, message.options, message.textInterpolateParams, message.titleInterpolateParams);
423
467
  break;
424
468
  case MessageType.ALERT:
425
469
  case MessageType.WARNING:
426
- messageShown = this.alert(message.text, message.title, message.options);
470
+ messageShown = this.alert(message.text, message.title, message.options, message.textInterpolateParams, message.titleInterpolateParams);
427
471
  break;
428
472
  default:
429
- messageShown = this.info(message.text, message.title, message.options);
473
+ messageShown = this.info(message.text, message.title, message.options, message.textInterpolateParams, message.titleInterpolateParams);
430
474
  break;
431
475
  }
432
476
  message.options.id = messageShown.toastId;
433
477
  }
434
478
  }
435
479
  }
436
- success(text, title = 'igo.core.message.success', options = {}) {
437
- const message = this.languageService.translate.instant(text);
438
- const translatedTitle = this.languageService.translate.instant(title);
439
- return this.toastr.success(message, translatedTitle, options);
480
+ success(text, title = 'igo.core.message.success', options = {}, textInterpolateParams, titleInterpolateParams) {
481
+ return this.handleNgxToastr('success', text, title, options, textInterpolateParams, titleInterpolateParams);
482
+ }
483
+ error(text, title = 'igo.core.message.error', options = {}, textInterpolateParams, titleInterpolateParams) {
484
+ return this.handleNgxToastr('error', text, title, options, textInterpolateParams, titleInterpolateParams);
440
485
  }
441
- error(text, title = 'igo.core.message.error', options = {}) {
442
- const message = this.languageService.translate.instant(text);
443
- const translatedTitle = this.languageService.translate.instant(title);
444
- return this.toastr.error(message, translatedTitle, options);
486
+ info(text, title = 'igo.core.message.info', options = {}, textInterpolateParams, titleInterpolateParams) {
487
+ return this.handleNgxToastr('info', text, title, options, textInterpolateParams, titleInterpolateParams);
445
488
  }
446
- info(text, title = 'igo.core.message.info', options = {}) {
447
- const message = this.languageService.translate.instant(text);
448
- const translatedTitle = this.languageService.translate.instant(title);
449
- return this.toastr.info(message, translatedTitle, options);
489
+ alert(text, title = 'igo.core.message.alert', options = {}, textInterpolateParams, titleInterpolateParams) {
490
+ return this.handleNgxToastr('alert', text, title, options, textInterpolateParams, titleInterpolateParams);
450
491
  }
451
- alert(text, title = 'igo.core.message.alert', options = {}) {
452
- const message = this.languageService.translate.instant(text);
453
- const translatedTitle = this.languageService.translate.instant(title);
454
- return this.toastr.warning(message, translatedTitle, options);
492
+ show(text, title = 'igo.core.message.info', options = {}, textInterpolateParams, titleInterpolateParams) {
493
+ return this.handleNgxToastr('show', text, title, options, textInterpolateParams, titleInterpolateParams);
494
+ }
495
+ handleNgxToastr(type, text, title, options = {}, textInterpolateParams, titleInterpolateParams) {
496
+ const translatedTextInterpolateParams = Object.assign({}, textInterpolateParams);
497
+ const translatedTitlenterpolateParams = Object.assign({}, titleInterpolateParams);
498
+ if (textInterpolateParams) {
499
+ Object.keys(textInterpolateParams).map(k => {
500
+ translatedTextInterpolateParams[k] =
501
+ this.languageService.translate.instant(textInterpolateParams[k]);
502
+ });
503
+ }
504
+ if (titleInterpolateParams) {
505
+ Object.keys(titleInterpolateParams).map(k => {
506
+ translatedTitlenterpolateParams[k] =
507
+ this.languageService.translate.instant(titleInterpolateParams[k]);
508
+ });
509
+ }
510
+ const message = this.languageService.translate.instant(text, translatedTextInterpolateParams);
511
+ const translatedTitle = this.languageService.translate.instant(title, translatedTitlenterpolateParams);
512
+ let activeToast;
513
+ switch (type) {
514
+ case 'success':
515
+ activeToast = this.toastr.success(message, translatedTitle, options);
516
+ break;
517
+ case 'error':
518
+ activeToast = this.toastr.error(message, translatedTitle, options);
519
+ break;
520
+ case 'show':
521
+ case 'info':
522
+ activeToast = this.toastr.info(message, translatedTitle, options);
523
+ break;
524
+ case 'alert':
525
+ activeToast = this.toastr.warning(message, translatedTitle, options);
526
+ break;
527
+ }
528
+ this.activeMessageTranslations.push({
529
+ id: activeToast.toastId,
530
+ titleKey: title,
531
+ textKey: text,
532
+ textInterpolateParams,
533
+ titleInterpolateParams
534
+ });
535
+ return activeToast;
455
536
  }
456
537
  remove(id) {
457
538
  this.toastr.remove(id);
@@ -496,7 +577,14 @@ class ErrorInterceptor {
496
577
  constructor(injector) {
497
578
  this.injector = injector;
498
579
  }
499
- intercept(req, next) {
580
+ intercept(originalReq, next) {
581
+ const interceptError = originalReq.headers.get('interceptError');
582
+ const req = originalReq.clone({
583
+ headers: originalReq.headers.delete('interceptError')
584
+ });
585
+ if (interceptError === 'false') {
586
+ return next.handle(req);
587
+ }
500
588
  const errorContainer = { httpError: undefined };
501
589
  return next.handle(req).pipe(catchError(error => this.handleError(error, errorContainer)), finalize(() => {
502
590
  this.handleCaughtError(errorContainer);
@@ -712,7 +800,7 @@ class LoggingInterceptor {
712
800
  // Log when response observable either completes or errors
713
801
  finalize(() => {
714
802
  const elapsed = Date.now() - started;
715
- const msg = `${req.method} "${req.urlWithParams}"
803
+ const msg = `${req.method} "${req.urlWithParams}"
716
804
  ${ok} in ${elapsed} ms.`;
717
805
  console.log(msg);
718
806
  }));