@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.mjs CHANGED
@@ -6590,7 +6590,7 @@ const _Components = class _Components {
6590
6590
  /**
6591
6591
  * The version of the @thatopen/components library.
6592
6592
  */
6593
- __publicField(_Components, "release", "2.4.9");
6593
+ __publicField(_Components, "release", "2.4.10");
6594
6594
  let Components = _Components;
6595
6595
  class SimpleWorld extends Base {
6596
6596
  constructor() {
@@ -7160,20 +7160,24 @@ const ACTION = Object.freeze({
7160
7160
  NONE: 0,
7161
7161
  ROTATE: 1,
7162
7162
  TRUCK: 2,
7163
- OFFSET: 4,
7164
- DOLLY: 8,
7165
- ZOOM: 16,
7166
- TOUCH_ROTATE: 32,
7167
- TOUCH_TRUCK: 64,
7168
- TOUCH_OFFSET: 128,
7169
- TOUCH_DOLLY: 256,
7170
- TOUCH_ZOOM: 512,
7171
- TOUCH_DOLLY_TRUCK: 1024,
7172
- TOUCH_DOLLY_OFFSET: 2048,
7173
- TOUCH_DOLLY_ROTATE: 4096,
7174
- TOUCH_ZOOM_TRUCK: 8192,
7175
- TOUCH_ZOOM_OFFSET: 16384,
7176
- TOUCH_ZOOM_ROTATE: 32768
7163
+ SCREEN_PAN: 4,
7164
+ OFFSET: 8,
7165
+ DOLLY: 16,
7166
+ ZOOM: 32,
7167
+ TOUCH_ROTATE: 64,
7168
+ TOUCH_TRUCK: 128,
7169
+ TOUCH_SCREEN_PAN: 256,
7170
+ TOUCH_OFFSET: 512,
7171
+ TOUCH_DOLLY: 1024,
7172
+ TOUCH_ZOOM: 2048,
7173
+ TOUCH_DOLLY_TRUCK: 4096,
7174
+ TOUCH_DOLLY_SCREEN_PAN: 8192,
7175
+ TOUCH_DOLLY_OFFSET: 16384,
7176
+ TOUCH_DOLLY_ROTATE: 32768,
7177
+ TOUCH_ZOOM_TRUCK: 65536,
7178
+ TOUCH_ZOOM_OFFSET: 131072,
7179
+ TOUCH_ZOOM_SCREEN_PAN: 262144,
7180
+ TOUCH_ZOOM_ROTATE: 524288
7177
7181
  });
7178
7182
  const DOLLY_DIRECTION = {
7179
7183
  NONE: 0,
@@ -7372,11 +7376,10 @@ class EventDispatcher {
7372
7376
  }
7373
7377
  }
7374
7378
  }
7375
- const VERSION = "2.7.3";
7379
+ var _a;
7380
+ const VERSION = "2.10.1";
7376
7381
  const TOUCH_DOLLY_FACTOR = 1 / 8;
7377
- const isBrowser = typeof window !== "undefined";
7378
- const isMac = isBrowser && /Mac/.test(navigator.platform);
7379
- const isPointerEventsNotSupported = !(isBrowser && "PointerEvent" in window);
7382
+ const isMac = /Mac/.test((_a = globalThis === null || globalThis === void 0 ? void 0 : globalThis.navigator) === null || _a === void 0 ? void 0 : _a.platform);
7380
7383
  let THREE;
7381
7384
  let _ORIGIN;
7382
7385
  let _AXIS_Y;
@@ -7473,6 +7476,12 @@ class CameraControls extends EventDispatcher {
7473
7476
  static get ACTION() {
7474
7477
  return ACTION;
7475
7478
  }
7479
+ /**
7480
+ * @deprecated Use `cameraControls.mouseButtons.left = CameraControls.ACTION.SCREEN_PAN` instead.
7481
+ */
7482
+ set verticalDragToForward(_) {
7483
+ console.warn("camera-controls: `verticalDragToForward` was removed. Use `mouseButtons.left = CameraControls.ACTION.SCREEN_PAN` instead.");
7484
+ }
7476
7485
  /**
7477
7486
  * Creates a `CameraControls` instance.
7478
7487
  *
@@ -7511,7 +7520,6 @@ class CameraControls extends EventDispatcher {
7511
7520
  this.truckSpeed = 2;
7512
7521
  this.dollyToCursor = false;
7513
7522
  this.dragToOffset = false;
7514
- this.verticalDragToForward = false;
7515
7523
  this.boundaryFriction = 0;
7516
7524
  this.restThreshold = 0.01;
7517
7525
  this.colliderMeshes = [];
@@ -7544,7 +7552,7 @@ class CameraControls extends EventDispatcher {
7544
7552
  this._targetVelocity = new THREE.Vector3();
7545
7553
  this._focalOffsetVelocity = new THREE.Vector3();
7546
7554
  this._zoomVelocity = { value: 0 };
7547
- this._truckInternal = (deltaX, deltaY, dragToOffset) => {
7555
+ this._truckInternal = (deltaX, deltaY, dragToOffset, screenSpacePanning) => {
7548
7556
  let truckX;
7549
7557
  let pedestalY;
7550
7558
  if (isPerspectiveCamera(this._camera)) {
@@ -7555,12 +7563,12 @@ class CameraControls extends EventDispatcher {
7555
7563
  pedestalY = this.truckSpeed * deltaY * targetDistance / this._elementRect.height;
7556
7564
  } else if (isOrthographicCamera(this._camera)) {
7557
7565
  const camera2 = this._camera;
7558
- truckX = deltaX * (camera2.right - camera2.left) / camera2.zoom / this._elementRect.width;
7559
- pedestalY = deltaY * (camera2.top - camera2.bottom) / camera2.zoom / this._elementRect.height;
7566
+ truckX = this.truckSpeed * deltaX * (camera2.right - camera2.left) / camera2.zoom / this._elementRect.width;
7567
+ pedestalY = this.truckSpeed * deltaY * (camera2.top - camera2.bottom) / camera2.zoom / this._elementRect.height;
7560
7568
  } else {
7561
7569
  return;
7562
7570
  }
7563
- if (this.verticalDragToForward) {
7571
+ if (screenSpacePanning) {
7564
7572
  dragToOffset ? this.setFocalOffset(this._focalOffsetEnd.x + truckX, this._focalOffsetEnd.y, this._focalOffsetEnd.z, true) : this.truck(truckX, 0, true);
7565
7573
  this.forward(-pedestalY, true);
7566
7574
  } else {
@@ -7680,37 +7688,6 @@ class CameraControls extends EventDispatcher {
7680
7688
  this._isDragging = true;
7681
7689
  startDragging(event);
7682
7690
  };
7683
- const onMouseDown = (event) => {
7684
- if (!this._enabled || !this._domElement || this._lockedPointer)
7685
- return;
7686
- if (this._interactiveArea.left !== 0 || this._interactiveArea.top !== 0 || this._interactiveArea.width !== 1 || this._interactiveArea.height !== 1) {
7687
- const elRect = this._domElement.getBoundingClientRect();
7688
- const left = event.clientX / elRect.width;
7689
- const top = event.clientY / elRect.height;
7690
- if (left < this._interactiveArea.left || left > this._interactiveArea.right || top < this._interactiveArea.top || top > this._interactiveArea.bottom)
7691
- return;
7692
- }
7693
- 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;
7694
- if (mouseButton !== null) {
7695
- const zombiePointer = this._findPointerByMouseButton(mouseButton);
7696
- zombiePointer && this._disposePointer(zombiePointer);
7697
- }
7698
- const pointer = {
7699
- pointerId: 1,
7700
- clientX: event.clientX,
7701
- clientY: event.clientY,
7702
- deltaX: 0,
7703
- deltaY: 0,
7704
- 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
7705
- };
7706
- this._activePointers.push(pointer);
7707
- this._domElement.ownerDocument.removeEventListener("mousemove", onMouseMove);
7708
- this._domElement.ownerDocument.removeEventListener("mouseup", onMouseUp);
7709
- this._domElement.ownerDocument.addEventListener("mousemove", onMouseMove);
7710
- this._domElement.ownerDocument.addEventListener("mouseup", onMouseUp);
7711
- this._isDragging = true;
7712
- startDragging(event);
7713
- };
7714
7691
  const onPointerMove2 = (event) => {
7715
7692
  if (event.cancelable)
7716
7693
  event.preventDefault();
@@ -7748,26 +7725,6 @@ class CameraControls extends EventDispatcher {
7748
7725
  }
7749
7726
  dragging();
7750
7727
  };
7751
- const onMouseMove = (event) => {
7752
- const pointer = this._lockedPointer || this._findPointerById(1);
7753
- if (!pointer)
7754
- return;
7755
- pointer.clientX = event.clientX;
7756
- pointer.clientY = event.clientY;
7757
- pointer.deltaX = event.movementX;
7758
- pointer.deltaY = event.movementY;
7759
- this._state = 0;
7760
- if (this._lockedPointer || (event.buttons & MOUSE_BUTTON.LEFT) === MOUSE_BUTTON.LEFT) {
7761
- this._state = this._state | this.mouseButtons.left;
7762
- }
7763
- if ((event.buttons & MOUSE_BUTTON.MIDDLE) === MOUSE_BUTTON.MIDDLE) {
7764
- this._state = this._state | this.mouseButtons.middle;
7765
- }
7766
- if ((event.buttons & MOUSE_BUTTON.RIGHT) === MOUSE_BUTTON.RIGHT) {
7767
- this._state = this._state | this.mouseButtons.right;
7768
- }
7769
- dragging();
7770
- };
7771
7728
  const onPointerUp2 = (event) => {
7772
7729
  const pointer = this._findPointerById(event.pointerId);
7773
7730
  if (pointer && pointer === this._lockedPointer)
@@ -7793,14 +7750,6 @@ class CameraControls extends EventDispatcher {
7793
7750
  }
7794
7751
  endDragging();
7795
7752
  };
7796
- const onMouseUp = () => {
7797
- const pointer = this._findPointerById(1);
7798
- if (pointer && pointer === this._lockedPointer)
7799
- return;
7800
- pointer && this._disposePointer(pointer);
7801
- this._state = ACTION.NONE;
7802
- endDragging();
7803
- };
7804
7753
  let lastScrollTimeStamp = -1;
7805
7754
  const onMouseWheel = (event) => {
7806
7755
  if (!this._domElement)
@@ -7822,7 +7771,7 @@ class CameraControls extends EventDispatcher {
7822
7771
  lastScrollTimeStamp = now;
7823
7772
  }
7824
7773
  const deltaYFactor = isMac ? -1 : -3;
7825
- const delta = event.deltaMode === 1 ? event.deltaY / deltaYFactor : event.deltaY / (deltaYFactor * 10);
7774
+ const delta = event.deltaMode === 1 || event.ctrlKey ? event.deltaY / deltaYFactor : event.deltaY / (deltaYFactor * 10);
7826
7775
  const x = this.dollyToCursor ? (event.clientX - this._elementRect.x) / this._elementRect.width * 2 - 1 : 0;
7827
7776
  const y = this.dollyToCursor ? (event.clientY - this._elementRect.y) / this._elementRect.height * -2 + 1 : 0;
7828
7777
  switch (this.mouseButtons.wheel) {
@@ -7832,12 +7781,17 @@ class CameraControls extends EventDispatcher {
7832
7781
  break;
7833
7782
  }
7834
7783
  case ACTION.TRUCK: {
7835
- this._truckInternal(event.deltaX, event.deltaY, false);
7784
+ this._truckInternal(event.deltaX, event.deltaY, false, false);
7785
+ this._isUserControllingTruck = true;
7786
+ break;
7787
+ }
7788
+ case ACTION.SCREEN_PAN: {
7789
+ this._truckInternal(event.deltaX, event.deltaY, false, true);
7836
7790
  this._isUserControllingTruck = true;
7837
7791
  break;
7838
7792
  }
7839
7793
  case ACTION.OFFSET: {
7840
- this._truckInternal(event.deltaX, event.deltaY, true);
7794
+ this._truckInternal(event.deltaX, event.deltaY, true, false);
7841
7795
  this._isUserControllingOffset = true;
7842
7796
  break;
7843
7797
  }
@@ -7858,13 +7812,11 @@ class CameraControls extends EventDispatcher {
7858
7812
  if (!this._domElement || !this._enabled)
7859
7813
  return;
7860
7814
  if (this.mouseButtons.right === CameraControls.ACTION.NONE) {
7861
- const pointerId = event instanceof PointerEvent ? event.pointerId : event instanceof MouseEvent ? 0 : 0;
7815
+ const pointerId = event instanceof PointerEvent ? event.pointerId : 0;
7862
7816
  const pointer = this._findPointerById(pointerId);
7863
7817
  pointer && this._disposePointer(pointer);
7864
7818
  this._domElement.ownerDocument.removeEventListener("pointermove", onPointerMove2, { passive: false });
7865
7819
  this._domElement.ownerDocument.removeEventListener("pointerup", onPointerUp2);
7866
- this._domElement.ownerDocument.removeEventListener("mousemove", onMouseMove);
7867
- this._domElement.ownerDocument.removeEventListener("mouseup", onMouseUp);
7868
7820
  return;
7869
7821
  }
7870
7822
  event.preventDefault();
@@ -7919,15 +7871,15 @@ class CameraControls extends EventDispatcher {
7919
7871
  this._thetaVelocity.value = 0;
7920
7872
  this._phiVelocity.value = 0;
7921
7873
  }
7922
- 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) {
7874
+ 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) {
7923
7875
  this._targetEnd.copy(this._target);
7924
7876
  this._targetVelocity.set(0, 0, 0);
7925
7877
  }
7926
- 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) {
7878
+ 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) {
7927
7879
  this._sphericalEnd.radius = this._spherical.radius;
7928
7880
  this._radiusVelocity.value = 0;
7929
7881
  }
7930
- 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) {
7882
+ 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) {
7931
7883
  this._zoomEnd = this._zoom;
7932
7884
  this._zoomVelocity.value = 0;
7933
7885
  }
@@ -7942,7 +7894,7 @@ class CameraControls extends EventDispatcher {
7942
7894
  return;
7943
7895
  this._dragNeedsUpdate = false;
7944
7896
  extractClientCoordFromEvent(this._activePointers, _v2$1);
7945
- const isPointerLockActive = this._domElement && document.pointerLockElement === this._domElement;
7897
+ const isPointerLockActive = this._domElement && this._domElement.ownerDocument.pointerLockElement === this._domElement;
7946
7898
  const lockedPointer = isPointerLockActive ? this._lockedPointer || this._activePointers[0] : null;
7947
7899
  const deltaX = lockedPointer ? -lockedPointer.deltaX : lastDragPosition.x - _v2$1.x;
7948
7900
  const deltaY = lockedPointer ? -lockedPointer.deltaY : lastDragPosition.y - _v2$1.y;
@@ -7963,7 +7915,7 @@ class CameraControls extends EventDispatcher {
7963
7915
  this._isUserControllingZoom = true;
7964
7916
  }
7965
7917
  }
7966
- 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) {
7918
+ 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) {
7967
7919
  const dx = _v2$1.x - this._activePointers[1].clientX;
7968
7920
  const dy = _v2$1.y - this._activePointers[1].clientY;
7969
7921
  const distance = Math.sqrt(dx * dx + dy * dy);
@@ -7971,7 +7923,7 @@ class CameraControls extends EventDispatcher {
7971
7923
  dollyStart.set(0, distance);
7972
7924
  const dollyX = this.dollyToCursor ? (lastDragPosition.x - this._elementRect.x) / this._elementRect.width * 2 - 1 : 0;
7973
7925
  const dollyY = this.dollyToCursor ? (lastDragPosition.y - this._elementRect.y) / this._elementRect.height * -2 + 1 : 0;
7974
- 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) {
7926
+ 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) {
7975
7927
  this._dollyInternal(dollyDelta * TOUCH_DOLLY_FACTOR, dollyX, dollyY);
7976
7928
  this._isUserControllingDolly = true;
7977
7929
  } else {
@@ -7980,11 +7932,15 @@ class CameraControls extends EventDispatcher {
7980
7932
  }
7981
7933
  }
7982
7934
  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) {
7983
- this._truckInternal(deltaX, deltaY, false);
7935
+ this._truckInternal(deltaX, deltaY, false, false);
7936
+ this._isUserControllingTruck = true;
7937
+ }
7938
+ 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) {
7939
+ this._truckInternal(deltaX, deltaY, false, true);
7984
7940
  this._isUserControllingTruck = true;
7985
7941
  }
7986
7942
  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) {
7987
- this._truckInternal(deltaX, deltaY, true);
7943
+ this._truckInternal(deltaX, deltaY, true, false);
7988
7944
  this._isUserControllingOffset = true;
7989
7945
  }
7990
7946
  this.dispatchEvent({ type: "control" });
@@ -7998,9 +7954,7 @@ class CameraControls extends EventDispatcher {
7998
7954
  }
7999
7955
  if (this._activePointers.length === 0 && this._domElement) {
8000
7956
  this._domElement.ownerDocument.removeEventListener("pointermove", onPointerMove2, { passive: false });
8001
- this._domElement.ownerDocument.removeEventListener("mousemove", onMouseMove);
8002
7957
  this._domElement.ownerDocument.removeEventListener("pointerup", onPointerUp2);
8003
- this._domElement.ownerDocument.removeEventListener("mouseup", onMouseUp);
8004
7958
  this.dispatchEvent({ type: "controlend" });
8005
7959
  }
8006
7960
  };
@@ -8027,16 +7981,15 @@ class CameraControls extends EventDispatcher {
8027
7981
  startDragging();
8028
7982
  };
8029
7983
  this.unlockPointer = () => {
7984
+ var _a2, _b, _c;
8030
7985
  if (this._lockedPointer !== null) {
8031
7986
  this._disposePointer(this._lockedPointer);
8032
7987
  this._lockedPointer = null;
8033
7988
  }
8034
- document.exitPointerLock();
7989
+ (_a2 = this._domElement) === null || _a2 === void 0 ? void 0 : _a2.ownerDocument.exitPointerLock();
7990
+ (_b = this._domElement) === null || _b === void 0 ? void 0 : _b.ownerDocument.removeEventListener("pointerlockchange", onPointerLockChange);
7991
+ (_c = this._domElement) === null || _c === void 0 ? void 0 : _c.ownerDocument.removeEventListener("pointerlockerror", onPointerLockError);
8035
7992
  this.cancel();
8036
- if (!this._domElement)
8037
- return;
8038
- this._domElement.ownerDocument.removeEventListener("pointerlockchange", onPointerLockChange);
8039
- this._domElement.ownerDocument.removeEventListener("pointerlockerror", onPointerLockError);
8040
7993
  };
8041
7994
  const onPointerLockChange = () => {
8042
7995
  const isPointerLockActive = this._domElement && this._domElement.ownerDocument.pointerLockElement === this._domElement;
@@ -8052,7 +8005,6 @@ class CameraControls extends EventDispatcher {
8052
8005
  this._domElement.style.userSelect = "none";
8053
8006
  this._domElement.style.webkitUserSelect = "none";
8054
8007
  this._domElement.addEventListener("pointerdown", onPointerDown2);
8055
- isPointerEventsNotSupported && this._domElement.addEventListener("mousedown", onMouseDown);
8056
8008
  this._domElement.addEventListener("pointercancel", onPointerUp2);
8057
8009
  this._domElement.addEventListener("wheel", onMouseWheel, { passive: false });
8058
8010
  this._domElement.addEventListener("contextmenu", onContextMenu);
@@ -8064,14 +8016,11 @@ class CameraControls extends EventDispatcher {
8064
8016
  this._domElement.style.userSelect = "";
8065
8017
  this._domElement.style.webkitUserSelect = "";
8066
8018
  this._domElement.removeEventListener("pointerdown", onPointerDown2);
8067
- this._domElement.removeEventListener("mousedown", onMouseDown);
8068
8019
  this._domElement.removeEventListener("pointercancel", onPointerUp2);
8069
8020
  this._domElement.removeEventListener("wheel", onMouseWheel, { passive: false });
8070
8021
  this._domElement.removeEventListener("contextmenu", onContextMenu);
8071
8022
  this._domElement.ownerDocument.removeEventListener("pointermove", onPointerMove2, { passive: false });
8072
- this._domElement.ownerDocument.removeEventListener("mousemove", onMouseMove);
8073
8023
  this._domElement.ownerDocument.removeEventListener("pointerup", onPointerUp2);
8074
- this._domElement.ownerDocument.removeEventListener("mouseup", onMouseUp);
8075
8024
  this._domElement.ownerDocument.removeEventListener("pointerlockchange", onPointerLockChange);
8076
8025
  this._domElement.ownerDocument.removeEventListener("pointerlockerror", onPointerLockError);
8077
8026
  };
@@ -8503,7 +8452,7 @@ class CameraControls extends EventDispatcher {
8503
8452
  lookInDirectionOf(x, y, z, enableTransition = false) {
8504
8453
  const point = _v3A.set(x, y, z);
8505
8454
  const direction = point.sub(this._targetEnd).normalize();
8506
- const position = direction.multiplyScalar(-this._sphericalEnd.radius);
8455
+ const position = direction.multiplyScalar(-this._sphericalEnd.radius).add(this._targetEnd);
8507
8456
  return this.setPosition(position.x, position.y, position.z, enableTransition);
8508
8457
  }
8509
8458
  /**
@@ -8588,8 +8537,8 @@ class CameraControls extends EventDispatcher {
8588
8537
  */
8589
8538
  fitToSphere(sphereOrMesh, enableTransition) {
8590
8539
  const promises = [];
8591
- const isSphere = sphereOrMesh instanceof THREE.Sphere;
8592
- const boundingSphere = isSphere ? _sphere.copy(sphereOrMesh) : CameraControls.createBoundingSphere(sphereOrMesh, _sphere);
8540
+ const isObject3D = "isObject3D" in sphereOrMesh;
8541
+ const boundingSphere = isObject3D ? CameraControls.createBoundingSphere(sphereOrMesh, _sphere) : _sphere.copy(sphereOrMesh);
8593
8542
  promises.push(this.moveTo(boundingSphere.center.x, boundingSphere.center.y, boundingSphere.center.z, enableTransition));
8594
8543
  if (isPerspectiveCamera(this._camera)) {
8595
8544
  const distanceToFit = this.getDistanceToFitSphere(boundingSphere.radius);
@@ -8842,7 +8791,7 @@ class CameraControls extends EventDispatcher {
8842
8791
  * @category Methods
8843
8792
  */
8844
8793
  getSpherical(out, receiveEndValue = true) {
8845
- const _out = !!out && out instanceof THREE.Spherical ? out : new THREE.Spherical();
8794
+ const _out = out || new THREE.Spherical();
8846
8795
  return _out.copy(receiveEndValue ? this._sphericalEnd : this._spherical);
8847
8796
  }
8848
8797
  /**
@@ -8865,6 +8814,15 @@ class CameraControls extends EventDispatcher {
8865
8814
  this._sphericalEnd.theta += PI_2;
8866
8815
  this._spherical.theta += PI_2 * Math.round((this._sphericalEnd.theta - this._spherical.theta) / PI_2);
8867
8816
  }
8817
+ /**
8818
+ * stop all transitions.
8819
+ */
8820
+ stop() {
8821
+ this._focalOffset.copy(this._focalOffsetEnd);
8822
+ this._target.copy(this._targetEnd);
8823
+ this._spherical.copy(this._sphericalEnd);
8824
+ this._zoom = this._zoomEnd;
8825
+ }
8868
8826
  /**
8869
8827
  * Reset all rotation and position to defaults.
8870
8828
  * @param enableTransition
@@ -9045,7 +9003,6 @@ class CameraControls extends EventDispatcher {
9045
9003
  this._camera.lookAt(this._target);
9046
9004
  const affectOffset = !approxZero(this._focalOffset.x) || !approxZero(this._focalOffset.y) || !approxZero(this._focalOffset.z);
9047
9005
  if (affectOffset) {
9048
- this._camera.updateMatrixWorld();
9049
9006
  _xColumn.setFromMatrixColumn(this._camera.matrix, 0);
9050
9007
  _yColumn.setFromMatrixColumn(this._camera.matrix, 1);
9051
9008
  _zColumn.setFromMatrixColumn(this._camera.matrix, 2);
@@ -9054,6 +9011,7 @@ class CameraControls extends EventDispatcher {
9054
9011
  _zColumn.multiplyScalar(this._focalOffset.z);
9055
9012
  _v3A.copy(_xColumn).add(_yColumn).add(_zColumn);
9056
9013
  this._camera.position.add(_v3A);
9014
+ this._camera.updateMatrixWorld();
9057
9015
  }
9058
9016
  if (this._boundaryEnclosesCamera) {
9059
9017
  this._encloseToBoundary(this._camera.position.copy(this._target), _v3A.setFromSpherical(this._spherical).applyQuaternion(this._yAxisUpSpaceInverse), 1);
@@ -9098,7 +9056,6 @@ class CameraControls extends EventDispatcher {
9098
9056
  dollySpeed: this.dollySpeed,
9099
9057
  truckSpeed: this.truckSpeed,
9100
9058
  dollyToCursor: this.dollyToCursor,
9101
- verticalDragToForward: this.verticalDragToForward,
9102
9059
  target: this._targetEnd.toArray(),
9103
9060
  position: _v3A.setFromSpherical(this._sphericalEnd).add(this._targetEnd).toArray(),
9104
9061
  zoom: this._zoomEnd,
@@ -9131,7 +9088,6 @@ class CameraControls extends EventDispatcher {
9131
9088
  this.dollySpeed = obj.dollySpeed;
9132
9089
  this.truckSpeed = obj.truckSpeed;
9133
9090
  this.dollyToCursor = obj.dollyToCursor;
9134
- this.verticalDragToForward = obj.verticalDragToForward;
9135
9091
  this._target0.fromArray(obj.target0);
9136
9092
  this._position0.fromArray(obj.position0);
9137
9093
  this._zoom0 = obj.zoom0;
@@ -9347,6 +9303,8 @@ class CameraControls extends EventDispatcher {
9347
9303
  if (!object.isMesh)
9348
9304
  return;
9349
9305
  const mesh = object;
9306
+ if (!mesh.geometry)
9307
+ return;
9350
9308
  const geometry = mesh.geometry.clone();
9351
9309
  geometry.applyMatrix4(mesh.matrixWorld);
9352
9310
  const bufferGeometry = geometry;
@@ -9385,14 +9343,14 @@ class SimpleCamera extends BaseCamera {
9385
9343
  * {@link Components.renderer}.
9386
9344
  */
9387
9345
  __publicField(this, "updateAspect", () => {
9388
- var _a;
9346
+ var _a2;
9389
9347
  if (!this.currentWorld || !this.currentWorld.renderer)
9390
9348
  return;
9391
9349
  if (this.three instanceof THREE$1.OrthographicCamera) {
9392
9350
  this.onAspectUpdated.trigger();
9393
9351
  return;
9394
9352
  }
9395
- if ((_a = this.currentWorld.renderer) == null ? void 0 : _a.isResizeable()) {
9353
+ if ((_a2 = this.currentWorld.renderer) == null ? void 0 : _a2.isResizeable()) {
9396
9354
  const size = this.currentWorld.renderer.getSize();
9397
9355
  this.three.aspect = size.width / size.height;
9398
9356
  this.three.updateProjectionMatrix();
@@ -12869,12 +12827,12 @@ const _Clipper = class _Clipper extends Component {
12869
12827
  return meshes;
12870
12828
  }
12871
12829
  createPlaneFromIntersection(world, intersect) {
12872
- var _a;
12830
+ var _a2;
12873
12831
  if (!world.renderer) {
12874
12832
  throw new Error("The given world must have a renderer!");
12875
12833
  }
12876
12834
  const constant = intersect.point.distanceTo(new THREE$1.Vector3(0, 0, 0));
12877
- const normal = (_a = intersect.face) == null ? void 0 : _a.normal;
12835
+ const normal = (_a2 = intersect.face) == null ? void 0 : _a2.normal;
12878
12836
  if (!constant || !normal) {
12879
12837
  return null;
12880
12838
  }
@@ -14782,7 +14740,7 @@ const IfcCategoryMap = {
14782
14740
  };
14783
14741
  class IfcPropertiesUtils {
14784
14742
  static async getUnits(group) {
14785
- var _a, _b, _c;
14743
+ var _a2, _b, _c;
14786
14744
  const { IFCUNITASSIGNMENT } = WEBIFC;
14787
14745
  const allUnitsSets = await group.getAllPropertiesOfType(IFCUNITASSIGNMENT);
14788
14746
  if (!allUnitsSets) {
@@ -14808,7 +14766,7 @@ class IfcPropertiesUtils {
14808
14766
  if (unit.Name.value === "FOOT") {
14809
14767
  unitValue = 0.3048;
14810
14768
  }
14811
- if (((_a = unit.Prefix) == null ? void 0 : _a.value) === "MILLI") {
14769
+ if (((_a2 = unit.Prefix) == null ? void 0 : _a2.value) === "MILLI") {
14812
14770
  factor = 1e-3;
14813
14771
  } else if (((_b = unit.Prefix) == null ? void 0 : _b.value) === "CENTI") {
14814
14772
  factor = 0.01;
@@ -14820,18 +14778,18 @@ class IfcPropertiesUtils {
14820
14778
  return 1;
14821
14779
  }
14822
14780
  static async findItemByGuid(model, guid) {
14823
- var _a;
14781
+ var _a2;
14824
14782
  const ids = model.getAllPropertiesIDs();
14825
14783
  for (const id of ids) {
14826
14784
  const property = await model.getProperties(id);
14827
- if (property && ((_a = property.GlobalId) == null ? void 0 : _a.value) === guid) {
14785
+ if (property && ((_a2 = property.GlobalId) == null ? void 0 : _a2.value) === guid) {
14828
14786
  return property;
14829
14787
  }
14830
14788
  }
14831
14789
  return null;
14832
14790
  }
14833
14791
  static async getRelationMap(model, relationType, onElementsFound) {
14834
- var _a;
14792
+ var _a2;
14835
14793
  const defaultCallback = async () => {
14836
14794
  };
14837
14795
  const _onElementsFound = onElementsFound ?? defaultCallback;
@@ -14851,7 +14809,7 @@ class IfcPropertiesUtils {
14851
14809
  );
14852
14810
  if (!(isRelation && relatingKey && relatedKey))
14853
14811
  continue;
14854
- const relating = await model.getProperties((_a = prop[relatingKey]) == null ? void 0 : _a.value);
14812
+ const relating = await model.getProperties((_a2 = prop[relatingKey]) == null ? void 0 : _a2.value);
14855
14813
  const related = prop[relatedKey];
14856
14814
  if (!relating || !related) {
14857
14815
  continue;
@@ -14899,7 +14857,7 @@ class IfcPropertiesUtils {
14899
14857
  return props.filter((prop) => prop !== null);
14900
14858
  }
14901
14859
  static async getPsetRel(model, psetID) {
14902
- var _a;
14860
+ var _a2;
14903
14861
  const prop = await model.getProperties(psetID);
14904
14862
  if (!prop) {
14905
14863
  return null;
@@ -14913,7 +14871,7 @@ class IfcPropertiesUtils {
14913
14871
  const allRels = Object.values(allPropsRels);
14914
14872
  let found = null;
14915
14873
  for (const rel of allRels) {
14916
- if (((_a = rel.RelatingPropertyDefinition) == null ? void 0 : _a.value) === psetID) {
14874
+ if (((_a2 = rel.RelatingPropertyDefinition) == null ? void 0 : _a2.value) === psetID) {
14917
14875
  found = rel.expressID;
14918
14876
  }
14919
14877
  }
@@ -14923,13 +14881,13 @@ class IfcPropertiesUtils {
14923
14881
  return IfcPropertiesUtils.getPsetRel(model, qsetID);
14924
14882
  }
14925
14883
  static async getEntityName(model, entityID) {
14926
- var _a;
14884
+ var _a2;
14927
14885
  const entity = await model.getProperties(entityID);
14928
14886
  if (!entity) {
14929
14887
  return { key: null, name: null };
14930
14888
  }
14931
14889
  const key = Object.keys(entity).find((key2) => key2.endsWith("Name")) ?? null;
14932
- const name = key ? (_a = entity[key]) == null ? void 0 : _a.value : null;
14890
+ const name = key ? (_a2 = entity[key]) == null ? void 0 : _a2.value : null;
14933
14891
  return { key, name };
14934
14892
  }
14935
14893
  static async getQuantityValue(model, quantityID) {
@@ -14960,7 +14918,7 @@ class IfcPropertiesUtils {
14960
14918
  return Object.keys(entity).includes(attribute);
14961
14919
  }
14962
14920
  static async groupEntitiesByType(model, expressIDs) {
14963
- var _a;
14921
+ var _a2;
14964
14922
  const categoriesMap = /* @__PURE__ */ new Map();
14965
14923
  for (const expressID of expressIDs) {
14966
14924
  const entity = await model.getProperties(expressID);
@@ -14971,7 +14929,7 @@ class IfcPropertiesUtils {
14971
14929
  const set = categoriesMap.get(key);
14972
14930
  if (!set)
14973
14931
  categoriesMap.set(key, /* @__PURE__ */ new Set());
14974
- (_a = categoriesMap.get(key)) == null ? void 0 : _a.add(expressID);
14932
+ (_a2 = categoriesMap.get(key)) == null ? void 0 : _a2.add(expressID);
14975
14933
  }
14976
14934
  return categoriesMap;
14977
14935
  }
@@ -16146,7 +16104,7 @@ class Units {
16146
16104
  matrix.copy(result);
16147
16105
  }
16148
16106
  setUp(webIfc) {
16149
- var _a, _b, _c;
16107
+ var _a2, _b, _c;
16150
16108
  this.factor = 1;
16151
16109
  const length = this.getLengthUnits(webIfc);
16152
16110
  if (!length) {
@@ -16160,7 +16118,7 @@ class Units {
16160
16118
  if (length.Name.value === "FOOT") {
16161
16119
  this.factor = 0.3048;
16162
16120
  }
16163
- if (((_a = length.Prefix) == null ? void 0 : _a.value) === "MILLI") {
16121
+ if (((_a2 = length.Prefix) == null ? void 0 : _a2.value) === "MILLI") {
16164
16122
  this.complement = 1e-3;
16165
16123
  } else if (((_b = length.Prefix) == null ? void 0 : _b.value) === "CENTI") {
16166
16124
  this.complement = 0.01;
@@ -16418,7 +16376,7 @@ class CivilReader {
16418
16376
  }
16419
16377
  class IfcMetadataReader {
16420
16378
  getNameInfo(webIfc) {
16421
- var _a;
16379
+ var _a2;
16422
16380
  const data = {};
16423
16381
  const { arguments: dataArguments } = webIfc.GetHeaderLine(0, WEBIFC.FILE_NAME) || {};
16424
16382
  if (!dataArguments)
@@ -16444,7 +16402,7 @@ class IfcMetadataReader {
16444
16402
  if (authorEmail == null ? void 0 : authorEmail.value)
16445
16403
  data.author.email = authorEmail.value;
16446
16404
  }
16447
- if (organization && ((_a = organization[0]) == null ? void 0 : _a.value)) {
16405
+ if (organization && ((_a2 = organization[0]) == null ? void 0 : _a2.value)) {
16448
16406
  data.organization = organization[0].value;
16449
16407
  }
16450
16408
  if (preprocessorVersion == null ? void 0 : preprocessorVersion.value) {
@@ -16459,13 +16417,13 @@ class IfcMetadataReader {
16459
16417
  return data;
16460
16418
  }
16461
16419
  getDescriptionInfo(webIfc) {
16462
- var _a;
16420
+ var _a2;
16463
16421
  const data = {};
16464
16422
  const { arguments: dataArguments } = webIfc.GetHeaderLine(0, WEBIFC.FILE_DESCRIPTION) || {};
16465
16423
  if (!dataArguments)
16466
16424
  return data;
16467
16425
  const [description, implementationLevel] = dataArguments;
16468
- if (Array.isArray(description) && ((_a = description[0]) == null ? void 0 : _a.value)) {
16426
+ if (Array.isArray(description) && ((_a2 = description[0]) == null ? void 0 : _a2.value)) {
16469
16427
  const viewDefinition = description[0].value.match(/\[([^\]]+)\]/);
16470
16428
  if (viewDefinition && viewDefinition[1]) {
16471
16429
  data.viewDefinition = viewDefinition[1];
@@ -22696,12 +22654,12 @@ class Comment {
22696
22654
  * @param value - The new comment text.
22697
22655
  */
22698
22656
  set comment(value) {
22699
- var _a;
22657
+ var _a2;
22700
22658
  const manager = this._components.get(BCFTopics);
22701
22659
  this._comment = value;
22702
22660
  this.modifiedDate = /* @__PURE__ */ new Date();
22703
22661
  this.modifiedAuthor = manager.config.author;
22704
- (_a = this.topic) == null ? void 0 : _a.comments.set(this.guid, this);
22662
+ (_a2 = this.topic) == null ? void 0 : _a2.comments.set(this.guid, this);
22705
22663
  }
22706
22664
  /**
22707
22665
  * Gets the comment text.
@@ -23584,12 +23542,12 @@ ${users}
23584
23542
  return comment;
23585
23543
  }
23586
23544
  getMarkupComments(markup, version) {
23587
- var _a;
23545
+ var _a2;
23588
23546
  let data;
23589
23547
  if (version === "2.1")
23590
23548
  data = markup.Comment;
23591
23549
  if (version === "3")
23592
- data = (_a = markup.Topic.Comments) == null ? void 0 : _a.Comment;
23550
+ data = (_a2 = markup.Topic.Comments) == null ? void 0 : _a2.Comment;
23593
23551
  if (!data)
23594
23552
  return [];
23595
23553
  data = Array.isArray(data) ? data : [data];
@@ -23598,36 +23556,36 @@ ${users}
23598
23556
  return array;
23599
23557
  }
23600
23558
  getMarkupLabels(markup, version) {
23601
- var _a;
23559
+ var _a2;
23602
23560
  let data;
23603
23561
  if (version === "2.1")
23604
23562
  data = markup.Topic.Labels;
23605
23563
  if (version === "3")
23606
- data = (_a = markup.Topic.Labels) == null ? void 0 : _a.Label;
23564
+ data = (_a2 = markup.Topic.Labels) == null ? void 0 : _a2.Label;
23607
23565
  if (!data)
23608
23566
  return [];
23609
23567
  const labels = Array.isArray(data) ? data : [data];
23610
23568
  return labels;
23611
23569
  }
23612
23570
  getMarkupViewpoints(markup, version) {
23613
- var _a;
23571
+ var _a2;
23614
23572
  let data;
23615
23573
  if (version === "2.1")
23616
23574
  data = markup.Viewpoints;
23617
23575
  if (version === "3")
23618
- data = (_a = markup.Topic.Viewpoints) == null ? void 0 : _a.ViewPoint;
23576
+ data = (_a2 = markup.Topic.Viewpoints) == null ? void 0 : _a2.ViewPoint;
23619
23577
  if (!data)
23620
23578
  return [];
23621
23579
  data = Array.isArray(data) ? data : [data];
23622
23580
  return data;
23623
23581
  }
23624
23582
  getMarkupRelatedTopics(markup, version) {
23625
- var _a;
23583
+ var _a2;
23626
23584
  let data;
23627
23585
  if (version === "2.1")
23628
23586
  data = markup.Topic.RelatedTopic;
23629
23587
  if (version === "3")
23630
- data = (_a = markup.Topic.RelatedTopics) == null ? void 0 : _a.RelatedTopic;
23588
+ data = (_a2 = markup.Topic.RelatedTopics) == null ? void 0 : _a2.RelatedTopic;
23631
23589
  if (!data)
23632
23590
  return [];
23633
23591
  const topics = Array.isArray(data) ? data : [data];
@@ -23644,7 +23602,7 @@ ${users}
23644
23602
  * @throws An error if the BCF version is not supported.
23645
23603
  */
23646
23604
  async load(data, world) {
23647
- var _a;
23605
+ var _a2;
23648
23606
  const {
23649
23607
  fallbackVersionOnImport,
23650
23608
  ignoreIncompleteTopicsOnImport,
@@ -23709,7 +23667,7 @@ ${users}
23709
23667
  ViewSetupHints = Components2.ViewSetupHints;
23710
23668
  }
23711
23669
  if (version === "3") {
23712
- ViewSetupHints = (_a = Components2.Visibility) == null ? void 0 : _a.ViewSetupHints;
23670
+ ViewSetupHints = (_a2 = Components2.Visibility) == null ? void 0 : _a2.ViewSetupHints;
23713
23671
  }
23714
23672
  if (ViewSetupHints) {
23715
23673
  if ("OpeningsVisible" in ViewSetupHints) {
@@ -25181,7 +25139,7 @@ const _Classifier = class _Classifier extends Component {
25181
25139
  * @throws Will throw an error if the fragment ID is not found.
25182
25140
  */
25183
25141
  async byPredefinedType(group) {
25184
- var _a;
25142
+ var _a2;
25185
25143
  if (!this.list.predefinedTypes) {
25186
25144
  this.list.predefinedTypes = {};
25187
25145
  }
@@ -25191,7 +25149,7 @@ const _Classifier = class _Classifier extends Component {
25191
25149
  const entity = await group.getProperties(id);
25192
25150
  if (!entity)
25193
25151
  continue;
25194
- const predefinedType = String((_a = entity.PredefinedType) == null ? void 0 : _a.value).toUpperCase();
25152
+ const predefinedType = String((_a2 = entity.PredefinedType) == null ? void 0 : _a2.value).toUpperCase();
25195
25153
  if (!currentTypes[predefinedType]) {
25196
25154
  currentTypes[predefinedType] = {
25197
25155
  map: {},
@@ -25294,7 +25252,7 @@ const _Classifier = class _Classifier extends Component {
25294
25252
  * @throws Will throw an error if the fragment ID is not found or if the model relations do not exist.
25295
25253
  */
25296
25254
  async bySpatialStructure(model, config = {}) {
25297
- var _a, _b;
25255
+ var _a2, _b;
25298
25256
  const indexer = this.components.get(IfcRelationsIndexer);
25299
25257
  const modelRelations = indexer.relationMaps[model.uuid];
25300
25258
  if (!modelRelations) {
@@ -25328,7 +25286,7 @@ const _Classifier = class _Classifier extends Component {
25328
25286
  if (!spatialRelAttrs) {
25329
25287
  continue;
25330
25288
  }
25331
- relName2 = (_a = spatialRelAttrs.Name) == null ? void 0 : _a.value;
25289
+ relName2 = (_a2 = spatialRelAttrs.Name) == null ? void 0 : _a2.value;
25332
25290
  }
25333
25291
  this.saveItem(model, systemName, relName2, expressID, id);
25334
25292
  }
@@ -26593,7 +26551,7 @@ class Viewpoint {
26593
26551
  }
26594
26552
  }
26595
26553
  async createComponentTags(from) {
26596
- var _a, _b;
26554
+ var _a2, _b;
26597
26555
  const fragments = this._components.get(FragmentsManager);
26598
26556
  const manager = this._components.get(BCFTopics);
26599
26557
  let tags = "";
@@ -26608,7 +26566,7 @@ class Viewpoint {
26608
26566
  const attrs = await model.getProperties(expressID);
26609
26567
  if (!attrs)
26610
26568
  continue;
26611
- const globalID = (_a = attrs.GlobalId) == null ? void 0 : _a.value;
26569
+ const globalID = (_a2 = attrs.GlobalId) == null ? void 0 : _a2.value;
26612
26570
  if (!globalID)
26613
26571
  continue;
26614
26572
  const tag = (_b = attrs.Tag) == null ? void 0 : _b.value;
@@ -27781,14 +27739,14 @@ class IDSAttribute extends IDSFacet {
27781
27739
  // All invalid cases have been treated as failures
27782
27740
  // FragmentsGroup do not hold some of the entities used in the tests
27783
27741
  async test(entities) {
27784
- var _a;
27742
+ var _a2;
27785
27743
  this.testResult = [];
27786
27744
  for (const _expressID in entities) {
27787
27745
  const expressID = Number(_expressID);
27788
27746
  const attrs = entities[expressID];
27789
27747
  const checks = [];
27790
27748
  const result2 = {
27791
- guid: (_a = attrs.GlobalId) == null ? void 0 : _a.value,
27749
+ guid: (_a2 = attrs.GlobalId) == null ? void 0 : _a2.value,
27792
27750
  expressID,
27793
27751
  pass: false,
27794
27752
  checks,
@@ -27882,7 +27840,7 @@ class IDSClassification extends IDSFacet {
27882
27840
  </classification>`;
27883
27841
  }
27884
27842
  async getEntities(model, collector = {}) {
27885
- var _a;
27843
+ var _a2;
27886
27844
  const result = [];
27887
27845
  const references = await model.getAllPropertiesOfType(
27888
27846
  WEBIFC.IFCCLASSIFICATIONREFERENCE
@@ -27897,7 +27855,7 @@ class IDSClassification extends IDSFacet {
27897
27855
  const attrs = await model.getProperties(classificationID);
27898
27856
  if (!attrs)
27899
27857
  continue;
27900
- const referencedSourceID = (_a = attrs.ReferencedSource) == null ? void 0 : _a.value;
27858
+ const referencedSourceID = (_a2 = attrs.ReferencedSource) == null ? void 0 : _a2.value;
27901
27859
  if (!referencedSourceID)
27902
27860
  continue;
27903
27861
  const classificationAttrs = await model.getProperties(referencedSourceID);
@@ -27934,14 +27892,14 @@ class IDSClassification extends IDSFacet {
27934
27892
  return result;
27935
27893
  }
27936
27894
  async test(entities, model) {
27937
- var _a;
27895
+ var _a2;
27938
27896
  this.testResult = [];
27939
27897
  for (const _expressID in entities) {
27940
27898
  const expressID = Number(_expressID);
27941
27899
  const attrs = entities[expressID];
27942
27900
  const checks = [];
27943
27901
  const result2 = {
27944
- guid: (_a = attrs.GlobalId) == null ? void 0 : _a.value,
27902
+ guid: (_a2 = attrs.GlobalId) == null ? void 0 : _a2.value,
27945
27903
  expressID,
27946
27904
  pass: false,
27947
27905
  checks,
@@ -27984,8 +27942,8 @@ class IDSClassification extends IDSFacet {
27984
27942
  return result;
27985
27943
  }
27986
27944
  async processReferencedSource(model, attrs) {
27987
- var _a;
27988
- const sourceID = (_a = attrs.ReferencedSource) == null ? void 0 : _a.value;
27945
+ var _a2;
27946
+ const sourceID = (_a2 = attrs.ReferencedSource) == null ? void 0 : _a2.value;
27989
27947
  if (!sourceID)
27990
27948
  return null;
27991
27949
  const sourceAttrs = await model.getProperties(sourceID);
@@ -28000,7 +27958,7 @@ class IDSClassification extends IDSFacet {
28000
27958
  return sourceAttrs;
28001
27959
  }
28002
27960
  async getSystems(model, expressID) {
28003
- var _a;
27961
+ var _a2;
28004
27962
  const result = [];
28005
27963
  const indexer = this.components.get(IfcRelationsIndexer);
28006
27964
  const ocurrenceAssociations = indexer.getEntityRelations(
@@ -28027,9 +27985,9 @@ class IDSClassification extends IDSFacet {
28027
27985
  }
28028
27986
  }
28029
27987
  const occurrenceSystems = result.map((attrs) => {
28030
- var _a2, _b, _c;
27988
+ var _a3, _b, _c;
28031
27989
  if (attrs.type === WEBIFC.IFCCLASSIFICATION) {
28032
- return (_a2 = attrs.Name) == null ? void 0 : _a2.value;
27990
+ return (_a3 = attrs.Name) == null ? void 0 : _a3.value;
28033
27991
  }
28034
27992
  if (attrs.type === WEBIFC.IFCCLASSIFICATIONREFERENCE) {
28035
27993
  return (_c = (_b = attrs.ReferencedSource) == null ? void 0 : _b.Name) == null ? void 0 : _c.value;
@@ -28051,7 +28009,7 @@ class IDSClassification extends IDSFacet {
28051
28009
  if (!attrs)
28052
28010
  continue;
28053
28011
  if (attrs.type === WEBIFC.IFCCLASSIFICATION) {
28054
- if (occurrenceSystems.includes((_a = attrs.Name) == null ? void 0 : _a.value))
28012
+ if (occurrenceSystems.includes((_a2 = attrs.Name) == null ? void 0 : _a2.value))
28055
28013
  continue;
28056
28014
  result.push(attrs);
28057
28015
  }
@@ -28068,9 +28026,9 @@ class IDSClassification extends IDSFacet {
28068
28026
  return result;
28069
28027
  }
28070
28028
  getSystemName(attrs) {
28071
- var _a, _b, _c, _d;
28029
+ var _a2, _b, _c, _d;
28072
28030
  if (attrs.type === WEBIFC.IFCCLASSIFICATION) {
28073
- return (_a = attrs.Name) == null ? void 0 : _a.value;
28031
+ return (_a2 = attrs.Name) == null ? void 0 : _a2.value;
28074
28032
  }
28075
28033
  if (attrs.type === WEBIFC.IFCCLASSIFICATIONREFERENCE) {
28076
28034
  if (((_b = attrs.ReferencedSource) == null ? void 0 : _b.type) === WEBIFC.IFCCLASSIFICATIONREFERENCE) {
@@ -28126,11 +28084,11 @@ class IDSClassification extends IDSFacet {
28126
28084
  return !!identifier;
28127
28085
  }
28128
28086
  evalURI(attrs, checks) {
28129
- var _a;
28087
+ var _a2;
28130
28088
  if (!this.uri)
28131
28089
  return true;
28132
28090
  const result = this.evalRequirement(
28133
- (_a = attrs.Location) == null ? void 0 : _a.value,
28091
+ (_a2 = attrs.Location) == null ? void 0 : _a2.value,
28134
28092
  {
28135
28093
  type: "simple",
28136
28094
  parameter: this.uri
@@ -28202,14 +28160,14 @@ class IDSEntity extends IDSFacet {
28202
28160
  return result;
28203
28161
  }
28204
28162
  async test(entities, model) {
28205
- var _a;
28163
+ var _a2;
28206
28164
  this.testResult = [];
28207
28165
  for (const _expressID in entities) {
28208
28166
  const expressID = Number(_expressID);
28209
28167
  const attrs = entities[expressID];
28210
28168
  const checks = [];
28211
28169
  const result = {
28212
- guid: (_a = attrs.GlobalId) == null ? void 0 : _a.value,
28170
+ guid: (_a2 = attrs.GlobalId) == null ? void 0 : _a2.value,
28213
28171
  expressID,
28214
28172
  pass: false,
28215
28173
  checks,
@@ -28228,12 +28186,12 @@ class IDSEntity extends IDSFacet {
28228
28186
  return result;
28229
28187
  }
28230
28188
  async evalPredefinedType(model, attrs, checks) {
28231
- var _a, _b, _c, _d;
28189
+ var _a2, _b, _c, _d;
28232
28190
  if (!this.predefinedType)
28233
28191
  return null;
28234
28192
  const indexer = this.components.get(IfcRelationsIndexer);
28235
28193
  const isRequirementUserDefined = typeof this.predefinedType.parameter === "string" && this.predefinedType.parameter === "USERDEFINED";
28236
- let value = (_a = attrs.PredefinedType) == null ? void 0 : _a.value;
28194
+ let value = (_a2 = attrs.PredefinedType) == null ? void 0 : _a2.value;
28237
28195
  if (value === "USERDEFINED" && !isRequirementUserDefined) {
28238
28196
  const attrNames = Object.keys(attrs);
28239
28197
  const result2 = attrNames.find(
@@ -28305,7 +28263,7 @@ class IDSProperty extends IDSFacet {
28305
28263
  </property>`;
28306
28264
  }
28307
28265
  async getEntities(model, collector = {}) {
28308
- var _a, _b;
28266
+ var _a2, _b;
28309
28267
  let sets = {};
28310
28268
  const psets = await model.getAllPropertiesOfType(WEBIFC.IFCPROPERTYSET);
28311
28269
  sets = { ...sets, ...psets };
@@ -28319,7 +28277,7 @@ class IDSProperty extends IDSFacet {
28319
28277
  const attrs = await model.getProperties(setID);
28320
28278
  if (!attrs)
28321
28279
  continue;
28322
- const nameMatches = ((_a = attrs.Name) == null ? void 0 : _a.value) === this.propertySet.parameter;
28280
+ const nameMatches = ((_a2 = attrs.Name) == null ? void 0 : _a2.value) === this.propertySet.parameter;
28323
28281
  if (!nameMatches)
28324
28282
  continue;
28325
28283
  let propsListName;
@@ -28368,14 +28326,14 @@ class IDSProperty extends IDSFacet {
28368
28326
  return [];
28369
28327
  }
28370
28328
  async test(entities, model) {
28371
- var _a;
28329
+ var _a2;
28372
28330
  this.testResult = [];
28373
28331
  for (const _expressID in entities) {
28374
28332
  const expressID = Number(_expressID);
28375
28333
  const attrs = entities[expressID];
28376
28334
  const checks = [];
28377
28335
  const result2 = {
28378
- guid: (_a = attrs.GlobalId) == null ? void 0 : _a.value,
28336
+ guid: (_a2 = attrs.GlobalId) == null ? void 0 : _a2.value,
28379
28337
  expressID,
28380
28338
  pass: false,
28381
28339
  checks,
@@ -28420,12 +28378,12 @@ class IDSProperty extends IDSFacet {
28420
28378
  }
28421
28379
  const items = set.Properties;
28422
28380
  const matchingItems = items.filter((item) => {
28423
- var _a2;
28381
+ var _a3;
28424
28382
  if (this._unsupportedTypes.includes(item.type)) {
28425
28383
  return false;
28426
28384
  }
28427
28385
  const result3 = this.evalRequirement(
28428
- ((_a2 = item.Name) == null ? void 0 : _a2.value) ?? null,
28386
+ ((_a3 = item.Name) == null ? void 0 : _a3.value) ?? null,
28429
28387
  this.baseName,
28430
28388
  "BaseName"
28431
28389
  );
@@ -28474,7 +28432,7 @@ class IDSProperty extends IDSFacet {
28474
28432
  );
28475
28433
  }
28476
28434
  async simplifyPset(model, attrs, propsListName) {
28477
- var _a;
28435
+ var _a2;
28478
28436
  const props = [];
28479
28437
  const list = attrs[propsListName];
28480
28438
  if (!list)
@@ -28485,7 +28443,7 @@ class IDSProperty extends IDSFacet {
28485
28443
  props.push(propAttrs);
28486
28444
  }
28487
28445
  const attrsClone = {
28488
- Name: (_a = attrs.Name) == null ? void 0 : _a.value,
28446
+ Name: (_a2 = attrs.Name) == null ? void 0 : _a2.value,
28489
28447
  Properties: props,
28490
28448
  type: attrs.type
28491
28449
  };
@@ -28512,7 +28470,7 @@ class IDSProperty extends IDSFacet {
28512
28470
  return sets;
28513
28471
  }
28514
28472
  async getPsets(model, expressID) {
28515
- var _a;
28473
+ var _a2;
28516
28474
  const typePsets = await this.getTypePsets(model, expressID);
28517
28475
  const indexer = this.components.get(IfcRelationsIndexer);
28518
28476
  const definitions = indexer.getEntityRelations(
@@ -28540,7 +28498,7 @@ class IDSProperty extends IDSFacet {
28540
28498
  );
28541
28499
  if (typePset) {
28542
28500
  for (const prop of typePset.Properties) {
28543
- const name = (_a = prop.Name) == null ? void 0 : _a.value;
28501
+ const name = (_a2 = prop.Name) == null ? void 0 : _a2.value;
28544
28502
  const existingProp = occurencePset.Properties.find(
28545
28503
  ({ Name }) => Name.value === name
28546
28504
  );