3dviewer-sdk 1.0.25 → 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 +12 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.js +31 -6
- package/dist/index.mjs +31 -6
- package/package.json +1 -1
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
|
}
|
|
@@ -541,6 +551,7 @@ declare class ModelTreeModule {
|
|
|
541
551
|
constructor(viewer: Viewer3D);
|
|
542
552
|
open(): void;
|
|
543
553
|
selectNode(nodeId: string | number): void;
|
|
554
|
+
selectNodes(nodeIds: Array<string | number>): void;
|
|
544
555
|
setNodeVisibility(nodeIds: Array<string | number>, visible: boolean): void;
|
|
545
556
|
hideNode(nodeIds: Array<string | number>): void;
|
|
546
557
|
showNode(nodeIds: Array<string | number>): void;
|
|
@@ -549,6 +560,7 @@ declare class ModelTreeModule {
|
|
|
549
560
|
getTree(options?: GetNodesOptions): Promise<ModelTreeHierarchyNode[]>;
|
|
550
561
|
private requestNodes;
|
|
551
562
|
private resolveTimeoutMs;
|
|
563
|
+
private normalizeNodeIds;
|
|
552
564
|
private postPanelOpen;
|
|
553
565
|
private postTreeSelectNode;
|
|
554
566
|
private postTreeSetNodeVisibility;
|
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
|
}
|
|
@@ -541,6 +551,7 @@ declare class ModelTreeModule {
|
|
|
541
551
|
constructor(viewer: Viewer3D);
|
|
542
552
|
open(): void;
|
|
543
553
|
selectNode(nodeId: string | number): void;
|
|
554
|
+
selectNodes(nodeIds: Array<string | number>): void;
|
|
544
555
|
setNodeVisibility(nodeIds: Array<string | number>, visible: boolean): void;
|
|
545
556
|
hideNode(nodeIds: Array<string | number>): void;
|
|
546
557
|
showNode(nodeIds: Array<string | number>): void;
|
|
@@ -549,6 +560,7 @@ declare class ModelTreeModule {
|
|
|
549
560
|
getTree(options?: GetNodesOptions): Promise<ModelTreeHierarchyNode[]>;
|
|
550
561
|
private requestNodes;
|
|
551
562
|
private resolveTimeoutMs;
|
|
563
|
+
private normalizeNodeIds;
|
|
552
564
|
private postPanelOpen;
|
|
553
565
|
private postTreeSelectNode;
|
|
554
566
|
private postTreeSetNodeVisibility;
|
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 = {
|
|
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,16 +977,21 @@ 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
|
}
|
|
985
|
+
selectNodes(nodeIds) {
|
|
986
|
+
const normalizedNodeIds = this.normalizeNodeIds(nodeIds);
|
|
987
|
+
console.log("[3dviewer-sdk] modelTree.selectNodes", { nodeIds, normalizedNodeIds });
|
|
988
|
+
if (normalizedNodeIds.length === 0) return;
|
|
989
|
+
this.postTreeSelectNode({
|
|
990
|
+
nodeIds: normalizedNodeIds
|
|
991
|
+
});
|
|
992
|
+
}
|
|
981
993
|
setNodeVisibility(nodeIds, visible) {
|
|
982
|
-
const normalizedNodeIds =
|
|
983
|
-
new Set(
|
|
984
|
-
nodeIds.map((nodeId) => String(nodeId).trim()).filter((nodeId) => nodeId !== "")
|
|
985
|
-
)
|
|
986
|
-
);
|
|
994
|
+
const normalizedNodeIds = this.normalizeNodeIds(nodeIds);
|
|
987
995
|
if (normalizedNodeIds.length === 0) return;
|
|
988
996
|
this.postTreeSetNodeVisibility({
|
|
989
997
|
nodeIds: normalizedNodeIds,
|
|
@@ -1050,6 +1058,13 @@ var ModelTreeModule = class {
|
|
|
1050
1058
|
var _a;
|
|
1051
1059
|
return Math.max(1e3, (_a = options == null ? void 0 : options.timeoutMs) != null ? _a : 1e4);
|
|
1052
1060
|
}
|
|
1061
|
+
normalizeNodeIds(nodeIds) {
|
|
1062
|
+
return Array.from(
|
|
1063
|
+
new Set(
|
|
1064
|
+
nodeIds.map((nodeId) => String(nodeId).trim()).filter((nodeId) => nodeId !== "")
|
|
1065
|
+
)
|
|
1066
|
+
);
|
|
1067
|
+
}
|
|
1053
1068
|
postPanelOpen(payload) {
|
|
1054
1069
|
this.viewer.postToViewer("viewer-panel-open" /* PANEL_OPEN */, payload);
|
|
1055
1070
|
}
|
|
@@ -1272,6 +1287,16 @@ var Viewer3D = class {
|
|
|
1272
1287
|
case "viewer-node-select" /* NODE_SELECT */:
|
|
1273
1288
|
this._emit("node:select", { nodeId: String((_b = (_a = data.payload) == null ? void 0 : _a.nodeId) != null ? _b : ""), timestamp: Date.now() });
|
|
1274
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
|
+
}
|
|
1275
1300
|
case "viewer-pan-change" /* PAN_CHANGE */:
|
|
1276
1301
|
this._emit("interaction:pan-change", { enabled: Boolean((_c = data.payload) == null ? void 0 : _c.enabled) });
|
|
1277
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 = {
|
|
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,16 +951,21 @@ 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
|
}
|
|
959
|
+
selectNodes(nodeIds) {
|
|
960
|
+
const normalizedNodeIds = this.normalizeNodeIds(nodeIds);
|
|
961
|
+
console.log("[3dviewer-sdk] modelTree.selectNodes", { nodeIds, normalizedNodeIds });
|
|
962
|
+
if (normalizedNodeIds.length === 0) return;
|
|
963
|
+
this.postTreeSelectNode({
|
|
964
|
+
nodeIds: normalizedNodeIds
|
|
965
|
+
});
|
|
966
|
+
}
|
|
955
967
|
setNodeVisibility(nodeIds, visible) {
|
|
956
|
-
const normalizedNodeIds =
|
|
957
|
-
new Set(
|
|
958
|
-
nodeIds.map((nodeId) => String(nodeId).trim()).filter((nodeId) => nodeId !== "")
|
|
959
|
-
)
|
|
960
|
-
);
|
|
968
|
+
const normalizedNodeIds = this.normalizeNodeIds(nodeIds);
|
|
961
969
|
if (normalizedNodeIds.length === 0) return;
|
|
962
970
|
this.postTreeSetNodeVisibility({
|
|
963
971
|
nodeIds: normalizedNodeIds,
|
|
@@ -1024,6 +1032,13 @@ var ModelTreeModule = class {
|
|
|
1024
1032
|
var _a;
|
|
1025
1033
|
return Math.max(1e3, (_a = options == null ? void 0 : options.timeoutMs) != null ? _a : 1e4);
|
|
1026
1034
|
}
|
|
1035
|
+
normalizeNodeIds(nodeIds) {
|
|
1036
|
+
return Array.from(
|
|
1037
|
+
new Set(
|
|
1038
|
+
nodeIds.map((nodeId) => String(nodeId).trim()).filter((nodeId) => nodeId !== "")
|
|
1039
|
+
)
|
|
1040
|
+
);
|
|
1041
|
+
}
|
|
1027
1042
|
postPanelOpen(payload) {
|
|
1028
1043
|
this.viewer.postToViewer("viewer-panel-open" /* PANEL_OPEN */, payload);
|
|
1029
1044
|
}
|
|
@@ -1246,6 +1261,16 @@ var Viewer3D = class {
|
|
|
1246
1261
|
case "viewer-node-select" /* NODE_SELECT */:
|
|
1247
1262
|
this._emit("node:select", { nodeId: String((_b = (_a = data.payload) == null ? void 0 : _a.nodeId) != null ? _b : ""), timestamp: Date.now() });
|
|
1248
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
|
+
}
|
|
1249
1274
|
case "viewer-pan-change" /* PAN_CHANGE */:
|
|
1250
1275
|
this._emit("interaction:pan-change", { enabled: Boolean((_c = data.payload) == null ? void 0 : _c.enabled) });
|
|
1251
1276
|
break;
|