@inweb/viewer-visualize 27.1.3 → 27.1.5
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/viewer-visualize.js +79 -37
- package/dist/viewer-visualize.js.map +1 -1
- package/dist/viewer-visualize.min.js +1 -1
- package/dist/viewer-visualize.module.js +64 -23
- package/dist/viewer-visualize.module.js.map +1 -1
- package/lib/Viewer/Commands/GetSnapshot.d.ts +2 -0
- package/lib/Viewer/Components/CanvasRemoveComponent.d.ts +9 -0
- package/lib/Viewer/Components/{ResizeCanvasComponent.d.ts → CanvasResizeComponent.d.ts} +1 -1
- package/lib/Viewer/Markup/Visualize/VisualizeMarkup.d.ts +1 -0
- package/lib/Viewer/Viewer.d.ts +3 -1
- package/package.json +5 -5
- package/src/Viewer/Commands/{CreatePreview.ts → GetSnapshot.ts} +9 -2
- package/src/Viewer/Commands/index.ts +3 -2
- package/src/Viewer/Components/CanvasRemoveComponent.ts +55 -0
- package/src/Viewer/Components/{ResizeCanvasComponent.ts → CanvasResizeComponent.ts} +1 -1
- package/src/Viewer/Components/index.ts +4 -2
- package/src/Viewer/Markup/Visualize/VisualizeMarkup.ts +7 -2
- package/src/Viewer/Viewer.ts +8 -1
- package/lib/Viewer/Commands/CreatePreview.d.ts +0 -2
package/dist/viewer-visualize.js
CHANGED
|
@@ -251,6 +251,8 @@
|
|
|
251
251
|
rulerUnit: "Default",
|
|
252
252
|
rulerPrecision: 2,
|
|
253
253
|
cameraMode: "perspective",
|
|
254
|
+
snapshotMimeType: "image/jpeg",
|
|
255
|
+
snapshotQuality: 0.25,
|
|
254
256
|
};
|
|
255
257
|
}
|
|
256
258
|
class Options {
|
|
@@ -2956,11 +2958,16 @@
|
|
|
2956
2958
|
viewer.clearSlices();
|
|
2957
2959
|
}
|
|
2958
2960
|
|
|
2959
|
-
function
|
|
2960
|
-
var _a;
|
|
2961
|
+
function getSnapshot(viewer, type, quality) {
|
|
2962
|
+
var _a, _b, _c;
|
|
2961
2963
|
if (!viewer.visualizeJs)
|
|
2962
2964
|
return "";
|
|
2963
|
-
|
|
2965
|
+
const mimeType = (_a = type !== null && type !== void 0 ? type : viewer.options.snapshotMimeType) !== null && _a !== void 0 ? _a : "image/jpeg";
|
|
2966
|
+
const imageQuality = (_b = quality !== null && quality !== void 0 ? quality : viewer.options.snapshotQuality) !== null && _b !== void 0 ? _b : 0.25;
|
|
2967
|
+
if (viewer.markup) {
|
|
2968
|
+
return viewer.markup.getSnapshot(mimeType, imageQuality);
|
|
2969
|
+
}
|
|
2970
|
+
return ((_c = viewer.canvas) === null || _c === void 0 ? void 0 : _c.toDataURL(mimeType, imageQuality)) || "";
|
|
2964
2971
|
}
|
|
2965
2972
|
|
|
2966
2973
|
function explode(viewer, index = 0) {
|
|
@@ -3265,7 +3272,7 @@
|
|
|
3265
3272
|
commands.registerCommand("clearMarkup", clearMarkup);
|
|
3266
3273
|
commands.registerCommand("clearSelected", clearSelected);
|
|
3267
3274
|
commands.registerCommand("clearSlices", clearSlices);
|
|
3268
|
-
commands.registerCommand("
|
|
3275
|
+
commands.registerCommand("getSnapshot", getSnapshot);
|
|
3269
3276
|
commands.registerCommand("explode", explode);
|
|
3270
3277
|
commands.registerCommand("collect", collect);
|
|
3271
3278
|
commands.registerCommand("getDefaultViewPositions", getDefaultViewPositions);
|
|
@@ -3299,6 +3306,7 @@
|
|
|
3299
3306
|
commands.registerCommand("k3DViewNW", (viewer) => setDefaultViewPosition(viewer, "k3DViewNW"));
|
|
3300
3307
|
commands.registerCommandAlias("clearMarkup", "clearOverlay");
|
|
3301
3308
|
commands.registerCommandAlias("clearSelected", "unselect");
|
|
3309
|
+
commands.registerCommandAlias("getSnapshot", "createPreview");
|
|
3302
3310
|
commands.registerCommandAlias("zoomToExtents", "zoomExtents");
|
|
3303
3311
|
|
|
3304
3312
|
class CameraComponent {
|
|
@@ -3434,22 +3442,7 @@
|
|
|
3434
3442
|
}
|
|
3435
3443
|
}
|
|
3436
3444
|
|
|
3437
|
-
class
|
|
3438
|
-
constructor(viewer) {
|
|
3439
|
-
this.animate = (time) => {
|
|
3440
|
-
this.requestId = requestAnimationFrame(this.animate);
|
|
3441
|
-
this.viewer.render(time);
|
|
3442
|
-
this.viewer.emitEvent({ type: "animate", time });
|
|
3443
|
-
};
|
|
3444
|
-
this.viewer = viewer;
|
|
3445
|
-
this.requestId = requestAnimationFrame(this.animate);
|
|
3446
|
-
}
|
|
3447
|
-
dispose() {
|
|
3448
|
-
cancelAnimationFrame(this.requestId);
|
|
3449
|
-
}
|
|
3450
|
-
}
|
|
3451
|
-
|
|
3452
|
-
class ResizeCanvasComponent {
|
|
3445
|
+
class CanvasResizeComponent {
|
|
3453
3446
|
constructor(viewer) {
|
|
3454
3447
|
this.resizeViewer = (entries) => {
|
|
3455
3448
|
const { width, height } = entries[0].contentRect;
|
|
@@ -3466,6 +3459,46 @@
|
|
|
3466
3459
|
}
|
|
3467
3460
|
}
|
|
3468
3461
|
|
|
3462
|
+
class CanvasRemoveComponent {
|
|
3463
|
+
constructor(viewer) {
|
|
3464
|
+
this.cleanupViewer = (mutations) => {
|
|
3465
|
+
for (const mutation of mutations) {
|
|
3466
|
+
if (mutation.type === "childList" && mutation.removedNodes.length > 0) {
|
|
3467
|
+
for (const node of mutation.removedNodes) {
|
|
3468
|
+
if (node === this.viewer.canvas || node.contains(this.viewer.canvas)) {
|
|
3469
|
+
this.viewer.emitEvent({ type: "canvasremoved" });
|
|
3470
|
+
this.viewer.dispose();
|
|
3471
|
+
return;
|
|
3472
|
+
}
|
|
3473
|
+
}
|
|
3474
|
+
}
|
|
3475
|
+
}
|
|
3476
|
+
};
|
|
3477
|
+
this.viewer = viewer;
|
|
3478
|
+
this.mutationObserver = new MutationObserver(this.cleanupViewer);
|
|
3479
|
+
this.mutationObserver.observe(document, { childList: true, subtree: true });
|
|
3480
|
+
}
|
|
3481
|
+
dispose() {
|
|
3482
|
+
this.mutationObserver.disconnect();
|
|
3483
|
+
this.mutationObserver = undefined;
|
|
3484
|
+
}
|
|
3485
|
+
}
|
|
3486
|
+
|
|
3487
|
+
class RenderLoopComponent {
|
|
3488
|
+
constructor(viewer) {
|
|
3489
|
+
this.animate = (time) => {
|
|
3490
|
+
this.requestId = requestAnimationFrame(this.animate);
|
|
3491
|
+
this.viewer.render(time);
|
|
3492
|
+
this.viewer.emitEvent({ type: "animate", time });
|
|
3493
|
+
};
|
|
3494
|
+
this.viewer = viewer;
|
|
3495
|
+
this.requestId = requestAnimationFrame(this.animate);
|
|
3496
|
+
}
|
|
3497
|
+
dispose() {
|
|
3498
|
+
cancelAnimationFrame(this.requestId);
|
|
3499
|
+
}
|
|
3500
|
+
}
|
|
3501
|
+
|
|
3469
3502
|
class ZoomWheelComponent {
|
|
3470
3503
|
constructor(viewer) {
|
|
3471
3504
|
this.viewer = viewer;
|
|
@@ -3720,7 +3753,8 @@
|
|
|
3720
3753
|
const components = componentsRegistry("visualizejs");
|
|
3721
3754
|
components.registerComponent("CameraComponent", (viewer) => new CameraComponent(viewer));
|
|
3722
3755
|
components.registerComponent("InfoComponent", (viewer) => new InfoComponent(viewer));
|
|
3723
|
-
components.registerComponent("
|
|
3756
|
+
components.registerComponent("CanvasResizeComponent", (viewer) => new CanvasResizeComponent(viewer));
|
|
3757
|
+
components.registerComponent("CanvasRemoveComponent", (viewer) => new CanvasRemoveComponent(viewer));
|
|
3724
3758
|
components.registerComponent("RenderLoopComponent", (viewer) => new RenderLoopComponent(viewer));
|
|
3725
3759
|
components.registerComponent("ZoomWheelComponent", (viewer) => new ZoomWheelComponent(viewer));
|
|
3726
3760
|
components.registerComponent("GestureManagerComponent", (viewer) => new GestureManagerComponent(viewer));
|
|
@@ -17128,10 +17162,22 @@ js: import "konva/skia-backend";
|
|
|
17128
17162
|
viewpoint.ellipses = this.getMarkupEllipses();
|
|
17129
17163
|
viewpoint.images = this.getMarkupImages();
|
|
17130
17164
|
viewpoint.rectangles = this.getMarkupRectangles();
|
|
17131
|
-
viewpoint.snapshot = { data: this.combineMarkupWithDrawing() };
|
|
17132
17165
|
viewpoint.custom_fields.markup_color = this.getMarkupColor();
|
|
17133
17166
|
return viewpoint;
|
|
17134
17167
|
}
|
|
17168
|
+
getSnapshot(type = "image/jpeg", quality = 0.25) {
|
|
17169
|
+
this.clearSelected();
|
|
17170
|
+
const tempCanvas = document.createElement("canvas");
|
|
17171
|
+
if (this._konvaStage) {
|
|
17172
|
+
tempCanvas.width = this._konvaStage.width();
|
|
17173
|
+
tempCanvas.height = this._konvaStage.height();
|
|
17174
|
+
const ctx = tempCanvas.getContext("2d");
|
|
17175
|
+
if (this._container instanceof HTMLCanvasElement)
|
|
17176
|
+
ctx.drawImage(this._container, 0, 0);
|
|
17177
|
+
ctx.drawImage(this._konvaStage.toCanvas({ pixelRatio: window.devicePixelRatio }), 0, 0);
|
|
17178
|
+
}
|
|
17179
|
+
return tempCanvas.toDataURL(type, quality);
|
|
17180
|
+
}
|
|
17135
17181
|
enableEditMode(mode) {
|
|
17136
17182
|
if (!mode || !MarkupMode2Konva[mode]) {
|
|
17137
17183
|
this.clearSelected();
|
|
@@ -17568,19 +17614,6 @@ js: import "konva/skia-backend";
|
|
|
17568
17614
|
});
|
|
17569
17615
|
return clouds;
|
|
17570
17616
|
}
|
|
17571
|
-
combineMarkupWithDrawing() {
|
|
17572
|
-
this.clearSelected();
|
|
17573
|
-
const tempCanvas = document.createElement("canvas");
|
|
17574
|
-
if (this._konvaStage) {
|
|
17575
|
-
tempCanvas.width = this._konvaStage.width();
|
|
17576
|
-
tempCanvas.height = this._konvaStage.height();
|
|
17577
|
-
const ctx = tempCanvas.getContext("2d");
|
|
17578
|
-
if (this._container instanceof HTMLCanvasElement)
|
|
17579
|
-
ctx.drawImage(this._container, 0, 0);
|
|
17580
|
-
ctx.drawImage(this._konvaStage.toCanvas({ pixelRatio: window.devicePixelRatio }), 0, 0);
|
|
17581
|
-
}
|
|
17582
|
-
return tempCanvas.toDataURL("image/jpeg", 0.25);
|
|
17583
|
-
}
|
|
17584
17617
|
addLine(linePoints, color, type, width, id) {
|
|
17585
17618
|
if (!linePoints || linePoints.length === 0)
|
|
17586
17619
|
return;
|
|
@@ -18008,7 +18041,6 @@ js: import "konva/skia-backend";
|
|
|
18008
18041
|
function getLogicalPoint3dFromArray(array) {
|
|
18009
18042
|
return { x: array[0], y: array[1], z: array[2] };
|
|
18010
18043
|
}
|
|
18011
|
-
const visLib = this._viewer.visLib();
|
|
18012
18044
|
const visViewer = this._viewer.visViewer();
|
|
18013
18045
|
if (!viewpoint)
|
|
18014
18046
|
viewpoint = { custom_fields: {} };
|
|
@@ -18053,10 +18085,16 @@ js: import "konva/skia-backend";
|
|
|
18053
18085
|
entityPtr.delete();
|
|
18054
18086
|
}
|
|
18055
18087
|
itr.delete();
|
|
18056
|
-
viewpoint.snapshot = { data: visLib.canvas.toDataURL("image/jpeg", 0.25) };
|
|
18057
18088
|
viewpoint.custom_fields.markup_color = this.getMarkupColor();
|
|
18058
18089
|
return viewpoint;
|
|
18059
18090
|
}
|
|
18091
|
+
getSnapshot(type = "image/jpeg", quality = 0.25) {
|
|
18092
|
+
var _a;
|
|
18093
|
+
if (!this._viewer.visualizeJs)
|
|
18094
|
+
return "";
|
|
18095
|
+
const visLib = this._viewer.visLib();
|
|
18096
|
+
return ((_a = visLib.canvas) === null || _a === void 0 ? void 0 : _a.toDataURL(type, quality)) || "";
|
|
18097
|
+
}
|
|
18060
18098
|
enableEditMode(mode) {
|
|
18061
18099
|
return this;
|
|
18062
18100
|
}
|
|
@@ -18773,11 +18811,15 @@ js: import "konva/skia-backend";
|
|
|
18773
18811
|
viewpoint.clipping_planes = getClippingPlanes();
|
|
18774
18812
|
viewpoint.selection = getSelection();
|
|
18775
18813
|
viewpoint.description = new Date().toDateString();
|
|
18814
|
+
viewpoint.snapshot = { data: this.getSnapshot() };
|
|
18776
18815
|
this._markup.getViewpoint(viewpoint);
|
|
18777
18816
|
viewpoint.custom_fields.selection2 = getSelection2();
|
|
18778
18817
|
this.emitEvent({ type: "createviewpoint", data: viewpoint });
|
|
18779
18818
|
return viewpoint;
|
|
18780
18819
|
}
|
|
18820
|
+
getSnapshot(type, quality) {
|
|
18821
|
+
return this.executeCommand("getSnapshot", type, quality);
|
|
18822
|
+
}
|
|
18781
18823
|
screenToWorld(position) {
|
|
18782
18824
|
if (!this.visualizeJs)
|
|
18783
18825
|
return { x: position.x, y: position.y, z: 0 };
|