@odx/angular 4.0.2 → 5.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.
Files changed (126) hide show
  1. package/CHANGELOG.md +21 -1
  2. package/breakpoints/lib/breakpoints.config.d.ts +1 -1
  3. package/components/calendar/lib/calendar.config.d.ts +2 -2
  4. package/components/datepicker/lib/datepicker.config.d.ts +2 -2
  5. package/components/error-page/README.md +3 -0
  6. package/components/error-page/index.d.ts +2 -0
  7. package/components/error-page/lib/error-page.component.d.ts +7 -0
  8. package/components/error-page/lib/error-page.config.d.ts +16 -0
  9. package/components/form-field/lib/form-field.config.d.ts +1 -1
  10. package/components/icon/lib/icon.config.d.ts +1 -1
  11. package/components/main-menu/lib/main-menu.config.d.ts +1 -1
  12. package/components/main-menu/lib/main-menu.i18n.d.ts +2 -2
  13. package/components/modal/lib/modal.config.d.ts +1 -1
  14. package/components/paginator/lib/paginator.config.d.ts +2 -2
  15. package/components/toast/lib/toast.config.d.ts +1 -1
  16. package/esm2022/components/error-page/index.mjs +3 -0
  17. package/esm2022/components/error-page/lib/error-page.component.mjs +28 -0
  18. package/esm2022/components/error-page/lib/error-page.config.mjs +10 -0
  19. package/esm2022/components/error-page/odx-angular-components-error-page.mjs +5 -0
  20. package/esm2022/components/main-menu/lib/main-menu.i18n.mjs +1 -1
  21. package/esm2022/index.mjs +1 -2
  22. package/esm2022/internal/index.mjs +4 -3
  23. package/esm2022/internal/lib/decorators/css-component.mjs +19 -0
  24. package/esm2022/internal/lib/decorators/css-modifier.mjs +49 -0
  25. package/esm2022/internal/lib/decorators/index.mjs +3 -0
  26. package/esm2022/internal/lib/helpers/camel-to-kebab-case.mjs +12 -0
  27. package/esm2022/internal/lib/helpers/decorator-property-name.mjs +4 -0
  28. package/esm2022/internal/lib/helpers/deepmerge.mjs +6 -0
  29. package/esm2022/internal/lib/helpers/get-css-variables.mjs +22 -0
  30. package/esm2022/internal/lib/helpers/get-enum-values.mjs +6 -0
  31. package/esm2022/internal/lib/helpers/index.mjs +6 -0
  32. package/esm2022/internal/lib/logger.mjs +42 -0
  33. package/esm2022/internal/translate/index.mjs +1 -3
  34. package/esm2022/internal/translate/lib/models/index.mjs +2 -2
  35. package/esm2022/internal/translate/lib/models/translation-object.mjs +2 -0
  36. package/esm2022/internal/translate/lib/translate.config.mjs +1 -8
  37. package/esm2022/internal/translate/lib/translate.service.mjs +19 -12
  38. package/esm2022/lib/services/window-ref.mjs +4 -3
  39. package/esm2022/localization/index.mjs +6 -0
  40. package/esm2022/localization/lib/features/index.mjs +3 -0
  41. package/esm2022/localization/lib/features/with-http-language-header.mjs +23 -0
  42. package/esm2022/localization/lib/features/with-http-language-query-param.mjs +23 -0
  43. package/esm2022/localization/lib/loaders/browser-language-loader.mjs +6 -0
  44. package/esm2022/localization/lib/loaders/index.mjs +2 -0
  45. package/esm2022/localization/lib/localization.config.mjs +21 -0
  46. package/esm2022/localization/lib/localization.service.mjs +45 -0
  47. package/esm2022/localization/lib/models/index.mjs +3 -0
  48. package/esm2022/localization/lib/models/language-loader-fn.mjs +2 -0
  49. package/esm2022/localization/lib/models/localization-feature.mjs +4 -0
  50. package/esm2022/localization/odx-angular-localization.mjs +5 -0
  51. package/esm2022/sdk/lib/application-environment.mjs +4 -2
  52. package/esm2022/utils/lib/helpers/cache-storage-client.mjs +53 -0
  53. package/esm2022/utils/lib/helpers/get-language-code.mjs +5 -0
  54. package/esm2022/utils/lib/helpers/index.mjs +4 -1
  55. package/esm2022/utils/lib/helpers/match-url.mjs +8 -0
  56. package/esm2022/utils/lib/helpers/provide-config.mjs +21 -9
  57. package/fesm2022/odx-angular-components-error-page.mjs +42 -0
  58. package/fesm2022/odx-angular-components-error-page.mjs.map +1 -0
  59. package/fesm2022/odx-angular-components-main-menu.mjs.map +1 -1
  60. package/fesm2022/odx-angular-internal-translate.mjs +27 -44
  61. package/fesm2022/odx-angular-internal-translate.mjs.map +1 -1
  62. package/fesm2022/odx-angular-internal.mjs +43 -1
  63. package/fesm2022/odx-angular-internal.mjs.map +1 -1
  64. package/fesm2022/odx-angular-localization.mjs +113 -0
  65. package/fesm2022/odx-angular-localization.mjs.map +1 -0
  66. package/fesm2022/odx-angular-sdk.mjs +3 -1
  67. package/fesm2022/odx-angular-sdk.mjs.map +1 -1
  68. package/fesm2022/odx-angular-utils.mjs +86 -9
  69. package/fesm2022/odx-angular-utils.mjs.map +1 -1
  70. package/fesm2022/odx-angular.mjs +3 -4
  71. package/fesm2022/odx-angular.mjs.map +1 -1
  72. package/index.d.ts +0 -1
  73. package/internal/index.d.ts +3 -2
  74. package/internal/lib/logger.d.ts +15 -0
  75. package/internal/translate/index.d.ts +0 -2
  76. package/internal/translate/lib/models/index.d.ts +1 -1
  77. package/internal/translate/lib/models/translation-object.d.ts +1 -0
  78. package/internal/translate/lib/translate.config.d.ts +2 -5
  79. package/internal/translate/lib/translate.service.d.ts +5 -6
  80. package/localization/README.md +3 -0
  81. package/localization/index.d.ts +5 -0
  82. package/localization/lib/features/index.d.ts +2 -0
  83. package/localization/lib/features/with-http-language-header.d.ts +9 -0
  84. package/localization/lib/features/with-http-language-query-param.d.ts +9 -0
  85. package/localization/lib/loaders/browser-language-loader.d.ts +2 -0
  86. package/localization/lib/loaders/index.d.ts +1 -0
  87. package/localization/lib/localization.config.d.ts +9 -0
  88. package/localization/lib/localization.service.d.ts +15 -0
  89. package/localization/lib/models/index.d.ts +2 -0
  90. package/localization/lib/models/language-loader-fn.d.ts +2 -0
  91. package/localization/lib/models/localization-feature.d.ts +5 -0
  92. package/package.json +13 -1
  93. package/sdk/lib/application-environment.d.ts +2 -1
  94. package/theming/lib/theming.config.d.ts +1 -1
  95. package/utils/lib/helpers/cache-storage-client.d.ts +14 -0
  96. package/utils/lib/helpers/index.d.ts +3 -0
  97. package/utils/lib/helpers/match-url.d.ts +2 -0
  98. package/utils/lib/helpers/provide-config.d.ts +3 -2
  99. package/esm2022/internal/decorators/css-component.mjs +0 -19
  100. package/esm2022/internal/decorators/css-modifier.mjs +0 -49
  101. package/esm2022/internal/decorators/index.mjs +0 -3
  102. package/esm2022/internal/helpers/camel-to-kebab-case.mjs +0 -12
  103. package/esm2022/internal/helpers/decorator-property-name.mjs +0 -4
  104. package/esm2022/internal/helpers/deepmerge.mjs +0 -6
  105. package/esm2022/internal/helpers/get-css-variables.mjs +0 -22
  106. package/esm2022/internal/helpers/get-enum-values.mjs +0 -6
  107. package/esm2022/internal/helpers/index.mjs +0 -6
  108. package/esm2022/internal/translate/lib/helpers/get-language-code.mjs +0 -6
  109. package/esm2022/internal/translate/lib/helpers/index.mjs +0 -2
  110. package/esm2022/internal/translate/lib/models/translation.mjs +0 -2
  111. package/esm2022/internal/translate/lib/services/index.mjs +0 -2
  112. package/esm2022/internal/translate/lib/services/language.service.mjs +0 -21
  113. package/internal/translate/lib/helpers/index.d.ts +0 -1
  114. package/internal/translate/lib/models/translation.d.ts +0 -2
  115. package/internal/translate/lib/services/index.d.ts +0 -1
  116. package/internal/translate/lib/services/language.service.d.ts +0 -8
  117. /package/internal/{decorators → lib/decorators}/css-component.d.ts +0 -0
  118. /package/internal/{decorators → lib/decorators}/css-modifier.d.ts +0 -0
  119. /package/internal/{decorators → lib/decorators}/index.d.ts +0 -0
  120. /package/internal/{helpers → lib/helpers}/camel-to-kebab-case.d.ts +0 -0
  121. /package/internal/{helpers → lib/helpers}/decorator-property-name.d.ts +0 -0
  122. /package/internal/{helpers → lib/helpers}/deepmerge.d.ts +0 -0
  123. /package/internal/{helpers → lib/helpers}/get-css-variables.d.ts +0 -0
  124. /package/internal/{helpers → lib/helpers}/get-enum-values.d.ts +0 -0
  125. /package/internal/{helpers → lib/helpers}/index.d.ts +0 -0
  126. /package/{internal/translate → utils}/lib/helpers/get-language-code.d.ts +0 -0
@@ -1,20 +1,27 @@
1
1
  import { inject } from '@angular/core';
