angular-three 2.3.0 → 2.4.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/LICENSE +21 -0
- package/esm2022/lib/canvas.mjs +3 -3
- package/esm2022/lib/directives/args.mjs +3 -3
- package/esm2022/lib/directives/selection.mjs +6 -6
- package/esm2022/lib/html.mjs +3 -3
- package/esm2022/lib/pipes/hexify.mjs +42 -23
- package/esm2022/lib/portal.mjs +9 -9
- package/esm2022/lib/renderer/index.mjs +3 -3
- package/esm2022/lib/roots.mjs +4 -2
- package/esm2022/lib/routed-scene.mjs +3 -3
- package/esm2022/lib/utils/object-events.mjs +3 -3
- package/esm2022/nativescript/lib/canvas.mjs +3 -3
- package/esm2022/testing/lib/test-canvas.mjs +3 -3
- package/fesm2022/angular-three-nativescript.mjs +3 -3
- package/fesm2022/angular-three-testing.mjs +3 -3
- package/fesm2022/angular-three.mjs +78 -57
- package/fesm2022/angular-three.mjs.map +1 -1
- package/lib/pipes/hexify.d.ts +1 -0
- package/metadata.json +1 -1
- package/package.json +3 -3
- package/web-types.json +1 -1
|
@@ -103,14 +103,14 @@ class NgtCanvasNative {
|
|
|
103
103
|
});
|
|
104
104
|
this.glRef.changeDetectorRef.detectChanges();
|
|
105
105
|
}
|
|
106
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
107
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.
|
|
106
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgtCanvasNative, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
107
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.6", type: NgtCanvasNative, isStandalone: true, selector: "NgtCanvas", inputs: { sceneGraph: { classPropertyName: "sceneGraph", publicName: "sceneGraph", isSignal: true, isRequired: true, transformFunction: null }, gl: { classPropertyName: "gl", publicName: "gl", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, shadows: { classPropertyName: "shadows", publicName: "shadows", isSignal: true, isRequired: false, transformFunction: null }, legacy: { classPropertyName: "legacy", publicName: "legacy", isSignal: true, isRequired: false, transformFunction: null }, linear: { classPropertyName: "linear", publicName: "linear", isSignal: true, isRequired: false, transformFunction: null }, flat: { classPropertyName: "flat", publicName: "flat", isSignal: true, isRequired: false, transformFunction: null }, orthographic: { classPropertyName: "orthographic", publicName: "orthographic", isSignal: true, isRequired: false, transformFunction: null }, frameloop: { classPropertyName: "frameloop", publicName: "frameloop", isSignal: true, isRequired: false, transformFunction: null }, performance: { classPropertyName: "performance", publicName: "performance", isSignal: true, isRequired: false, transformFunction: null }, dpr: { classPropertyName: "dpr", publicName: "dpr", isSignal: true, isRequired: false, transformFunction: null }, raycaster: { classPropertyName: "raycaster", publicName: "raycaster", isSignal: true, isRequired: false, transformFunction: null }, scene: { classPropertyName: "scene", publicName: "scene", isSignal: true, isRequired: false, transformFunction: null }, camera: { classPropertyName: "camera", publicName: "camera", isSignal: true, isRequired: false, transformFunction: null }, lookAt: { classPropertyName: "lookAt", publicName: "lookAt", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { created: "created" }, providers: [{ provide: DOCUMENT, useValue: document }, provideStore()], viewQueries: [{ propertyName: "canvasViewContainerRef", first: true, predicate: ["canvas"], descendants: true, read: ViewContainerRef, isSignal: true }], ngImport: i0, template: `
|
|
108
108
|
<GridLayout>
|
|
109
109
|
<Canvas #canvas style="width: 100%; height: auto" (ready)="onReady($event)"></Canvas>
|
|
110
110
|
</GridLayout>
|
|
111
111
|
`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
112
112
|
}
|
|
113
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
113
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgtCanvasNative, decorators: [{
|
|
114
114
|
type: Component,
|
|
115
115
|
args: [{
|
|
116
116
|
selector: 'NgtCanvas',
|
|
@@ -32,10 +32,10 @@ class NgtTestCanvas {
|
|
|
32
32
|
this.environmentInjector?.destroy();
|
|
33
33
|
this.ref?.destroy();
|
|
34
34
|
}
|
|
35
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
36
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.
|
|
35
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgtTestCanvas, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
36
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.6", type: NgtTestCanvas, isStandalone: true, selector: "ngt-test-canvas", inputs: { sceneGraph: { classPropertyName: "sceneGraph", publicName: "sceneGraph", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
37
37
|
}
|
|
38
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
38
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgtTestCanvas, decorators: [{
|
|
39
39
|
type: Component,
|
|
40
40
|
args: [{
|
|
41
41
|
selector: 'ngt-test-canvas',
|
|
@@ -810,10 +810,10 @@ class NgtArgs {
|
|
|
810
810
|
this.view = this.vcr.createEmbeddedView(this.template);
|
|
811
811
|
this.view.detectChanges();
|
|
812
812
|
}
|
|
813
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
814
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.
|
|
813
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgtArgs, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
814
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.6", type: NgtArgs, isStandalone: true, selector: "ng-template[args]", inputs: { args: { classPropertyName: "args", publicName: "args", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0 }); }
|
|
815
815
|
}
|
|
816
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
816
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgtArgs, decorators: [{
|
|
817
817
|
type: Directive,
|
|
818
818
|
args: [{ selector: 'ng-template[args]', standalone: true }]
|
|
819
819
|
}], ctorParameters: () => [] });
|
|
@@ -1602,10 +1602,10 @@ class NgtRendererFactory {
|
|
|
1602
1602
|
}
|
|
1603
1603
|
return renderer;
|
|
1604
1604
|
}
|
|
1605
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
1606
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.
|
|
1605
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgtRendererFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1606
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgtRendererFactory }); }
|
|
1607
1607
|
}
|
|
1608
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
1608
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgtRendererFactory, decorators: [{
|
|
1609
1609
|
type: Injectable
|
|
1610
1610
|
}] });
|
|
1611
1611
|
class NgtRenderer {
|
|
@@ -2317,7 +2317,9 @@ function injectCanvasRootInitializer(injector) {
|
|
|
2317
2317
|
if (state.flat !== flat)
|
|
2318
2318
|
stateToUpdate.flat = flat;
|
|
2319
2319
|
// Set gl props
|
|
2320
|
-
gl.setClearAlpha
|
|
2320
|
+
if (gl.setClearAlpha) {
|
|
2321
|
+
gl.setClearAlpha(0);
|
|
2322
|
+
}
|
|
2321
2323
|
gl.setPixelRatio(makeDpr(state.viewport.dpr));
|
|
2322
2324
|
gl.setSize(state.size.width, state.size.height);
|
|
2323
2325
|
if (is.obj(glOptions) &&
|
|
@@ -2384,12 +2386,12 @@ class NgtRoutedScene {
|
|
|
2384
2386
|
.pipe(filter((event) => event instanceof ActivationEnd), takeUntilDestroyed())
|
|
2385
2387
|
.subscribe(cdr.detectChanges.bind(cdr));
|
|
2386
2388
|
}
|
|
2387
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
2388
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.
|
|
2389
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgtRoutedScene, deps: [{ token: i1.Router }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2390
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.6", type: NgtRoutedScene, isStandalone: true, selector: "ngt-routed-scene", ngImport: i0, template: `
|
|
2389
2391
|
<router-outlet />
|
|
2390
2392
|
`, isInline: true, dependencies: [{ kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }] }); }
|
|
2391
2393
|
}
|
|
2392
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
2394
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgtRoutedScene, decorators: [{
|
|
2393
2395
|
type: Component,
|
|
2394
2396
|
args: [{
|
|
2395
2397
|
standalone: true,
|
|
@@ -2531,8 +2533,8 @@ class NgtCanvas {
|
|
|
2531
2533
|
});
|
|
2532
2534
|
this.glRef.changeDetectorRef.detectChanges();
|
|
2533
2535
|
}
|
|
2534
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
2535
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.
|
|
2536
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgtCanvas, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2537
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.6", type: NgtCanvas, isStandalone: true, selector: "ngt-canvas", inputs: { sceneGraph: { classPropertyName: "sceneGraph", publicName: "sceneGraph", isSignal: true, isRequired: true, transformFunction: null }, gl: { classPropertyName: "gl", publicName: "gl", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, shadows: { classPropertyName: "shadows", publicName: "shadows", isSignal: true, isRequired: false, transformFunction: null }, legacy: { classPropertyName: "legacy", publicName: "legacy", isSignal: true, isRequired: false, transformFunction: null }, linear: { classPropertyName: "linear", publicName: "linear", isSignal: true, isRequired: false, transformFunction: null }, flat: { classPropertyName: "flat", publicName: "flat", isSignal: true, isRequired: false, transformFunction: null }, orthographic: { classPropertyName: "orthographic", publicName: "orthographic", isSignal: true, isRequired: false, transformFunction: null }, frameloop: { classPropertyName: "frameloop", publicName: "frameloop", isSignal: true, isRequired: false, transformFunction: null }, performance: { classPropertyName: "performance", publicName: "performance", isSignal: true, isRequired: false, transformFunction: null }, dpr: { classPropertyName: "dpr", publicName: "dpr", isSignal: true, isRequired: false, transformFunction: null }, raycaster: { classPropertyName: "raycaster", publicName: "raycaster", isSignal: true, isRequired: false, transformFunction: null }, scene: { classPropertyName: "scene", publicName: "scene", isSignal: true, isRequired: false, transformFunction: null }, camera: { classPropertyName: "camera", publicName: "camera", isSignal: true, isRequired: false, transformFunction: null }, events: { classPropertyName: "events", publicName: "events", isSignal: true, isRequired: false, transformFunction: null }, eventSource: { classPropertyName: "eventSource", publicName: "eventSource", isSignal: true, isRequired: false, transformFunction: null }, eventPrefix: { classPropertyName: "eventPrefix", publicName: "eventPrefix", isSignal: true, isRequired: false, transformFunction: null }, lookAt: { classPropertyName: "lookAt", publicName: "lookAt", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { created: "created", pointerMissed: "pointerMissed" }, host: { properties: { "style.pointerEvents": "hbPointerEvents()" }, styleAttribute: "display: block;position: relative;width: 100%;height: 100%;overflow: hidden;" }, providers: [
|
|
2536
2538
|
provideResizeOptions({
|
|
2537
2539
|
emitInZone: false,
|
|
2538
2540
|
emitInitialResult: true,
|
|
@@ -2545,7 +2547,7 @@ class NgtCanvas {
|
|
|
2545
2547
|
</div>
|
|
2546
2548
|
`, isInline: true, dependencies: [{ kind: "directive", type: NgxResize, selector: "[ngxResize]", inputs: ["ngxResizeOptions"], outputs: ["ngxResize"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
2547
2549
|
}
|
|
2548
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
2550
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgtCanvas, decorators: [{
|
|
2549
2551
|
type: Component,
|
|
2550
2552
|
args: [{
|
|
2551
2553
|
selector: 'ngt-canvas',
|
|
@@ -2583,10 +2585,10 @@ class NgtSelection {
|
|
|
2583
2585
|
return;
|
|
2584
2586
|
this.source.update(...args);
|
|
2585
2587
|
}
|
|
2586
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
2587
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.
|
|
2588
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgtSelection, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
2589
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.6", type: NgtSelection, isStandalone: true, selector: "[ngtSelection]", inputs: { enabled: { classPropertyName: "enabled", publicName: "ngtSelection", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }
|
|
2588
2590
|
}
|
|
2589
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
2591
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgtSelection, decorators: [{
|
|
2590
2592
|
type: Directive,
|
|
2591
2593
|
args: [{ standalone: true, selector: '[ngtSelection]' }]
|
|
2592
2594
|
}] });
|
|
@@ -2630,10 +2632,10 @@ class NgtSelect {
|
|
|
2630
2632
|
});
|
|
2631
2633
|
}, { allowSignalWrites: true });
|
|
2632
2634
|
}
|
|
2633
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
2634
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.
|
|
2635
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgtSelect, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
2636
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.6", type: NgtSelect, isStandalone: true, selector: "ngt-group[ngtSelect], ngt-mesh[ngtSelect]", inputs: { enabled: { classPropertyName: "enabled", publicName: "ngtSelect", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }
|
|
2635
2637
|
}
|
|
2636
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
2638
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgtSelect, decorators: [{
|
|
2637
2639
|
type: Directive,
|
|
2638
2640
|
args: [{ standalone: true, selector: 'ngt-group[ngtSelect], ngt-mesh[ngtSelect]' }]
|
|
2639
2641
|
}], ctorParameters: () => [] });
|
|
@@ -2667,10 +2669,10 @@ class NgtHTML {
|
|
|
2667
2669
|
delete this.host.nativeElement['__ngt_dom_parent__'];
|
|
2668
2670
|
});
|
|
2669
2671
|
}
|
|
2670
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
2671
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.
|
|
2672
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgtHTML, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
2673
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.6", type: NgtHTML, ngImport: i0 }); }
|
|
2672
2674
|
}
|
|
2673
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
2675
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgtHTML, decorators: [{
|
|
2674
2676
|
type: Directive
|
|
2675
2677
|
}], ctorParameters: () => [] });
|
|
2676
2678
|
|
|
@@ -2764,9 +2766,12 @@ _injectLoader.clear = (urls) => {
|
|
|
2764
2766
|
};
|
|
2765
2767
|
const injectLoader = _injectLoader;
|
|
2766
2768
|
|
|
2769
|
+
const RGBA_REGEX = /rgba?\((\d+),\s*(\d+),\s*(\d+),?\s*(\d*\.?\d+)?\)/;
|
|
2770
|
+
const DEFAULT_COLOR = 0x000000;
|
|
2767
2771
|
class NgtHexify {
|
|
2768
2772
|
constructor() {
|
|
2769
2773
|
this.document = inject(DOCUMENT, { optional: true });
|
|
2774
|
+
this.cache = {};
|
|
2770
2775
|
}
|
|
2771
2776
|
/**
|
|
2772
2777
|
* transforms a:
|
|
@@ -2780,38 +2785,54 @@ class NgtHexify {
|
|
|
2780
2785
|
*/
|
|
2781
2786
|
transform(value) {
|
|
2782
2787
|
if (value == null)
|
|
2783
|
-
return
|
|
2788
|
+
return DEFAULT_COLOR;
|
|
2784
2789
|
if (value.startsWith('#')) {
|
|
2785
|
-
|
|
2790
|
+
if (!this.cache[value]) {
|
|
2791
|
+
this.cache[value] = this.hexStringToNumber(value);
|
|
2792
|
+
}
|
|
2793
|
+
return this.cache[value];
|
|
2786
2794
|
}
|
|
2787
2795
|
if (!this.ctx) {
|
|
2788
2796
|
this.ctx = this.document?.createElement('canvas').getContext('2d');
|
|
2789
2797
|
}
|
|
2790
|
-
if (!this.ctx)
|
|
2791
|
-
|
|
2798
|
+
if (!this.ctx) {
|
|
2799
|
+
console.warn('[NGT] hexify: canvas context is not available');
|
|
2800
|
+
return DEFAULT_COLOR;
|
|
2801
|
+
}
|
|
2792
2802
|
this.ctx.fillStyle = value;
|
|
2793
2803
|
const computedValue = this.ctx.fillStyle;
|
|
2794
2804
|
if (computedValue.startsWith('#')) {
|
|
2795
|
-
|
|
2796
|
-
|
|
2797
|
-
|
|
2798
|
-
return
|
|
2799
|
-
|
|
2800
|
-
|
|
2801
|
-
|
|
2802
|
-
return
|
|
2805
|
+
if (!this.cache[computedValue]) {
|
|
2806
|
+
this.cache[computedValue] = this.hexStringToNumber(computedValue);
|
|
2807
|
+
}
|
|
2808
|
+
return this.cache[computedValue];
|
|
2809
|
+
}
|
|
2810
|
+
if (!computedValue.startsWith('rgba')) {
|
|
2811
|
+
console.warn(`[NGT] hexify: invalid color format. Expected rgba or hex, receive: ${computedValue}`);
|
|
2812
|
+
return DEFAULT_COLOR;
|
|
2813
|
+
}
|
|
2814
|
+
const match = computedValue.match(RGBA_REGEX);
|
|
2815
|
+
if (!match) {
|
|
2816
|
+
console.warn(`[NGT] hexify: invalid color format. Expected rgba or hex, receive: ${computedValue}`);
|
|
2817
|
+
return DEFAULT_COLOR;
|
|
2818
|
+
}
|
|
2803
2819
|
const r = parseInt(match[1], 10);
|
|
2804
2820
|
const g = parseInt(match[2], 10);
|
|
2805
2821
|
const b = parseInt(match[3], 10);
|
|
2806
2822
|
const a = match[4] ? parseFloat(match[4]) : 1.0;
|
|
2807
|
-
|
|
2808
|
-
|
|
2809
|
-
|
|
2810
|
-
|
|
2811
|
-
|
|
2812
|
-
|
|
2813
|
-
|
|
2814
|
-
|
|
2823
|
+
const cacheKey = `${r}:${g}:${b}:${a}`;
|
|
2824
|
+
// check result from cache
|
|
2825
|
+
if (!this.cache[cacheKey]) {
|
|
2826
|
+
// Convert the components to hex strings
|
|
2827
|
+
const hexR = this.componentToHex(r);
|
|
2828
|
+
const hexG = this.componentToHex(g);
|
|
2829
|
+
const hexB = this.componentToHex(b);
|
|
2830
|
+
const hexA = this.componentToHex(Math.round(a * 255));
|
|
2831
|
+
// Combine the hex components into a single hex string
|
|
2832
|
+
const hex = `#${hexR}${hexG}${hexB}${hexA}`;
|
|
2833
|
+
this.cache[cacheKey] = this.hexStringToNumber(hex);
|
|
2834
|
+
}
|
|
2835
|
+
return this.cache[cacheKey];
|
|
2815
2836
|
}
|
|
2816
2837
|
hexStringToNumber(hexString) {
|
|
2817
2838
|
return parseInt(hexString.replace('#', ''), 16);
|
|
@@ -2820,10 +2841,10 @@ class NgtHexify {
|
|
|
2820
2841
|
const hex = component.toString(16);
|
|
2821
2842
|
return hex.length === 1 ? '0' + hex : hex;
|
|
2822
2843
|
}
|
|
2823
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
2824
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.
|
|
2844
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgtHexify, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
2845
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.6", ngImport: i0, type: NgtHexify, isStandalone: true, name: "hexify" }); }
|
|
2825
2846
|
}
|
|
2826
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
2847
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgtHexify, decorators: [{
|
|
2827
2848
|
type: Pipe,
|
|
2828
2849
|
args: [{ name: 'hexify', pure: true, standalone: true }]
|
|
2829
2850
|
}] });
|
|
@@ -2859,13 +2880,13 @@ class NgtPortalBeforeRender {
|
|
|
2859
2880
|
onPointerOver() {
|
|
2860
2881
|
/* noop */
|
|
2861
2882
|
}
|
|
2862
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
2863
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.
|
|
2883
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgtPortalBeforeRender, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2884
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.6", type: NgtPortalBeforeRender, isStandalone: true, selector: "ngt-portal-before-render", inputs: { renderPriority: { classPropertyName: "renderPriority", publicName: "renderPriority", isSignal: true, isRequired: false, transformFunction: null }, parentScene: { classPropertyName: "parentScene", publicName: "parentScene", isSignal: true, isRequired: true, transformFunction: null }, parentCamera: { classPropertyName: "parentCamera", publicName: "parentCamera", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: `
|
|
2864
2885
|
<!-- Without an element that receives pointer events state.pointer will always be 0/0 -->
|
|
2865
2886
|
<ngt-group (pointerover)="onPointerOver()" attach="none" />
|
|
2866
2887
|
`, isInline: true }); }
|
|
2867
2888
|
}
|
|
2868
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
2889
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgtPortalBeforeRender, decorators: [{
|
|
2869
2890
|
type: Component,
|
|
2870
2891
|
args: [{
|
|
2871
2892
|
selector: 'ngt-portal-before-render',
|
|
@@ -2890,10 +2911,10 @@ class NgtPortalContent {
|
|
|
2890
2911
|
static ngTemplateContextGuard(_, ctx) {
|
|
2891
2912
|
return true;
|
|
2892
2913
|
}
|
|
2893
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
2894
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.
|
|
2914
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgtPortalContent, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
2915
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.6", type: NgtPortalContent, isStandalone: true, selector: "ng-template[portalContent]", ngImport: i0 }); }
|
|
2895
2916
|
}
|
|
2896
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
2917
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgtPortalContent, decorators: [{
|
|
2897
2918
|
type: Directive,
|
|
2898
2919
|
args: [{ selector: 'ng-template[portalContent]', standalone: true }]
|
|
2899
2920
|
}], ctorParameters: () => [] });
|
|
@@ -3003,8 +3024,8 @@ class NgtPortal {
|
|
|
3003
3024
|
...rest,
|
|
3004
3025
|
};
|
|
3005
3026
|
}
|
|
3006
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
3007
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.
|
|
3027
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgtPortal, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3028
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.6", type: NgtPortal, isStandalone: true, selector: "ngt-portal", inputs: { container: { classPropertyName: "container", publicName: "container", isSignal: true, isRequired: true, transformFunction: null }, state: { classPropertyName: "state", publicName: "state", isSignal: true, isRequired: false, transformFunction: null }, autoRender: { classPropertyName: "autoRender", publicName: "autoRender", isSignal: true, isRequired: false, transformFunction: null }, autoRenderPriority: { classPropertyName: "autoRenderPriority", publicName: "autoRenderPriority", isSignal: true, isRequired: false, transformFunction: null } }, providers: [provideStore(() => signalStore({}))], queries: [{ propertyName: "portalContent", first: true, predicate: NgtPortalContent, descendants: true, read: TemplateRef, isSignal: true }], viewQueries: [{ propertyName: "portalAnchor", first: true, predicate: ["anchor"], descendants: true, read: ViewContainerRef, isSignal: true }], ngImport: i0, template: `
|
|
3008
3029
|
<ng-container #anchor />
|
|
3009
3030
|
|
|
3010
3031
|
@if (renderAutoBeforeRender()) {
|
|
@@ -3016,7 +3037,7 @@ class NgtPortal {
|
|
|
3016
3037
|
}
|
|
3017
3038
|
`, isInline: true, dependencies: [{ kind: "component", type: NgtPortalBeforeRender, selector: "ngt-portal-before-render", inputs: ["renderPriority", "parentScene", "parentCamera"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
3018
3039
|
}
|
|
3019
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
3040
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgtPortal, decorators: [{
|
|
3020
3041
|
type: Component,
|
|
3021
3042
|
args: [{
|
|
3022
3043
|
selector: 'ngt-portal',
|
|
@@ -3091,10 +3112,10 @@ class NgtObjectEvents {
|
|
|
3091
3112
|
emitEvent(eventName) {
|
|
3092
3113
|
return this[eventName].emit.bind(this[eventName]);
|
|
3093
3114
|
}
|
|
3094
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
3095
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.
|
|
3115
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgtObjectEvents, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
3116
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.6", type: NgtObjectEvents, isStandalone: true, selector: "[ngtObjectEvents]", inputs: { ngtObjectEvents: { classPropertyName: "ngtObjectEvents", publicName: "ngtObjectEvents", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { click: "click", dblclick: "dblclick", contextmenu: "contextmenu", pointerup: "pointerup", pointerdown: "pointerdown", pointerover: "pointerover", pointerout: "pointerout", pointerenter: "pointerenter", pointerleave: "pointerleave", pointermove: "pointermove", pointermissed: "pointermissed", pointercancel: "pointercancel", wheel: "wheel", ngtObjectEvents: "ngtObjectEventsChange" }, ngImport: i0 }); }
|
|
3096
3117
|
}
|
|
3097
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
3118
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgtObjectEvents, decorators: [{
|
|
3098
3119
|
type: Directive,
|
|
3099
3120
|
args: [{ standalone: true, selector: '[ngtObjectEvents]' }]
|
|
3100
3121
|
}], ctorParameters: () => [] });
|