@focusbc/bbs-lib 0.0.5 → 0.0.7
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/browser/bbs-lib.js +54 -10
- package/dist/browser/bbs-lib.js.map +2 -2
- package/dist/overlay/map-overlay.d.ts +12 -1
- package/dist/overlay/map-overlay.d.ts.map +1 -1
- package/dist/overlay/map-overlay.js +58 -15
- package/dist/overlay/map-overlay.js.map +1 -1
- package/dist/overlay/overlay-dynamic-layer.builder.d.ts.map +1 -1
- package/dist/overlay/overlay-dynamic-layer.builder.js +1 -0
- package/dist/overlay/overlay-dynamic-layer.builder.js.map +1 -1
- package/dist/types/events.d.ts +3 -0
- package/dist/types/events.d.ts.map +1 -1
- package/dist/types/overlay-options.d.ts +1 -0
- package/dist/types/overlay-options.d.ts.map +1 -1
- package/package.json +1 -1
- package/readme.md +262 -0
- package/README.md +0 -169
package/dist/browser/bbs-lib.js
CHANGED
|
@@ -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,
|
|
@@ -78663,6 +78664,7 @@ var MapOverlay = class _MapOverlay {
|
|
|
78663
78664
|
constructor(htmlElement, context, options = {}) {
|
|
78664
78665
|
this._levelId = null;
|
|
78665
78666
|
this._surroundings = false;
|
|
78667
|
+
this._blueprint = true;
|
|
78666
78668
|
this._shapes = [];
|
|
78667
78669
|
this._selectedShapeId = null;
|
|
78668
78670
|
this._editMode = false;
|
|
@@ -78675,6 +78677,7 @@ var MapOverlay = class _MapOverlay {
|
|
|
78675
78677
|
this._clickEvent = new Event3();
|
|
78676
78678
|
this._doubleClickEvent = new Event3();
|
|
78677
78679
|
this._rightClickEvent = new Event3();
|
|
78680
|
+
this._dropEvent = new Event3();
|
|
78678
78681
|
this.onDoubleClick = (event) => {
|
|
78679
78682
|
if (!(event.target instanceof HTMLCanvasElement)) {
|
|
78680
78683
|
return;
|
|
@@ -78688,8 +78691,21 @@ var MapOverlay = class _MapOverlay {
|
|
|
78688
78691
|
event.preventDefault();
|
|
78689
78692
|
this._rightClickEvent.emit(this.createPointerEventFromMouseEvent(event));
|
|
78690
78693
|
};
|
|
78694
|
+
this.onDragOver = (event) => {
|
|
78695
|
+
event.preventDefault();
|
|
78696
|
+
if (event.dataTransfer) {
|
|
78697
|
+
event.dataTransfer.dropEffect = "copy";
|
|
78698
|
+
}
|
|
78699
|
+
};
|
|
78700
|
+
this.onDrop = (event) => {
|
|
78701
|
+
event.preventDefault();
|
|
78702
|
+
this._dropEvent.emit({
|
|
78703
|
+
...this.createPointerEventFromMouseEvent(event),
|
|
78704
|
+
dataTransfer: event.dataTransfer
|
|
78705
|
+
});
|
|
78706
|
+
};
|
|
78691
78707
|
const { zoom, heading, tilt } = options;
|
|
78692
|
-
const { center: center3, defaultLevelId } = context;
|
|
78708
|
+
const { center: center3, defaultLevelId, rotation } = context;
|
|
78693
78709
|
this._context = context;
|
|
78694
78710
|
this._htmlElement = htmlElement;
|
|
78695
78711
|
this._levelId = defaultLevelId;
|
|
@@ -78697,7 +78713,7 @@ var MapOverlay = class _MapOverlay {
|
|
|
78697
78713
|
zoom: zoom ?? DEFAULT_ZOOM,
|
|
78698
78714
|
latitude: center3?.lat ?? 0,
|
|
78699
78715
|
longitude: center3?.lng ?? 0,
|
|
78700
|
-
bearing: heading ?? 0,
|
|
78716
|
+
bearing: (heading || rotation) ?? 0,
|
|
78701
78717
|
pitch: tilt ?? 0,
|
|
78702
78718
|
maxZoom: MAX_ZOOM
|
|
78703
78719
|
};
|
|
@@ -78722,6 +78738,8 @@ var MapOverlay = class _MapOverlay {
|
|
|
78722
78738
|
});
|
|
78723
78739
|
this._htmlElement.addEventListener("dblclick", this.onDoubleClick, true);
|
|
78724
78740
|
this._htmlElement.addEventListener("contextmenu", this.onRightClick, true);
|
|
78741
|
+
this._htmlElement.addEventListener("dragover", this.onDragOver, true);
|
|
78742
|
+
this._htmlElement.addEventListener("drop", this.onDrop, true);
|
|
78725
78743
|
}
|
|
78726
78744
|
// #region Private methods
|
|
78727
78745
|
/**
|
|
@@ -78734,20 +78752,21 @@ var MapOverlay = class _MapOverlay {
|
|
|
78734
78752
|
this._zoomChangedEvent.emit(this._viewState.zoom ?? DEFAULT_ZOOM);
|
|
78735
78753
|
}
|
|
78736
78754
|
createLayers() {
|
|
78737
|
-
|
|
78738
|
-
|
|
78739
|
-
|
|
78740
|
-
|
|
78755
|
+
let staticLayers = [];
|
|
78756
|
+
const dynamicLayer = new OverlayDynamicLayerBuilder(this._shapes).setSelectedShapeId(this._selectedShapeId).setEdit(this._editMode).setOnSelect(this.onClick.bind(this)).setOnEdit(this.onEdit.bind(this)).build();
|
|
78757
|
+
if (this._blueprint) {
|
|
78758
|
+
staticLayers = new OverlayStaticLayerBuilder(this._context.apiUrl, this._context.apiKey, this._levelId).setLayers(this._context.staticLayers).setSurroundings(this._surroundings).build();
|
|
78759
|
+
}
|
|
78760
|
+
return [dynamicLayer, ...staticLayers];
|
|
78741
78761
|
}
|
|
78742
78762
|
rebuildLayers() {
|
|
78743
78763
|
this._deck.setProps({ layers: this.createLayers() });
|
|
78744
78764
|
}
|
|
78745
78765
|
createPointerEventFromMouseEvent(event) {
|
|
78766
|
+
const { lat, lng } = this.getCoordinatesAt(event.clientX, event.clientY);
|
|
78746
78767
|
const bounds = this._htmlElement.getBoundingClientRect();
|
|
78747
78768
|
const x2 = event.clientX - bounds.left;
|
|
78748
78769
|
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
78770
|
const picked = this._deck.pickObject({ x: x2, y: y2 })?.object;
|
|
78752
78771
|
return {
|
|
78753
78772
|
lat,
|
|
@@ -78757,6 +78776,18 @@ var MapOverlay = class _MapOverlay {
|
|
|
78757
78776
|
shape: picked?.groupId ? this._shapes.find((shape) => shape.id === picked.groupId) : void 0
|
|
78758
78777
|
};
|
|
78759
78778
|
}
|
|
78779
|
+
/**
|
|
78780
|
+
* Returns the geographic coordinates for a viewport pixel at the given client coordinates.
|
|
78781
|
+
*/
|
|
78782
|
+
getCoordinatesAt(clientX, clientY) {
|
|
78783
|
+
const bounds = this._htmlElement.getBoundingClientRect();
|
|
78784
|
+
const viewport = this._deck.getViewports()?.[0];
|
|
78785
|
+
if (!viewport) {
|
|
78786
|
+
return this.getCenter();
|
|
78787
|
+
}
|
|
78788
|
+
const [lng, lat] = viewport.unproject([clientX - bounds.left, clientY - bounds.top]);
|
|
78789
|
+
return { lat, lng };
|
|
78790
|
+
}
|
|
78760
78791
|
/**
|
|
78761
78792
|
* Handle the click event.
|
|
78762
78793
|
*/
|
|
@@ -78838,17 +78869,20 @@ var MapOverlay = class _MapOverlay {
|
|
|
78838
78869
|
finalize() {
|
|
78839
78870
|
this._htmlElement.removeEventListener("dblclick", this.onDoubleClick, true);
|
|
78840
78871
|
this._htmlElement.removeEventListener("contextmenu", this.onRightClick, true);
|
|
78872
|
+
this._htmlElement.removeEventListener("dragover", this.onDragOver, true);
|
|
78873
|
+
this._htmlElement.removeEventListener("drop", this.onDrop, true);
|
|
78841
78874
|
this._deck.finalize();
|
|
78842
78875
|
}
|
|
78843
78876
|
//#region Getters and Setters
|
|
78844
78877
|
setContext(context) {
|
|
78845
|
-
const { center: center3, defaultLevelId } = context;
|
|
78878
|
+
const { center: center3, defaultLevelId, rotation } = context;
|
|
78846
78879
|
this._context = context;
|
|
78847
78880
|
this._levelId = defaultLevelId;
|
|
78848
78881
|
this._viewState = {
|
|
78849
78882
|
...this._viewState,
|
|
78850
78883
|
latitude: center3.lat ?? 0,
|
|
78851
|
-
longitude: center3.lng ?? 0
|
|
78884
|
+
longitude: center3.lng ?? 0,
|
|
78885
|
+
bearing: rotation ?? this._viewState.bearing ?? 0
|
|
78852
78886
|
};
|
|
78853
78887
|
this._deck.setProps({ viewState: this._viewState });
|
|
78854
78888
|
this.rebuildLayers();
|
|
@@ -78864,6 +78898,13 @@ var MapOverlay = class _MapOverlay {
|
|
|
78864
78898
|
this._surroundings = active;
|
|
78865
78899
|
this.rebuildLayers();
|
|
78866
78900
|
}
|
|
78901
|
+
getBlueprint() {
|
|
78902
|
+
return this._blueprint;
|
|
78903
|
+
}
|
|
78904
|
+
setBlueprint(active) {
|
|
78905
|
+
this._blueprint = active;
|
|
78906
|
+
this.rebuildLayers();
|
|
78907
|
+
}
|
|
78867
78908
|
getLevelId() {
|
|
78868
78909
|
return this._levelId;
|
|
78869
78910
|
}
|
|
@@ -78953,6 +78994,9 @@ var MapOverlay = class _MapOverlay {
|
|
|
78953
78994
|
rightClick() {
|
|
78954
78995
|
return this._rightClickEvent;
|
|
78955
78996
|
}
|
|
78997
|
+
drop() {
|
|
78998
|
+
return this._dropEvent;
|
|
78999
|
+
}
|
|
78956
79000
|
//#endregion
|
|
78957
79001
|
//#endregion
|
|
78958
79002
|
};
|