@kiberon-labs/behave-graph-scene 1.0.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/.storybook/main.ts +18 -0
- package/.storybook/preview.ts +16 -0
- package/.storybook/vscode.css +822 -0
- package/.turbo/turbo-build.log +4 -3
- package/CHANGELOG.md +84 -0
- package/README.md +1 -1
- package/dist/Abstractions/Drivers/DummyScene.d.ts +47 -3
- package/dist/Abstractions/Drivers/DummyScene.d.ts.map +1 -1
- package/dist/Abstractions/Drivers/DummyScene.js +57 -0
- package/dist/Abstractions/Drivers/DummyScene.js.map +1 -1
- package/dist/Abstractions/IScene.d.ts +63 -4
- package/dist/Abstractions/IScene.d.ts.map +1 -1
- package/dist/Abstractions/IScene.js +19 -0
- package/dist/Abstractions/IScene.js.map +1 -0
- package/dist/Nodes/Actions/AddLight.d.ts +21 -0
- package/dist/Nodes/Actions/AddLight.d.ts.map +1 -0
- package/dist/Nodes/Actions/AddLight.js +38 -0
- package/dist/Nodes/Actions/AddLight.js.map +1 -0
- package/dist/Nodes/Actions/CloneMesh.d.ts +16 -0
- package/dist/Nodes/Actions/CloneMesh.d.ts.map +1 -0
- package/dist/Nodes/Actions/CloneMesh.js +28 -0
- package/dist/Nodes/Actions/CloneMesh.js.map +1 -0
- package/dist/Nodes/Actions/CreateMesh.d.ts +22 -0
- package/dist/Nodes/Actions/CreateMesh.d.ts.map +1 -0
- package/dist/Nodes/Actions/CreateMesh.js +44 -0
- package/dist/Nodes/Actions/CreateMesh.js.map +1 -0
- package/dist/Nodes/Actions/DeleteMesh.d.ts +15 -0
- package/dist/Nodes/Actions/DeleteMesh.d.ts.map +1 -0
- package/dist/Nodes/Actions/DeleteMesh.js +27 -0
- package/dist/Nodes/Actions/DeleteMesh.js.map +1 -0
- package/dist/Nodes/Actions/EaseSceneProperty.d.ts +1 -1
- package/dist/Nodes/Actions/EaseSceneProperty.d.ts.map +1 -1
- package/dist/Nodes/Actions/EaseSceneProperty.js +2 -2
- package/dist/Nodes/Actions/EaseSceneProperty.js.map +1 -1
- package/dist/Nodes/Actions/LookAt.d.ts +16 -0
- package/dist/Nodes/Actions/LookAt.d.ts.map +1 -0
- package/dist/Nodes/Actions/LookAt.js +35 -0
- package/dist/Nodes/Actions/LookAt.js.map +1 -0
- package/dist/Nodes/Actions/MoveTowards.d.ts +21 -0
- package/dist/Nodes/Actions/MoveTowards.d.ts.map +1 -0
- package/dist/Nodes/Actions/MoveTowards.js +46 -0
- package/dist/Nodes/Actions/MoveTowards.js.map +1 -0
- package/dist/Nodes/Actions/RemoveLight.d.ts +15 -0
- package/dist/Nodes/Actions/RemoveLight.d.ts.map +1 -0
- package/dist/Nodes/Actions/RemoveLight.js +27 -0
- package/dist/Nodes/Actions/RemoveLight.js.map +1 -0
- package/dist/Nodes/Actions/SetLightProperty.d.ts +25 -0
- package/dist/Nodes/Actions/SetLightProperty.d.ts.map +1 -0
- package/dist/Nodes/Actions/SetLightProperty.js +64 -0
- package/dist/Nodes/Actions/SetLightProperty.js.map +1 -0
- package/dist/Nodes/Actions/SetMaterialProperty.d.ts +25 -0
- package/dist/Nodes/Actions/SetMaterialProperty.d.ts.map +1 -0
- package/dist/Nodes/Actions/SetMaterialProperty.js +69 -0
- package/dist/Nodes/Actions/SetMaterialProperty.js.map +1 -0
- package/dist/Nodes/Actions/SetMeshPosition.d.ts +18 -0
- package/dist/Nodes/Actions/SetMeshPosition.d.ts.map +1 -0
- package/dist/Nodes/Actions/SetMeshPosition.js +34 -0
- package/dist/Nodes/Actions/SetMeshPosition.js.map +1 -0
- package/dist/Nodes/Actions/SetMeshVisible.d.ts +16 -0
- package/dist/Nodes/Actions/SetMeshVisible.d.ts.map +1 -0
- package/dist/Nodes/Actions/SetMeshVisible.js +28 -0
- package/dist/Nodes/Actions/SetMeshVisible.js.map +1 -0
- package/dist/Nodes/Actions/SetSceneProperty.d.ts +12 -1
- package/dist/Nodes/Actions/SetSceneProperty.d.ts.map +1 -1
- package/dist/Nodes/Actions/SetSceneProperty.js +1 -1
- package/dist/Nodes/Actions/SetSceneProperty.js.map +1 -1
- package/dist/Nodes/Events/OnAnyMeshClicked.d.ts +13 -0
- package/dist/Nodes/Events/OnAnyMeshClicked.d.ts.map +1 -0
- package/dist/Nodes/Events/OnAnyMeshClicked.js +34 -0
- package/dist/Nodes/Events/OnAnyMeshClicked.js.map +1 -0
- package/dist/Nodes/Events/OnSceneChanged.d.ts +12 -0
- package/dist/Nodes/Events/OnSceneChanged.d.ts.map +1 -0
- package/dist/Nodes/Events/OnSceneChanged.js +28 -0
- package/dist/Nodes/Events/OnSceneChanged.js.map +1 -0
- package/dist/Nodes/Events/OnSceneNodeClick.d.ts +14 -1
- package/dist/Nodes/Events/OnSceneNodeClick.d.ts.map +1 -1
- package/dist/Nodes/Events/OnSceneNodeClick.js +1 -1
- package/dist/Nodes/Events/OnSceneNodeClick.js.map +1 -1
- package/dist/Nodes/Logic/ColorNodes.d.ts +17 -13
- package/dist/Nodes/Logic/ColorNodes.d.ts.map +1 -1
- package/dist/Nodes/Logic/EulerNodes.d.ts +16 -12
- package/dist/Nodes/Logic/EulerNodes.d.ts.map +1 -1
- package/dist/Nodes/Logic/Mat3Nodes.d.ts +26 -23
- package/dist/Nodes/Logic/Mat3Nodes.d.ts.map +1 -1
- package/dist/Nodes/Logic/Mat3Nodes.js +0 -14
- package/dist/Nodes/Logic/Mat3Nodes.js.map +1 -1
- package/dist/Nodes/Logic/Mat4Nodes.d.ts +32 -28
- package/dist/Nodes/Logic/Mat4Nodes.d.ts.map +1 -1
- package/dist/Nodes/Logic/QuatNodes.d.ts +22 -18
- package/dist/Nodes/Logic/QuatNodes.d.ts.map +1 -1
- package/dist/Nodes/Logic/Vec2Nodes.d.ts +16 -12
- package/dist/Nodes/Logic/Vec2Nodes.d.ts.map +1 -1
- package/dist/Nodes/Logic/Vec3Nodes.d.ts +17 -13
- package/dist/Nodes/Logic/Vec3Nodes.d.ts.map +1 -1
- package/dist/Nodes/Logic/Vec4Nodes.d.ts +16 -12
- package/dist/Nodes/Logic/Vec4Nodes.d.ts.map +1 -1
- package/dist/Nodes/Queries/GetDistanceBetween.d.ts +18 -0
- package/dist/Nodes/Queries/GetDistanceBetween.d.ts.map +1 -0
- package/dist/Nodes/Queries/GetDistanceBetween.js +30 -0
- package/dist/Nodes/Queries/GetDistanceBetween.js.map +1 -0
- package/dist/Nodes/Queries/GetLightProperty.d.ts +23 -0
- package/dist/Nodes/Queries/GetLightProperty.d.ts.map +1 -0
- package/dist/Nodes/Queries/GetLightProperty.js +68 -0
- package/dist/Nodes/Queries/GetLightProperty.js.map +1 -0
- package/dist/Nodes/Queries/GetMaterialProperty.d.ts +23 -0
- package/dist/Nodes/Queries/GetMaterialProperty.d.ts.map +1 -0
- package/dist/Nodes/Queries/GetMaterialProperty.js +69 -0
- package/dist/Nodes/Queries/GetMaterialProperty.js.map +1 -0
- package/dist/Nodes/Queries/GetMeshPosition.d.ts +16 -0
- package/dist/Nodes/Queries/GetMeshPosition.d.ts.map +1 -0
- package/dist/Nodes/Queries/GetMeshPosition.js +29 -0
- package/dist/Nodes/Queries/GetMeshPosition.js.map +1 -0
- package/dist/Nodes/Queries/GetSceneProperty.d.ts +10 -1
- package/dist/Nodes/Queries/GetSceneProperty.d.ts.map +1 -1
- package/dist/Nodes/Queries/GetSceneProperty.js +2 -2
- package/dist/Nodes/Queries/GetSceneProperty.js.map +1 -1
- package/dist/Values/Internal/Mat3.d.ts +1 -1
- package/dist/Values/Internal/Mat3.d.ts.map +1 -1
- package/dist/Values/Internal/Mat3.js +1 -3
- package/dist/Values/Internal/Mat3.js.map +1 -1
- package/dist/Values/Internal/Mat4.d.ts.map +1 -1
- package/dist/Values/Internal/Mat4.js +1 -3
- package/dist/Values/Internal/Mat4.js.map +1 -1
- package/dist/Values/Internal/Vec3.d.ts +1 -1
- package/dist/Values/Internal/Vec3.d.ts.map +1 -1
- package/dist/Values/Internal/Vec3.js +0 -2
- package/dist/Values/Internal/Vec3.js.map +1 -1
- package/dist/Values/Internal/Vec4.d.ts.map +1 -1
- package/dist/Values/Internal/Vec4.js +0 -1
- package/dist/Values/Internal/Vec4.js.map +1 -1
- package/dist/_virtual/rolldown_runtime.js +23 -1
- package/dist/behave-graph.manifest.json +6082 -0
- package/dist/buildScene.d.ts.map +1 -1
- package/dist/buildScene.js +24 -3
- package/dist/buildScene.js.map +1 -1
- package/dist/index.d.ts +29 -3
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +22 -4
- package/dist/manifest.source.d.ts +7 -0
- package/dist/manifest.source.d.ts.map +1 -0
- package/dist/manifest.source.js +54 -0
- package/dist/manifest.source.js.map +1 -0
- package/dist/node_modules/.pnpm/react@19.2.3/node_modules/react/cjs/react-jsx-runtime.development.js +207 -0
- package/dist/node_modules/.pnpm/react@19.2.3/node_modules/react/cjs/react-jsx-runtime.development.js.map +1 -0
- package/dist/node_modules/.pnpm/react@19.2.3/node_modules/react/cjs/react-jsx-runtime.production.js +40 -0
- package/dist/node_modules/.pnpm/react@19.2.3/node_modules/react/cjs/react-jsx-runtime.production.js.map +1 -0
- package/dist/node_modules/.pnpm/react@19.2.3/node_modules/react/cjs/react.development.js +766 -0
- package/dist/node_modules/.pnpm/react@19.2.3/node_modules/react/cjs/react.development.js.map +1 -0
- package/dist/node_modules/.pnpm/react@19.2.3/node_modules/react/cjs/react.production.js +367 -0
- package/dist/node_modules/.pnpm/react@19.2.3/node_modules/react/cjs/react.production.js.map +1 -0
- package/dist/node_modules/.pnpm/react@19.2.3/node_modules/react/index.js +15 -0
- package/dist/node_modules/.pnpm/react@19.2.3/node_modules/react/index.js.map +1 -0
- package/dist/node_modules/.pnpm/react@19.2.3/node_modules/react/jsx-runtime.js +15 -0
- package/dist/node_modules/.pnpm/react@19.2.3/node_modules/react/jsx-runtime.js.map +1 -0
- package/dist/packages/nodes/scene/package.js +7 -0
- package/dist/packages/nodes/scene/package.js.map +1 -0
- package/dist/registerSceneProfile.d.ts +3 -3
- package/dist/registerSceneProfile.d.ts.map +1 -1
- package/dist/registerSceneProfile.js +35 -1
- package/dist/registerSceneProfile.js.map +1 -1
- package/dist/ui/controls/vec3.d.ts +9 -0
- package/dist/ui/controls/vec3.d.ts.map +1 -0
- package/dist/ui/controls/vec3.js +99 -0
- package/dist/ui/controls/vec3.js.map +1 -0
- package/package.json +28 -9
- package/src/Abstractions/Drivers/DummyScene.ts +110 -2
- package/src/Abstractions/IScene.ts +74 -3
- package/src/Nodes/Actions/AddLight.ts +46 -0
- package/src/Nodes/Actions/CloneMesh.ts +31 -0
- package/src/Nodes/Actions/CreateMesh.ts +47 -0
- package/src/Nodes/Actions/DeleteMesh.ts +29 -0
- package/src/Nodes/Actions/EaseSceneProperty.ts +6 -2
- package/src/Nodes/Actions/LookAt.ts +34 -0
- package/src/Nodes/Actions/MoveTowards.ts +55 -0
- package/src/Nodes/Actions/RemoveLight.ts +29 -0
- package/src/Nodes/Actions/SetLightProperty.ts +60 -0
- package/src/Nodes/Actions/SetMaterialProperty.ts +62 -0
- package/src/Nodes/Actions/SetMeshPosition.ts +37 -0
- package/src/Nodes/Actions/SetMeshVisible.ts +31 -0
- package/src/Nodes/Actions/SetSceneProperty.ts +3 -5
- package/src/Nodes/Events/OnAnyMeshClicked.ts +48 -0
- package/src/Nodes/Events/OnSceneChanged.ts +43 -0
- package/src/Nodes/Events/OnSceneNodeClick.ts +3 -3
- package/src/Nodes/Logic/Mat3Nodes.ts +0 -10
- package/src/Nodes/Queries/GetDistanceBetween.ts +37 -0
- package/src/Nodes/Queries/GetLightProperty.ts +53 -0
- package/src/Nodes/Queries/GetMaterialProperty.ts +55 -0
- package/src/Nodes/Queries/GetMeshPosition.ts +32 -0
- package/src/Nodes/Queries/GetSceneProperty.ts +4 -5
- package/src/Values/Internal/Mat3.ts +3 -3
- package/src/Values/Internal/Mat4.ts +5 -4
- package/src/Values/Internal/Vec3.ts +5 -4
- package/src/Values/Internal/Vec4.ts +3 -2
- package/src/buildScene.ts +36 -2
- package/src/index.ts +26 -2
- package/src/manifest.source.ts +61 -0
- package/src/registerSceneProfile.ts +41 -4
- package/src/ui/controls/vec3.tsx +69 -0
- package/stories/click.stories.tsx +112 -0
- package/stories/components/DemoScene.ts +610 -0
- package/stories/components/SceneViewer.tsx +204 -0
- package/stories/components/SceneViewerPanel.tsx +41 -0
- package/stories/data/clickDemo.json +94 -0
- package/stories/data/rotate.json +402 -0
- package/stories/index.stories.tsx +90 -0
- package/stories/plugin/sceneViewerPlugin.tsx +88 -0
- package/tests/manifest.test.ts +65 -0
- package/tests/readSceneGraphs.test.ts +8 -1
- package/tests/registerSceneProfile.test.ts +6 -5
- package/tsconfig.json +18 -11
- package/tsdown.config.ts +5 -1
- package/vite.config.js +7 -0
- package/src/Values/Internal/Mat2.ts +0 -214
- package/src/loadScene.ts +0 -81
package/dist/buildScene.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildScene.d.ts","names":[],"sources":["../src/buildScene.ts"],"sourcesContent":[],"mappings":";;;;;;;cAiBM;;EAAA,SAAA,SAII,EAAA,WAAA;EAEL,SAAA,UAAQ,EAAA,
|
|
1
|
+
{"version":3,"file":"buildScene.d.ts","names":[],"sources":["../src/buildScene.ts"],"sourcesContent":[],"mappings":";;;;;;;cAiBM;;EAAA,SAAA,SAII,EAAA,WAAA;EAEL,SAAA,UAAQ,EAAA,YAAW;AASxB,CAAA;AAaA,KAtBK,QAAA,GAsBe,CAAA,OAtBI,QAsBJ,CAAA,CAAA,MAAA,OAtB2B,QAsB3B,CAAA;AACN,aAdM,SAAA,GAcN;EAAI,KAAA,EAAA;IAAE,CAAA,IAAA,EAAA,MAAA,CAAA,EAZA,QAYA;EAAC,CAAA;EAGT,SAAI,EAAA;IAMA,CAAA,IAAA,EAAA,MAAA,CAAA,EAlBI,QAkBY;EAC5B,CAAA;CAAO;AAAoB,KAXnB,QAWmB,CAAA,CAAA,CAAA,GAAA,QAAyB,MAV1C,CAU0C,GAVtC,CAUsC,CAVpC,CAUoC,CAAA,GAAA,SAAA,EAAT;AAAQ,KAP3C,IAAA,GAO2C;EAYvC,QAAA,EAlBJ,QAkBiB;EAcb,KAAA,EAAA,MAAA;EACZ,QAAA,EAAA,MAAA;CAAU;AAAO,iBA5BL,gBAAA,CA4BK;EAAA,KAAA;EAAA,QAAA;EAAA,QAAA,EA3BU;AA2BV,CAAA,EA3B0B,QA2B1B,CA3BmC,IA2BnC,CAAA,EAAA,KAAA,EAAA,OAAA,CAAA,EAAA,MAAA,GAAA,SAAA;AAAY,iBAfjB,aAAA,CAeiB,QAAA,EAAA,MAAA,EAAA,KAAA,CAAA,EAAA,OAAA,CAAA,EAf+B,IAe/B;AACzB,iBAFQ,oBAAA,CAER;EAAA,QAAA;EAAA,KAAA;EAAA;AAAA,CAAA,EADyB,IACzB,EAAA,IAAA,EAAA,IAAA,GAAO,SAAP,EAAA,KAAA,EAAA,GAAA,EAAA,UAAA,EAEM,UAFN,EAAA,mBAAA,EAAA,CAAA,CAAA,SAAA,EAAA,MAAA,EAAA,MAAA,EAAA,OAAA,EAAA,GAAA,IAAA,CAAA,GAAA,SAAA,CAAA,EAAA,IAAA;AAAO,KA2IH,cAAA,GA3IG;EAED,IAAA,EAAA,MAAA;EAAU,KAAA,EAAA,MAAA;AAyIxB,CAAA;AAKY,KAAA,kBAAA,GAAkB;EAKzB,OAAA,EAJM,cAII,EAAA;EAIH,UAAA,EAAA,MAAa,EAAA;CAAG;KAJvB,UAAA,GAKH,UAJQ,QAKC,IALW,kBAKX,EAAQ;AAGN,KALD,aAAA,GAAgB,IAkD3B,GAjDC,SAIsC,GAAA;EA2ExB,IAAA,CAAA,EA9EL,QA8EK;AAUhB,CAAA;AAaY,cAlGC,iBAkGc,EAAA,CAAA,IAAA,EAlGa,aAkGb,EAAA,GAlG6B,UAkG7B;AAEf,iBAzBI,uBAAA,CA4BH,UAAe,EA5BwB,UA4BxB,CAAA,EA5BqC,OA4BrC;AAGhB,iBArBI,0BAAA,CAsBM,UAAe,EAtBkB,UAsBlB,CAAA,EAtB+B,OAsB/B;AAGxB,KAZD,eAAA,GA4KX,CAAA,QAAA,EAAA,MAAA,EAAA,GAAA,IAAA;AAhK0B,KAVf,eAAA,GAUe;EAAA,IAAA,EATnB,IASmB;EAAA,WAAA,EAAA,MAAA;EAKnB,SAAA,EAZK,eAYL,EAAA;CAAO;AAEQ,KAXX,gBAAA,GAWW;EAAqB,CAAA,QAAA,EAAA,MAAA,CAAA,EAVtB,eAUsB;CAK3C;AAoJA,cAhKY,UAgKZ,EAAA,CAAA;EAAA,IAAA;EAAA,mBAAA;EAAA;CAAA,EAAA;QA3JO,OAAO;wCAEQ,qBAAqB;;MAK3C"}
|
package/dist/buildScene.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Vec4 } from "./Values/Internal/Vec4.js";
|
|
2
1
|
import { Vec3 } from "./Values/Internal/Vec3.js";
|
|
2
|
+
import { Vec4 } from "./Values/Internal/Vec4.js";
|
|
3
3
|
import { EventEmitter } from "@kiberon-labs/behave-graph";
|
|
4
4
|
import { Material, Object3D } from "three";
|
|
5
5
|
|
|
@@ -101,7 +101,6 @@ function applyNodeModifier(property, objectRef, value) {
|
|
|
101
101
|
}
|
|
102
102
|
case "scale": {
|
|
103
103
|
const v = value;
|
|
104
|
-
console.log(v.x);
|
|
105
104
|
objectRef.scale.set(v.x, v.y, v.z);
|
|
106
105
|
break;
|
|
107
106
|
}
|
|
@@ -266,6 +265,9 @@ const buildScene = ({ gltf, setOnClickListeners, setActiveAnimations }) => {
|
|
|
266
265
|
const removeOnSceneChangedListener = (listener) => {
|
|
267
266
|
onSceneChanged.removeListener(listener);
|
|
268
267
|
};
|
|
268
|
+
const notSupported = (op) => {
|
|
269
|
+
throw new Error(`The glTF-backed scene does not support "${op}". Use a scene backend that implements the procedural mesh/light API (e.g. the demo scene) for that operation.`);
|
|
270
|
+
};
|
|
269
271
|
return {
|
|
270
272
|
getProperty,
|
|
271
273
|
setProperty,
|
|
@@ -274,7 +276,26 @@ const buildScene = ({ gltf, setOnClickListeners, setActiveAnimations }) => {
|
|
|
274
276
|
addOnClickedListener,
|
|
275
277
|
removeOnClickedListener,
|
|
276
278
|
addOnSceneChangedListener,
|
|
277
|
-
removeOnSceneChangedListener
|
|
279
|
+
removeOnSceneChangedListener,
|
|
280
|
+
createMesh: () => notSupported("createMesh"),
|
|
281
|
+
deleteMesh: () => notSupported("deleteMesh"),
|
|
282
|
+
getMeshNames: () => [],
|
|
283
|
+
addLight: () => notSupported("addLight"),
|
|
284
|
+
removeLight: () => notSupported("removeLight"),
|
|
285
|
+
setLightProperty: () => notSupported("setLightProperty"),
|
|
286
|
+
getLightProperty: () => notSupported("getLightProperty"),
|
|
287
|
+
getLightNames: () => [],
|
|
288
|
+
setMaterialProperty: () => notSupported("setMaterialProperty"),
|
|
289
|
+
getMaterialProperty: () => notSupported("getMaterialProperty"),
|
|
290
|
+
addOnAnyMeshClickedListener: () => notSupported("addOnAnyMeshClickedListener"),
|
|
291
|
+
removeOnAnyMeshClickedListener: () => notSupported("removeOnAnyMeshClickedListener"),
|
|
292
|
+
getMeshPosition: () => notSupported("getMeshPosition"),
|
|
293
|
+
setMeshPosition: () => notSupported("setMeshPosition"),
|
|
294
|
+
getDistanceBetween: () => notSupported("getDistanceBetween"),
|
|
295
|
+
lookAt: () => notSupported("lookAt"),
|
|
296
|
+
moveTowards: () => notSupported("moveTowards"),
|
|
297
|
+
cloneMesh: () => notSupported("cloneMesh"),
|
|
298
|
+
setMeshVisible: () => notSupported("setMeshVisible")
|
|
278
299
|
};
|
|
279
300
|
};
|
|
280
301
|
|
package/dist/buildScene.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildScene.js","names":["properties: Properties","choices: { text: string; value: any }[]","property","updatedListeners: OnClickListener","addOnSceneChangedListener: IScene['addOnSceneChangedListener']","removeOnSceneChangedListener: IScene['removeOnSceneChangedListener']"],"sources":["../src/buildScene.ts"],"sourcesContent":["import { type Choices, EventEmitter } from '@kiberon-labs/behave-graph';\nimport {\n type Event,\n Material,\n MeshBasicMaterial,\n Object3D,\n Quaternion,\n Vector3,\n Vector4\n} from 'three';\nimport type { GLTF } from 'three-stdlib';\n\nimport type { IScene } from './Abstractions/IScene.js';\nimport type { GLTFJson } from './GLTFJson.js';\nimport { Vec3 } from './Values/Internal/Vec3.js';\nimport { Vec4 } from './Values/Internal/Vec4.js';\n\nconst Resource = {\n nodes: 'nodes',\n materials: 'materials',\n animations: 'animations'\n} as const;\n\ntype Resource = (typeof Resource)[keyof typeof Resource];\n\nfunction toVec3(value: Vector3): Vec3 {\n return new Vec3(value.x, value.y, value.z);\n}\nfunction toVec4(value: Vector4 | Quaternion): Vec4 {\n return new Vec4(value.x, value.y, value.z, value.w);\n}\n\nexport declare type ObjectMap = {\n nodes: {\n [name: string]: Object3D;\n };\n materials: {\n [name: string]: Material;\n };\n};\n\nconst shortPathRegEx = /^\\/?(?<resource>[^/]+)\\/(?<index>\\d+)$/;\nconst jsonPathRegEx =\n /^\\/?(?<resource>[^/]+)\\/(?<index>\\d+)\\/(?<property>[^/]+)$/;\n\nexport type Optional<T> = {\n [K in keyof T]: T[K] | undefined;\n};\n\nexport type Path = {\n resource: Resource;\n index: number;\n property: string;\n};\n\nexport function toJsonPathString(\n { index, property, resource: resourceType }: Optional<Path>,\n short: boolean\n) {\n if (short) {\n if (!resourceType || index === undefined) return;\n return `${resourceType}/${index}`;\n } else {\n if (!resourceType || index === undefined || !property) return;\n return `${resourceType}/${index}/${property}`;\n }\n}\n\nexport function parseJsonPath(jsonPath: string, short = false): Path {\n // hack = for now we see if there are 2 segments to know if its short\n const regex = short ? shortPathRegEx : jsonPathRegEx;\n const matches = regex.exec(jsonPath);\n if (matches === null) throw new Error(`can not parse jsonPath: ${jsonPath}`);\n if (matches.groups === undefined)\n throw new Error(`can not parse jsonPath (no groups): ${jsonPath}`);\n return {\n resource: matches.groups.resource as Resource,\n index: +matches.groups.index!,\n property: matches.groups.property!\n };\n}\n\nexport function applyPropertyToModel(\n { resource, index, property }: Path,\n gltf: GLTF & ObjectMap,\n value: any,\n properties: Properties,\n setActiveAnimations:\n | ((animation: string, active: boolean) => void)\n | undefined\n) {\n const nodeName = getResourceName({ resource, index }, properties);\n if (!nodeName) throw new Error(`could not get node at index ${index}`);\n if (resource === Resource.nodes) {\n const node = gltf.nodes[nodeName] as unknown as Object3D | undefined;\n\n if (!node) {\n console.error(`no node at path ${nodeName}`);\n return;\n }\n\n applyNodeModifier(property, node, value);\n\n return;\n }\n if (resource === Resource.materials) {\n const node = gltf.materials[nodeName] as unknown as Material | undefined;\n\n if (!node) {\n console.error(`no node at path ${nodeName}`);\n return;\n }\n\n applyMaterialModifier(property, node, value);\n\n return;\n }\n\n if (resource === Resource.animations) {\n if (!setActiveAnimations) {\n console.error(\n 'cannot apply animation property without setActiveAnimations'\n );\n return;\n }\n\n setActiveAnimations(nodeName, value as boolean);\n return;\n }\n\n console.error(`unknown resource type ${resource}`);\n}\n\nconst getResourceName = (\n { resource, index }: Pick<Path, 'resource' | 'index'>,\n properties: Properties\n) => {\n return properties[resource]?.options[index]?.name;\n};\n\nconst getPropertyFromModel = (\n { resource, index, property }: Path,\n gltf: GLTF & ObjectMap,\n properties: Properties\n) => {\n if (resource === Resource.nodes) {\n const nodeName = getResourceName({ resource, index }, properties);\n if (!nodeName) throw new Error(`could not get node at index ${index}`);\n const node = gltf.nodes[nodeName] as unknown as Object3D | undefined;\n\n if (!node) {\n console.error(`no node at path ${nodeName}`);\n return;\n }\n\n getPropertyValue(property, node);\n\n return;\n }\n};\n\nfunction applyNodeModifier(property: string, objectRef: Object3D, value: any) {\n switch (property) {\n case 'visible': {\n objectRef.visible = value as boolean;\n break;\n }\n case 'translation': {\n const v = value as Vec3;\n objectRef.position.set(v.x, v.y, v.z);\n break;\n }\n case 'scale': {\n const v = value as Vec3;\n console.log(v.x);\n objectRef.scale.set(v.x, v.y, v.z);\n break;\n }\n case 'rotation': {\n const v = value as Vec4;\n objectRef.quaternion.set(v.x, v.y, v.z, v.w);\n break;\n }\n }\n}\n\nfunction applyMaterialModifier(\n property: string,\n materialRef: Material,\n value: any\n) {\n switch (property) {\n case 'color': {\n const basic = materialRef as MeshBasicMaterial;\n\n if (basic.color) {\n const v = value as Vec3;\n basic.color.setRGB(v.x, v.y, v.z);\n basic.needsUpdate = true;\n }\n break;\n }\n }\n}\n\nfunction getPropertyValue(property: string, objectRef: Object3D<Event>) {\n switch (property) {\n case 'visible': {\n return objectRef.visible;\n }\n case 'translation': {\n return toVec3(objectRef.position);\n }\n case 'scale': {\n return toVec3(objectRef.scale);\n }\n case 'rotation': {\n return toVec4(objectRef.quaternion);\n }\n default:\n throw new Error(`unrecognized property: ${property}`);\n }\n}\n\nexport type ResourceOption = {\n name: string;\n index: number;\n};\n\nexport type ResourceProperties = {\n options: ResourceOption[];\n properties: string[];\n};\n\ntype Properties = {\n [key in Resource]?: ResourceProperties;\n};\n\nexport type ParsableScene = GLTF &\n ObjectMap & {\n json?: GLTFJson;\n };\n\nexport const extractProperties = (gltf: ParsableScene): Properties => {\n const nodeProperties = [\n 'visible',\n 'translation',\n 'scale',\n 'rotation',\n 'color'\n ];\n const animationProperties = ['playing'];\n const materialProperties = ['color'];\n\n const gltfJson = gltf.parser.json as GLTFJson;\n\n const nodeOptions = gltfJson.nodes?.map(({ name }, index) => ({\n name: name || index.toString(),\n index\n }));\n const materialOptions = gltfJson.materials?.map(({ name }, index) => ({\n name: name || index.toString(),\n index\n }));\n const animationOptions = gltf.animations?.map(({ name }, index) => ({\n name: name || index.toString(),\n index\n }));\n\n const properties: Properties = {};\n\n properties.nodes = { options: nodeOptions, properties: nodeProperties };\n\n if (materialOptions) {\n properties.materials = {\n options: materialOptions,\n properties: materialProperties\n };\n }\n\n if (animationOptions) {\n properties.animations = {\n options: animationOptions,\n properties: animationProperties\n };\n }\n\n return properties;\n};\n\nfunction createPropertyChoice(\n resource: string,\n name: string,\n property: string,\n index: number\n): { text: string; value: any } {\n return {\n text: `${resource}/${name}/${property}`,\n value: `${resource}/${index}/${property}`\n };\n}\n\nfunction generateChoicesForProperty(\n property: ResourceProperties | undefined,\n resource: Resource\n) {\n if (!property) return [];\n const choices: { text: string; value: any }[] = [];\n\n property.options.forEach(({ index, name }) => {\n property.properties.forEach((property) => {\n choices.push(createPropertyChoice(resource, name, property, index));\n });\n });\n\n return choices;\n}\n\nexport function generateSettableChoices(properties: Properties): Choices {\n const choices: { text: string; value: any }[] = [\n ...generateChoicesForProperty(properties.nodes, Resource.nodes),\n ...generateChoicesForProperty(properties.materials, Resource.materials),\n ...generateChoicesForProperty(properties.animations, Resource.animations)\n ];\n\n return choices;\n}\n\nexport function generateRaycastableChoices(properties: Properties): Choices {\n const choices: { text: string; value: any }[] = [];\n\n properties.nodes?.options.forEach(({ index, name }) => {\n choices.push({\n text: `nodes/${name}`,\n value: `nodes/${index}`\n });\n });\n\n return choices;\n}\n\nexport type OnClickCallback = (jsonPath: string) => void;\n\nexport type OnClickListener = {\n path: Path;\n elementName: string;\n callbacks: OnClickCallback[];\n};\n\nexport type OnClickListeners = {\n [jsonPath: string]: OnClickListener;\n};\n\nexport const buildScene = ({\n gltf,\n setOnClickListeners,\n setActiveAnimations\n}: {\n gltf: GLTF & ObjectMap;\n setOnClickListeners:\n | ((cb: (existing: OnClickListeners) => OnClickListeners) => void)\n | undefined;\n setActiveAnimations:\n | ((animation: string, active: boolean) => void)\n | undefined;\n}) => {\n const properties = extractProperties(gltf);\n\n const onSceneChanged = new EventEmitter<void>();\n\n const addOnClickedListener = (\n jsonPath: string,\n callback: (jsonPath: string) => void\n ) => {\n if (!setOnClickListeners) return;\n const path = parseJsonPath(jsonPath, true);\n\n setOnClickListeners((existing) => {\n const listenersForPath = existing[jsonPath] || {\n path,\n elementName: getResourceName(\n { resource: path.resource, index: path.index },\n properties\n )!,\n callbacks: []\n };\n\n const updatedListeners: OnClickListener = {\n ...listenersForPath,\n callbacks: [...listenersForPath.callbacks, callback]\n };\n\n const result: OnClickListeners = {\n ...existing,\n [jsonPath]: updatedListeners\n };\n\n return result;\n });\n };\n\n const removeOnClickedListener = (\n jsonPath: string,\n callback: (jsonPath: string) => void\n ) => {\n if (!setOnClickListeners) return;\n setOnClickListeners((existing) => {\n const listenersForPath = existing[jsonPath];\n\n if (!listenersForPath) return existing;\n\n const updatedCallbacks = listenersForPath.callbacks.filter(\n (x) => x !== callback\n );\n\n if (updatedCallbacks.length > 0) {\n const updatedListeners = {\n ...listenersForPath,\n callback: updatedCallbacks\n };\n\n return {\n ...existing,\n [jsonPath]: updatedListeners\n };\n }\n\n const result = {\n ...existing\n };\n\n delete result[jsonPath];\n\n return result;\n });\n };\n\n const getProperty = (jsonPath: string, _valueTypeName: string) => {\n const path = parseJsonPath(jsonPath);\n\n return getPropertyFromModel(path, gltf, properties);\n };\n\n const setProperty = (jsonPath: string, valueTypeName: string, value: any) => {\n const path = parseJsonPath(jsonPath);\n\n applyPropertyToModel(path, gltf, value, properties, setActiveAnimations);\n\n onSceneChanged.emit();\n };\n\n const settableChoices = generateSettableChoices(properties);\n const raycastableChoices = generateRaycastableChoices(properties);\n\n const addOnSceneChangedListener: IScene['addOnSceneChangedListener'] = (\n listener\n ) => {\n onSceneChanged.addListener(listener);\n };\n\n const removeOnSceneChangedListener: IScene['removeOnSceneChangedListener'] = (\n listener\n ) => {\n onSceneChanged.removeListener(listener);\n };\n\n const scene: IScene = {\n getProperty,\n setProperty,\n getProperties: () => settableChoices,\n getRaycastableProperties: () => raycastableChoices,\n addOnClickedListener,\n removeOnClickedListener,\n addOnSceneChangedListener,\n removeOnSceneChangedListener\n };\n\n return scene;\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"buildScene.js","names":["properties: Properties","choices: { text: string; value: any }[]","property","updatedListeners: OnClickListener","addOnSceneChangedListener: IScene['addOnSceneChangedListener']","removeOnSceneChangedListener: IScene['removeOnSceneChangedListener']"],"sources":["../src/buildScene.ts"],"sourcesContent":["import { type Choices, EventEmitter } from '@kiberon-labs/behave-graph';\nimport {\n type Event,\n Material,\n MeshBasicMaterial,\n Object3D,\n Quaternion,\n Vector3,\n Vector4\n} from 'three';\nimport type { GLTF } from 'three-stdlib';\n\nimport type { IScene } from './Abstractions/IScene.js';\nimport type { GLTFJson } from './GLTFJson.js';\nimport { Vec3 } from './Values/Internal/Vec3.js';\nimport { Vec4 } from './Values/Internal/Vec4.js';\n\nconst Resource = {\n nodes: 'nodes',\n materials: 'materials',\n animations: 'animations'\n} as const;\n\ntype Resource = (typeof Resource)[keyof typeof Resource];\n\nfunction toVec3(value: Vector3): Vec3 {\n return new Vec3(value.x, value.y, value.z);\n}\nfunction toVec4(value: Vector4 | Quaternion): Vec4 {\n return new Vec4(value.x, value.y, value.z, value.w);\n}\n\nexport declare type ObjectMap = {\n nodes: {\n [name: string]: Object3D;\n };\n materials: {\n [name: string]: Material;\n };\n};\n\nconst shortPathRegEx = /^\\/?(?<resource>[^/]+)\\/(?<index>\\d+)$/;\nconst jsonPathRegEx =\n /^\\/?(?<resource>[^/]+)\\/(?<index>\\d+)\\/(?<property>[^/]+)$/;\n\nexport type Optional<T> = {\n [K in keyof T]: T[K] | undefined;\n};\n\nexport type Path = {\n resource: Resource;\n index: number;\n property: string;\n};\n\nexport function toJsonPathString(\n { index, property, resource: resourceType }: Optional<Path>,\n short: boolean\n) {\n if (short) {\n if (!resourceType || index === undefined) return;\n return `${resourceType}/${index}`;\n } else {\n if (!resourceType || index === undefined || !property) return;\n return `${resourceType}/${index}/${property}`;\n }\n}\n\nexport function parseJsonPath(jsonPath: string, short = false): Path {\n // hack = for now we see if there are 2 segments to know if its short\n const regex = short ? shortPathRegEx : jsonPathRegEx;\n const matches = regex.exec(jsonPath);\n if (matches === null) throw new Error(`can not parse jsonPath: ${jsonPath}`);\n if (matches.groups === undefined)\n throw new Error(`can not parse jsonPath (no groups): ${jsonPath}`);\n return {\n resource: matches.groups.resource as Resource,\n index: +matches.groups.index!,\n property: matches.groups.property!\n };\n}\n\nexport function applyPropertyToModel(\n { resource, index, property }: Path,\n gltf: GLTF & ObjectMap,\n value: any,\n properties: Properties,\n setActiveAnimations:\n | ((animation: string, active: boolean) => void)\n | undefined\n) {\n const nodeName = getResourceName({ resource, index }, properties);\n if (!nodeName) throw new Error(`could not get node at index ${index}`);\n if (resource === Resource.nodes) {\n const node = gltf.nodes[nodeName] as unknown as Object3D | undefined;\n\n if (!node) {\n console.error(`no node at path ${nodeName}`);\n return;\n }\n\n applyNodeModifier(property, node, value);\n\n return;\n }\n if (resource === Resource.materials) {\n const node = gltf.materials[nodeName] as unknown as Material | undefined;\n\n if (!node) {\n console.error(`no node at path ${nodeName}`);\n return;\n }\n\n applyMaterialModifier(property, node, value);\n\n return;\n }\n\n if (resource === Resource.animations) {\n if (!setActiveAnimations) {\n console.error(\n 'cannot apply animation property without setActiveAnimations'\n );\n return;\n }\n\n setActiveAnimations(nodeName, value as boolean);\n return;\n }\n\n console.error(`unknown resource type ${resource}`);\n}\n\nconst getResourceName = (\n { resource, index }: Pick<Path, 'resource' | 'index'>,\n properties: Properties\n) => {\n return properties[resource]?.options[index]?.name;\n};\n\nconst getPropertyFromModel = (\n { resource, index, property }: Path,\n gltf: GLTF & ObjectMap,\n properties: Properties\n) => {\n if (resource === Resource.nodes) {\n const nodeName = getResourceName({ resource, index }, properties);\n if (!nodeName) throw new Error(`could not get node at index ${index}`);\n const node = gltf.nodes[nodeName] as unknown as Object3D | undefined;\n\n if (!node) {\n console.error(`no node at path ${nodeName}`);\n return;\n }\n\n getPropertyValue(property, node);\n\n return;\n }\n};\n\nfunction applyNodeModifier(property: string, objectRef: Object3D, value: any) {\n switch (property) {\n case 'visible': {\n objectRef.visible = value as boolean;\n break;\n }\n case 'translation': {\n const v = value as Vec3;\n objectRef.position.set(v.x, v.y, v.z);\n break;\n }\n case 'scale': {\n const v = value as Vec3;\n objectRef.scale.set(v.x, v.y, v.z);\n break;\n }\n case 'rotation': {\n const v = value as Vec4;\n objectRef.quaternion.set(v.x, v.y, v.z, v.w);\n break;\n }\n }\n}\n\nfunction applyMaterialModifier(\n property: string,\n materialRef: Material,\n value: any\n) {\n switch (property) {\n case 'color': {\n const basic = materialRef as MeshBasicMaterial;\n\n if (basic.color) {\n const v = value as Vec3;\n basic.color.setRGB(v.x, v.y, v.z);\n basic.needsUpdate = true;\n }\n break;\n }\n }\n}\n\nfunction getPropertyValue(property: string, objectRef: Object3D<Event>) {\n switch (property) {\n case 'visible': {\n return objectRef.visible;\n }\n case 'translation': {\n return toVec3(objectRef.position);\n }\n case 'scale': {\n return toVec3(objectRef.scale);\n }\n case 'rotation': {\n return toVec4(objectRef.quaternion);\n }\n default:\n throw new Error(`unrecognized property: ${property}`);\n }\n}\n\nexport type ResourceOption = {\n name: string;\n index: number;\n};\n\nexport type ResourceProperties = {\n options: ResourceOption[];\n properties: string[];\n};\n\ntype Properties = {\n [key in Resource]?: ResourceProperties;\n};\n\nexport type ParsableScene = GLTF &\n ObjectMap & {\n json?: GLTFJson;\n };\n\nexport const extractProperties = (gltf: ParsableScene): Properties => {\n const nodeProperties = [\n 'visible',\n 'translation',\n 'scale',\n 'rotation',\n 'color'\n ];\n const animationProperties = ['playing'];\n const materialProperties = ['color'];\n\n const gltfJson = gltf.parser.json as GLTFJson;\n\n const nodeOptions = gltfJson.nodes?.map(({ name }, index) => ({\n name: name || index.toString(),\n index\n }));\n const materialOptions = gltfJson.materials?.map(({ name }, index) => ({\n name: name || index.toString(),\n index\n }));\n const animationOptions = gltf.animations?.map(({ name }, index) => ({\n name: name || index.toString(),\n index\n }));\n\n const properties: Properties = {};\n\n properties.nodes = { options: nodeOptions, properties: nodeProperties };\n\n if (materialOptions) {\n properties.materials = {\n options: materialOptions,\n properties: materialProperties\n };\n }\n\n if (animationOptions) {\n properties.animations = {\n options: animationOptions,\n properties: animationProperties\n };\n }\n\n return properties;\n};\n\nfunction createPropertyChoice(\n resource: string,\n name: string,\n property: string,\n index: number\n): { text: string; value: any } {\n return {\n text: `${resource}/${name}/${property}`,\n value: `${resource}/${index}/${property}`\n };\n}\n\nfunction generateChoicesForProperty(\n property: ResourceProperties | undefined,\n resource: Resource\n) {\n if (!property) return [];\n const choices: { text: string; value: any }[] = [];\n\n property.options.forEach(({ index, name }) => {\n property.properties.forEach((property) => {\n choices.push(createPropertyChoice(resource, name, property, index));\n });\n });\n\n return choices;\n}\n\nexport function generateSettableChoices(properties: Properties): Choices {\n const choices: { text: string; value: any }[] = [\n ...generateChoicesForProperty(properties.nodes, Resource.nodes),\n ...generateChoicesForProperty(properties.materials, Resource.materials),\n ...generateChoicesForProperty(properties.animations, Resource.animations)\n ];\n\n return choices;\n}\n\nexport function generateRaycastableChoices(properties: Properties): Choices {\n const choices: { text: string; value: any }[] = [];\n\n properties.nodes?.options.forEach(({ index, name }) => {\n choices.push({\n text: `nodes/${name}`,\n value: `nodes/${index}`\n });\n });\n\n return choices;\n}\n\nexport type OnClickCallback = (jsonPath: string) => void;\n\nexport type OnClickListener = {\n path: Path;\n elementName: string;\n callbacks: OnClickCallback[];\n};\n\nexport type OnClickListeners = {\n [jsonPath: string]: OnClickListener;\n};\n\nexport const buildScene = ({\n gltf,\n setOnClickListeners,\n setActiveAnimations\n}: {\n gltf: GLTF & ObjectMap;\n setOnClickListeners:\n | ((cb: (existing: OnClickListeners) => OnClickListeners) => void)\n | undefined;\n setActiveAnimations:\n | ((animation: string, active: boolean) => void)\n | undefined;\n}) => {\n const properties = extractProperties(gltf);\n\n const onSceneChanged = new EventEmitter<void>();\n\n const addOnClickedListener = (\n jsonPath: string,\n callback: (jsonPath: string) => void\n ) => {\n if (!setOnClickListeners) return;\n const path = parseJsonPath(jsonPath, true);\n\n setOnClickListeners((existing) => {\n const listenersForPath = existing[jsonPath] || {\n path,\n elementName: getResourceName(\n { resource: path.resource, index: path.index },\n properties\n )!,\n callbacks: []\n };\n\n const updatedListeners: OnClickListener = {\n ...listenersForPath,\n callbacks: [...listenersForPath.callbacks, callback]\n };\n\n const result: OnClickListeners = {\n ...existing,\n [jsonPath]: updatedListeners\n };\n\n return result;\n });\n };\n\n const removeOnClickedListener = (\n jsonPath: string,\n callback: (jsonPath: string) => void\n ) => {\n if (!setOnClickListeners) return;\n setOnClickListeners((existing) => {\n const listenersForPath = existing[jsonPath];\n\n if (!listenersForPath) return existing;\n\n const updatedCallbacks = listenersForPath.callbacks.filter(\n (x) => x !== callback\n );\n\n if (updatedCallbacks.length > 0) {\n const updatedListeners = {\n ...listenersForPath,\n callback: updatedCallbacks\n };\n\n return {\n ...existing,\n [jsonPath]: updatedListeners\n };\n }\n\n const result = {\n ...existing\n };\n\n delete result[jsonPath];\n\n return result;\n });\n };\n\n const getProperty = (jsonPath: string, _valueTypeName: string) => {\n const path = parseJsonPath(jsonPath);\n\n return getPropertyFromModel(path, gltf, properties);\n };\n\n const setProperty = (jsonPath: string, valueTypeName: string, value: any) => {\n const path = parseJsonPath(jsonPath);\n\n applyPropertyToModel(path, gltf, value, properties, setActiveAnimations);\n\n onSceneChanged.emit();\n };\n\n const settableChoices = generateSettableChoices(properties);\n const raycastableChoices = generateRaycastableChoices(properties);\n\n const addOnSceneChangedListener: IScene['addOnSceneChangedListener'] = (\n listener\n ) => {\n onSceneChanged.addListener(listener);\n };\n\n const removeOnSceneChangedListener: IScene['removeOnSceneChangedListener'] = (\n listener\n ) => {\n onSceneChanged.removeListener(listener);\n };\n\n // This scene is backed by a loaded glTF model and exposes it through the\n // json-path property API (getProperty/setProperty/...). The procedural\n // mesh/light/material API (added to IScene for scene backends like the demo\n // scene) is not supported here, so those operations fail loudly rather than\n // silently doing the wrong thing. Name-enumeration getters return empty so\n // generic choice UIs degrade gracefully instead of throwing.\n const notSupported = (op: string): never => {\n throw new Error(\n `The glTF-backed scene does not support \"${op}\". Use a scene backend that implements the procedural mesh/light API (e.g. the demo scene) for that operation.`\n );\n };\n\n const scene: IScene = {\n getProperty,\n setProperty,\n getProperties: () => settableChoices,\n getRaycastableProperties: () => raycastableChoices,\n addOnClickedListener,\n removeOnClickedListener,\n addOnSceneChangedListener,\n removeOnSceneChangedListener,\n\n // --- procedural mesh/light/material API: unsupported on a glTF scene ---\n createMesh: () => notSupported('createMesh'),\n deleteMesh: () => notSupported('deleteMesh'),\n getMeshNames: () => [],\n addLight: () => notSupported('addLight'),\n removeLight: () => notSupported('removeLight'),\n setLightProperty: () => notSupported('setLightProperty'),\n getLightProperty: () => notSupported('getLightProperty'),\n getLightNames: () => [],\n setMaterialProperty: () => notSupported('setMaterialProperty'),\n getMaterialProperty: () => notSupported('getMaterialProperty'),\n addOnAnyMeshClickedListener: () =>\n notSupported('addOnAnyMeshClickedListener'),\n removeOnAnyMeshClickedListener: () =>\n notSupported('removeOnAnyMeshClickedListener'),\n getMeshPosition: () => notSupported('getMeshPosition'),\n setMeshPosition: () => notSupported('setMeshPosition'),\n getDistanceBetween: () => notSupported('getDistanceBetween'),\n lookAt: () => notSupported('lookAt'),\n moveTowards: () => notSupported('moveTowards'),\n cloneMesh: () => notSupported('cloneMesh'),\n setMeshVisible: () => notSupported('setMeshVisible')\n };\n\n return scene;\n};\n"],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { IScene } from "./Abstractions/IScene.js";
|
|
1
|
+
import { GeometryType, IScene, LightType } from "./Abstractions/IScene.js";
|
|
2
2
|
import { DummyScene } from "./Abstractions/Drivers/DummyScene.js";
|
|
3
3
|
import { Vec2, Vec2JSON, vec2Add, vec2Dot, vec2Equals, vec2FromArray, vec2Length, vec2Mix, vec2MultiplyByScalar, vec2Negate, vec2Normalize, vec2Parse, vec2Subtract, vec2ToArray, vec2ToString } from "./Values/Internal/Vec2.js";
|
|
4
4
|
import { Vec4, Vec4JSON, angleAxisToQuat, eulerToQuat, mat3ToQuat, mat4ToQuat, quatConjugate, quatExp, quatLn, quatMultiply, quatPow, quatSlerp, quatToAngleAxis, vec4Add, vec4Dot, vec4Equals, vec4FromArray, vec4Length, vec4Mix, vec4MultiplyByScalar, vec4Negate, vec4Normalize, vec4Parse, vec4Subtract, vec4ToArray, vec4ToString } from "./Values/Internal/Vec4.js";
|
|
@@ -13,8 +13,21 @@ import { Vec2Value } from "./Values/Vec2Value.js";
|
|
|
13
13
|
import { Vec3Value } from "./Values/Vec3Value.js";
|
|
14
14
|
import { Vec4Value } from "./Values/Vec4Value.js";
|
|
15
15
|
import { QuatValue } from "./Values/QuatValue.js";
|
|
16
|
-
import {
|
|
16
|
+
import { AddLight } from "./Nodes/Actions/AddLight.js";
|
|
17
|
+
import { CloneMesh } from "./Nodes/Actions/CloneMesh.js";
|
|
18
|
+
import { CreateMesh } from "./Nodes/Actions/CreateMesh.js";
|
|
19
|
+
import { DeleteMesh } from "./Nodes/Actions/DeleteMesh.js";
|
|
17
20
|
import { EaseSceneProperty } from "./Nodes/Actions/EaseSceneProperty.js";
|
|
21
|
+
import { LookAt } from "./Nodes/Actions/LookAt.js";
|
|
22
|
+
import { MoveTowards } from "./Nodes/Actions/MoveTowards.js";
|
|
23
|
+
import { RemoveLight } from "./Nodes/Actions/RemoveLight.js";
|
|
24
|
+
import { SetLightProperty } from "./Nodes/Actions/SetLightProperty.js";
|
|
25
|
+
import { SetMaterialProperty } from "./Nodes/Actions/SetMaterialProperty.js";
|
|
26
|
+
import { SetMeshPosition } from "./Nodes/Actions/SetMeshPosition.js";
|
|
27
|
+
import { SetMeshVisible } from "./Nodes/Actions/SetMeshVisible.js";
|
|
28
|
+
import { SetSceneProperty } from "./Nodes/Actions/SetSceneProperty.js";
|
|
29
|
+
import { OnAnyMeshClicked } from "./Nodes/Events/OnAnyMeshClicked.js";
|
|
30
|
+
import { OnSceneChanged } from "./Nodes/Events/OnSceneChanged.js";
|
|
18
31
|
import { OnSceneNodeClick } from "./Nodes/Events/OnSceneNodeClick.js";
|
|
19
32
|
import { ColorNodes_d_exports } from "./Nodes/Logic/ColorNodes.js";
|
|
20
33
|
import { EulerNodes_d_exports } from "./Nodes/Logic/EulerNodes.js";
|
|
@@ -25,7 +38,20 @@ import { Vec3Nodes_d_exports } from "./Nodes/Logic/Vec3Nodes.js";
|
|
|
25
38
|
import { Vec4Nodes_d_exports } from "./Nodes/Logic/Vec4Nodes.js";
|
|
26
39
|
import { QuatNodes_d_exports } from "./Nodes/Logic/QuatNodes.js";
|
|
27
40
|
import { VecElements } from "./Nodes/Logic/VecElements.js";
|
|
41
|
+
import { GetDistanceBetween } from "./Nodes/Queries/GetDistanceBetween.js";
|
|
42
|
+
import { GetLightProperty } from "./Nodes/Queries/GetLightProperty.js";
|
|
43
|
+
import { GetMaterialProperty } from "./Nodes/Queries/GetMaterialProperty.js";
|
|
44
|
+
import { GetMeshPosition } from "./Nodes/Queries/GetMeshPosition.js";
|
|
28
45
|
import { GetSceneProperty } from "./Nodes/Queries/GetSceneProperty.js";
|
|
29
46
|
import { getSceneNodesMap, getSceneStringConversions, getSceneValuesMap, registerSceneProfile } from "./registerSceneProfile.js";
|
|
30
47
|
import { ObjectMap, OnClickCallback, OnClickListener, OnClickListeners, Optional, ParsableScene, Path, ResourceOption, ResourceProperties, applyPropertyToModel, buildScene, extractProperties, generateRaycastableChoices, generateSettableChoices, parseJsonPath, toJsonPathString } from "./buildScene.js";
|
|
31
|
-
|
|
48
|
+
|
|
49
|
+
//#region src/index.d.ts
|
|
50
|
+
declare module '@kiberon-labs/behave-graph' {
|
|
51
|
+
interface Dependencies {
|
|
52
|
+
IScene: IScene;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
//#endregion
|
|
56
|
+
export { AddLight, CloneMesh, ColorNodes_d_exports as ColorNodes, ColorValue, CreateMesh, DeleteMesh, DummyScene, EaseSceneProperty, EulerNodes_d_exports as EulerNodes, EulerValue, GeometryType, GetDistanceBetween, GetLightProperty, GetMaterialProperty, GetMeshPosition, GetSceneProperty, IScene, LightType, LookAt, Mat3, Mat3JSON, Mat3Nodes_d_exports as Mat3Nodes, Mat3Value, Mat4, Mat4JSON, Mat4Nodes_d_exports as Mat4Nodes, Mat4Value, MoveTowards, ObjectMap, OnAnyMeshClicked, OnClickCallback, OnClickListener, OnClickListeners, OnSceneChanged, OnSceneNodeClick, Optional, ParsableScene, Path, QuatNodes_d_exports as QuatNodes, QuatValue, RemoveLight, ResourceOption, ResourceProperties, SetLightProperty, SetMaterialProperty, SetMeshPosition, SetMeshVisible, SetSceneProperty, Vec2, Vec2JSON, Vec2Nodes_d_exports as Vec2Nodes, Vec2Value, Vec3, Vec3JSON, Vec3Nodes_d_exports as Vec3Nodes, Vec3Value, Vec4, Vec4JSON, Vec4Nodes_d_exports as Vec4Nodes, Vec4Value, VecElements, angleAxisToQuat, applyPropertyToModel, buildScene, column3ToMat3, column4ToMat4, eulerToMat3, eulerToMat4, eulerToQuat, extractProperties, generateRaycastableChoices, generateSettableChoices, getSceneNodesMap, getSceneStringConversions, getSceneValuesMap, hexToRGB, hslToRGB, mat3Add, mat3Determinant, mat3Equals, mat3FromArray, mat3Inverse, mat3Mix, mat3Multiply, mat3MultiplyByScalar, mat3Negate, mat3Parse, mat3SetColumn3, mat3SetRow3, mat3Subtract, mat3ToArray, mat3ToEuler, mat3ToMat4, mat3ToQuat, mat3ToScale2, mat3ToScale3, mat3ToString, mat3ToTranslation2, mat3Transpose, mat4Add, mat4Adjoint, mat4Determinant, mat4Equals, mat4FromArray, mat4Inverse, mat4LookAt, mat4Mix, mat4Multiply, mat4MultiplyByScalar, mat4Negate, mat4Orthogonal, mat4OrthogonalSimple, mat4Parse, mat4Perspective, mat4PerspectiveFov, mat4RotateByEuler, mat4RotateByQuat, mat4Scale, mat4SetColumn4, mat4SetRow4, mat4Subtract, mat4ToArray, mat4ToEuler, mat4ToMat3, mat4ToQuat, mat4ToScale3, mat4ToString, mat4ToTranslation3, mat4TransformNormal3, mat4TransformPoint3, mat4Translate, mat4Transpose, parseJsonPath, quatConjugate, quatExp, quatLn, quatMultiply, quatPow, quatSlerp, quatToAngleAxis, quatToEuler, quatToMat3, quatToMat4, registerSceneProfile, rgbToHSL, rgbToHex, scale2ToMat3, scale3ToMat3, scale3ToMat4, toJsonPathString, translation2ToMat3, translation3ToMat4, vec2Add, vec2Dot, vec2Equals, vec2FromArray, vec2Length, vec2Mix, vec2MultiplyByScalar, vec2Negate, vec2Normalize, vec2Parse, vec2Subtract, vec2ToArray, vec2ToString, vec3Add, vec3Cross, vec3Dot, vec3Equals, vec3FromArray, vec3Length, vec3Mix, vec3MultiplyByScalar, vec3Negate, vec3Normalize, vec3Parse, vec3Subtract, vec3ToArray, vec3ToString, vec4Add, vec4Dot, vec4Equals, vec4FromArray, vec4Length, vec4Mix, vec4MultiplyByScalar, vec4Negate, vec4Normalize, vec4Parse, vec4Subtract, vec4ToArray, vec4ToString };
|
|
57
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":[],"sources":["../src/index.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAIY"}
|
package/dist/index.js
CHANGED
|
@@ -1,19 +1,33 @@
|
|
|
1
|
+
import { GeometryType, LightType } from "./Abstractions/IScene.js";
|
|
1
2
|
import { Vec2, vec2Add, vec2Dot, vec2Equals, vec2FromArray, vec2Length, vec2Mix, vec2MultiplyByScalar, vec2Negate, vec2Normalize, vec2Parse, vec2Subtract, vec2ToArray, vec2ToString } from "./Values/Internal/Vec2.js";
|
|
2
|
-
import { Vec4, angleAxisToQuat, eulerToQuat, mat3ToQuat, mat4ToQuat, quatConjugate, quatExp, quatLn, quatMultiply, quatPow, quatSlerp, quatToAngleAxis, vec4Add, vec4Dot, vec4Equals, vec4FromArray, vec4Length, vec4Mix, vec4MultiplyByScalar, vec4Negate, vec4Normalize, vec4Parse, vec4Subtract, vec4ToArray, vec4ToString } from "./Values/Internal/Vec4.js";
|
|
3
|
-
import { Mat4, column4ToMat4, eulerToMat4, mat3ToMat4, mat4Add, mat4Adjoint, mat4Determinant, mat4Equals, mat4FromArray, mat4Inverse, mat4LookAt, mat4Mix, mat4Multiply, mat4MultiplyByScalar, mat4Negate, mat4Orthogonal, mat4OrthogonalSimple, mat4Parse, mat4Perspective, mat4PerspectiveFov, mat4RotateByEuler, mat4RotateByQuat, mat4Scale, mat4SetColumn4, mat4SetRow4, mat4Subtract, mat4ToArray, mat4ToScale3, mat4ToString, mat4ToTranslation3, mat4TransformNormal3, mat4TransformPoint3, mat4Translate, mat4Transpose, quatToMat4, scale3ToMat4, translation3ToMat4 } from "./Values/Internal/Mat4.js";
|
|
4
3
|
import { Mat3, column3ToMat3, eulerToMat3, mat3Add, mat3Determinant, mat3Equals, mat3FromArray, mat3Inverse, mat3Mix, mat3Multiply, mat3MultiplyByScalar, mat3Negate, mat3Parse, mat3SetColumn3, mat3SetRow3, mat3Subtract, mat3ToArray, mat3ToScale2, mat3ToScale3, mat3ToString, mat3ToTranslation2, mat3Transpose, mat4ToMat3, quatToMat3, scale2ToMat3, scale3ToMat3, translation2ToMat3 } from "./Values/Internal/Mat3.js";
|
|
5
4
|
import { Vec3, hexToRGB, hslToRGB, mat3ToEuler, mat4ToEuler, quatToEuler, rgbToHSL, rgbToHex, vec3Add, vec3Cross, vec3Dot, vec3Equals, vec3FromArray, vec3Length, vec3Mix, vec3MultiplyByScalar, vec3Negate, vec3Normalize, vec3Parse, vec3Subtract, vec3ToArray, vec3ToString } from "./Values/Internal/Vec3.js";
|
|
6
5
|
import { ColorValue } from "./Values/ColorValue.js";
|
|
7
6
|
import { EulerValue } from "./Values/EulerValue.js";
|
|
7
|
+
import { Vec4, angleAxisToQuat, eulerToQuat, mat3ToQuat, mat4ToQuat, quatConjugate, quatExp, quatLn, quatMultiply, quatPow, quatSlerp, quatToAngleAxis, vec4Add, vec4Dot, vec4Equals, vec4FromArray, vec4Length, vec4Mix, vec4MultiplyByScalar, vec4Negate, vec4Normalize, vec4Parse, vec4Subtract, vec4ToArray, vec4ToString } from "./Values/Internal/Vec4.js";
|
|
8
8
|
import { QuatValue } from "./Values/QuatValue.js";
|
|
9
9
|
import { Vec2Value } from "./Values/Vec2Value.js";
|
|
10
10
|
import { Vec3Value } from "./Values/Vec3Value.js";
|
|
11
11
|
import { Vec4Value } from "./Values/Vec4Value.js";
|
|
12
12
|
import { DummyScene } from "./Abstractions/Drivers/DummyScene.js";
|
|
13
|
+
import { Mat4, column4ToMat4, eulerToMat4, mat3ToMat4, mat4Add, mat4Adjoint, mat4Determinant, mat4Equals, mat4FromArray, mat4Inverse, mat4LookAt, mat4Mix, mat4Multiply, mat4MultiplyByScalar, mat4Negate, mat4Orthogonal, mat4OrthogonalSimple, mat4Parse, mat4Perspective, mat4PerspectiveFov, mat4RotateByEuler, mat4RotateByQuat, mat4Scale, mat4SetColumn4, mat4SetRow4, mat4Subtract, mat4ToArray, mat4ToScale3, mat4ToString, mat4ToTranslation3, mat4TransformNormal3, mat4TransformPoint3, mat4Translate, mat4Transpose, quatToMat4, scale3ToMat4, translation3ToMat4 } from "./Values/Internal/Mat4.js";
|
|
13
14
|
import { Mat3Value } from "./Values/Mat3Value.js";
|
|
14
15
|
import { Mat4Value } from "./Values/Mat4Value.js";
|
|
15
|
-
import {
|
|
16
|
+
import { AddLight } from "./Nodes/Actions/AddLight.js";
|
|
17
|
+
import { CloneMesh } from "./Nodes/Actions/CloneMesh.js";
|
|
18
|
+
import { CreateMesh } from "./Nodes/Actions/CreateMesh.js";
|
|
19
|
+
import { DeleteMesh } from "./Nodes/Actions/DeleteMesh.js";
|
|
16
20
|
import { EaseSceneProperty } from "./Nodes/Actions/EaseSceneProperty.js";
|
|
21
|
+
import { LookAt } from "./Nodes/Actions/LookAt.js";
|
|
22
|
+
import { MoveTowards } from "./Nodes/Actions/MoveTowards.js";
|
|
23
|
+
import { RemoveLight } from "./Nodes/Actions/RemoveLight.js";
|
|
24
|
+
import { SetLightProperty } from "./Nodes/Actions/SetLightProperty.js";
|
|
25
|
+
import { SetMaterialProperty } from "./Nodes/Actions/SetMaterialProperty.js";
|
|
26
|
+
import { SetMeshPosition } from "./Nodes/Actions/SetMeshPosition.js";
|
|
27
|
+
import { SetMeshVisible } from "./Nodes/Actions/SetMeshVisible.js";
|
|
28
|
+
import { SetSceneProperty } from "./Nodes/Actions/SetSceneProperty.js";
|
|
29
|
+
import { OnAnyMeshClicked } from "./Nodes/Events/OnAnyMeshClicked.js";
|
|
30
|
+
import { OnSceneChanged } from "./Nodes/Events/OnSceneChanged.js";
|
|
17
31
|
import { OnSceneNodeClick } from "./Nodes/Events/OnSceneNodeClick.js";
|
|
18
32
|
import { ColorNodes_exports } from "./Nodes/Logic/ColorNodes.js";
|
|
19
33
|
import { EulerNodes_exports } from "./Nodes/Logic/EulerNodes.js";
|
|
@@ -24,8 +38,12 @@ import { Vec3Nodes_exports } from "./Nodes/Logic/Vec3Nodes.js";
|
|
|
24
38
|
import { Vec4Nodes_exports } from "./Nodes/Logic/Vec4Nodes.js";
|
|
25
39
|
import { QuatNodes_exports } from "./Nodes/Logic/QuatNodes.js";
|
|
26
40
|
import { VecElements } from "./Nodes/Logic/VecElements.js";
|
|
41
|
+
import { GetDistanceBetween } from "./Nodes/Queries/GetDistanceBetween.js";
|
|
42
|
+
import { GetLightProperty } from "./Nodes/Queries/GetLightProperty.js";
|
|
43
|
+
import { GetMaterialProperty } from "./Nodes/Queries/GetMaterialProperty.js";
|
|
44
|
+
import { GetMeshPosition } from "./Nodes/Queries/GetMeshPosition.js";
|
|
27
45
|
import { GetSceneProperty } from "./Nodes/Queries/GetSceneProperty.js";
|
|
28
46
|
import { getSceneNodesMap, getSceneStringConversions, getSceneValuesMap, registerSceneProfile } from "./registerSceneProfile.js";
|
|
29
47
|
import { applyPropertyToModel, buildScene, extractProperties, generateRaycastableChoices, generateSettableChoices, parseJsonPath, toJsonPathString } from "./buildScene.js";
|
|
30
48
|
|
|
31
|
-
export { ColorNodes_exports as ColorNodes, ColorValue, DummyScene, EaseSceneProperty, EulerNodes_exports as EulerNodes, EulerValue, GetSceneProperty, Mat3, Mat3Nodes_exports as Mat3Nodes, Mat3Value, Mat4, Mat4Nodes_exports as Mat4Nodes, Mat4Value, OnSceneNodeClick, QuatNodes_exports as QuatNodes, QuatValue, SetSceneProperty, Vec2, Vec2Nodes_exports as Vec2Nodes, Vec2Value, Vec3, Vec3Nodes_exports as Vec3Nodes, Vec3Value, Vec4, Vec4Nodes_exports as Vec4Nodes, Vec4Value, VecElements, angleAxisToQuat, applyPropertyToModel, buildScene, column3ToMat3, column4ToMat4, eulerToMat3, eulerToMat4, eulerToQuat, extractProperties, generateRaycastableChoices, generateSettableChoices, getSceneNodesMap, getSceneStringConversions, getSceneValuesMap, hexToRGB, hslToRGB, mat3Add, mat3Determinant, mat3Equals, mat3FromArray, mat3Inverse, mat3Mix, mat3Multiply, mat3MultiplyByScalar, mat3Negate, mat3Parse, mat3SetColumn3, mat3SetRow3, mat3Subtract, mat3ToArray, mat3ToEuler, mat3ToMat4, mat3ToQuat, mat3ToScale2, mat3ToScale3, mat3ToString, mat3ToTranslation2, mat3Transpose, mat4Add, mat4Adjoint, mat4Determinant, mat4Equals, mat4FromArray, mat4Inverse, mat4LookAt, mat4Mix, mat4Multiply, mat4MultiplyByScalar, mat4Negate, mat4Orthogonal, mat4OrthogonalSimple, mat4Parse, mat4Perspective, mat4PerspectiveFov, mat4RotateByEuler, mat4RotateByQuat, mat4Scale, mat4SetColumn4, mat4SetRow4, mat4Subtract, mat4ToArray, mat4ToEuler, mat4ToMat3, mat4ToQuat, mat4ToScale3, mat4ToString, mat4ToTranslation3, mat4TransformNormal3, mat4TransformPoint3, mat4Translate, mat4Transpose, parseJsonPath, quatConjugate, quatExp, quatLn, quatMultiply, quatPow, quatSlerp, quatToAngleAxis, quatToEuler, quatToMat3, quatToMat4, registerSceneProfile, rgbToHSL, rgbToHex, scale2ToMat3, scale3ToMat3, scale3ToMat4, toJsonPathString, translation2ToMat3, translation3ToMat4, vec2Add, vec2Dot, vec2Equals, vec2FromArray, vec2Length, vec2Mix, vec2MultiplyByScalar, vec2Negate, vec2Normalize, vec2Parse, vec2Subtract, vec2ToArray, vec2ToString, vec3Add, vec3Cross, vec3Dot, vec3Equals, vec3FromArray, vec3Length, vec3Mix, vec3MultiplyByScalar, vec3Negate, vec3Normalize, vec3Parse, vec3Subtract, vec3ToArray, vec3ToString, vec4Add, vec4Dot, vec4Equals, vec4FromArray, vec4Length, vec4Mix, vec4MultiplyByScalar, vec4Negate, vec4Normalize, vec4Parse, vec4Subtract, vec4ToArray, vec4ToString };
|
|
49
|
+
export { AddLight, CloneMesh, ColorNodes_exports as ColorNodes, ColorValue, CreateMesh, DeleteMesh, DummyScene, EaseSceneProperty, EulerNodes_exports as EulerNodes, EulerValue, GeometryType, GetDistanceBetween, GetLightProperty, GetMaterialProperty, GetMeshPosition, GetSceneProperty, LightType, LookAt, Mat3, Mat3Nodes_exports as Mat3Nodes, Mat3Value, Mat4, Mat4Nodes_exports as Mat4Nodes, Mat4Value, MoveTowards, OnAnyMeshClicked, OnSceneChanged, OnSceneNodeClick, QuatNodes_exports as QuatNodes, QuatValue, RemoveLight, SetLightProperty, SetMaterialProperty, SetMeshPosition, SetMeshVisible, SetSceneProperty, Vec2, Vec2Nodes_exports as Vec2Nodes, Vec2Value, Vec3, Vec3Nodes_exports as Vec3Nodes, Vec3Value, Vec4, Vec4Nodes_exports as Vec4Nodes, Vec4Value, VecElements, angleAxisToQuat, applyPropertyToModel, buildScene, column3ToMat3, column4ToMat4, eulerToMat3, eulerToMat4, eulerToQuat, extractProperties, generateRaycastableChoices, generateSettableChoices, getSceneNodesMap, getSceneStringConversions, getSceneValuesMap, hexToRGB, hslToRGB, mat3Add, mat3Determinant, mat3Equals, mat3FromArray, mat3Inverse, mat3Mix, mat3Multiply, mat3MultiplyByScalar, mat3Negate, mat3Parse, mat3SetColumn3, mat3SetRow3, mat3Subtract, mat3ToArray, mat3ToEuler, mat3ToMat4, mat3ToQuat, mat3ToScale2, mat3ToScale3, mat3ToString, mat3ToTranslation2, mat3Transpose, mat4Add, mat4Adjoint, mat4Determinant, mat4Equals, mat4FromArray, mat4Inverse, mat4LookAt, mat4Mix, mat4Multiply, mat4MultiplyByScalar, mat4Negate, mat4Orthogonal, mat4OrthogonalSimple, mat4Parse, mat4Perspective, mat4PerspectiveFov, mat4RotateByEuler, mat4RotateByQuat, mat4Scale, mat4SetColumn4, mat4SetRow4, mat4Subtract, mat4ToArray, mat4ToEuler, mat4ToMat3, mat4ToQuat, mat4ToScale3, mat4ToString, mat4ToTranslation3, mat4TransformNormal3, mat4TransformPoint3, mat4Translate, mat4Transpose, parseJsonPath, quatConjugate, quatExp, quatLn, quatMultiply, quatPow, quatSlerp, quatToAngleAxis, quatToEuler, quatToMat3, quatToMat4, registerSceneProfile, rgbToHSL, rgbToHex, scale2ToMat3, scale3ToMat3, scale3ToMat4, toJsonPathString, translation2ToMat3, translation3ToMat4, vec2Add, vec2Dot, vec2Equals, vec2FromArray, vec2Length, vec2Mix, vec2MultiplyByScalar, vec2Negate, vec2Normalize, vec2Parse, vec2Subtract, vec2ToArray, vec2ToString, vec3Add, vec3Cross, vec3Dot, vec3Equals, vec3FromArray, vec3Length, vec3Mix, vec3MultiplyByScalar, vec3Negate, vec3Normalize, vec3Parse, vec3Subtract, vec3ToArray, vec3ToString, vec4Add, vec4Dot, vec4Equals, vec4FromArray, vec4Length, vec4Mix, vec4MultiplyByScalar, vec4Negate, vec4Normalize, vec4Parse, vec4Subtract, vec4ToArray, vec4ToString };
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import * as _kiberon_labs_behave_graph0 from "@kiberon-labs/behave-graph";
|
|
2
|
+
|
|
3
|
+
//#region src/manifest.source.d.ts
|
|
4
|
+
declare const _default: _kiberon_labs_behave_graph0.ManifestSource;
|
|
5
|
+
//#endregion
|
|
6
|
+
export { _default as default };
|
|
7
|
+
//# sourceMappingURL=manifest.source.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manifest.source.d.ts","names":[],"sources":["../src/manifest.source.ts"],"sourcesContent":[],"mappings":""}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { DummyScene } from "./Abstractions/Drivers/DummyScene.js";
|
|
2
|
+
import { getSceneNodesMap, getSceneValuesMap } from "./registerSceneProfile.js";
|
|
3
|
+
import { name, version } from "./packages/nodes/scene/package.js";
|
|
4
|
+
import { ContributionKind, PackageCategory, defineManifestSource } from "@kiberon-labs/behave-graph";
|
|
5
|
+
|
|
6
|
+
//#region src/manifest.source.ts
|
|
7
|
+
/**
|
|
8
|
+
* Build-time manifest source for the scene package.
|
|
9
|
+
*
|
|
10
|
+
* The registry projects scene's own nodes + value types into static specs
|
|
11
|
+
* (instantiation only — nodes are never run, no IScene driver needed). The
|
|
12
|
+
* executable profile (`registerSceneProfile`) lives behind the `runtime` entry,
|
|
13
|
+
* loaded only by a runner. Contributions point into the built `dist`: the vec3
|
|
14
|
+
* input control, plus each scene value type so a trusted host can swap the
|
|
15
|
+
* editor's pass-through implementations for the real serializers.
|
|
16
|
+
*/
|
|
17
|
+
const valueTypeContributions = [
|
|
18
|
+
["Vec2Value", "vec2"],
|
|
19
|
+
["Vec3Value", "vec3"],
|
|
20
|
+
["Vec4Value", "vec4"],
|
|
21
|
+
["ColorValue", "color"],
|
|
22
|
+
["EulerValue", "euler"],
|
|
23
|
+
["QuatValue", "quat"],
|
|
24
|
+
["Mat3Value", "mat3"],
|
|
25
|
+
["Mat4Value", "mat4"]
|
|
26
|
+
].map(([exportName, valueType]) => ({
|
|
27
|
+
id: `${valueType}-value`,
|
|
28
|
+
kind: ContributionKind.ValueType,
|
|
29
|
+
export: `./Values/${exportName}.js#${exportName}`,
|
|
30
|
+
bind: { valueType }
|
|
31
|
+
}));
|
|
32
|
+
var manifest_source_default = defineManifestSource({
|
|
33
|
+
package: {
|
|
34
|
+
name,
|
|
35
|
+
version
|
|
36
|
+
},
|
|
37
|
+
registry: () => ({
|
|
38
|
+
nodes: getSceneNodesMap(),
|
|
39
|
+
values: getSceneValuesMap(),
|
|
40
|
+
dependencies: { IScene: new DummyScene() }
|
|
41
|
+
}),
|
|
42
|
+
runtime: "./index.js",
|
|
43
|
+
categories: [PackageCategory.Effect],
|
|
44
|
+
contributions: [{
|
|
45
|
+
id: "vec3-control",
|
|
46
|
+
kind: ContributionKind.Control,
|
|
47
|
+
export: "./ui/controls/vec3.js#Vec3Control",
|
|
48
|
+
bind: { controlName: "vec3" }
|
|
49
|
+
}, ...valueTypeContributions]
|
|
50
|
+
});
|
|
51
|
+
|
|
52
|
+
//#endregion
|
|
53
|
+
export { manifest_source_default as default };
|
|
54
|
+
//# sourceMappingURL=manifest.source.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manifest.source.js","names":["valueTypeContributions: ContributionSpec[]","pkg.name","pkg.version"],"sources":["../src/manifest.source.ts"],"sourcesContent":["import {\n ContributionKind,\n PackageCategory,\n defineManifestSource,\n type ContributionSpec,\n type Dependencies\n} from '@kiberon-labs/behave-graph';\nimport { getSceneNodesMap, getSceneValuesMap } from './registerSceneProfile.js';\nimport { DummyScene } from './Abstractions/Drivers/DummyScene.js';\nimport pkg from '../package.json' with { type: 'json' };\n\n/**\n * Build-time manifest source for the scene package.\n *\n * The registry projects scene's own nodes + value types into static specs\n * (instantiation only — nodes are never run, no IScene driver needed). The\n * executable profile (`registerSceneProfile`) lives behind the `runtime` entry,\n * loaded only by a runner. Contributions point into the built `dist`: the vec3\n * input control, plus each scene value type so a trusted host can swap the\n * editor's pass-through implementations for the real serializers.\n */\n\n// (file, export, valueType name) for each scene value type.\nconst valueTypeContributions: ContributionSpec[] = [\n ['Vec2Value', 'vec2'],\n ['Vec3Value', 'vec3'],\n ['Vec4Value', 'vec4'],\n ['ColorValue', 'color'],\n ['EulerValue', 'euler'],\n ['QuatValue', 'quat'],\n ['Mat3Value', 'mat3'],\n ['Mat4Value', 'mat4']\n].map(([exportName, valueType]) => ({\n id: `${valueType}-value`,\n kind: ContributionKind.ValueType,\n export: `./Values/${exportName}.js#${exportName}`,\n bind: { valueType }\n}));\n\nexport default defineManifestSource({\n package: { name: pkg.name, version: pkg.version },\n registry: () => ({\n nodes: getSceneNodesMap(),\n values: getSceneValuesMap(),\n // The DummyScene driver satisfies IScene-dependent nodes during spec\n // generation (it never runs them); the real driver is host-provided at run\n // time. Without it, scene-property nodes log \"IScene not registered\".\n dependencies: { IScene: new DummyScene() } as unknown as Dependencies\n }),\n runtime: './index.js',\n categories: [PackageCategory.Effect],\n contributions: [\n {\n id: 'vec3-control',\n kind: ContributionKind.Control,\n export: './ui/controls/vec3.js#Vec3Control',\n bind: { controlName: 'vec3' }\n },\n ...valueTypeContributions\n ]\n});\n"],"mappings":";;;;;;;;;;;;;;;;AAuBA,MAAMA,yBAA6C;CACjD,CAAC,aAAa,OAAO;CACrB,CAAC,aAAa,OAAO;CACrB,CAAC,aAAa,OAAO;CACrB,CAAC,cAAc,QAAQ;CACvB,CAAC,cAAc,QAAQ;CACvB,CAAC,aAAa,OAAO;CACrB,CAAC,aAAa,OAAO;CACrB,CAAC,aAAa,OAAO;CACtB,CAAC,KAAK,CAAC,YAAY,gBAAgB;CAClC,IAAI,GAAG,UAAU;CACjB,MAAM,iBAAiB;CACvB,QAAQ,YAAY,WAAW,MAAM;CACrC,MAAM,EAAE,WAAW;CACpB,EAAE;AAEH,8BAAe,qBAAqB;CAClC,SAAS;EAAQC;EAAmBC;EAAa;CACjD,iBAAiB;EACf,OAAO,kBAAkB;EACzB,QAAQ,mBAAmB;EAI3B,cAAc,EAAE,QAAQ,IAAI,YAAY,EAAE;EAC3C;CACD,SAAS;CACT,YAAY,CAAC,gBAAgB,OAAO;CACpC,eAAe,CACb;EACE,IAAI;EACJ,MAAM,iBAAiB;EACvB,QAAQ;EACR,MAAM,EAAE,aAAa,QAAQ;EAC9B,EACD,GAAG,uBACJ;CACF,CAAC"}
|
package/dist/node_modules/.pnpm/react@19.2.3/node_modules/react/cjs/react-jsx-runtime.development.js
ADDED
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
import { __commonJS } from "../../../../../../_virtual/rolldown_runtime.js";
|
|
2
|
+
import { require_react } from "../index.js";
|
|
3
|
+
|
|
4
|
+
//#region ../../../node_modules/.pnpm/react@19.2.3/node_modules/react/cjs/react-jsx-runtime.development.js
|
|
5
|
+
/**
|
|
6
|
+
* @license React
|
|
7
|
+
* react-jsx-runtime.development.js
|
|
8
|
+
*
|
|
9
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
10
|
+
*
|
|
11
|
+
* This source code is licensed under the MIT license found in the
|
|
12
|
+
* LICENSE file in the root directory of this source tree.
|
|
13
|
+
*/
|
|
14
|
+
var require_react_jsx_runtime_development = /* @__PURE__ */ __commonJS({ "../../../node_modules/.pnpm/react@19.2.3/node_modules/react/cjs/react-jsx-runtime.development.js": ((exports) => {
|
|
15
|
+
"production" !== process.env.NODE_ENV && (function() {
|
|
16
|
+
function getComponentNameFromType(type) {
|
|
17
|
+
if (null == type) return null;
|
|
18
|
+
if ("function" === typeof type) return type.$$typeof === REACT_CLIENT_REFERENCE ? null : type.displayName || type.name || null;
|
|
19
|
+
if ("string" === typeof type) return type;
|
|
20
|
+
switch (type) {
|
|
21
|
+
case REACT_FRAGMENT_TYPE: return "Fragment";
|
|
22
|
+
case REACT_PROFILER_TYPE: return "Profiler";
|
|
23
|
+
case REACT_STRICT_MODE_TYPE: return "StrictMode";
|
|
24
|
+
case REACT_SUSPENSE_TYPE: return "Suspense";
|
|
25
|
+
case REACT_SUSPENSE_LIST_TYPE: return "SuspenseList";
|
|
26
|
+
case REACT_ACTIVITY_TYPE: return "Activity";
|
|
27
|
+
}
|
|
28
|
+
if ("object" === typeof type) switch ("number" === typeof type.tag && console.error("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."), type.$$typeof) {
|
|
29
|
+
case REACT_PORTAL_TYPE: return "Portal";
|
|
30
|
+
case REACT_CONTEXT_TYPE: return type.displayName || "Context";
|
|
31
|
+
case REACT_CONSUMER_TYPE: return (type._context.displayName || "Context") + ".Consumer";
|
|
32
|
+
case REACT_FORWARD_REF_TYPE:
|
|
33
|
+
var innerType = type.render;
|
|
34
|
+
type = type.displayName;
|
|
35
|
+
type || (type = innerType.displayName || innerType.name || "", type = "" !== type ? "ForwardRef(" + type + ")" : "ForwardRef");
|
|
36
|
+
return type;
|
|
37
|
+
case REACT_MEMO_TYPE: return innerType = type.displayName || null, null !== innerType ? innerType : getComponentNameFromType(type.type) || "Memo";
|
|
38
|
+
case REACT_LAZY_TYPE:
|
|
39
|
+
innerType = type._payload;
|
|
40
|
+
type = type._init;
|
|
41
|
+
try {
|
|
42
|
+
return getComponentNameFromType(type(innerType));
|
|
43
|
+
} catch (x) {}
|
|
44
|
+
}
|
|
45
|
+
return null;
|
|
46
|
+
}
|
|
47
|
+
function testStringCoercion(value) {
|
|
48
|
+
return "" + value;
|
|
49
|
+
}
|
|
50
|
+
function checkKeyStringCoercion(value) {
|
|
51
|
+
try {
|
|
52
|
+
testStringCoercion(value);
|
|
53
|
+
var JSCompiler_inline_result = !1;
|
|
54
|
+
} catch (e) {
|
|
55
|
+
JSCompiler_inline_result = !0;
|
|
56
|
+
}
|
|
57
|
+
if (JSCompiler_inline_result) {
|
|
58
|
+
JSCompiler_inline_result = console;
|
|
59
|
+
var JSCompiler_temp_const = JSCompiler_inline_result.error;
|
|
60
|
+
var JSCompiler_inline_result$jscomp$0 = "function" === typeof Symbol && Symbol.toStringTag && value[Symbol.toStringTag] || value.constructor.name || "Object";
|
|
61
|
+
JSCompiler_temp_const.call(JSCompiler_inline_result, "The provided key is an unsupported type %s. This value must be coerced to a string before using it here.", JSCompiler_inline_result$jscomp$0);
|
|
62
|
+
return testStringCoercion(value);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
function getTaskName(type) {
|
|
66
|
+
if (type === REACT_FRAGMENT_TYPE) return "<>";
|
|
67
|
+
if ("object" === typeof type && null !== type && type.$$typeof === REACT_LAZY_TYPE) return "<...>";
|
|
68
|
+
try {
|
|
69
|
+
var name = getComponentNameFromType(type);
|
|
70
|
+
return name ? "<" + name + ">" : "<...>";
|
|
71
|
+
} catch (x) {
|
|
72
|
+
return "<...>";
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
function getOwner() {
|
|
76
|
+
var dispatcher = ReactSharedInternals.A;
|
|
77
|
+
return null === dispatcher ? null : dispatcher.getOwner();
|
|
78
|
+
}
|
|
79
|
+
function UnknownOwner() {
|
|
80
|
+
return Error("react-stack-top-frame");
|
|
81
|
+
}
|
|
82
|
+
function hasValidKey(config) {
|
|
83
|
+
if (hasOwnProperty.call(config, "key")) {
|
|
84
|
+
var getter = Object.getOwnPropertyDescriptor(config, "key").get;
|
|
85
|
+
if (getter && getter.isReactWarning) return !1;
|
|
86
|
+
}
|
|
87
|
+
return void 0 !== config.key;
|
|
88
|
+
}
|
|
89
|
+
function defineKeyPropWarningGetter(props, displayName) {
|
|
90
|
+
function warnAboutAccessingKey() {
|
|
91
|
+
specialPropKeyWarningShown || (specialPropKeyWarningShown = !0, console.error("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)", displayName));
|
|
92
|
+
}
|
|
93
|
+
warnAboutAccessingKey.isReactWarning = !0;
|
|
94
|
+
Object.defineProperty(props, "key", {
|
|
95
|
+
get: warnAboutAccessingKey,
|
|
96
|
+
configurable: !0
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
function elementRefGetterWithDeprecationWarning() {
|
|
100
|
+
var componentName = getComponentNameFromType(this.type);
|
|
101
|
+
didWarnAboutElementRef[componentName] || (didWarnAboutElementRef[componentName] = !0, console.error("Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release."));
|
|
102
|
+
componentName = this.props.ref;
|
|
103
|
+
return void 0 !== componentName ? componentName : null;
|
|
104
|
+
}
|
|
105
|
+
function ReactElement(type, key, props, owner, debugStack, debugTask) {
|
|
106
|
+
var refProp = props.ref;
|
|
107
|
+
type = {
|
|
108
|
+
$$typeof: REACT_ELEMENT_TYPE,
|
|
109
|
+
type,
|
|
110
|
+
key,
|
|
111
|
+
props,
|
|
112
|
+
_owner: owner
|
|
113
|
+
};
|
|
114
|
+
null !== (void 0 !== refProp ? refProp : null) ? Object.defineProperty(type, "ref", {
|
|
115
|
+
enumerable: !1,
|
|
116
|
+
get: elementRefGetterWithDeprecationWarning
|
|
117
|
+
}) : Object.defineProperty(type, "ref", {
|
|
118
|
+
enumerable: !1,
|
|
119
|
+
value: null
|
|
120
|
+
});
|
|
121
|
+
type._store = {};
|
|
122
|
+
Object.defineProperty(type._store, "validated", {
|
|
123
|
+
configurable: !1,
|
|
124
|
+
enumerable: !1,
|
|
125
|
+
writable: !0,
|
|
126
|
+
value: 0
|
|
127
|
+
});
|
|
128
|
+
Object.defineProperty(type, "_debugInfo", {
|
|
129
|
+
configurable: !1,
|
|
130
|
+
enumerable: !1,
|
|
131
|
+
writable: !0,
|
|
132
|
+
value: null
|
|
133
|
+
});
|
|
134
|
+
Object.defineProperty(type, "_debugStack", {
|
|
135
|
+
configurable: !1,
|
|
136
|
+
enumerable: !1,
|
|
137
|
+
writable: !0,
|
|
138
|
+
value: debugStack
|
|
139
|
+
});
|
|
140
|
+
Object.defineProperty(type, "_debugTask", {
|
|
141
|
+
configurable: !1,
|
|
142
|
+
enumerable: !1,
|
|
143
|
+
writable: !0,
|
|
144
|
+
value: debugTask
|
|
145
|
+
});
|
|
146
|
+
Object.freeze && (Object.freeze(type.props), Object.freeze(type));
|
|
147
|
+
return type;
|
|
148
|
+
}
|
|
149
|
+
function jsxDEVImpl(type, config, maybeKey, isStaticChildren, debugStack, debugTask) {
|
|
150
|
+
var children = config.children;
|
|
151
|
+
if (void 0 !== children) if (isStaticChildren) if (isArrayImpl(children)) {
|
|
152
|
+
for (isStaticChildren = 0; isStaticChildren < children.length; isStaticChildren++) validateChildKeys(children[isStaticChildren]);
|
|
153
|
+
Object.freeze && Object.freeze(children);
|
|
154
|
+
} else console.error("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");
|
|
155
|
+
else validateChildKeys(children);
|
|
156
|
+
if (hasOwnProperty.call(config, "key")) {
|
|
157
|
+
children = getComponentNameFromType(type);
|
|
158
|
+
var keys = Object.keys(config).filter(function(k) {
|
|
159
|
+
return "key" !== k;
|
|
160
|
+
});
|
|
161
|
+
isStaticChildren = 0 < keys.length ? "{key: someKey, " + keys.join(": ..., ") + ": ...}" : "{key: someKey}";
|
|
162
|
+
didWarnAboutKeySpread[children + isStaticChildren] || (keys = 0 < keys.length ? "{" + keys.join(": ..., ") + ": ...}" : "{}", console.error("A props object containing a \"key\" prop is being spread into JSX:\n let props = %s;\n <%s {...props} />\nReact keys must be passed directly to JSX without using spread:\n let props = %s;\n <%s key={someKey} {...props} />", isStaticChildren, children, keys, children), didWarnAboutKeySpread[children + isStaticChildren] = !0);
|
|
163
|
+
}
|
|
164
|
+
children = null;
|
|
165
|
+
void 0 !== maybeKey && (checkKeyStringCoercion(maybeKey), children = "" + maybeKey);
|
|
166
|
+
hasValidKey(config) && (checkKeyStringCoercion(config.key), children = "" + config.key);
|
|
167
|
+
if ("key" in config) {
|
|
168
|
+
maybeKey = {};
|
|
169
|
+
for (var propName in config) "key" !== propName && (maybeKey[propName] = config[propName]);
|
|
170
|
+
} else maybeKey = config;
|
|
171
|
+
children && defineKeyPropWarningGetter(maybeKey, "function" === typeof type ? type.displayName || type.name || "Unknown" : type);
|
|
172
|
+
return ReactElement(type, children, maybeKey, getOwner(), debugStack, debugTask);
|
|
173
|
+
}
|
|
174
|
+
function validateChildKeys(node) {
|
|
175
|
+
isValidElement(node) ? node._store && (node._store.validated = 1) : "object" === typeof node && null !== node && node.$$typeof === REACT_LAZY_TYPE && ("fulfilled" === node._payload.status ? isValidElement(node._payload.value) && node._payload.value._store && (node._payload.value._store.validated = 1) : node._store && (node._store.validated = 1));
|
|
176
|
+
}
|
|
177
|
+
function isValidElement(object) {
|
|
178
|
+
return "object" === typeof object && null !== object && object.$$typeof === REACT_ELEMENT_TYPE;
|
|
179
|
+
}
|
|
180
|
+
var React = require_react(), REACT_ELEMENT_TYPE = Symbol.for("react.transitional.element"), REACT_PORTAL_TYPE = Symbol.for("react.portal"), REACT_FRAGMENT_TYPE = Symbol.for("react.fragment"), REACT_STRICT_MODE_TYPE = Symbol.for("react.strict_mode"), REACT_PROFILER_TYPE = Symbol.for("react.profiler"), REACT_CONSUMER_TYPE = Symbol.for("react.consumer"), REACT_CONTEXT_TYPE = Symbol.for("react.context"), REACT_FORWARD_REF_TYPE = Symbol.for("react.forward_ref"), REACT_SUSPENSE_TYPE = Symbol.for("react.suspense"), REACT_SUSPENSE_LIST_TYPE = Symbol.for("react.suspense_list"), REACT_MEMO_TYPE = Symbol.for("react.memo"), REACT_LAZY_TYPE = Symbol.for("react.lazy"), REACT_ACTIVITY_TYPE = Symbol.for("react.activity"), REACT_CLIENT_REFERENCE = Symbol.for("react.client.reference"), ReactSharedInternals = React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE, hasOwnProperty = Object.prototype.hasOwnProperty, isArrayImpl = Array.isArray, createTask = console.createTask ? console.createTask : function() {
|
|
181
|
+
return null;
|
|
182
|
+
};
|
|
183
|
+
React = { react_stack_bottom_frame: function(callStackForError) {
|
|
184
|
+
return callStackForError();
|
|
185
|
+
} };
|
|
186
|
+
var specialPropKeyWarningShown;
|
|
187
|
+
var didWarnAboutElementRef = {};
|
|
188
|
+
var unknownOwnerDebugStack = React.react_stack_bottom_frame.bind(React, UnknownOwner)();
|
|
189
|
+
var unknownOwnerDebugTask = createTask(getTaskName(UnknownOwner));
|
|
190
|
+
var didWarnAboutKeySpread = {};
|
|
191
|
+
exports.Fragment = REACT_FRAGMENT_TYPE;
|
|
192
|
+
exports.jsx = function(type, config, maybeKey) {
|
|
193
|
+
var trackActualOwner = 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;
|
|
194
|
+
return jsxDEVImpl(type, config, maybeKey, !1, trackActualOwner ? Error("react-stack-top-frame") : unknownOwnerDebugStack, trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask);
|
|
195
|
+
};
|
|
196
|
+
exports.jsxs = function(type, config, maybeKey) {
|
|
197
|
+
var trackActualOwner = 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;
|
|
198
|
+
return jsxDEVImpl(type, config, maybeKey, !0, trackActualOwner ? Error("react-stack-top-frame") : unknownOwnerDebugStack, trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask);
|
|
199
|
+
};
|
|
200
|
+
})();
|
|
201
|
+
}) });
|
|
202
|
+
|
|
203
|
+
//#endregion
|
|
204
|
+
export default require_react_jsx_runtime_development();
|
|
205
|
+
|
|
206
|
+
export { require_react_jsx_runtime_development };
|
|
207
|
+
//# sourceMappingURL=react-jsx-runtime.development.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"react-jsx-runtime.development.js","names":[],"sources":["../../../../../../../../../../node_modules/.pnpm/react@19.2.3/node_modules/react/cjs/react-jsx-runtime.development.js"],"sourcesContent":["/**\n * @license React\n * react-jsx-runtime.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\n\"production\" !== process.env.NODE_ENV &&\n (function () {\n function getComponentNameFromType(type) {\n if (null == type) return null;\n if (\"function\" === typeof type)\n return type.$$typeof === REACT_CLIENT_REFERENCE\n ? null\n : type.displayName || type.name || null;\n if (\"string\" === typeof type) return type;\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return \"Fragment\";\n case REACT_PROFILER_TYPE:\n return \"Profiler\";\n case REACT_STRICT_MODE_TYPE:\n return \"StrictMode\";\n case REACT_SUSPENSE_TYPE:\n return \"Suspense\";\n case REACT_SUSPENSE_LIST_TYPE:\n return \"SuspenseList\";\n case REACT_ACTIVITY_TYPE:\n return \"Activity\";\n }\n if (\"object\" === typeof type)\n switch (\n (\"number\" === typeof type.tag &&\n console.error(\n \"Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.\"\n ),\n type.$$typeof)\n ) {\n case REACT_PORTAL_TYPE:\n return \"Portal\";\n case REACT_CONTEXT_TYPE:\n return type.displayName || \"Context\";\n case REACT_CONSUMER_TYPE:\n return (type._context.displayName || \"Context\") + \".Consumer\";\n case REACT_FORWARD_REF_TYPE:\n var innerType = type.render;\n type = type.displayName;\n type ||\n ((type = innerType.displayName || innerType.name || \"\"),\n (type = \"\" !== type ? \"ForwardRef(\" + type + \")\" : \"ForwardRef\"));\n return type;\n case REACT_MEMO_TYPE:\n return (\n (innerType = type.displayName || null),\n null !== innerType\n ? innerType\n : getComponentNameFromType(type.type) || \"Memo\"\n );\n case REACT_LAZY_TYPE:\n innerType = type._payload;\n type = type._init;\n try {\n return getComponentNameFromType(type(innerType));\n } catch (x) {}\n }\n return null;\n }\n function testStringCoercion(value) {\n return \"\" + value;\n }\n function checkKeyStringCoercion(value) {\n try {\n testStringCoercion(value);\n var JSCompiler_inline_result = !1;\n } catch (e) {\n JSCompiler_inline_result = !0;\n }\n if (JSCompiler_inline_result) {\n JSCompiler_inline_result = console;\n var JSCompiler_temp_const = JSCompiler_inline_result.error;\n var JSCompiler_inline_result$jscomp$0 =\n (\"function\" === typeof Symbol &&\n Symbol.toStringTag &&\n value[Symbol.toStringTag]) ||\n value.constructor.name ||\n \"Object\";\n JSCompiler_temp_const.call(\n JSCompiler_inline_result,\n \"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.\",\n JSCompiler_inline_result$jscomp$0\n );\n return testStringCoercion(value);\n }\n }\n function getTaskName(type) {\n if (type === REACT_FRAGMENT_TYPE) return \"<>\";\n if (\n \"object\" === typeof type &&\n null !== type &&\n type.$$typeof === REACT_LAZY_TYPE\n )\n return \"<...>\";\n try {\n var name = getComponentNameFromType(type);\n return name ? \"<\" + name + \">\" : \"<...>\";\n } catch (x) {\n return \"<...>\";\n }\n }\n function getOwner() {\n var dispatcher = ReactSharedInternals.A;\n return null === dispatcher ? null : dispatcher.getOwner();\n }\n function UnknownOwner() {\n return Error(\"react-stack-top-frame\");\n }\n function hasValidKey(config) {\n if (hasOwnProperty.call(config, \"key\")) {\n var getter = Object.getOwnPropertyDescriptor(config, \"key\").get;\n if (getter && getter.isReactWarning) return !1;\n }\n return void 0 !== config.key;\n }\n function defineKeyPropWarningGetter(props, displayName) {\n function warnAboutAccessingKey() {\n specialPropKeyWarningShown ||\n ((specialPropKeyWarningShown = !0),\n console.error(\n \"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)\",\n displayName\n ));\n }\n warnAboutAccessingKey.isReactWarning = !0;\n Object.defineProperty(props, \"key\", {\n get: warnAboutAccessingKey,\n configurable: !0\n });\n }\n function elementRefGetterWithDeprecationWarning() {\n var componentName = getComponentNameFromType(this.type);\n didWarnAboutElementRef[componentName] ||\n ((didWarnAboutElementRef[componentName] = !0),\n console.error(\n \"Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.\"\n ));\n componentName = this.props.ref;\n return void 0 !== componentName ? componentName : null;\n }\n function ReactElement(type, key, props, owner, debugStack, debugTask) {\n var refProp = props.ref;\n type = {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n props: props,\n _owner: owner\n };\n null !== (void 0 !== refProp ? refProp : null)\n ? Object.defineProperty(type, \"ref\", {\n enumerable: !1,\n get: elementRefGetterWithDeprecationWarning\n })\n : Object.defineProperty(type, \"ref\", { enumerable: !1, value: null });\n type._store = {};\n Object.defineProperty(type._store, \"validated\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: 0\n });\n Object.defineProperty(type, \"_debugInfo\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: null\n });\n Object.defineProperty(type, \"_debugStack\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugStack\n });\n Object.defineProperty(type, \"_debugTask\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugTask\n });\n Object.freeze && (Object.freeze(type.props), Object.freeze(type));\n return type;\n }\n function jsxDEVImpl(\n type,\n config,\n maybeKey,\n isStaticChildren,\n debugStack,\n debugTask\n ) {\n var children = config.children;\n if (void 0 !== children)\n if (isStaticChildren)\n if (isArrayImpl(children)) {\n for (\n isStaticChildren = 0;\n isStaticChildren < children.length;\n isStaticChildren++\n )\n validateChildKeys(children[isStaticChildren]);\n Object.freeze && Object.freeze(children);\n } else\n console.error(\n \"React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.\"\n );\n else validateChildKeys(children);\n if (hasOwnProperty.call(config, \"key\")) {\n children = getComponentNameFromType(type);\n var keys = Object.keys(config).filter(function (k) {\n return \"key\" !== k;\n });\n isStaticChildren =\n 0 < keys.length\n ? \"{key: someKey, \" + keys.join(\": ..., \") + \": ...}\"\n : \"{key: someKey}\";\n didWarnAboutKeySpread[children + isStaticChildren] ||\n ((keys =\n 0 < keys.length ? \"{\" + keys.join(\": ..., \") + \": ...}\" : \"{}\"),\n console.error(\n 'A props object containing a \"key\" prop is being spread into JSX:\\n let props = %s;\\n <%s {...props} />\\nReact keys must be passed directly to JSX without using spread:\\n let props = %s;\\n <%s key={someKey} {...props} />',\n isStaticChildren,\n children,\n keys,\n children\n ),\n (didWarnAboutKeySpread[children + isStaticChildren] = !0));\n }\n children = null;\n void 0 !== maybeKey &&\n (checkKeyStringCoercion(maybeKey), (children = \"\" + maybeKey));\n hasValidKey(config) &&\n (checkKeyStringCoercion(config.key), (children = \"\" + config.key));\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n children &&\n defineKeyPropWarningGetter(\n maybeKey,\n \"function\" === typeof type\n ? type.displayName || type.name || \"Unknown\"\n : type\n );\n return ReactElement(\n type,\n children,\n maybeKey,\n getOwner(),\n debugStack,\n debugTask\n );\n }\n function validateChildKeys(node) {\n isValidElement(node)\n ? node._store && (node._store.validated = 1)\n : \"object\" === typeof node &&\n null !== node &&\n node.$$typeof === REACT_LAZY_TYPE &&\n (\"fulfilled\" === node._payload.status\n ? isValidElement(node._payload.value) &&\n node._payload.value._store &&\n (node._payload.value._store.validated = 1)\n : node._store && (node._store.validated = 1));\n }\n function isValidElement(object) {\n return (\n \"object\" === typeof object &&\n null !== object &&\n object.$$typeof === REACT_ELEMENT_TYPE\n );\n }\n var React = require(\"react\"),\n REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\"),\n REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n REACT_ACTIVITY_TYPE = Symbol.for(\"react.activity\"),\n REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\"),\n ReactSharedInternals =\n React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,\n hasOwnProperty = Object.prototype.hasOwnProperty,\n isArrayImpl = Array.isArray,\n createTask = console.createTask\n ? console.createTask\n : function () {\n return null;\n };\n React = {\n react_stack_bottom_frame: function (callStackForError) {\n return callStackForError();\n }\n };\n var specialPropKeyWarningShown;\n var didWarnAboutElementRef = {};\n var unknownOwnerDebugStack = React.react_stack_bottom_frame.bind(\n React,\n UnknownOwner\n )();\n var unknownOwnerDebugTask = createTask(getTaskName(UnknownOwner));\n var didWarnAboutKeySpread = {};\n exports.Fragment = REACT_FRAGMENT_TYPE;\n exports.jsx = function (type, config, maybeKey) {\n var trackActualOwner =\n 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return jsxDEVImpl(\n type,\n config,\n maybeKey,\n !1,\n trackActualOwner\n ? Error(\"react-stack-top-frame\")\n : unknownOwnerDebugStack,\n trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask\n );\n };\n exports.jsxs = function (type, config, maybeKey) {\n var trackActualOwner =\n 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return jsxDEVImpl(\n type,\n config,\n maybeKey,\n !0,\n trackActualOwner\n ? Error(\"react-stack-top-frame\")\n : unknownOwnerDebugStack,\n trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask\n );\n };\n })();\n"],"x_google_ignoreList":[0],"mappings":"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"}
|