@thatopen/components 2.4.9 → 2.4.10

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/dist/index.cjs CHANGED
@@ -6609,7 +6609,7 @@ const _Components = class _Components {
6609
6609
  /**
6610
6610
  * The version of the @thatopen/components library.
6611
6611
  */
6612
- __publicField(_Components, "release", "2.4.9");
6612
+ __publicField(_Components, "release", "2.4.10");
6613
6613
  let Components = _Components;
6614
6614
  class SimpleWorld extends Base {
6615
6615
  constructor() {
@@ -7179,20 +7179,24 @@ const ACTION = Object.freeze({
7179
7179
  NONE: 0,
7180
7180
  ROTATE: 1,
7181
7181
  TRUCK: 2,
7182
- OFFSET: 4,
7183
- DOLLY: 8,
7184
- ZOOM: 16,
7185
- TOUCH_ROTATE: 32,
7186
- TOUCH_TRUCK: 64,
7187
- TOUCH_OFFSET: 128,
7188
- TOUCH_DOLLY: 256,
7189
- TOUCH_ZOOM: 512,
7190
- TOUCH_DOLLY_TRUCK: 1024,
7191
- TOUCH_DOLLY_OFFSET: 2048,
7192
- TOUCH_DOLLY_ROTATE: 4096,
7193
- TOUCH_ZOOM_TRUCK: 8192,
7194
- TOUCH_ZOOM_OFFSET: 16384,
7195
- TOUCH_ZOOM_ROTATE: 32768
7182
+ SCREEN_PAN: 4,
7183
+ OFFSET: 8,
7184
+ DOLLY: 16,
7185
+ ZOOM: 32,
7186
+ TOUCH_ROTATE: 64,
7187
+ TOUCH_TRUCK: 128,
7188
+ TOUCH_SCREEN_PAN: 256,
7189
+ TOUCH_OFFSET: 512,
7190
+ TOUCH_DOLLY: 1024,
7191
+ TOUCH_ZOOM: 2048,
7192
+ TOUCH_DOLLY_TRUCK: 4096,
7193
+ TOUCH_DOLLY_SCREEN_PAN: 8192,
7194
+ TOUCH_DOLLY_OFFSET: 16384,
7195
+ TOUCH_DOLLY_ROTATE: 32768,
7196
+ TOUCH_ZOOM_TRUCK: 65536,
7197
+ TOUCH_ZOOM_OFFSET: 131072,
7198
+ TOUCH_ZOOM_SCREEN_PAN: 262144,
7199
+ TOUCH_ZOOM_ROTATE: 524288
7196
7200
  });
7197
7201
  const DOLLY_DIRECTION = {
7198
7202
  NONE: 0,
@@ -7391,11 +7395,10 @@ class EventDispatcher {
7391
7395
  }
7392
7396
  }
7393
7397
  }
7394
- const VERSION = "2.7.3";
7398
+ var _a;
7399
+ const VERSION = "2.10.1";
7395
7400
  const TOUCH_DOLLY_FACTOR = 1 / 8;
7396
- const isBrowser = typeof window !== "undefined";
7397
- const isMac = isBrowser && /Mac/.test(navigator.platform);
7398
- const isPointerEventsNotSupported = !(isBrowser && "PointerEvent" in window);
7401
+ const isMac = /Mac/.test((_a = globalThis === null || globalThis === void 0 ? void 0 : globalThis.navigator) === null || _a === void 0 ? void 0 : _a.platform);
7399
7402
  let THREE;
7400
7403
  let _ORIGIN;
7401
7404
  let _AXIS_Y;
@@ -7492,6 +7495,12 @@ class CameraControls extends EventDispatcher {
7492
7495
  static get ACTION() {
7493
7496
  return ACTION;
7494
7497
  }
7498
+ /**
7499
+ * @deprecated Use `cameraControls.mouseButtons.left = CameraControls.ACTION.SCREEN_PAN` instead.
7500
+ */
7501
+ set verticalDragToForward(_) {
7502
+ console.warn("camera-controls: `verticalDragToForward` was removed. Use `mouseButtons.left = CameraControls.ACTION.SCREEN_PAN` instead.");
7503
+ }
7495
7504
  /**
7496
7505
  * Creates a `CameraControls` instance.
7497
7506
  *
@@ -7530,7 +7539,6 @@ class CameraControls extends EventDispatcher {
7530
7539
  this.truckSpeed = 2;
7531
7540
  this.dollyToCursor = false;
7532
7541
  this.dragToOffset = false;
7533
- this.verticalDragToForward = false;
7534
7542
  this.boundaryFriction = 0;
7535
7543
  this.restThreshold = 0.01;
7536
7544
  this.colliderMeshes = [];
@@ -7563,7 +7571,7 @@ class CameraControls extends EventDispatcher {
7563
7571
  this._targetVelocity = new THREE.Vector3();
7564
7572
  this._focalOffsetVelocity = new THREE.Vector3();
7565
7573
  this._zoomVelocity = { value: 0 };
7566
- this._truckInternal = (deltaX, deltaY, dragToOffset) => {
7574
+ this._truckInternal = (deltaX, deltaY, dragToOffset, screenSpacePanning) => {
7567
7575
  let truckX;
7568
7576
  let pedestalY;
7569
7577
  if (isPerspectiveCamera(this._camera)) {
@@ -7574,12 +7582,12 @@ class CameraControls extends EventDispatcher {
7574
7582
  pedestalY = this.truckSpeed * deltaY * targetDistance / this._elementRect.height;
7575
7583
  } else if (isOrthographicCamera(this._camera)) {
7576
7584
  const camera2 = this._camera;
7577
- truckX = deltaX * (camera2.right - camera2.left) / camera2.zoom / this._elementRect.width;
7578
- pedestalY = deltaY * (camera2.top - camera2.bottom) / camera2.zoom / this._elementRect.height;
7585
+ truckX = this.truckSpeed * deltaX * (camera2.right - camera2.left) / camera2.zoom / this._elementRect.width;
7586
+ pedestalY = this.truckSpeed * deltaY * (camera2.top - camera2.bottom) / camera2.zoom / this._elementRect.height;
7579
7587
  } else {
7580
7588
  return;
7581
7589
  }
7582
- if (this.verticalDragToForward) {
7590
+ if (screenSpacePanning) {
7583
7591
  dragToOffset ? this.setFocalOffset(this._focalOffsetEnd.x + truckX, this._focalOffsetEnd.y, this._focalOffsetEnd.z, true) : this.truck(truckX, 0, true);
7584
7592
  this.forward(-pedestalY, true);
7585
7593
  } else {
@@ -7699,37 +7707,6 @@ class CameraControls extends EventDispatcher {
7699
7707
  this._isDragging = true;
7700
7708
  startDragging(event);
7701
7709
  };
7702
- const onMouseDown = (event) => {
7703
- if (!this._enabled || !this._domElement || this._lockedPointer)
7704
- return;
7705
- if (this._interactiveArea.left !== 0 || this._interactiveArea.top !== 0 || this._interactiveArea.width !== 1 || this._interactiveArea.height !== 1) {
7706
- const elRect = this._domElement.getBoundingClientRect();
7707
- const left = event.clientX / elRect.width;
7708
- const top = event.clientY / elRect.height;
7709
- if (left < this._interactiveArea.left || left > this._interactiveArea.right || top < this._interactiveArea.top || top > this._interactiveArea.bottom)
7710
- return;
7711
- }
7712
- const mouseButton = (event.buttons & MOUSE_BUTTON.LEFT) === MOUSE_BUTTON.LEFT ? MOUSE_BUTTON.LEFT : (event.buttons & MOUSE_BUTTON.MIDDLE) === MOUSE_BUTTON.MIDDLE ? MOUSE_BUTTON.MIDDLE : (event.buttons & MOUSE_BUTTON.RIGHT) === MOUSE_BUTTON.RIGHT ? MOUSE_BUTTON.RIGHT : null;
7713
- if (mouseButton !== null) {
7714
- const zombiePointer = this._findPointerByMouseButton(mouseButton);
7715
- zombiePointer && this._disposePointer(zombiePointer);
7716
- }
7717
- const pointer = {
7718
- pointerId: 1,
7719
- clientX: event.clientX,
7720
- clientY: event.clientY,
7721
- deltaX: 0,
7722
- deltaY: 0,
7723
- mouseButton: (event.buttons & MOUSE_BUTTON.LEFT) === MOUSE_BUTTON.LEFT ? MOUSE_BUTTON.LEFT : (event.buttons & MOUSE_BUTTON.MIDDLE) === MOUSE_BUTTON.LEFT ? MOUSE_BUTTON.MIDDLE : (event.buttons & MOUSE_BUTTON.RIGHT) === MOUSE_BUTTON.LEFT ? MOUSE_BUTTON.RIGHT : null
7724
- };
7725
- this._activePointers.push(pointer);
7726
- this._domElement.ownerDocument.removeEventListener("mousemove", onMouseMove);
7727
- this._domElement.ownerDocument.removeEventListener("mouseup", onMouseUp);
7728
- this._domElement.ownerDocument.addEventListener("mousemove", onMouseMove);
7729
- this._domElement.ownerDocument.addEventListener("mouseup", onMouseUp);
7730
- this._isDragging = true;
7731
- startDragging(event);
7732
- };
7733
7710
  const onPointerMove2 = (event) => {
7734
7711
  if (event.cancelable)
7735
7712
  event.preventDefault();
@@ -7767,26 +7744,6 @@ class CameraControls extends EventDispatcher {
7767
7744
  }
7768
7745
  dragging();
7769
7746
  };
7770
- const onMouseMove = (event) => {
7771
- const pointer = this._lockedPointer || this._findPointerById(1);
7772
- if (!pointer)
7773
- return;
7774
- pointer.clientX = event.clientX;
7775
- pointer.clientY = event.clientY;
7776
- pointer.deltaX = event.movementX;
7777
- pointer.deltaY = event.movementY;
7778
- this._state = 0;
7779
- if (this._lockedPointer || (event.buttons & MOUSE_BUTTON.LEFT) === MOUSE_BUTTON.LEFT) {
7780
- this._state = this._state | this.mouseButtons.left;
7781
- }
7782
- if ((event.buttons & MOUSE_BUTTON.MIDDLE) === MOUSE_BUTTON.MIDDLE) {
7783
- this._state = this._state | this.mouseButtons.middle;
7784
- }
7785
- if ((event.buttons & MOUSE_BUTTON.RIGHT) === MOUSE_BUTTON.RIGHT) {
7786
- this._state = this._state | this.mouseButtons.right;
7787
- }
7788
- dragging();
7789
- };
7790
7747
  const onPointerUp2 = (event) => {
7791
7748
  const pointer = this._findPointerById(event.pointerId);
7792
7749
  if (pointer && pointer === this._lockedPointer)
@@ -7812,14 +7769,6 @@ class CameraControls extends EventDispatcher {
7812
7769
  }
7813
7770
  endDragging();
7814
7771
  };
7815
- const onMouseUp = () => {
7816
- const pointer = this._findPointerById(1);
7817
- if (pointer && pointer === this._lockedPointer)
7818
- return;
7819
- pointer && this._disposePointer(pointer);
7820
- this._state = ACTION.NONE;
7821
- endDragging();
7822
- };
7823
7772
  let lastScrollTimeStamp = -1;
7824
7773
  const onMouseWheel = (event) => {
7825
7774
  if (!this._domElement)
@@ -7841,7 +7790,7 @@ class CameraControls extends EventDispatcher {
7841
7790
  lastScrollTimeStamp = now;
7842
7791
  }
7843
7792
  const deltaYFactor = isMac ? -1 : -3;
7844
- const delta = event.deltaMode === 1 ? event.deltaY / deltaYFactor : event.deltaY / (deltaYFactor * 10);
7793
+ const delta = event.deltaMode === 1 || event.ctrlKey ? event.deltaY / deltaYFactor : event.deltaY / (deltaYFactor * 10);
7845
7794
  const x = this.dollyToCursor ? (event.clientX - this._elementRect.x) / this._elementRect.width * 2 - 1 : 0;
7846
7795
  const y = this.dollyToCursor ? (event.clientY - this._elementRect.y) / this._elementRect.height * -2 + 1 : 0;
7847
7796
  switch (this.mouseButtons.wheel) {
@@ -7851,12 +7800,17 @@ class CameraControls extends EventDispatcher {
7851
7800
  break;
7852
7801
  }
7853
7802
  case ACTION.TRUCK: {
7854
- this._truckInternal(event.deltaX, event.deltaY, false);
7803
+ this._truckInternal(event.deltaX, event.deltaY, false, false);
7804
+ this._isUserControllingTruck = true;
7805
+ break;
7806
+ }
7807
+ case ACTION.SCREEN_PAN: {
7808
+ this._truckInternal(event.deltaX, event.deltaY, false, true);
7855
7809
  this._isUserControllingTruck = true;
7856
7810
  break;
7857
7811
  }
7858
7812
  case ACTION.OFFSET: {
7859
- this._truckInternal(event.deltaX, event.deltaY, true);
7813
+ this._truckInternal(event.deltaX, event.deltaY, true, false);
7860
7814
  this._isUserControllingOffset = true;
7861
7815
  break;
7862
7816
  }
@@ -7877,13 +7831,11 @@ class CameraControls extends EventDispatcher {
7877
7831
  if (!this._domElement || !this._enabled)
7878
7832
  return;
7879
7833
  if (this.mouseButtons.right === CameraControls.ACTION.NONE) {
7880
- const pointerId = event instanceof PointerEvent ? event.pointerId : event instanceof MouseEvent ? 0 : 0;
7834
+ const pointerId = event instanceof PointerEvent ? event.pointerId : 0;
7881
7835
  const pointer = this._findPointerById(pointerId);
7882
7836
  pointer && this._disposePointer(pointer);
7883
7837
  this._domElement.ownerDocument.removeEventListener("pointermove", onPointerMove2, { passive: false });
7884
7838
  this._domElement.ownerDocument.removeEventListener("pointerup", onPointerUp2);
7885
- this._domElement.ownerDocument.removeEventListener("mousemove", onMouseMove);
7886
- this._domElement.ownerDocument.removeEventListener("mouseup", onMouseUp);
7887
7839
  return;
7888
7840
  }
7889
7841
  event.preventDefault();
@@ -7938,15 +7890,15 @@ class CameraControls extends EventDispatcher {
7938
7890
  this._thetaVelocity.value = 0;
7939
7891
  this._phiVelocity.value = 0;
7940
7892
  }
7941
- if ((this._state & ACTION.TRUCK) === ACTION.TRUCK || (this._state & ACTION.TOUCH_TRUCK) === ACTION.TOUCH_TRUCK || (this._state & ACTION.TOUCH_DOLLY_TRUCK) === ACTION.TOUCH_DOLLY_TRUCK || (this._state & ACTION.TOUCH_ZOOM_TRUCK) === ACTION.TOUCH_ZOOM_TRUCK) {
7893
+ if ((this._state & ACTION.TRUCK) === ACTION.TRUCK || (this._state & ACTION.SCREEN_PAN) === ACTION.SCREEN_PAN || (this._state & ACTION.TOUCH_TRUCK) === ACTION.TOUCH_TRUCK || (this._state & ACTION.TOUCH_SCREEN_PAN) === ACTION.TOUCH_SCREEN_PAN || (this._state & ACTION.TOUCH_DOLLY_TRUCK) === ACTION.TOUCH_DOLLY_TRUCK || (this._state & ACTION.TOUCH_DOLLY_SCREEN_PAN) === ACTION.TOUCH_DOLLY_SCREEN_PAN || (this._state & ACTION.TOUCH_ZOOM_TRUCK) === ACTION.TOUCH_ZOOM_TRUCK || (this._state & ACTION.TOUCH_ZOOM_SCREEN_PAN) === ACTION.TOUCH_DOLLY_SCREEN_PAN) {
7942
7894
  this._targetEnd.copy(this._target);
7943
7895
  this._targetVelocity.set(0, 0, 0);
7944
7896
  }
7945
- if ((this._state & ACTION.DOLLY) === ACTION.DOLLY || (this._state & ACTION.TOUCH_DOLLY) === ACTION.TOUCH_DOLLY || (this._state & ACTION.TOUCH_DOLLY_TRUCK) === ACTION.TOUCH_DOLLY_TRUCK || (this._state & ACTION.TOUCH_DOLLY_OFFSET) === ACTION.TOUCH_DOLLY_OFFSET || (this._state & ACTION.TOUCH_DOLLY_ROTATE) === ACTION.TOUCH_DOLLY_ROTATE) {
7897
+ if ((this._state & ACTION.DOLLY) === ACTION.DOLLY || (this._state & ACTION.TOUCH_DOLLY) === ACTION.TOUCH_DOLLY || (this._state & ACTION.TOUCH_DOLLY_TRUCK) === ACTION.TOUCH_DOLLY_TRUCK || (this._state & ACTION.TOUCH_DOLLY_SCREEN_PAN) === ACTION.TOUCH_DOLLY_SCREEN_PAN || (this._state & ACTION.TOUCH_DOLLY_OFFSET) === ACTION.TOUCH_DOLLY_OFFSET || (this._state & ACTION.TOUCH_DOLLY_ROTATE) === ACTION.TOUCH_DOLLY_ROTATE) {
7946
7898
  this._sphericalEnd.radius = this._spherical.radius;
7947
7899
  this._radiusVelocity.value = 0;
7948
7900
  }
7949
- if ((this._state & ACTION.ZOOM) === ACTION.ZOOM || (this._state & ACTION.TOUCH_ZOOM) === ACTION.TOUCH_ZOOM || (this._state & ACTION.TOUCH_ZOOM_TRUCK) === ACTION.TOUCH_ZOOM_TRUCK || (this._state & ACTION.TOUCH_ZOOM_OFFSET) === ACTION.TOUCH_ZOOM_OFFSET || (this._state & ACTION.TOUCH_ZOOM_ROTATE) === ACTION.TOUCH_ZOOM_ROTATE) {
7901
+ if ((this._state & ACTION.ZOOM) === ACTION.ZOOM || (this._state & ACTION.TOUCH_ZOOM) === ACTION.TOUCH_ZOOM || (this._state & ACTION.TOUCH_ZOOM_TRUCK) === ACTION.TOUCH_ZOOM_TRUCK || (this._state & ACTION.TOUCH_ZOOM_SCREEN_PAN) === ACTION.TOUCH_ZOOM_SCREEN_PAN || (this._state & ACTION.TOUCH_ZOOM_OFFSET) === ACTION.TOUCH_ZOOM_OFFSET || (this._state & ACTION.TOUCH_ZOOM_ROTATE) === ACTION.TOUCH_ZOOM_ROTATE) {
7950
7902
  this._zoomEnd = this._zoom;
7951
7903
  this._zoomVelocity.value = 0;
7952
7904
  }
@@ -7961,7 +7913,7 @@ class CameraControls extends EventDispatcher {
7961
7913
  return;
7962
7914
  this._dragNeedsUpdate = false;
7963
7915
  extractClientCoordFromEvent(this._activePointers, _v2$1);
7964
- const isPointerLockActive = this._domElement && document.pointerLockElement === this._domElement;
7916
+ const isPointerLockActive = this._domElement && this._domElement.ownerDocument.pointerLockElement === this._domElement;
7965
7917
  const lockedPointer = isPointerLockActive ? this._lockedPointer || this._activePointers[0] : null;
7966
7918
  const deltaX = lockedPointer ? -lockedPointer.deltaX : lastDragPosition.x - _v2$1.x;
7967
7919
  const deltaY = lockedPointer ? -lockedPointer.deltaY : lastDragPosition.y - _v2$1.y;
@@ -7982,7 +7934,7 @@ class CameraControls extends EventDispatcher {
7982
7934
  this._isUserControllingZoom = true;
7983
7935
  }
7984
7936
  }
7985
- if ((this._state & ACTION.TOUCH_DOLLY) === ACTION.TOUCH_DOLLY || (this._state & ACTION.TOUCH_ZOOM) === ACTION.TOUCH_ZOOM || (this._state & ACTION.TOUCH_DOLLY_TRUCK) === ACTION.TOUCH_DOLLY_TRUCK || (this._state & ACTION.TOUCH_ZOOM_TRUCK) === ACTION.TOUCH_ZOOM_TRUCK || (this._state & ACTION.TOUCH_DOLLY_OFFSET) === ACTION.TOUCH_DOLLY_OFFSET || (this._state & ACTION.TOUCH_ZOOM_OFFSET) === ACTION.TOUCH_ZOOM_OFFSET || (this._state & ACTION.TOUCH_DOLLY_ROTATE) === ACTION.TOUCH_DOLLY_ROTATE || (this._state & ACTION.TOUCH_ZOOM_ROTATE) === ACTION.TOUCH_ZOOM_ROTATE) {
7937
+ if ((this._state & ACTION.TOUCH_DOLLY) === ACTION.TOUCH_DOLLY || (this._state & ACTION.TOUCH_ZOOM) === ACTION.TOUCH_ZOOM || (this._state & ACTION.TOUCH_DOLLY_TRUCK) === ACTION.TOUCH_DOLLY_TRUCK || (this._state & ACTION.TOUCH_ZOOM_TRUCK) === ACTION.TOUCH_ZOOM_TRUCK || (this._state & ACTION.TOUCH_DOLLY_SCREEN_PAN) === ACTION.TOUCH_DOLLY_SCREEN_PAN || (this._state & ACTION.TOUCH_ZOOM_SCREEN_PAN) === ACTION.TOUCH_ZOOM_SCREEN_PAN || (this._state & ACTION.TOUCH_DOLLY_OFFSET) === ACTION.TOUCH_DOLLY_OFFSET || (this._state & ACTION.TOUCH_ZOOM_OFFSET) === ACTION.TOUCH_ZOOM_OFFSET || (this._state & ACTION.TOUCH_DOLLY_ROTATE) === ACTION.TOUCH_DOLLY_ROTATE || (this._state & ACTION.TOUCH_ZOOM_ROTATE) === ACTION.TOUCH_ZOOM_ROTATE) {
7986
7938
  const dx = _v2$1.x - this._activePointers[1].clientX;
7987
7939
  const dy = _v2$1.y - this._activePointers[1].clientY;
7988
7940
  const distance = Math.sqrt(dx * dx + dy * dy);
@@ -7990,7 +7942,7 @@ class CameraControls extends EventDispatcher {
7990
7942
  dollyStart.set(0, distance);
7991
7943
  const dollyX = this.dollyToCursor ? (lastDragPosition.x - this._elementRect.x) / this._elementRect.width * 2 - 1 : 0;
7992
7944
  const dollyY = this.dollyToCursor ? (lastDragPosition.y - this._elementRect.y) / this._elementRect.height * -2 + 1 : 0;
7993
- if ((this._state & ACTION.TOUCH_DOLLY) === ACTION.TOUCH_DOLLY || (this._state & ACTION.TOUCH_DOLLY_ROTATE) === ACTION.TOUCH_DOLLY_ROTATE || (this._state & ACTION.TOUCH_DOLLY_TRUCK) === ACTION.TOUCH_DOLLY_TRUCK || (this._state & ACTION.TOUCH_DOLLY_OFFSET) === ACTION.TOUCH_DOLLY_OFFSET) {
7945
+ if ((this._state & ACTION.TOUCH_DOLLY) === ACTION.TOUCH_DOLLY || (this._state & ACTION.TOUCH_DOLLY_ROTATE) === ACTION.TOUCH_DOLLY_ROTATE || (this._state & ACTION.TOUCH_DOLLY_TRUCK) === ACTION.TOUCH_DOLLY_TRUCK || (this._state & ACTION.TOUCH_DOLLY_SCREEN_PAN) === ACTION.TOUCH_DOLLY_SCREEN_PAN || (this._state & ACTION.TOUCH_DOLLY_OFFSET) === ACTION.TOUCH_DOLLY_OFFSET) {
7994
7946
  this._dollyInternal(dollyDelta * TOUCH_DOLLY_FACTOR, dollyX, dollyY);
7995
7947
  this._isUserControllingDolly = true;
7996
7948
  } else {
@@ -7999,11 +7951,15 @@ class CameraControls extends EventDispatcher {
7999
7951
  }
8000
7952
  }
8001
7953
  if ((this._state & ACTION.TRUCK) === ACTION.TRUCK || (this._state & ACTION.TOUCH_TRUCK) === ACTION.TOUCH_TRUCK || (this._state & ACTION.TOUCH_DOLLY_TRUCK) === ACTION.TOUCH_DOLLY_TRUCK || (this._state & ACTION.TOUCH_ZOOM_TRUCK) === ACTION.TOUCH_ZOOM_TRUCK) {
8002
- this._truckInternal(deltaX, deltaY, false);
7954
+ this._truckInternal(deltaX, deltaY, false, false);
7955
+ this._isUserControllingTruck = true;
7956
+ }
7957
+ if ((this._state & ACTION.SCREEN_PAN) === ACTION.SCREEN_PAN || (this._state & ACTION.TOUCH_SCREEN_PAN) === ACTION.TOUCH_SCREEN_PAN || (this._state & ACTION.TOUCH_DOLLY_SCREEN_PAN) === ACTION.TOUCH_DOLLY_SCREEN_PAN || (this._state & ACTION.TOUCH_ZOOM_SCREEN_PAN) === ACTION.TOUCH_ZOOM_SCREEN_PAN) {
7958
+ this._truckInternal(deltaX, deltaY, false, true);
8003
7959
  this._isUserControllingTruck = true;
8004
7960
  }
8005
7961
  if ((this._state & ACTION.OFFSET) === ACTION.OFFSET || (this._state & ACTION.TOUCH_OFFSET) === ACTION.TOUCH_OFFSET || (this._state & ACTION.TOUCH_DOLLY_OFFSET) === ACTION.TOUCH_DOLLY_OFFSET || (this._state & ACTION.TOUCH_ZOOM_OFFSET) === ACTION.TOUCH_ZOOM_OFFSET) {
8006
- this._truckInternal(deltaX, deltaY, true);
7962
+ this._truckInternal(deltaX, deltaY, true, false);
8007
7963
  this._isUserControllingOffset = true;
8008
7964
  }
8009
7965
  this.dispatchEvent({ type: "control" });
@@ -8017,9 +7973,7 @@ class CameraControls extends EventDispatcher {
8017
7973
  }
8018
7974
  if (this._activePointers.length === 0 && this._domElement) {
8019
7975
  this._domElement.ownerDocument.removeEventListener("pointermove", onPointerMove2, { passive: false });
8020
- this._domElement.ownerDocument.removeEventListener("mousemove", onMouseMove);
8021
7976
  this._domElement.ownerDocument.removeEventListener("pointerup", onPointerUp2);
8022
- this._domElement.ownerDocument.removeEventListener("mouseup", onMouseUp);
8023
7977
  this.dispatchEvent({ type: "controlend" });
8024
7978
  }
8025
7979
  };
@@ -8046,16 +8000,15 @@ class CameraControls extends EventDispatcher {
8046
8000
  startDragging();
8047
8001
  };
8048
8002
  this.unlockPointer = () => {
8003
+ var _a2, _b, _c;
8049
8004
  if (this._lockedPointer !== null) {
8050
8005
  this._disposePointer(this._lockedPointer);
8051
8006
  this._lockedPointer = null;
8052
8007
  }
8053
- document.exitPointerLock();
8008
+ (_a2 = this._domElement) === null || _a2 === void 0 ? void 0 : _a2.ownerDocument.exitPointerLock();
8009
+ (_b = this._domElement) === null || _b === void 0 ? void 0 : _b.ownerDocument.removeEventListener("pointerlockchange", onPointerLockChange);
8010
+ (_c = this._domElement) === null || _c === void 0 ? void 0 : _c.ownerDocument.removeEventListener("pointerlockerror", onPointerLockError);
8054
8011
  this.cancel();
8055
- if (!this._domElement)
8056
- return;
8057
- this._domElement.ownerDocument.removeEventListener("pointerlockchange", onPointerLockChange);
8058
- this._domElement.ownerDocument.removeEventListener("pointerlockerror", onPointerLockError);
8059
8012
  };
8060
8013
  const onPointerLockChange = () => {
8061
8014
  const isPointerLockActive = this._domElement && this._domElement.ownerDocument.pointerLockElement === this._domElement;
@@ -8071,7 +8024,6 @@ class CameraControls extends EventDispatcher {
8071
8024
  this._domElement.style.userSelect = "none";
8072
8025
  this._domElement.style.webkitUserSelect = "none";
8073
8026
  this._domElement.addEventListener("pointerdown", onPointerDown2);
8074
- isPointerEventsNotSupported && this._domElement.addEventListener("mousedown", onMouseDown);
8075
8027
  this._domElement.addEventListener("pointercancel", onPointerUp2);
8076
8028
  this._domElement.addEventListener("wheel", onMouseWheel, { passive: false });
8077
8029
  this._domElement.addEventListener("contextmenu", onContextMenu);
@@ -8083,14 +8035,11 @@ class CameraControls extends EventDispatcher {
8083
8035
  this._domElement.style.userSelect = "";
8084
8036
  this._domElement.style.webkitUserSelect = "";
8085
8037
  this._domElement.removeEventListener("pointerdown", onPointerDown2);
8086
- this._domElement.removeEventListener("mousedown", onMouseDown);
8087
8038
  this._domElement.removeEventListener("pointercancel", onPointerUp2);
8088
8039
  this._domElement.removeEventListener("wheel", onMouseWheel, { passive: false });
8089
8040
  this._domElement.removeEventListener("contextmenu", onContextMenu);
8090
8041
  this._domElement.ownerDocument.removeEventListener("pointermove", onPointerMove2, { passive: false });
8091
- this._domElement.ownerDocument.removeEventListener("mousemove", onMouseMove);
8092
8042
  this._domElement.ownerDocument.removeEventListener("pointerup", onPointerUp2);
8093
- this._domElement.ownerDocument.removeEventListener("mouseup", onMouseUp);
8094
8043
  this._domElement.ownerDocument.removeEventListener("pointerlockchange", onPointerLockChange);
8095
8044
  this._domElement.ownerDocument.removeEventListener("pointerlockerror", onPointerLockError);
8096
8045
  };
@@ -8522,7 +8471,7 @@ class CameraControls extends EventDispatcher {
8522
8471
  lookInDirectionOf(x, y, z, enableTransition = false) {
8523
8472
  const point = _v3A.set(x, y, z);
8524
8473
  const direction = point.sub(this._targetEnd).normalize();
8525
- const position = direction.multiplyScalar(-this._sphericalEnd.radius);
8474
+ const position = direction.multiplyScalar(-this._sphericalEnd.radius).add(this._targetEnd);
8526
8475
  return this.setPosition(position.x, position.y, position.z, enableTransition);
8527
8476
  }
8528
8477
  /**
@@ -8607,8 +8556,8 @@ class CameraControls extends EventDispatcher {
8607
8556
  */
8608
8557
  fitToSphere(sphereOrMesh, enableTransition) {
8609
8558
  const promises = [];
8610
- const isSphere = sphereOrMesh instanceof THREE.Sphere;
8611
- const boundingSphere = isSphere ? _sphere.copy(sphereOrMesh) : CameraControls.createBoundingSphere(sphereOrMesh, _sphere);
8559
+ const isObject3D = "isObject3D" in sphereOrMesh;
8560
+ const boundingSphere = isObject3D ? CameraControls.createBoundingSphere(sphereOrMesh, _sphere) : _sphere.copy(sphereOrMesh);
8612
8561
  promises.push(this.moveTo(boundingSphere.center.x, boundingSphere.center.y, boundingSphere.center.z, enableTransition));
8613
8562
  if (isPerspectiveCamera(this._camera)) {
8614
8563
  const distanceToFit = this.getDistanceToFitSphere(boundingSphere.radius);
@@ -8861,7 +8810,7 @@ class CameraControls extends EventDispatcher {
8861
8810
  * @category Methods
8862
8811
  */
8863
8812
  getSpherical(out, receiveEndValue = true) {
8864
- const _out = !!out && out instanceof THREE.Spherical ? out : new THREE.Spherical();
8813
+ const _out = out || new THREE.Spherical();
8865
8814
  return _out.copy(receiveEndValue ? this._sphericalEnd : this._spherical);
8866
8815
  }
8867
8816
  /**
@@ -8884,6 +8833,15 @@ class CameraControls extends EventDispatcher {
8884
8833
  this._sphericalEnd.theta += PI_2;
8885
8834
  this._spherical.theta += PI_2 * Math.round((this._sphericalEnd.theta - this._spherical.theta) / PI_2);
8886
8835
  }
8836
+ /**
8837
+ * stop all transitions.
8838
+ */
8839
+ stop() {
8840
+ this._focalOffset.copy(this._focalOffsetEnd);
8841
+ this._target.copy(this._targetEnd);
8842
+ this._spherical.copy(this._sphericalEnd);
8843
+ this._zoom = this._zoomEnd;
8844
+ }
8887
8845
  /**
8888
8846
  * Reset all rotation and position to defaults.
8889
8847
  * @param enableTransition
@@ -9064,7 +9022,6 @@ class CameraControls extends EventDispatcher {
9064
9022
  this._camera.lookAt(this._target);
9065
9023
  const affectOffset = !approxZero(this._focalOffset.x) || !approxZero(this._focalOffset.y) || !approxZero(this._focalOffset.z);
9066
9024
  if (affectOffset) {
9067
- this._camera.updateMatrixWorld();
9068
9025
  _xColumn.setFromMatrixColumn(this._camera.matrix, 0);
9069
9026
  _yColumn.setFromMatrixColumn(this._camera.matrix, 1);
9070
9027
  _zColumn.setFromMatrixColumn(this._camera.matrix, 2);
@@ -9073,6 +9030,7 @@ class CameraControls extends EventDispatcher {
9073
9030
  _zColumn.multiplyScalar(this._focalOffset.z);
9074
9031
  _v3A.copy(_xColumn).add(_yColumn).add(_zColumn);
9075
9032
  this._camera.position.add(_v3A);
9033
+ this._camera.updateMatrixWorld();
9076
9034
  }
9077
9035
  if (this._boundaryEnclosesCamera) {
9078
9036
  this._encloseToBoundary(this._camera.position.copy(this._target), _v3A.setFromSpherical(this._spherical).applyQuaternion(this._yAxisUpSpaceInverse), 1);
@@ -9117,7 +9075,6 @@ class CameraControls extends EventDispatcher {
9117
9075
  dollySpeed: this.dollySpeed,
9118
9076
  truckSpeed: this.truckSpeed,
9119
9077
  dollyToCursor: this.dollyToCursor,
9120
- verticalDragToForward: this.verticalDragToForward,
9121
9078
  target: this._targetEnd.toArray(),
9122
9079
  position: _v3A.setFromSpherical(this._sphericalEnd).add(this._targetEnd).toArray(),
9123
9080
  zoom: this._zoomEnd,
@@ -9150,7 +9107,6 @@ class CameraControls extends EventDispatcher {
9150
9107
  this.dollySpeed = obj.dollySpeed;
9151
9108
  this.truckSpeed = obj.truckSpeed;
9152
9109
  this.dollyToCursor = obj.dollyToCursor;
9153
- this.verticalDragToForward = obj.verticalDragToForward;
9154
9110
  this._target0.fromArray(obj.target0);
9155
9111
  this._position0.fromArray(obj.position0);
9156
9112
  this._zoom0 = obj.zoom0;
@@ -9366,6 +9322,8 @@ class CameraControls extends EventDispatcher {
9366
9322
  if (!object.isMesh)
9367
9323
  return;
9368
9324
  const mesh = object;
9325
+ if (!mesh.geometry)
9326
+ return;
9369
9327
  const geometry = mesh.geometry.clone();
9370
9328
  geometry.applyMatrix4(mesh.matrixWorld);
9371
9329
  const bufferGeometry = geometry;
@@ -9404,14 +9362,14 @@ class SimpleCamera extends BaseCamera {
9404
9362
  * {@link Components.renderer}.
9405
9363
  */
9406
9364
  __publicField(this, "updateAspect", () => {
9407
- var _a;
9365
+ var _a2;
9408
9366
  if (!this.currentWorld || !this.currentWorld.renderer)
9409
9367
  return;
9410
9368
  if (this.three instanceof THREE__namespace.OrthographicCamera) {
9411
9369
  this.onAspectUpdated.trigger();
9412
9370
  return;
9413
9371
  }
9414
- if ((_a = this.currentWorld.renderer) == null ? void 0 : _a.isResizeable()) {
9372
+ if ((_a2 = this.currentWorld.renderer) == null ? void 0 : _a2.isResizeable()) {
9415
9373
  const size = this.currentWorld.renderer.getSize();
9416
9374
  this.three.aspect = size.width / size.height;
9417
9375
  this.three.updateProjectionMatrix();
@@ -12888,12 +12846,12 @@ const _Clipper = class _Clipper extends Component {
12888
12846
  return meshes;
12889
12847
  }
12890
12848
  createPlaneFromIntersection(world, intersect) {
12891
- var _a;
12849
+ var _a2;
12892
12850
  if (!world.renderer) {
12893
12851
  throw new Error("The given world must have a renderer!");
12894
12852
  }
12895
12853
  const constant = intersect.point.distanceTo(new THREE__namespace.Vector3(0, 0, 0));
12896
- const normal = (_a = intersect.face) == null ? void 0 : _a.normal;
12854
+ const normal = (_a2 = intersect.face) == null ? void 0 : _a2.normal;
12897
12855
  if (!constant || !normal) {
12898
12856
  return null;
12899
12857
  }
@@ -14801,7 +14759,7 @@ const IfcCategoryMap = {
14801
14759
  };
14802
14760
  class IfcPropertiesUtils {
14803
14761
  static async getUnits(group) {
14804
- var _a, _b, _c;
14762
+ var _a2, _b, _c;
14805
14763
  const { IFCUNITASSIGNMENT } = WEBIFC__namespace;
14806
14764
  const allUnitsSets = await group.getAllPropertiesOfType(IFCUNITASSIGNMENT);
14807
14765
  if (!allUnitsSets) {
@@ -14827,7 +14785,7 @@ class IfcPropertiesUtils {
14827
14785
  if (unit.Name.value === "FOOT") {
14828
14786
  unitValue = 0.3048;
14829
14787
  }
14830
- if (((_a = unit.Prefix) == null ? void 0 : _a.value) === "MILLI") {
14788
+ if (((_a2 = unit.Prefix) == null ? void 0 : _a2.value) === "MILLI") {
14831
14789
  factor = 1e-3;
14832
14790
  } else if (((_b = unit.Prefix) == null ? void 0 : _b.value) === "CENTI") {
14833
14791
  factor = 0.01;
@@ -14839,18 +14797,18 @@ class IfcPropertiesUtils {
14839
14797
  return 1;
14840
14798
  }
14841
14799
  static async findItemByGuid(model, guid) {
14842
- var _a;
14800
+ var _a2;
14843
14801
  const ids = model.getAllPropertiesIDs();
14844
14802
  for (const id of ids) {
14845
14803
  const property = await model.getProperties(id);
14846
- if (property && ((_a = property.GlobalId) == null ? void 0 : _a.value) === guid) {
14804
+ if (property && ((_a2 = property.GlobalId) == null ? void 0 : _a2.value) === guid) {
14847
14805
  return property;
14848
14806
  }
14849
14807
  }
14850
14808
  return null;
14851
14809
  }
14852
14810
  static async getRelationMap(model, relationType, onElementsFound) {
14853
- var _a;
14811
+ var _a2;
14854
14812
  const defaultCallback = async () => {
14855
14813
  };
14856
14814
  const _onElementsFound = onElementsFound ?? defaultCallback;
@@ -14870,7 +14828,7 @@ class IfcPropertiesUtils {
14870
14828
  );
14871
14829
  if (!(isRelation && relatingKey && relatedKey))
14872
14830
  continue;
14873
- const relating = await model.getProperties((_a = prop[relatingKey]) == null ? void 0 : _a.value);
14831
+ const relating = await model.getProperties((_a2 = prop[relatingKey]) == null ? void 0 : _a2.value);
14874
14832
  const related = prop[relatedKey];
14875
14833
  if (!relating || !related) {
14876
14834
  continue;
@@ -14918,7 +14876,7 @@ class IfcPropertiesUtils {
14918
14876
  return props.filter((prop) => prop !== null);
14919
14877
  }
14920
14878
  static async getPsetRel(model, psetID) {
14921
- var _a;
14879
+ var _a2;
14922
14880
  const prop = await model.getProperties(psetID);
14923
14881
  if (!prop) {
14924
14882
  return null;
@@ -14932,7 +14890,7 @@ class IfcPropertiesUtils {
14932
14890
  const allRels = Object.values(allPropsRels);
14933
14891
  let found = null;
14934
14892
  for (const rel of allRels) {
14935
- if (((_a = rel.RelatingPropertyDefinition) == null ? void 0 : _a.value) === psetID) {
14893
+ if (((_a2 = rel.RelatingPropertyDefinition) == null ? void 0 : _a2.value) === psetID) {
14936
14894
  found = rel.expressID;
14937
14895
  }
14938
14896
  }
@@ -14942,13 +14900,13 @@ class IfcPropertiesUtils {
14942
14900
  return IfcPropertiesUtils.getPsetRel(model, qsetID);
14943
14901
  }
14944
14902
  static async getEntityName(model, entityID) {
14945
- var _a;
14903
+ var _a2;
14946
14904
  const entity = await model.getProperties(entityID);
14947
14905
  if (!entity) {
14948
14906
  return { key: null, name: null };
14949
14907
  }
14950
14908
  const key = Object.keys(entity).find((key2) => key2.endsWith("Name")) ?? null;
14951
- const name = key ? (_a = entity[key]) == null ? void 0 : _a.value : null;
14909
+ const name = key ? (_a2 = entity[key]) == null ? void 0 : _a2.value : null;
14952
14910
  return { key, name };
14953
14911
  }
14954
14912
  static async getQuantityValue(model, quantityID) {
@@ -14979,7 +14937,7 @@ class IfcPropertiesUtils {
14979
14937
  return Object.keys(entity).includes(attribute);
14980
14938
  }
14981
14939
  static async groupEntitiesByType(model, expressIDs) {
14982
- var _a;
14940
+ var _a2;
14983
14941
  const categoriesMap = /* @__PURE__ */ new Map();
14984
14942
  for (const expressID of expressIDs) {
14985
14943
  const entity = await model.getProperties(expressID);
@@ -14990,7 +14948,7 @@ class IfcPropertiesUtils {
14990
14948
  const set = categoriesMap.get(key);
14991
14949
  if (!set)
14992
14950
  categoriesMap.set(key, /* @__PURE__ */ new Set());
14993
- (_a = categoriesMap.get(key)) == null ? void 0 : _a.add(expressID);
14951
+ (_a2 = categoriesMap.get(key)) == null ? void 0 : _a2.add(expressID);
14994
14952
  }
14995
14953
  return categoriesMap;
14996
14954
  }
@@ -16165,7 +16123,7 @@ class Units {
16165
16123
  matrix.copy(result);
16166
16124
  }
16167
16125
  setUp(webIfc) {
16168
- var _a, _b, _c;
16126
+ var _a2, _b, _c;
16169
16127
  this.factor = 1;
16170
16128
  const length = this.getLengthUnits(webIfc);
16171
16129
  if (!length) {
@@ -16179,7 +16137,7 @@ class Units {
16179
16137
  if (length.Name.value === "FOOT") {
16180
16138
  this.factor = 0.3048;
16181
16139
  }
16182
- if (((_a = length.Prefix) == null ? void 0 : _a.value) === "MILLI") {
16140
+ if (((_a2 = length.Prefix) == null ? void 0 : _a2.value) === "MILLI") {
16183
16141
  this.complement = 1e-3;
16184
16142
  } else if (((_b = length.Prefix) == null ? void 0 : _b.value) === "CENTI") {
16185
16143
  this.complement = 0.01;
@@ -16437,7 +16395,7 @@ class CivilReader {
16437
16395
  }
16438
16396
  class IfcMetadataReader {
16439
16397
  getNameInfo(webIfc) {
16440
- var _a;
16398
+ var _a2;
16441
16399
  const data = {};
16442
16400
  const { arguments: dataArguments } = webIfc.GetHeaderLine(0, WEBIFC__namespace.FILE_NAME) || {};
16443
16401
  if (!dataArguments)
@@ -16463,7 +16421,7 @@ class IfcMetadataReader {
16463
16421
  if (authorEmail == null ? void 0 : authorEmail.value)
16464
16422
  data.author.email = authorEmail.value;
16465
16423
  }
16466
- if (organization && ((_a = organization[0]) == null ? void 0 : _a.value)) {
16424
+ if (organization && ((_a2 = organization[0]) == null ? void 0 : _a2.value)) {
16467
16425
  data.organization = organization[0].value;
16468
16426
  }
16469
16427
  if (preprocessorVersion == null ? void 0 : preprocessorVersion.value) {
@@ -16478,13 +16436,13 @@ class IfcMetadataReader {
16478
16436
  return data;
16479
16437
  }
16480
16438
  getDescriptionInfo(webIfc) {
16481
- var _a;
16439
+ var _a2;
16482
16440
  const data = {};
16483
16441
  const { arguments: dataArguments } = webIfc.GetHeaderLine(0, WEBIFC__namespace.FILE_DESCRIPTION) || {};
16484
16442
  if (!dataArguments)
16485
16443
  return data;
16486
16444
  const [description, implementationLevel] = dataArguments;
16487
- if (Array.isArray(description) && ((_a = description[0]) == null ? void 0 : _a.value)) {
16445
+ if (Array.isArray(description) && ((_a2 = description[0]) == null ? void 0 : _a2.value)) {
16488
16446
  const viewDefinition = description[0].value.match(/\[([^\]]+)\]/);
16489
16447
  if (viewDefinition && viewDefinition[1]) {
16490
16448
  data.viewDefinition = viewDefinition[1];
@@ -22715,12 +22673,12 @@ class Comment {
22715
22673
  * @param value - The new comment text.
22716
22674
  */
22717
22675
  set comment(value) {
22718
- var _a;
22676
+ var _a2;
22719
22677
  const manager = this._components.get(BCFTopics);
22720
22678
  this._comment = value;
22721
22679
  this.modifiedDate = /* @__PURE__ */ new Date();
22722
22680
  this.modifiedAuthor = manager.config.author;
22723
- (_a = this.topic) == null ? void 0 : _a.comments.set(this.guid, this);
22681
+ (_a2 = this.topic) == null ? void 0 : _a2.comments.set(this.guid, this);
22724
22682
  }
22725
22683
  /**
22726
22684
  * Gets the comment text.
@@ -23603,12 +23561,12 @@ ${users}
23603
23561
  return comment;
23604
23562
  }
23605
23563
  getMarkupComments(markup, version) {
23606
- var _a;
23564
+ var _a2;
23607
23565
  let data;
23608
23566
  if (version === "2.1")
23609
23567
  data = markup.Comment;
23610
23568
  if (version === "3")
23611
- data = (_a = markup.Topic.Comments) == null ? void 0 : _a.Comment;
23569
+ data = (_a2 = markup.Topic.Comments) == null ? void 0 : _a2.Comment;
23612
23570
  if (!data)
23613
23571
  return [];
23614
23572
  data = Array.isArray(data) ? data : [data];
@@ -23617,36 +23575,36 @@ ${users}
23617
23575
  return array;
23618
23576
  }
23619
23577
  getMarkupLabels(markup, version) {
23620
- var _a;
23578
+ var _a2;
23621
23579
  let data;
23622
23580
  if (version === "2.1")
23623
23581
  data = markup.Topic.Labels;
23624
23582
  if (version === "3")
23625
- data = (_a = markup.Topic.Labels) == null ? void 0 : _a.Label;
23583
+ data = (_a2 = markup.Topic.Labels) == null ? void 0 : _a2.Label;
23626
23584
  if (!data)
23627
23585
  return [];
23628
23586
  const labels = Array.isArray(data) ? data : [data];
23629
23587
  return labels;
23630
23588
  }
23631
23589
  getMarkupViewpoints(markup, version) {
23632
- var _a;
23590
+ var _a2;
23633
23591
  let data;
23634
23592
  if (version === "2.1")
23635
23593
  data = markup.Viewpoints;
23636
23594
  if (version === "3")
23637
- data = (_a = markup.Topic.Viewpoints) == null ? void 0 : _a.ViewPoint;
23595
+ data = (_a2 = markup.Topic.Viewpoints) == null ? void 0 : _a2.ViewPoint;
23638
23596
  if (!data)
23639
23597
  return [];
23640
23598
  data = Array.isArray(data) ? data : [data];
23641
23599
  return data;
23642
23600
  }
23643
23601
  getMarkupRelatedTopics(markup, version) {
23644
- var _a;
23602
+ var _a2;
23645
23603
  let data;
23646
23604
  if (version === "2.1")
23647
23605
  data = markup.Topic.RelatedTopic;
23648
23606
  if (version === "3")
23649
- data = (_a = markup.Topic.RelatedTopics) == null ? void 0 : _a.RelatedTopic;
23607
+ data = (_a2 = markup.Topic.RelatedTopics) == null ? void 0 : _a2.RelatedTopic;
23650
23608
  if (!data)
23651
23609
  return [];
23652
23610
  const topics = Array.isArray(data) ? data : [data];
@@ -23663,7 +23621,7 @@ ${users}
23663
23621
  * @throws An error if the BCF version is not supported.
23664
23622
  */
23665
23623
  async load(data, world) {
23666
- var _a;
23624
+ var _a2;
23667
23625
  const {
23668
23626
  fallbackVersionOnImport,
23669
23627
  ignoreIncompleteTopicsOnImport,
@@ -23728,7 +23686,7 @@ ${users}
23728
23686
  ViewSetupHints = Components2.ViewSetupHints;
23729
23687
  }
23730
23688
  if (version === "3") {
23731
- ViewSetupHints = (_a = Components2.Visibility) == null ? void 0 : _a.ViewSetupHints;
23689
+ ViewSetupHints = (_a2 = Components2.Visibility) == null ? void 0 : _a2.ViewSetupHints;
23732
23690
  }
23733
23691
  if (ViewSetupHints) {
23734
23692
  if ("OpeningsVisible" in ViewSetupHints) {
@@ -25200,7 +25158,7 @@ const _Classifier = class _Classifier extends Component {
25200
25158
  * @throws Will throw an error if the fragment ID is not found.
25201
25159
  */
25202
25160
  async byPredefinedType(group) {
25203
- var _a;
25161
+ var _a2;
25204
25162
  if (!this.list.predefinedTypes) {
25205
25163
  this.list.predefinedTypes = {};
25206
25164
  }
@@ -25210,7 +25168,7 @@ const _Classifier = class _Classifier extends Component {
25210
25168
  const entity = await group.getProperties(id);
25211
25169
  if (!entity)
25212
25170
  continue;
25213
- const predefinedType = String((_a = entity.PredefinedType) == null ? void 0 : _a.value).toUpperCase();
25171
+ const predefinedType = String((_a2 = entity.PredefinedType) == null ? void 0 : _a2.value).toUpperCase();
25214
25172
  if (!currentTypes[predefinedType]) {
25215
25173
  currentTypes[predefinedType] = {
25216
25174
  map: {},
@@ -25313,7 +25271,7 @@ const _Classifier = class _Classifier extends Component {
25313
25271
  * @throws Will throw an error if the fragment ID is not found or if the model relations do not exist.
25314
25272
  */
25315
25273
  async bySpatialStructure(model, config = {}) {
25316
- var _a, _b;
25274
+ var _a2, _b;
25317
25275
  const indexer = this.components.get(IfcRelationsIndexer);
25318
25276
  const modelRelations = indexer.relationMaps[model.uuid];
25319
25277
  if (!modelRelations) {
@@ -25347,7 +25305,7 @@ const _Classifier = class _Classifier extends Component {
25347
25305
  if (!spatialRelAttrs) {
25348
25306
  continue;
25349
25307
  }
25350
- relName2 = (_a = spatialRelAttrs.Name) == null ? void 0 : _a.value;
25308
+ relName2 = (_a2 = spatialRelAttrs.Name) == null ? void 0 : _a2.value;
25351
25309
  }
25352
25310
  this.saveItem(model, systemName, relName2, expressID, id);
25353
25311
  }
@@ -26612,7 +26570,7 @@ class Viewpoint {
26612
26570
  }
26613
26571
  }
26614
26572
  async createComponentTags(from) {
26615
- var _a, _b;
26573
+ var _a2, _b;
26616
26574
  const fragments = this._components.get(FragmentsManager);
26617
26575
  const manager = this._components.get(BCFTopics);
26618
26576
  let tags = "";
@@ -26627,7 +26585,7 @@ class Viewpoint {
26627
26585
  const attrs = await model.getProperties(expressID);
26628
26586
  if (!attrs)
26629
26587
  continue;
26630
- const globalID = (_a = attrs.GlobalId) == null ? void 0 : _a.value;
26588
+ const globalID = (_a2 = attrs.GlobalId) == null ? void 0 : _a2.value;
26631
26589
  if (!globalID)
26632
26590
  continue;
26633
26591
  const tag = (_b = attrs.Tag) == null ? void 0 : _b.value;
@@ -27800,14 +27758,14 @@ class IDSAttribute extends IDSFacet {
27800
27758
  // All invalid cases have been treated as failures
27801
27759
  // FragmentsGroup do not hold some of the entities used in the tests
27802
27760
  async test(entities) {
27803
- var _a;
27761
+ var _a2;
27804
27762
  this.testResult = [];
27805
27763
  for (const _expressID in entities) {
27806
27764
  const expressID = Number(_expressID);
27807
27765
  const attrs = entities[expressID];
27808
27766
  const checks = [];
27809
27767
  const result2 = {
27810
- guid: (_a = attrs.GlobalId) == null ? void 0 : _a.value,
27768
+ guid: (_a2 = attrs.GlobalId) == null ? void 0 : _a2.value,
27811
27769
  expressID,
27812
27770
  pass: false,
27813
27771
  checks,
@@ -27901,7 +27859,7 @@ class IDSClassification extends IDSFacet {
27901
27859
  </classification>`;
27902
27860
  }
27903
27861
  async getEntities(model, collector = {}) {
27904
- var _a;
27862
+ var _a2;
27905
27863
  const result = [];
27906
27864
  const references = await model.getAllPropertiesOfType(
27907
27865
  WEBIFC__namespace.IFCCLASSIFICATIONREFERENCE
@@ -27916,7 +27874,7 @@ class IDSClassification extends IDSFacet {
27916
27874
  const attrs = await model.getProperties(classificationID);
27917
27875
  if (!attrs)
27918
27876
  continue;
27919
- const referencedSourceID = (_a = attrs.ReferencedSource) == null ? void 0 : _a.value;
27877
+ const referencedSourceID = (_a2 = attrs.ReferencedSource) == null ? void 0 : _a2.value;
27920
27878
  if (!referencedSourceID)
27921
27879
  continue;
27922
27880
  const classificationAttrs = await model.getProperties(referencedSourceID);
@@ -27953,14 +27911,14 @@ class IDSClassification extends IDSFacet {
27953
27911
  return result;
27954
27912
  }
27955
27913
  async test(entities, model) {
27956
- var _a;
27914
+ var _a2;
27957
27915
  this.testResult = [];
27958
27916
  for (const _expressID in entities) {
27959
27917
  const expressID = Number(_expressID);
27960
27918
  const attrs = entities[expressID];
27961
27919
  const checks = [];
27962
27920
  const result2 = {
27963
- guid: (_a = attrs.GlobalId) == null ? void 0 : _a.value,
27921
+ guid: (_a2 = attrs.GlobalId) == null ? void 0 : _a2.value,
27964
27922
  expressID,
27965
27923
  pass: false,
27966
27924
  checks,
@@ -28003,8 +27961,8 @@ class IDSClassification extends IDSFacet {
28003
27961
  return result;
28004
27962
  }
28005
27963
  async processReferencedSource(model, attrs) {
28006
- var _a;
28007
- const sourceID = (_a = attrs.ReferencedSource) == null ? void 0 : _a.value;
27964
+ var _a2;
27965
+ const sourceID = (_a2 = attrs.ReferencedSource) == null ? void 0 : _a2.value;
28008
27966
  if (!sourceID)
28009
27967
  return null;
28010
27968
  const sourceAttrs = await model.getProperties(sourceID);
@@ -28019,7 +27977,7 @@ class IDSClassification extends IDSFacet {
28019
27977
  return sourceAttrs;
28020
27978
  }
28021
27979
  async getSystems(model, expressID) {
28022
- var _a;
27980
+ var _a2;
28023
27981
  const result = [];
28024
27982
  const indexer = this.components.get(IfcRelationsIndexer);
28025
27983
  const ocurrenceAssociations = indexer.getEntityRelations(
@@ -28046,9 +28004,9 @@ class IDSClassification extends IDSFacet {
28046
28004
  }
28047
28005
  }
28048
28006
  const occurrenceSystems = result.map((attrs) => {
28049
- var _a2, _b, _c;
28007
+ var _a3, _b, _c;
28050
28008
  if (attrs.type === WEBIFC__namespace.IFCCLASSIFICATION) {
28051
- return (_a2 = attrs.Name) == null ? void 0 : _a2.value;
28009
+ return (_a3 = attrs.Name) == null ? void 0 : _a3.value;
28052
28010
  }
28053
28011
  if (attrs.type === WEBIFC__namespace.IFCCLASSIFICATIONREFERENCE) {
28054
28012
  return (_c = (_b = attrs.ReferencedSource) == null ? void 0 : _b.Name) == null ? void 0 : _c.value;
@@ -28070,7 +28028,7 @@ class IDSClassification extends IDSFacet {
28070
28028
  if (!attrs)
28071
28029
  continue;
28072
28030
  if (attrs.type === WEBIFC__namespace.IFCCLASSIFICATION) {
28073
- if (occurrenceSystems.includes((_a = attrs.Name) == null ? void 0 : _a.value))
28031
+ if (occurrenceSystems.includes((_a2 = attrs.Name) == null ? void 0 : _a2.value))
28074
28032
  continue;
28075
28033
  result.push(attrs);
28076
28034
  }
@@ -28087,9 +28045,9 @@ class IDSClassification extends IDSFacet {
28087
28045
  return result;
28088
28046
  }
28089
28047
  getSystemName(attrs) {
28090
- var _a, _b, _c, _d;
28048
+ var _a2, _b, _c, _d;
28091
28049
  if (attrs.type === WEBIFC__namespace.IFCCLASSIFICATION) {
28092
- return (_a = attrs.Name) == null ? void 0 : _a.value;
28050
+ return (_a2 = attrs.Name) == null ? void 0 : _a2.value;
28093
28051
  }
28094
28052
  if (attrs.type === WEBIFC__namespace.IFCCLASSIFICATIONREFERENCE) {
28095
28053
  if (((_b = attrs.ReferencedSource) == null ? void 0 : _b.type) === WEBIFC__namespace.IFCCLASSIFICATIONREFERENCE) {
@@ -28145,11 +28103,11 @@ class IDSClassification extends IDSFacet {
28145
28103
  return !!identifier;
28146
28104
  }
28147
28105
  evalURI(attrs, checks) {
28148
- var _a;
28106
+ var _a2;
28149
28107
  if (!this.uri)
28150
28108
  return true;
28151
28109
  const result = this.evalRequirement(
28152
- (_a = attrs.Location) == null ? void 0 : _a.value,
28110
+ (_a2 = attrs.Location) == null ? void 0 : _a2.value,
28153
28111
  {
28154
28112
  type: "simple",
28155
28113
  parameter: this.uri
@@ -28221,14 +28179,14 @@ class IDSEntity extends IDSFacet {
28221
28179
  return result;
28222
28180
  }
28223
28181
  async test(entities, model) {
28224
- var _a;
28182
+ var _a2;
28225
28183
  this.testResult = [];
28226
28184
  for (const _expressID in entities) {
28227
28185
  const expressID = Number(_expressID);
28228
28186
  const attrs = entities[expressID];
28229
28187
  const checks = [];
28230
28188
  const result = {
28231
- guid: (_a = attrs.GlobalId) == null ? void 0 : _a.value,
28189
+ guid: (_a2 = attrs.GlobalId) == null ? void 0 : _a2.value,
28232
28190
  expressID,
28233
28191
  pass: false,
28234
28192
  checks,
@@ -28247,12 +28205,12 @@ class IDSEntity extends IDSFacet {
28247
28205
  return result;
28248
28206
  }
28249
28207
  async evalPredefinedType(model, attrs, checks) {
28250
- var _a, _b, _c, _d;
28208
+ var _a2, _b, _c, _d;
28251
28209
  if (!this.predefinedType)
28252
28210
  return null;
28253
28211
  const indexer = this.components.get(IfcRelationsIndexer);
28254
28212
  const isRequirementUserDefined = typeof this.predefinedType.parameter === "string" && this.predefinedType.parameter === "USERDEFINED";
28255
- let value = (_a = attrs.PredefinedType) == null ? void 0 : _a.value;
28213
+ let value = (_a2 = attrs.PredefinedType) == null ? void 0 : _a2.value;
28256
28214
  if (value === "USERDEFINED" && !isRequirementUserDefined) {
28257
28215
  const attrNames = Object.keys(attrs);
28258
28216
  const result2 = attrNames.find(
@@ -28324,7 +28282,7 @@ class IDSProperty extends IDSFacet {
28324
28282
  </property>`;
28325
28283
  }
28326
28284
  async getEntities(model, collector = {}) {
28327
- var _a, _b;
28285
+ var _a2, _b;
28328
28286
  let sets = {};
28329
28287
  const psets = await model.getAllPropertiesOfType(WEBIFC__namespace.IFCPROPERTYSET);
28330
28288
  sets = { ...sets, ...psets };
@@ -28338,7 +28296,7 @@ class IDSProperty extends IDSFacet {
28338
28296
  const attrs = await model.getProperties(setID);
28339
28297
  if (!attrs)
28340
28298
  continue;
28341
- const nameMatches = ((_a = attrs.Name) == null ? void 0 : _a.value) === this.propertySet.parameter;
28299
+ const nameMatches = ((_a2 = attrs.Name) == null ? void 0 : _a2.value) === this.propertySet.parameter;
28342
28300
  if (!nameMatches)
28343
28301
  continue;
28344
28302
  let propsListName;
@@ -28387,14 +28345,14 @@ class IDSProperty extends IDSFacet {
28387
28345
  return [];
28388
28346
  }
28389
28347
  async test(entities, model) {
28390
- var _a;
28348
+ var _a2;
28391
28349
  this.testResult = [];
28392
28350
  for (const _expressID in entities) {
28393
28351
  const expressID = Number(_expressID);
28394
28352
  const attrs = entities[expressID];
28395
28353
  const checks = [];
28396
28354
  const result2 = {
28397
- guid: (_a = attrs.GlobalId) == null ? void 0 : _a.value,
28355
+ guid: (_a2 = attrs.GlobalId) == null ? void 0 : _a2.value,
28398
28356
  expressID,
28399
28357
  pass: false,
28400
28358
  checks,
@@ -28439,12 +28397,12 @@ class IDSProperty extends IDSFacet {
28439
28397
  }
28440
28398
  const items = set.Properties;
28441
28399
  const matchingItems = items.filter((item) => {
28442
- var _a2;
28400
+ var _a3;
28443
28401
  if (this._unsupportedTypes.includes(item.type)) {
28444
28402
  return false;
28445
28403
  }
28446
28404
  const result3 = this.evalRequirement(
28447
- ((_a2 = item.Name) == null ? void 0 : _a2.value) ?? null,
28405
+ ((_a3 = item.Name) == null ? void 0 : _a3.value) ?? null,
28448
28406
  this.baseName,
28449
28407
  "BaseName"
28450
28408
  );
@@ -28493,7 +28451,7 @@ class IDSProperty extends IDSFacet {
28493
28451
  );
28494
28452
  }
28495
28453
  async simplifyPset(model, attrs, propsListName) {
28496
- var _a;
28454
+ var _a2;
28497
28455
  const props = [];
28498
28456
  const list = attrs[propsListName];
28499
28457
  if (!list)
@@ -28504,7 +28462,7 @@ class IDSProperty extends IDSFacet {
28504
28462
  props.push(propAttrs);
28505
28463
  }
28506
28464
  const attrsClone = {
28507
- Name: (_a = attrs.Name) == null ? void 0 : _a.value,
28465
+ Name: (_a2 = attrs.Name) == null ? void 0 : _a2.value,
28508
28466
  Properties: props,
28509
28467
  type: attrs.type
28510
28468
  };
@@ -28531,7 +28489,7 @@ class IDSProperty extends IDSFacet {
28531
28489
  return sets;
28532
28490
  }
28533
28491
  async getPsets(model, expressID) {
28534
- var _a;
28492
+ var _a2;
28535
28493
  const typePsets = await this.getTypePsets(model, expressID);
28536
28494
  const indexer = this.components.get(IfcRelationsIndexer);
28537
28495
  const definitions = indexer.getEntityRelations(
@@ -28559,7 +28517,7 @@ class IDSProperty extends IDSFacet {
28559
28517
  );
28560
28518
  if (typePset) {
28561
28519
  for (const prop of typePset.Properties) {
28562
- const name = (_a = prop.Name) == null ? void 0 : _a.value;
28520
+ const name = (_a2 = prop.Name) == null ? void 0 : _a2.value;
28563
28521
  const existingProp = occurencePset.Properties.find(
28564
28522
  ({ Name }) => Name.value === name
28565
28523
  );