widget-common-container 0.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (87) hide show
  1. package/.angular/cache/19.2.26/ng-packagr/0997d7866dbb7999756bcd6dce071e827244865f4ff149c26d049d1515686b01 +1 -0
  2. package/.angular/cache/19.2.26/ng-packagr/882519e10fb587011272af89a34932495c0e2cc97d0c030536d1033ee55ce561 +1 -0
  3. package/.angular/cache/19.2.26/ng-packagr/8b15b546ec32b4e82b20945f62d23ba911050bdc6a4a60d34875eea6fe236635 +1 -0
  4. package/.angular/cache/19.2.26/ng-packagr/9711df1afdc00e2ac901d2b22d9559a220e74d16c0bf6d3917e410c565aed496 +1 -0
  5. package/.angular/cache/19.2.26/ng-packagr/tsbuildinfo/inspark-widget-common.tsbuildinfo +1 -0
  6. package/.editorconfig +13 -0
  7. package/.eslintrc.json +28 -0
  8. package/README.md +27 -0
  9. package/angular.json +46 -0
  10. package/e2e/protractor.conf.js +28 -0
  11. package/e2e/src/app.e2e-spec.ts +14 -0
  12. package/e2e/src/app.po.ts +11 -0
  13. package/e2e/tsconfig.e2e.json +13 -0
  14. package/package.json +75 -0
  15. package/projects/widget-common/copy.json +8 -0
  16. package/projects/widget-common/karma.conf.js +31 -0
  17. package/projects/widget-common/ng-package.json +7 -0
  18. package/projects/widget-common/package-lock.json +78 -0
  19. package/projects/widget-common/package.json +23 -0
  20. package/projects/widget-common/src/assets/error.svg +6 -0
  21. package/projects/widget-common/src/assets/falsevalue.svg +6 -0
  22. package/projects/widget-common/src/assets/icon.svg +6 -0
  23. package/projects/widget-common/src/assets/none.svg +6 -0
  24. package/projects/widget-common/src/assets/success.svg +6 -0
  25. package/projects/widget-common/src/assets/warning.svg +6 -0
  26. package/projects/widget-common/src/lib/common.ts +23 -0
  27. package/projects/widget-common/src/lib/communication.service.ts +59 -0
  28. package/projects/widget-common/src/lib/echart/echart.component.html +2 -0
  29. package/projects/widget-common/src/lib/echart/echart.component.scss +40 -0
  30. package/projects/widget-common/src/lib/echart/echart.component.ts +703 -0
  31. package/projects/widget-common/src/lib/echart/en.ts +156 -0
  32. package/projects/widget-common/src/lib/echart/ru.ts +156 -0
  33. package/projects/widget-common/src/lib/forge/ParamAssign.ts +187 -0
  34. package/projects/widget-common/src/lib/forge/Script.service.ts +86 -0
  35. package/projects/widget-common/src/lib/forge/extenstion.ts +263 -0
  36. package/projects/widget-common/src/lib/forge/forge.component.html +2 -0
  37. package/projects/widget-common/src/lib/forge/forge.component.scss +6 -0
  38. package/projects/widget-common/src/lib/forge/forge.component.ts +184 -0
  39. package/projects/widget-common/src/lib/forge/forge.interface.ts +4 -0
  40. package/projects/widget-common/src/lib/loader.ts +19 -0
  41. package/projects/widget-common/src/lib/pie-chart/pie-chart.component.html +1 -0
  42. package/projects/widget-common/src/lib/pie-chart/pie-chart.component.scss +3 -0
  43. package/projects/widget-common/src/lib/pie-chart/pie-chart.component.ts +252 -0
  44. package/projects/widget-common/src/lib/shared.module.ts +40 -0
  45. package/projects/widget-common/src/lib/sprintf.ts +212 -0
  46. package/projects/widget-common/src/lib/widget-container/widget-container.component.ts +53 -0
  47. package/projects/widget-common/src/lib/widget.api.ts +24 -0
  48. package/projects/widget-common/src/lib/widget.component.ts +87 -0
  49. package/projects/widget-common/src/lib/widget.dialog.ts +14 -0
  50. package/projects/widget-common/src/lib/widget.generator.ts +1532 -0
  51. package/projects/widget-common/src/lib/widget.interface.ts +871 -0
  52. package/projects/widget-common/src/lib/widget.utils.ts +634 -0
  53. package/projects/widget-common/src/public_api.ts +9 -0
  54. package/projects/widget-common/src/scss/main.scss +24 -0
  55. package/projects/widget-common/src/test.ts +22 -0
  56. package/projects/widget-common/tsconfig.lib.json +38 -0
  57. package/projects/widget-common/tsconfig.lib.prod.json +6 -0
  58. package/projects/widget-common/tsconfig.spec.json +17 -0
  59. package/projects/widget-common/tslint.json +17 -0
  60. package/projects/widget-common/versions/full/copy.json +15 -0
  61. package/projects/widget-common/versions/full/package.json +7 -0
  62. package/projects/widget-common/versions/full/public_api.ts +19 -0
  63. package/projects/widget-common/versions/interfaces/copy.json +15 -0
  64. package/projects/widget-common/versions/interfaces/package.json +7 -0
  65. package/projects/widget-common/versions/interfaces/public_api.ts +9 -0
  66. package/src/app/app.component.html +20 -0
  67. package/src/app/app.component.scss +0 -0
  68. package/src/app/app.component.spec.ts +31 -0
  69. package/src/app/app.component.ts +10 -0
  70. package/src/app/app.module.ts +16 -0
  71. package/src/assets/.gitkeep +0 -0
  72. package/src/browserslist +11 -0
  73. package/src/environments/environment.prod.ts +3 -0
  74. package/src/environments/environment.ts +16 -0
  75. package/src/favicon.ico +0 -0
  76. package/src/index.html +14 -0
  77. package/src/karma.conf.js +31 -0
  78. package/src/main.ts +12 -0
  79. package/src/polyfills.ts +80 -0
  80. package/src/styles.scss +1 -0
  81. package/src/test.ts +20 -0
  82. package/src/tsconfig.app.json +11 -0
  83. package/src/tsconfig.spec.json +18 -0
  84. package/src/tslint.json +17 -0
  85. package/tsconfig.json +34 -0
  86. package/tslint.json +131 -0
  87. package/update_full.js +27 -0
