@mapvx/web-js 1.3.0-dev.0 → 1.3.0-dev.1

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/umd/index.js CHANGED
@@ -21542,7 +21542,7 @@ var rollbar_umd_min_default = /*#__PURE__*/__webpack_require__.n(rollbar_umd_min
21542
21542
  // version placeholder is replaced with the package version by
21543
21543
  // scripts/inject-build-defines.js. The access token falls back to the MapVX
21544
21544
  // SDK-web Rollbar project token when none is injected at build time.
21545
- var SDK_VERSION = true ? "1.3.0-dev.0" : 0;
21545
+ var SDK_VERSION = true ? "1.3.0-dev.1" : 0;
21546
21546
  var ACCESS_TOKEN = true ? "1e7e62a3edc14868b4098d653d0f33b9" : 0;
21547
21547
  var _rollbarConfig = {
21548
21548
  accessToken: ACCESS_TOKEN,
@@ -21589,7 +21589,7 @@ function logger_toPrimitive(t, r) { if ("object" != logger_typeof(t) || !t) retu
21589
21589
  // by scripts/inject-build-defines.js. The Countly key falls back to the
21590
21590
  // MapVX key when none is injected at build time.
21591
21591
  var IS_DEBUG = true ? false : 0;
21592
- var logger_SDK_VERSION = true ? "1.3.0-dev.0" : 0;
21592
+ var logger_SDK_VERSION = true ? "1.3.0-dev.1" : 0;
21593
21593
  var COUNTLY_API_KEY = true ? "f0c8d3b96d336e857a8628f49dd1baf7d7add0e9" : 0;
21594
21594
  var logger_countly = {
21595
21595
  apiKey: COUNTLY_API_KEY,
@@ -165674,6 +165674,9 @@ var InternalMapVXMap = /*#__PURE__*/function (_Loggeable) {
165674
165674
  this.escalatorScene.remove(lastChild);
165675
165675
  }
165676
165676
  }
165677
+
165678
+ // Guard against an invalid initial center before it reaches fromLngLat.
165679
+ if (!this.initialCenter || !Number.isFinite(this.initialCenter.lng) || !Number.isFinite(this.initialCenter.lat)) return;
165677
165680
  var refMercator = maplibre_gl.MercatorCoordinate.fromLngLat(this.initialCenter, 0);
165678
165681
  var meterScale = refMercator.meterInMercatorCoordinateUnits();
165679
165682
  var _iterator3 = map_createForOfIteratorHelper(positions),
@@ -165681,6 +165684,8 @@ var InternalMapVXMap = /*#__PURE__*/function (_Loggeable) {
165681
165684
  try {
165682
165685
  for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
165683
165686
  var pos = _step3.value;
165687
+ // Defense in depth: never feed a non-finite coordinate to fromLngLat.
165688
+ if (!Number.isFinite(pos.lng) || !Number.isFinite(pos.lat)) continue;
165684
165689
  var target = maplibre_gl_default().MercatorCoordinate.fromLngLat([pos.lng, pos.lat], 0);
165685
165690
  var sx = (target.x - refMercator.x) / meterScale;
165686
165691
  var sz = (target.y - refMercator.y) / meterScale;
@@ -165722,18 +165727,47 @@ var InternalMapVXMap = /*#__PURE__*/function (_Loggeable) {
165722
165727
  try {
165723
165728
  for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
165724
165729
  var f = _step4.value;
165725
- var coords = f.geometry.coordinates;
165726
- if (!coords || coords.length < 2) continue;
165727
- var start = coords[0];
165728
- var end = coords[coords.length - 1];
165729
- var midLng = (start[0] + end[0]) / 2;
165730
- var midLat = (start[1] + end[1]) / 2;
165731
- var bearing = Math.atan2(end[0] - start[0], end[1] - start[1]);
165732
- allMids.push({
165733
- lng: midLng,
165734
- lat: midLat,
165735
- bearing: bearing
165736
- });
165730
+ var geom = f.geometry;
165731
+
165732
+ // queryRenderedFeatures may return a LineString or, when a line is split
165733
+ // across tile boundaries, a MultiLineString. The previous code assumed
165734
+ // LineString and read coords[0]/coords[n-1] as [lng,lat], producing
165735
+ // NaN for MultiLineString (coordinates is number[][][]). Normalize both
165736
+ // shapes to a list of line parts (Position[][]).
165737
+ var lineParts = void 0;
165738
+ if (geom.type === "LineString") {
165739
+ lineParts = [geom.coordinates];
165740
+ } else if (geom.type === "MultiLineString") {
165741
+ lineParts = geom.coordinates;
165742
+ } else {
165743
+ continue;
165744
+ }
165745
+ var _iterator5 = map_createForOfIteratorHelper(lineParts),
165746
+ _step5;
165747
+ try {
165748
+ for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
165749
+ var coords = _step5.value;
165750
+ if (!coords || coords.length < 2) continue;
165751
+ var start = coords[0];
165752
+ var end = coords[coords.length - 1];
165753
+ var midLng = (start[0] + end[0]) / 2;
165754
+ var midLat = (start[1] + end[1]) / 2;
165755
+ var bearing = Math.atan2(end[0] - start[0], end[1] - start[1]);
165756
+
165757
+ // Skip any non-finite result so a bad feature can never poison the
165758
+ // cache (and later crash MercatorCoordinate.fromLngLat).
165759
+ if (!Number.isFinite(midLng) || !Number.isFinite(midLat) || !Number.isFinite(bearing)) continue;
165760
+ allMids.push({
165761
+ lng: midLng,
165762
+ lat: midLat,
165763
+ bearing: bearing
165764
+ });
165765
+ }
165766
+ } catch (err) {
165767
+ _iterator5.e(err);
165768
+ } finally {
165769
+ _iterator5.f();
165770
+ }
165737
165771
  }
165738
165772
 
165739
165773
  // Merge points within ~15m of each other into one
@@ -165828,25 +165862,25 @@ var InternalMapVXMap = /*#__PURE__*/function (_Loggeable) {
165828
165862
  });
165829
165863
  if (!roomFeatures.length) return null;
165830
165864
  var paths = [];
165831
- var _iterator5 = map_createForOfIteratorHelper(roomFeatures),
165832
- _step5;
165865
+ var _iterator6 = map_createForOfIteratorHelper(roomFeatures),
165866
+ _step6;
165833
165867
  try {
165834
165868
  var _loop = function _loop() {
165835
165869
  var _f$properties5;
165836
- var f = _step5.value;
165870
+ var f = _step6.value;
165837
165871
  var z = (_f$properties5 = f.properties) !== null && _f$properties5 !== void 0 && _f$properties5.height ? Number(f.properties.height) : 5;
165838
165872
  var geom = f.geometry;
165839
165873
  var polygons = geom.type === "Polygon" ? [geom.coordinates] : geom.type === "MultiPolygon" ? geom.coordinates : [];
165840
- var _iterator6 = map_createForOfIteratorHelper(polygons),
165841
- _step6;
165874
+ var _iterator7 = map_createForOfIteratorHelper(polygons),
165875
+ _step7;
165842
165876
  try {
165843
- for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
165844
- var rings = _step6.value;
165845
- var _iterator7 = map_createForOfIteratorHelper(rings),
165846
- _step7;
165877
+ for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {
165878
+ var rings = _step7.value;
165879
+ var _iterator8 = map_createForOfIteratorHelper(rings),
165880
+ _step8;
165847
165881
  try {
165848
- for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {
165849
- var ring = _step7.value;
165882
+ for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {
165883
+ var ring = _step8.value;
165850
165884
  paths.push({
165851
165885
  path: ring.map(function (_ref) {
165852
165886
  var _ref2 = map_slicedToArray(_ref, 2),
@@ -165857,24 +165891,24 @@ var InternalMapVXMap = /*#__PURE__*/function (_Loggeable) {
165857
165891
  });
165858
165892
  }
165859
165893
  } catch (err) {
165860
- _iterator7.e(err);
165894
+ _iterator8.e(err);
165861
165895
  } finally {
165862
- _iterator7.f();
165896
+ _iterator8.f();
165863
165897
  }
165864
165898
  }
165865
165899
  } catch (err) {
165866
- _iterator6.e(err);
165900
+ _iterator7.e(err);
165867
165901
  } finally {
165868
- _iterator6.f();
165902
+ _iterator7.f();
165869
165903
  }
165870
165904
  };
165871
- for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
165905
+ for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
165872
165906
  _loop();
165873
165907
  }
165874
165908
  } catch (err) {
165875
- _iterator5.e(err);
165909
+ _iterator6.e(err);
165876
165910
  } finally {
165877
- _iterator5.f();
165911
+ _iterator6.f();
165878
165912
  }
165879
165913
  return new path_layer(map_objectSpread(map_objectSpread({}, props), {}, {
165880
165914
  id: "".concat(props.id, "-paths"),
@@ -166673,11 +166707,11 @@ var InternalMapVXMap = /*#__PURE__*/function (_Loggeable) {
166673
166707
  // lands immediately before it, so a bucket processed later paints above
166674
166708
  // the ones processed earlier. Canonical order keeps
166675
166709
  // belowLabels < aboveBasemap < top regardless of circle insertion order.
166676
- var _iterator8 = map_createForOfIteratorHelper(CIRCLE_RENDER_ORDERS),
166677
- _step8;
166710
+ var _iterator9 = map_createForOfIteratorHelper(CIRCLE_RENDER_ORDERS),
166711
+ _step9;
166678
166712
  try {
166679
- for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {
166680
- var order = _step8.value;
166713
+ for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) {
166714
+ var order = _step9.value;
166681
166715
  if (!ordersInUse.has(order)) continue;
166682
166716
  var ids = circleLayerIdsFor(order);
166683
166717
  var beforeId = this.circleBeforeIdFor(order);
@@ -166715,9 +166749,9 @@ var InternalMapVXMap = /*#__PURE__*/function (_Loggeable) {
166715
166749
  }
166716
166750
  }
166717
166751
  } catch (err) {
166718
- _iterator8.e(err);
166752
+ _iterator9.e(err);
166719
166753
  } finally {
166720
- _iterator8.f();
166754
+ _iterator9.f();
166721
166755
  }
166722
166756
  } catch (error) {
166723
166757
  // Style may not be loaded yet; the styledata listener re-adds the layers
@@ -166759,15 +166793,27 @@ var InternalMapVXMap = /*#__PURE__*/function (_Loggeable) {
166759
166793
  floorKey: floorKeyString
166760
166794
  });
166761
166795
  }
166762
- if (this.mode === "3D") {
166763
- this.updateDeckOverlay();
166764
- this.placeEscalators();
166765
- }
166796
+
166797
+ // Critical base-map updates run first and must never be blocked by an
166798
+ // optional 3D decoration failing. A throw in placeEscalators used to abort
166799
+ // this method before updateFiltersTo, leaving the base polygons unfiltered
166800
+ // (showing the wrong floor) while the caller's empty catch hid the error.
166766
166801
  this.updateFiltersTo(floorKeyString);
166767
166802
  this.updateMarkersTo(floorKeyString);
166768
166803
  this.refreshCircles();
166769
166804
  this.routeController.updateRouteLayers(floorKeyString);
166770
166805
  this.routeController.updateRouteMarkerVisibility(floorKeyString);
166806
+
166807
+ // 3D decorations are best-effort: isolate so any failure here can never
166808
+ // break base-map rendering.
166809
+ if (this.mode === "3D") {
166810
+ try {
166811
+ this.updateDeckOverlay();
166812
+ this.placeEscalators();
166813
+ } catch (error) {
166814
+ this.logError(error, "filterByFloorKey: 3D layer update failed");
166815
+ }
166816
+ }
166771
166817
  }
166772
166818
  }, {
166773
166819
  key: "getContainer",
@@ -166973,11 +167019,11 @@ var InternalMapVXMap = /*#__PURE__*/function (_Loggeable) {
166973
167019
  var minLng;
166974
167020
  var maxLat;
166975
167021
  var maxLng;
166976
- var _iterator9 = map_createForOfIteratorHelper(coordinates),
166977
- _step9;
167022
+ var _iterator0 = map_createForOfIteratorHelper(coordinates),
167023
+ _step0;
166978
167024
  try {
166979
- for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) {
166980
- var _coord = _step9.value;
167025
+ for (_iterator0.s(); !(_step0 = _iterator0.n()).done;) {
167026
+ var _coord = _step0.value;
166981
167027
  var lat = _coord.lat,
166982
167028
  lng = _coord.lng;
166983
167029
  minLat = minLat === undefined ? lat : Math.min(minLat, lat);
@@ -166986,9 +167032,9 @@ var InternalMapVXMap = /*#__PURE__*/function (_Loggeable) {
166986
167032
  maxLng = maxLng === undefined ? lng : Math.max(maxLng, lng);
166987
167033
  }
166988
167034
  } catch (err) {
166989
- _iterator9.e(err);
167035
+ _iterator0.e(err);
166990
167036
  } finally {
166991
- _iterator9.f();
167037
+ _iterator0.f();
166992
167038
  }
166993
167039
  var bounds = [minLng !== null && minLng !== void 0 ? minLng : 0, minLat !== null && minLat !== void 0 ? minLat : 0, maxLng !== null && maxLng !== void 0 ? maxLng : 0, maxLat !== null && maxLat !== void 0 ? maxLat : 0];
166994
167040
 
@@ -167193,7 +167239,7 @@ var InternalMapVXMap = /*#__PURE__*/function (_Loggeable) {
167193
167239
  var _this18 = this;
167194
167240
  this.map.on("click", /*#__PURE__*/function () {
167195
167241
  var _ref6 = map_asyncToGenerator(/*#__PURE__*/map_regenerator().m(function _callee3(e) {
167196
- var features, roomFeatures, touchedFeature, ref, _clickedPlace, _ref7, _clickedPlace$mapvxId, _clickedPlace2, _clickedPlace3, clickedPlace, _iterator0, _step0, potentialParentPlace, cachedSubPlaces, cachedPlaces, clickedPlaceId, _t2;
167242
+ var features, roomFeatures, touchedFeature, ref, _clickedPlace, _ref7, _clickedPlace$mapvxId, _clickedPlace2, _clickedPlace3, clickedPlace, _iterator1, _step1, potentialParentPlace, cachedSubPlaces, cachedPlaces, clickedPlaceId, _t2;
167197
167243
  return map_regenerator().w(function (_context3) {
167198
167244
  while (1) switch (_context3.p = _context3.n) {
167199
167245
  case 0:
@@ -167218,15 +167264,15 @@ var InternalMapVXMap = /*#__PURE__*/function (_Loggeable) {
167218
167264
  _context3.n = 7;
167219
167265
  break;
167220
167266
  }
167221
- _iterator0 = map_createForOfIteratorHelper(_this18.potentialParentPlaces);
167267
+ _iterator1 = map_createForOfIteratorHelper(_this18.potentialParentPlaces);
167222
167268
  _context3.p = 1;
167223
- _iterator0.s();
167269
+ _iterator1.s();
167224
167270
  case 2:
167225
- if ((_step0 = _iterator0.n()).done) {
167271
+ if ((_step1 = _iterator1.n()).done) {
167226
167272
  _context3.n = 4;
167227
167273
  break;
167228
167274
  }
167229
- potentialParentPlace = _step0.value;
167275
+ potentialParentPlace = _step1.value;
167230
167276
  cachedSubPlaces = _this18.repository.getCachedSubPlaces(potentialParentPlace.mapvxId);
167231
167277
  if (!cachedSubPlaces) {
167232
167278
  _context3.n = 3;
@@ -167249,10 +167295,10 @@ var InternalMapVXMap = /*#__PURE__*/function (_Loggeable) {
167249
167295
  case 5:
167250
167296
  _context3.p = 5;
167251
167297
  _t2 = _context3.v;
167252
- _iterator0.e(_t2);
167298
+ _iterator1.e(_t2);
167253
167299
  case 6:
167254
167300
  _context3.p = 6;
167255
- _iterator0.f();
167301
+ _iterator1.f();
167256
167302
  return _context3.f(6);
167257
167303
  case 7:
167258
167304
  if (!(clickedPlace === undefined)) {