@focusbc/bbs-lib 0.0.5 → 0.0.6

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.
@@ -78382,6 +78382,7 @@ var OverlayDynamicLayerBuilder = class {
78382
78382
  coordinates: [[mapPolygon(segment.polygon)]],
78383
78383
  style: segment.style
78384
78384
  },
78385
+ label: segment.style?.text,
78385
78386
  type: ObjectType.POLYGON,
78386
78387
  visible: true,
78387
78388
  selectable: true,
@@ -78675,6 +78676,7 @@ var MapOverlay = class _MapOverlay {
78675
78676
  this._clickEvent = new Event3();
78676
78677
  this._doubleClickEvent = new Event3();
78677
78678
  this._rightClickEvent = new Event3();
78679
+ this._dropEvent = new Event3();
78678
78680
  this.onDoubleClick = (event) => {
78679
78681
  if (!(event.target instanceof HTMLCanvasElement)) {
78680
78682
  return;
@@ -78688,6 +78690,19 @@ var MapOverlay = class _MapOverlay {
78688
78690
  event.preventDefault();
78689
78691
  this._rightClickEvent.emit(this.createPointerEventFromMouseEvent(event));
78690
78692
  };
78693
+ this.onDragOver = (event) => {
78694
+ event.preventDefault();
78695
+ if (event.dataTransfer) {
78696
+ event.dataTransfer.dropEffect = "copy";
78697
+ }
78698
+ };
78699
+ this.onDrop = (event) => {
78700
+ event.preventDefault();
78701
+ this._dropEvent.emit({
78702
+ ...this.createPointerEventFromMouseEvent(event),
78703
+ dataTransfer: event.dataTransfer
78704
+ });
78705
+ };
78691
78706
  const { zoom, heading, tilt } = options;
78692
78707
  const { center: center3, defaultLevelId } = context;
78693
78708
  this._context = context;
@@ -78722,6 +78737,8 @@ var MapOverlay = class _MapOverlay {
78722
78737
  });
78723
78738
  this._htmlElement.addEventListener("dblclick", this.onDoubleClick, true);
78724
78739
  this._htmlElement.addEventListener("contextmenu", this.onRightClick, true);
78740
+ this._htmlElement.addEventListener("dragover", this.onDragOver, true);
78741
+ this._htmlElement.addEventListener("drop", this.onDrop, true);
78725
78742
  }
78726
78743
  // #region Private methods
78727
78744
  /**
@@ -78743,11 +78760,10 @@ var MapOverlay = class _MapOverlay {
78743
78760
  this._deck.setProps({ layers: this.createLayers() });
78744
78761
  }
78745
78762
  createPointerEventFromMouseEvent(event) {
78763
+ const { lat, lng } = this.getCoordinatesAt(event.clientX, event.clientY);
78746
78764
  const bounds = this._htmlElement.getBoundingClientRect();
78747
78765
  const x2 = event.clientX - bounds.left;
78748
78766
  const y2 = event.clientY - bounds.top;
78749
- const viewport = this._deck.getViewports()?.[0];
78750
- const [lng, lat] = viewport ? viewport.unproject([x2, y2]) : [this.getCenter().lng, this.getCenter().lat];
78751
78767
  const picked = this._deck.pickObject({ x: x2, y: y2 })?.object;
78752
78768
  return {
78753
78769
  lat,
@@ -78757,6 +78773,18 @@ var MapOverlay = class _MapOverlay {
78757
78773
  shape: picked?.groupId ? this._shapes.find((shape) => shape.id === picked.groupId) : void 0
78758
78774
  };
78759
78775
  }
78776
+ /**
78777
+ * Returns the geographic coordinates for a viewport pixel at the given client coordinates.
78778
+ */
78779
+ getCoordinatesAt(clientX, clientY) {
78780
+ const bounds = this._htmlElement.getBoundingClientRect();
78781
+ const viewport = this._deck.getViewports()?.[0];
78782
+ if (!viewport) {
78783
+ return this.getCenter();
78784
+ }
78785
+ const [lng, lat] = viewport.unproject([clientX - bounds.left, clientY - bounds.top]);
78786
+ return { lat, lng };
78787
+ }
78760
78788
  /**
78761
78789
  * Handle the click event.
78762
78790
  */
@@ -78838,6 +78866,8 @@ var MapOverlay = class _MapOverlay {
78838
78866
  finalize() {
78839
78867
  this._htmlElement.removeEventListener("dblclick", this.onDoubleClick, true);
78840
78868
  this._htmlElement.removeEventListener("contextmenu", this.onRightClick, true);
78869
+ this._htmlElement.removeEventListener("dragover", this.onDragOver, true);
78870
+ this._htmlElement.removeEventListener("drop", this.onDrop, true);
78841
78871
  this._deck.finalize();
78842
78872
  }
78843
78873
  //#region Getters and Setters
@@ -78953,6 +78983,9 @@ var MapOverlay = class _MapOverlay {
78953
78983
  rightClick() {
78954
78984
  return this._rightClickEvent;
78955
78985
  }
78986
+ drop() {
78987
+ return this._dropEvent;
78988
+ }
78956
78989
  //#endregion
78957
78990
  //#endregion
78958
78991
  };