@vitrosoftware/common-ui-ts 1.1.227 → 1.1.229

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 (72) hide show
  1. package/css/std/controls/alert/alert.css +10 -47
  2. package/css/std/controls/bim-viewer/bim-viewer-index.css +4 -0
  3. package/css/std/controls/bim-viewer/style.css +4 -0
  4. package/css/std/controls/dialog/dialog-content.css +3 -0
  5. package/css/std/controls/dialog/dialog-footer.css +2 -0
  6. package/css/std/controls/dxf-viewer/common.css +4 -0
  7. package/css/std/controls/dxf-viewer/dxf-viewer-index.css +4 -0
  8. package/css/std/controls/field-iterator/field-iterator.css +6 -0
  9. package/css/std/controls/file/file.css +5 -4
  10. package/css/std/controls/filter/filter.css +1 -1
  11. package/css/std/controls/issue-tile/issue-tile-footer.css +1 -1
  12. package/css/std/controls/issue-tile/issue-tile-header.css +1 -1
  13. package/css/std/controls/issue-tile/issue-tile.css +1 -1
  14. package/css/std/controls/lookup-picker/lookup-picker-selected-item.css +0 -1
  15. package/css/std/controls/lookup-picker/lookup-picker-value-list.css +0 -1
  16. package/css/std/controls/lookup-picker/lookup-picker.css +38 -21
  17. package/css/std/controls/pdf-viewer/custom.css +4 -0
  18. package/css/std/controls/pdf-viewer/img/compare-dlg-separator.svg +3 -1
  19. package/css/std/controls/pdf-viewer/img/compare-dlg-title.svg +12 -0
  20. package/css/std/controls/pdf-viewer/pdf-viewer-index.css +217 -0
  21. package/css/std/controls/pdf-viewer/pdf-viewer.css +213 -0
  22. package/css/std/controls/select/select.css +26 -2
  23. package/css/std/controls/tab-group/tab-group.css +6 -3
  24. package/css/std/controls/table-view/table-view-custom-lookup-edit.css +1 -1
  25. package/css/std/controls/table-view/treegrid-cell.css +5 -0
  26. package/css/std/controls/table-view/treegrid-context-menu.css +22 -3
  27. package/css/std/controls/video-viewer/video-viewer.css +1 -1
  28. package/dist/index.css +101 -85
  29. package/dist/index.js +478 -344
  30. package/dist/index.js.map +1 -1
  31. package/dist/src/constants/Factory.d.ts +1 -0
  32. package/dist/src/controls/Alert/Alert.d.ts +0 -4
  33. package/dist/src/controls/BimViewer/BimViewer.d.ts +1 -0
  34. package/dist/src/controls/BimViewer/Viewer.d.ts +1 -0
  35. package/dist/src/controls/Dialog/Dialog.d.ts +2 -0
  36. package/dist/src/controls/Dialog/DialogContent.d.ts +1 -0
  37. package/dist/src/controls/DxfViewer/DxfViewer.d.ts +1 -0
  38. package/dist/src/controls/DxfViewer/Viewer.d.ts +1 -0
  39. package/dist/src/controls/IssueTile/IssueTile.d.ts +7 -5
  40. package/dist/src/controls/LookupPicker/LookupPicker.d.ts +2 -0
  41. package/dist/src/controls/LookupPicker/RightButtonGroup.d.ts +2 -2
  42. package/dist/src/controls/LookupPicker/ValueList.d.ts +2 -0
  43. package/dist/src/controls/MicroFrontend/MicroFrontend.d.ts +1 -2
  44. package/dist/src/controls/PdfViewer/services/PdfViewerService.d.ts +8 -0
  45. package/dist/src/controls/ScrollBar/ScrollBar.d.ts +4 -3
  46. package/dist/src/controls/Search/Search.d.ts +3 -2
  47. package/dist/src/controls/TabGroup/Tab.d.ts +3 -3
  48. package/dist/src/controls/TabGroup/TabGroup.d.ts +0 -1
  49. package/dist/src/controls/TabGroup/TabGroupComponent.d.ts +0 -1
  50. package/dist/src/controls/TabGroup/models/Tab.d.ts +2 -1
  51. package/dist/src/controls/TableView/TableView.d.ts +2 -0
  52. package/dist/src/controls/TableView/TableViewConstants.d.ts +8 -2
  53. package/dist/src/controls/TableView/models/TableViewMenuItem.d.ts +2 -0
  54. package/dist/src/controls/TableView/services/TableViewService.d.ts +5 -0
  55. package/dist/src/controls/TableView/services/impl/TableViewServiceImpl.d.ts +7 -1
  56. package/dist/src/controls/View/View.d.ts +1 -1
  57. package/dist/src/controls/ViewPart/ViewPart.d.ts +2 -1
  58. package/dist/src/models/Item.d.ts +0 -1
  59. package/dist/src/models/ItemCopyRequest.d.ts +5 -1
  60. package/dist/src/models/ItemId.d.ts +2 -0
  61. package/dist/src/services/FileService.d.ts +8 -0
  62. package/dist/src/services/ItemSelectDialogService.d.ts +1 -1
  63. package/dist/src/services.d.ts +3 -0
  64. package/lib/dxf-viewer/OrbitControls.js +6 -2
  65. package/lib/dxf-viewer/parser/DxfArrayScanner.js +27 -1
  66. package/lib/dxf-viewer/parser/DxfParser.js +7 -4
  67. package/lib/fflate/fflate.module.js +2672 -0
  68. package/package.json +1 -1
  69. package/src/controls/BimViewer/js/bim-viewer.js +20 -32
  70. package/src/controls/DxfViewer/js/dxf-viewer.js +170 -60
  71. package/src/controls/PdfViewer/js/pdf-viewer.js +993 -56
  72. package/css/std/controls/file/img/file-button-context.svg +0 -6
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vitrosoftware/common-ui-ts",
3
- "version": "1.1.227",
3
+ "version": "1.1.229",
4
4
  "description": "vitro software common ui ts",
