@dtducas/wh-forge-viewer 1.0.3 → 1.0.4
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.ts +89 -0
- package/dist/index.esm.js +99 -7
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +99 -7
- package/dist/index.js.map +1 -1
- package/package.json +4 -3
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
// Type definitions for @dtducas/wh-forge-viewer
|
|
2
|
+
// Project: https://github.com/DTDucas/wh-forge-viewer
|
|
3
|
+
// Definitions by: Duong Tran Quang <https://github.com/DTDucas>
|
|
4
|
+
|
|
5
|
+
/// <reference types="react" />
|
|
6
|
+
|
|
7
|
+
declare module '@dtducas/wh-forge-viewer' {
|
|
8
|
+
import { FC } from 'react';
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Supported file extensions for the Forge Viewer
|
|
12
|
+
*/
|
|
13
|
+
export type TSupportedFileExtension = 'pdf' | 'dwf' | 'dwfx';
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Autodesk Forge Viewer namespace
|
|
17
|
+
* For full type definitions, see Autodesk Forge Viewer documentation
|
|
18
|
+
*/
|
|
19
|
+
export namespace Autodesk {
|
|
20
|
+
export namespace Viewing {
|
|
21
|
+
export class GuiViewer3D {
|
|
22
|
+
// Add minimal type stubs for commonly used methods
|
|
23
|
+
start(): void;
|
|
24
|
+
loadExtension(extensionId: string, options?: any): Promise<any>;
|
|
25
|
+
loadModel(url: string, options?: any, onSuccess?: Function): void;
|
|
26
|
+
loadDocumentNode(document: any, node: any): Promise<any>;
|
|
27
|
+
addEventListener(event: string, callback: Function): void;
|
|
28
|
+
removeEventListener(event: string, callback: Function): void;
|
|
29
|
+
setReverseZoomDirection(value: boolean): void;
|
|
30
|
+
getExtension(extensionId: string): any;
|
|
31
|
+
setTool(toolName: string): void;
|
|
32
|
+
toolbar: any;
|
|
33
|
+
model: any;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
export interface Extension {
|
|
37
|
+
load(): boolean;
|
|
38
|
+
unload(): boolean;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
// Common event constants
|
|
42
|
+
export const GEOMETRY_LOADED_EVENT: string;
|
|
43
|
+
export const MODEL_ADDED_EVENT: string;
|
|
44
|
+
export const TOOLBAR_CREATED_EVENT: string;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Props for ViewerForgePDF component
|
|
50
|
+
*/
|
|
51
|
+
export interface IViewerForgePDFProps {
|
|
52
|
+
/**
|
|
53
|
+
* URL/path to the document to load
|
|
54
|
+
*/
|
|
55
|
+
filePath: string;
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* File extension (pdf, dwf, dwfx)
|
|
59
|
+
*/
|
|
60
|
+
fileExt: TSupportedFileExtension;
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* Callback to receive viewer instance when initialized
|
|
64
|
+
*/
|
|
65
|
+
setViewer?: (viewer: Autodesk.Viewing.GuiViewer3D | null) => void;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* ViewerForgePDF - React component for displaying PDF and CAD files using Autodesk Forge Viewer
|
|
70
|
+
*
|
|
71
|
+
* @example
|
|
72
|
+
* ```tsx
|
|
73
|
+
* import { ViewerForgePDF } from '@dtducas/wh-forge-viewer';
|
|
74
|
+
*
|
|
75
|
+
* function MyApp() {
|
|
76
|
+
* const [viewer, setViewer] = useState<Autodesk.Viewing.GuiViewer3D | null>(null);
|
|
77
|
+
*
|
|
78
|
+
* return (
|
|
79
|
+
* <ViewerForgePDF
|
|
80
|
+
* filePath="https://example.com/document.pdf"
|
|
81
|
+
* fileExt="pdf"
|
|
82
|
+
* setViewer={setViewer}
|
|
83
|
+
* />
|
|
84
|
+
* );
|
|
85
|
+
* }
|
|
86
|
+
* ```
|
|
87
|
+
*/
|
|
88
|
+
export const ViewerForgePDF: FC<IViewerForgePDFProps>;
|
|
89
|
+
}
|
package/dist/index.esm.js
CHANGED
|
@@ -240,6 +240,23 @@ function registerToolbarExtension(Autodesk) {
|
|
|
240
240
|
};
|
|
241
241
|
ToolbarExtension.prototype.updatePaginationState = function () {
|
|
242
242
|
if (!this.paginationGroup) return;
|
|
243
|
+
|
|
244
|
+
// Hide pagination group if there's only 1 page or no pages
|
|
245
|
+
if (this.viewables.length <= 1) {
|
|
246
|
+
this.paginationGroup.setVisible(false);
|
|
247
|
+
// Also hide the container via CSS to ensure it's completely hidden
|
|
248
|
+
if (this.paginationGroup.container) {
|
|
249
|
+
this.paginationGroup.container.style.display = 'none';
|
|
250
|
+
}
|
|
251
|
+
return;
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
// Show pagination group for multi-page documents
|
|
255
|
+
this.paginationGroup.setVisible(true);
|
|
256
|
+
// Ensure container is visible
|
|
257
|
+
if (this.paginationGroup.container) {
|
|
258
|
+
this.paginationGroup.container.style.display = '';
|
|
259
|
+
}
|
|
243
260
|
var totalBtn = this.paginationGroup.getControl('total-page-label');
|
|
244
261
|
if (totalBtn) {
|
|
245
262
|
var current = this.viewables.length > 0 ? this.currentIndex + 1 : 0;
|
|
@@ -301,9 +318,35 @@ function registerToolbarExtension(Autodesk) {
|
|
|
301
318
|
if (!toolGroup || !pagGroup) {
|
|
302
319
|
_this3.refreshToolbar();
|
|
303
320
|
}
|
|
321
|
+
_this3.checkButtonState();
|
|
304
322
|
}
|
|
305
323
|
}, 200);
|
|
306
324
|
};
|
|
325
|
+
ToolbarExtension.prototype.checkButtonState = function () {
|
|
326
|
+
var viewer = this.viewer;
|
|
327
|
+
if (!viewer.toolbar) return;
|
|
328
|
+
var toolGroup = viewer.toolbar.getControl('custom-tool-group');
|
|
329
|
+
if (!toolGroup) return;
|
|
330
|
+
var docBtn = toolGroup.getControl('custom-doc-browser-btn');
|
|
331
|
+
if (!docBtn) return;
|
|
332
|
+
var ext = viewer.getExtension('Autodesk.DocumentBrowser');
|
|
333
|
+
var isVisible = ext && ext.ui && ext.ui.panel && ext.ui.panel.isVisible();
|
|
334
|
+
var newState = isVisible ? Autodesk.Viewing.UI.Button.State.ACTIVE : Autodesk.Viewing.UI.Button.State.INACTIVE;
|
|
335
|
+
if (docBtn.getState() !== newState) {
|
|
336
|
+
docBtn.setState(newState);
|
|
337
|
+
}
|
|
338
|
+
|
|
339
|
+
// Force CSS class update to ensure visual state is correct
|
|
340
|
+
if (docBtn.container) {
|
|
341
|
+
if (isVisible) {
|
|
342
|
+
docBtn.container.classList.add('active');
|
|
343
|
+
docBtn.container.classList.remove('inactive');
|
|
344
|
+
} else {
|
|
345
|
+
docBtn.container.classList.remove('active');
|
|
346
|
+
docBtn.container.classList.add('inactive');
|
|
347
|
+
}
|
|
348
|
+
}
|
|
349
|
+
};
|
|
307
350
|
var originalUnload = ToolbarExtension.prototype.unload;
|
|
308
351
|
ToolbarExtension.prototype.unload = function () {
|
|
309
352
|
if (this._toolbarInterval) {
|
|
@@ -343,7 +386,7 @@ function registerToolbarExtension(Autodesk) {
|
|
|
343
386
|
}
|
|
344
387
|
this.createPaginationGroup(toolbar);
|
|
345
388
|
} else {
|
|
346
|
-
|
|
389
|
+
// Don't force visibility here - let updatePaginationState handle it
|
|
347
390
|
this.paginationGroup = pagGroup;
|
|
348
391
|
}
|
|
349
392
|
toolbar.setVisible(true);
|
|
@@ -358,7 +401,17 @@ function registerToolbarExtension(Autodesk) {
|
|
|
358
401
|
panBtn.setIcon('adsk-icon-pan');
|
|
359
402
|
panBtn.setToolTip('Pan');
|
|
360
403
|
panBtn.onClick = function () {
|
|
361
|
-
|
|
404
|
+
var originalPanBtn = document.getElementById('toolbar-panTool');
|
|
405
|
+
if (originalPanBtn) {
|
|
406
|
+
originalPanBtn.click();
|
|
407
|
+
}
|
|
408
|
+
|
|
409
|
+
// Set this button to active state
|
|
410
|
+
if (panBtn.container) {
|
|
411
|
+
panBtn.container.classList.add('active');
|
|
412
|
+
panBtn.container.classList.remove('inactive');
|
|
413
|
+
}
|
|
414
|
+
panBtn.setState(Autodesk.Viewing.UI.Button.State.ACTIVE);
|
|
362
415
|
};
|
|
363
416
|
this.subToolbar.addControl(panBtn);
|
|
364
417
|
var docBrowserBtn = new Autodesk.Viewing.UI.Button('custom-doc-browser-btn');
|
|
@@ -550,7 +603,7 @@ function styleInject(css, ref) {
|
|
|
550
603
|
}
|
|
551
604
|
}
|
|
552
605
|
|
|
553
|
-
var css_248z$1 = "#navTools,\n#modelTools,\n#settingsTools,\n#measureTools {\n display: none !important;\n visibility: hidden !important;\n}\n#guiviewer3d-toolbar {\n display: flex !important;\n align-items: center !important;\n justify-content: center !important;\n gap: 20px;\n position: fixed !important;\n bottom: 10px !important;\n left: 50% !important;\n transform: translateX(-50%) !important;\n width: auto !important;\n border-radius: 4px !important;\n padding: 8px 12px !important;\n}\n#custom-tool-group {\n display: flex !important;\n margin: 0 !important;\n padding: 0 !important;\n}\n#custom-pagination-group {\n display: flex
|
|
606
|
+
var css_248z$1 = "#navTools,\n#modelTools,\n#settingsTools,\n#measureTools {\n display: none !important;\n visibility: hidden !important;\n}\n#guiviewer3d-toolbar {\n display: flex !important;\n align-items: center !important;\n justify-content: center !important;\n gap: 20px;\n position: fixed !important;\n bottom: 10px !important;\n left: 50% !important;\n transform: translateX(-50%) !important;\n width: auto !important;\n border-radius: 4px !important;\n padding: 8px 12px !important;\n}\n#custom-tool-group {\n display: flex !important;\n margin: 0 !important;\n padding: 0 !important;\n}\n#custom-pagination-group {\n display: flex;\n position: relative !important;\n margin: 0 !important;\n padding: 0 !important;\n transform: none !important;\n left: auto !important;\n}\n";
|
|
554
607
|
styleInject(css_248z$1);
|
|
555
608
|
|
|
556
609
|
var css_248z = "/* Custom icon styles for toolbar using SVG */\n\n/* Download icon - custom SVG */\n.adsk-icon-custom-download::before {\n content: '';\n display: inline-block;\n width: 24px;\n height: 24px;\n background-image: url('data:image/svg+xml;utf8,\\\n<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\">\\\n<path fill=\"%23FFFFFF\" d=\"M9.293 0H4a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V4.707A1 1 0 0 0 13.707 4L10 .293A1 1 0 0 0 9.293 0M9.5 3.5v-2l3 3h-2a1 1 0 0 1-1-1m-1 4v3.793l1.146-1.147a.5.5 0 0 1 .708.708l-2 2a.5.5 0 0 1-.708 0l-2-2a.5.5 0 0 1 .708-.708L7.5 11.293V7.5a.5.5 0 0 1 1 0\"/>\\\n</svg>');\n background-repeat: no-repeat;\n background-position: center;\n background-size: 16px 16px;\n}\n\n/* Previous page icon - Font Awesome chevron left */\n.adsk-icon-custom-prev::before {\n content: '';\n display: inline-block;\n width: 24px;\n height: 24px;\n background-image: url('data:image/svg+xml;utf8,\\\n<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\">\\\n<path fill=\"%23FFFFFF\" d=\"M16 14a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V2a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2zm-4.5-6.5H5.707l2.147-2.146a.5.5 0 1 0-.708-.708l-3 3a.5.5 0 0 0 0 .708l3 3a.5.5 0 0 0 .708-.708L5.707 8.5H11.5a.5.5 0 0 0 0-1\"/>\\\n</svg>');\n background-repeat: no-repeat;\n background-position: center;\n background-size: 16px 16px;\n}\n\n/* Next page icon - Font Awesome chevron right */\n.adsk-icon-custom-next::before {\n content: '';\n display: inline-block;\n width: 24px;\n height: 24px;\n background-image: url('data:image/svg+xml;utf8,\\\n<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\">\\\n<path fill=\"%23FFFFFF\" d=\"M0 14a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2H2a2 2 0 0 0-2 2zm4.5-6.5h5.793L8.146 5.354a.5.5 0 1 1 .708-.708l3 3a.5.5 0 0 1 0 .708l-3 3a.5.5 0 0 1-.708-.708L10.293 8.5H4.5a.5.5 0 0 1 0-1\"/>\\\n</svg>');\n background-repeat: no-repeat;\n background-position: center;\n background-size: 16px 16px;\n}\n\n/* Fallback for adsk-icon-caret-left and adsk-icon-caret-right if not defined */\n.adsk-icon-caret-left::before {\n content: '[';\n font-family: 'adsk-viewing';\n}\n\n.adsk-icon-caret-right::before {\n content: ']';\n font-family: 'adsk-viewing';\n}\n\n/* Comment icon - custom SVG (Smiley) */\n.adsk-icon-custom-comment::before {\n content: '';\n display: inline-block;\n width: 24px;\n height: 24px;\n background-image: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"%23FFFFFF\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"12\" cy=\"12\" r=\"10\"></circle><path d=\"M8 14s1.5 2 4 2 4-2 4-2\"></path><line x1=\"9\" y1=\"9\" x2=\"9.01\" y2=\"9\"></line><line x1=\"15\" y1=\"9\" x2=\"15.01\" y2=\"9\"></line></svg>');\n background-repeat: no-repeat;\n background-position: center;\n background-size: contain;\n}\n\n/* Save icon - custom SVG */\n.adsk-icon-custom-save::before {\n content: '';\n display: inline-block;\n width: 24px;\n height: 24px;\n background-image: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"%23FFFFFF\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M19 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11l5 5v11a2 2 0 0 1-2 2z\"></path><polyline points=\"17 21 17 13 7 13 7 21\"></polyline><polyline points=\"7 3 7 8 15 8\"></polyline></svg>');\n background-repeat: no-repeat;\n background-position: center;\n background-size: contain;\n}\n";
|
|
@@ -623,16 +676,55 @@ var ViewerForgePDF = function ViewerForgePDF(_ref) {
|
|
|
623
676
|
viewer.toolbar.setVisible(true);
|
|
624
677
|
}
|
|
625
678
|
if (viewables.length > 1) {
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
679
|
+
// Auto-open Document Browser by clicking the original button
|
|
680
|
+
setTimeout(function () {
|
|
681
|
+
var originalDocBtn = document.getElementById('toolbar-documentModels');
|
|
682
|
+
if (originalDocBtn && !originalDocBtn.classList.contains('active')) {
|
|
683
|
+
originalDocBtn.click();
|
|
684
|
+
}
|
|
685
|
+
|
|
686
|
+
// Apply custom styling to the panel
|
|
687
|
+
var documentBrowser = viewer.getExtension('Autodesk.DocumentBrowser');
|
|
688
|
+
if (documentBrowser && documentBrowser.ui && documentBrowser.ui.panel) {
|
|
629
689
|
documentBrowser.ui.panel.container.style.top = 0;
|
|
630
690
|
documentBrowser.ui.panel.container.style.left = 'unset';
|
|
631
691
|
documentBrowser.ui.panel.container.style.right = '0px';
|
|
632
692
|
documentBrowser.ui.panel.container.style.width = '200px';
|
|
633
693
|
}
|
|
634
|
-
|
|
694
|
+
|
|
695
|
+
// Switch to Thumbnail tab after a short delay
|
|
696
|
+
setTimeout(function () {
|
|
697
|
+
// Try multiple selectors to find the thumbnail tab button
|
|
698
|
+
var thumbnailTab = document.querySelector('.docking-panel-thumbnail-view') || document.querySelector('[data-i18n="Thumbnails"]') || Array.from(document.querySelectorAll('.adsk-control-group .adsk-button')).find(function (btn) {
|
|
699
|
+
return btn.textContent.includes('Thumbnails') || btn.title.includes('Thumbnails');
|
|
700
|
+
});
|
|
701
|
+
if (thumbnailTab && !thumbnailTab.classList.contains('active')) {
|
|
702
|
+
thumbnailTab.click();
|
|
703
|
+
}
|
|
704
|
+
}, 200);
|
|
705
|
+
}, 500);
|
|
635
706
|
}
|
|
707
|
+
|
|
708
|
+
// Ensure Custom Pan tool is active by default
|
|
709
|
+
setTimeout(function () {
|
|
710
|
+
var customPanBtn = document.getElementById('custom-pan-btn');
|
|
711
|
+
if (customPanBtn) {
|
|
712
|
+
customPanBtn.click();
|
|
713
|
+
// Double check visual state
|
|
714
|
+
if (!customPanBtn.classList.contains('active')) {
|
|
715
|
+
customPanBtn.classList.add('active');
|
|
716
|
+
customPanBtn.classList.remove('inactive');
|
|
717
|
+
}
|
|
718
|
+
} else {
|
|
719
|
+
var _viewer$toolbar;
|
|
720
|
+
// Fallback if custom button not found immediately, try accessing via viewer toolbar
|
|
721
|
+
var toolGroup = (_viewer$toolbar = viewer.toolbar) === null || _viewer$toolbar === void 0 ? void 0 : _viewer$toolbar.getControl('custom-tool-group');
|
|
722
|
+
var panBtnConf = toolGroup === null || toolGroup === void 0 ? void 0 : toolGroup.getControl('custom-pan-btn');
|
|
723
|
+
if (panBtnConf) {
|
|
724
|
+
panBtnConf.setState(1); // ACTIVE
|
|
725
|
+
}
|
|
726
|
+
}
|
|
727
|
+
}, 600);
|
|
636
728
|
if (setViewer) setViewer(viewer);
|
|
637
729
|
} catch (err) {
|
|
638
730
|
console.error('Error in handleLoadSuccess:', err);
|
package/dist/index.esm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.esm.js","sources":["../src/extensions/ToolbarExtension.js","../src/hooks/useCss.js","../src/hooks/useScript.js","../node_modules/style-inject/dist/style-inject.es.js","../src/components/ViewerForgePDF.jsx"],"sourcesContent":["export function registerToolbarExtension(Autodesk) {\n function ToolbarExtension(viewer, options) {\n Autodesk.Viewing.Extension.call(this, viewer, options);\n this.viewer = viewer;\n this.subToolbar = null;\n this.paginationGroup = null;\n this.viewables = [];\n this.currentIndex = 0;\n }\n ToolbarExtension.prototype = Object.create(\n Autodesk.Viewing.Extension.prototype\n );\n ToolbarExtension.prototype.constructor = ToolbarExtension;\n ToolbarExtension.prototype.load = function () {\n return true;\n };\n ToolbarExtension.prototype.unload = function () {\n this.cleanupToolbar();\n return true;\n };\n ToolbarExtension.prototype.cleanupToolbar = function () {\n if (this.viewer.toolbar) {\n if (this.subToolbar) {\n this.viewer.toolbar.removeControl(this.subToolbar);\n this.subToolbar = null;\n }\n if (this.paginationGroup) {\n this.viewer.toolbar.removeControl(this.paginationGroup);\n this.paginationGroup = null;\n }\n }\n };\n ToolbarExtension.prototype.setViewables = function (viewables) {\n this.viewables = viewables;\n this.currentIndex = 0;\n this.updatePaginationState();\n this.viewer.addEventListener(Autodesk.Viewing.MODEL_ADDED_EVENT, (e) => {\n this.updateCurrentIndexFromModel();\n });\n };\n ToolbarExtension.prototype.updateCurrentIndexFromModel = function () {\n if (!this.viewer.model || this.viewables.length === 0) return;\n const currentNode = this.viewer.model.getDocumentNode();\n if (currentNode) {\n const currentGuid = currentNode.data.guid || currentNode.guid;\n const index = this.viewables.findIndex((v) => {\n const vGuid = v.data && v.data.guid ? v.data.guid : v.guid;\n return vGuid === currentGuid;\n });\n if (index !== -1) {\n this.currentIndex = index;\n }\n this.updatePaginationState();\n }\n };\n ToolbarExtension.prototype.updatePaginationState = function () {\n if (!this.paginationGroup) return;\n const totalBtn = this.paginationGroup.getControl('total-page-label');\n if (totalBtn) {\n const current = this.viewables.length > 0 ? this.currentIndex + 1 : 0;\n const total = this.viewables.length;\n totalBtn.setToolTip(`Page ${current} of ${total}`);\n const domElem = totalBtn.container;\n if (domElem) {\n domElem.innerHTML = `<div style=\"display: flex; align-items: center; justify-content: center; height: 100%; padding: 0 10px; color: white; font-size: 14px; white-space: nowrap;\">${current} / ${total}</div>`;\n }\n }\n };\n ToolbarExtension.prototype.loadCurrentViewable = function () {\n if (this.viewables.length > 0 && this.viewables[this.currentIndex]) {\n const viewer = this.viewer;\n const toolbar = viewer.toolbar;\n viewer\n .loadDocumentNode(\n viewer.model.getDocumentNode().getDocument(),\n this.viewables[this.currentIndex]\n )\n .then(() => {\n const defaultGroups = ['settingsTools', 'modelTools', 'navTools'];\n defaultGroups.forEach((id) => {\n const group = toolbar.getControl(id);\n if (group) group.setVisible(false);\n });\n const toolGroupExists = toolbar.getControl('custom-tool-group');\n const paginationGroupExists = toolbar.getControl(\n 'custom-pagination-group'\n );\n if (!toolGroupExists && this.subToolbar) {\n toolbar.addControl(this.subToolbar);\n }\n if (!paginationGroupExists && this.paginationGroup) {\n toolbar.addControl(this.paginationGroup);\n }\n if (this.subToolbar) this.subToolbar.setVisible(true);\n if (this.paginationGroup) this.paginationGroup.setVisible(true);\n toolbar.setVisible(true);\n this.updatePaginationState();\n })\n .catch((err) => console.error('Error loading viewable:', err));\n }\n };\n ToolbarExtension.prototype.onToolbarCreated = function (toolbar) {\n this.refreshToolbar();\n this.viewer.addEventListener(Autodesk.Viewing.GEOMETRY_LOADED_EVENT, () => {\n setTimeout(() => {\n this.refreshToolbar();\n this.updateCurrentIndexFromModel();\n }, 100);\n });\n this.viewer.addEventListener(Autodesk.Viewing.TOOLBAR_CREATED_EVENT, () => {\n setTimeout(() => {\n this.refreshToolbar();\n }, 10);\n });\n if (this._toolbarInterval) clearInterval(this._toolbarInterval);\n this._toolbarInterval = setInterval(() => {\n if (this.viewer && this.viewer.toolbar) {\n const toolGroup = this.viewer.toolbar.getControl('custom-tool-group');\n const pagGroup = this.viewer.toolbar.getControl(\n 'custom-pagination-group'\n );\n if (!toolGroup || !pagGroup) {\n this.refreshToolbar();\n }\n }\n }, 200);\n };\n const originalUnload = ToolbarExtension.prototype.unload;\n ToolbarExtension.prototype.unload = function () {\n if (this._toolbarInterval) {\n clearInterval(this._toolbarInterval);\n this._toolbarInterval = null;\n }\n return originalUnload.call(this);\n };\n ToolbarExtension.prototype.refreshToolbar = function () {\n const viewer = this.viewer;\n const toolbar = viewer.toolbar;\n if (!toolbar) return;\n const defaultGroups = ['settingsTools', 'modelTools', 'navTools'];\n defaultGroups.forEach((id) => {\n const group = toolbar.getControl(id);\n if (group) {\n group.setVisible(false);\n if (group.container) {\n group.container.style.display = 'none';\n }\n }\n });\n let toolGroup = toolbar.getControl('custom-tool-group');\n let pagGroup = toolbar.getControl('custom-pagination-group');\n if (!toolGroup) {\n if (this.subToolbar) {\n this.subToolbar = null;\n }\n this.createToolGroup(toolbar);\n } else {\n toolGroup.setVisible(true);\n this.subToolbar = toolGroup;\n }\n if (!pagGroup) {\n if (this.paginationGroup) {\n this.paginationGroup = null;\n }\n this.createPaginationGroup(toolbar);\n } else {\n pagGroup.setVisible(true);\n this.paginationGroup = pagGroup;\n }\n toolbar.setVisible(true);\n this.updatePaginationState();\n };\n ToolbarExtension.prototype.createToolGroup = function (toolbar) {\n const viewer = this.viewer;\n this.subToolbar = new Autodesk.Viewing.UI.ControlGroup('custom-tool-group');\n toolbar.addControl(this.subToolbar);\n const panBtn = new Autodesk.Viewing.UI.Button('custom-pan-btn');\n panBtn.setIcon('adsk-icon-pan');\n panBtn.setToolTip('Pan');\n panBtn.onClick = () => viewer.setTool('pan');\n this.subToolbar.addControl(panBtn);\n const docBrowserBtn = new Autodesk.Viewing.UI.Button(\n 'custom-doc-browser-btn'\n );\n docBrowserBtn.setIcon('adsk-icon-documentModels');\n docBrowserBtn.setToolTip('Document Browser');\n docBrowserBtn.onClick = () => {\n const ext = viewer.getExtension('Autodesk.DocumentBrowser');\n if (ext && ext.ui) ext.ui.togglePanel();\n };\n this.subToolbar.addControl(docBrowserBtn);\n const downloadBtn = new Autodesk.Viewing.UI.Button('custom-download-btn');\n downloadBtn.setIcon('adsk-icon-custom-download');\n downloadBtn.setToolTip('Download File');\n downloadBtn.onClick = async () => {\n if (this.options && this.options.filePath) {\n try {\n const fileUrl = this.options.filePath;\n const response = await fetch(fileUrl);\n if (!response.ok) {\n throw new Error(`HTTP error! status: ${response.status}`);\n }\n const blob = await response.blob();\n const urlPath = new URL(fileUrl).pathname;\n const filename =\n decodeURIComponent(urlPath.split('/').pop()) || 'document.pdf';\n const blobUrl = URL.createObjectURL(blob);\n const anchor = document.createElement('a');\n anchor.href = blobUrl;\n anchor.download = filename;\n anchor.style.display = 'none';\n document.body.appendChild(anchor);\n anchor.click();\n document.body.removeChild(anchor);\n URL.revokeObjectURL(blobUrl);\n } catch (error) {\n console.error('Download error:', error);\n alert('Unable to download file: ' + error.message);\n }\n } else {\n console.warn('FilePath not available in extension options');\n alert('File path not available for download');\n }\n };\n this.subToolbar.addControl(downloadBtn);\n };\n ToolbarExtension.prototype.createPaginationGroup = function (toolbar) {\n this.paginationGroup = new Autodesk.Viewing.UI.ControlGroup(\n 'custom-pagination-group'\n );\n toolbar.addControl(this.paginationGroup);\n const prevBtn = new Autodesk.Viewing.UI.Button('prev-page-btn');\n prevBtn.setIcon('adsk-icon-custom-prev');\n prevBtn.addClass('custom-prev-btn');\n prevBtn.setToolTip('Previous Page');\n prevBtn.onClick = () => {\n if (this.viewables.length > 0) {\n this.currentIndex =\n (this.currentIndex - 1 + this.viewables.length) %\n this.viewables.length;\n this.loadCurrentViewable();\n }\n };\n this.paginationGroup.addControl(prevBtn);\n const labelBtn = new Autodesk.Viewing.UI.Button('total-page-label');\n labelBtn.setToolTip('Page info');\n this.paginationGroup.addControl(labelBtn);\n const nextBtn = new Autodesk.Viewing.UI.Button('next-page-btn');\n nextBtn.setIcon('adsk-icon-custom-next');\n nextBtn.addClass('custom-next-btn');\n nextBtn.setToolTip('Next Page');\n nextBtn.onClick = () => {\n if (this.viewables.length > 0) {\n this.currentIndex = (this.currentIndex + 1) % this.viewables.length;\n this.loadCurrentViewable();\n }\n };\n this.paginationGroup.addControl(nextBtn);\n };\n Autodesk.Viewing.theExtensionManager.registerExtension(\n 'ToolbarExtension',\n ToolbarExtension\n );\n}\n","import { useEffect } from 'react';\n\nconst useCss = (href) => {\n useEffect(() => {\n if (!href) return;\n const link = document.createElement('link');\n link.href = href;\n link.rel = 'stylesheet';\n document.head.appendChild(link);\n\n return () => {\n document.head.removeChild(link);\n };\n }, [href]);\n};\n\nexport default useCss;\n","import { useEffect, useState } from 'react';\nconst scriptCache = new Set();\nconst useScript = (src) => {\n const [status, setStatus] = useState(src ? 'loading' : 'idle');\n useEffect(() => {\n if (!src) {\n setStatus('idle');\n return;\n }\n if (scriptCache.has(src)) {\n setStatus('ready');\n return;\n }\n let script = document.querySelector(`script[src=\"${src}\"]`);\n if (!script) {\n script = document.createElement('script');\n script.src = src;\n script.async = true;\n script.setAttribute('data-status', 'loading');\n document.body.appendChild(script);\n const setAttributeFromEvent = (event) => {\n const attribute = event.type === 'load' ? 'ready' : 'error';\n script?.setAttribute('data-status', attribute);\n if (attribute === 'ready') scriptCache.add(src);\n setStatus(attribute);\n };\n script.addEventListener('load', setAttributeFromEvent);\n script.addEventListener('error', setAttributeFromEvent);\n } else {\n setStatus(script.getAttribute('data-status'));\n }\n const setStateFromEvent = (event) => {\n setStatus(event.type === 'load' ? 'ready' : 'error');\n };\n script.addEventListener('load', setStateFromEvent);\n script.addEventListener('error', setStateFromEvent);\n return () => {\n if (script) {\n script.removeEventListener('load', setStateFromEvent);\n script.removeEventListener('error', setStateFromEvent);\n }\n };\n }, [src]);\n return status;\n};\nexport default useScript;\n","function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n","import { message } from 'antd';\nimport { useEffect } from 'react';\nimport { registerToolbarExtension } from '../extensions/ToolbarExtension';\nimport useCss from '../hooks/useCss';\nimport useScript from '../hooks/useScript';\nimport '../styles/toolbar-custom.css';\nimport '../styles/toolbar-icons.css';\nconst ViewerForgePDF = ({ filePath, fileExt, setViewer }) => {\n useCss(\n 'https://developer.api.autodesk.com/modelderivative/v2/viewers/7.*/style.min.css'\n );\n const status = useScript(\n 'https://developer.api.autodesk.com/modelderivative/v2/viewers/7.*/viewer3D.min.js'\n );\n useEffect(() => {\n if (status === 'ready' && window.Autodesk) {\n const Autodesk = window.Autodesk;\n if (!fileExt) {\n message.warning('You need to provide file extension');\n return;\n }\n const validExts = ['pdf', 'dwf', 'dwfx'];\n if (!validExts.includes(fileExt.toLowerCase())) {\n message.warning('Only support pdf, dwf, dwfx format');\n return;\n }\n Autodesk.Viewing.Initializer({ env: 'Local' }, async () => {\n registerToolbarExtension(Autodesk);\n const viewerDiv = document.getElementById('forgeViewerPDF');\n viewerDiv.innerHTML = '';\n const viewer = new Autodesk.Viewing.GuiViewer3D(viewerDiv);\n viewer.start();\n viewer.loadExtension('Autodesk.DocumentBrowser');\n viewer.loadExtension('Autodesk.Viewing.MarkupsCore');\n viewer.loadExtension('Autodesk.Viewing.MarkupsGui');\n viewer.loadExtension('ToolbarExtension', { filePath: filePath });\n viewer.addEventListener(Autodesk.Viewing.GEOMETRY_LOADED_EVENT, (e) => {\n e.target.loadExtension('Autodesk.Viewing.MarkupsCore');\n e.target.loadExtension('Autodesk.Viewing.MarkupsGui');\n });\n const isDWF =\n fileExt.toLowerCase() === 'pdf' ? 'Autodesk.PDF' : 'Autodesk.DWF';\n await viewer.loadExtension(isDWF);\n const handleLoadSuccess = (e) => {\n try {\n viewer.setReverseZoomDirection(true);\n const root = e.getDocumentNode().getRootNode();\n const view3d = root.search(\n { type: 'geometry', role: '3d', progress: 'complete' },\n true\n );\n const view2d = root.search(\n { type: 'geometry', role: '2d', progress: 'complete' },\n true\n );\n const viewables = view3d.concat(view2d);\n const toolbarExt = viewer.getExtension('ToolbarExtension');\n if (toolbarExt && typeof toolbarExt.setViewables === 'function') {\n toolbarExt.setViewables(viewables);\n }\n if (viewer.toolbar) {\n viewer.toolbar.setVisible(true);\n }\n if (viewables.length > 1) {\n const documentBrowser = viewer.getExtension(\n 'Autodesk.DocumentBrowser'\n );\n if (documentBrowser) {\n if (documentBrowser.ui.panel) {\n documentBrowser.ui.panel.container.style.top = 0;\n documentBrowser.ui.panel.container.style.left = 'unset';\n documentBrowser.ui.panel.container.style.right = '0px';\n documentBrowser.ui.panel.container.style.width = '200px';\n }\n }\n }\n if (setViewer) setViewer(viewer);\n } catch (err) {\n console.error('Error in handleLoadSuccess:', err);\n }\n };\n if (isDWF === 'Autodesk.DWF') {\n const xhr = new XMLHttpRequest();\n xhr.open('GET', filePath, true);\n xhr.responseType = 'blob';\n xhr.onload = function () {\n if (this.status === 200) {\n const myBlob = this.response;\n const url1 = window.URL.createObjectURL(myBlob);\n viewer.loadModel(url1 + '#.dwf', {}, handleLoadSuccess);\n }\n };\n xhr.send();\n } else {\n viewer.loadModel(filePath, {}, handleLoadSuccess);\n }\n });\n }\n }, [status, filePath, fileExt, setViewer]);\n return (\n <div style={{ position: 'relative', width: '100%', height: '100%' }}>\n <div id='forgeViewerPDF' style={{ width: '100%', height: '100%' }} />\n </div>\n );\n};\nexport default ViewerForgePDF;\n"],"names":["registerToolbarExtension","Autodesk","ToolbarExtension","viewer","options","Viewing","Extension","call","subToolbar","paginationGroup","viewables","currentIndex","prototype","Object","create","constructor","load","unload","cleanupToolbar","toolbar","removeControl","setViewables","_this","updatePaginationState","addEventListener","MODEL_ADDED_EVENT","e","updateCurrentIndexFromModel","model","length","currentNode","getDocumentNode","currentGuid","data","guid","index","findIndex","v","vGuid","totalBtn","getControl","current","total","setToolTip","concat","domElem","container","innerHTML","loadCurrentViewable","_this2","loadDocumentNode","getDocument","then","defaultGroups","forEach","id","group","setVisible","toolGroupExists","paginationGroupExists","addControl","err","console","error","onToolbarCreated","_this3","refreshToolbar","GEOMETRY_LOADED_EVENT","setTimeout","TOOLBAR_CREATED_EVENT","_toolbarInterval","clearInterval","setInterval","toolGroup","pagGroup","originalUnload","style","display","createToolGroup","createPaginationGroup","_this4","UI","ControlGroup","panBtn","Button","setIcon","onClick","setTool","docBrowserBtn","ext","getExtension","ui","togglePanel","downloadBtn","_asyncToGenerator","_regenerator","m","_callee","fileUrl","response","blob","urlPath","filename","blobUrl","anchor","_t","w","_context","p","n","filePath","fetch","ok","Error","status","URL","pathname","decodeURIComponent","split","pop","createObjectURL","document","createElement","href","download","body","appendChild","click","removeChild","revokeObjectURL","alert","message","warn","a","_this5","prevBtn","addClass","labelBtn","nextBtn","theExtensionManager","registerExtension","useCss","useEffect","link","rel","head","scriptCache","Set","useScript","src","_useState","useState","_useState2","_slicedToArray","setStatus","has","script","querySelector","async","setAttribute","setAttributeFromEvent","event","_script","attribute","type","add","getAttribute","setStateFromEvent","removeEventListener","ViewerForgePDF","_ref","fileExt","setViewer","window","warning","validExts","includes","toLowerCase","Initializer","env","viewerDiv","isDWF","handleLoadSuccess","xhr","getElementById","GuiViewer3D","start","loadExtension","target","setReverseZoomDirection","root","getRootNode","view3d","search","role","progress","view2d","toolbarExt","documentBrowser","panel","top","left","right","width","XMLHttpRequest","open","responseType","onload","myBlob","url1","loadModel","send","_jsx","position","height","children"],"mappings":"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","x_google_ignoreList":[3]}
|
|
1
|
+
{"version":3,"file":"index.esm.js","sources":["../src/extensions/ToolbarExtension.js","../src/hooks/useCss.js","../src/hooks/useScript.js","../node_modules/style-inject/dist/style-inject.es.js","../src/components/ViewerForgePDF.jsx"],"sourcesContent":["export function registerToolbarExtension(Autodesk) {\n function ToolbarExtension(viewer, options) {\n Autodesk.Viewing.Extension.call(this, viewer, options);\n this.viewer = viewer;\n this.subToolbar = null;\n this.paginationGroup = null;\n this.viewables = [];\n this.currentIndex = 0;\n }\n ToolbarExtension.prototype = Object.create(\n Autodesk.Viewing.Extension.prototype\n );\n ToolbarExtension.prototype.constructor = ToolbarExtension;\n ToolbarExtension.prototype.load = function () {\n return true;\n };\n ToolbarExtension.prototype.unload = function () {\n this.cleanupToolbar();\n return true;\n };\n ToolbarExtension.prototype.cleanupToolbar = function () {\n if (this.viewer.toolbar) {\n if (this.subToolbar) {\n this.viewer.toolbar.removeControl(this.subToolbar);\n this.subToolbar = null;\n }\n if (this.paginationGroup) {\n this.viewer.toolbar.removeControl(this.paginationGroup);\n this.paginationGroup = null;\n }\n }\n };\n ToolbarExtension.prototype.setViewables = function (viewables) {\n this.viewables = viewables;\n this.currentIndex = 0;\n this.updatePaginationState();\n this.viewer.addEventListener(Autodesk.Viewing.MODEL_ADDED_EVENT, (e) => {\n this.updateCurrentIndexFromModel();\n });\n };\n ToolbarExtension.prototype.updateCurrentIndexFromModel = function () {\n if (!this.viewer.model || this.viewables.length === 0) return;\n const currentNode = this.viewer.model.getDocumentNode();\n if (currentNode) {\n const currentGuid = currentNode.data.guid || currentNode.guid;\n const index = this.viewables.findIndex((v) => {\n const vGuid = v.data && v.data.guid ? v.data.guid : v.guid;\n return vGuid === currentGuid;\n });\n if (index !== -1) {\n this.currentIndex = index;\n }\n this.updatePaginationState();\n }\n };\n ToolbarExtension.prototype.updatePaginationState = function () {\n if (!this.paginationGroup) return;\n\n // Hide pagination group if there's only 1 page or no pages\n if (this.viewables.length <= 1) {\n this.paginationGroup.setVisible(false);\n // Also hide the container via CSS to ensure it's completely hidden\n if (this.paginationGroup.container) {\n this.paginationGroup.container.style.display = 'none';\n }\n return;\n }\n\n // Show pagination group for multi-page documents\n this.paginationGroup.setVisible(true);\n // Ensure container is visible\n if (this.paginationGroup.container) {\n this.paginationGroup.container.style.display = '';\n }\n\n const totalBtn = this.paginationGroup.getControl('total-page-label');\n if (totalBtn) {\n const current = this.viewables.length > 0 ? this.currentIndex + 1 : 0;\n const total = this.viewables.length;\n totalBtn.setToolTip(`Page ${current} of ${total}`);\n const domElem = totalBtn.container;\n if (domElem) {\n domElem.innerHTML = `<div style=\"display: flex; align-items: center; justify-content: center; height: 100%; padding: 0 10px; color: white; font-size: 14px; white-space: nowrap;\">${current} / ${total}</div>`;\n }\n }\n };\n ToolbarExtension.prototype.loadCurrentViewable = function () {\n if (this.viewables.length > 0 && this.viewables[this.currentIndex]) {\n const viewer = this.viewer;\n const toolbar = viewer.toolbar;\n viewer\n .loadDocumentNode(\n viewer.model.getDocumentNode().getDocument(),\n this.viewables[this.currentIndex]\n )\n .then(() => {\n const defaultGroups = ['settingsTools', 'modelTools', 'navTools'];\n defaultGroups.forEach((id) => {\n const group = toolbar.getControl(id);\n if (group) group.setVisible(false);\n });\n const toolGroupExists = toolbar.getControl('custom-tool-group');\n const paginationGroupExists = toolbar.getControl(\n 'custom-pagination-group'\n );\n if (!toolGroupExists && this.subToolbar) {\n toolbar.addControl(this.subToolbar);\n }\n if (!paginationGroupExists && this.paginationGroup) {\n toolbar.addControl(this.paginationGroup);\n }\n if (this.subToolbar) this.subToolbar.setVisible(true);\n if (this.paginationGroup) this.paginationGroup.setVisible(true);\n toolbar.setVisible(true);\n this.updatePaginationState();\n })\n .catch((err) => console.error('Error loading viewable:', err));\n }\n };\n ToolbarExtension.prototype.onToolbarCreated = function (toolbar) {\n this.refreshToolbar();\n this.viewer.addEventListener(Autodesk.Viewing.GEOMETRY_LOADED_EVENT, () => {\n setTimeout(() => {\n this.refreshToolbar();\n this.updateCurrentIndexFromModel();\n }, 100);\n });\n this.viewer.addEventListener(Autodesk.Viewing.TOOLBAR_CREATED_EVENT, () => {\n setTimeout(() => {\n this.refreshToolbar();\n }, 10);\n });\n if (this._toolbarInterval) clearInterval(this._toolbarInterval);\n this._toolbarInterval = setInterval(() => {\n if (this.viewer && this.viewer.toolbar) {\n const toolGroup = this.viewer.toolbar.getControl('custom-tool-group');\n const pagGroup = this.viewer.toolbar.getControl(\n 'custom-pagination-group'\n );\n if (!toolGroup || !pagGroup) {\n this.refreshToolbar();\n }\n this.checkButtonState();\n }\n }, 200);\n };\n ToolbarExtension.prototype.checkButtonState = function () {\n const viewer = this.viewer;\n if (!viewer.toolbar) return;\n\n const toolGroup = viewer.toolbar.getControl('custom-tool-group');\n if (!toolGroup) return;\n\n const docBtn = toolGroup.getControl('custom-doc-browser-btn');\n if (!docBtn) return;\n\n const ext = viewer.getExtension('Autodesk.DocumentBrowser');\n const isVisible =\n ext && ext.ui && ext.ui.panel && ext.ui.panel.isVisible();\n\n const newState = isVisible\n ? Autodesk.Viewing.UI.Button.State.ACTIVE\n : Autodesk.Viewing.UI.Button.State.INACTIVE;\n\n if (docBtn.getState() !== newState) {\n docBtn.setState(newState);\n }\n\n // Force CSS class update to ensure visual state is correct\n if (docBtn.container) {\n if (isVisible) {\n docBtn.container.classList.add('active');\n docBtn.container.classList.remove('inactive');\n } else {\n docBtn.container.classList.remove('active');\n docBtn.container.classList.add('inactive');\n }\n }\n };\n const originalUnload = ToolbarExtension.prototype.unload;\n ToolbarExtension.prototype.unload = function () {\n if (this._toolbarInterval) {\n clearInterval(this._toolbarInterval);\n this._toolbarInterval = null;\n }\n return originalUnload.call(this);\n };\n ToolbarExtension.prototype.refreshToolbar = function () {\n const viewer = this.viewer;\n const toolbar = viewer.toolbar;\n if (!toolbar) return;\n const defaultGroups = ['settingsTools', 'modelTools', 'navTools'];\n defaultGroups.forEach((id) => {\n const group = toolbar.getControl(id);\n if (group) {\n group.setVisible(false);\n if (group.container) {\n group.container.style.display = 'none';\n }\n }\n });\n let toolGroup = toolbar.getControl('custom-tool-group');\n let pagGroup = toolbar.getControl('custom-pagination-group');\n if (!toolGroup) {\n if (this.subToolbar) {\n this.subToolbar = null;\n }\n this.createToolGroup(toolbar);\n } else {\n toolGroup.setVisible(true);\n this.subToolbar = toolGroup;\n }\n if (!pagGroup) {\n if (this.paginationGroup) {\n this.paginationGroup = null;\n }\n this.createPaginationGroup(toolbar);\n } else {\n // Don't force visibility here - let updatePaginationState handle it\n this.paginationGroup = pagGroup;\n }\n toolbar.setVisible(true);\n this.updatePaginationState();\n };\n ToolbarExtension.prototype.createToolGroup = function (toolbar) {\n const viewer = this.viewer;\n this.subToolbar = new Autodesk.Viewing.UI.ControlGroup('custom-tool-group');\n toolbar.addControl(this.subToolbar);\n const panBtn = new Autodesk.Viewing.UI.Button('custom-pan-btn');\n panBtn.setIcon('adsk-icon-pan');\n panBtn.setToolTip('Pan');\n panBtn.onClick = () => {\n const originalPanBtn = document.getElementById('toolbar-panTool');\n if (originalPanBtn) {\n originalPanBtn.click();\n }\n\n // Set this button to active state\n if (panBtn.container) {\n panBtn.container.classList.add('active');\n panBtn.container.classList.remove('inactive');\n }\n panBtn.setState(Autodesk.Viewing.UI.Button.State.ACTIVE);\n };\n this.subToolbar.addControl(panBtn);\n const docBrowserBtn = new Autodesk.Viewing.UI.Button(\n 'custom-doc-browser-btn'\n );\n docBrowserBtn.setIcon('adsk-icon-documentModels');\n docBrowserBtn.setToolTip('Document Browser');\n docBrowserBtn.onClick = () => {\n const ext = viewer.getExtension('Autodesk.DocumentBrowser');\n if (ext && ext.ui) ext.ui.togglePanel();\n };\n this.subToolbar.addControl(docBrowserBtn);\n const downloadBtn = new Autodesk.Viewing.UI.Button('custom-download-btn');\n downloadBtn.setIcon('adsk-icon-custom-download');\n downloadBtn.setToolTip('Download File');\n downloadBtn.onClick = async () => {\n if (this.options && this.options.filePath) {\n try {\n const fileUrl = this.options.filePath;\n const response = await fetch(fileUrl);\n if (!response.ok) {\n throw new Error(`HTTP error! status: ${response.status}`);\n }\n const blob = await response.blob();\n const urlPath = new URL(fileUrl).pathname;\n const filename =\n decodeURIComponent(urlPath.split('/').pop()) || 'document.pdf';\n const blobUrl = URL.createObjectURL(blob);\n const anchor = document.createElement('a');\n anchor.href = blobUrl;\n anchor.download = filename;\n anchor.style.display = 'none';\n document.body.appendChild(anchor);\n anchor.click();\n document.body.removeChild(anchor);\n URL.revokeObjectURL(blobUrl);\n } catch (error) {\n console.error('Download error:', error);\n alert('Unable to download file: ' + error.message);\n }\n } else {\n console.warn('FilePath not available in extension options');\n alert('File path not available for download');\n }\n };\n this.subToolbar.addControl(downloadBtn);\n };\n ToolbarExtension.prototype.createPaginationGroup = function (toolbar) {\n this.paginationGroup = new Autodesk.Viewing.UI.ControlGroup(\n 'custom-pagination-group'\n );\n toolbar.addControl(this.paginationGroup);\n const prevBtn = new Autodesk.Viewing.UI.Button('prev-page-btn');\n prevBtn.setIcon('adsk-icon-custom-prev');\n prevBtn.addClass('custom-prev-btn');\n prevBtn.setToolTip('Previous Page');\n prevBtn.onClick = () => {\n if (this.viewables.length > 0) {\n this.currentIndex =\n (this.currentIndex - 1 + this.viewables.length) %\n this.viewables.length;\n this.loadCurrentViewable();\n }\n };\n this.paginationGroup.addControl(prevBtn);\n const labelBtn = new Autodesk.Viewing.UI.Button('total-page-label');\n labelBtn.setToolTip('Page info');\n this.paginationGroup.addControl(labelBtn);\n const nextBtn = new Autodesk.Viewing.UI.Button('next-page-btn');\n nextBtn.setIcon('adsk-icon-custom-next');\n nextBtn.addClass('custom-next-btn');\n nextBtn.setToolTip('Next Page');\n nextBtn.onClick = () => {\n if (this.viewables.length > 0) {\n this.currentIndex = (this.currentIndex + 1) % this.viewables.length;\n this.loadCurrentViewable();\n }\n };\n this.paginationGroup.addControl(nextBtn);\n };\n Autodesk.Viewing.theExtensionManager.registerExtension(\n 'ToolbarExtension',\n ToolbarExtension\n );\n}\n","import { useEffect } from 'react';\n\nconst useCss = (href) => {\n useEffect(() => {\n if (!href) return;\n const link = document.createElement('link');\n link.href = href;\n link.rel = 'stylesheet';\n document.head.appendChild(link);\n\n return () => {\n document.head.removeChild(link);\n };\n }, [href]);\n};\n\nexport default useCss;\n","import { useEffect, useState } from 'react';\nconst scriptCache = new Set();\nconst useScript = (src) => {\n const [status, setStatus] = useState(src ? 'loading' : 'idle');\n useEffect(() => {\n if (!src) {\n setStatus('idle');\n return;\n }\n if (scriptCache.has(src)) {\n setStatus('ready');\n return;\n }\n let script = document.querySelector(`script[src=\"${src}\"]`);\n if (!script) {\n script = document.createElement('script');\n script.src = src;\n script.async = true;\n script.setAttribute('data-status', 'loading');\n document.body.appendChild(script);\n const setAttributeFromEvent = (event) => {\n const attribute = event.type === 'load' ? 'ready' : 'error';\n script?.setAttribute('data-status', attribute);\n if (attribute === 'ready') scriptCache.add(src);\n setStatus(attribute);\n };\n script.addEventListener('load', setAttributeFromEvent);\n script.addEventListener('error', setAttributeFromEvent);\n } else {\n setStatus(script.getAttribute('data-status'));\n }\n const setStateFromEvent = (event) => {\n setStatus(event.type === 'load' ? 'ready' : 'error');\n };\n script.addEventListener('load', setStateFromEvent);\n script.addEventListener('error', setStateFromEvent);\n return () => {\n if (script) {\n script.removeEventListener('load', setStateFromEvent);\n script.removeEventListener('error', setStateFromEvent);\n }\n };\n }, [src]);\n return status;\n};\nexport default useScript;\n","function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n","import { message } from 'antd';\nimport { useEffect } from 'react';\nimport { registerToolbarExtension } from '../extensions/ToolbarExtension';\nimport useCss from '../hooks/useCss';\nimport useScript from '../hooks/useScript';\nimport '../styles/toolbar-custom.css';\nimport '../styles/toolbar-icons.css';\nconst ViewerForgePDF = ({ filePath, fileExt, setViewer }) => {\n useCss(\n 'https://developer.api.autodesk.com/modelderivative/v2/viewers/7.*/style.min.css'\n );\n const status = useScript(\n 'https://developer.api.autodesk.com/modelderivative/v2/viewers/7.*/viewer3D.min.js'\n );\n useEffect(() => {\n if (status === 'ready' && window.Autodesk) {\n const Autodesk = window.Autodesk;\n if (!fileExt) {\n message.warning('You need to provide file extension');\n return;\n }\n const validExts = ['pdf', 'dwf', 'dwfx'];\n if (!validExts.includes(fileExt.toLowerCase())) {\n message.warning('Only support pdf, dwf, dwfx format');\n return;\n }\n Autodesk.Viewing.Initializer({ env: 'Local' }, async () => {\n registerToolbarExtension(Autodesk);\n const viewerDiv = document.getElementById('forgeViewerPDF');\n viewerDiv.innerHTML = '';\n const viewer = new Autodesk.Viewing.GuiViewer3D(viewerDiv);\n viewer.start();\n viewer.loadExtension('Autodesk.DocumentBrowser');\n viewer.loadExtension('Autodesk.Viewing.MarkupsCore');\n viewer.loadExtension('Autodesk.Viewing.MarkupsGui');\n viewer.loadExtension('ToolbarExtension', { filePath: filePath });\n viewer.addEventListener(Autodesk.Viewing.GEOMETRY_LOADED_EVENT, (e) => {\n e.target.loadExtension('Autodesk.Viewing.MarkupsCore');\n e.target.loadExtension('Autodesk.Viewing.MarkupsGui');\n });\n const isDWF =\n fileExt.toLowerCase() === 'pdf' ? 'Autodesk.PDF' : 'Autodesk.DWF';\n await viewer.loadExtension(isDWF);\n const handleLoadSuccess = (e) => {\n try {\n viewer.setReverseZoomDirection(true);\n const root = e.getDocumentNode().getRootNode();\n const view3d = root.search(\n { type: 'geometry', role: '3d', progress: 'complete' },\n true\n );\n const view2d = root.search(\n { type: 'geometry', role: '2d', progress: 'complete' },\n true\n );\n const viewables = view3d.concat(view2d);\n const toolbarExt = viewer.getExtension('ToolbarExtension');\n if (toolbarExt && typeof toolbarExt.setViewables === 'function') {\n toolbarExt.setViewables(viewables);\n }\n if (viewer.toolbar) {\n viewer.toolbar.setVisible(true);\n }\n if (viewables.length > 1) {\n // Auto-open Document Browser by clicking the original button\n setTimeout(() => {\n const originalDocBtn = document.getElementById('toolbar-documentModels');\n if (originalDocBtn && !originalDocBtn.classList.contains('active')) {\n originalDocBtn.click();\n }\n\n // Apply custom styling to the panel\n const documentBrowser = viewer.getExtension('Autodesk.DocumentBrowser');\n if (documentBrowser && documentBrowser.ui && documentBrowser.ui.panel) {\n documentBrowser.ui.panel.container.style.top = 0;\n documentBrowser.ui.panel.container.style.left = 'unset';\n documentBrowser.ui.panel.container.style.right = '0px';\n documentBrowser.ui.panel.container.style.width = '200px';\n }\n\n // Switch to Thumbnail tab after a short delay\n setTimeout(() => {\n // Try multiple selectors to find the thumbnail tab button\n const thumbnailTab = document.querySelector('.docking-panel-thumbnail-view')\n || document.querySelector('[data-i18n=\"Thumbnails\"]')\n || Array.from(document.querySelectorAll('.adsk-control-group .adsk-button')).find(btn =>\n btn.textContent.includes('Thumbnails') || btn.title.includes('Thumbnails')\n );\n\n if (thumbnailTab && !thumbnailTab.classList.contains('active')) {\n thumbnailTab.click();\n }\n }, 200);\n }, 500);\n }\n\n\n\n\n\n // Ensure Custom Pan tool is active by default\n setTimeout(() => {\n const customPanBtn = document.getElementById('custom-pan-btn');\n if (customPanBtn) {\n customPanBtn.click();\n // Double check visual state\n if (!customPanBtn.classList.contains('active')) {\n customPanBtn.classList.add('active');\n customPanBtn.classList.remove('inactive');\n }\n } else {\n // Fallback if custom button not found immediately, try accessing via viewer toolbar\n const toolGroup = viewer.toolbar?.getControl('custom-tool-group');\n const panBtnConf = toolGroup?.getControl('custom-pan-btn');\n if (panBtnConf) {\n panBtnConf.setState(1); // ACTIVE\n }\n }\n }, 600);\n\n if (setViewer) setViewer(viewer);\n } catch (err) {\n console.error('Error in handleLoadSuccess:', err);\n }\n };\n if (isDWF === 'Autodesk.DWF') {\n const xhr = new XMLHttpRequest();\n xhr.open('GET', filePath, true);\n xhr.responseType = 'blob';\n xhr.onload = function () {\n if (this.status === 200) {\n const myBlob = this.response;\n const url1 = window.URL.createObjectURL(myBlob);\n viewer.loadModel(url1 + '#.dwf', {}, handleLoadSuccess);\n }\n };\n xhr.send();\n } else {\n viewer.loadModel(filePath, {}, handleLoadSuccess);\n }\n });\n }\n }, [status, filePath, fileExt, setViewer]);\n return (\n <div style={{ position: 'relative', width: '100%', height: '100%' }}>\n <div id='forgeViewerPDF' style={{ width: '100%', height: '100%' }} />\n </div>\n );\n};\nexport default ViewerForgePDF;\n"],"names":["registerToolbarExtension","Autodesk","ToolbarExtension","viewer","options","Viewing","Extension","call","subToolbar","paginationGroup","viewables","currentIndex","prototype","Object","create","constructor","load","unload","cleanupToolbar","toolbar","removeControl","setViewables","_this","updatePaginationState","addEventListener","MODEL_ADDED_EVENT","e","updateCurrentIndexFromModel","model","length","currentNode","getDocumentNode","currentGuid","data","guid","index","findIndex","v","vGuid","setVisible","container","style","display","totalBtn","getControl","current","total","setToolTip","concat","domElem","innerHTML","loadCurrentViewable","_this2","loadDocumentNode","getDocument","then","defaultGroups","forEach","id","group","toolGroupExists","paginationGroupExists","addControl","err","console","error","onToolbarCreated","_this3","refreshToolbar","GEOMETRY_LOADED_EVENT","setTimeout","TOOLBAR_CREATED_EVENT","_toolbarInterval","clearInterval","setInterval","toolGroup","pagGroup","checkButtonState","docBtn","ext","getExtension","isVisible","ui","panel","newState","UI","Button","State","ACTIVE","INACTIVE","getState","setState","classList","add","remove","originalUnload","createToolGroup","createPaginationGroup","_this4","ControlGroup","panBtn","setIcon","onClick","originalPanBtn","document","getElementById","click","docBrowserBtn","togglePanel","downloadBtn","_asyncToGenerator","_regenerator","m","_callee","fileUrl","response","blob","urlPath","filename","blobUrl","anchor","_t","w","_context","p","n","filePath","fetch","ok","Error","status","URL","pathname","decodeURIComponent","split","pop","createObjectURL","createElement","href","download","body","appendChild","removeChild","revokeObjectURL","alert","message","warn","a","_this5","prevBtn","addClass","labelBtn","nextBtn","theExtensionManager","registerExtension","useCss","useEffect","link","rel","head","scriptCache","Set","useScript","src","_useState","useState","_useState2","_slicedToArray","setStatus","has","script","querySelector","async","setAttribute","setAttributeFromEvent","event","_script","attribute","type","getAttribute","setStateFromEvent","removeEventListener","ViewerForgePDF","_ref","fileExt","setViewer","window","warning","validExts","includes","toLowerCase","Initializer","env","viewerDiv","isDWF","handleLoadSuccess","xhr","GuiViewer3D","start","loadExtension","target","setReverseZoomDirection","root","getRootNode","view3d","search","role","progress","view2d","toolbarExt","originalDocBtn","contains","documentBrowser","top","left","right","width","thumbnailTab","Array","from","querySelectorAll","find","btn","textContent","title","customPanBtn","_viewer$toolbar","panBtnConf","XMLHttpRequest","open","responseType","onload","myBlob","url1","loadModel","send","_jsx","position","height","children"],"mappings":"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","x_google_ignoreList":[3]}
|
package/dist/index.js
CHANGED
|
@@ -242,6 +242,23 @@ function registerToolbarExtension(Autodesk) {
|
|
|
242
242
|
};
|
|
243
243
|
ToolbarExtension.prototype.updatePaginationState = function () {
|
|
244
244
|
if (!this.paginationGroup) return;
|
|
245
|
+
|
|
246
|
+
// Hide pagination group if there's only 1 page or no pages
|
|
247
|
+
if (this.viewables.length <= 1) {
|
|
248
|
+
this.paginationGroup.setVisible(false);
|
|
249
|
+
// Also hide the container via CSS to ensure it's completely hidden
|
|
250
|
+
if (this.paginationGroup.container) {
|
|
251
|
+
this.paginationGroup.container.style.display = 'none';
|
|
252
|
+
}
|
|
253
|
+
return;
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
// Show pagination group for multi-page documents
|
|
257
|
+
this.paginationGroup.setVisible(true);
|
|
258
|
+
// Ensure container is visible
|
|
259
|
+
if (this.paginationGroup.container) {
|
|
260
|
+
this.paginationGroup.container.style.display = '';
|
|
261
|
+
}
|
|
245
262
|
var totalBtn = this.paginationGroup.getControl('total-page-label');
|
|
246
263
|
if (totalBtn) {
|
|
247
264
|
var current = this.viewables.length > 0 ? this.currentIndex + 1 : 0;
|
|
@@ -303,9 +320,35 @@ function registerToolbarExtension(Autodesk) {
|
|
|
303
320
|
if (!toolGroup || !pagGroup) {
|
|
304
321
|
_this3.refreshToolbar();
|
|
305
322
|
}
|
|
323
|
+
_this3.checkButtonState();
|
|
306
324
|
}
|
|
307
325
|
}, 200);
|
|
308
326
|
};
|
|
327
|
+
ToolbarExtension.prototype.checkButtonState = function () {
|
|
328
|
+
var viewer = this.viewer;
|
|
329
|
+
if (!viewer.toolbar) return;
|
|
330
|
+
var toolGroup = viewer.toolbar.getControl('custom-tool-group');
|
|
331
|
+
if (!toolGroup) return;
|
|
332
|
+
var docBtn = toolGroup.getControl('custom-doc-browser-btn');
|
|
333
|
+
if (!docBtn) return;
|
|
334
|
+
var ext = viewer.getExtension('Autodesk.DocumentBrowser');
|
|
335
|
+
var isVisible = ext && ext.ui && ext.ui.panel && ext.ui.panel.isVisible();
|
|
336
|
+
var newState = isVisible ? Autodesk.Viewing.UI.Button.State.ACTIVE : Autodesk.Viewing.UI.Button.State.INACTIVE;
|
|
337
|
+
if (docBtn.getState() !== newState) {
|
|
338
|
+
docBtn.setState(newState);
|
|
339
|
+
}
|
|
340
|
+
|
|
341
|
+
// Force CSS class update to ensure visual state is correct
|
|
342
|
+
if (docBtn.container) {
|
|
343
|
+
if (isVisible) {
|
|
344
|
+
docBtn.container.classList.add('active');
|
|
345
|
+
docBtn.container.classList.remove('inactive');
|
|
346
|
+
} else {
|
|
347
|
+
docBtn.container.classList.remove('active');
|
|
348
|
+
docBtn.container.classList.add('inactive');
|
|
349
|
+
}
|
|
350
|
+
}
|
|
351
|
+
};
|
|
309
352
|
var originalUnload = ToolbarExtension.prototype.unload;
|
|
310
353
|
ToolbarExtension.prototype.unload = function () {
|
|
311
354
|
if (this._toolbarInterval) {
|
|
@@ -345,7 +388,7 @@ function registerToolbarExtension(Autodesk) {
|
|
|
345
388
|
}
|
|
346
389
|
this.createPaginationGroup(toolbar);
|
|
347
390
|
} else {
|
|
348
|
-
|
|
391
|
+
// Don't force visibility here - let updatePaginationState handle it
|
|
349
392
|
this.paginationGroup = pagGroup;
|
|
350
393
|
}
|
|
351
394
|
toolbar.setVisible(true);
|
|
@@ -360,7 +403,17 @@ function registerToolbarExtension(Autodesk) {
|
|
|
360
403
|
panBtn.setIcon('adsk-icon-pan');
|
|
361
404
|
panBtn.setToolTip('Pan');
|
|
362
405
|
panBtn.onClick = function () {
|
|
363
|
-
|
|
406
|
+
var originalPanBtn = document.getElementById('toolbar-panTool');
|
|
407
|
+
if (originalPanBtn) {
|
|
408
|
+
originalPanBtn.click();
|
|
409
|
+
}
|
|
410
|
+
|
|
411
|
+
// Set this button to active state
|
|
412
|
+
if (panBtn.container) {
|
|
413
|
+
panBtn.container.classList.add('active');
|
|
414
|
+
panBtn.container.classList.remove('inactive');
|
|
415
|
+
}
|
|
416
|
+
panBtn.setState(Autodesk.Viewing.UI.Button.State.ACTIVE);
|
|
364
417
|
};
|
|
365
418
|
this.subToolbar.addControl(panBtn);
|
|
366
419
|
var docBrowserBtn = new Autodesk.Viewing.UI.Button('custom-doc-browser-btn');
|
|
@@ -552,7 +605,7 @@ function styleInject(css, ref) {
|
|
|
552
605
|
}
|
|
553
606
|
}
|
|
554
607
|
|
|
555
|
-
var css_248z$1 = "#navTools,\n#modelTools,\n#settingsTools,\n#measureTools {\n display: none !important;\n visibility: hidden !important;\n}\n#guiviewer3d-toolbar {\n display: flex !important;\n align-items: center !important;\n justify-content: center !important;\n gap: 20px;\n position: fixed !important;\n bottom: 10px !important;\n left: 50% !important;\n transform: translateX(-50%) !important;\n width: auto !important;\n border-radius: 4px !important;\n padding: 8px 12px !important;\n}\n#custom-tool-group {\n display: flex !important;\n margin: 0 !important;\n padding: 0 !important;\n}\n#custom-pagination-group {\n display: flex
|
|
608
|
+
var css_248z$1 = "#navTools,\n#modelTools,\n#settingsTools,\n#measureTools {\n display: none !important;\n visibility: hidden !important;\n}\n#guiviewer3d-toolbar {\n display: flex !important;\n align-items: center !important;\n justify-content: center !important;\n gap: 20px;\n position: fixed !important;\n bottom: 10px !important;\n left: 50% !important;\n transform: translateX(-50%) !important;\n width: auto !important;\n border-radius: 4px !important;\n padding: 8px 12px !important;\n}\n#custom-tool-group {\n display: flex !important;\n margin: 0 !important;\n padding: 0 !important;\n}\n#custom-pagination-group {\n display: flex;\n position: relative !important;\n margin: 0 !important;\n padding: 0 !important;\n transform: none !important;\n left: auto !important;\n}\n";
|
|
556
609
|
styleInject(css_248z$1);
|
|
557
610
|
|
|
558
611
|
var css_248z = "/* Custom icon styles for toolbar using SVG */\n\n/* Download icon - custom SVG */\n.adsk-icon-custom-download::before {\n content: '';\n display: inline-block;\n width: 24px;\n height: 24px;\n background-image: url('data:image/svg+xml;utf8,\\\n<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\">\\\n<path fill=\"%23FFFFFF\" d=\"M9.293 0H4a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V4.707A1 1 0 0 0 13.707 4L10 .293A1 1 0 0 0 9.293 0M9.5 3.5v-2l3 3h-2a1 1 0 0 1-1-1m-1 4v3.793l1.146-1.147a.5.5 0 0 1 .708.708l-2 2a.5.5 0 0 1-.708 0l-2-2a.5.5 0 0 1 .708-.708L7.5 11.293V7.5a.5.5 0 0 1 1 0\"/>\\\n</svg>');\n background-repeat: no-repeat;\n background-position: center;\n background-size: 16px 16px;\n}\n\n/* Previous page icon - Font Awesome chevron left */\n.adsk-icon-custom-prev::before {\n content: '';\n display: inline-block;\n width: 24px;\n height: 24px;\n background-image: url('data:image/svg+xml;utf8,\\\n<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\">\\\n<path fill=\"%23FFFFFF\" d=\"M16 14a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V2a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2zm-4.5-6.5H5.707l2.147-2.146a.5.5 0 1 0-.708-.708l-3 3a.5.5 0 0 0 0 .708l3 3a.5.5 0 0 0 .708-.708L5.707 8.5H11.5a.5.5 0 0 0 0-1\"/>\\\n</svg>');\n background-repeat: no-repeat;\n background-position: center;\n background-size: 16px 16px;\n}\n\n/* Next page icon - Font Awesome chevron right */\n.adsk-icon-custom-next::before {\n content: '';\n display: inline-block;\n width: 24px;\n height: 24px;\n background-image: url('data:image/svg+xml;utf8,\\\n<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\">\\\n<path fill=\"%23FFFFFF\" d=\"M0 14a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2H2a2 2 0 0 0-2 2zm4.5-6.5h5.793L8.146 5.354a.5.5 0 1 1 .708-.708l3 3a.5.5 0 0 1 0 .708l-3 3a.5.5 0 0 1-.708-.708L10.293 8.5H4.5a.5.5 0 0 1 0-1\"/>\\\n</svg>');\n background-repeat: no-repeat;\n background-position: center;\n background-size: 16px 16px;\n}\n\n/* Fallback for adsk-icon-caret-left and adsk-icon-caret-right if not defined */\n.adsk-icon-caret-left::before {\n content: '[';\n font-family: 'adsk-viewing';\n}\n\n.adsk-icon-caret-right::before {\n content: ']';\n font-family: 'adsk-viewing';\n}\n\n/* Comment icon - custom SVG (Smiley) */\n.adsk-icon-custom-comment::before {\n content: '';\n display: inline-block;\n width: 24px;\n height: 24px;\n background-image: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"%23FFFFFF\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"12\" cy=\"12\" r=\"10\"></circle><path d=\"M8 14s1.5 2 4 2 4-2 4-2\"></path><line x1=\"9\" y1=\"9\" x2=\"9.01\" y2=\"9\"></line><line x1=\"15\" y1=\"9\" x2=\"15.01\" y2=\"9\"></line></svg>');\n background-repeat: no-repeat;\n background-position: center;\n background-size: contain;\n}\n\n/* Save icon - custom SVG */\n.adsk-icon-custom-save::before {\n content: '';\n display: inline-block;\n width: 24px;\n height: 24px;\n background-image: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"%23FFFFFF\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M19 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11l5 5v11a2 2 0 0 1-2 2z\"></path><polyline points=\"17 21 17 13 7 13 7 21\"></polyline><polyline points=\"7 3 7 8 15 8\"></polyline></svg>');\n background-repeat: no-repeat;\n background-position: center;\n background-size: contain;\n}\n";
|
|
@@ -625,16 +678,55 @@ var ViewerForgePDF = function ViewerForgePDF(_ref) {
|
|
|
625
678
|
viewer.toolbar.setVisible(true);
|
|
626
679
|
}
|
|
627
680
|
if (viewables.length > 1) {
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
681
|
+
// Auto-open Document Browser by clicking the original button
|
|
682
|
+
setTimeout(function () {
|
|
683
|
+
var originalDocBtn = document.getElementById('toolbar-documentModels');
|
|
684
|
+
if (originalDocBtn && !originalDocBtn.classList.contains('active')) {
|
|
685
|
+
originalDocBtn.click();
|
|
686
|
+
}
|
|
687
|
+
|
|
688
|
+
// Apply custom styling to the panel
|
|
689
|
+
var documentBrowser = viewer.getExtension('Autodesk.DocumentBrowser');
|
|
690
|
+
if (documentBrowser && documentBrowser.ui && documentBrowser.ui.panel) {
|
|
631
691
|
documentBrowser.ui.panel.container.style.top = 0;
|
|
632
692
|
documentBrowser.ui.panel.container.style.left = 'unset';
|
|
633
693
|
documentBrowser.ui.panel.container.style.right = '0px';
|
|
634
694
|
documentBrowser.ui.panel.container.style.width = '200px';
|
|
635
695
|
}
|
|
636
|
-
|
|
696
|
+
|
|
697
|
+
// Switch to Thumbnail tab after a short delay
|
|
698
|
+
setTimeout(function () {
|
|
699
|
+
// Try multiple selectors to find the thumbnail tab button
|
|
700
|
+
var thumbnailTab = document.querySelector('.docking-panel-thumbnail-view') || document.querySelector('[data-i18n="Thumbnails"]') || Array.from(document.querySelectorAll('.adsk-control-group .adsk-button')).find(function (btn) {
|
|
701
|
+
return btn.textContent.includes('Thumbnails') || btn.title.includes('Thumbnails');
|
|
702
|
+
});
|
|
703
|
+
if (thumbnailTab && !thumbnailTab.classList.contains('active')) {
|
|
704
|
+
thumbnailTab.click();
|
|
705
|
+
}
|
|
706
|
+
}, 200);
|
|
707
|
+
}, 500);
|
|
637
708
|
}
|
|
709
|
+
|
|
710
|
+
// Ensure Custom Pan tool is active by default
|
|
711
|
+
setTimeout(function () {
|
|
712
|
+
var customPanBtn = document.getElementById('custom-pan-btn');
|
|
713
|
+
if (customPanBtn) {
|
|
714
|
+
customPanBtn.click();
|
|
715
|
+
// Double check visual state
|
|
716
|
+
if (!customPanBtn.classList.contains('active')) {
|
|
717
|
+
customPanBtn.classList.add('active');
|
|
718
|
+
customPanBtn.classList.remove('inactive');
|
|
719
|
+
}
|
|
720
|
+
} else {
|
|
721
|
+
var _viewer$toolbar;
|
|
722
|
+
// Fallback if custom button not found immediately, try accessing via viewer toolbar
|
|
723
|
+
var toolGroup = (_viewer$toolbar = viewer.toolbar) === null || _viewer$toolbar === void 0 ? void 0 : _viewer$toolbar.getControl('custom-tool-group');
|
|
724
|
+
var panBtnConf = toolGroup === null || toolGroup === void 0 ? void 0 : toolGroup.getControl('custom-pan-btn');
|
|
725
|
+
if (panBtnConf) {
|
|
726
|
+
panBtnConf.setState(1); // ACTIVE
|
|
727
|
+
}
|
|
728
|
+
}
|
|
729
|
+
}, 600);
|
|
638
730
|
if (setViewer) setViewer(viewer);
|
|
639
731
|
} catch (err) {
|
|
640
732
|
console.error('Error in handleLoadSuccess:', err);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/extensions/ToolbarExtension.js","../src/hooks/useCss.js","../src/hooks/useScript.js","../node_modules/style-inject/dist/style-inject.es.js","../src/components/ViewerForgePDF.jsx"],"sourcesContent":["export function registerToolbarExtension(Autodesk) {\n function ToolbarExtension(viewer, options) {\n Autodesk.Viewing.Extension.call(this, viewer, options);\n this.viewer = viewer;\n this.subToolbar = null;\n this.paginationGroup = null;\n this.viewables = [];\n this.currentIndex = 0;\n }\n ToolbarExtension.prototype = Object.create(\n Autodesk.Viewing.Extension.prototype\n );\n ToolbarExtension.prototype.constructor = ToolbarExtension;\n ToolbarExtension.prototype.load = function () {\n return true;\n };\n ToolbarExtension.prototype.unload = function () {\n this.cleanupToolbar();\n return true;\n };\n ToolbarExtension.prototype.cleanupToolbar = function () {\n if (this.viewer.toolbar) {\n if (this.subToolbar) {\n this.viewer.toolbar.removeControl(this.subToolbar);\n this.subToolbar = null;\n }\n if (this.paginationGroup) {\n this.viewer.toolbar.removeControl(this.paginationGroup);\n this.paginationGroup = null;\n }\n }\n };\n ToolbarExtension.prototype.setViewables = function (viewables) {\n this.viewables = viewables;\n this.currentIndex = 0;\n this.updatePaginationState();\n this.viewer.addEventListener(Autodesk.Viewing.MODEL_ADDED_EVENT, (e) => {\n this.updateCurrentIndexFromModel();\n });\n };\n ToolbarExtension.prototype.updateCurrentIndexFromModel = function () {\n if (!this.viewer.model || this.viewables.length === 0) return;\n const currentNode = this.viewer.model.getDocumentNode();\n if (currentNode) {\n const currentGuid = currentNode.data.guid || currentNode.guid;\n const index = this.viewables.findIndex((v) => {\n const vGuid = v.data && v.data.guid ? v.data.guid : v.guid;\n return vGuid === currentGuid;\n });\n if (index !== -1) {\n this.currentIndex = index;\n }\n this.updatePaginationState();\n }\n };\n ToolbarExtension.prototype.updatePaginationState = function () {\n if (!this.paginationGroup) return;\n const totalBtn = this.paginationGroup.getControl('total-page-label');\n if (totalBtn) {\n const current = this.viewables.length > 0 ? this.currentIndex + 1 : 0;\n const total = this.viewables.length;\n totalBtn.setToolTip(`Page ${current} of ${total}`);\n const domElem = totalBtn.container;\n if (domElem) {\n domElem.innerHTML = `<div style=\"display: flex; align-items: center; justify-content: center; height: 100%; padding: 0 10px; color: white; font-size: 14px; white-space: nowrap;\">${current} / ${total}</div>`;\n }\n }\n };\n ToolbarExtension.prototype.loadCurrentViewable = function () {\n if (this.viewables.length > 0 && this.viewables[this.currentIndex]) {\n const viewer = this.viewer;\n const toolbar = viewer.toolbar;\n viewer\n .loadDocumentNode(\n viewer.model.getDocumentNode().getDocument(),\n this.viewables[this.currentIndex]\n )\n .then(() => {\n const defaultGroups = ['settingsTools', 'modelTools', 'navTools'];\n defaultGroups.forEach((id) => {\n const group = toolbar.getControl(id);\n if (group) group.setVisible(false);\n });\n const toolGroupExists = toolbar.getControl('custom-tool-group');\n const paginationGroupExists = toolbar.getControl(\n 'custom-pagination-group'\n );\n if (!toolGroupExists && this.subToolbar) {\n toolbar.addControl(this.subToolbar);\n }\n if (!paginationGroupExists && this.paginationGroup) {\n toolbar.addControl(this.paginationGroup);\n }\n if (this.subToolbar) this.subToolbar.setVisible(true);\n if (this.paginationGroup) this.paginationGroup.setVisible(true);\n toolbar.setVisible(true);\n this.updatePaginationState();\n })\n .catch((err) => console.error('Error loading viewable:', err));\n }\n };\n ToolbarExtension.prototype.onToolbarCreated = function (toolbar) {\n this.refreshToolbar();\n this.viewer.addEventListener(Autodesk.Viewing.GEOMETRY_LOADED_EVENT, () => {\n setTimeout(() => {\n this.refreshToolbar();\n this.updateCurrentIndexFromModel();\n }, 100);\n });\n this.viewer.addEventListener(Autodesk.Viewing.TOOLBAR_CREATED_EVENT, () => {\n setTimeout(() => {\n this.refreshToolbar();\n }, 10);\n });\n if (this._toolbarInterval) clearInterval(this._toolbarInterval);\n this._toolbarInterval = setInterval(() => {\n if (this.viewer && this.viewer.toolbar) {\n const toolGroup = this.viewer.toolbar.getControl('custom-tool-group');\n const pagGroup = this.viewer.toolbar.getControl(\n 'custom-pagination-group'\n );\n if (!toolGroup || !pagGroup) {\n this.refreshToolbar();\n }\n }\n }, 200);\n };\n const originalUnload = ToolbarExtension.prototype.unload;\n ToolbarExtension.prototype.unload = function () {\n if (this._toolbarInterval) {\n clearInterval(this._toolbarInterval);\n this._toolbarInterval = null;\n }\n return originalUnload.call(this);\n };\n ToolbarExtension.prototype.refreshToolbar = function () {\n const viewer = this.viewer;\n const toolbar = viewer.toolbar;\n if (!toolbar) return;\n const defaultGroups = ['settingsTools', 'modelTools', 'navTools'];\n defaultGroups.forEach((id) => {\n const group = toolbar.getControl(id);\n if (group) {\n group.setVisible(false);\n if (group.container) {\n group.container.style.display = 'none';\n }\n }\n });\n let toolGroup = toolbar.getControl('custom-tool-group');\n let pagGroup = toolbar.getControl('custom-pagination-group');\n if (!toolGroup) {\n if (this.subToolbar) {\n this.subToolbar = null;\n }\n this.createToolGroup(toolbar);\n } else {\n toolGroup.setVisible(true);\n this.subToolbar = toolGroup;\n }\n if (!pagGroup) {\n if (this.paginationGroup) {\n this.paginationGroup = null;\n }\n this.createPaginationGroup(toolbar);\n } else {\n pagGroup.setVisible(true);\n this.paginationGroup = pagGroup;\n }\n toolbar.setVisible(true);\n this.updatePaginationState();\n };\n ToolbarExtension.prototype.createToolGroup = function (toolbar) {\n const viewer = this.viewer;\n this.subToolbar = new Autodesk.Viewing.UI.ControlGroup('custom-tool-group');\n toolbar.addControl(this.subToolbar);\n const panBtn = new Autodesk.Viewing.UI.Button('custom-pan-btn');\n panBtn.setIcon('adsk-icon-pan');\n panBtn.setToolTip('Pan');\n panBtn.onClick = () => viewer.setTool('pan');\n this.subToolbar.addControl(panBtn);\n const docBrowserBtn = new Autodesk.Viewing.UI.Button(\n 'custom-doc-browser-btn'\n );\n docBrowserBtn.setIcon('adsk-icon-documentModels');\n docBrowserBtn.setToolTip('Document Browser');\n docBrowserBtn.onClick = () => {\n const ext = viewer.getExtension('Autodesk.DocumentBrowser');\n if (ext && ext.ui) ext.ui.togglePanel();\n };\n this.subToolbar.addControl(docBrowserBtn);\n const downloadBtn = new Autodesk.Viewing.UI.Button('custom-download-btn');\n downloadBtn.setIcon('adsk-icon-custom-download');\n downloadBtn.setToolTip('Download File');\n downloadBtn.onClick = async () => {\n if (this.options && this.options.filePath) {\n try {\n const fileUrl = this.options.filePath;\n const response = await fetch(fileUrl);\n if (!response.ok) {\n throw new Error(`HTTP error! status: ${response.status}`);\n }\n const blob = await response.blob();\n const urlPath = new URL(fileUrl).pathname;\n const filename =\n decodeURIComponent(urlPath.split('/').pop()) || 'document.pdf';\n const blobUrl = URL.createObjectURL(blob);\n const anchor = document.createElement('a');\n anchor.href = blobUrl;\n anchor.download = filename;\n anchor.style.display = 'none';\n document.body.appendChild(anchor);\n anchor.click();\n document.body.removeChild(anchor);\n URL.revokeObjectURL(blobUrl);\n } catch (error) {\n console.error('Download error:', error);\n alert('Unable to download file: ' + error.message);\n }\n } else {\n console.warn('FilePath not available in extension options');\n alert('File path not available for download');\n }\n };\n this.subToolbar.addControl(downloadBtn);\n };\n ToolbarExtension.prototype.createPaginationGroup = function (toolbar) {\n this.paginationGroup = new Autodesk.Viewing.UI.ControlGroup(\n 'custom-pagination-group'\n );\n toolbar.addControl(this.paginationGroup);\n const prevBtn = new Autodesk.Viewing.UI.Button('prev-page-btn');\n prevBtn.setIcon('adsk-icon-custom-prev');\n prevBtn.addClass('custom-prev-btn');\n prevBtn.setToolTip('Previous Page');\n prevBtn.onClick = () => {\n if (this.viewables.length > 0) {\n this.currentIndex =\n (this.currentIndex - 1 + this.viewables.length) %\n this.viewables.length;\n this.loadCurrentViewable();\n }\n };\n this.paginationGroup.addControl(prevBtn);\n const labelBtn = new Autodesk.Viewing.UI.Button('total-page-label');\n labelBtn.setToolTip('Page info');\n this.paginationGroup.addControl(labelBtn);\n const nextBtn = new Autodesk.Viewing.UI.Button('next-page-btn');\n nextBtn.setIcon('adsk-icon-custom-next');\n nextBtn.addClass('custom-next-btn');\n nextBtn.setToolTip('Next Page');\n nextBtn.onClick = () => {\n if (this.viewables.length > 0) {\n this.currentIndex = (this.currentIndex + 1) % this.viewables.length;\n this.loadCurrentViewable();\n }\n };\n this.paginationGroup.addControl(nextBtn);\n };\n Autodesk.Viewing.theExtensionManager.registerExtension(\n 'ToolbarExtension',\n ToolbarExtension\n );\n}\n","import { useEffect } from 'react';\n\nconst useCss = (href) => {\n useEffect(() => {\n if (!href) return;\n const link = document.createElement('link');\n link.href = href;\n link.rel = 'stylesheet';\n document.head.appendChild(link);\n\n return () => {\n document.head.removeChild(link);\n };\n }, [href]);\n};\n\nexport default useCss;\n","import { useEffect, useState } from 'react';\nconst scriptCache = new Set();\nconst useScript = (src) => {\n const [status, setStatus] = useState(src ? 'loading' : 'idle');\n useEffect(() => {\n if (!src) {\n setStatus('idle');\n return;\n }\n if (scriptCache.has(src)) {\n setStatus('ready');\n return;\n }\n let script = document.querySelector(`script[src=\"${src}\"]`);\n if (!script) {\n script = document.createElement('script');\n script.src = src;\n script.async = true;\n script.setAttribute('data-status', 'loading');\n document.body.appendChild(script);\n const setAttributeFromEvent = (event) => {\n const attribute = event.type === 'load' ? 'ready' : 'error';\n script?.setAttribute('data-status', attribute);\n if (attribute === 'ready') scriptCache.add(src);\n setStatus(attribute);\n };\n script.addEventListener('load', setAttributeFromEvent);\n script.addEventListener('error', setAttributeFromEvent);\n } else {\n setStatus(script.getAttribute('data-status'));\n }\n const setStateFromEvent = (event) => {\n setStatus(event.type === 'load' ? 'ready' : 'error');\n };\n script.addEventListener('load', setStateFromEvent);\n script.addEventListener('error', setStateFromEvent);\n return () => {\n if (script) {\n script.removeEventListener('load', setStateFromEvent);\n script.removeEventListener('error', setStateFromEvent);\n }\n };\n }, [src]);\n return status;\n};\nexport default useScript;\n","function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n","import { message } from 'antd';\nimport { useEffect } from 'react';\nimport { registerToolbarExtension } from '../extensions/ToolbarExtension';\nimport useCss from '../hooks/useCss';\nimport useScript from '../hooks/useScript';\nimport '../styles/toolbar-custom.css';\nimport '../styles/toolbar-icons.css';\nconst ViewerForgePDF = ({ filePath, fileExt, setViewer }) => {\n useCss(\n 'https://developer.api.autodesk.com/modelderivative/v2/viewers/7.*/style.min.css'\n );\n const status = useScript(\n 'https://developer.api.autodesk.com/modelderivative/v2/viewers/7.*/viewer3D.min.js'\n );\n useEffect(() => {\n if (status === 'ready' && window.Autodesk) {\n const Autodesk = window.Autodesk;\n if (!fileExt) {\n message.warning('You need to provide file extension');\n return;\n }\n const validExts = ['pdf', 'dwf', 'dwfx'];\n if (!validExts.includes(fileExt.toLowerCase())) {\n message.warning('Only support pdf, dwf, dwfx format');\n return;\n }\n Autodesk.Viewing.Initializer({ env: 'Local' }, async () => {\n registerToolbarExtension(Autodesk);\n const viewerDiv = document.getElementById('forgeViewerPDF');\n viewerDiv.innerHTML = '';\n const viewer = new Autodesk.Viewing.GuiViewer3D(viewerDiv);\n viewer.start();\n viewer.loadExtension('Autodesk.DocumentBrowser');\n viewer.loadExtension('Autodesk.Viewing.MarkupsCore');\n viewer.loadExtension('Autodesk.Viewing.MarkupsGui');\n viewer.loadExtension('ToolbarExtension', { filePath: filePath });\n viewer.addEventListener(Autodesk.Viewing.GEOMETRY_LOADED_EVENT, (e) => {\n e.target.loadExtension('Autodesk.Viewing.MarkupsCore');\n e.target.loadExtension('Autodesk.Viewing.MarkupsGui');\n });\n const isDWF =\n fileExt.toLowerCase() === 'pdf' ? 'Autodesk.PDF' : 'Autodesk.DWF';\n await viewer.loadExtension(isDWF);\n const handleLoadSuccess = (e) => {\n try {\n viewer.setReverseZoomDirection(true);\n const root = e.getDocumentNode().getRootNode();\n const view3d = root.search(\n { type: 'geometry', role: '3d', progress: 'complete' },\n true\n );\n const view2d = root.search(\n { type: 'geometry', role: '2d', progress: 'complete' },\n true\n );\n const viewables = view3d.concat(view2d);\n const toolbarExt = viewer.getExtension('ToolbarExtension');\n if (toolbarExt && typeof toolbarExt.setViewables === 'function') {\n toolbarExt.setViewables(viewables);\n }\n if (viewer.toolbar) {\n viewer.toolbar.setVisible(true);\n }\n if (viewables.length > 1) {\n const documentBrowser = viewer.getExtension(\n 'Autodesk.DocumentBrowser'\n );\n if (documentBrowser) {\n if (documentBrowser.ui.panel) {\n documentBrowser.ui.panel.container.style.top = 0;\n documentBrowser.ui.panel.container.style.left = 'unset';\n documentBrowser.ui.panel.container.style.right = '0px';\n documentBrowser.ui.panel.container.style.width = '200px';\n }\n }\n }\n if (setViewer) setViewer(viewer);\n } catch (err) {\n console.error('Error in handleLoadSuccess:', err);\n }\n };\n if (isDWF === 'Autodesk.DWF') {\n const xhr = new XMLHttpRequest();\n xhr.open('GET', filePath, true);\n xhr.responseType = 'blob';\n xhr.onload = function () {\n if (this.status === 200) {\n const myBlob = this.response;\n const url1 = window.URL.createObjectURL(myBlob);\n viewer.loadModel(url1 + '#.dwf', {}, handleLoadSuccess);\n }\n };\n xhr.send();\n } else {\n viewer.loadModel(filePath, {}, handleLoadSuccess);\n }\n });\n }\n }, [status, filePath, fileExt, setViewer]);\n return (\n <div style={{ position: 'relative', width: '100%', height: '100%' }}>\n <div id='forgeViewerPDF' style={{ width: '100%', height: '100%' }} />\n </div>\n );\n};\nexport default ViewerForgePDF;\n"],"names":["registerToolbarExtension","Autodesk","ToolbarExtension","viewer","options","Viewing","Extension","call","subToolbar","paginationGroup","viewables","currentIndex","prototype","Object","create","constructor","load","unload","cleanupToolbar","toolbar","removeControl","setViewables","_this","updatePaginationState","addEventListener","MODEL_ADDED_EVENT","e","updateCurrentIndexFromModel","model","length","currentNode","getDocumentNode","currentGuid","data","guid","index","findIndex","v","vGuid","totalBtn","getControl","current","total","setToolTip","concat","domElem","container","innerHTML","loadCurrentViewable","_this2","loadDocumentNode","getDocument","then","defaultGroups","forEach","id","group","setVisible","toolGroupExists","paginationGroupExists","addControl","err","console","error","onToolbarCreated","_this3","refreshToolbar","GEOMETRY_LOADED_EVENT","setTimeout","TOOLBAR_CREATED_EVENT","_toolbarInterval","clearInterval","setInterval","toolGroup","pagGroup","originalUnload","style","display","createToolGroup","createPaginationGroup","_this4","UI","ControlGroup","panBtn","Button","setIcon","onClick","setTool","docBrowserBtn","ext","getExtension","ui","togglePanel","downloadBtn","_asyncToGenerator","_regenerator","m","_callee","fileUrl","response","blob","urlPath","filename","blobUrl","anchor","_t","w","_context","p","n","filePath","fetch","ok","Error","status","URL","pathname","decodeURIComponent","split","pop","createObjectURL","document","createElement","href","download","body","appendChild","click","removeChild","revokeObjectURL","alert","message","warn","a","_this5","prevBtn","addClass","labelBtn","nextBtn","theExtensionManager","registerExtension","useCss","useEffect","link","rel","head","scriptCache","Set","useScript","src","_useState","useState","_useState2","_slicedToArray","setStatus","has","script","querySelector","async","setAttribute","setAttributeFromEvent","event","_script","attribute","type","add","getAttribute","setStateFromEvent","removeEventListener","ViewerForgePDF","_ref","fileExt","setViewer","window","warning","validExts","includes","toLowerCase","Initializer","env","viewerDiv","isDWF","handleLoadSuccess","xhr","getElementById","GuiViewer3D","start","loadExtension","target","setReverseZoomDirection","root","getRootNode","view3d","search","role","progress","view2d","toolbarExt","documentBrowser","panel","top","left","right","width","XMLHttpRequest","open","responseType","onload","myBlob","url1","loadModel","send","_jsx","position","height","children"],"mappings":"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","x_google_ignoreList":[3]}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/extensions/ToolbarExtension.js","../src/hooks/useCss.js","../src/hooks/useScript.js","../node_modules/style-inject/dist/style-inject.es.js","../src/components/ViewerForgePDF.jsx"],"sourcesContent":["export function registerToolbarExtension(Autodesk) {\n function ToolbarExtension(viewer, options) {\n Autodesk.Viewing.Extension.call(this, viewer, options);\n this.viewer = viewer;\n this.subToolbar = null;\n this.paginationGroup = null;\n this.viewables = [];\n this.currentIndex = 0;\n }\n ToolbarExtension.prototype = Object.create(\n Autodesk.Viewing.Extension.prototype\n );\n ToolbarExtension.prototype.constructor = ToolbarExtension;\n ToolbarExtension.prototype.load = function () {\n return true;\n };\n ToolbarExtension.prototype.unload = function () {\n this.cleanupToolbar();\n return true;\n };\n ToolbarExtension.prototype.cleanupToolbar = function () {\n if (this.viewer.toolbar) {\n if (this.subToolbar) {\n this.viewer.toolbar.removeControl(this.subToolbar);\n this.subToolbar = null;\n }\n if (this.paginationGroup) {\n this.viewer.toolbar.removeControl(this.paginationGroup);\n this.paginationGroup = null;\n }\n }\n };\n ToolbarExtension.prototype.setViewables = function (viewables) {\n this.viewables = viewables;\n this.currentIndex = 0;\n this.updatePaginationState();\n this.viewer.addEventListener(Autodesk.Viewing.MODEL_ADDED_EVENT, (e) => {\n this.updateCurrentIndexFromModel();\n });\n };\n ToolbarExtension.prototype.updateCurrentIndexFromModel = function () {\n if (!this.viewer.model || this.viewables.length === 0) return;\n const currentNode = this.viewer.model.getDocumentNode();\n if (currentNode) {\n const currentGuid = currentNode.data.guid || currentNode.guid;\n const index = this.viewables.findIndex((v) => {\n const vGuid = v.data && v.data.guid ? v.data.guid : v.guid;\n return vGuid === currentGuid;\n });\n if (index !== -1) {\n this.currentIndex = index;\n }\n this.updatePaginationState();\n }\n };\n ToolbarExtension.prototype.updatePaginationState = function () {\n if (!this.paginationGroup) return;\n\n // Hide pagination group if there's only 1 page or no pages\n if (this.viewables.length <= 1) {\n this.paginationGroup.setVisible(false);\n // Also hide the container via CSS to ensure it's completely hidden\n if (this.paginationGroup.container) {\n this.paginationGroup.container.style.display = 'none';\n }\n return;\n }\n\n // Show pagination group for multi-page documents\n this.paginationGroup.setVisible(true);\n // Ensure container is visible\n if (this.paginationGroup.container) {\n this.paginationGroup.container.style.display = '';\n }\n\n const totalBtn = this.paginationGroup.getControl('total-page-label');\n if (totalBtn) {\n const current = this.viewables.length > 0 ? this.currentIndex + 1 : 0;\n const total = this.viewables.length;\n totalBtn.setToolTip(`Page ${current} of ${total}`);\n const domElem = totalBtn.container;\n if (domElem) {\n domElem.innerHTML = `<div style=\"display: flex; align-items: center; justify-content: center; height: 100%; padding: 0 10px; color: white; font-size: 14px; white-space: nowrap;\">${current} / ${total}</div>`;\n }\n }\n };\n ToolbarExtension.prototype.loadCurrentViewable = function () {\n if (this.viewables.length > 0 && this.viewables[this.currentIndex]) {\n const viewer = this.viewer;\n const toolbar = viewer.toolbar;\n viewer\n .loadDocumentNode(\n viewer.model.getDocumentNode().getDocument(),\n this.viewables[this.currentIndex]\n )\n .then(() => {\n const defaultGroups = ['settingsTools', 'modelTools', 'navTools'];\n defaultGroups.forEach((id) => {\n const group = toolbar.getControl(id);\n if (group) group.setVisible(false);\n });\n const toolGroupExists = toolbar.getControl('custom-tool-group');\n const paginationGroupExists = toolbar.getControl(\n 'custom-pagination-group'\n );\n if (!toolGroupExists && this.subToolbar) {\n toolbar.addControl(this.subToolbar);\n }\n if (!paginationGroupExists && this.paginationGroup) {\n toolbar.addControl(this.paginationGroup);\n }\n if (this.subToolbar) this.subToolbar.setVisible(true);\n if (this.paginationGroup) this.paginationGroup.setVisible(true);\n toolbar.setVisible(true);\n this.updatePaginationState();\n })\n .catch((err) => console.error('Error loading viewable:', err));\n }\n };\n ToolbarExtension.prototype.onToolbarCreated = function (toolbar) {\n this.refreshToolbar();\n this.viewer.addEventListener(Autodesk.Viewing.GEOMETRY_LOADED_EVENT, () => {\n setTimeout(() => {\n this.refreshToolbar();\n this.updateCurrentIndexFromModel();\n }, 100);\n });\n this.viewer.addEventListener(Autodesk.Viewing.TOOLBAR_CREATED_EVENT, () => {\n setTimeout(() => {\n this.refreshToolbar();\n }, 10);\n });\n if (this._toolbarInterval) clearInterval(this._toolbarInterval);\n this._toolbarInterval = setInterval(() => {\n if (this.viewer && this.viewer.toolbar) {\n const toolGroup = this.viewer.toolbar.getControl('custom-tool-group');\n const pagGroup = this.viewer.toolbar.getControl(\n 'custom-pagination-group'\n );\n if (!toolGroup || !pagGroup) {\n this.refreshToolbar();\n }\n this.checkButtonState();\n }\n }, 200);\n };\n ToolbarExtension.prototype.checkButtonState = function () {\n const viewer = this.viewer;\n if (!viewer.toolbar) return;\n\n const toolGroup = viewer.toolbar.getControl('custom-tool-group');\n if (!toolGroup) return;\n\n const docBtn = toolGroup.getControl('custom-doc-browser-btn');\n if (!docBtn) return;\n\n const ext = viewer.getExtension('Autodesk.DocumentBrowser');\n const isVisible =\n ext && ext.ui && ext.ui.panel && ext.ui.panel.isVisible();\n\n const newState = isVisible\n ? Autodesk.Viewing.UI.Button.State.ACTIVE\n : Autodesk.Viewing.UI.Button.State.INACTIVE;\n\n if (docBtn.getState() !== newState) {\n docBtn.setState(newState);\n }\n\n // Force CSS class update to ensure visual state is correct\n if (docBtn.container) {\n if (isVisible) {\n docBtn.container.classList.add('active');\n docBtn.container.classList.remove('inactive');\n } else {\n docBtn.container.classList.remove('active');\n docBtn.container.classList.add('inactive');\n }\n }\n };\n const originalUnload = ToolbarExtension.prototype.unload;\n ToolbarExtension.prototype.unload = function () {\n if (this._toolbarInterval) {\n clearInterval(this._toolbarInterval);\n this._toolbarInterval = null;\n }\n return originalUnload.call(this);\n };\n ToolbarExtension.prototype.refreshToolbar = function () {\n const viewer = this.viewer;\n const toolbar = viewer.toolbar;\n if (!toolbar) return;\n const defaultGroups = ['settingsTools', 'modelTools', 'navTools'];\n defaultGroups.forEach((id) => {\n const group = toolbar.getControl(id);\n if (group) {\n group.setVisible(false);\n if (group.container) {\n group.container.style.display = 'none';\n }\n }\n });\n let toolGroup = toolbar.getControl('custom-tool-group');\n let pagGroup = toolbar.getControl('custom-pagination-group');\n if (!toolGroup) {\n if (this.subToolbar) {\n this.subToolbar = null;\n }\n this.createToolGroup(toolbar);\n } else {\n toolGroup.setVisible(true);\n this.subToolbar = toolGroup;\n }\n if (!pagGroup) {\n if (this.paginationGroup) {\n this.paginationGroup = null;\n }\n this.createPaginationGroup(toolbar);\n } else {\n // Don't force visibility here - let updatePaginationState handle it\n this.paginationGroup = pagGroup;\n }\n toolbar.setVisible(true);\n this.updatePaginationState();\n };\n ToolbarExtension.prototype.createToolGroup = function (toolbar) {\n const viewer = this.viewer;\n this.subToolbar = new Autodesk.Viewing.UI.ControlGroup('custom-tool-group');\n toolbar.addControl(this.subToolbar);\n const panBtn = new Autodesk.Viewing.UI.Button('custom-pan-btn');\n panBtn.setIcon('adsk-icon-pan');\n panBtn.setToolTip('Pan');\n panBtn.onClick = () => {\n const originalPanBtn = document.getElementById('toolbar-panTool');\n if (originalPanBtn) {\n originalPanBtn.click();\n }\n\n // Set this button to active state\n if (panBtn.container) {\n panBtn.container.classList.add('active');\n panBtn.container.classList.remove('inactive');\n }\n panBtn.setState(Autodesk.Viewing.UI.Button.State.ACTIVE);\n };\n this.subToolbar.addControl(panBtn);\n const docBrowserBtn = new Autodesk.Viewing.UI.Button(\n 'custom-doc-browser-btn'\n );\n docBrowserBtn.setIcon('adsk-icon-documentModels');\n docBrowserBtn.setToolTip('Document Browser');\n docBrowserBtn.onClick = () => {\n const ext = viewer.getExtension('Autodesk.DocumentBrowser');\n if (ext && ext.ui) ext.ui.togglePanel();\n };\n this.subToolbar.addControl(docBrowserBtn);\n const downloadBtn = new Autodesk.Viewing.UI.Button('custom-download-btn');\n downloadBtn.setIcon('adsk-icon-custom-download');\n downloadBtn.setToolTip('Download File');\n downloadBtn.onClick = async () => {\n if (this.options && this.options.filePath) {\n try {\n const fileUrl = this.options.filePath;\n const response = await fetch(fileUrl);\n if (!response.ok) {\n throw new Error(`HTTP error! status: ${response.status}`);\n }\n const blob = await response.blob();\n const urlPath = new URL(fileUrl).pathname;\n const filename =\n decodeURIComponent(urlPath.split('/').pop()) || 'document.pdf';\n const blobUrl = URL.createObjectURL(blob);\n const anchor = document.createElement('a');\n anchor.href = blobUrl;\n anchor.download = filename;\n anchor.style.display = 'none';\n document.body.appendChild(anchor);\n anchor.click();\n document.body.removeChild(anchor);\n URL.revokeObjectURL(blobUrl);\n } catch (error) {\n console.error('Download error:', error);\n alert('Unable to download file: ' + error.message);\n }\n } else {\n console.warn('FilePath not available in extension options');\n alert('File path not available for download');\n }\n };\n this.subToolbar.addControl(downloadBtn);\n };\n ToolbarExtension.prototype.createPaginationGroup = function (toolbar) {\n this.paginationGroup = new Autodesk.Viewing.UI.ControlGroup(\n 'custom-pagination-group'\n );\n toolbar.addControl(this.paginationGroup);\n const prevBtn = new Autodesk.Viewing.UI.Button('prev-page-btn');\n prevBtn.setIcon('adsk-icon-custom-prev');\n prevBtn.addClass('custom-prev-btn');\n prevBtn.setToolTip('Previous Page');\n prevBtn.onClick = () => {\n if (this.viewables.length > 0) {\n this.currentIndex =\n (this.currentIndex - 1 + this.viewables.length) %\n this.viewables.length;\n this.loadCurrentViewable();\n }\n };\n this.paginationGroup.addControl(prevBtn);\n const labelBtn = new Autodesk.Viewing.UI.Button('total-page-label');\n labelBtn.setToolTip('Page info');\n this.paginationGroup.addControl(labelBtn);\n const nextBtn = new Autodesk.Viewing.UI.Button('next-page-btn');\n nextBtn.setIcon('adsk-icon-custom-next');\n nextBtn.addClass('custom-next-btn');\n nextBtn.setToolTip('Next Page');\n nextBtn.onClick = () => {\n if (this.viewables.length > 0) {\n this.currentIndex = (this.currentIndex + 1) % this.viewables.length;\n this.loadCurrentViewable();\n }\n };\n this.paginationGroup.addControl(nextBtn);\n };\n Autodesk.Viewing.theExtensionManager.registerExtension(\n 'ToolbarExtension',\n ToolbarExtension\n );\n}\n","import { useEffect } from 'react';\n\nconst useCss = (href) => {\n useEffect(() => {\n if (!href) return;\n const link = document.createElement('link');\n link.href = href;\n link.rel = 'stylesheet';\n document.head.appendChild(link);\n\n return () => {\n document.head.removeChild(link);\n };\n }, [href]);\n};\n\nexport default useCss;\n","import { useEffect, useState } from 'react';\nconst scriptCache = new Set();\nconst useScript = (src) => {\n const [status, setStatus] = useState(src ? 'loading' : 'idle');\n useEffect(() => {\n if (!src) {\n setStatus('idle');\n return;\n }\n if (scriptCache.has(src)) {\n setStatus('ready');\n return;\n }\n let script = document.querySelector(`script[src=\"${src}\"]`);\n if (!script) {\n script = document.createElement('script');\n script.src = src;\n script.async = true;\n script.setAttribute('data-status', 'loading');\n document.body.appendChild(script);\n const setAttributeFromEvent = (event) => {\n const attribute = event.type === 'load' ? 'ready' : 'error';\n script?.setAttribute('data-status', attribute);\n if (attribute === 'ready') scriptCache.add(src);\n setStatus(attribute);\n };\n script.addEventListener('load', setAttributeFromEvent);\n script.addEventListener('error', setAttributeFromEvent);\n } else {\n setStatus(script.getAttribute('data-status'));\n }\n const setStateFromEvent = (event) => {\n setStatus(event.type === 'load' ? 'ready' : 'error');\n };\n script.addEventListener('load', setStateFromEvent);\n script.addEventListener('error', setStateFromEvent);\n return () => {\n if (script) {\n script.removeEventListener('load', setStateFromEvent);\n script.removeEventListener('error', setStateFromEvent);\n }\n };\n }, [src]);\n return status;\n};\nexport default useScript;\n","function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n","import { message } from 'antd';\nimport { useEffect } from 'react';\nimport { registerToolbarExtension } from '../extensions/ToolbarExtension';\nimport useCss from '../hooks/useCss';\nimport useScript from '../hooks/useScript';\nimport '../styles/toolbar-custom.css';\nimport '../styles/toolbar-icons.css';\nconst ViewerForgePDF = ({ filePath, fileExt, setViewer }) => {\n useCss(\n 'https://developer.api.autodesk.com/modelderivative/v2/viewers/7.*/style.min.css'\n );\n const status = useScript(\n 'https://developer.api.autodesk.com/modelderivative/v2/viewers/7.*/viewer3D.min.js'\n );\n useEffect(() => {\n if (status === 'ready' && window.Autodesk) {\n const Autodesk = window.Autodesk;\n if (!fileExt) {\n message.warning('You need to provide file extension');\n return;\n }\n const validExts = ['pdf', 'dwf', 'dwfx'];\n if (!validExts.includes(fileExt.toLowerCase())) {\n message.warning('Only support pdf, dwf, dwfx format');\n return;\n }\n Autodesk.Viewing.Initializer({ env: 'Local' }, async () => {\n registerToolbarExtension(Autodesk);\n const viewerDiv = document.getElementById('forgeViewerPDF');\n viewerDiv.innerHTML = '';\n const viewer = new Autodesk.Viewing.GuiViewer3D(viewerDiv);\n viewer.start();\n viewer.loadExtension('Autodesk.DocumentBrowser');\n viewer.loadExtension('Autodesk.Viewing.MarkupsCore');\n viewer.loadExtension('Autodesk.Viewing.MarkupsGui');\n viewer.loadExtension('ToolbarExtension', { filePath: filePath });\n viewer.addEventListener(Autodesk.Viewing.GEOMETRY_LOADED_EVENT, (e) => {\n e.target.loadExtension('Autodesk.Viewing.MarkupsCore');\n e.target.loadExtension('Autodesk.Viewing.MarkupsGui');\n });\n const isDWF =\n fileExt.toLowerCase() === 'pdf' ? 'Autodesk.PDF' : 'Autodesk.DWF';\n await viewer.loadExtension(isDWF);\n const handleLoadSuccess = (e) => {\n try {\n viewer.setReverseZoomDirection(true);\n const root = e.getDocumentNode().getRootNode();\n const view3d = root.search(\n { type: 'geometry', role: '3d', progress: 'complete' },\n true\n );\n const view2d = root.search(\n { type: 'geometry', role: '2d', progress: 'complete' },\n true\n );\n const viewables = view3d.concat(view2d);\n const toolbarExt = viewer.getExtension('ToolbarExtension');\n if (toolbarExt && typeof toolbarExt.setViewables === 'function') {\n toolbarExt.setViewables(viewables);\n }\n if (viewer.toolbar) {\n viewer.toolbar.setVisible(true);\n }\n if (viewables.length > 1) {\n // Auto-open Document Browser by clicking the original button\n setTimeout(() => {\n const originalDocBtn = document.getElementById('toolbar-documentModels');\n if (originalDocBtn && !originalDocBtn.classList.contains('active')) {\n originalDocBtn.click();\n }\n\n // Apply custom styling to the panel\n const documentBrowser = viewer.getExtension('Autodesk.DocumentBrowser');\n if (documentBrowser && documentBrowser.ui && documentBrowser.ui.panel) {\n documentBrowser.ui.panel.container.style.top = 0;\n documentBrowser.ui.panel.container.style.left = 'unset';\n documentBrowser.ui.panel.container.style.right = '0px';\n documentBrowser.ui.panel.container.style.width = '200px';\n }\n\n // Switch to Thumbnail tab after a short delay\n setTimeout(() => {\n // Try multiple selectors to find the thumbnail tab button\n const thumbnailTab = document.querySelector('.docking-panel-thumbnail-view')\n || document.querySelector('[data-i18n=\"Thumbnails\"]')\n || Array.from(document.querySelectorAll('.adsk-control-group .adsk-button')).find(btn =>\n btn.textContent.includes('Thumbnails') || btn.title.includes('Thumbnails')\n );\n\n if (thumbnailTab && !thumbnailTab.classList.contains('active')) {\n thumbnailTab.click();\n }\n }, 200);\n }, 500);\n }\n\n\n\n\n\n // Ensure Custom Pan tool is active by default\n setTimeout(() => {\n const customPanBtn = document.getElementById('custom-pan-btn');\n if (customPanBtn) {\n customPanBtn.click();\n // Double check visual state\n if (!customPanBtn.classList.contains('active')) {\n customPanBtn.classList.add('active');\n customPanBtn.classList.remove('inactive');\n }\n } else {\n // Fallback if custom button not found immediately, try accessing via viewer toolbar\n const toolGroup = viewer.toolbar?.getControl('custom-tool-group');\n const panBtnConf = toolGroup?.getControl('custom-pan-btn');\n if (panBtnConf) {\n panBtnConf.setState(1); // ACTIVE\n }\n }\n }, 600);\n\n if (setViewer) setViewer(viewer);\n } catch (err) {\n console.error('Error in handleLoadSuccess:', err);\n }\n };\n if (isDWF === 'Autodesk.DWF') {\n const xhr = new XMLHttpRequest();\n xhr.open('GET', filePath, true);\n xhr.responseType = 'blob';\n xhr.onload = function () {\n if (this.status === 200) {\n const myBlob = this.response;\n const url1 = window.URL.createObjectURL(myBlob);\n viewer.loadModel(url1 + '#.dwf', {}, handleLoadSuccess);\n }\n };\n xhr.send();\n } else {\n viewer.loadModel(filePath, {}, handleLoadSuccess);\n }\n });\n }\n }, [status, filePath, fileExt, setViewer]);\n return (\n <div style={{ position: 'relative', width: '100%', height: '100%' }}>\n <div id='forgeViewerPDF' style={{ width: '100%', height: '100%' }} />\n </div>\n );\n};\nexport default ViewerForgePDF;\n"],"names":["registerToolbarExtension","Autodesk","ToolbarExtension","viewer","options","Viewing","Extension","call","subToolbar","paginationGroup","viewables","currentIndex","prototype","Object","create","constructor","load","unload","cleanupToolbar","toolbar","removeControl","setViewables","_this","updatePaginationState","addEventListener","MODEL_ADDED_EVENT","e","updateCurrentIndexFromModel","model","length","currentNode","getDocumentNode","currentGuid","data","guid","index","findIndex","v","vGuid","setVisible","container","style","display","totalBtn","getControl","current","total","setToolTip","concat","domElem","innerHTML","loadCurrentViewable","_this2","loadDocumentNode","getDocument","then","defaultGroups","forEach","id","group","toolGroupExists","paginationGroupExists","addControl","err","console","error","onToolbarCreated","_this3","refreshToolbar","GEOMETRY_LOADED_EVENT","setTimeout","TOOLBAR_CREATED_EVENT","_toolbarInterval","clearInterval","setInterval","toolGroup","pagGroup","checkButtonState","docBtn","ext","getExtension","isVisible","ui","panel","newState","UI","Button","State","ACTIVE","INACTIVE","getState","setState","classList","add","remove","originalUnload","createToolGroup","createPaginationGroup","_this4","ControlGroup","panBtn","setIcon","onClick","originalPanBtn","document","getElementById","click","docBrowserBtn","togglePanel","downloadBtn","_asyncToGenerator","_regenerator","m","_callee","fileUrl","response","blob","urlPath","filename","blobUrl","anchor","_t","w","_context","p","n","filePath","fetch","ok","Error","status","URL","pathname","decodeURIComponent","split","pop","createObjectURL","createElement","href","download","body","appendChild","removeChild","revokeObjectURL","alert","message","warn","a","_this5","prevBtn","addClass","labelBtn","nextBtn","theExtensionManager","registerExtension","useCss","useEffect","link","rel","head","scriptCache","Set","useScript","src","_useState","useState","_useState2","_slicedToArray","setStatus","has","script","querySelector","async","setAttribute","setAttributeFromEvent","event","_script","attribute","type","getAttribute","setStateFromEvent","removeEventListener","ViewerForgePDF","_ref","fileExt","setViewer","window","warning","validExts","includes","toLowerCase","Initializer","env","viewerDiv","isDWF","handleLoadSuccess","xhr","GuiViewer3D","start","loadExtension","target","setReverseZoomDirection","root","getRootNode","view3d","search","role","progress","view2d","toolbarExt","originalDocBtn","contains","documentBrowser","top","left","right","width","thumbnailTab","Array","from","querySelectorAll","find","btn","textContent","title","customPanBtn","_viewer$toolbar","panBtnConf","XMLHttpRequest","open","responseType","onload","myBlob","url1","loadModel","send","_jsx","position","height","children"],"mappings":"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","x_google_ignoreList":[3]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dtducas/wh-forge-viewer",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.4",
|
|
4
4
|
"description": "A customized Autodesk Forge Viewer component for React with custom toolbar and PDF support",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -40,8 +40,8 @@
|
|
|
40
40
|
},
|
|
41
41
|
"homepage": "https://github.com/DTDucas/wh-forge-viewer#readme",
|
|
42
42
|
"peerDependencies": {
|
|
43
|
-
"
|
|
44
|
-
"
|
|
43
|
+
"antd": "^5.0.0",
|
|
44
|
+
"react": "^17.0.0 || ^18.0.0"
|
|
45
45
|
},
|
|
46
46
|
"devDependencies": {
|
|
47
47
|
"@babel/core": "^7.23.0",
|
|
@@ -51,6 +51,7 @@
|
|
|
51
51
|
"@rollup/plugin-commonjs": "^25.0.0",
|
|
52
52
|
"@rollup/plugin-node-resolve": "^15.0.0",
|
|
53
53
|
"rollup": "^3.29.0",
|
|
54
|
+
"rollup-plugin-copy": "^3.5.0",
|
|
54
55
|
"rollup-plugin-peer-deps-external": "^2.2.4",
|
|
55
56
|
"rollup-plugin-postcss": "^4.0.2"
|
|
56
57
|
}
|