@file-viewer/renderer-cad 2.1.13 → 2.1.15

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.
Files changed (2) hide show
  1. package/dist/cad.js +43 -1
  2. package/package.json +2 -2
package/dist/cad.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { CadViewer, } from '@flyfish-dev/cad-viewer';
2
2
  import { resolveFileViewerCadAssetUrls } from '@file-viewer/core/assets';
3
- import { createFileViewerTranslator, resolveFileViewerLocale, createFileViewerZoomChangeEmitter, registerFileViewerZoomProvider, unregisterFileViewerZoomProvider, } from '@file-viewer/core';
3
+ import { createFileViewerViewStateChange, createFileViewerViewStateChangeEmitter, createFileViewerTranslator, createFileViewerZoomChangeEmitter, registerFileViewerViewStateProvider, registerFileViewerZoomProvider, resolveFileViewerLocale, unregisterFileViewerViewStateProvider, unregisterFileViewerZoomProvider, } from '@file-viewer/core';
4
4
  const CAD_WORKER_TIMEOUT = 120000;
5
5
  const cadStyle = `
6
6
  .cad-shell{display:flex;height:100%;min-height:100%;flex-direction:column;background:#f5f7fb;color:#142335}
@@ -201,6 +201,28 @@ export default async function renderCad(buffer, target, type = 'dxf', context) {
201
201
  };
202
202
  };
203
203
  const cadZoomEmitter = createFileViewerZoomChangeEmitter();
204
+ const cadViewStateEmitter = createFileViewerViewStateChangeEmitter();
205
+ const getCadViewState = () => ({
206
+ renderer: 'cad',
207
+ scale: getCadZoomState().scale,
208
+ zoom: getCadZoomState(),
209
+ extra: {
210
+ status,
211
+ view: viewState ? { ...viewState } : null,
212
+ backend: renderStats === null || renderStats === void 0 ? void 0 : renderStats.backend,
213
+ layerCount: layers.length,
214
+ visibleLayers: layers
215
+ .filter(layer => layer.isVisible !== false && !layer.isFrozen)
216
+ .map(layer => layer.name),
217
+ },
218
+ });
219
+ const emitCadViewStateChange = (action, source = 'viewer') => {
220
+ const state = getCadViewState();
221
+ if (!disposed) {
222
+ cadViewStateEmitter.emit(createFileViewerViewStateChange(state, { action, source }));
223
+ }
224
+ return state;
225
+ };
204
226
  const syncInspector = () => {
205
227
  const summary = loadResult === null || loadResult === void 0 ? void 0 : loadResult.summary;
206
228
  const rows = [
@@ -244,6 +266,7 @@ export default async function renderCad(buffer, target, type = 'dxf', context) {
244
266
  queueMicrotask(() => {
245
267
  viewer === null || viewer === void 0 ? void 0 : viewer.fit();
246
268
  cadZoomEmitter.emit();
269
+ emitCadViewStateChange('layer-toggle', 'user');
247
270
  });
248
271
  });
249
272
  return button;
@@ -276,16 +299,19 @@ export default async function renderCad(buffer, target, type = 'dxf', context) {
276
299
  viewer === null || viewer === void 0 ? void 0 : viewer.fit();
277
300
  cadZoomEmitter.emit();
278
301
  syncState();
302
+ emitCadViewStateChange('zoom-reset', 'user');
279
303
  };
280
304
  const zoomIn = () => {
281
305
  viewer === null || viewer === void 0 ? void 0 : viewer.zoomIn();
282
306
  cadZoomEmitter.emit();
283
307
  syncState();
308
+ emitCadViewStateChange('zoom-in', 'user');
284
309
  };
285
310
  const zoomOut = () => {
286
311
  viewer === null || viewer === void 0 ? void 0 : viewer.zoomOut();
287
312
  cadZoomEmitter.emit();
288
313
  syncState();
314
+ emitCadViewStateChange('zoom-out', 'user');
289
315
  };
290
316
  registerFileViewerZoomProvider(shell, {
291
317
  zoomIn: () => {
@@ -303,6 +329,19 @@ export default async function renderCad(buffer, target, type = 'dxf', context) {
303
329
  getState: getCadZoomState,
304
330
  subscribe: cadZoomEmitter.subscribe,
305
331
  });
332
+ registerFileViewerViewStateProvider(shell, {
333
+ getState: getCadViewState,
334
+ async applyState(_state, applyOptions = {}) {
335
+ const source = applyOptions.source || 'api';
336
+ const action = applyOptions.action || 'restore';
337
+ const notify = applyOptions.notify !== false;
338
+ if (notify) {
339
+ return emitCadViewStateChange(action, source);
340
+ }
341
+ return getCadViewState();
342
+ },
343
+ subscribe: cadViewStateEmitter.subscribe,
344
+ });
306
345
  fitButton.addEventListener('click', fitToView);
307
346
  zoomInButton.addEventListener('click', zoomIn);
308
347
  zoomOutButton.addEventListener('click', zoomOut);
@@ -357,6 +396,7 @@ export default async function renderCad(buffer, target, type = 'dxf', context) {
357
396
  onViewChange: event => {
358
397
  viewState = event;
359
398
  cadZoomEmitter.emit();
399
+ emitCadViewStateChange('cad-view-change', 'user');
360
400
  syncState();
361
401
  },
362
402
  onLoad: result => {
@@ -410,6 +450,7 @@ export default async function renderCad(buffer, target, type = 'dxf', context) {
410
450
  queueMicrotask(() => {
411
451
  viewer === null || viewer === void 0 ? void 0 : viewer.fit();
412
452
  cadZoomEmitter.emit();
453
+ emitCadViewStateChange('init', 'viewer');
413
454
  syncState();
414
455
  });
415
456
  }
@@ -435,6 +476,7 @@ export default async function renderCad(buffer, target, type = 'dxf', context) {
435
476
  $el: shell,
436
477
  unmount() {
437
478
  disposed = true;
479
+ unregisterFileViewerViewStateProvider(shell);
438
480
  unregisterFileViewerZoomProvider(shell);
439
481
  abortController === null || abortController === void 0 ? void 0 : abortController.abort();
440
482
  abortController = null;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@file-viewer/renderer-cad",
3
- "version": "2.1.13",
3
+ "version": "2.1.15",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "description": "Standalone CAD renderer plugin for Flyfish File Viewer powered by @flyfish-dev/cad-viewer.",
@@ -56,7 +56,7 @@
56
56
  "LICENSE"
57
57
  ],
58
58
  "dependencies": {
59
- "@file-viewer/core": "^2.1.13",
59
+ "@file-viewer/core": "^2.1.15",
60
60
  "@flyfish-dev/cad-viewer": "^0.6.4"
61
61
  },
62
62
  "devDependencies": {