@focusbc/bbs-lib 0.0.4 → 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.
- package/dist/browser/bbs-lib.js +75 -97
- package/dist/browser/bbs-lib.js.map +4 -4
- package/dist/overlay/map-overlay.d.ts +17 -1
- package/dist/overlay/map-overlay.d.ts.map +1 -1
- package/dist/overlay/map-overlay.js +73 -0
- 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 +7 -1
- package/dist/types/events.d.ts.map +1 -1
- package/package.json +3 -3
- package/readme.md +262 -0
- package/README.md +0 -155
package/dist/browser/bbs-lib.js
CHANGED
|
@@ -18186,105 +18186,9 @@ var ImageLoader = {
|
|
|
18186
18186
|
var defaultLogger = new ProbeLog({ id: "deck" });
|
|
18187
18187
|
var log_default = defaultLogger;
|
|
18188
18188
|
|
|
18189
|
-
// node_modules/@deck.gl/core/dist/debug/loggers.js
|
|
18190
|
-
var logState = {
|
|
18191
|
-
attributeUpdateStart: -1,
|
|
18192
|
-
attributeManagerUpdateStart: -1,
|
|
18193
|
-
attributeUpdateMessages: []
|
|
18194
|
-
};
|
|
18195
|
-
var LOG_LEVEL_MAJOR_UPDATE = 1;
|
|
18196
|
-
var LOG_LEVEL_MINOR_UPDATE = 2;
|
|
18197
|
-
var LOG_LEVEL_UPDATE_DETAIL = 3;
|
|
18198
|
-
var LOG_LEVEL_INFO = 4;
|
|
18199
|
-
var LOG_LEVEL_DRAW = 2;
|
|
18200
|
-
var getLoggers = (log4) => ({
|
|
18201
|
-
/* Layer events */
|
|
18202
|
-
"layer.changeFlag": (layer, key, flags) => {
|
|
18203
|
-
log4.log(LOG_LEVEL_UPDATE_DETAIL, `${layer.id} ${key}: `, flags[key])();
|
|
18204
|
-
},
|
|
18205
|
-
"layer.initialize": (layer) => {
|
|
18206
|
-
log4.log(LOG_LEVEL_MAJOR_UPDATE, `Initializing ${layer}`)();
|
|
18207
|
-
},
|
|
18208
|
-
"layer.update": (layer, needsUpdate) => {
|
|
18209
|
-
if (needsUpdate) {
|
|
18210
|
-
const flags = layer.getChangeFlags();
|
|
18211
|
-
log4.log(LOG_LEVEL_MINOR_UPDATE, `Updating ${layer} because: ${Object.keys(flags).filter((key) => flags[key]).join(", ")}`)();
|
|
18212
|
-
} else {
|
|
18213
|
-
log4.log(LOG_LEVEL_INFO, `${layer} does not need update`)();
|
|
18214
|
-
}
|
|
18215
|
-
},
|
|
18216
|
-
"layer.matched": (layer, changed) => {
|
|
18217
|
-
if (changed) {
|
|
18218
|
-
log4.log(LOG_LEVEL_INFO, `Matched ${layer}, state transfered`)();
|
|
18219
|
-
}
|
|
18220
|
-
},
|
|
18221
|
-
"layer.finalize": (layer) => {
|
|
18222
|
-
log4.log(LOG_LEVEL_MAJOR_UPDATE, `Finalizing ${layer}`)();
|
|
18223
|
-
},
|
|
18224
|
-
/* CompositeLayer events */
|
|
18225
|
-
"compositeLayer.renderLayers": (layer, updated, subLayers) => {
|
|
18226
|
-
if (updated) {
|
|
18227
|
-
log4.log(LOG_LEVEL_MINOR_UPDATE, `Composite layer rendered new subLayers ${layer}`, subLayers)();
|
|
18228
|
-
} else {
|
|
18229
|
-
log4.log(LOG_LEVEL_INFO, `Composite layer reused subLayers ${layer}`, subLayers)();
|
|
18230
|
-
}
|
|
18231
|
-
},
|
|
18232
|
-
/* LayerManager events */
|
|
18233
|
-
"layerManager.setLayers": (layerManager, updated, layers) => {
|
|
18234
|
-
if (updated) {
|
|
18235
|
-
log4.log(LOG_LEVEL_MINOR_UPDATE, `Updating ${layers.length} deck layers`)();
|
|
18236
|
-
}
|
|
18237
|
-
},
|
|
18238
|
-
"layerManager.activateViewport": (layerManager, viewport) => {
|
|
18239
|
-
log4.log(LOG_LEVEL_UPDATE_DETAIL, "Viewport changed", viewport)();
|
|
18240
|
-
},
|
|
18241
|
-
/* AttributeManager events */
|
|
18242
|
-
"attributeManager.invalidate": (attributeManager, trigger, attributeNames) => {
|
|
18243
|
-
log4.log(LOG_LEVEL_MAJOR_UPDATE, attributeNames ? `invalidated attributes ${attributeNames} (${trigger}) for ${attributeManager.id}` : `invalidated all attributes for ${attributeManager.id}`)();
|
|
18244
|
-
},
|
|
18245
|
-
"attributeManager.updateStart": (attributeManager) => {
|
|
18246
|
-
logState.attributeUpdateMessages.length = 0;
|
|
18247
|
-
logState.attributeManagerUpdateStart = Date.now();
|
|
18248
|
-
},
|
|
18249
|
-
"attributeManager.updateEnd": (attributeManager, numInstances) => {
|
|
18250
|
-
const timeMs = Math.round(Date.now() - logState.attributeManagerUpdateStart);
|
|
18251
|
-
log4.groupCollapsed(LOG_LEVEL_MINOR_UPDATE, `Updated attributes for ${numInstances} instances in ${attributeManager.id} in ${timeMs}ms`)();
|
|
18252
|
-
for (const updateMessage of logState.attributeUpdateMessages) {
|
|
18253
|
-
log4.log(LOG_LEVEL_UPDATE_DETAIL, updateMessage)();
|
|
18254
|
-
}
|
|
18255
|
-
log4.groupEnd(LOG_LEVEL_MINOR_UPDATE)();
|
|
18256
|
-
},
|
|
18257
|
-
/* Attribute events */
|
|
18258
|
-
"attribute.updateStart": (attribute) => {
|
|
18259
|
-
logState.attributeUpdateStart = Date.now();
|
|
18260
|
-
},
|
|
18261
|
-
"attribute.allocate": (attribute, numInstances) => {
|
|
18262
|
-
const message2 = `${attribute.id} allocated ${numInstances}`;
|
|
18263
|
-
logState.attributeUpdateMessages.push(message2);
|
|
18264
|
-
},
|
|
18265
|
-
"attribute.updateEnd": (attribute, numInstances) => {
|
|
18266
|
-
const timeMs = Math.round(Date.now() - logState.attributeUpdateStart);
|
|
18267
|
-
const message2 = `${attribute.id} updated ${numInstances} in ${timeMs}ms`;
|
|
18268
|
-
logState.attributeUpdateMessages.push(message2);
|
|
18269
|
-
},
|
|
18270
|
-
/* Render events */
|
|
18271
|
-
"deckRenderer.renderLayers": (deckRenderer, renderStats, opts) => {
|
|
18272
|
-
const { pass, redrawReason, stats } = opts;
|
|
18273
|
-
for (const status of renderStats) {
|
|
18274
|
-
const { totalCount, visibleCount, compositeCount, pickableCount } = status;
|
|
18275
|
-
const primitiveCount = totalCount - compositeCount;
|
|
18276
|
-
const hiddenCount = primitiveCount - visibleCount;
|
|
18277
|
-
log4.log(LOG_LEVEL_DRAW, `RENDER #${deckRenderer.renderCount} ${visibleCount} (of ${totalCount} layers) to ${pass} because ${redrawReason} (${hiddenCount} hidden, ${compositeCount} composite ${pickableCount} pickable)`)();
|
|
18278
|
-
if (stats) {
|
|
18279
|
-
stats.get("Redraw Layers").add(visibleCount);
|
|
18280
|
-
}
|
|
18281
|
-
}
|
|
18282
|
-
}
|
|
18283
|
-
});
|
|
18284
|
-
|
|
18285
18189
|
// node_modules/@deck.gl/core/dist/debug/index.js
|
|
18286
18190
|
var loggers = {};
|
|
18287
|
-
if (
|
|
18191
|
+
if (false) {
|
|
18288
18192
|
loggers = getLoggers(log_default);
|
|
18289
18193
|
}
|
|
18290
18194
|
function register(handlers) {
|
|
@@ -78478,6 +78382,7 @@ var OverlayDynamicLayerBuilder = class {
|
|
|
78478
78382
|
coordinates: [[mapPolygon(segment.polygon)]],
|
|
78479
78383
|
style: segment.style
|
|
78480
78384
|
},
|
|
78385
|
+
label: segment.style?.text,
|
|
78481
78386
|
type: ObjectType.POLYGON,
|
|
78482
78387
|
visible: true,
|
|
78483
78388
|
selectable: true,
|
|
@@ -78769,9 +78674,39 @@ var MapOverlay = class _MapOverlay {
|
|
|
78769
78674
|
this._centerChangedEvent = new Event3();
|
|
78770
78675
|
this._shapesChangedEvent = new Event3();
|
|
78771
78676
|
this._clickEvent = new Event3();
|
|
78677
|
+
this._doubleClickEvent = new Event3();
|
|
78678
|
+
this._rightClickEvent = new Event3();
|
|
78679
|
+
this._dropEvent = new Event3();
|
|
78680
|
+
this.onDoubleClick = (event) => {
|
|
78681
|
+
if (!(event.target instanceof HTMLCanvasElement)) {
|
|
78682
|
+
return;
|
|
78683
|
+
}
|
|
78684
|
+
this._doubleClickEvent.emit(this.createPointerEventFromMouseEvent(event));
|
|
78685
|
+
};
|
|
78686
|
+
this.onRightClick = (event) => {
|
|
78687
|
+
if (!(event.target instanceof HTMLCanvasElement)) {
|
|
78688
|
+
return;
|
|
78689
|
+
}
|
|
78690
|
+
event.preventDefault();
|
|
78691
|
+
this._rightClickEvent.emit(this.createPointerEventFromMouseEvent(event));
|
|
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
|
+
};
|
|
78772
78706
|
const { zoom, heading, tilt } = options;
|
|
78773
78707
|
const { center: center3, defaultLevelId } = context;
|
|
78774
78708
|
this._context = context;
|
|
78709
|
+
this._htmlElement = htmlElement;
|
|
78775
78710
|
this._levelId = defaultLevelId;
|
|
78776
78711
|
this._viewState = {
|
|
78777
78712
|
zoom: zoom ?? DEFAULT_ZOOM,
|
|
@@ -78800,6 +78735,10 @@ var MapOverlay = class _MapOverlay {
|
|
|
78800
78735
|
this._initializedEvent.emit();
|
|
78801
78736
|
}
|
|
78802
78737
|
});
|
|
78738
|
+
this._htmlElement.addEventListener("dblclick", this.onDoubleClick, true);
|
|
78739
|
+
this._htmlElement.addEventListener("contextmenu", this.onRightClick, true);
|
|
78740
|
+
this._htmlElement.addEventListener("dragover", this.onDragOver, true);
|
|
78741
|
+
this._htmlElement.addEventListener("drop", this.onDrop, true);
|
|
78803
78742
|
}
|
|
78804
78743
|
// #region Private methods
|
|
78805
78744
|
/**
|
|
@@ -78820,6 +78759,32 @@ var MapOverlay = class _MapOverlay {
|
|
|
78820
78759
|
rebuildLayers() {
|
|
78821
78760
|
this._deck.setProps({ layers: this.createLayers() });
|
|
78822
78761
|
}
|
|
78762
|
+
createPointerEventFromMouseEvent(event) {
|
|
78763
|
+
const { lat, lng } = this.getCoordinatesAt(event.clientX, event.clientY);
|
|
78764
|
+
const bounds = this._htmlElement.getBoundingClientRect();
|
|
78765
|
+
const x2 = event.clientX - bounds.left;
|
|
78766
|
+
const y2 = event.clientY - bounds.top;
|
|
78767
|
+
const picked = this._deck.pickObject({ x: x2, y: y2 })?.object;
|
|
78768
|
+
return {
|
|
78769
|
+
lat,
|
|
78770
|
+
lng,
|
|
78771
|
+
x: lng,
|
|
78772
|
+
y: lat,
|
|
78773
|
+
shape: picked?.groupId ? this._shapes.find((shape) => shape.id === picked.groupId) : void 0
|
|
78774
|
+
};
|
|
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
|
+
}
|
|
78823
78788
|
/**
|
|
78824
78789
|
* Handle the click event.
|
|
78825
78790
|
*/
|
|
@@ -78899,6 +78864,10 @@ var MapOverlay = class _MapOverlay {
|
|
|
78899
78864
|
this.finalize();
|
|
78900
78865
|
}
|
|
78901
78866
|
finalize() {
|
|
78867
|
+
this._htmlElement.removeEventListener("dblclick", this.onDoubleClick, true);
|
|
78868
|
+
this._htmlElement.removeEventListener("contextmenu", this.onRightClick, true);
|
|
78869
|
+
this._htmlElement.removeEventListener("dragover", this.onDragOver, true);
|
|
78870
|
+
this._htmlElement.removeEventListener("drop", this.onDrop, true);
|
|
78902
78871
|
this._deck.finalize();
|
|
78903
78872
|
}
|
|
78904
78873
|
//#region Getters and Setters
|
|
@@ -79008,6 +78977,15 @@ var MapOverlay = class _MapOverlay {
|
|
|
79008
78977
|
click() {
|
|
79009
78978
|
return this._clickEvent;
|
|
79010
78979
|
}
|
|
78980
|
+
doubleClick() {
|
|
78981
|
+
return this._doubleClickEvent;
|
|
78982
|
+
}
|
|
78983
|
+
rightClick() {
|
|
78984
|
+
return this._rightClickEvent;
|
|
78985
|
+
}
|
|
78986
|
+
drop() {
|
|
78987
|
+
return this._dropEvent;
|
|
78988
|
+
}
|
|
79011
78989
|
//#endregion
|
|
79012
78990
|
//#endregion
|
|
79013
78991
|
};
|