@inweb/client 25.2.2 → 25.2.8
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/LICENSE +20 -20
- package/README.md +70 -70
- package/dist/client.js +12369 -11952
- package/dist/client.js.map +1 -1
- package/dist/client.min.js +1 -1
- package/dist/client.module.js +714 -235
- package/dist/client.module.js.map +1 -1
- package/lib/Api/Assembly.d.ts +338 -338
- package/lib/Api/ClashTest.d.ts +175 -175
- package/lib/Api/Client.d.ts +451 -451
- package/lib/Api/ClientEvents.d.ts +28 -28
- package/lib/Api/File.d.ts +567 -567
- package/lib/Api/HttpClient.d.ts +12 -12
- package/lib/Api/IAssembly.d.ts +13 -13
- package/lib/Api/IFile.d.ts +45 -45
- package/lib/Api/IHttpClient.d.ts +10 -10
- package/lib/Api/IUser.d.ts +10 -10
- package/lib/Api/Job.d.ts +141 -141
- package/lib/Api/Member.d.ts +84 -84
- package/lib/Api/Model.d.ts +146 -146
- package/lib/Api/Permission.d.ts +92 -92
- package/lib/Api/Project.d.ts +246 -246
- package/lib/Api/Role.d.ts +81 -81
- package/lib/Api/User.d.ts +196 -196
- package/lib/Api/impl/FetchError.d.ts +17 -17
- package/lib/Api/impl/Utils.d.ts +32 -32
- package/lib/Api/impl/http.d.ts +66 -66
- package/lib/ConvetMath.d.ts +28 -28
- package/lib/Viewer/CanvasEvents.d.ts +1 -1
- package/lib/Viewer/Commands/ApplyModelTransform.d.ts +1 -1
- package/lib/Viewer/Commands/ClearMarkup.d.ts +1 -1
- package/lib/Viewer/Commands/ClearSlices.d.ts +1 -1
- package/lib/Viewer/Commands/CreatePreview.d.ts +1 -1
- package/lib/Viewer/Commands/Explode.d.ts +1 -1
- package/lib/Viewer/Commands/GetDefaultViewPositions.d.ts +1 -1
- package/lib/Viewer/Commands/GetModels.d.ts +1 -1
- package/lib/Viewer/Commands/GetSelected.d.ts +1 -1
- package/lib/Viewer/Commands/HideSelected.d.ts +1 -1
- package/lib/Viewer/Commands/IsolateSelected.d.ts +1 -1
- package/lib/Viewer/Commands/RegenerateAll.d.ts +1 -1
- package/lib/Viewer/Commands/ResetView.d.ts +1 -1
- package/lib/Viewer/Commands/SelectModel.d.ts +1 -1
- package/lib/Viewer/Commands/SetActiveDragger.d.ts +1 -1
- package/lib/Viewer/Commands/SetDefaultViewPosition.d.ts +1 -1
- package/lib/Viewer/Commands/SetMarkupColor.d.ts +1 -1
- package/lib/Viewer/Commands/SetSelected.d.ts +1 -1
- package/lib/Viewer/Commands/ShowAll.d.ts +1 -1
- package/lib/Viewer/Commands/Unselect.d.ts +1 -1
- package/lib/Viewer/Commands/ZoomToExtents.d.ts +1 -1
- package/lib/Viewer/Commands/ZoomToObjects.d.ts +1 -1
- package/lib/Viewer/Commands/ZoomToSelected.d.ts +1 -1
- package/lib/Viewer/Commands.d.ts +2 -2
- package/lib/Viewer/Draggers/Actions/OrbitAction.d.ts +21 -21
- package/lib/Viewer/Draggers/Actions/PanAction.d.ts +17 -17
- package/lib/Viewer/Draggers/Actions/ZoomAction.d.ts +7 -7
- package/lib/Viewer/Draggers/Common/Geometry.d.ts +114 -114
- package/lib/Viewer/Draggers/Common/GestureManager.d.ts +40 -40
- package/lib/Viewer/Draggers/Common/OdBaseDragger.d.ts +53 -53
- package/lib/Viewer/Draggers/Common/OdaGeAction.d.ts +29 -29
- package/lib/Viewer/Draggers/MeasureLineDragger/MeasureLineItem.d.ts +30 -30
- package/lib/Viewer/Draggers/MeasureLineDragger/MeasureUtils.d.ts +19 -19
- package/lib/Viewer/Draggers/MeasureLineDragger/index.d.ts +23 -23
- package/lib/Viewer/Draggers/OdBaseCuttingPlaneDragger.d.ts +26 -26
- package/lib/Viewer/Draggers/OdCuttingPlaneXAxisDragger.d.ts +7 -7
- package/lib/Viewer/Draggers/OdCuttingPlaneYAxisDragger.d.ts +7 -7
- package/lib/Viewer/Draggers/OdCuttingPlaneZAxisDragger.d.ts +7 -7
- package/lib/Viewer/Draggers/OdOrbitDragger.d.ts +14 -14
- package/lib/Viewer/Draggers/OdPanDragger.d.ts +11 -11
- package/lib/Viewer/Draggers/OdZoomDragger.d.ts +11 -11
- package/lib/Viewer/Draggers/OdZoomWheelDragger.d.ts +10 -10
- package/lib/Viewer/Draggers/OdZoomWindowDragger/OdSelectionFrame.d.ts +18 -18
- package/lib/Viewer/Draggers/OdZoomWindowDragger/index.d.ts +13 -13
- package/lib/Viewer/Draggers/OdaLineDragger.d.ts +14 -14
- package/lib/Viewer/Draggers/OdaTextDragger.d.ts +15 -15
- package/lib/Viewer/Draggers/OdaWalkDragger.d.ts +29 -29
- package/lib/Viewer/Draggers/OrbitAroundBuildingDragger.d.ts +18 -18
- package/lib/Viewer/EventEmitter2.d.ts +53 -53
- package/lib/Viewer/ICommands.d.ts +24 -24
- package/lib/Viewer/IEventEmitter2.d.ts +12 -12
- package/lib/Viewer/IViewer.d.ts +28 -26
- package/lib/Viewer/Loaders/BaseLoader.d.ts +10 -10
- package/lib/Viewer/Loaders/LoaderFactory.d.ts +10 -9
- package/lib/Viewer/Loaders/TCSLoader.d.ts +4 -4
- package/lib/Viewer/Loaders/UpdaterController.d.ts +14 -14
- package/lib/Viewer/Loaders/VsfXLoader.d.ts +4 -4
- package/lib/Viewer/Loaders/VsfXPartialLoader.d.ts +4 -4
- package/lib/Viewer/Loaders/VsfXStreamingLoader.d.ts +5 -0
- package/lib/Viewer/Markup/Api/IMarkupArrow.d.ts +21 -11
- package/lib/Viewer/Markup/Api/IMarkupCloud.d.ts +15 -0
- package/lib/Viewer/Markup/Api/IMarkupColorable.d.ts +4 -4
- package/lib/Viewer/Markup/Api/IMarkupEllipse.d.ts +14 -14
- package/lib/Viewer/Markup/Api/IMarkupImage.d.ts +14 -14
- package/lib/Viewer/Markup/Api/IMarkupLine.d.ts +18 -10
- package/lib/Viewer/Markup/Api/IMarkupObject.d.ts +11 -11
- package/lib/Viewer/Markup/Api/IMarkupRectangle.d.ts +14 -14
- package/lib/Viewer/Markup/Api/IMarkupText.d.ts +12 -12
- package/lib/Viewer/Markup/Api/Impl/Konva/KonvaArrow.d.ts +46 -31
- package/lib/Viewer/Markup/Api/Impl/Konva/KonvaCloud.d.ts +36 -0
- package/lib/Viewer/Markup/Api/Impl/Konva/KonvaEllipse.d.ts +40 -39
- package/lib/Viewer/Markup/Api/Impl/Konva/KonvaImage.d.ts +36 -35
- package/lib/Viewer/Markup/Api/Impl/Konva/KonvaLine.d.ts +35 -31
- package/lib/Viewer/Markup/Api/Impl/Konva/KonvaRectangle.d.ts +38 -37
- package/lib/Viewer/Markup/Api/Impl/Konva/KonvaText.d.ts +37 -36
- package/lib/Viewer/Markup/IMarkup.d.ts +38 -37
- package/lib/Viewer/Markup/Impl/Konva/KonvaMarkup.d.ts +71 -62
- package/lib/Viewer/Markup/Impl/Konva/MarkupColor.d.ts +18 -18
- package/lib/Viewer/Markup/Impl/Visualize/VisualizeMarkup.d.ts +33 -32
- package/lib/Viewer/Markup/MarkupFactory.d.ts +6 -6
- package/lib/Viewer/Options.d.ts +238 -227
- package/lib/Viewer/OptionsEvents.d.ts +25 -25
- package/lib/Viewer/Viewer.d.ts +358 -352
- package/lib/Viewer/ViewerCommands.d.ts +22 -22
- package/lib/Viewer/ViewerEvents.d.ts +600 -600
- package/lib/Viewer/utils.d.ts +3 -3
- package/lib/index.d.ts +23 -23
- package/package.json +38 -32
- package/src/Api/Assembly.ts +678 -678
- package/src/Api/ClashTest.ts +290 -290
- package/src/Api/Client.ts +816 -816
- package/src/Api/ClientEvents.ts +31 -31
- package/src/Api/File.ts +962 -962
- package/src/Api/HttpClient.ts +73 -73
- package/src/Api/IAssembly.ts +37 -37
- package/src/Api/IFile.ts +74 -74
- package/src/Api/IHttpClient.ts +50 -50
- package/src/Api/IUser.ts +33 -33
- package/src/Api/Job.ts +253 -253
- package/src/Api/Member.ts +161 -161
- package/src/Api/Model.ts +259 -259
- package/src/Api/Permission.ts +173 -173
- package/src/Api/Project.ts +479 -479
- package/src/Api/Role.ts +158 -158
- package/src/Api/User.ts +357 -357
- package/src/Api/impl/FetchError.ts +48 -48
- package/src/Api/impl/Utils.ts +367 -367
- package/src/Api/impl/http.ts +92 -92
- package/src/ConvetMath.ts +372 -372
- package/src/Viewer/CanvasEvents.ts +41 -41
- package/src/Viewer/Commands/ApplyModelTransform.ts +70 -70
- package/src/Viewer/Commands/ClearMarkup.ts +28 -28
- package/src/Viewer/Commands/ClearSlices.ts +27 -27
- package/src/Viewer/Commands/CreatePreview.ts +33 -33
- package/src/Viewer/Commands/Explode.ts +38 -38
- package/src/Viewer/Commands/GetDefaultViewPositions.ts +36 -36
- package/src/Viewer/Commands/GetModels.ts +43 -43
- package/src/Viewer/Commands/GetSelected.ts +58 -58
- package/src/Viewer/Commands/HideSelected.ts +37 -37
- package/src/Viewer/Commands/IsolateSelected.ts +37 -37
- package/src/Viewer/Commands/RegenerateAll.ts +37 -37
- package/src/Viewer/Commands/ResetView.ts +43 -43
- package/src/Viewer/Commands/SelectModel.ts +52 -52
- package/src/Viewer/Commands/SetActiveDragger.ts +29 -29
- package/src/Viewer/Commands/SetDefaultViewPosition.ts +50 -50
- package/src/Viewer/Commands/SetMarkupColor.ts +29 -29
- package/src/Viewer/Commands/SetSelected.ts +47 -47
- package/src/Viewer/Commands/ShowAll.ts +37 -37
- package/src/Viewer/Commands/Unselect.ts +37 -37
- package/src/Viewer/Commands/ZoomToExtents.ts +43 -43
- package/src/Viewer/Commands/ZoomToObjects.ts +47 -47
- package/src/Viewer/Commands/ZoomToSelected.ts +39 -39
- package/src/Viewer/Commands.ts +81 -81
- package/src/Viewer/Draggers/Actions/OrbitAction.ts +250 -250
- package/src/Viewer/Draggers/Actions/PanAction.ts +102 -102
- package/src/Viewer/Draggers/Actions/ZoomAction.ts +45 -45
- package/src/Viewer/Draggers/Common/Geometry.ts +152 -152
- package/src/Viewer/Draggers/Common/GestureManager.ts +263 -263
- package/src/Viewer/Draggers/Common/OdBaseDragger.ts +270 -270
- package/src/Viewer/Draggers/Common/OdaGeAction.ts +146 -146
- package/src/Viewer/Draggers/MeasureLineDragger/MeasureLineItem.ts +248 -248
- package/src/Viewer/Draggers/MeasureLineDragger/MeasureUtils.ts +182 -182
- package/src/Viewer/Draggers/MeasureLineDragger/index.ts +166 -166
- package/src/Viewer/Draggers/OdBaseCuttingPlaneDragger.ts +182 -182
- package/src/Viewer/Draggers/OdCuttingPlaneXAxisDragger.ts +53 -53
- package/src/Viewer/Draggers/OdCuttingPlaneYAxisDragger.ts +53 -53
- package/src/Viewer/Draggers/OdCuttingPlaneZAxisDragger.ts +53 -53
- package/src/Viewer/Draggers/OdOrbitDragger.ts +70 -70
- package/src/Viewer/Draggers/OdPanDragger.ts +62 -62
- package/src/Viewer/Draggers/OdZoomDragger.ts +59 -59
- package/src/Viewer/Draggers/OdZoomWheelDragger.ts +103 -103
- package/src/Viewer/Draggers/OdZoomWindowDragger/OdSelectionFrame.ts +123 -123
- package/src/Viewer/Draggers/OdZoomWindowDragger/index.ts +75 -75
- package/src/Viewer/Draggers/OdaLineDragger.ts +80 -80
- package/src/Viewer/Draggers/OdaTextDragger.ts +118 -118
- package/src/Viewer/Draggers/OdaWalkDragger.ts +278 -278
- package/src/Viewer/Draggers/OrbitAroundBuildingDragger.ts +184 -184
- package/src/Viewer/EventEmitter2.ts +116 -116
- package/src/Viewer/ICommands.ts +53 -53
- package/src/Viewer/IEventEmitter2.ts +36 -36
- package/src/Viewer/IViewer.ts +58 -55
- package/src/Viewer/Loaders/BaseLoader.ts +40 -40
- package/src/Viewer/Loaders/LoaderFactory.ts +47 -44
- package/src/Viewer/Loaders/TCSLoader.ts +82 -82
- package/src/Viewer/Loaders/UpdaterController.ts +36 -36
- package/src/Viewer/Loaders/VsfXLoader.ts +65 -87
- package/src/Viewer/Loaders/VsfXPartialLoader.ts +208 -208
- package/src/Viewer/Loaders/VsfXStreamingLoader.ts +87 -0
- package/src/Viewer/Markup/Api/IMarkupArrow.ts +12 -15
- package/src/Viewer/Markup/Api/IMarkupCloud.ts +15 -0
- package/src/Viewer/Markup/Api/IMarkupColorable.ts +4 -4
- package/src/Viewer/Markup/Api/IMarkupEllipse.ts +15 -15
- package/src/Viewer/Markup/Api/IMarkupImage.ts +15 -15
- package/src/Viewer/Markup/Api/IMarkupLine.ts +20 -10
- package/src/Viewer/Markup/Api/IMarkupObject.ts +15 -15
- package/src/Viewer/Markup/Api/IMarkupRectangle.ts +15 -15
- package/src/Viewer/Markup/Api/IMarkupText.ts +12 -12
- package/src/Viewer/Markup/Api/Impl/Konva/KonvaArrow.ts +117 -119
- package/src/Viewer/Markup/Api/Impl/Konva/KonvaCloud.ts +208 -0
- package/src/Viewer/Markup/Api/Impl/Konva/KonvaEllipse.ts +118 -113
- package/src/Viewer/Markup/Api/Impl/Konva/KonvaImage.ts +123 -121
- package/src/Viewer/Markup/Api/Impl/Konva/KonvaLine.ts +130 -99
- package/src/Viewer/Markup/Api/Impl/Konva/KonvaRectangle.ts +119 -113
- package/src/Viewer/Markup/Api/Impl/Konva/KonvaText.ts +110 -104
- package/src/Viewer/Markup/IMarkup.ts +40 -39
- package/src/Viewer/Markup/Impl/Konva/KonvaMarkup.ts +1144 -872
- package/src/Viewer/Markup/Impl/Konva/MarkupColor.ts +39 -39
- package/src/Viewer/Markup/Impl/Visualize/VisualizeMarkup.ts +231 -273
- package/src/Viewer/Markup/MarkupFactory.ts +32 -32
- package/src/Viewer/Options.ts +522 -502
- package/src/Viewer/OptionsEvents.ts +28 -28
- package/src/Viewer/Viewer.ts +1191 -1109
- package/src/Viewer/ViewerCommands.ts +45 -45
- package/src/Viewer/ViewerEvents.ts +700 -700
- package/src/Viewer/utils.ts +74 -74
- package/src/index.ts +48 -48
package/src/Api/Job.ts
CHANGED
|
@@ -1,253 +1,253 @@
|
|
|
1
|
-
///////////////////////////////////////////////////////////////////////////////
|
|
2
|
-
// Copyright (C) 2002-2021, Open Design Alliance (the "Alliance").
|
|
3
|
-
// All rights reserved.
|
|
4
|
-
//
|
|
5
|
-
// This software and its documentation and related materials are owned by
|
|
6
|
-
// the Alliance. The software may only be incorporated into application
|
|
7
|
-
// programs owned by members of the Alliance, subject to a signed
|
|
8
|
-
// Membership Agreement and Supplemental Software License Agreement with the
|
|
9
|
-
// Alliance. The structure and organization of this software are the valuable
|
|
10
|
-
// trade secrets of the Alliance and its suppliers. The software is also
|
|
11
|
-
// protected by copyright law and international treaty provisions. Application
|
|
12
|
-
// programs incorporating this software must include the following statement
|
|
13
|
-
// with their copyright notices:
|
|
14
|
-
//
|
|
15
|
-
// This application incorporates Open Design Alliance software pursuant to a
|
|
16
|
-
// license agreement with Open Design Alliance.
|
|
17
|
-
// Open Design Alliance Copyright (C) 2002-2021 by Open Design Alliance.
|
|
18
|
-
// All rights reserved.
|
|
19
|
-
//
|
|
20
|
-
// By use of this software, its documentation or related materials, you
|
|
21
|
-
// acknowledge and accept the above terms.
|
|
22
|
-
///////////////////////////////////////////////////////////////////////////////
|
|
23
|
-
|
|
24
|
-
import { IHttpClient } from "./IHttpClient";
|
|
25
|
-
import { json, waitFor } from "./impl/Utils";
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
* The class representing a `job` entity describes the process of converting a file from one
|
|
29
|
-
* format to another, to obtain geometric data, validate the file, or run a clash test.
|
|
30
|
-
*/
|
|
31
|
-
export class Job {
|
|
32
|
-
private _data: any;
|
|
33
|
-
protected httpClient: IHttpClient;
|
|
34
|
-
|
|
35
|
-
/**
|
|
36
|
-
* @param data - An object that implements job data storage.
|
|
37
|
-
* @param httpClient - Http client.
|
|
38
|
-
*/
|
|
39
|
-
constructor(data: any, httpClient: IHttpClient) {
|
|
40
|
-
this.httpClient = httpClient;
|
|
41
|
-
this.data = data;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
protected internalGet() {
|
|
45
|
-
return this.httpClient.get(`/jobs/${this.data.id}`);
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
protected internalPut(body?: ArrayBuffer | Blob | globalThis.File | FormData | object | string | null) {
|
|
49
|
-
return this.httpClient.put(`/jobs/${this.data.id}`, body);
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
protected internalDelete() {
|
|
53
|
-
return this.httpClient.delete(`/jobs/${this.data.id}`);
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
/**
|
|
57
|
-
* The ID of the assembly the job is working on (internal).
|
|
58
|
-
*
|
|
59
|
-
* @readonly
|
|
60
|
-
*/
|
|
61
|
-
get assemblyId(): string {
|
|
62
|
-
return this.data.assemblyId;
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
/**
|
|
66
|
-
* Job creator ID. Use {@link Client#getUser | Client.getUser()} to obtain detailed creator information.
|
|
67
|
-
*
|
|
68
|
-
* @readonly
|
|
69
|
-
*/
|
|
70
|
-
get authorId(): string {
|
|
71
|
-
return this.data.authorId;
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
/**
|
|
75
|
-
* Job creation time (UTC) in the format specified in <a
|
|
76
|
-
* href="https://www.wikipedia.org/wiki/ISO_8601" target="_blank">ISO 8601</a>.
|
|
77
|
-
*
|
|
78
|
-
* @readonly
|
|
79
|
-
*/
|
|
80
|
-
get createdAt(): string {
|
|
81
|
-
return this.data.createdAt;
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
/**
|
|
85
|
-
* Raw job data received from the server.
|
|
86
|
-
*
|
|
87
|
-
* @readonly
|
|
88
|
-
*/
|
|
89
|
-
get data(): any {
|
|
90
|
-
return this._data;
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
private set data(value: any) {
|
|
94
|
-
this._data = value;
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
/**
|
|
98
|
-
* `true` if job is `done` or `failed`. See {@link Job#status | status} for more details.
|
|
99
|
-
*
|
|
100
|
-
* @readonly
|
|
101
|
-
*/
|
|
102
|
-
get done(): boolean {
|
|
103
|
-
return this.data.status === "done" || this.data.status === "failed";
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
/**
|
|
107
|
-
* The ID of the file the job is working on.
|
|
108
|
-
*
|
|
109
|
-
* @readonly
|
|
110
|
-
*/
|
|
111
|
-
get fileId(): string {
|
|
112
|
-
return this.data.fileId;
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
/**
|
|
116
|
-
* Unique job ID.
|
|
117
|
-
*
|
|
118
|
-
* @readonly
|
|
119
|
-
*/
|
|
120
|
-
get id(): string {
|
|
121
|
-
return this.data.id;
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
/**
|
|
125
|
-
* Job last update (UTC) time in the format specified in <a
|
|
126
|
-
* href="https://www.wikipedia.org/wiki/ISO_8601" target="_blank">ISO 8601</a>.
|
|
127
|
-
*
|
|
128
|
-
* @readonly
|
|
129
|
-
*/
|
|
130
|
-
get lastUpdate(): string {
|
|
131
|
-
return this.data.lastUpdate;
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
/**
|
|
135
|
-
* Job type. Can be `properties`, `geomerty`, `geomertyGltf`, `validation`, `clash`, `dwg`,
|
|
136
|
-
* `obj`, `gltf`, `glb`, `vsf`, `pdf` or `3dpdf`.
|
|
137
|
-
*
|
|
138
|
-
* @readonly
|
|
139
|
-
*/
|
|
140
|
-
get outputFormat(): string {
|
|
141
|
-
return this.data.outputFormat;
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
/**
|
|
145
|
-
* Parameters for the job runner.
|
|
146
|
-
*
|
|
147
|
-
* @readonly
|
|
148
|
-
*/
|
|
149
|
-
get parameters(): any {
|
|
150
|
-
return this.data.parameters;
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
/**
|
|
154
|
-
* Job status. Can be `waiting`, `inprogress`, `done` or `failed`.
|
|
155
|
-
*
|
|
156
|
-
* @readonly
|
|
157
|
-
*/
|
|
158
|
-
get status(): string {
|
|
159
|
-
return this.data.status;
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
/**
|
|
163
|
-
* Job status description message.
|
|
164
|
-
*
|
|
165
|
-
* @readonly
|
|
166
|
-
*/
|
|
167
|
-
get statusMessage(): string {
|
|
168
|
-
return this.data.statusMessage;
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
/**
|
|
172
|
-
* Job starting time (UTC) in the format specified in <a
|
|
173
|
-
* href="https://www.wikipedia.org/wiki/ISO_8601" target="_blank">ISO 8601</a>.
|
|
174
|
-
*
|
|
175
|
-
* @readonly
|
|
176
|
-
*/
|
|
177
|
-
get startedAt(): string {
|
|
178
|
-
return this.data.startedAt;
|
|
179
|
-
}
|
|
180
|
-
|
|
181
|
-
/**
|
|
182
|
-
* Refresh job data.
|
|
183
|
-
*
|
|
184
|
-
* @async
|
|
185
|
-
*/
|
|
186
|
-
async checkout(): Promise<Job> {
|
|
187
|
-
this.data = await json(this.internalGet());
|
|
188
|
-
return this;
|
|
189
|
-
}
|
|
190
|
-
|
|
191
|
-
/**
|
|
192
|
-
* Update job data on the server. Only admins can update job data.
|
|
193
|
-
*
|
|
194
|
-
* @async
|
|
195
|
-
* @param data - Raw job data.
|
|
196
|
-
*/
|
|
197
|
-
async update(data: any): Promise<Job> {
|
|
198
|
-
this.data = await json(this.internalPut(data));
|
|
199
|
-
return this;
|
|
200
|
-
}
|
|
201
|
-
|
|
202
|
-
/**
|
|
203
|
-
* Remove a job from the server job list. Jobs that are in progress or have already been
|
|
204
|
-
* completed cannot be deleted.
|
|
205
|
-
*
|
|
206
|
-
* @async
|
|
207
|
-
* @returns Returns the raw data of a deleted job.
|
|
208
|
-
*/
|
|
209
|
-
delete(): Promise<any> {
|
|
210
|
-
return json(this.internalDelete());
|
|
211
|
-
}
|
|
212
|
-
|
|
213
|
-
// /**
|
|
214
|
-
// * Save job data changes to the server. Call this method to update job data on the server
|
|
215
|
-
// * after any changes.
|
|
216
|
-
// *
|
|
217
|
-
// * @async
|
|
218
|
-
// * @returns {Promise<Job>}
|
|
219
|
-
// */
|
|
220
|
-
// save() {
|
|
221
|
-
// return this.update(this.data);
|
|
222
|
-
// }
|
|
223
|
-
|
|
224
|
-
/**
|
|
225
|
-
* Wait for job to be done. Job is done when it changes to `done` or `failed` status.
|
|
226
|
-
*
|
|
227
|
-
* @async
|
|
228
|
-
* @param params - An object containing waiting parameters.
|
|
229
|
-
* @param params.timeout - The time, in milliseconds that the function should wait job. If
|
|
230
|
-
* jobs is not done during this time, the `TimeoutError` exception will be thrown.
|
|
231
|
-
* @param params.interval - The time, in milliseconds, the function should delay in between
|
|
232
|
-
* checking job status.
|
|
233
|
-
* @param params.signal- An <a
|
|
234
|
-
* href="https://developer.mozilla.org/docs/Web/API/AbortController">AbortController</a>
|
|
235
|
-
* signal object instance, which can be used to abort waiting as desired.
|
|
236
|
-
* @param params.onCheckout - Waiting progress callback. Return `true` to cancel waiting.
|
|
237
|
-
*/
|
|
238
|
-
waitForDone(params?: {
|
|
239
|
-
timeout?: number;
|
|
240
|
-
interval?: number;
|
|
241
|
-
signal?: AbortSignal;
|
|
242
|
-
onCheckout?: (job: Job, ready: boolean) => boolean;
|
|
243
|
-
}): Promise<Job> {
|
|
244
|
-
const checkDone = () =>
|
|
245
|
-
this.checkout().then((job) => {
|
|
246
|
-
const ready = ["done", "failed"].includes(job.status);
|
|
247
|
-
const cancel = params?.onCheckout?.(job, ready);
|
|
248
|
-
return cancel || ready;
|
|
249
|
-
});
|
|
250
|
-
|
|
251
|
-
return waitFor(checkDone, params).then(() => this);
|
|
252
|
-
}
|
|
253
|
-
}
|
|
1
|
+
///////////////////////////////////////////////////////////////////////////////
|
|
2
|
+
// Copyright (C) 2002-2021, Open Design Alliance (the "Alliance").
|
|
3
|
+
// All rights reserved.
|
|
4
|
+
//
|
|
5
|
+
// This software and its documentation and related materials are owned by
|
|
6
|
+
// the Alliance. The software may only be incorporated into application
|
|
7
|
+
// programs owned by members of the Alliance, subject to a signed
|
|
8
|
+
// Membership Agreement and Supplemental Software License Agreement with the
|
|
9
|
+
// Alliance. The structure and organization of this software are the valuable
|
|
10
|
+
// trade secrets of the Alliance and its suppliers. The software is also
|
|
11
|
+
// protected by copyright law and international treaty provisions. Application
|
|
12
|
+
// programs incorporating this software must include the following statement
|
|
13
|
+
// with their copyright notices:
|
|
14
|
+
//
|
|
15
|
+
// This application incorporates Open Design Alliance software pursuant to a
|
|
16
|
+
// license agreement with Open Design Alliance.
|
|
17
|
+
// Open Design Alliance Copyright (C) 2002-2021 by Open Design Alliance.
|
|
18
|
+
// All rights reserved.
|
|
19
|
+
//
|
|
20
|
+
// By use of this software, its documentation or related materials, you
|
|
21
|
+
// acknowledge and accept the above terms.
|
|
22
|
+
///////////////////////////////////////////////////////////////////////////////
|
|
23
|
+
|
|
24
|
+
import { IHttpClient } from "./IHttpClient";
|
|
25
|
+
import { json, waitFor } from "./impl/Utils";
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* The class representing a `job` entity describes the process of converting a file from one
|
|
29
|
+
* format to another, to obtain geometric data, validate the file, or run a clash test.
|
|
30
|
+
*/
|
|
31
|
+
export class Job {
|
|
32
|
+
private _data: any;
|
|
33
|
+
protected httpClient: IHttpClient;
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* @param data - An object that implements job data storage.
|
|
37
|
+
* @param httpClient - Http client.
|
|
38
|
+
*/
|
|
39
|
+
constructor(data: any, httpClient: IHttpClient) {
|
|
40
|
+
this.httpClient = httpClient;
|
|
41
|
+
this.data = data;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
protected internalGet() {
|
|
45
|
+
return this.httpClient.get(`/jobs/${this.data.id}`);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
protected internalPut(body?: ArrayBuffer | Blob | globalThis.File | FormData | object | string | null) {
|
|
49
|
+
return this.httpClient.put(`/jobs/${this.data.id}`, body);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
protected internalDelete() {
|
|
53
|
+
return this.httpClient.delete(`/jobs/${this.data.id}`);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* The ID of the assembly the job is working on (internal).
|
|
58
|
+
*
|
|
59
|
+
* @readonly
|
|
60
|
+
*/
|
|
61
|
+
get assemblyId(): string {
|
|
62
|
+
return this.data.assemblyId;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* Job creator ID. Use {@link Client#getUser | Client.getUser()} to obtain detailed creator information.
|
|
67
|
+
*
|
|
68
|
+
* @readonly
|
|
69
|
+
*/
|
|
70
|
+
get authorId(): string {
|
|
71
|
+
return this.data.authorId;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* Job creation time (UTC) in the format specified in <a
|
|
76
|
+
* href="https://www.wikipedia.org/wiki/ISO_8601" target="_blank">ISO 8601</a>.
|
|
77
|
+
*
|
|
78
|
+
* @readonly
|
|
79
|
+
*/
|
|
80
|
+
get createdAt(): string {
|
|
81
|
+
return this.data.createdAt;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* Raw job data received from the server.
|
|
86
|
+
*
|
|
87
|
+
* @readonly
|
|
88
|
+
*/
|
|
89
|
+
get data(): any {
|
|
90
|
+
return this._data;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
private set data(value: any) {
|
|
94
|
+
this._data = value;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* `true` if job is `done` or `failed`. See {@link Job#status | status} for more details.
|
|
99
|
+
*
|
|
100
|
+
* @readonly
|
|
101
|
+
*/
|
|
102
|
+
get done(): boolean {
|
|
103
|
+
return this.data.status === "done" || this.data.status === "failed";
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
/**
|
|
107
|
+
* The ID of the file the job is working on.
|
|
108
|
+
*
|
|
109
|
+
* @readonly
|
|
110
|
+
*/
|
|
111
|
+
get fileId(): string {
|
|
112
|
+
return this.data.fileId;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
/**
|
|
116
|
+
* Unique job ID.
|
|
117
|
+
*
|
|
118
|
+
* @readonly
|
|
119
|
+
*/
|
|
120
|
+
get id(): string {
|
|
121
|
+
return this.data.id;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
/**
|
|
125
|
+
* Job last update (UTC) time in the format specified in <a
|
|
126
|
+
* href="https://www.wikipedia.org/wiki/ISO_8601" target="_blank">ISO 8601</a>.
|
|
127
|
+
*
|
|
128
|
+
* @readonly
|
|
129
|
+
*/
|
|
130
|
+
get lastUpdate(): string {
|
|
131
|
+
return this.data.lastUpdate;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
/**
|
|
135
|
+
* Job type. Can be `properties`, `geomerty`, `geomertyGltf`, `validation`, `clash`, `dwg`,
|
|
136
|
+
* `obj`, `gltf`, `glb`, `vsf`, `pdf` or `3dpdf`.
|
|
137
|
+
*
|
|
138
|
+
* @readonly
|
|
139
|
+
*/
|
|
140
|
+
get outputFormat(): string {
|
|
141
|
+
return this.data.outputFormat;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
/**
|
|
145
|
+
* Parameters for the job runner.
|
|
146
|
+
*
|
|
147
|
+
* @readonly
|
|
148
|
+
*/
|
|
149
|
+
get parameters(): any {
|
|
150
|
+
return this.data.parameters;
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
/**
|
|
154
|
+
* Job status. Can be `waiting`, `inprogress`, `done` or `failed`.
|
|
155
|
+
*
|
|
156
|
+
* @readonly
|
|
157
|
+
*/
|
|
158
|
+
get status(): string {
|
|
159
|
+
return this.data.status;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
/**
|
|
163
|
+
* Job status description message.
|
|
164
|
+
*
|
|
165
|
+
* @readonly
|
|
166
|
+
*/
|
|
167
|
+
get statusMessage(): string {
|
|
168
|
+
return this.data.statusMessage;
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
/**
|
|
172
|
+
* Job starting time (UTC) in the format specified in <a
|
|
173
|
+
* href="https://www.wikipedia.org/wiki/ISO_8601" target="_blank">ISO 8601</a>.
|
|
174
|
+
*
|
|
175
|
+
* @readonly
|
|
176
|
+
*/
|
|
177
|
+
get startedAt(): string {
|
|
178
|
+
return this.data.startedAt;
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
/**
|
|
182
|
+
* Refresh job data.
|
|
183
|
+
*
|
|
184
|
+
* @async
|
|
185
|
+
*/
|
|
186
|
+
async checkout(): Promise<Job> {
|
|
187
|
+
this.data = await json(this.internalGet());
|
|
188
|
+
return this;
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
/**
|
|
192
|
+
* Update job data on the server. Only admins can update job data.
|
|
193
|
+
*
|
|
194
|
+
* @async
|
|
195
|
+
* @param data - Raw job data.
|
|
196
|
+
*/
|
|
197
|
+
async update(data: any): Promise<Job> {
|
|
198
|
+
this.data = await json(this.internalPut(data));
|
|
199
|
+
return this;
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
/**
|
|
203
|
+
* Remove a job from the server job list. Jobs that are in progress or have already been
|
|
204
|
+
* completed cannot be deleted.
|
|
205
|
+
*
|
|
206
|
+
* @async
|
|
207
|
+
* @returns Returns the raw data of a deleted job.
|
|
208
|
+
*/
|
|
209
|
+
delete(): Promise<any> {
|
|
210
|
+
return json(this.internalDelete());
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
// /**
|
|
214
|
+
// * Save job data changes to the server. Call this method to update job data on the server
|
|
215
|
+
// * after any changes.
|
|
216
|
+
// *
|
|
217
|
+
// * @async
|
|
218
|
+
// * @returns {Promise<Job>}
|
|
219
|
+
// */
|
|
220
|
+
// save() {
|
|
221
|
+
// return this.update(this.data);
|
|
222
|
+
// }
|
|
223
|
+
|
|
224
|
+
/**
|
|
225
|
+
* Wait for job to be done. Job is done when it changes to `done` or `failed` status.
|
|
226
|
+
*
|
|
227
|
+
* @async
|
|
228
|
+
* @param params - An object containing waiting parameters.
|
|
229
|
+
* @param params.timeout - The time, in milliseconds that the function should wait job. If
|
|
230
|
+
* jobs is not done during this time, the `TimeoutError` exception will be thrown.
|
|
231
|
+
* @param params.interval - The time, in milliseconds, the function should delay in between
|
|
232
|
+
* checking job status.
|
|
233
|
+
* @param params.signal- An <a
|
|
234
|
+
* href="https://developer.mozilla.org/docs/Web/API/AbortController">AbortController</a>
|
|
235
|
+
* signal object instance, which can be used to abort waiting as desired.
|
|
236
|
+
* @param params.onCheckout - Waiting progress callback. Return `true` to cancel waiting.
|
|
237
|
+
*/
|
|
238
|
+
waitForDone(params?: {
|
|
239
|
+
timeout?: number;
|
|
240
|
+
interval?: number;
|
|
241
|
+
signal?: AbortSignal;
|
|
242
|
+
onCheckout?: (job: Job, ready: boolean) => boolean;
|
|
243
|
+
}): Promise<Job> {
|
|
244
|
+
const checkDone = () =>
|
|
245
|
+
this.checkout().then((job) => {
|
|
246
|
+
const ready = ["done", "failed"].includes(job.status);
|
|
247
|
+
const cancel = params?.onCheckout?.(job, ready);
|
|
248
|
+
return cancel || ready;
|
|
249
|
+
});
|
|
250
|
+
|
|
251
|
+
return waitFor(checkDone, params).then(() => this);
|
|
252
|
+
}
|
|
253
|
+
}
|