@vitrosoftware/common-ui-ts 1.1.260 → 1.1.261

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.
@@ -18,6 +18,7 @@ export interface BimViewerService {
18
18
  currentVersionTooltipText?: string;
19
19
  notCurrentVersionTooltipText?: string;
20
20
  showItemSelectDialog: () => Promise<string[]>;
21
+ saveCoordinationModel: () => Promise<any>;
21
22
  listConfig: ListConfig;
22
23
  searchId: string;
23
24
  parentId: string;
@@ -27,11 +28,4 @@ export interface BimViewerService {
27
28
  container: any;
28
29
  getSettingsFromLocalStorage: () => any;
29
30
  setSettingsToLocalStorage: (settings: string) => void;
30
- showFileSaveDialog: (listId: string, extensionList?: {
31
- name?: string;
32
- code: string;
33
- }[], defaultName?: string) => Promise<{
34
- destFolderId: string;
35
- name: string;
36
- }>;
37
31
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vitrosoftware/common-ui-ts",
3
- "version": "1.1.260",
3
+ "version": "1.1.261",
4
4
  "description": "vitro software common ui ts",
5
5
  "author": "",
6
6
  "license": "MIT",
@@ -677,10 +677,10 @@ class VitroModel {
677
677
  });
678
678
  },
679
679
 
