andoncloud-map-widget 1.0.0 → 1.0.2

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.js CHANGED
@@ -4324,7 +4324,7 @@ function hasMultilineItems(maybeArray) {
4324
4324
  return maybeArray != null && maybeArray.some(isMultiline);
4325
4325
  }
4326
4326
 
4327
- var LIBRARY_VERSION = '1.0.0';
4327
+ var LIBRARY_VERSION = '1.0.2';
4328
4328
 
4329
4329
  var SettingsFormContent = function SettingsFormContent(_ref) {
4330
4330
  var _data$floorPlans;
@@ -19992,6 +19992,89 @@ L.Path.addInitHook(function () {
19992
19992
 
19993
19993
  L.Path.Drag;
19994
19994
 
19995
+ var getImageSize_1 = createCommonjsModule(function (module, exports) {
19996
+ Object.defineProperty(exports, "__esModule", { value: true });
19997
+ exports.getImageSize = void 0;
19998
+ const getImageSize = (url, options = {}) => {
19999
+ return new Promise((resolve, reject) => {
20000
+ if (typeof window === 'undefined') {
20001
+ return reject('Window is not defined');
20002
+ }
20003
+ if (!url) {
20004
+ return reject('Url is not defined');
20005
+ }
20006
+ let timer = null;
20007
+ const img = new Image();
20008
+ img.addEventListener('load', () => {
20009
+ if (timer) {
20010
+ clearTimeout(timer);
20011
+ }
20012
+ resolve({ width: img.naturalWidth, height: img.naturalHeight });
20013
+ });
20014
+ img.addEventListener('error', (event) => {
20015
+ if (timer) {
20016
+ clearTimeout(timer);
20017
+ }
20018
+ reject(`${event.type}: ${event.message}`);
20019
+ });
20020
+ img.src = url;
20021
+ if (options.timeout) {
20022
+ timer = setTimeout(() => reject('Timeout'), options.timeout);
20023
+ }
20024
+ });
20025
+ };
20026
+ exports.getImageSize = getImageSize;
20027
+ });
20028
+
20029
+ var useImageSize_1 = createCommonjsModule(function (module, exports) {
20030
+ var __awaiter = (commonjsGlobal && commonjsGlobal.__awaiter) || function (thisArg, _arguments, P, generator) {
20031
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
20032
+ return new (P || (P = Promise))(function (resolve, reject) {
20033
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
20034
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
20035
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
20036
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
20037
+ });
20038
+ };
20039
+ Object.defineProperty(exports, "__esModule", { value: true });
20040
+ exports.useImageSize = void 0;
20041
+
20042
+
20043
+ const useImageSize = (url, options) => {
20044
+ const [dimensions, setDimensions] = (0, React__default["default"].useState)(null);
20045
+ const [loading, setLoading] = (0, React__default["default"].useState)(false);
20046
+ const [error, setError] = (0, React__default["default"].useState)(null);
20047
+ (0, React__default["default"].useEffect)(() => {
20048
+ const fetch = () => __awaiter(void 0, void 0, void 0, function* () {
20049
+ setLoading(true);
20050
+ setDimensions(null);
20051
+ try {
20052
+ const { width, height } = yield (0, getImageSize_1.getImageSize)(url, options);
20053
+ setDimensions({ width, height });
20054
+ }
20055
+ catch (error) {
20056
+ setError(error.toString());
20057
+ }
20058
+ finally {
20059
+ setLoading(false);
20060
+ }
20061
+ });
20062
+ fetch();
20063
+ }, [url, options]);
20064
+ return [dimensions, { loading, error }];
20065
+ };
20066
+ exports.useImageSize = useImageSize;
20067
+ });
20068
+
20069
+ var lib = createCommonjsModule(function (module, exports) {
20070
+ Object.defineProperty(exports, "__esModule", { value: true });
20071
+ exports.useImageSize = exports.getImageSize = void 0;
20072
+
20073
+ Object.defineProperty(exports, "getImageSize", { enumerable: true, get: function () { return getImageSize_1.getImageSize; } });
20074
+
20075
+ Object.defineProperty(exports, "useImageSize", { enumerable: true, get: function () { return useImageSize_1.useImageSize; } });
20076
+ });
20077
+
19995
20078
  function useAttribution(map, attribution) {
19996
20079
  const attributionRef = React.useRef(attribution);
19997
20080
  React.useEffect(function updateAttribution() {
@@ -22146,7 +22229,7 @@ function v4(options, buf, offset) {
22146
22229
 
22147
22230
  var cloneLayer = require('leaflet-clonelayer');
22148
22231
  var Map$1 = function Map(_ref) {
22149
- var _activeLayer$feature, _data$workplaces2, _data$floorPlans, _data$floorPlans$find;
22232
+ var _activeLayer$feature, _data$workplaces2;
22150
22233
  var data = _ref.data,
22151
22234
  settings = _ref.settings,
22152
22235
  updateSettings = _ref.updateSettings,
@@ -22156,12 +22239,18 @@ var Map$1 = function Map(_ref) {
22156
22239
  var _useSize = useSize$1(containerRef),
22157
22240
  width = _useSize[0],
22158
22241
  height = _useSize[1];
22159
- var _useState = React.useState(null),
22160
- featureGroup = _useState[0],
22161
- setFeatureGroup = _useState[1];
22242
+ var _useState = React.useState(),
22243
+ imageUrl = _useState[0],
22244
+ setImageUrl = _useState[1];
22162
22245
  var _useState2 = React.useState(null),
22163
- activeLayer = _useState2[0],
22164
- setActiveLayer = _useState2[1];
22246
+ imageDimensions = _useState2[0],
22247
+ setImageDimensions = _useState2[1];
22248
+ var _useState3 = React.useState(null),
22249
+ featureGroup = _useState3[0],
22250
+ setFeatureGroup = _useState3[1];
22251
+ var _useState4 = React.useState(null),
22252
+ activeLayer = _useState4[0],
22253
+ setActiveLayer = _useState4[1];
22165
22254
  // use refs to provide current values to callbacks
22166
22255
  var updateFeatureRef = React.useRef();
22167
22256
  var onDrawCreatedRef = React.useRef();
@@ -22406,6 +22495,18 @@ var Map$1 = function Map(_ref) {
22406
22495
  }
22407
22496
  });
22408
22497
  }, [activeLayer, featureGroup]);
22498
+ React.useEffect(function () {
22499
+ var _data$floorPlans, _data$floorPlans$find;
22500
+ var imageUrl = (_data$floorPlans = data.floorPlans) == null ? void 0 : (_data$floorPlans$find = _data$floorPlans.find(function (floorPlan) {
22501
+ return floorPlan.id === (settings == null ? void 0 : settings.floorPlanId);
22502
+ })) == null ? void 0 : _data$floorPlans$find.imageUrl;
22503
+ if (imageUrl) {
22504
+ setImageUrl(imageUrl);
22505
+ lib.getImageSize(imageUrl).then(function (dimensions) {
22506
+ return setImageDimensions(dimensions);
22507
+ })["catch"](function () {});
22508
+ }
22509
+ }, [data == null ? void 0 : data.floorPlans, settings == null ? void 0 : settings.floorPlanId]);
22409
22510
  React.useEffect(function () {
22410
22511
  var getCurrentStatusChange = function getCurrentStatusChange(workplaceId) {
22411
22512
  return ((data == null ? void 0 : data.statusChanges) || []).filter(function (statusChange) {
@@ -22485,7 +22586,7 @@ var Map$1 = function Map(_ref) {
22485
22586
  if (!featureGroup) {
22486
22587
  var geoJSON = new leafletSrc.GeoJSON({
22487
22588
  type: 'FeatureCollection',
22488
- features: settings == null ? void 0 : settings.features
22589
+ features: (settings == null ? void 0 : settings.features) || []
22489
22590
  }, {
22490
22591
  onEachFeature: function onEachFeature(_, layer) {
22491
22592
  bindEvents(layer);
@@ -22562,15 +22663,15 @@ var Map$1 = function Map(_ref) {
22562
22663
  }, workplace.name);
22563
22664
  })), React__default["default"].createElement(MapContainer, {
22564
22665
  ref: mapRef,
22565
- bounds: [[0, 0], [width, height]],
22666
+ bounds: [[height, 0], [0, width]],
22566
22667
  center: (settings == null ? void 0 : settings.center) || [width / 2, height / 2],
22567
22668
  zoom: (settings == null ? void 0 : settings.zoom) || 1,
22568
- zoomControl: false
22569
- }, (settings == null ? void 0 : settings.floorPlanId) && React__default["default"].createElement(ImageOverlay, {
22570
- url: ((_data$floorPlans = data.floorPlans) == null ? void 0 : (_data$floorPlans$find = _data$floorPlans.find(function (floorPlan) {
22571
- return floorPlan.id === settings.floorPlanId;
22572
- })) == null ? void 0 : _data$floorPlans$find.imageUrl) || '',
22573
- bounds: [[0, 0], [width, height]]
22669
+ zoomControl: false,
22670
+ doubleClickZoom: false,
22671
+ touchZoom: false
22672
+ }, imageUrl && imageDimensions && React__default["default"].createElement(ImageOverlay, {
22673
+ url: imageUrl,
22674
+ bounds: [[height, 0], [0, height * (imageDimensions.height / imageDimensions.width)]]
22574
22675
  }), React__default["default"].createElement(FeatureGroup, {
22575
22676
  ref: function ref(featureGroup) {
22576
22677
  if (featureGroup) onFeatureGroupReady(featureGroup);