@libs-ui/services-dynamic-component 0.2.5
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/README.md +3 -0
- package/dynamic-component.service.d.ts +17 -0
- package/esm2022/dynamic-component.service.mjs +97 -0
- package/esm2022/index.mjs +2 -0
- package/esm2022/libs-ui-services-dynamic-component.mjs +5 -0
- package/fesm2022/libs-ui-services-dynamic-component.mjs +104 -0
- package/fesm2022/libs-ui-services-dynamic-component.mjs.map +1 -0
- package/index.d.ts +1 -0
- package/package.json +25 -0
package/README.md
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { ComponentRef } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export declare class LibsUiDynamicComponentService {
|
|
4
|
+
private elementLayoutContent;
|
|
5
|
+
private elementBody;
|
|
6
|
+
private mapStylesToParentDocument;
|
|
7
|
+
private appRef;
|
|
8
|
+
resolveComponentFactory(component: any): ComponentRef<any>;
|
|
9
|
+
addToBody(componentRef: any, isAddParentDocument?: boolean): string;
|
|
10
|
+
addToElement(componentRef: any, elementAdd: any): any;
|
|
11
|
+
addToIdAttributeElement(componentRef: any, id: string): HTMLElement | undefined;
|
|
12
|
+
remove(componentRef: any, frameId?: string, ignoreDestroyComponent?: boolean): void;
|
|
13
|
+
private updateStyleToParentDocument;
|
|
14
|
+
private removeStyleToParentDocument;
|
|
15
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<LibsUiDynamicComponentService, never>;
|
|
16
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<LibsUiDynamicComponentService>;
|
|
17
|
+
}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
|
+
import { ApplicationRef, Injectable, createComponent, inject } from '@angular/core';
|
|
3
|
+
import { uuid } from '@libs-ui/utils';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class LibsUiDynamicComponentService {
|
|
6
|
+
elementLayoutContent;
|
|
7
|
+
elementBody;
|
|
8
|
+
mapStylesToParentDocument = new Map();
|
|
9
|
+
appRef = inject(ApplicationRef);
|
|
10
|
+
resolveComponentFactory(component) {
|
|
11
|
+
return createComponent(component, { environmentInjector: this.appRef.injector });
|
|
12
|
+
}
|
|
13
|
+
addToBody(componentRef, isAddParentDocument) {
|
|
14
|
+
if (!componentRef || !componentRef.hostView) {
|
|
15
|
+
return '';
|
|
16
|
+
}
|
|
17
|
+
this.appRef.attachView(componentRef.hostView);
|
|
18
|
+
const domElem = componentRef.hostView.rootNodes[0];
|
|
19
|
+
if (isAddParentDocument) {
|
|
20
|
+
window.parent.document.body.appendChild(domElem);
|
|
21
|
+
return this.updateStyleToParentDocument();
|
|
22
|
+
}
|
|
23
|
+
if (!this.elementBody) {
|
|
24
|
+
this.elementBody = document.body;
|
|
25
|
+
}
|
|
26
|
+
this.elementBody.appendChild(domElem);
|
|
27
|
+
return '';
|
|
28
|
+
}
|
|
29
|
+
addToElement(componentRef, elementAdd) {
|
|
30
|
+
if (!componentRef || !componentRef.hostView || !elementAdd) {
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
this.appRef.attachView(componentRef.hostView);
|
|
34
|
+
const domElem = componentRef.hostView.rootNodes[0];
|
|
35
|
+
return elementAdd.appendChild(domElem);
|
|
36
|
+
}
|
|
37
|
+
addToIdAttributeElement(componentRef, id) {
|
|
38
|
+
if (!this.elementLayoutContent) {
|
|
39
|
+
this.elementLayoutContent = document.getElementById(id);
|
|
40
|
+
}
|
|
41
|
+
if (!componentRef || !componentRef.hostView) {
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
this.appRef.attachView(componentRef.hostView);
|
|
45
|
+
const domElem = componentRef.hostView.rootNodes[0];
|
|
46
|
+
return this.elementLayoutContent?.appendChild(domElem);
|
|
47
|
+
}
|
|
48
|
+
remove(componentRef, frameId = '', ignoreDestroyComponent) {
|
|
49
|
+
if (!componentRef) {
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
this.removeStyleToParentDocument(frameId);
|
|
53
|
+
if (componentRef.hostView) {
|
|
54
|
+
this.appRef.detachView(componentRef.hostView);
|
|
55
|
+
}
|
|
56
|
+
if (!ignoreDestroyComponent && componentRef.destroy) {
|
|
57
|
+
componentRef.destroy();
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
updateStyleToParentDocument() {
|
|
61
|
+
const frameId = uuid();
|
|
62
|
+
const documentParent = window.parent.document;
|
|
63
|
+
if (documentParent && !this.mapStylesToParentDocument.has(frameId)) {
|
|
64
|
+
const styleTags = new Array();
|
|
65
|
+
Array.from(document.head.querySelectorAll("style")).forEach(styleTag => {
|
|
66
|
+
const cloneStyleTag = styleTag.cloneNode(true);
|
|
67
|
+
styleTags.push(cloneStyleTag);
|
|
68
|
+
documentParent?.head.appendChild(cloneStyleTag);
|
|
69
|
+
});
|
|
70
|
+
this.mapStylesToParentDocument.set(frameId, styleTags);
|
|
71
|
+
}
|
|
72
|
+
return frameId;
|
|
73
|
+
}
|
|
74
|
+
removeStyleToParentDocument(frameId) {
|
|
75
|
+
if (!frameId) {
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
const styleTagsPopup = this.mapStylesToParentDocument.get(frameId);
|
|
79
|
+
const documentParent = window.parent.document;
|
|
80
|
+
if (!styleTagsPopup || !styleTagsPopup.length || !documentParent) {
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
styleTagsPopup.forEach(styleTag => {
|
|
84
|
+
documentParent?.head.removeChild(styleTag);
|
|
85
|
+
});
|
|
86
|
+
this.mapStylesToParentDocument.delete(frameId);
|
|
87
|
+
}
|
|
88
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LibsUiDynamicComponentService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
89
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LibsUiDynamicComponentService, providedIn: 'root' });
|
|
90
|
+
}
|
|
91
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LibsUiDynamicComponentService, decorators: [{
|
|
92
|
+
type: Injectable,
|
|
93
|
+
args: [{
|
|
94
|
+
providedIn: 'root'
|
|
95
|
+
}]
|
|
96
|
+
}] });
|
|
97
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1jb21wb25lbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMtdWkvc2VydmljZXMvZHluYW1pYy1jb21wb25lbnQvc3JjL2R5bmFtaWMtY29tcG9uZW50LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELE9BQU8sRUFBRSxjQUFjLEVBQWlDLFVBQVUsRUFBRSxlQUFlLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ILE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFLdEMsTUFBTSxPQUFPLDZCQUE2QjtJQUNoQyxvQkFBb0IsQ0FBc0I7SUFDMUMsV0FBVyxDQUFzQjtJQUNqQyx5QkFBeUIsR0FBNkIsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUNoRSxNQUFNLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBRWpDLHVCQUF1QixDQUFDLFNBQWM7UUFDM0MsT0FBTyxlQUFlLENBQUMsU0FBUyxFQUFFLEVBQUUsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQ25GLENBQUM7SUFFTSxTQUFTLENBQUMsWUFBaUIsRUFBRSxtQkFBNkI7UUFDL0QsSUFBSSxDQUFDLFlBQVksSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUM1QyxPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUM7UUFFRCxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDOUMsTUFBTSxPQUFPLEdBQUksWUFBWSxDQUFDLFFBQWlDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBZ0IsQ0FBQztRQUU1RixJQUFJLG1CQUFtQixFQUFFLENBQUM7WUFDeEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdB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YSxDQUFDLENBQUM7WUFDbEQsQ0FBQyxDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMseUJBQXlCLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQztRQUN6RCxDQUFDO1FBRUQsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVPLDJCQUEyQixDQUFDLE9BQWU7UUFDakQsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2IsT0FBTztRQUNULENBQUM7UUFDRCxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMseUJBQXlCLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ25FLE1BQU0sY0FBYyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDO1FBRTlDLElBQUksQ0FBQyxjQUFjLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDakUsT0FBTztRQUNULENBQUM7UUFDRCxjQUFjLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ2hDLGNBQWMsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzdDLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLHlCQUF5QixDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNqRCxDQUFDO3dHQXBHVSw2QkFBNkI7NEdBQTdCLDZCQUE2QixjQUg1QixNQUFNOzs0RkFHUCw2QkFBNkI7a0JBSnpDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuaW1wb3J0IHsgQXBwbGljYXRpb25SZWYsIENvbXBvbmVudFJlZiwgRW1iZWRkZWRWaWV3UmVmLCBJbmplY3RhYmxlLCBjcmVhdGVDb21wb25lbnQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdXVpZCB9IGZyb20gJ0BsaWJzLXVpL3V0aWxzJztcbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuXG5leHBvcnQgY2xhc3MgTGlic1VpRHluYW1pY0NvbXBvbmVudFNlcnZpY2Uge1xuICBwcml2YXRlIGVsZW1lbnRMYXlvdXRDb250ZW50ITogSFRNTEVsZW1lbnQgfCBudWxsO1xuICBwcml2YXRlIGVsZW1lbnRCb2R5ITogSFRNTEVsZW1lbnQgfCBudWxsO1xuICBwcml2YXRlIG1hcFN0eWxlc1RvUGFyZW50RG9jdW1lbnQ6IE1hcDxzdHJpbmcsIEFycmF5PE5vZGU+PiA9IG5ldyBNYXAoKTtcbiAgcHJpdmF0ZSBhcHBSZWYgPSBpbmplY3QoQXBwbGljYXRpb25SZWYpO1xuXG4gIHB1YmxpYyByZXNvbHZlQ29tcG9uZW50RmFjdG9yeShjb21wb25lbnQ6IGFueSk6IENvbXBvbmVudFJlZjxhbnk+IHtcbiAgICByZXR1cm4gY3JlYXRlQ29tcG9uZW50KGNvbXBvbmVudCwgeyBlbnZpcm9ubWVudEluamVjdG9yOiB0aGlzLmFwcFJlZi5pbmplY3RvciB9KTtcbiAgfVxuXG4gIHB1YmxpYyBhZGRUb0JvZHkoY29tcG9uZW50UmVmOiBhbnksIGlzQWRkUGFyZW50RG9jdW1lbnQ/OiBib29sZWFuKTogc3RyaW5nIHtcbiAgICBpZiAoIWNvbXBvbmVudFJlZiB8fCAhY29tcG9uZW50UmVmLmhvc3RWaWV3KSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuXG4gICAgdGhpcy5hcHBSZWYuYXR0YWNoVmlldyhjb21wb25lbnRSZWYuaG9zdFZpZXcpO1xuICAgIGNvbnN0IGRvbUVsZW0gPSAoY29tcG9uZW50UmVmLmhvc3RWaWV3IGFzIEVtYmVkZGVkVmlld1JlZjxhbnk+KS5yb290Tm9kZXNbMF0gYXMgSFRNTEVsZW1lbnQ7XG5cbiAgICBpZiAoaXNBZGRQYXJlbnREb2N1bWVudCkge1xuICAgICAgd2luZG93LnBhcmVudC5kb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRvbUVsZW0pO1xuXG4gICAgICByZXR1cm4gdGhpcy51cGRhdGVTdHlsZVRvUGFyZW50RG9jdW1lbnQoKTtcbiAgICB9XG4gICAgaWYgKCF0aGlzLmVsZW1lbnRCb2R5KSB7XG4gICAgICB0aGlzLmVsZW1lbnRCb2R5ID0gZG9jdW1lbnQuYm9keTtcbiAgICB9XG4gICAgdGhpcy5lbGVtZW50Qm9keS5hcHBlbmRDaGlsZChkb21FbGVtKTtcblxuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIHB1YmxpYyBhZGRUb0VsZW1lbnQoY29tcG9uZW50UmVmOiBhbnksIGVsZW1lbnRBZGQ6IGFueSkge1xuICAgIGlmICghY29tcG9uZW50UmVmIHx8ICFjb21wb25lbnRSZWYuaG9zdFZpZXcgfHwgIWVsZW1lbnRBZGQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5hcHBSZWYuYXR0YWNoVmlldyhjb21wb25lbnRSZWYuaG9zdFZpZXcpO1xuICAgIGNvbnN0IGRvbUVsZW0gPSAoY29tcG9uZW50UmVmLmhvc3RWaWV3IGFzIEVtYmVkZGVkVmlld1JlZjxhbnk+KS5yb290Tm9kZXNbMF0gYXMgSFRNTEVsZW1lbnQ7XG5cbiAgICByZXR1cm4gZWxlbWVudEFkZC5hcHBlbmRDaGlsZChkb21FbGVtKTtcbiAgfVxuXG4gIHB1YmxpYyBhZGRUb0lkQXR0cmlidXRlRWxlbWVudChjb21wb25lbnRSZWY6IGFueSwgaWQ6IHN0cmluZykge1xuICAgIGlmICghdGhpcy5lbGVtZW50TGF5b3V0Q29udGVudCkge1xuICAgICAgdGhpcy5lbGVtZW50TGF5b3V0Q29udGVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKTtcbiAgICB9XG4gICAgaWYgKCFjb21wb25lbnRSZWYgfHwgIWNvbXBvbmVudFJlZi5ob3N0Vmlldykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmFwcFJlZi5hdHRhY2hWaWV3KGNvbXBvbmVudFJlZi5ob3N0Vmlldyk7XG4gICAgY29uc3QgZG9tRWxlbSA9IChjb21wb25lbnRSZWYuaG9zdFZpZXcgYXMgRW1iZWRkZWRWaWV3UmVmPGFueT4pLnJvb3ROb2Rlc1swXSBhcyBIVE1MRWxlbWVudDtcblxuICAgIHJldHVybiB0aGlzLmVsZW1lbnRMYXlvdXRDb250ZW50Py5hcHBlbmRDaGlsZChkb21FbGVtKTtcbiAgfVxuXG4gIHB1YmxpYyByZW1vdmUoY29tcG9uZW50UmVmOiBhbnksIGZyYW1lSWQgPSAnJywgaWdub3JlRGVzdHJveUNvbXBvbmVudD86IGJvb2xlYW4pIHtcbiAgICBpZiAoIWNvbXBvbmVudFJlZikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnJlbW92ZVN0eWxlVG9QYXJlbnREb2N1bWVudChmcmFtZUlkKTtcbiAgICBpZiAoY29tcG9uZW50UmVmLmhvc3RWaWV3KSB7XG4gICAgICB0aGlzLmFwcFJlZi5kZXRhY2hWaWV3KGNvbXBvbmVudFJlZi5ob3N0Vmlldyk7XG4gICAgfVxuICAgIGlmICghaWdub3JlRGVzdHJveUNvbXBvbmVudCAmJiBjb21wb25lbnRSZWYuZGVzdHJveSkge1xuICAgICAgY29tcG9uZW50UmVmLmRlc3Ryb3koKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZVN0eWxlVG9QYXJlbnREb2N1bWVudCgpOiBzdHJpbmcge1xuICAgIGNvbnN0IGZyYW1lSWQgPSB1dWlkKCk7XG4gICAgY29uc3QgZG9jdW1lbnRQYXJlbnQgPSB3aW5kb3cucGFyZW50LmRvY3VtZW50O1xuXG4gICAgaWYgKGRvY3VtZW50UGFyZW50ICYmICF0aGlzLm1hcFN0eWxlc1RvUGFyZW50RG9jdW1lbnQuaGFzKGZyYW1lSWQpKSB7XG4gICAgICBjb25zdCBzdHlsZVRhZ3MgPSBuZXcgQXJyYXk8Tm9kZT4oKTtcblxuICAgICAgQXJyYXkuZnJvbShkb2N1bWVudC5oZWFkLnF1ZXJ5U2VsZWN0b3JBbGwoXCJzdHlsZVwiKSkuZm9yRWFjaChzdHlsZVRhZyA9PiB7XG4gICAgICAgIGNvbnN0IGNsb25lU3R5bGVUYWcgPSBzdHlsZVRhZy5jbG9uZU5vZGUodHJ1ZSk7XG5cbiAgICAgICAgc3R5bGVUYWdzLnB1c2goY2xvbmVTdHlsZVRhZyk7XG4gICAgICAgIGRvY3VtZW50UGFyZW50Py5oZWFkLmFwcGVuZENoaWxkKGNsb25lU3R5bGVUYWcpO1xuICAgICAgfSk7XG4gICAgICB0aGlzLm1hcFN0eWxlc1RvUGFyZW50RG9jdW1lbnQuc2V0KGZyYW1lSWQsIHN0eWxlVGFncyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZyYW1lSWQ7XG4gIH1cblxuICBwcml2YXRlIHJlbW92ZVN0eWxlVG9QYXJlbnREb2N1bWVudChmcmFtZUlkOiBzdHJpbmcpIHtcbiAgICBpZiAoIWZyYW1lSWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3Qgc3R5bGVUYWdzUG9wdXAgPSB0aGlzLm1hcFN0eWxlc1RvUGFyZW50RG9jdW1lbnQuZ2V0KGZyYW1lSWQpO1xuICAgIGNvbnN0IGRvY3VtZW50UGFyZW50ID0gd2luZG93LnBhcmVudC5kb2N1bWVudDtcblxuICAgIGlmICghc3R5bGVUYWdzUG9wdXAgfHwgIXN0eWxlVGFnc1BvcHVwLmxlbmd0aCB8fCAhZG9jdW1lbnRQYXJlbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgc3R5bGVUYWdzUG9wdXAuZm9yRWFjaChzdHlsZVRhZyA9PiB7XG4gICAgICBkb2N1bWVudFBhcmVudD8uaGVhZC5yZW1vdmVDaGlsZChzdHlsZVRhZyk7XG4gICAgfSk7XG4gICAgdGhpcy5tYXBTdHlsZXNUb1BhcmVudERvY3VtZW50LmRlbGV0ZShmcmFtZUlkKTtcbiAgfVxufSJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './dynamic-component.service';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzLXVpL3NlcnZpY2VzL2R5bmFtaWMtY29tcG9uZW50L3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDZCQUE2QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9keW5hbWljLWNvbXBvbmVudC5zZXJ2aWNlJzsiXX0=
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './index';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlicy11aS1zZXJ2aWNlcy1keW5hbWljLWNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMtdWkvc2VydmljZXMvZHluYW1pYy1jb21wb25lbnQvc3JjL2xpYnMtdWktc2VydmljZXMtZHluYW1pYy1jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0=
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { inject, ApplicationRef, createComponent, Injectable } from '@angular/core';
|
|
3
|
+
import { uuid } from '@libs-ui/utils';
|
|
4
|
+
|
|
5
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
6
|
+
class LibsUiDynamicComponentService {
|
|
7
|
+
elementLayoutContent;
|
|
8
|
+
elementBody;
|
|
9
|
+
mapStylesToParentDocument = new Map();
|
|
10
|
+
appRef = inject(ApplicationRef);
|
|
11
|
+
resolveComponentFactory(component) {
|
|
12
|
+
return createComponent(component, { environmentInjector: this.appRef.injector });
|
|
13
|
+
}
|
|
14
|
+
addToBody(componentRef, isAddParentDocument) {
|
|
15
|
+
if (!componentRef || !componentRef.hostView) {
|
|
16
|
+
return '';
|
|
17
|
+
}
|
|
18
|
+
this.appRef.attachView(componentRef.hostView);
|
|
19
|
+
const domElem = componentRef.hostView.rootNodes[0];
|
|
20
|
+
if (isAddParentDocument) {
|
|
21
|
+
window.parent.document.body.appendChild(domElem);
|
|
22
|
+
return this.updateStyleToParentDocument();
|
|
23
|
+
}
|
|
24
|
+
if (!this.elementBody) {
|
|
25
|
+
this.elementBody = document.body;
|
|
26
|
+
}
|
|
27
|
+
this.elementBody.appendChild(domElem);
|
|
28
|
+
return '';
|
|
29
|
+
}
|
|
30
|
+
addToElement(componentRef, elementAdd) {
|
|
31
|
+
if (!componentRef || !componentRef.hostView || !elementAdd) {
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
this.appRef.attachView(componentRef.hostView);
|
|
35
|
+
const domElem = componentRef.hostView.rootNodes[0];
|
|
36
|
+
return elementAdd.appendChild(domElem);
|
|
37
|
+
}
|
|
38
|
+
addToIdAttributeElement(componentRef, id) {
|
|
39
|
+
if (!this.elementLayoutContent) {
|
|
40
|
+
this.elementLayoutContent = document.getElementById(id);
|
|
41
|
+
}
|
|
42
|
+
if (!componentRef || !componentRef.hostView) {
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
this.appRef.attachView(componentRef.hostView);
|
|
46
|
+
const domElem = componentRef.hostView.rootNodes[0];
|
|
47
|
+
return this.elementLayoutContent?.appendChild(domElem);
|
|
48
|
+
}
|
|
49
|
+
remove(componentRef, frameId = '', ignoreDestroyComponent) {
|
|
50
|
+
if (!componentRef) {
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
this.removeStyleToParentDocument(frameId);
|
|
54
|
+
if (componentRef.hostView) {
|
|
55
|
+
this.appRef.detachView(componentRef.hostView);
|
|
56
|
+
}
|
|
57
|
+
if (!ignoreDestroyComponent && componentRef.destroy) {
|
|
58
|
+
componentRef.destroy();
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
updateStyleToParentDocument() {
|
|
62
|
+
const frameId = uuid();
|
|
63
|
+
const documentParent = window.parent.document;
|
|
64
|
+
if (documentParent && !this.mapStylesToParentDocument.has(frameId)) {
|
|
65
|
+
const styleTags = new Array();
|
|
66
|
+
Array.from(document.head.querySelectorAll("style")).forEach(styleTag => {
|
|
67
|
+
const cloneStyleTag = styleTag.cloneNode(true);
|
|
68
|
+
styleTags.push(cloneStyleTag);
|
|
69
|
+
documentParent?.head.appendChild(cloneStyleTag);
|
|
70
|
+
});
|
|
71
|
+
this.mapStylesToParentDocument.set(frameId, styleTags);
|
|
72
|
+
}
|
|
73
|
+
return frameId;
|
|
74
|
+
}
|
|
75
|
+
removeStyleToParentDocument(frameId) {
|
|
76
|
+
if (!frameId) {
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
const styleTagsPopup = this.mapStylesToParentDocument.get(frameId);
|
|
80
|
+
const documentParent = window.parent.document;
|
|
81
|
+
if (!styleTagsPopup || !styleTagsPopup.length || !documentParent) {
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
styleTagsPopup.forEach(styleTag => {
|
|
85
|
+
documentParent?.head.removeChild(styleTag);
|
|
86
|
+
});
|
|
87
|
+
this.mapStylesToParentDocument.delete(frameId);
|
|
88
|
+
}
|
|
89
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LibsUiDynamicComponentService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
90
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LibsUiDynamicComponentService, providedIn: 'root' });
|
|
91
|
+
}
|
|
92
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LibsUiDynamicComponentService, decorators: [{
|
|
93
|
+
type: Injectable,
|
|
94
|
+
args: [{
|
|
95
|
+
providedIn: 'root'
|
|
96
|
+
}]
|
|
97
|
+
}] });
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* Generated bundle index. Do not edit.
|
|
101
|
+
*/
|
|
102
|
+
|
|
103
|
+
export { LibsUiDynamicComponentService };
|
|
104
|
+
//# sourceMappingURL=libs-ui-services-dynamic-component.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"libs-ui-services-dynamic-component.mjs","sources":["../../../../../libs-ui/services/dynamic-component/src/dynamic-component.service.ts","../../../../../libs-ui/services/dynamic-component/src/libs-ui-services-dynamic-component.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { ApplicationRef, ComponentRef, EmbeddedViewRef, Injectable, createComponent, inject } from '@angular/core';\nimport { uuid } from '@libs-ui/utils';\n@Injectable({\n providedIn: 'root'\n})\n\nexport class LibsUiDynamicComponentService {\n private elementLayoutContent!: HTMLElement | null;\n private elementBody!: HTMLElement | null;\n private mapStylesToParentDocument: Map<string, Array<Node>> = new Map();\n private appRef = inject(ApplicationRef);\n\n public resolveComponentFactory(component: any): ComponentRef<any> {\n return createComponent(component, { environmentInjector: this.appRef.injector });\n }\n\n public addToBody(componentRef: any, isAddParentDocument?: boolean): string {\n if (!componentRef || !componentRef.hostView) {\n return '';\n }\n\n this.appRef.attachView(componentRef.hostView);\n const domElem = (componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\n\n if (isAddParentDocument) {\n window.parent.document.body.appendChild(domElem);\n\n return this.updateStyleToParentDocument();\n }\n if (!this.elementBody) {\n this.elementBody = document.body;\n }\n this.elementBody.appendChild(domElem);\n\n return '';\n }\n\n public addToElement(componentRef: any, elementAdd: any) {\n if (!componentRef || !componentRef.hostView || !elementAdd) {\n return;\n }\n this.appRef.attachView(componentRef.hostView);\n const domElem = (componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\n\n return elementAdd.appendChild(domElem);\n }\n\n public addToIdAttributeElement(componentRef: any, id: string) {\n if (!this.elementLayoutContent) {\n this.elementLayoutContent = document.getElementById(id);\n }\n if (!componentRef || !componentRef.hostView) {\n return;\n }\n this.appRef.attachView(componentRef.hostView);\n const domElem = (componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\n\n return this.elementLayoutContent?.appendChild(domElem);\n }\n\n public remove(componentRef: any, frameId = '', ignoreDestroyComponent?: boolean) {\n if (!componentRef) {\n return;\n }\n this.removeStyleToParentDocument(frameId);\n if (componentRef.hostView) {\n this.appRef.detachView(componentRef.hostView);\n }\n if (!ignoreDestroyComponent && componentRef.destroy) {\n componentRef.destroy();\n }\n }\n\n private updateStyleToParentDocument(): string {\n const frameId = uuid();\n const documentParent = window.parent.document;\n\n if (documentParent && !this.mapStylesToParentDocument.has(frameId)) {\n const styleTags = new Array<Node>();\n\n Array.from(document.head.querySelectorAll(\"style\")).forEach(styleTag => {\n const cloneStyleTag = styleTag.cloneNode(true);\n\n styleTags.push(cloneStyleTag);\n documentParent?.head.appendChild(cloneStyleTag);\n });\n this.mapStylesToParentDocument.set(frameId, styleTags);\n }\n\n return frameId;\n }\n\n private removeStyleToParentDocument(frameId: string) {\n if (!frameId) {\n return;\n }\n const styleTagsPopup = this.mapStylesToParentDocument.get(frameId);\n const documentParent = window.parent.document;\n\n if (!styleTagsPopup || !styleTagsPopup.length || !documentParent) {\n return;\n }\n styleTagsPopup.forEach(styleTag => {\n documentParent?.head.removeChild(styleTag);\n });\n this.mapStylesToParentDocument.delete(frameId);\n }\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
package/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './dynamic-component.service';
|
package/package.json
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@libs-ui/services-dynamic-component",
|
|
3
|
+
"version": "0.2.5",
|
|
4
|
+
"peerDependencies": {
|
|
5
|
+
"@angular/common": "^18.2.0",
|
|
6
|
+
"@angular/core": "^18.2.0"
|
|
7
|
+
},
|
|
8
|
+
"sideEffects": false,
|
|
9
|
+
"module": "fesm2022/libs-ui-services-dynamic-component.mjs",
|
|
10
|
+
"typings": "index.d.ts",
|
|
11
|
+
"exports": {
|
|
12
|
+
"./package.json": {
|
|
13
|
+
"default": "./package.json"
|
|
14
|
+
},
|
|
15
|
+
".": {
|
|
16
|
+
"types": "./index.d.ts",
|
|
17
|
+
"esm2022": "./esm2022/libs-ui-services-dynamic-component.mjs",
|
|
18
|
+
"esm": "./esm2022/libs-ui-services-dynamic-component.mjs",
|
|
19
|
+
"default": "./fesm2022/libs-ui-services-dynamic-component.mjs"
|
|
20
|
+
}
|
|
21
|
+
},
|
|
22
|
+
"dependencies": {
|
|
23
|
+
"tslib": "^2.3.0"
|
|
24
|
+
}
|
|
25
|
+
}
|