@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.
Files changed (33) hide show
  1. package/assets/i18n/de.json +13 -0
  2. package/assets/i18n/en.json +13 -0
  3. package/esm2020/index.mjs +4 -1
  4. package/esm2020/lib/angular-accelerator-primeng.module.mjs +19 -5
  5. package/esm2020/lib/angular-accelerator.module.mjs +13 -45
  6. package/esm2020/lib/components/data-list-grid/data-list-grid.component.mjs +1 -1
  7. package/esm2020/lib/components/data-table/data-table.component.mjs +3 -3
  8. package/esm2020/lib/components/data-view/data-view.component.mjs +6 -3
  9. package/esm2020/lib/components/diagram/diagram.component.mjs +4 -3
  10. package/esm2020/lib/components/interactive-data-view/interactive-data-view.component.mjs +6 -3
  11. package/esm2020/lib/components/page-header/page-header.component.mjs +4 -3
  12. package/esm2020/lib/directives/advanced.directive.mjs +36 -0
  13. package/esm2020/lib/directives/if-permission.directive.mjs +16 -3
  14. package/esm2020/lib/pipes/ocxtimeago.pipe.mjs +98 -6
  15. package/esm2020/lib/services/app-config-service.mjs +42 -0
  16. package/esm2020/lib/utils/create-remote-component-translate-loader.utils.mjs +23 -0
  17. package/fesm2015/onecx-angular-accelerator.mjs +2219 -2067
  18. package/fesm2015/onecx-angular-accelerator.mjs.map +1 -1
  19. package/fesm2020/onecx-angular-accelerator.mjs +2255 -2108
  20. package/fesm2020/onecx-angular-accelerator.mjs.map +1 -1
  21. package/index.d.ts +3 -0
  22. package/lib/angular-accelerator-primeng.module.d.ts +3 -1
  23. package/lib/angular-accelerator.module.d.ts +7 -6
  24. package/lib/components/data-view/data-view.component.d.ts +2 -1
  25. package/lib/components/interactive-data-view/interactive-data-view.component.d.ts +2 -1
  26. package/lib/directives/advanced.directive.d.ts +12 -0
  27. package/lib/directives/if-permission.directive.d.ts +4 -1
  28. package/lib/pipes/ocxtimeago.pipe.d.ts +12 -2
  29. package/lib/services/app-config-service.d.ts +18 -0
  30. package/lib/utils/create-remote-component-translate-loader.utils.d.ts +5 -0
  31. package/package.json +2 -3
  32. package/esm2020/lib/utils/ocxtimeagointl.utils.mjs +0 -34
  33. 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.userService.hasPermission(this.permission)) {
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWYtcGVybWlzc2lvbi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItYWNjZWxlcmF0b3Ivc3JjL2xpYi9kaXJlY3RpdmVzL2lmLXBlcm1pc3Npb24uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBVSxRQUFRLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUN4SCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0NBQXNDLENBQUE7OztBQUdsRSxNQUFNLE9BQU8scUJBQXFCO0lBRWhDLElBQWlDLGFBQWEsQ0FBQyxLQUF5QjtRQUN0RSxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQTtRQUN2QixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQTtJQUNwQixDQUFDO0lBS0QsWUFDVSxRQUFtQixFQUNuQixFQUFjLEVBQ2QsYUFBK0IsRUFDL0IsV0FBd0IsRUFDWixXQUE4QjtRQUoxQyxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLE9BQUUsR0FBRixFQUFFLENBQVk7UUFDZCxrQkFBYSxHQUFiLGFBQWEsQ0FBa0I7UUFDL0IsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDWixnQkFBVyxHQUFYLFdBQVcsQ0FBbUI7UUFSM0Msd0JBQW1CLEdBQXVCLE1BQU0sQ0FBQTtRQUN6RCxXQUFNLEdBQUcsS0FBSyxDQUFBO0lBUVgsQ0FBQztJQUVKLFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDbkIsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRTtnQkFDbkUsSUFBSSxJQUFJLENBQUMsbUJBQW1CLEtBQUssU0FBUyxFQUFFO29CQUMxQyxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUE7aUJBQzFFO3FCQUFNO29CQUNMLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUE7aUJBQzNCO2FBQ0Y7aUJBQU07Z0JBQ0wsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO29CQUNwQixJQUFJLENBQUMsYUFBYSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQTtpQkFDeEQ7YUFDRjtTQUNGO0lBQ0gsQ0FBQzs7bUhBaENVLHFCQUFxQjt1R0FBckIscUJBQXFCOzRGQUFyQixxQkFBcUI7a0JBRGpDLFNBQVM7bUJBQUMsRUFBRSxRQUFRLEVBQUUseUNBQXlDLEVBQUU7OzBCQWdCN0QsUUFBUTs0Q0FkZSxVQUFVO3NCQUFuQyxLQUFLO3VCQUFDLGlCQUFpQjtnQkFDUyxhQUFhO3NCQUE3QyxLQUFLO3VCQUFDLG9CQUFvQjtnQkFLbEIsbUJBQW1CO3NCQUEzQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbnB1dCwgT25Jbml0LCBPcHRpb25hbCwgUmVuZGVyZXIyLCBUZW1wbGF0ZVJlZiwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBVc2VyU2VydmljZSB9IGZyb20gJ0BvbmVjeC9hbmd1bGFyLWludGVncmF0aW9uLWludGVyZmFjZSdcblxuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnW29jeElmUGVybWlzc2lvbl0sIFtvY3hJZk5vdFBlcm1pc3Npb25dJyB9KVxuZXhwb3J0IGNsYXNzIElmUGVybWlzc2lvbkRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgnb2N4SWZQZXJtaXNzaW9uJykgcGVybWlzc2lvbjogc3RyaW5nIHwgdW5kZWZpbmVkXG4gIEBJbnB1dCgnb2N4SWZOb3RQZXJtaXNzaW9uJykgc2V0IG5vdFBlcm1pc3Npb24odmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMucGVybWlzc2lvbiA9IHZhbHVlXG4gICAgdGhpcy5uZWdhdGUgPSB0cnVlXG4gIH1cblxuICBASW5wdXQoKSBvbk1pc3NpbmdQZXJtaXNzaW9uOiAnaGlkZScgfCAnZGlzYWJsZScgPSAnaGlkZSdcbiAgbmVnYXRlID0gZmFsc2VcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgcHJpdmF0ZSBlbDogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIHZpZXdDb250YWluZXI6IFZpZXdDb250YWluZXJSZWYsXG4gICAgcHJpdmF0ZSB1c2VyU2VydmljZTogVXNlclNlcnZpY2UsXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSB0ZW1wbGF0ZVJlZj86IFRlbXBsYXRlUmVmPGFueT5cbiAgKSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmICh0aGlzLnBlcm1pc3Npb24pIHtcbiAgICAgIGlmICh0aGlzLm5lZ2F0ZSA9PT0gdGhpcy51c2VyU2VydmljZS5oYXNQZXJtaXNzaW9uKHRoaXMucGVybWlzc2lvbikpIHtcbiAgICAgICAgaWYgKHRoaXMub25NaXNzaW5nUGVybWlzc2lvbiA9PT0gJ2Rpc2FibGUnKSB7XG4gICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUodGhpcy5lbC5uYXRpdmVFbGVtZW50LCAnZGlzYWJsZWQnLCAnZGlzYWJsZWQnKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMudmlld0NvbnRhaW5lci5jbGVhcigpXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmICh0aGlzLnRlbXBsYXRlUmVmKSB7XG4gICAgICAgICAgdGhpcy52aWV3Q29udGFpbmVyLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLnRlbXBsYXRlUmVmKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0=
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWYtcGVybWlzc2lvbi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItYWNjZWxlcmF0b3Ivc3JjL2xpYi9kaXJlY3RpdmVzL2lmLXBlcm1pc3Npb24uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBVSxRQUFRLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUN4SCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0NBQXNDLENBQUE7OztBQUdsRSxNQUFNLE9BQU8scUJBQXFCO0lBRWhDLElBQWlDLGFBQWEsQ0FBQyxLQUF5QjtRQUN0RSxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQTtRQUN2QixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQTtJQUNwQixDQUFDO0lBS0QsSUFDSSw2QkFBNkIsQ0FBQyxLQUEyQjtRQUMzRCxJQUFJLENBQUMsMEJBQTBCLEdBQUcsS0FBSyxDQUFBO0lBQ3pDLENBQUM7SUFJRCxZQUNVLFFBQW1CLEVBQ25CLEVBQWMsRUFDZCxhQUErQixFQUMvQixXQUF3QixFQUNaLFdBQThCO1FBSjFDLGFBQVEsR0FBUixRQUFRLENBQVc7UUFDbkIsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQUNkLGtCQUFhLEdBQWIsYUFBYSxDQUFrQjtRQUMvQixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUNaLGdCQUFXLEdBQVgsV0FBVyxDQUFtQjtRQWYzQyx3QkFBbUIsR0FBdUIsTUFBTSxDQUFBO1FBUXpELFdBQU0sR0FBRyxLQUFLLENBQUE7SUFRWCxDQUFDO0lBRUosUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNuQixJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUU7Z0JBQ3ZELElBQUksSUFBSSxDQUFDLG1CQUFtQixLQUFLLFNBQVMsRUFBRTtvQkFDMUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFBO2lCQUMxRTtxQkFBTTtvQkFDTCxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFBO2lCQUMzQjthQUNGO2lCQUFNO2dCQUNMLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtvQkFDcEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUE7aUJBQ3hEO2FBQ0Y7U0FDRjtJQUNILENBQUM7SUFFRCxhQUFhLENBQUMsVUFBa0I7UUFDOUIsSUFBSSxJQUFJLENBQUMsMEJBQTBCLEVBQUU7WUFDbkMsT0FBTyxJQUFJLENBQUMsMEJBQTBCLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFBO1NBQzVEO1FBQ0QsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQTtJQUNuRCxDQUFDOzttSEE5Q1UscUJBQXFCO3VHQUFyQixxQkFBcUI7NEZBQXJCLHFCQUFxQjtrQkFEakMsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSx5Q0FBeUMsRUFBRTs7MEJBdUI3RCxRQUFROzRDQXJCZSxVQUFVO3NCQUFuQyxLQUFLO3VCQUFDLGlCQUFpQjtnQkFDUyxhQUFhO3NCQUE3QyxLQUFLO3VCQUFDLG9CQUFvQjtnQkFLbEIsbUJBQW1CO3NCQUEzQixLQUFLO2dCQUVHLDBCQUEwQjtzQkFBbEMsS0FBSztnQkFFRiw2QkFBNkI7c0JBRGhDLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIElucHV0LCBPbkluaXQsIE9wdGlvbmFsLCBSZW5kZXJlcjIsIFRlbXBsYXRlUmVmLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IFVzZXJTZXJ2aWNlIH0gZnJvbSAnQG9uZWN4L2FuZ3VsYXItaW50ZWdyYXRpb24taW50ZXJmYWNlJ1xuXG5ARGlyZWN0aXZlKHsgc2VsZWN0b3I6ICdbb2N4SWZQZXJtaXNzaW9uXSwgW29jeElmTm90UGVybWlzc2lvbl0nIH0pXG5leHBvcnQgY2xhc3MgSWZQZXJtaXNzaW9uRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCdvY3hJZlBlcm1pc3Npb24nKSBwZXJtaXNzaW9uOiBzdHJpbmcgfCB1bmRlZmluZWRcbiAgQElucHV0KCdvY3hJZk5vdFBlcm1pc3Npb24nKSBzZXQgbm90UGVybWlzc2lvbih2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5wZXJtaXNzaW9uID0gdmFsdWVcbiAgICB0aGlzLm5lZ2F0ZSA9IHRydWVcbiAgfVxuICBcbiAgQElucHV0KCkgb25NaXNzaW5nUGVybWlzc2lvbjogJ2hpZGUnIHwgJ2Rpc2FibGUnID0gJ2hpZGUnXG4gIFxuICBASW5wdXQoKSBvY3hJZlBlcm1pc3Npb25QZXJtaXNzaW9uczogc3RyaW5nW10gfCB1bmRlZmluZWRcbiAgQElucHV0KCkgXG4gIHNldCBvY3hJZk5vdFBlcm1pc3Npb25QZXJtaXNzaW9ucyh2YWx1ZTogc3RyaW5nW10gfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLm9jeElmUGVybWlzc2lvblBlcm1pc3Npb25zID0gdmFsdWVcbiAgfVxuICBcbiAgbmVnYXRlID0gZmFsc2VcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgcHJpdmF0ZSBlbDogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIHZpZXdDb250YWluZXI6IFZpZXdDb250YWluZXJSZWYsXG4gICAgcHJpdmF0ZSB1c2VyU2VydmljZTogVXNlclNlcnZpY2UsXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSB0ZW1wbGF0ZVJlZj86IFRlbXBsYXRlUmVmPGFueT5cbiAgKSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmICh0aGlzLnBlcm1pc3Npb24pIHtcbiAgICAgIGlmICh0aGlzLm5lZ2F0ZSA9PT0gdGhpcy5oYXNQZXJtaXNzaW9uKHRoaXMucGVybWlzc2lvbikpIHtcbiAgICAgICAgaWYgKHRoaXMub25NaXNzaW5nUGVybWlzc2lvbiA9PT0gJ2Rpc2FibGUnKSB7XG4gICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUodGhpcy5lbC5uYXRpdmVFbGVtZW50LCAnZGlzYWJsZWQnLCAnZGlzYWJsZWQnKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMudmlld0NvbnRhaW5lci5jbGVhcigpXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmICh0aGlzLnRlbXBsYXRlUmVmKSB7XG4gICAgICAgICAgdGhpcy52aWV3Q29udGFpbmVyLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLnRlbXBsYXRlUmVmKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaGFzUGVybWlzc2lvbihwZXJtaXNzaW9uOiBzdHJpbmcpIHtcbiAgICBpZiAodGhpcy5vY3hJZlBlcm1pc3Npb25QZXJtaXNzaW9ucykge1xuICAgICAgcmV0dXJuIHRoaXMub2N4SWZQZXJtaXNzaW9uUGVybWlzc2lvbnMuaW5jbHVkZXMocGVybWlzc2lvbilcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMudXNlclNlcnZpY2UuaGFzUGVybWlzc2lvbihwZXJtaXNzaW9uKVxuICB9XG59XG4iXX0=
@@ -1,15 +1,107 @@
1
- import { Pipe } from '@angular/core';
2
- import { TimeagoPipe } from 'ngx-timeago';
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 TimeagoPipe {
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: null, target: i0.ɵɵFactoryTarget.Pipe });
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2N4dGltZWFnby5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLWFjY2VsZXJhdG9yL3NyYy9saWIvcGlwZXMvb2N4dGltZWFnby5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDcEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGFBQWEsQ0FBQTs7QUFLekMsd0VBQXdFO0FBQ3hFLE1BQU0sT0FBTyxjQUFlLFNBQVEsV0FBVzs7NEdBQWxDLGNBQWM7MEdBQWQsY0FBYzs0RkFBZCxjQUFjO2tCQUoxQixJQUFJO21CQUFDO29CQUNKLElBQUksRUFBRSxTQUFTO2lCQUNoQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgVGltZWFnb1BpcGUgfSBmcm9tICduZ3gtdGltZWFnbydcblxuQFBpcGUoe1xuICBuYW1lOiAndGltZWFnbycsXG59KVxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC91c2UtcGlwZS10cmFuc2Zvcm0taW50ZXJmYWNlXG5leHBvcnQgY2xhc3MgT2N4VGltZUFnb1BpcGUgZXh0ZW5kcyBUaW1lYWdvUGlwZSB7fVxuIl19
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=