5
5
  "author": "",
6
6
  "license": "MIT",
@@ -1,11 +1,11 @@
1
- import { BIMModel, BIMCommon, BIMAnnotation } from '/resource/bimViewer/js/bim-viewer-models.js?version=1.1.227';
1
+ import { BIMModel, BIMCommon, BIMAnnotation } from '/resource/bimViewer/js/bim-viewer-models.js?version=1.1.229';
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.227';
8
+ from '/resource/bimViewer/js/xeokit/xeokit-sdk.es.js?version=1.1.229';
9
9
 
10
10
 
11
11
  //----------------------------------------------------------------------------------------------------------------------
@@ -3275,35 +3275,23 @@ bindUpdatePage();
3275
3275
 
3276
3276
  function updatePage(e) {
3277
3277
  if (e.type === context.updateIssueEvent) {
3278
-
3279
- let item = e.detail.itemList[0];
3280
- let data = getMarkupData(item);
3281
- annotations.destroyAnnotation(item.fieldValueMap.item_id);
3282
- createNote(data);
3283
-
3284
- const itemId = {
3285
- id: item.id,
3286
- contentTypeId: item.contentTypeId,
3287
- listId: item.listId,
3288
- parentId: item.parentId,
3289
- siteId: item.siteId
3290
- };
3291
-
3292
- let event = new CustomEvent('vitro.item.changed', {
3293
- detail: {
3294
- itemIdList: [itemId],
3295
- listId: item.listId
3296
- }
3297
- });
3298
- window.dispatchEvent(event);
3299
- setTimeout(function () {
3300
- if (isNoteDescriptionVisible(data.id)) {
3301
- annotations.annotations[data.id].setLabelShown(true);
3302
- } else {
3303
- annotations.annotations[data.id].setLabelShown(false);
3304
- }
3305
- }, 10);
3306
- setTimeout(function () { refreshIssueList(); }, 250);
3278
+ const item = e.detail.itemList[0];
3279
+ if (item.fieldValueMap?.markup) {
3280
+ const data = getMarkupData(item);
3281
+ annotations.destroyAnnotation(item.fieldValueMap.item_id);
3282
+ createNote(data);
3283
+ setTimeout(function () {
3284
+ if (isNoteDescriptionVisible(data.id)) {
3285
+ annotations.annotations[data.id].setLabelShown(true);
3286
+ } else {
3287
+ annotations.annotations[data.id].setLabelShown(false);
3288
+ }
3289
+ }, 10);
3290
+ }
3291
+
3292
+ if (!$('#btnToggleSidebarNotes').hasClass('toggled')) {
3293
+ refreshIssueList();
3294
+ }
3307
3295
  }
3308
3296
 
3309
3297
  if (e.type === context.deleteIssueEvent) {
@@ -3885,7 +3873,7 @@ function bindBtnAddModel() {
3885
3873
 
3886
3874
  const filePath = context.getFilePath(itemAttach.id);
3887
3875
  const fileName = context.file.fieldValueMap?.name;
3888
- const model = new BIMCommon.VitroModel(itemId, versionStr, filePath, fileName);
3876
+ const model = new BIMCommon.VitroModel(itemId, undefined, filePath, fileName);
3889
3877
 
3890
3878
  BIMCommon.ModelList.push(model);
3891
3879
 
@@ -1,17 +1,18 @@
1
- import * as three from '/resource/dxfViewer/js/three/three.module.js?version=1.1.227';
2
- import { Matrix3, Vector2 } from '/resource/dxfViewer/js/three/three.module.js?version=1.1.227';
3
- import { Batch, DxfViewer, Layer } from '/resource/dxfViewer/js/viewer/DxfViewer.js?version=1.1.227';
4
- import { Block as SceneBlock } from '/resource/dxfViewer/js/viewer/DxfScene.js?version=1.1.227';
5
- import { Block } from '/resource/dxfViewer/js/viewer/DxfViewer.js?version=1.1.227';
6
- import { DxfScene, Entity, ColorCode } from '/resource/dxfViewer/js/viewer/DxfScene.js?version=1.1.227';
7
- import { TextRenderer, ParseSpecialChars, HAlign, VAlign } from '/resource/dxfViewer/js/viewer/TextRenderer.js?version=1.1.227';
8
- import { DxfWorker } from '/resource/dxfViewer/js/viewer/DxfWorker.js?version=1.1.227';
9
- import { DxfFetcher } from '/resource/dxfViewer/js/viewer/DxfFetcher.js?version=1.1.227';
10
- import DxfParser from '/resource/dxfViewer/js/viewer/parser/DxfParser.js?version=1.1.227';
11
- import { RenderBatch } from '/resource/dxfViewer/js/viewer/DxfScene.js?version=1.1.227';
12
- import { DynamicBuffer, NativeType } from '/resource/dxfViewer/js/viewer/DynamicBuffer.js?version=1.1.227';
13
- import { OrbitControls } from '/resource/dxfViewer/js/viewer/OrbitControls.js?version=1.1.227';
14
- import { CSS2DRenderer, CSS2DObject } from '/resource/dxfViewer/js/three/three.module.js?version=1.1.227';
1
+ import * as three from '/resource/dxfViewer/js/three/three.module.js?version=1.1.229';
2
+ import { Matrix3, Vector2 } from '/resource/dxfViewer/js/three/three.module.js?version=1.1.229';
3
+ import { Batch, DxfViewer, Layer } from '/resource/dxfViewer/js/viewer/DxfViewer.js?version=1.1.229';
4
+ import { Block as SceneBlock } from '/resource/dxfViewer/js/viewer/DxfScene.js?version=1.1.229';
5
+ import { Block } from '/resource/dxfViewer/js/viewer/DxfViewer.js?version=1.1.229';
6
+ import { DxfScene, Entity, ColorCode } from '/resource/dxfViewer/js/viewer/DxfScene.js?version=1.1.229';
7
+ import { TextRenderer, ParseSpecialChars, HAlign, VAlign } from '/resource/dxfViewer/js/viewer/TextRenderer.js?version=1.1.229';
8
+ import { DxfWorker } from '/resource/dxfViewer/js/viewer/DxfWorker.js?version=1.1.229';
9
+ import { DxfFetcher } from '/resource/dxfViewer/js/viewer/DxfFetcher.js?version=1.1.229';
10
+ import DxfParser from '/resource/dxfViewer/js/viewer/parser/DxfParser.js?version=1.1.229';
11
+ import { RenderBatch } from '/resource/dxfViewer/js/viewer/DxfScene.js?version=1.1.229';
12
+ import { DynamicBuffer, NativeType } from '/resource/dxfViewer/js/viewer/DynamicBuffer.js?version=1.1.229';
13
+ import { OrbitControls } from '/resource/dxfViewer/js/viewer/OrbitControls.js?version=1.1.229';
14
+ import { CSS2DRenderer, CSS2DObject } from '/resource/dxfViewer/js/three/three.module.js?version=1.1.229';
15
+ import { Unzip, UnzipInflate } from '/resource/dxfViewer/js/fflate/fflate.module.js?version=1.1.229'
15
16
 
16
17
  let treeViewData = [];
17
18
  let notes = [];
@@ -449,6 +450,18 @@ export class VitroDxfScene extends DxfScene {
449
450
  delete this.overlays
450
451
  }
451
452
 
453
+ _BuildScene() {
454
+ const scene = super._BuildScene()
455
+
456
+ scene.layers = []
457
+ for (const layer of this.layers.values()) {
458
+ layer.isVisible = layer.visible && !layer.frozen
459
+ scene.layers.push(layer)
460
+ }
461
+
462
+ return scene
463
+ }
464
+
452
465
  _ProcessLayers(dxf, xrefMap) {
453
466
  if (xrefMap) {
454
467
  for (const [, xref] of Object.entries(xrefMap)) {
@@ -1195,7 +1208,8 @@ export class Viewer extends DxfViewer {
1195
1208
  options.colorCorrection = true
1196
1209
  options.clearColor = new three.Color("#fff")
1197
1210
  options.buildScene = true
1198
- options.retainParsedDxf = true
1211
+ options.retainParsedDxf = true,
1212
+ options.autoZoom = true
1199
1213
  }
1200
1214
 
1201
1215
  super(domContainer, options)
@@ -1331,7 +1345,9 @@ export class Viewer extends DxfViewer {
1331
1345
  this.hasMissingChars = scene.hasMissingChars
1332
1346
 
1333
1347
  for (const layer of scene.layers) {
1334
- this.layers.set(layer.name, new Layer(layer.name, layer.displayName, layer.color))
1348
+ const layerObj = new Layer(layer.name, layer.displayName, layer.color)
1349
+ layerObj.isVisible = layer.isVisible
1350
+ this.layers.set(layer.name, layerObj)
1335
1351
  }
1336
1352
 
1337
1353
  /* Load all blocks on the first pass. */
@@ -1436,6 +1452,7 @@ export class Viewer extends DxfViewer {
1436
1452
  this._Emit("added", { obj })
1437
1453
  if (layer) {
1438
1454
  layer.PushObject(obj)
1455
+ obj.visible = layer.isVisible
1439
1456
  }
1440
1457
  }
1441
1458
  }
@@ -1573,13 +1590,13 @@ export class Viewer extends DxfViewer {
1573
1590
  deltaY: 1,
1574
1591
  deltaMode: 0
1575
1592
  })
1576
- this.canvas.dispatchEvent(wheelEvent)
1593
+ this.canvas.dispatchEvent(wheelEvent);
1577
1594
  wheelEvent = new WheelEvent('wheel', {
1578
1595
  deltaY: -1,
1579
1596
  deltaMode: 0,
1580
1597
  position: [0, 0, 0]
1581
1598
  })
1582
- this.canvas.dispatchEvent(wheelEvent)
1599
+ this.canvas.dispatchEvent(wheelEvent);
1583
1600
  }
1584
1601
 
1585
1602
  RenderVieports(space) {
@@ -1964,6 +1981,7 @@ export class Viewer extends DxfViewer {
1964
1981
  }
1965
1982
 
1966
1983
  ZoomIn(scale) {
1984
+ this.options.autoZoom = false;
1967
1985
  const centerX = this.canvasWidth / 2 * window.devicePixelRatio;
1968
1986
  const centerY = this.canvasHeight / 2 * window.devicePixelRatio;
1969
1987
  scale = scale ? scale : Math.pow(0.95, 3);
@@ -1972,6 +1990,7 @@ export class Viewer extends DxfViewer {
1972
1990
  }
1973
1991
 
1974
1992
  ZoomOut(scale) {
1993
+ this.options.autoZoom = false;
1975
1994
  const centerX = this.canvasWidth / 2 * window.devicePixelRatio;
1976
1995
  const centerY = this.canvasHeight / 2 * window.devicePixelRatio;
1977
1996
  scale = scale ? scale : Math.pow(0.95, 3);
@@ -2264,6 +2283,11 @@ export class Annotation extends Drawable {
2264
2283
 
2265
2284
  /** Fetches and parses DXF file. */
2266
2285
  export class VitroDxfFetcher extends DxfFetcher {
2286
+ constructor(url, encoding = "utf-8") {
2287
+ super(url, encoding)
2288
+ this.tail = ""
2289
+ this.dxfChunkArray = []
2290
+ }
2267
2291
 
2268
2292
  async SyncFetch() {
2269
2293
  //const response = fetch(this.url)
@@ -2309,6 +2333,11 @@ export class VitroDxfFetcher extends DxfFetcher {
2309
2333
  async Fetch(progressCbk = null) {
2310
2334
  const response = await fetch(this.url)
2311
2335
  const fileName = this._getFileName(response)
2336
+
2337
+ if (fileName.endsWith(".zdxf")) {
2338
+ return await this._processZip(response, progressCbk);
2339
+ }
2340
+
2312
2341
  const totalSize = +response.headers.get('Content-Length')
2313
2342
 
2314
2343
  const reader = response.body.getReader()
@@ -2331,14 +2360,10 @@ export class VitroDxfFetcher extends DxfFetcher {
2331
2360
  }
2332
2361
  }
2333
2362
 
2334
- if (fileName.endsWith(".zdxf")) {
2335
- return await this._processZip(buffer, progressCbk);
2336
- }
2337
-
2338
2363
  return this._decodeAndParse(buffer, progressCbk);
2339
2364
  }
2340
2365
 
2341
- _decodeAndParse(buffer, progressCbk) {
2366
+ _decodeAndParse(buffer, progressCbk, fetcher = null) {
2342
2367
  const decoder = new TextDecoder('utf-8');
2343
2368
  const parser = new DxfParser();
2344
2369
 
@@ -2346,23 +2371,87 @@ export class VitroDxfFetcher extends DxfFetcher {
2346
2371
  progressCbk("parse", 0, null)
2347
2372
  }
2348
2373
 
2349
- return parser.parseSync(decoder.decode(buffer));
2374
+ return parser.parseSync(decoder.decode(buffer), fetcher);
2350
2375
  }
2351
2376
 
2352
- async _processZip(zipBuffer, progressCbk) {
2353
- const zip = await JSZip.loadAsync(zipBuffer);
2354
- const dxfFile = Object.keys(zip.files).find((file) => file.endsWith(".dxf"));
2377
+ async _processZip(response, progressCbk) {
2378
+ const reader = response.body.getReader()
2379
+ const decoder = new TextDecoder('utf-8');
2380
+
2381
+ const unzipper = new Unzip();
2382
+ unzipper.register(UnzipInflate)
2383
+ unzipper.onfile = file => {
2384
+ if (!file.name.toLowerCase().endsWith('.dxf')) {
2385
+ // ���������� ������ �����
2386
+ file.ondata = () => { };
2387
+ file.start();
2388
+ return;
2389
+ }
2390
+
2391
+ const totalSize = file.size;
2392
+ let processed = 0;
2393
+
2394
+ if (progressCbk)
2395
+ progressCbk('extract', 0, null);
2355
2396
 
2356
- if (!dxfFile) {
2357
- throw new Error("DXF-file not found.");
2397
+ file.ondata = (err, chunk, final) => {
2398
+ if (err) {
2399
+ console.log(err);
2400
+ return;
2401
+ }
2402
+
2403
+ processed += chunk.byteLength;
2404
+ const buffer = decoder.decode(chunk, { stream: !final });
2405
+ this.DxfChunkParser(buffer);
2406
+
2407
+ if (progressCbk && totalSize > 0) {
2408
+ progressCbk('extract', processed / totalSize, { processed, totalSize });
2409
+ }
2410
+ };
2411
+
2412
+ file.start(); // ��������� ���������� �����
2413
+ };
2414
+
2415
+ // ������ Unzip ������� ZIP-�����
2416
+ while (true) {
2417
+ const { value, done } = await reader.read();
2418
+ if (done) {
2419
+ unzipper.push(new Uint8Array(0), true); // ������ EOF
2420
+ break;
2421
+ }
2422
+ unzipper.push(value, false);
2358
2423
  }
2359
2424
 
2360
- if (progressCbk !== null) {
2361
- progressCbk("extract", 0, null);
2425
+ const firstString = this.dxfChunkArray[0]
2426
+ this.dxfChunkArray = this.dxfChunkArray.slice(1)
2427
+ const parser = new DxfParser(this)
2428
+ return parser.parseSync(firstString)
2429
+ }
2430
+
2431
+ DxfChunkParser(buffer) {
2432
+ if (buffer[0] == '\n')
2433
+ buffer = buffer.substring(1)
2434
+ buffer = this.tail + buffer
2435
+ const nFn = buffer.lastIndexOf('\n')
2436
+ const nFr = buffer.lastIndexOf('\r')
2437
+ let nF = Math.max(nFn, nFr)
2438
+ this.tail = buffer.substring(nF + 1)
2439
+ if (nFn - nFr == 1)
2440
+ nF--
2441
+ buffer = buffer.substring(0, nF)
2442
+ this.dxfChunkArray.push(buffer);
2443
+ }
2444
+
2445
+
2446
+ GetNextChunk() {
2447
+ if (this.dxfChunkArray.length == 0) {
2448
+ return null
2362
2449
  }
2363
- const fileData = await zip.file(dxfFile).async("uint8array");
2364
2450
 
2365
- return this._decodeAndParse(fileData, progressCbk);
2451
+ const firstString = this.dxfChunkArray[0]
2452
+ this.dxfChunkArray = this.dxfChunkArray.slice(1)
2453
+ firstString.split(/\r\n|\r|\n/g)
2454
+ return firstString.split(/\r\n|\r|\n/g)
2366
2455
  }
2367
2456
 
2368
2457
  }
@@ -3266,24 +3355,35 @@ for (const eventName of ['loaded', 'cleared', 'destroyed', 'resized', 'pointerdo
3266
3355
  Subscribe(eventName);
3267
3356
  }
3268
3357
 
3358
+ let lastWheelClickTime = 0;
3359
+ const wheelDblClickThreshold = 400;
3360
+
3269
3361
  function emit(eventName, event) {
3270
3362
  if (eventName == 'dxf-pointerdown' && event.detail.domEvent.button == 1) {
3271
- var layout = null;
3272
- const viewer = window.dxfViewer;
3273
- const scene = viewer.scene;
3274
- for (let i = 0; i < scene.layouts.length; i++) {
3275
- if (window.dxfViewer.spaceName === scene.layouts[i].space) {
3276
- if (i == scene.layouts.length - 1)
3277
- layout = scene.layouts[0];
3278
- else
3279
- layout = scene.layouts[i + 1];
3280
-
3281
- break;
3363
+ const now = Date.now();
3364
+ if (now - lastWheelClickTime < wheelDblClickThreshold) {
3365
+ doZoomAuto();
3366
+ lastWheelClickTime = 0;
3367
+ } else {
3368
+ lastWheelClickTime = now;
3369
+
3370
+ var layout = null;
3371
+ const viewer = window.dxfViewer;
3372
+ const scene = viewer.scene;
3373
+ for (let i = 0; i < scene.layouts.length; i++) {
3374
+ if (window.dxfViewer.spaceName === scene.layouts[i].space) {
3375
+ if (i == scene.layouts.length - 1)
3376
+ layout = scene.layouts[0];
3377
+ else
3378
+ layout = scene.layouts[i + 1];
3379
+
3380
+ break;
3381
+ }
3282
3382
  }
3283
- }
3284
3383
 
3285
- if (layout) {
3286
-
3384
+ if (layout) {
3385
+
3386
+ }
3287
3387
  }
3288
3388
  }
3289
3389
  else if (eventName == 'dxf-pointerdown' && event.detail.domEvent.button == 0) {
@@ -3331,7 +3431,7 @@ function emit(eventName, event) {
3331
3431
  }
3332
3432
  }
3333
3433
  else if (eventName == 'dxf-viewChanged') {
3334
- if (+$('#scaleSelect').data('value') && dxfViewer.camera.zoom !== 1) {
3434
+ if (dxfViewer.camera.zoom !== 1 && !window.dxfViewer.options.autoZoom) {
3335
3435
  updateScaleSelectValue();
3336
3436
  }
3337
3437
  anno.UpdateLabelPosition();
@@ -3398,20 +3498,25 @@ function updatePage(e) {
3398
3498
  refreshIssueList();
3399
3499
  }
3400
3500
 
3401
- if (e.type === context.updateIssueEvent && markup) {
3402
- const newNote = {
3403
- id: item.fieldValueMap.item_id,
3404
- markup: markup,
3405
- statusColor: item.fieldValueMap['task_status']?.fieldValueMap?.color || '',
3406
- }
3407
- const spaceHandle = getCurrentSpaceHandle();
3408
- if (spaceHandle) {
3409
- deleteNote(newNote.id);
3410
- initNote(newNote, spaceHandle);
3501
+ if (e.type === context.updateIssueEvent) {
3502
+ if (!$('#btnToggleSidebarNotes').hasClass('toggled')) {
3503
+ refreshIssueList();
3411
3504
  }
3505
+ if (markup) {
3506
+ const newNote = {
3507
+ id: item.fieldValueMap.item_id,
3508
+ markup: markup,
3509
+ statusColor: item.fieldValueMap['task_status']?.fieldValueMap?.color || '',
3510
+ };
3511
+ const spaceHandle = getCurrentSpaceHandle();
3512
+ if (spaceHandle) {
3513
+ deleteNote(newNote.id);
3514
+ initNote(newNote, spaceHandle);
3515
+ }
3412
3516
 
3413
- if ($('#btnCreateNotes').hasClass('toggled')) {
3414
- anno.Create();
3517
+ if ($('#btnCreateNotes').hasClass('toggled')) {
3518
+ anno.Create();
3519
+ }
3415
3520
  }
3416
3521
  }
3417
3522
 
@@ -3570,12 +3675,17 @@ function doZoomPageFit() {
3570
3675
  function doZoomAuto() {
3571
3676
  doZoomPageFit();
3572
3677
  window.dxfViewer.DoFakeZoomToRedrawScene();
3678
+ $('#pageAutoOption').text(context.scaleAutoLabel);
3679
+ $('#scaleSelect').data('value', $('#scaleSelect').val());
3680
+ $('#scaleSelect').val(context.scaleAutoLabel);
3573
3681
  }
3574
3682
 
3575
3683
  function changeZoom(scale) {
3576
3684
  if (scale === 'auto') {
3685
+ window.dxfViewer.options.autoZoom = true;
3577
3686
  doZoomAuto();
3578
3687
  } else {
3688
+ window.dxfViewer.options.autoZoom = false;
3579
3689
  scale = +scale;
3580
3690
  if (scale === 1) {
3581
3691
  doZoomPageFit();