3dviewer-sdk 1.0.10 → 1.0.11

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.mjs CHANGED
@@ -289,6 +289,13 @@ var FilesModule = class {
289
289
  }
290
290
  // Viewer host used to open iframe after conversion completes.
291
291
  resolveViewerOrigin() {
292
+ const configuredBaseUrl = this.config.baseUrl || this.viewer.getOptions().baseUrl;
293
+ if (configuredBaseUrl) {
294
+ try {
295
+ return this.normalizeBaseUrl(new URL(configuredBaseUrl, window.location.href).origin);
296
+ } catch {
297
+ }
298
+ }
292
299
  const viewerUrl = this.viewer.getOptions().url;
293
300
  if (viewerUrl) {
294
301
  try {
@@ -1139,7 +1146,7 @@ var Viewer3D = class {
1139
1146
  if (this.iframeEl) return;
1140
1147
  if (!this.options.url) return this.files.render(file);
1141
1148
  const iframe = document.createElement("iframe");
1142
- iframe.src = this.options.url;
1149
+ iframe.src = this.withInitialOptions(this.options.url);
1143
1150
  iframe.style.border = "none";
1144
1151
  iframe.style.width = this.options.width || "100%";
1145
1152
  iframe.style.height = this.options.height || "100%";
@@ -1152,11 +1159,12 @@ var Viewer3D = class {
1152
1159
  open(url) {
1153
1160
  this.ensureInit();
1154
1161
  this.options.url = url;
1162
+ const finalUrl = this.withInitialOptions(url);
1155
1163
  if (!this.iframeEl) {
1156
1164
  this.render();
1157
1165
  return;
1158
1166
  }
1159
- this.iframeEl.src = url;
1167
+ this.iframeEl.src = finalUrl;
1160
1168
  }
1161
1169
  destroy() {
1162
1170
  window.removeEventListener("message", this.handleMessage);
@@ -1173,6 +1181,19 @@ var Viewer3D = class {
1173
1181
  ensureInit() {
1174
1182
  if (!this.initialized) throw new Error("Call viewer.init() before using viewer");
1175
1183
  }
1184
+ withInitialOptions(url) {
1185
+ if (!this.options.initialToolbarVisibility) return url;
1186
+ try {
1187
+ const parsedUrl = new URL(url, window.location.href);
1188
+ parsedUrl.searchParams.set(
1189
+ "toolbarVisibility",
1190
+ JSON.stringify(this.options.initialToolbarVisibility)
1191
+ );
1192
+ return parsedUrl.toString();
1193
+ } catch {
1194
+ return url;
1195
+ }
1196
+ }
1176
1197
  // ===== typed internal events used by modules =====
1177
1198
  _on(event, cb) {
1178
1199
  return this.emitter.on(event, cb);
package/dist/viewer.d.ts CHANGED
@@ -7,7 +7,8 @@ import { ToolbarModule } from "./modules/toolbar.module";
7
7
  import { ModelTreeModule } from "./modules/model-tree.module";
8
8
  import { MarkupModule } from "./modules/markup.module";
9
9
  import { LanguageModule } from "./modules/language.module";
10
- import { ViewerMessageType } from "./contracts/messages";
10
+ import { ViewerMessageType, type ToolbarVisibilityTarget } from "./contracts/messages";
11
+ export declare type InitialToolbarVisibility = Partial<Record<ToolbarVisibilityTarget, boolean>>;
11
12
  export declare type Viewer3DOptions = {
12
13
  container: HTMLElement | string;
13
14
  url?: string;
@@ -15,6 +16,7 @@ export declare type Viewer3DOptions = {
15
16
  viewerPath?: string;
16
17
  uploadPath?: string;
17
18
  file?: File;
19
+ initialToolbarVisibility?: InitialToolbarVisibility;
18
20
  width?: string;
19
21
  height?: string;
20
22
  sandbox?: string;
@@ -43,6 +45,7 @@ export declare class Viewer3D {
43
45
  open(url: string): void;
44
46
  destroy(): void;
45
47
  private ensureInit;
48
+ private withInitialOptions;
46
49
  _on<K extends SdkEventKey>(event: K, cb: (payload: SdkEventPayload<K>) => void): () => void;
47
50
  _off<K extends SdkEventKey>(event: K, cb: (payload: SdkEventPayload<K>) => void): void;
48
51
  _emit<K extends SdkEventKey>(event: K, payload: SdkEventPayload<K>): void;
package/dist/viewer.js CHANGED
@@ -211,7 +211,7 @@ export class Viewer3D {
211
211
  if (!this.options.url)
212
212
  return this.files.render(file);
213
213
  const iframe = document.createElement("iframe");
214
- iframe.src = this.options.url;
214
+ iframe.src = this.withInitialOptions(this.options.url);
215
215
  iframe.style.border = "none";
216
216
  iframe.style.width = this.options.width || "100%";
217
217
  iframe.style.height = this.options.height || "100%";
@@ -225,11 +225,12 @@ export class Viewer3D {
225
225
  open(url) {
226
226
  this.ensureInit();
227
227
  this.options.url = url;
228
+ const finalUrl = this.withInitialOptions(url);
228
229
  if (!this.iframeEl) {
229
230
  this.render();
230
231
  return;
231
232
  }
232
- this.iframeEl.src = url;
233
+ this.iframeEl.src = finalUrl;
233
234
  }
234
235
  destroy() {
235
236
  // remove listener using the same function reference
@@ -251,6 +252,18 @@ export class Viewer3D {
251
252
  if (!this.initialized)
252
253
  throw new Error("Call viewer.init() before using viewer");
253
254
  }
255
+ withInitialOptions(url) {
256
+ if (!this.options.initialToolbarVisibility)
257
+ return url;
258
+ try {
259
+ const parsedUrl = new URL(url, window.location.href);
260
+ parsedUrl.searchParams.set("toolbarVisibility", JSON.stringify(this.options.initialToolbarVisibility));
261
+ return parsedUrl.toString();
262
+ }
263
+ catch {
264
+ return url;
265
+ }
266
+ }
254
267
  // ===== typed internal events used by modules =====
255
268
  _on(event, cb) {
256
269
  return this.emitter.on(event, cb);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "3dviewer-sdk",
3
- "version": "1.0.10",
3
+ "version": "1.0.11",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "files": [