@vived/component-pneumatic-panel 1.1.1 → 2.0.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/README.md +60 -19
- package/dist/Domain/Adapters/pneumaticPanelPMAdapter.d.ts.map +1 -1
- package/dist/Domain/Controllers/applyPanelState.d.ts +4 -0
- package/dist/Domain/Controllers/applyPanelState.d.ts.map +1 -0
- package/dist/Domain/Controllers/getPanelState.d.ts +4 -0
- package/dist/Domain/Controllers/getPanelState.d.ts.map +1 -0
- package/dist/Domain/Controllers/panelStateDefaults.d.ts +7 -0
- package/dist/Domain/Controllers/panelStateDefaults.d.ts.map +1 -0
- package/dist/Domain/Entities/PneumaticPanelEntity.d.ts +0 -4
- package/dist/Domain/Entities/PneumaticPanelEntity.d.ts.map +1 -1
- package/dist/Domain/Mocks/MockPneumaticPanelSelectUC.d.ts +1 -1
- package/dist/Domain/Mocks/MockPneumaticPanelSelectUC.d.ts.map +1 -1
- package/dist/Domain/PMs/PneumaticPanelPM.d.ts +0 -3
- package/dist/Domain/PMs/PneumaticPanelPM.d.ts.map +1 -1
- package/dist/Domain/makeDomainForTesting.d.ts +6 -0
- package/dist/Domain/makeDomainForTesting.d.ts.map +1 -0
- package/dist/Frameworks/Babylon/PneumaticPanelBabylonView.d.ts +9 -12
- package/dist/Frameworks/Babylon/PneumaticPanelBabylonView.d.ts.map +1 -1
- package/dist/Frameworks/Babylon/PneumaticPanelExhaustView.d.ts +2 -2
- package/dist/Frameworks/Babylon/PneumaticPanelExhaustView.d.ts.map +1 -1
- package/dist/Frameworks/Babylon/PneumaticPanelGaugeView.d.ts +2 -2
- package/dist/Frameworks/Babylon/PneumaticPanelGaugeView.d.ts.map +1 -1
- package/dist/Frameworks/Babylon/PneumaticPanelHitboxView.d.ts +5 -6
- package/dist/Frameworks/Babylon/PneumaticPanelHitboxView.d.ts.map +1 -1
- package/dist/Frameworks/Babylon/PneumaticPanelLockView.d.ts +2 -2
- package/dist/Frameworks/Babylon/PneumaticPanelLockView.d.ts.map +1 -1
- package/dist/PneumaticPanelFacade.d.ts +116 -0
- package/dist/PneumaticPanelFacade.d.ts.map +1 -0
- package/dist/index.d.ts +4 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1691 -1714
- package/package.json +1 -1
- package/dist/Domain/Controllers/clearAllHighlights.d.ts +0 -9
- package/dist/Domain/Controllers/clearAllHighlights.d.ts.map +0 -1
- package/dist/Domain/Controllers/setHighlightedObject.d.ts +0 -11
- package/dist/Domain/Controllers/setHighlightedObject.d.ts.map +0 -1
- package/dist/Frameworks/Babylon/OutlinePulseController.d.ts +0 -18
- package/dist/Frameworks/Babylon/OutlinePulseController.d.ts.map +0 -1
- package/dist/Frameworks/Babylon/OverlayPulseController.d.ts +0 -17
- package/dist/Frameworks/Babylon/OverlayPulseController.d.ts.map +0 -1
- package/dist/Frameworks/Babylon/ScreenSpaceOutlinePulseController.d.ts +0 -17
- package/dist/Frameworks/Babylon/ScreenSpaceOutlinePulseController.d.ts.map +0 -1
package/README.md
CHANGED
|
@@ -15,13 +15,15 @@ A 3D interactive pneumatic control panel for VIVED slide applications. Features
|
|
|
15
15
|
npm install @vived/component-pneumatic-panel @vived/core @babylonjs/core
|
|
16
16
|
```
|
|
17
17
|
|
|
18
|
+
The host-facing surface is the **`PneumaticPanelFacade`** — a single typed object (Smart
|
|
19
|
+
Component Facade Contract v1) that drives an instance through commands, typed events,
|
|
20
|
+
lifecycle, and persisted state.
|
|
21
|
+
|
|
18
22
|
```typescript
|
|
19
23
|
import { makeAppObjectRepo, makeDomainFactoryRepo } from "@vived/core";
|
|
20
24
|
import {
|
|
21
25
|
makePneumaticPanelFeatureFactory,
|
|
22
|
-
|
|
23
|
-
tryToggleExhaust,
|
|
24
|
-
tryToggleLock,
|
|
26
|
+
PneumaticPanelFacade,
|
|
25
27
|
} from "@vived/component-pneumatic-panel";
|
|
26
28
|
|
|
27
29
|
const appObjects = makeAppObjectRepo();
|
|
@@ -29,32 +31,71 @@ const factoryRepo = makeDomainFactoryRepo(appObjects);
|
|
|
29
31
|
makePneumaticPanelFeatureFactory(appObjects);
|
|
30
32
|
factoryRepo.setupDomain();
|
|
31
33
|
|
|
32
|
-
const
|
|
34
|
+
const panel = new PneumaticPanelFacade("panel-1", appObjects); // wires the domain stack (sync)
|
|
35
|
+
await panel.load(); // attaches and loads the Babylon view
|
|
36
|
+
|
|
37
|
+
panel.toggleExhaust(); // open exhaust
|
|
38
|
+
panel.toggleLock(); // engage lock
|
|
39
|
+
panel.toggleExhaust(); // false — blocked by lock
|
|
33
40
|
|
|
34
|
-
|
|
35
|
-
tryToggleLock("panel-1", appObjects); // engage lock
|
|
36
|
-
tryToggleExhaust("panel-1", appObjects); // false — blocked by lock
|
|
41
|
+
const unsubscribe = panel.onEvent("exhaustOpened", () => console.log("opened"));
|
|
37
42
|
```
|
|
38
43
|
|
|
44
|
+
> Need the raw `AppObject` (e.g. to parent the root node or register shadow casters)? Use
|
|
45
|
+
> the `createBabylonPneumaticPanel(id, appObjects)` composition entry point, which creates
|
|
46
|
+
> the same domain stack and view and returns the `AppObject`.
|
|
47
|
+
|
|
39
48
|
## API
|
|
40
49
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
50
|
+
`PneumaticPanelFacade` implements **Contract v1** — eight mandatory members shared by every
|
|
51
|
+
VIVED smart component, plus component-specific commands and a typed event catalog.
|
|
52
|
+
|
|
53
|
+
### Contract members
|
|
54
|
+
|
|
55
|
+
| Member | Signature | Description |
|
|
56
|
+
| ------------------ | ------------------------------------------ | -------------------------------------------------------- |
|
|
57
|
+
| `id` | `readonly string` | Instance identifier. |
|
|
58
|
+
| `interfaceVersion` | `readonly number` | Contract version implemented (`1`). |
|
|
59
|
+
| `onEvent` | `(event, cb) => () => void` | Subscribe to a typed event; returns unsubscribe. |
|
|
60
|
+
| `onViewModel` | `(cb) => () => void` | Subscribe to the reactive VM (emits immediately). |
|
|
61
|
+
| `load` | `(variant?) => Promise<void>` | Attach and load the Babylon view. |
|
|
62
|
+
| `destroy` | `() => void` | Tear down and release resources. |
|
|
63
|
+
| `getState` | `() => PneumaticPanelState` | Versioned state snapshot. |
|
|
64
|
+
| `applyState` | `(state) => void` | Restore a snapshot. |
|
|
65
|
+
|
|
66
|
+
### Commands
|
|
67
|
+
|
|
68
|
+
| Command | Returns | Description |
|
|
69
|
+
| ----------------------------- | --------- | --------------------------------------------------------- |
|
|
70
|
+
| `toggleExhaust()` | `boolean` | Toggle exhaust valve. Returns `false` if locked. |
|
|
71
|
+
| `toggleLock()` | `boolean` | Toggle safety lock. Returns `false` if exhaust is closed. |
|
|
72
|
+
| `checkPressure()` | `void` | Show current pressure in an alert dialog. |
|
|
73
|
+
| `setShowGhostLockHint(show)` | `void` | Toggle always-visible ghost-lock hint. |
|
|
74
|
+
| `enableHitbox()` / `disableHitbox()` | `void` | Toggle whole-panel selection mode. |
|
|
75
|
+
|
|
76
|
+
### Events (`onEvent`)
|
|
77
|
+
|
|
78
|
+
`exhaustOpened`, `exhaustClosed`, `exhaustCloseBlockedByLock`, `panelLocked`,
|
|
79
|
+
`panelUnlocked`, `panelSelected`, `pressureChecked`.
|
|
80
|
+
All callbacks are `() => void` — read current state from `getState()` or `onViewModel`.
|
|
81
|
+
|
|
82
|
+
> Hover/hint/selection feedback is the Host's responsibility (ADR-0009). The component is
|
|
83
|
+
> presentation-free for interaction state — read `view.highlightGroupsByObjectId` to outline
|
|
84
|
+
> the panel from the invisible hitbox.
|
|
46
85
|
|
|
47
|
-
###
|
|
86
|
+
### Reactive view model
|
|
48
87
|
|
|
49
88
|
```typescript
|
|
50
|
-
|
|
51
|
-
exhaustOpen
|
|
52
|
-
|
|
53
|
-
pressure: number;
|
|
54
|
-
}
|
|
89
|
+
const unsubscribe = panel.onViewModel((vm) => {
|
|
90
|
+
console.log(vm.exhaustOpen, vm.isLocked, vm.pressure, vm.panelHitboxEnabled);
|
|
91
|
+
});
|
|
55
92
|
```
|
|
56
93
|
|
|
57
|
-
|
|
94
|
+
The flat controllers and `pneumaticPanelPMAdapter` remain exported as the underlying
|
|
95
|
+
mechanism the facade delegates to (and which the Babylon view boundary calls directly),
|
|
96
|
+
but the facade is the canonical host-facing surface. See
|
|
97
|
+
[COMPONENT_KNOWLEDGE.md](COMPONENT_KNOWLEDGE.md) for the full API reference, recipes, and
|
|
98
|
+
the complete export list.
|
|
58
99
|
|
|
59
100
|
## Development
|
|
60
101
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pneumaticPanelPMAdapter.d.ts","sourceRoot":"","sources":["../../../src/Domain/Adapters/pneumaticPanelPMAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,EAEL,KAAK,gBAAgB,EACtB,MAAM,yBAAyB,CAAC;AAEjC;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,EAAE,SAAS,CAAC,gBAAgB,
|
|
1
|
+
{"version":3,"file":"pneumaticPanelPMAdapter.d.ts","sourceRoot":"","sources":["../../../src/Domain/Adapters/pneumaticPanelPMAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,EAEL,KAAK,gBAAgB,EACtB,MAAM,yBAAyB,CAAC;AAEjC;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,EAAE,SAAS,CAAC,gBAAgB,CAyC/D,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { AppObjectRepo } from "@vived/core";
|
|
2
|
+
import type { PneumaticPanelState } from "../../PneumaticPanelFacade";
|
|
3
|
+
export declare function applyPanelState(id: string, appObjects: AppObjectRepo, state: Partial<PneumaticPanelState>): void;
|
|
4
|
+
//# sourceMappingURL=applyPanelState.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"applyPanelState.d.ts","sourceRoot":"","sources":["../../../src/Domain/Controllers/applyPanelState.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAGtE,wBAAgB,eAAe,CAC7B,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,aAAa,EACzB,KAAK,EAAE,OAAO,CAAC,mBAAmB,CAAC,GAClC,IAAI,CAoBN"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { AppObjectRepo } from "@vived/core";
|
|
2
|
+
import type { PneumaticPanelState } from "../../PneumaticPanelFacade";
|
|
3
|
+
export declare function getPanelState(id: string, appObjects: AppObjectRepo, version: number): PneumaticPanelState;
|
|
4
|
+
//# sourceMappingURL=getPanelState.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getPanelState.d.ts","sourceRoot":"","sources":["../../../src/Domain/Controllers/getPanelState.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAGtE,wBAAgB,aAAa,CAC3B,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,aAAa,EACzB,OAAO,EAAE,MAAM,GACd,mBAAmB,CAqBrB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"panelStateDefaults.d.ts","sourceRoot":"","sources":["../../../src/Domain/Controllers/panelStateDefaults.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,oCAAoC;;;;;CAKvC,CAAC"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { AppObject, AppObjectEntity, AppObjectRepo } from "@vived/core";
|
|
2
|
-
export type PneumaticPanelHighlightedObject = "none" | "ghostLock" | "lock" | "exhaustKnob" | "gauge" | "panelHitbox";
|
|
3
2
|
/**
|
|
4
3
|
* Pneumatic Panel Entity
|
|
5
4
|
*
|
|
@@ -23,9 +22,6 @@ export declare abstract class PneumaticPanelEntity extends AppObjectEntity {
|
|
|
23
22
|
*/
|
|
24
23
|
abstract get showGhostLockHint(): boolean;
|
|
25
24
|
abstract set showGhostLockHint(val: boolean);
|
|
26
|
-
/** Which object should be highlighted in the scene. */
|
|
27
|
-
abstract get highlightedObject(): PneumaticPanelHighlightedObject;
|
|
28
|
-
abstract set highlightedObject(val: PneumaticPanelHighlightedObject);
|
|
29
25
|
/** Whether the panel hitbox is enabled for whole-panel selection. */
|
|
30
26
|
abstract get panelHitboxEnabled(): boolean;
|
|
31
27
|
abstract set panelHitboxEnabled(val: boolean);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PneumaticPanelEntity.d.ts","sourceRoot":"","sources":["../../../src/Domain/Entities/PneumaticPanelEntity.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,eAAe,EACf,aAAa,EAGd,MAAM,aAAa,CAAC;AAErB
|
|
1
|
+
{"version":3,"file":"PneumaticPanelEntity.d.ts","sourceRoot":"","sources":["../../../src/Domain/Entities/PneumaticPanelEntity.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,eAAe,EACf,aAAa,EAGd,MAAM,aAAa,CAAC;AAErB;;;;;GAKG;AACH,8BAAsB,oBAAqB,SAAQ,eAAe;IAChE,MAAM,CAAC,QAAQ,CAAC,IAAI,0BAA0B;IAE9C,wCAAwC;IACxC,QAAQ,KAAK,WAAW,IAAI,OAAO,CAAC;IACpC,QAAQ,KAAK,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE;IAEvC,gEAAgE;IAChE,QAAQ,KAAK,QAAQ,IAAI,OAAO,CAAC;IACjC,QAAQ,KAAK,QAAQ,CAAC,GAAG,EAAE,OAAO,EAAE;IAEpC,+BAA+B;IAC/B,QAAQ,KAAK,QAAQ,IAAI,MAAM,CAAC;IAChC,QAAQ,KAAK,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE;IAEnC;;;OAGG;IACH,QAAQ,KAAK,iBAAiB,IAAI,OAAO,CAAC;IAC1C,QAAQ,KAAK,iBAAiB,CAAC,GAAG,EAAE,OAAO,EAAE;IAE7C,qEAAqE;IACrE,QAAQ,KAAK,kBAAkB,IAAI,OAAO,CAAC;IAC3C,QAAQ,KAAK,kBAAkB,CAAC,GAAG,EAAE,OAAO,EAAE;IAE9C;;OAEG;IACH,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,GAAG,oBAAoB,GAAG,SAAS;IAI/D;;OAEG;IACH,MAAM,CAAC,OAAO,CACZ,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,aAAa,GACxB,oBAAoB,GAAG,SAAS;CAGpC;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,SAAS,GACnB,oBAAoB,CAEtB"}
|
|
@@ -6,7 +6,7 @@ import { PneumaticPanelSelectUC } from "../UCs/PneumaticPanelSelectUC";
|
|
|
6
6
|
export declare class MockPneumaticPanelSelectUC extends PneumaticPanelSelectUC {
|
|
7
7
|
enableHitbox: () => void;
|
|
8
8
|
disableHitbox: () => void;
|
|
9
|
-
subscribeOnPanelSelected: (
|
|
9
|
+
subscribeOnPanelSelected: () => (() => void);
|
|
10
10
|
notifyPanelSelected: () => void;
|
|
11
11
|
constructor(appObject: AppObject);
|
|
12
12
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MockPneumaticPanelSelectUC.d.ts","sourceRoot":"","sources":["../../../src/Domain/Mocks/MockPneumaticPanelSelectUC.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAEvE;;GAEG;AACH,qBAAa,0BAA2B,SAAQ,sBAAsB;IACpE,YAAY,QAAO,IAAI,CAAO;IAC9B,aAAa,QAAO,IAAI,CAAO;IAC/B,wBAAwB,
|
|
1
|
+
{"version":3,"file":"MockPneumaticPanelSelectUC.d.ts","sourceRoot":"","sources":["../../../src/Domain/Mocks/MockPneumaticPanelSelectUC.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAEvE;;GAEG;AACH,qBAAa,0BAA2B,SAAQ,sBAAsB;IACpE,YAAY,QAAO,IAAI,CAAO;IAC9B,aAAa,QAAO,IAAI,CAAO;IAC/B,wBAAwB,QAAO,CAAC,MAAM,IAAI,CAAC,CAAa;IACxD,mBAAmB,QAAO,IAAI,CAAO;gBAEzB,SAAS,EAAE,SAAS;CAGjC"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { AppObject, AppObjectPM, AppObjectRepo } from "@vived/core";
|
|
2
|
-
import { type PneumaticPanelHighlightedObject } from "../Entities/PneumaticPanelEntity";
|
|
3
2
|
/**
|
|
4
3
|
* View Model for Pneumatic Panel UI rendering.
|
|
5
4
|
* Immutable snapshot of component state suitable for views.
|
|
@@ -16,8 +15,6 @@ export interface PneumaticPanelVM {
|
|
|
16
15
|
* When false, reveal it only on hover (assessment mode).
|
|
17
16
|
*/
|
|
18
17
|
showGhostLockHint: boolean;
|
|
19
|
-
/** Which object should be highlighted in the scene. */
|
|
20
|
-
highlightedObject: PneumaticPanelHighlightedObject;
|
|
21
18
|
/** Whether the panel hitbox is enabled for whole-panel selection. */
|
|
22
19
|
panelHitboxEnabled: boolean;
|
|
23
20
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PneumaticPanelPM.d.ts","sourceRoot":"","sources":["../../../src/Domain/PMs/PneumaticPanelPM.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"PneumaticPanelPM.d.ts","sourceRoot":"","sources":["../../../src/Domain/PMs/PneumaticPanelPM.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAGpE;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,wCAAwC;IACxC,WAAW,EAAE,OAAO,CAAC;IACrB,oCAAoC;IACpC,QAAQ,EAAE,OAAO,CAAC;IAClB,+BAA+B;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,iBAAiB,EAAE,OAAO,CAAC;IAC3B,qEAAqE;IACrE,kBAAkB,EAAE,OAAO,CAAC;IAC5B;;;OAGG;IACH,wBAAwB,EAAE,OAAO,CAAC;CACnC;AAED;;;;;;GAMG;AACH,8BAAsB,gBAAiB,SAAQ,WAAW,CAAC,gBAAgB,CAAC;IAC1E,MAAM,CAAC,QAAQ,CAAC,IAAI,sBAAsB;IAE1C,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,GAAG,gBAAgB,GAAG,SAAS;IAI3D,MAAM,CAAC,OAAO,CACZ,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,aAAa,GACxB,gBAAgB,GAAG,SAAS;CAGhC;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,SAAS,GAAG,gBAAgB,CAE3E"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"makeDomainForTesting.d.ts","sourceRoot":"","sources":["../../src/Domain/makeDomainForTesting.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EAGd,MAAM,aAAa,CAAC;AAGrB,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,aAAa,CAAC;CAC3B;AAED,wBAAgB,oBAAoB,IAAI,gBAAgB,CAMvD"}
|
|
@@ -2,14 +2,6 @@ import type { AbstractMesh } from "@babylonjs/core";
|
|
|
2
2
|
import type { Node } from "@babylonjs/core";
|
|
3
3
|
import type { TransformNode } from "@babylonjs/core";
|
|
4
4
|
import { AppObject, AppObjectView } from "@vived/core";
|
|
5
|
-
export type PneumaticPanelGlowConfig = {
|
|
6
|
-
blurHorizontalSize: number;
|
|
7
|
-
blurVerticalSize: number;
|
|
8
|
-
innerGlow: boolean;
|
|
9
|
-
isEnabled: boolean;
|
|
10
|
-
neutralAlpha: number;
|
|
11
|
-
outerGlow: boolean;
|
|
12
|
-
};
|
|
13
5
|
export declare abstract class PneumaticPanelBabylonView extends AppObjectView {
|
|
14
6
|
static readonly type = "PneumaticPanelBabylonView";
|
|
15
7
|
/** Resolves the Babylon scene, loads meshes, and subscribes to updates. */
|
|
@@ -20,10 +12,15 @@ export declare abstract class PneumaticPanelBabylonView extends AppObjectView {
|
|
|
20
12
|
abstract get shadowCasters(): AbstractMesh[];
|
|
21
13
|
/** Lookup of every scene node keyed by its objectId metadata. Populated after load() completes. */
|
|
22
14
|
abstract get nodesByObjectId(): ReadonlyMap<string, Node>;
|
|
23
|
-
/**
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
15
|
+
/**
|
|
16
|
+
* Meshes the Host should treat as one highlightable unit, keyed by semantic objectId.
|
|
17
|
+
* Populated after load() completes.
|
|
18
|
+
*
|
|
19
|
+
* The `panel_hitbox` entry maps to every visible panel mesh (all meshes except the
|
|
20
|
+
* invisible hitbox itself), so outlining the invisible hitbox outlines the visible panel.
|
|
21
|
+
* All other entries map to a single-element array for their respective mesh.
|
|
22
|
+
*/
|
|
23
|
+
abstract get highlightGroupsByObjectId(): ReadonlyMap<string, AbstractMesh[]>;
|
|
27
24
|
static get(appObj: AppObject): PneumaticPanelBabylonView | undefined;
|
|
28
25
|
}
|
|
29
26
|
export declare function makePneumaticPanelBabylonView(appObject: AppObject): PneumaticPanelBabylonView;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PneumaticPanelBabylonView.d.ts","sourceRoot":"","sources":["../../../src/Frameworks/Babylon/PneumaticPanelBabylonView.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEpD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"PneumaticPanelBabylonView.d.ts","sourceRoot":"","sources":["../../../src/Frameworks/Babylon/PneumaticPanelBabylonView.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEpD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAErD,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAoBvD,8BAAsB,yBAA0B,SAAQ,aAAa;IACnE,MAAM,CAAC,QAAQ,CAAC,IAAI,+BAA+B;IAEnD,2EAA2E;IAC3E,QAAQ,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAE9B,gGAAgG;IAChG,QAAQ,KAAK,iBAAiB,IAAI,aAAa,GAAG,SAAS,CAAC;IAE5D,sEAAsE;IACtE,QAAQ,KAAK,aAAa,IAAI,YAAY,EAAE,CAAC;IAE7C,mGAAmG;IACnG,QAAQ,KAAK,eAAe,IAAI,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAE1D;;;;;;;OAOG;IACH,QAAQ,KAAK,yBAAyB,IAAI,WAAW,CAAC,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC;IAE9E,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,GAAG,yBAAyB,GAAG,SAAS;CAGrE;AAED,wBAAgB,6BAA6B,CAC3C,SAAS,EAAE,SAAS,GACnB,yBAAyB,CAE3B"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Node } from "@babylonjs/core";
|
|
2
2
|
import { AppObject, AppObjectView } from "@vived/core";
|
|
3
3
|
export declare const pneumaticPanelExhaustKnobMetadata = "exhaust_knob";
|
|
4
4
|
/**
|
|
@@ -10,7 +10,7 @@ export declare const pneumaticPanelExhaustKnobMetadata = "exhaust_knob";
|
|
|
10
10
|
*/
|
|
11
11
|
export declare abstract class PneumaticPanelExhaustView extends AppObjectView {
|
|
12
12
|
static readonly type = "PneumaticPanelExhaustView";
|
|
13
|
-
abstract bindMeshes(nodesByObjectId: ReadonlyMap<string, Node
|
|
13
|
+
abstract bindMeshes(nodesByObjectId: ReadonlyMap<string, Node>): void;
|
|
14
14
|
static get(appObj: AppObject): PneumaticPanelExhaustView | undefined;
|
|
15
15
|
}
|
|
16
16
|
export declare function makePneumaticPanelExhaustView(appObject: AppObject): PneumaticPanelExhaustView;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PneumaticPanelExhaustView.d.ts","sourceRoot":"","sources":["../../../src/Frameworks/Babylon/PneumaticPanelExhaustView.ts"],"names":[],"mappings":"AAAA,OAAO,EAOL,
|
|
1
|
+
{"version":3,"file":"PneumaticPanelExhaustView.d.ts","sourceRoot":"","sources":["../../../src/Frameworks/Babylon/PneumaticPanelExhaustView.ts"],"names":[],"mappings":"AAAA,OAAO,EAOL,IAAI,EACL,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAMvD,eAAO,MAAM,iCAAiC,iBAAiB,CAAC;AAEhE;;;;;;GAMG;AACH,8BAAsB,yBAA0B,SAAQ,aAAa;IACnE,MAAM,CAAC,QAAQ,CAAC,IAAI,+BAA+B;IAEnD,QAAQ,CAAC,UAAU,CAAC,eAAe,EAAE,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,IAAI;IAErE,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,GAAG,yBAAyB,GAAG,SAAS;CAGrE;AAED,wBAAgB,6BAA6B,CAC3C,SAAS,EAAE,SAAS,GACnB,yBAAyB,CAE3B"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Node } from "@babylonjs/core";
|
|
2
2
|
import { AppObject, AppObjectView } from "@vived/core";
|
|
3
3
|
export declare const pneumaticPanelGaugeMetadata = "gauge";
|
|
4
4
|
export declare abstract class PneumaticPanelGaugeView extends AppObjectView {
|
|
5
5
|
static readonly type = "PneumaticPanelGaugeView";
|
|
6
|
-
abstract bindMeshes(nodesByObjectId: ReadonlyMap<string, Node
|
|
6
|
+
abstract bindMeshes(nodesByObjectId: ReadonlyMap<string, Node>): void;
|
|
7
7
|
static get(appObj: AppObject): PneumaticPanelGaugeView | undefined;
|
|
8
8
|
}
|
|
9
9
|
export declare function makePneumaticPanelGaugeView(appObject: AppObject): PneumaticPanelGaugeView;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PneumaticPanelGaugeView.d.ts","sourceRoot":"","sources":["../../../src/Frameworks/Babylon/PneumaticPanelGaugeView.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,
|
|
1
|
+
{"version":3,"file":"PneumaticPanelGaugeView.d.ts","sourceRoot":"","sources":["../../../src/Frameworks/Babylon/PneumaticPanelGaugeView.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,IAAI,EACL,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAKvD,eAAO,MAAM,2BAA2B,UAAU,CAAC;AAEnD,8BAAsB,uBAAwB,SAAQ,aAAa;IACjE,MAAM,CAAC,QAAQ,CAAC,IAAI,6BAA6B;IAEjD,QAAQ,CAAC,UAAU,CAAC,eAAe,EAAE,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,IAAI;IAErE,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,GAAG,uBAAuB,GAAG,SAAS;CAGnE;AAED,wBAAgB,2BAA2B,CACzC,SAAS,EAAE,SAAS,GACnB,uBAAuB,CAEzB"}
|
|
@@ -1,17 +1,16 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Node } from "@babylonjs/core";
|
|
2
2
|
import { AppObject, AppObjectView } from "@vived/core";
|
|
3
3
|
export declare const pneumaticPanelHitboxMetadata = "panel_hitbox";
|
|
4
4
|
/**
|
|
5
|
-
* Babylon view that owns panel hitbox interaction
|
|
5
|
+
* Babylon view that owns panel hitbox click interaction.
|
|
6
6
|
*
|
|
7
7
|
* The hitbox is an invisible bounding mesh (objectId: "panel_hitbox") that
|
|
8
|
-
* covers the entire panel. When enabled, it is pickable
|
|
9
|
-
*
|
|
10
|
-
* driven by highlightedObject === "panelHitbox" via the domain VM.
|
|
8
|
+
* covers the entire panel. When enabled, it is pickable. The Host owns all
|
|
9
|
+
* hover detection and interaction-state presentation (ADR 0009).
|
|
11
10
|
*/
|
|
12
11
|
export declare abstract class PneumaticPanelHitboxView extends AppObjectView {
|
|
13
12
|
static readonly type = "PneumaticPanelHitboxView";
|
|
14
|
-
abstract bindMeshes(nodesByObjectId: ReadonlyMap<string, Node
|
|
13
|
+
abstract bindMeshes(nodesByObjectId: ReadonlyMap<string, Node>): void;
|
|
15
14
|
static get(appObj: AppObject): PneumaticPanelHitboxView | undefined;
|
|
16
15
|
}
|
|
17
16
|
export declare function makePneumaticPanelHitboxView(appObject: AppObject): PneumaticPanelHitboxView;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PneumaticPanelHitboxView.d.ts","sourceRoot":"","sources":["../../../src/Frameworks/Babylon/PneumaticPanelHitboxView.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"PneumaticPanelHitboxView.d.ts","sourceRoot":"","sources":["../../../src/Frameworks/Babylon/PneumaticPanelHitboxView.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,IAAI,EACL,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAKvD,eAAO,MAAM,4BAA4B,iBAAiB,CAAC;AAE3D;;;;;;GAMG;AACH,8BAAsB,wBAAyB,SAAQ,aAAa;IAClE,MAAM,CAAC,QAAQ,CAAC,IAAI,8BAA8B;IAElD,QAAQ,CAAC,UAAU,CAAC,eAAe,EAAE,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,IAAI;IAErE,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,GAAG,wBAAwB,GAAG,SAAS;CAGpE;AAED,wBAAgB,4BAA4B,CAC1C,SAAS,EAAE,SAAS,GACnB,wBAAwB,CAE1B"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Node } from "@babylonjs/core";
|
|
2
2
|
import { AppObject, AppObjectView } from "@vived/core";
|
|
3
3
|
export declare const pneumaticPanelLockMetadata = "lock";
|
|
4
4
|
export declare const pneumaticPanelGhostLockMetadata = "ghost_lock";
|
|
@@ -10,7 +10,7 @@ export declare const pneumaticPanelGhostLockMetadata = "ghost_lock";
|
|
|
10
10
|
*/
|
|
11
11
|
export declare abstract class PneumaticPanelLockView extends AppObjectView {
|
|
12
12
|
static readonly type = "PneumaticPanelLockView";
|
|
13
|
-
abstract bindMeshes(nodesByObjectId: ReadonlyMap<string, Node
|
|
13
|
+
abstract bindMeshes(nodesByObjectId: ReadonlyMap<string, Node>): void;
|
|
14
14
|
abstract flash(): void;
|
|
15
15
|
static get(appObj: AppObject): PneumaticPanelLockView | undefined;
|
|
16
16
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PneumaticPanelLockView.d.ts","sourceRoot":"","sources":["../../../src/Frameworks/Babylon/PneumaticPanelLockView.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,
|
|
1
|
+
{"version":3,"file":"PneumaticPanelLockView.d.ts","sourceRoot":"","sources":["../../../src/Frameworks/Babylon/PneumaticPanelLockView.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,IAAI,EAEL,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAKvD,eAAO,MAAM,0BAA0B,SAAS,CAAC;AACjD,eAAO,MAAM,+BAA+B,eAAe,CAAC;AAE5D;;;;;GAKG;AACH,8BAAsB,sBAAuB,SAAQ,aAAa;IAChE,MAAM,CAAC,QAAQ,CAAC,IAAI,4BAA4B;IAEhD,QAAQ,CAAC,UAAU,CAAC,eAAe,EAAE,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,IAAI;IACrE,QAAQ,CAAC,KAAK,IAAI,IAAI;IAEtB,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,GAAG,sBAAsB,GAAG,SAAS;CAGlE;AAED,wBAAgB,0BAA0B,CACxC,SAAS,EAAE,SAAS,GACnB,sBAAsB,CAExB"}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import { AppObjectRepo } from "@vived/core";
|
|
2
|
+
import type { PneumaticPanelVM } from "./Domain/PMs/PneumaticPanelPM";
|
|
3
|
+
export declare const PNEUMATIC_PANEL_STATE_VERSION = 2;
|
|
4
|
+
export type PneumaticPanelState = {
|
|
5
|
+
version: number;
|
|
6
|
+
exhaustOpen: boolean;
|
|
7
|
+
isLocked: boolean;
|
|
8
|
+
showGhostLockHint: boolean;
|
|
9
|
+
panelHitboxEnabled: boolean;
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* SmartComponent structural convention (local definition per ADR-0006).
|
|
13
|
+
* Smart Component Facade Contract v1 — eight mandatory members. Copied
|
|
14
|
+
* per-project and satisfied by structural typing (no shared base class).
|
|
15
|
+
*/
|
|
16
|
+
export interface SmartComponent {
|
|
17
|
+
readonly id: string;
|
|
18
|
+
readonly interfaceVersion: number;
|
|
19
|
+
onEvent(event: string, cb: (...args: never[]) => void): () => void;
|
|
20
|
+
onViewModel(cb: (vm: PneumaticPanelVM) => void): () => void;
|
|
21
|
+
load(variant?: string): Promise<void>;
|
|
22
|
+
destroy(): void;
|
|
23
|
+
getState(): PneumaticPanelState;
|
|
24
|
+
applyState(state: PneumaticPanelState): void;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Typed event catalog for PneumaticPanel events (per ADR-0006)
|
|
28
|
+
*/
|
|
29
|
+
export type PneumaticPanelEvents = {
|
|
30
|
+
exhaustOpened: () => void;
|
|
31
|
+
exhaustClosed: () => void;
|
|
32
|
+
exhaustCloseBlockedByLock: () => void;
|
|
33
|
+
panelLocked: () => void;
|
|
34
|
+
panelUnlocked: () => void;
|
|
35
|
+
panelSelected: () => void;
|
|
36
|
+
pressureChecked: () => void;
|
|
37
|
+
};
|
|
38
|
+
/**
|
|
39
|
+
* Host-facing facade for Pneumatic Panel smart component.
|
|
40
|
+
* Wraps flat controllers behind a single typed class implementing SmartComponent.
|
|
41
|
+
*/
|
|
42
|
+
export declare class PneumaticPanelFacade implements SmartComponent {
|
|
43
|
+
readonly id: string;
|
|
44
|
+
readonly interfaceVersion = 1;
|
|
45
|
+
private appObjects;
|
|
46
|
+
/**
|
|
47
|
+
* Dispatch map: event key → subscribe controller
|
|
48
|
+
* Each controller has signature: (id, appObjects, cb: () => void) => () => void
|
|
49
|
+
*/
|
|
50
|
+
private eventDispatchMap;
|
|
51
|
+
/**
|
|
52
|
+
* Constructor: synchronously wire the domain instance.
|
|
53
|
+
* No Babylon dependency; fully headless and testable.
|
|
54
|
+
*
|
|
55
|
+
* @param id - The instance identifier
|
|
56
|
+
* @param appObjects - The AppObject repository
|
|
57
|
+
*/
|
|
58
|
+
constructor(id: string, appObjects: AppObjectRepo);
|
|
59
|
+
/**
|
|
60
|
+
* Asynchronously load and attach the Babylon view.
|
|
61
|
+
* Required before the component renders in a 3D scene.
|
|
62
|
+
*/
|
|
63
|
+
/**
|
|
64
|
+
* Asynchronously load and attach the Babylon view.
|
|
65
|
+
*
|
|
66
|
+
* @param variant - Optional asset variant. No variants are implemented yet,
|
|
67
|
+
* so an omitted or unrecognized variant loads the default asset
|
|
68
|
+
* (best-effort, per Contract v1).
|
|
69
|
+
*/
|
|
70
|
+
load(variant?: string): Promise<void>;
|
|
71
|
+
/**
|
|
72
|
+
* Tear down the component and release all resources.
|
|
73
|
+
*/
|
|
74
|
+
destroy(): void;
|
|
75
|
+
/**
|
|
76
|
+
* Toggle the exhaust valve open/closed.
|
|
77
|
+
* @returns true if toggle succeeded, false if blocked (e.g., by lock)
|
|
78
|
+
*/
|
|
79
|
+
toggleExhaust(): boolean;
|
|
80
|
+
/**
|
|
81
|
+
* Toggle the lock state.
|
|
82
|
+
* @returns true if toggle succeeded, false if blocked (e.g., exhaust open)
|
|
83
|
+
*/
|
|
84
|
+
toggleLock(): boolean;
|
|
85
|
+
/**
|
|
86
|
+
* Trigger a pressure check.
|
|
87
|
+
*/
|
|
88
|
+
checkPressure(): void;
|
|
89
|
+
/**
|
|
90
|
+
* Show or hide the ghost lock hint.
|
|
91
|
+
*/
|
|
92
|
+
setShowGhostLockHint(show: boolean): void;
|
|
93
|
+
/**
|
|
94
|
+
* Enable the whole-panel hitbox for single-target selection.
|
|
95
|
+
*/
|
|
96
|
+
enableHitbox(): void;
|
|
97
|
+
/**
|
|
98
|
+
* Disable the whole-panel hitbox, restoring sub-component interactivity.
|
|
99
|
+
*/
|
|
100
|
+
disableHitbox(): void;
|
|
101
|
+
getState(): PneumaticPanelState;
|
|
102
|
+
applyState(state: PneumaticPanelState): void;
|
|
103
|
+
/**
|
|
104
|
+
* Subscribe to a typed event.
|
|
105
|
+
* @param event - The event key (typed by PneumaticPanelEvents)
|
|
106
|
+
* @param cb - The callback function
|
|
107
|
+
* @returns An unsubscribe function
|
|
108
|
+
*/
|
|
109
|
+
onEvent<K extends keyof PneumaticPanelEvents>(event: K, cb: PneumaticPanelEvents[K]): () => void;
|
|
110
|
+
/**
|
|
111
|
+
* Subscribe to the reactive view model. Emits the current VM immediately,
|
|
112
|
+
* then on every change. Returns an unsubscribe function.
|
|
113
|
+
*/
|
|
114
|
+
onViewModel(cb: (vm: PneumaticPanelVM) => void): () => void;
|
|
115
|
+
}
|
|
116
|
+
//# sourceMappingURL=PneumaticPanelFacade.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PneumaticPanelFacade.d.ts","sourceRoot":"","sources":["../src/PneumaticPanelFacade.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAkB5C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAEtE,eAAO,MAAM,6BAA6B,IAAI,CAAC;AAE/C,MAAM,MAAM,mBAAmB,GAAG;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;IAClB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,kBAAkB,EAAE,OAAO,CAAC;CAC7B,CAAC;AAEF;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;IACnE,WAAW,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,gBAAgB,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;IAC5D,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,OAAO,IAAI,IAAI,CAAC;IAChB,QAAQ,IAAI,mBAAmB,CAAC;IAChC,UAAU,CAAC,KAAK,EAAE,mBAAmB,GAAG,IAAI,CAAC;CAC9C;AAED;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG;IACjC,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,yBAAyB,EAAE,MAAM,IAAI,CAAC;IACtC,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,eAAe,EAAE,MAAM,IAAI,CAAC;CAC7B,CAAC;AAEF;;;GAGG;AACH,qBAAa,oBAAqB,YAAW,cAAc;IACzD,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,gBAAgB,KAAK;IAC9B,OAAO,CAAC,UAAU,CAAgB;IAElC;;;OAGG;IACH,OAAO,CAAC,gBAAgB,CAWtB;IAEF;;;;;;OAMG;gBACS,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,aAAa;IASjD;;;OAGG;IACH;;;;;;OAMG;IAEG,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAW3C;;OAEG;IACH,OAAO,IAAI,IAAI;IAIf;;;OAGG;IACH,aAAa,IAAI,OAAO;IAIxB;;;OAGG;IACH,UAAU,IAAI,OAAO;IAIrB;;OAEG;IACH,aAAa,IAAI,IAAI;IAIrB;;OAEG;IACH,oBAAoB,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI;IAIzC;;OAEG;IACH,YAAY,IAAI,IAAI;IAIpB;;OAEG;IACH,aAAa,IAAI,IAAI;IAIrB,QAAQ,IAAI,mBAAmB;IAQ/B,UAAU,CAAC,KAAK,EAAE,mBAAmB,GAAG,IAAI;IAI5C;;;;;OAKG;IACH,OAAO,CAAC,CAAC,SAAS,MAAM,oBAAoB,EAC1C,KAAK,EAAE,CAAC,EACR,EAAE,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAC1B,MAAM,IAAI;IAKb;;;OAGG;IACH,WAAW,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,gBAAgB,KAAK,IAAI,GAAG,MAAM,IAAI;CAI5D"}
|
package/dist/index.d.ts
CHANGED
|
@@ -13,8 +13,8 @@ export { tryToggleExhaust } from "./Domain/Controllers/tryToggleExhaust";
|
|
|
13
13
|
export { tryToggleLock } from "./Domain/Controllers/tryToggleLock";
|
|
14
14
|
export { checkPressure } from "./Domain/Controllers/checkPressure";
|
|
15
15
|
export { setShowGhostLockHint } from "./Domain/Controllers/setShowGhostLockHint";
|
|
16
|
-
export {
|
|
17
|
-
export {
|
|
16
|
+
export { getPanelState } from "./Domain/Controllers/getPanelState";
|
|
17
|
+
export { applyPanelState } from "./Domain/Controllers/applyPanelState";
|
|
18
18
|
export { onExhaustOpened } from "./Domain/Controllers/onExhaustOpened";
|
|
19
19
|
export { onExhaustClosed } from "./Domain/Controllers/onExhaustClosed";
|
|
20
20
|
export { onExhaustCloseBlockedByLock } from "./Domain/Controllers/onExhaustCloseBlockedByLock";
|
|
@@ -27,7 +27,7 @@ export { onCheckPressure } from "./Domain/Controllers/onCheckPressure";
|
|
|
27
27
|
export { panelHitboxClicked } from "./Domain/Controllers/panelHitboxClicked";
|
|
28
28
|
export { PneumaticPanelPM, makePneumaticPanelPM, type PneumaticPanelVM, } from "./Domain/PMs/PneumaticPanelPM";
|
|
29
29
|
export { pneumaticPanelPMAdapter } from "./Domain/Adapters/pneumaticPanelPMAdapter";
|
|
30
|
-
export { PneumaticPanelBabylonView, makePneumaticPanelBabylonView,
|
|
30
|
+
export { PneumaticPanelBabylonView, makePneumaticPanelBabylonView, } from "./Frameworks/Babylon/PneumaticPanelBabylonView";
|
|
31
31
|
export { PneumaticPanelFeatureFactory, makePneumaticPanelFeatureFactory, } from "./Domain/Factory/PneumaticPanelFeatureFactory";
|
|
32
32
|
export { createBabylonPneumaticPanel } from "./Frameworks/Babylon/createBabylonPneumaticPanel";
|
|
33
33
|
export { MockPneumaticPanelPM } from "./Domain/Mocks/MockPneumaticPanelPM";
|
|
@@ -36,4 +36,5 @@ export { MockPneumaticPanelToggleLockUC } from "./Domain/Mocks/MockPneumaticPane
|
|
|
36
36
|
export { MockPneumaticPanelCheckPressureUC } from "./Domain/Mocks/MockPneumaticPanelCheckPressureUC";
|
|
37
37
|
export { MockPneumaticPanelSelectUC } from "./Domain/Mocks/MockPneumaticPanelSelectUC";
|
|
38
38
|
export { default as componentConfig } from "./component.config";
|
|
39
|
+
export { PneumaticPanelFacade, PNEUMATIC_PANEL_STATE_VERSION, type PneumaticPanelState, type SmartComponent, type PneumaticPanelEvents, } from "./PneumaticPanelFacade";
|
|
39
40
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EACL,oBAAoB,EACpB,wBAAwB,GACzB,MAAM,wCAAwC,CAAC;AAChD,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EACtB,KAAK,2BAA2B,GACjC,MAAM,sCAAsC,CAAC;AAG9C,OAAO,EACL,6BAA6B,EAC7B,iCAAiC,GAClC,MAAM,4CAA4C,CAAC;AACpD,OAAO,EACL,0BAA0B,EAC1B,8BAA8B,GAC/B,MAAM,yCAAyC,CAAC;AACjD,OAAO,EACL,6BAA6B,EAC7B,iCAAiC,GAClC,MAAM,4CAA4C,CAAC;AACpD,OAAO,EACL,sBAAsB,EACtB,0BAA0B,GAC3B,MAAM,qCAAqC,CAAC;AAG7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EACL,oBAAoB,EACpB,wBAAwB,GACzB,MAAM,wCAAwC,CAAC;AAChD,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EACtB,KAAK,2BAA2B,GACjC,MAAM,sCAAsC,CAAC;AAG9C,OAAO,EACL,6BAA6B,EAC7B,iCAAiC,GAClC,MAAM,4CAA4C,CAAC;AACpD,OAAO,EACL,0BAA0B,EAC1B,8BAA8B,GAC/B,MAAM,yCAAyC,CAAC;AACjD,OAAO,EACL,6BAA6B,EAC7B,iCAAiC,GAClC,MAAM,4CAA4C,CAAC;AACpD,OAAO,EACL,sBAAsB,EACtB,0BAA0B,GAC3B,MAAM,qCAAqC,CAAC;AAG7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAAE,2BAA2B,EAAE,MAAM,kDAAkD,CAAC;AAC/F,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAG7E,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,KAAK,gBAAgB,GACtB,MAAM,+BAA+B,CAAC;AAGvC,OAAO,EAAE,uBAAuB,EAAE,MAAM,2CAA2C,CAAC;AAGpF,OAAO,EACL,yBAAyB,EACzB,6BAA6B,GAC9B,MAAM,gDAAgD,CAAC;AAGxD,OAAO,EACL,4BAA4B,EAC5B,gCAAgC,GACjC,MAAM,+CAA+C,CAAC;AAGvD,OAAO,EAAE,2BAA2B,EAAE,MAAM,kDAAkD,CAAC;AAG/F,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,iCAAiC,EAAE,MAAM,kDAAkD,CAAC;AACrG,OAAO,EAAE,8BAA8B,EAAE,MAAM,+CAA+C,CAAC;AAC/F,OAAO,EAAE,iCAAiC,EAAE,MAAM,kDAAkD,CAAC;AACrG,OAAO,EAAE,0BAA0B,EAAE,MAAM,2CAA2C,CAAC;AAGvF,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAEhE,OAAO,EACL,oBAAoB,EACpB,6BAA6B,EAC7B,KAAK,mBAAmB,EACxB,KAAK,cAAc,EACnB,KAAK,oBAAoB,GAC1B,MAAM,wBAAwB,CAAC"}
|