2
- import { filter, map, shareReplay } from 'rxjs';
3
- import { LanguageService } from './services';
4
- import { ODX_TRANSLATE_DEFAULT_LANGUAGE_CODE } from './translate.config';
2
+ import { LocalizationService } from '@odx/angular/localization';
3
+ import { getLanguageCode } from '@odx/angular/utils';
4
+ import { distinctUntilChanged, map, shareReplay, startWith } from 'rxjs';
5
5
  export class TranslateService {
6
6
  constructor(translations) {
7
7
  this.translations = translations;
8
- this.defaultLanguageCode = inject(ODX_TRANSLATE_DEFAULT_LANGUAGE_CODE);
9
- this.languageService = inject(LanguageService);
10
- this.currentTranslation$ = this.languageService.currentLanguageCode$.pipe(map((languageCode) => this.translations[languageCode] ?? this.translations[this.defaultLanguageCode]), filter(Boolean), shareReplay({ refCount: true }));
8
+ this.localizationService = inject(LocalizationService);
9
+ this.activeTranslation$ = this.localizationService.activeLanguage$.pipe(startWith(this.localizationService.defaultLanguage), distinctUntilChanged(), map((language) => {
10
+ const languageCode = getLanguageCode(language);
11
+ if (this.translations[language]) {
12
+ return this.translations[language];
13
+ }
14
+ if (this.translations[languageCode]) {
15
+ return this.translations[languageCode];
16
+ }
17
+ return this.translations[this.localizationService.defaultLanguage];
18
+ }), shareReplay({ refCount: true }));
11
19
  }
12
- translate(key, placeholder = {}) {
13
- return this.currentTranslation$.pipe(map((translation) => Object.keys(placeholder)
14
- .reduce((acc, cur) => {
15
- const re = RegExp(`{{\\s*${cur}\\s*}}`, 'g');
16
- return acc.replace(re, placeholder[cur]);
20
+ translate(key, data = {}) {
21
+ return this.activeTranslation$.pipe(map((translation) => Object.entries(data).reduce((acc, [variableName, variable]) => {
22
+ const variableRegex = RegExp(`{{\\s*${variableName}\\s*}}`, 'g');
23
+ return acc.replace(variableRegex, variable);
17
24
  }, translation[key] ?? '')));
18
25
  }
19
26
  }
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvaW50ZXJuYWwvdHJhbnNsYXRlL3NyYy9saWIvdHJhbnNsYXRlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBYyxXQUFXLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFNUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUM3QyxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUV6RSxNQUFNLE9BQU8sZ0JBQWdCO0lBVTNCLFlBQTZCLFlBQTBCO1FBQTFCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBVHRDLHdCQUFtQixHQUFHLE1BQU0sQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDO1FBQ2xFLG9CQUFlLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBRTNDLHdCQUFtQixHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUNsRixHQUFHLENBQUMsQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxFQUNyRyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQ2YsV0FBVyxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQ2hDLENBQUM7SUFFd0QsQ0FBQztJQUVwRCxTQUFTLENBQUMsR0FBVyxFQUFFLGNBQXNDLEVBQUU7UUFDcEUsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUM7YUFDL0UsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFO1lBQ25CLE1BQU0sRUFBRSxHQUFHLE1BQU0sQ0FBQyxTQUFTLEdBQUcsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUFBO1lBQzVDLE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUE7UUFDMUMsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDakMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBmaWx0ZXIsIG1hcCwgT2JzZXJ2YWJsZSwgc2hhcmVSZXBsYXkgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFRyYW5zbGF0aW9ucyB9IGZyb20gJy4vbW9kZWxzJztcbmltcG9ydCB7IExhbmd1YWdlU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMnO1xuaW1wb3J0IHsgT0RYX1RSQU5TTEFURV9ERUZBVUxUX0xBTkdVQUdFX0NPREUgfSBmcm9tICcuL3RyYW5zbGF0ZS5jb25maWcnO1xuXG5leHBvcnQgY2xhc3MgVHJhbnNsYXRlU2VydmljZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgZGVmYXVsdExhbmd1YWdlQ29kZSA9IGluamVjdChPRFhfVFJBTlNMQVRFX0RFRkFVTFRfTEFOR1VBR0VfQ09ERSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgbGFuZ3VhZ2VTZXJ2aWNlID0gaW5qZWN0KExhbmd1YWdlU2VydmljZSk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGN1cnJlbnRUcmFuc2xhdGlvbiQgPSB0aGlzLmxhbmd1YWdlU2VydmljZS5jdXJyZW50TGFuZ3VhZ2VDb2RlJC5waXBlKFxuICAgIG1hcCgobGFuZ3VhZ2VDb2RlKSA9PiB0aGlzLnRyYW5zbGF0aW9uc1tsYW5ndWFnZUNvZGVdID8/IHRoaXMudHJhbnNsYXRpb25zW3RoaXMuZGVmYXVsdExhbmd1YWdlQ29kZV0pLFxuICAgIGZpbHRlcihCb29sZWFuKSxcbiAgICBzaGFyZVJlcGxheSh7IHJlZkNvdW50OiB0cnVlIH0pLFxuICApO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRpb25zOiBUcmFuc2xhdGlvbnMpIHt9XG5cbiAgcHVibGljIHRyYW5zbGF0ZShrZXk6IHN0cmluZywgcGxhY2Vob2xkZXI6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fSk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMuY3VycmVudFRyYW5zbGF0aW9uJC5waXBlKG1hcCgodHJhbnNsYXRpb24pID0+IE9iamVjdC5rZXlzKHBsYWNlaG9sZGVyKVxuICAgICAgLnJlZHVjZSgoYWNjLCBjdXIpID0+IHtcbiAgICAgICAgY29uc3QgcmUgPSBSZWdFeHAoYHt7XFxcXHMqJHtjdXJ9XFxcXHMqfX1gLCAnZycpXG4gICAgICAgIHJldHVybiBhY2MucmVwbGFjZShyZSwgcGxhY2Vob2xkZXJbY3VyXSlcbiAgICAgIH0sIHRyYW5zbGF0aW9uW2tleV0gPz8gJycpKSk7XG4gIH1cbn1cbiJdfQ==
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvaW50ZXJuYWwvdHJhbnNsYXRlL3NyYy9saWIvdHJhbnNsYXRlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDckQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLEdBQUcsRUFBYyxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBR3JGLE1BQU0sT0FBTyxnQkFBZ0I7SUFtQjNCLFlBQTZCLFlBQStCO1FBQS9CLGlCQUFZLEdBQVosWUFBWSxDQUFtQjtRQWxCM0Msd0JBQW1CLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFFbkQsdUJBQWtCLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQ2hGLFNBQVMsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsZUFBZSxDQUFDLEVBQ25ELG9CQUFvQixFQUFFLEVBQ3RCLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQ2YsTUFBTSxZQUFZLEdBQUcsZUFBZSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQy9DLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsRUFBRTtnQkFDL0IsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQ3BDO1lBQ0QsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxFQUFFO2dCQUNuQyxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLENBQUM7YUFDeEM7WUFDRCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ3JFLENBQUMsQ0FBQyxFQUNGLFdBQVcsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUNoQyxDQUFDO0lBRTZELENBQUM7SUFFekQsU0FBUyxDQUFDLEdBQVcsRUFBRSxPQUErQixFQUFFO1FBQzdELE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FDakMsR0FBRyxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FDbEIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxZQUFZLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRTtZQUM1RCxNQUFNLGFBQWEsR0FBRyxNQUFNLENBQUMsU0FBUyxZQUFZLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQztZQUNqRSxPQUFPLEdBQUcsQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQzlDLENBQUMsRUFBRSxXQUFXLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDLENBQzNCLENBQ0YsQ0FBQztJQUNKLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTG9jYWxpemF0aW9uU2VydmljZSB9IGZyb20gJ0BvZHgvYW5ndWxhci9sb2NhbGl6YXRpb24nO1xuaW1wb3J0IHsgZ2V0TGFuZ3VhZ2VDb2RlIH0gZnJvbSAnQG9keC9hbmd1bGFyL3V0aWxzJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIE9ic2VydmFibGUsIHNoYXJlUmVwbGF5LCBzdGFydFdpdGggfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFRyYW5zbGF0aW9uT2JqZWN0IH0gZnJvbSAnLi9tb2RlbHMnO1xuXG5leHBvcnQgY2xhc3MgVHJhbnNsYXRlU2VydmljZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgbG9jYWxpemF0aW9uU2VydmljZSA9IGluamVjdChMb2NhbGl6YXRpb25TZXJ2aWNlKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgYWN0aXZlVHJhbnNsYXRpb24kID0gdGhpcy5sb2NhbGl6YXRpb25TZXJ2aWNlLmFjdGl2ZUxhbmd1YWdlJC5waXBlKFxuICAgIHN0YXJ0V2l0aCh0aGlzLmxvY2FsaXphdGlvblNlcnZpY2UuZGVmYXVsdExhbmd1YWdlKSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIG1hcCgobGFuZ3VhZ2UpID0+IHtcbiAgICAgIGNvbnN0IGxhbmd1YWdlQ29kZSA9IGdldExhbmd1YWdlQ29kZShsYW5ndWFnZSk7XG4gICAgICBpZiAodGhpcy50cmFuc2xhdGlvbnNbbGFuZ3VhZ2VdKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0aW9uc1tsYW5ndWFnZV07XG4gICAgICB9XG4gICAgICBpZiAodGhpcy50cmFuc2xhdGlvbnNbbGFuZ3VhZ2VDb2RlXSkge1xuICAgICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGlvbnNbbGFuZ3VhZ2VDb2RlXTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0aW9uc1t0aGlzLmxvY2FsaXphdGlvblNlcnZpY2UuZGVmYXVsdExhbmd1YWdlXTtcbiAgICB9KSxcbiAgICBzaGFyZVJlcGxheSh7IHJlZkNvdW50OiB0cnVlIH0pLFxuICApO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRpb25zOiBUcmFuc2xhdGlvbk9iamVjdCkge31cblxuICBwdWJsaWMgdHJhbnNsYXRlKGtleTogc3RyaW5nLCBkYXRhOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge30pOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLmFjdGl2ZVRyYW5zbGF0aW9uJC5waXBlKFxuICAgICAgbWFwKCh0cmFuc2xhdGlvbikgPT5cbiAgICAgICAgT2JqZWN0LmVudHJpZXMoZGF0YSkucmVkdWNlKChhY2MsIFt2YXJpYWJsZU5hbWUsIHZhcmlhYmxlXSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHZhcmlhYmxlUmVnZXggPSBSZWdFeHAoYHt7XFxcXHMqJHt2YXJpYWJsZU5hbWV9XFxcXHMqfX1gLCAnZycpO1xuICAgICAgICAgIHJldHVybiBhY2MucmVwbGFjZSh2YXJpYWJsZVJlZ2V4LCB2YXJpYWJsZSk7XG4gICAgICAgIH0sIHRyYW5zbGF0aW9uW2tleV0gPz8gJycpLFxuICAgICAgKSxcbiAgICApO1xuICB9XG59XG4iXX0=
@@ -2,8 +2,8 @@ import { DOCUMENT } from '@angular/common';
2
2
  import { inject, Injectable, reflectComponentType } from '@angular/core';
3
3
  import { Title } from '@angular/platform-browser';
4
4
  import { NavigationEnd, Router } from '@angular/router';
5
- import { getLanguageCode } from '@odx/angular/internal/translate';
6
5
  import { fromEvents } from '@odx/angular/rxjs';
6
+ import { getLanguageCode } from '@odx/angular/utils';
7
7
  import { debounceTime, distinctUntilChanged, EMPTY, filter, map, shareReplay, startWith } from 'rxjs';
8
8
  import * as i0 from "@angular/core";
9
9
  export class WindowRef {
@@ -21,7 +21,8 @@ export class WindowRef {
21
21
  return this.nativeWindow.navigator.onLine;
22
22
  }
23
23
  getLanguage() {
24
- return this.nativeWindow.navigator.language;
24
+ const { language, languages, userLanguage } = this.nativeWindow.navigator;
25
+ return languages?.[0] ?? userLanguage ?? language;
25
26
  }
26
27
  getLanguageCode() {
27
28
  return getLanguageCode(this.getLanguage());
@@ -70,4 +71,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
70
71
  providedIn: 'root',
71
72
  }]
72
73
  }] });
73
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2luZG93LXJlZi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9zcmMvbGliL3NlcnZpY2VzL3dpbmRvdy1yZWYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLG9CQUFvQixFQUFRLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNsRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDL0MsT0FBTyxFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQUt0RyxNQUFNLE9BQU8sU0FBUztJQUh0QjtRQUltQixVQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZCLGFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDNUIsaUJBQVksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsSUFBSSxNQUFNLENBQUM7UUFDbkQsY0FBUyxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLFNBQVMsRUFBRSxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQ2pGLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFDZixHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLEVBQzFCLG9CQUFvQixFQUFFLEVBQ3RCLFdBQVcsQ0FBQyxF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LENBQUMsSUFBSSxZQUFZLFlBQVksSUFBSSxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQzthQUMvRixNQUFNLENBQUMsQ0FBQyxNQUE4QixFQUFFLElBQUksRUFBRSxFQUFFO1lBQy9DLE1BQU0sQ0FBQyxNQUFNLENBQUUsSUFBcUIsQ0FBQyxLQUFLLENBQUM7aUJBQ3hDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDO2lCQUN2QyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2lCQUN4RCxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtnQkFDaEIsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQ25DLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3pDLENBQUMsQ0FBQyxDQUFDO1lBQ0wsT0FBTyxNQUFNLENBQUM7UUFDaEIsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ1QsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDOytHQTFFVSxTQUFTO21IQUFULFNBQVMsY0FGUixNQUFNOzs0RkFFUCxTQUFTO2tCQUhyQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSwgcmVmbGVjdENvbXBvbmVudFR5cGUsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRpdGxlIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uRW5kLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgZ2V0TGFuZ3VhZ2VDb2RlIH0gZnJvbSAnQG9keC9hbmd1bGFyL2ludGVybmFsL3RyYW5zbGF0ZSc7XG5pbXBvcnQgeyBmcm9tRXZlbnRzIH0gZnJvbSAnQG9keC9hbmd1bGFyL3J4anMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgRU1QVFksIGZpbHRlciwgbWFwLCBzaGFyZVJlcGxheSwgc3RhcnRXaXRoIH0gZnJvbSAncnhqcyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBXaW5kb3dSZWYge1xuICBwcml2YXRlIHJlYWRvbmx5IHRpdGxlID0gaW5qZWN0KFRpdGxlKTtcbiAgcHVibGljIHJlYWRvbmx5IGRvY3VtZW50ID0gaW5qZWN0KERPQ1VNRU5UKTtcbiAgcHVibGljIHJlYWRvbmx5IG5hdGl2ZVdpbmRvdyA9IHRoaXMuZG9jdW1lbnQuZGVmYXVsdFZpZXcgPz8gd2luZG93O1xuICBwdWJsaWMgcmVhZG9ubHkgaXNPbmxpbmUkID0gZnJvbUV2ZW50cyh0aGlzLm5hdGl2ZVdpbmRvdywgJ29mZmxpbmUnLCAnb25saW5lJykucGlwZShcbiAgICBzdGFydFdpdGgobnVsbCksXG4gICAgbWFwKCgpID0+IHRoaXMuaXNPbmxpbmUoKSksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBzaGFyZVJlcGxheSh7IHJlZkNvdW50OiB0cnVlIH0pLFxuICApO1xuICBwdWJsaWMgcmVhZG9ubHkgcGFnZVRpdGxlJCA9IChpbmplY3QoUm91dGVyLCB7IG9wdGlvbmFsOiB0cnVlIH0pPy5ldmVudHMgPz8gRU1QVFkpLnBpcGUoXG4gICAgZmlsdGVyKChldmVudCkgPT4gZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSxcbiAgICBzdGFydFdpdGgobnVsbCksXG4gICAgZGVib3VuY2VUaW1lKDApLFxuICAgIG1hcCgoKSA9PiB0aGlzLnRpdGxlLmdldFRpdGxlKCkpLFxuICAgIHNoYXJlUmVwbGF5KHsgcmVmQ291bnQ6IHRydWUgfSksXG4gICk7XG5cbiAgcHVibGljIGdldCBsb2NhdGlvbigpOiBMb2NhdGlvbiB7XG4gICAgcmV0dXJuIHRoaXMubmF0aXZlV2luZG93LmxvY2F0aW9uO1xuICB9XG5cbiAgcHVibGljIGlzT25saW5lKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLm5hdGl2ZVdpbmRvdy5uYXZpZ2F0b3Iub25MaW5lO1xuICB9XG5cbiAgcHVibGljIGdldExhbmd1YWdlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMubmF0aXZlV2luZG93Lm5hdmlnYXRvci5sYW5ndWFnZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRMYW5ndWFnZUNvZGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gZ2V0TGFuZ3VhZ2VDb2RlKHRoaXMuZ2V0TGFuZ3VhZ2UoKSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0T3JpZ2luKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMubG9jYXRpb24ub3JpZ2luO1xuICB9XG5cbiAgcHVibGljIG9wZW5QYWdlKHVybD86IHN0cmluZyB8IFVSTCwgdGFyZ2V0Pzogc3RyaW5nLCBmZWF0dXJlcz86IHN0cmluZyk6IFdpbmRvd1Byb3h5IHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMubmF0aXZlV2luZG93Lm9wZW4odXJsLCB0YXJnZXQsIGZlYXR1cmVzKTtcbiAgfVxuXG4gIHB1YmxpYyByZWxvYWRQYWdlKCk6IHZvaWQge1xuICAgIHJldHVybiB0aGlzLmxvY2F0aW9uLnJlbG9hZCgpO1xuICB9XG5cbiAgcHVibGljIHF1ZXJ5QnlDb21wb25lbnQ8VD4odHlwZTogVHlwZTxUPik6IEhUTUxFbGVtZW50IHwgbnVsbCB7XG4gICAgY29uc3QgY29tcG9uZW50VHlwZSA9IHJlZmxlY3RDb21wb25lbnRUeXBlKHR5cGUpO1xuXG4gICAgcmV0dXJuIGNvbXBvbmVudFR5cGUgPyB0aGlzLm5hdGl2ZVdpbmRvdy5kb2N1bWVudC5xdWVyeVNlbGVjdG9yKGNvbXBvbmVudFR5cGUuc2VsZWN0b3IpIDogbnVsbDtcbiAgfVxuXG4gIHB1YmxpYyBnZXRDU1NWYXJpYWJsZShuYW1lOiBzdHJpbmcsIGVsZW1lbnQ6IEhUTUxFbGVtZW50ID0gdGhpcy5kb2N1bWVudC5ib2R5KTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5uYXRpdmVXaW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KS5nZXRQcm9wZXJ0eVZhbHVlKGAtLSR7bmFtZX1gKS50cmltKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0Q1NTQ29sb3JTdHlsZXMoZmlsdGVyOiBzdHJpbmcsIHNlbGVjdG9yID0gJ2JvZHknKTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB7XG4gICAgY29uc3Qgc2VsZWN0b3JGaWx0ZXIgPSBuZXcgUmVnRXhwKGBeJHtzZWxlY3Rvcn0kYCk7XG4gICAgY29uc3QgbmFtZUZpbHRlciA9IG5ldyBSZWdFeHAoYF4tLSR7ZmlsdGVyfWApO1xuICAgIGNvbnN0IGFyciA9IEFycmF5LmZyb20odGhpcy5kb2N1bWVudC5zdHlsZVNoZWV0cylcbiAgICAgIC5maWx0ZXIoKHsgaHJlZiB9KSA9PiAhaHJlZiB8fCBocmVmLnN0YXJ0c1dpdGgodGhpcy5uYXRpdmVXaW5kb3cubG9jYXRpb24ub3JpZ2luKSlcbiAgICAgIC5tYXAoKHsgY3NzUnVsZXMgfSkgPT4gQXJyYXkuZnJvbShjc3NSdWxlcylbMF0pXG4gICAgICAuZmlsdGVyKChydWxlKSA9PiBydWxlIGluc3RhbmNlb2YgQ1NTU3R5bGVSdWxlICYmIHNlbGVjdG9yRmlsdGVyLnRlc3QocnVsZS5zZWxlY3RvclRleHQudHJpbSgpKSlcbiAgICAgIC5yZWR1Y2UoKGNvbG9yczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiwgcnVsZSkgPT4ge1xuICAgICAgICBPYmplY3QudmFsdWVzKChydWxlIGFzIENTU1N0eWxlUnVsZSkuc3R5bGUpXG4gICAgICAgICAgLm1hcCgoc3R5bGUpID0+IHN0eWxlLnRvU3RyaW5nKCkudHJpbSgpKVxuICAgICAgICAgIC5maWx0ZXIoKG5hbWUpID0+IEJvb2xlYW4obmFtZSkgJiYgbmFtZUZpbHRlci50ZXN0KG5hbWUpKVxuICAgICAgICAgIC5mb3JFYWNoKChuYW1lKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBrZXkgPSBuYW1lLnJlcGxhY2UoJy0tJywgJycpO1xuICAgICAgICAgICAgY29sb3JzW2tleV0gPSB0aGlzLmdldENTU1ZhcmlhYmxlKGtleSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBjb2xvcnM7XG4gICAgICB9LCB7fSk7XG4gICAgcmV0dXJuIGFycjtcbiAgfVxufVxuIl19
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2luZG93LXJlZi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9zcmMvbGliL3NlcnZpY2VzL3dpbmRvdy1yZWYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLG9CQUFvQixFQUFRLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDckQsT0FBTyxFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQUt0RyxNQUFNLE9BQU8sU0FBUztJQUh0QjtRQUltQixVQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZCLGFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDNUIsaUJBQVksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsSUFBSSxNQUFNLENBQUM7UUFDbkQsY0FBUyxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLFNBQVMsRUFBRSxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQ2pGLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFDZixHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLEVBQzFCLG9CQUFvQixFQUFFLEVBQ3RCLFdBQVcsQ0FBQyxF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RSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDOUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLFlBQVksWUFBWSxJQUFJLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO2FBQy9GLE1BQU0sQ0FBQyxDQUFDLE1BQThCLEVBQUUsSUFBSSxFQUFFLEVBQUU7WUFDL0MsTUFBTSxDQUFDLE1BQU0sQ0FBRSxJQUFxQixDQUFDLEtBQUssQ0FBQztpQkFDeEMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUM7aUJBQ3ZDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7aUJBQ3hELE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO2dCQUNoQixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztnQkFDbkMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDekMsQ0FBQyxDQUFDLENBQUM7WUFDTCxPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDVCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7K0dBNUVVLFNBQVM7bUhBQVQsU0FBUyxjQUZSLE1BQU07OzRGQUVQLFNBQVM7a0JBSHJCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlLCByZWZsZWN0Q29tcG9uZW50VHlwZSwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVGl0bGUgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IE5hdmlnYXRpb25FbmQsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBmcm9tRXZlbnRzIH0gZnJvbSAnQG9keC9hbmd1bGFyL3J4anMnO1xuaW1wb3J0IHsgZ2V0TGFuZ3VhZ2VDb2RlIH0gZnJvbSAnQG9keC9hbmd1bGFyL3V0aWxzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIEVNUFRZLCBmaWx0ZXIsIG1hcCwgc2hhcmVSZXBsYXksIHN0YXJ0V2l0aCB9IGZyb20gJ3J4anMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgV2luZG93UmVmIHtcbiAgcHJpdmF0ZSByZWFkb25seSB0aXRsZSA9IGluamVjdChUaXRsZSk7XG4gIHB1YmxpYyByZWFkb25seSBkb2N1bWVudCA9IGluamVjdChET0NVTUVOVCk7XG4gIHB1YmxpYyByZWFkb25seSBuYXRpdmVXaW5kb3cgPSB0aGlzLmRvY3VtZW50LmRlZmF1bHRWaWV3ID8/IHdpbmRvdztcbiAgcHVibGljIHJlYWRvbmx5IGlzT25saW5lJCA9IGZyb21FdmVudHModGhpcy5uYXRpdmVXaW5kb3csICdvZmZsaW5lJywgJ29ubGluZScpLnBpcGUoXG4gICAgc3RhcnRXaXRoKG51bGwpLFxuICAgIG1hcCgoKSA9PiB0aGlzLmlzT25saW5lKCkpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgc2hhcmVSZXBsYXkoeyByZWZDb3VudDogdHJ1ZSB9KSxcbiAgKTtcbiAgcHVibGljIHJlYWRvbmx5IHBhZ2VUaXRsZSQgPSAoaW5qZWN0KFJvdXRlciwgeyBvcHRpb25hbDogdHJ1ZSB9KT8uZXZlbnRzID8/IEVNUFRZKS5waXBlKFxuICAgIGZpbHRlcigoZXZlbnQpID0+IGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCksXG4gICAgc3RhcnRXaXRoKG51bGwpLFxuICAgIGRlYm91bmNlVGltZSgwKSxcbiAgICBtYXAoKCkgPT4gdGhpcy50aXRsZS5nZXRUaXRsZSgpKSxcbiAgICBzaGFyZVJlcGxheSh7IHJlZkNvdW50OiB0cnVlIH0pLFxuICApO1xuXG4gIHB1YmxpYyBnZXQgbG9jYXRpb24oKTogTG9jYXRpb24ge1xuICAgIHJldHVybiB0aGlzLm5hdGl2ZVdpbmRvdy5sb2NhdGlvbjtcbiAgfVxuXG4gIHB1YmxpYyBpc09ubGluZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5uYXRpdmVXaW5kb3cubmF2aWdhdG9yLm9uTGluZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRMYW5ndWFnZSgpOiBzdHJpbmcge1xuICAgIGNvbnN0IHsgbGFuZ3VhZ2UsIGxhbmd1YWdlcywgdXNlckxhbmd1YWdlIH0gPSB0aGlzLm5hdGl2ZVdpbmRvdy5uYXZpZ2F0b3IgYXMgTmF2aWdhdG9yICYgeyB1c2VyTGFuZ3VhZ2U/OiBzdHJpbmcgfTtcblxuICAgIHJldHVybiBsYW5ndWFnZXM/LlswXSA/PyB1c2VyTGFuZ3VhZ2UgPz8gbGFuZ3VhZ2U7XG4gIH1cblxuICBwdWJsaWMgZ2V0TGFuZ3VhZ2VDb2RlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGdldExhbmd1YWdlQ29kZSh0aGlzLmdldExhbmd1YWdlKCkpO1xuICB9XG5cbiAgcHVibGljIGdldE9yaWdpbigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmxvY2F0aW9uLm9yaWdpbjtcbiAgfVxuXG4gIHB1YmxpYyBvcGVuUGFnZSh1cmw/OiBzdHJpbmcgfCBVUkwsIHRhcmdldD86IHN0cmluZywgZmVhdHVyZXM/OiBzdHJpbmcpOiBXaW5kb3dQcm94eSB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLm5hdGl2ZVdpbmRvdy5vcGVuKHVybCwgdGFyZ2V0LCBmZWF0dXJlcyk7XG4gIH1cblxuICBwdWJsaWMgcmVsb2FkUGFnZSgpOiB2b2lkIHtcbiAgICByZXR1cm4gdGhpcy5sb2NhdGlvbi5yZWxvYWQoKTtcbiAgfVxuXG4gIHB1YmxpYyBxdWVyeUJ5Q29tcG9uZW50PFQ+KHR5cGU6IFR5cGU8VD4pOiBIVE1MRWxlbWVudCB8IG51bGwge1xuICAgIGNvbnN0IGNvbXBvbmVudFR5cGUgPSByZWZsZWN0Q29tcG9uZW50VHlwZSh0eXBlKTtcblxuICAgIHJldHVybiBjb21wb25lbnRUeXBlID8gdGhpcy5uYXRpdmVXaW5kb3cuZG9jdW1lbnQucXVlcnlTZWxlY3Rvcihjb21wb25lbnRUeXBlLnNlbGVjdG9yKSA6IG51bGw7XG4gIH1cblxuICBwdWJsaWMgZ2V0Q1NTVmFyaWFibGUobmFtZTogc3RyaW5nLCBlbGVtZW50OiBIVE1MRWxlbWVudCA9IHRoaXMuZG9jdW1lbnQuYm9keSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMubmF0aXZlV2luZG93LmdldENvbXB1dGVkU3R5bGUoZWxlbWVudCkuZ2V0UHJvcGVydHlWYWx1ZShgLS0ke25hbWV9YCkudHJpbSgpO1xuICB9XG5cbiAgcHVibGljIGdldENTU0NvbG9yU3R5bGVzKGZpbHRlcjogc3RyaW5nLCBzZWxlY3RvciA9ICdib2R5Jyk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4ge1xuICAgIGNvbnN0IHNlbGVjdG9yRmlsdGVyID0gbmV3IFJlZ0V4cChgXiR7c2VsZWN0b3J9JGApO1xuICAgIGNvbnN0IG5hbWVGaWx0ZXIgPSBuZXcgUmVnRXhwKGBeLS0ke2ZpbHRlcn1gKTtcbiAgICBjb25zdCBhcnIgPSBBcnJheS5mcm9tKHRoaXMuZG9jdW1lbnQuc3R5bGVTaGVldHMpXG4gICAgICAuZmlsdGVyKCh7IGhyZWYgfSkgPT4gIWhyZWYgfHwgaHJlZi5zdGFydHNXaXRoKHRoaXMubmF0aXZlV2luZG93LmxvY2F0aW9uLm9yaWdpbikpXG4gICAgICAubWFwKCh7IGNzc1J1bGVzIH0pID0+IEFycmF5LmZyb20oY3NzUnVsZXMpWzBdKVxuICAgICAgLmZpbHRlcigocnVsZSkgPT4gcnVsZSBpbnN0YW5jZW9mIENTU1N0eWxlUnVsZSAmJiBzZWxlY3RvckZpbHRlci50ZXN0KHJ1bGUuc2VsZWN0b3JUZXh0LnRyaW0oKSkpXG4gICAgICAucmVkdWNlKChjb2xvcnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4sIHJ1bGUpID0+IHtcbiAgICAgICAgT2JqZWN0LnZhbHVlcygocnVsZSBhcyBDU1NTdHlsZVJ1bGUpLnN0eWxlKVxuICAgICAgICAgIC5tYXAoKHN0eWxlKSA9PiBzdHlsZS50b1N0cmluZygpLnRyaW0oKSlcbiAgICAgICAgICAuZmlsdGVyKChuYW1lKSA9PiBCb29sZWFuKG5hbWUpICYmIG5hbWVGaWx0ZXIudGVzdChuYW1lKSlcbiAgICAgICAgICAuZm9yRWFjaCgobmFtZSkgPT4ge1xuICAgICAgICAgICAgY29uc3Qga2V5ID0gbmFtZS5yZXBsYWNlKCctLScsICcnKTtcbiAgICAgICAgICAgIGNvbG9yc1trZXldID0gdGhpcy5nZXRDU1NWYXJpYWJsZShrZXkpO1xuICAgICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gY29sb3JzO1xuICAgICAgfSwge30pO1xuICAgIHJldHVybiBhcnI7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,6 @@
1
+ export * from './lib/features';
2
+ export * from './lib/loaders';
3
+ export * from './lib/localization.config';
4
+ export * from './lib/localization.service';
5
+ export * from './lib/models';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvbG9jYWxpemF0aW9uL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGliL2ZlYXR1cmVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2xvYWRlcnMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbG9jYWxpemF0aW9uLmNvbmZpZyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9sb2NhbGl6YXRpb24uc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMnO1xuIl19
@@ -0,0 +1,3 @@
1
+ export * from './with-http-language-header';
2
+ export * from './with-http-language-query-param';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvbG9jYWxpemF0aW9uL3NyYy9saWIvZmVhdHVyZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLGtDQUFrQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi93aXRoLWh0dHAtbGFuZ3VhZ2UtaGVhZGVyJztcbmV4cG9ydCAqIGZyb20gJy4vd2l0aC1odHRwLWxhbmd1YWdlLXF1ZXJ5LXBhcmFtJztcbiJdfQ==
@@ -0,0 +1,23 @@
1
+ import { provideHttpClient, withInterceptors } from '@angular/common/http';
2
+ import { inject } from '@angular/core';
3
+ import { matchUrl } from '@odx/angular/utils';
4
+ import { switchMap, take } from 'rxjs';
5
+ import { LocalizationService } from '../localization.service';
6
+ import { makeLocalizationFeature } from '../models';
7
+ export const HTTP_LANGUAGE_HEADER = 'Accept-Language';
8
+ export function httpLanguageHeaderInterceptor({ allowedUrls, headerName }) {
9
+ return (req, next) => {
10
+ const language$ = inject(LocalizationService).activeLanguage$.pipe(take(1));
11
+ for (const allowedUrl of allowedUrls) {
12
+ if (!matchUrl(req.url, allowedUrl))
13
+ continue;
14
+ return language$.pipe(switchMap((language) => next(req.clone({ setHeaders: { [headerName ?? HTTP_LANGUAGE_HEADER]: language } }))));
15
+ }
16
+ return next(req);
17
+ };
18
+ }
19
+ export function withHttpLanguageHeader(config) {
20
+ const providers = provideHttpClient(withInterceptors([httpLanguageHeaderInterceptor(config)]));
21
+ return makeLocalizationFeature(providers);
22
+ }
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1odHRwLWxhbmd1YWdlLWhlYWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9sb2NhbGl6YXRpb24vc3JjL2xpYi9mZWF0dXJlcy93aXRoLWh0dHAtbGFuZ3VhZ2UtaGVhZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsaUJBQWlCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM5RixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RCxPQUFPLEVBQXVCLHVCQUF1QixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRXpFLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLGlCQUFpQixDQUFDO0FBT3RELE1BQU0sVUFBVSw2QkFBNkIsQ0FBQyxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQXVDO0lBQzVHLE9BQU8sQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUU7UUFDbkIsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM1RSxLQUFLLE1BQU0sVUFBVSxJQUFJLFdBQVcsRUFBRTtZQUNwQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsVUFBVSxDQUFDO2dCQUFFLFNBQVM7WUFDN0MsT0FBTyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxVQUFVLEVBQUUsRUFBRSxDQUFDLFVBQVUsSUFBSSxvQkFBb0IsQ0FBQyxFQUFFLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNySTtRQUNELE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ25CLENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsc0JBQXNCLENBQUMsTUFBMkM7SUFDaEYsTUFBTSxTQUFTLEdBQUcsaUJBQWlCLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyw2QkFBNkIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUUvRixPQUFPLHVCQUF1QixDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQzVDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwSW50ZXJjZXB0b3JGbiwgcHJvdmlkZUh0dHBDbGllbnQsIHdpdGhJbnRlcmNlcHRvcnMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IG1hdGNoVXJsIH0gZnJvbSAnQG9keC9hbmd1bGFyL3V0aWxzJztcbmltcG9ydCB7IHN3aXRjaE1hcCwgdGFrZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTG9jYWxpemF0aW9uU2VydmljZSB9IGZyb20gJy4uL2xvY2FsaXphdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IExvY2FsaXphdGlvbkZlYXR1cmUsIG1ha2VMb2NhbGl6YXRpb25GZWF0dXJlIH0gZnJvbSAnLi4vbW9kZWxzJztcblxuZXhwb3J0IGNvbnN0IEhUVFBfTEFOR1VBR0VfSEVBREVSID0gJ0FjY2VwdC1MYW5ndWFnZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSHR0cExhbmd1YWdlSGVhZGVySW50ZXJjZXB0b3JDb25maWcge1xuICBhbGxvd2VkVXJsczogQXJyYXk8c3RyaW5nIHwgUmVnRXhwPjtcbiAgaGVhZGVyTmFtZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGh0dHBMYW5ndWFnZUhlYWRlckludGVyY2VwdG9yKHsgYWxsb3dlZFVybHMsIGhlYWRlck5hbWUgfTogSHR0cExhbmd1YWdlSGVhZGVySW50ZXJjZXB0b3JDb25maWcpOiBIdHRwSW50ZXJjZXB0b3JGbiB7XG4gIHJldHVybiAocmVxLCBuZXh0KSA9PiB7XG4gICAgY29uc3QgbGFuZ3VhZ2UkID0gaW5qZWN0KExvY2FsaXphdGlvblNlcnZpY2UpLmFjdGl2ZUxhbmd1YWdlJC5waXBlKHRha2UoMSkpO1xuICAgIGZvciAoY29uc3QgYWxsb3dlZFVybCBvZiBhbGxvd2VkVXJscykge1xuICAgICAgaWYgKCFtYXRjaFVybChyZXEudXJsLCBhbGxvd2VkVXJsKSkgY29udGludWU7XG4gICAgICByZXR1cm4gbGFuZ3VhZ2UkLnBpcGUoc3dpdGNoTWFwKChsYW5ndWFnZSkgPT4gbmV4dChyZXEuY2xvbmUoeyBzZXRIZWFkZXJzOiB7IFtoZWFkZXJOYW1lID8/IEhUVFBfTEFOR1VBR0VfSEVBREVSXTogbGFuZ3VhZ2UgfSB9KSkpKTtcbiAgICB9XG4gICAgcmV0dXJuIG5leHQocmVxKTtcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHdpdGhIdHRwTGFuZ3VhZ2VIZWFkZXIoY29uZmlnOiBIdHRwTGFuZ3VhZ2VIZWFkZXJJbnRlcmNlcHRvckNvbmZpZyk6IExvY2FsaXphdGlvbkZlYXR1cmUge1xuICBjb25zdCBwcm92aWRlcnMgPSBwcm92aWRlSHR0cENsaWVudCh3aXRoSW50ZXJjZXB0b3JzKFtodHRwTGFuZ3VhZ2VIZWFkZXJJbnRlcmNlcHRvcihjb25maWcpXSkpO1xuXG4gIHJldHVybiBtYWtlTG9jYWxpemF0aW9uRmVhdHVyZShwcm92aWRlcnMpO1xufVxuIl19
@@ -0,0 +1,23 @@
1
+ import { provideHttpClient, withInterceptors } from '@angular/common/http';
2
+ import { inject } from '@angular/core';
3
+ import { matchUrl } from '@odx/angular/utils';
4
+ import { switchMap, take } from 'rxjs';
5
+ import { LocalizationService } from '../localization.service';
6
+ import { makeLocalizationFeature } from '../models';
7
+ export const HTTP_LANGUAGE_QUERY = 'language';
8
+ export function withHttpLanguageQueryParamInterceptor({ allowedUrls, queryParamName }) {
9
+ return (req, next) => {
10
+ const language$ = inject(LocalizationService).activeLanguage$.pipe(take(1));
11
+ for (const allowedUrl of allowedUrls) {
12
+ if (!matchUrl(req.url, allowedUrl))
13
+ continue;
14
+ return language$.pipe(switchMap((language) => next(req.clone({ setParams: { [queryParamName ?? HTTP_LANGUAGE_QUERY]: language } }))));
15
+ }
16
+ return next(req);
17
+ };
18
+ }
19
+ export function withHttpLanguageQueryParam(config) {
20
+ const providers = provideHttpClient(withInterceptors([withHttpLanguageQueryParamInterceptor(config)]));
21
+ return makeLocalizationFeature(providers);
22
+ }
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1odHRwLWxhbmd1YWdlLXF1ZXJ5LXBhcmFtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2xvY2FsaXphdGlvbi9zcmMvbGliL2ZlYXR1cmVzL3dpdGgtaHR0cC1sYW5ndWFnZS1xdWVyeS1wYXJhbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLGlCQUFpQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDOUYsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDOUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUQsT0FBTyxFQUF1Qix1QkFBdUIsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUV6RSxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxVQUFVLENBQUM7QUFPOUMsTUFBTSxVQUFVLHFDQUFxQyxDQUFDLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBMkM7SUFDNUgsT0FBTyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRTtRQUNuQixNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzVFLEtBQUssTUFBTSxVQUFVLElBQUksV0FBVyxFQUFFO1lBQ3BDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxVQUFVLENBQUM7Z0JBQUUsU0FBUztZQUM3QyxPQUFPLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLFNBQVMsRUFBRSxFQUFFLENBQUMsY0FBYyxJQUFJLG1CQUFtQixDQUFDLEVBQUUsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3ZJO1FBQ0QsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbkIsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSwwQkFBMEIsQ0FBQyxNQUErQztJQUN4RixNQUFNLFNBQVMsR0FBRyxpQkFBaUIsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLHFDQUFxQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRXZHLE9BQU8sdUJBQXVCLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDNUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBJbnRlcmNlcHRvckZuLCBwcm92aWRlSHR0cENsaWVudCwgd2l0aEludGVyY2VwdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgbWF0Y2hVcmwgfSBmcm9tICdAb2R4L2FuZ3VsYXIvdXRpbHMnO1xuaW1wb3J0IHsgc3dpdGNoTWFwLCB0YWtlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBMb2NhbGl6YXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vbG9jYWxpemF0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgTG9jYWxpemF0aW9uRmVhdHVyZSwgbWFrZUxvY2FsaXphdGlvbkZlYXR1cmUgfSBmcm9tICcuLi9tb2RlbHMnO1xuXG5leHBvcnQgY29uc3QgSFRUUF9MQU5HVUFHRV9RVUVSWSA9ICdsYW5ndWFnZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSHR0cExhbmd1YWdlUXVlcnlQYXJhbUludGVyY2VwdG9yQ29uZmlnIHtcbiAgYWxsb3dlZFVybHM6IEFycmF5PHN0cmluZyB8IFJlZ0V4cD47XG4gIHF1ZXJ5UGFyYW1OYW1lPzogc3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gd2l0aEh0dHBMYW5ndWFnZVF1ZXJ5UGFyYW1JbnRlcmNlcHRvcih7IGFsbG93ZWRVcmxzLCBxdWVyeVBhcmFtTmFtZSB9OiBIdHRwTGFuZ3VhZ2VRdWVyeVBhcmFtSW50ZXJjZXB0b3JDb25maWcpOiBIdHRwSW50ZXJjZXB0b3JGbiB7XG4gIHJldHVybiAocmVxLCBuZXh0KSA9PiB7XG4gICAgY29uc3QgbGFuZ3VhZ2UkID0gaW5qZWN0KExvY2FsaXphdGlvblNlcnZpY2UpLmFjdGl2ZUxhbmd1YWdlJC5waXBlKHRha2UoMSkpO1xuICAgIGZvciAoY29uc3QgYWxsb3dlZFVybCBvZiBhbGxvd2VkVXJscykge1xuICAgICAgaWYgKCFtYXRjaFVybChyZXEudXJsLCBhbGxvd2VkVXJsKSkgY29udGludWU7XG4gICAgICByZXR1cm4gbGFuZ3VhZ2UkLnBpcGUoc3dpdGNoTWFwKChsYW5ndWFnZSkgPT4gbmV4dChyZXEuY2xvbmUoeyBzZXRQYXJhbXM6IHsgW3F1ZXJ5UGFyYW1OYW1lID8/IEhUVFBfTEFOR1VBR0VfUVVFUlldOiBsYW5ndWFnZSB9IH0pKSkpO1xuICAgIH1cbiAgICByZXR1cm4gbmV4dChyZXEpO1xuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gd2l0aEh0dHBMYW5ndWFnZVF1ZXJ5UGFyYW0oY29uZmlnOiBIdHRwTGFuZ3VhZ2VRdWVyeVBhcmFtSW50ZXJjZXB0b3JDb25maWcpOiBMb2NhbGl6YXRpb25GZWF0dXJlIHtcbiAgY29uc3QgcHJvdmlkZXJzID0gcHJvdmlkZUh0dHBDbGllbnQod2l0aEludGVyY2VwdG9ycyhbd2l0aEh0dHBMYW5ndWFnZVF1ZXJ5UGFyYW1JbnRlcmNlcHRvcihjb25maWcpXSkpO1xuXG4gIHJldHVybiBtYWtlTG9jYWxpemF0aW9uRmVhdHVyZShwcm92aWRlcnMpO1xufVxuIl19
@@ -0,0 +1,6 @@
1
+ import { inject } from '@angular/core';
2
+ import { WindowRef } from '@odx/angular';
3
+ export const browserLanguageLoader = async () => {
4
+ return inject(WindowRef).getLanguage();
5
+ };
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJvd3Nlci1sYW5ndWFnZS1sb2FkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvbG9jYWxpemF0aW9uL3NyYy9saWIvbG9hZGVycy9icm93c2VyLWxhbmd1YWdlLWxvYWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFHekMsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQXFCLEtBQUssSUFBSSxFQUFFO0lBQ2hFLE9BQU8sTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO0FBQ3pDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgV2luZG93UmVmIH0gZnJvbSAnQG9keC9hbmd1bGFyJztcbmltcG9ydCB7IExhbmd1YWdlTG9hZGVyRm4gfSBmcm9tICcuLi9tb2RlbHMnO1xuXG5leHBvcnQgY29uc3QgYnJvd3Nlckxhbmd1YWdlTG9hZGVyOiBMYW5ndWFnZUxvYWRlckZuID0gYXN5bmMgKCkgPT4ge1xuICByZXR1cm4gaW5qZWN0KFdpbmRvd1JlZikuZ2V0TGFuZ3VhZ2UoKTtcbn07XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export * from './browser-language-loader';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvbG9jYWxpemF0aW9uL3NyYy9saWIvbG9hZGVycy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDJCQUEyQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9icm93c2VyLWxhbmd1YWdlLWxvYWRlcic7XG4iXX0=
@@ -0,0 +1,21 @@
1
+ import { APP_INITIALIZER, makeEnvironmentProviders } from '@angular/core';
2
+ import { createConfigTokens } from '@odx/angular/utils';
3
+ import { LocalizationService } from './localization.service';
4
+ export const DEFAULT_AVAILABLE_LANGUAGES = ['en', 'de', 'es', 'fr', 'ja'];
5
+ export const { LocalizationConfig, LocalizationDefaultConfig, injectLocalizationConfig, provideLocalizationConfig } = createConfigTokens('Localization', '@odx/angular/internal/translate', {
6
+ availableLanguages: DEFAULT_AVAILABLE_LANGUAGES,
7
+ availableLocales: DEFAULT_AVAILABLE_LANGUAGES,
8
+ });
9
+ export function provideLocalization(config, ...features) {
10
+ return makeEnvironmentProviders([
11
+ provideLocalizationConfig(config),
12
+ {
13
+ provide: APP_INITIALIZER,
14
+ useFactory: (localizationService) => () => localizationService.loadActiveLanguage(),
15
+ deps: [LocalizationService],
16
+ multi: true,
17
+ },
18
+ features,
19
+ ]);
20
+ }
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemF0aW9uLmNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9sb2NhbGl6YXRpb24vc3JjL2xpYi9sb2NhbGl6YXRpb24uY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQXdCLHdCQUF3QixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRzdELE1BQU0sQ0FBQyxNQUFNLDJCQUEyQixHQUFHLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBTzFFLE1BQU0sQ0FBQyxNQUFNLEVBQUUsa0JBQWtCLEVBQUUseUJBQXlCLEVBQUUsd0JBQXdCLEVBQUUseUJBQXlCLEVBQUUsR0FBRyxrQkFBa0IsQ0FDdEksY0FBYyxFQUNkLGlDQUFpQyxFQUNqQztJQUNFLGtCQUFrQixFQUFFLDJCQUEyQjtJQUMvQyxnQkFBZ0IsRUFBRSwyQkFBMkI7Q0FDeEIsQ0FDeEIsQ0FBQztBQUVGLE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxNQUFtQyxFQUFFLEdBQUcsUUFBK0I7SUFDekcsT0FBTyx3QkFBd0IsQ0FBQztRQUM5Qix5QkFBeUIsQ0FBQyxNQUFNLENBQUM7UUFDakM7WUFDRSxPQUFPLEVBQUUsZUFBZTtZQUN4QixVQUFVLEVBQUUsQ0FBQyxtQkFBd0MsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUMsbUJBQW1CLENBQUMsa0JBQWtCLEVBQUU7WUFDeEcsSUFBSSxFQUFFLENBQUMsbUJBQW1CLENBQUM7WUFDM0IsS0FBSyxFQUFFLElBQUk7U0FDWjtRQUNELFFBQVE7S0FDVCxDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVBQX0lOSVRJQUxJWkVSLCBFbnZpcm9ubWVudFByb3ZpZGVycywgbWFrZUVudmlyb25tZW50UHJvdmlkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjcmVhdGVDb25maWdUb2tlbnMgfSBmcm9tICdAb2R4L2FuZ3VsYXIvdXRpbHMnO1xuaW1wb3J0IHsgTG9jYWxpemF0aW9uU2VydmljZSB9IGZyb20gJy4vbG9jYWxpemF0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgTGFuZ3VhZ2VMb2FkZXJGbiwgTG9jYWxpemF0aW9uRmVhdHVyZSB9IGZyb20gJy4vbW9kZWxzJztcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfQVZBSUxBQkxFX0xBTkdVQUdFUyA9IFsnZW4nLCAnZGUnLCAnZXMnLCAnZnInLCAnamEnXTtcblxuZXhwb3J0IGludGVyZmFjZSBMb2NhbGl6YXRpb25Db25maWcge1xuICBhY3RpdmVMYW5ndWFnZUxvYWRlcj86IExhbmd1YWdlTG9hZGVyRm47XG4gIGF2YWlsYWJsZUxhbmd1YWdlczogc3RyaW5nW107XG59XG5cbmV4cG9ydCBjb25zdCB7IExvY2FsaXphdGlvbkNvbmZpZywgTG9jYWxpemF0aW9uRGVmYXVsdENvbmZpZywgaW5qZWN0TG9jYWxpemF0aW9uQ29uZmlnLCBwcm92aWRlTG9jYWxpemF0aW9uQ29uZmlnIH0gPSBjcmVhdGVDb25maWdUb2tlbnMoXG4gICdMb2NhbGl6YXRpb24nLFxuICAnQG9keC9hbmd1bGFyL2ludGVybmFsL3RyYW5zbGF0ZScsXG4gIHtcbiAgICBhdmFpbGFibGVMYW5ndWFnZXM6IERFRkFVTFRfQVZBSUxBQkxFX0xBTkdVQUdFUyxcbiAgICBhdmFpbGFibGVMb2NhbGVzOiBERUZBVUxUX0FWQUlMQUJMRV9MQU5HVUFHRVMsXG4gIH0gYXMgTG9jYWxpemF0aW9uQ29uZmlnLFxuKTtcblxuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVMb2NhbGl6YXRpb24oY29uZmlnOiBQYXJ0aWFsPExvY2FsaXphdGlvbkNvbmZpZz4sIC4uLmZlYXR1cmVzOiBMb2NhbGl6YXRpb25GZWF0dXJlW10pOiBFbnZpcm9ubWVudFByb3ZpZGVycyB7XG4gIHJldHVybiBtYWtlRW52aXJvbm1lbnRQcm92aWRlcnMoW1xuICAgIHByb3ZpZGVMb2NhbGl6YXRpb25Db25maWcoY29uZmlnKSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBBUFBfSU5JVElBTElaRVIsXG4gICAgICB1c2VGYWN0b3J5OiAobG9jYWxpemF0aW9uU2VydmljZTogTG9jYWxpemF0aW9uU2VydmljZSkgPT4gKCkgPT4gbG9jYWxpemF0aW9uU2VydmljZS5sb2FkQWN0aXZlTGFuZ3VhZ2UoKSxcbiAgICAgIGRlcHM6IFtMb2NhbGl6YXRpb25TZXJ2aWNlXSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gICAgZmVhdHVyZXMsXG4gIF0pO1xufVxuIl19
@@ -0,0 +1,45 @@
1
+ import { Injectable, Injector, inject, runInInjectionContext } from '@angular/core';
2
+ import { getLanguageCode } from '@odx/angular/utils';
3
+ import { BehaviorSubject, distinctUntilChanged, filter, firstValueFrom, from, shareReplay } from 'rxjs';
4
+ import { injectLocalizationConfig } from './localization.config';
5
+ import * as i0 from "@angular/core";
6
+ export class LocalizationService {
7
+ constructor() {
8
+ this.injector = inject(Injector);
9
+ this.localizationConfig = injectLocalizationConfig();
10
+ this.availableLanguageSet = new Set(this.localizationConfig.availableLanguages);
11
+ this.activeLanguage$$ = new BehaviorSubject(undefined);
12
+ this.activeLanguage$ = this.activeLanguage$$.pipe(filter(Boolean), distinctUntilChanged(), shareReplay({ refCount: true }));
13
+ this.availableLanguages = Array.from(this.availableLanguageSet);
14
+ this.defaultLanguage = this.availableLanguages[0];
15
+ }
16
+ getActiveLanguage() {
17
+ return this.activeLanguage$$.getValue() ?? this.defaultLanguage;
18
+ }
19
+ setActiveLanguage(language) {
20
+ if (this.availableLanguageSet.has(language)) {
21
+ this.activeLanguage$$.next(language);
22
+ return;
23
+ }
24
+ const languageCode = getLanguageCode(language);
25
+ if (this.availableLanguageSet.has(languageCode)) {
26
+ this.activeLanguage$$.next(languageCode);
27
+ return;
28
+ }
29
+ this.activeLanguage$$.next(this.defaultLanguage);
30
+ }
31
+ async loadActiveLanguage() {
32
+ return runInInjectionContext(this.injector, async () => {
33
+ const activeLanguageLoader$ = from(this.localizationConfig.activeLanguageLoader?.() ?? []);
34
+ const activeLanguage = await firstValueFrom(activeLanguageLoader$).catch(() => null);
35
+ this.setActiveLanguage(activeLanguage ?? this.defaultLanguage);
36
+ });
37
+ }
38
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LocalizationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
39
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LocalizationService, providedIn: 'root' }); }
40
+ }
41
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LocalizationService, decorators: [{
42
+ type: Injectable,
43
+ args: [{ providedIn: 'root' }]
44
+ }] });
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemF0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvbG9jYWxpemF0aW9uL3NyYy9saWIvbG9jYWxpemF0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZUFBZSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN4RyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7QUFHakUsTUFBTSxPQUFPLG1CQUFtQjtJQURoQztRQUVtQixhQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzVCLHVCQUFrQixHQUFHLHdCQUF3QixFQUFFLENBQUM7UUFDaEQseUJBQW9CLEdBQUcsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDM0UscUJBQWdCLEdBQUcsSUFBSSxlQUFlLENBQXFCLFNBQVMsQ0FBQyxDQUFDO1FBRXZFLG9CQUFlLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsb0JBQW9CLEVBQUUsRUFBRSxXQUFXLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3ZILHVCQUFrQixHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDM0Qsb0JBQWUsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLENBQUM7S0EwQjlEO0lBeEJRLGlCQUFpQjtRQUN0QixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDO0lBQ2xFLENBQUM7SUFFTSxpQkFBaUIsQ0FBQyxRQUFnQjtRQUN2QyxJQUFJLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDM0MsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNyQyxPQUFPO1NBQ1I7UUFDRCxNQUFNLFlBQVksR0FBRyxlQUFlLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDL0MsSUFBSSxJQUFJLENBQUMsb0JBQW9CLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxFQUFFO1lBQy9DLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDekMsT0FBTztTQUNSO1FBQ0QsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVNLEtBQUssQ0FBQyxrQkFBa0I7UUFDN0IsT0FBTyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEtBQUssSUFBSSxFQUFFO1lBQ3JELE1BQU0scUJBQXFCLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxvQkFBb0IsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7WUFDM0YsTUFBTSxjQUFjLEdBQUcsTUFBTSxjQUFjLENBQUMscUJBQXFCLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDckYsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGNBQWMsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDakUsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOytHQWpDVSxtQkFBbUI7bUhBQW5CLG1CQUFtQixjQUROLE1BQU07OzRGQUNuQixtQkFBbUI7a0JBRC9CLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0b3IsIGluamVjdCwgcnVuSW5JbmplY3Rpb25Db250ZXh0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBnZXRMYW5ndWFnZUNvZGUgfSBmcm9tICdAb2R4L2FuZ3VsYXIvdXRpbHMnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgZmlsdGVyLCBmaXJzdFZhbHVlRnJvbSwgZnJvbSwgc2hhcmVSZXBsYXkgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGluamVjdExvY2FsaXphdGlvbkNvbmZpZyB9IGZyb20gJy4vbG9jYWxpemF0aW9uLmNvbmZpZyc7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgTG9jYWxpemF0aW9uU2VydmljZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xuICBwcml2YXRlIHJlYWRvbmx5IGxvY2FsaXphdGlvbkNvbmZpZyA9IGluamVjdExvY2FsaXphdGlvbkNvbmZpZygpO1xuICBwcml2YXRlIHJlYWRvbmx5IGF2YWlsYWJsZUxhbmd1YWdlU2V0ID0gbmV3IFNldCh0aGlzLmxvY2FsaXphdGlvbkNvbmZpZy5hdmFpbGFibGVMYW5ndWFnZXMpO1xuICBwcml2YXRlIHJlYWRvbmx5IGFjdGl2ZUxhbmd1YWdlJCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZyB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgYWN0aXZlTGFuZ3VhZ2UkID0gdGhpcy5hY3RpdmVMYW5ndWFnZSQkLnBpcGUoZmlsdGVyKEJvb2xlYW4pLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLCBzaGFyZVJlcGxheSh7IHJlZkNvdW50OiB0cnVlIH0pKTtcbiAgcHVibGljIHJlYWRvbmx5IGF2YWlsYWJsZUxhbmd1YWdlcyA9IEFycmF5LmZyb20odGhpcy5hdmFpbGFibGVMYW5ndWFnZVNldCk7XG4gIHB1YmxpYyByZWFkb25seSBkZWZhdWx0TGFuZ3VhZ2UgPSB0aGlzLmF2YWlsYWJsZUxhbmd1YWdlc1swXTtcblxuICBwdWJsaWMgZ2V0QWN0aXZlTGFuZ3VhZ2UoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5hY3RpdmVMYW5ndWFnZSQkLmdldFZhbHVlKCkgPz8gdGhpcy5kZWZhdWx0TGFuZ3VhZ2U7XG4gIH1cblxuICBwdWJsaWMgc2V0QWN0aXZlTGFuZ3VhZ2UobGFuZ3VhZ2U6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICh0aGlzLmF2YWlsYWJsZUxhbmd1YWdlU2V0LmhhcyhsYW5ndWFnZSkpIHtcbiAgICAgIHRoaXMuYWN0aXZlTGFuZ3VhZ2UkJC5uZXh0KGxhbmd1YWdlKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgbGFuZ3VhZ2VDb2RlID0gZ2V0TGFuZ3VhZ2VDb2RlKGxhbmd1YWdlKTtcbiAgICBpZiAodGhpcy5hdmFpbGFibGVMYW5ndWFnZVNldC5oYXMobGFuZ3VhZ2VDb2RlKSkge1xuICAgICAgdGhpcy5hY3RpdmVMYW5ndWFnZSQkLm5leHQobGFuZ3VhZ2VDb2RlKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5hY3RpdmVMYW5ndWFnZSQkLm5leHQodGhpcy5kZWZhdWx0TGFuZ3VhZ2UpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGxvYWRBY3RpdmVMYW5ndWFnZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gcnVuSW5JbmplY3Rpb25Db250ZXh0KHRoaXMuaW5qZWN0b3IsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGFjdGl2ZUxhbmd1YWdlTG9hZGVyJCA9IGZyb20odGhpcy5sb2NhbGl6YXRpb25Db25maWcuYWN0aXZlTGFuZ3VhZ2VMb2FkZXI/LigpID8/IFtdKTtcbiAgICAgIGNvbnN0IGFjdGl2ZUxhbmd1YWdlID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20oYWN0aXZlTGFuZ3VhZ2VMb2FkZXIkKS5jYXRjaCgoKSA9PiBudWxsKTtcbiAgICAgIHRoaXMuc2V0QWN0aXZlTGFuZ3VhZ2UoYWN0aXZlTGFuZ3VhZ2UgPz8gdGhpcy5kZWZhdWx0TGFuZ3VhZ2UpO1xuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,3 @@
1
+ export * from './language-loader-fn';
2
+ export * from './localization-feature';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvbG9jYWxpemF0aW9uL3NyYy9saWIvbW9kZWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyx3QkFBd0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGFuZ3VhZ2UtbG9hZGVyLWZuJztcbmV4cG9ydCAqIGZyb20gJy4vbG9jYWxpemF0aW9uLWZlYXR1cmUnO1xuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFuZ3VhZ2UtbG9hZGVyLWZuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2xvY2FsaXphdGlvbi9zcmMvbGliL21vZGVscy9sYW5ndWFnZS1sb2FkZXItZm4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGVJbnB1dCB9IGZyb20gJ3J4anMnO1xuXG5leHBvcnQgdHlwZSBMYW5ndWFnZUxvYWRlckZuID0gKCkgPT4gT2JzZXJ2YWJsZUlucHV0PHN0cmluZyB8IHVuZGVmaW5lZD47XG4iXX0=
@@ -0,0 +1,4 @@
1
+ export function makeLocalizationFeature(provider) {
2
+ return provider;
3
+ }
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemF0aW9uLWZlYXR1cmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvbG9jYWxpemF0aW9uL3NyYy9saWIvbW9kZWxzL2xvY2FsaXphdGlvbi1mZWF0dXJlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE1BQU0sVUFBVSx1QkFBdUIsQ0FBQyxRQUEyQztJQUNqRixPQUFPLFFBQXdDLENBQUM7QUFDbEQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVudmlyb25tZW50UHJvdmlkZXJzLCBQcm92aWRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgdHlwZSBMb2NhbGl6YXRpb25GZWF0dXJlID0gRW52aXJvbm1lbnRQcm92aWRlcnMgJiB7IMm1b2R4QnJhbmQ6ICdAb2R4L2FuZ3VsYXIvbG9jYWxpemF0aW9uOjpMb2NhbGl6YXRpb25GZWF0dXJlJyB9O1xuXG5leHBvcnQgZnVuY3Rpb24gbWFrZUxvY2FsaXphdGlvbkZlYXR1cmUocHJvdmlkZXI6IFByb3ZpZGVyW10gfCBFbnZpcm9ubWVudFByb3ZpZGVycyk6IExvY2FsaXphdGlvbkZlYXR1cmUge1xuICByZXR1cm4gcHJvdmlkZXIgYXMgbmV2ZXIgYXMgTG9jYWxpemF0aW9uRmVhdHVyZTtcbn1cbiJdfQ==
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2R4LWFuZ3VsYXItbG9jYWxpemF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2xvY2FsaXphdGlvbi9zcmMvb2R4LWFuZ3VsYXItbG9jYWxpemF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
@@ -1,7 +1,9 @@
1
1
  import { inject, InjectionToken } from '@angular/core';
