@smplrspace/smplr-loader 2.5.1 → 2.5.2

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.
@@ -1,10 +1,339 @@
1
- import { QueryClient } from 'src/smplr/QueryClient';
2
- import { Space } from 'src/smplr/Space';
1
+ declare interface BaseDataLayer<T, D extends UnknownData> {
2
+ tooltip?: (dataElement: T & D) => string;
3
+ onClick?: (dataElement: T & D) => void;
4
+ onHover?: (dataElement: T & D) => void;
5
+ onHoverOut?: (dataElement: T & D) => void;
6
+ }
3
7
 
4
- export { QueryClient }
8
+ declare type CameraMode = '2d' | '3d'
5
9
 
6
- export { Space }
10
+ declare interface ClientOptions {
11
+ organizationId: string;
12
+ clientToken: string;
13
+ }
7
14
 
8
- export declare const version = "2.5.1";
15
+ declare type DataLayer<D extends UnknownData = NoData> = PointDataLayer<D> | IconDataLayer<D> | PolygonDataLayer<D> | PolylineDataLayer<D> | FurnitureDataLayer<D>;
16
+
17
+ declare interface DeprecatedPreviewProps {
18
+ mode: CameraMode;
19
+ onViewerReady: () => void;
20
+ onError: () => void;
21
+ }
22
+
23
+ declare interface Filter {
24
+ background: {
25
+ clearColor: string;
26
+ };
27
+ directionalLight: {
28
+ distance: number;
29
+ intensity: number;
30
+ };
31
+ hemisphericLight: {
32
+ diffuseColor: string;
33
+ specularColor: string;
34
+ groundColor: string;
35
+ intensity: number;
36
+ };
37
+ whiteMaterial: {
38
+ baseColor: string;
39
+ metallicRatio: number;
40
+ roughnessRatio: number;
41
+ alphaRatio: number;
42
+ };
43
+ indoorMaterial: {
44
+ baseColor: string;
45
+ metallicRatio: number;
46
+ roughnessRatio: number;
47
+ alphaRatio: number;
48
+ };
49
+ grassMaterial: {
50
+ baseColor: string;
51
+ metallicRatio: number;
52
+ roughnessRatio: number;
53
+ alphaRatio: number;
54
+ };
55
+ waterMaterial: {
56
+ baseColor: string;
57
+ metallicRatio: number;
58
+ roughnessRatio: number;
59
+ alphaRatio: number;
60
+ };
61
+ darkGreyMaterial: {
62
+ baseColor: string;
63
+ metallicRatio: number;
64
+ roughnessRatio: number;
65
+ alphaRatio: number;
66
+ };
67
+ glassMaterial: {
68
+ baseColor: string;
69
+ metallicRatio: number;
70
+ roughnessRatio: number;
71
+ alphaRatio: number;
72
+ };
73
+ metalMaterial: {
74
+ baseColor: string;
75
+ metallicRatio: number;
76
+ roughnessRatio: number;
77
+ alphaRatio: number;
78
+ };
79
+ compassMaterial: {
80
+ baseColor: string;
81
+ metallicRatio: number;
82
+ roughnessRatio: number;
83
+ alphaRatio: number;
84
+ };
85
+ placeholderMaterial: {
86
+ baseColor: string;
87
+ metallicRatio: number;
88
+ roughnessRatio: number;
89
+ alphaRatio: number;
90
+ };
91
+ hoveredMaterial: {
92
+ baseColor: string;
93
+ metallicRatio: number;
94
+ roughnessRatio: number;
95
+ alphaRatio: number;
96
+ };
97
+ selectedMaterial: {
98
+ baseColor: string;
99
+ metallicRatio: number;
100
+ roughnessRatio: number;
101
+ alphaRatio: number;
102
+ };
103
+ dataElement: {
104
+ defaultColor: string;
105
+ };
106
+ }
107
+
108
+ declare type FurnitureData = {
109
+ furnitureId: string | string[];
110
+ };
111
+
112
+ declare interface FurnitureDataLayer<D extends UnknownData = NoData> extends BaseDataLayer<FurnitureData, D> {
113
+ id: string;
114
+ type: 'furniture';
115
+ data: (FurnitureData & D)[];
116
+ color?: string | ((dataElement: FurnitureData & D) => string);
117
+ }
118
+
119
+ declare type IconData = {
120
+ position: SmplrCoord3d;
121
+ };
122
+
123
+ declare interface IconDataLayer<D extends UnknownData = NoData> extends BaseDataLayer<IconData, D> {
124
+ id: string;
125
+ type: 'icon';
126
+ data: (IconData & D)[];
127
+ icon: {
128
+ url: string;
129
+ width: number;
130
+ height: number;
131
+ };
132
+ width?: number | ((dataElement: IconData & D) => number);
133
+ onDrag?: (dragged: {
134
+ data: IconData & D;
135
+ }) => void;
136
+ onDrop?: (dropped: {
137
+ data: IconData & D;
138
+ position: SmplrCoord3d;
139
+ }) => void;
140
+ }
141
+
142
+ declare type NoData = Record<string, never>;
143
+
144
+ declare type OnPickFn = (args: { coordinates: SmplrCoord3d; furnitureId?: string }) => void
145
+
146
+ declare interface OrbitCameraPlacement {
147
+ alpha: number;
148
+ beta: number;
149
+ radius: number;
150
+ target: Vector3Coord;
151
+ }
152
+
153
+ declare type PointData = {
154
+ position: SmplrCoord3d;
155
+ };
156
+
157
+ declare interface PointDataLayer<D extends UnknownData = NoData> extends BaseDataLayer<PointData, D> {
158
+ id: string;
159
+ type: 'point';
160
+ data: (PointData & D)[];
161
+ diameter?: number | ((dataElement: PointData & D) => number);
162
+ anchor?: 'bottom' | 'center' | 'top';
163
+ color?: string | ((dataElement: PointData & D) => string);
164
+ alpha?: number;
165
+ onDrag?: (dragged: {
166
+ data: PointData & D;
167
+ }) => void;
168
+ onDrop?: (dropped: {
169
+ data: PointData & D;
170
+ position: SmplrCoord3d;
171
+ }) => void;
172
+ }
173
+
174
+ declare type PolygonData = {
175
+ coordinates: SmplrCoord2d[];
176
+ };
177
+
178
+ declare interface PolygonDataLayer<D extends UnknownData = NoData> extends BaseDataLayer<PolygonData, D> {
179
+ id: string;
180
+ type: 'polygon';
181
+ data: (PolygonData & D)[];
182
+ baseHeight?: number | ((dataElement: PolygonData & D) => number);
183
+ height?: number | ((dataElement: PolygonData & D) => number);
184
+ color?: string | ((dataElement: PolygonData & D) => string);
185
+ alpha?: number;
186
+ onDrag?: (dragged: {
187
+ data: PolygonData & D;
188
+ }) => void;
189
+ onDrop?: (dropped: {
190
+ data: PolygonData & D;
191
+ coordinates: SmplrCoord2d[];
192
+ }) => void;
193
+ disableReshape?: boolean;
194
+ reshapeBoxColor?: string;
195
+ }
196
+
197
+ declare type PolylineData = {
198
+ coordinates: SmplrCoord3d[];
199
+ };
200
+
201
+ declare interface PolylineDataLayer<D extends UnknownData = NoData> extends BaseDataLayer<PolylineData, D> {
202
+ id: string;
203
+ type: 'polyline';
204
+ data: (PolylineData & D)[];
205
+ shape?: 'circle' | 'triangle' | 'square' | 'pentagon' | 'hexagon' | [number, number][];
206
+ cap?: boolean;
207
+ scale?: number | ((scaled: {
208
+ data: PolylineData & D;
209
+ stepIndex: number;
210
+ distance: number;
211
+ }) => number);
212
+ stepSize?: number;
213
+ color?: string | ((dataElement: PolylineData & D) => string);
214
+ alpha?: number;
215
+ onDrag?: (dragged: {
216
+ data: PolylineData & D;
217
+ }) => void;
218
+ onDrop?: (dropped: {
219
+ data: PolylineData & D;
220
+ coordinates: SmplrCoord3d[];
221
+ }) => void;
222
+ disableReshape?: boolean;
223
+ reshapeBoxColor?: string;
224
+ }
225
+
226
+ export declare class QueryClient {
227
+ private options;
228
+ private client;
229
+ constructor(options: ClientOptions);
230
+ private checkOptions;
231
+ checkApiConnection(): Promise<string>;
232
+ getApiVersion(): Promise<string>;
233
+ getSpace(id: string): Promise<{
234
+ status: string;
235
+ name: string;
236
+ id: string;
237
+ created_at: string;
238
+ modified_at: string;
239
+ definition?: {} | null | undefined;
240
+ embed_image?: string | null | undefined;
241
+ short_code?: string | null | undefined;
242
+ public_link_enabled: boolean;
243
+ assetmap?: {} | null | undefined;
244
+ }>;
245
+ }
246
+
247
+ declare interface RenderOptions {
248
+ compass?: boolean
249
+ annotations?: boolean
250
+ skybox?: boolean
251
+ backgroundColor?: string
252
+ filter?: Partial<Filter>
253
+ walls?: {
254
+ render?: boolean
255
+ alpha?: number
256
+ maxHeightCm?: number
257
+ showStructuralWalls?: boolean
258
+ }
259
+ doors?: boolean
260
+ windows?: boolean
261
+ flip?: boolean
262
+ objects?: boolean
263
+ floorplan?: {
264
+ render?: boolean
265
+ alpha?: number
266
+ elevationInCm?: number
267
+ }
268
+ }
269
+
270
+ declare interface SmplrCoord2d {
271
+ levelIndex: number;
272
+ x: number;
273
+ z: number;
274
+ }
275
+
276
+ declare interface SmplrCoord3d extends SmplrCoord2d {
277
+ elevation: number;
278
+ }
279
+
280
+ export declare class Space {
281
+ private options;
282
+ private viewerStarted;
283
+ private scene;
284
+ private container;
285
+ private setPickHandler;
286
+ private dispatchDataLayersDefinition;
287
+ constructor(options: SpaceOptions);
288
+ private checkOptions;
289
+ private prepareContainer;
290
+ remove: () => void;
291
+ preview({ mode, onViewerReady, onError }: DeprecatedPreviewProps): void;
292
+ startViewer(options: ViewerOptions): void;
293
+ addDataLayer<D extends UnknownData>(dataLayer: DataLayer<D>): void;
294
+ updateDataLayer<D extends UnknownData>(dataLayer: Partial<DataLayer<D>>): void;
295
+ removeDataLayer(id: string): void;
296
+ enablePickingMode({ onPick }: {
297
+ onPick: OnPickFn;
298
+ }): void;
299
+ disablePickingMode(): void;
300
+ getCameraPlacement(): OrbitCameraPlacement;
301
+ setCameraPlacement(placement: OrbitCameraPlacement): void;
302
+ }
303
+
304
+ declare interface SpaceOptions {
305
+ spaceId: string;
306
+ clientToken: string;
307
+ containerId: string;
308
+ }
309
+
310
+ declare type UnknownData = Record<string, unknown>;
311
+
312
+ declare interface Vector2Coord {
313
+ x: number;
314
+ y: number;
315
+ }
316
+
317
+ declare interface Vector3Coord extends Vector2Coord {
318
+ z: number;
319
+ }
320
+
321
+ export declare const version = "2.5.2";
322
+
323
+ declare interface ViewerOptions {
324
+ mode?: CameraMode;
325
+ preview?: boolean;
326
+ allowModeChange?: boolean;
327
+ cameraPlacement?: OrbitCameraPlacement;
328
+ disableCameraControls?: boolean;
329
+ hideNavigationButtons?: boolean;
330
+ compass?: boolean;
331
+ annotations?: boolean;
332
+ renderOptions?: RenderOptions;
333
+ onReady?: () => void;
334
+ onError?: (error: unknown) => void;
335
+ onModeChange?: (mode: CameraMode) => void;
336
+ loadingMessage?: string;
337
+ }
9
338
 
10
339
  export { }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@smplrspace/smplr-loader",
3
- "version": "2.5.1",
3
+ "version": "2.5.2",
4
4
  "description": "NPM package to load a typed Smplr.js from CDN easily",
5
5
  "type": "module",
6
6
  "files": [