Skip to content

Commit ed877f2

Browse files
committed
feat(soba/abstractions): expose NgtObjectEvents on Text
1 parent d82f49f commit ed877f2

File tree

2 files changed

+37
-14
lines changed

2 files changed

+37
-14
lines changed

libs/core/src/lib/utils/object-events.ts

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -20,19 +20,19 @@ import { resolveRef } from './resolve-ref';
2020
/**
2121
* As host directive:
2222
* - outputs: [
23-
* 'click',
24-
* 'dblclick',
25-
* 'contextmenu',
26-
* 'pointerup',
27-
* 'pointerdown',
28-
* 'pointerover',
29-
* 'pointerout',
30-
* 'pointerenter',
31-
* 'pointerleave',
32-
* 'pointermove',
33-
* 'pointermissed',
34-
* 'pointercancel',
35-
* 'wheel',
23+
'click',
24+
'dblclick',
25+
'contextmenu',
26+
'pointerup',
27+
'pointerdown',
28+
'pointerover',
29+
'pointerout',
30+
'pointerenter',
31+
'pointerleave',
32+
'pointermove',
33+
'pointermissed',
34+
'pointercancel',
35+
'wheel',
3636
* ]
3737
* - inputs: [
3838
* 'ngtObjectEvents'

libs/soba/abstractions/src/lib/text.ts

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import {
88
input,
99
output,
1010
} from '@angular/core';
11-
import { NgtArgs, NgtThreeElements, injectStore, omit, pick } from 'angular-three';
11+
import { NgtArgs, NgtObjectEvents, NgtThreeElements, injectStore, omit, pick } from 'angular-three';
1212
import { mergeInputs } from 'ngxtension/inject-inputs';
1313
import * as THREE from 'three';
1414
// @ts-expect-error - no type def
@@ -74,6 +74,26 @@ const defaultOptions: NgtsTextOptions = {
7474
imports: [NgtArgs],
7575
schemas: [CUSTOM_ELEMENTS_SCHEMA],
7676
changeDetection: ChangeDetectionStrategy.OnPush,
77+
hostDirectives: [
78+
{
79+
directive: NgtObjectEvents,
80+
outputs: [
81+
'click',
82+
'dblclick',
83+
'contextmenu',
84+
'pointerup',
85+
'pointerdown',
86+
'pointerover',
87+
'pointerout',
88+
'pointerenter',
89+
'pointerleave',
90+
'pointermove',
91+
'pointermissed',
92+
'pointercancel',
93+
'wheel',
94+
],
95+
},
96+
],
7797
})
7898
export class NgtsText {
7999
text = input.required<string>();
@@ -82,6 +102,7 @@ export class NgtsText {
82102

83103
synced = output<Text>();
84104

105+
private objectEvents = inject(NgtObjectEvents, { host: true });
85106
private store = injectStore();
86107

87108
private characters = pick(this.options, 'characters');
@@ -95,6 +116,8 @@ export class NgtsText {
95116
troikaMesh = new Text();
96117

97118
constructor() {
119+
this.objectEvents.ngtObjectEvents.set(this.troikaMesh);
120+
98121
inject(DestroyRef).onDestroy(() => {
99122
this.troikaMesh.dispose();
100123
});

0 commit comments

Comments
 (0)