@yuuvis/client-core 2.0.0-beta.0 → 2.0.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (105) hide show
  1. package/fesm2022/yuuvis-client-core.mjs +773 -645
  2. package/fesm2022/yuuvis-client-core.mjs.map +1 -1
  3. package/index.d.ts +7 -4
  4. package/lib/model/object-flavor.interface.d.ts +4 -1
  5. package/lib/provide.client.core.d.ts +58 -0
  6. package/lib/service/backend/backend.service.d.ts +0 -1
  7. package/lib/service/config/config.service.d.ts +0 -8
  8. package/lib/service/core-init/core-init.service.d.ts +1 -7
  9. package/lib/service/core-init/translate-json-loader.d.ts +1 -1
  10. package/lib/service/dms/dms.service.d.ts +2 -1
  11. package/lib/service/object-config/object-config.interface.d.ts +1 -1
  12. package/lib/service/object-form/object-form-translate.service.d.ts +15 -0
  13. package/lib/service/{system → object-form}/object-form.interface.d.ts +2 -2
  14. package/lib/service/object-form/object-form.model.d.ts +45 -0
  15. package/lib/service/system/system.interface.d.ts +1 -1
  16. package/lib/service/system/system.service.d.ts +1 -1
  17. package/lib/service/toast/toast.interface.d.ts +8 -0
  18. package/lib/service/toast/toast.service.d.ts +17 -0
  19. package/lib/service/toast/toast.styles.d.ts +1 -0
  20. package/lib/service/upload/upload.interface.d.ts +1 -1
  21. package/lib/service/user/user.providers.d.ts +4 -0
  22. package/lib/service/user/user.service.d.ts +2 -4
  23. package/package.json +7 -10
  24. package/esm2022/index.mjs +0 -69
  25. package/esm2022/lib/client-core.module.mjs +0 -117
  26. package/esm2022/lib/client-core.shared.module.mjs +0 -18
  27. package/esm2022/lib/common/pipes/filesize.pipe.mjs +0 -37
  28. package/esm2022/lib/common/pipes/index.mjs +0 -6
  29. package/esm2022/lib/common/pipes/keys.pipe.mjs +0 -17
  30. package/esm2022/lib/common/pipes/locale-date.pipe.mjs +0 -45
  31. package/esm2022/lib/common/pipes/locale-number.pipe.mjs +0 -115
  32. package/esm2022/lib/common/pipes/safe-html.pipe.mjs +0 -44
  33. package/esm2022/lib/common/services/native-notifications.interface.mjs +0 -2
  34. package/esm2022/lib/common/services/native-notifications.mjs +0 -40
  35. package/esm2022/lib/model/dms-object.interface.mjs +0 -2
  36. package/esm2022/lib/model/dms-object.model.mjs +0 -79
  37. package/esm2022/lib/model/object-flavor.interface.mjs +0 -2
  38. package/esm2022/lib/model/range-value.interface.mjs +0 -2
  39. package/esm2022/lib/model/yuv-error.model.mjs +0 -37
  40. package/esm2022/lib/model/yuv-user.model.mjs +0 -38
  41. package/esm2022/lib/service/audit/audit.interface.mjs +0 -2
  42. package/esm2022/lib/service/audit/audit.service.mjs +0 -135
  43. package/esm2022/lib/service/auth/auth.interceptor.mjs +0 -50
  44. package/esm2022/lib/service/auth/auth.interface.mjs +0 -7
  45. package/esm2022/lib/service/auth/auth.service.mjs +0 -130
  46. package/esm2022/lib/service/auth/oidc.service.mjs +0 -81
  47. package/esm2022/lib/service/backend/api.enum.mjs +0 -11
  48. package/esm2022/lib/service/backend/backend.interface.mjs +0 -2
  49. package/esm2022/lib/service/backend/backend.service.mjs +0 -206
  50. package/esm2022/lib/service/bpm/bpm.interface.mjs +0 -8
  51. package/esm2022/lib/service/bpm/bpm.service.mjs +0 -51
  52. package/esm2022/lib/service/cache/app-cache.service.mjs +0 -51
  53. package/esm2022/lib/service/catalog/catalog.interface.mjs +0 -2
  54. package/esm2022/lib/service/catalog/catalog.service.mjs +0 -13
  55. package/esm2022/lib/service/clipboard/clipboard.interface.mjs +0 -2
  56. package/esm2022/lib/service/clipboard/clipboard.service.mjs +0 -99
  57. package/esm2022/lib/service/config/config.interface.mjs +0 -6
  58. package/esm2022/lib/service/config/config.service.mjs +0 -115
  59. package/esm2022/lib/service/config/core-config.mjs +0 -20
  60. package/esm2022/lib/service/config/core-config.tokens.mjs +0 -9
  61. package/esm2022/lib/service/connection/connection.service.mjs +0 -36
  62. package/esm2022/lib/service/connection/offline.interceptor.mjs +0 -28
  63. package/esm2022/lib/service/core-init/core-init.service.mjs +0 -29
  64. package/esm2022/lib/service/core-init/missing-translation-handler.mjs +0 -10
  65. package/esm2022/lib/service/core-init/translate-json-loader.mjs +0 -117
  66. package/esm2022/lib/service/device/device.interface.mjs +0 -6
  67. package/esm2022/lib/service/device/device.service.mjs +0 -144
  68. package/esm2022/lib/service/dms/dms.service.interface.mjs +0 -2
  69. package/esm2022/lib/service/dms/dms.service.mjs +0 -440
  70. package/esm2022/lib/service/event/event.interface.mjs +0 -2
  71. package/esm2022/lib/service/event/event.service.mjs +0 -38
  72. package/esm2022/lib/service/event/events.mjs +0 -14
  73. package/esm2022/lib/service/idm/idm.interface.mjs +0 -2
  74. package/esm2022/lib/service/idm/idm.service.mjs +0 -34
  75. package/esm2022/lib/service/logger/logger-console.service.mjs +0 -73
  76. package/esm2022/lib/service/logger/logger.interface.mjs +0 -2
  77. package/esm2022/lib/service/logger/logger.mjs +0 -27
  78. package/esm2022/lib/service/notification/notification.service.mjs +0 -131
  79. package/esm2022/lib/service/object-config/object-config.interface.mjs +0 -2
  80. package/esm2022/lib/service/object-config/object-config.service.mjs +0 -233
  81. package/esm2022/lib/service/pending-changes/pending-changes-component.interface.mjs +0 -5
  82. package/esm2022/lib/service/pending-changes/pending-changes-guard.service.mjs +0 -25
  83. package/esm2022/lib/service/pending-changes/pending-changes.service.mjs +0 -123
  84. package/esm2022/lib/service/prediction/prediction.interface.mjs +0 -2
  85. package/esm2022/lib/service/prediction/prediction.service.mjs +0 -60
  86. package/esm2022/lib/service/retention/retention.interface.mjs +0 -2
  87. package/esm2022/lib/service/retention/retention.service.mjs +0 -65
  88. package/esm2022/lib/service/search/search.service.interface.mjs +0 -39
  89. package/esm2022/lib/service/search/search.service.mjs +0 -261
  90. package/esm2022/lib/service/search/search.utils.mjs +0 -142
  91. package/esm2022/lib/service/session-storage/session-storage.service.mjs +0 -50
  92. package/esm2022/lib/service/system/object-form.interface.mjs +0 -2
  93. package/esm2022/lib/service/system/system.enum.mjs +0 -167
  94. package/esm2022/lib/service/system/system.interface.mjs +0 -2
  95. package/esm2022/lib/service/system/system.service.mjs +0 -597
  96. package/esm2022/lib/service/upload/upload.interface.mjs +0 -2
  97. package/esm2022/lib/service/upload/upload.service.mjs +0 -228
  98. package/esm2022/lib/service/user/user-storage.service.mjs +0 -38
  99. package/esm2022/lib/service/user/user.service.mjs +0 -211
  100. package/esm2022/lib/util/utils.helper.enum.mjs +0 -15
  101. package/esm2022/lib/util/utils.mjs +0 -373
  102. package/esm2022/yuuvis-client-core.mjs +0 -5
  103. package/lib/client-core.module.d.ts +0 -20
  104. package/lib/client-core.shared.module.d.ts +0 -10
  105. package/lib/service/auth/oidc.service.d.ts +0 -16
