@yuuvis/client-core 2.0.0-beta.0 → 2.0.0-beta.10
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.
- package/fesm2022/yuuvis-client-core.mjs +773 -645
- package/fesm2022/yuuvis-client-core.mjs.map +1 -1
- package/index.d.ts +7 -4
- package/lib/model/object-flavor.interface.d.ts +4 -1
- package/lib/provide.client.core.d.ts +58 -0
- package/lib/service/backend/backend.service.d.ts +0 -1
- package/lib/service/config/config.service.d.ts +0 -8
- package/lib/service/core-init/core-init.service.d.ts +1 -7
- package/lib/service/core-init/translate-json-loader.d.ts +1 -1
- package/lib/service/dms/dms.service.d.ts +2 -1
- package/lib/service/object-config/object-config.interface.d.ts +1 -1
- package/lib/service/object-form/object-form-translate.service.d.ts +15 -0
- package/lib/service/{system → object-form}/object-form.interface.d.ts +2 -2
- package/lib/service/object-form/object-form.model.d.ts +45 -0
- package/lib/service/system/system.interface.d.ts +1 -1
- package/lib/service/system/system.service.d.ts +1 -1
- package/lib/service/toast/toast.interface.d.ts +8 -0
- package/lib/service/toast/toast.service.d.ts +17 -0
- package/lib/service/toast/toast.styles.d.ts +1 -0
- package/lib/service/upload/upload.interface.d.ts +1 -1
- package/lib/service/user/user.providers.d.ts +4 -0
- package/lib/service/user/user.service.d.ts +2 -4
- package/package.json +7 -11
- package/esm2022/index.mjs +0 -69
- package/esm2022/lib/client-core.module.mjs +0 -117
- package/esm2022/lib/client-core.shared.module.mjs +0 -18
- package/esm2022/lib/common/pipes/filesize.pipe.mjs +0 -37
- package/esm2022/lib/common/pipes/index.mjs +0 -6
- package/esm2022/lib/common/pipes/keys.pipe.mjs +0 -17
- package/esm2022/lib/common/pipes/locale-date.pipe.mjs +0 -45
- package/esm2022/lib/common/pipes/locale-number.pipe.mjs +0 -115
- package/esm2022/lib/common/pipes/safe-html.pipe.mjs +0 -44
- package/esm2022/lib/common/services/native-notifications.interface.mjs +0 -2
- package/esm2022/lib/common/services/native-notifications.mjs +0 -40
- package/esm2022/lib/model/dms-object.interface.mjs +0 -2
- package/esm2022/lib/model/dms-object.model.mjs +0 -79
- package/esm2022/lib/model/object-flavor.interface.mjs +0 -2
- package/esm2022/lib/model/range-value.interface.mjs +0 -2
- package/esm2022/lib/model/yuv-error.model.mjs +0 -37
- package/esm2022/lib/model/yuv-user.model.mjs +0 -38
- package/esm2022/lib/service/audit/audit.interface.mjs +0 -2
- package/esm2022/lib/service/audit/audit.service.mjs +0 -135
- package/esm2022/lib/service/auth/auth.interceptor.mjs +0 -50
- package/esm2022/lib/service/auth/auth.interface.mjs +0 -7
- package/esm2022/lib/service/auth/auth.service.mjs +0 -130
- package/esm2022/lib/service/auth/oidc.service.mjs +0 -81
- package/esm2022/lib/service/backend/api.enum.mjs +0 -11
- package/esm2022/lib/service/backend/backend.interface.mjs +0 -2
- package/esm2022/lib/service/backend/backend.service.mjs +0 -206
- package/esm2022/lib/service/bpm/bpm.interface.mjs +0 -8
- package/esm2022/lib/service/bpm/bpm.service.mjs +0 -51
- package/esm2022/lib/service/cache/app-cache.service.mjs +0 -51
- package/esm2022/lib/service/catalog/catalog.interface.mjs +0 -2
- package/esm2022/lib/service/catalog/catalog.service.mjs +0 -13
- package/esm2022/lib/service/clipboard/clipboard.interface.mjs +0 -2
- package/esm2022/lib/service/clipboard/clipboard.service.mjs +0 -99
- package/esm2022/lib/service/config/config.interface.mjs +0 -6
- package/esm2022/lib/service/config/config.service.mjs +0 -115
- package/esm2022/lib/service/config/core-config.mjs +0 -20
- package/esm2022/lib/service/config/core-config.tokens.mjs +0 -9
- package/esm2022/lib/service/connection/connection.service.mjs +0 -36
- package/esm2022/lib/service/connection/offline.interceptor.mjs +0 -28
- package/esm2022/lib/service/core-init/core-init.service.mjs +0 -29
- package/esm2022/lib/service/core-init/missing-translation-handler.mjs +0 -10
- package/esm2022/lib/service/core-init/translate-json-loader.mjs +0 -117
- package/esm2022/lib/service/device/device.interface.mjs +0 -6
- package/esm2022/lib/service/device/device.service.mjs +0 -144
- package/esm2022/lib/service/dms/dms.service.interface.mjs +0 -2
- package/esm2022/lib/service/dms/dms.service.mjs +0 -440
- package/esm2022/lib/service/event/event.interface.mjs +0 -2
- package/esm2022/lib/service/event/event.service.mjs +0 -38
- package/esm2022/lib/service/event/events.mjs +0 -14
- package/esm2022/lib/service/idm/idm.interface.mjs +0 -2
- package/esm2022/lib/service/idm/idm.service.mjs +0 -34
- package/esm2022/lib/service/logger/logger-console.service.mjs +0 -73
- package/esm2022/lib/service/logger/logger.interface.mjs +0 -2
- package/esm2022/lib/service/logger/logger.mjs +0 -27
- package/esm2022/lib/service/notification/notification.service.mjs +0 -131
- package/esm2022/lib/service/object-config/object-config.interface.mjs +0 -2
- package/esm2022/lib/service/object-config/object-config.service.mjs +0 -233
- package/esm2022/lib/service/pending-changes/pending-changes-component.interface.mjs +0 -5
- package/esm2022/lib/service/pending-changes/pending-changes-guard.service.mjs +0 -25
- package/esm2022/lib/service/pending-changes/pending-changes.service.mjs +0 -123
- package/esm2022/lib/service/prediction/prediction.interface.mjs +0 -2
- package/esm2022/lib/service/prediction/prediction.service.mjs +0 -60
- package/esm2022/lib/service/retention/retention.interface.mjs +0 -2
- package/esm2022/lib/service/retention/retention.service.mjs +0 -65
- package/esm2022/lib/service/search/search.service.interface.mjs +0 -39
- package/esm2022/lib/service/search/search.service.mjs +0 -261
- package/esm2022/lib/service/search/search.utils.mjs +0 -142
- package/esm2022/lib/service/session-storage/session-storage.service.mjs +0 -50
- package/esm2022/lib/service/system/object-form.interface.mjs +0 -2
- package/esm2022/lib/service/system/system.enum.mjs +0 -167
- package/esm2022/lib/service/system/system.interface.mjs +0 -2
- package/esm2022/lib/service/system/system.service.mjs +0 -597
- package/esm2022/lib/service/upload/upload.interface.mjs +0 -2
- package/esm2022/lib/service/upload/upload.service.mjs +0 -228
- package/esm2022/lib/service/user/user-storage.service.mjs +0 -38
- package/esm2022/lib/service/user/user.service.mjs +0 -211
- package/esm2022/lib/util/utils.helper.enum.mjs +0 -15
- package/esm2022/lib/util/utils.mjs +0 -373
- package/esm2022/yuuvis-client-core.mjs +0 -5
- package/lib/client-core.module.d.ts +0 -20
- package/lib/client-core.shared.module.d.ts +0 -10
- 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=
|