@kando-env/kando-ui 1.2.227 → 1.2.228-alpha.0

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.
Files changed (34) hide show
  1. package/lib/Widgets/Map/Map.js +86 -17
  2. package/lib/Widgets/Map/Map.scss +65 -0
  3. package/lib/Widgets/Map/MapUtils.js +27 -15
  4. package/lib/Widgets/Map/areas/AreaPolygons.js +2 -2
  5. package/lib/Widgets/Map/edges/Edges.js +17 -2
  6. package/lib/Widgets/Map/events/EventUtils.js +13 -9
  7. package/lib/Widgets/Map/events/NetworkForSpecificEvent.js +9 -2
  8. package/lib/Widgets/Map/events/PointOfEvent.js +12 -9
  9. package/lib/Widgets/Map/points/PointIcon.js +60 -0
  10. package/lib/Widgets/Map/points/PointIcon.scss +244 -0
  11. package/lib/Widgets/Map/points/PointMarker.js +22 -20
  12. package/lib/Widgets/Map/points/PointMarkers.js +90 -22
  13. package/lib/Widgets/Map/points/PointUtils.js +95 -32
  14. package/lib/assets/icons/pin/pin-matash-white.svg +8 -42
  15. package/lib/assets/icons/plus_v.svg +13 -0
  16. package/lib/assets/icons/water_reuse.svg +27 -0
  17. package/lib/assets/map/pin-matash-clicked.svg +12 -0
  18. package/lib/assets/map/pin-matash-white.svg +8 -28
  19. package/lib/assets/map/pin-plant-clicked.svg +10 -0
  20. package/lib/assets/map/pin-plant-white.svg +6 -28
  21. package/lib/assets/map/pin-suction-clicked.svg +10 -0
  22. package/lib/assets/map/pin-water-clicked.svg +11 -0
  23. package/lib/assets/map/pin-water.svg +7 -17
  24. package/lib/assets/point_icons/WWTP-icon.svg +8 -21
  25. package/lib/assets/point_icons/factory-icon.svg +6 -21
  26. package/lib/assets/point_icons/pump-station-icon.svg +6 -16
  27. package/lib/hooks/useMap.js +4 -18
  28. package/lib/i18n/en.json +8 -7
  29. package/lib/i18n/he.json +3 -0
  30. package/lib/macros/getVersion.js +2 -2
  31. package/lib/pages/UtilityDashboardPage/UtilityDashboardMapContainer/UtilityDashboardMapContainer.js +2 -2
  32. package/lib/utilities/edgesMath.js +6 -3
  33. package/lib/utilities/map/icons.js +23 -7
  34. package/package.json +5 -3
@@ -11,11 +11,9 @@ var _react = _interopRequireWildcard(require("react"));
11
11
 
12
12
  var _reactRedux = require("react-redux");
13
13
 
14
- var _useRemoveExistingLayers = _interopRequireWildcard(require("hooks/useRemoveExistingLayers"));
15
-
16
14
  var _PointUtils = require("./PointUtils");
17
15
 
18
- var _MapUtils = require("../MapUtils");
16
+ require("leaflet.featuregroup.subgroup");
19
17
 
20
18
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
21
19
 
@@ -31,29 +29,33 @@ function mapStateToProps(state) {
31
29
  var PointMarker = function PointMarker(props) {
32
30
  var map = props.map,
33
31
  point = props.point,
34
- rerender = props.rerender;
35
- (0, _useRemoveExistingLayers.default)(map, point, 'Point');
36
- (0, _useRemoveExistingLayers.default)(map, point, 'Observation');
37
- (0, _useRemoveExistingLayers.default)(map, point, 'Sampling');
38
- (0, _useRemoveExistingLayers.default)(map, point, 'IconNumber');
32
+ rerender = props.rerender,
33
+ layerGroup = props.layerGroup; // useRemoveExistingLayers(map, point, 'Point');
34
+ // useRemoveExistingLayers(map, point, 'Observation');
35
+ // useRemoveExistingLayers(map, point, 'Sampling');
36
+ // useRemoveExistingLayers(map, point, 'IconNumber');
39
37
 
40
38
  var renderLogic = function renderLogic() {
41
39
  var markerLocation = [point['latitude'], point['longitude']];
42
40
  if (markerLocation[0] === null) return;
43
- (0, _PointUtils.createManholePoint)(markerLocation, point, map);
44
- (0, _PointUtils.createBubblePoint)(markerLocation, point, map);
41
+ (0, _PointUtils.createBubblePoint)(markerLocation, point, map, null, layerGroup);
42
+
43
+ if (point.group.type === 'Groups::Factory') {
44
+ (0, _PointUtils.bindPopupToMarker)(point, layerGroup); //The following is being called for every point, we should do that on the layerGroup level which will happen once
45
+ //It is noticed when there are thousands of points
46
+
47
+ (0, _PointUtils.handleMarkerClick)(map, point, layerGroup);
48
+ }
45
49
  };
46
50
 
47
51
  (0, _react.useEffect)(function () {
48
- renderLogic();
49
- (0, _MapUtils.iconZoomControl)(map);
50
- return function cleanup() {
51
- // UNBIND POPUP
52
- (0, _useRemoveExistingLayers.removeFromMap)(map, point, 'Observation');
53
- (0, _useRemoveExistingLayers.removeFromMap)(map, point, 'Point');
54
- (0, _useRemoveExistingLayers.removeFromMap)(map, point, 'Sampling');
55
- (0, _useRemoveExistingLayers.removeFromMap)(map, point, 'IconNumber');
56
- };
52
+ renderLogic(); // return function cleanup() {
53
+ // // UNBIND POPUP
54
+ // removeFromMap(map, point, 'Observation');
55
+ // removeFromMap(map, point, 'Point');
56
+ // removeFromMap(map, point, 'Sampling');
57
+ // removeFromMap(map, point, 'IconNumber');
58
+ // };
57
59
  }, [rerender]);
58
60
  return /*#__PURE__*/_react.default.createElement("div", null);
59
61
  };
@@ -69,4 +71,4 @@ var _default = connector( /*#__PURE__*/_react.default.memo(PointMarker, function
69
71
  }));
70
72
 
71
73
  exports.default = _default;
