jconsumer-shared 1.0.6 → 1.0.7
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.
|
@@ -1,25 +1,41 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { DOCUMENT } from '@angular/common';
|
|
2
|
+
import { Inject, Injectable } from '@angular/core';
|
|
2
3
|
import * as i0 from "@angular/core";
|
|
3
4
|
export class ThemeService {
|
|
5
|
+
document;
|
|
4
6
|
renderer;
|
|
5
7
|
themeLinkElement = null;
|
|
6
|
-
constructor(rendererFactory
|
|
8
|
+
constructor(rendererFactory, document // Inject DOCUMENT
|
|
9
|
+
) {
|
|
10
|
+
this.document = document;
|
|
7
11
|
this.renderer = rendererFactory.createRenderer(null, null);
|
|
8
12
|
}
|
|
9
|
-
loadTheme(
|
|
10
|
-
//
|
|
13
|
+
loadTheme(themeBasePath, themeName) {
|
|
14
|
+
// Construct the full CDN path
|
|
15
|
+
const themePath = `${themeBasePath}${themeName}.css`;
|
|
16
|
+
// Remove existing theme if it’s set
|
|
11
17
|
if (this.themeLinkElement) {
|
|
12
|
-
this.renderer.removeChild(document.head, this.themeLinkElement);
|
|
18
|
+
this.renderer.removeChild(this.document.head, this.themeLinkElement);
|
|
19
|
+
this.themeLinkElement = null; // Reset reference
|
|
13
20
|
}
|
|
14
21
|
// Create a new link element for the theme
|
|
15
22
|
this.themeLinkElement = this.renderer.createElement('link');
|
|
16
|
-
this.themeLinkElement
|
|
17
|
-
this.themeLinkElement
|
|
18
|
-
//
|
|
23
|
+
this.renderer.setAttribute(this.themeLinkElement, 'rel', 'stylesheet');
|
|
24
|
+
this.renderer.setAttribute(this.themeLinkElement, 'href', themePath);
|
|
25
|
+
// Handle successful load
|
|
26
|
+
this.themeLinkElement.onload = () => {
|
|
27
|
+
console.log(`Theme loaded: ${themePath}`);
|
|
28
|
+
this.renderer.addClass(this.document.body, themeName); // Apply theme class to body
|
|
29
|
+
};
|
|
30
|
+
// Handle load failure
|
|
31
|
+
this.themeLinkElement.onerror = () => {
|
|
32
|
+
console.error(`Failed to load theme: ${themePath}`);
|
|
33
|
+
// Optionally load a fallback theme
|
|
34
|
+
};
|
|
19
35
|
// Append the new theme to the document head
|
|
20
|
-
this.renderer.appendChild(document.head, this.themeLinkElement);
|
|
36
|
+
this.renderer.appendChild(this.document.head, this.themeLinkElement);
|
|
21
37
|
}
|
|
22
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ThemeService, deps: [{ token: i0.RendererFactory2 }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
38
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ThemeService, deps: [{ token: i0.RendererFactory2 }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
23
39
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ThemeService, providedIn: 'root' });
|
|
24
40
|
}
|
|
25
41
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ThemeService, decorators: [{
|
|
@@ -27,5 +43,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
27
43
|
args: [{
|
|
28
44
|
providedIn: 'root',
|
|
29
45
|
}]
|
|
30
|
-
}], ctorParameters: () => [{ type: i0.RendererFactory2 }
|
|
31
|
-
|
|
46
|
+
}], ctorParameters: () => [{ type: i0.RendererFactory2 }, { type: Document, decorators: [{
|
|
47
|
+
type: Inject,
|
|
48
|
+
args: [DOCUMENT]
|
|
49
|
+
}] }] });
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2pjb25zdW1lci1zaGFyZWQvc3JjL2xpYi90aGVtZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBK0IsTUFBTSxlQUFlLENBQUM7O0FBS2hGLE1BQU0sT0FBTyxZQUFZO0lBTUs7SUFMcEIsUUFBUSxDQUFZO0lBQ3BCLGdCQUFnQixHQUEyQixJQUFJLENBQUM7SUFFeEQsWUFDRSxlQUFpQyxFQUNQLFFBQWtCLENBQUMsa0JBQWtCOztRQUFyQyxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBRTVDLElBQUksQ0FBQyxRQUFRLEdBQUcsZUFBZSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVELFNBQVMsQ0FBQyxhQUFxQixFQUFFLFNBQWlCO1FBQ2hELDhCQUE4QjtRQUM5QixNQUFNLFNBQVMsR0FBRyxHQUFHLGFBQWEsR0FBRyxTQUFTLE1BQU0sQ0FBQztRQUVyRCxvQ0FBb0M7UUFDcEMsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUMxQixJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztZQUNyRSxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLENBQUMsa0JBQWtCO1FBQ2xELENBQUM7UUFFRCwwQ0FBMEM7UUFDMUMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBb0IsQ0FBQztRQUMvRSxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsS0FBSyxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQ3ZFLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFFckUseUJBQXlCO1FBQ3pCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEdBQUcsR0FBRyxFQUFFO1lBQ2xDLE9BQU8sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLFNBQVMsRUFBRSxDQUFDLENBQUM7WUFDMUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyw0QkFBNEI7UUFDckYsQ0FBQyxDQUFDO1FBRUYsc0JBQXNCO1FBQ3RCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEdBQUcsR0FBRyxFQUFFO1lBQ25DLE9BQU8sQ0FBQyxLQUFLLENBQUMseUJBQXlCLFNBQVMsRUFBRSxDQUFDLENBQUM7WUFDcEQsbUNBQW1DO1FBQ3JDLENBQUMsQ0FBQztRQUVGLDRDQUE0QztRQUM1QyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUN2RSxDQUFDO3dHQXhDVSxZQUFZLGtEQU1iLFFBQVE7NEdBTlAsWUFBWSxjQUZYLE1BQU07OzRGQUVQLFlBQVk7a0JBSHhCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFPSSxNQUFNOzJCQUFDLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgUmVuZGVyZXIyLCBSZW5kZXJlckZhY3RvcnkyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVGhlbWVTZXJ2aWNlIHtcclxuICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjI7XHJcbiAgcHJpdmF0ZSB0aGVtZUxpbmtFbGVtZW50OiBIVE1MTGlua0VsZW1lbnQgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICByZW5kZXJlckZhY3Rvcnk6IFJlbmRlcmVyRmFjdG9yeTIsXHJcbiAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIGRvY3VtZW50OiBEb2N1bWVudCAvLyBJbmplY3QgRE9DVU1FTlRcclxuICApIHtcclxuICAgIHRoaXMucmVuZGVyZXIgPSByZW5kZXJlckZhY3RvcnkuY3JlYXRlUmVuZGVyZXIobnVsbCwgbnVsbCk7XHJcbiAgfVxyXG5cclxuICBsb2FkVGhlbWUodGhlbWVCYXNlUGF0aDogc3RyaW5nLCB0aGVtZU5hbWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgLy8gQ29uc3RydWN0IHRoZSBmdWxsIENETiBwYXRoXHJcbiAgICBjb25zdCB0aGVtZVBhdGggPSBgJHt0aGVtZUJhc2VQYXRofSR7dGhlbWVOYW1lfS5jc3NgO1xyXG5cclxuICAgIC8vIFJlbW92ZSBleGlzdGluZyB0aGVtZSBpZiBpdOKAmXMgc2V0XHJcbiAgICBpZiAodGhpcy50aGVtZUxpbmtFbGVtZW50KSB7XHJcbiAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2hpbGQodGhpcy5kb2N1bWVudC5oZWFkLCB0aGlzLnRoZW1lTGlua0VsZW1lbnQpO1xyXG4gICAgICB0aGlzLnRoZW1lTGlua0VsZW1lbnQgPSBudWxsOyAvLyBSZXNldCByZWZlcmVuY2VcclxuICAgIH1cclxuXHJcbiAgICAvLyBDcmVhdGUgYSBuZXcgbGluayBlbGVtZW50IGZvciB0aGUgdGhlbWVcclxuICAgIHRoaXMudGhlbWVMaW5rRWxlbWVudCA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnbGluaycpIGFzIEhUTUxMaW5rRWxlbWVudDtcclxuICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKHRoaXMudGhlbWVMaW5rRWxlbWVudCwgJ3JlbCcsICdzdHlsZXNoZWV0Jyk7XHJcbiAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZSh0aGlzLnRoZW1lTGlua0VsZW1lbnQsICdocmVmJywgdGhlbWVQYXRoKTtcclxuXHJcbiAgICAvLyBIYW5kbGUgc3VjY2Vzc2Z1bCBsb2FkXHJcbiAgICB0aGlzLnRoZW1lTGlua0VsZW1lbnQub25sb2FkID0gKCkgPT4ge1xyXG4gICAgICBjb25zb2xlLmxvZyhgVGhlbWUgbG9hZGVkOiAke3RoZW1lUGF0aH1gKTtcclxuICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmRvY3VtZW50LmJvZHksIHRoZW1lTmFtZSk7IC8vIEFwcGx5IHRoZW1lIGNsYXNzIHRvIGJvZHlcclxuICAgIH07XHJcblxyXG4gICAgLy8gSGFuZGxlIGxvYWQgZmFpbHVyZVxyXG4gICAgdGhpcy50aGVtZUxpbmtFbGVtZW50Lm9uZXJyb3IgPSAoKSA9PiB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoYEZhaWxlZCB0byBsb2FkIHRoZW1lOiAke3RoZW1lUGF0aH1gKTtcclxuICAgICAgLy8gT3B0aW9uYWxseSBsb2FkIGEgZmFsbGJhY2sgdGhlbWVcclxuICAgIH07XHJcblxyXG4gICAgLy8gQXBwZW5kIHRoZSBuZXcgdGhlbWUgdG8gdGhlIGRvY3VtZW50IGhlYWRcclxuICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQodGhpcy5kb2N1bWVudC5oZWFkLCB0aGlzLnRoZW1lTGlua0VsZW1lbnQpO1xyXG4gIH1cclxufSJdfQ==
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { loadRemoteModule } from '@angular-architects/native-federation';
|
|
2
2
|
import * as i0 from '@angular/core';
|
|
3
|
-
import { Injectable, NgModule, Component, Input,
|
|
3
|
+
import { Injectable, Inject, NgModule, Component, Input, Pipe, HostListener, EventEmitter, Output, ViewChild, NO_ERRORS_SCHEMA, CUSTOM_ELEMENTS_SCHEMA, forwardRef, ENVIRONMENT_INITIALIZER, inject, Injector, runInInjectionContext } from '@angular/core';
|
|
4
4
|
import * as i1 from '@angular/common/http';
|
|
5
5
|
import { HttpHeaders, HttpParams, HttpClient } from '@angular/common/http';
|
|
6
6
|
import { Subject, of, BehaviorSubject } from 'rxjs';
|
|
7
7
|
import * as i1$1 from 'primeng/api';
|
|
8
8
|
import * as i13 from '@angular/common';
|
|
9
|
-
import { CommonModule, DatePipe } from '@angular/common';
|
|
9
|
+
import { DOCUMENT, CommonModule, DatePipe } from '@angular/common';
|
|
10
10
|
import { TranslateHttpLoader } from '@ngx-translate/http-loader';
|
|
11
11
|
import * as i1$2 from '@ngx-translate/core';
|
|
12
12
|
import { TranslateModule, TranslateLoader } from '@ngx-translate/core';
|
|
@@ -394,25 +394,40 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
394
394
|
}], ctorParameters: () => [] });
|
|
395
395
|
|
|
396
396
|
class ThemeService {
|
|
397
|
+
document;
|
|
397
398
|
renderer;
|
|
398
399
|
themeLinkElement = null;
|
|
399
|
-
constructor(rendererFactory
|
|
400
|
+
constructor(rendererFactory, document // Inject DOCUMENT
|
|
401
|
+
) {
|
|
402
|
+
this.document = document;
|
|
400
403
|
this.renderer = rendererFactory.createRenderer(null, null);
|
|
401
404
|
}
|
|
402
|
-
loadTheme(
|
|
403
|
-
//
|
|
405
|
+
loadTheme(themeBasePath, themeName) {
|
|
406
|
+
// Construct the full CDN path
|
|
407
|
+
const themePath = `${themeBasePath}${themeName}.css`;
|
|
408
|
+
// Remove existing theme if it’s set
|
|
404
409
|
if (this.themeLinkElement) {
|
|
405
|
-
this.renderer.removeChild(document.head, this.themeLinkElement);
|
|
410
|
+
this.renderer.removeChild(this.document.head, this.themeLinkElement);
|
|
411
|
+
this.themeLinkElement = null; // Reset reference
|
|
406
412
|
}
|
|
407
413
|
// Create a new link element for the theme
|
|
408
414
|
this.themeLinkElement = this.renderer.createElement('link');
|
|
409
|
-
this.themeLinkElement
|
|
410
|
-
this.themeLinkElement
|
|
411
|
-
//
|
|
415
|
+
this.renderer.setAttribute(this.themeLinkElement, 'rel', 'stylesheet');
|
|
416
|
+
this.renderer.setAttribute(this.themeLinkElement, 'href', themePath);
|
|
417
|
+
// Handle successful load
|
|
418
|
+
this.themeLinkElement.onload = () => {
|
|
419
|
+
console.log(`Theme loaded: ${themePath}`);
|
|
420
|
+
this.renderer.addClass(this.document.body, themeName); // Apply theme class to body
|
|
421
|
+
};
|
|
422
|
+
// Handle load failure
|
|
423
|
+
this.themeLinkElement.onerror = () => {
|
|
424
|
+
console.error(`Failed to load theme: ${themePath}`);
|
|
425
|
+
// Optionally load a fallback theme
|
|
426
|
+
};
|
|
412
427
|
// Append the new theme to the document head
|
|
413
|
-
this.renderer.appendChild(document.head, this.themeLinkElement);
|
|
428
|
+
this.renderer.appendChild(this.document.head, this.themeLinkElement);
|
|
414
429
|
}
|
|
415
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ThemeService, deps: [{ token: i0.RendererFactory2 }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
430
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ThemeService, deps: [{ token: i0.RendererFactory2 }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
416
431
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ThemeService, providedIn: 'root' });
|
|
417
432
|
}
|
|
418
433
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ThemeService, decorators: [{
|
|
@@ -420,7 +435,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
420
435
|
args: [{
|
|
421
436
|
providedIn: 'root',
|
|
422
437
|
}]
|
|
423
|
-
}], ctorParameters: () => [{ type: i0.RendererFactory2 }
|
|
438
|
+
}], ctorParameters: () => [{ type: i0.RendererFactory2 }, { type: Document, decorators: [{
|
|
439
|
+
type: Inject,
|
|
440
|
+
args: [DOCUMENT]
|
|
441
|
+
}] }] });
|
|
424
442
|
|
|
425
443
|
function HttpLoaderFactory(http, sharedService) {
|
|
426
444
|
return new TranslateHttpLoader(http, sharedService.getI8nPath() + 'assets/i18n/', '.json');
|