2
2
  import { bootstrapApplication } from '@angular/platform-browser';
3
+ import { CacheStorageClient } from '@odx/angular/utils';
3
4
  export function createHttpApplicationEnvironmentLoader(handler) {
4
- return (...args) => fetch(...args).then((res) => handler(res));
5
+ const cache = new CacheStorageClient('@odx/angular/sdk::ApplicationEnvironment');
6
+ return (...args) => cache.request(...args).then((dto) => handler(dto));
5
7
  }
6
8
  export function createApplicationEnvironment(loader) {
7
9
  let environment;
@@ -30,4 +32,4 @@ export function createApplicationEnvironment(loader) {
30
32
  loadApplicationEnvironment,
31
33
  };
32
34
  }
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb24tZW52aXJvbm1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvc2RrL3NyYy9saWIvYXBwbGljYXRpb24tZW52aXJvbm1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFrQixNQUFNLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBSWpFLE1BQU0sVUFBVSxzQ0FBc0MsQ0FDcEQsT0FBeUM7SUFFekMsT0FBTyxDQUFDLEdBQUcsSUFBOEIsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUMzRixDQUFDO0FBRUQsTUFBTSxVQUFVLDRCQUE0QixDQUFpQyxNQUFrRDtJQUM3SCxJQUFJLFdBQWlCLENBQUM7SUFDdEIsTUFBTSx1QkFBdUIsR0FBRyxJQUFJLGNBQWMsQ0FBTywwQ0FBMEMsRUFBRTtRQUNuRyxVQUFVLEVBQUUsTUFBTTtRQUNsQixPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsV0FBbUI7S0FDbkMsQ0FBQyxDQUFDO0lBRUgsU0FBUyw0QkFBNEI7UUFDbkMsT0FBTyxNQUFNLENBQUMsdUJBQXVCLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQsS0FBSyxVQUFVLDBCQUEwQixDQUFDLEdBQUcsSUFBK0I7UUFDMUUsV0FBVyxHQUFHLE1BQU0sTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFDcEMsSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNoQixNQUFNLElBQUksS0FBSyxDQUFDLHdEQUF3RCxDQUFDLENBQUM7U0FDM0U7UUFDRCxPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDO0lBRUQsS0FBSyxVQUFVLG1DQUFtQyxDQUNoRCxNQUFpQyxFQUNqQyxHQUFHLElBQTZDO1FBRWhELE1BQU0sMEJBQTBCLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQztRQUU1QyxPQUFPLG9CQUFvQixDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELE9BQU87UUFDTCx1QkFBdUI7UUFDdkIsNEJBQTRCO1FBQzVCLG1DQUFtQztRQUNuQywwQkFBMEI7S0FDM0IsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBcHBsaWNhdGlvblJlZiwgaW5qZWN0LCBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgYm9vdHN0cmFwQXBwbGljYXRpb24gfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcblxuZXhwb3J0IHR5cGUgQXBwbGljYXRpb25FbnZpcm9ubWVudExvYWRlcjxFbnZpcm9ubWVudERhdGEsIFBhcmFtcyBleHRlbmRzIHVua25vd25bXT4gPSAoLi4uYXJnczogUGFyYW1zKSA9PiBQcm9taXNlPEVudmlyb25tZW50RGF0YT47XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVIdHRwQXBwbGljYXRpb25FbnZpcm9ubWVudExvYWRlcjxEYXRhPihcbiAgaGFuZGxlcjogKHJlczogUmVzcG9uc2UpID0+IFByb21pc2U8RGF0YT4sXG4pOiBBcHBsaWNhdGlvbkVudmlyb25tZW50TG9hZGVyPERhdGEsIFBhcmFtZXRlcnM8dHlwZW9mIGZldGNoPj4ge1xuICByZXR1cm4gKC4uLmFyZ3M6IFBhcmFtZXRlcnM8dHlwZW9mIGZldGNoPikgPT4gZmV0Y2goLi4uYXJncykudGhlbigocmVzKSA9PiBoYW5kbGVyKHJlcykpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQXBwbGljYXRpb25FbnZpcm9ubWVudDxEYXRhLCBQYXJhbXMgZXh0ZW5kcyB1bmtub3duW10+KGxvYWRlcjogQXBwbGljYXRpb25FbnZpcm9ubWVudExvYWRlcjxEYXRhLCBQYXJhbXM+KSB7XG4gIGxldCBlbnZpcm9ubWVudDogRGF0YTtcbiAgY29uc3QgQVBQTElDQVRJT05fRU5WSVJPTk1FTlQgPSBuZXcgSW5qZWN0aW9uVG9rZW48RGF0YT4oJ0BvZHgvYW5ndWxhci9zZGs6OkFwcGxpY2F0aW9uRW52aXJvbm1lbnQnLCB7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxuICAgIGZhY3Rvcnk6ICgpID0+IGVudmlyb25tZW50IGFzIERhdGEsXG4gIH0pO1xuXG4gIGZ1bmN0aW9uIGluamVjdEFwcGxpY2F0aW9uRW52aXJvbm1lbnQoKTogRGF0YSB7XG4gICAgcmV0dXJuIGluamVjdChBUFBMSUNBVElPTl9FTlZJUk9OTUVOVCk7XG4gIH1cblxuICBhc3luYyBmdW5jdGlvbiBsb2FkQXBwbGljYXRpb25FbnZpcm9ubWVudCguLi5hcmdzOiBQYXJhbWV0ZXJzPHR5cGVvZiBsb2FkZXI+KTogUHJvbWlzZTxEYXRhPiB7XG4gICAgZW52aXJvbm1lbnQgPSBhd2FpdCBsb2FkZXIoLi4uYXJncyk7XG4gICAgaWYgKCFlbnZpcm9ubWVudCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdbQG9keC9hbmd1bGFyL3Nka10gRmFpbGVkIGxvYWQgYXBwbGljYXRpb24gZW52aXJvbm1lbnQnKTtcbiAgICB9XG4gICAgcmV0dXJuIGVudmlyb25tZW50O1xuICB9XG5cbiAgYXN5bmMgZnVuY3Rpb24gYm9vdHN0cmFwQXBwbGljYXRpb25XaXRoRW52aXJvbm1lbnQoXG4gICAgcGFyYW1zOiBQYXJhbWV0ZXJzPHR5cGVvZiBsb2FkZXI+LFxuICAgIC4uLmFyZ3M6IFBhcmFtZXRlcnM8dHlwZW9mIGJvb3RzdHJhcEFwcGxpY2F0aW9uPlxuICApOiBQcm9taXNlPEFwcGxpY2F0aW9uUmVmPiB7XG4gICAgYXdhaXQgbG9hZEFwcGxpY2F0aW9uRW52aXJvbm1lbnQoLi4ucGFyYW1zKTtcblxuICAgIHJldHVybiBib290c3RyYXBBcHBsaWNhdGlvbiguLi5hcmdzKTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgQVBQTElDQVRJT05fRU5WSVJPTk1FTlQsXG4gICAgaW5qZWN0QXBwbGljYXRpb25FbnZpcm9ubWVudCxcbiAgICBib290c3RyYXBBcHBsaWNhdGlvbldpdGhFbnZpcm9ubWVudCxcbiAgICBsb2FkQXBwbGljYXRpb25FbnZpcm9ubWVudCxcbiAgfTtcbn1cbiJdfQ==
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb24tZW52aXJvbm1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvc2RrL3NyYy9saWIvYXBwbGljYXRpb24tZW52aXJvbm1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFrQixNQUFNLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBSXhELE1BQU0sVUFBVSxzQ0FBc0MsQ0FDcEQsT0FBd0M7SUFFeEMsTUFBTSxLQUFLLEdBQUcsSUFBSSxrQkFBa0IsQ0FBQywwQ0FBMEMsQ0FBQyxDQUFDO0lBRWpGLE9BQU8sQ0FBQyxHQUFHLElBQStDLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQVUsR0FBRyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxHQUFJLENBQUMsQ0FBQyxDQUFDO0FBQzlILENBQUM7QUFFRCxNQUFNLFVBQVUsNEJBQTRCLENBQWlDLE1BQWtEO0lBQzdILElBQUksV0FBaUIsQ0FBQztJQUN0QixNQUFNLHVCQUF1QixHQUFHLElBQUksY0FBYyxDQUFPLDBDQUEwQyxFQUFFO1FBQ25HLFVBQVUsRUFBRSxNQUFNO1FBQ2xCLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxXQUFtQjtLQUNuQyxDQUFDLENBQUM7SUFFSCxTQUFTLDRCQUE0QjtRQUNuQyxPQUFPLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxLQUFLLFVBQVUsMEJBQTBCLENBQUMsR0FBRyxJQUErQjtRQUMxRSxXQUFXLEdBQUcsTUFBTSxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUNwQyxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ2hCLE1BQU0sSUFBSSxLQUFLLENBQUMsd0RBQXdELENBQUMsQ0FBQztTQUMzRTtRQUNELE9BQU8sV0FBVyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxLQUFLLFVBQVUsbUNBQW1DLENBQ2hELE1BQWlDLEVBQ2pDLEdBQUcsSUFBNkM7UUFFaEQsTUFBTSwwQkFBMEIsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDO1FBRTVDLE9BQU8sb0JBQW9CLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsT0FBTztRQUNMLHVCQUF1QjtRQUN2Qiw0QkFBNEI7UUFDNUIsbUNBQW1DO1FBQ25DLDBCQUEwQjtLQUMzQixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFwcGxpY2F0aW9uUmVmLCBpbmplY3QsIEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBib290c3RyYXBBcHBsaWNhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgQ2FjaGVTdG9yYWdlQ2xpZW50IH0gZnJvbSAnQG9keC9hbmd1bGFyL3V0aWxzJztcblxuZXhwb3J0IHR5cGUgQXBwbGljYXRpb25FbnZpcm9ubWVudExvYWRlcjxFbnZpcm9ubWVudERhdGEsIFBhcmFtcyBleHRlbmRzIHVua25vd25bXT4gPSAoLi4uYXJnczogUGFyYW1zKSA9PiBQcm9taXNlPEVudmlyb25tZW50RGF0YT47XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVIdHRwQXBwbGljYXRpb25FbnZpcm9ubWVudExvYWRlcjxEYXRhPihcbiAgaGFuZGxlcjogKGR0bzogdW5rbm93bikgPT4gUHJvbWlzZTxEYXRhPixcbik6IEFwcGxpY2F0aW9uRW52aXJvbm1lbnRMb2FkZXI8RGF0YSwgUGFyYW1ldGVyczxDYWNoZVN0b3JhZ2VDbGllbnRbJ3JlcXVlc3QnXT4+IHtcbiAgY29uc3QgY2FjaGUgPSBuZXcgQ2FjaGVTdG9yYWdlQ2xpZW50KCdAb2R4L2FuZ3VsYXIvc2RrOjpBcHBsaWNhdGlvbkVudmlyb25tZW50Jyk7XG5cbiAgcmV0dXJuICguLi5hcmdzOiBQYXJhbWV0ZXJzPENhY2hlU3RvcmFnZUNsaWVudFsncmVxdWVzdCddPikgPT4gY2FjaGUucmVxdWVzdDx1bmtub3duPiguLi5hcmdzKS50aGVuKChkdG8pID0+IGhhbmRsZXIoZHRvISkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQXBwbGljYXRpb25FbnZpcm9ubWVudDxEYXRhLCBQYXJhbXMgZXh0ZW5kcyB1bmtub3duW10+KGxvYWRlcjogQXBwbGljYXRpb25FbnZpcm9ubWVudExvYWRlcjxEYXRhLCBQYXJhbXM+KSB7XG4gIGxldCBlbnZpcm9ubWVudDogRGF0YTtcbiAgY29uc3QgQVBQTElDQVRJT05fRU5WSVJPTk1FTlQgPSBuZXcgSW5qZWN0aW9uVG9rZW48RGF0YT4oJ0BvZHgvYW5ndWxhci9zZGs6OkFwcGxpY2F0aW9uRW52aXJvbm1lbnQnLCB7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxuICAgIGZhY3Rvcnk6ICgpID0+IGVudmlyb25tZW50IGFzIERhdGEsXG4gIH0pO1xuXG4gIGZ1bmN0aW9uIGluamVjdEFwcGxpY2F0aW9uRW52aXJvbm1lbnQoKTogRGF0YSB7XG4gICAgcmV0dXJuIGluamVjdChBUFBMSUNBVElPTl9FTlZJUk9OTUVOVCk7XG4gIH1cblxuICBhc3luYyBmdW5jdGlvbiBsb2FkQXBwbGljYXRpb25FbnZpcm9ubWVudCguLi5hcmdzOiBQYXJhbWV0ZXJzPHR5cGVvZiBsb2FkZXI+KTogUHJvbWlzZTxEYXRhPiB7XG4gICAgZW52aXJvbm1lbnQgPSBhd2FpdCBsb2FkZXIoLi4uYXJncyk7XG4gICAgaWYgKCFlbnZpcm9ubWVudCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdbQG9keC9hbmd1bGFyL3Nka10gRmFpbGVkIGxvYWQgYXBwbGljYXRpb24gZW52aXJvbm1lbnQnKTtcbiAgICB9XG4gICAgcmV0dXJuIGVudmlyb25tZW50O1xuICB9XG5cbiAgYXN5bmMgZnVuY3Rpb24gYm9vdHN0cmFwQXBwbGljYXRpb25XaXRoRW52aXJvbm1lbnQoXG4gICAgcGFyYW1zOiBQYXJhbWV0ZXJzPHR5cGVvZiBsb2FkZXI+LFxuICAgIC4uLmFyZ3M6IFBhcmFtZXRlcnM8dHlwZW9mIGJvb3RzdHJhcEFwcGxpY2F0aW9uPlxuICApOiBQcm9taXNlPEFwcGxpY2F0aW9uUmVmPiB7XG4gICAgYXdhaXQgbG9hZEFwcGxpY2F0aW9uRW52aXJvbm1lbnQoLi4ucGFyYW1zKTtcblxuICAgIHJldHVybiBib290c3RyYXBBcHBsaWNhdGlvbiguLi5hcmdzKTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgQVBQTElDQVRJT05fRU5WSVJPTk1FTlQsXG4gICAgaW5qZWN0QXBwbGljYXRpb25FbnZpcm9ubWVudCxcbiAgICBib290c3RyYXBBcHBsaWNhdGlvbldpdGhFbnZpcm9ubWVudCxcbiAgICBsb2FkQXBwbGljYXRpb25FbnZpcm9ubWVudCxcbiAgfTtcbn1cbiJdfQ==
@@ -0,0 +1,53 @@
1
+ export const HTTP_ETAG_HEADER = 'Etag';
2
+ export const HTTP_IF_NONE_MATCH_HEADER = 'If-None-Match';
3
+ export const HTTP_CACHE_CONTROL_HEADER = 'Cache-Control';
4
+ export class CacheStorageClient {
5
+ constructor(cacheKey, cacheStorage = window.caches) {
6
+ this.cacheKey = cacheKey;
7
+ this.cacheStorage = cacheStorage;
8
+ }
9
+ async delete(request) {
10
+ const cache = await this.getCache();
11
+ return cache.delete(request);
12
+ }
13
+ async deleteAll() {
14
+ const cache = await this.getCache();
15
+ for (const key of await cache.keys()) {
16
+ await cache.delete(key);
17
+ }
18
+ }
19
+ async request(requestInfo, shouldDelete = ({ status }) => status >= 400 && status < 500) {
20
+ const cache = await this.getCache();
21
+ const request = await this.prepareRequest(cache, requestInfo);
22
+ const response = await this.sendRequest(cache, request);
23
+ if (response && shouldDelete?.(response)) {
24
+ await cache.delete(request);
25
+ }
26
+ return response?.json() ?? null;
27
+ }
28
+ async getCache() {
29
+ return this.cacheStorage.open(this.cacheKey);
30
+ }
31
+ async prepareRequest(cache, requestInfo) {
32
+ const cachedResponse = await cache.match(requestInfo);
33
+ const etag = cachedResponse?.headers?.get(HTTP_ETAG_HEADER) ?? null;
34
+ const request = new Request(requestInfo);
35
+ if (etag) {
36
+ request.headers.set(HTTP_IF_NONE_MATCH_HEADER, etag);
37
+ }
38
+ return request;
39
+ }
40
+ async sendRequest(cache, request) {
41
+ const response = await fetch(request).catch(() => null);
42
+ const cacheControl = response?.headers?.get(HTTP_CACHE_CONTROL_HEADER);
43
+ if (cacheControl === 'no-cache') {
44
+ await cache.delete(request);
45
+ return response;
46
+ }
47
+ if (response?.ok) {
48
+ await cache.put(request, response).catch(() => null);
49
+ }
50
+ return cache.match(request).then((res) => res ?? null);
51
+ }
52
+ }
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGUtc3RvcmFnZS1jbGllbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvdXRpbHMvc3JjL2xpYi9oZWxwZXJzL2NhY2hlLXN0b3JhZ2UtY2xpZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLE1BQU0sQ0FBQztBQUN2QyxNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxlQUFlLENBQUM7QUFDekQsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsZUFBZSxDQUFDO0FBRXpELE1BQU0sT0FBTyxrQkFBa0I7SUFDN0IsWUFDbUIsUUFBZ0IsRUFDaEIsZUFBZSxNQUFNLENBQUMsTUFBTTtRQUQ1QixhQUFRLEdBQVIsUUFBUSxDQUFRO1FBQ2hCLGlCQUFZLEdBQVosWUFBWSxDQUFnQjtJQUM1QyxDQUFDO0lBRUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUEwQjtRQUM1QyxNQUFNLEtBQUssR0FBRyxNQUFNLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUVwQyxPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVNLEtBQUssQ0FBQyxTQUFTO1FBQ3BCLE1BQU0sS0FBSyxHQUFHLE1BQU0sSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3BDLEtBQUssTUFBTSxHQUFHLElBQUksTUFBTSxLQUFLLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDcEMsTUFBTSxLQUFLLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ3pCO0lBQ0gsQ0FBQztJQUVNLEtBQUssQ0FBQyxPQUFPLENBQUksV0FBOEIsRUFBRSxlQUFlLENBQUMsRUFBRSxNQUFNLEVBQVksRUFBRSxFQUFFLENBQUMsTUFBTSxJQUFJLEdBQUcsSUFBSSxNQUFNLEdBQUcsR0FBRztRQUM1SCxNQUFNLEtBQUssR0FBRyxNQUFNLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNwQyxNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQzlELE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDeEQsSUFBSSxRQUFRLElBQUksWUFBWSxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDeEMsTUFBTSxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQzdCO1FBQ0QsT0FBTyxRQUFRLEVBQUUsSUFBSSxFQUFFLElBQUksSUFBSSxDQUFDO0lBQ2xDLENBQUM7SUFFUyxLQUFLLENBQUMsUUFBUTtRQUN0QixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRVMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxLQUFZLEVBQUUsV0FBOEI7UUFDekUsTUFBTSxjQUFjLEdBQUcsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3RELE1BQU0sSUFBSSxHQUFHLGNBQWMsRUFBRSxPQUFPLEVBQUUsR0FBRyxDQUFDLGdCQUFnQixDQUFDLElBQUksSUFBSSxDQUFDO1FBQ3BFLE1BQU0sT0FBTyxHQUFHLElBQUksT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3pDLElBQUksSUFBSSxFQUFFO1lBQ1IsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMseUJBQXlCLEVBQUUsSUFBSSxDQUFDLENBQUM7U0FDdEQ7UUFFRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRVMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxLQUFZLEVBQUUsT0FBZ0I7UUFDeEQsTUFBTSxRQUFRLEdBQUcsTUFBTSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hELE1BQU0sWUFBWSxHQUFHLFFBQVEsRUFBRSxPQUFPLEVBQUUsR0FBRyxDQUFDLHlCQUF5QixDQUFDLENBQUM7UUFDdkUsSUFBSSxZQUFZLEtBQUssVUFBVSxFQUFFO1lBQy9CLE1BQU0sS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUU1QixPQUFPLFFBQVEsQ0FBQztTQUNqQjtRQUNELElBQUksUUFBUSxFQUFFLEVBQUUsRUFBRTtZQUNoQixNQUFNLEtBQUssQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUN0RDtRQUVELE9BQU8sS0FBSyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsQ0FBQztJQUN6RCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgSFRUUF9FVEFHX0hFQURFUiA9ICdFdGFnJztcbmV4cG9ydCBjb25zdCBIVFRQX0lGX05PTkVfTUFUQ0hfSEVBREVSID0gJ0lmLU5vbmUtTWF0Y2gnO1xuZXhwb3J0IGNvbnN0IEhUVFBfQ0FDSEVfQ09OVFJPTF9IRUFERVIgPSAnQ2FjaGUtQ29udHJvbCc7XG5cbmV4cG9ydCBjbGFzcyBDYWNoZVN0b3JhZ2VDbGllbnQge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNhY2hlS2V5OiBzdHJpbmcsXG4gICAgcHJpdmF0ZSByZWFkb25seSBjYWNoZVN0b3JhZ2UgPSB3aW5kb3cuY2FjaGVzLFxuICApIHt9XG5cbiAgcHVibGljIGFzeW5jIGRlbGV0ZShyZXF1ZXN0OiBSZXF1ZXN0SW5mbyB8IFVSTCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IGNhY2hlID0gYXdhaXQgdGhpcy5nZXRDYWNoZSgpO1xuXG4gICAgcmV0dXJuIGNhY2hlLmRlbGV0ZShyZXF1ZXN0KTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBkZWxldGVBbGwoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgY2FjaGUgPSBhd2FpdCB0aGlzLmdldENhY2hlKCk7XG4gICAgZm9yIChjb25zdCBrZXkgb2YgYXdhaXQgY2FjaGUua2V5cygpKSB7XG4gICAgICBhd2FpdCBjYWNoZS5kZWxldGUoa2V5KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgcmVxdWVzdDxUPihyZXF1ZXN0SW5mbzogUmVxdWVzdEluZm8gfCBVUkwsIHNob3VsZERlbGV0ZSA9ICh7IHN0YXR1cyB9OiBSZXNwb25zZSkgPT4gc3RhdHVzID49IDQwMCAmJiBzdGF0dXMgPCA1MDApOiBQcm9taXNlPFQgfCBudWxsPiB7XG4gICAgY29uc3QgY2FjaGUgPSBhd2FpdCB0aGlzLmdldENhY2hlKCk7XG4gICAgY29uc3QgcmVxdWVzdCA9IGF3YWl0IHRoaXMucHJlcGFyZVJlcXVlc3QoY2FjaGUsIHJlcXVlc3RJbmZvKTtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMuc2VuZFJlcXVlc3QoY2FjaGUsIHJlcXVlc3QpO1xuICAgIGlmIChyZXNwb25zZSAmJiBzaG91bGREZWxldGU/LihyZXNwb25zZSkpIHtcbiAgICAgIGF3YWl0IGNhY2hlLmRlbGV0ZShyZXF1ZXN0KTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3BvbnNlPy5qc29uKCkgPz8gbnVsbDtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBnZXRDYWNoZSgpOiBQcm9taXNlPENhY2hlPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGVTdG9yYWdlLm9wZW4odGhpcy5jYWNoZUtleSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgcHJlcGFyZVJlcXVlc3QoY2FjaGU6IENhY2hlLCByZXF1ZXN0SW5mbzogUmVxdWVzdEluZm8gfCBVUkwpOiBQcm9taXNlPFJlcXVlc3Q+IHtcbiAgICBjb25zdCBjYWNoZWRSZXNwb25zZSA9IGF3YWl0IGNhY2hlLm1hdGNoKHJlcXVlc3RJbmZvKTtcbiAgICBjb25zdCBldGFnID0gY2FjaGVkUmVzcG9uc2U/LmhlYWRlcnM/LmdldChIVFRQX0VUQUdfSEVBREVSKSA/PyBudWxsO1xuICAgIGNvbnN0IHJlcXVlc3QgPSBuZXcgUmVxdWVzdChyZXF1ZXN0SW5mbyk7XG4gICAgaWYgKGV0YWcpIHtcbiAgICAgIHJlcXVlc3QuaGVhZGVycy5zZXQoSFRUUF9JRl9OT05FX01BVENIX0hFQURFUiwgZXRhZyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlcXVlc3Q7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgc2VuZFJlcXVlc3QoY2FjaGU6IENhY2hlLCByZXF1ZXN0OiBSZXF1ZXN0KTogUHJvbWlzZTxSZXNwb25zZSB8IG51bGw+IHtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKHJlcXVlc3QpLmNhdGNoKCgpID0+IG51bGwpO1xuICAgIGNvbnN0IGNhY2hlQ29udHJvbCA9IHJlc3BvbnNlPy5oZWFkZXJzPy5nZXQoSFRUUF9DQUNIRV9DT05UUk9MX0hFQURFUik7XG4gICAgaWYgKGNhY2hlQ29udHJvbCA9PT0gJ25vLWNhY2hlJykge1xuICAgICAgYXdhaXQgY2FjaGUuZGVsZXRlKHJlcXVlc3QpO1xuXG4gICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgfVxuICAgIGlmIChyZXNwb25zZT8ub2spIHtcbiAgICAgIGF3YWl0IGNhY2hlLnB1dChyZXF1ZXN0LCByZXNwb25zZSkuY2F0Y2goKCkgPT4gbnVsbCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNhY2hlLm1hdGNoKHJlcXVlc3QpLnRoZW4oKHJlcykgPT4gcmVzID8/IG51bGwpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,5 @@
1
+ export function getLanguageCode(language) {
2
+ const [languageCode] = language.split(/-|_/);
3
+ return languageCode?.toLowerCase();
4
+ }
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWxhbmd1YWdlLWNvZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvdXRpbHMvc3JjL2xpYi9oZWxwZXJzL2dldC1sYW5ndWFnZS1jb2RlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sVUFBVSxlQUFlLENBQUMsUUFBZ0I7SUFDOUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7SUFFN0MsT0FBTyxZQUFZLEVBQUUsV0FBVyxFQUFFLENBQUM7QUFDckMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBnZXRMYW5ndWFnZUNvZGUobGFuZ3VhZ2U6IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IFtsYW5ndWFnZUNvZGVdID0gbGFuZ3VhZ2Uuc3BsaXQoLy18Xy8pO1xuXG4gIHJldHVybiBsYW5ndWFnZUNvZGU/LnRvTG93ZXJDYXNlKCk7XG59XG4iXX0=
@@ -2,18 +2,21 @@ export * from './angular';
2
2
  export * from './array';
