@vitrosoftware/common-ui-ts 1.1.206 → 1.1.208

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.
@@ -15,5 +15,7 @@ export declare enum EVENT {
15
15
  PDF_VIEWER_PAN_START = "vitro.pdfviewer.pan.start",
16
16
  CHANGE = "change",
17
17
  TOUCHEND = "touchend",
18
- TOUCHMOVE = "touchmove"
18
+ TOUCHMOVE = "touchmove",
19
+ MOUSEENTER = "mouseenter",
20
+ MOUSELEAVE = "mouseleave"
19
21
  }
@@ -4,13 +4,14 @@ export interface BimViewerService {
4
4
  versionId?: string;
5
5
  currentVersionId: string;
6
6
  fileVersionList: models.FileVersion[];
7
- onCreateIssue(data: any): any;
7
+ onCreateIssue(itemId: string, data: any): any;
8
8
  createLocale(key: string): any;
9
9
  getIssueList(): Promise<any>;
10
10
  getFilePath: (itemId: string, version?: string) => string;
11
11
  deleteIssueEvent?: string;
12
12
  updateIssueEvent?: string;
13
13
  getItem: (id: string) => Promise<any>;
14
+ addItem: (item: any) => void;
14
15
  onChangeFileVersion: (version: models.FileVersion) => any;
15
16
  currentVersionTooltipText?: string;
16
17
  notCurrentVersionTooltipText?: string;
@@ -3,6 +3,8 @@ import { TooltipProps } from '../Tooltip/Tooltip';
3
3
  import { services } from '../../services';
4
4
  interface ValueTooltipProps extends TooltipProps {
5
5
  containerRef: RefObject<HTMLElement>;
6
+ isMultiline?: boolean;
7
+ onUpdate?: (isEnabled: boolean) => void;
6
8
  }
7
9
  export declare const ValueTooltip: React.ForwardRefExoticComponent<ValueTooltipProps & React.RefAttributes<services.ValueTooltipService>>;
8
10
  export {};
@@ -7945,7 +7945,12 @@ class Component {
7945
7945
  sub = subs[subId];
7946
7946
  this._eventCallDepth++;
7947
7947
  if (this._eventCallDepth < 300) {
7948
- sub.callback.call(sub.scope, value);
7948
+ try {
7949
+ sub.callback.call(sub.scope, value);
7950
+ } catch (e) {
7951
+ this.error(e);
7952
+ }
7953
+
7949
7954
  } else {
7950
7955
  this.error("fire: potential stack overflow from recursive event '" + event + "' - dropping this event");
7951
7956
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vitrosoftware/common-ui-ts",
3
- "version": "1.1.206",
3
+ "version": "1.1.208",
4
4
  "description": "vitro software common ui ts",
5
5
  "author": "",
6
6
  "license": "MIT",
@@ -350,6 +350,37 @@ class VitroModel {
350
350
  }
351
351
  });
352
352
  },
353
+
354
+ GetModel: function (elementId, callback, error, async = true) {
355
+
356
+ var paramObj = {};
357
+
358
+ paramObj.modelList = BIMCommon.GetModelList(BIMCommon.ModelList);
359
+ paramObj.elementId = elementId.toString();
360
+
361
+ var webRelativeUrl = BIMCommon.CreateWebServerUrl();
362
+ $.ajax({
363
+ type: "POST",
364
+ url: webRelativeUrl + "/bimViewer/api/ModelElement/GetModel",
365
+ data: JSON.stringify(paramObj),
366
+ contentType: "application/json; charset=utf-8",
367
+ dataType: "json",
368
+ async: async,
369
+ beforeSend: function (data) {
370
+ },
371
+ error: function (jqXHR, textStatus, errorThrown) {
372
+ if (error) {
373
+ error(jqXHR, textStatus, errorThrown);
374
+ }
375
+ },
376
+ success: function (data, status, jqXHR) {
377
+ //console.log(data);
378
+ if (callback) {
379
+ callback(data);
380
+ }
381
+ }
382
+ });
383
+ },
353
384
 
