@tresjs/core 5.1.1 → 5.2.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/dist/tres.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* name: @tresjs/core
|
|
3
|
-
* version: v5.
|
|
3
|
+
* version: v5.2.0
|
|
4
4
|
* (c) 2025
|
|
5
5
|
* description: Declarative ThreeJS using Vue Components
|
|
6
6
|
* author: Alvaro Saburido <hola@alvarosaburido.dev> (https://github.com/alvarosabu/)
|
|
7
7
|
*/
|
|
8
|
-
import * as
|
|
8
|
+
import * as vue10 from "vue";
|
|
9
9
|
import { App, ComputedRef, DefineComponent, MaybeRef, MaybeRefOrGetter, Reactive, Ref, ShallowRef, VNode, VNodeRef } from "vue";
|
|
10
10
|
import * as THREE from "three";
|
|
11
11
|
import { BufferGeometry, Camera, Color, ColorRepresentation, ColorSpace, Event, Fog, Group, Layers, Light, Loader, LoadingManager, Material, Mesh, Object3D, Object3DEventMap, OrthographicCamera, PerspectiveCamera, Scene, ShadowMapType, ToneMapping, Vector3, WebGLRenderer } from "three";
|
|
@@ -311,7 +311,7 @@ declare function useRendererManager({
|
|
|
311
311
|
onReady: _vueuse_core0.EventHookOn<TresRenderer>;
|
|
312
312
|
onRender: _vueuse_core0.EventHookOn<TresRenderer>;
|
|
313
313
|
invalidate: (amountOfFramesToInvalidate?: number) => void;
|
|
314
|
-
canBeInvalidated:
|
|
314
|
+
canBeInvalidated: vue10.ComputedRef<boolean>;
|
|
315
315
|
mode: "always" | "on-demand" | "manual" | undefined;
|
|
316
316
|
replaceRenderFunction: (fn: RenderFunction) => void;
|
|
317
317
|
};
|
|
@@ -329,7 +329,7 @@ declare function useEventManager({
|
|
|
329
329
|
canvas: MaybeRef<HTMLCanvasElement>;
|
|
330
330
|
contextParts: Pick<TresContext, 'scene' | 'camera' | 'renderer'>;
|
|
331
331
|
}): {
|
|
332
|
-
onPointerMissed: _vueuse_core0.EventHookOn<
|
|
332
|
+
onPointerMissed: _vueuse_core0.EventHookOn<TresPointerEvent & Event<"click", Object3D<Object3DEventMap & PointerEventsMap>>>;
|
|
333
333
|
};
|
|
334
334
|
//#endregion
|
|
335
335
|
//#region src/composables/useTresContextProvider/index.d.ts
|
|
@@ -353,6 +353,7 @@ declare const useTresContext: () => TresContext;
|
|
|
353
353
|
//#region src/utils/pointerEvents.d.ts
|
|
354
354
|
declare const supportedPointerEvents: readonly ["onClick", "onContextmenu", "onPointermove", "onPointerenter", "onPointerleave", "onPointerover", "onPointerout", "onDblclick", "onPointerdown", "onPointerup", "onPointercancel", "onLostpointercapture", "onWheel"];
|
|
355
355
|
type SupportedVuePointerEvent = typeof supportedPointerEvents[number];
|
|
356
|
+
type TresPointerEventName = 'click' | 'contextmenu' | 'pointermove' | 'pointerenter' | 'pointerleave' | 'pointerover' | 'pointerout' | 'dblclick' | 'pointerdown' | 'pointerup' | 'pointercancel' | 'lostpointercapture' | 'wheel';
|
|
356
357
|
type TresPointerEvent = PointerEvent<MouseEvent>;
|
|
357
358
|
type PointerEventHandlers = { [key in SupportedVuePointerEvent]: (event: TresPointerEvent) => void };
|
|
358
359
|
//#endregion
|
|
@@ -361,10 +362,10 @@ type AttachFnType = (parent: any, self: TresInstance) => () => void;
|
|
|
361
362
|
type AttachType = string | AttachFnType;
|
|
362
363
|
type DisposeType = ((self: TresInstance) => void) | boolean | 'default';
|
|
363
364
|
type ConstructorRepresentation = new (...args: any[]) => any;
|
|
364
|
-
type NonFunctionKeys<P> = { [K in keyof P]-?: P[K] extends ((...args: any[]) => any) ? never : K }[keyof P];
|
|
365
|
-
type Overwrite<P, O> = Omit<P, NonFunctionKeys<O>> & O;
|
|
365
|
+
type NonFunctionKeys<P$1> = { [K in keyof P$1]-?: P$1[K] extends ((...args: any[]) => any) ? never : K }[keyof P$1];
|
|
366
|
+
type Overwrite<P$1, O> = Omit<P$1, NonFunctionKeys<O>> & O;
|
|
366
367
|
type Properties<T> = Pick<T, NonFunctionKeys<T>>;
|
|
367
|
-
type Mutable<P> = { [K in keyof P]: P[K] | Readonly<P[K]> };
|
|
368
|
+
type Mutable<P$1> = { [K in keyof P$1]: P$1[K] | Readonly<P$1[K]> };
|
|
368
369
|
type Args<T> = T extends ConstructorRepresentation ? ConstructorParameters<T> : any[];
|
|
369
370
|
interface TresCatalogue {
|
|
370
371
|
[name: string]: ConstructorRepresentation;
|
|
@@ -376,8 +377,8 @@ type TresCamera = THREE.OrthographicCamera | THREE.PerspectiveCamera;
|
|
|
376
377
|
* @template T - The type of the object.
|
|
377
378
|
* @template P - The type of the arguments.
|
|
378
379
|
*/
|
|
379
|
-
interface InstanceProps<T = any, P = any> {
|
|
380
|
-
args?: Args<P>;
|
|
380
|
+
interface InstanceProps<T = any, P$1 = any> {
|
|
381
|
+
args?: Args<P$1>;
|
|
381
382
|
object?: T;
|
|
382
383
|
visible?: boolean;
|
|
383
384
|
dispose?: null;
|
|
@@ -454,17 +455,17 @@ type TresContextWithClock = TresContext & {
|
|
|
454
455
|
delta: number;
|
|
455
456
|
elapsed: number;
|
|
456
457
|
};
|
|
457
|
-
type WithMathProps<P> = { [K in keyof P]: P[K] extends MathRepresentation | THREE.Euler ? MathType<P[K]> : P[K] };
|
|
458
|
+
type WithMathProps<P$1> = { [K in keyof P$1]: P$1[K] extends MathRepresentation | THREE.Euler ? MathType<P$1[K]> : P$1[K] };
|
|
458
459
|
interface RaycastableRepresentation {
|
|
459
460
|
raycast: (raycaster: THREE.Raycaster, intersects: THREE.Intersection[]) => void;
|
|
460
461
|
}
|
|
461
|
-
type EventProps<P> = P extends RaycastableRepresentation ? Partial<PointerEventHandlers> : unknown;
|
|
462
|
+
type EventProps<P$1> = P$1 extends RaycastableRepresentation ? Partial<PointerEventHandlers> : unknown;
|
|
462
463
|
interface VueProps {
|
|
463
464
|
children?: VNode[];
|
|
464
465
|
ref?: VNodeRef;
|
|
465
466
|
key?: string | number | symbol;
|
|
466
467
|
}
|
|
467
|
-
type ElementProps<T extends ConstructorRepresentation, P = InstanceType<T>> = Partial<Overwrite<P, WithMathProps<P> & VueProps & EventProps<P>>>;
|
|
468
|
+
type ElementProps<T extends ConstructorRepresentation, P$1 = InstanceType<T>> = Partial<Overwrite<P$1, WithMathProps<P$1> & VueProps & EventProps<P$1>>>;
|
|
468
469
|
type ThreeElement<T extends ConstructorRepresentation> = Mutable<Overwrite<ElementProps<T>, Omit<InstanceProps<InstanceType<T>, T>, 'object'>>>;
|
|
469
470
|
type ThreeExports = typeof THREE;
|
|
470
471
|
type ThreeInstancesImpl = { [K in keyof ThreeExports as Uncapitalize<K>]: ThreeExports[K] extends ConstructorRepresentation ? ThreeElement<ThreeExports[K]> : never };
|
|
@@ -496,7 +497,7 @@ interface TresObjectMap {
|
|
|
496
497
|
declare function buildGraph(object: Object3D | TresObject): TresObjectMap;
|
|
497
498
|
//#endregion
|
|
498
499
|
//#region src/composables/useLoader/component.vue.d.ts
|
|
499
|
-
declare const __VLS_export$1: <T extends TresObjectMap>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>,
|
|
500
|
+
declare const __VLS_export$1: <T extends TresObjectMap>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
|
|
500
501
|
props: __VLS_PrettifyLocal<{
|
|
501
502
|
/**
|
|
502
503
|
* The THREE.js loader to use
|
|
@@ -513,25 +514,27 @@ declare const __VLS_export$1: <T extends TresObjectMap>(__VLS_props: NonNullable
|
|
|
513
514
|
} & {
|
|
514
515
|
onLoaded?: ((result: T) => any) | undefined;
|
|
515
516
|
onError?: ((error: unknown) => any) | undefined;
|
|
516
|
-
}> &
|
|
517
|
+
}> & vue10.PublicProps & (typeof globalThis extends {
|
|
518
|
+
__VLS_PROPS_FALLBACK: infer P;
|
|
519
|
+
} ? P : {});
|
|
517
520
|
expose: (exposed: {}) => void;
|
|
518
521
|
attrs: any;
|
|
519
522
|
slots: {
|
|
520
523
|
default?: (props: {
|
|
521
|
-
state:
|
|
524
|
+
state: vue10.UnwrapRef<T>;
|
|
522
525
|
isLoading: boolean;
|
|
523
526
|
error: unknown;
|
|
524
527
|
}) => any;
|
|
525
528
|
};
|
|
526
529
|
emit: ((evt: "loaded", result: T) => void) & ((evt: "error", error: unknown) => void);
|
|
527
|
-
}>) =>
|
|
530
|
+
}>) => vue10.VNode & {
|
|
528
531
|
__ctx?: Awaited<typeof __VLS_setup>;
|
|
529
532
|
};
|
|
530
533
|
declare const _default$1: typeof __VLS_export$1;
|
|
531
|
-
type __VLS_PrettifyLocal<T> = { [K in keyof T as K]: T[K] } & {};
|
|
534
|
+
type __VLS_PrettifyLocal<T> = (T extends any ? { [K in keyof T]: T[K] } : { [K in keyof T as K]: T[K] }) & {};
|
|
532
535
|
//#endregion
|
|
533
536
|
//#region src/composables/useGraph/index.d.ts
|
|
534
|
-
declare const useGraph: (object: MaybeRef$1<TresObject | undefined>) =>
|
|
537
|
+
declare const useGraph: (object: MaybeRef$1<TresObject | undefined>) => vue10.ComputedRef<TresObjectMap | undefined>;
|
|
535
538
|
//#endregion
|
|
536
539
|
//#region src/utils/createPriorityEventHook.d.ts
|
|
537
540
|
type Callback<T> = Parameters<EventHookOff<T>>[0];
|
|
@@ -582,7 +585,7 @@ type LoopContext = RafLoopContext & TresPartialContext;
|
|
|
582
585
|
declare const useLoop: () => {
|
|
583
586
|
stop: () => void;
|
|
584
587
|
start: () => void;
|
|
585
|
-
isActive: Readonly<
|
|
588
|
+
isActive: Readonly<vue10.ShallowRef<boolean>>;
|
|
586
589
|
onBeforeRender: PriorityEventHookOn<LoopContext>;
|
|
587
590
|
onRender: PriorityEventHookOn<LoopContext>;
|
|
588
591
|
render: (fn: RenderFunction) => void;
|
|
@@ -660,49 +663,58 @@ interface TresCanvasProps extends RendererOptions {
|
|
|
660
663
|
*/
|
|
661
664
|
enableProvideBridge?: boolean;
|
|
662
665
|
}
|
|
663
|
-
|
|
664
|
-
context:
|
|
666
|
+
type TresCanvasEmits = {
|
|
667
|
+
ready: [context: TresContext];
|
|
668
|
+
pointermissed: [event: TresPointerEvent];
|
|
669
|
+
render: [context: TresContext];
|
|
670
|
+
beforeLoop: [context: TresContextWithClock];
|
|
671
|
+
loop: [context: TresContextWithClock];
|
|
672
|
+
} & { [key in TresPointerEventName]: [event: TresPointerEvent] };
|
|
673
|
+
declare const _default: typeof __VLS_export;
|
|
674
|
+
declare const __VLS_export: __VLS_WithSlots<vue10.DefineComponent<TresCanvasProps, {
|
|
675
|
+
context: vue10.ShallowRef<TresContext | null, TresContext | null>;
|
|
665
676
|
dispose: () => void;
|
|
666
|
-
}, {}, {}, {},
|
|
667
|
-
click: (event:
|
|
668
|
-
contextmenu: (event:
|
|
669
|
-
pointermove: (event:
|
|
670
|
-
pointerenter: (event:
|
|
671
|
-
pointerleave: (event:
|
|
672
|
-
pointerover: (event:
|
|
673
|
-
pointerout: (event:
|
|
674
|
-
dblclick: (event:
|
|
675
|
-
pointerdown: (event:
|
|
676
|
-
pointerup: (event:
|
|
677
|
-
pointercancel: (event:
|
|
678
|
-
lostpointercapture: (event:
|
|
679
|
-
wheel: (event:
|
|
677
|
+
}, {}, {}, {}, vue10.ComponentOptionsMixin, vue10.ComponentOptionsMixin, {
|
|
678
|
+
click: (event: TresPointerEvent) => any;
|
|
679
|
+
contextmenu: (event: TresPointerEvent) => any;
|
|
680
|
+
pointermove: (event: TresPointerEvent) => any;
|
|
681
|
+
pointerenter: (event: TresPointerEvent) => any;
|
|
682
|
+
pointerleave: (event: TresPointerEvent) => any;
|
|
683
|
+
pointerover: (event: TresPointerEvent) => any;
|
|
684
|
+
pointerout: (event: TresPointerEvent) => any;
|
|
685
|
+
dblclick: (event: TresPointerEvent) => any;
|
|
686
|
+
pointerdown: (event: TresPointerEvent) => any;
|
|
687
|
+
pointerup: (event: TresPointerEvent) => any;
|
|
688
|
+
pointercancel: (event: TresPointerEvent) => any;
|
|
689
|
+
lostpointercapture: (event: TresPointerEvent) => any;
|
|
690
|
+
wheel: (event: TresPointerEvent) => any;
|
|
680
691
|
ready: (context: TresContext) => any;
|
|
681
|
-
pointermissed: (event:
|
|
692
|
+
pointermissed: (event: TresPointerEvent) => any;
|
|
682
693
|
render: (context: TresContext) => any;
|
|
683
694
|
beforeLoop: (context: TresContextWithClock) => any;
|
|
684
695
|
loop: (context: TresContextWithClock) => any;
|
|
685
|
-
}, string,
|
|
686
|
-
onClick?: ((event:
|
|
687
|
-
onContextmenu?: ((event:
|
|
688
|
-
onPointermove?: ((event:
|
|
689
|
-
onPointerenter?: ((event:
|
|
690
|
-
onPointerleave?: ((event:
|
|
691
|
-
onPointerover?: ((event:
|
|
692
|
-
onPointerout?: ((event:
|
|
693
|
-
onDblclick?: ((event:
|
|
694
|
-
onPointerdown?: ((event:
|
|
695
|
-
onPointerup?: ((event:
|
|
696
|
-
onPointercancel?: ((event:
|
|
697
|
-
onLostpointercapture?: ((event:
|
|
698
|
-
onWheel?: ((event:
|
|
696
|
+
}, string, vue10.PublicProps, Readonly<TresCanvasProps> & Readonly<{
|
|
697
|
+
onClick?: ((event: TresPointerEvent) => any) | undefined;
|
|
698
|
+
onContextmenu?: ((event: TresPointerEvent) => any) | undefined;
|
|
699
|
+
onPointermove?: ((event: TresPointerEvent) => any) | undefined;
|
|
700
|
+
onPointerenter?: ((event: TresPointerEvent) => any) | undefined;
|
|
701
|
+
onPointerleave?: ((event: TresPointerEvent) => any) | undefined;
|
|
702
|
+
onPointerover?: ((event: TresPointerEvent) => any) | undefined;
|
|
703
|
+
onPointerout?: ((event: TresPointerEvent) => any) | undefined;
|
|
704
|
+
onDblclick?: ((event: TresPointerEvent) => any) | undefined;
|
|
705
|
+
onPointerdown?: ((event: TresPointerEvent) => any) | undefined;
|
|
706
|
+
onPointerup?: ((event: TresPointerEvent) => any) | undefined;
|
|
707
|
+
onPointercancel?: ((event: TresPointerEvent) => any) | undefined;
|
|
708
|
+
onLostpointercapture?: ((event: TresPointerEvent) => any) | undefined;
|
|
709
|
+
onWheel?: ((event: TresPointerEvent) => any) | undefined;
|
|
699
710
|
onReady?: ((context: TresContext) => any) | undefined;
|
|
700
|
-
onPointermissed?: ((event:
|
|
711
|
+
onPointermissed?: ((event: TresPointerEvent) => any) | undefined;
|
|
701
712
|
onRender?: ((context: TresContext) => any) | undefined;
|
|
702
713
|
onBeforeLoop?: ((context: TresContextWithClock) => any) | undefined;
|
|
703
714
|
onLoop?: ((context: TresContextWithClock) => any) | undefined;
|
|
704
715
|
}>, {
|
|
705
716
|
windowSize: boolean;
|
|
717
|
+
enableProvideBridge: boolean;
|
|
706
718
|
antialias: boolean;
|
|
707
719
|
stencil: boolean;
|
|
708
720
|
depth: boolean;
|
|
@@ -717,11 +729,9 @@ declare const __VLS_export: __VLS_WithSlots<vue0.DefineComponent<TresCanvasProps
|
|
|
717
729
|
shadowMapType: THREE.ShadowMapType;
|
|
718
730
|
useLegacyLights: boolean;
|
|
719
731
|
renderMode: "always" | "on-demand" | "manual";
|
|
720
|
-
|
|
721
|
-
}, {}, {}, {}, string, vue0.ComponentProvideOptions, false, {}, any>, {
|
|
732
|
+
}, {}, {}, {}, string, vue10.ComponentProvideOptions, false, {}, any>, {
|
|
722
733
|
default: () => any;
|
|
723
734
|
}>;
|
|
724
|
-
declare const _default: typeof __VLS_export;
|
|
725
735
|
type __VLS_WithSlots<T, S> = T & {
|
|
726
736
|
new (): {
|
|
727
737
|
$slots: S;
|
|
@@ -1053,4 +1063,4 @@ interface TresPlugin {
|
|
|
1053
1063
|
}
|
|
1054
1064
|
declare const plugin: TresPlugin;
|
|
1055
1065
|
//#endregion
|
|
1056
|
-
export { Args, AssetLoadData, AttachFnType, AttachType, ConstructorRepresentation, DevtoolsMessage, DevtoolsMessageType, DevtoolsMessenger, DevtoolsSubscriber, DisposeType, ElementProps, InstanceProps, LoaderMethods, LoaderProto, LocalState, LoopContext, MathType, Mutable, NonFunctionKeys, Overwrite, Properties, RenderFunction, RenderMode, RendererOptions, ThreeElement, ThreeInstances, TresCamera, _default as TresCanvas, TresCatalogue, TresColor, TresColorArray, type TresContext, TresContextWithClock, TresControl, TresEuler, TresInstance, TresLayers, TresLoader, TresLoaderOptions, TresMaterial, TresObject, TresObject3D, TresObjectMap, TresOptions, TresPartialContext, TresPlugin, type TresPointerEvent, TresPrimitive, TresQuaternion, TresRenderer, TresRendererSetupContext, TresScene, TresVector2, TresVector3, TresVector4, UseCameraReturn, _default$1 as UseLoader, UseLoaderReturn, UseRendererManagerReturn, UseRendererOptions, VectorCoordinates, type VectorFlexibleParams, VueProps, WithMathProps, buildGraph, catalogue, plugin as default, disposeObject3D as dispose, extend, isBufferGeometry, isCamera, isClassInstance, isColor, isColorRepresentation, isCopyable, isFog, isGroup, isLayers, isLight, isMaterial, isMesh, isObject3D, isOrthographicCamera, isPerspectiveCamera, isProd, isScene, isTresCamera, isTresInstance, isTresObject, isTresPrimitive, isVectorLike, logError, logMessage, logWarning, normalizeColor, normalizeVectorFlexibleParam, registerTresDevtools, templateCompilerOptions, useCameraManager, useGraph, useLoader, useLoop, useRendererManager, useTres, useTresContext, useTresContextProvider, vDistanceTo, vLightHelper, vLog };
|
|
1066
|
+
export { Args, AssetLoadData, AttachFnType, AttachType, ConstructorRepresentation, DevtoolsMessage, DevtoolsMessageType, DevtoolsMessenger, DevtoolsSubscriber, DisposeType, ElementProps, InstanceProps, LoaderMethods, LoaderProto, LocalState, LoopContext, MathType, Mutable, NonFunctionKeys, Overwrite, Properties, RenderFunction, RenderMode, RendererOptions, ThreeElement, ThreeInstances, TresCamera, _default as TresCanvas, type TresCanvasEmits, type TresCanvasProps, TresCatalogue, TresColor, TresColorArray, type TresContext, TresContextWithClock, TresControl, TresEuler, TresInstance, TresLayers, TresLoader, TresLoaderOptions, TresMaterial, TresObject, TresObject3D, TresObjectMap, TresOptions, TresPartialContext, TresPlugin, type TresPointerEvent, TresPrimitive, TresQuaternion, TresRenderer, TresRendererSetupContext, TresScene, TresVector2, TresVector3, TresVector4, UseCameraReturn, _default$1 as UseLoader, UseLoaderReturn, UseRendererManagerReturn, UseRendererOptions, VectorCoordinates, type VectorFlexibleParams, VueProps, WithMathProps, buildGraph, catalogue, plugin as default, disposeObject3D as dispose, extend, isBufferGeometry, isCamera, isClassInstance, isColor, isColorRepresentation, isCopyable, isFog, isGroup, isLayers, isLight, isMaterial, isMesh, isObject3D, isOrthographicCamera, isPerspectiveCamera, isProd, isScene, isTresCamera, isTresInstance, isTresObject, isTresPrimitive, isVectorLike, logError, logMessage, logWarning, normalizeColor, normalizeVectorFlexibleParam, registerTresDevtools, templateCompilerOptions, useCameraManager, useGraph, useLoader, useLoop, useRendererManager, useTres, useTresContext, useTresContextProvider, vDistanceTo, vLightHelper, vLog };
|
package/dist/tres.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* name: @tresjs/core
|
|
3
|
-
* version: v5.
|
|
3
|
+
* version: v5.2.0
|
|
4
4
|
* (c) 2025
|
|
5
5
|
* description: Declarative ThreeJS using Vue Components
|
|
6
6
|
* author: Alvaro Saburido <hola@alvarosaburido.dev> (https://github.com/alvarosabu/)
|
|
@@ -14,88 +14,7 @@ import { forwardHtmlEvents, getVoidObject } from "@pmndrs/pointer-events";
|
|
|
14
14
|
import { setupDevtoolsPlugin } from "@vue/devtools-api";
|
|
15
15
|
|
|
16
16
|
//#region package.json
|
|
17
|
-
var
|
|
18
|
-
name: "@tresjs/core",
|
|
19
|
-
type: "module",
|
|
20
|
-
version: "5.1.1",
|
|
21
|
-
description: "Declarative ThreeJS using Vue Components",
|
|
22
|
-
author: "Alvaro Saburido <hola@alvarosaburido.dev> (https://github.com/alvarosabu/)",
|
|
23
|
-
license: "MIT",
|
|
24
|
-
repository: {
|
|
25
|
-
"type": "git",
|
|
26
|
-
"url": "git+https://github.com/Tresjs/tres.git",
|
|
27
|
-
"directory": "packages/core"
|
|
28
|
-
},
|
|
29
|
-
keywords: [
|
|
30
|
-
"vue",
|
|
31
|
-
"3d",
|
|
32
|
-
"threejs",
|
|
33
|
-
"three",
|
|
34
|
-
"threejs-vue"
|
|
35
|
-
],
|
|
36
|
-
sideEffects: false,
|
|
37
|
-
exports: {
|
|
38
|
-
".": "./dist/tres.js",
|
|
39
|
-
"./template-compiler-options": "./dist/template-compiler-options.mjs",
|
|
40
|
-
"./package.json": "./package.json"
|
|
41
|
-
},
|
|
42
|
-
main: "./dist/tres.js",
|
|
43
|
-
module: "./dist/tres.js",
|
|
44
|
-
types: "./dist/tres.d.ts",
|
|
45
|
-
typesVersions: { "*": { "template-compiler-options": ["dist/template-compiler-options.d.mts"] } },
|
|
46
|
-
files: ["*.d.ts", "dist"],
|
|
47
|
-
publishConfig: { "access": "public" },
|
|
48
|
-
scripts: {
|
|
49
|
-
"build": "tsdown",
|
|
50
|
-
"test": "vitest",
|
|
51
|
-
"test:ci": "vitest run",
|
|
52
|
-
"test:ui": "vitest --ui --coverage.enabled=true",
|
|
53
|
-
"coverage": "vitest run --coverage",
|
|
54
|
-
"lint": "eslint .",
|
|
55
|
-
"lint:fix": "eslint . --fix",
|
|
56
|
-
"typecheck": "vue-tsc --noEmit"
|
|
57
|
-
},
|
|
58
|
-
peerDependencies: {
|
|
59
|
-
"three": ">=0.133",
|
|
60
|
-
"vue": ">=3.4"
|
|
61
|
-
},
|
|
62
|
-
dependencies: {
|
|
63
|
-
"@pmndrs/pointer-events": "^6.6.17",
|
|
64
|
-
"@vue/devtools-api": "^7.7.2",
|
|
65
|
-
"@vueuse/core": "catalog:utils",
|
|
66
|
-
"radashi": "^12.6.2",
|
|
67
|
-
"typescript": "catalog:typescript"
|
|
68
|
-
},
|
|
69
|
-
devDependencies: {
|
|
70
|
-
"@tresjs/eslint-config": "workspace:*",
|
|
71
|
-
"@types/three": "catalog:three",
|
|
72
|
-
"@typescript-eslint/eslint-plugin": "catalog:eslint",
|
|
73
|
-
"@typescript-eslint/parser": "catalog:eslint",
|
|
74
|
-
"@vitejs/plugin-vue": "catalog:vite",
|
|
75
|
-
"@vitest/coverage-v8": "3.2.4",
|
|
76
|
-
"@vitest/ui": "catalog:testing",
|
|
77
|
-
"@vue/test-utils": "catalog:testing",
|
|
78
|
-
"eslint": "catalog:eslint",
|
|
79
|
-
"eslint-plugin-vue": "catalog:eslint",
|
|
80
|
-
"jsdom": "catalog:testing",
|
|
81
|
-
"kolorist": "catalog:utils",
|
|
82
|
-
"pathe": "catalog:utils",
|
|
83
|
-
"rollup-plugin-analyzer": "catalog:build",
|
|
84
|
-
"rollup-plugin-copy": "^3.5.0",
|
|
85
|
-
"rollup-plugin-visualizer": "catalog:build",
|
|
86
|
-
"three": "catalog:three",
|
|
87
|
-
"tsdown": "catalog:build",
|
|
88
|
-
"vite": "catalog:vite",
|
|
89
|
-
"vite-plugin-banner": "catalog:vite",
|
|
90
|
-
"vite-plugin-dts": "catalog:vite",
|
|
91
|
-
"vite-plugin-inspect": "^11.3.3",
|
|
92
|
-
"vitest": "catalog:testing",
|
|
93
|
-
"vue": "catalog:vue",
|
|
94
|
-
"vue-demi": "^0.14.10",
|
|
95
|
-
"vue-tsc": "catalog:typescript"
|
|
96
|
-
},
|
|
97
|
-
nx: { "implicitDependencies": ["!@tresjs/core-*"] }
|
|
98
|
-
};
|
|
17
|
+
var version = "5.2.0";
|
|
99
18
|
|
|
100
19
|
//#endregion
|
|
101
20
|
//#region src/utils/makeMap.ts
|
|
@@ -401,8 +320,8 @@ function logWarning(...args) {
|
|
|
401
320
|
* @param name - Name of the message
|
|
402
321
|
* @param value - Value to log
|
|
403
322
|
*/
|
|
404
|
-
function logMessage(name
|
|
405
|
-
if (!isProd) console.log(`${logPrefix} - ${name
|
|
323
|
+
function logMessage(name, value) {
|
|
324
|
+
if (!isProd) console.log(`${logPrefix} - ${name}:`, value);
|
|
406
325
|
}
|
|
407
326
|
|
|
408
327
|
//#endregion
|
|
@@ -446,11 +365,11 @@ function resolve(obj, key) {
|
|
|
446
365
|
function joinAsCamelCase(...strings) {
|
|
447
366
|
return strings.map((s, i) => i === 0 ? s : s.charAt(0).toUpperCase() + s.slice(1)).join("");
|
|
448
367
|
}
|
|
449
|
-
function attach(parent, child, type
|
|
368
|
+
function attach(parent, child, type) {
|
|
450
369
|
const INDEX_REGEX = /-\d+$/;
|
|
451
|
-
if (isString(type
|
|
452
|
-
if (INDEX_REGEX.test(type
|
|
453
|
-
const { target: target$1, key: key$1 } = resolve(parent, type
|
|
370
|
+
if (isString(type)) {
|
|
371
|
+
if (INDEX_REGEX.test(type)) {
|
|
372
|
+
const { target: target$1, key: key$1 } = resolve(parent, type.replace(INDEX_REGEX, ""));
|
|
454
373
|
if (!Array.isArray(target$1[key$1])) {
|
|
455
374
|
const previousAttach = target$1[key$1];
|
|
456
375
|
const augmentedArray = [];
|
|
@@ -460,14 +379,14 @@ function attach(parent, child, type$1) {
|
|
|
460
379
|
target$1[key$1] = augmentedArray;
|
|
461
380
|
}
|
|
462
381
|
}
|
|
463
|
-
const { target, key } = resolve(parent, type
|
|
382
|
+
const { target, key } = resolve(parent, type);
|
|
464
383
|
child.__tres.previousAttach = target[key];
|
|
465
384
|
target[key] = unboxTresPrimitive(child);
|
|
466
|
-
} else child.__tres.previousAttach = type
|
|
385
|
+
} else child.__tres.previousAttach = type(parent, child);
|
|
467
386
|
}
|
|
468
|
-
function detach(parent, child, type
|
|
469
|
-
if (isString(type
|
|
470
|
-
const { target, key } = resolve(parent, type
|
|
387
|
+
function detach(parent, child, type) {
|
|
388
|
+
if (isString(type)) {
|
|
389
|
+
const { target, key } = resolve(parent, type);
|
|
471
390
|
const previous = child.__tres.previousAttach;
|
|
472
391
|
if (previous === void 0) delete target[key];
|
|
473
392
|
else target[key] = previous;
|
|
@@ -1159,11 +1078,11 @@ const nodeOps = (context) => {
|
|
|
1159
1078
|
if (!props.args) props.args = [];
|
|
1160
1079
|
if (isHTMLTag(tag)) return null;
|
|
1161
1080
|
if (tag.includes("-")) tag = tag.replace(/-([a-z])/g, (_, c) => c.toUpperCase()).replace(/^[a-z]/, (c) => c.toUpperCase());
|
|
1162
|
-
let name
|
|
1081
|
+
let name = tag.replace("Tres", "");
|
|
1163
1082
|
let obj;
|
|
1164
1083
|
if (tag === "primitive") {
|
|
1165
1084
|
if (!isObject(props.object) || isRef(props.object)) logError("Tres primitives need an 'object' prop, whose value is an object or shallowRef<object>");
|
|
1166
|
-
name
|
|
1085
|
+
name = props.object.type;
|
|
1167
1086
|
const __tres = {};
|
|
1168
1087
|
obj = createRetargetingProxy(props.object, {
|
|
1169
1088
|
object: (t) => t,
|
|
@@ -1182,8 +1101,8 @@ const nodeOps = (context) => {
|
|
|
1182
1101
|
}
|
|
1183
1102
|
});
|
|
1184
1103
|
} else {
|
|
1185
|
-
const target = catalogue.value[name
|
|
1186
|
-
if (!target) logError(`${name
|
|
1104
|
+
const target = catalogue.value[name];
|
|
1105
|
+
if (!target) logError(`${name} is not defined on the THREE namespace. Use extend to add it to the catalog.`);
|
|
1187
1106
|
obj = new target(...props.args);
|
|
1188
1107
|
}
|
|
1189
1108
|
if (!obj) return null;
|
|
@@ -1193,7 +1112,7 @@ const nodeOps = (context) => {
|
|
|
1193
1112
|
}
|
|
1194
1113
|
obj = prepareTresInstance(obj, {
|
|
1195
1114
|
...isTresInstance(obj) ? obj.__tres : {},
|
|
1196
|
-
type: name
|
|
1115
|
+
type: name,
|
|
1197
1116
|
memoizedProps: props,
|
|
1198
1117
|
primitive: tag === "primitive",
|
|
1199
1118
|
attach: props.attach
|
|
@@ -1375,14 +1294,14 @@ var DevtoolsMessenger = class {
|
|
|
1375
1294
|
* Send a message to devtools subscribers
|
|
1376
1295
|
* If no subscribers are available, only queueable message types are queued
|
|
1377
1296
|
*/
|
|
1378
|
-
send(type
|
|
1297
|
+
send(type, data) {
|
|
1379
1298
|
const message = {
|
|
1380
|
-
type
|
|
1299
|
+
type,
|
|
1381
1300
|
data,
|
|
1382
1301
|
timestamp: Date.now()
|
|
1383
1302
|
};
|
|
1384
1303
|
if (this.subscribers.size > 0) this.subscribers.forEach((subscriber) => subscriber(message));
|
|
1385
|
-
else if (QUEUEABLE_MESSAGE_TYPES.includes(type
|
|
1304
|
+
else if (QUEUEABLE_MESSAGE_TYPES.includes(type)) this.queueMessage(message);
|
|
1386
1305
|
}
|
|
1387
1306
|
/**
|
|
1388
1307
|
* Queue a message for later delivery
|
|
@@ -1440,15 +1359,15 @@ var DevtoolsMessenger = class {
|
|
|
1440
1359
|
* @param message - message to log
|
|
1441
1360
|
* @param type - different color of the tooltip
|
|
1442
1361
|
*/
|
|
1443
|
-
function toastMessage(message, type
|
|
1362
|
+
function toastMessage(message, type) {
|
|
1444
1363
|
const tresMessage = `▲ ■ ●${message}`;
|
|
1445
|
-
if (typeof __VUE_DEVTOOLS_TOAST__ === "function") __VUE_DEVTOOLS_TOAST__(tresMessage, type
|
|
1446
|
-
else if (type
|
|
1447
|
-
else if (type
|
|
1364
|
+
if (typeof __VUE_DEVTOOLS_TOAST__ === "function") __VUE_DEVTOOLS_TOAST__(tresMessage, type);
|
|
1365
|
+
else if (type === "error") console.error(tresMessage);
|
|
1366
|
+
else if (type === "warn") console.warn(tresMessage);
|
|
1448
1367
|
else console.log(tresMessage);
|
|
1449
1368
|
}
|
|
1450
|
-
function __VUE_DEVTOOLS_TOAST__(tresMessage, type
|
|
1451
|
-
throw new Error(tresMessage + type
|
|
1369
|
+
function __VUE_DEVTOOLS_TOAST__(tresMessage, type) {
|
|
1370
|
+
throw new Error(tresMessage + type);
|
|
1452
1371
|
}
|
|
1453
1372
|
|
|
1454
1373
|
//#endregion
|
|
@@ -2154,7 +2073,7 @@ var TresCanvas_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ def
|
|
|
2154
2073
|
ref: canvasRef,
|
|
2155
2074
|
"data-scene": scene.value.uuid,
|
|
2156
2075
|
class: normalizeClass(_ctx.$attrs.class),
|
|
2157
|
-
"data-tres": `tresjs ${unref(
|
|
2076
|
+
"data-tres": `tresjs ${unref(version)}`,
|
|
2158
2077
|
style: normalizeStyle({
|
|
2159
2078
|
display: "block",
|
|
2160
2079
|
width: "100%",
|
|
@@ -2243,7 +2162,7 @@ const vDistanceTo = {
|
|
|
2243
2162
|
};
|
|
2244
2163
|
|
|
2245
2164
|
//#endregion
|
|
2246
|
-
//#region ../../node_modules/.pnpm/three-stdlib@2.36.
|
|
2165
|
+
//#region ../../node_modules/.pnpm/three-stdlib@2.36.1_three@0.180.0/node_modules/three-stdlib/helpers/RectAreaLightHelper.js
|
|
2247
2166
|
var RectAreaLightHelper = class extends Line {
|
|
2248
2167
|
constructor(light, color) {
|
|
2249
2168
|
const positions = [
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tresjs/core",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "5.
|
|
4
|
+
"version": "5.2.0",
|
|
5
5
|
"description": "Declarative ThreeJS using Vue Components",
|
|
6
6
|
"author": "Alvaro Saburido <hola@alvarosaburido.dev> (https://github.com/alvarosabu/)",
|
|
7
7
|
"license": "MIT",
|
|
@@ -48,8 +48,7 @@
|
|
|
48
48
|
"@pmndrs/pointer-events": "^6.6.17",
|
|
49
49
|
"@vue/devtools-api": "^7.7.2",
|
|
50
50
|
"@vueuse/core": "^13.9.0",
|
|
51
|
-
"radashi": "^12.6.2"
|
|
52
|
-
"typescript": "^5.8.3"
|
|
51
|
+
"radashi": "^12.6.2"
|
|
53
52
|
},
|
|
54
53
|
"devDependencies": {
|
|
55
54
|
"@types/three": "^0.180.0",
|
|
@@ -69,6 +68,7 @@
|
|
|
69
68
|
"rollup-plugin-visualizer": "^6.0.3",
|
|
70
69
|
"three": "^0.180.0",
|
|
71
70
|
"tsdown": "0.16.1",
|
|
71
|
+
"typescript": "^5.8.3",
|
|
72
72
|
"vite": "^7.1.9",
|
|
73
73
|
"vite-plugin-banner": "^0.8.1",
|
|
74
74
|
"vite-plugin-dts": "4.5.4",
|