@@ -1,115 +0,0 @@
1
- import { HttpHeaders } from '@angular/common/http';
2
- import { Injectable, inject } from '@angular/core';
3
- import { TranslateService } from '@ngx-translate/core';
4
- import { Utils } from '../../util/utils';
5
- import { ApiBase } from '../backend/api.enum';
6
- import { TENANT_HEADER } from '../system/system.enum';
7
- import { OidcService } from './../auth/oidc.service';
8
- import * as i0 from "@angular/core";
9
- /**
10
- * Load and provide configuration for hole apllication while application is inizialized.
11
- */
12
- export class ConfigService {
13
- constructor() {
14
- this.translate = inject(TranslateService);
15
- this.oidcService = inject(OidcService);
16
- }
17
- static { this.GLOBAL_RESOURCES = '/resources/config/'; }
18
- static PARSER(c) {
19
- return c?.resolved || c?.tenant || c?.global || c || {};
20
- }
21
- static GLOBAL_MAIN_CONFIG(prefix = '') {
22
- return ConfigService.GLOBAL_RESOURCES_PATH('main-config', prefix);
23
- }
24
- static GLOBAL_MAIN_CONFIG_LANG(iso = 'en', prefix = '') {
25
- return ConfigService.GLOBAL_RESOURCES_PATH('main-config-language-' + iso, prefix);
26
- }
27
- static GLOBAL_RESOURCES_PATH(section = '', prefix = '') {
28
- return (prefix ? `/${prefix}` : '') + ConfigService.GLOBAL_RESOURCES + encodeURIComponent(section) + '?filter=resolved';
29
- }
30
- get oidc() {
31
- return this.oidcService.config?.oidc;
32
- }
33
- /**
34
- * Set during app init (see CoreInit)
35
- * @ignore
36
- */
37
- set(cfg) {
38
- this.cfg = cfg;
39
- const languages = this.getClientLocales().map((lang) => lang.iso);
40
- this.translate.addLangs(languages);
41
- const browserLang = this.translate.getBrowserLang();
42
- const defaultLang = browserLang && languages.includes(browserLang) ? browserLang : this.getDefaultClientLocale();
43
- this.translate.setDefaultLang(defaultLang);
44
- this.translate.use(defaultLang);
45
- this.extendTranslations(defaultLang);
46
- }
47
- get(configKey) {
48
- return configKey ? Utils.getProperty(this.cfg, configKey) : null;
49
- }
50
- extendTranslations(translations, lang = this.translate.currentLang) {
51
- const allKeys = translations && Object.keys(this.translate.store?.translations[lang] || {});
52
- if (translations && !Object.keys(translations).every((k) => allKeys.includes(k))) {
53
- this.translate.setTranslation(lang, translations, true);
54
- }
55
- }
56
- extendConfig(configs) {
57
- this.set(this._mergeConfigs(configs || []));
58
- }
59
- _mergeConfigs(configs) {
60
- return configs.reduce((acc, x) => {
61
- // merge object values on 2nd level
62
- Object.keys(x).forEach((k) => (!acc[k] || Array.isArray(x[k]) || typeof x[k] !== 'object' ? (acc[k] = x[k]) : Object.assign(acc[k], x[k])));
63
- return acc;
64
- }, {});
65
- }
66
- authUsesOpenIdConnect() {
67
- return !!this.oidc?.host && !!this.oidc?.tenant;
68
- }
69
- /**
70
- * OpenIdConnect authorization headers
71
- */
72
- getAuthHeaders(authorization = false) {
73
- if (this.authUsesOpenIdConnect()) {
74
- let headers = new HttpHeaders().set(TENANT_HEADER, this.oidc.tenant);
75
- if (authorization) {
76
- headers = headers.set('authorization', 'Bearer ' + localStorage.getItem('access_token'));
77
- }
78
- return headers;
79
- }
80
- return new HttpHeaders();
81
- }
82
- /**
83
- * Getter for the available client locales
84
- * @returns available client locales
85
- */
86
- getClientLocales() {
87
- return this._getCoreConfig('languages');
88
- }
89
- getApiBase(api = ApiBase.apiWeb, origin = false) {
90
- api = api || ApiBase.none;
91
- const href = api === ApiBase.none ? api : `/${api}`;
92
- const host = this.oidc?.host || (origin && location.origin) || '';
93
- return href.startsWith('http') ? href : host + href;
94
- }
95
- /**
96
- * Get the default client locale
97
- * @returns ISO string of the locale
98
- */
99
- getDefaultClientLocale() {
100
- const lang = this.getClientLocales().find((_) => _.fallback);
101
- return lang ? lang.iso : 'en';
102
- }
103
- _getCoreConfig(key) {
104
- return this.cfg ? this.cfg.core[key] : undefined;
105
- }
106
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ConfigService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
107
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ConfigService, providedIn: 'root' }); }
108
- }
109
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ConfigService, decorators: [{
110
- type: Injectable,
111
- args: [{
112
- providedIn: 'root'
113
- }]
114
- }] });
115
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3l1dXZpcy9jbGllbnQtY29yZS9zcmMvbGliL3NlcnZpY2UvY29uZmlnL2NvbmZpZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDekMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7O0FBRXJEOztHQUVHO0FBSUgsTUFBTSxPQUFPLGFBQWE7SUFIMUI7UUFJVSxjQUFTLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDckMsZ0JBQVcsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7S0E2RzNDO2FBM0dRLHFCQUFnQixHQUFHLG9CQUFvQixBQUF2QixDQUF3QjtJQUUvQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQU07UUFDbEIsT0FBTyxDQUFDLEVBQUUsUUFBUSxJQUFJLENBQUMsRUFBRSxNQUFNLElBQUksQ0FBQyxFQUFFLE1BQU0sSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzFELENBQUM7SUFFRCxNQUFNLENBQUMsa0JBQWtCLENBQUMsU0FBa0MsRUFBRTtRQUM1RCxPQUFPLGFBQWEsQ0FBQyxxQkFBcUIsQ0FBQyxhQUFhLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDcEUsQ0FBQztJ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QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBIZWFkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBVdGlscyB9IGZyb20gJy4uLy4uL3V0aWwvdXRpbHMnO1xuaW1wb3J0IHsgQXBpQmFzZSB9IGZyb20gJy4uL2JhY2tlbmQvYXBpLmVudW0nO1xuaW1wb3J0IHsgVEVOQU5UX0hFQURFUiB9IGZyb20gJy4uL3N5c3RlbS9zeXN0ZW0uZW51bSc7XG5pbXBvcnQgeyBPaWRjU2VydmljZSB9IGZyb20gJy4vLi4vYXV0aC9vaWRjLnNlcnZpY2UnO1xuaW1wb3J0IHsgWXV2Q29uZmlnLCBZdXZDb25maWdMYW5ndWFnZXMgfSBmcm9tICcuL2NvbmZpZy5pbnRlcmZhY2UnO1xuLyoqXG4gKiBMb2FkIGFuZCBwcm92aWRlIGNvbmZpZ3VyYXRpb24gZm9yIGhvbGUgYXBsbGljYXRpb24gd2hpbGUgYXBwbGljYXRpb24gaXMgaW5pemlhbGl6ZWQuXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIENvbmZpZ1NlcnZpY2Uge1xuICBwcml2YXRlIHRyYW5zbGF0ZSA9IGluamVjdChUcmFuc2xhdGVTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBvaWRjU2VydmljZSA9IGluamVjdChPaWRjU2VydmljZSk7XG5cbiAgc3RhdGljIEdMT0JBTF9SRVNPVVJDRVMgPSAnL3Jlc291cmNlcy9jb25maWcvJztcblxuICBzdGF0aWMgUEFSU0VSKGM6IGFueSkge1xuICAgIHJldHVybiBjPy5yZXNvbHZlZCB8fCBjPy50ZW5hbnQgfHwgYz8uZ2xvYmFsIHx8IGMgfHwge307XG4gIH1cblxuICBzdGF0aWMgR0xPQkFMX01BSU5fQ09ORklHKHByZWZpeDogJ3N5c3RlbScgfCAnYWRtaW4nIHwgJycgPSAnJykge1xuICAgIHJldHVybiBDb25maWdTZXJ2aWNlLkdMT0JBTF9SRVNPVVJDRVNfUEFUSCgnbWFpbi1jb25maWcnLCBwcmVmaXgpO1xuICB9XG5cbiAgc3RhdGljIEdMT0JBTF9NQUlOX0NPTkZJR19MQU5HKGlzbyA9ICdlbicsIHByZWZpeDogJ3N5c3RlbScgfCAnYWRtaW4nIHwgJycgPSAnJykge1xuICAgIHJldHVybiBDb25maWdTZXJ2aWNlLkdMT0JBTF9SRVNPVVJDRVNfUEFUSCgnbWFpbi1jb25maWctbGFuZ3VhZ2UtJyArIGlzbywgcHJlZml4KTtcbiAgfVxuXG4gIHN0YXRpYyBHTE9CQUxfUkVTT1VSQ0VTX1BBVEgoc2VjdGlvbiA9ICcnLCBwcmVmaXg6ICdzeXN0ZW0nIHwgJ2FkbWluJyB8ICcnID0gJycpIHtcbiAgICByZXR1cm4gKHByZWZpeCA/IGAvJHtwcmVmaXh9YCA6ICcnKSArIENvbmZpZ1NlcnZpY2UuR0xPQkFMX1JFU09VUkNFUyArIGVuY29kZVVSSUNvbXBvbmVudChzZWN0aW9uKSArICc/ZmlsdGVyPXJlc29sdmVkJztcbiAgfVxuXG4gIGdldCBvaWRjKCkge1xuICAgIHJldHVybiB0aGlzLm9pZGNTZXJ2aWNlLmNvbmZpZz8ub2lkYztcbiAgfVxuXG4gIHByaXZhdGUgY2ZnPzogWXV2Q29uZmlnO1xuXG4gIC8qKlxuICAgKiBTZXQgZHVyaW5nIGFwcCBpbml0IChzZWUgQ29yZUluaXQpXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIHNldChjZmc6IFl1dkNvbmZpZykge1xuICAgIHRoaXMuY2ZnID0gY2ZnO1xuICAgIGNvbnN0IGxhbmd1YWdlcyA9IHRoaXMuZ2V0Q2xpZW50TG9jYWxlcygpLm1hcCgobGFuZykgPT4gbGFuZy5pc28pO1xuICAgIHRoaXMudHJhbnNsYXRlLmFkZExhbmdzKGxhbmd1YWdlcyk7XG4gICAgY29uc3QgYnJvd3NlckxhbmcgPSB0aGlzLnRyYW5zbGF0ZS5nZXRCcm93c2VyTGFuZygpO1xuICAgIGNvbnN0IGRlZmF1bHRMYW5nID0gYnJvd3NlckxhbmcgJiYgbGFuZ3VhZ2VzLmluY2x1ZGVzKGJyb3dzZXJMYW5nKSA/IGJyb3dzZXJMYW5nIDogdGhpcy5nZXREZWZhdWx0Q2xpZW50TG9jYWxlKCk7XG4gICAgdGhpcy50cmFuc2xhdGUuc2V0RGVmYXVsdExhbmcoZGVmYXVsdExhbmcpO1xuICAgIHRoaXMudHJhbnNsYXRlLnVzZShkZWZhdWx0TGFuZyk7XG4gICAgdGhpcy5leHRlbmRUcmFuc2xhdGlvbnMoZGVmYXVsdExhbmcpO1xuICB9XG5cbiAgZ2V0KGNvbmZpZ0tleTogc3RyaW5nKTogYW55IHtcbiAgICByZXR1cm4gY29uZmlnS2V5ID8gVXRpbHMuZ2V0UHJvcGVydHkodGhpcy5jZmcsIGNvbmZpZ0tleSkgOiBudWxsO1xuICB9XG5cbiAgZXh0ZW5kVHJhbnNsYXRpb25zKHRyYW5zbGF0aW9uczogYW55LCBsYW5nID0gdGhpcy50cmFuc2xhdGUuY3VycmVudExhbmcpIHtcbiAgICBjb25zdCBhbGxLZXlzID0gdHJhbnNsYXRpb25zICYmIE9iamVjdC5rZXlzKHRoaXMudHJhbnNsYXRlLnN0b3JlPy50cmFuc2xhdGlvbnNbbGFuZ10gfHwge30pO1xuICAgIGlmICh0cmFuc2xhdGlvbnMgJiYgIU9iamVjdC5rZXlzKHRyYW5zbGF0aW9ucykuZXZlcnkoKGspID0+IGFsbEtleXMuaW5jbHVkZXMoaykpKSB7XG4gICAgICB0aGlzLnRyYW5zbGF0ZS5zZXRUcmFuc2xhdGlvbihsYW5nLCB0cmFuc2xhdGlvbnMsIHRydWUpO1xuICAgIH1cbiAgfVxuXG4gIGV4dGVuZENvbmZpZyhjb25maWdzOiBZdXZDb25maWdbXSkge1xuICAgIHRoaXMuc2V0KHRoaXMuX21lcmdlQ29uZmlncyhjb25maWdzIHx8IFtdKSk7XG4gIH1cblxuICBwcml2YXRlIF9tZXJnZUNvbmZpZ3MoY29uZmlnczogYW55W10pIHtcbiAgICByZXR1cm4gY29uZmlncy5yZWR1Y2UoKGFjYywgeCkgPT4ge1xuICAgICAgLy8gbWVyZ2Ugb2JqZWN0IHZhbHVlcyBvbiAybmQgbGV2ZWxcbiAgICAgIE9iamVjdC5rZXlzKHgpLmZvckVhY2goKGspID0+ICghYWNjW2tdIHx8IEFycmF5LmlzQXJyYXkoeFtrXSkgfHwgdHlwZW9mIHhba10gIT09ICdvYmplY3QnID8gKGFjY1trXSA9IHhba10pIDogT2JqZWN0LmFzc2lnbihhY2Nba10sIHhba10pKSk7XG4gICAgICByZXR1cm4gYWNjO1xuICAgIH0sIHt9KTtcbiAgfVxuXG4gIGF1dGhVc2VzT3BlbklkQ29ubmVjdCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLm9pZGM/Lmhvc3QgJiYgISF0aGlzLm9pZGM/LnRlbmFudDtcbiAgfVxuXG4gIC8qKlxuICAgKiBPcGVuSWRDb25uZWN0IGF1dGhvcml6YXRpb24gaGVhZGVyc1xuICAgKi9cbiAgZ2V0QXV0aEhlYWRlcnMoYXV0aG9yaXphdGlvbiA9IGZhbHNlKTogSHR0cEhlYWRlcnMge1xuICAgIGlmICh0aGlzLmF1dGhVc2VzT3BlbklkQ29ubmVjdCgpKSB7XG4gICAgICBsZXQgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChURU5BTlRfSEVBREVSLCB0aGlzLm9pZGMhLnRlbmFudCk7XG4gICAgICBpZiAoYXV0aG9yaXphdGlvbikge1xuICAgICAgICBoZWFkZXJzID0gaGVhZGVycy5zZXQoJ2F1dGhvcml6YXRpb24nLCAnQmVhcmVyICcgKyBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnYWNjZXNzX3Rva2VuJykpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGhlYWRlcnM7XG4gICAgfVxuICAgIHJldHVybiBuZXcgSHR0cEhlYWRlcnMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXR0ZXIgZm9yIHRoZSBhdmFpbGFibGUgY2xpZW50IGxvY2FsZXNcbiAgICogQHJldHVybnMgYXZhaWxhYmxlIGNsaWVudCBsb2NhbGVzXG4gICAqL1xuICBnZXRDbGllbnRMb2NhbGVzKCk6IFl1dkNvbmZpZ0xhbmd1YWdlc1tdIHtcbiAgICByZXR1cm4gdGhpcy5fZ2V0Q29yZUNvbmZpZygnbGFuZ3VhZ2VzJyk7XG4gIH1cblxuICBnZXRBcGlCYXNlKGFwaTogc3RyaW5nID0gQXBpQmFzZS5hcGlXZWIsIG9yaWdpbiA9IGZhbHNlKTogc3RyaW5nIHtcbiAgICBhcGkgPSBhcGkgfHwgQXBpQmFzZS5ub25lO1xuICAgIGNvbnN0IGhyZWYgPSBhcGkgPT09IEFwaUJhc2Uubm9uZSA/IGFwaSA6IGAvJHthcGl9YDtcbiAgICBjb25zdCBob3N0ID0gdGhpcy5vaWRjPy5ob3N0IHx8IChvcmlnaW4gJiYgbG9jYXRpb24ub3JpZ2luKSB8fCAnJztcbiAgICByZXR1cm4gaHJlZi5zdGFydHNXaXRoKCdodHRwJykgPyBocmVmIDogaG9zdCArIGhyZWY7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBkZWZhdWx0IGNsaWVudCBsb2NhbGVcbiAgICogQHJldHVybnMgSVNPIHN0cmluZyBvZiB0aGUgbG9jYWxlXG4gICAqL1xuICBnZXREZWZhdWx0Q2xpZW50TG9jYWxlKCkge1xuICAgIGNvbnN0IGxhbmcgPSB0aGlzLmdldENsaWVudExvY2FsZXMoKS5maW5kKChfKSA9PiBfLmZhbGxiYWNrKTtcbiAgICByZXR1cm4gbGFuZyA/IGxhbmcuaXNvIDogJ2VuJztcbiAgfVxuXG4gIHByaXZhdGUgX2dldENvcmVDb25maWcoa2V5OiBzdHJpbmcpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLmNmZyA/ICh0aGlzLmNmZy5jb3JlIGFzIGFueSlba2V5XSA6IHVuZGVmaW5lZDtcbiAgfVxufVxuIl19
@@ -1,20 +0,0 @@
1
- import { __decorate, __metadata, __param } from "tslib";
2
- import { Inject } from '@angular/core';
3
- import { CUSTOM_CONFIG } from './core-config.tokens';
4
- /**
5
- * @ignore
6
- */
7
- let CoreConfig = class CoreConfig {
8
- constructor(__config) {
9
- this.main = ['assets/_yuuvis/config/main.json'];
10
- this.translations = ['assets/_yuuvis/i18n/'];
11
- this.environment = { production: true };
12
- Object.assign(this, __config);
13
- }
14
- };
15
- CoreConfig = __decorate([
16
- __param(0, Inject(CUSTOM_CONFIG)),
17
- __metadata("design:paramtypes", [CoreConfig])
18
- ], CoreConfig);
19
- export { CoreConfig };
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3l1dXZpcy9jbGllbnQtY29yZS9zcmMvbGliL3NlcnZpY2UvY29uZmlnL2NvcmUtY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR3ZDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVyRDs7R0FFRztBQUNILElBQWEsVUFBVSxHQUF2QixNQUFhLFVBQVU7SUFNckIsWUFBbUMsUUFBb0I7UUFMdkQsU0FBSSxHQUEwQixDQUFDLGlDQUFpQyxDQUFDLENBQUM7UUFDbEUsaUJBQVksR0FBYyxDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFDbkQsZ0JBQVcsR0FBNkIsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFJM0QsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDaEMsQ0FBQztDQUNGLENBQUE7QUFUWSxVQUFVO0lBTVIsV0FBQSxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUE7cUNBQVcsVUFBVTtHQU41QyxVQUFVLENBU3RCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPcGVuSWRDb25maWcgfSBmcm9tICcuLi9iYWNrZW5kL2JhY2tlbmQuaW50ZXJmYWNlJztcbmltcG9ydCB7IFl1dkNvbmZpZyB9IGZyb20gJy4vY29uZmlnLmludGVyZmFjZSc7XG5pbXBvcnQgeyBDVVNUT01fQ09ORklHIH0gZnJvbSAnLi9jb3JlLWNvbmZpZy50b2tlbnMnO1xuXG4vKipcbiAqIEBpZ25vcmVcbiAqL1xuZXhwb3J0IGNsYXNzIENvcmVDb25maWcge1xuICBtYWluPzogWXV2Q29uZmlnIHwgc3RyaW5nW10gPSBbJ2Fzc2V0cy9feXV1dmlzL2NvbmZpZy9tYWluLmpzb24nXTtcbiAgdHJhbnNsYXRpb25zPzogc3RyaW5nW10gPSBbJ2Fzc2V0cy9feXV1dmlzL2kxOG4vJ107XG4gIGVudmlyb25tZW50PzogeyBwcm9kdWN0aW9uOiBib29sZWFuIH0gPSB7IHByb2R1Y3Rpb246IHRydWUgfTtcbiAgb2lkYz86IE9wZW5JZENvbmZpZztcblxuICBjb25zdHJ1Y3RvcihASW5qZWN0KENVU1RPTV9DT05GSUcpIF9fY29uZmlnOiBDb3JlQ29uZmlnKSB7XG4gICAgT2JqZWN0LmFzc2lnbih0aGlzLCBfX2NvbmZpZyk7XG4gIH1cbn1cbiJdfQ==
@@ -1,9 +0,0 @@
1
- import { InjectionToken } from '@angular/core';
2
- /**
3
- * @ignore
4
- */
5
- export const CUSTOM_CONFIG = new InjectionToken('CUSTOM_CONFIG', {
6
- factory: () => ({ main: ['assets/_yuuvis/config/main.json'], translations: ['assets/_yuuvis/i18n/'] })
7
- });
8
- export const CORE_CONFIG = new InjectionToken('CORE_CONFIG');
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1jb25maWcudG9rZW5zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy95dXV2aXMvY2xpZW50LWNvcmUvc3JjL2xpYi9zZXJ2aWNlL2NvbmZpZy9jb3JlLWNvbmZpZy50b2tlbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUkvQzs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxJQUFJLGNBQWMsQ0FBYSxlQUFlLEVBQUU7SUFDM0UsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxpQ0FBaUMsQ0FBQyxFQUFFLFlBQVksRUFBRSxDQUFDLHNCQUFzQixDQUFDLEVBQUUsQ0FBQztDQUN2RyxDQUFDLENBQUM7QUFDSCxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsSUFBSSxjQUFjLENBQWEsYUFBYSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBDb3JlQ29uZmlnIH0gZnJvbSAnLi9jb3JlLWNvbmZpZyc7XG5cbi8qKlxuICogQGlnbm9yZVxuICovXG5leHBvcnQgY29uc3QgQ1VTVE9NX0NPTkZJRyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxDb3JlQ29uZmlnPignQ1VTVE9NX0NPTkZJRycsIHtcbiAgZmFjdG9yeTogKCkgPT4gKHsgbWFpbjogWydhc3NldHMvX3l1dXZpcy9jb25maWcvbWFpbi5qc29uJ10sIHRyYW5zbGF0aW9uczogWydhc3NldHMvX3l1dXZpcy9pMThuLyddIH0pXG59KTtcbmV4cG9ydCBjb25zdCBDT1JFX0NPTkZJRyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxDb3JlQ29uZmlnPignQ09SRV9DT05GSUcnKTtcbiJdfQ==
@@ -1,36 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { fromEvent, ReplaySubject } from 'rxjs';
3
- import * as i0 from "@angular/core";
4
- /**
5
- * This service is used for connecting and initializing in the client
6
- */
7
- export class ConnectionService {
8
- /**
9
- * @ignore
10
- */
11
- constructor() {
12
- this.currentState = {
13
- isOnline: window.navigator.onLine
14
- };
15
- this.connectionStateSource = new ReplaySubject();
16
- this.connection$ = this.connectionStateSource.asObservable();
17
- this.connectionStateSource.next(this.currentState);
18
- fromEvent(window, 'online').subscribe(() => {
19
- this.currentState.isOnline = true;
20
- this.connectionStateSource.next(this.currentState);
21
- });
22
- fromEvent(window, 'offline').subscribe(() => {
23
- this.currentState.isOnline = false;
24
- this.connectionStateSource.next(this.currentState);
25
- });
26
- }
27
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ConnectionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
28
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ConnectionService, providedIn: 'root' }); }
29
- }
30
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ConnectionService, decorators: [{
31
- type: Injectable,
32
- args: [{
33
- providedIn: 'root'
34
- }]
35
- }], ctorParameters: () => [] });
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ubmVjdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy95dXV2aXMvY2xpZW50LWNvcmUvc3JjL2xpYi9zZXJ2aWNlL2Nvbm5lY3Rpb24vY29ubmVjdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFNBQVMsRUFBYyxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBRTVEOztHQUVHO0FBSUgsTUFBTSxPQUFPLGlCQUFpQjtJQU01Qjs7T0FFRztJQUNIO1FBUlEsaUJBQVksR0FBb0I7WUFDdEMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTTtTQUNsQyxDQUFDO1FBQ00sMEJBQXFCLEdBQUcsSUFBSSxhQUFhLEVBQW1CLENBQUM7UUFDOUQsZ0JBQVcsR0FBZ0MsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFlBQVksRUFBRSxDQUFDO1FBSzFGLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ25ELFNBQVMsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUN6QyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7WUFDbEMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDckQsQ0FBQyxDQUFDLENBQUM7UUFFSCxTQUFTLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDMUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1lBQ25DLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3JELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzsrR0FwQlUsaUJBQWlCO21IQUFqQixpQkFBaUIsY0FGaEIsTUFBTTs7NEZBRVAsaUJBQWlCO2tCQUg3QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGZyb21FdmVudCwgT2JzZXJ2YWJsZSwgUmVwbGF5U3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG4vKipcbiAqIFRoaXMgc2VydmljZSBpcyB1c2VkIGZvciBjb25uZWN0aW5nIGFuZCBpbml0aWFsaXppbmcgaW4gdGhlIGNsaWVudFxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBDb25uZWN0aW9uU2VydmljZSB7XG4gIHByaXZhdGUgY3VycmVudFN0YXRlOiBDb25uZWN0aW9uU3RhdGUgPSB7XG4gICAgaXNPbmxpbmU6IHdpbmRvdy5uYXZpZ2F0b3Iub25MaW5lXG4gIH07XG4gIHByaXZhdGUgY29ubmVjdGlvblN0YXRlU291cmNlID0gbmV3IFJlcGxheVN1YmplY3Q8Q29ubmVjdGlvblN0YXRlPigpO1xuICBwdWJsaWMgY29ubmVjdGlvbiQ6IE9ic2VydmFibGU8Q29ubmVjdGlvblN0YXRlPiA9IHRoaXMuY29ubmVjdGlvblN0YXRlU291cmNlLmFzT2JzZXJ2YWJsZSgpO1xuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5jb25uZWN0aW9uU3RhdGVTb3VyY2UubmV4dCh0aGlzLmN1cnJlbnRTdGF0ZSk7XG4gICAgZnJvbUV2ZW50KHdpbmRvdywgJ29ubGluZScpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLmN1cnJlbnRTdGF0ZS5pc09ubGluZSA9IHRydWU7XG4gICAgICB0aGlzLmNvbm5lY3Rpb25TdGF0ZVNvdXJjZS5uZXh0KHRoaXMuY3VycmVudFN0YXRlKTtcbiAgICB9KTtcblxuICAgIGZyb21FdmVudCh3aW5kb3csICdvZmZsaW5lJykuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuY3VycmVudFN0YXRlLmlzT25saW5lID0gZmFsc2U7XG4gICAgICB0aGlzLmNvbm5lY3Rpb25TdGF0ZVNvdXJjZS5uZXh0KHRoaXMuY3VycmVudFN0YXRlKTtcbiAgICB9KTtcbiAgfVxufVxuLyoqXG4gKiBDaGVjayBhIGNvbm5lY3Rpb24gc3RhdGUgb2YgYSBjbGllbnRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb25uZWN0aW9uU3RhdGUge1xuICAvKipcbiAgICogd2hldGhlciBvciBub3QgdGhlIGFwcGxpY2F0aW9uIGlzIG9ubGluZS5cbiAgICovXG4gIGlzT25saW5lOiBib29sZWFuO1xufVxuIl19
@@ -1,28 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { ConnectionService } from './connection.service';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "./connection.service";
5
- /**
6
- * Http Offline interceptor trys to serving offline content for method/url
7
- */
8
- export class OfflineInterceptor {
9
- constructor(connectionService) {
10
- this.connectionService = connectionService;
11
- this.offline = false;
12
- this.connectionService.connection$.subscribe((connectionState) => {
13
- this.offline = !connectionState.isOnline;
14
- });
15
- }
16
- intercept(request, next) {
17
- return next.handle(request);
18
- }
19
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OfflineInterceptor, deps: [{ token: i1.ConnectionService }], target: i0.ɵɵFactoryTarget.Injectable }); }
20
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OfflineInterceptor, providedIn: 'root' }); }
21
- }
22
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OfflineInterceptor, decorators: [{
23
- type: Injectable,
24
- args: [{
25
- providedIn: 'root'
26
- }]
27
- }], ctorParameters: () => [{ type: i1.ConnectionService }] });
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2ZmbGluZS5pbnRlcmNlcHRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMveXV1dmlzL2NsaWVudC1jb3JlL3NyYy9saWIvc2VydmljZS9jb25uZWN0aW9uL29mZmxpbmUuaW50ZXJjZXB0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsaUJBQWlCLEVBQW1CLE1BQU0sc0JBQXNCLENBQUM7OztBQUMxRTs7R0FFRztBQUlILE1BQU0sT0FBTyxrQkFBa0I7SUFHN0IsWUFBb0IsaUJBQW9DO1FBQXBDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFGeEQsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUdkLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsZUFBZ0MsRUFBRSxFQUFFO1lBQ2hGLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDO1FBQzNDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFNBQVMsQ0FBQyxPQUF5QixFQUFFLElBQWlCO1FBQ3BELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM5QixDQUFDOytHQVhVLGtCQUFrQjttSEFBbEIsa0JBQWtCLGNBRmpCLE1BQU07OzRGQUVQLGtCQUFrQjtrQkFIOUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwRXZlbnQsIEh0dHBIYW5kbGVyLCBIdHRwSW50ZXJjZXB0b3IsIEh0dHBSZXF1ZXN0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ29ubmVjdGlvblNlcnZpY2UsIENvbm5lY3Rpb25TdGF0ZSB9IGZyb20gJy4vY29ubmVjdGlvbi5zZXJ2aWNlJztcbi8qKlxuICogIEh0dHAgT2ZmbGluZSBpbnRlcmNlcHRvciB0cnlzIHRvIHNlcnZpbmcgb2ZmbGluZSBjb250ZW50IGZvciBtZXRob2QvdXJsXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIE9mZmxpbmVJbnRlcmNlcHRvciBpbXBsZW1lbnRzIEh0dHBJbnRlcmNlcHRvciB7XG4gIG9mZmxpbmUgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNvbm5lY3Rpb25TZXJ2aWNlOiBDb25uZWN0aW9uU2VydmljZSkge1xuICAgIHRoaXMuY29ubmVjdGlvblNlcnZpY2UuY29ubmVjdGlvbiQuc3Vic2NyaWJlKChjb25uZWN0aW9uU3RhdGU6IENvbm5lY3Rpb25TdGF0ZSkgPT4ge1xuICAgICAgdGhpcy5vZmZsaW5lID0gIWNvbm5lY3Rpb25TdGF0ZS5pc09ubGluZTtcbiAgICB9KTtcbiAgfVxuXG4gIGludGVyY2VwdChyZXF1ZXN0OiBIdHRwUmVxdWVzdDxhbnk+LCBuZXh0OiBIdHRwSGFuZGxlcik6IE9ic2VydmFibGU8SHR0cEV2ZW50PGFueT4+IHtcbiAgICByZXR1cm4gbmV4dC5oYW5kbGUocmVxdWVzdCk7XG4gIH1cbn1cbiJdfQ==
@@ -1,29 +0,0 @@
1
- import { forkJoin, of } from 'rxjs';
2
- import { catchError, map, switchMap, tap } from 'rxjs/operators';
3
- import { Utils } from '../../util/utils';
4
- /**
5
- * Providing functions,that are are injected at application startup and executed during app initialization.
6
- */
7
- export function init_moduleFnc(coreConfig, deviceService, logger, http, configService, authService) {
8
- return () => {
9
- authService.setInitialRequestUri();
10
- deviceService.init();
11
- return coreConfig.main
12
- ? !Array.isArray(coreConfig.main)
13
- ? of([coreConfig.main])
14
- : forkJoin([...coreConfig.main].map((uri) => http.get(`${Utils.getBaseHref()}${uri}`).pipe(catchError((e) => {
15
- logger.error('failed to catch config file', e);
16
- return of({});
17
- }), map((res) => res)))).pipe(
18
- // switchMap((configs: YuvConfig[]) => configService.extendConfig(configs)),
19
- tap((configs) => configService.extendConfig(configs)), switchMap(() => authService.initUser().pipe(catchError((e) => {
20
- authService.initError = {
21
- status: e.status,
22
- key: e.error.error
23
- };
24
- return of(true);
25
- }))))
26
- : of(false);
27
- };
28
- }
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1pbml0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3l1dXZpcy9jbGllbnQtY29yZS9zcmMvbGliL3NlcnZpY2UvY29yZS1pbml0L2NvcmUtaW5pdC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFRekM7O0dBRUc7QUFDSCxNQUFNLFVBQVUsY0FBYyxDQUM1QixVQUFzQixFQUN0QixhQUE0QixFQUM1QixNQUFjLEVBQ2QsSUFBZ0IsRUFDaEIsYUFBNEIsRUFDNUIsV0FBd0I7SUFFeEIsT0FBTyxHQUFHLEVBQUU7UUFDVixXQUFXLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUNuQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDckIsT0FBTyxVQUFVLENBQUMsSUFBSTtZQUNwQixDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUM7Z0JBQy9CLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3ZCLENBQUMsQ0FBQyxRQUFRLENBQ04sQ0FBQyxHQUFJLFVBQVUsQ0FBQyxJQUFpQixDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBVyxFQUFFLEVBQUUsQ0FDckQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQyxXQUFXLEVBQUUsR0FBRyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FDM0MsVUFBVSxDQUFDLENBQUMsQ0FBTSxFQUFFLEVBQUU7b0JBQ3BCLE1BQU0sQ0FBQyxLQUFLLENBQUMsNkJBQTZCLEVBQUUsQ0FBQyxDQUFDLENBQUM7b0JBQy9DLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUNoQixDQUFDLENBQUMsRUFDRixHQUFHLENBQUMsQ0FBQyxHQUFRLEVBQUUsRUFBRSxDQUFDLEdBQWdCLENBQUMsQ0FDcEMsQ0FDRixDQUNGLENBQUMsSUFBSTtnQkFDSiw0RUFBNEU7Z0JBQzVFLEdBQUcsQ0FBQyxDQUFDLE9BQW9CLEVBQUUsRUFBRSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsRUFDbEUsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUNiLFdBQVcsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxJQUFJLENBQ3pCLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO29CQUNmLFdBQVcsQ0FBQyxTQUFTLEdBQUc7d0JBQ3RCLE1BQU0sRUFBRSxDQUFDLENBQUMsTUFBTTt3QkFDaEIsR0FBRyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSztxQkFDbkIsQ0FBQztvQkFDRixPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDbEIsQ0FBQyxDQUFDLENBQ0gsQ0FDRixDQUNGO1lBQ0wsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoQixDQUFDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IGZvcmtKb2luLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWFwLCBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFV0aWxzIH0gZnJvbSAnLi4vLi4vdXRpbC91dGlscyc7XG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uL2F1dGgvYXV0aC5zZXJ2aWNlJztcbmltcG9ydCB7IFl1dkNvbmZpZyB9IGZyb20gJy4uL2NvbmZpZy9jb25maWcuaW50ZXJmYWNlJztcbmltcG9ydCB7IENvbmZpZ1NlcnZpY2UgfSBmcm9tICcuLi9jb25maWcvY29uZmlnLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29yZUNvbmZpZyB9IGZyb20gJy4uL2NvbmZpZy9jb3JlLWNvbmZpZyc7XG5pbXBvcnQgeyBEZXZpY2VTZXJ2aWNlIH0gZnJvbSAnLi4vZGV2aWNlL2RldmljZS5zZXJ2aWNlJztcbmltcG9ydCB7IExvZ2dlciB9IGZyb20gJy4uL2xvZ2dlci9sb2dnZXInO1xuXG4vKipcbiAqIFByb3ZpZGluZyBmdW5jdGlvbnMsdGhhdCBhcmUgYXJlIGluamVjdGVkIGF0IGFwcGxpY2F0aW9uIHN0YXJ0dXAgYW5kIGV4ZWN1dGVkIGR1cmluZyBhcHAgaW5pdGlhbGl6YXRpb24uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpbml0X21vZHVsZUZuYyhcbiAgY29yZUNvbmZpZzogQ29yZUNvbmZpZyxcbiAgZGV2aWNlU2VydmljZTogRGV2aWNlU2VydmljZSxcbiAgbG9nZ2VyOiBMb2dnZXIsXG4gIGh0dHA6IEh0dHBDbGllbnQsXG4gIGNvbmZpZ1NlcnZpY2U6IENvbmZpZ1NlcnZpY2UsXG4gIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZVxuKSB7XG4gIHJldHVybiAoKSA9PiB7XG4gICAgYXV0aFNlcnZpY2Uuc2V0SW5pdGlhbFJlcXVlc3RVcmkoKTtcbiAgICBkZXZpY2VTZXJ2aWNlLmluaXQoKTtcbiAgICByZXR1cm4gY29yZUNvbmZpZy5tYWluXG4gICAgICA/ICFBcnJheS5pc0FycmF5KGNvcmVDb25maWcubWFpbilcbiAgICAgICAgPyBvZihbY29yZUNvbmZpZy5tYWluXSlcbiAgICAgICAgOiBmb3JrSm9pbihcbiAgICAgICAgICAgIFsuLi4oY29yZUNvbmZpZy5tYWluIGFzIHN0cmluZ1tdKV0ubWFwKCh1cmk6IHN0cmluZykgPT5cbiAgICAgICAgICAgICAgaHR0cC5nZXQoYCR7VXRpbHMuZ2V0QmFzZUhyZWYoKX0ke3VyaX1gKS5waXBlKFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoKGU6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgbG9nZ2VyLmVycm9yKCdmYWlsZWQgdG8gY2F0Y2ggY29uZmlnIGZpbGUnLCBlKTtcbiAgICAgICAgICAgICAgICAgIHJldHVybiBvZih7fSk7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgbWFwKChyZXM6IGFueSkgPT4gcmVzIGFzIFl1dkNvbmZpZylcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICkucGlwZShcbiAgICAgICAgICAgIC8vIHN3aXRjaE1hcCgoY29uZmlnczogWXV2Q29uZmlnW10pID0+IGNvbmZpZ1NlcnZpY2UuZXh0ZW5kQ29uZmlnKGNvbmZpZ3MpKSxcbiAgICAgICAgICAgIHRhcCgoY29uZmlnczogWXV2Q29uZmlnW10pID0+IGNvbmZpZ1NlcnZpY2UuZXh0ZW5kQ29uZmlnKGNvbmZpZ3MpKSxcbiAgICAgICAgICAgIHN3aXRjaE1hcCgoKSA9PlxuICAgICAgICAgICAgICBhdXRoU2VydmljZS5pbml0VXNlcigpLnBpcGUoXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgYXV0aFNlcnZpY2UuaW5pdEVycm9yID0ge1xuICAgICAgICAgICAgICAgICAgICBzdGF0dXM6IGUuc3RhdHVzLFxuICAgICAgICAgICAgICAgICAgICBrZXk6IGUuZXJyb3IuZXJyb3JcbiAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICByZXR1cm4gb2YodHJ1ZSk7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKVxuICAgICAgICAgIClcbiAgICAgIDogb2YoZmFsc2UpO1xuICB9O1xufVxuIl19
@@ -1,10 +0,0 @@
1
- /**
2
- * Handles missing translations
3
- * @ignore
4
- */
5
- export class EoxMissingTranslationHandler {
6
- handle(params) {
7
- return '!missing key: ' + params.key;
8
- }
9
- }
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlzc2luZy10cmFuc2xhdGlvbi1oYW5kbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy95dXV2aXMvY2xpZW50LWNvcmUvc3JjL2xpYi9zZXJ2aWNlL2NvcmUtaW5pdC9taXNzaW5nLXRyYW5zbGF0aW9uLWhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUE7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLDRCQUE0QjtJQUNyQyxNQUFNLENBQUMsTUFBdUM7UUFDMUMsT0FBTyxnQkFBZ0IsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDO0lBQ3pDLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1pc3NpbmdUcmFuc2xhdGlvbkhhbmRsZXIsIE1pc3NpbmdUcmFuc2xhdGlvbkhhbmRsZXJQYXJhbXMgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcblxuLyoqXG4gKiBIYW5kbGVzIG1pc3NpbmcgdHJhbnNsYXRpb25zXG4gKiBAaWdub3JlXG4gKi9cbmV4cG9ydCBjbGFzcyBFb3hNaXNzaW5nVHJhbnNsYXRpb25IYW5kbGVyIGltcGxlbWVudHMgTWlzc2luZ1RyYW5zbGF0aW9uSGFuZGxlciB7XG4gICAgaGFuZGxlKHBhcmFtczogTWlzc2luZ1RyYW5zbGF0aW9uSGFuZGxlclBhcmFtcykge1xuICAgICAgICByZXR1cm4gJyFtaXNzaW5nIGtleTogJyArIHBhcmFtcy5rZXk7XG4gICAgfVxufSJdfQ==
@@ -1,117 +0,0 @@
1
- import { __decorate, __metadata, __param } from "tslib";
2
- /**
3
- * i18n packages
4
- */
5
- import { registerLocaleData } from '@angular/common';
6
- import { HttpClient } from '@angular/common/http';
7
- import localeAr from '@angular/common/locales/ar';
8
- import localeBn from '@angular/common/locales/bn';
9
- import localeDe from '@angular/common/locales/de';
10
- import localeDeCh from '@angular/common/locales/de-CH';
11
- import localeEs from '@angular/common/locales/es';
12
- import localeExtraAr from '@angular/common/locales/extra/ar';
13
- import localeExtraBn from '@angular/common/locales/extra/bn';
14
- import localeExtraDe from '@angular/common/locales/extra/de';
15
- import localeExtraDeCh from '@angular/common/locales/extra/de-CH';
16
- import localeExtraEs from '@angular/common/locales/extra/es';
17
- import localeExtraFi from '@angular/common/locales/extra/fi';
18
- import localeExtraFr from '@angular/common/locales/extra/fr';
19
- import localeExtraHi from '@angular/common/locales/extra/hi';
20
- import localeExtraIt from '@angular/common/locales/extra/it';
21
- import localeExtraJa from '@angular/common/locales/extra/ja';
22
- import localeExtraKo from '@angular/common/locales/extra/ko';
23
- import localeExtraLv from '@angular/common/locales/extra/lv';
24
- import localeExtraNb from '@angular/common/locales/extra/nb';
25
- import localeExtraNl from '@angular/common/locales/extra/nl';
26
- import localeExtraPl from '@angular/common/locales/extra/pl';
27
- import localeExtraPt from '@angular/common/locales/extra/pt';
28
- import localeExtraRu from '@angular/common/locales/extra/ru';
29
- import localeExtraSk from '@angular/common/locales/extra/sk';
30
- import localeExtraSv from '@angular/common/locales/extra/sv';
31
- import localeExtraTh from '@angular/common/locales/extra/th';
32
- import localeExtraTr from '@angular/common/locales/extra/tr';
33
- import localeExtraUk from '@angular/common/locales/extra/uk';
34
- import localeExtraVi from '@angular/common/locales/extra/vi';
35
- import localeExtraZh from '@angular/common/locales/extra/zh';
36
- import localeFi from '@angular/common/locales/fi';
37
- import localeFr from '@angular/common/locales/fr';
38
- import localeHi from '@angular/common/locales/hi';
39
- import localeIt from '@angular/common/locales/it';
40
- import localeJa from '@angular/common/locales/ja';
41
- import localeKo from '@angular/common/locales/ko';
42
- import localeLv from '@angular/common/locales/lv';
43
- import localeNb from '@angular/common/locales/nb';
44
- import localeNl from '@angular/common/locales/nl';
45
- import localePl from '@angular/common/locales/pl';
46
- import localePt from '@angular/common/locales/pt';
47
- import localeRu from '@angular/common/locales/ru';
48
- import localeSk from '@angular/common/locales/sk';
49
- import localeSv from '@angular/common/locales/sv';
50
- import localeTh from '@angular/common/locales/th';
51
- import localeTr from '@angular/common/locales/tr';
52
- import localeUk from '@angular/common/locales/uk';
53
- import localeVi from '@angular/common/locales/vi';
54
- import localeZh from '@angular/common/locales/zh';
55
- import { Inject } from '@angular/core';
56
- import { forkJoin, of } from 'rxjs';
57
- import { catchError, map } from 'rxjs/operators';
58
- import { Utils } from '../../util/utils';
59
- import { CoreConfig } from '../config/core-config';
60
- import { CORE_CONFIG } from '../config/core-config.tokens';
61
- /**
62
- * Loader that fetches translations based on the configured locations
63
- * @ignore
64
- */
65
- let EoxTranslateJsonLoader = class EoxTranslateJsonLoader {
66
- constructor(http, config) {
67
- this.http = http;
68
- this.config = config;
69
- registerLocaleData(localeDe, 'de', localeExtraDe); // German
70
- registerLocaleData(localeAr, 'ar', localeExtraAr); // Arabic
71
- registerLocaleData(localeEs, 'es', localeExtraEs); // Spanish
72
- registerLocaleData(localePt, 'pt', localeExtraPt); // Portuguese
73
- registerLocaleData(localeFr, 'fr', localeExtraFr); // French
74
- registerLocaleData(localeZh, 'zh', localeExtraZh); // Chinese
75
- registerLocaleData(localeLv, 'lv', localeExtraLv); // Latvian
76
- registerLocaleData(localeRu, 'ru', localeExtraRu); // Russian
77
- registerLocaleData(localeIt, 'it', localeExtraIt); // Italian
78
- registerLocaleData(localeSk, 'sk', localeExtraSk); // Slovak
79
- registerLocaleData(localePl, 'pl', localeExtraPl); // Polish
80
- registerLocaleData(localeUk, 'uk', localeExtraUk); // Ukrainian
81
- registerLocaleData(localeJa, 'ja', localeExtraJa); // Japanese
82
- registerLocaleData(localeKo, 'ko', localeExtraKo); // Korean
83
- registerLocaleData(localeHi, 'hi', localeExtraHi); // Hindi
84
- registerLocaleData(localeBn, 'bn', localeExtraBn); // Bengalese
85
- registerLocaleData(localeVi, 'vi', localeExtraVi); // Vietnamese
86
- registerLocaleData(localeTr, 'tr', localeExtraTr); // Turkish
87
- registerLocaleData(localeNl, 'nl', localeExtraNl); // Dutch
88
- registerLocaleData(localeNb, 'nb', localeExtraNb); // Norwegian
89
- registerLocaleData(localeTh, 'th', localeExtraTh); // Thai
90
- registerLocaleData(localeFi, 'fi', localeExtraFi); // Finnish
91
- registerLocaleData(localeSv, 'sv', localeExtraSv); // Swedish
92
- registerLocaleData(localeDeCh, 'de-CH', localeExtraDeCh); // German Swiss
93
- }
94
- /**
95
- *
96
- * @param string lang
97
- * @returns Observable<Object>
98
- */
99
- getTranslation(lang) {
100
- const t = this.config.translations.map((path) => this.loadTranslationFile(path, lang));
101
- return forkJoin(t).pipe(map((res) => res.reduce((acc, x) => Object.assign(acc, x), {})));
102
- }
103
- loadTranslationFile(path, lang) {
104
- return this.http.get(`${Utils.getBaseHref()}${path}${lang}.json`).pipe(catchError((e) => {
105
- // ISO codes with more than 2 characters are sub-languages like de-CH.
106
- // If there is no translation file for that sub-language we'll try to load
107
- // the file for the base language (in this case de).
108
- return lang.length > 2 ? this.loadTranslationFile(path, lang.substring(0, 2)) : of({});
109
- }));
110
- }
111
- };
112
- EoxTranslateJsonLoader = __decorate([
113
- __param(1, Inject(CORE_CONFIG)),
114
- __metadata("design:paramtypes", [HttpClient, CoreConfig])
115
- ], EoxTranslateJsonLoader);
116
- export { EoxTranslateJsonLoader };
117
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRlLWpzb24tbG9hZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy95dXV2aXMvY2xpZW50LWNvcmUvc3JjL2xpYi9zZXJ2aWNlL2NvcmUtaW5pdC90cmFuc2xhdGUtanNvbi1sb2FkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOztHQUVHO0FBQ0gsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDckQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sUUFBUSxNQUFNLDRCQUE0QixDQUFDO0FBQ2xELE9BQU8sUUFBUSxNQUFNLDRCQUE0QixDQUFDO0FBQ2xELE9BQU8sUUFBUSxNQUFNLDRCQUE0QixDQUFDO0FBQ2xELE9BQU8sVUFBVSxNQUFNLCtCQUErQixDQUFDO0FBQ3ZELE9BQU8sUUFBUSxNQUFNLDRCQUE0QixDQUFDO0FBQ2xELE9BQU8sYUFBYSxNQUFNLGtDQUFrQyxDQUFDO0FBQzdELE9BQU8sYUFBYSxNQUFNLGtDQUFrQyxDQUFDO0FBQzdELE9BQU8sYUFBYSxNQUFNLGtDQUFrQyxDQUFDO0FBQzdELE9BQU8sZUFBZSxNQUFNLHFDQUFxQyxDQUFDO0FBQ2xFLE9BQU8sYUFBYSxNQUFNLGtDQUFrQyxDQUFDO0FBQzdELE9BQU8sYUFBYSxNQUFNLGtDQUFrQyxDQUFDO0FBQzdELE9BQU8sYUFBYSxNQUFNLGtDQUFrQyxDQUFDO0FBQzdELE9BQU8sYUFBYSxNQUFNLGtDQUFrQyxDQUFDO0FBQzdELE9BQU8sYUFBYSxNQUFNLGtDQUFrQyxDQUFDO0FBQzdELE9BQU8sYUFBYSxNQUFNLGtDQUFrQyxDQUFDO0FBQzdELE9BQU8sYUFBYSxNQUFNLGtDQUFrQyxDQUFDO0FBQzdELE9BQU8sYUFBYSxNQUFNLGtDQUFrQyxDQUFDO0FBQzdELE9BQU8sYUFBYSxNQUFNLGtDQUFrQyxDQUFDO0FBQzdELE9BQU8sYUFBYSxNQUFNLGtDQUFrQyxDQUFDO0FBQzdELE9BQU8sYUFBYSxNQUFNLGtDQUFrQyxDQUFDO0FBQzdELE9BQU8sYUFBYSxNQUFNLGtDQUFrQyxDQUFDO0FBQzdELE9BQU8sYUFBYSxNQUFNLGtDQUFrQyxDQUFDO0FBQzdELE9BQU8sYUFBYSxNQUFNLGtDQUFrQyxDQUFDO0FBQzdELE9BQU8sYUFBYSxNQUFNLGtDQUFrQyxDQUFDO0FBQzdELE9BQU8sYUFBYSxNQUFNLGtDQUFrQyxDQUFDO0FBQzdELE9BQU8sYUFBYSxNQUFNLGtDQUFrQyxDQUFDO0FBQzdELE9BQU8sYUFBYSxNQUFNLGtDQUFrQyxDQUFDO0FBQzdELE9BQU8sYUFBYSxNQUFNLGtDQUFrQyxDQUFDO0FBQzdELE9BQU8sYUFBYSxNQUFNLGtDQUFrQyxDQUFDO0FBQzdELE9BQU8sUUFBUSxNQUFNLDRCQUE0QixDQUFDO0FBQ2xELE9BQU8sUUFBUSxNQUFNLDRCQUE0QixDQUFDO0FBQ2xELE9BQU8sUUFBUSxNQUFNLDRCQUE0QixDQUFDO0FBQ2xELE9BQU8sUUFBUSxNQUFNLDRCQUE0QixDQUFDO0FBQ2xELE9BQU8sUUFBUSxNQUFNLDRCQUE0QixDQUFDO0FBQ2xELE9BQU8sUUFBUSxNQUFNLDRCQUE0QixDQUFDO0FBQ2xELE9BQU8sUUFBUSxNQUFNLDRCQUE0QixDQUFDO0FBQ2xELE9BQU8sUUFBUSxNQUFNLDRCQUE0QixDQUFDO0FBQ2xELE9BQU8sUUFBUSxNQUFNLDRCQUE0QixDQUFDO0FBQ2xELE9BQU8sUUFBUSxNQUFNLDRCQUE0QixDQUFDO0FBQ2xELE9BQU8sUUFBUSxNQUFNLDRCQUE0QixDQUFDO0FBQ2xELE9BQU8sUUFBUSxNQUFNLDRCQUE0QixDQUFDO0FBQ2xELE9BQU8sUUFBUSxNQUFNLDRCQUE0QixDQUFDO0FBQ2xELE9BQU8sUUFBUSxNQUFNLDRCQUE0QixDQUFDO0FBQ2xELE9BQU8sUUFBUSxNQUFNLDRCQUE0QixDQUFDO0FBQ2xELE9BQU8sUUFBUSxNQUFNLDRCQUE0QixDQUFDO0FBQ2xELE9BQU8sUUFBUSxNQUFNLDRCQUE0QixDQUFDO0FBQ2xELE9BQU8sUUFBUSxNQUFNLDRCQUE0QixDQUFDO0FBQ2xELE9BQU8sUUFBUSxNQUFNLDRCQUE0QixDQUFDO0FBQ2xELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdkMsT0FBTyxFQUFFLFFBQVEsRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDaEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDekMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ25ELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUUzRDs7O0dBR0c7QUFDSCxJQUFhLHNCQUFzQixHQUFuQyxNQUFhLHNCQUFzQjtJQUNqQyxZQUFtQixJQUFnQixFQUE4QixNQUFrQjtRQUFoRSxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQThCLFdBQU0sR0FBTixNQUFNLENBQVk7UUFDakYsa0JBQWtCLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxhQUFhLENBQUMsQ0FBQyxDQUFDLFNBQVM7UUFDNUQsa0JBQWtCLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxhQUFhLENBQUMsQ0FBQyxDQUFDLFNBQVM7UUFDNUQsa0JBQWtCLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxhQUFhLENBQUMsQ0FBQyxDQUFDLFVBQVU7UUFDN0Qsa0JBQWtCLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxhQUFhLENBQUMsQ0FBQyxDQUFDLGFBQWE7UUFDaEUsa0JBQWtCLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxhQUFhLENBQUMsQ0FBQyxDQUFDLFNBQVM7UUFDNUQsa0JBQWtCLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxhQUFhLENBQUMsQ0FBQyxDQUFDLFVBQVU7UUFDN0Qsa0JBQWtCLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxhQUFhLENBQUMsQ0FBQyxDQUFDLFVBQVU7UUFDN0Qsa0JBQWtCLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxhQUFhLENBQUMsQ0FBQyxDQUFDLFVBQVU7UUFDN0Qsa0JBQWtCLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxhQUFhLENBQUMsQ0FBQyxDQUFDLFVBQVU7UUFDN0Qsa0JBQWtCLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxhQUFhLENBQUMsQ0FBQyxDQUFDLFNBQVM7UUFDNUQsa0JBQWtCLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxhQUFhLENBQUMsQ0FBQyxDQUFDLFNBQVM7UUFDNUQsa0JBQWtCLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxhQUFhLENBQUMsQ0FBQyxDQUFDLFlBQVk7UUFDL0Qsa0JBQWtCLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxhQUFhLENBQUMsQ0FBQyxDQUFDLFdBQVc7UUFDOUQsa0JBQWtCLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxhQUFhLENBQUMsQ0FBQyxDQUFDLFNBQVM7UUFDNUQsa0JBQWtCLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxhQUFhLENBQUMsQ0FBQyxDQUFDLFFBQVE7UUFDM0Qsa0JBQWtCLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxhQUFhLENBQUMsQ0FBQyxDQUFDLFlBQVk7UUFDL0Qsa0JBQWtCLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxhQUFhLENBQUMsQ0FBQyxDQUFDLGFBQWE7UUFDaEUsa0JBQWtCLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxhQUFhLENBQUMsQ0FBQyxDQUFDLFVBQVU7UUFDN0Qsa0JBQWtCLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxhQUFhLENBQUMsQ0FBQyxDQUFDLFFBQVE7UUFDM0Qsa0JBQWtCLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxhQUFhLENBQUMsQ0FBQyxDQUFDLFlBQVk7UUFDL0Qsa0JBQWtCLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxhQUFhLENBQUMsQ0FBQyxDQUFDLE9BQU87UUFDMUQsa0JBQWtCLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxhQUFhLENBQUMsQ0FBQyxDQUFDLFVBQVU7UUFDN0Qsa0JBQWtCLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxhQUFhLENBQUMsQ0FBQyxDQUFDLFVBQVU7UUFDN0Qsa0JBQWtCLENBQUMsVUFBVSxFQUFFLE9BQU8sRUFBRSxlQUFlLENBQUMsQ0FBQyxDQUFDLGVBQWU7SUFDM0UsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxjQUFjLENBQUMsSUFBWTtRQUN6QixNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUN4RixPQUFPLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzNGLENBQUM7SUFFTyxtQkFBbUIsQ0FBQyxJQUFZLEVBQUUsSUFBWTtRQUNwRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDLFdBQVcsRUFBRSxHQUFHLElBQUksR0FBRyxJQUFJLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FDcEUsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDZixzRUFBc0U7WUFDdEUsMEVBQTBFO1lBQzFFLG9EQUFvRDtZQUNwRCxPQUFPLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN6RixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztDQUNGLENBQUE7QUFoRFksc0JBQXNCO0lBQ0ssV0FBQSxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUE7cUNBQWhDLFVBQVUsRUFBc0MsVUFBVTtHQUR4RSxzQkFBc0IsQ0FnRGxDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBpMThuIHBhY2thZ2VzXG4gKi9cbmltcG9ydCB7IHJlZ2lzdGVyTG9jYWxlRGF0YSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IGxvY2FsZUFyIGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9sb2NhbGVzL2FyJztcbmltcG9ydCBsb2NhbGVCbiBmcm9tICdAYW5ndWxhci9jb21tb24vbG9jYWxlcy9ibic7XG5pbXBvcnQgbG9jYWxlRGUgZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2xvY2FsZXMvZGUnO1xuaW1wb3J0IGxvY2FsZURlQ2ggZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2xvY2FsZXMvZGUtQ0gnO1xuaW1wb3J0IGxvY2FsZUVzIGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9sb2NhbGVzL2VzJztcbmltcG9ydCBsb2NhbGVFeHRyYUFyIGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9sb2NhbGVzL2V4dHJhL2FyJztcbmltcG9ydCBsb2NhbGVFeHRyYUJuIGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9sb2NhbGVzL2V4dHJhL2JuJztcbmltcG9ydCBsb2NhbGVFeHRyYURlIGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9sb2NhbGVzL2V4dHJhL2RlJztcbmltcG9ydCBsb2NhbGVFeHRyYURlQ2ggZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2xvY2FsZXMvZXh0cmEvZGUtQ0gnO1xuaW1wb3J0IGxvY2FsZUV4dHJhRXMgZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2xvY2FsZXMvZXh0cmEvZXMnO1xuaW1wb3J0IGxvY2FsZUV4dHJhRmkgZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2xvY2FsZXMvZXh0cmEvZmknO1xuaW1wb3J0IGxvY2FsZUV4dHJhRnIgZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2xvY2FsZXMvZXh0cmEvZnInO1xuaW1wb3J0IGxvY2FsZUV4dHJhSGkgZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2xvY2FsZXMvZXh0cmEvaGknO1xuaW1wb3J0IGxvY2FsZUV4dHJhSXQgZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2xvY2FsZXMvZXh0cmEvaXQnO1xuaW1wb3J0IGxvY2FsZUV4dHJhSmEgZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2xvY2FsZXMvZXh0cmEvamEnO1xuaW1wb3J0IGxvY2FsZUV4dHJhS28gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2xvY2FsZXMvZXh0cmEva28nO1xuaW1wb3J0IGxvY2FsZUV4dHJhTHYgZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2xvY2FsZXMvZXh0cmEvbHYnO1xuaW1wb3J0IGxvY2FsZUV4dHJhTmIgZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2xvY2FsZXMvZXh0cmEvbmInO1xuaW1wb3J0IGxvY2FsZUV4dHJhTmwgZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2xvY2FsZXMvZXh0cmEvbmwnO1xuaW1wb3J0IGxvY2FsZUV4dHJhUGwgZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2xvY2FsZXMvZXh0cmEvcGwnO1xuaW1wb3J0IGxvY2FsZUV4dHJhUHQgZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2xvY2FsZXMvZXh0cmEvcHQnO1xuaW1wb3J0IGxvY2FsZUV4dHJhUnUgZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2xvY2FsZXMvZXh0cmEvcnUnO1xuaW1wb3J0IGxvY2FsZUV4dHJhU2sgZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2xvY2FsZXMvZXh0cmEvc2snO1xuaW1wb3J0IGxvY2FsZUV4dHJhU3YgZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2xvY2FsZXMvZXh0cmEvc3YnO1xuaW1wb3J0IGxvY2FsZUV4dHJhVGggZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2xvY2FsZXMvZXh0cmEvdGgnO1xuaW1wb3J0IGxvY2FsZUV4dHJhVHIgZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2xvY2FsZXMvZXh0cmEvdHInO1xuaW1wb3J0IGxvY2FsZUV4dHJhVWsgZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2xvY2FsZXMvZXh0cmEvdWsnO1xuaW1wb3J0IGxvY2FsZUV4dHJhVmkgZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2xvY2FsZXMvZXh0cmEvdmknO1xuaW1wb3J0IGxvY2FsZUV4dHJhWmggZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2xvY2FsZXMvZXh0cmEvemgnO1xuaW1wb3J0IGxvY2FsZUZpIGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9sb2NhbGVzL2ZpJztcbmltcG9ydCBsb2NhbGVGciBmcm9tICdAYW5ndWxhci9jb21tb24vbG9jYWxlcy9mcic7XG5pbXBvcnQgbG9jYWxlSGkgZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2xvY2FsZXMvaGknO1xuaW1wb3J0IGxvY2FsZUl0IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9sb2NhbGVzL2l0JztcbmltcG9ydCBsb2NhbGVKYSBmcm9tICdAYW5ndWxhci9jb21tb24vbG9jYWxlcy9qYSc7XG5pbXBvcnQgbG9jYWxlS28gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2xvY2FsZXMva28nO1xuaW1wb3J0IGxvY2FsZUx2IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9sb2NhbGVzL2x2JztcbmltcG9ydCBsb2NhbGVOYiBmcm9tICdAYW5ndWxhci9jb21tb24vbG9jYWxlcy9uYic7XG5pbXBvcnQgbG9jYWxlTmwgZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2xvY2FsZXMvbmwnO1xuaW1wb3J0IGxvY2FsZVBsIGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9sb2NhbGVzL3BsJztcbmltcG9ydCBsb2NhbGVQdCBmcm9tICdAYW5ndWxhci9jb21tb24vbG9jYWxlcy9wdCc7XG5pbXBvcnQgbG9jYWxlUnUgZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2xvY2FsZXMvcnUnO1xuaW1wb3J0IGxvY2FsZVNrIGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9sb2NhbGVzL3NrJztcbmltcG9ydCBsb2NhbGVTdiBmcm9tICdAYW5ndWxhci9jb21tb24vbG9jYWxlcy9zdic7XG5pbXBvcnQgbG9jYWxlVGggZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2xvY2FsZXMvdGgnO1xuaW1wb3J0IGxvY2FsZVRyIGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9sb2NhbGVzL3RyJztcbmltcG9ydCBsb2NhbGVVayBmcm9tICdAYW5ndWxhci9jb21tb24vbG9jYWxlcy91ayc7XG5pbXBvcnQgbG9jYWxlVmkgZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2xvY2FsZXMvdmknO1xuaW1wb3J0IGxvY2FsZVpoIGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9sb2NhbGVzL3poJztcbmltcG9ydCB7IEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTG9hZGVyIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBmb3JrSm9pbiwgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFV0aWxzIH0gZnJvbSAnLi4vLi4vdXRpbC91dGlscyc7XG5pbXBvcnQgeyBDb3JlQ29uZmlnIH0gZnJvbSAnLi4vY29uZmlnL2NvcmUtY29uZmlnJztcbmltcG9ydCB7IENPUkVfQ09ORklHIH0gZnJvbSAnLi4vY29uZmlnL2NvcmUtY29uZmlnLnRva2Vucyc7XG5cbi8qKlxuICogTG9hZGVyIHRoYXQgZmV0Y2hlcyB0cmFuc2xhdGlvbnMgYmFzZWQgb24gdGhlIGNvbmZpZ3VyZWQgbG9jYXRpb25zXG4gKiBAaWdub3JlXG4gKi9cbmV4cG9ydCBjbGFzcyBFb3hUcmFuc2xhdGVKc29uTG9hZGVyIGltcGxlbWVudHMgVHJhbnNsYXRlTG9hZGVyIHtcbiAgY29uc3RydWN0b3IocHVibGljIGh0dHA6IEh0dHBDbGllbnQsIEBJbmplY3QoQ09SRV9DT05GSUcpIHB1YmxpYyBjb25maWc6IENvcmVDb25maWcpIHtcbiAgICByZWdpc3RlckxvY2FsZURhdGEobG9jYWxlRGUsICdkZScsIGxvY2FsZUV4dHJhRGUpOyAvLyBHZXJtYW5cbiAgICByZWdpc3RlckxvY2FsZURhdGEobG9jYWxlQXIsICdhcicsIGxvY2FsZUV4dHJhQXIpOyAvLyBBcmFiaWNcbiAgICByZWdpc3RlckxvY2FsZURhdGEobG9jYWxlRXMsICdlcycsIGxvY2FsZUV4dHJhRXMpOyAvLyBTcGFuaXNoXG4gICAgcmVnaXN0ZXJMb2NhbGVEYXRhKGxvY2FsZVB0LCAncHQnLCBsb2NhbGVFeHRyYVB0KTsgLy8gUG9ydHVndWVzZVxuICAgIHJlZ2lzdGVyTG9jYWxlRGF0YShsb2NhbGVGciwgJ2ZyJywgbG9jYWxlRXh0cmFGcik7IC8vIEZyZW5jaFxuICAgIHJlZ2lzdGVyTG9jYWxlRGF0YShsb2NhbGVaaCwgJ3poJywgbG9jYWxlRXh0cmFaaCk7IC8vIENoaW5lc2VcbiAgICByZWdpc3RlckxvY2FsZURhdGEobG9jYWxlTHYsICdsdicsIGxvY2FsZUV4dHJhTHYpOyAvLyBMYXR2aWFuXG4gICAgcmVnaXN0ZXJMb2NhbGVEYXRhKGxvY2FsZVJ1LCAncnUnLCBsb2NhbGVFeHRyYVJ1KTsgLy8gUnVzc2lhblxuICAgIHJlZ2lzdGVyTG9jYWxlRGF0YShsb2NhbGVJdCwgJ2l0JywgbG9jYWxlRXh0cmFJdCk7IC8vIEl0YWxpYW5cbiAgICByZWdpc3RlckxvY2FsZURhdGEobG9jYWxlU2ssICdzaycsIGxvY2FsZUV4dHJhU2spOyAvLyBTbG92YWtcbiAgICByZWdpc3RlckxvY2FsZURhdGEobG9jYWxlUGwsICdwbCcsIGxvY2FsZUV4dHJhUGwpOyAvLyBQb2xpc2hcbiAgICByZWdpc3RlckxvY2FsZURhdGEobG9jYWxlVWssICd1aycsIGxvY2FsZUV4dHJhVWspOyAvLyBVa3JhaW5pYW5cbiAgICByZWdpc3RlckxvY2FsZURhdGEobG9jYWxlSmEsICdqYScsIGxvY2FsZUV4dHJhSmEpOyAvLyBKYXBhbmVzZVxuICAgIHJlZ2lzdGVyTG9jYWxlRGF0YShsb2NhbGVLbywgJ2tvJywgbG9jYWxlRXh0cmFLbyk7IC8vIEtvcmVhblxuICAgIHJlZ2lzdGVyTG9jYWxlRGF0YShsb2NhbGVIaSwgJ2hpJywgbG9jYWxlRXh0cmFIaSk7IC8vIEhpbmRpXG4gICAgcmVnaXN0ZXJMb2NhbGVEYXRhKGxvY2FsZUJuLCAnYm4nLCBsb2NhbGVFeHRyYUJuKTsgLy8gQmVuZ2FsZXNlXG4gICAgcmVnaXN0ZXJMb2NhbGVEYXRhKGxvY2FsZVZpLCAndmknLCBsb2NhbGVFeHRyYVZpKTsgLy8gVmlldG5hbWVzZVxuICAgIHJlZ2lzdGVyTG9jYWxlRGF0YShsb2NhbGVUciwgJ3RyJywgbG9jYWxlRXh0cmFUcik7IC8vIFR1cmtpc2hcbiAgICByZWdpc3RlckxvY2FsZURhdGEobG9jYWxlTmwsICdubCcsIGxvY2FsZUV4dHJhTmwpOyAvLyBEdXRjaFxuICAgIHJlZ2lzdGVyTG9jYWxlRGF0YShsb2NhbGVOYiwgJ25iJywgbG9jYWxlRXh0cmFOYik7IC8vIE5vcndlZ2lhblxuICAgIHJlZ2lzdGVyTG9jYWxlRGF0YShsb2NhbGVUaCwgJ3RoJywgbG9jYWxlRXh0cmFUaCk7IC8vIFRoYWlcbiAgICByZWdpc3RlckxvY2FsZURhdGEobG9jYWxlRmksICdmaScsIGxvY2FsZUV4dHJhRmkpOyAvLyBGaW5uaXNoXG4gICAgcmVnaXN0ZXJMb2NhbGVEYXRhKGxvY2FsZVN2LCAnc3YnLCBsb2NhbGVFeHRyYVN2KTsgLy8gU3dlZGlzaFxuICAgIHJlZ2lzdGVyTG9jYWxlRGF0YShsb2NhbGVEZUNoLCAnZGUtQ0gnLCBsb2NhbGVFeHRyYURlQ2gpOyAvLyBHZXJtYW4gU3dpc3NcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0gc3RyaW5nIGxhbmdcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxPYmplY3Q+XG4gICAqL1xuICBnZXRUcmFuc2xhdGlvbihsYW5nOiBzdHJpbmcpOiBPYnNlcnZhYmxlPE9iamVjdD4ge1xuICAgIGNvbnN0IHQgPSB0aGlzLmNvbmZpZy50cmFuc2xhdGlvbnMhLm1hcCgocGF0aCkgPT4gdGhpcy5sb2FkVHJhbnNsYXRpb25GaWxlKHBhdGgsIGxhbmcpKTtcbiAgICByZXR1cm4gZm9ya0pvaW4odCkucGlwZShtYXAoKHJlcykgPT4gcmVzLnJlZHVjZSgoYWNjLCB4KSA9PiBPYmplY3QuYXNzaWduKGFjYywgeCksIHt9KSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBsb2FkVHJhbnNsYXRpb25GaWxlKHBhdGg6IHN0cmluZywgbGFuZzogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHtVdGlscy5nZXRCYXNlSHJlZigpfSR7cGF0aH0ke2xhbmd9Lmpzb25gKS5waXBlKFxuICAgICAgY2F0Y2hFcnJvcigoZSkgPT4ge1xuICAgICAgICAvLyBJU08gY29kZXMgd2l0aCBtb3JlIHRoYW4gMiBjaGFyYWN0ZXJzIGFyZSBzdWItbGFuZ3VhZ2VzIGxpa2UgZGUtQ0guXG4gICAgICAgIC8vIElmIHRoZXJlIGlzIG5vIHRyYW5zbGF0aW9uIGZpbGUgZm9yIHRoYXQgc3ViLWxhbmd1YWdlIHdlJ2xsIHRyeSB0byBsb2FkXG4gICAgICAgIC8vIHRoZSBmaWxlIGZvciB0aGUgYmFzZSBsYW5ndWFnZSAoaW4gdGhpcyBjYXNlIGRlKS5cbiAgICAgICAgcmV0dXJuIGxhbmcubGVuZ3RoID4gMiA/IHRoaXMubG9hZFRyYW5zbGF0aW9uRmlsZShwYXRoLCBsYW5nLnN1YnN0cmluZygwLCAyKSkgOiBvZih7fSk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cbn1cbiJdfQ==
@@ -1,6 +0,0 @@
1
- export var DeviceScreenOrientation;
2
- (function (DeviceScreenOrientation) {
3
- DeviceScreenOrientation["PORTRAIT"] = "portrait";
4
- DeviceScreenOrientation["LANDSCAPE"] = "landscape";
5
- })(DeviceScreenOrientation || (DeviceScreenOrientation = {}));
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2aWNlLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMveXV1dmlzL2NsaWVudC1jb3JlL3NyYy9saWIvc2VydmljZS9kZXZpY2UvZGV2aWNlLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSx1QkFHWDtBQUhELFdBQVksdUJBQXVCO0lBQy9CLGdEQUFxQixDQUFBO0lBQ3JCLGtEQUF1QixDQUFBO0FBQzNCLENBQUMsRUFIVyx1QkFBdUIsS0FBdkIsdUJBQXVCLFFBR2xDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gRGV2aWNlU2NyZWVuT3JpZW50YXRpb24ge1xuICAgIFBPUlRSQUlUID0gJ3BvcnRyYWl0JyxcbiAgICBMQU5EU0NBUEUgPSAnbGFuZHNjYXBlJ1xufVxuXG5cbmV4cG9ydCBpbnRlcmZhY2UgRGV2aWNlU2NyZWVuIHtcbiAgc2l6ZTogU2NyZWVuU2l6ZTtcbiAgb3JpZW50YXRpb246IERldmljZVNjcmVlbk9yaWVudGF0aW9uXG4gIHdpZHRoOiBudW1iZXI7XG4gIGhlaWdodDogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERldmljZVNjcmVlbkJvdW5kcyB7XG4gIHdpZHRoOiBudW1iZXI7XG4gIGhlaWdodDogbnVtYmVyO1xufVxuXG5leHBvcnQgdHlwZSBTY3JlZW5TaXplID0gJ3MnIHwgJ20nIHwgJ2wnIHwgJ3hsJztcblxuXG4iXX0=
@@ -1,144 +0,0 @@
1
- import { inject, Injectable } from '@angular/core';
2
- import { DeviceDetectorService } from 'ngx-device-detector';
3
- import { debounceTime, fromEvent, ReplaySubject } from 'rxjs';
4
- import { DeviceScreenOrientation } from './device.interface';
5
- import * as i0 from "@angular/core";
6
- /**
7
- * This service is used to adapt styles and designs of the client to
8
- * different devices and screen sizes.
9
- *
10
- * Using `screenChange$` observable you are able to monitor changes to
11
- * the screen size and act upon it.
12
- *
13
- * This service will also adds attributes to the body tag that reflect the
14
- * current screen/device state. This way you can apply secific styles in your
15
- * css files for different screen resolutions and orientations.
16
- *
17
- * Attributes applied to the body tag are:
18
- *
19
- * - `data-screen` - [s, m, l, xl] - for different screen sizes
20
- * (s: for mobile phone like screen sizes, m: for tablet like screen
21
- * sizes, 'l': for desktop like screen sizes, 'xl': for screen sizes exceeding
22
- * the desktop screen size).
23
- *
24
- * - `data-orientation` - [portrait, landscape] - for the current screen orientation
25
- *
26
- * - `data-touch-enabled` - [true] - if the device has touch capabilities (won't be added if the device doesn't have touch capabilities)
27
- *
28
- * ```html
29
- * <body data-screen-size="s" data-screen-orientation="portrait" data-touch-enabled="true">
30
- * ...
31
- * </body>
32
- * ```
33
- */
34
- export class DeviceService {
35
- #deviceDetectorService;
36
- #upperScreenBoundary;
37
- #resize$;
38
- #screen;
39
- #screenSource;
40
- constructor() {
41
- this.#deviceDetectorService = inject(DeviceDetectorService);
42
- this.#upperScreenBoundary = {
43
- small: 600,
44
- mediumPortrait: 900,
45
- mediumLandscape: 1200,
46
- large: 1800
47
- };
48
- this.#resize$ = fromEvent(window, 'resize').pipe(debounceTime(this.#getDebounceTime()));
49
- this.#screenSource = new ReplaySubject(1);
50
- this.screenChange$ = this.#screenSource.asObservable();
51
- /**
52
- * if the device is a mobile device (android / iPhone / windows-phone etc)
53
- */
54
- this.isMobile = this.#deviceDetectorService.isMobile();
55
- /**
56
- * if the device us a tablet (iPad etc)
57
- */
58
- this.isTablet = this.#deviceDetectorService.isTablet();
59
- /**
60
- * if the app is running on a Desktop browser
61
- */
62
- this.isDesktop = this.#deviceDetectorService.isDesktop();
63
- this.info = this.#deviceDetectorService.getDeviceInfo();
64
- this.isTouchEnabled = this.#isTouchEnabled();
65
- this.#resize$.subscribe((e) => {
66
- this.#setScreen();
67
- });
68
- }
69
- init() {
70
- this.#setScreen();
71
- }
72
- #isTouchEnabled() {
73
- return 'ontouchstart' in window || navigator.maxTouchPoints > 0;
74
- }
75
- #setScreen() {
76
- const bounds = {
77
- width: window.innerWidth,
78
- height: window.innerHeight
79
- };
80
- let orientation = bounds.width >= bounds.height ? DeviceScreenOrientation.LANDSCAPE : DeviceScreenOrientation.PORTRAIT;
81
- if (this.isMobile && window.screen['orientation']) {
82
- const screenOrientation = window.screen['orientation'].type;
83
- if (screenOrientation === 'landscape-primary' || screenOrientation === 'landscape-secondary') {
84
- orientation = DeviceScreenOrientation.LANDSCAPE;
85
- }
86
- else if (screenOrientation === 'portrait-primary' || screenOrientation === 'portrait-secondary') {
87
- orientation = DeviceScreenOrientation.PORTRAIT;
88
- }
89
- }
90
- this.#screen = {
91
- size: this.#getScreenSize(bounds, orientation),
92
- orientation,
93
- width: bounds.width,
94
- height: bounds.height
95
- };
96
- this.#screenSource.next(this.#screen);
97
- this.#setupDOM(this.#screen);
98
- // force change detection because resize will not be recognized by Angular in some cases
99
- // TODO: check: causes recursive ticks in some cases ...
100
- // eslint-disable-next-line @typescript-eslint/no-empty-function
101
- setTimeout(() => { }, 0);
102
- }
103
- #setupDOM(screen) {
104
- const body = document.querySelector('body');
105
- body.setAttribute('data-screen-size', screen.size);
106
- body.setAttribute('data-screen-orientation', screen.orientation);
107
- if (this.isTouchEnabled)
108
- body.setAttribute('data-touch-enabled', 'true');
109
- else
110
- body.removeAttribute('data-touch-enabled');
111
- }
112
- #getScreenSize(bounds, orientation) {
113
- if (this.#isBelow(this.#upperScreenBoundary.small, bounds)) {
114
- return 's';
115
- }
116
- else if (this.#isBelow(orientation === 'landscape' ? this.#upperScreenBoundary.mediumLandscape : this.#upperScreenBoundary.mediumPortrait, bounds)) {
117
- return 'm';
118
- }
119
- else if (this.#isBelow(this.#upperScreenBoundary.large, bounds)) {
120
- return 'l';
121
- }
122
- else {
123
- return 'xl';
124
- }
125
- }
126
- #isBelow(size, bounds) {
127
- const landscape = bounds.width < this.#upperScreenBoundary.large ? bounds.width >= bounds.height : false;
128
- return (landscape && bounds.height < size) || (!landscape && bounds.width < size);
129
- }
130
- #getDebounceTime() {
131
- // on mobile devices resize only happens when rotating the device or when
132
- // keyboard appears, so we dont't need to debounce
133
- return this.isMobile ? 0 : 500;
134
- }
135
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DeviceService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
136
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DeviceService, providedIn: 'root' }); }
137
- }
138
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DeviceService, decorators: [{
139
- type: Injectable,
140
- args: [{
141
- providedIn: 'root'
142
- }]
143
- }], ctorParameters: () => [] });
144
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2aWNlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3l1dXZpcy9jbGllbnQtY29yZS9zcmMvbGliL3NlcnZpY2UvZGV2aWNlL2RldmljZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxxQkFBcUIsRUFBYyxNQUFNLHFCQUFxQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFjLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxRSxPQUFPLEVBQW9DLHVCQUF1QixFQUFjLE1BQU0sb0JBQW9CLENBQUM7O0FBQzNHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EyQkc7QUFJSCxNQUFNLE9BQU8sYUFBYTtJQUN4QixzQkFBc0IsQ0FBaUM7SUFFdkQsb0JBQW9CLENBS2xCO0lBRUYsUUFBUSxDQUEyRTtJQUNuRixPQUFPLENBQWdCO0lBQ3ZCLGFBQWEsQ0FBc0M7SUFrQm5EO1FBN0JBLDJCQUFzQixHQUFHLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBRXZELHlCQUFvQixHQUFHO1lBQ3JCLEtBQUssRUFBRSxHQUFHO1lBQ1YsY0FBYyxFQUFFLEdBQUc7WUFDbkIsZUFBZSxFQUFFLElBQUk7WUFDckIsS0FBSyxFQUFFLElBQUk7U0FDWixDQUFDO1FBRUYsYUFBUSxHQUFHLFNBQVMsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFFbkYsa0JBQWEsR0FBRyxJQUFJLGFBQWEsQ0FBZSxDQUFDLENBQUMsQ0FBQztRQUNuRCxrQkFBYSxHQUE2QixJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksRUFBRSxDQUFD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LE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7SUFDakMsQ0FBQzsrR0F4R1UsYUFBYTttSEFBYixhQUFhLGNBRlosTUFBTTs7NEZBRVAsYUFBYTtrQkFIekIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERldmljZURldGVjdG9yU2VydmljZSwgRGV2aWNlSW5mbyB9IGZyb20gJ25neC1kZXZpY2UtZGV0ZWN0b3InO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBmcm9tRXZlbnQsIE9ic2VydmFibGUsIFJlcGxheVN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IERldmljZVNjcmVlbiwgRGV2aWNlU2NyZWVuQm91bmRzLCBEZXZpY2VTY3JlZW5PcmllbnRhdGlvbiwgU2NyZWVuU2l6ZSB9IGZyb20gJy4vZGV2aWNlLmludGVyZmFjZSc7XG4vKipcbiAqIFRoaXMgc2VydmljZSBpcyB1c2VkIHRvIGFkYXB0IHN0eWxlcyBhbmQgZGVzaWducyBvZiB0aGUgY2xpZW50IHRvIFxuICogZGlmZmVyZW50IGRldmljZXMgYW5kIHNjcmVlbiBzaXplcy5cbiAqIFxuICogVXNpbmcgYHNjcmVlbkNoYW5nZSRgIG9ic2VydmFibGUgeW91IGFyZSBhYmxlIHRvIG1vbml0b3IgY2hhbmdlcyB0byBcbiAqIHRoZSBzY3JlZW4gc2l6ZSBhbmQgYWN0IHVwb24gaXQuXG4gKlxuICogVGhpcyBzZXJ2aWNlIHdpbGwgYWxzbyBhZGRzIGF0dHJpYnV0ZXMgdG8gdGhlIGJvZHkgdGFnIHRoYXQgcmVmbGVjdCB0aGUgXG4gKiBjdXJyZW50IHNjcmVlbi9kZXZpY2Ugc3RhdGUuIFRoaXMgd2F5IHlvdSBjYW4gYXBwbHkgc2VjaWZpYyBzdHlsZXMgaW4geW91ciBcbiAqIGNzcyBmaWxlcyBmb3IgZGlmZmVyZW50IHNjcmVlbiByZXNvbHV0aW9ucyBhbmQgb3JpZW50YXRpb25zLlxuICpcbiAqIEF0dHJpYnV0ZXMgYXBwbGllZCB0byB0aGUgYm9keSB0YWcgYXJlOlxuICpcbiAqIC0gYGRhdGEtc2NyZWVuYCAtIFtzLCBtLCBsLCB4bF0gLSBmb3IgZGlmZmVyZW50IHNjcmVlbiBzaXplcyBcbiAqIChzOiBmb3IgbW9iaWxlIHBob25lIGxpa2Ugc2NyZWVuIHNpemVzLCBtOiBmb3IgdGFibGV0IGxpa2Ugc2NyZWVuIFxuICogc2l6ZXMsICdsJzogZm9yIGRlc2t0b3AgbGlrZSBzY3JlZW4gc2l6ZXMsICd4bCc6IGZvciBzY3JlZW4gc2l6ZXMgZXhjZWVkaW5nIFxuICogdGhlIGRlc2t0b3Agc2NyZWVuIHNpemUpLiBcbiAqXG4gKiAtIGBkYXRhLW9yaWVudGF0aW9uYCAtIFtwb3J0cmFpdCwgbGFuZHNjYXBlXSAtIGZvciB0aGUgY3VycmVudCBzY3JlZW4gb3JpZW50YXRpb25cbiAqIFxuICogLSBgZGF0YS10b3VjaC1lbmFibGVkYCAtIFt0cnVlXSAtIGlmIHRoZSBkZXZpY2UgaGFzIHRvdWNoIGNhcGFiaWxpdGllcyAod29uJ3QgYmUgYWRkZWQgaWYgdGhlIGRldmljZSBkb2Vzbid0IGhhdmUgdG91Y2ggY2FwYWJpbGl0aWVzKSAgXG4gKiBcbiAqIGBgYGh0bWxcbiAqIDxib2R5IGRhdGEtc2NyZWVuLXNpemU9XCJzXCIgZGF0YS1zY3JlZW4tb3JpZW50YXRpb249XCJwb3J0cmFpdFwiIGRhdGEtdG91Y2gtZW5hYmxlZD1cInRydWVcIj5cbiAqIC4uLlxuICogPC9ib2R5PlxuICogYGBgXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIERldmljZVNlcnZpY2Uge1xuICAjZGV2aWNlRGV0ZWN0b3JTZXJ2aWNlID0gaW5qZWN0KERldmljZURldGVjdG9yU2VydmljZSk7XG5cbiAgI3VwcGVyU2NyZWVuQm91bmRhcnkgPSB7XG4gICAgc21hbGw6IDYwMCxcbiAgICBtZWRpdW1Qb3J0cmFpdDogOTAwLFxuICAgIG1lZGl1bUxhbmRzY2FwZTogMTIwMCxcbiAgICBsYXJnZTogMTgwMFxuICB9O1xuXG4gICNyZXNpemUkID0gZnJvbUV2ZW50KHdpbmRvdywgJ3Jlc2l6ZScpLnBpcGUoZGVib3VuY2VUaW1lKHRoaXMuI2dldERlYm91bmNlVGltZSgpKSk7XG4gICNzY3JlZW4/OiBEZXZpY2VTY3JlZW47XG4gICNzY3JlZW5Tb3VyY2UgPSBuZXcgUmVwbGF5U3ViamVjdDxEZXZpY2VTY3JlZW4+KDEpO1xuICBzY3JlZW5DaGFuZ2UkOiBPYnNlcnZhYmxlPERldmljZVNjcmVlbj4gPSB0aGlzLiNzY3JlZW5Tb3VyY2UuYXNPYnNlcnZhYmxlKCk7XG5cbiAgLyoqXG4gICAqIGlmIHRoZSBkZXZpY2UgaXMgYSBtb2JpbGUgZGV2aWNlIChhbmRyb2lkIC8gaVBob25lIC8gd2luZG93cy1waG9uZSBldGMpXG4gICAqL1xuICBpc01vYmlsZTogYm9vbGVhbiA9IHRoaXMuI2RldmljZURldGVjdG9yU2VydmljZS5pc01vYmlsZSgpO1xuICAvKipcbiAgICogIGlmIHRoZSBkZXZpY2UgdXMgYSB0YWJsZXQgKGlQYWQgZXRjKVxuICAgKi9cbiAgaXNUYWJsZXQ6IGJvb2xlYW4gPSB0aGlzLiNkZXZpY2VEZXRlY3RvclNlcnZpY2UuaXNUYWJsZXQoKTtcbiAgLyoqXG4gICAqIGlmIHRoZSBhcHAgaXMgcnVubmluZyBvbiBhIERlc2t0b3AgYnJvd3NlclxuICAgKi9cbiAgaXNEZXNrdG9wOiBib29sZWFuID0gdGhpcy4jZGV2aWNlRGV0ZWN0b3JTZXJ2aWNlLmlzRGVza3RvcCgpO1xuICBpbmZvPzogRGV2aWNlSW5mbyA9IHRoaXMuI2RldmljZURldGVjdG9yU2VydmljZS5nZXREZXZpY2VJbmZvKCk7XG4gIGlzVG91Y2hFbmFibGVkID0gdGhpcy4jaXNUb3VjaEVuYWJsZWQoKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLiNyZXNpemUkLnN1YnNjcmliZSgoZTogRXZlbnQpID0+IHtcbiAgICAgIHRoaXMuI3NldFNjcmVlbigpO1xuICAgIH0pO1xuICB9XG5cbiAgaW5pdCgpIHtcbiAgICB0aGlzLiNzZXRTY3JlZW4oKTtcbiAgfVxuXG4gICNpc1RvdWNoRW5hYmxlZCgpIHtcbiAgICByZXR1cm4gJ29udG91Y2hzdGFydCcgaW4gd2luZG93IHx8IG5hdmlnYXRvci5tYXhUb3VjaFBvaW50cyA+IDA7XG4gIH1cblxuICAjc2V0U2NyZWVuKCk6IHZvaWQge1xuICAgIGNvbnN0IGJvdW5kczogRGV2aWNlU2NyZWVuQm91bmRzID0ge1xuICAgICAgd2lkdGg6IHdpbmRvdy5pbm5lcldpZHRoLFxuICAgICAgaGVpZ2h0OiB3aW5kb3cuaW5uZXJIZWlnaHRcbiAgICB9O1xuICAgIGxldCBvcmllbnRhdGlvbjogRGV2aWNlU2NyZWVuT3JpZW50YXRpb24gPSBib3VuZHMud2lkdGggPj0gYm91bmRzLmhlaWdodCA/IERldmljZVNjcmVlbk9yaWVudGF0aW9uLkxBTkRTQ0FQRSA6IERldmljZVNjcmVlbk9yaWVudGF0aW9uLlBPUlRSQUlUO1xuXG4gICAgaWYgKHRoaXMuaXNNb2JpbGUgJiYgd2luZG93LnNjcmVlblsnb3JpZW50YXRpb24nXSkge1xuICAgICAgY29uc3Qgc2NyZWVuT3JpZW50YXRpb24gPSB3aW5kb3cuc2NyZWVuWydvcmllbnRhdGlvbiddLnR5cGU7XG4gICAgICBpZiAoc2NyZWVuT3JpZW50YXRpb24gPT09ICdsYW5kc2NhcGUtcHJpbWFyeScgfHwgc2NyZWVuT3JpZW50YXRpb24gPT09ICdsYW5kc2NhcGUtc2Vjb25kYXJ5Jykge1xuICAgICAgICBvcmllbnRhdGlvbiA9IERldmljZVNjcmVlbk9yaWVudGF0aW9uLkxBTkRTQ0FQRTtcbiAgICAgIH0gZWxzZSBpZiAoc2NyZWVuT3JpZW50YXRpb24gPT09ICdwb3J0cmFpdC1wcmltYXJ5JyB8fCBzY3JlZW5PcmllbnRhdGlvbiA9PT0gJ3BvcnRyYWl0LXNlY29uZGFyeScpIHtcbiAgICAgICAgb3JpZW50YXRpb24gPSBEZXZpY2VTY3JlZW5PcmllbnRhdGlvbi5QT1JUUkFJVDtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy4jc2NyZWVuID0ge1xuICAgICAgc2l6ZTogdGhpcy4jZ2V0U2NyZWVuU2l6ZShib3VuZHMsIG9yaWVudGF0aW9uKSxcbiAgICAgIG9yaWVudGF0aW9uLFxuICAgICAgd2lkdGg6IGJvdW5kcy53aWR0aCxcbiAgICAgIGhlaWdodDogYm91bmRzLmhlaWdodFxuICAgIH07XG4gICAgdGhpcy4jc2NyZWVuU291cmNlLm5leHQodGhpcy4jc2NyZWVuKTtcbiAgICB0aGlzLiNzZXR1cERPTSh0aGlzLiNzY3JlZW4pO1xuICAgIC8vIGZvcmNlIGNoYW5nZSBkZXRlY3Rpb24gYmVjYXVzZSByZXNpemUgd2lsbCBub3QgYmUgcmVjb2duaXplZCBieSBBbmd1bGFyIGluIHNvbWUgY2FzZXNcbiAgICAvLyBUT0RPOiBjaGVjazogY2F1c2VzIHJlY3Vyc2l2ZSB0aWNrcyBpbiBzb21lIGNhc2VzIC4uLlxuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge30sIDApO1xuXG4gIH1cblxuICAjc2V0dXBET00oc2NyZWVuOiBEZXZpY2VTY3JlZW4pIHtcbiAgICBjb25zdCBib2R5OiBIVE1MQm9keUVsZW1lbnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdib2R5JykgYXMgSFRNTEJvZHlFbGVtZW50O1xuICAgIGJvZHkuc2V0QXR0cmlidXRlKCdkYXRhLXNjcmVlbi1zaXplJywgc2NyZWVuLnNpemUpO1xuICAgIGJvZHkuc2V0QXR0cmlidXRlKCdkYXRhLXNjcmVlbi1vcmllbnRhdGlvbicsIHNjcmVlbi5vcmllbnRhdGlvbik7XG4gICAgaWYgKHRoaXMuaXNUb3VjaEVuYWJsZWQpIGJvZHkuc2V0QXR0cmlidXRlKCdkYXRhLXRvdWNoLWVuYWJsZWQnLCAndHJ1ZScpO1xuICAgIGVsc2UgYm9keS5yZW1vdmVBdHRyaWJ1dGUoJ2RhdGEtdG91Y2gtZW5hYmxlZCcpO1xuICB9XG5cbiAgI2dldFNjcmVlblNpemUoYm91bmRzOiBEZXZpY2VTY3JlZW5Cb3VuZHMsIG9yaWVudGF0aW9uOiBEZXZpY2VTY3JlZW5PcmllbnRhdGlvbik6IFNjcmVlblNpemUge1xuICAgIGlmICh0aGlzLiNpc0JlbG93KHRoaXMuI3VwcGVyU2NyZWVuQm91bmRhcnkuc21hbGwsIGJvdW5kcykpIHtcbiAgICAgIHJldHVybiAncyc7XG4gICAgfSBlbHNlIGlmICh0aGlzLiNpc0JlbG93KG9yaWVudGF0aW9uID09PSAnbGFuZHNjYXBlJyA/IHRoaXMuI3VwcGVyU2NyZWVuQm91bmRhcnkubWVkaXVtTGFuZHNjYXBlIDogdGhpcy4jdXBwZXJTY3JlZW5Cb3VuZGFyeS5tZWRpdW1Qb3J0cmFpdCwgYm91bmRzKSkge1xuICAgICAgcmV0dXJuICdtJztcbiAgICB9IGVsc2UgaWYgKHRoaXMuI2lzQmVsb3codGhpcy4jdXBwZXJTY3JlZW5Cb3VuZGFyeS5sYXJnZSwgYm91bmRzKSkge1xuICAgICAgcmV0dXJuICdsJztcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuICd4bCc7XG4gICAgfVxuICB9XG5cbiAgI2lzQmVsb3coc2l6ZTogbnVtYmVyLCBib3VuZHM6IERldmljZVNjcmVlbkJvdW5kcyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGxhbmRzY2FwZSA9IGJvdW5kcy53aWR0aCA8IHRoaXMuI3VwcGVyU2NyZWVuQm91bmRhcnkubGFyZ2UgPyBib3VuZHMud2lkdGggPj0gYm91bmRzLmhlaWdodCA6IGZhbHNlO1xuICAgIHJldHVybiAobGFuZHNjYXBlICYmIGJvdW5kcy5oZWlnaHQgPCBzaXplKSB8fCAoIWxhbmRzY2FwZSAmJiBib3VuZHMud2lkdGggPCBzaXplKTtcbiAgfVxuXG4gICNnZXREZWJvdW5jZVRpbWUoKSB7XG4gICAgLy8gb24gbW9iaWxlIGRldmljZXMgcmVzaXplIG9ubHkgaGFwcGVucyB3aGVuIHJvdGF0aW5nIHRoZSBkZXZpY2Ugb3Igd2hlblxuICAgIC8vIGtleWJvYXJkIGFwcGVhcnMsIHNvIHdlIGRvbnQndCBuZWVkIHRvIGRlYm91bmNlXG4gICAgcmV0dXJuIHRoaXMuaXNNb2JpbGUgPyAwIDogNTAwO1xuICB9XG59XG4iXX0=