680
- GetText3DList: function (callback, error, async = true) {
680
+ GetText3DList: function (vitroModel, callback, error, async = true) {
681
681
  var paramObj = {};
682
682
 
683
- paramObj.modelList = BIMCommon.GetModelList(BIMCommon.ModelList);
683
+ paramObj.modelList = BIMCommon.GetModelList([vitroModel]);
684
684
 
685
685
  var webRelativeUrl = BIMCommon.CreateWebServerUrl();
686
686
  $.ajax({
@@ -1,11 +1,11 @@
1
- import { BIMModel, BIMCommon, BIMAnnotation } from '/resource/bimViewer/js/bim-viewer-models.js?version=1.1.260';
1
+ import { BIMModel, BIMCommon, BIMAnnotation } from '/resource/bimViewer/js/bim-viewer-models.js?version=1.1.261';
2
2
 
3
3
  import {
4
4
  Viewer, XKTLoaderPlugin, NavCubePlugin, SectionPlanesPlugin, math, BCFViewpointsPlugin, AnnotationsPlugin,
5
5
  ContextMenu, TreeViewPlugin, StoreyViewsPlugin, AngleMeasurementsPlugin, CameraMemento, DistanceMeasurementsPlugin,
6
6
  GLTFLoaderPlugin, utils, FastNavPlugin, MetaObject, parsers, buildVectorTextGeometry
7
7
  }
8
- from '/resource/bimViewer/js/xeokit/xeokit-sdk.es.js?version=1.1.260';
8
+ from '/resource/bimViewer/js/xeokit/xeokit-sdk.es.js?version=1.1.261';
9
9
 
10
10
 
11
11
  //----------------------------------------------------------------------------------------------------------------------
@@ -1044,7 +1044,7 @@ xktLoader.globalizeObjectIds = false; // For multiple models in TreeView
1044
1044
  //------------------------------------------------------------------------------------------------------------------
1045
1045
  function doLoadModel(viewer, xktLoader, srcModel, isMain, isLoadAnnotation) {
1046
1046
  const model = xktLoader.load({
1047
- id: Date.now(),
1047
+ id: crypto.randomUUID(),
1048
1048
  src: srcModel.FilePath,
1049
1049
  edges: true,
1050
1050
  backfaces: true,
@@ -1066,8 +1066,7 @@ function doLoadModel(viewer, xktLoader, srcModel, isMain, isLoadAnnotation) {
1066
1066
 
1067
1067
  model.vitroModelLoader.largeModel = model;
1068
1068
  model.vitroModelLoader.startSmallLoad = true;
1069
-
1070
- load3DText(model);
1069
+ model.ModelList = BIMCommon.ModelList;
1071
1070
 
1072
1071
  $('#btnToggleSectionPlan').addClass('toggled');
1073
1072
  }
@@ -1075,6 +1074,8 @@ function doLoadModel(viewer, xktLoader, srcModel, isMain, isLoadAnnotation) {
1075
1074
  viewer.scene.fire("reloadSmallScenes");
1076
1075
  }
1077
1076
 
1077
+ load3DText(model);
1078
+
1078
1079
  //------------------------------------------------------------------------------------------------------------------
1079
1080
  // Create some Annotations
1080
1081
  //------------------------------------------------------------------------------------------------------------------
@@ -1097,6 +1098,7 @@ function doLoadModel(viewer, xktLoader, srcModel, isMain, isLoadAnnotation) {
1097
1098
 
1098
1099
  function load3DText(model) {
1099
1100
  BIMModel.GetText3DList(
1101
+ model.vitroModel,
1100
1102
  (data) => {
1101
1103
  var entityList = [];
1102
1104
 
@@ -1238,6 +1240,7 @@ viewer.on('vitroCompareStatus', (status) => {
1238
1240
  // setDisplay('btnSaveBCFViewpointJSON', style_Display);
1239
1241
  // setDisplay('btnLoadBCFViewpointJSON', style_Display);
1240
1242
  setStyleDisplay('btnAddModel', style_Display);
1243
+ setStyleDisplay('btnSaveCoordinationModel', style_Display);
1241
1244
 
1242
1245
  if (status) {
1243
1246
  delContextMenu(viewer);
@@ -3440,30 +3443,85 @@ function bindBtnAddModel() {
3440
3443
  isModelSelectInProgress = true;
3441
3444
  context.showItemSelectDialog().then(itemIdList => {
3442
3445
  itemIdList.forEach(itemId => {
3443
- BIMCommon.GetFileItem(itemId, undefined, function (modelId) {
3444
- context.getItem(modelId).then(itemAttach => {
3446
+ addModel(itemId);
3447
+ });
3445
3448
 
3446
- context.getItem(itemId).then(item => {
3447
- context.addItem(item);
3448
- });
3449
+ }).finally(() => isModelSelectInProgress = false);
3450
+ }
3451
+ });
3452
+ }
3449
3453
 
3450
- const filePath = context.getFilePath(itemAttach.id);
3451
- const fileName = context.file.fieldValueMap?.name;
3452
- const model = new BIMCommon.VitroModel(itemId, undefined, filePath, fileName);
3454
+ function IsCoordinationModel(item) {
3453
3455
 
3454
- BIMCommon.ModelList.push(model);
3456
+ if (item && item.fieldValueMap && item.fieldValueMap.name) {
3457
+ const ext = item.fieldValueMap.name.split('.').pop().toLowerCase();
3455
3458
 
3456
- const sceneModel = doLoadModel(viewer, xktLoader, model, false, false);
3457
- addToTreeView(model, sceneModel.id);
3459
+ return ext === 'vcm';
3460
+ }
3458
3461
 
3459
- $('#btnToggleCompare').hide();
3460
- });
3462
+ return false
3463
+ }
3461
3464
 
3462
- }, function () {
3463
- alert("The file is being processed");
3464
- });
3465
- });
3466
- }).finally(() => isModelSelectInProgress = false);
3465
+ function loadItem(item, versionStr, callback) {
3466
+ if (IsCoordinationModel(item)) {
3467
+ context.getReferenceItemList(item.id).then(referenceItemList => {
3468
+ referenceItemList.forEach(refItem => {
3469
+ loadItem(refItem, versionStr, callback);
3470
+ });
3471
+ });
3472
+ }
3473
+ else {
3474
+ loadItemModel(item, versionStr, callback);
3475
+ }
3476
+ }
3477
+
3478
+ function loadItemModel(item, versionStr, callback) {
3479
+ if (!item) {
3480
+ return;
3481
+ }
3482
+
3483
+ const fileName = item.fieldValueMap?.name;
3484
+
3485
+ BIMCommon.GetFileItem(item.id, versionStr, function (modelId) {
3486
+ context.getItem(modelId).then(itemAttach => {
3487
+ const filePath = context.getFilePath(itemAttach.id);
3488
+ const model = new BIMCommon.VitroModel(item.id, versionStr, filePath, fileName);
3489
+ const isFirstModel = BIMCommon.ModelList.length === 0;
3490
+
3491
+ BIMCommon.ModelList.push(model);
3492
+
3493
+ if (!isFirstModel) {
3494
+ $('#btnToggleCompare').hide();
3495
+ $('#btnSaveCoordinationModel').show();
3496
+ }
3497
+
3498
+ const sceneModel = doLoadModel(viewer, xktLoader, model, isFirstModel, isFirstModel);
3499
+ addToTreeView(model, sceneModel.id);
3500
+
3501
+ if (callback) {
3502
+ callback(sceneModel);
3503
+ }
3504
+ });
3505
+
3506
+ }, function () {
3507
+ alert("The file " + fileName +" is being processed");
3508
+ });
3509
+ }
3510
+
3511
+ function addModel(itemId)
3512
+ {
3513
+ context.getItem(itemId).then((item => {
3514
+ loadItem(item, undefined, undefined);
3515
+ context.addItem(item);
3516
+ $('#btnToggleCompare').show();
3517
+ }));
3518
+ }
3519
+
3520
+ function bindSaveCoordinationModel() {
3521
+ $(document).on('click', '#btnSaveCoordinationModel', function () {
3522
+ if (!isModelSelectInProgress) {
3523
+ isModelSelectInProgress = true;
3524
+ context.saveCoordinationModel().finally(() => isModelSelectInProgress = false);
3467
3525
  }
3468
3526
  });
3469
3527
  }
@@ -4150,7 +4208,12 @@ function bindCompareDlgDcoBVersionChange() {
4150
4208
  }
4151
4209
 
4152
4210
  function initVersionSelectValues() {
4153
- let version = context.fileVersionList.find(item => item.id == context.versionId);
4211
+ const version = context.fileVersionList.find(item => item.id == context.versionId);
4212
+
4213
+ if (!version || !version?.name) {
4214
+ return;
4215
+ }
4216
+
4154
4217
  let currentVersion = `v${version.name}`;
4155
4218
  if (currentVersion != $('#docAVersion').val()) {
4156
4219
  $('#docAVersion').val(currentVersion);
@@ -5176,34 +5239,25 @@ viewer.cameraControl.on("picked", (pickResult) => {
5176
5239
 
5177
5240
  //------------------------------------------------------------------------------------------------------------------
5178
5241
 
5179
- window.viewer = viewer;
5180
5242
 
5181
5243
  let version = context.fileVersionList.find(x => x.id === context.versionId);
5182
5244
  let versionStr = version ? version.name : null;
5183
5245
 
5184
- BIMCommon.GetFileItem(context.file.id, versionStr, function (modelId) {
5185
-
5186
- context.getItem(modelId).then(item => {
5187
- var filePath = context.getFilePath(item.id);
5188
- var fileName = context.file.fieldValueMap?.name;
5189
-
5190
- document.title += " - " + fileName;
5191
- //fileVersion = '';
5192
- //fileVersionPath = filePath;
5193
- hideXeokitSpinner();
5246
+ window.viewer = viewer;
5194
5247
 
5195
- const model = new BIMCommon.VitroModel(context.file.id, versionStr, filePath, fileName);
5248
+ const callback = (model) => {
5249
+ hideXeokitSpinner();
5196
5250
 
5197
- BIMCommon.ModelList.push(model);
5251
+ if (!window.model) {
5252
+ window.model = model;
5253
+ }
5254
+ }
5198
5255
 
5199
- window.model = doLoadModel(viewer, xktLoader, model, true, true);
5200
- window.model.ModelList = BIMCommon.ModelList;
5256
+ var fileName = context.file.fieldValueMap?.name;
5201
5257
 
5202
- })
5203
-
5204
- }, function () {
5205
- alert("The file is being processed");
5206
- });
5258
+ document.title += " - " + fileName;
5259
+ loadItem(context.file, versionStr, callback);
5260
+ context.addItem(context.file);
5207
5261
 
5208
5262
  var userLocale =
5209
5263
  navigator.languages && navigator.languages.length
@@ -5255,6 +5309,7 @@ function init() {
5255
5309
  bindBtnClearComparison();
5256
5310
 
5257
5311
  bindBtnAddModel();
5312
+ bindSaveCoordinationModel();
5258
5313
 
5259
5314
  initCompare();
5260
5315
  bindSelectList();
@@ -1,18 +1,18 @@
1
- import * as three from '/resource/dxfViewer/js/three/three.module.js?version=1.1.260';
2
- import { Matrix3, Vector2 } from '/resource/dxfViewer/js/three/three.module.js?version=1.1.260';
3
- import { Batch, DxfViewer, Layer } from '/resource/dxfViewer/js/viewer/DxfViewer.js?version=1.1.260';
4
- import { Block as SceneBlock } from '/resource/dxfViewer/js/viewer/DxfScene.js?version=1.1.260';
5
- import { Block } from '/resource/dxfViewer/js/viewer/DxfViewer.js?version=1.1.260';
6
- import { DxfScene, Entity, ColorCode, PdMode } from '/resource/dxfViewer/js/viewer/DxfScene.js?version=1.1.260';
7
- import { TextRenderer, ParseSpecialChars, HAlign, VAlign } from '/resource/dxfViewer/js/viewer/TextRenderer.js?version=1.1.260';
8
- import { DxfWorker } from '/resource/dxfViewer/js/viewer/DxfWorker.js?version=1.1.260';
9
- import { DxfFetcher } from '/resource/dxfViewer/js/viewer/DxfFetcher.js?version=1.1.260';
10
- import DxfParser from '/resource/dxfViewer/js/viewer/parser/DxfParser.js?version=1.1.260';
11
- import { RenderBatch } from '/resource/dxfViewer/js/viewer/DxfScene.js?version=1.1.260';
12
- import { DynamicBuffer, NativeType } from '/resource/dxfViewer/js/viewer/DynamicBuffer.js?version=1.1.260';
13
- import { OrbitControls } from '/resource/dxfViewer/js/viewer/OrbitControls.js?version=1.1.260';
14
- import { CSS2DRenderer, CSS2DObject } from '/resource/dxfViewer/js/three/three.module.js?version=1.1.260';
15
- import * as fflate from '/resource/dxfViewer/js/fflate/fflate.module.js?version=1.1.260'
1
+ import * as three from '/resource/dxfViewer/js/three/three.module.js?version=1.1.261';
2
+ import { Matrix3, Vector2 } from '/resource/dxfViewer/js/three/three.module.js?version=1.1.261';
3
+ import { Batch, DxfViewer, Layer } from '/resource/dxfViewer/js/viewer/DxfViewer.js?version=1.1.261';
4
+ import { Block as SceneBlock } from '/resource/dxfViewer/js/viewer/DxfScene.js?version=1.1.261';
5
+ import { Block } from '/resource/dxfViewer/js/viewer/DxfViewer.js?version=1.1.261';
6
+ import { DxfScene, Entity, ColorCode, PdMode } from '/resource/dxfViewer/js/viewer/DxfScene.js?version=1.1.261';
7
+ import { TextRenderer, ParseSpecialChars, HAlign, VAlign } from '/resource/dxfViewer/js/viewer/TextRenderer.js?version=1.1.261';
8
+ import { DxfWorker } from '/resource/dxfViewer/js/viewer/DxfWorker.js?version=1.1.261';
9
+ import { DxfFetcher } from '/resource/dxfViewer/js/viewer/DxfFetcher.js?version=1.1.261';
10
+ import DxfParser from '/resource/dxfViewer/js/viewer/parser/DxfParser.js?version=1.1.261';
11
+ import { RenderBatch } from '/resource/dxfViewer/js/viewer/DxfScene.js?version=1.1.261';
12
+ import { DynamicBuffer, NativeType } from '/resource/dxfViewer/js/viewer/DynamicBuffer.js?version=1.1.261';
13
+ import { OrbitControls } from '/resource/dxfViewer/js/viewer/OrbitControls.js?version=1.1.261';
14
+ import { CSS2DRenderer, CSS2DObject } from '/resource/dxfViewer/js/three/three.module.js?version=1.1.261';
15
+ import * as fflate from '/resource/dxfViewer/js/fflate/fflate.module.js?version=1.1.261'
16
16
 
17
17
  let treeViewData = [];
18
18
  let notes = [];
@@ -21208,7 +21208,7 @@ const defaultOptions = {
21208
21208
  kind: OptionKind.WORKER
21209
21209
  },
21210
21210
  workerSrc: {
21211
- value: "resource/pdfViewer/js/pdf.worker.js?version=1.1.260",
21211
+ value: "resource/pdfViewer/js/pdf.worker.js?version=1.1.261",
21212
21212
  kind: OptionKind.WORKER
21213
21213
  }
21214
21214
  };