3dviewer-sdk 1.0.26 → 1.0.27

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/index.d.mts CHANGED
@@ -50,9 +50,14 @@ declare enum ViewerMessageType {
50
50
  PDF_CURRENT_PAGE = "viewer-pdf-current-page",
51
51
  HOME_CLICK = "viewer-home-click",
52
52
  NODE_SELECT = "viewer-node-select",
53
+ NODE_SELECTION_CHANGE = "viewer-node-selection-change",
53
54
  PAN_CHANGE = "viewer-pan-change"
54
55
  }
55
56
  type LanguageCode = "en" | "vn";
57
+ type NodeSelectionChangePayload = {
58
+ nodeIds: string[];
59
+ timestamp: number;
60
+ };
56
61
  type CameraZoomPayload = {
57
62
  requestId?: string;
58
63
  percent: number;
@@ -145,6 +150,7 @@ type ViewerEventMap = {
145
150
  nodeId: string;
146
151
  timestamp: number;
147
152
  };
153
+ "node:selection-change": NodeSelectionChangePayload;
148
154
  "interaction:pan-change": {
149
155
  enabled: boolean;
150
156
  };
@@ -304,6 +310,10 @@ declare class NodeModule {
304
310
  nodeId: string;
305
311
  timestamp: number;
306
312
  }) => void) => () => void;
313
+ selectionChange: (cb: (payload: {
314
+ nodeIds: string[];
315
+ timestamp: number;
316
+ }) => void) => () => void;
307
317
  };
308
318
  constructor(viewer: Viewer3D);
309
319
  }
package/dist/index.d.ts CHANGED
@@ -50,9 +50,14 @@ declare enum ViewerMessageType {
50
50
  PDF_CURRENT_PAGE = "viewer-pdf-current-page",
51
51
  HOME_CLICK = "viewer-home-click",
52
52
  NODE_SELECT = "viewer-node-select",
53
+ NODE_SELECTION_CHANGE = "viewer-node-selection-change",
53
54
  PAN_CHANGE = "viewer-pan-change"
54
55
  }
55
56
  type LanguageCode = "en" | "vn";
57
+ type NodeSelectionChangePayload = {
58
+ nodeIds: string[];
59
+ timestamp: number;
60
+ };
56
61
  type CameraZoomPayload = {
57
62
  requestId?: string;
58
63
  percent: number;
@@ -145,6 +150,7 @@ type ViewerEventMap = {
145
150
  nodeId: string;
146
151
  timestamp: number;
147
152
  };
153
+ "node:selection-change": NodeSelectionChangePayload;
148
154
  "interaction:pan-change": {
149
155
  enabled: boolean;
150
156
  };
@@ -304,6 +310,10 @@ declare class NodeModule {
304
310
  nodeId: string;
305
311
  timestamp: number;
306
312
  }) => void) => () => void;
313
+ selectionChange: (cb: (payload: {
314
+ nodeIds: string[];
315
+ timestamp: number;
316
+ }) => void) => () => void;
307
317
  };
308
318
  constructor(viewer: Viewer3D);
309
319
  }
package/dist/index.js CHANGED
@@ -164,7 +164,10 @@ var InteractionModule = class {
164
164
  var NodeModule = class {
165
165
  constructor(viewer) {
166
166
  this.viewer = viewer;
167
- this.on = { select: (cb) => this.viewer._on("node:select", cb) };
167
+ this.on = {
168
+ select: (cb) => this.viewer._on("node:select", cb),
169
+ selectionChange: (cb) => this.viewer._on("node:selection-change", cb)
170
+ };
168
171
  }
169
172
  };
170
173
 
@@ -974,12 +977,14 @@ var ModelTreeModule = class {
974
977
  });
975
978
  }
976
979
  selectNode(nodeId) {
980
+ console.log("[3dviewer-sdk] modelTree.selectNode", { nodeId });
977
981
  this.postTreeSelectNode({
978
982
  nodeId: String(nodeId)
979
983
  });
980
984
  }
