@tethys/cdk 18.0.5 → 18.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.
- package/dom/index.d.ts +2 -0
- package/dom/stealth-view-directive.d.ts +9 -0
- package/dom/stealth-view-renderer.d.ts +5 -0
- package/esm2022/dom/index.mjs +3 -1
- package/esm2022/dom/stealth-view-directive.mjs +19 -0
- package/esm2022/dom/stealth-view-renderer.mjs +21 -0
- package/fesm2022/tethys-cdk-dom.mjs +38 -2
- package/fesm2022/tethys-cdk-dom.mjs.map +1 -1
- package/package.json +1 -1
package/dom/index.d.ts
CHANGED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
export declare class ThyStealthViewDirective {
|
|
3
|
+
private templateRef;
|
|
4
|
+
private stealthViewBehavior;
|
|
5
|
+
get rootNodes(): Node[];
|
|
6
|
+
constructor();
|
|
7
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ThyStealthViewDirective, never>;
|
|
8
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<ThyStealthViewDirective, "ng-template[thyStealthView]", ["thyStealthView"], {}, {}, never, never, true, never>;
|
|
9
|
+
}
|
package/esm2022/dom/index.mjs
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
export * from './abstract-element-renderer';
|
|
2
2
|
export * from './element-renderer';
|
|
3
3
|
export * from './host-renderer';
|
|
4
|
-
|
|
4
|
+
export * from './stealth-view-renderer';
|
|
5
|
+
export * from './stealth-view-directive';
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9jZGsvZG9tL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYywwQkFBMEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYWJzdHJhY3QtZWxlbWVudC1yZW5kZXJlcic7XG5leHBvcnQgKiBmcm9tICcuL2VsZW1lbnQtcmVuZGVyZXInO1xuZXhwb3J0ICogZnJvbSAnLi9ob3N0LXJlbmRlcmVyJztcbmV4cG9ydCAqIGZyb20gJy4vc3RlYWx0aC12aWV3LXJlbmRlcmVyJztcbmV4cG9ydCAqIGZyb20gJy4vc3RlYWx0aC12aWV3LWRpcmVjdGl2ZSc7XG4iXX0=
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Directive, inject, TemplateRef } from '@angular/core';
|
|
2
|
+
import { useStealthViewRenderer } from './stealth-view-renderer';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class ThyStealthViewDirective {
|
|
5
|
+
get rootNodes() {
|
|
6
|
+
return this.stealthViewBehavior.rootNodes;
|
|
7
|
+
}
|
|
8
|
+
constructor() {
|
|
9
|
+
this.templateRef = inject((TemplateRef));
|
|
10
|
+
this.stealthViewBehavior = useStealthViewRenderer(this.templateRef);
|
|
11
|
+
}
|
|
12
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyStealthViewDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
13
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.0", type: ThyStealthViewDirective, isStandalone: true, selector: "ng-template[thyStealthView]", exportAs: ["thyStealthView"], ngImport: i0 }); }
|
|
14
|
+
}
|
|
15
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyStealthViewDirective, decorators: [{
|
|
16
|
+
type: Directive,
|
|
17
|
+
args: [{ selector: 'ng-template[thyStealthView]', standalone: true, exportAs: 'thyStealthView' }]
|
|
18
|
+
}], ctorParameters: () => [] });
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlYWx0aC12aWV3LWRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2Nkay9kb20vc3RlYWx0aC12aWV3LWRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0QsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0seUJBQXlCLENBQUM7O0FBR2pFLE1BQU0sT0FBTyx1QkFBdUI7SUFLaEMsSUFBSSxTQUFTO1FBQ1QsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsU0FBUyxDQUFDO0lBQzlDLENBQUM7SUFFRDtRQVJRLGdCQUFXLEdBQUcsTUFBTSxDQUFDLENBQUEsV0FBZ0IsQ0FBQSxDQUFDLENBQUM7UUFFdkMsd0JBQW1CLEdBQUcsc0JBQXNCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBTXhELENBQUM7OEdBVFAsdUJBQXVCO2tHQUF2Qix1QkFBdUI7OzJGQUF2Qix1QkFBdUI7a0JBRG5DLFNBQVM7bUJBQUMsRUFBRSxRQUFRLEVBQUUsNkJBQTZCLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIGluamVjdCwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHVzZVN0ZWFsdGhWaWV3UmVuZGVyZXIgfSBmcm9tICcuL3N0ZWFsdGgtdmlldy1yZW5kZXJlcic7XG5cbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogJ25nLXRlbXBsYXRlW3RoeVN0ZWFsdGhWaWV3XScsIHN0YW5kYWxvbmU6IHRydWUsIGV4cG9ydEFzOiAndGh5U3RlYWx0aFZpZXcnIH0pXG5leHBvcnQgY2xhc3MgVGh5U3RlYWx0aFZpZXdEaXJlY3RpdmUge1xuICAgIHByaXZhdGUgdGVtcGxhdGVSZWYgPSBpbmplY3QoVGVtcGxhdGVSZWY8YW55Pik7XG5cbiAgICBwcml2YXRlIHN0ZWFsdGhWaWV3QmVoYXZpb3IgPSB1c2VTdGVhbHRoVmlld1JlbmRlcmVyKHRoaXMudGVtcGxhdGVSZWYpO1xuXG4gICAgZ2V0IHJvb3ROb2RlcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RlYWx0aFZpZXdCZWhhdmlvci5yb290Tm9kZXM7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoKSB7fVxufVxuIl19
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { ApplicationRef, DestroyRef, inject, Injector, isSignal } from '@angular/core';
|
|
2
|
+
export function useStealthViewRenderer(templateRefInput) {
|
|
3
|
+
const injector = inject(Injector);
|
|
4
|
+
const applicationRef = inject(ApplicationRef);
|
|
5
|
+
const destroyRef = inject(DestroyRef);
|
|
6
|
+
let embeddedViewRef;
|
|
7
|
+
destroyRef.onDestroy(() => {
|
|
8
|
+
if (embeddedViewRef) {
|
|
9
|
+
embeddedViewRef.destroy();
|
|
10
|
+
applicationRef.detachView(embeddedViewRef);
|
|
11
|
+
}
|
|
12
|
+
});
|
|
13
|
+
if (!embeddedViewRef) {
|
|
14
|
+
const templateRef = isSignal(templateRefInput) ? templateRefInput() : templateRefInput;
|
|
15
|
+
embeddedViewRef = templateRef.createEmbeddedView({}, injector);
|
|
16
|
+
applicationRef.attachView(embeddedViewRef);
|
|
17
|
+
}
|
|
18
|
+
const rootNodes = embeddedViewRef.rootNodes;
|
|
19
|
+
return { rootNodes };
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlYWx0aC12aWV3LXJlbmRlcmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vY2RrL2RvbS9zdGVhbHRoLXZpZXctcmVuZGVyZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxVQUFVLEVBQThCLE1BQU0sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUF1QixNQUFNLGVBQWUsQ0FBQztBQU14SSxNQUFNLFVBQVUsc0JBQXNCLENBQUMsZ0JBQTZEO0lBQ2hHLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNsQyxNQUFNLGNBQWMsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDOUMsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBRXRDLElBQUksZUFBcUMsQ0FBQztJQUUxQyxVQUFVLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtRQUN0QixJQUFJLGVBQWUsRUFBRSxDQUFDO1lBQ2xCLGVBQWUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUMxQixjQUFjLENBQUMsVUFBVSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQy9DLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUVILElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUNuQixNQUFNLFdBQVcsR0FBRyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUM7UUFDdkYsZUFBZSxHQUFHLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDL0QsY0FBYyxDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBQ0QsTUFBTSxTQUFTLEdBQUcsZUFBZSxDQUFDLFNBQVMsQ0FBQztJQUM1QyxPQUFPLEVBQUUsU0FBUyxFQUFFLENBQUM7QUFDekIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFwcGxpY2F0aW9uUmVmLCBEZXN0cm95UmVmLCBEaXJlY3RpdmUsIEVtYmVkZGVkVmlld1JlZiwgaW5qZWN0LCBJbmplY3RvciwgaXNTaWduYWwsIFNpZ25hbCwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGludGVyZmFjZSBTdGVhbHRoVmlld1JlbmRlcmVyIHtcbiAgICByb290Tm9kZXM6IE5vZGVbXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVzZVN0ZWFsdGhWaWV3UmVuZGVyZXIodGVtcGxhdGVSZWZJbnB1dDogU2lnbmFsPFRlbXBsYXRlUmVmPGFueT4+IHwgVGVtcGxhdGVSZWY8YW55Pik6IFN0ZWFsdGhWaWV3UmVuZGVyZXIge1xuICAgIGNvbnN0IGluamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcbiAgICBjb25zdCBhcHBsaWNhdGlvblJlZiA9IGluamVjdChBcHBsaWNhdGlvblJlZik7XG4gICAgY29uc3QgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblxuICAgIGxldCBlbWJlZGRlZFZpZXdSZWY6IEVtYmVkZGVkVmlld1JlZjxhbnk+O1xuXG4gICAgZGVzdHJveVJlZi5vbkRlc3Ryb3koKCkgPT4ge1xuICAgICAgICBpZiAoZW1iZWRkZWRWaWV3UmVmKSB7XG4gICAgICAgICAgICBlbWJlZGRlZFZpZXdSZWYuZGVzdHJveSgpO1xuICAgICAgICAgICAgYXBwbGljYXRpb25SZWYuZGV0YWNoVmlldyhlbWJlZGRlZFZpZXdSZWYpO1xuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICBpZiAoIWVtYmVkZGVkVmlld1JlZikge1xuICAgICAgICBjb25zdCB0ZW1wbGF0ZVJlZiA9IGlzU2lnbmFsKHRlbXBsYXRlUmVmSW5wdXQpID8gdGVtcGxhdGVSZWZJbnB1dCgpIDogdGVtcGxhdGVSZWZJbnB1dDtcbiAgICAgICAgZW1iZWRkZWRWaWV3UmVmID0gdGVtcGxhdGVSZWYuY3JlYXRlRW1iZWRkZWRWaWV3KHt9LCBpbmplY3Rvcik7XG4gICAgICAgIGFwcGxpY2F0aW9uUmVmLmF0dGFjaFZpZXcoZW1iZWRkZWRWaWV3UmVmKTtcbiAgICB9XG4gICAgY29uc3Qgcm9vdE5vZGVzID0gZW1iZWRkZWRWaWV3UmVmLnJvb3ROb2RlcztcbiAgICByZXR1cm4geyByb290Tm9kZXMgfTtcbn1cbiJdfQ==
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { inject, Renderer2, ElementRef, Injectable } from '@angular/core';
|
|
2
|
+
import { inject, Renderer2, ElementRef, Injectable, Injector, ApplicationRef, DestroyRef, isSignal, TemplateRef, Directive } from '@angular/core';
|
|
3
3
|
|
|
4
4
|
class AbstractElementRenderer {
|
|
5
5
|
constructor() {
|
|
@@ -89,9 +89,45 @@ function useHostRenderer() {
|
|
|
89
89
|
return new HostRenderer();
|
|
90
90
|
}
|
|
91
91
|
|
|
92
|
+
function useStealthViewRenderer(templateRefInput) {
|
|
93
|
+
const injector = inject(Injector);
|
|
94
|
+
const applicationRef = inject(ApplicationRef);
|
|
95
|
+
const destroyRef = inject(DestroyRef);
|
|
96
|
+
let embeddedViewRef;
|
|
97
|
+
destroyRef.onDestroy(() => {
|
|
98
|
+
if (embeddedViewRef) {
|
|
99
|
+
embeddedViewRef.destroy();
|
|
100
|
+
applicationRef.detachView(embeddedViewRef);
|
|
101
|
+
}
|
|
102
|
+
});
|
|
103
|
+
if (!embeddedViewRef) {
|
|
104
|
+
const templateRef = isSignal(templateRefInput) ? templateRefInput() : templateRefInput;
|
|
105
|
+
embeddedViewRef = templateRef.createEmbeddedView({}, injector);
|
|
106
|
+
applicationRef.attachView(embeddedViewRef);
|
|
107
|
+
}
|
|
108
|
+
const rootNodes = embeddedViewRef.rootNodes;
|
|
109
|
+
return { rootNodes };
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
class ThyStealthViewDirective {
|
|
113
|
+
get rootNodes() {
|
|
114
|
+
return this.stealthViewBehavior.rootNodes;
|
|
115
|
+
}
|
|
116
|
+
constructor() {
|
|
117
|
+
this.templateRef = inject((TemplateRef));
|
|
118
|
+
this.stealthViewBehavior = useStealthViewRenderer(this.templateRef);
|
|
119
|
+
}
|
|
120
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyStealthViewDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
121
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.0", type: ThyStealthViewDirective, isStandalone: true, selector: "ng-template[thyStealthView]", exportAs: ["thyStealthView"], ngImport: i0 }); }
|
|
122
|
+
}
|
|
123
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyStealthViewDirective, decorators: [{
|
|
124
|
+
type: Directive,
|
|
125
|
+
args: [{ selector: 'ng-template[thyStealthView]', standalone: true, exportAs: 'thyStealthView' }]
|
|
126
|
+
}], ctorParameters: () => [] });
|
|
127
|
+
|
|
92
128
|
/**
|
|
93
129
|
* Generated bundle index. Do not edit.
|
|
94
130
|
*/
|
|
95
131
|
|
|
96
|
-
export { AbstractElementRenderer, ElementRenderer, HostRenderer, useElementRenderer, useHostRenderer };
|
|
132
|
+
export { AbstractElementRenderer, ElementRenderer, HostRenderer, ThyStealthViewDirective, useElementRenderer, useHostRenderer, useStealthViewRenderer };
|
|
97
133
|
//# sourceMappingURL=tethys-cdk-dom.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tethys-cdk-dom.mjs","sources":["../../../cdk/dom/abstract-element-renderer.ts","../../../cdk/dom/element-renderer.ts","../../../cdk/dom/host-renderer.ts","../../../cdk/dom/tethys-cdk-dom.ts"],"sourcesContent":["import { Renderer2, inject, RendererStyleFlags2 } from '@angular/core';\n\nexport abstract class AbstractElementRenderer {\n private renderer = inject(Renderer2);\n\n protected abstract element: Element;\n\n private classNames: string[] = [];\n\n private get safeElement() {\n if (!this.element) {\n throw new Error(`Element is null, should call setElement method for ElementRenderer before update dom.`);\n }\n return this.element;\n }\n\n updateClass(classNames: string[]) {\n if (this.classNames) {\n this.classNames.forEach(className => {\n if (classNames.indexOf(className) < 0) {\n this.removeClass(className);\n }\n });\n }\n const newClasses: string[] = [];\n classNames.forEach(className => {\n if (className) {\n newClasses.push(className);\n if (this.classNames.indexOf(className) < 0) {\n this.addClass(className);\n }\n }\n });\n this.classNames = newClasses;\n return this;\n }\n\n updateClassByMap(classMap: Record<string, boolean>) {\n const newClasses = [];\n for (const key in classMap) {\n if (classMap.hasOwnProperty(key) && classMap[key]) {\n newClasses.push(key);\n }\n }\n this.updateClass(newClasses);\n }\n\n addClass(className: string) {\n this.renderer.addClass(this.safeElement, className);\n return this;\n }\n\n removeClass(className: string) {\n this.renderer.removeClass(this.safeElement, className);\n return this;\n }\n\n setStyle(style: string, value: any, flags?: RendererStyleFlags2) {\n this.renderer.setStyle(this.safeElement, style, value, flags);\n return this;\n }\n}\n","import { AbstractElementRenderer } from './abstract-element-renderer';\n\nexport class ElementRenderer extends AbstractElementRenderer {\n protected element: Element;\n\n setElement(element: Element) {\n this.element = element;\n }\n\n constructor(element: Element) {\n super();\n this.element = element;\n }\n}\n\nexport function useElementRenderer(element?: Element): ElementRenderer {\n return new ElementRenderer(element);\n}\n","import { Injectable, inject, ElementRef } from '@angular/core';\nimport { AbstractElementRenderer } from './abstract-element-renderer';\n\n/**\n * @private\n */\n@Injectable()\nexport class HostRenderer extends AbstractElementRenderer {\n private elementRef = inject(ElementRef);\n\n protected get element() {\n return this.elementRef.nativeElement;\n }\n}\n\nexport function useHostRenderer() {\n return new HostRenderer();\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"tethys-cdk-dom.mjs","sources":["../../../cdk/dom/abstract-element-renderer.ts","../../../cdk/dom/element-renderer.ts","../../../cdk/dom/host-renderer.ts","../../../cdk/dom/stealth-view-renderer.ts","../../../cdk/dom/stealth-view-directive.ts","../../../cdk/dom/tethys-cdk-dom.ts"],"sourcesContent":["import { Renderer2, inject, RendererStyleFlags2 } from '@angular/core';\n\nexport abstract class AbstractElementRenderer {\n private renderer = inject(Renderer2);\n\n protected abstract element: Element;\n\n private classNames: string[] = [];\n\n private get safeElement() {\n if (!this.element) {\n throw new Error(`Element is null, should call setElement method for ElementRenderer before update dom.`);\n }\n return this.element;\n }\n\n updateClass(classNames: string[]) {\n if (this.classNames) {\n this.classNames.forEach(className => {\n if (classNames.indexOf(className) < 0) {\n this.removeClass(className);\n }\n });\n }\n const newClasses: string[] = [];\n classNames.forEach(className => {\n if (className) {\n newClasses.push(className);\n if (this.classNames.indexOf(className) < 0) {\n this.addClass(className);\n }\n }\n });\n this.classNames = newClasses;\n return this;\n }\n\n updateClassByMap(classMap: Record<string, boolean>) {\n const newClasses = [];\n for (const key in classMap) {\n if (classMap.hasOwnProperty(key) && classMap[key]) {\n newClasses.push(key);\n }\n }\n this.updateClass(newClasses);\n }\n\n addClass(className: string) {\n this.renderer.addClass(this.safeElement, className);\n return this;\n }\n\n removeClass(className: string) {\n this.renderer.removeClass(this.safeElement, className);\n return this;\n }\n\n setStyle(style: string, value: any, flags?: RendererStyleFlags2) {\n this.renderer.setStyle(this.safeElement, style, value, flags);\n return this;\n }\n}\n","import { AbstractElementRenderer } from './abstract-element-renderer';\n\nexport class ElementRenderer extends AbstractElementRenderer {\n protected element: Element;\n\n setElement(element: Element) {\n this.element = element;\n }\n\n constructor(element: Element) {\n super();\n this.element = element;\n }\n}\n\nexport function useElementRenderer(element?: Element): ElementRenderer {\n return new ElementRenderer(element);\n}\n","import { Injectable, inject, ElementRef } from '@angular/core';\nimport { AbstractElementRenderer } from './abstract-element-renderer';\n\n/**\n * @private\n */\n@Injectable()\nexport class HostRenderer extends AbstractElementRenderer {\n private elementRef = inject(ElementRef);\n\n protected get element() {\n return this.elementRef.nativeElement;\n }\n}\n\nexport function useHostRenderer() {\n return new HostRenderer();\n}\n","import { ApplicationRef, DestroyRef, Directive, EmbeddedViewRef, inject, Injector, isSignal, Signal, TemplateRef } from '@angular/core';\n\nexport interface StealthViewRenderer {\n rootNodes: Node[];\n}\n\nexport function useStealthViewRenderer(templateRefInput: Signal<TemplateRef<any>> | TemplateRef<any>): StealthViewRenderer {\n const injector = inject(Injector);\n const applicationRef = inject(ApplicationRef);\n const destroyRef = inject(DestroyRef);\n\n let embeddedViewRef: EmbeddedViewRef<any>;\n\n destroyRef.onDestroy(() => {\n if (embeddedViewRef) {\n embeddedViewRef.destroy();\n applicationRef.detachView(embeddedViewRef);\n }\n });\n\n if (!embeddedViewRef) {\n const templateRef = isSignal(templateRefInput) ? templateRefInput() : templateRefInput;\n embeddedViewRef = templateRef.createEmbeddedView({}, injector);\n applicationRef.attachView(embeddedViewRef);\n }\n const rootNodes = embeddedViewRef.rootNodes;\n return { rootNodes };\n}\n","import { Directive, inject, TemplateRef } from '@angular/core';\nimport { useStealthViewRenderer } from './stealth-view-renderer';\n\n@Directive({ selector: 'ng-template[thyStealthView]', standalone: true, exportAs: 'thyStealthView' })\nexport class ThyStealthViewDirective {\n private templateRef = inject(TemplateRef<any>);\n\n private stealthViewBehavior = useStealthViewRenderer(this.templateRef);\n\n get rootNodes() {\n return this.stealthViewBehavior.rootNodes;\n }\n\n constructor() {}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|