@inweb/client 25.3.8 → 25.3.10

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.
@@ -856,416 +856,127 @@ class HttpClient {
856
856
  }
857
857
  }
858
858
 
859
- class Options {
860
- constructor(emitter) {
861
- this._emitter = emitter;
862
- this._data = Options.defaults();
863
- this.loadFromStorage();
859
+ class Permission {
860
+ constructor(data, fileId, httpClient) {
861
+ this.httpClient = httpClient;
862
+ this.fileId = fileId;
863
+ this.data = data;
864
864
  }
865
- static defaults() {
866
- return {
867
- showWCS: true,
868
- cameraAnimation: true,
869
- antialiasing: true,
870
- groundShadow: false,
871
- shadows: false,
872
- cameraAxisXSpeed: 4,
873
- cameraAxisYSpeed: 1,
874
- ambientOcclusion: false,
875
- enableStreamingMode: true,
876
- enablePartialMode: false,
877
- memoryLimit: 3294967296,
878
- cuttingPlaneFillColor: {
879
- red: 255,
880
- green: 152,
881
- blue: 0
882
- },
883
- edgesColor: {
884
- r: 255,
885
- g: 152,
886
- b: 0
887
- },
888
- facesColor: {
889
- r: 255,
890
- g: 152,
891
- b: 0
892
- },
893
- edgesVisibility: true,
894
- edgesOverlap: true,
895
- facesOverlap: false,
896
- facesTransparancy: 200,
897
- enableCustomHighlight: true,
898
- sceneGraph: false,
899
- edgeModel: true,
900
- reverseZoomWheel: false,
901
- enableZoomWheel: true,
902
- enableGestures: true,
903
- geometryType: "vsfx"
904
- };
865
+ internalGet() {
866
+ return this.httpClient.get(`/files/${this.fileId}/permissions/${this.id}`);
905
867
  }
906
- notifierChangeEvent() {
907
- if (this._emitter !== undefined) {
908
- this.saveToStorage();
909
- this._emitter.emit({
910
- type: "optionschange",
911
- data: this
912
- });
913
- }
868
+ internalPut(body) {
869
+ return this.httpClient.put(`/files/${this.fileId}/permissions/${this.id}`, body);
914
870
  }
915
- saveToStorage() {
916
- if (typeof window !== "undefined") try {
917
- localStorage.setItem("od-client-settings", JSON.stringify(this.data));
918
- } catch (error) {
919
- console.error("Cannot save client settings.", error);
920
- }
871
+ internalDelete() {
872
+ return this.httpClient.delete(`/files/${this.fileId}/permissions/${this.id}`);
921
873
  }
922
- loadFromStorage() {
923
- if (typeof window !== "undefined") try {
924
- const item = localStorage.getItem("od-client-settings");
925
- if (item) {
926
- const data = JSON.parse(item);
927
- this.data = {
928
- ...data
929
- };
930
- }
931
- } catch (error) {
932
- console.error("Cannot load client settings.", error);
933
- }
874
+ get actions() {
875
+ return this.data.actions;
934
876
  }
935
- resetToDefaults(fields) {
936
- if (fields !== undefined) {
937
- const defaults = Options.defaults();
938
- const resetData = fields.reduce(((acc, field) => {
939
- acc[field] = defaults[field];
940
- return acc;
941
- }), {});
942
- this.data = {
943
- ...this.data,
944
- ...resetData
945
- };
946
- } else {
947
- this.data = {
948
- ...this.data,
949
- ...Options.defaults()
950
- };
951
- }
877
+ set actions(value) {
878
+ this._data.actions = value;
952
879
  }
953
880
  get data() {
954
881
  return this._data;
955
882
  }
956
883
  set data(value) {
957
- const sceneGraph = value.enablePartialMode ? false : value.sceneGraph;
958
- this._data = {
959
- ...Options.defaults(),
960
- ...this._data,
961
- ...value,
962
- sceneGraph: sceneGraph
963
- };
964
- this.notifierChangeEvent();
884
+ this._data = value;
965
885
  }
966
- get showWCS() {
967
- return this._data.showWCS;
886
+ get id() {
887
+ return this.data.id;
968
888
  }
969
- set showWCS(value) {
970
- this._data.showWCS = value;
971
- this.notifierChangeEvent();
889
+ get grantedTo() {
890
+ return this.data.grantedTo;
972
891
  }
973
- get cameraAnimation() {
974
- return this._data.cameraAnimation;
892
+ set grantedTo(value) {
893
+ this.data.grantedTo = value;
975
894
  }
976
- set cameraAnimation(value) {
977
- this._data.cameraAnimation = value;
978
- this.notifierChangeEvent();
895
+ get public() {
896
+ return this.data.public;
979
897
  }
980
- get antialiasing() {
981
- return this._data.antialiasing;
898
+ set public(value) {
899
+ this.data.public = value;
982
900
  }
983
- set antialiasing(value) {
984
- this._data.antialiasing = value;
985
- this.notifierChangeEvent();
901
+ async checkout() {
902
+ this.data = await json(this.internalGet());
903
+ return this;
986
904
  }
987
- get groundShadow() {
988
- return this._data.groundShadow;
905
+ async update(data) {
906
+ this.data = await json(this.internalPut(data));
907
+ return this;
989
908
  }
990
- set groundShadow(value) {
991
- this._data.groundShadow = value;
992
- this.notifierChangeEvent();
909
+ delete() {
910
+ return json(this.internalDelete());
993
911
  }
994
- get shadows() {
995
- return this._data.shadows;
912
+ save() {
913
+ return this.update(this.data);
996
914
  }
997
- set shadows(value) {
998
- this._data.shadows = value;
999
- this.notifierChangeEvent();
915
+ }
916
+
917
+ class Job {
918
+ constructor(data, httpClient) {
919
+ this.httpClient = httpClient;
920
+ this.data = data;
1000
921
  }
1001
- get cameraAxisXSpeed() {
1002
- return this._data.cameraAxisXSpeed;
922
+ internalGet() {
923
+ return this.httpClient.get(`/jobs/${this.data.id}`);
1003
924
  }
1004
- set cameraAxisXSpeed(value) {
1005
- this._data.cameraAxisXSpeed = value;
1006
- this.notifierChangeEvent();
925
+ internalPut(body) {
926
+ return this.httpClient.put(`/jobs/${this.data.id}`, body);
1007
927
  }
1008
- get cameraAxisYSpeed() {
1009
- return this._data.cameraAxisYSpeed;
928
+ internalDelete() {
929
+ return this.httpClient.delete(`/jobs/${this.data.id}`);
1010
930
  }
1011
- set cameraAxisYSpeed(value) {
1012
- this.cameraAxisYSpeed = value;
1013
- this.notifierChangeEvent();
931
+ get assemblyId() {
932
+ return this.data.assemblyId;
1014
933
  }
1015
- get ambientOcclusion() {
1016
- return this._data.ambientOcclusion;
934
+ get authorId() {
935
+ return this.data.authorId;
1017
936
  }
1018
- set ambientOcclusion(value) {
1019
- this._data.ambientOcclusion = value;
1020
- this.notifierChangeEvent();
937
+ get createdAt() {
938
+ return this.data.createdAt;
1021
939
  }
1022
- get enableStreamingMode() {
1023
- return this._data.enableStreamingMode;
940
+ get data() {
941
+ return this._data;
1024
942
  }
1025
- set enableStreamingMode(value) {
1026
- this._data.enableStreamingMode = value;
1027
- if (this._data.enableStreamingMode) {
1028
- this._data.enablePartialMode = false;
1029
- }
1030
- this.notifierChangeEvent();
943
+ set data(value) {
944
+ this._data = value;
1031
945
  }
1032
- get enablePartialMode() {
1033
- return this._data.enablePartialMode;
946
+ get done() {
947
+ return this.data.status === "done" || this.data.status === "failed";
1034
948
  }
1035
- set enablePartialMode(value) {
1036
- this._data.enablePartialMode = value;
1037
- if (value) this._data.sceneGraph = false;
1038
- this.notifierChangeEvent();
949
+ get fileId() {
950
+ return this.data.fileId;
1039
951
  }
1040
- get memoryLimit() {
1041
- return this._data.memoryLimit;
952
+ get id() {
953
+ return this.data.id;
1042
954
  }
1043
- set memoryLimit(value) {
1044
- this._data.memoryLimit = value;
1045
- this.notifierChangeEvent();
955
+ get lastUpdate() {
956
+ return this.data.lastUpdate;
1046
957
  }
1047
- get cuttingPlaneFillColor() {
1048
- return this._data.cuttingPlaneFillColor;
958
+ get outputFormat() {
959
+ return this.data.outputFormat;
1049
960
  }
1050
- set cuttingPlaneFillColor(value) {
1051
- this._data.cuttingPlaneFillColor = value;
1052
- this.notifierChangeEvent();
961
+ get parameters() {
962
+ return this.data.parameters;
1053
963
  }
1054
- get edgesColor() {
1055
- return this._data.edgesColor;
964
+ get status() {
965
+ return this.data.status;
1056
966
  }
1057
- set edgesColor(value) {
1058
- this._data.edgesColor = value;
1059
- this.notifierChangeEvent();
967
+ get statusMessage() {
968
+ return this.data.statusMessage;
1060
969
  }
1061
- get facesColor() {
1062
- return this._data.facesColor;
970
+ get startedAt() {
971
+ return this.data.startedAt;
1063
972
  }
1064
- set facesColor(value) {
1065
- this._data.facesColor = value;
1066
- this.notifierChangeEvent();
973
+ async checkout() {
974
+ this.data = await json(this.internalGet());
975
+ return this;
1067
976
  }
1068
- get edgesVisibility() {
1069
- return this._data.edgesVisibility;
1070
- }
1071
- set edgesVisibility(value) {
1072
- this._data.edgesVisibility = value;
1073
- this.notifierChangeEvent();
1074
- }
1075
- get edgesOverlap() {
1076
- return this._data.edgesOverlap;
1077
- }
1078
- set edgesOverlap(value) {
1079
- this._data.edgesOverlap = value;
1080
- this.notifierChangeEvent();
1081
- }
1082
- get facesOverlap() {
1083
- return this._data.facesOverlap;
1084
- }
1085
- set facesOverlap(value) {
1086
- this._data.facesOverlap = value;
1087
- this.notifierChangeEvent();
1088
- }
1089
- get facesTransparancy() {
1090
- return this._data.facesTransparancy;
1091
- }
1092
- set facesTransparancy(value) {
1093
- this._data.facesTransparancy = value;
1094
- this.notifierChangeEvent();
1095
- }
1096
- get enableCustomHighlight() {
1097
- return this._data.enableCustomHighlight;
1098
- }
1099
- set enableCustomHighlight(value) {
1100
- this._data.enableCustomHighlight = value;
1101
- this.notifierChangeEvent();
1102
- }
1103
- get sceneGraph() {
1104
- return this._data.sceneGraph;
1105
- }
1106
- set sceneGraph(value) {
1107
- this._data.sceneGraph = value;
1108
- if (value) this._data.enablePartialMode = false;
1109
- this.notifierChangeEvent();
1110
- }
1111
- get edgeModel() {
1112
- return Boolean(this._data.edgeModel);
1113
- }
1114
- set edgeModel(value) {
1115
- this._data.edgeModel = Boolean(value);
1116
- this.notifierChangeEvent();
1117
- }
1118
- get reverseZoomWheel() {
1119
- return this._data.reverseZoomWheel;
1120
- }
1121
- set reverseZoomWheel(value) {
1122
- this._data.reverseZoomWheel = !!value;
1123
- this.notifierChangeEvent();
1124
- }
1125
- get enableZoomWheel() {
1126
- return this._data.enableZoomWheel;
1127
- }
1128
- set enableZoomWheel(value) {
1129
- this._data.enableZoomWheel = !!value;
1130
- this.notifierChangeEvent();
1131
- }
1132
- get enableGestures() {
1133
- return this._data.enableGestures;
1134
- }
1135
- set enableGestures(value) {
1136
- this._data.enableGestures = !!value;
1137
- this.notifierChangeEvent();
1138
- }
1139
- get geometryType() {
1140
- return this._data.geometryType;
1141
- }
1142
- set geometryType(value) {
1143
- this._data.geometryType = value;
1144
- this.notifierChangeEvent();
1145
- }
1146
- }
1147
-
1148
- class Permission {
1149
- constructor(data, fileId, httpClient) {
1150
- this.httpClient = httpClient;
1151
- this.fileId = fileId;
1152
- this.data = data;
1153
- }
1154
- internalGet() {
1155
- return this.httpClient.get(`/files/${this.fileId}/permissions/${this.id}`);
1156
- }
1157
- internalPut(body) {
1158
- return this.httpClient.put(`/files/${this.fileId}/permissions/${this.id}`, body);
1159
- }
1160
- internalDelete() {
1161
- return this.httpClient.delete(`/files/${this.fileId}/permissions/${this.id}`);
1162
- }
1163
- get actions() {
1164
- return this.data.actions;
1165
- }
1166
- set actions(value) {
1167
- this._data.actions = value;
1168
- }
1169
- get data() {
1170
- return this._data;
1171
- }
1172
- set data(value) {
1173
- this._data = value;
1174
- }
1175
- get id() {
1176
- return this.data.id;
1177
- }
1178
- get grantedTo() {
1179
- return this.data.grantedTo;
1180
- }
1181
- set grantedTo(value) {
1182
- this.data.grantedTo = value;
1183
- }
1184
- get public() {
1185
- return this.data.public;
1186
- }
1187
- set public(value) {
1188
- this.data.public = value;
1189
- }
1190
- async checkout() {
1191
- this.data = await json(this.internalGet());
1192
- return this;
1193
- }
1194
- async update(data) {
1195
- this.data = await json(this.internalPut(data));
1196
- return this;
1197
- }
1198
- delete() {
1199
- return json(this.internalDelete());
1200
- }
1201
- save() {
1202
- return this.update(this.data);
1203
- }
1204
- }
1205
-
1206
- class Job {
1207
- constructor(data, httpClient) {
1208
- this.httpClient = httpClient;
1209
- this.data = data;
1210
- }
1211
- internalGet() {
1212
- return this.httpClient.get(`/jobs/${this.data.id}`);
1213
- }
1214
- internalPut(body) {
1215
- return this.httpClient.put(`/jobs/${this.data.id}`, body);
1216
- }
1217
- internalDelete() {
1218
- return this.httpClient.delete(`/jobs/${this.data.id}`);
1219
- }
1220
- get assemblyId() {
1221
- return this.data.assemblyId;
1222
- }
1223
- get authorId() {
1224
- return this.data.authorId;
1225
- }
1226
- get createdAt() {
1227
- return this.data.createdAt;
1228
- }
1229
- get data() {
1230
- return this._data;
1231
- }
1232
- set data(value) {
1233
- this._data = value;
1234
- }
1235
- get done() {
1236
- return this.data.status === "done" || this.data.status === "failed";
1237
- }
1238
- get fileId() {
1239
- return this.data.fileId;
1240
- }
1241
- get id() {
1242
- return this.data.id;
1243
- }
1244
- get lastUpdate() {
1245
- return this.data.lastUpdate;
1246
- }
1247
- get outputFormat() {
1248
- return this.data.outputFormat;
1249
- }
1250
- get parameters() {
1251
- return this.data.parameters;
1252
- }
1253
- get status() {
1254
- return this.data.status;
1255
- }
1256
- get statusMessage() {
1257
- return this.data.statusMessage;
1258
- }
1259
- get startedAt() {
1260
- return this.data.startedAt;
1261
- }
1262
- async checkout() {
1263
- this.data = await json(this.internalGet());
1264
- return this;
1265
- }
1266
- async update(data) {
1267
- this.data = await json(this.internalPut(data));
1268
- return this;
977
+ async update(data) {
978
+ this.data = await json(this.internalPut(data));
979
+ return this;
1269
980
  }
1270
981
  delete() {
1271
982
  return json(this.internalDelete());
@@ -2061,14 +1772,59 @@ class Client extends EventEmitter2 {
2061
1772
  super();
2062
1773
  this.configure(params);
2063
1774
  this.eventEmitter = this;
2064
- this._options = new Options(this);
2065
1775
  this._user = null;
2066
1776
  }
2067
1777
  get serverUrl() {
2068
1778
  return this._serverUrl;
2069
1779
  }
2070
1780
  get options() {
2071
- return this._options;
1781
+ console.warn("Client.options has been deprecated since 25.3 and will be removed in a future release, use Viewer.options instead.");
1782
+ const data = {
1783
+ showWCS: true,
1784
+ cameraAnimation: true,
1785
+ antialiasing: true,
1786
+ groundShadow: false,
1787
+ shadows: false,
1788
+ cameraAxisXSpeed: 4,
1789
+ cameraAxisYSpeed: 1,
1790
+ ambientOcclusion: false,
1791
+ enableStreamingMode: true,
1792
+ enablePartialMode: false,
1793
+ memoryLimit: 3294967296,
1794
+ cuttingPlaneFillColor: {
1795
+ red: 255,
1796
+ green: 152,
1797
+ blue: 0
1798
+ },
1799
+ edgesColor: {
1800
+ r: 255,
1801
+ g: 152,
1802
+ b: 0
1803
+ },
1804
+ facesColor: {
1805
+ r: 255,
1806
+ g: 152,
1807
+ b: 0
1808
+ },
1809
+ edgesVisibility: true,
1810
+ edgesOverlap: true,
1811
+ facesOverlap: false,
1812
+ facesTransparancy: 200,
1813
+ enableCustomHighlight: true,
1814
+ sceneGraph: false,
1815
+ edgeModel: true,
1816
+ reverseZoomWheel: false,
1817
+ enableZoomWheel: true,
1818
+ enableGestures: true
1819
+ };
1820
+ return {
1821
+ ...data,
1822
+ data: data,
1823
+ defaults: () => data,
1824
+ resetToDefaults: () => {},
1825
+ saveToStorage: () => {},
1826
+ loadFromStorage: () => {}
1827
+ };
2072
1828
  }
2073
1829
  configure(params) {
2074
1830
  this._serverUrl = (params.serverUrl || "").replace(/\/+$/, "");
@@ -2080,7 +1836,7 @@ class Client extends EventEmitter2 {
2080
1836
  return this._httpClient.get("/version").then((response => response.json())).then((data => ({
2081
1837
  ...data,
2082
1838
  server: data.version,
2083
- client: "25.3.8"
1839
+ client: "25.3.10"
2084
1840
  })));
2085
1841
  }
2086
1842
  registerUser(email, password, userName) {
@@ -2213,7 +1969,7 @@ class Client extends EventEmitter2 {
2213
1969
  });
2214
1970
  (_a = params.onProgress) === null || _a === void 0 ? void 0 : _a.call(params, progress, file);
2215
1971
  })).then((xhr => JSON.parse(xhr.responseText))).then((data => new File$1(data, this._httpClient)));
2216
- const geometryType = typeof params.geometry === "string" ? params.geometry : this.options.geometryType;
1972
+ const geometryType = typeof params.geometry === "string" ? params.geometry : "vsfx";
2217
1973
  const jobs = [];
2218
1974
  if (params.geometry) jobs.push((await result.extractGeometry(geometryType)).outputFormat);
2219
1975
  if (params.properties) jobs.push((await result.extractProperties()).outputFormat);
@@ -2471,217 +2227,506 @@ class OdaGeAction {
2471
2227
  screenToWorld(x, y) {
2472
2228
  return this.toPoint(this.m_module.getViewer().screenToWorld(x, y));
2473
2229
  }
2474
- toDoubleArray(points) {
2475
- const p = [];
2476
- for (let i = 0; i < points.length; i++) {
2477
- p.push(points[i].x);
2478
- p.push(points[i].y);
2479
- p.push(points[i].z);
2480
- }
2481
- return p;
2230
+ toDoubleArray(points) {
2231
+ const p = [];
2232
+ for (let i = 0; i < points.length; i++) {
2233
+ p.push(points[i].x);
2234
+ p.push(points[i].y);
2235
+ p.push(points[i].z);
2236
+ }
2237
+ return p;
2238
+ }
2239
+ correctCameraTarget() {
2240
+ const params = this.getViewParams();
2241
+ const ext = this.m_module.getViewer().getActiveExtents();
2242
+ const {min: min, max: max} = ext;
2243
+ const target = this.toPoint(params.target);
2244
+ const contains = target.x >= min.x && target.y >= min.y && target.z >= min.z && target.x <= max.x && target.y <= max.y && target.z <= max.z;
2245
+ if (!contains) {
2246
+ params.target = ext.center();
2247
+ this.setViewParams(params);
2248
+ }
2249
+ }
2250
+ }
2251
+
2252
+ const CLICK_DELTA = 5;
2253
+
2254
+ const INTERACTIVITY_FPS = 24;
2255
+
2256
+ class OdBaseDragger extends OdaGeAction {
2257
+ constructor(subject) {
2258
+ super(subject.visualizeJs);
2259
+ this.beginInteractivity = () => {
2260
+ const viewer = this.getViewer();
2261
+ const view = viewer.activeView;
2262
+ if (view["beginInteractivity"]) {
2263
+ view.beginInteractivity(INTERACTIVITY_FPS);
2264
+ this.subject.update();
2265
+ }
2266
+ view.delete();
2267
+ };
2268
+ this.endInteractivity = () => {
2269
+ const viewer = this.getViewer();
2270
+ const view = viewer.activeView;
2271
+ if (view["endInteractivity"]) {
2272
+ view.endInteractivity();
2273
+ const device = this.getViewer().getActiveDevice();
2274
+ const canvas = this.m_module.canvas;
2275
+ device.invalidate([ 0, 0, canvas.width, canvas.height ]);
2276
+ device.delete();
2277
+ this.subject.update();
2278
+ }
2279
+ view.delete();
2280
+ };
2281
+ this.subject = subject;
2282
+ this.needInputText = false;
2283
+ this.mouseDownPosition = {
2284
+ x: 0,
2285
+ y: 0
2286
+ };
2287
+ this.autoSelect = false;
2288
+ this.onmessage = event => this.subject.emitEvent(event);
2289
+ this.canvasEvents = CANVAS_EVENTS;
2290
+ }
2291
+ initialize() {
2292
+ this.canvasEvents = this.canvasEvents.filter((x => typeof this[x] === "function"));
2293
+ this.canvasEvents.forEach((x => this[x] = this[x].bind(this)));
2294
+ this.canvasEvents.forEach((x => this.subject.on(x, this[x])));
2295
+ this.getViewer().setEnableAutoSelect(!!this.autoSelect);
2296
+ }
2297
+ dispose() {
2298
+ this.canvasEvents.forEach((x => this.subject.off(x, this[x])));
2299
+ }
2300
+ relativeCoords(event) {
2301
+ return {
2302
+ x: event.offsetX * window.devicePixelRatio,
2303
+ y: event.offsetY * window.devicePixelRatio
2304
+ };
2305
+ }
2306
+ pointerdown(ev) {
2307
+ if (!ev.isPrimary || OdBaseDragger.isGestureActive) {
2308
+ return;
2309
+ }
2310
+ ev.target.setPointerCapture(ev.pointerId);
2311
+ const relCoord = this.relativeCoords(ev);
2312
+ this.isDragging = true;
2313
+ this.mouseDownPosition = {
2314
+ x: relCoord.x,
2315
+ y: relCoord.y
2316
+ };
2317
+ this.start(relCoord.x, relCoord.y, ev.clientX, ev.clientY);
2318
+ this.subject.update();
2319
+ }
2320
+ pointerup(ev) {
2321
+ if (OdBaseDragger.needSkipPointerUp) {
2322
+ return;
2323
+ }
2324
+ if (!ev.isPrimary) {
2325
+ return;
2326
+ }
2327
+ ev.target.releasePointerCapture(ev.pointerId);
2328
+ const relCoord = this.relativeCoords(ev);
2329
+ this.end(relCoord.x, relCoord.y);
2330
+ this.isDragging = false;
2331
+ this.subject.update();
2332
+ }
2333
+ pointercancel(ev) {
2334
+ if (!ev.isPrimary) {
2335
+ return;
2336
+ }
2337
+ this.m_module.canvas.dispatchEvent(new PointerEvent("pointerup", ev));
2338
+ }
2339
+ pointermove(ev) {
2340
+ if (!ev.isPrimary || OdBaseDragger.isGestureActive) {
2341
+ return;
2342
+ }
2343
+ const relCoord = this.relativeCoords(ev);
2344
+ this.drag(relCoord.x, relCoord.y, ev.movementX, ev.movementY);
2345
+ if (this.isDragging) {
2346
+ this.subject.update();
2347
+ }
2348
+ }
2349
+ click(ev) {
2350
+ const viewer = this.getViewer();
2351
+ const relCoord = this.relativeCoords(ev);
2352
+ const x = relCoord.x;
2353
+ const y = relCoord.y;
2354
+ const isNotDragging = Math.abs(x - this.mouseDownPosition.x) < CLICK_DELTA && Math.abs(y - this.mouseDownPosition.y) < CLICK_DELTA;
2355
+ if (viewer && viewer.getEnableAutoSelect() && isNotDragging) {
2356
+ viewer.unselect();
2357
+ viewer.select(x, y, x, y);
2358
+ this.subject.update();
2359
+ const selectionSet = viewer.getSelected();
2360
+ const handles = this.subject.getSelected();
2361
+ this.onmessage({
2362
+ type: "select",
2363
+ data: selectionSet,
2364
+ handles: handles
2365
+ });
2366
+ }
2367
+ }
2368
+ dblclick(ev) {
2369
+ const viewer = this.getViewer();
2370
+ const relCoord = this.relativeCoords(ev);
2371
+ const x = relCoord.x;
2372
+ const y = relCoord.y;
2373
+ const device = viewer.getActiveDevice();
2374
+ const clickView = device.viewAt([ x, y ]);
2375
+ if (clickView && !clickView.active) {
2376
+ viewer.activeView = clickView;
2377
+ clickView.delete();
2378
+ this.subject.update();
2379
+ } else {
2380
+ if (viewer && viewer.getEnableAutoSelect()) {
2381
+ const pSelected = viewer.getSelected();
2382
+ if (!pSelected.isNull() && pSelected.numItems() !== 0) {
2383
+ const itr = pSelected.getIterator();
2384
+ const entity = itr.getEntity();
2385
+ viewer.zoomToEntity(entity);
2386
+ this.onmessage({
2387
+ type: "zoomtoentity",
2388
+ data: entity
2389
+ });
2390
+ this.subject.update();
2391
+ this.deleteAll([ itr, entity ]);
2392
+ }
2393
+ }
2394
+ }
2395
+ device.delete();
2396
+ }
2397
+ start(x, y, absoluteX = 0, absoluteY = 0) {}
2398
+ drag(x, y, absoluteX = 0, absoluteY = 0) {}
2399
+ end(x, y) {}
2400
+ getActiveMarkupEntity(entityName) {
2401
+ return this.subject.addMarkupEntity(entityName);
2402
+ }
2403
+ syncOverlayView() {
2404
+ return this.subject.syncOverlay();
2405
+ }
2406
+ deleteAll(objects) {
2407
+ var _a;
2408
+ for (const obj of objects) {
2409
+ (_a = obj === null || obj === void 0 ? void 0 : obj.delete) === null || _a === void 0 ? void 0 : _a.call(obj);
2410
+ }
2411
+ }
2412
+ updatePreview() {}
2413
+ static set isGestureActive(value) {
2414
+ if (OdBaseDragger._isGestureActive === value) {
2415
+ return;
2416
+ }
2417
+ OdBaseDragger._isGestureActive = value;
2418
+ if (OdBaseDragger._isGestureActive) {
2419
+ OdBaseDragger.needSkipPointerUp = true;
2420
+ }
2421
+ }
2422
+ static get isGestureActive() {
2423
+ return OdBaseDragger._isGestureActive;
2424
+ }
2425
+ static get needSkipPointerUp() {
2426
+ if (OdBaseDragger._needSkipPointerUp) {
2427
+ OdBaseDragger.needSkipPointerUp = false;
2428
+ return true;
2429
+ }
2430
+ return false;
2431
+ }
2432
+ static set needSkipPointerUp(value) {
2433
+ OdBaseDragger._needSkipPointerUp = value;
2434
+ }
2435
+ }
2436
+
2437
+ OdBaseDragger._isGestureActive = false;
2438
+
2439
+ OdBaseDragger._needSkipPointerUp = false;
2440
+
2441
+ class Options {
2442
+ constructor(emitter) {
2443
+ this._emitter = emitter;
2444
+ this._data = Options.defaults();
2445
+ this.loadFromStorage();
2446
+ }
2447
+ static defaults() {
2448
+ return {
2449
+ showWCS: true,
2450
+ cameraAnimation: true,
2451
+ antialiasing: true,
2452
+ groundShadow: false,
2453
+ shadows: false,
2454
+ cameraAxisXSpeed: 4,
2455
+ cameraAxisYSpeed: 1,
2456
+ ambientOcclusion: false,
2457
+ enableStreamingMode: true,
2458
+ enablePartialMode: false,
2459
+ memoryLimit: 3294967296,
2460
+ cuttingPlaneFillColor: {
2461
+ red: 255,
2462
+ green: 152,
2463
+ blue: 0
2464
+ },
2465
+ edgesColor: {
2466
+ r: 255,
2467
+ g: 152,
2468
+ b: 0
2469
+ },
2470
+ facesColor: {
2471
+ r: 255,
2472
+ g: 152,
2473
+ b: 0
2474
+ },
2475
+ edgesVisibility: true,
2476
+ edgesOverlap: true,
2477
+ facesOverlap: false,
2478
+ facesTransparancy: 200,
2479
+ enableCustomHighlight: true,
2480
+ sceneGraph: false,
2481
+ edgeModel: true,
2482
+ reverseZoomWheel: false,
2483
+ enableZoomWheel: true,
2484
+ enableGestures: true,
2485
+ geometryType: "vsfx"
2486
+ };
2487
+ }
2488
+ notifierChangeEvent() {
2489
+ if (this._emitter !== undefined) {
2490
+ this.saveToStorage();
2491
+ this._emitter.emit({
2492
+ type: "optionschange",
2493
+ data: this
2494
+ });
2495
+ }
2496
+ }
2497
+ saveToStorage() {
2498
+ if (typeof window !== "undefined") try {
2499
+ localStorage.setItem("od-client-settings", JSON.stringify(this.data));
2500
+ } catch (error) {
2501
+ console.error("Cannot save client settings.", error);
2502
+ }
2503
+ }
2504
+ loadFromStorage() {
2505
+ if (typeof window !== "undefined") try {
2506
+ const item = localStorage.getItem("od-client-settings");
2507
+ if (item) {
2508
+ const data = JSON.parse(item);
2509
+ this.data = {
2510
+ ...data
2511
+ };
2512
+ }
2513
+ } catch (error) {
2514
+ console.error("Cannot load client settings.", error);
2515
+ }
2516
+ }
2517
+ resetToDefaults(fields) {
2518
+ if (fields !== undefined) {
2519
+ const defaults = Options.defaults();
2520
+ const resetData = fields.reduce(((acc, field) => {
2521
+ acc[field] = defaults[field];
2522
+ return acc;
2523
+ }), {});
2524
+ this.data = {
2525
+ ...this.data,
2526
+ ...resetData
2527
+ };
2528
+ } else {
2529
+ this.data = {
2530
+ ...this.data,
2531
+ ...Options.defaults()
2532
+ };
2533
+ }
2534
+ }
2535
+ get data() {
2536
+ return this._data;
2537
+ }
2538
+ set data(value) {
2539
+ const sceneGraph = value.enablePartialMode ? false : value.sceneGraph;
2540
+ this._data = {
2541
+ ...Options.defaults(),
2542
+ ...this._data,
2543
+ ...value,
2544
+ sceneGraph: sceneGraph
2545
+ };
2546
+ this.notifierChangeEvent();
2547
+ }
2548
+ get showWCS() {
2549
+ return this._data.showWCS;
2550
+ }
2551
+ set showWCS(value) {
2552
+ this._data.showWCS = value;
2553
+ this.notifierChangeEvent();
2554
+ }
2555
+ get cameraAnimation() {
2556
+ return this._data.cameraAnimation;
2557
+ }
2558
+ set cameraAnimation(value) {
2559
+ this._data.cameraAnimation = value;
2560
+ this.notifierChangeEvent();
2561
+ }
2562
+ get antialiasing() {
2563
+ return this._data.antialiasing;
2564
+ }
2565
+ set antialiasing(value) {
2566
+ this._data.antialiasing = value;
2567
+ this.notifierChangeEvent();
2568
+ }
2569
+ get groundShadow() {
2570
+ return this._data.groundShadow;
2571
+ }
2572
+ set groundShadow(value) {
2573
+ this._data.groundShadow = value;
2574
+ this.notifierChangeEvent();
2575
+ }
2576
+ get shadows() {
2577
+ return this._data.shadows;
2578
+ }
2579
+ set shadows(value) {
2580
+ this._data.shadows = value;
2581
+ this.notifierChangeEvent();
2582
+ }
2583
+ get cameraAxisXSpeed() {
2584
+ return this._data.cameraAxisXSpeed;
2585
+ }
2586
+ set cameraAxisXSpeed(value) {
2587
+ this._data.cameraAxisXSpeed = value;
2588
+ this.notifierChangeEvent();
2589
+ }
2590
+ get cameraAxisYSpeed() {
2591
+ return this._data.cameraAxisYSpeed;
2592
+ }
2593
+ set cameraAxisYSpeed(value) {
2594
+ this.cameraAxisYSpeed = value;
2595
+ this.notifierChangeEvent();
2596
+ }
2597
+ get ambientOcclusion() {
2598
+ return this._data.ambientOcclusion;
2599
+ }
2600
+ set ambientOcclusion(value) {
2601
+ this._data.ambientOcclusion = value;
2602
+ this.notifierChangeEvent();
2603
+ }
2604
+ get enableStreamingMode() {
2605
+ return this._data.enableStreamingMode;
2606
+ }
2607
+ set enableStreamingMode(value) {
2608
+ this._data.enableStreamingMode = value;
2609
+ if (this._data.enableStreamingMode) {
2610
+ this._data.enablePartialMode = false;
2611
+ }
2612
+ this.notifierChangeEvent();
2613
+ }
2614
+ get enablePartialMode() {
2615
+ return this._data.enablePartialMode;
2616
+ }
2617
+ set enablePartialMode(value) {
2618
+ this._data.enablePartialMode = value;
2619
+ if (value) this._data.sceneGraph = false;
2620
+ this.notifierChangeEvent();
2621
+ }
2622
+ get memoryLimit() {
2623
+ return this._data.memoryLimit;
2624
+ }
2625
+ set memoryLimit(value) {
2626
+ this._data.memoryLimit = value;
2627
+ this.notifierChangeEvent();
2628
+ }
2629
+ get cuttingPlaneFillColor() {
2630
+ return this._data.cuttingPlaneFillColor;
2631
+ }
2632
+ set cuttingPlaneFillColor(value) {
2633
+ this._data.cuttingPlaneFillColor = value;
2634
+ this.notifierChangeEvent();
2635
+ }
2636
+ get edgesColor() {
2637
+ return this._data.edgesColor;
2638
+ }
2639
+ set edgesColor(value) {
2640
+ this._data.edgesColor = value;
2641
+ this.notifierChangeEvent();
2642
+ }
2643
+ get facesColor() {
2644
+ return this._data.facesColor;
2645
+ }
2646
+ set facesColor(value) {
2647
+ this._data.facesColor = value;
2648
+ this.notifierChangeEvent();
2649
+ }
2650
+ get edgesVisibility() {
2651
+ return this._data.edgesVisibility;
2652
+ }
2653
+ set edgesVisibility(value) {
2654
+ this._data.edgesVisibility = value;
2655
+ this.notifierChangeEvent();
2656
+ }
2657
+ get edgesOverlap() {
2658
+ return this._data.edgesOverlap;
2659
+ }
2660
+ set edgesOverlap(value) {
2661
+ this._data.edgesOverlap = value;
2662
+ this.notifierChangeEvent();
2482
2663
  }
2483
- correctCameraTarget() {
2484
- const params = this.getViewParams();
2485
- const ext = this.m_module.getViewer().getActiveExtents();
2486
- const {min: min, max: max} = ext;
2487
- const target = this.toPoint(params.target);
2488
- const contains = target.x >= min.x && target.y >= min.y && target.z >= min.z && target.x <= max.x && target.y <= max.y && target.z <= max.z;
2489
- if (!contains) {
2490
- params.target = ext.center();
2491
- this.setViewParams(params);
2492
- }
2664
+ get facesOverlap() {
2665
+ return this._data.facesOverlap;
2493
2666
  }
2494
- }
2495
-
2496
- const CLICK_DELTA = 5;
2497
-
2498
- const INTERACTIVITY_FPS = 24;
2499
-
2500
- class OdBaseDragger extends OdaGeAction {
2501
- constructor(subject) {
2502
- super(subject.visualizeJs);
2503
- this.beginInteractivity = () => {
2504
- const viewer = this.getViewer();
2505
- const view = viewer.activeView;
2506
- if (view["beginInteractivity"]) {
2507
- view.beginInteractivity(INTERACTIVITY_FPS);
2508
- this.subject.update();
2509
- }
2510
- view.delete();
2511
- };
2512
- this.endInteractivity = () => {
2513
- const viewer = this.getViewer();
2514
- const view = viewer.activeView;
2515
- if (view["endInteractivity"]) {
2516
- view.endInteractivity();
2517
- const device = this.getViewer().getActiveDevice();
2518
- const canvas = this.m_module.canvas;
2519
- device.invalidate([ 0, 0, canvas.width, canvas.height ]);
2520
- device.delete();
2521
- this.subject.update();
2522
- }
2523
- view.delete();
2524
- };
2525
- this.subject = subject;
2526
- this.needInputText = false;
2527
- this.mouseDownPosition = {
2528
- x: 0,
2529
- y: 0
2530
- };
2531
- this.autoSelect = false;
2532
- this.onmessage = event => this.subject.emitEvent(event);
2533
- this.canvasEvents = CANVAS_EVENTS;
2667
+ set facesOverlap(value) {
2668
+ this._data.facesOverlap = value;
2669
+ this.notifierChangeEvent();
2534
2670
  }
2535
- initialize() {
2536
- this.canvasEvents = this.canvasEvents.filter((x => typeof this[x] === "function"));
2537
- this.canvasEvents.forEach((x => this[x] = this[x].bind(this)));
2538
- this.canvasEvents.forEach((x => this.subject.on(x, this[x])));
2539
- this.getViewer().setEnableAutoSelect(!!this.autoSelect);
2671
+ get facesTransparancy() {
2672
+ return this._data.facesTransparancy;
2540
2673
  }
2541
- dispose() {
2542
- this.canvasEvents.forEach((x => this.subject.off(x, this[x])));
2674
+ set facesTransparancy(value) {
2675
+ this._data.facesTransparancy = value;
2676
+ this.notifierChangeEvent();
2543
2677
  }
2544
- relativeCoords(event) {
2545
- return {
2546
- x: event.offsetX * window.devicePixelRatio,
2547
- y: event.offsetY * window.devicePixelRatio
2548
- };
2678
+ get enableCustomHighlight() {
2679
+ return this._data.enableCustomHighlight;
2549
2680
  }
2550
- pointerdown(ev) {
2551
- if (!ev.isPrimary || OdBaseDragger.isGestureActive) {
2552
- return;
2553
- }
2554
- ev.target.setPointerCapture(ev.pointerId);
2555
- const relCoord = this.relativeCoords(ev);
2556
- this.isDragging = true;
2557
- this.mouseDownPosition = {
2558
- x: relCoord.x,
2559
- y: relCoord.y
2560
- };
2561
- this.start(relCoord.x, relCoord.y, ev.clientX, ev.clientY);
2562
- this.subject.update();
2681
+ set enableCustomHighlight(value) {
2682
+ this._data.enableCustomHighlight = value;
2683
+ this.notifierChangeEvent();
2563
2684
  }
2564
- pointerup(ev) {
2565
- if (OdBaseDragger.needSkipPointerUp) {
2566
- return;
2567
- }
2568
- if (!ev.isPrimary) {
2569
- return;
2570
- }
2571
- ev.target.releasePointerCapture(ev.pointerId);
2572
- const relCoord = this.relativeCoords(ev);
2573
- this.end(relCoord.x, relCoord.y);
2574
- this.isDragging = false;
2575
- this.subject.update();
2685
+ get sceneGraph() {
2686
+ return this._data.sceneGraph;
2576
2687
  }
2577
- pointercancel(ev) {
2578
- if (!ev.isPrimary) {
2579
- return;
2580
- }
2581
- this.m_module.canvas.dispatchEvent(new PointerEvent("pointerup", ev));
2688
+ set sceneGraph(value) {
2689
+ this._data.sceneGraph = value;
2690
+ if (value) this._data.enablePartialMode = false;
2691
+ this.notifierChangeEvent();
2582
2692
  }
2583
- pointermove(ev) {
2584
- if (!ev.isPrimary || OdBaseDragger.isGestureActive) {
2585
- return;
2586
- }
2587
- const relCoord = this.relativeCoords(ev);
2588
- this.drag(relCoord.x, relCoord.y, ev.movementX, ev.movementY);
2589
- if (this.isDragging) {
2590
- this.subject.update();
2591
- }
2693
+ get edgeModel() {
2694
+ return Boolean(this._data.edgeModel);
2592
2695
  }
2593
- click(ev) {
2594
- const viewer = this.getViewer();
2595
- const relCoord = this.relativeCoords(ev);
2596
- const x = relCoord.x;
2597
- const y = relCoord.y;
2598
- const isNotDragging = Math.abs(x - this.mouseDownPosition.x) < CLICK_DELTA && Math.abs(y - this.mouseDownPosition.y) < CLICK_DELTA;
2599
- if (viewer && viewer.getEnableAutoSelect() && isNotDragging) {
2600
- viewer.unselect();
2601
- viewer.select(x, y, x, y);
2602
- this.subject.update();
2603
- const selectionSet = viewer.getSelected();
2604
- const handles = this.subject.getSelected();
2605
- this.onmessage({
2606
- type: "select",
2607
- data: selectionSet,
2608
- handles: handles
2609
- });
2610
- }
2696
+ set edgeModel(value) {
2697
+ this._data.edgeModel = Boolean(value);
2698
+ this.notifierChangeEvent();
2611
2699
  }
2612
- dblclick(ev) {
2613
- const viewer = this.getViewer();
2614
- const relCoord = this.relativeCoords(ev);
2615
- const x = relCoord.x;
2616
- const y = relCoord.y;
2617
- const device = viewer.getActiveDevice();
2618
- const clickView = device.viewAt([ x, y ]);
2619
- if (clickView && !clickView.active) {
2620
- viewer.activeView = clickView;
2621
- clickView.delete();
2622
- this.subject.update();
2623
- } else {
2624
- if (viewer && viewer.getEnableAutoSelect()) {
2625
- const pSelected = viewer.getSelected();
2626
- if (!pSelected.isNull() && pSelected.numItems() !== 0) {
2627
- const itr = pSelected.getIterator();
2628
- const entity = itr.getEntity();
2629
- viewer.zoomToEntity(entity);
2630
- this.onmessage({
2631
- type: "zoomtoentity",
2632
- data: entity
2633
- });
2634
- this.subject.update();
2635
- this.deleteAll([ itr, entity ]);
2636
- }
2637
- }
2638
- }
2639
- device.delete();
2700
+ get reverseZoomWheel() {
2701
+ return this._data.reverseZoomWheel;
2640
2702
  }
2641
- start(x, y, absoluteX = 0, absoluteY = 0) {}
2642
- drag(x, y, absoluteX = 0, absoluteY = 0) {}
2643
- end(x, y) {}
2644
- getActiveMarkupEntity(entityName) {
2645
- return this.subject.addMarkupEntity(entityName);
2703
+ set reverseZoomWheel(value) {
2704
+ this._data.reverseZoomWheel = !!value;
2705
+ this.notifierChangeEvent();
2646
2706
  }
2647
- syncOverlayView() {
2648
- return this.subject.syncOverlay();
2707
+ get enableZoomWheel() {
2708
+ return this._data.enableZoomWheel;
2649
2709
  }
2650
- deleteAll(objects) {
2651
- var _a;
2652
- for (const obj of objects) {
2653
- (_a = obj === null || obj === void 0 ? void 0 : obj.delete) === null || _a === void 0 ? void 0 : _a.call(obj);
2654
- }
2710
+ set enableZoomWheel(value) {
2711
+ this._data.enableZoomWheel = !!value;
2712
+ this.notifierChangeEvent();
2655
2713
  }
2656
- updatePreview() {}
2657
- static set isGestureActive(value) {
2658
- if (OdBaseDragger._isGestureActive === value) {
2659
- return;
2660
- }
2661
- OdBaseDragger._isGestureActive = value;
2662
- if (OdBaseDragger._isGestureActive) {
2663
- OdBaseDragger.needSkipPointerUp = true;
2664
- }
2714
+ get enableGestures() {
2715
+ return this._data.enableGestures;
2665
2716
  }
2666
- static get isGestureActive() {
2667
- return OdBaseDragger._isGestureActive;
2717
+ set enableGestures(value) {
2718
+ this._data.enableGestures = !!value;
2719
+ this.notifierChangeEvent();
2668
2720
  }
2669
- static get needSkipPointerUp() {
2670
- if (OdBaseDragger._needSkipPointerUp) {
2671
- OdBaseDragger.needSkipPointerUp = false;
2672
- return true;
2673
- }
2674
- return false;
2721
+ get geometryType() {
2722
+ return this._data.geometryType;
2675
2723
  }
2676
- static set needSkipPointerUp(value) {
2677
- OdBaseDragger._needSkipPointerUp = value;
2724
+ set geometryType(value) {
2725
+ this._data.geometryType = value;
2726
+ this.notifierChangeEvent();
2678
2727
  }
2679
2728
  }
2680
2729
 
2681
- OdBaseDragger._isGestureActive = false;
2682
-
2683
- OdBaseDragger._needSkipPointerUp = false;
2684
-
2685
2730
  function createHtmlElementIfNeed(element, targetElement, dataTestId) {
2686
2731
  if (!element) {
2687
2732
  element = document.createElement("div");
@@ -4885,7 +4930,7 @@ class KonvaText {
4885
4930
 
4886
4931
  class KonvaRectangle {
4887
4932
  constructor(params, ref = null) {
4888
- var _a, _b;
4933
+ var _a, _b, _c, _d;
4889
4934
  if (ref) {
4890
4935
  this._ref = ref;
4891
4936
  return;
@@ -4899,8 +4944,8 @@ class KonvaRectangle {
4899
4944
  lineJoin: "round",
4900
4945
  x: params.position.x,
4901
4946
  y: params.position.y,
4902
- width: params.width,
4903
- height: params.height,
4947
+ width: (_c = params.width) !== null && _c !== void 0 ? _c : 200,
4948
+ height: (_d = params.height) !== null && _d !== void 0 ? _d : 200,
4904
4949
  draggable: true,
4905
4950
  strokeScaleEnabled: false
4906
4951
  });
@@ -5546,9 +5591,7 @@ class KonvaMarkup {
5546
5591
  this.loadMarkup(viewpoint);
5547
5592
  }
5548
5593
  getViewpoint() {
5549
- if (!this._viewer.visualizeJs) return {
5550
- file_id: ""
5551
- };
5594
+ if (!this._viewer.visualizeJs) return {};
5552
5595
  const viewpoint = {
5553
5596
  lines: [],
5554
5597
  texts: [],
@@ -6104,9 +6147,9 @@ class KonvaMarkup {
6104
6147
  }
6105
6148
  const konvaLine = new KonvaLine({
6106
6149
  points: points,
6107
- color: color || this._markupColor.HexColor,
6108
6150
  type: type || "solid",
6109
6151
  width: width || this.lineWidth,
6152
+ color: color || this._markupColor.HexColor,
6110
6153
  id: id
6111
6154
  });
6112
6155
  const obj = konvaLine.ref();
@@ -6168,9 +6211,9 @@ class KonvaMarkup {
6168
6211
  y: position.y
6169
6212
  },
6170
6213
  text: specifiedText,
6214
+ rotation: angle,
6171
6215
  fontSize: fontSize,
6172
6216
  color: color || this._markupColor.HexColor,
6173
- rotation: angle,
6174
6217
  id: id
6175
6218
  });
6176
6219
  this._konvaLayer.add(konvaText.ref());
@@ -6187,10 +6230,10 @@ class KonvaMarkup {
6187
6230
  if (!position) return;
6188
6231
  const konvaRectangle = new KonvaRectangle({
6189
6232
  position: position,
6190
- color: color || this._markupColor.HexColor,
6191
- lineWidth: lineWidth || this.lineWidth,
6192
6233
  width: width,
6193
6234
  height: height,
6235
+ lineWidth: lineWidth || this.lineWidth,
6236
+ color: color || this._markupColor.HexColor,
6194
6237
  id: id
6195
6238
  });
6196
6239
  const obj = konvaRectangle.ref();
@@ -6483,9 +6526,7 @@ class VisualizeMarkup {
6483
6526
  z: array[2]
6484
6527
  };
6485
6528
  }
6486
- if (!this._viewer.visualizeJs) return {
6487
- file_id: ""
6488
- };
6529
+ if (!this._viewer.visualizeJs) return {};
6489
6530
  const visLib = this._viewer.visLib();
6490
6531
  const visViewer = visLib.getViewer();
6491
6532
  const viewpoint = {
@@ -6597,7 +6638,6 @@ class Viewer extends EventEmitter2 {
6597
6638
  this.configure(params);
6598
6639
  this._options = new Options(this);
6599
6640
  this.client = client;
6600
- this.clientoptionschange = event => this._options.data = event.data.data;
6601
6641
  this._activeDragger = null;
6602
6642
  this._renderTime = 0;
6603
6643
  this.markup = MarkupFactory.createMarkup((_a = params.markupType) !== null && _a !== void 0 ? _a : MarkupType.Konva);
@@ -6635,10 +6675,6 @@ class Viewer extends EventEmitter2 {
6635
6675
  return this;
6636
6676
  }
6637
6677
  async initialize(canvas, onProgress) {
6638
- if (this.client) {
6639
- this.client.addEventListener("optionschange", this.clientoptionschange);
6640
- this.options.data = this.client.options.data;
6641
- }
6642
6678
  this.addEventListener("optionschange", (event => this.syncOptions(event.data)));
6643
6679
  if (canvas.style.width === "" && canvas.style.height === "") {
6644
6680
  canvas.style.width = "100%";
@@ -6680,7 +6716,7 @@ class Viewer extends EventEmitter2 {
6680
6716
  return this;
6681
6717
  }
6682
6718
  dispose() {
6683
- var _a, _b, _c, _d, _e;
6719
+ var _a, _b, _c, _d;
6684
6720
  this.cancel();
6685
6721
  this.emitEvent({
6686
6722
  type: "dispose"
@@ -6701,7 +6737,6 @@ class Viewer extends EventEmitter2 {
6701
6737
  this.canvas = undefined;
6702
6738
  (_d = this.visualizeJs) === null || _d === void 0 ? void 0 : _d.getViewer().clear();
6703
6739
  this.visualizeJs = undefined;
6704
- (_e = this.client) === null || _e === void 0 ? void 0 : _e.removeEventListener("optionschange", this.clientoptionschange);
6705
6740
  return this;
6706
6741
  }
6707
6742
  isInitialized() {
@@ -7616,7 +7651,7 @@ function zoomToSelected(viewer) {
7616
7651
 
7617
7652
  commands("VisualizeJS").registerCommand("zoomToSelected", zoomToSelected);
7618
7653
 
7619
- const version = "25.3.8";
7654
+ const version = "25.3.10";
7620
7655
 
7621
7656
  export { Assembly, CANVAS_EVENTS, ClashTest, Client, EventEmitter2, File$1 as File, Job, Member, Model, OdBaseDragger, Options, Permission, Project, Role, User, Viewer, Viewer as VisualizejsViewer, commands, version };
7622
7657
  //# sourceMappingURL=client.module.js.map