|
1 | 1 | import {consume} from '@lit/context';
|
2 | 2 | import {eventize, type Eventize} from '@spearwolf/eventize';
|
3 |
| -import {createEffect, createSignal, value, type SignalFuncs, type SignalReader} from '@spearwolf/signalize'; |
| 3 | +import {createEffect, type SignalReader} from '@spearwolf/signalize'; |
| 4 | +import {signal, signalReader} from '@spearwolf/signalize/decorators'; |
4 | 5 | import {
|
5 | 6 | OrthographicProjection,
|
6 | 7 | ParallaxProjection,
|
@@ -53,19 +54,8 @@ export class Stage2DElement extends TwoPoint5DElement {
|
53 | 54 | @property({attribute: false})
|
54 | 55 | accessor stageRendererCtx: IStageRenderer | undefined;
|
55 | 56 |
|
56 |
| - readonly #stageRenderer: SignalFuncs<IStageRenderer | undefined> = createSignal(); |
57 |
| - |
58 |
| - get stageRenderer(): IStageRenderer | undefined { |
59 |
| - return value(this.#stageRenderer[0]); |
60 |
| - } |
61 |
| - |
62 |
| - get stageRenderer$(): SignalReader<IStageRenderer | undefined> { |
63 |
| - return this.#stageRenderer[0]; |
64 |
| - } |
65 |
| - |
66 |
| - set stageRenderer(value: IStageRenderer | undefined) { |
67 |
| - this.#stageRenderer[1](value); |
68 |
| - } |
| 57 | + @signal({readAsValue: true}) accessor stageRenderer: IStageRenderer | undefined; |
| 58 | + @signalReader() accessor stageRenderer$: SignalReader<IStageRenderer | undefined>; |
69 | 59 |
|
70 | 60 | @property({type: String, reflect: true})
|
71 | 61 | accessor fit: 'contain' | 'cover' | 'fill' | undefined;
|
@@ -103,26 +93,17 @@ export class Stage2DElement extends TwoPoint5DElement {
|
103 | 93 | @property({type: String, reflect: true, attribute: 'projection-type'})
|
104 | 94 | accessor projectionType: 'parallax' | 'ortho' | 'orthographic' | undefined;
|
105 | 95 |
|
| 96 | + // TODO add autoClear property |
| 97 | + |
106 | 98 | readonly #projSignals: SignalMap;
|
107 | 99 | readonly #viewSpecsSignals: SignalMap;
|
108 | 100 |
|
109 | 101 | private getViewSpecs(): ParallaxProjectionSpecs | OrthographicProjectionSpecs {
|
110 | 102 | return this.#viewSpecsSignals.getValueObject() as ParallaxProjectionSpecs | OrthographicProjectionSpecs;
|
111 | 103 | }
|
112 | 104 |
|
113 |
| - readonly #projection = createSignal<IProjection | undefined>(); |
114 |
| - |
115 |
| - get projection(): IProjection | undefined { |
116 |
| - return value(this.#projection[0]); |
117 |
| - } |
118 |
| - |
119 |
| - get projection$(): SignalReader<IProjection | undefined> { |
120 |
| - return this.#projection[0]; |
121 |
| - } |
122 |
| - |
123 |
| - set projection(value: IProjection | undefined) { |
124 |
| - this.#projection[1](value); |
125 |
| - } |
| 105 | + @signal({readAsValue: true}) accessor projection: IProjection | undefined; |
| 106 | + @signalReader() accessor projection$: SignalReader<IProjection | undefined>; |
126 | 107 |
|
127 | 108 | readonly stage2d = new Stage2D();
|
128 | 109 |
|
|
0 commit comments