72
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9XaWRnZXRzL01hcC9wb2ludHMvUG9pbnRNYXJrZXIudHN4Il0sIm5hbWVzIjpbIm1hcFN0YXRlVG9Qcm9wcyIsInN0YXRlIiwiZXZlbnRzX2RhdGEiLCJQb2ludE1hcmtlciIsInByb3BzIiwibWFwIiwicG9pbnQiLCJyZXJlbmRlciIsInJlbmRlckxvZ2ljIiwibWFya2VyTG9jYXRpb24iLCJjbGVhbnVwIiwiY29ubmVjdG9yIiwiUmVhY3QiLCJtZW1vIiwicHJldlByb3BzIiwibmV4dFByb3BzIiwiZm9jdXNlZEV2ZW50Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFLQTs7QUFFQTs7Ozs7O0FBRUEsU0FBU0EsZUFBVCxDQUF5QkMsS0FBekIsRUFBMkM7QUFDekMsTUFBUUMsV0FBUixHQUF3QkQsS0FBeEIsQ0FBUUMsV0FBUjtBQUVBLFNBQU87QUFDTEEsSUFBQUEsV0FBVyxFQUFYQTtBQURLLEdBQVA7QUFHRDs7QUFRRCxJQUFNQyxXQUE0QixHQUFHLFNBQS9CQSxXQUErQixDQUFDQyxLQUFELEVBQVc7QUFDOUMsTUFBUUMsR0FBUixHQUFpQ0QsS0FBakMsQ0FBUUMsR0FBUjtBQUFBLE1BQWFDLEtBQWIsR0FBaUNGLEtBQWpDLENBQWFFLEtBQWI7QUFBQSxNQUFvQkMsUUFBcEIsR0FBaUNILEtBQWpDLENBQW9CRyxRQUFwQjtBQUVBLHdDQUF3QkYsR0FBeEIsRUFBNkJDLEtBQTdCLEVBQW9DLE9BQXBDO0FBQ0Esd0NBQXdCRCxHQUF4QixFQUE2QkMsS0FBN0IsRUFBb0MsYUFBcEM7QUFDQSx3Q0FBd0JELEdBQXhCLEVBQTZCQyxLQUE3QixFQUFvQyxVQUFwQztBQUNBLHdDQUF3QkQsR0FBeEIsRUFBNkJDLEtBQTdCLEVBQW9DLFlBQXBDOztBQUVBLE1BQU1FLFdBQVcsR0FBRyxTQUFkQSxXQUFjLEdBQU07QUFDeEIsUUFBSUMsY0FBMkIsR0FBRyxDQUFDSCxLQUFLLENBQUMsVUFBRCxDQUFOLEVBQW9CQSxLQUFLLENBQUMsV0FBRCxDQUF6QixDQUFsQztBQUNBLFFBQUlHLGNBQWMsQ0FBQyxDQUFELENBQWQsS0FBc0IsSUFBMUIsRUFBZ0M7QUFFaEMsd0NBQW1CQSxjQUFuQixFQUFtQ0gsS0FBbkMsRUFBMENELEdBQTFDO0FBQ0EsdUNBQWtCSSxjQUFsQixFQUFrQ0gsS0FBbEMsRUFBeUNELEdBQXpDO0FBQ0QsR0FORDs7QUFRQSx3QkFBVSxZQUFNO0FBQ2RHLElBQUFBLFdBQVc7QUFDWCxtQ0FBZ0JILEdBQWhCO0FBRUEsV0FBTyxTQUFTSyxPQUFULEdBQW1CO0FBQ3hCO0FBQ0Esa0RBQWNMLEdBQWQsRUFBbUJDLEtBQW5CLEVBQTBCLGFBQTFCO0FBQ0Esa0RBQWNELEdBQWQsRUFBbUJDLEtBQW5CLEVBQTBCLE9BQTFCO0FBQ0Esa0RBQWNELEdBQWQsRUFBbUJDLEtBQW5CLEVBQTBCLFVBQTFCO0FBQ0Esa0RBQWNELEdBQWQsRUFBbUJDLEtBQW5CLEVBQTBCLFlBQTFCO0FBQ0QsS0FORDtBQU9ELEdBWEQsRUFXRyxDQUFDQyxRQUFELENBWEg7QUFhQSxzQkFBTyx5Q0FBUDtBQUNELENBOUJEOztBQWdDQSxJQUFNSSxTQUFTLEdBQUcseUJBQVFYLGVBQVIsQ0FBbEI7O2VBQ2VXLFNBQVMsZUFDdEJDLGVBQU1DLElBQU4sQ0FBV1YsV0FBWCxFQUF3QixVQUFDVyxTQUFELEVBQVlDLFNBQVosRUFBMEI7QUFDaEQsTUFDRUQsU0FBUyxDQUFDWixXQUFWLENBQXNCYyxZQUF0QixLQUF1Q0QsU0FBUyxDQUFDYixXQUFWLENBQXNCYyxZQUQvRCxFQUVFO0FBQ0EsV0FBTyxLQUFQO0FBQ0Q7O0FBRUQsU0FBTyxJQUFQO0FBQ0QsQ0FSRCxDQURzQixDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGNvbm5lY3QsIENvbm5lY3RlZFByb3BzIH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuaW1wb3J0IHVzZVJlbW92ZUV4aXN0aW5nTGF5ZXJzLCB7XG4gIHJlbW92ZUZyb21NYXAsXG59IGZyb20gJ3NyYy9ob29rcy91c2VSZW1vdmVFeGlzdGluZ0xheWVycyc7XG5pbXBvcnQgeyBJQXBwU3RhdGUgfSBmcm9tICdzcmMvbW9kZWxzL0lBcHBTdGF0ZSc7XG5pbXBvcnQgeyBJUG9pbnQgfSBmcm9tICdzcmMvc3RvcmUvcG9pbnRzL21vZGVscy9JUG9pbnQnO1xuaW1wb3J0IHsgY3JlYXRlQnViYmxlUG9pbnQsIGNyZWF0ZU1hbmhvbGVQb2ludCB9IGZyb20gJy4vUG9pbnRVdGlscyc7XG5pbXBvcnQgeyBMYXRMbmdUdXBsZSB9IGZyb20gJ2xlYWZsZXQnO1xuaW1wb3J0IHsgaWNvblpvb21Db250cm9sIH0gZnJvbSAnLi4vTWFwVXRpbHMnO1xuXG5mdW5jdGlvbiBtYXBTdGF0ZVRvUHJvcHMoc3RhdGU6IElBcHBTdGF0ZSkge1xuICBjb25zdCB7IGV2ZW50c19kYXRhIH0gPSBzdGF0ZTtcblxuICByZXR1cm4ge1xuICAgIGV2ZW50c19kYXRhLFxuICB9O1xufVxuXG50eXBlIFByb3BzID0gQ29ubmVjdGVkUHJvcHM8dHlwZW9mIGNvbm5lY3Rvcj4gJiB7XG4gIG1hcDogYW55O1xuICBwb2ludDogSVBvaW50O1xuICByZXJlbmRlcjogYm9vbGVhbjtcbn07XG5cbmNvbnN0IFBvaW50TWFya2VyOiBSZWFjdC5GQzxQcm9wcz4gPSAocHJvcHMpID0+IHtcbiAgY29uc3QgeyBtYXAsIHBvaW50LCByZXJlbmRlciB9ID0gcHJvcHM7XG5cbiAgdXNlUmVtb3ZlRXhpc3RpbmdMYXllcnMobWFwLCBwb2ludCwgJ1BvaW50Jyk7XG4gIHVzZVJlbW92ZUV4aXN0aW5nTGF5ZXJzKG1hcCwgcG9pbnQsICdPYnNlcnZhdGlvbicpO1xuICB1c2VSZW1vdmVFeGlzdGluZ0xheWVycyhtYXAsIHBvaW50LCAnU2FtcGxpbmcnKTtcbiAgdXNlUmVtb3ZlRXhpc3RpbmdMYXllcnMobWFwLCBwb2ludCwgJ0ljb25OdW1iZXInKTtcblxuICBjb25zdCByZW5kZXJMb2dpYyA9ICgpID0+IHtcbiAgICBsZXQgbWFya2VyTG9jYXRpb246IExhdExuZ1R1cGxlID0gW3BvaW50WydsYXRpdHVkZSddLCBwb2ludFsnbG9uZ2l0dWRlJ11dO1xuICAgIGlmIChtYXJrZXJMb2NhdGlvblswXSA9PT0gbnVsbCkgcmV0dXJuO1xuXG4gICAgY3JlYXRlTWFuaG9sZVBvaW50KG1hcmtlckxvY2F0aW9uLCBwb2ludCwgbWFwKTtcbiAgICBjcmVhdGVCdWJibGVQb2ludChtYXJrZXJMb2NhdGlvbiwgcG9pbnQsIG1hcCk7XG4gIH07XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICByZW5kZXJMb2dpYygpO1xuICAgIGljb25ab29tQ29udHJvbChtYXApO1xuXG4gICAgcmV0dXJuIGZ1bmN0aW9uIGNsZWFudXAoKSB7XG4gICAgICAvLyBVTkJJTkQgUE9QVVBcbiAgICAgIHJlbW92ZUZyb21NYXAobWFwLCBwb2ludCwgJ09ic2VydmF0aW9uJyk7XG4gICAgICByZW1vdmVGcm9tTWFwKG1hcCwgcG9pbnQsICdQb2ludCcpO1xuICAgICAgcmVtb3ZlRnJvbU1hcChtYXAsIHBvaW50LCAnU2FtcGxpbmcnKTtcbiAgICAgIHJlbW92ZUZyb21NYXAobWFwLCBwb2ludCwgJ0ljb25OdW1iZXInKTtcbiAgICB9O1xuICB9LCBbcmVyZW5kZXJdKTtcblxuICByZXR1cm4gPGRpdj48L2Rpdj47XG59O1xuXG5jb25zdCBjb25uZWN0b3IgPSBjb25uZWN0KG1hcFN0YXRlVG9Qcm9wcyk7XG5leHBvcnQgZGVmYXVsdCBjb25uZWN0b3IoXG4gIFJlYWN0Lm1lbW8oUG9pbnRNYXJrZXIsIChwcmV2UHJvcHMsIG5leHRQcm9wcykgPT4ge1xuICAgIGlmIChcbiAgICAgIHByZXZQcm9wcy5ldmVudHNfZGF0YS5mb2N1c2VkRXZlbnQgIT09IG5leHRQcm9wcy5ldmVudHNfZGF0YS5mb2N1c2VkRXZlbnRcbiAgICApIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSksXG4pO1xuIl19
74
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9XaWRnZXRzL01hcC9wb2ludHMvUG9pbnRNYXJrZXIudHN4Il0sIm5hbWVzIjpbIm1hcFN0YXRlVG9Qcm9wcyIsInN0YXRlIiwiZXZlbnRzX2RhdGEiLCJQb2ludE1hcmtlciIsInByb3BzIiwibWFwIiwicG9pbnQiLCJyZXJlbmRlciIsImxheWVyR3JvdXAiLCJyZW5kZXJMb2dpYyIsIm1hcmtlckxvY2F0aW9uIiwiZ3JvdXAiLCJ0eXBlIiwiY29ubmVjdG9yIiwiUmVhY3QiLCJtZW1vIiwicHJldlByb3BzIiwibmV4dFByb3BzIiwiZm9jdXNlZEV2ZW50Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFNQTs7QUFNQTs7Ozs7O0FBRUEsU0FBU0EsZUFBVCxDQUF5QkMsS0FBekIsRUFBMkM7QUFDekMsTUFBUUMsV0FBUixHQUF3QkQsS0FBeEIsQ0FBUUMsV0FBUjtBQUVBLFNBQU87QUFDTEEsSUFBQUEsV0FBVyxFQUFYQTtBQURLLEdBQVA7QUFHRDs7QUFTRCxJQUFNQyxXQUE0QixHQUFHLFNBQS9CQSxXQUErQixDQUFDQyxLQUFELEVBQVc7QUFDOUMsTUFBUUMsR0FBUixHQUE2Q0QsS0FBN0MsQ0FBUUMsR0FBUjtBQUFBLE1BQWFDLEtBQWIsR0FBNkNGLEtBQTdDLENBQWFFLEtBQWI7QUFBQSxNQUFvQkMsUUFBcEIsR0FBNkNILEtBQTdDLENBQW9CRyxRQUFwQjtBQUFBLE1BQThCQyxVQUE5QixHQUE2Q0osS0FBN0MsQ0FBOEJJLFVBQTlCLENBRDhDLENBRzlDO0FBQ0E7QUFDQTtBQUNBOztBQUVBLE1BQU1DLFdBQVcsR0FBRyxTQUFkQSxXQUFjLEdBQU07QUFDeEIsUUFBSUMsY0FBMkIsR0FBRyxDQUFDSixLQUFLLENBQUMsVUFBRCxDQUFOLEVBQW9CQSxLQUFLLENBQUMsV0FBRCxDQUF6QixDQUFsQztBQUNBLFFBQUlJLGNBQWMsQ0FBQyxDQUFELENBQWQsS0FBc0IsSUFBMUIsRUFBZ0M7QUFFaEMsdUNBQWtCQSxjQUFsQixFQUFrQ0osS0FBbEMsRUFBeUNELEdBQXpDLEVBQThDLElBQTlDLEVBQW9ERyxVQUFwRDs7QUFFQSxRQUFJRixLQUFLLENBQUNLLEtBQU4sQ0FBWUMsSUFBWixLQUFxQixpQkFBekIsRUFBNEM7QUFDMUMseUNBQWtCTixLQUFsQixFQUF5QkUsVUFBekIsRUFEMEMsQ0FHMUM7QUFDQTs7QUFDQSx5Q0FBa0JILEdBQWxCLEVBQXVCQyxLQUF2QixFQUE4QkUsVUFBOUI7QUFDRDtBQUNGLEdBYkQ7O0FBZUEsd0JBQVUsWUFBTTtBQUNkQyxJQUFBQSxXQUFXLEdBREcsQ0FFZDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNELEdBVEQsRUFTRyxDQUFDRixRQUFELENBVEg7QUFXQSxzQkFBTyx5Q0FBUDtBQUNELENBbkNEOztBQXFDQSxJQUFNTSxTQUFTLEdBQUcseUJBQVFiLGVBQVIsQ0FBbEI7O2VBQ2VhLFNBQVMsZUFDdEJDLGVBQU1DLElBQU4sQ0FBV1osV0FBWCxFQUF3QixVQUFDYSxTQUFELEVBQVlDLFNBQVosRUFBMEI7QUFDaEQsTUFDRUQsU0FBUyxDQUFDZCxXQUFWLENBQXNCZ0IsWUFBdEIsS0FBdUNELFNBQVMsQ0FBQ2YsV0FBVixDQUFzQmdCLFlBRC9ELEVBRUU7QUFDQSxXQUFPLEtBQVA7QUFDRDs7QUFFRCxTQUFPLElBQVA7QUFDRCxDQVJELENBRHNCLEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgY29ubmVjdCwgQ29ubmVjdGVkUHJvcHMgfSBmcm9tICdyZWFjdC1yZWR1eCc7XG4vLyBpbXBvcnQgdXNlUmVtb3ZlRXhpc3RpbmdMYXllcnMsIHtcbi8vICAgcmVtb3ZlRnJvbU1hcCxcbi8vIH0gZnJvbSAnc3JjL2hvb2tzL3VzZVJlbW92ZUV4aXN0aW5nTGF5ZXJzJztcbmltcG9ydCB7IElBcHBTdGF0ZSB9IGZyb20gJ3NyYy9tb2RlbHMvSUFwcFN0YXRlJztcbmltcG9ydCB7IElQb2ludCB9IGZyb20gJ3NyYy9zdG9yZS9wb2ludHMvbW9kZWxzL0lQb2ludCc7XG5pbXBvcnQge1xuICBiaW5kUG9wdXBUb01hcmtlcixcbiAgY3JlYXRlQnViYmxlUG9pbnQsXG4gIGhhbmRsZU1hcmtlckNsaWNrLFxufSBmcm9tICcuL1BvaW50VXRpbHMnO1xuaW1wb3J0IHsgTGF0TG5nVHVwbGUgfSBmcm9tICdsZWFmbGV0JztcbmltcG9ydCAnbGVhZmxldC5mZWF0dXJlZ3JvdXAuc3ViZ3JvdXAnO1xuXG5mdW5jdGlvbiBtYXBTdGF0ZVRvUHJvcHMoc3RhdGU6IElBcHBTdGF0ZSkge1xuICBjb25zdCB7IGV2ZW50c19kYXRhIH0gPSBzdGF0ZTtcblxuICByZXR1cm4ge1xuICAgIGV2ZW50c19kYXRhLFxuICB9O1xufVxuXG50eXBlIFByb3BzID0gQ29ubmVjdGVkUHJvcHM8dHlwZW9mIGNvbm5lY3Rvcj4gJiB7XG4gIG1hcDogYW55O1xuICBwb2ludDogSVBvaW50O1xuICByZXJlbmRlcjogc3RyaW5nO1xuICBsYXllckdyb3VwOiBhbnk7XG59O1xuXG5jb25zdCBQb2ludE1hcmtlcjogUmVhY3QuRkM8UHJvcHM+ID0gKHByb3BzKSA9PiB7XG4gIGNvbnN0IHsgbWFwLCBwb2ludCwgcmVyZW5kZXIsIGxheWVyR3JvdXAgfSA9IHByb3BzO1xuXG4gIC8vIHVzZVJlbW92ZUV4aXN0aW5nTGF5ZXJzKG1hcCwgcG9pbnQsICdQb2ludCcpO1xuICAvLyB1c2VSZW1vdmVFeGlzdGluZ0xheWVycyhtYXAsIHBvaW50LCAnT2JzZXJ2YXRpb24nKTtcbiAgLy8gdXNlUmVtb3ZlRXhpc3RpbmdMYXllcnMobWFwLCBwb2ludCwgJ1NhbXBsaW5nJyk7XG4gIC8vIHVzZVJlbW92ZUV4aXN0aW5nTGF5ZXJzKG1hcCwgcG9pbnQsICdJY29uTnVtYmVyJyk7XG5cbiAgY29uc3QgcmVuZGVyTG9naWMgPSAoKSA9PiB7XG4gICAgbGV0IG1hcmtlckxvY2F0aW9uOiBMYXRMbmdUdXBsZSA9IFtwb2ludFsnbGF0aXR1ZGUnXSwgcG9pbnRbJ2xvbmdpdHVkZSddXTtcbiAgICBpZiAobWFya2VyTG9jYXRpb25bMF0gPT09IG51bGwpIHJldHVybjtcblxuICAgIGNyZWF0ZUJ1YmJsZVBvaW50KG1hcmtlckxvY2F0aW9uLCBwb2ludCwgbWFwLCBudWxsLCBsYXllckdyb3VwKTtcblxuICAgIGlmIChwb2ludC5ncm91cC50eXBlID09PSAnR3JvdXBzOjpGYWN0b3J5Jykge1xuICAgICAgYmluZFBvcHVwVG9NYXJrZXIocG9pbnQsIGxheWVyR3JvdXApO1xuXG4gICAgICAvL1RoZSBmb2xsb3dpbmcgaXMgYmVpbmcgY2FsbGVkIGZvciBldmVyeSBwb2ludCwgd2Ugc2hvdWxkIGRvIHRoYXQgb24gdGhlIGxheWVyR3JvdXAgbGV2ZWwgd2hpY2ggd2lsbCBoYXBwZW4gb25jZVxuICAgICAgLy9JdCBpcyBub3RpY2VkIHdoZW4gdGhlcmUgYXJlIHRob3VzYW5kcyBvZiBwb2ludHNcbiAgICAgIGhhbmRsZU1hcmtlckNsaWNrKG1hcCwgcG9pbnQsIGxheWVyR3JvdXApO1xuICAgIH1cbiAgfTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHJlbmRlckxvZ2ljKCk7XG4gICAgLy8gcmV0dXJuIGZ1bmN0aW9uIGNsZWFudXAoKSB7XG4gICAgLy8gICAvLyBVTkJJTkQgUE9QVVBcbiAgICAvLyAgIHJlbW92ZUZyb21NYXAobWFwLCBwb2ludCwgJ09ic2VydmF0aW9uJyk7XG4gICAgLy8gICByZW1vdmVGcm9tTWFwKG1hcCwgcG9pbnQsICdQb2ludCcpO1xuICAgIC8vICAgcmVtb3ZlRnJvbU1hcChtYXAsIHBvaW50LCAnU2FtcGxpbmcnKTtcbiAgICAvLyAgIHJlbW92ZUZyb21NYXAobWFwLCBwb2ludCwgJ0ljb25OdW1iZXInKTtcbiAgICAvLyB9O1xuICB9LCBbcmVyZW5kZXJdKTtcblxuICByZXR1cm4gPGRpdj48L2Rpdj47XG59O1xuXG5jb25zdCBjb25uZWN0b3IgPSBjb25uZWN0KG1hcFN0YXRlVG9Qcm9wcyk7XG5leHBvcnQgZGVmYXVsdCBjb25uZWN0b3IoXG4gIFJlYWN0Lm1lbW8oUG9pbnRNYXJrZXIsIChwcmV2UHJvcHMsIG5leHRQcm9wcykgPT4ge1xuICAgIGlmIChcbiAgICAgIHByZXZQcm9wcy5ldmVudHNfZGF0YS5mb2N1c2VkRXZlbnQgIT09IG5leHRQcm9wcy5ldmVudHNfZGF0YS5mb2N1c2VkRXZlbnRcbiAgICApIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSksXG4pO1xuIl19
@@ -13,6 +13,8 @@ var _react = _interopRequireWildcard(require("react"));
13
13
 