981
985
  selectNodes(nodeIds) {
982
986
  const normalizedNodeIds = this.normalizeNodeIds(nodeIds);
987
+ console.log("[3dviewer-sdk] modelTree.selectNodes", { nodeIds, normalizedNodeIds });
983
988
  if (normalizedNodeIds.length === 0) return;
984
989
  this.postTreeSelectNode({
985
990
  nodeIds: normalizedNodeIds
@@ -1282,6 +1287,16 @@ var Viewer3D = class {
1282
1287
  case "viewer-node-select" /* NODE_SELECT */:
1283
1288
  this._emit("node:select", { nodeId: String((_b = (_a = data.payload) == null ? void 0 : _a.nodeId) != null ? _b : ""), timestamp: Date.now() });
1284
1289
  break;
1290
+ case "viewer-node-selection-change" /* NODE_SELECTION_CHANGE */: {
1291
+ const payload = data.payload;
1292
+ const rawNodeIds = payload == null ? void 0 : payload.nodeIds;
1293
+ const nodeIds = Array.isArray(rawNodeIds) ? rawNodeIds.map((nodeId) => String(nodeId)) : [];
1294
+ this._emit("node:selection-change", {
1295
+ nodeIds,
1296
+ timestamp: Number(payload == null ? void 0 : payload.timestamp) || Date.now()
1297
+ });
1298
+ break;
1299
+ }
1285
1300
  case "viewer-pan-change" /* PAN_CHANGE */:
1286
1301
  this._emit("interaction:pan-change", { enabled: Boolean((_c = data.payload) == null ? void 0 : _c.enabled) });
1287
1302
  break;
package/dist/index.mjs CHANGED
@@ -138,7 +138,10 @@ var InteractionModule = class {
138
138
  var NodeModule = class {
139
139
  constructor(viewer) {
140
140
  this.viewer = viewer;
141
- this.on = { select: (cb) => this.viewer._on("node:select", cb) };
141
+ this.on = {
142
+ select: (cb) => this.viewer._on("node:select", cb),
143
+ selectionChange: (cb) => this.viewer._on("node:selection-change", cb)
144
+ };
142
145
  }
143
146
  };
144
147
 
@@ -948,12 +951,14 @@ var ModelTreeModule = class {
948
951
  });
949
952
  }
950
953
  selectNode(nodeId) {
954
+ console.log("[3dviewer-sdk] modelTree.selectNode", { nodeId });
951
955
  this.postTreeSelectNode({
952
956
  nodeId: String(nodeId)
953
957
  });
954
958
  }
955
959
  selectNodes(nodeIds) {
956
960
  const normalizedNodeIds = this.normalizeNodeIds(nodeIds);
961
+ console.log("[3dviewer-sdk] modelTree.selectNodes", { nodeIds, normalizedNodeIds });
957
962
  if (normalizedNodeIds.length === 0) return;
958
963
  this.postTreeSelectNode({
959
964
  nodeIds: normalizedNodeIds
@@ -1256,6 +1261,16 @@ var Viewer3D = class {
1256
1261
  case "viewer-node-select" /* NODE_SELECT */:
1257
1262
  this._emit("node:select", { nodeId: String((_b = (_a = data.payload) == null ? void 0 : _a.nodeId) != null ? _b : ""), timestamp: Date.now() });
1258
1263
  break;
1264
+ case "viewer-node-selection-change" /* NODE_SELECTION_CHANGE */: {
1265
+ const payload = data.payload;
1266
+ const rawNodeIds = payload == null ? void 0 : payload.nodeIds;
1267
+ const nodeIds = Array.isArray(rawNodeIds) ? rawNodeIds.map((nodeId) => String(nodeId)) : [];
1268
+ this._emit("node:selection-change", {
1269
+ nodeIds,
1270
+ timestamp: Number(payload == null ? void 0 : payload.timestamp) || Date.now()
1271
+ });
1272
+ break;
1273
+ }
1259
1274
  case "viewer-pan-change" /* PAN_CHANGE */:
1260
1275
  this._emit("interaction:pan-change", { enabled: Boolean((_c = data.payload) == null ? void 0 : _c.enabled) });
1261
1276
  break;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "3dviewer-sdk",
3
- "version": "1.0.26",
3
+ "version": "1.0.27",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "files": [