3
3
  export * from './build-url';
4
4
  export * from './build-website-url';
5
+ export * from './cache-storage-client';
5
6
  export * from './coercion';
6
7
  export * from './debounce';
7
8
  export * from './defer-fn';
8
9
  export * from './dom';
9
10
  export * from './event-manager';
10
11
  export * from './get-axis';
12
+ export * from './get-language-code';
11
13
  export * from './get-opposite-side';
12
14
  export * from './get-side';
13
15
  export * from './get-unique-id';
16
+ export * from './match-url';
14
17
  export * from './ng-changes';
15
18
  export * from './provide-config';
16
19
  export * from './queue';
17
20
  export * from './type-guards';
18
21
  export * from './until-destroyed';
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvdXRpbHMvc3JjL2xpYi9oZWxwZXJzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsU0FBUyxDQUFDO0FBQ3hCLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxPQUFPLENBQUM7QUFDdEIsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLG1CQUFtQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9hbmd1bGFyJztcbmV4cG9ydCAqIGZyb20gJy4vYXJyYXknO1xuZXhwb3J0ICogZnJvbSAnLi9idWlsZC11cmwnO1xuZXhwb3J0ICogZnJvbSAnLi9idWlsZC13ZWJzaXRlLXVybCc7XG5leHBvcnQgKiBmcm9tICcuL2NvZXJjaW9uJztcbmV4cG9ydCAqIGZyb20gJy4vZGVib3VuY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9kZWZlci1mbic7XG5leHBvcnQgKiBmcm9tICcuL2RvbSc7XG5leHBvcnQgKiBmcm9tICcuL2V2ZW50LW1hbmFnZXInO1xuZXhwb3J0ICogZnJvbSAnLi9nZXQtYXhpcyc7XG5leHBvcnQgKiBmcm9tICcuL2dldC1vcHBvc2l0ZS1zaWRlJztcbmV4cG9ydCAqIGZyb20gJy4vZ2V0LXNpZGUnO1xuZXhwb3J0ICogZnJvbSAnLi9nZXQtdW5pcXVlLWlkJztcbmV4cG9ydCAqIGZyb20gJy4vbmctY2hhbmdlcyc7XG5leHBvcnQgKiBmcm9tICcuL3Byb3ZpZGUtY29uZmlnJztcbmV4cG9ydCAqIGZyb20gJy4vcXVldWUnO1xuZXhwb3J0ICogZnJvbSAnLi90eXBlLWd1YXJkcyc7XG5leHBvcnQgKiBmcm9tICcuL3VudGlsLWRlc3Ryb3llZCc7XG4iXX0=
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvdXRpbHMvc3JjL2xpYi9oZWxwZXJzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsU0FBUyxDQUFDO0FBQ3hCLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLE9BQU8sQ0FBQztBQUN0QixjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxTQUFTLENBQUM7QUFDeEIsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxtQkFBbUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYW5ndWxhcic7XG5leHBvcnQgKiBmcm9tICcuL2FycmF5JztcbmV4cG9ydCAqIGZyb20gJy4vYnVpbGQtdXJsJztcbmV4cG9ydCAqIGZyb20gJy4vYnVpbGQtd2Vic2l0ZS11cmwnO1xuZXhwb3J0ICogZnJvbSAnLi9jYWNoZS1zdG9yYWdlLWNsaWVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NvZXJjaW9uJztcbmV4cG9ydCAqIGZyb20gJy4vZGVib3VuY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9kZWZlci1mbic7XG5leHBvcnQgKiBmcm9tICcuL2RvbSc7XG5leHBvcnQgKiBmcm9tICcuL2V2ZW50LW1hbmFnZXInO1xuZXhwb3J0ICogZnJvbSAnLi9nZXQtYXhpcyc7XG5leHBvcnQgKiBmcm9tICcuL2dldC1sYW5ndWFnZS1jb2RlJztcbmV4cG9ydCAqIGZyb20gJy4vZ2V0LW9wcG9zaXRlLXNpZGUnO1xuZXhwb3J0ICogZnJvbSAnLi9nZXQtc2lkZSc7XG5leHBvcnQgKiBmcm9tICcuL2dldC11bmlxdWUtaWQnO1xuZXhwb3J0ICogZnJvbSAnLi9tYXRjaC11cmwnO1xuZXhwb3J0ICogZnJvbSAnLi9uZy1jaGFuZ2VzJztcbmV4cG9ydCAqIGZyb20gJy4vcHJvdmlkZS1jb25maWcnO1xuZXhwb3J0ICogZnJvbSAnLi9xdWV1ZSc7XG5leHBvcnQgKiBmcm9tICcuL3R5cGUtZ3VhcmRzJztcbmV4cG9ydCAqIGZyb20gJy4vdW50aWwtZGVzdHJveWVkJztcbiJdfQ==
@@ -0,0 +1,8 @@
1
+ import { isString } from './type-guards';
2
+ export function isUrlMatcher(value) {
3
+ return isString(value) || value instanceof RegExp;
4
+ }
5
+ export function matchUrl(url, filter) {
6
+ return isString(filter) ? url.startsWith(filter) : !!url.match(filter);
7
+ }
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0Y2gtdXJsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3V0aWxzL3NyYy9saWIvaGVscGVycy9tYXRjaC11cmwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6QyxNQUFNLFVBQVUsWUFBWSxDQUFDLEtBQWM7SUFDekMsT0FBTyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxZQUFZLE1BQU0sQ0FBQztBQUNwRCxDQUFDO0FBRUQsTUFBTSxVQUFVLFFBQVEsQ0FBQyxHQUFXLEVBQUUsTUFBdUI7SUFDM0QsT0FBTyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ3pFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc1N0cmluZyB9IGZyb20gJy4vdHlwZS1ndWFyZHMnO1xuXG5leHBvcnQgZnVuY3Rpb24gaXNVcmxNYXRjaGVyKHZhbHVlOiB1bmtub3duKTogdmFsdWUgaXMgc3RyaW5nIHwgUmVnRXhwIHtcbiAgcmV0dXJuIGlzU3RyaW5nKHZhbHVlKSB8fCB2YWx1ZSBpbnN0YW5jZW9mIFJlZ0V4cDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1hdGNoVXJsKHVybDogc3RyaW5nLCBmaWx0ZXI6IHN0cmluZyB8IFJlZ0V4cCk6IGJvb2xlYW4ge1xuICByZXR1cm4gaXNTdHJpbmcoZmlsdGVyKSA/IHVybC5zdGFydHNXaXRoKGZpbHRlcikgOiAhIXVybC5tYXRjaChmaWx0ZXIpO1xufVxuIl19
@@ -1,12 +1,26 @@
1
1
  import { inject, InjectionToken } from '@angular/core';