14
14
  var _PointMarker = _interopRequireDefault(require("./PointMarker"));
15
15
 
16
+ var _PointUtils = require("./PointUtils");
17
+
16
18
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
17
19
 
18
20
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
@@ -20,39 +22,105 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
20
22
  var PointMarkers = function PointMarkers(props) {
21
23
  var points = props.points,
22
24
  map = props.map,
23
- _props$includeUnmonit = props.includeUnmonitoredPoints,
24
- includeUnmonitoredPoints = _props$includeUnmonit === void 0 ? false : _props$includeUnmonit,
25
- _props$rerender = props.rerender,
26
- rerender = _props$rerender === void 0 ? false : _props$rerender;
25
+ factoriesGroup = props.factoriesGroup,
26
+ wwtpsGroup = props.wwtpsGroup,
27
+ collectorsGroup = props.collectorsGroup,
28
+ rerender = props.rerender; //Handle the mouse click here one for all instead one by one
29
+ // factoriesClusterGroup.on('click', function (a) {
30
+ // console.log('currentSrc', a.originalEvent.target.currentSrc);
31
+ // console.log('src', a.originalEvent.target.src);
32
+ // //a.originalEvent.target.src = '';
33
+ // //Change icon here
34
+ // });
35
+ // console.log('LayerGroups', factoriesClusterGroup);
36
+ //const layerGroups = L.layerGroup();
37
+ //const wwtpsLayerGroup = L.layerGroup();
38
+ //const collectorsLayerGroup = L.layerGroup();
39
+ //console.log('LayerGroups', wwtpsLayerGroup, collectorsLayerGroup);
40
+ //layerGroups.addLayer(wwtpsLayerGroup);
41
+ //layerGroups.addLayer(collectorsLayerGroup);
42
+ //map.addLayer(layerGroups);
43
+ // const isPointBelongToGroupTypes = (point: IPoint) => {
44
+ // return (
45
+ // point.group.type === 'Groups::WastewaterTreatmentPlant' ||
46
+ // (point.group.type === 'Groups::Factory') ||
47
+ // (point.group.type === 'Groups::Collectors' && point.has_device) ||
48
+ // (point.group.type === 'Groups::PumpStation' && point.has_device)
49
+ // );
50
+ // };
51
+ // const includeUnmonitoredPointsLogic = (point: IPoint) => {
52
+ // return includeUnmonitoredPoints ? point.part_of_monitored_path : false;
53
+ // };
54
+ // const filterStatement = (point) => {
55
+ // return (
56
+ // includeUnmonitoredPointsLogic(point) ||
57
+ // isPointBelongToGroupTypes(point) ||
58
+ // point.group.type === 'Groups::WastewaterTreatmentPlant'
59
+ // );
60
+ // };
27
61
 
28
- var isPointBelongToGroupTypes = function isPointBelongToGroupTypes(point) {
29
- return point.group.type === 'Groups::WastewaterTreatmentPlant' || point.group.type === 'Groups::Factory' && point.has_device || point.group.type === 'Groups::Collectors' && point.has_device || point.group.type === 'Groups::PumpStation' && point.has_device;
30
- };
62
+ var filteredPoints = function filteredPoints() {
63
+ return points; //.filter((point: IPoint) => filterStatement(point));
64
+ }; // function countLayersOnMap(map) {
65
+ // let layerCount = 0;
66
+ // map.eachLayer(function (layer) {
67
+ // // Exclude the base layer (the map itself) from the count
68
+ // if (!layer._tiles) {
69
+ // // for(var a in layer)
70
+ // // console.log(a);
71
+ // //console.log('layer', layer);
72
+ // map.removeLayer(layer);
73
+ // layerCount++;
74
+ // }
75
+ // else {
76
+ // //console.log('no layers deleted', layer);
77
+ // }
78
+ // });
79
+ // return layerCount;
80
+ // }
31
81
 
32
- var includeUnmonitoredPointsLogic = function includeUnmonitoredPointsLogic(point) {
33
- return includeUnmonitoredPoints ? point.part_of_monitored_path : false;
34
- };
35
82
 
36
- var filterStatement = function filterStatement(point) {
37
- return includeUnmonitoredPointsLogic(point) || isPointBelongToGroupTypes(point) || point.group.type === 'Groups::WastewaterTreatmentPlant';
38
- };
83
+ (0, _react.useEffect)(function () {
84
+ //console.log('PointMarkers useEffect: rerender: ', rerender);
85
+ //console.log('Layers on map', countLayersOnMap(map));
86
+ if (map) {
87
+ switch (rerender) {
88
+ case 'XLarge':
89
+ (0, _PointUtils.addLayerGroup)(map, factoriesGroup);
90
+ (0, _PointUtils.addLayerGroup)(map, wwtpsGroup);
91
+ (0, _PointUtils.removeLayerGroup)(map, collectorsGroup);
92
+ break;
39
93
 
40
- var filteredPoints = function filteredPoints() {
41
- return points.filter(function (point) {
42
- return filterStatement(point);
43
- });
44
- };
94
+ case 'Large':
95
+ break;
96
+
97
+ case 'MLarge':
98
+ (0, _PointUtils.removeLayerGroup)(map, collectorsGroup);
99
+ break;
100
+
101
+ case 'Medium':
102
+ (0, _PointUtils.addLayerGroup)(map, collectorsGroup);
103
+ break;
104
+
105
+ default:
106
+ break;
107
+ }
108
+ }
45
109
 
46
- (0, _react.useEffect)(function () {}, [rerender]);
110
+ factoriesGroup.doneCreating = true;
111
+ wwtpsGroup.doneCreating = true;
112
+ collectorsGroup.doneCreating = true;
113
+ }, [rerender]);
47
114
  return /*#__PURE__*/_react.default.createElement("div", null, points.length !== 0 && filteredPoints().map(function (point) {
48
- return point.latitude && point.longitude && /*#__PURE__*/_react.default.createElement(_PointMarker.default, {
115
+ return point.latitude && point.longitude && !factoriesGroup.doneCreating && !wwtpsGroup.doneCreating && !collectorsGroup.doneCreating && /*#__PURE__*/_react.default.createElement(_PointMarker.default, {
49
116
  map: map,
50
117
  point: point,
51
118
  key: point.id,
52
- rerender: rerender
119
+ rerender: rerender,
120
+ layerGroup: point.group.type === 'Groups::Factory' ? factoriesGroup : point.group.type === 'Groups::WastewaterTreatmentPlant' ? wwtpsGroup : collectorsGroup
53
121
  });
54
122
  }));
55
123
  };
56
124
 
57
125
  exports.PointMarkers = PointMarkers;
58
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9XaWRnZXRzL01hcC9wb2ludHMvUG9pbnRNYXJrZXJzLnRzeCJdLCJuYW1lcyI6WyJQb2ludE1hcmtlcnMiLCJwcm9wcyIsInBvaW50cyIsIm1hcCIsImluY2x1ZGVVbm1vbml0b3JlZFBvaW50cyIsInJlcmVuZGVyIiwiaXNQb2ludEJlbG9uZ1RvR3JvdXBUeXBlcyIsInBvaW50IiwiZ3JvdXAiLCJ0eXBlIiwiaGFzX2RldmljZSIsImluY2x1ZGVVbm1vbml0b3JlZFBvaW50c0xvZ2ljIiwicGFydF9vZl9tb25pdG9yZWRfcGF0aCIsImZpbHRlclN0YXRlbWVudCIsImZpbHRlcmVkUG9pbnRzIiwiZmlsdGVyIiwibGVuZ3RoIiwibGF0aXR1ZGUiLCJsb25naXR1ZGUiLCJpZCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTs7QUFFQTs7Ozs7O0FBU08sSUFBTUEsWUFBNkIsR0FBRyxTQUFoQ0EsWUFBZ0MsQ0FBQ0MsS0FBRCxFQUFXO0FBQ3RELE1BQ0VDLE1BREYsR0FLSUQsS0FMSixDQUNFQyxNQURGO0FBQUEsTUFFRUMsR0FGRixHQUtJRixLQUxKLENBRUVFLEdBRkY7QUFBQSw4QkFLSUYsS0FMSixDQUdFRyx3QkFIRjtBQUFBLE1BR0VBLHdCQUhGLHNDQUc2QixLQUg3QjtBQUFBLHdCQUtJSCxLQUxKLENBSUVJLFFBSkY7QUFBQSxNQUlFQSxRQUpGLGdDQUlhLEtBSmI7O0FBT0EsTUFBTUMseUJBQXlCLEdBQUcsU0FBNUJBLHlCQUE0QixDQUFDQyxLQUFELEVBQW1CO0FBQ25ELFdBQ0VBLEtBQUssQ0FBQ0MsS0FBTixDQUFZQyxJQUFaLEtBQXFCLGtDQUFyQixJQUNDRixLQUFLLENBQUNDLEtBQU4sQ0FBWUMsSUFBWixLQUFxQixpQkFBckIsSUFBMENGLEtBQUssQ0FBQ0csVUFEakQsSUFFQ0gsS0FBSyxDQUFDQyxLQUFOLENBQVlDLElBQVosS0FBcUIsb0JBQXJCLElBQTZDRixLQUFLLENBQUNHLFVBRnBELElBR0NILEtBQUssQ0FBQ0MsS0FBTixDQUFZQyxJQUFaLEtBQXFCLHFCQUFyQixJQUE4Q0YsS0FBSyxDQUFDRyxVQUp2RDtBQU1ELEdBUEQ7O0FBU0EsTUFBTUMsNkJBQTZCLEdBQUcsU0FBaENBLDZCQUFnQyxDQUFDSixLQUFELEVBQW1CO0FBQ3ZELFdBQU9ILHdCQUF3QixHQUFHRyxLQUFLLENBQUNLLHNCQUFULEdBQWtDLEtBQWpFO0FBQ0QsR0FGRDs7QUFJQSxNQUFNQyxlQUFlLEdBQUcsU0FBbEJBLGVBQWtCLENBQUNOLEtBQUQsRUFBVztBQUNqQyxXQUNFSSw2QkFBNkIsQ0FBQ0osS0FBRCxDQUE3QixJQUNBRCx5QkFBeUIsQ0FBQ0MsS0FBRCxDQUR6QixJQUVBQSxLQUFLLENBQUNDLEtBQU4sQ0FBWUMsSUFBWixLQUFxQixrQ0FIdkI7QUFLRCxHQU5EOztBQVFBLE1BQU1LLGNBQWMsR0FBRyxTQUFqQkEsY0FBaUIsR0FBTTtBQUMzQixXQUFPWixNQUFNLENBQUNhLE1BQVAsQ0FBYyxVQUFDUixLQUFEO0FBQUEsYUFBbUJNLGVBQWUsQ0FBQ04sS0FBRCxDQUFsQztBQUFBLEtBQWQsQ0FBUDtBQUNELEdBRkQ7O0FBSUEsd0JBQVUsWUFBTSxDQUFFLENBQWxCLEVBQW9CLENBQUNGLFFBQUQsQ0FBcEI7QUFFQSxzQkFDRSwwQ0FDR0gsTUFBTSxDQUFDYyxNQUFQLEtBQWtCLENBQWxCLElBQ0NGLGNBQWMsR0FBR1gsR0FBakIsQ0FDRSxVQUFDSSxLQUFEO0FBQUEsV0FDRUEsS0FBSyxDQUFDVSxRQUFOLElBQ0FWLEtBQUssQ0FBQ1csU0FETixpQkFFRSw2QkFBQyxvQkFBRDtBQUNFLE1BQUEsR0FBRyxFQUFFZixHQURQO0FBRUUsTUFBQSxLQUFLLEVBQUVJLEtBRlQ7QUFHRSxNQUFBLEdBQUcsRUFBRUEsS0FBSyxDQUFDWSxFQUhiO0FBSUUsTUFBQSxRQUFRLEVBQUVkO0FBSlosTUFISjtBQUFBLEdBREYsQ0FGSixDQURGO0FBaUJELENBcERNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IElQb2ludCB9IGZyb20gJ3NyYy9zdG9yZS9wb2ludHMvbW9kZWxzL0lQb2ludCc7XG5pbXBvcnQgUG9pbnRNYXJrZXIgZnJvbSAnLi9Qb2ludE1hcmtlcic7XG5cbnR5cGUgUHJvcHMgPSB7XG4gIG1hcDogYW55O1xuICBwb2ludHM6IGFueTtcbiAgaW5jbHVkZVVubW9uaXRvcmVkUG9pbnRzOiBib29sZWFuO1xuICByZXJlbmRlcjogYm9vbGVhbjtcbn07XG5cbmV4cG9ydCBjb25zdCBQb2ludE1hcmtlcnM6IFJlYWN0LkZDPFByb3BzPiA9IChwcm9wcykgPT4ge1xuICBjb25zdCB7XG4gICAgcG9pbnRzLFxuICAgIG1hcCxcbiAgICBpbmNsdWRlVW5tb25pdG9yZWRQb2ludHMgPSBmYWxzZSxcbiAgICByZXJlbmRlciA9IGZhbHNlLFxuICB9ID0gcHJvcHM7XG5cbiAgY29uc3QgaXNQb2ludEJlbG9uZ1RvR3JvdXBUeXBlcyA9IChwb2ludDogSVBvaW50KSA9PiB7XG4gICAgcmV0dXJuIChcbiAgICAgIHBvaW50Lmdyb3VwLnR5cGUgPT09ICdHcm91cHM6Oldhc3Rld2F0ZXJUcmVhdG1lbnRQbGFudCcgfHxcbiAgICAgIChwb2ludC5ncm91cC50eXBlID09PSAnR3JvdXBzOjpGYWN0b3J5JyAmJiBwb2ludC5oYXNfZGV2aWNlKSB8fFxuICAgICAgKHBvaW50Lmdyb3VwLnR5cGUgPT09ICdHcm91cHM6OkNvbGxlY3RvcnMnICYmIHBvaW50Lmhhc19kZXZpY2UpIHx8XG4gICAgICAocG9pbnQuZ3JvdXAudHlwZSA9PT0gJ0dyb3Vwczo6UHVtcFN0YXRpb24nICYmIHBvaW50Lmhhc19kZXZpY2UpXG4gICAgKTtcbiAgfTtcblxuICBjb25zdCBpbmNsdWRlVW5tb25pdG9yZWRQb2ludHNMb2dpYyA9IChwb2ludDogSVBvaW50KSA9PiB7XG4gICAgcmV0dXJuIGluY2x1ZGVVbm1vbml0b3JlZFBvaW50cyA/IHBvaW50LnBhcnRfb2ZfbW9uaXRvcmVkX3BhdGggOiBmYWxzZTtcbiAgfTtcblxuICBjb25zdCBmaWx0ZXJTdGF0ZW1lbnQgPSAocG9pbnQpID0+IHtcbiAgICByZXR1cm4gKFxuICAgICAgaW5jbHVkZVVubW9uaXRvcmVkUG9pbnRzTG9naWMocG9pbnQpIHx8XG4gICAgICBpc1BvaW50QmVsb25nVG9Hcm91cFR5cGVzKHBvaW50KSB8fFxuICAgICAgcG9pbnQuZ3JvdXAudHlwZSA9PT0gJ0dyb3Vwczo6V2FzdGV3YXRlclRyZWF0bWVudFBsYW50J1xuICAgICk7XG4gIH07XG5cbiAgY29uc3QgZmlsdGVyZWRQb2ludHMgPSAoKSA9PiB7XG4gICAgcmV0dXJuIHBvaW50cy5maWx0ZXIoKHBvaW50OiBJUG9pbnQpID0+IGZpbHRlclN0YXRlbWVudChwb2ludCkpO1xuICB9O1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7fSwgW3JlcmVuZGVyXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2PlxuICAgICAge3BvaW50cy5sZW5ndGggIT09IDAgJiZcbiAgICAgICAgZmlsdGVyZWRQb2ludHMoKS5tYXAoXG4gICAgICAgICAgKHBvaW50OiBJUG9pbnQpID0+XG4gICAgICAgICAgICBwb2ludC5sYXRpdHVkZSAmJlxuICAgICAgICAgICAgcG9pbnQubG9uZ2l0dWRlICYmIChcbiAgICAgICAgICAgICAgPFBvaW50TWFya2VyXG4gICAgICAgICAgICAgICAgbWFwPXttYXB9XG4gICAgICAgICAgICAgICAgcG9pbnQ9e3BvaW50fVxuICAgICAgICAgICAgICAgIGtleT17cG9pbnQuaWR9XG4gICAgICAgICAgICAgICAgcmVyZW5kZXI9e3JlcmVuZGVyfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSxcbiAgICAgICAgKX1cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG4iXX0=
126
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9XaWRnZXRzL01hcC9wb2ludHMvUG9pbnRNYXJrZXJzLnRzeCJdLCJuYW1lcyI6WyJQb2ludE1hcmtlcnMiLCJwcm9wcyIsInBvaW50cyIsIm1hcCIsImZhY3Rvcmllc0dyb3VwIiwid3d0cHNHcm91cCIsImNvbGxlY3RvcnNHcm91cCIsInJlcmVuZGVyIiwiZmlsdGVyZWRQb2ludHMiLCJkb25lQ3JlYXRpbmciLCJsZW5ndGgiLCJwb2ludCIsImxhdGl0dWRlIiwibG9uZ2l0dWRlIiwiaWQiLCJncm91cCIsInR5cGUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7O0FBRUE7O0FBQ0E7Ozs7OztBQVlPLElBQU1BLFlBQTZCLEdBQUcsU0FBaENBLFlBQWdDLENBQUNDLEtBQUQsRUFBVztBQUN0RCxNQUNFQyxNQURGLEdBUUlELEtBUkosQ0FDRUMsTUFERjtBQUFBLE1BRUVDLEdBRkYsR0FRSUYsS0FSSixDQUVFRSxHQUZGO0FBQUEsTUFHRUMsY0FIRixHQVFJSCxLQVJKLENBR0VHLGNBSEY7QUFBQSxNQUlFQyxVQUpGLEdBUUlKLEtBUkosQ0FJRUksVUFKRjtBQUFBLE1BS0VDLGVBTEYsR0FRSUwsS0FSSixDQUtFSyxlQUxGO0FBQUEsTUFPRUMsUUFQRixHQVFJTixLQVJKLENBT0VNLFFBUEYsQ0FEc0QsQ0FXdEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLE1BQU1DLGNBQWMsR0FBRyxTQUFqQkEsY0FBaUIsR0FBTTtBQUMzQixXQUFPTixNQUFQLENBRDJCLENBQ1o7QUFDaEIsR0FGRCxDQWpEc0QsQ0FxRHREO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUVBLHdCQUFVLFlBQU07QUFDZDtBQUNBO0FBRUEsUUFBSUMsR0FBSixFQUFTO0FBQ1AsY0FBUUksUUFBUjtBQUNFLGFBQUssUUFBTDtBQUNFLHlDQUFjSixHQUFkLEVBQW1CQyxjQUFuQjtBQUNBLHlDQUFjRCxHQUFkLEVBQW1CRSxVQUFuQjtBQUNBLDRDQUFpQkYsR0FBakIsRUFBc0JHLGVBQXRCO0FBQ0E7O0FBQ0YsYUFBSyxPQUFMO0FBQ0U7O0FBQ0YsYUFBSyxRQUFMO0FBQ0UsNENBQWlCSCxHQUFqQixFQUFzQkcsZUFBdEI7QUFDQTs7QUFDRixhQUFLLFFBQUw7QUFDRSx5Q0FBY0gsR0FBZCxFQUFtQkcsZUFBbkI7QUFDQTs7QUFDRjtBQUNFO0FBZko7QUFpQkQ7O0FBRURGLElBQUFBLGNBQWMsQ0FBQ0ssWUFBZixHQUE4QixJQUE5QjtBQUNBSixJQUFBQSxVQUFVLENBQUNJLFlBQVgsR0FBMEIsSUFBMUI7QUFDQUgsSUFBQUEsZUFBZSxDQUFDRyxZQUFoQixHQUErQixJQUEvQjtBQUNELEdBM0JELEVBMkJHLENBQUNGLFFBQUQsQ0EzQkg7QUE2QkEsc0JBQ0UsMENBQ0dMLE1BQU0sQ0FBQ1EsTUFBUCxLQUFrQixDQUFsQixJQUNDRixjQUFjLEdBQUdMLEdBQWpCLENBQ0UsVUFBQ1EsS0FBRDtBQUFBLFdBQ0VBLEtBQUssQ0FBQ0MsUUFBTixJQUNBRCxLQUFLLENBQUNFLFNBRE4sSUFFQSxDQUFDVCxjQUFjLENBQUNLLFlBRmhCLElBR0EsQ0FBQ0osVUFBVSxDQUFDSSxZQUhaLElBSUEsQ0FBQ0gsZUFBZSxDQUFDRyxZQUpqQixpQkFLRSw2QkFBQyxvQkFBRDtBQUNFLE1BQUEsR0FBRyxFQUFFTixHQURQO0FBRUUsTUFBQSxLQUFLLEVBQUVRLEtBRlQ7QUFHRSxNQUFBLEdBQUcsRUFBRUEsS0FBSyxDQUFDRyxFQUhiO0FBSUUsTUFBQSxRQUFRLEVBQUVQLFFBSlo7QUFLRSxNQUFBLFVBQVUsRUFDUkksS0FBSyxDQUFDSSxLQUFOLENBQVlDLElBQVosS0FBcUIsaUJBQXJCLEdBQ0laLGNBREosR0FFSU8sS0FBSyxDQUFDSSxLQUFOLENBQVlDLElBQVosS0FBcUIsa0NBQXJCLEdBQ0FYLFVBREEsR0FFQUM7QUFWUixNQU5KO0FBQUEsR0FERixDQUZKLENBREY7QUEyQkQsQ0EvSE0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgSVBvaW50IH0gZnJvbSAnc3JjL3N0b3JlL3BvaW50cy9tb2RlbHMvSVBvaW50JztcbmltcG9ydCBQb2ludE1hcmtlciBmcm9tICcuL1BvaW50TWFya2VyJztcbmltcG9ydCB7IGFkZExheWVyR3JvdXAsIHJlbW92ZUxheWVyR3JvdXAgfSBmcm9tICcuL1BvaW50VXRpbHMnO1xuXG50eXBlIFByb3BzID0ge1xuICBtYXA6IGFueTtcbiAgcG9pbnRzOiBhbnk7XG4gIGluY2x1ZGVVbm1vbml0b3JlZFBvaW50czogYm9vbGVhbjtcbiAgcmVyZW5kZXI6IHN0cmluZztcbiAgZmFjdG9yaWVzR3JvdXA6IGFueTtcbiAgd3d0cHNHcm91cDogYW55O1xuICBjb2xsZWN0b3JzR3JvdXA6IGFueTtcbn07XG5cbmV4cG9ydCBjb25zdCBQb2ludE1hcmtlcnM6IFJlYWN0LkZDPFByb3BzPiA9IChwcm9wcykgPT4ge1xuICBjb25zdCB7XG4gICAgcG9pbnRzLFxuICAgIG1hcCxcbiAgICBmYWN0b3JpZXNHcm91cCxcbiAgICB3d3Rwc0dyb3VwLFxuICAgIGNvbGxlY3RvcnNHcm91cCxcbiAgICAvLyBpbmNsdWRlVW5tb25pdG9yZWRQb2ludHMgPSBmYWxzZSxcbiAgICByZXJlbmRlcixcbiAgfSA9IHByb3BzO1xuXG4gIC8vSGFuZGxlIHRoZSBtb3VzZSBjbGljayBoZXJlIG9uZSBmb3IgYWxsIGluc3RlYWQgb25lIGJ5IG9uZVxuICAvLyBmYWN0b3JpZXNDbHVzdGVyR3JvdXAub24oJ2NsaWNrJywgZnVuY3Rpb24gKGEpIHtcbiAgLy8gICBjb25zb2xlLmxvZygnY3VycmVudFNyYycsIGEub3JpZ2luYWxFdmVudC50YXJnZXQuY3VycmVudFNyYyk7XG4gIC8vICAgY29uc29sZS5sb2coJ3NyYycsIGEub3JpZ2luYWxFdmVudC50YXJnZXQuc3JjKTtcbiAgLy8gICAvL2Eub3JpZ2luYWxFdmVudC50YXJnZXQuc3JjID0gJyc7XG4gIC8vICAgLy9DaGFuZ2UgaWNvbiBoZXJlXG4gIC8vIH0pO1xuICAvLyBjb25zb2xlLmxvZygnTGF5ZXJHcm91cHMnLCBmYWN0b3JpZXNDbHVzdGVyR3JvdXApO1xuXG4gIC8vY29uc3QgbGF5ZXJHcm91cHMgPSBMLmxheWVyR3JvdXAoKTtcbiAgLy9jb25zdCB3d3Rwc0xheWVyR3JvdXAgPSBMLmxheWVyR3JvdXAoKTtcbiAgLy9jb25zdCBjb2xsZWN0b3JzTGF5ZXJHcm91cCA9IEwubGF5ZXJHcm91cCgpO1xuICAvL2NvbnNvbGUubG9nKCdMYXllckdyb3VwcycsIHd3dHBzTGF5ZXJHcm91cCwgY29sbGVjdG9yc0xheWVyR3JvdXApO1xuICAvL2xheWVyR3JvdXBzLmFkZExheWVyKHd3dHBzTGF5ZXJHcm91cCk7XG4gIC8vbGF5ZXJHcm91cHMuYWRkTGF5ZXIoY29sbGVjdG9yc0xheWVyR3JvdXApO1xuICAvL21hcC5hZGRMYXllcihsYXllckdyb3Vwcyk7XG5cbiAgLy8gY29uc3QgaXNQb2ludEJlbG9uZ1RvR3JvdXBUeXBlcyA9IChwb2ludDogSVBvaW50KSA9PiB7XG4gIC8vICAgcmV0dXJuIChcbiAgLy8gICAgIHBvaW50Lmdyb3VwLnR5cGUgPT09ICdHcm91cHM6Oldhc3Rld2F0ZXJUcmVhdG1lbnRQbGFudCcgfHxcbiAgLy8gICAgIChwb2ludC5ncm91cC50eXBlID09PSAnR3JvdXBzOjpGYWN0b3J5JykgfHxcbiAgLy8gICAgIChwb2ludC5ncm91cC50eXBlID09PSAnR3JvdXBzOjpDb2xsZWN0b3JzJyAmJiBwb2ludC5oYXNfZGV2aWNlKSB8fFxuICAvLyAgICAgKHBvaW50Lmdyb3VwLnR5cGUgPT09ICdHcm91cHM6OlB1bXBTdGF0aW9uJyAmJiBwb2ludC5oYXNfZGV2aWNlKVxuICAvLyAgICk7XG4gIC8vIH07XG5cbiAgLy8gY29uc3QgaW5jbHVkZVVubW9uaXRvcmVkUG9pbnRzTG9naWMgPSAocG9pbnQ6IElQb2ludCkgPT4ge1xuICAvLyAgIHJldHVybiBpbmNsdWRlVW5tb25pdG9yZWRQb2ludHMgPyBwb2ludC5wYXJ0X29mX21vbml0b3JlZF9wYXRoIDogZmFsc2U7XG4gIC8vIH07XG5cbiAgLy8gY29uc3QgZmlsdGVyU3RhdGVtZW50ID0gKHBvaW50KSA9PiB7XG4gIC8vICAgcmV0dXJuIChcbiAgLy8gICAgIGluY2x1ZGVVbm1vbml0b3JlZFBvaW50c0xvZ2ljKHBvaW50KSB8fFxuICAvLyAgICAgaXNQb2ludEJlbG9uZ1RvR3JvdXBUeXBlcyhwb2ludCkgfHxcbiAgLy8gICAgIHBvaW50Lmdyb3VwLnR5cGUgPT09ICdHcm91cHM6Oldhc3Rld2F0ZXJUcmVhdG1lbnRQbGFudCdcbiAgLy8gICApO1xuICAvLyB9O1xuXG4gIGNvbnN0IGZpbHRlcmVkUG9pbnRzID0gKCkgPT4ge1xuICAgIHJldHVybiBwb2ludHM7IC8vLmZpbHRlcigocG9pbnQ6IElQb2ludCkgPT4gZmlsdGVyU3RhdGVtZW50KHBvaW50KSk7XG4gIH07XG5cbiAgLy8gZnVuY3Rpb24gY291bnRMYXllcnNPbk1hcChtYXApIHtcbiAgLy8gICBsZXQgbGF5ZXJDb3VudCA9IDA7XG4gIC8vICAgbWFwLmVhY2hMYXllcihmdW5jdGlvbiAobGF5ZXIpIHtcbiAgLy8gICAgICAgLy8gRXhjbHVkZSB0aGUgYmFzZSBsYXllciAodGhlIG1hcCBpdHNlbGYpIGZyb20gdGhlIGNvdW50XG4gIC8vICAgICAgIGlmICghbGF5ZXIuX3RpbGVzKSB7XG4gIC8vICAgICAgICAgLy8gZm9yKHZhciBhIGluIGxheWVyKVxuICAvLyAgICAgICAgIC8vICAgY29uc29sZS5sb2coYSk7XG4gIC8vICAgICAgICAgLy9jb25zb2xlLmxvZygnbGF5ZXInLCBsYXllcik7XG4gIC8vICAgICAgICAgbWFwLnJlbW92ZUxheWVyKGxheWVyKTtcbiAgLy8gICAgICAgICBsYXllckNvdW50Kys7XG4gIC8vICAgICAgIH1cbiAgLy8gICAgICAgZWxzZSB7XG4gIC8vICAgICAgICAgLy9jb25zb2xlLmxvZygnbm8gbGF5ZXJzIGRlbGV0ZWQnLCBsYXllcik7XG4gIC8vICAgICAgIH1cbiAgLy8gICB9KTtcbiAgLy8gICByZXR1cm4gbGF5ZXJDb3VudDtcbiAgLy8gfVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgLy9jb25zb2xlLmxvZygnUG9pbnRNYXJrZXJzIHVzZUVmZmVjdDogcmVyZW5kZXI6ICcsIHJlcmVuZGVyKTtcbiAgICAvL2NvbnNvbGUubG9nKCdMYXllcnMgb24gbWFwJywgY291bnRMYXllcnNPbk1hcChtYXApKTtcblxuICAgIGlmIChtYXApIHtcbiAgICAgIHN3aXRjaCAocmVyZW5kZXIpIHtcbiAgICAgICAgY2FzZSAnWExhcmdlJzpcbiAgICAgICAgICBhZGRMYXllckdyb3VwKG1hcCwgZmFjdG9yaWVzR3JvdXApO1xuICAgICAgICAgIGFkZExheWVyR3JvdXAobWFwLCB3d3Rwc0dyb3VwKTtcbiAgICAgICAgICByZW1vdmVMYXllckdyb3VwKG1hcCwgY29sbGVjdG9yc0dyb3VwKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnTGFyZ2UnOlxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdNTGFyZ2UnOlxuICAgICAgICAgIHJlbW92ZUxheWVyR3JvdXAobWFwLCBjb2xsZWN0b3JzR3JvdXApO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdNZWRpdW0nOlxuICAgICAgICAgIGFkZExheWVyR3JvdXAobWFwLCBjb2xsZWN0b3JzR3JvdXApO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cblxuICAgIGZhY3Rvcmllc0dyb3VwLmRvbmVDcmVhdGluZyA9IHRydWU7XG4gICAgd3d0cHNHcm91cC5kb25lQ3JlYXRpbmcgPSB0cnVlO1xuICAgIGNvbGxlY3RvcnNHcm91cC5kb25lQ3JlYXRpbmcgPSB0cnVlO1xuICB9LCBbcmVyZW5kZXJdKTtcblxuICByZXR1cm4gKFxuICAgIDxkaXY+XG4gICAgICB7cG9pbnRzLmxlbmd0aCAhPT0gMCAmJlxuICAgICAgICBmaWx0ZXJlZFBvaW50cygpLm1hcChcbiAgICAgICAgICAocG9pbnQ6IElQb2ludCkgPT5cbiAgICAgICAgICAgIHBvaW50LmxhdGl0dWRlICYmXG4gICAgICAgICAgICBwb2ludC5sb25naXR1ZGUgJiZcbiAgICAgICAgICAgICFmYWN0b3JpZXNHcm91cC5kb25lQ3JlYXRpbmcgJiZcbiAgICAgICAgICAgICF3d3Rwc0dyb3VwLmRvbmVDcmVhdGluZyAmJlxuICAgICAgICAgICAgIWNvbGxlY3RvcnNHcm91cC5kb25lQ3JlYXRpbmcgJiYgKFxuICAgICAgICAgICAgICA8UG9pbnRNYXJrZXJcbiAgICAgICAgICAgICAgICBtYXA9e21hcH1cbiAgICAgICAgICAgICAgICBwb2ludD17cG9pbnR9XG4gICAgICAgICAgICAgICAga2V5PXtwb2ludC5pZH1cbiAgICAgICAgICAgICAgICByZXJlbmRlcj17cmVyZW5kZXJ9XG4gICAgICAgICAgICAgICAgbGF5ZXJHcm91cD17XG4gICAgICAgICAgICAgICAgICBwb2ludC5ncm91cC50eXBlID09PSAnR3JvdXBzOjpGYWN0b3J5J1xuICAgICAgICAgICAgICAgICAgICA/IGZhY3Rvcmllc0dyb3VwXG4gICAgICAgICAgICAgICAgICAgIDogcG9pbnQuZ3JvdXAudHlwZSA9PT0gJ0dyb3Vwczo6V2FzdGV3YXRlclRyZWF0bWVudFBsYW50J1xuICAgICAgICAgICAgICAgICAgICA/IHd3dHBzR3JvdXBcbiAgICAgICAgICAgICAgICAgICAgOiBjb2xsZWN0b3JzR3JvdXBcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApLFxuICAgICAgICApfVxuICAgIDwvZGl2PlxuICApO1xufTtcbiJdfQ==