3dviewer-sdk 1.0.26 → 1.0.28

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,13 +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);
983
- if (normalizedNodeIds.length === 0) return;
987
+ console.log("[3dviewer-sdk] modelTree.selectNodes", { nodeIds, normalizedNodeIds });
984
988
  this.postTreeSelectNode({
985
989
  nodeIds: normalizedNodeIds
986
990
  });
@@ -1282,6 +1286,16 @@ var Viewer3D = class {
1282
1286
  case "viewer-node-select" /* NODE_SELECT */:
1283
1287
  this._emit("node:select", { nodeId: String((_b = (_a = data.payload) == null ? void 0 : _a.nodeId) != null ? _b : ""), timestamp: Date.now() });
1284
1288
  break;
1289
+ case "viewer-node-selection-change" /* NODE_SELECTION_CHANGE */: {
1290
+ const payload = data.payload;
1291
+ const rawNodeIds = payload == null ? void 0 : payload.nodeIds;
1292
+ const nodeIds = Array.isArray(rawNodeIds) ? rawNodeIds.map((nodeId) => String(nodeId)) : [];
1293
+ this._emit("node:selection-change", {
1294
+ nodeIds,
1295
+ timestamp: Number(payload == null ? void 0 : payload.timestamp) || Date.now()
1296
+ });
1297
+ break;
1298
+ }
1285
1299
  case "viewer-pan-change" /* PAN_CHANGE */:
1286
1300
  this._emit("interaction:pan-change", { enabled: Boolean((_c = data.payload) == null ? void 0 : _c.enabled) });
1287
1301
  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,13 +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);
957
- if (normalizedNodeIds.length === 0) return;
961
+ console.log("[3dviewer-sdk] modelTree.selectNodes", { nodeIds, normalizedNodeIds });
958
962
  this.postTreeSelectNode({
959
963
  nodeIds: normalizedNodeIds
960
964
  });
@@ -1256,6 +1260,16 @@ var Viewer3D = class {
1256
1260
  case "viewer-node-select" /* NODE_SELECT */:
1257
1261
  this._emit("node:select", { nodeId: String((_b = (_a = data.payload) == null ? void 0 : _a.nodeId) != null ? _b : ""), timestamp: Date.now() });
1258
1262
  break;
1263
+ case "viewer-node-selection-change" /* NODE_SELECTION_CHANGE */: {
1264
+ const payload = data.payload;
1265
+ const rawNodeIds = payload == null ? void 0 : payload.nodeIds;
1266
+ const nodeIds = Array.isArray(rawNodeIds) ? rawNodeIds.map((nodeId) => String(nodeId)) : [];
1267
+ this._emit("node:selection-change", {
1268
+ nodeIds,
1269
+ timestamp: Number(payload == null ? void 0 : payload.timestamp) || Date.now()
1270
+ });
1271
+ break;
1272
+ }
1259
1273
  case "viewer-pan-change" /* PAN_CHANGE */:
1260
1274
  this._emit("interaction:pan-change", { enabled: Boolean((_c = data.payload) == null ? void 0 : _c.enabled) });
1261
1275
  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.28",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "files": [