@@ -0,0 +1,263 @@
1
+ /// <reference types="forge-viewer" />
2
+ export abstract class ViewerEventArgs {
3
+ target?: Autodesk.Viewing.Viewer3D;
4
+ model?: Autodesk.Viewing.ViewerItem;
5
+ type: string;
6
+ [key: string]: any;
7
+ }
8
+ export class AggregationSelectionChangedEventArgs extends ViewerEventArgs {
9
+ selections: Autodesk.Viewing.ViewerItem[];
10
+ type = Autodesk.Viewing.AGGREGATE_SELECTION_CHANGED_EVENT;
11
+ }
12
+ export class AnimationReadyEventArgs extends ViewerEventArgs {
13
+ type = Autodesk.Viewing.ANIMATION_READY_EVENT;
14
+ }
15
+ export class CameraChangedEventArgs extends ViewerEventArgs {
16
+ camera: THREE.Camera;
17
+ type = Autodesk.Viewing.CAMERA_CHANGE_EVENT;
18
+ }
19
+ export class CutplanesChangedEventArgs extends ViewerEventArgs {
20
+ cutplanes: Object[];
21
+ type = Autodesk.Viewing.CUTPLANES_CHANGE_EVENT;
22
+ }
23
+ export class EscapeEventArgs extends ViewerEventArgs {
24
+ type = Autodesk.Viewing.ESCAPE_EVENT;
25
+ }
26
+ export class ExplodeChangedEventArgs extends ViewerEventArgs {
27
+ scale: number;
28
+ type = Autodesk.Viewing.EXPLODE_CHANGE_EVENT;
29
+ }
30
+ export abstract class ExtensionLoadedUnloadedEventArgs extends ViewerEventArgs {
31
+ extensionId: string;
32
+ }
33
+ export class ExtensionLoadedEventArgs extends ExtensionLoadedUnloadedEventArgs {
34
+ type = Autodesk.Viewing.EXTENSION_LOADED_EVENT;
35
+ }
36
+ export class ExtensionUnloadedEventArgs extends ExtensionLoadedUnloadedEventArgs {
37
+ type = Autodesk.Viewing.EXTENSION_UNLOADED_EVENT;
38
+ }
39
+ export class FinalFrameRenderedChangedEventArgs extends ViewerEventArgs {
40
+ planes: Object[];
41
+ type = Autodesk.Viewing.FINAL_FRAME_RENDERED_CHANGED_EVENT;
42
+ }
43
+ export class FitToViewEventArgs extends ViewerEventArgs {
44
+ immediate: boolean;
45
+ nodeIdArray: number[];
46
+ type = Autodesk.Viewing.FIT_TO_VIEW_EVENT;
47
+ }
48
+ export class FragmentsLoadedEventArgs extends ViewerEventArgs {
49
+ getFragIds: () => void;
50
+ data: Object;
51
+ type = Autodesk.Viewing.FRAGMENTS_LOADED_EVENT;
52
+ }
53
+ export class FullscreenEventArgs extends ViewerEventArgs {
54
+ mode: Autodesk.Viewing.ScreenMode;
55
+ type = Autodesk.Viewing.FULLSCREEN_MODE_EVENT;
56
+ }
57
+ export class GeometryLoadedEventArgs extends ViewerEventArgs {
58
+ type = Autodesk.Viewing.GEOMETRY_LOADED_EVENT;
59
+ }
60
+ export class HideEventArgs extends ViewerEventArgs {
61
+ nodeIdArray: number[];
62
+ type = Autodesk.Viewing.HIDE_EVENT;
63
+ }
64
+ export class HyperlinkEventArgs extends ViewerEventArgs {
65
+ data: Object; // TODO: Can his be stronger?
66
+ type = Autodesk.Viewing.HYPERLINK_EVENT;
67
+ }
68
+ export class IsolateEventArgs extends ViewerEventArgs {
69
+ nodeIdArray: number[];
70
+ type = Autodesk.Viewing.ISOLATE_EVENT;
71
+ }
72
+ export class LayerVisibilityEventArgs extends ViewerEventArgs {
73
+ type = Autodesk.Viewing.LAYER_VISIBILITY_CHANGED_EVENT;
74
+ }
75
+ export class LoadMissingGeometryEventArgs extends ViewerEventArgs {
76
+ delay: boolean;
77
+ type = Autodesk.Viewing.LOAD_MISSING_GEOMETRY;
78
+ }
79
+ export class ModelRootLoadedEventArgs extends ViewerEventArgs {
80
+ svf: Object; // TODO: can this be stronger
81
+ type = Autodesk.Viewing.MODEL_ROOT_LOADED_EVENT;
82
+ }
83
+ export class ModelUnloadedEventArgs extends ViewerEventArgs {
84
+ type = Autodesk.Viewing.MODEL_UNLOADED_EVENT;
85
+ }
86
+ export class NavigationModeChangedEventArgs extends ViewerEventArgs {
87
+ id: string;
88
+ type = Autodesk.Viewing.NAVIGATION_MODE_CHANGED_EVENT;
89
+ }
90
+ export abstract class ObjectTreeEventArgs extends ViewerEventArgs {
91
+ svf: Object; // TODO: can this be stronger
92
+ }
93
+ export class ObjectTreeCreatedEventArgs extends ObjectTreeEventArgs {
94
+ type = Autodesk.Viewing.OBJECT_TREE_CREATED_EVENT;
95
+ }
96
+ export class ObjectTreeUnavailableEventArgs extends ObjectTreeEventArgs {
97
+ type = Autodesk.Viewing.OBJECT_TREE_UNAVAILABLE_EVENT;
98
+ }
99
+ export abstract class PrefEventArgs extends ViewerEventArgs {
100
+ name: string;
101
+ value: Object;
102
+ }
103
+ export class PrefChangedEventArgs extends PrefEventArgs {
104
+ type = Autodesk.Viewing.PREF_CHANGED_EVENT;
105
+ }
106
+ export class PrefResetEventArgs extends PrefEventArgs {
107
+ type = Autodesk.Viewing.PREF_RESET_EVENT;
108
+ }
109
+ export class ProgressUpdateEventArgs extends ViewerEventArgs {
110
+ percent: number;
111
+ state: Autodesk.Viewing.ProgressState;
112
+ type = Autodesk.Viewing.PROGRESS_UPDATE_EVENT;
113
+ }
114
+ export class RenderOptionChangedEventArgs extends ViewerEventArgs {
115
+ type = Autodesk.Viewing.RENDER_OPTION_CHANGED_EVENT;
116
+ }
117
+ export class RenderPresentedEventArgs extends ViewerEventArgs {
118
+ type = Autodesk.Viewing.RENDER_PRESENTED_EVENT;
119
+ }
120
+ export class ResetEventArgs extends ViewerEventArgs {
121
+ type = Autodesk.Viewing.RESET_EVENT;
122
+ }
123
+ export class RestoreDefaultSettingsEventArgs extends ViewerEventArgs {
124
+ type = Autodesk.Viewing.RESTORE_DEFAULT_SETTINGS_EVENT;
125
+ }
126
+ export class SelectionChangedEventArgs extends ViewerEventArgs {
127
+ fragIdsArray: number[];
128
+ dbIdArray: number[];
129
+ nodeArray: number[];
130
+ type = Autodesk.Viewing.SELECTION_CHANGED_EVENT;
131
+ }
132
+ export class ShowEventArgs extends ViewerEventArgs {
133
+ nodeArrayId: number[];
134
+ type = Autodesk.Viewing.SHOW_EVENT;
135
+ }
136
+ export class TexturesLoadedEventArgs extends ViewerEventArgs {
137
+ type = Autodesk.Viewing.TEXTURES_LOADED_EVENT;
138
+ }
139
+ export class ToolChangedEventArgs extends ViewerEventArgs {
140
+ toolName: string;
141
+ tool: Object;
142
+ active: boolean;
143
+ type = Autodesk.Viewing.TOOL_CHANGE_EVENT;
144
+ }
145
+ export class ViewerInitializedEventArgs extends ViewerEventArgs {
146
+ type = Autodesk.Viewing.VIEWER_INITIALIZED;
147
+ }
148
+ export class ViewerResizeEventArgs extends ViewerEventArgs {
149
+ width: number;
150
+ height: number;
151
+ type = Autodesk.Viewing.VIEWER_RESIZE_EVENT;
152
+ }
153
+ export class ViewerStateRestoredEventArgs extends ViewerEventArgs {
154
+ value: boolean;
155
+ type = Autodesk.Viewing.VIEWER_STATE_RESTORED_EVENT;
156
+ }
157
+ export class ViewerUnInitializedEventArgs extends ViewerEventArgs {
158
+ type = Autodesk.Viewing.VIEWER_UNINITIALIZED;
159
+ }
160
+
161
+ /**
162
+ * Base extension that all other extensions can inherit from
163
+ */
164
+ export abstract class Extension {
165
+ public static extensionName: string = '';
166
+
167
+ protected viewer: Autodesk.Viewing.Viewer3D = undefined;
168
+ protected extOptions: Autodesk.Viewing.ExtensionOptions = undefined;
169
+
170
+ protected eventArgsTypeMap: { [key: string]: Function } = {};
171
+
172
+ public static registerExtension(extensionName: string, extension: Object) {
173
+ Autodesk.Viewing.theExtensionManager.registerExtension(extensionName, extension);
174
+ }
175
+
176
+ public static unregisterExtension(extensionName: string) {
177
+ Autodesk.Viewing.theExtensionManager.unregisterExtension(extensionName);
178
+ }
179
+
180
+ constructor(viewer: Autodesk.Viewing.Viewer3D,
181
+ options?: Autodesk.Viewing.ExtensionOptions) {
182
+ this.viewer = viewer;
183
+ this.extOptions = options;
184
+
185
+ this.registerEventTypes();
186
+ }
187
+
188
+ /** Called by Autodesk extension manager when extension is loaded */
189
+ public abstract load(): boolean | Promise<boolean>;
190
+ /** Called by Autodesk extension manager when extension is unloaded */
191
+ public abstract unload(): boolean;
192
+ /** Called by Autodesk extension manager when extension is activated - return true */
193
+ public abstract activate(): boolean;
194
+ /** Called by Autodesk extension manager when extension is activated - return true */
195
+ public abstract deactivate(): boolean;
196
+
197
+ /** Register event args types that we will cast to 'proper' objects */
198
+ protected registerEventTypes() {
199
+ // tslint:disable:max-line-length
200
+ this.eventArgsTypeMap[Autodesk.Viewing.AGGREGATE_SELECTION_CHANGED_EVENT] = AggregationSelectionChangedEventArgs;
201
+ this.eventArgsTypeMap[Autodesk.Viewing.ANIMATION_READY_EVENT] = AnimationReadyEventArgs;
202
+ this.eventArgsTypeMap[Autodesk.Viewing.CAMERA_CHANGE_EVENT] = CameraChangedEventArgs;
203
+ this.eventArgsTypeMap[Autodesk.Viewing.CUTPLANES_CHANGE_EVENT] = CutplanesChangedEventArgs;
204
+ this.eventArgsTypeMap[Autodesk.Viewing.ESCAPE_EVENT] = EscapeEventArgs;
205
+ this.eventArgsTypeMap[Autodesk.Viewing.EXPLODE_CHANGE_EVENT] = ExplodeChangedEventArgs;
206
+ this.eventArgsTypeMap[Autodesk.Viewing.EXTENSION_LOADED_EVENT] = ExtensionLoadedEventArgs;
207
+ this.eventArgsTypeMap[Autodesk.Viewing.EXTENSION_UNLOADED_EVENT] = ExtensionUnloadedEventArgs;
208
+ this.eventArgsTypeMap[Autodesk.Viewing.FINAL_FRAME_RENDERED_CHANGED_EVENT] = FinalFrameRenderedChangedEventArgs;
209
+ this.eventArgsTypeMap[Autodesk.Viewing.FIT_TO_VIEW_EVENT] = FitToViewEventArgs;
210
+ this.eventArgsTypeMap[Autodesk.Viewing.FRAGMENTS_LOADED_EVENT] = FragmentsLoadedEventArgs;
211
+ this.eventArgsTypeMap[Autodesk.Viewing.FULLSCREEN_MODE_EVENT] = FullscreenEventArgs;
212
+ this.eventArgsTypeMap[Autodesk.Viewing.GEOMETRY_LOADED_EVENT] = GeometryLoadedEventArgs;
213
+ this.eventArgsTypeMap[Autodesk.Viewing.HIDE_EVENT] = HideEventArgs;
214
+ this.eventArgsTypeMap[Autodesk.Viewing.HYPERLINK_EVENT] = HyperlinkEventArgs;
215
+ this.eventArgsTypeMap[Autodesk.Viewing.ISOLATE_EVENT] = IsolateEventArgs;
216
+ this.eventArgsTypeMap[Autodesk.Viewing.LAYER_VISIBILITY_CHANGED_EVENT] = LayerVisibilityEventArgs;
217
+ this.eventArgsTypeMap[Autodesk.Viewing.LOAD_MISSING_GEOMETRY] = LoadMissingGeometryEventArgs;
218
+ this.eventArgsTypeMap[Autodesk.Viewing.MODEL_ROOT_LOADED_EVENT] = ModelRootLoadedEventArgs;
219
+ this.eventArgsTypeMap[Autodesk.Viewing.MODEL_UNLOADED_EVENT] = ModelUnloadedEventArgs;
220
+ this.eventArgsTypeMap[Autodesk.Viewing.NAVIGATION_MODE_CHANGED_EVENT] = NavigationModeChangedEventArgs;
221
+ this.eventArgsTypeMap[Autodesk.Viewing.OBJECT_TREE_CREATED_EVENT] = ObjectTreeCreatedEventArgs;
222
+ this.eventArgsTypeMap[Autodesk.Viewing.OBJECT_TREE_UNAVAILABLE_EVENT] = ObjectTreeUnavailableEventArgs;
223
+ this.eventArgsTypeMap[Autodesk.Viewing.PREF_CHANGED_EVENT] = PrefChangedEventArgs;
224
+ this.eventArgsTypeMap[Autodesk.Viewing.PREF_RESET_EVENT] = PrefResetEventArgs;
225
+ this.eventArgsTypeMap[Autodesk.Viewing.PROGRESS_UPDATE_EVENT] = ProgressUpdateEventArgs;
226
+ this.eventArgsTypeMap[Autodesk.Viewing.RENDER_OPTION_CHANGED_EVENT] = RenderOptionChangedEventArgs;
227
+ this.eventArgsTypeMap[Autodesk.Viewing.RENDER_PRESENTED_EVENT] = RenderPresentedEventArgs;
228
+ this.eventArgsTypeMap[Autodesk.Viewing.RESET_EVENT] = ResetEventArgs;
229
+ this.eventArgsTypeMap[Autodesk.Viewing.RESTORE_DEFAULT_SETTINGS_EVENT] = RestoreDefaultSettingsEventArgs;
230
+ this.eventArgsTypeMap[Autodesk.Viewing.SELECTION_CHANGED_EVENT] = SelectionChangedEventArgs;
231
+ this.eventArgsTypeMap[Autodesk.Viewing.SHOW_EVENT] = ShowEventArgs;
232
+ this.eventArgsTypeMap[Autodesk.Viewing.TEXTURES_LOADED_EVENT] = TexturesLoadedEventArgs;
233
+ this.eventArgsTypeMap[Autodesk.Viewing.TOOL_CHANGE_EVENT] = ToolChangedEventArgs;
234
+ this.eventArgsTypeMap[Autodesk.Viewing.VIEWER_INITIALIZED] = ViewerInitializedEventArgs;
235
+ this.eventArgsTypeMap[Autodesk.Viewing.VIEWER_RESIZE_EVENT] = ViewerResizeEventArgs;
236
+ this.eventArgsTypeMap[Autodesk.Viewing.VIEWER_STATE_RESTORED_EVENT] = ViewerStateRestoredEventArgs;
237
+ this.eventArgsTypeMap[Autodesk.Viewing.VIEWER_UNINITIALIZED] = ViewerUnInitializedEventArgs;
238
+ // tslint:enable:max-line-length
239
+ }
240
+
241
+ /** Cast Viewer event args to class */
242
+ protected castArgs(args: any): any {
243
+ if (Array.isArray(args)) {
244
+ return args.map(this.castArgs);
245
+ }
246
+
247
+ if (!args || typeof args !== 'object' || !args.hasOwnProperty('type')) {
248
+ // Can't cast this object
249
+ return args;
250
+ }
251
+
252
+ // Create new object of appropriate type
253
+ const clazz = this.eventArgsTypeMap[args.type];
254
+ const typedItem = Object.create(clazz.prototype);
255
+
256
+ // Cast any properties
257
+ for (const k of Object.keys(args)) {
258
+ typedItem[k] = this.castArgs(args[k]);
259
+ }
260
+
261
+ return typedItem;
262
+ }
263
+ }
@@ -0,0 +1,2 @@
1
+ <div #forgeViewer class="adsk-viewer"></div>
2
+
@@ -0,0 +1,6 @@
1
+
2
+ .adsk-viewing-viewer {
3
+ width: 100%;
4
+ height: 100%;
5
+ position: relative;
6
+ }
@@ -0,0 +1,184 @@
1
+ /**
2
+ *
3
+ * Интеграций с Forge Autodesk
4
+ */
5
+ /// <reference types="forge-viewer" />
6
+ import {
7
+ ChangeDetectionStrategy,
8
+ ChangeDetectorRef,
9
+ Component,
10
+ ElementRef, EventEmitter,
11
+ Input,
12
+ NgModule,
13
+ NgZone,
14
+ OnDestroy,
15
+ OnInit, Output,
16
+ ViewChild
17
+ } from '@angular/core';
18
+ import {CommonModule} from '@angular/common';
19
+ import {ParamAssignExtension, ParamLabel} from './ParamAssign';
20
+
21
+ import {HttpClient} from '@angular/common/http';
22
+ import {FormsModule} from '@angular/forms';
23
+ import {ScriptService} from './Script.service';
24
+ import {ForgeOption} from './forge.interface';
25
+ import Cookies from 'js-cookie'
26
+
27
+ declare const Autodesk: any;
28
+
29
+
30
+ @Component({
31
+ selector: 'app-forge',
32
+ templateUrl: './forge.component.html',
33
+ styleUrls: ['./forge.component.scss'],
34
+ changeDetection: ChangeDetectionStrategy.OnPush,
35
+ })
36
+ export class ForgeComponent implements OnInit, OnDestroy {
37
+
38
+ constructor(private http: HttpClient,
39
+ private cdr: ChangeDetectorRef,
40
+ private ngZone: NgZone,
41
+ private scripts: ScriptService) {
42
+
43
+ }
44
+
45
+ @ViewChild('forgeViewer') viewerDiv: ElementRef<HTMLDivElement>;
46
+
47
+ @Input() urn = '';
48
+
49
+ @Input() labels: ForgeOption[] = [];
50
+
51
+ @Output() onReady = new EventEmitter();
52
+
53
+ public documentId: string;
54
+
55
+ viewer: any;
56
+
57
+
58
+ @NgModule({
59
+ declarations: [ForgeComponent],
60
+ imports: [FormsModule, CommonModule],
61
+ exports: [ForgeComponent],
62
+ providers: [ScriptService],
63
+ entryComponents: [ForgeComponent]
64
+ })
65
+ export;
66
+ class;
67
+
68
+ public ngOnInit() {
69
+ this.scripts.load('viewer').then(data => {
70
+ this.launchViewer(this.urn);
71
+ }).catch(error => console.log(error));
72
+ this.scripts.loadStyles();
73
+ }
74
+
75
+ ngOnDestroy() {
76
+
77
+ }
78
+
79
+ authForge(callback) {
80
+ callback(Cookies.get('forge'), 3599);
81
+ }
82
+
83
+ launchViewer(urn) {
84
+ const options = {
85
+ env: 'AutodeskProduction',
86
+ getAccessToken: this.authForge.bind(this)
87
+ };
88
+ this.ngZone.runOutsideAngular(() => {
89
+ ParamAssignExtension.registerExtension(ParamAssignExtension.extensionName, this.extensionLoaded.bind(this));
90
+ Autodesk.Viewing.Initializer(options, () => {
91
+ const documentId = 'urn:' + urn;
92
+ this.viewer = new Autodesk.Viewing.GuiViewer3D(this.viewerDiv.nativeElement,
93
+ {extensions: []});
94
+ Autodesk.Viewing.Document.load(documentId, this.onDocumentLoadSuccess.bind(this), this.onDocumentLoadFailure.bind(this));
95
+ });
96
+ });
97
+ }
98
+
99
+ extensionLoaded() {
100
+ console.log('extensionLoaded');
101
+ }
102
+
103
+
104
+ afterViewerEvents(viewer, events) {
105
+ const promises = [];
106
+ events.forEach((event) => {
107
+ promises.push(new Promise((resolve, reject) => {
108
+ const handler = () => {
109
+ viewer.removeEventListener(event, handler);
110
+ resolve(null);
111
+ };
112
+ viewer.addEventListener(event, handler);
113
+ }));
114
+ });
115
+ return Promise.all(promises);
116
+ }
117
+
118
+
119
+ onDocumentLoadSuccess(doc) {
120
+ this.viewer.start();
121
+ const viewables = doc.getRoot().getDefaultGeometry();
122
+ this.viewer.loadDocumentNode(doc, viewables, {}).then(async (model) => {
123
+
124
+ // await this.afterViewerEvents(
125
+ // this.viewer,
126
+ // [
127
+ // Autodesk.Viewing.GEOMETRY_LOADED_EVENT,
128
+ // Autodesk.Viewing.OBJECT_TREE_CREATED_EVENT
129
+ // ]
130
+ // );
131
+ this.loadParamExtension();
132
+ });
133
+ }
134
+
135
+ loadParamExtension() {
136
+ this.viewer.getObjectTree((tree) => {
137
+ const icons: ParamLabel[] = [];
138
+ tree.enumNodeChildren(tree.getRootId(), (dbid) => {
139
+ this.labels.forEach(label => {
140
+ if (label.name === tree.getNodeName(dbid)) {
141
+ icons.push({
142
+ element: label.element,
143
+ dbId: dbid,
144
+ name: label.name,
145
+ });
146
+ }
147
+ });
148
+ }, true);
149
+
150
+ this.viewer.loadExtension(ParamAssignExtension.extensionName, {
151
+ icons,
152
+ // onClick: (id) => {
153
+ // switch (id) {
154
+ // case 2850:
155
+ // alert('Sensor offline');
156
+ // }
157
+ // }
158
+ });
159
+
160
+ this.onReady.emit({viewer: this.viewer});
161
+
162
+ });
163
+ }
164
+
165
+ onDocumentLoadFailure(viewerErrorCode, viewerErrorMsg) {
166
+ console.error('onDocumentLoadFailure() - errorCode:' + viewerErrorCode + '\n- errorMessage:' + viewerErrorMsg);
167
+ }
168
+
169
+ }
170
+
171
+
172
+ @NgModule({
173
+ declarations: [ForgeComponent],
174
+ imports: [FormsModule, CommonModule],
175
+ exports: [ForgeComponent],
176
+ providers: [ScriptService],
177
+ entryComponents: [ForgeComponent]
178
+ })
179
+ export class ForgeComponentModule {
180
+ }
181
+
182
+
183
+
184
+
@@ -0,0 +1,4 @@
1
+ export interface ForgeOption {
2
+ name: string;
3
+ element: HTMLElement;
4
+ }
@@ -0,0 +1,19 @@
1
+ import {Observable} from 'rxjs';
2
+ import {WidgetPackage} from './widget.component';
3
+
4
+
5
+ const WIDGET_CACHE: {
6
+ [k: string]: Observable<WidgetPackage>
7
+ } = {};
8
+
9
+
10
+
11
+ export function updateWidgetMediaUrl(media: object, url: string) {
12
+ const res = {};
13
+ for (const key in media) {
14
+ if (media.hasOwnProperty(key)) {
15
+ res[key] = url + media[key];
16
+ }
17
+ }
18
+ return res;
19
+ }
@@ -0,0 +1 @@
1
+ <div echarts [options]="options" *ngIf="display" [initOpts]="initOpts" style="width:100%; height: 100%" [theme]="theme" (chartInit)="onChartInit($event)"></div>
@@ -0,0 +1,3 @@
1
+ .nvd3 {
2
+ width: 100%;
3
+ }