@onecx/angular-accelerator 4.13.0 → 4.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/i18n/de.json +13 -0
- package/assets/i18n/en.json +13 -0
- package/esm2020/index.mjs +4 -1
- package/esm2020/lib/angular-accelerator-primeng.module.mjs +19 -5
- package/esm2020/lib/angular-accelerator.module.mjs +13 -45
- package/esm2020/lib/components/data-list-grid/data-list-grid.component.mjs +1 -1
- package/esm2020/lib/components/data-table/data-table.component.mjs +3 -3
- package/esm2020/lib/components/data-view/data-view.component.mjs +6 -3
- package/esm2020/lib/components/diagram/diagram.component.mjs +4 -3
- package/esm2020/lib/components/interactive-data-view/interactive-data-view.component.mjs +6 -3
- package/esm2020/lib/components/page-header/page-header.component.mjs +4 -3
- package/esm2020/lib/directives/advanced.directive.mjs +36 -0
- package/esm2020/lib/directives/if-permission.directive.mjs +16 -3
- package/esm2020/lib/pipes/ocxtimeago.pipe.mjs +98 -6
- package/esm2020/lib/services/app-config-service.mjs +42 -0
- package/esm2020/lib/utils/create-remote-component-translate-loader.utils.mjs +23 -0
- package/fesm2015/onecx-angular-accelerator.mjs +2219 -2067
- package/fesm2015/onecx-angular-accelerator.mjs.map +1 -1
- package/fesm2020/onecx-angular-accelerator.mjs +2255 -2108
- package/fesm2020/onecx-angular-accelerator.mjs.map +1 -1
- package/index.d.ts +3 -0
- package/lib/angular-accelerator-primeng.module.d.ts +3 -1
- package/lib/angular-accelerator.module.d.ts +7 -6
- package/lib/components/data-view/data-view.component.d.ts +2 -1
- package/lib/components/interactive-data-view/interactive-data-view.component.d.ts +2 -1
- package/lib/directives/advanced.directive.d.ts +12 -0
- package/lib/directives/if-permission.directive.d.ts +4 -1
- package/lib/pipes/ocxtimeago.pipe.d.ts +12 -2
- package/lib/services/app-config-service.d.ts +18 -0
- package/lib/utils/create-remote-component-translate-loader.utils.d.ts +5 -0
- package/package.json +2 -3
- package/esm2020/lib/utils/ocxtimeagointl.utils.mjs +0 -34
- package/lib/utils/ocxtimeagointl.utils.d.ts +0 -9
|
@@ -7,6 +7,9 @@ export class IfPermissionDirective {
|
|
|
7
7
|
this.permission = value;
|
|
8
8
|
this.negate = true;
|
|
9
9
|
}
|
|
10
|
+
set ocxIfNotPermissionPermissions(value) {
|
|
11
|
+
this.ocxIfPermissionPermissions = value;
|
|
12
|
+
}
|
|
10
13
|
constructor(renderer, el, viewContainer, userService, templateRef) {
|
|
11
14
|
this.renderer = renderer;
|
|
12
15
|
this.el = el;
|
|
@@ -18,7 +21,7 @@ export class IfPermissionDirective {
|
|
|
18
21
|
}
|
|
19
22
|
ngOnInit() {
|
|
20
23
|
if (this.permission) {
|
|
21
|
-
if (this.negate === this.
|
|
24
|
+
if (this.negate === this.hasPermission(this.permission)) {
|
|
22
25
|
if (this.onMissingPermission === 'disable') {
|
|
23
26
|
this.renderer.setAttribute(this.el.nativeElement, 'disabled', 'disabled');
|
|
24
27
|
}
|
|
@@ -33,9 +36,15 @@ export class IfPermissionDirective {
|
|
|
33
36
|
}
|
|
34
37
|
}
|
|
35
38
|
}
|
|
39
|
+
hasPermission(permission) {
|
|
40
|
+
if (this.ocxIfPermissionPermissions) {
|
|
41
|
+
return this.ocxIfPermissionPermissions.includes(permission);
|
|
42
|
+
}
|
|
43
|
+
return this.userService.hasPermission(permission);
|
|
44
|
+
}
|
|
36
45
|
}
|
|
37
46
|
IfPermissionDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: IfPermissionDirective, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ViewContainerRef }, { token: i1.UserService }, { token: i0.TemplateRef, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
|
|
38
|
-
IfPermissionDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: IfPermissionDirective, selector: "[ocxIfPermission], [ocxIfNotPermission]", inputs: { permission: ["ocxIfPermission", "permission"], notPermission: ["ocxIfNotPermission", "notPermission"], onMissingPermission: "onMissingPermission" }, ngImport: i0 });
|
|
47
|
+
IfPermissionDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: IfPermissionDirective, selector: "[ocxIfPermission], [ocxIfNotPermission]", inputs: { permission: ["ocxIfPermission", "permission"], notPermission: ["ocxIfNotPermission", "notPermission"], onMissingPermission: "onMissingPermission", ocxIfPermissionPermissions: "ocxIfPermissionPermissions", ocxIfNotPermissionPermissions: "ocxIfNotPermissionPermissions" }, ngImport: i0 });
|
|
39
48
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: IfPermissionDirective, decorators: [{
|
|
40
49
|
type: Directive,
|
|
41
50
|
args: [{ selector: '[ocxIfPermission], [ocxIfNotPermission]' }]
|
|
@@ -49,5 +58,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
49
58
|
args: ['ocxIfNotPermission']
|
|
50
59
|
}], onMissingPermission: [{
|
|
51
60
|
type: Input
|
|
61
|
+
}], ocxIfPermissionPermissions: [{
|
|
62
|
+
type: Input
|
|
63
|
+
}], ocxIfNotPermissionPermissions: [{
|
|
64
|
+
type: Input
|
|
52
65
|
}] } });
|
|
53
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWYtcGVybWlzc2lvbi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItYWNjZWxlcmF0b3Ivc3JjL2xpYi9kaXJlY3RpdmVzL2lmLXBlcm1pc3Npb24uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBVSxRQUFRLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUN4SCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0NBQXNDLENBQUE7OztBQUdsRSxNQUFNLE9BQU8scUJBQXFCO0lBRWhDLElBQWlDLGFBQWEsQ0FBQyxLQUF5QjtRQUN0RSxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQTtRQUN2QixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQTtJQUNwQixDQUFDO0lBS0QsSUFDSSw2QkFBNkIsQ0FBQyxLQUEyQjtRQUMzRCxJQUFJLENBQUMsMEJBQTBCLEdBQUcsS0FBSyxDQUFBO0lBQ3pDLENBQUM7SUFJRCxZQUNVLFFBQW1CLEVBQ25CLEVBQWMsRUFDZCxhQUErQixFQUMvQixXQUF3QixFQUNaLFdBQThCO1FBSjFDLGFBQVEsR0FBUixRQUFRLENBQVc7UUFDbkIsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQUNkLGtCQUFhLEdBQWIsYUFBYSxDQUFrQjtRQUMvQixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUNaLGdCQUFXLEdBQVgsV0FBVyxDQUFtQjtRQWYzQyx3QkFBbUIsR0FBdUIsTUFBTSxDQUFBO1FBUXpELFdBQU0sR0FBRyxLQUFLLENBQUE7SUFRWCxDQUFDO0lBRUosUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNuQixJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUU7Z0JBQ3ZELElBQUksSUFBSSxDQUFDLG1CQUFtQixLQUFLLFNBQVMsRUFBRTtvQkFDMUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFBO2lCQUMxRTtxQkFBTTtvQkFDTCxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFBO2lCQUMzQjthQUNGO2lCQUFNO2dCQUNMLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtvQkFDcEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUE7aUJBQ3hEO2FBQ0Y7U0FDRjtJQUNILENBQUM7SUFFRCxhQUFhLENBQUMsVUFBa0I7UUFDOUIsSUFBSSxJQUFJLENBQUMsMEJBQTBCLEVBQUU7WUFDbkMsT0FBTyxJQUFJLENBQUMsMEJBQTBCLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFBO1NBQzVEO1FBQ0QsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQTtJQUNuRCxDQUFDOzttSEE5Q1UscUJBQXFCO3VHQUFyQixxQkFBcUI7NEZBQXJCLHFCQUFxQjtrQkFEakMsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSx5Q0FBeUMsRUFBRTs7MEJBdUI3RCxRQUFROzRDQXJCZSxVQUFVO3NCQUFuQyxLQUFLO3VCQUFDLGlCQUFpQjtnQkFDUyxhQUFhO3NCQUE3QyxLQUFLO3VCQUFDLG9CQUFvQjtnQkFLbEIsbUJBQW1CO3NCQUEzQixLQUFLO2dCQUVHLDBCQUEwQjtzQkFBbEMsS0FBSztnQkFFRiw2QkFBNkI7c0JBRGhDLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIElucHV0LCBPbkluaXQsIE9wdGlvbmFsLCBSZW5kZXJlcjIsIFRlbXBsYXRlUmVmLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IFVzZXJTZXJ2aWNlIH0gZnJvbSAnQG9uZWN4L2FuZ3VsYXItaW50ZWdyYXRpb24taW50ZXJmYWNlJ1xuXG5ARGlyZWN0aXZlKHsgc2VsZWN0b3I6ICdbb2N4SWZQZXJtaXNzaW9uXSwgW29jeElmTm90UGVybWlzc2lvbl0nIH0pXG5leHBvcnQgY2xhc3MgSWZQZXJtaXNzaW9uRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCdvY3hJZlBlcm1pc3Npb24nKSBwZXJtaXNzaW9uOiBzdHJpbmcgfCB1bmRlZmluZWRcbiAgQElucHV0KCdvY3hJZk5vdFBlcm1pc3Npb24nKSBzZXQgbm90UGVybWlzc2lvbih2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5wZXJtaXNzaW9uID0gdmFsdWVcbiAgICB0aGlzLm5lZ2F0ZSA9IHRydWVcbiAgfVxuICBcbiAgQElucHV0KCkgb25NaXNzaW5nUGVybWlzc2lvbjogJ2hpZGUnIHwgJ2Rpc2FibGUnID0gJ2hpZGUnXG4gIFxuICBASW5wdXQoKSBvY3hJZlBlcm1pc3Npb25QZXJtaXNzaW9uczogc3RyaW5nW10gfCB1bmRlZmluZWRcbiAgQElucHV0KCkgXG4gIHNldCBvY3hJZk5vdFBlcm1pc3Npb25QZXJtaXNzaW9ucyh2YWx1ZTogc3RyaW5nW10gfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLm9jeElmUGVybWlzc2lvblBlcm1pc3Npb25zID0gdmFsdWVcbiAgfVxuICBcbiAgbmVnYXRlID0gZmFsc2VcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgcHJpdmF0ZSBlbDogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIHZpZXdDb250YWluZXI6IFZpZXdDb250YWluZXJSZWYsXG4gICAgcHJpdmF0ZSB1c2VyU2VydmljZTogVXNlclNlcnZpY2UsXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSB0ZW1wbGF0ZVJlZj86IFRlbXBsYXRlUmVmPGFueT5cbiAgKSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmICh0aGlzLnBlcm1pc3Npb24pIHtcbiAgICAgIGlmICh0aGlzLm5lZ2F0ZSA9PT0gdGhpcy5oYXNQZXJtaXNzaW9uKHRoaXMucGVybWlzc2lvbikpIHtcbiAgICAgICAgaWYgKHRoaXMub25NaXNzaW5nUGVybWlzc2lvbiA9PT0gJ2Rpc2FibGUnKSB7XG4gICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUodGhpcy5lbC5uYXRpdmVFbGVtZW50LCAnZGlzYWJsZWQnLCAnZGlzYWJsZWQnKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMudmlld0NvbnRhaW5lci5jbGVhcigpXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmICh0aGlzLnRlbXBsYXRlUmVmKSB7XG4gICAgICAgICAgdGhpcy52aWV3Q29udGFpbmVyLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLnRlbXBsYXRlUmVmKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaGFzUGVybWlzc2lvbihwZXJtaXNzaW9uOiBzdHJpbmcpIHtcbiAgICBpZiAodGhpcy5vY3hJZlBlcm1pc3Npb25QZXJtaXNzaW9ucykge1xuICAgICAgcmV0dXJuIHRoaXMub2N4SWZQZXJtaXNzaW9uUGVybWlzc2lvbnMuaW5jbHVkZXMocGVybWlzc2lvbilcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMudXNlclNlcnZpY2UuaGFzUGVybWlzc2lvbihwZXJtaXNzaW9uKVxuICB9XG59XG4iXX0=
|
|
@@ -1,15 +1,107 @@
|
|
|
1
|
-
import { Pipe } from '@angular/core';
|
|
2
|
-
import {
|
|
1
|
+
import { ChangeDetectorRef, NgZone, Pipe } from '@angular/core';
|
|
2
|
+
import { TranslatePipe, TranslateService } from '@ngx-translate/core';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@ngx-translate/core";
|
|
4
5
|
// eslint-disable-next-line @angular-eslint/use-pipe-transform-interface
|
|
5
|
-
export class OcxTimeAgoPipe extends
|
|
6
|
+
export class OcxTimeAgoPipe extends TranslatePipe {
|
|
7
|
+
constructor(changeDetectorRef, ngZone, translateService) {
|
|
8
|
+
super(translateService, changeDetectorRef);
|
|
9
|
+
this.changeDetectorRef = changeDetectorRef;
|
|
10
|
+
this.ngZone = ngZone;
|
|
11
|
+
this.translateService = translateService;
|
|
12
|
+
}
|
|
13
|
+
transform(value) {
|
|
14
|
+
this.removeTimer();
|
|
15
|
+
const d = new Date(value);
|
|
16
|
+
const now = new Date();
|
|
17
|
+
const seconds = Math.round(Math.abs((now.getTime() - d.getTime()) / 1000));
|
|
18
|
+
const timeToUpdate = Number.isNaN(seconds) ? 1000 : this.getSecondsUntilUpdate(seconds) * 1000;
|
|
19
|
+
this.timer = this.ngZone.runOutsideAngular(() => {
|
|
20
|
+
if (typeof window !== 'undefined') {
|
|
21
|
+
return window.setTimeout(() => {
|
|
22
|
+
this.ngZone.run(() => this.changeDetectorRef.markForCheck());
|
|
23
|
+
}, timeToUpdate);
|
|
24
|
+
}
|
|
25
|
+
return null;
|
|
26
|
+
});
|
|
27
|
+
const minutes = Math.round(Math.abs(seconds / 60));
|
|
28
|
+
const hours = Math.round(Math.abs(minutes / 60));
|
|
29
|
+
const days = Math.round(Math.abs(hours / 24));
|
|
30
|
+
const months = Math.round(Math.abs(days / 30.416));
|
|
31
|
+
const years = Math.round(Math.abs(days / 365));
|
|
32
|
+
let translationKey = 'UNKNOWN';
|
|
33
|
+
if (Number.isNaN(seconds)) {
|
|
34
|
+
translationKey = 'NAN';
|
|
35
|
+
}
|
|
36
|
+
else if (seconds <= 45) {
|
|
37
|
+
translationKey = 'A_FEW_SECONDS_AGO';
|
|
38
|
+
}
|
|
39
|
+
else if (seconds <= 90) {
|
|
40
|
+
translationKey = 'A_MINUTE_AGO';
|
|
41
|
+
}
|
|
42
|
+
else if (minutes <= 45) {
|
|
43
|
+
translationKey = 'MINUTES_AGO';
|
|
44
|
+
}
|
|
45
|
+
else if (minutes <= 90) {
|
|
46
|
+
translationKey = 'AN_HOUR_AGO';
|
|
47
|
+
}
|
|
48
|
+
else if (hours <= 22) {
|
|
49
|
+
translationKey = 'HOURS_AGO';
|
|
50
|
+
}
|
|
51
|
+
else if (hours <= 36) {
|
|
52
|
+
translationKey = 'A_DAY_AGO';
|
|
53
|
+
}
|
|
54
|
+
else if (days <= 25) {
|
|
55
|
+
translationKey = 'DAYS_AGO';
|
|
56
|
+
}
|
|
57
|
+
else if (days <= 45) {
|
|
58
|
+
translationKey = 'A_MONTH_AGO';
|
|
59
|
+
}
|
|
60
|
+
else if (days <= 345) {
|
|
61
|
+
translationKey = 'MONTHS_AGO';
|
|
62
|
+
}
|
|
63
|
+
else if (days <= 545) {
|
|
64
|
+
translationKey = 'A_YEAR_AGO';
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
translationKey = 'YEARS_AGO';
|
|
68
|
+
}
|
|
69
|
+
return super.transform('OCX_TIMEAGO.' + translationKey, { minutes, hours, days, months, years });
|
|
70
|
+
}
|
|
71
|
+
ngOnDestroy() {
|
|
72
|
+
this.removeTimer();
|
|
73
|
+
super.ngOnDestroy();
|
|
74
|
+
}
|
|
75
|
+
removeTimer() {
|
|
76
|
+
if (this.timer) {
|
|
77
|
+
window.clearTimeout(this.timer);
|
|
78
|
+
this.timer = null;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
getSecondsUntilUpdate(seconds) {
|
|
82
|
+
const min = 60;
|
|
83
|
+
const hr = min * 60;
|
|
84
|
+
const day = hr * 24;
|
|
85
|
+
if (seconds < min) {
|
|
86
|
+
return 2;
|
|
87
|
+
}
|
|
88
|
+
else if (seconds < hr) {
|
|
89
|
+
return 30;
|
|
90
|
+
}
|
|
91
|
+
else if (seconds < day) {
|
|
92
|
+
return 300;
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
95
|
+
return 3600;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
6
98
|
}
|
|
7
|
-
OcxTimeAgoPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OcxTimeAgoPipe, deps:
|
|
99
|
+
OcxTimeAgoPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OcxTimeAgoPipe, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Pipe });
|
|
8
100
|
OcxTimeAgoPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: OcxTimeAgoPipe, name: "timeago" });
|
|
9
101
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OcxTimeAgoPipe, decorators: [{
|
|
10
102
|
type: Pipe,
|
|
11
103
|
args: [{
|
|
12
104
|
name: 'timeago',
|
|
13
105
|
}]
|
|
14
|
-
}] });
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
106
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.NgZone }, { type: i1.TranslateService }]; } });
|
|
107
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2N4dGltZWFnby5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLWFjY2VsZXJhdG9yL3NyYy9saWIvcGlwZXMvb2N4dGltZWFnby5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLEVBQWEsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQTtBQUN6RixPQUFPLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUE7OztBQUtyRSx3RUFBd0U7QUFDeEUsTUFBTSxPQUFPLGNBQWUsU0FBUSxhQUFhO0lBRS9DLFlBQ1UsaUJBQW9DLEVBQ3BDLE1BQWMsRUFDZCxnQkFBa0M7UUFFMUMsS0FBSyxDQUFDLGdCQUFnQixFQUFFLGlCQUFpQixDQUFDLENBQUE7UUFKbEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtJQUc1QyxDQUFDO0lBQ1EsU0FBUyxDQUFDLEtBQWE7UUFDOUIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFBO1FBQ2xCLE1BQU0sQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQ3pCLE1BQU0sR0FBRyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUE7UUFDdEIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUE7UUFDMUUsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMs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LElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNkLE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO1lBQy9CLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFBO1NBQ2xCO0lBQ0gsQ0FBQztJQUNPLHFCQUFxQixDQUFDLE9BQWU7UUFDM0MsTUFBTSxHQUFHLEdBQUcsRUFBRSxDQUFBO1FBQ2QsTUFBTSxFQUFFLEdBQUcsR0FBRyxHQUFHLEVBQUUsQ0FBQTtRQUNuQixNQUFNLEdBQUcsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFBO1FBQ25CLElBQUksT0FBTyxHQUFHLEdBQUcsRUFBRTtZQUNqQixPQUFPLENBQUMsQ0FBQTtTQUNUO2FBQU0sSUFBSSxPQUFPLEdBQUcsRUFBRSxFQUFFO1lBQ3ZCLE9BQU8sRUFBRSxDQUFBO1NBQ1Y7YUFBTSxJQUFJLE9BQU8sR0FBRyxHQUFHLEVBQUU7WUFDeEIsT0FBTyxHQUFHLENBQUE7U0FDWDthQUFNO1lBQ0wsT0FBTyxJQUFJLENBQUE7U0FDWjtJQUNILENBQUM7OzRHQS9FVSxjQUFjOzBHQUFkLGNBQWM7NEZBQWQsY0FBYztrQkFKMUIsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsU0FBUztpQkFDaEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgTmdab25lLCBPbkRlc3Ryb3ksIFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgVHJhbnNsYXRlUGlwZSwgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnXG5cbkBQaXBlKHtcbiAgbmFtZTogJ3RpbWVhZ28nLFxufSlcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvdXNlLXBpcGUtdHJhbnNmb3JtLWludGVyZmFjZVxuZXhwb3J0IGNsYXNzIE9jeFRpbWVBZ29QaXBlIGV4dGVuZHMgVHJhbnNsYXRlUGlwZSBpbXBsZW1lbnRzIE9uRGVzdHJveSwgUGlwZVRyYW5zZm9ybSB7XG4gIHByaXZhdGUgdGltZXI6IG51bWJlciB8IHVuZGVmaW5lZCB8IG51bGxcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSxcbiAgICBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIodHJhbnNsYXRlU2VydmljZSwgY2hhbmdlRGV0ZWN0b3JSZWYpXG4gIH1cbiAgb3ZlcnJpZGUgdHJhbnNmb3JtKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnJlbW92ZVRpbWVyKClcbiAgICBjb25zdCBkID0gbmV3IERhdGUodmFsdWUpXG4gICAgY29uc3Qgbm93ID0gbmV3IERhdGUoKVxuICAgIGNvbnN0IHNlY29uZHMgPSBNYXRoLnJvdW5kKE1hdGguYWJzKChub3cuZ2V0VGltZSgpIC0gZC5nZXRUaW1lKCkpIC8gMTAwMCkpXG4gICAgY29uc3QgdGltZVRvVXBkYXRlID0gTnVtYmVyLmlzTmFOKHNlY29uZHMpID8gMTAwMCA6IHRoaXMuZ2V0U2Vjb25kc1VudGlsVXBkYXRlKHNlY29uZHMpICogMTAwMFxuICAgIHRoaXMudGltZXIgPSB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgcmV0dXJuIHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4gdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKSlcbiAgICAgICAgfSwgdGltZVRvVXBkYXRlKVxuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGxcbiAgICB9KVxuICAgIGNvbnN0IG1pbnV0ZXMgPSBNYXRoLnJvdW5kKE1hdGguYWJzKHNlY29uZHMgLyA2MCkpXG4gICAgY29uc3QgaG91cnMgPSBNYXRoLnJvdW5kKE1hdGguYWJzKG1pbnV0ZXMgLyA2MCkpXG4gICAgY29uc3QgZGF5cyA9IE1hdGgucm91bmQoTWF0aC5hYnMoaG91cnMgLyAyNCkpXG4gICAgY29uc3QgbW9udGhzID0gTWF0aC5yb3VuZChNYXRoLmFicyhkYXlzIC8gMzAuNDE2KSlcbiAgICBjb25zdCB5ZWFycyA9IE1hdGgucm91bmQoTWF0aC5hYnMoZGF5cyAvIDM2NSkpXG4gICAgbGV0IHRyYW5zbGF0aW9uS2V5ID0gJ1VOS05PV04nXG4gICAgaWYgKE51bWJlci5pc05hTihzZWNvbmRzKSkge1xuICAgICAgdHJhbnNsYXRpb25LZXkgPSAnTkFOJ1xuICAgIH0gZWxzZSBpZiAoc2Vjb25kcyA8PSA0NSkge1xuICAgICAgdHJhbnNsYXRpb25LZXkgPSAnQV9GRVdfU0VDT05EU19BR08nXG4gICAgfSBlbHNlIGlmIChzZWNvbmRzIDw9IDkwKSB7XG4gICAgICB0cmFuc2xhdGlvbktleSA9ICdBX01JTlVURV9BR08nXG4gICAgfSBlbHNlIGlmIChtaW51dGVzIDw9IDQ1KSB7XG4gICAgICB0cmFuc2xhdGlvbktleSA9ICdNSU5VVEVTX0FHTydcbiAgICB9IGVsc2UgaWYgKG1pbnV0ZXMgPD0gOTApIHtcbiAgICAgIHRyYW5zbGF0aW9uS2V5ID0gJ0FOX0hPVVJfQUdPJ1xuICAgIH0gZWxzZSBpZiAoaG91cnMgPD0gMjIpIHtcbiAgICAgIHRyYW5zbGF0aW9uS2V5ID0gJ0hPVVJTX0FHTydcbiAgICB9IGVsc2UgaWYgKGhvdXJzIDw9IDM2KSB7XG4gICAgICB0cmFuc2xhdGlvbktleSA9ICdBX0RBWV9BR08nXG4gICAgfSBlbHNlIGlmIChkYXlzIDw9IDI1KSB7XG4gICAgICB0cmFuc2xhdGlvbktleSA9ICdEQVlTX0FHTydcbiAgICB9IGVsc2UgaWYgKGRheXMgPD0gNDUpIHtcbiAgICAgIHRyYW5zbGF0aW9uS2V5ID0gJ0FfTU9OVEhfQUdPJ1xuICAgIH0gZWxzZSBpZiAoZGF5cyA8PSAzNDUpIHtcbiAgICAgIHRyYW5zbGF0aW9uS2V5ID0gJ01PTlRIU19BR08nXG4gICAgfSBlbHNlIGlmIChkYXlzIDw9IDU0NSkge1xuICAgICAgdHJhbnNsYXRpb25LZXkgPSAnQV9ZRUFSX0FHTydcbiAgICB9IGVsc2Uge1xuICAgICAgdHJhbnNsYXRpb25LZXkgPSAnWUVBUlNfQUdPJ1xuICAgIH1cbiAgICByZXR1cm4gc3VwZXIudHJhbnNmb3JtKCdPQ1hfVElNRUFHTy4nICsgdHJhbnNsYXRpb25LZXksIHsgbWludXRlcywgaG91cnMsIGRheXMsIG1vbnRocywgeWVhcnMgfSlcbiAgfVxuICBvdmVycmlkZSBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnJlbW92ZVRpbWVyKClcbiAgICBzdXBlci5uZ09uRGVzdHJveSgpXG4gIH1cbiAgcHJpdmF0ZSByZW1vdmVUaW1lcigpIHtcbiAgICBpZiAodGhpcy50aW1lcikge1xuICAgICAgd2luZG93LmNsZWFyVGltZW91dCh0aGlzLnRpbWVyKVxuICAgICAgdGhpcy50aW1lciA9IG51bGxcbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSBnZXRTZWNvbmRzVW50aWxVcGRhdGUoc2Vjb25kczogbnVtYmVyKSB7XG4gICAgY29uc3QgbWluID0gNjBcbiAgICBjb25zdCBociA9IG1pbiAqIDYwXG4gICAgY29uc3QgZGF5ID0gaHIgKiAyNFxuICAgIGlmIChzZWNvbmRzIDwgbWluKSB7XG4gICAgICByZXR1cm4gMlxuICAgIH0gZWxzZSBpZiAoc2Vjb25kcyA8IGhyKSB7XG4gICAgICByZXR1cm4gMzBcbiAgICB9IGVsc2UgaWYgKHNlY29uZHMgPCBkYXkpIHtcbiAgICAgIHJldHVybiAzMDBcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIDM2MDBcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { HttpClient } from '@angular/common/http';
|
|
2
|
+
import { Injectable } from '@angular/core';
|
|
3
|
+
import { BehaviorSubject, firstValueFrom } from 'rxjs';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@angular/common/http";
|
|
6
|
+
export class AppConfigService {
|
|
7
|
+
constructor(http) {
|
|
8
|
+
this.http = http;
|
|
9
|
+
this.config$ = new BehaviorSubject({});
|
|
10
|
+
}
|
|
11
|
+
init(baseUrl) {
|
|
12
|
+
return new Promise((resolve, reject) => {
|
|
13
|
+
const loadConfigPromise = firstValueFrom(this.http.get(baseUrl + 'assets/env.json'));
|
|
14
|
+
loadConfigPromise
|
|
15
|
+
.then(async (config) => {
|
|
16
|
+
if (config) {
|
|
17
|
+
this.config$.next(config);
|
|
18
|
+
resolve();
|
|
19
|
+
}
|
|
20
|
+
})
|
|
21
|
+
.catch((e) => {
|
|
22
|
+
console.log(`Failed to load env configuration`);
|
|
23
|
+
reject(e);
|
|
24
|
+
});
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
getProperty(key) {
|
|
28
|
+
return this.config$.getValue()?.[key];
|
|
29
|
+
}
|
|
30
|
+
setProperty(key, val) {
|
|
31
|
+
this.config$.next({ ...this.config$.value, [key]: val });
|
|
32
|
+
}
|
|
33
|
+
getConfig() {
|
|
34
|
+
return this.config$.getValue();
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
AppConfigService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AppConfigService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
38
|
+
AppConfigService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AppConfigService });
|
|
39
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AppConfigService, decorators: [{
|
|
40
|
+
type: Injectable
|
|
41
|
+
}], ctorParameters: function () { return [{ type: i1.HttpClient }]; } });
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLWNvbmZpZy1zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLWFjY2VsZXJhdG9yL3NyYy9saWIvc2VydmljZXMvYXBwLWNvbmZpZy1zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTtBQUNqRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBRTFDLE9BQU8sRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLE1BQU0sTUFBTSxDQUFBOzs7QUFHdEQsTUFBTSxPQUFPLGdCQUFnQjtJQUczQixZQUFvQixJQUFnQjtRQUFoQixTQUFJLEdBQUosSUFBSSxDQUFZO1FBRnBDLFlBQU8sR0FBRyxJQUFJLGVBQWUsQ0FBNEIsRUFBRSxDQUFDLENBQUE7SUFFckIsQ0FBQztJQUVqQyxJQUFJLENBQUMsT0FBZTtRQUN6QixPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQ3JDLE1BQU0saUJBQWlCLEdBQW9CLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBUyxPQUFPLEdBQUcsaUJBQWlCLENBQUMsQ0FBQyxDQUFBO1lBRTdHLGlCQUFpQjtpQkFDZCxJQUFJLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxFQUFFO2dCQUNyQixJQUFJLE1BQU0sRUFBRTtvQkFDVixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQTtvQkFDekIsT0FBTyxFQUFFLENBQUE7aUJBQ1Y7WUFDSCxDQUFDLENBQUM7aUJBQ0QsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7Z0JBQ1gsT0FBTyxDQUFDLEdBQUcsQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFBO2dCQUMvQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUE7WUFDWCxDQUFDLENBQUMsQ0FBQTtRQUNOLENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVNLFdBQVcsQ0FBQyxHQUFXO1FBQzVCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQ3ZDLENBQUM7SUFFTSxXQUFXLENBQUMsR0FBVyxFQUFFLEdBQVc7UUFDekMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQTtJQUMxRCxDQUFDO0lBRU0sU0FBUztRQUNkLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQTtJQUNoQyxDQUFDOzs4R0FqQ1UsZ0JBQWdCO2tIQUFoQixnQkFBZ0I7NEZBQWhCLGdCQUFnQjtrQkFENUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCdcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgQ29uZmlnIH0gZnJvbSAnQG9uZWN4L2ludGVncmF0aW9uLWludGVyZmFjZSdcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgZmlyc3RWYWx1ZUZyb20gfSBmcm9tICdyeGpzJ1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQXBwQ29uZmlnU2VydmljZSB7XG4gIGNvbmZpZyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0+KHt9KVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cDogSHR0cENsaWVudCkge31cblxuICBwdWJsaWMgaW5pdChiYXNlVXJsOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgY29uc3QgbG9hZENvbmZpZ1Byb21pc2U6IFByb21pc2U8Q29uZmlnPiA9IGZpcnN0VmFsdWVGcm9tKHRoaXMuaHR0cC5nZXQ8Q29uZmlnPihiYXNlVXJsICsgJ2Fzc2V0cy9lbnYuanNvbicpKVxuXG4gICAgICBsb2FkQ29uZmlnUHJvbWlzZVxuICAgICAgICAudGhlbihhc3luYyAoY29uZmlnKSA9PiB7XG4gICAgICAgICAgaWYgKGNvbmZpZykge1xuICAgICAgICAgICAgdGhpcy5jb25maWckLm5leHQoY29uZmlnKVxuICAgICAgICAgICAgcmVzb2x2ZSgpXG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2goKGUpID0+IHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhgRmFpbGVkIHRvIGxvYWQgZW52IGNvbmZpZ3VyYXRpb25gKVxuICAgICAgICAgIHJlamVjdChlKVxuICAgICAgICB9KVxuICAgIH0pXG4gIH1cblxuICBwdWJsaWMgZ2V0UHJvcGVydHkoa2V5OiBzdHJpbmcpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZyQuZ2V0VmFsdWUoKT8uW2tleV1cbiAgfVxuXG4gIHB1YmxpYyBzZXRQcm9wZXJ0eShrZXk6IHN0cmluZywgdmFsOiBzdHJpbmcpIHtcbiAgICB0aGlzLmNvbmZpZyQubmV4dCh7IC4uLnRoaXMuY29uZmlnJC52YWx1ZSwgW2tleV06IHZhbCB9KVxuICB9XG5cbiAgcHVibGljIGdldENvbmZpZygpOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9IHtcbiAgICByZXR1cm4gdGhpcy5jb25maWckLmdldFZhbHVlKClcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { Location } from '@angular/common';
|
|
2
|
+
import { inject } from '@angular/core';
|
|
3
|
+
import { map, tap } from 'rxjs';
|
|
4
|
+
import { TranslationCacheService } from '../services/translation-cache.service';
|
|
5
|
+
import { AsyncTranslateLoader } from './async-translate-loader.utils';
|
|
6
|
+
import { CachingTranslateLoader } from './caching-translate-loader.utils';
|
|
7
|
+
import { TranslateCombinedLoader } from './translate.combined.loader';
|
|
8
|
+
let lastTranslateLoaderTimerId = 0;
|
|
9
|
+
export function createRemoteComponentTranslateLoader(http, baseUrlReplaySubject$, translationCacheService) {
|
|
10
|
+
const ts = translationCacheService ?? inject(TranslationCacheService);
|
|
11
|
+
const timerId = lastTranslateLoaderTimerId++;
|
|
12
|
+
console.time('createRemoteComponentTranslateLoader_' + timerId);
|
|
13
|
+
return new AsyncTranslateLoader(baseUrlReplaySubject$.pipe(map((baseUrl) => {
|
|
14
|
+
return new TranslateCombinedLoader(
|
|
15
|
+
// translations of shell or of app in standalone mode
|
|
16
|
+
new CachingTranslateLoader(ts, http, `./assets/i18n/`, '.json'),
|
|
17
|
+
// translations of portal-integration-angular of app
|
|
18
|
+
new CachingTranslateLoader(ts, http, Location.joinWithSlash(baseUrl, `onecx-portal-lib/assets/i18n/`), '.json'),
|
|
19
|
+
// translations of the app
|
|
20
|
+
new CachingTranslateLoader(ts, http, Location.joinWithSlash(baseUrl, `assets/i18n/`), '.json'));
|
|
21
|
+
}), tap(() => console.timeEnd('createRemoteComponentTranslateLoader_' + timerId))));
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLXJlbW90ZS1jb21wb25lbnQtdHJhbnNsYXRlLWxvYWRlci51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1hY2NlbGVyYXRvci9zcmMvbGliL3V0aWxzL2NyZWF0ZS1yZW1vdGUtY29tcG9uZW50LXRyYW5zbGF0ZS1sb2FkZXIudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBRTFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFFdEMsT0FBTyxFQUFFLEdBQUcsRUFBaUIsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQzlDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFBO0FBQy9FLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFBO0FBQ3JFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFBO0FBQ3pFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDZCQUE2QixDQUFBO0FBRXJFLElBQUksMEJBQTBCLEdBQUcsQ0FBQyxDQUFBO0FBRWxDLE1BQU0sVUFBVSxvQ0FBb0MsQ0FDbEQsSUFBZ0IsRUFDaEIscUJBQTRDLEVBQzVDLHVCQUFpRDtJQUVqRCxNQUFNLEVBQUUsR0FBRyx1QkFBdUIsSUFBSSxNQUFNLENBQUMsdUJBQXVCLENBQUMsQ0FBQTtJQUNyRSxNQUFNLE9BQU8sR0FBRywwQkFBMEIsRUFBRSxDQUFBO0lBRTVDLE9BQU8sQ0FBQyxJQUFJLENBQUMsdUNBQXVDLEdBQUcsT0FBTyxDQUFDLENBQUE7SUFDL0QsT0FBTyxJQUFJLG9CQUFvQixDQUM3QixxQkFBcUIsQ0FBQyxJQUFJLENBQ3hCLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1FBQ2QsT0FBTyxJQUFJLHVCQUF1QjtRQUNoQyxxREFBcUQ7UUFDckQsSUFBSSxzQkFBc0IsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLE9BQU8sQ0FBQztRQUMvRCxvREFBb0Q7UUFDcEQsSUFBSSxzQkFBc0IsQ0FDeEIsRUFBRSxFQUNGLElBQUksRUFDSixRQUFRLENBQUMsYUFBYSxDQUFDLE9BQU8sRUFBRSwrQkFBK0IsQ0FBQyxFQUNoRSxPQUFPLENBQ1I7UUFDRCwwQkFBMEI7UUFDMUIsSUFBSSxzQkFBc0IsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsQ0FBQyxhQUFhLENBQUMsT0FBTyxFQUFFLGNBQWMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUMvRixDQUFBO0lBQ0gsQ0FBQyxDQUFDLEVBQ0YsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsdUNBQXVDLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FDOUUsQ0FDRixDQUFBO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExvY2F0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJ1xuaW1wb3J0IHsgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IFRyYW5zbGF0ZUxvYWRlciB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnXG5pbXBvcnQgeyBtYXAsIFJlcGxheVN1YmplY3QsIHRhcCB9IGZyb20gJ3J4anMnXG5pbXBvcnQgeyBUcmFuc2xhdGlvbkNhY2hlU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3RyYW5zbGF0aW9uLWNhY2hlLnNlcnZpY2UnXG5pbXBvcnQgeyBBc3luY1RyYW5zbGF0ZUxvYWRlciB9IGZyb20gJy4vYXN5bmMtdHJhbnNsYXRlLWxvYWRlci51dGlscydcbmltcG9ydCB7IENhY2hpbmdUcmFuc2xhdGVMb2FkZXIgfSBmcm9tICcuL2NhY2hpbmctdHJhbnNsYXRlLWxvYWRlci51dGlscydcbmltcG9ydCB7IFRyYW5zbGF0ZUNvbWJpbmVkTG9hZGVyIH0gZnJvbSAnLi90cmFuc2xhdGUuY29tYmluZWQubG9hZGVyJ1xuXG5sZXQgbGFzdFRyYW5zbGF0ZUxvYWRlclRpbWVySWQgPSAwXG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVSZW1vdGVDb21wb25lbnRUcmFuc2xhdGVMb2FkZXIoXG4gIGh0dHA6IEh0dHBDbGllbnQsXG4gIGJhc2VVcmxSZXBsYXlTdWJqZWN0JDogUmVwbGF5U3ViamVjdDxzdHJpbmc+LFxuICB0cmFuc2xhdGlvbkNhY2hlU2VydmljZT86IFRyYW5zbGF0aW9uQ2FjaGVTZXJ2aWNlXG4pOiBUcmFuc2xhdGVMb2FkZXIge1xuICBjb25zdCB0cyA9IHRyYW5zbGF0aW9uQ2FjaGVTZXJ2aWNlID8/IGluamVjdChUcmFuc2xhdGlvbkNhY2hlU2VydmljZSlcbiAgY29uc3QgdGltZXJJZCA9IGxhc3RUcmFuc2xhdGVMb2FkZXJUaW1lcklkKytcbiAgXG4gIGNvbnNvbGUudGltZSgnY3JlYXRlUmVtb3RlQ29tcG9uZW50VHJhbnNsYXRlTG9hZGVyXycgKyB0aW1lcklkKVxuICByZXR1cm4gbmV3IEFzeW5jVHJhbnNsYXRlTG9hZGVyKFxuICAgIGJhc2VVcmxSZXBsYXlTdWJqZWN0JC5waXBlKFxuICAgICAgbWFwKChiYXNlVXJsKSA9PiB7XG4gICAgICAgIHJldHVybiBuZXcgVHJhbnNsYXRlQ29tYmluZWRMb2FkZXIoXG4gICAgICAgICAgLy8gdHJhbnNsYXRpb25zIG9mIHNoZWxsIG9yIG9mIGFwcCBpbiBzdGFuZGFsb25lIG1vZGVcbiAgICAgICAgICBuZXcgQ2FjaGluZ1RyYW5zbGF0ZUxvYWRlcih0cywgaHR0cCwgYC4vYXNzZXRzL2kxOG4vYCwgJy5qc29uJyksXG4gICAgICAgICAgLy8gdHJhbnNsYXRpb25zIG9mIHBvcnRhbC1pbnRlZ3JhdGlvbi1hbmd1bGFyIG9mIGFwcFxuICAgICAgICAgIG5ldyBDYWNoaW5nVHJhbnNsYXRlTG9hZGVyKFxuICAgICAgICAgICAgdHMsXG4gICAgICAgICAgICBodHRwLFxuICAgICAgICAgICAgTG9jYXRpb24uam9pbldpdGhTbGFzaChiYXNlVXJsLCBgb25lY3gtcG9ydGFsLWxpYi9hc3NldHMvaTE4bi9gKSxcbiAgICAgICAgICAgICcuanNvbidcbiAgICAgICAgICApLFxuICAgICAgICAgIC8vIHRyYW5zbGF0aW9ucyBvZiB0aGUgYXBwXG4gICAgICAgICAgbmV3IENhY2hpbmdUcmFuc2xhdGVMb2FkZXIodHMsIGh0dHAsIExvY2F0aW9uLmpvaW5XaXRoU2xhc2goYmFzZVVybCwgYGFzc2V0cy9pMThuL2ApLCAnLmpzb24nKVxuICAgICAgICApXG4gICAgICB9KSxcbiAgICAgIHRhcCgoKSA9PiBjb25zb2xlLnRpbWVFbmQoJ2NyZWF0ZVJlbW90ZUNvbXBvbmVudFRyYW5zbGF0ZUxvYWRlcl8nICsgdGltZXJJZCkpXG4gICAgKVxuICApXG59XG4iXX0=
|