3dviewer-sdk 1.0.1 → 1.0.3
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/contracts/events.d.ts +97 -0
- package/dist/contracts/events.js +1 -0
- package/dist/contracts/messages.d.ts +153 -0
- package/dist/contracts/messages.js +49 -0
- package/dist/core/emitter.d.ts +7 -0
- package/dist/core/emitter.js +31 -0
- package/dist/index.d.mts +70 -4
- package/dist/index.d.ts +70 -4
- package/dist/index.js +29 -11
- package/dist/index.mjs +29 -11
- package/dist/modules/camera.module.d.ts +13 -0
- package/dist/modules/camera.module.js +18 -0
- package/dist/modules/files.module.d.ts +84 -0
- package/dist/modules/files.module.js +315 -0
- package/dist/modules/interaction.module.d.ts +28 -0
- package/dist/modules/interaction.module.js +63 -0
- package/dist/modules/language.module.d.ts +8 -0
- package/dist/modules/language.module.js +15 -0
- package/dist/modules/markup.module.d.ts +26 -0
- package/dist/modules/markup.module.js +96 -0
- package/dist/modules/model-tree.module.d.ts +12 -0
- package/dist/modules/model-tree.module.js +42 -0
- package/dist/modules/node.module.d.ts +11 -0
- package/dist/modules/node.module.js +6 -0
- package/dist/modules/toolbar.module.d.ts +83 -0
- package/dist/modules/toolbar.module.js +219 -0
- package/dist/viewer.d.ts +51 -0
- package/dist/viewer.js +277 -0
- package/package.json +1 -1
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import type { MarkupListItem, MarkupOperationResultPayload, PdfCurrentPagePayload, PdfModeEventPayload, PdfToolbarActionEventPayload } from "./messages";
|
|
2
|
+
export declare type ViewerEventMap = {
|
|
3
|
+
"camera:home": {
|
|
4
|
+
timestamp: number;
|
|
5
|
+
};
|
|
6
|
+
"node:select": {
|
|
7
|
+
nodeId: string;
|
|
8
|
+
timestamp: number;
|
|
9
|
+
};
|
|
10
|
+
"interaction:pan-change": {
|
|
11
|
+
enabled: boolean;
|
|
12
|
+
};
|
|
13
|
+
"toolbar:pdf-plan-mode": PdfModeEventPayload;
|
|
14
|
+
"toolbar:pdf-document-mode": PdfModeEventPayload;
|
|
15
|
+
"toolbar:pdf-first-page": PdfToolbarActionEventPayload;
|
|
16
|
+
"toolbar:pdf-previous-page": PdfToolbarActionEventPayload;
|
|
17
|
+
"toolbar:pdf-next-page": PdfToolbarActionEventPayload;
|
|
18
|
+
"toolbar:pdf-last-page": PdfToolbarActionEventPayload;
|
|
19
|
+
"toolbar:pdf-current-page": PdfCurrentPagePayload;
|
|
20
|
+
"modelTree:node-ids": {
|
|
21
|
+
requestId: string;
|
|
22
|
+
nodeIds: string[];
|
|
23
|
+
timestamp: number;
|
|
24
|
+
};
|
|
25
|
+
"sheets:list": {
|
|
26
|
+
requestId: string;
|
|
27
|
+
sheets: {
|
|
28
|
+
id: string | number;
|
|
29
|
+
name: string;
|
|
30
|
+
is3D?: boolean;
|
|
31
|
+
viewId?: string;
|
|
32
|
+
}[];
|
|
33
|
+
activeSheetId?: string | number | null;
|
|
34
|
+
timestamp: number;
|
|
35
|
+
};
|
|
36
|
+
"markup:list": {
|
|
37
|
+
requestId: string;
|
|
38
|
+
markups: MarkupListItem[];
|
|
39
|
+
timestamp: number;
|
|
40
|
+
};
|
|
41
|
+
"markup:save": MarkupOperationResultPayload;
|
|
42
|
+
"markup:cancel": MarkupOperationResultPayload;
|
|
43
|
+
};
|
|
44
|
+
export declare type LoadStage = "idle" | "uploading" | "converting" | "rendering" | "completed" | "error";
|
|
45
|
+
export declare type LoadStatePayload = {
|
|
46
|
+
isLoading: boolean;
|
|
47
|
+
stage: LoadStage;
|
|
48
|
+
message?: string;
|
|
49
|
+
elapsedMs?: number;
|
|
50
|
+
};
|
|
51
|
+
export declare type PreparedViewerData = {
|
|
52
|
+
baseFileId: string;
|
|
53
|
+
baseMajorRev: number;
|
|
54
|
+
baseMinorRev: number;
|
|
55
|
+
fileName: string;
|
|
56
|
+
query: string;
|
|
57
|
+
url: string;
|
|
58
|
+
};
|
|
59
|
+
export declare type FilesEventMap = {
|
|
60
|
+
"files:state": LoadStatePayload;
|
|
61
|
+
"files:upload:start": {
|
|
62
|
+
fileName: string;
|
|
63
|
+
};
|
|
64
|
+
"files:upload:success": {
|
|
65
|
+
fileName: string;
|
|
66
|
+
baseFileId: string;
|
|
67
|
+
};
|
|
68
|
+
"files:upload:error": {
|
|
69
|
+
fileName: string;
|
|
70
|
+
error: string;
|
|
71
|
+
};
|
|
72
|
+
"files:conversion:start": {
|
|
73
|
+
fileName: string;
|
|
74
|
+
};
|
|
75
|
+
"files:conversion:success": PreparedViewerData;
|
|
76
|
+
"files:conversion:error": {
|
|
77
|
+
fileName: string;
|
|
78
|
+
error: string;
|
|
79
|
+
};
|
|
80
|
+
"files:render:start": {
|
|
81
|
+
url: string;
|
|
82
|
+
};
|
|
83
|
+
"files:render:success": {
|
|
84
|
+
url: string;
|
|
85
|
+
};
|
|
86
|
+
"files:render:error": {
|
|
87
|
+
url?: string;
|
|
88
|
+
error: string;
|
|
89
|
+
};
|
|
90
|
+
"files:load:success": PreparedViewerData;
|
|
91
|
+
"files:load:error": {
|
|
92
|
+
error: string;
|
|
93
|
+
};
|
|
94
|
+
};
|
|
95
|
+
export declare type SdkEventMap = ViewerEventMap & FilesEventMap;
|
|
96
|
+
export declare type SdkEventKey = keyof SdkEventMap;
|
|
97
|
+
export declare type SdkEventPayload<K extends SdkEventKey> = SdkEventMap[K];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
export declare enum ViewerMessageType {
|
|
2
|
+
LANGUAGE_CHANGE = "viewer-language-change",
|
|
3
|
+
ZOOM = "viewer-zoom",
|
|
4
|
+
DRAW_MODE = "viewer-draw-mode",
|
|
5
|
+
EXPLODE = "viewer-explode",
|
|
6
|
+
MARKUP_ACTION = "viewer-markup-action",
|
|
7
|
+
MARKUP_SAVE = "viewer-markup-save",
|
|
8
|
+
MARKUP_CANCEL = "viewer-markup-cancel",
|
|
9
|
+
MARKUP_GET_LIST = "viewer-markup-get-list",
|
|
10
|
+
MARKUP_SAVE_RESULT = "viewer-markup-save-result",
|
|
11
|
+
MARKUP_CANCEL_RESULT = "viewer-markup-cancel-result",
|
|
12
|
+
MARKUP_LIST = "viewer-markup-list",
|
|
13
|
+
HOME = "viewer-home",
|
|
14
|
+
PAN_TOGGLE = "viewer-pan-toggle",
|
|
15
|
+
SELECT = "viewer-select",
|
|
16
|
+
AREA_SELECT = "viewer-area-select",
|
|
17
|
+
ORBIT = "viewer-orbit",
|
|
18
|
+
ROTATE_Z = "viewer-rotate-z",
|
|
19
|
+
WALK_THROUGH = "viewer-walk-through",
|
|
20
|
+
ZOOM_WINDOW = "viewer-zoom-window",
|
|
21
|
+
ZOOM_FIT = "viewer-zoom-fit",
|
|
22
|
+
TOOLBAR_CONFIG = "viewer-toolbar-config",
|
|
23
|
+
PANEL_OPEN = "viewer-panel-open",
|
|
24
|
+
PANEL_CLOSE = "viewer-panel-close",
|
|
25
|
+
CUTTING_PLANE_ACTION = "viewer-cutting-plane-action",
|
|
26
|
+
SHEETS_GET_LIST = "viewer-sheets-get-list",
|
|
27
|
+
SHEETS_LIST = "viewer-sheets-list",
|
|
28
|
+
SHEETS_APPLY = "viewer-sheets-apply",
|
|
29
|
+
TREE_SELECT_NODE = "viewer-tree-select-node",
|
|
30
|
+
TREE_GET_NODE_IDS = "viewer-tree-get-node-ids",
|
|
31
|
+
TREE_NODE_IDS = "viewer-tree-node-ids",
|
|
32
|
+
PDF_PLAN_MODE = "viewer-pdf-plan-mode",
|
|
33
|
+
PDF_DOCUMENT_MODE = "viewer-pdf-document-mode",
|
|
34
|
+
PDF_FIRST_PAGE = "viewer-pdf-first-page",
|
|
35
|
+
PDF_PREVIOUS_PAGE = "viewer-pdf-previous-page",
|
|
36
|
+
PDF_NEXT_PAGE = "viewer-pdf-next-page",
|
|
37
|
+
PDF_LAST_PAGE = "viewer-pdf-last-page",
|
|
38
|
+
PDF_CURRENT_PAGE = "viewer-pdf-current-page",
|
|
39
|
+
HOME_CLICK = "viewer-home-click",
|
|
40
|
+
NODE_SELECT = "viewer-node-select",
|
|
41
|
+
PAN_CHANGE = "viewer-pan-change"
|
|
42
|
+
}
|
|
43
|
+
export declare enum ViewerMessageSource {
|
|
44
|
+
SDK = "HC_SDK",
|
|
45
|
+
VIEWER = "HC_VIEWER"
|
|
46
|
+
}
|
|
47
|
+
export declare type OutgoingMessage<T = unknown> = {
|
|
48
|
+
source: ViewerMessageSource.SDK;
|
|
49
|
+
type: ViewerMessageType;
|
|
50
|
+
payload?: T;
|
|
51
|
+
};
|
|
52
|
+
export declare type IncomingMessage<T = any> = {
|
|
53
|
+
source?: ViewerMessageSource | string;
|
|
54
|
+
type: ViewerMessageType;
|
|
55
|
+
payload?: T;
|
|
56
|
+
};
|
|
57
|
+
export declare type LanguageCode = "en" | "vn";
|
|
58
|
+
export declare type LanguageChangePayload = {
|
|
59
|
+
language: LanguageCode;
|
|
60
|
+
timestamp?: number;
|
|
61
|
+
};
|
|
62
|
+
export declare type DrawModeValue = "shaded" | "wireframe" | "hidden-line" | "shaded-wire" | "xray" | "ghosting";
|
|
63
|
+
export declare type DrawModePayload = {
|
|
64
|
+
mode: DrawModeValue;
|
|
65
|
+
};
|
|
66
|
+
export declare type ExplodePayload = {
|
|
67
|
+
magnitude: number;
|
|
68
|
+
};
|
|
69
|
+
export declare type MarkupAction = "line" | "arrow" | "circle" | "ellipse" | "rectangle" | "polygon" | "polyline" | "textbox" | "note" | "callout" | "cloud" | "freehand";
|
|
70
|
+
export declare type MarkupActionPayload = {
|
|
71
|
+
action: MarkupAction;
|
|
72
|
+
};
|
|
73
|
+
export declare type MarkupRequestPayload = {
|
|
74
|
+
requestId: string;
|
|
75
|
+
};
|
|
76
|
+
export declare type MarkupOperationResultPayload = {
|
|
77
|
+
requestId: string;
|
|
78
|
+
success: boolean;
|
|
79
|
+
timestamp: number;
|
|
80
|
+
error?: string;
|
|
81
|
+
};
|
|
82
|
+
export declare type MarkupListItem = {
|
|
83
|
+
id: string;
|
|
84
|
+
viewId: string;
|
|
85
|
+
viewName?: string;
|
|
86
|
+
title: string;
|
|
87
|
+
type: string;
|
|
88
|
+
shapeName?: string;
|
|
89
|
+
createdDate?: string;
|
|
90
|
+
modifiedDate?: string;
|
|
91
|
+
createdBy?: string;
|
|
92
|
+
lastModifiedBy?: string;
|
|
93
|
+
};
|
|
94
|
+
export declare type MarkupListPayload = {
|
|
95
|
+
requestId: string;
|
|
96
|
+
markups: MarkupListItem[];
|
|
97
|
+
timestamp: number;
|
|
98
|
+
};
|
|
99
|
+
export declare type PanelTarget = "clipping-commands" | "setting" | "statesObjects" | "linkedObjects" | "model-tree" | "sheets" | "object-properties";
|
|
100
|
+
export declare type PanelOpenPayload = {
|
|
101
|
+
panel: PanelTarget;
|
|
102
|
+
format?: "3d" | "pdf";
|
|
103
|
+
};
|
|
104
|
+
export declare type PanelClosePayload = {
|
|
105
|
+
panel: PanelTarget;
|
|
106
|
+
format?: "3d" | "pdf";
|
|
107
|
+
};
|
|
108
|
+
export declare type CuttingPlaneAction = "close" | "multi" | "toggle-section" | "toggle-plane" | "plane-x" | "plane-y" | "plane-z" | "plane-box" | "rotate-box" | "reverse-plane-x" | "reverse-plane-y" | "reverse-plane-z";
|
|
109
|
+
export declare type CuttingPlaneActionPayload = {
|
|
110
|
+
action: CuttingPlaneAction;
|
|
111
|
+
};
|
|
112
|
+
export declare type SheetsGetListPayload = {
|
|
113
|
+
requestId: string;
|
|
114
|
+
};
|
|
115
|
+
export declare type SheetListItem = {
|
|
116
|
+
id: string | number;
|
|
117
|
+
name: string;
|
|
118
|
+
is3D?: boolean;
|
|
119
|
+
viewId?: string;
|
|
120
|
+
};
|
|
121
|
+
export declare type SheetsListPayload = {
|
|
122
|
+
requestId: string;
|
|
123
|
+
sheets: SheetListItem[];
|
|
124
|
+
activeSheetId?: string | number | null;
|
|
125
|
+
timestamp: number;
|
|
126
|
+
};
|
|
127
|
+
export declare type SheetsApplyPayload = {
|
|
128
|
+
sheetId: string | number;
|
|
129
|
+
};
|
|
130
|
+
export declare type TreeSelectNodePayload = {
|
|
131
|
+
nodeId: string;
|
|
132
|
+
};
|
|
133
|
+
export declare type TreeGetNodeIdsPayload = {
|
|
134
|
+
requestId: string;
|
|
135
|
+
onlyRealNodes?: boolean;
|
|
136
|
+
};
|
|
137
|
+
export declare type TreeNodeIdsPayload = {
|
|
138
|
+
requestId: string;
|
|
139
|
+
nodeIds: string[];
|
|
140
|
+
timestamp: number;
|
|
141
|
+
};
|
|
142
|
+
export declare type PdfModeEventPayload = {
|
|
143
|
+
mode: "plan" | "document";
|
|
144
|
+
timestamp: number;
|
|
145
|
+
};
|
|
146
|
+
export declare type PdfToolbarActionEventPayload = {
|
|
147
|
+
timestamp: number;
|
|
148
|
+
};
|
|
149
|
+
export declare type PdfCurrentPagePayload = {
|
|
150
|
+
pageIndex: number;
|
|
151
|
+
pageNumber: number;
|
|
152
|
+
timestamp: number;
|
|
153
|
+
};
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
// sdk/src/contracts/messages.ts
|
|
2
|
+
export var ViewerMessageType;
|
|
3
|
+
(function (ViewerMessageType) {
|
|
4
|
+
ViewerMessageType["LANGUAGE_CHANGE"] = "viewer-language-change";
|
|
5
|
+
ViewerMessageType["ZOOM"] = "viewer-zoom";
|
|
6
|
+
ViewerMessageType["DRAW_MODE"] = "viewer-draw-mode";
|
|
7
|
+
ViewerMessageType["EXPLODE"] = "viewer-explode";
|
|
8
|
+
ViewerMessageType["MARKUP_ACTION"] = "viewer-markup-action";
|
|
9
|
+
ViewerMessageType["MARKUP_SAVE"] = "viewer-markup-save";
|
|
10
|
+
ViewerMessageType["MARKUP_CANCEL"] = "viewer-markup-cancel";
|
|
11
|
+
ViewerMessageType["MARKUP_GET_LIST"] = "viewer-markup-get-list";
|
|
12
|
+
ViewerMessageType["MARKUP_SAVE_RESULT"] = "viewer-markup-save-result";
|
|
13
|
+
ViewerMessageType["MARKUP_CANCEL_RESULT"] = "viewer-markup-cancel-result";
|
|
14
|
+
ViewerMessageType["MARKUP_LIST"] = "viewer-markup-list";
|
|
15
|
+
ViewerMessageType["HOME"] = "viewer-home";
|
|
16
|
+
ViewerMessageType["PAN_TOGGLE"] = "viewer-pan-toggle";
|
|
17
|
+
ViewerMessageType["SELECT"] = "viewer-select";
|
|
18
|
+
ViewerMessageType["AREA_SELECT"] = "viewer-area-select";
|
|
19
|
+
ViewerMessageType["ORBIT"] = "viewer-orbit";
|
|
20
|
+
ViewerMessageType["ROTATE_Z"] = "viewer-rotate-z";
|
|
21
|
+
ViewerMessageType["WALK_THROUGH"] = "viewer-walk-through";
|
|
22
|
+
ViewerMessageType["ZOOM_WINDOW"] = "viewer-zoom-window";
|
|
23
|
+
ViewerMessageType["ZOOM_FIT"] = "viewer-zoom-fit";
|
|
24
|
+
ViewerMessageType["TOOLBAR_CONFIG"] = "viewer-toolbar-config";
|
|
25
|
+
ViewerMessageType["PANEL_OPEN"] = "viewer-panel-open";
|
|
26
|
+
ViewerMessageType["PANEL_CLOSE"] = "viewer-panel-close";
|
|
27
|
+
ViewerMessageType["CUTTING_PLANE_ACTION"] = "viewer-cutting-plane-action";
|
|
28
|
+
ViewerMessageType["SHEETS_GET_LIST"] = "viewer-sheets-get-list";
|
|
29
|
+
ViewerMessageType["SHEETS_LIST"] = "viewer-sheets-list";
|
|
30
|
+
ViewerMessageType["SHEETS_APPLY"] = "viewer-sheets-apply";
|
|
31
|
+
ViewerMessageType["TREE_SELECT_NODE"] = "viewer-tree-select-node";
|
|
32
|
+
ViewerMessageType["TREE_GET_NODE_IDS"] = "viewer-tree-get-node-ids";
|
|
33
|
+
ViewerMessageType["TREE_NODE_IDS"] = "viewer-tree-node-ids";
|
|
34
|
+
ViewerMessageType["PDF_PLAN_MODE"] = "viewer-pdf-plan-mode";
|
|
35
|
+
ViewerMessageType["PDF_DOCUMENT_MODE"] = "viewer-pdf-document-mode";
|
|
36
|
+
ViewerMessageType["PDF_FIRST_PAGE"] = "viewer-pdf-first-page";
|
|
37
|
+
ViewerMessageType["PDF_PREVIOUS_PAGE"] = "viewer-pdf-previous-page";
|
|
38
|
+
ViewerMessageType["PDF_NEXT_PAGE"] = "viewer-pdf-next-page";
|
|
39
|
+
ViewerMessageType["PDF_LAST_PAGE"] = "viewer-pdf-last-page";
|
|
40
|
+
ViewerMessageType["PDF_CURRENT_PAGE"] = "viewer-pdf-current-page";
|
|
41
|
+
ViewerMessageType["HOME_CLICK"] = "viewer-home-click";
|
|
42
|
+
ViewerMessageType["NODE_SELECT"] = "viewer-node-select";
|
|
43
|
+
ViewerMessageType["PAN_CHANGE"] = "viewer-pan-change";
|
|
44
|
+
})(ViewerMessageType || (ViewerMessageType = {}));
|
|
45
|
+
export var ViewerMessageSource;
|
|
46
|
+
(function (ViewerMessageSource) {
|
|
47
|
+
ViewerMessageSource["SDK"] = "HC_SDK";
|
|
48
|
+
ViewerMessageSource["VIEWER"] = "HC_VIEWER";
|
|
49
|
+
})(ViewerMessageSource || (ViewerMessageSource = {}));
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export declare class Emitter<EventMap extends Record<string, any>> {
|
|
2
|
+
private listeners;
|
|
3
|
+
on<K extends keyof EventMap>(event: K, cb: (payload: EventMap[K]) => void): () => void;
|
|
4
|
+
off<K extends keyof EventMap>(event: K, cb: (payload: EventMap[K]) => void): void;
|
|
5
|
+
emit<K extends keyof EventMap>(event: K, payload: EventMap[K]): void;
|
|
6
|
+
clear(): void;
|
|
7
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
// sdk/src/core/emitter.ts
|
|
2
|
+
export class Emitter {
|
|
3
|
+
constructor() {
|
|
4
|
+
this.listeners = {};
|
|
5
|
+
}
|
|
6
|
+
on(event, cb) {
|
|
7
|
+
if (!this.listeners[event]) {
|
|
8
|
+
this.listeners[event] = [];
|
|
9
|
+
}
|
|
10
|
+
const arr = this.listeners[event];
|
|
11
|
+
arr.push(cb);
|
|
12
|
+
return () => this.off(event, cb);
|
|
13
|
+
}
|
|
14
|
+
off(event, cb) {
|
|
15
|
+
const arr = this.listeners[event];
|
|
16
|
+
if (!arr)
|
|
17
|
+
return;
|
|
18
|
+
const idx = arr.indexOf(cb);
|
|
19
|
+
if (idx >= 0)
|
|
20
|
+
arr.splice(idx, 1);
|
|
21
|
+
if (arr.length === 0)
|
|
22
|
+
delete this.listeners[event];
|
|
23
|
+
}
|
|
24
|
+
emit(event, payload) {
|
|
25
|
+
var _a;
|
|
26
|
+
(_a = this.listeners[event]) === null || _a === void 0 ? void 0 : _a.forEach((cb) => cb(payload));
|
|
27
|
+
}
|
|
28
|
+
clear() {
|
|
29
|
+
this.listeners = {};
|
|
30
|
+
}
|
|
31
|
+
}
|
package/dist/index.d.mts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
declare enum ViewerMessageType {
|
|
2
|
+
LANGUAGE_CHANGE = "viewer-language-change",
|
|
2
3
|
ZOOM = "viewer-zoom",
|
|
3
4
|
DRAW_MODE = "viewer-draw-mode",
|
|
4
5
|
EXPLODE = "viewer-explode",
|
|
@@ -28,10 +29,18 @@ declare enum ViewerMessageType {
|
|
|
28
29
|
TREE_SELECT_NODE = "viewer-tree-select-node",
|
|
29
30
|
TREE_GET_NODE_IDS = "viewer-tree-get-node-ids",
|
|
30
31
|
TREE_NODE_IDS = "viewer-tree-node-ids",
|
|
32
|
+
PDF_PLAN_MODE = "viewer-pdf-plan-mode",
|
|
33
|
+
PDF_DOCUMENT_MODE = "viewer-pdf-document-mode",
|
|
34
|
+
PDF_FIRST_PAGE = "viewer-pdf-first-page",
|
|
35
|
+
PDF_PREVIOUS_PAGE = "viewer-pdf-previous-page",
|
|
36
|
+
PDF_NEXT_PAGE = "viewer-pdf-next-page",
|
|
37
|
+
PDF_LAST_PAGE = "viewer-pdf-last-page",
|
|
38
|
+
PDF_CURRENT_PAGE = "viewer-pdf-current-page",
|
|
31
39
|
HOME_CLICK = "viewer-home-click",
|
|
32
40
|
NODE_SELECT = "viewer-node-select",
|
|
33
41
|
PAN_CHANGE = "viewer-pan-change"
|
|
34
42
|
}
|
|
43
|
+
type LanguageCode = "en" | "vn";
|
|
35
44
|
type MarkupAction = "line" | "arrow" | "circle" | "ellipse" | "rectangle" | "polygon" | "polyline" | "textbox" | "note" | "callout" | "cloud" | "freehand";
|
|
36
45
|
type MarkupOperationResultPayload = {
|
|
37
46
|
requestId: string;
|
|
@@ -57,6 +66,18 @@ type SheetListItem = {
|
|
|
57
66
|
is3D?: boolean;
|
|
58
67
|
viewId?: string;
|
|
59
68
|
};
|
|
69
|
+
type PdfModeEventPayload = {
|
|
70
|
+
mode: "plan" | "document";
|
|
71
|
+
timestamp: number;
|
|
72
|
+
};
|
|
73
|
+
type PdfToolbarActionEventPayload = {
|
|
74
|
+
timestamp: number;
|
|
75
|
+
};
|
|
76
|
+
type PdfCurrentPagePayload = {
|
|
77
|
+
pageIndex: number;
|
|
78
|
+
pageNumber: number;
|
|
79
|
+
timestamp: number;
|
|
80
|
+
};
|
|
60
81
|
|
|
61
82
|
type ViewerEventMap = {
|
|
62
83
|
"camera:home": {
|
|
@@ -69,6 +90,13 @@ type ViewerEventMap = {
|
|
|
69
90
|
"interaction:pan-change": {
|
|
70
91
|
enabled: boolean;
|
|
71
92
|
};
|
|
93
|
+
"toolbar:pdf-plan-mode": PdfModeEventPayload;
|
|
94
|
+
"toolbar:pdf-document-mode": PdfModeEventPayload;
|
|
95
|
+
"toolbar:pdf-first-page": PdfToolbarActionEventPayload;
|
|
96
|
+
"toolbar:pdf-previous-page": PdfToolbarActionEventPayload;
|
|
97
|
+
"toolbar:pdf-next-page": PdfToolbarActionEventPayload;
|
|
98
|
+
"toolbar:pdf-last-page": PdfToolbarActionEventPayload;
|
|
99
|
+
"toolbar:pdf-current-page": PdfCurrentPagePayload;
|
|
72
100
|
"modelTree:node-ids": {
|
|
73
101
|
requestId: string;
|
|
74
102
|
nodeIds: string[];
|
|
@@ -205,6 +233,9 @@ type FilesConfig = {
|
|
|
205
233
|
viewerPath?: string;
|
|
206
234
|
uploadPath?: string;
|
|
207
235
|
};
|
|
236
|
+
type ConvertOptions = {
|
|
237
|
+
downloadUrl?: string;
|
|
238
|
+
};
|
|
208
239
|
declare class FilesModule {
|
|
209
240
|
private viewer;
|
|
210
241
|
on: {
|
|
@@ -254,12 +285,12 @@ declare class FilesModule {
|
|
|
254
285
|
fileName: string;
|
|
255
286
|
baseFileId: string;
|
|
256
287
|
}>;
|
|
257
|
-
convert(file?: File): Promise<PreparedViewerData>;
|
|
258
|
-
prepare(file?: File): Promise<PreparedViewerData>;
|
|
288
|
+
convert(file?: File, options?: ConvertOptions): Promise<PreparedViewerData>;
|
|
289
|
+
prepare(file?: File, options?: ConvertOptions): Promise<PreparedViewerData>;
|
|
259
290
|
open(input: PreparedViewerData | {
|
|
260
291
|
url: string;
|
|
261
292
|
}): void;
|
|
262
|
-
render(file?: File): Promise<PreparedViewerData>;
|
|
293
|
+
render(file?: File, options?: ConvertOptions): Promise<PreparedViewerData>;
|
|
263
294
|
private resolveFile;
|
|
264
295
|
private normalizeBaseUrl;
|
|
265
296
|
private resolveBaseUrl;
|
|
@@ -285,6 +316,33 @@ type GetSheetsOptions = {
|
|
|
285
316
|
};
|
|
286
317
|
declare class ToolbarModule {
|
|
287
318
|
private viewer;
|
|
319
|
+
on: {
|
|
320
|
+
planMode: (cb: (payload: {
|
|
321
|
+
mode: "plan" | "document";
|
|
322
|
+
timestamp: number;
|
|
323
|
+
}) => void) => () => void;
|
|
324
|
+
documentMode: (cb: (payload: {
|
|
325
|
+
mode: "plan" | "document";
|
|
326
|
+
timestamp: number;
|
|
327
|
+
}) => void) => () => void;
|
|
328
|
+
firstPage: (cb: (payload: {
|
|
329
|
+
timestamp: number;
|
|
330
|
+
}) => void) => () => void;
|
|
331
|
+
previousPage: (cb: (payload: {
|
|
332
|
+
timestamp: number;
|
|
333
|
+
}) => void) => () => void;
|
|
334
|
+
nextPage: (cb: (payload: {
|
|
335
|
+
timestamp: number;
|
|
336
|
+
}) => void) => () => void;
|
|
337
|
+
lastPage: (cb: (payload: {
|
|
338
|
+
timestamp: number;
|
|
339
|
+
}) => void) => () => void;
|
|
340
|
+
currentPage: (cb: (payload: {
|
|
341
|
+
pageIndex: number;
|
|
342
|
+
pageNumber: number;
|
|
343
|
+
timestamp: number;
|
|
344
|
+
}) => void) => () => void;
|
|
345
|
+
};
|
|
288
346
|
constructor(viewer: Viewer3D);
|
|
289
347
|
setDisabled3D(operators: string[]): void;
|
|
290
348
|
setDisabledPdf(operators: string[]): void;
|
|
@@ -371,6 +429,13 @@ declare class MarkupModule {
|
|
|
371
429
|
private runRequest;
|
|
372
430
|
}
|
|
373
431
|
|
|
432
|
+
declare class LanguageModule {
|
|
433
|
+
private viewer;
|
|
434
|
+
constructor(viewer: Viewer3D);
|
|
435
|
+
change(language: LanguageCode): void;
|
|
436
|
+
set(language: LanguageCode): void;
|
|
437
|
+
}
|
|
438
|
+
|
|
374
439
|
type Viewer3DOptions = {
|
|
375
440
|
container: HTMLElement | string;
|
|
376
441
|
url?: string;
|
|
@@ -396,6 +461,7 @@ declare class Viewer3D {
|
|
|
396
461
|
toolbar: ToolbarModule;
|
|
397
462
|
modelTree: ModelTreeModule;
|
|
398
463
|
markup: MarkupModule;
|
|
464
|
+
language: LanguageModule;
|
|
399
465
|
constructor(options: Viewer3DOptions);
|
|
400
466
|
getOptions(): Viewer3DOptions;
|
|
401
467
|
patchOptions(next: Partial<Viewer3DOptions>): void;
|
|
@@ -412,4 +478,4 @@ declare class Viewer3D {
|
|
|
412
478
|
private handleMessage;
|
|
413
479
|
}
|
|
414
480
|
|
|
415
|
-
export { type FilesConfig, type LoadStage, type LoadStatePayload, type MarkupAction, type MarkupListItem, type MarkupOperationResultPayload, type PreparedViewerData, Viewer3D };
|
|
481
|
+
export { type ConvertOptions, type FilesConfig, type LanguageCode, type LoadStage, type LoadStatePayload, type MarkupAction, type MarkupListItem, type MarkupOperationResultPayload, type PreparedViewerData, Viewer3D };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
declare enum ViewerMessageType {
|
|
2
|
+
LANGUAGE_CHANGE = "viewer-language-change",
|
|
2
3
|
ZOOM = "viewer-zoom",
|
|
3
4
|
DRAW_MODE = "viewer-draw-mode",
|
|
4
5
|
EXPLODE = "viewer-explode",
|
|
@@ -28,10 +29,18 @@ declare enum ViewerMessageType {
|
|
|
28
29
|
TREE_SELECT_NODE = "viewer-tree-select-node",
|
|
29
30
|
TREE_GET_NODE_IDS = "viewer-tree-get-node-ids",
|
|
30
31
|
TREE_NODE_IDS = "viewer-tree-node-ids",
|
|
32
|
+
PDF_PLAN_MODE = "viewer-pdf-plan-mode",
|
|
33
|
+
PDF_DOCUMENT_MODE = "viewer-pdf-document-mode",
|
|
34
|
+
PDF_FIRST_PAGE = "viewer-pdf-first-page",
|
|
35
|
+
PDF_PREVIOUS_PAGE = "viewer-pdf-previous-page",
|
|
36
|
+
PDF_NEXT_PAGE = "viewer-pdf-next-page",
|
|
37
|
+
PDF_LAST_PAGE = "viewer-pdf-last-page",
|
|
38
|
+
PDF_CURRENT_PAGE = "viewer-pdf-current-page",
|
|
31
39
|
HOME_CLICK = "viewer-home-click",
|
|
32
40
|
NODE_SELECT = "viewer-node-select",
|
|
33
41
|
PAN_CHANGE = "viewer-pan-change"
|
|
34
42
|
}
|
|
43
|
+
type LanguageCode = "en" | "vn";
|
|
35
44
|
type MarkupAction = "line" | "arrow" | "circle" | "ellipse" | "rectangle" | "polygon" | "polyline" | "textbox" | "note" | "callout" | "cloud" | "freehand";
|
|
36
45
|
type MarkupOperationResultPayload = {
|
|
37
46
|
requestId: string;
|
|
@@ -57,6 +66,18 @@ type SheetListItem = {
|
|
|
57
66
|
is3D?: boolean;
|
|
58
67
|
viewId?: string;
|
|
59
68
|
};
|
|
69
|
+
type PdfModeEventPayload = {
|
|
70
|
+
mode: "plan" | "document";
|
|
71
|
+
timestamp: number;
|
|
72
|
+
};
|
|
73
|
+
type PdfToolbarActionEventPayload = {
|
|
74
|
+
timestamp: number;
|
|
75
|
+
};
|
|
76
|
+
type PdfCurrentPagePayload = {
|
|
77
|
+
pageIndex: number;
|
|
78
|
+
pageNumber: number;
|
|
79
|
+
timestamp: number;
|
|
80
|
+
};
|
|
60
81
|
|
|
61
82
|
type ViewerEventMap = {
|
|
62
83
|
"camera:home": {
|
|
@@ -69,6 +90,13 @@ type ViewerEventMap = {
|
|
|
69
90
|
"interaction:pan-change": {
|
|
70
91
|
enabled: boolean;
|
|
71
92
|
};
|
|
93
|
+
"toolbar:pdf-plan-mode": PdfModeEventPayload;
|
|
94
|
+
"toolbar:pdf-document-mode": PdfModeEventPayload;
|
|
95
|
+
"toolbar:pdf-first-page": PdfToolbarActionEventPayload;
|
|
96
|
+
"toolbar:pdf-previous-page": PdfToolbarActionEventPayload;
|
|
97
|
+
"toolbar:pdf-next-page": PdfToolbarActionEventPayload;
|
|
98
|
+
"toolbar:pdf-last-page": PdfToolbarActionEventPayload;
|
|
99
|
+
"toolbar:pdf-current-page": PdfCurrentPagePayload;
|
|
72
100
|
"modelTree:node-ids": {
|
|
73
101
|
requestId: string;
|
|
74
102
|
nodeIds: string[];
|
|
@@ -205,6 +233,9 @@ type FilesConfig = {
|
|
|
205
233
|
viewerPath?: string;
|
|
206
234
|
uploadPath?: string;
|
|
207
235
|
};
|
|
236
|
+
type ConvertOptions = {
|
|
237
|
+
downloadUrl?: string;
|
|
238
|
+
};
|
|
208
239
|
declare class FilesModule {
|
|
209
240
|
private viewer;
|
|
210
241
|
on: {
|
|
@@ -254,12 +285,12 @@ declare class FilesModule {
|
|
|
254
285
|
fileName: string;
|
|
255
286
|
baseFileId: string;
|
|
256
287
|
}>;
|
|
257
|
-
convert(file?: File): Promise<PreparedViewerData>;
|
|
258
|
-
prepare(file?: File): Promise<PreparedViewerData>;
|
|
288
|
+
convert(file?: File, options?: ConvertOptions): Promise<PreparedViewerData>;
|
|
289
|
+
prepare(file?: File, options?: ConvertOptions): Promise<PreparedViewerData>;
|
|
259
290
|
open(input: PreparedViewerData | {
|
|
260
291
|
url: string;
|
|
261
292
|
}): void;
|
|
262
|
-
render(file?: File): Promise<PreparedViewerData>;
|
|
293
|
+
render(file?: File, options?: ConvertOptions): Promise<PreparedViewerData>;
|
|
263
294
|
private resolveFile;
|
|
264
295
|
private normalizeBaseUrl;
|
|
265
296
|
private resolveBaseUrl;
|
|
@@ -285,6 +316,33 @@ type GetSheetsOptions = {
|
|
|
285
316
|
};
|
|
286
317
|
declare class ToolbarModule {
|
|
287
318
|
private viewer;
|
|
319
|
+
on: {
|
|
320
|
+
planMode: (cb: (payload: {
|
|
321
|
+
mode: "plan" | "document";
|
|
322
|
+
timestamp: number;
|
|
323
|
+
}) => void) => () => void;
|
|
324
|
+
documentMode: (cb: (payload: {
|
|
325
|
+
mode: "plan" | "document";
|
|
326
|
+
timestamp: number;
|
|
327
|
+
}) => void) => () => void;
|
|
328
|
+
firstPage: (cb: (payload: {
|
|
329
|
+
timestamp: number;
|
|
330
|
+
}) => void) => () => void;
|
|
331
|
+
previousPage: (cb: (payload: {
|
|
332
|
+
timestamp: number;
|
|
333
|
+
}) => void) => () => void;
|
|
334
|
+
nextPage: (cb: (payload: {
|
|
335
|
+
timestamp: number;
|
|
336
|
+
}) => void) => () => void;
|
|
337
|
+
lastPage: (cb: (payload: {
|
|
338
|
+
timestamp: number;
|
|
339
|
+
}) => void) => () => void;
|
|
340
|
+
currentPage: (cb: (payload: {
|
|
341
|
+
pageIndex: number;
|
|
342
|
+
pageNumber: number;
|
|
343
|
+
timestamp: number;
|
|
344
|
+
}) => void) => () => void;
|
|
345
|
+
};
|
|
288
346
|
constructor(viewer: Viewer3D);
|
|
289
347
|
setDisabled3D(operators: string[]): void;
|
|
290
348
|
setDisabledPdf(operators: string[]): void;
|
|
@@ -371,6 +429,13 @@ declare class MarkupModule {
|
|
|
371
429
|
private runRequest;
|
|
372
430
|
}
|
|
373
431
|
|
|
432
|
+
declare class LanguageModule {
|
|
433
|
+
private viewer;
|
|
434
|
+
constructor(viewer: Viewer3D);
|
|
435
|
+
change(language: LanguageCode): void;
|
|
436
|
+
set(language: LanguageCode): void;
|
|
437
|
+
}
|
|
438
|
+
|
|
374
439
|
type Viewer3DOptions = {
|
|
375
440
|
container: HTMLElement | string;
|
|
376
441
|
url?: string;
|
|
@@ -396,6 +461,7 @@ declare class Viewer3D {
|
|
|
396
461
|
toolbar: ToolbarModule;
|
|
397
462
|
modelTree: ModelTreeModule;
|
|
398
463
|
markup: MarkupModule;
|
|
464
|
+
language: LanguageModule;
|
|
399
465
|
constructor(options: Viewer3DOptions);
|
|
400
466
|
getOptions(): Viewer3DOptions;
|
|
401
467
|
patchOptions(next: Partial<Viewer3DOptions>): void;
|
|
@@ -412,4 +478,4 @@ declare class Viewer3D {
|
|
|
412
478
|
private handleMessage;
|
|
413
479
|
}
|
|
414
480
|
|
|
415
|
-
export { type FilesConfig, type LoadStage, type LoadStatePayload, type MarkupAction, type MarkupListItem, type MarkupOperationResultPayload, type PreparedViewerData, Viewer3D };
|
|
481
|
+
export { type ConvertOptions, type FilesConfig, type LanguageCode, type LoadStage, type LoadStatePayload, type MarkupAction, type MarkupListItem, type MarkupOperationResultPayload, type PreparedViewerData, Viewer3D };
|