354
385
  GetPropertyList: function (elementId, callback, error, async = true) {
355
386
  var paramObj = {};
@@ -1,11 +1,11 @@
1
- import { BIMModel, BIMCommon, BIMAnnotation } from '/resource/bimViewer/js/bim-viewer-models.js?version=1.1.206';
1
+ import { BIMModel, BIMCommon, BIMAnnotation } from '/resource/bimViewer/js/bim-viewer-models.js?version=1.1.208';
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
7
7
  }
8
- from '/resource/bimViewer/js/xeokit/xeokit-sdk.es.js?version=1.1.206';
8
+ from '/resource/bimViewer/js/xeokit/xeokit-sdk.es.js?version=1.1.208';
9
9
 
10
10
 
11
11
  //----------------------------------------------------------------------------------------------------------------------
@@ -808,7 +808,7 @@ class VitroTreeViewPlugin extends TreeViewPlugin
808
808
  }
809
809
 
810
810
  var sceneModel = this.load({
811
- id: Date.now() + '_' + this.vitroModel.FileItemId + this.vitroModel.FileVersion + '_' + numPart,
811
+ id: Date.now() + '_' + numPart,
812
812
  xkt: data,
813
813
  edges: true,
814
814
  backfaces: true,
@@ -816,6 +816,7 @@ class VitroTreeViewPlugin extends TreeViewPlugin
816
816
  });
817
817
 
818
818
  sceneModel.largeModel = this.largeModel;
819
+
819
820
  this.smallModelList.push(sceneModel);
820
821
 
821
822
  sceneModel.on('loaded', () => {
@@ -1572,19 +1573,38 @@ function doLoadModel(srcModel, isMain) {
1572
1573
  model.vitroModelLoader = new VitroXKTLoaderPlugin(viewer);
1573
1574
 
1574
1575
  model.vitroModelLoader.largeModel = model;
1575
- model.vitroModelLoader.vitroModel = srcModel;
1576
1576
  model.vitroModelLoader.startSmallLoad = true;
1577
1577
 
1578
-
1579
1578
  $('#btnToggleSectionPlan').addClass('toggled');
1580
1579
  }
1581
1580
  else {
1582
1581
  viewer.scene.fire("reloadSmallScenes");
1583
1582
  }
1583
+
1584
+ //------------------------------------------------------------------------------------------------------------------
1585
+ // Create some Annotations
1586
+ //------------------------------------------------------------------------------------------------------------------
1587
+ loadAnnotations();
1584
1588
  });
1589
+
1590
+ window.model = model;
1591
+
1592
+ if (isPointCloud(srcModel.FileName)) {
1593
+ var navPlugin = viewer._plugins.find((p) => p.id == 'FastNav');
1594
+
1595
+ if (navPlugin) {
1596
+ navPlugin.hideTransparentObjects = false;
1597
+ }
1598
+ }
1599
+
1585
1600
  return model;
1586
1601
  }
1587
1602
 