2
2
  import { deepmerge } from '@odx/angular/internal';
3
- export function provideConfig(token, config) {
3
+ export function provideConfig(token, config, transform = () => ({})) {
4
+ const prepareConfig = (value) => deepmerge(value, transform(value));
4
5
  if ('useFactory' in config) {
5
- return { provide: token, useFactory: config.useFactory, deps: config.deps };
6
+ return {
7
+ provide: token,
8
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
9
+ useFactory: (...args) => prepareConfig(config.useFactory(...args)),
10
+ deps: config.deps,
11
+ };
6
12
  }
7
- return { provide: token, useValue: config };
13
+ return {
14
+ provide: token,
15
+ useFactory: () => prepareConfig(config),
16
+ };
17
+ }
18
+ function mergeConfig(token, defaultValue) {
19
+ const config = inject(token);
20
+ const parentConfig = inject(token, { skipSelf: true, optional: true }) ?? {};
21
+ return deepmerge(defaultValue, parentConfig, config);
8
22
  }
9
- export function createConfigTokens(name, prefix, defaultValue) {
23
+ export function createConfigTokens(name, prefix, defaultValue, transform) {
10
24
  const configName = `${name}Config`;
11
25
  const defaultConfigName = `${name}DefaultConfig`;
12
26
  const injectConfigName = `inject${name}Config`;
@@ -16,10 +30,8 @@ export function createConfigTokens(name, prefix, defaultValue) {
16
30
  return {
17
31
  [configName]: token,
18
32
  [defaultConfigName]: defaultValue,
19
- [injectConfigName]: () => deepmerge(defaultValue, inject(token, { skipSelf: true, optional: true }) ?? {}, inject(token)),
20
- [provideConfigName]: (config) => {
21
- return provideConfig(token, config);
22
- },
33
+ [injectConfigName]: () => mergeConfig(token, defaultValue),
34
+ [provideConfigName]: ((config) => provideConfig(token, config, transform)),
23
35
  };
24
36
  }
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZS1jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvdXRpbHMvc3JjL2xpYi9oZWxwZXJzL3Byb3ZpZGUtY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBbUIsTUFBTSxFQUFFLGNBQWMsRUFBdUIsTUFBTSxlQUFlLENBQUM7QUFFN0YsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBV2xELE1BQU0sVUFBVSxhQUFhLENBQzNCLEtBQWlDLEVBQ2pDLE1BQTRCO0lBRTVCLElBQUksWUFBWSxJQUFJLE1BQU0sRUFBRTtRQUMxQixPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSxDQUFDLFVBQVUsRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO0tBQzdFO0lBQ0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxDQUFDO0FBQzlDLENBQUM7QUFFRCxNQUFNLFVBQVUsa0JBQWtCLENBQXNCLElBQU8sRUFBRSxNQUFjLEVBQUUsWUFBZTtJQUc5RixNQUFNLFVBQVUsR0FBRyxHQUFHLElBQUksUUFBaUIsQ0FBQztJQUM1QyxNQUFNLGlCQUFpQixHQUFHLEdBQUcsSUFBSSxlQUF3QixDQUFDO0lBQzFELE1BQU0sZ0JBQWdCLEdBQUcsU0FBUyxJQUFJLFFBQWlCLENBQUM7SUFDeEQsTUFBTSxpQkFBaUIsR0FBRyxVQUFVLElBQUksUUFBaUIsQ0FBQztJQUMxRCxNQUFNLFNBQVMsR0FBRyxHQUFHLE1BQU0sS0FBSyxVQUFVLEVBQUUsQ0FBQztJQUM3QyxNQUFNLEtBQUssR0FBRyxJQUFJLGNBQWMsQ0FBYSxTQUFTLEVBQUUsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDO0lBRTdHLE9BQU87UUFDTCxDQUFDLFVBQVUsQ0FBQyxFQUFFLEtBQUs7UUFDbkIsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLFlBQVk7UUFDakMsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxZQUFZLEVBQUUsTUFBTSxDQUFDLEtBQUssRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6SCxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQyxNQUF5QixFQUFFLEVBQUU7WUFDakQsT0FBTyxhQUFhLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3RDLENBQUM7S0FJaUQsQ0FBQztBQUN2RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmFjdG9yeVByb3ZpZGVyLCBpbmplY3QsIEluamVjdGlvblRva2VuLCBUeXBlLCBWYWx1ZVByb3ZpZGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IGRlZXBtZXJnZSB9IGZyb20gJ0BvZHgvYW5ndWxhci9pbnRlcm5hbCc7XG5cbmludGVyZmFjZSBDb25maWdGYWN0b3J5UHJvdmlkZXI8VCwgRCBleHRlbmRzIENvbmZpZ0RlcGVuZGVuY2llcz4ge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICB1c2VGYWN0b3J5OiAoLi4uYXJnczogeyBbSSBpbiBrZXlvZiBEXTogRFtJXSBleHRlbmRzIFR5cGU8dW5rbm93bj4gPyBJbnN0YW5jZVR5cGU8RFtJXT4gOiBEW0ldIGV4dGVuZHMgSW5qZWN0aW9uVG9rZW48dW5rbm93bj4gPyBhbnkgOiBuZXZlciB9KSA9PiBUO1xuICBkZXBzPzogWy4uLkRdO1xufVxuXG5leHBvcnQgdHlwZSBDb25maWdEZXBlbmRlbmNpZXM8VCA9IHVua25vd24+ID0gUmVhZG9ubHlBcnJheTxUeXBlPFQ+IHwgSW5qZWN0aW9uVG9rZW48VD4+O1xuZXhwb3J0IHR5cGUgQ29uZmlnUHJvdmlkZXI8VCA9IHVua25vd24sIEQgZXh0ZW5kcyBDb25maWdEZXBlbmRlbmNpZXMgPSBbXT4gPSBDb25maWdGYWN0b3J5UHJvdmlkZXI8VCwgRD4gfCBUO1xuXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZUNvbmZpZzxUIGV4dGVuZHMgb2JqZWN0LCBEIGV4dGVuZHMgQ29uZmlnRGVwZW5kZW5jaWVzID0gQ29uZmlnRGVwZW5kZW5jaWVzPihcbiAgdG9rZW46IEluamVjdGlvblRva2VuPFQ+IHwgc3RyaW5nLFxuICBjb25maWc6IENvbmZpZ1Byb3ZpZGVyPFQsIEQ+XG4pOiBGYWN0b3J5UHJvdmlkZXIgfCBWYWx1ZVByb3ZpZGVyIHtcbiAgaWYgKCd1c2VGYWN0b3J5JyBpbiBjb25maWcpIHtcbiAgICByZXR1cm4geyBwcm92aWRlOiB0b2tlbiwgdXNlRmFjdG9yeTogY29uZmlnLnVzZUZhY3RvcnksIGRlcHM6IGNvbmZpZy5kZXBzIH07XG4gIH1cbiAgcmV0dXJuIHsgcHJvdmlkZTogdG9rZW4sIHVzZVZhbHVlOiBjb25maWcgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUNvbmZpZ1Rva2VuczxULCBOIGV4dGVuZHMgc3RyaW5nPihuYW1lOiBOLCBwcmVmaXg6IHN0cmluZywgZGVmYXVsdFZhbHVlOiBUKSB7XG4gIHR5cGUgQ29uZmlnUHJvdmlkZXJGbiA9IDxEIGV4dGVuZHMgQ29uZmlnRGVwZW5kZW5jaWVzID0gQ29uZmlnRGVwZW5kZW5jaWVzPFQ+Pihjb25maWc6IENvbmZpZ1Byb3ZpZGVyPFBhcnRpYWw8VD4sIEQ+KSA9PiBGYWN0b3J5UHJvdmlkZXIgfCBWYWx1ZVByb3ZpZGVyO1xuXG4gIGNvbnN0IGNvbmZpZ05hbWUgPSBgJHtuYW1lfUNvbmZpZ2AgYXMgY29uc3Q7XG4gIGNvbnN0IGRlZmF1bHRDb25maWdOYW1lID0gYCR7bmFtZX1EZWZhdWx0Q29uZmlnYCBhcyBjb25zdDtcbiAgY29uc3QgaW5qZWN0Q29uZmlnTmFtZSA9IGBpbmplY3Qke25hbWV9Q29uZmlnYCBhcyBjb25zdDtcbiAgY29uc3QgcHJvdmlkZUNvbmZpZ05hbWUgPSBgcHJvdmlkZSR7bmFtZX1Db25maWdgIGFzIGNvbnN0O1xuICBjb25zdCB0b2tlbk5hbWUgPSBgJHtwcmVmaXh9Ojoke2NvbmZpZ05hbWV9YDtcbiAgY29uc3QgdG9rZW4gPSBuZXcgSW5qZWN0aW9uVG9rZW48UGFydGlhbDxUPj4odG9rZW5OYW1lLCB7IHByb3ZpZGVkSW46ICdyb290JywgZmFjdG9yeTogKCkgPT4gZGVmYXVsdFZhbHVlIH0pO1xuXG4gIHJldHVybiB7XG4gICAgW2NvbmZpZ05hbWVdOiB0b2tlbixcbiAgICBbZGVmYXVsdENvbmZpZ05hbWVdOiBkZWZhdWx0VmFsdWUsXG4gICAgW2luamVjdENvbmZpZ05hbWVdOiAoKSA9PiBkZWVwbWVyZ2UoZGVmYXVsdFZhbHVlLCBpbmplY3QodG9rZW4sIHsgc2tpcFNlbGY6IHRydWUsIG9wdGlvbmFsOiB0cnVlIH0pID8/IHt9LCBpbmplY3QodG9rZW4pKSxcbiAgICBbcHJvdmlkZUNvbmZpZ05hbWVdOiAoY29uZmlnOiBDb25maWdQcm92aWRlcjxUPikgPT4ge1xuICAgICAgcmV0dXJuIHByb3ZpZGVDb25maWcodG9rZW4sIGNvbmZpZyk7XG4gICAgfSxcbiAgfSBhcyBSZWNvcmQ8dHlwZW9mIGNvbmZpZ05hbWUsIEluamVjdGlvblRva2VuPFBhcnRpYWw8VD4+PiAmXG4gICAgUmVjb3JkPHR5cGVvZiBkZWZhdWx0Q29uZmlnTmFtZSwgVD4gJlxuICAgIFJlY29yZDx0eXBlb2YgaW5qZWN0Q29uZmlnTmFtZSwgKCkgPT4gVD4gJlxuICAgIFJlY29yZDx0eXBlb2YgcHJvdmlkZUNvbmZpZ05hbWUsIENvbmZpZ1Byb3ZpZGVyRm4+O1xufVxuIl19
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZS1jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvdXRpbHMvc3JjL2xpYi9oZWxwZXJzL3Byb3ZpZGUtY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBbUIsTUFBTSxFQUFFLGNBQWMsRUFBdUIsTUFBTSxlQUFlLENBQUM7QUFFN0YsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBWWxELE1BQU0sVUFBVSxhQUFhLENBQzNCLEtBQWlDLEVBQ2pDLE1BQTRCLEVBQzVCLFlBQWtDLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDO0lBRTVDLE1BQU0sYUFBYSxHQUFHLENBQUMsS0FBaUIsRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNoRixJQUFJLFlBQVksSUFBSSxNQUFNLEVBQUU7UUFDMUIsT0FBTztZQUNMLE9BQU8sRUFBRSxLQUFLO1lBQ2QsOERBQThEO1lBQzlELFVBQVUsRUFBRSxDQUFDLEdBQUcsSUFBZSxFQUFFLEVBQUUsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFJLElBQVksQ0FBQyxDQUFDO1lBQ3RGLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSTtTQUNsQixDQUFDO0tBQ0g7SUFFRCxPQUFPO1FBQ0wsT0FBTyxFQUFFLEtBQUs7UUFDZCxVQUFVLEVBQUUsR0FBRyxFQUFFLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQztLQUN4QyxDQUFDO0FBQ0osQ0FBQztBQUVELFNBQVMsV0FBVyxDQUFJLEtBQWlDLEVBQUUsWUFBZTtJQUN4RSxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDN0IsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLEtBQUssRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDO0lBRTdFLE9BQU8sU0FBUyxDQUFDLFlBQVksRUFBRSxZQUFZLEVBQUUsTUFBTSxDQUFNLENBQUM7QUFDNUQsQ0FBQztBQUVELE1BQU0sVUFBVSxrQkFBa0IsQ0FBc0IsSUFBTyxFQUFFLE1BQWMsRUFBRSxZQUFlLEVBQUUsU0FBZ0M7SUFJaEksTUFBTSxVQUFVLEdBQUcsR0FBRyxJQUFJLFFBQWlCLENBQUM7SUFDNUMsTUFBTSxpQkFBaUIsR0FBRyxHQUFHLElBQUksZUFBd0IsQ0FBQztJQUMxRCxNQUFNLGdCQUFnQixHQUFHLFNBQVMsSUFBSSxRQUFpQixDQUFDO0lBQ3hELE1BQU0saUJBQWlCLEdBQUcsVUFBVSxJQUFJLFFBQWlCLENBQUM7SUFDMUQsTUFBTSxTQUFTLEdBQUcsR0FBRyxNQUFNLEtBQUssVUFBVSxFQUFFLENBQUM7SUFDN0MsTUFBTSxLQUFLLEdBQUcsSUFBSSxjQUFjLENBQWEsU0FBUyxFQUFFLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztJQUU3RyxPQUFPO1FBQ0wsQ0FBQyxVQUFVLENBQUMsRUFBRSxLQUFLO1FBQ25CLENBQUMsaUJBQWlCLENBQUMsRUFBRSxZQUFZO1FBQ2pDLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLFlBQVksQ0FBQztRQUMxRCxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxDQUFDLENBQXFCO0tBSTVDLENBQUM7QUFDdkQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZhY3RvcnlQcm92aWRlciwgaW5qZWN0LCBJbmplY3Rpb25Ub2tlbiwgVHlwZSwgVmFsdWVQcm92aWRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBkZWVwbWVyZ2UgfSBmcm9tICdAb2R4L2FuZ3VsYXIvaW50ZXJuYWwnO1xuXG5pbnRlcmZhY2UgQ29uZmlnRmFjdG9yeVByb3ZpZGVyPFQsIEQgZXh0ZW5kcyBDb25maWdEZXBlbmRlbmNpZXM+IHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgdXNlRmFjdG9yeTogKC4uLmFyZ3M6IHsgW0kgaW4ga2V5b2YgRF06IERbSV0gZXh0ZW5kcyBUeXBlPHVua25vd24+ID8gSW5zdGFuY2VUeXBlPERbSV0+IDogRFtJXSBleHRlbmRzIEluamVjdGlvblRva2VuPHVua25vd24+ID8gYW55IDogbmV2ZXIgfSkgPT4gVDtcbiAgZGVwcz86IFsuLi5EXTtcbn1cblxuZXhwb3J0IHR5cGUgQ29uZmlnRGVwZW5kZW5jaWVzPFQgPSB1bmtub3duPiA9IFJlYWRvbmx5QXJyYXk8VHlwZTxUPiB8IEluamVjdGlvblRva2VuPFQ+PjtcbmV4cG9ydCB0eXBlIENvbmZpZ1Byb3ZpZGVyPFQgPSB1bmtub3duLCBEIGV4dGVuZHMgQ29uZmlnRGVwZW5kZW5jaWVzID0gW10+ID0gQ29uZmlnRmFjdG9yeVByb3ZpZGVyPFQsIEQ+IHwgVDtcbmV4cG9ydCB0eXBlIENvbmZpZ1RyYW5zZm9ybUZuPFQgPSB1bmtub3duPiA9IChjb25maWc6IFBhcnRpYWw8VD4pID0+IFBhcnRpYWw8VD47XG5cbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlQ29uZmlnPFQgZXh0ZW5kcyBvYmplY3QsIEQgZXh0ZW5kcyBDb25maWdEZXBlbmRlbmNpZXMgPSBDb25maWdEZXBlbmRlbmNpZXM+KFxuICB0b2tlbjogSW5qZWN0aW9uVG9rZW48VD4gfCBzdHJpbmcsXG4gIGNvbmZpZzogQ29uZmlnUHJvdmlkZXI8VCwgRD4sXG4gIHRyYW5zZm9ybTogQ29uZmlnVHJhbnNmb3JtRm48VD4gPSAoKSA9PiAoe30pLFxuKTogRmFjdG9yeVByb3ZpZGVyIHwgVmFsdWVQcm92aWRlciB7XG4gIGNvbnN0IHByZXBhcmVDb25maWcgPSAodmFsdWU6IFBhcnRpYWw8VD4pID0+IGRlZXBtZXJnZSh2YWx1ZSwgdHJhbnNmb3JtKHZhbHVlKSk7XG4gIGlmICgndXNlRmFjdG9yeScgaW4gY29uZmlnKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHByb3ZpZGU6IHRva2VuLFxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICAgIHVzZUZhY3Rvcnk6ICguLi5hcmdzOiB1bmtub3duW10pID0+IHByZXBhcmVDb25maWcoY29uZmlnLnVzZUZhY3RvcnkoLi4uKGFyZ3MgYXMgYW55KSkpLFxuICAgICAgZGVwczogY29uZmlnLmRlcHMsXG4gICAgfTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgcHJvdmlkZTogdG9rZW4sXG4gICAgdXNlRmFjdG9yeTogKCkgPT4gcHJlcGFyZUNvbmZpZyhjb25maWcpLFxuICB9O1xufVxuXG5mdW5jdGlvbiBtZXJnZUNvbmZpZzxUPih0b2tlbjogSW5qZWN0aW9uVG9rZW48UGFydGlhbDxUPj4sIGRlZmF1bHRWYWx1ZTogVCk6IFBhcnRpYWw8VD4ge1xuICBjb25zdCBjb25maWcgPSBpbmplY3QodG9rZW4pO1xuICBjb25zdCBwYXJlbnRDb25maWcgPSBpbmplY3QodG9rZW4sIHsgc2tpcFNlbGY6IHRydWUsIG9wdGlvbmFsOiB0cnVlIH0pID8/IHt9O1xuXG4gIHJldHVybiBkZWVwbWVyZ2UoZGVmYXVsdFZhbHVlLCBwYXJlbnRDb25maWcsIGNvbmZpZykgYXMgVDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUNvbmZpZ1Rva2VuczxULCBOIGV4dGVuZHMgc3RyaW5nPihuYW1lOiBOLCBwcmVmaXg6IHN0cmluZywgZGVmYXVsdFZhbHVlOiBULCB0cmFuc2Zvcm0/OiBDb25maWdUcmFuc2Zvcm1GbjxUPikge1xuICB0eXBlIENvbmZpZ1Byb3ZpZGVyRm4gPSA8RCBleHRlbmRzIENvbmZpZ0RlcGVuZGVuY2llcyA9IENvbmZpZ0RlcGVuZGVuY2llczxQYXJ0aWFsPFQ+Pj4oXG4gICAgY29uZmlnOiBDb25maWdQcm92aWRlcjxQYXJ0aWFsPFQ+LCBEPixcbiAgKSA9PiBGYWN0b3J5UHJvdmlkZXIgfCBWYWx1ZVByb3ZpZGVyO1xuICBjb25zdCBjb25maWdOYW1lID0gYCR7bmFtZX1Db25maWdgIGFzIGNvbnN0O1xuICBjb25zdCBkZWZhdWx0Q29uZmlnTmFtZSA9IGAke25hbWV9RGVmYXVsdENvbmZpZ2AgYXMgY29uc3Q7XG4gIGNvbnN0IGluamVjdENvbmZpZ05hbWUgPSBgaW5qZWN0JHtuYW1lfUNvbmZpZ2AgYXMgY29uc3Q7XG4gIGNvbnN0IHByb3ZpZGVDb25maWdOYW1lID0gYHByb3ZpZGUke25hbWV9Q29uZmlnYCBhcyBjb25zdDtcbiAgY29uc3QgdG9rZW5OYW1lID0gYCR7cHJlZml4fTo6JHtjb25maWdOYW1lfWA7XG4gIGNvbnN0IHRva2VuID0gbmV3IEluamVjdGlvblRva2VuPFBhcnRpYWw8VD4+KHRva2VuTmFtZSwgeyBwcm92aWRlZEluOiAncm9vdCcsIGZhY3Rvcnk6ICgpID0+IGRlZmF1bHRWYWx1ZSB9KTtcblxuICByZXR1cm4ge1xuICAgIFtjb25maWdOYW1lXTogdG9rZW4sXG4gICAgW2RlZmF1bHRDb25maWdOYW1lXTogZGVmYXVsdFZhbHVlLFxuICAgIFtpbmplY3RDb25maWdOYW1lXTogKCkgPT4gbWVyZ2VDb25maWcodG9rZW4sIGRlZmF1bHRWYWx1ZSksXG4gICAgW3Byb3ZpZGVDb25maWdOYW1lXTogKChjb25maWcpID0+IHByb3ZpZGVDb25maWcodG9rZW4sIGNvbmZpZywgdHJhbnNmb3JtKSkgYXMgQ29uZmlnUHJvdmlkZXJGbixcbiAgfSBhcyBSZWNvcmQ8dHlwZW9mIGNvbmZpZ05hbWUsIEluamVjdGlvblRva2VuPFBhcnRpYWw8VD4+PiAmXG4gICAgUmVjb3JkPHR5cGVvZiBkZWZhdWx0Q29uZmlnTmFtZSwgVD4gJlxuICAgIFJlY29yZDx0eXBlb2YgaW5qZWN0Q29uZmlnTmFtZSwgKCkgPT4gVD4gJlxuICAgIFJlY29yZDx0eXBlb2YgcHJvdmlkZUNvbmZpZ05hbWUsIENvbmZpZ1Byb3ZpZGVyRm4+O1xufVxuIl19
@@ -0,0 +1,42 @@
1
+ import { __decorate } from 'tslib';
2
+ import * as i0 from '@angular/core';
3
+ import { makeEnvironmentProviders, Component, ChangeDetectionStrategy, ViewEncapsulation } from '@angular/core';
4
+ import { CoreModule } from '@odx/angular';
5
+ import { DynamicViewDirective } from '@odx/angular/cdk/dynamic-view';
6
+ import { ButtonComponent } from '@odx/angular/components/button';
7
+ import { IconComponent } from '@odx/angular/components/icon';
8
+ import { LogoDirective } from '@odx/angular/components/logo';
9
+ import { CSSComponent } from '@odx/angular/internal';
10
+ import { createConfigTokens, injectElement } from '@odx/angular/utils';
11
+ import * as i1 from '@angular/common';
12
+
13
+ const { ErrorPageConfig, ErrorPageDefaultConfig, injectErrorPageConfig, provideErrorPageConfig } = createConfigTokens('ErrorPage', '@odx/components/error-page', {
14
+ title: '',
15
+ actions: [],
16
+ });
17
+ function configureErrorPage(config) {
18
+ return makeEnvironmentProviders([provideErrorPageConfig(config)]);
19
+ }
20
+
21
+ let ErrorPageComponent = class ErrorPageComponent {
22
+ constructor() {
23
+ this.element = injectElement();
24
+ this.options = injectErrorPageConfig();
25
+ }
26
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ErrorPageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
27
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ErrorPageComponent, isStandalone: true, selector: "odx-error-page", ngImport: i0, template: "<div class=\"odx-error-page__container\">\n <div class=\"odx-error-page__icon-container\">\n <odx-icon *ngIf=\"options.icon as icon; else logo\" size=\"xlarge\" [name]=\"icon\"></odx-icon>\n <ng-template #logo><odx-logo size=\"large\"></odx-logo></ng-template>\n </div>\n <div class=\"odx-error-page__title\">{{ options.title }}</div>\n <div *ngIf=\"options.description as description\" class=\"odx-error-page__description\">\n <ng-template [odxDynamicView]=\"description\"></ng-template>\n </div>\n <div class=\"odx-error-page__actions\">\n <button *ngFor=\"let button of options.actions; let isFirst = first\" [variant]=\"isFirst ? 'primary' : 'secondary'\" odxButton (click)=\"button.action()\">\n {{ button.label }}\n </button>\n </div>\n</div>\n<div *ngIf=\"options.errorMessage as errorMessage\" class=\"odx-error-page__footer\">{{ errorMessage }}</div>\n", dependencies: [{ kind: "directive", type: LogoDirective, selector: "odx-logo", inputs: ["size", "variant"] }, { kind: "component", type: IconComponent, selector: "odx-icon", inputs: ["inline", "size", "name", "iconSet"] }, { kind: "ngmodule", type: CoreModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ButtonComponent, selector: "button[odxButton], a[odxButton]", inputs: ["variant", "size"] }, { kind: "directive", type: DynamicViewDirective, selector: "ng-template[odxDynamicView]", inputs: ["odxDynamicView", "odxDynamicViewInjector", "odxDynamicViewContext"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
28
+ };
29
+ ErrorPageComponent = __decorate([
30
+ CSSComponent('error-page')
31
+ ], ErrorPageComponent);
32
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ErrorPageComponent, decorators: [{
33
+ type: Component,
34
+ args: [{ standalone: true, selector: 'odx-error-page', imports: [LogoDirective, IconComponent, CoreModule, ButtonComponent, DynamicViewDirective], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div class=\"odx-error-page__container\">\n <div class=\"odx-error-page__icon-container\">\n <odx-icon *ngIf=\"options.icon as icon; else logo\" size=\"xlarge\" [name]=\"icon\"></odx-icon>\n <ng-template #logo><odx-logo size=\"large\"></odx-logo></ng-template>\n </div>\n <div class=\"odx-error-page__title\">{{ options.title }}</div>\n <div *ngIf=\"options.description as description\" class=\"odx-error-page__description\">\n <ng-template [odxDynamicView]=\"description\"></ng-template>\n </div>\n <div class=\"odx-error-page__actions\">\n <button *ngFor=\"let button of options.actions; let isFirst = first\" [variant]=\"isFirst ? 'primary' : 'secondary'\" odxButton (click)=\"button.action()\">\n {{ button.label }}\n </button>\n </div>\n</div>\n<div *ngIf=\"options.errorMessage as errorMessage\" class=\"odx-error-page__footer\">{{ errorMessage }}</div>\n" }]
35
+ }] });
36
+
37
+ /**
38
+ * Generated bundle index. Do not edit.
39
+ */
40
+
41
+ export { ErrorPageComponent, ErrorPageConfig, ErrorPageDefaultConfig, configureErrorPage, injectErrorPageConfig, provideErrorPageConfig };
42
+ //# sourceMappingURL=odx-angular-components-error-page.mjs.map