1603
+ function isPointCloud(filename) {
1604
+ const ext = filename.split('.').pop().toLowerCase();
1605
+ return ext === 'las' || ext === 'laz';
1606
+ }
1607
+
1588
1608
  function getDisableCacheStr() {
1589
1609
  var dt = new Date();
1590
1610
  return "?rev=" + dt.getTime();
@@ -1592,10 +1612,7 @@ function getDisableCacheStr() {
1592
1612
 
1593
1613
  function modelOnLoaded() {
1594
1614
 
1595
- //------------------------------------------------------------------------------------------------------------------
1596
- // Create some Annotations
1597
- //------------------------------------------------------------------------------------------------------------------
1598
- loadAnnotations();
1615
+
1599
1616
 
1600
1617
  //----------------------------------------------------------------------------------------------------------
1601
1618
  // Angle Measurements
@@ -2877,19 +2894,19 @@ function highlightModelsDifference(result, isSideBySide) {
2877
2894
  color = [0.9, 0.9, 0.9]; // TODO: old Model unique-objects color -> gray
2878
2895
  setOpacityArObject(window.model, arObjId, opacity);
2879
2896
  }
2880
- colorizeArObject(window.model, arObjId, color); // TODO: old Model unique-objects change color
2897
+ colorizeArObject(window.model2, arObjId, color); // TODO: old Model unique-objects change color
2881
2898
  }
2882
2899
 
2883
2900
  // Make old Model not unique-objects unvisible
2884
2901
  if (result['old']['notUnique'].length && !isSideBySide) {
2885
2902
  arObjId = result['old']['notUnique'];
2886
- setVisibilityArObject(window.model, arObjId, false);
2903
+ setVisibilityArObject(window.model2, arObjId, false);
2887
2904
  }
2888
2905
 
2889
2906
  if (result['new'].length) {
2890
2907
  arObjId = result['new'];
2891
2908
  color = [1.0, 0.0, 0.8]; // TODO: new Model unique-objects color
2892
- colorizeArObject(window.model2, arObjId, color);
2909
+ colorizeArObject(window.model, arObjId, color);
2893
2910
  }
2894
2911
  }
2895
2912
 
@@ -3070,7 +3087,7 @@ const fastNavPlugin = new FastNavPlugin(viewer, {
3070
3087
  //
3071
3088
  //------------------------------------------------------------------------------------------------------------------
3072
3089
 
3073
- var notesDescriptionVisibleList = {};
3090
+ var notesDescriptionVisibleList = {};
3074
3091
 
3075
3092
  BIMAnnotation.GetNote = (callback) => {
3076
3093
  callback([]);
@@ -3112,13 +3129,41 @@ function createMarkupData(pickResult) {
3112
3129
  return markup;
3113
3130
  }
3114
3131
 
3115
- function createAnnotationByClick(pickResult) {
3116
- let data = createMarkupData(pickResult);
3117
- context.onCreateIssue(data);
3132
+ function addIssue(itemId, data) {
3133
+ context.onCreateIssue(itemId, data);
3134
+
3118
3135
  hidePropInspector();
3119
3136
  expandSidebarIssueDetail();
3120
3137
  }
3121
3138
 
3139
+ function createAnnotationByClick(pickResult) {
3140
+ let data = createMarkupData(pickResult);
3141
+
3142
+ if (data.entity) {
3143
+ viewer.scene.canvas.spinner.processes++;
3144
+
3145
+ const callback = (modelInfo, status, jqXHR) => {
3146
+
3147
+ const itemId = modelInfo?.itemId ? modelInfo?.itemId : context.file.id;
3148
+
3149
+ addIssue(itemId, data);
3150
+
3151
+ viewer.scene.canvas.spinner.processes--;
3152
+ };
3153
+
3154
+ const error = () => {
3155
+ viewer.scene.canvas.spinner.processes--;
3156
+ };
3157
+
3158
+ BIMModel.GetModel(data.entity, callback, error);
3159
+ }
3160
+ else {
3161
+ addIssue(context.file.id, data);
3162
+ }
3163
+ }
3164
+
3165
+
3166
+
3122
3167
  function bindBtnToggleCreateNotes() {
3123
3168
  $(document).on('click', '#btnCreateNotes', function () {
3124
3169
  $(this).toggleClass('toggled');
@@ -3825,8 +3870,14 @@ function bindBtnAddModel() {
3825
3870
  itemIdList.forEach(itemId =>
3826
3871
  {
3827
3872
  BIMCommon.GetFileItem(itemId, undefined, function (modelId) {
3828
- context.getItem(modelId).then(item => {
3829
- const filePath = context.getFilePath(item.id);
3873
+ context.getItem(modelId).then(itemAttach => {
3874
+
3875
+ context.getItem(itemId).then(item =>
3876
+ {
3877
+ context.addItem(item);
3878
+ });
3879
+
3880
+ const filePath = context.getFilePath(itemAttach.id);
3830
3881
  const fileName = context.file.fieldValueMap?.name;
3831
3882
  const model = new BIMCommon.VitroModel(itemId, versionStr, filePath, fileName);
3832
3883
 
@@ -1,17 +1,17 @@
1
- import * as three from '/resource/dxfViewer/js/three/three.module.js?version=1.1.206';
2
- import { Matrix3, Vector2 } from '/resource/dxfViewer/js/three/three.module.js?version=1.1.206';
3
- import { Batch, DxfViewer, Layer } from '/resource/dxfViewer/js/viewer/DxfViewer.js?version=1.1.206';
4
- import { Block as SceneBlock } from '/resource/dxfViewer/js/viewer/DxfScene.js?version=1.1.206';
5
- import { Block } from '/resource/dxfViewer/js/viewer/DxfViewer.js?version=1.1.206';
6
- import { DxfScene, Entity, ColorCode } from '/resource/dxfViewer/js/viewer/DxfScene.js?version=1.1.206';
7
- import { TextRenderer, ParseSpecialChars, HAlign, VAlign } from '/resource/dxfViewer/js/viewer/TextRenderer.js?version=1.1.206';
8
- import { DxfWorker } from '/resource/dxfViewer/js/viewer/DxfWorker.js?version=1.1.206';
9
- import { DxfFetcher } from '/resource/dxfViewer/js/viewer/DxfFetcher.js?version=1.1.206';
10
- import DxfParser from '/resource/dxfViewer/js/viewer/parser/DxfParser.js?version=1.1.206';
11
- import { RenderBatch } from '/resource/dxfViewer/js/viewer/DxfScene.js?version=1.1.206';
12
- import { DynamicBuffer, NativeType } from '/resource/dxfViewer/js/viewer/DynamicBuffer.js?version=1.1.206';
13
- import { OrbitControls } from '/resource/dxfViewer/js/viewer/OrbitControls.js?version=1.1.206';
14
- import { CSS2DRenderer, CSS2DObject } from '/resource/dxfViewer/js/three/three.module.js?version=1.1.206';
1
+ import * as three from '/resource/dxfViewer/js/three/three.module.js?version=1.1.208';
2
+ import { Matrix3, Vector2 } from '/resource/dxfViewer/js/three/three.module.js?version=1.1.208';
3
+ import { Batch, DxfViewer, Layer } from '/resource/dxfViewer/js/viewer/DxfViewer.js?version=1.1.208';
4
+ import { Block as SceneBlock } from '/resource/dxfViewer/js/viewer/DxfScene.js?version=1.1.208';
5
+ import { Block } from '/resource/dxfViewer/js/viewer/DxfViewer.js?version=1.1.208';
6
+ import { DxfScene, Entity, ColorCode } from '/resource/dxfViewer/js/viewer/DxfScene.js?version=1.1.208';
7
+ import { TextRenderer, ParseSpecialChars, HAlign, VAlign } from '/resource/dxfViewer/js/viewer/TextRenderer.js?version=1.1.208';
8
+ import { DxfWorker } from '/resource/dxfViewer/js/viewer/DxfWorker.js?version=1.1.208';
9
+ import { DxfFetcher } from '/resource/dxfViewer/js/viewer/DxfFetcher.js?version=1.1.208';
10
+ import DxfParser from '/resource/dxfViewer/js/viewer/parser/DxfParser.js?version=1.1.208';
11
+ import { RenderBatch } from '/resource/dxfViewer/js/viewer/DxfScene.js?version=1.1.208';
12
+ import { DynamicBuffer, NativeType } from '/resource/dxfViewer/js/viewer/DynamicBuffer.js?version=1.1.208';
13
+ import { OrbitControls } from '/resource/dxfViewer/js/viewer/OrbitControls.js?version=1.1.208';
14
+ import { CSS2DRenderer, CSS2DObject } from '/resource/dxfViewer/js/three/three.module.js?version=1.1.208';
15
15
 
16
16
  let treeViewData = [];
17
17
  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.206",
21211
+ value: "resource/pdfViewer/js/pdf.worker.js?version=1.1.208",
21212
21212
  kind: OptionKind.WORKER
21213
21213
  }
21214
21214
  };