@kando-env/kando-ui 1.2.395-alpha.2 → 1.2.395-alpha.3

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.
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- var packageJsonVersion = "1.2.395-alpha.2";
3
+ var packageJsonVersion = "1.2.395-alpha.3";
4
4
  if (typeof packageJsonVersion === 'string') {
5
5
  // eslint-disable-next-line no-console
6
6
  console.log("%c Kando UI %c v".concat(packageJsonVersion, " "), 'font-size: 15px; background-color: #fff; color: #e20f53;', 'font-weight: bold; font-size: 15px; background-color: #e20f53; color: #fff;', "with NODE_ENV=".concat(process.env.NODE_ENV));
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.Map = void 0;
9
+ var _react = _interopRequireWildcard(require("react"));
10
+ var _useMap = require("./useMap");
11
+ var _ErrorBoundary = _interopRequireDefault(require("utilities/ErrorBoundary"));
12
+ 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); }
13
+ 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; }
14
+ var Map = function Map(_ref) {
15
+ var points = _ref.points,
16
+ edges = _ref.edges,
17
+ areas = _ref.areas,
18
+ selectedPoint = _ref.selectedPoint,
19
+ updateSelectedPoint = _ref.updateSelectedPoint;
20
+ var mapRef = (0, _react.useRef)(null);
21
+ (0, _useMap.useMap)(mapRef, points, edges, areas, selectedPoint, updateSelectedPoint);
22
+ return /*#__PURE__*/_react.default.createElement("div", {
23
+ className: "map-container"
24
+ }, /*#__PURE__*/_react.default.createElement(_ErrorBoundary.default, null, /*#__PURE__*/_react.default.createElement("div", {
25
+ ref: mapRef,
26
+ className: "map-heights"
27
+ })));
28
+ };
29
+ exports.Map = Map;
30
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfdXNlTWFwIiwiX0Vycm9yQm91bmRhcnkiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwibm9kZUludGVyb3AiLCJXZWFrTWFwIiwiY2FjaGVCYWJlbEludGVyb3AiLCJjYWNoZU5vZGVJbnRlcm9wIiwib2JqIiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJkZWZhdWx0IiwiY2FjaGUiLCJoYXMiLCJnZXQiLCJuZXdPYmoiLCJoYXNQcm9wZXJ0eURlc2NyaXB0b3IiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImRlc2MiLCJzZXQiLCJNYXAiLCJfcmVmIiwicG9pbnRzIiwiZWRnZXMiLCJhcmVhcyIsInNlbGVjdGVkUG9pbnQiLCJ1cGRhdGVTZWxlY3RlZFBvaW50IiwibWFwUmVmIiwidXNlUmVmIiwidXNlTWFwIiwiY3JlYXRlRWxlbWVudCIsImNsYXNzTmFtZSIsInJlZiIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcGFnZXMvT3BlcmF0aW9uc1BhZ2UvTWFwL01hcC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZVJlZiB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZU1hcCB9IGZyb20gJy4vdXNlTWFwJztcbmltcG9ydCBFcnJvckJvdW5kYXJ5IGZyb20gJ3NyYy91dGlsaXRpZXMvRXJyb3JCb3VuZGFyeSc7XG5pbXBvcnQgeyBJUG9pbnQgfSBmcm9tICdzcmMvc3RvcmUvcG9pbnRzL21vZGVscy9JUG9pbnQnO1xuaW1wb3J0IHsgSUVkZ2UgfSBmcm9tICdzcmMvc3RvcmUvZWRnZXMvbW9kZWxzL0lFZGdlJztcbmltcG9ydCB7IElBcmVhIH0gZnJvbSAnc3JjL3N0b3JlL2FyZWFzL21vZGVscy9JQXJlYSc7XG5cbmludGVyZmFjZSBNYXBQcm9wcyB7XG4gIHBvaW50czogSVBvaW50W107XG4gIGVkZ2VzOiBJRWRnZVtdO1xuICBhcmVhczogSUFyZWFbXTtcbiAgc2VsZWN0ZWRQb2ludDogSVBvaW50IHwgbnVsbDtcbiAgdXBkYXRlU2VsZWN0ZWRQb2ludDogKHBvaW50OiBJUG9pbnQpID0+IHZvaWQ7XG59XG5cbmV4cG9ydCBjb25zdCBNYXA6IFJlYWN0LkZDPE1hcFByb3BzPiA9ICh7XG4gIHBvaW50cyxcbiAgZWRnZXMsXG4gIGFyZWFzLFxuICBzZWxlY3RlZFBvaW50LFxuICB1cGRhdGVTZWxlY3RlZFBvaW50LFxufSkgPT4ge1xuICBjb25zdCBtYXBSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICB1c2VNYXAobWFwUmVmLCBwb2ludHMsIGVkZ2VzLCBhcmVhcywgc2VsZWN0ZWRQb2ludCwgdXBkYXRlU2VsZWN0ZWRQb2ludCk7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cIm1hcC1jb250YWluZXJcIj5cbiAgICAgIDxFcnJvckJvdW5kYXJ5PlxuICAgICAgICA8ZGl2IHJlZj17bWFwUmVmfSBjbGFzc05hbWU9XCJtYXAtaGVpZ2h0c1wiIC8+XG4gICAgICA8L0Vycm9yQm91bmRhcnk+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLE9BQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLGNBQUEsR0FBQUMsc0JBQUEsQ0FBQUgsT0FBQTtBQUF3RCxTQUFBSSx5QkFBQUMsV0FBQSxlQUFBQyxPQUFBLGtDQUFBQyxpQkFBQSxPQUFBRCxPQUFBLFFBQUFFLGdCQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEseUJBQUFDLFdBQUEsV0FBQUEsV0FBQSxHQUFBRyxnQkFBQSxHQUFBRCxpQkFBQSxLQUFBRixXQUFBO0FBQUEsU0FBQU4sd0JBQUFVLEdBQUEsRUFBQUosV0FBQSxTQUFBQSxXQUFBLElBQUFJLEdBQUEsSUFBQUEsR0FBQSxDQUFBQyxVQUFBLFdBQUFELEdBQUEsUUFBQUEsR0FBQSxhQUFBRSxPQUFBLENBQUFGLEdBQUEseUJBQUFBLEdBQUEsNEJBQUFHLE9BQUEsRUFBQUgsR0FBQSxVQUFBSSxLQUFBLEdBQUFULHdCQUFBLENBQUFDLFdBQUEsT0FBQVEsS0FBQSxJQUFBQSxLQUFBLENBQUFDLEdBQUEsQ0FBQUwsR0FBQSxZQUFBSSxLQUFBLENBQUFFLEdBQUEsQ0FBQU4sR0FBQSxTQUFBTyxNQUFBLFdBQUFDLHFCQUFBLEdBQUFDLE1BQUEsQ0FBQUMsY0FBQSxJQUFBRCxNQUFBLENBQUFFLHdCQUFBLFdBQUFDLEdBQUEsSUFBQVosR0FBQSxRQUFBWSxHQUFBLGtCQUFBSCxNQUFBLENBQUFJLFNBQUEsQ0FBQUMsY0FBQSxDQUFBQyxJQUFBLENBQUFmLEdBQUEsRUFBQVksR0FBQSxTQUFBSSxJQUFBLEdBQUFSLHFCQUFBLEdBQUFDLE1BQUEsQ0FBQUUsd0JBQUEsQ0FBQVgsR0FBQSxFQUFBWSxHQUFBLGNBQUFJLElBQUEsS0FBQUEsSUFBQSxDQUFBVixHQUFBLElBQUFVLElBQUEsQ0FBQUMsR0FBQSxLQUFBUixNQUFBLENBQUFDLGNBQUEsQ0FBQUgsTUFBQSxFQUFBSyxHQUFBLEVBQUFJLElBQUEsWUFBQVQsTUFBQSxDQUFBSyxHQUFBLElBQUFaLEdBQUEsQ0FBQVksR0FBQSxTQUFBTCxNQUFBLENBQUFKLE9BQUEsR0FBQUgsR0FBQSxNQUFBSSxLQUFBLElBQUFBLEtBQUEsQ0FBQWEsR0FBQSxDQUFBakIsR0FBQSxFQUFBTyxNQUFBLFlBQUFBLE1BQUE7QUFhakQsSUFBTVcsR0FBdUIsR0FBRyxTQUExQkEsR0FBdUJBLENBQUFDLElBQUEsRUFNOUI7RUFBQSxJQUxKQyxNQUFNLEdBQUFELElBQUEsQ0FBTkMsTUFBTTtJQUNOQyxLQUFLLEdBQUFGLElBQUEsQ0FBTEUsS0FBSztJQUNMQyxLQUFLLEdBQUFILElBQUEsQ0FBTEcsS0FBSztJQUNMQyxhQUFhLEdBQUFKLElBQUEsQ0FBYkksYUFBYTtJQUNiQyxtQkFBbUIsR0FBQUwsSUFBQSxDQUFuQkssbUJBQW1CO0VBRW5CLElBQU1DLE1BQU0sR0FBRyxJQUFBQyxhQUFNLEVBQWlCLElBQUksQ0FBQztFQUMzQyxJQUFBQyxjQUFNLEVBQUNGLE1BQU0sRUFBRUwsTUFBTSxFQUFFQyxLQUFLLEVBQUVDLEtBQUssRUFBRUMsYUFBYSxFQUFFQyxtQkFBbUIsQ0FBQztFQUV4RSxvQkFDRW5DLE1BQUEsQ0FBQWMsT0FBQSxDQUFBeUIsYUFBQTtJQUFLQyxTQUFTLEVBQUM7RUFBZSxnQkFDNUJ4QyxNQUFBLENBQUFjLE9BQUEsQ0FBQXlCLGFBQUEsQ0FBQ25DLGNBQUEsQ0FBQVUsT0FBYSxxQkFDWmQsTUFBQSxDQUFBYyxPQUFBLENBQUF5QixhQUFBO0lBQUtFLEdBQUcsRUFBRUwsTUFBTztJQUFDSSxTQUFTLEVBQUM7RUFBYSxDQUFFLENBQzlCLENBQ1osQ0FBQztBQUVWLENBQUM7QUFBQ0UsT0FBQSxDQUFBYixHQUFBLEdBQUFBLEdBQUEifQ==
@@ -0,0 +1,201 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.useMap = void 0;
8
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/slicedToArray"));
9
+ var _leaflet = _interopRequireDefault(require("leaflet"));
10
+ var _react = require("react");
11
+ var _PointIcon = require("Widgets/Map/points/PointIcon");
12
+ var _theme = require("styles/theme/theme");
13
+ var _MapUtils = require("Widgets/Map/MapUtils");
14
+ var useMap = function useMap(mapRef, points, edges, areas, selectedPoint, updateSelectedPoint) {
15
+ var _useState = (0, _react.useState)(),
16
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
17
+ map = _useState2[0],
18
+ setMap = _useState2[1];
19
+ var _useState3 = (0, _react.useState)(null),
20
+ _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
21
+ focusedMarker = _useState4[0],
22
+ setFocusedMarker = _useState4[1];
23
+ var pointsLayerRef = (0, _react.useRef)();
24
+ var edgesLayerRef = (0, _react.useRef)();
25
+ var areasLayerRef = (0, _react.useRef)();
26
+ (0, _react.useEffect)(function () {
27
+ if (!mapRef.current) {
28
+ return;
29
+ }
30
+ var mapTypes = (0, _MapUtils.baseMaps)(_theme.leafletMap.mapDefault, _theme.leafletMap.satellite);
31
+ var mapTemp = _leaflet.default.map(mapRef.current, {
32
+ renderer: _leaflet.default.canvas()
33
+ });
34
+ Object.values(mapTypes)[0].addTo(mapTemp);
35
+ _leaflet.default.control.layers(mapTypes, {}, {
36
+ position: 'bottomright'
37
+ }).addTo(mapTemp);
38
+ setMap(mapTemp);
39
+ return function () {
40
+ if (!mapTemp) {
41
+ return;
42
+ }
43
+ mapTemp.off();
44
+ mapTemp.remove();
45
+ };
46
+ }, []);
47
+ (0, _react.useEffect)(function () {
48
+ var _pointsLayerRef$curre;
49
+ if (focusedMarker) {
50
+ focusedMarker.fire('mouseout');
51
+ }
52
+ (_pointsLayerRef$curre = pointsLayerRef.current) === null || _pointsLayerRef$curre === void 0 ? void 0 : _pointsLayerRef$curre.eachLayer(function (marker) {
53
+ if (selectedPoint && marker.options.kando_object_id === (selectedPoint === null || selectedPoint === void 0 ? void 0 : selectedPoint.id)) {
54
+ marker.fire('mouseover');
55
+ setFocusedMarker(marker);
56
+ return;
57
+ }
58
+ });
59
+ }, [selectedPoint]);
60
+ var handleMarkerClick = function handleMarkerClick(point) {
61
+ updateSelectedPoint(point);
62
+ };
63
+ var addMarkers = function addMarkers() {
64
+ if (!map || !points) {
65
+ return;
66
+ }
67
+ if (pointsLayerRef.current) {
68
+ if (map.hasLayer(pointsLayerRef.current)) {
69
+ map.removeLayer(pointsLayerRef.current);
70
+ }
71
+ }
72
+ pointsLayerRef.current = _leaflet.default.featureGroup();
73
+ pointsLayerRef.current.addTo(map);
74
+ if (!pointsLayerRef.current.getLayers().length) {
75
+ points.forEach(function (point) {
76
+ var _pointsLayerRef$curre2;
77
+ var icon = (0, _PointIcon.getPointIconByType)(point.group.type, point.name, '', false, true);
78
+ var focusedIcon = (0, _PointIcon.getPointIconByType)(point.group.type, point.name, '', true, false);
79
+ var marker = getMarker(point);
80
+ if (marker instanceof _leaflet.default.Marker) {
81
+ marker.setIcon(icon);
82
+ // The use of marker._isInside is to overcome the issue that mouseover is endlessly triggered
83
+ // and we need it onley once
84
+ marker.on('mouseover', function () {
85
+ if (!marker._isInside) {
86
+ marker._isInside = true;
87
+ marker.setIcon(focusedIcon);
88
+ }
89
+ });
90
+ marker.on('mouseout', function () {
91
+ marker._isInside = false;
92
+ marker.setIcon(icon);
93
+ });
94
+ }
95
+ marker.on('click', function () {
96
+ handleMarkerClick(point);
97
+ });
98
+ (_pointsLayerRef$curre2 = pointsLayerRef.current) === null || _pointsLayerRef$curre2 === void 0 ? void 0 : _pointsLayerRef$curre2.addLayer(marker);
99
+ });
100
+ }
101
+ if (pointsLayerRef.current.getLayers().length) {
102
+ map.fitBounds(pointsLayerRef.current.getBounds());
103
+ } else {
104
+ map.setView([32.219157, 34.982481], 12);
105
+ }
106
+ };
107
+ var getMarker = function getMarker(point) {
108
+ if (point.has_device === true || point.group.type === 'Groups::WastewaterTreatmentPlant') {
109
+ return _leaflet.default.marker([point.latitude, point.longitude], {
110
+ kando_object_id: point.id
111
+ });
112
+ } else {
113
+ return _leaflet.default.circleMarker([point.latitude, point.longitude], {
114
+ radius: 4,
115
+ // circle radius in pixels
116
+ color: '#000000',
117
+ // border (stroke) color
118
+ weight: 1,
119
+ // border (stroke) width
120
+ fillColor: '#ffffff',
121
+ // fill color (white)
122
+ fillOpacity: 1,
123
+ // fully opaque
124
+ kando_object_id: point.id
125
+ });
126
+ }
127
+ };
128
+ var addEdges = function addEdges() {
129
+ // console.log('edges', edges);
130
+ if (!map || !edges) {
131
+ return;
132
+ }
133
+ if (edgesLayerRef.current) {
134
+ if (map.hasLayer(edgesLayerRef.current)) {
135
+ map.removeLayer(edgesLayerRef.current);
136
+ }
137
+ }
138
+ edgesLayerRef.current = _leaflet.default.featureGroup();
139
+ edgesLayerRef.current.addTo(map);
140
+ edges.forEach(function (edge) {
141
+ var _edgesLayerRef$curren;
142
+ var sourcePoint = points.find(function (point) {
143
+ return point.id === edge.source_point_id;
144
+ });
145
+ var targetPoint = points.find(function (point) {
146
+ return point.id === edge.target_point_id;
147
+ });
148
+ // console.log('sourcePoint', sourcePoint);
149
+ // console.log('targetPoint', targetPoint);
150
+
151
+ if (!sourcePoint || !targetPoint) {
152
+ return;
153
+ }
154
+ var latlngs = [[sourcePoint === null || sourcePoint === void 0 ? void 0 : sourcePoint.latitude, sourcePoint === null || sourcePoint === void 0 ? void 0 : sourcePoint.longitude], [targetPoint === null || targetPoint === void 0 ? void 0 : targetPoint.latitude, targetPoint === null || targetPoint === void 0 ? void 0 : targetPoint.longitude]];
155
+ var polyline = _leaflet.default.polyline(latlngs, {
156
+ color: 'black',
157
+ weight: 1,
158
+ opacity: 0.5,
159
+ smoothFactor: 1
160
+ });
161
+ (_edgesLayerRef$curren = edgesLayerRef.current) === null || _edgesLayerRef$curren === void 0 ? void 0 : _edgesLayerRef$curren.addLayer(polyline);
162
+ });
163
+ };
164
+ var addAreas = function addAreas() {
165
+ if (!map || !areas) {
166
+ return;
167
+ }
168
+ if (areasLayerRef.current) {
169
+ if (map.hasLayer(areasLayerRef.current)) {
170
+ map.removeLayer(areasLayerRef.current);
171
+ }
172
+ }
173
+ areasLayerRef.current = _leaflet.default.featureGroup();
174
+ areasLayerRef.current.addTo(map);
175
+ areas.forEach(function (area) {
176
+ var _areasLayerRef$curren;
177
+ var polygon = _leaflet.default.polygon(area.shape_data, {
178
+ color: 'black',
179
+ weight: 1,
180
+ opacity: 0.8,
181
+ smoothFactor: 1,
182
+ interactive: false,
183
+ kando_object_id: area.area_id
184
+ });
185
+ polygon.bindTooltip(area.area_name, {
186
+ permanent: true,
187
+ direction: 'center',
188
+ className: 'area-tooltip'
189
+ });
190
+ (_areasLayerRef$curren = areasLayerRef.current) === null || _areasLayerRef$curren === void 0 ? void 0 : _areasLayerRef$curren.addLayer(polygon);
191
+ });
192
+ };
193
+ (0, _react.useEffect)(function () {
194
+ addAreas();
195
+ addMarkers();
196
+ addEdges();
197
+ }, [points, map]);
198
+ return map;
199
+ };
200
+ exports.useMap = useMap;
201
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbGVhZmxldCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX3JlYWN0IiwiX1BvaW50SWNvbiIsIl90aGVtZSIsIl9NYXBVdGlscyIsInVzZU1hcCIsIm1hcFJlZiIsInBvaW50cyIsImVkZ2VzIiwiYXJlYXMiLCJzZWxlY3RlZFBvaW50IiwidXBkYXRlU2VsZWN0ZWRQb2ludCIsIl91c2VTdGF0ZSIsInVzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5MiIsImRlZmF1bHQiLCJtYXAiLCJzZXRNYXAiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsImZvY3VzZWRNYXJrZXIiLCJzZXRGb2N1c2VkTWFya2VyIiwicG9pbnRzTGF5ZXJSZWYiLCJ1c2VSZWYiLCJlZGdlc0xheWVyUmVmIiwiYXJlYXNMYXllclJlZiIsInVzZUVmZmVjdCIsImN1cnJlbnQiLCJtYXBUeXBlcyIsImJhc2VNYXBzIiwibGVhZmxldE1hcCIsIm1hcERlZmF1bHQiLCJzYXRlbGxpdGUiLCJtYXBUZW1wIiwiTCIsInJlbmRlcmVyIiwiY2FudmFzIiwiT2JqZWN0IiwidmFsdWVzIiwiYWRkVG8iLCJjb250cm9sIiwibGF5ZXJzIiwicG9zaXRpb24iLCJvZmYiLCJyZW1vdmUiLCJfcG9pbnRzTGF5ZXJSZWYkY3VycmUiLCJmaXJlIiwiZWFjaExheWVyIiwibWFya2VyIiwib3B0aW9ucyIsImthbmRvX29iamVjdF9pZCIsImlkIiwiaGFuZGxlTWFya2VyQ2xpY2siLCJwb2ludCIsImFkZE1hcmtlcnMiLCJoYXNMYXllciIsInJlbW92ZUxheWVyIiwiZmVhdHVyZUdyb3VwIiwiZ2V0TGF5ZXJzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9wb2ludHNMYXllclJlZiRjdXJyZTIiLCJpY29uIiwiZ2V0UG9pbnRJY29uQnlUeXBlIiwiZ3JvdXAiLCJ0eXBlIiwibmFtZSIsImZvY3VzZWRJY29uIiwiZ2V0TWFya2VyIiwiTWFya2VyIiwic2V0SWNvbiIsIm9uIiwiX2lzSW5zaWRlIiwiYWRkTGF5ZXIiLCJmaXRCb3VuZHMiLCJnZXRCb3VuZHMiLCJzZXRWaWV3IiwiaGFzX2RldmljZSIsImxhdGl0dWRlIiwibG9uZ2l0dWRlIiwiY2lyY2xlTWFya2VyIiwicmFkaXVzIiwiY29sb3IiLCJ3ZWlnaHQiLCJmaWxsQ29sb3IiLCJmaWxsT3BhY2l0eSIsImFkZEVkZ2VzIiwiZWRnZSIsIl9lZGdlc0xheWVyUmVmJGN1cnJlbiIsInNvdXJjZVBvaW50IiwiZmluZCIsInNvdXJjZV9wb2ludF9pZCIsInRhcmdldFBvaW50IiwidGFyZ2V0X3BvaW50X2lkIiwibGF0bG5ncyIsInBvbHlsaW5lIiwib3BhY2l0eSIsInNtb290aEZhY3RvciIsImFkZEFyZWFzIiwiYXJlYSIsIl9hcmVhc0xheWVyUmVmJGN1cnJlbiIsInBvbHlnb24iLCJzaGFwZV9kYXRhIiwiaW50ZXJhY3RpdmUiLCJhcmVhX2lkIiwiYmluZFRvb2x0aXAiLCJhcmVhX25hbWUiLCJwZXJtYW5lbnQiLCJkaXJlY3Rpb24iLCJjbGFzc05hbWUiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3BhZ2VzL09wZXJhdGlvbnNQYWdlL01hcC91c2VNYXAudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBMLCB7IE1hcmtlciB9IGZyb20gJ2xlYWZsZXQnO1xuaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGdldFBvaW50SWNvbkJ5VHlwZSB9IGZyb20gJ3NyYy9XaWRnZXRzL01hcC9wb2ludHMvUG9pbnRJY29uJztcbmltcG9ydCB7IGxlYWZsZXRNYXAgfSBmcm9tICdzcmMvc3R5bGVzL3RoZW1lL3RoZW1lJztcbmltcG9ydCB7IGJhc2VNYXBzIH0gZnJvbSAnc3JjL1dpZGdldHMvTWFwL01hcFV0aWxzJztcbmltcG9ydCB7IElQb2ludCB9IGZyb20gJ3NyYy9zdG9yZS9wb2ludHMvbW9kZWxzL0lQb2ludCc7XG5pbXBvcnQgeyBJRWRnZSB9IGZyb20gJ3NyYy9zdG9yZS9lZGdlcy9tb2RlbHMvSUVkZ2UnO1xuaW1wb3J0IHsgSUFyZWEgfSBmcm9tICdzcmMvc3RvcmUvYXJlYXMvbW9kZWxzL0lBcmVhJztcblxuZXhwb3J0IGNvbnN0IHVzZU1hcCA9IChcbiAgbWFwUmVmOiBSZWFjdC5SZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQ+LFxuICBwb2ludHM6IElQb2ludFtdLFxuICBlZGdlczogSUVkZ2VbXSxcbiAgYXJlYXM6IElBcmVhW10sXG4gIHNlbGVjdGVkUG9pbnQ6IElQb2ludCB8IG51bGwsXG4gIHVwZGF0ZVNlbGVjdGVkUG9pbnQ6IChwb2ludDogSVBvaW50KSA9PiB2b2lkLFxuKTogTC5NYXAgfCB1bmRlZmluZWQgPT4ge1xuICBjb25zdCBbbWFwLCBzZXRNYXBdID0gdXNlU3RhdGU8TC5NYXA+KCk7XG4gIGNvbnN0IFtmb2N1c2VkTWFya2VyLCBzZXRGb2N1c2VkTWFya2VyXSA9IHVzZVN0YXRlPE1hcmtlciB8IG51bGw+KG51bGwpO1xuICBjb25zdCBwb2ludHNMYXllclJlZiA9IHVzZVJlZjxMLkZlYXR1cmVHcm91cD4oKTtcbiAgY29uc3QgZWRnZXNMYXllclJlZiA9IHVzZVJlZjxMLkZlYXR1cmVHcm91cD4oKTtcbiAgY29uc3QgYXJlYXNMYXllclJlZiA9IHVzZVJlZjxMLkZlYXR1cmVHcm91cD4oKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghbWFwUmVmLmN1cnJlbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBtYXBUeXBlcyA9IGJhc2VNYXBzKGxlYWZsZXRNYXAubWFwRGVmYXVsdCwgbGVhZmxldE1hcC5zYXRlbGxpdGUpO1xuICAgIGNvbnN0IG1hcFRlbXAgPSBMLm1hcChtYXBSZWYuY3VycmVudCwgeyByZW5kZXJlcjogTC5jYW52YXMoKSB9KTtcblxuICAgIE9iamVjdC52YWx1ZXMobWFwVHlwZXMpWzBdLmFkZFRvKG1hcFRlbXApO1xuXG4gICAgTC5jb250cm9sLmxheWVycyhtYXBUeXBlcywge30sIHsgcG9zaXRpb246ICdib3R0b21yaWdodCcgfSkuYWRkVG8obWFwVGVtcCk7XG5cbiAgICBzZXRNYXAobWFwVGVtcCk7XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgaWYgKCFtYXBUZW1wKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIG1hcFRlbXAub2ZmKCk7XG4gICAgICBtYXBUZW1wLnJlbW92ZSgpO1xuICAgIH07XG4gIH0sIFtdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChmb2N1c2VkTWFya2VyKSB7XG4gICAgICBmb2N1c2VkTWFya2VyLmZpcmUoJ21vdXNlb3V0Jyk7XG4gICAgfVxuXG4gICAgcG9pbnRzTGF5ZXJSZWYuY3VycmVudD8uZWFjaExheWVyKChtYXJrZXIpID0+IHtcbiAgICAgIGlmIChcbiAgICAgICAgc2VsZWN0ZWRQb2ludCAmJlxuICAgICAgICBtYXJrZXIub3B0aW9ucy5rYW5kb19vYmplY3RfaWQgPT09IHNlbGVjdGVkUG9pbnQ/LmlkXG4gICAgICApIHtcbiAgICAgICAgbWFya2VyLmZpcmUoJ21vdXNlb3ZlcicpO1xuICAgICAgICBzZXRGb2N1c2VkTWFya2VyKG1hcmtlcik7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSwgW3NlbGVjdGVkUG9pbnRdKTtcblxuICBjb25zdCBoYW5kbGVNYXJrZXJDbGljayA9IChwb2ludCkgPT4ge1xuICAgIHVwZGF0ZVNlbGVjdGVkUG9pbnQocG9pbnQpO1xuICB9O1xuXG4gIGNvbnN0IGFkZE1hcmtlcnMgPSAoKSA9PiB7XG4gICAgaWYgKCFtYXAgfHwgIXBvaW50cykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChwb2ludHNMYXllclJlZi5jdXJyZW50KSB7XG4gICAgICBpZiAobWFwLmhhc0xheWVyKHBvaW50c0xheWVyUmVmLmN1cnJlbnQpKSB7XG4gICAgICAgIG1hcC5yZW1vdmVMYXllcihwb2ludHNMYXllclJlZi5jdXJyZW50KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBwb2ludHNMYXllclJlZi5jdXJyZW50ID0gTC5mZWF0dXJlR3JvdXAoKTtcbiAgICBwb2ludHNMYXllclJlZi5jdXJyZW50LmFkZFRvKG1hcCk7XG5cbiAgICBpZiAoIXBvaW50c0xheWVyUmVmLmN1cnJlbnQuZ2V0TGF5ZXJzKCkubGVuZ3RoKSB7XG4gICAgICBwb2ludHMuZm9yRWFjaCgocG9pbnQpID0+IHtcbiAgICAgICAgY29uc3QgaWNvbiA9IGdldFBvaW50SWNvbkJ5VHlwZShcbiAgICAgICAgICBwb2ludC5ncm91cC50eXBlLFxuICAgICAgICAgIHBvaW50Lm5hbWUsXG4gICAgICAgICAgJycsXG4gICAgICAgICAgZmFsc2UsXG4gICAgICAgICAgdHJ1ZSxcbiAgICAgICAgKTtcblxuICAgICAgICBjb25zdCBmb2N1c2VkSWNvbiA9IGdldFBvaW50SWNvbkJ5VHlwZShcbiAgICAgICAgICBwb2ludC5ncm91cC50eXBlLFxuICAgICAgICAgIHBvaW50Lm5hbWUsXG4gICAgICAgICAgJycsXG4gICAgICAgICAgdHJ1ZSxcbiAgICAgICAgICBmYWxzZSxcbiAgICAgICAgKTtcblxuICAgICAgICBsZXQgbWFya2VyID0gZ2V0TWFya2VyKHBvaW50KTtcblxuICAgICAgICBpZiAobWFya2VyIGluc3RhbmNlb2YgTC5NYXJrZXIpIHtcbiAgICAgICAgICBtYXJrZXIuc2V0SWNvbihpY29uKTtcbiAgICAgICAgICAvLyBUaGUgdXNlIG9mIG1hcmtlci5faXNJbnNpZGUgaXMgdG8gb3ZlcmNvbWUgdGhlIGlzc3VlIHRoYXQgbW91c2VvdmVyIGlzIGVuZGxlc3NseSB0cmlnZ2VyZWRcbiAgICAgICAgICAvLyBhbmQgd2UgbmVlZCBpdCBvbmxleSBvbmNlXG4gICAgICAgICAgbWFya2VyLm9uKCdtb3VzZW92ZXInLCAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoIW1hcmtlci5faXNJbnNpZGUpIHtcbiAgICAgICAgICAgICAgbWFya2VyLl9pc0luc2lkZSA9IHRydWU7XG4gICAgICAgICAgICAgIG1hcmtlci5zZXRJY29uKGZvY3VzZWRJY29uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgICBtYXJrZXIub24oJ21vdXNlb3V0JywgKCkgPT4ge1xuICAgICAgICAgICAgbWFya2VyLl9pc0luc2lkZSA9IGZhbHNlO1xuICAgICAgICAgICAgbWFya2VyLnNldEljb24oaWNvbik7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBtYXJrZXIub24oJ2NsaWNrJywgKCkgPT4ge1xuICAgICAgICAgIGhhbmRsZU1hcmtlckNsaWNrKHBvaW50KTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcG9pbnRzTGF5ZXJSZWYuY3VycmVudD8uYWRkTGF5ZXIobWFya2VyKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmIChwb2ludHNMYXllclJlZi5jdXJyZW50LmdldExheWVycygpLmxlbmd0aCkge1xuICAgICAgbWFwLmZpdEJvdW5kcyhwb2ludHNMYXllclJlZi5jdXJyZW50LmdldEJvdW5kcygpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgbWFwLnNldFZpZXcoWzMyLjIxOTE1NywgMzQuOTgyNDgxXSwgMTIpO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBnZXRNYXJrZXIgPSAocG9pbnQ6IElQb2ludCkgPT4ge1xuICAgIGlmIChcbiAgICAgIHBvaW50Lmhhc19kZXZpY2UgPT09IHRydWUgfHxcbiAgICAgIHBvaW50Lmdyb3VwLnR5cGUgPT09ICdHcm91cHM6Oldhc3Rld2F0ZXJUcmVhdG1lbnRQbGFudCdcbiAgICApIHtcbiAgICAgIHJldHVybiBMLm1hcmtlcihbcG9pbnQubGF0aXR1ZGUsIHBvaW50LmxvbmdpdHVkZV0sIHtcbiAgICAgICAga2FuZG9fb2JqZWN0X2lkOiBwb2ludC5pZCxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gTC5jaXJjbGVNYXJrZXIoW3BvaW50LmxhdGl0dWRlLCBwb2ludC5sb25naXR1ZGVdLCB7XG4gICAgICAgIHJhZGl1czogNCwgLy8gY2lyY2xlIHJhZGl1cyBpbiBwaXhlbHNcbiAgICAgICAgY29sb3I6ICcjMDAwMDAwJywgLy8gYm9yZGVyIChzdHJva2UpIGNvbG9yXG4gICAgICAgIHdlaWdodDogMSwgLy8gYm9yZGVyIChzdHJva2UpIHdpZHRoXG4gICAgICAgIGZpbGxDb2xvcjogJyNmZmZmZmYnLCAvLyBmaWxsIGNvbG9yICh3aGl0ZSlcbiAgICAgICAgZmlsbE9wYWNpdHk6IDEsIC8vIGZ1bGx5IG9wYXF1ZVxuICAgICAgICBrYW5kb19vYmplY3RfaWQ6IHBvaW50LmlkLFxuICAgICAgfSk7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IGFkZEVkZ2VzID0gKCkgPT4ge1xuICAgIC8vIGNvbnNvbGUubG9nKCdlZGdlcycsIGVkZ2VzKTtcbiAgICBpZiAoIW1hcCB8fCAhZWRnZXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoZWRnZXNMYXllclJlZi5jdXJyZW50KSB7XG4gICAgICBpZiAobWFwLmhhc0xheWVyKGVkZ2VzTGF5ZXJSZWYuY3VycmVudCkpIHtcbiAgICAgICAgbWFwLnJlbW92ZUxheWVyKGVkZ2VzTGF5ZXJSZWYuY3VycmVudCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgZWRnZXNMYXllclJlZi5jdXJyZW50ID0gTC5mZWF0dXJlR3JvdXAoKTtcbiAgICBlZGdlc0xheWVyUmVmLmN1cnJlbnQuYWRkVG8obWFwKTtcblxuICAgIGVkZ2VzLmZvckVhY2goKGVkZ2UpID0+IHtcbiAgICAgIGNvbnN0IHNvdXJjZVBvaW50ID0gcG9pbnRzLmZpbmQoXG4gICAgICAgIChwb2ludCkgPT4gcG9pbnQuaWQgPT09IGVkZ2Uuc291cmNlX3BvaW50X2lkLFxuICAgICAgKTtcbiAgICAgIGNvbnN0IHRhcmdldFBvaW50ID0gcG9pbnRzLmZpbmQoXG4gICAgICAgIChwb2ludCkgPT4gcG9pbnQuaWQgPT09IGVkZ2UudGFyZ2V0X3BvaW50X2lkLFxuICAgICAgKTtcbiAgICAgIC8vIGNvbnNvbGUubG9nKCdzb3VyY2VQb2ludCcsIHNvdXJjZVBvaW50KTtcbiAgICAgIC8vIGNvbnNvbGUubG9nKCd0YXJnZXRQb2ludCcsIHRhcmdldFBvaW50KTtcblxuICAgICAgaWYgKCFzb3VyY2VQb2ludCB8fCAhdGFyZ2V0UG9pbnQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBsYXRsbmdzID0gW1xuICAgICAgICBbc291cmNlUG9pbnQ/LmxhdGl0dWRlLCBzb3VyY2VQb2ludD8ubG9uZ2l0dWRlXSxcbiAgICAgICAgW3RhcmdldFBvaW50Py5sYXRpdHVkZSwgdGFyZ2V0UG9pbnQ/LmxvbmdpdHVkZV0sXG4gICAgICBdO1xuXG4gICAgICBjb25zdCBwb2x5bGluZSA9IEwucG9seWxpbmUobGF0bG5ncywge1xuICAgICAgICBjb2xvcjogJ2JsYWNrJyxcbiAgICAgICAgd2VpZ2h0OiAxLFxuICAgICAgICBvcGFjaXR5OiAwLjUsXG4gICAgICAgIHNtb290aEZhY3RvcjogMSxcbiAgICAgIH0pO1xuXG4gICAgICBlZGdlc0xheWVyUmVmLmN1cnJlbnQ/LmFkZExheWVyKHBvbHlsaW5lKTtcbiAgICB9KTtcbiAgfTtcblxuICBjb25zdCBhZGRBcmVhcyA9ICgpID0+IHtcbiAgICBpZiAoIW1hcCB8fCAhYXJlYXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoYXJlYXNMYXllclJlZi5jdXJyZW50KSB7XG4gICAgICBpZiAobWFwLmhhc0xheWVyKGFyZWFzTGF5ZXJSZWYuY3VycmVudCkpIHtcbiAgICAgICAgbWFwLnJlbW92ZUxheWVyKGFyZWFzTGF5ZXJSZWYuY3VycmVudCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgYXJlYXNMYXllclJlZi5jdXJyZW50ID0gTC5mZWF0dXJlR3JvdXAoKTtcbiAgICBhcmVhc0xheWVyUmVmLmN1cnJlbnQuYWRkVG8obWFwKTtcblxuICAgIGFyZWFzLmZvckVhY2goKGFyZWEpID0+IHtcbiAgICAgIGNvbnN0IHBvbHlnb24gPSBMLnBvbHlnb24oYXJlYS5zaGFwZV9kYXRhLCB7XG4gICAgICAgIGNvbG9yOiAnYmxhY2snLFxuICAgICAgICB3ZWlnaHQ6IDEsXG4gICAgICAgIG9wYWNpdHk6IDAuOCxcbiAgICAgICAgc21vb3RoRmFjdG9yOiAxLFxuICAgICAgICBpbnRlcmFjdGl2ZTogZmFsc2UsXG4gICAgICAgIGthbmRvX29iamVjdF9pZDogYXJlYS5hcmVhX2lkLFxuICAgICAgfSk7XG5cbiAgICAgIHBvbHlnb24uYmluZFRvb2x0aXAoYXJlYS5hcmVhX25hbWUsIHtcbiAgICAgICAgcGVybWFuZW50OiB0cnVlLFxuICAgICAgICBkaXJlY3Rpb246ICdjZW50ZXInLFxuICAgICAgICBjbGFzc05hbWU6ICdhcmVhLXRvb2x0aXAnLFxuICAgICAgfSk7XG5cbiAgICAgIGFyZWFzTGF5ZXJSZWYuY3VycmVudD8uYWRkTGF5ZXIocG9seWdvbik7XG4gICAgfSk7XG4gIH07XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBhZGRBcmVhcygpO1xuICAgIGFkZE1hcmtlcnMoKTtcbiAgICBhZGRFZGdlcygpO1xuICB9LCBbcG9pbnRzLCBtYXBdKTtcblxuICByZXR1cm4gbWFwO1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQSxJQUFBQSxRQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxNQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxVQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxNQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxTQUFBLEdBQUFKLE9BQUE7QUFLTyxJQUFNSyxNQUFNLEdBQUcsU0FBVEEsTUFBTUEsQ0FDakJDLE1BQXVDLEVBQ3ZDQyxNQUFnQixFQUNoQkMsS0FBYyxFQUNkQyxLQUFjLEVBQ2RDLGFBQTRCLEVBQzVCQyxtQkFBNEMsRUFDdEI7RUFDdEIsSUFBQUMs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
@@ -14,9 +14,10 @@ var _reactBootstrap = require("react-bootstrap");
14
14
  var _actions = require("store/context/actions");
15
15
  var _actions2 = require("store/points/actions");
16
16
  var _actions3 = require("store/edges/actions");
17
- var _Map = require("./Map");
17
+ var _Map = require("./Map/Map");
18
18
  var _LeftPanel = _interopRequireDefault(require("./LeftPanel"));
19
19
  var _RightPanel = _interopRequireDefault(require("./RightPanel"));
20
+ var _actions4 = require("store/areas/actions");
20
21
  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
22
  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; }
22
23
  var OperationsPage = function OperationsPage() {
@@ -27,6 +28,9 @@ var OperationsPage = function OperationsPage() {
27
28
  var edges_data = (0, _reactRedux.useSelector)(function (state) {
28
29
  return state.edges_data;
29
30
  });
31
+ var areas_data = (0, _reactRedux.useSelector)(function (state) {
32
+ return state.areas_data;
33
+ });
30
34
  var global_data = (0, _reactRedux.useSelector)(function (state) {
31
35
  return state.global_data;
32
36
  });
@@ -54,6 +58,7 @@ var OperationsPage = function OperationsPage() {
54
58
  if (global_data.waterAuthorityId) {
55
59
  dispatch((0, _actions2.fetchPoints)(global_data.waterAuthorityId));
56
60
  dispatch((0, _actions3.fetchEdges)(global_data.waterAuthorityId));
61
+ dispatch((0, _actions4.fetchAreas)(global_data.waterAuthorityId));
57
62
  }
58
63
  }, [global_data.waterAuthorityId]);
59
64
  var monitoredPoints = (0, _react.useMemo)(function () {
@@ -93,9 +98,10 @@ var OperationsPage = function OperationsPage() {
93
98
  }, showLeftPanel), /*#__PURE__*/_react.default.createElement(_reactBootstrap.Col, {
94
99
  className: "map-column",
95
100
  sm: 9
96
- }, /*#__PURE__*/_react.default.createElement(_Map.Map, {
101
+ }, !edges_data.isFetching && !areas_data.isFetching && /*#__PURE__*/_react.default.createElement(_Map.Map, {
97
102
  points: points,
98
103
  edges: edges_data.items,
104
+ areas: areas_data.newAreas,
99
105
  selectedPoint: selectedPoint,
100
106
  updateSelectedPoint: handleSelectPoint
101
107
  }), /*#__PURE__*/_react.default.createElement(_RightPanel.default, {
@@ -106,4 +112,4 @@ var OperationsPage = function OperationsPage() {
106
112
  };
107
113
  var _default = OperationsPage;
108
114
  exports.default = _default;
109
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJyZXF1aXJlIiwiX3JlYWN0IiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfcmVhY3RSZWR1eCIsIl9yZWFjdEJvb3RzdHJhcCIsIl9hY3Rpb25zIiwiX2FjdGlvbnMyIiwiX2FjdGlvbnMzIiwiX01hcCIsIl9MZWZ0UGFuZWwiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX1JpZ2h0UGFuZWwiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJub2RlSW50ZXJvcCIsIldlYWtNYXAiLCJjYWNoZUJhYmVsSW50ZXJvcCIsImNhY2hlTm9kZUludGVyb3AiLCJvYmoiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImRlZmF1bHQiLCJjYWNoZSIsImhhcyIsImdldCIsIm5ld09iaiIsImhhc1Byb3BlcnR5RGVzY3JpcHRvciIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwia2V5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiZGVzYyIsInNldCIsIk9wZXJhdGlvbnNQYWdlIiwiZGlzcGF0Y2giLCJ1c2VEaXNwYXRjaCIsInBvaW50c19kYXRhIiwidXNlU2VsZWN0b3IiLCJzdGF0ZSIsImVkZ2VzX2RhdGEiLCJnbG9iYWxfZGF0YSIsIl91c2VTdGF0ZSIsInVzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5MiIsInNob3dSaWdodFBhbmVsIiwic2V0U2hvd1JpZ2h0UGFuZWwiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsInNlbGVjdGVkUG9pbnQiLCJzZXRTZWxlY3RlZFBvaW50IiwiaGFuZGxlU2VsZWN0UG9pbnQiLCJuZXdQb2ludCIsImlkIiwidXNlRWZmZWN0IiwidXBkYXRlTmF2Q29udGV4dCIsIm5hbWUiLCJ3YXRlckF1dGhvcml0eUlkIiwiZmV0Y2hQb2ludHMiLCJmZXRjaEVkZ2VzIiwibW9uaXRvcmVkUG9pbnRzIiwidXNlTWVtbyIsIl9wb2ludHNfZGF0YSRpdGVtcyIsIml0ZW1zIiwiZmlsdGVyIiwicG9pbnQiLCJoYXNfZGV2aWNlIiwicG9pbnRzIiwiX3BvaW50c19kYXRhJGl0ZW1zMiIsImxhdGl0dWRlIiwibG9uZ2l0dWRlIiwic2hvd0xlZnRQYW5lbCIsImNyZWF0ZUVsZW1lbnQiLCJvblJpZ2h0UGFuZWxDbG9zZSIsIkNvbnRhaW5lciIsImZsdWlkIiwiY2xhc3NOYW1lIiwiUm93IiwiQ29sIiwic20iLCJNYXAiLCJlZGdlcyIsInVwZGF0ZVNlbGVjdGVkUG9pbnQiLCJjb25jYXQiLCJvbkNsb3NlIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3BhZ2VzL09wZXJhdGlvbnNQYWdlL09wZXJhdGlvbnNQYWdlLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJy4vT3BlcmF0aW9uc1BhZ2Uuc2Nzcyc7XG5pbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VNZW1vLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZURpc3BhdGNoLCB1c2VTZWxlY3RvciB9IGZyb20gJ3JlYWN0LXJlZHV4JztcbmltcG9ydCB7IENvbCwgQ29udGFpbmVyLCBSb3cgfSBmcm9tICdyZWFjdC1ib290c3RyYXAnO1xuaW1wb3J0IHsgdXBkYXRlTmF2Q29udGV4dCB9IGZyb20gJ3NyYy9zdG9yZS9jb250ZXh0L2FjdGlvbnMnO1xuaW1wb3J0IHsgZmV0Y2hQb2ludHMgfSBmcm9tICdzcmMvc3RvcmUvcG9pbnRzL2FjdGlvbnMnO1xuaW1wb3J0IHsgZmV0Y2hFZGdlcyB9IGZyb20gJ3NyYy9zdG9yZS9lZGdlcy9hY3Rpb25zJztcbmltcG9ydCB7IElQb2ludCB9IGZyb20gJ3NyYy9zdG9yZS9wb2ludHMvbW9kZWxzL0lQb2ludCc7XG5pbXBvcnQgeyBNYXAgfSBmcm9tICcuL01hcCc7XG5pbXBvcnQgTGVmdFBhbmVsIGZyb20gJy4vTGVmdFBhbmVsJztcbmltcG9ydCBSaWdodFBhbmVsIGZyb20gJy4vUmlnaHRQYW5lbCc7XG5cbmNvbnN0IE9wZXJhdGlvbnNQYWdlOiBSZWFjdC5GQyA9ICgpID0+IHtcbiAgY29uc3QgZGlzcGF0Y2ggPSB1c2VEaXNwYXRjaCgpO1xuICBjb25zdCBwb2ludHNfZGF0YSA9IHVzZVNlbGVjdG9yKChzdGF0ZSkgPT4gc3RhdGUucG9pbnRzX2RhdGEpO1xuICBjb25zdCBlZGdlc19kYXRhID0gdXNlU2VsZWN0b3IoKHN0YXRlKSA9PiBzdGF0ZS5lZGdlc19kYXRhKTtcbiAgY29uc3QgZ2xvYmFsX2RhdGEgPSB1c2VTZWxlY3Rvcigoc3RhdGUpID0+IHN0YXRlLmdsb2JhbF9kYXRhKTtcbiAgY29uc3QgW3Nob3dSaWdodFBhbmVsLCBzZXRTaG93UmlnaHRQYW5lbF0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IFtzZWxlY3RlZFBvaW50LCBzZXRTZWxlY3RlZFBvaW50XSA9IHVzZVN0YXRlPElQb2ludCB8IG51bGw+KG51bGwpO1xuXG4gIGNvbnN0IGhhbmRsZVNlbGVjdFBvaW50ID0gKG5ld1BvaW50OiBJUG9pbnQpID0+IHtcbiAgICBpZiAoc2VsZWN0ZWRQb2ludCAmJiBuZXdQb2ludC5pZCA9PT0gc2VsZWN0ZWRQb2ludC5pZCkge1xuICAgICAgc2V0U2VsZWN0ZWRQb2ludChudWxsKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc2V0U2VsZWN0ZWRQb2ludChuZXdQb2ludCk7XG4gICAgfVxuICB9O1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgZGlzcGF0Y2godXBkYXRlTmF2Q29udGV4dCh7IG5hbWU6ICdvcGVyYXRpb25zJyB9KSk7XG4gIH0sIFtdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChnbG9iYWxfZGF0YS53YXRlckF1dGhvcml0eUlkKSB7XG4gICAgICBkaXNwYXRjaChmZXRjaFBvaW50cyhnbG9iYWxfZGF0YS53YXRlckF1dGhvcml0eUlkKSk7XG4gICAgICBkaXNwYXRjaChmZXRjaEVkZ2VzKGdsb2JhbF9kYXRhLndhdGVyQXV0aG9yaXR5SWQpKTtcbiAgICB9XG4gIH0sIFtnbG9iYWxfZGF0YS53YXRlckF1dGhvcml0eUlkXSk7XG5cbiAgY29uc3QgbW9uaXRvcmVkUG9pbnRzID0gdXNlTWVtbygoKSA9PiB7XG4gICAgcmV0dXJuIHBvaW50c19kYXRhLml0ZW1zPy5maWx0ZXIoKHBvaW50OiBJUG9pbnQpID0+IHBvaW50Lmhhc19kZXZpY2UpIHx8IFtdO1xuICB9LCBbcG9pbnRzX2RhdGEuaXRlbXNdKTtcblxuICBjb25zdCBwb2ludHMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICByZXR1cm4gKFxuICAgICAgcG9pbnRzX2RhdGEuaXRlbXM/LmZpbHRlcihcbiAgICAgICAgKHBvaW50OiBJUG9pbnQpID0+IHBvaW50LmxhdGl0dWRlICYmIHBvaW50LmxvbmdpdHVkZSxcbiAgICAgICkgfHwgW11cbiAgICApO1xuICB9LCBbcG9pbnRzX2RhdGEuaXRlbXNdKTtcblxuICBjb25zdCBzaG93TGVmdFBhbmVsID0gdXNlTWVtbygoKSA9PiB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxMZWZ0UGFuZWxcbiAgICAgICAgcG9pbnRzPXttb25pdG9yZWRQb2ludHN9XG4gICAgICAgIHNldFNlbGVjdGVkUG9pbnQ9e2hhbmRsZVNlbGVjdFBvaW50fVxuICAgICAgLz5cbiAgICApO1xuICB9LCBbbW9uaXRvcmVkUG9pbnRzLCBzZWxlY3RlZFBvaW50XSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoc2VsZWN0ZWRQb2ludCkge1xuICAgICAgc2V0U2hvd1JpZ2h0UGFuZWwodHJ1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNldFNob3dSaWdodFBhbmVsKGZhbHNlKTtcbiAgICB9XG4gIH0sIFtzZWxlY3RlZFBvaW50XSk7XG5cbiAgY29uc3Qgb25SaWdodFBhbmVsQ2xvc2UgPSAoKSA9PiB7XG4gICAgc2V0U2VsZWN0ZWRQb2ludChudWxsKTtcbiAgfTtcblxuICByZXR1cm4gKFxuICAgIDxDb250YWluZXIgZmx1aWQgY2xhc3NOYW1lPVwidmgtOTAgcC0wXCI+XG4gICAgICA8Um93PlxuICAgICAgICA8Q29sIHNtPXszfSBjbGFzc05hbWU9XCJsZWZ0LXBhbmVsXCI+XG4gICAgICAgICAge3Nob3dMZWZ0UGFuZWx9XG4gICAgICAgIDwvQ29sPlxuICAgICAgICA8Q29sIGNsYXNzTmFtZT1cIm1hcC1jb2x1bW5cIiBzbT17OX0+XG4gICAgICAgICAgPE1hcFxuICAgICAgICAgICAgcG9pbnRzPXtwb2ludHN9XG4gICAgICAgICAgICBlZGdlcz17ZWRnZXNfZGF0YS5pdGVtc31cbiAgICAgICAgICAgIHNlbGVjdGVkUG9pbnQ9e3NlbGVjdGVkUG9pbnR9XG4gICAgICAgICAgICB1cGRhdGVTZWxlY3RlZFBvaW50PXtoYW5kbGVTZWxlY3RQb2ludH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxSaWdodFBhbmVsXG4gICAgICAgICAgICBjbGFzc05hbWU9e2ByaWdodC1wYW5lbCAke3Nob3dSaWdodFBhbmVsID8gJ29wZW4nIDogJyd9YH1cbiAgICAgICAgICAgIHBvaW50PXtzZWxlY3RlZFBvaW50fVxuICAgICAgICAgICAgb25DbG9zZT17b25SaWdodFBhbmVsQ2xvc2V9XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9Db2w+XG4gICAgICA8L1Jvdz5cbiAgICA8L0NvbnRhaW5lcj5cbiAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IE9wZXJhdGlvbnNQYWdlO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQUEsT0FBQTtBQUNBLElBQUFDLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFHLFdBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLGVBQUEsR0FBQUosT0FBQTtBQUNBLElBQUFLLFFBQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLFNBQUEsR0FBQU4sT0FBQTtBQUNBLElBQUFPLFNBQUEsR0FBQVAsT0FBQTtBQUVBLElBQUFRLElBQUEsR0FBQVIsT0FBQTtBQUNBLElBQUFTLFVBQUEsR0FBQUMsc0JB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
115
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJyZXF1aXJlIiwiX3JlYWN0IiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfcmVhY3RSZWR1eCIsIl9yZWFjdEJvb3RzdHJhcCIsIl9hY3Rpb25zIiwiX2FjdGlvbnMyIiwiX2FjdGlvbnMzIiwiX01hcCIsIl9MZWZ0UGFuZWwiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX1JpZ2h0UGFuZWwiLCJfYWN0aW9uczQiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJub2RlSW50ZXJvcCIsIldlYWtNYXAiLCJjYWNoZUJhYmVsSW50ZXJvcCIsImNhY2hlTm9kZUludGVyb3AiLCJvYmoiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImRlZmF1bHQiLCJjYWNoZSIsImhhcyIsImdldCIsIm5ld09iaiIsImhhc1Byb3BlcnR5RGVzY3JpcHRvciIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwia2V5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiZGVzYyIsInNldCIsIk9wZXJhdGlvbnNQYWdlIiwiZGlzcGF0Y2giLCJ1c2VEaXNwYXRjaCIsInBvaW50c19kYXRhIiwidXNlU2VsZWN0b3IiLCJzdGF0ZSIsImVkZ2VzX2RhdGEiLCJhcmVhc19kYXRhIiwiZ2xvYmFsX2RhdGEiLCJfdXNlU3RhdGUiLCJ1c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheTIiLCJzaG93UmlnaHRQYW5lbCIsInNldFNob3dSaWdodFBhbmVsIiwiX3VzZVN0YXRlMyIsIl91c2VTdGF0ZTQiLCJzZWxlY3RlZFBvaW50Iiwic2V0U2VsZWN0ZWRQb2ludCIsImhhbmRsZVNlbGVjdFBvaW50IiwibmV3UG9pbnQiLCJpZCIsInVzZUVmZmVjdCIsInVwZGF0ZU5hdkNvbnRleHQiLCJuYW1lIiwid2F0ZXJBdXRob3JpdHlJZCIsImZldGNoUG9pbnRzIiwiZmV0Y2hFZGdlcyIsImZldGNoQXJlYXMiLCJtb25pdG9yZWRQb2ludHMiLCJ1c2VNZW1vIiwiX3BvaW50c19kYXRhJGl0ZW1zIiwiaXRlbXMiLCJmaWx0ZXIiLCJwb2ludCIsImhhc19kZXZpY2UiLCJwb2ludHMiLCJfcG9pbnRzX2RhdGEkaXRlbXMyIiwibGF0aXR1ZGUiLCJsb25naXR1ZGUiLCJzaG93TGVmdFBhbmVsIiwiY3JlYXRlRWxlbWVudCIsIm9uUmlnaHRQYW5lbENsb3NlIiwiQ29udGFpbmVyIiwiZmx1aWQiLCJjbGFzc05hbWUiLCJSb3ciLCJDb2wiLCJzbSIsImlzRmV0Y2hpbmciLCJNYXAiLCJlZGdlcyIsImFyZWFzIiwibmV3QXJlYXMiLCJ1cGRhdGVTZWxlY3RlZFBvaW50IiwiY29uY2F0Iiwib25DbG9zZSIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wYWdlcy9PcGVyYXRpb25zUGFnZS9PcGVyYXRpb25zUGFnZS50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICcuL09wZXJhdGlvbnNQYWdlLnNjc3MnO1xuaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlTWVtbywgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VEaXNwYXRjaCwgdXNlU2VsZWN0b3IgfSBmcm9tICdyZWFjdC1yZWR1eCc7XG5pbXBvcnQgeyBDb2wsIENvbnRhaW5lciwgUm93IH0gZnJvbSAncmVhY3QtYm9vdHN0cmFwJztcbmltcG9ydCB7IHVwZGF0ZU5hdkNvbnRleHQgfSBmcm9tICdzcmMvc3RvcmUvY29udGV4dC9hY3Rpb25zJztcbmltcG9ydCB7IGZldGNoUG9pbnRzIH0gZnJvbSAnc3JjL3N0b3JlL3BvaW50cy9hY3Rpb25zJztcbmltcG9ydCB7IGZldGNoRWRnZXMgfSBmcm9tICdzcmMvc3RvcmUvZWRnZXMvYWN0aW9ucyc7XG5pbXBvcnQgeyBJUG9pbnQgfSBmcm9tICdzcmMvc3RvcmUvcG9pbnRzL21vZGVscy9JUG9pbnQnO1xuaW1wb3J0IHsgTWFwIH0gZnJvbSAnLi9NYXAvTWFwJztcbmltcG9ydCBMZWZ0UGFuZWwgZnJvbSAnLi9MZWZ0UGFuZWwnO1xuaW1wb3J0IFJpZ2h0UGFuZWwgZnJvbSAnLi9SaWdodFBhbmVsJztcbmltcG9ydCB7IGZldGNoQXJlYXMgfSBmcm9tICdzcmMvc3RvcmUvYXJlYXMvYWN0aW9ucyc7XG5cbmNvbnN0IE9wZXJhdGlvbnNQYWdlOiBSZWFjdC5GQyA9ICgpID0+IHtcbiAgY29uc3QgZGlzcGF0Y2ggPSB1c2VEaXNwYXRjaCgpO1xuICBjb25zdCBwb2ludHNfZGF0YSA9IHVzZVNlbGVjdG9yKChzdGF0ZSkgPT4gc3RhdGUucG9pbnRzX2RhdGEpO1xuICBjb25zdCBlZGdlc19kYXRhID0gdXNlU2VsZWN0b3IoKHN0YXRlKSA9PiBzdGF0ZS5lZGdlc19kYXRhKTtcbiAgY29uc3QgYXJlYXNfZGF0YSA9IHVzZVNlbGVjdG9yKChzdGF0ZSkgPT4gc3RhdGUuYXJlYXNfZGF0YSk7XG4gIGNvbnN0IGdsb2JhbF9kYXRhID0gdXNlU2VsZWN0b3IoKHN0YXRlKSA9PiBzdGF0ZS5nbG9iYWxfZGF0YSk7XG4gIGNvbnN0IFtzaG93UmlnaHRQYW5lbCwgc2V0U2hvd1JpZ2h0UGFuZWxdID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBbc2VsZWN0ZWRQb2ludCwgc2V0U2VsZWN0ZWRQb2ludF0gPSB1c2VTdGF0ZTxJUG9pbnQgfCBudWxsPihudWxsKTtcblxuICBjb25zdCBoYW5kbGVTZWxlY3RQb2ludCA9IChuZXdQb2ludDogSVBvaW50KSA9PiB7XG4gICAgaWYgKHNlbGVjdGVkUG9pbnQgJiYgbmV3UG9pbnQuaWQgPT09IHNlbGVjdGVkUG9pbnQuaWQpIHtcbiAgICAgIHNldFNlbGVjdGVkUG9pbnQobnVsbCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNldFNlbGVjdGVkUG9pbnQobmV3UG9pbnQpO1xuICAgIH1cbiAgfTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGRpc3BhdGNoKHVwZGF0ZU5hdkNvbnRleHQoeyBuYW1lOiAnb3BlcmF0aW9ucycgfSkpO1xuICB9LCBbXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoZ2xvYmFsX2RhdGEud2F0ZXJBdXRob3JpdHlJZCkge1xuICAgICAgZGlzcGF0Y2goZmV0Y2hQb2ludHMoZ2xvYmFsX2RhdGEud2F0ZXJBdXRob3JpdHlJZCkpO1xuICAgICAgZGlzcGF0Y2goZmV0Y2hFZGdlcyhnbG9iYWxfZGF0YS53YXRlckF1dGhvcml0eUlkKSk7XG4gICAgICBkaXNwYXRjaChmZXRjaEFyZWFzKGdsb2JhbF9kYXRhLndhdGVyQXV0aG9yaXR5SWQpKTtcbiAgICB9XG4gIH0sIFtnbG9iYWxfZGF0YS53YXRlckF1dGhvcml0eUlkXSk7XG5cbiAgY29uc3QgbW9uaXRvcmVkUG9pbnRzID0gdXNlTWVtbygoKSA9PiB7XG4gICAgcmV0dXJuIHBvaW50c19kYXRhLml0ZW1zPy5maWx0ZXIoKHBvaW50OiBJUG9pbnQpID0+IHBvaW50Lmhhc19kZXZpY2UpIHx8IFtdO1xuICB9LCBbcG9pbnRzX2RhdGEuaXRlbXNdKTtcblxuICBjb25zdCBwb2ludHMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICByZXR1cm4gKFxuICAgICAgcG9pbnRzX2RhdGEuaXRlbXM/LmZpbHRlcihcbiAgICAgICAgKHBvaW50OiBJUG9pbnQpID0+IHBvaW50LmxhdGl0dWRlICYmIHBvaW50LmxvbmdpdHVkZSxcbiAgICAgICkgfHwgW11cbiAgICApO1xuICB9LCBbcG9pbnRzX2RhdGEuaXRlbXNdKTtcblxuICBjb25zdCBzaG93TGVmdFBhbmVsID0gdXNlTWVtbygoKSA9PiB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxMZWZ0UGFuZWxcbiAgICAgICAgcG9pbnRzPXttb25pdG9yZWRQb2ludHN9XG4gICAgICAgIHNldFNlbGVjdGVkUG9pbnQ9e2hhbmRsZVNlbGVjdFBvaW50fVxuICAgICAgLz5cbiAgICApO1xuICB9LCBbbW9uaXRvcmVkUG9pbnRzLCBzZWxlY3RlZFBvaW50XSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoc2VsZWN0ZWRQb2ludCkge1xuICAgICAgc2V0U2hvd1JpZ2h0UGFuZWwodHJ1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNldFNob3dSaWdodFBhbmVsKGZhbHNlKTtcbiAgICB9XG4gIH0sIFtzZWxlY3RlZFBvaW50XSk7XG5cbiAgY29uc3Qgb25SaWdodFBhbmVsQ2xvc2UgPSAoKSA9PiB7XG4gICAgc2V0U2VsZWN0ZWRQb2ludChudWxsKTtcbiAgfTtcblxuICByZXR1cm4gKFxuICAgIDxDb250YWluZXIgZmx1aWQgY2xhc3NOYW1lPVwidmgtOTAgcC0wXCI+XG4gICAgICA8Um93PlxuICAgICAgICA8Q29sIHNtPXszfSBjbGFzc05hbWU9XCJsZWZ0LXBhbmVsXCI+XG4gICAgICAgICAge3Nob3dMZWZ0UGFuZWx9XG4gICAgICAgIDwvQ29sPlxuICAgICAgICA8Q29sIGNsYXNzTmFtZT1cIm1hcC1jb2x1bW5cIiBzbT17OX0+XG4gICAgICAgICAgeyFlZGdlc19kYXRhLmlzRmV0Y2hpbmcgJiYgIWFyZWFzX2RhdGEuaXNGZXRjaGluZyAmJiAoXG4gICAgICAgICAgICA8TWFwXG4gICAgICAgICAgICAgIHBvaW50cz17cG9pbnRzfVxuICAgICAgICAgICAgICBlZGdlcz17ZWRnZXNfZGF0YS5pdGVtc31cbiAgICAgICAgICAgICAgYXJlYXM9e2FyZWFzX2RhdGEubmV3QXJlYXN9XG4gICAgICAgICAgICAgIHNlbGVjdGVkUG9pbnQ9e3NlbGVjdGVkUG9pbnR9XG4gICAgICAgICAgICAgIHVwZGF0ZVNlbGVjdGVkUG9pbnQ9e2hhbmRsZVNlbGVjdFBvaW50fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuICAgICAgICAgIDxSaWdodFBhbmVsXG4gICAgICAgICAgICBjbGFzc05hbWU9e2ByaWdodC1wYW5lbCAke3Nob3dSaWdodFBhbmVsID8gJ29wZW4nIDogJyd9YH1cbiAgICAgICAgICAgIHBvaW50PXtzZWxlY3RlZFBvaW50fVxuICAgICAgICAgICAgb25DbG9zZT17b25SaWdodFBhbmVsQ2xvc2V9XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9Db2w+XG4gICAgICA8L1Jvdz5cbiAgICA8L0NvbnRhaW5lcj5cbiAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IE9wZXJhdGlvbnNQYWdlO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQUEsT0FBQTtBQUNBLElBQUFDLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFHLFdBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLGVBQUEsR0FBQUosT0FBQTtBQUNBLElBQUFLLFFBQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLFNBQUEsR0FBQU4sT0FBQTtBQUNBLElBQUFPLFNBQUEsR0FBQVAsT0FBQTtBQUVBLElBQUFRLElBQUEsR0FBQVIsT0FBQTtBQUNBLElBQUFTLFVBQUEsR0FBQUMsc0JBQUEsQ0FBQVYsT0FBQTtBQUNBLElBQUFXLFdBQUEsR0FBQUQsc0JBQUEsQ0FBQVYsT0FBQTtBQUNBLElBQUFZLFNBQUEsR0FBQVosT0FBQTtBQUFxRCxTQUFBYSx5QkFBQUMsV0FBQSxlQUFBQyxPQUFBLGtDQUFBQyxpQkFBQSxPQUFBRCxPQUFBLFFBQUFFLGdCQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEseUJBQUFDLFdBQUEsV0FBQUEsV0FBQSxHQUFBRyxnQkFBQSxHQUFBRCxpQkFBQSxLQUFBRixXQUFBO0FBQUEsU0FBQVosd0JBQUFnQixHQUFBLEVBQUFKLFdBQUEsU0FBQUEsV0FBQSxJQUFBSSxHQUFBLElBQUFBLEdBQUEsQ0FBQUMsVUFBQSxXQUFBRCxHQUFBLFFBQUFBLEdBQUEsYUFBQUUsT0FBQSxDQUFBRixHQUFBLHlCQUFBQSxHQUFBLDRCQUFBRyxPQUFBLEVBQUFILEdBQUEsVUFBQUksS0FBQSxHQUFBVCx3QkFBQSxDQUFBQyxXQUFBLE9BQUFRLEtBQUEsSUFBQUEsS0FBQSxDQUFBQyxHQUFBLENBQUFMLEdBQUEsWUFBQUksS0FBQSxDQUFBRSxHQUFBLENBQUFOLEdBQUEsU0FBQU8s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
@@ -54,3 +54,7 @@
54
54
  }
55
55
  }
56
56
  }
57
+
58
+ .area-tooltip {
59
+ font-weight: 600;
60
+ }
@@ -21,8 +21,8 @@ var RightPanel = function RightPanel(_ref) {
21
21
  className: "drawer-body p-3"
22
22
  }, /*#__PURE__*/_react.default.createElement("div", {
23
23
  className: "form-group"
24
- }, /*#__PURE__*/_react.default.createElement("p", null, /*#__PURE__*/_react.default.createElement("strong", null, 'Name:'), " ", point === null || point === void 0 ? void 0 : point.name), /*#__PURE__*/_react.default.createElement("p", null, /*#__PURE__*/_react.default.createElement("strong", null, 'Description:'), " ", point === null || point === void 0 ? void 0 : point.description), /*#__PURE__*/_react.default.createElement("p", null, /*#__PURE__*/_react.default.createElement("strong", null, 'Device Status:'), " ", point === null || point === void 0 ? void 0 : point.device_status), /*#__PURE__*/_react.default.createElement("p", null, /*#__PURE__*/_react.default.createElement("strong", null, 'Sector:'), " ", point === null || point === void 0 ? void 0 : point.group.sector_name), /*#__PURE__*/_react.default.createElement("p", null, /*#__PURE__*/_react.default.createElement("strong", null, 'Type:'), " ", point === null || point === void 0 ? void 0 : point.group.type), /*#__PURE__*/_react.default.createElement("p", null, /*#__PURE__*/_react.default.createElement("strong", null, 'Water Discharge:'), ' ', point === null || point === void 0 ? void 0 : point.group.water_discharge)))));
24
+ }, /*#__PURE__*/_react.default.createElement("p", null, /*#__PURE__*/_react.default.createElement("strong", null, 'Name:'), " ", point === null || point === void 0 ? void 0 : point.name), /*#__PURE__*/_react.default.createElement("p", null, /*#__PURE__*/_react.default.createElement("strong", null, 'Description:'), " ", point === null || point === void 0 ? void 0 : point.description), /*#__PURE__*/_react.default.createElement("p", null, /*#__PURE__*/_react.default.createElement("strong", null, 'Monitored:'), " ", (point === null || point === void 0 ? void 0 : point.has_device) ? 'Yes' : 'No'), /*#__PURE__*/_react.default.createElement("p", null, /*#__PURE__*/_react.default.createElement("strong", null, 'Device Status:'), " ", point === null || point === void 0 ? void 0 : point.device_status), /*#__PURE__*/_react.default.createElement("p", null, /*#__PURE__*/_react.default.createElement("strong", null, 'Sector:'), " ", point === null || point === void 0 ? void 0 : point.group.sector_name), /*#__PURE__*/_react.default.createElement("p", null, /*#__PURE__*/_react.default.createElement("strong", null, 'Type:'), " ", point === null || point === void 0 ? void 0 : point.group.type), /*#__PURE__*/_react.default.createElement("p", null, /*#__PURE__*/_react.default.createElement("strong", null, 'Water Discharge:'), ' ', point === null || point === void 0 ? void 0 : point.group.water_discharge)))));
25
25
  };
26
26
  var _default = RightPanel;
27
27
  exports.default = _default;
28
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIlJpZ2h0UGFuZWwiLCJfcmVmIiwicG9pbnQiLCJjbGFzc05hbWUiLCJvbkNsb3NlIiwiZGVmYXVsdCIsImNyZWF0ZUVsZW1lbnQiLCJvbkNsaWNrIiwibmFtZSIsImRlc2NyaXB0aW9uIiwiZGV2aWNlX3N0YXR1cyIsImdyb3VwIiwic2VjdG9yX25hbWUiLCJ0eXBlIiwid2F0ZXJfZGlzY2hhcmdlIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3BhZ2VzL09wZXJhdGlvbnNQYWdlL1JpZ2h0UGFuZWwudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBJUG9pbnQgfSBmcm9tICdzcmMvc3RvcmUvcG9pbnRzL21vZGVscy9JUG9pbnQnO1xuXG50eXBlIFJpZ2h0UGFuZWxQcm9wcyA9IHtcbiAgcG9pbnQ6IElQb2ludCB8IG51bGw7XG4gIGNsYXNzTmFtZT86IHN0cmluZztcbiAgb25DbG9zZT86ICgpID0+IHZvaWQ7XG59O1xuXG5jb25zdCBSaWdodFBhbmVsOiBSZWFjdC5GQzxSaWdodFBhbmVsUHJvcHM+ID0gKHtcbiAgcG9pbnQsXG4gIGNsYXNzTmFtZSxcbiAgb25DbG9zZSxcbn0pID0+IHtcbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT17Y2xhc3NOYW1lfT5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZHJhd2VyLWhlYWRlciBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1iZXR3ZWVuIHAtMyBwci00XCI+XG4gICAgICAgIHsnUG9pbnQgRGV0YWlscyd9XG4gICAgICAgIDxidXR0b24gY2xhc3NOYW1lPVwiY2xvc2VcIiBvbkNsaWNrPXtvbkNsb3NlfT5cbiAgICAgICAgICA8c3Bhbj4mdGltZXM7PC9zcGFuPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJkcmF3ZXItYm9keSBwLTNcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZvcm0tZ3JvdXBcIj5cbiAgICAgICAgICAgIDxwPlxuICAgICAgICAgICAgICA8c3Ryb25nPnsnTmFtZTonfTwvc3Ryb25nPiB7cG9pbnQ/Lm5hbWV9XG4gICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICA8cD5cbiAgICAgICAgICAgICAgPHN0cm9uZz57J0Rlc2NyaXB0aW9uOid9PC9zdHJvbmc+IHtwb2ludD8uZGVzY3JpcHRpb259XG4gICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICA8cD5cbiAgICAgICAgICAgICAgPHN0cm9uZz57J0RldmljZSBTdGF0dXM6J308L3N0cm9uZz4ge3BvaW50Py5kZXZpY2Vfc3RhdHVzfVxuICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgIDxzdHJvbmc+eydTZWN0b3I6J308L3N0cm9uZz4ge3BvaW50Py5ncm91cC5zZWN0b3JfbmFtZX1cbiAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgIDxwPlxuICAgICAgICAgICAgICA8c3Ryb25nPnsnVHlwZTonfTwvc3Ryb25nPiB7cG9pbnQ/Lmdyb3VwLnR5cGV9XG4gICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICA8cD5cbiAgICAgICAgICAgICAgPHN0cm9uZz57J1dhdGVyIERpc2NoYXJnZTonfTwvc3Ryb25nPnsnICd9XG4gICAgICAgICAgICAgIHtwb2ludD8uZ3JvdXAud2F0ZXJfZGlzY2hhcmdlfVxuICAgICAgICAgICAgPC9wPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgUmlnaHRQYW5lbDtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBLElBQUFB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
28
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIlJpZ2h0UGFuZWwiLCJfcmVmIiwicG9pbnQiLCJjbGFzc05hbWUiLCJvbkNsb3NlIiwiZGVmYXVsdCIsImNyZWF0ZUVsZW1lbnQiLCJvbkNsaWNrIiwibmFtZSIsImRlc2NyaXB0aW9uIiwiaGFzX2RldmljZSIsImRldmljZV9zdGF0dXMiLCJncm91cCIsInNlY3Rvcl9uYW1lIiwidHlwZSIsIndhdGVyX2Rpc2NoYXJnZSIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wYWdlcy9PcGVyYXRpb25zUGFnZS9SaWdodFBhbmVsLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgSVBvaW50IH0gZnJvbSAnc3JjL3N0b3JlL3BvaW50cy9tb2RlbHMvSVBvaW50JztcblxudHlwZSBSaWdodFBhbmVsUHJvcHMgPSB7XG4gIHBvaW50OiBJUG9pbnQgfCBudWxsO1xuICBjbGFzc05hbWU/OiBzdHJpbmc7XG4gIG9uQ2xvc2U/OiAoKSA9PiB2b2lkO1xufTtcblxuY29uc3QgUmlnaHRQYW5lbDogUmVhY3QuRkM8UmlnaHRQYW5lbFByb3BzPiA9ICh7XG4gIHBvaW50LFxuICBjbGFzc05hbWUsXG4gIG9uQ2xvc2UsXG59KSA9PiB7XG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9e2NsYXNzTmFtZX0+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImRyYXdlci1oZWFkZXIgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBwLTMgcHItNFwiPlxuICAgICAgICB7J1BvaW50IERldGFpbHMnfVxuICAgICAgICA8YnV0dG9uIGNsYXNzTmFtZT1cImNsb3NlXCIgb25DbGljaz17b25DbG9zZX0+XG4gICAgICAgICAgPHNwYW4+JnRpbWVzOzwvc3Bhbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZHJhd2VyLWJvZHkgcC0zXCI+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgICAgICA8cD5cbiAgICAgICAgICAgICAgPHN0cm9uZz57J05hbWU6J308L3N0cm9uZz4ge3BvaW50Py5uYW1lfVxuICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgIDxzdHJvbmc+eydEZXNjcmlwdGlvbjonfTwvc3Ryb25nPiB7cG9pbnQ/LmRlc2NyaXB0aW9ufVxuICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgIDxzdHJvbmc+eydNb25pdG9yZWQ6J308L3N0cm9uZz4ge3BvaW50Py5oYXNfZGV2aWNlID8gJ1llcycgOiAnTm8nfVxuICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgIDxzdHJvbmc+eydEZXZpY2UgU3RhdHVzOid9PC9zdHJvbmc+IHtwb2ludD8uZGV2aWNlX3N0YXR1c31cbiAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgIDxwPlxuICAgICAgICAgICAgICA8c3Ryb25nPnsnU2VjdG9yOid9PC9zdHJvbmc+IHtwb2ludD8uZ3JvdXAuc2VjdG9yX25hbWV9XG4gICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICA8cD5cbiAgICAgICAgICAgICAgPHN0cm9uZz57J1R5cGU6J308L3N0cm9uZz4ge3BvaW50Py5ncm91cC50eXBlfVxuICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgIDxzdHJvbmc+eydXYXRlciBEaXNjaGFyZ2U6J308L3N0cm9uZz57JyAnfVxuICAgICAgICAgICAgICB7cG9pbnQ/Lmdyb3VwLndhdGVyX2Rpc2NoYXJnZX1cbiAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IFJpZ2h0UGFuZWw7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFTQSxJQUFNQyxVQUFxQyxHQUFHLFNBQXhDQSxVQUFxQ0EsQ0FBQUMsSUFBQSxFQUlyQztFQUFBLElBSEpDLEtBQUssR0FBQUQsSUFBQSxDQUFMQyxLQUFLO0lBQ0xDLFNBQVMsR0FBQUYsSUFBQSxDQUFURSxTQUFTO0lBQ1RDLE9BQU8sR0FBQUgsSUFBQSxDQUFQRyxPQUFPO0VBRVAsb0JBQ0VQLE1BQUEsQ0FBQVEsT0FBQSxDQUFBQyxhQUFBO0lBQUtILFNBQVMsRUFBRUE7RUFBVSxnQkFDeEJOLE1BQUEsQ0FBQVEsT0FBQSxDQUFBQyxhQUFBO0lBQUtILFNBQVMsRUFBQztFQUEwRSxHQUN0RixlQUFlLGVBQ2hCTixNQUFBLENBQUFRLE9BQUEsQ0FBQUMsYUFBQTtJQUFRSCxTQUFTLEVBQUMsT0FBTztJQUFDSSxPQUFPLEVBQUVIO0VBQVEsZ0JBQ3pDUCxNQUFBLENBQUFRLE9BQUEsQ0FBQUMsYUFBQSxlQUFNLE1BQWEsQ0FDYixDQUNMLENBQUMsZUFDTlQsTUFBQSxDQUFBUSxPQUFBLENBQUFDLGFBQUEsMkJBQ0VULE1BQUEsQ0FBQVEsT0FBQSxDQUFBQyxhQUFBO0lBQUtILFNBQVMsRUFBQztFQUFpQixnQkFDOUJOLE1BQUEsQ0FBQVEsT0FBQSxDQUFBQyxhQUFBO0lBQUtILFNBQVMsRUFBQztFQUFZLGdCQUN6Qk4sTUFBQSxDQUFBUSxPQUFBLENBQUFDLGFBQUEseUJBQ0VULE1BQUEsQ0FBQVEsT0FBQSxDQUFBQyxhQUFBLGlCQUFTLE9BQWdCLENBQUMsS0FBQyxFQUFDSixLQUFLLGFBQUxBLEtBQUssdUJBQUxBLEtBQUssQ0FBRU0sSUFDbEMsQ0FBQyxlQUNKWCxNQUFBLENBQUFRLE9BQUEsQ0FBQUMsYUFBQSx5QkFDRVQsTUFBQSxDQUFBUSxPQUFBLENBQUFDLGFBQUEsaUJBQVMsY0FBdUIsQ0FBQyxLQUFDLEVBQUNKLEtBQUssYUFBTEEsS0FBSyx1QkFBTEEsS0FBSyxDQUFFTyxXQUN6QyxDQUFDLGVBQ0paLE1BQUEsQ0FBQVEsT0FBQSxDQUFBQyxhQUFBLHlCQUNFVCxNQUFBLENBQUFRLE9BQUEsQ0FBQUMsYUFBQSxpQkFBUyxZQUFxQixDQUFDLEtBQUMsRUFBQyxDQUFBSixLQUFLLGFBQUxBLEtBQUssdUJBQUxBLEtBQUssQ0FBRVEsVUFBVSxJQUFHLEtBQUssR0FBRyxJQUM1RCxDQUFDLGVBQ0piLE1BQUEsQ0FBQVEsT0FBQSxDQUFBQyxhQUFBLHlCQUNFVCxNQUFBLENBQUFRLE9BQUEsQ0FBQUMsYUFBQSxpQkFBUyxnQkFBeUIsQ0FBQyxLQUFDLEVBQUNKLEtBQUssYUFBTEEsS0FBSyx1QkFBTEEsS0FBSyxDQUFFUyxhQUMzQyxDQUFDLGVBQ0pkLE1BQUEsQ0FBQVEsT0FBQSxDQUFBQyxhQUFBLHlCQUNFVCxNQUFBLENBQUFRLE9BQUEsQ0FBQUMsYUFBQSxpQkFBUyxTQUFrQixDQUFDLEtBQUMsRUFBQ0osS0FBSyxhQUFMQSxLQUFLLHVCQUFMQSxLQUFLLENBQUVVLEtBQUssQ0FBQ0MsV0FDMUMsQ0FBQyxlQUNKaEIsTUFBQSxDQUFBUSxPQUFBLENBQUFDLGFBQUEseUJBQ0VULE1BQUEsQ0FBQVEsT0FBQSxDQUFBQyxhQUFBLGlCQUFTLE9BQWdCLENBQUMsS0FBQyxFQUFDSixLQUFLLGFBQUxBLEtBQUssdUJBQUxBLEtBQUssQ0FBRVUsS0FBSyxDQUFDRSxJQUN4QyxDQUFDLGVBQ0pqQixNQUFBLENBQUFRLE9BQUEsQ0FBQUMsYUFBQSx5QkFDRVQsTUFBQSxDQUFBUSxPQUFBLENBQUFDLGFBQUEsaUJBQVMsa0JBQTJCLENBQUMsRUFBQyxHQUFHLEVBQ3hDSixLQUFLLGFBQUxBLEtBQUssdUJBQUxBLEtBQUssQ0FBRVUsS0FBSyxDQUFDRyxlQUNiLENBQ0EsQ0FDRixDQUNGLENBQ0YsQ0FBQztBQUVWLENBQUM7QUFBQyxJQUFBQyxRQUFBLEdBRWFoQixVQUFVO0FBQUFpQixPQUFBLENBQUFaLE9BQUEsR0FBQVcsUUFBQSJ9
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kando-env/kando-ui",
3
- "version": "1.2.395-alpha.2",
3
+ "version": "1.2.395-alpha.3",
4
4
  "main": "lib/index.js",
5
5
  "author": "Nadav(Private) <nadavk72@gmail.com>",
6
6
  "scripts": {
@@ -1,29 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- var _typeof = require("@babel/runtime/helpers/typeof");
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.Map = void 0;
9
- var _react = _interopRequireWildcard(require("react"));
10
- var _useMap = require("./useMap");
11
- var _ErrorBoundary = _interopRequireDefault(require("utilities/ErrorBoundary"));
12
- 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); }
13
- 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; }
14
- var Map = function Map(_ref) {
15
- var points = _ref.points,
16
- edges = _ref.edges,
17
- selectedPoint = _ref.selectedPoint,
18
- updateSelectedPoint = _ref.updateSelectedPoint;
19
- var mapRef = (0, _react.useRef)(null);
20
- (0, _useMap.useMap)(mapRef, points, edges, selectedPoint, updateSelectedPoint);
21
- return /*#__PURE__*/_react.default.createElement("div", {
22
- className: "map-container"
23
- }, /*#__PURE__*/_react.default.createElement(_ErrorBoundary.default, null, /*#__PURE__*/_react.default.createElement("div", {
24
- ref: mapRef,
25
- className: "map-heights"
26
- })));
27
- };
28
- exports.Map = Map;
29
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfdXNlTWFwIiwiX0Vycm9yQm91bmRhcnkiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwibm9kZUludGVyb3AiLCJXZWFrTWFwIiwiY2FjaGVCYWJlbEludGVyb3AiLCJjYWNoZU5vZGVJbnRlcm9wIiwib2JqIiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJkZWZhdWx0IiwiY2FjaGUiLCJoYXMiLCJnZXQiLCJuZXdPYmoiLCJoYXNQcm9wZXJ0eURlc2NyaXB0b3IiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImRlc2MiLCJzZXQiLCJNYXAiLCJfcmVmIiwicG9pbnRzIiwiZWRnZXMiLCJzZWxlY3RlZFBvaW50IiwidXBkYXRlU2VsZWN0ZWRQb2ludCIsIm1hcFJlZiIsInVzZVJlZiIsInVzZU1hcCIsImNyZWF0ZUVsZW1lbnQiLCJjbGFzc05hbWUiLCJyZWYiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3BhZ2VzL09wZXJhdGlvbnNQYWdlL01hcC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZVJlZiB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZU1hcCB9IGZyb20gJy4vdXNlTWFwJztcbmltcG9ydCBFcnJvckJvdW5kYXJ5IGZyb20gJ3NyYy91dGlsaXRpZXMvRXJyb3JCb3VuZGFyeSc7XG5pbXBvcnQgeyBJUG9pbnQgfSBmcm9tICdzcmMvc3RvcmUvcG9pbnRzL21vZGVscy9JUG9pbnQnO1xuaW1wb3J0IHsgSUVkZ2UgfSBmcm9tICdzcmMvc3RvcmUvZWRnZXMvbW9kZWxzL0lFZGdlJztcblxuaW50ZXJmYWNlIE1hcFByb3BzIHtcbiAgcG9pbnRzOiBJUG9pbnRbXTtcbiAgZWRnZXM6IElFZGdlW107XG4gIHNlbGVjdGVkUG9pbnQ6IElQb2ludCB8IG51bGw7XG4gIHVwZGF0ZVNlbGVjdGVkUG9pbnQ6IChwb2ludDogSVBvaW50KSA9PiB2b2lkO1xufVxuXG5leHBvcnQgY29uc3QgTWFwOiBSZWFjdC5GQzxNYXBQcm9wcz4gPSAoe1xuICBwb2ludHMsXG4gIGVkZ2VzLFxuICBzZWxlY3RlZFBvaW50LFxuICB1cGRhdGVTZWxlY3RlZFBvaW50LFxufSkgPT4ge1xuICBjb25zdCBtYXBSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICB1c2VNYXAobWFwUmVmLCBwb2ludHMsIGVkZ2VzLCBzZWxlY3RlZFBvaW50LCB1cGRhdGVTZWxlY3RlZFBvaW50KTtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPVwibWFwLWNvbnRhaW5lclwiPlxuICAgICAgPEVycm9yQm91bmRhcnk+XG4gICAgICAgIDxkaXYgcmVmPXttYXBSZWZ9IGNsYXNzTmFtZT1cIm1hcC1oZWlnaHRzXCIgLz5cbiAgICAgIDwvRXJyb3JCb3VuZGFyeT5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsT0FBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsY0FBQSxHQUFBQyxzQkFBQSxDQUFBSCxPQUFBO0FBQXdELFNBQUFJLHlCQUFBQyxXQUFBLGVBQUFDLE9BQUEsa0NBQUFDLGlCQUFBLE9BQUFELE9BQUEsUUFBQUUsZ0JBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSx5QkFBQUMsV0FBQSxXQUFBQSxXQUFBLEdBQUFHLGdCQUFBLEdBQUFELGlCQUFBLEtBQUFGLFdBQUE7QUFBQSxTQUFBTix3QkFBQVUsR0FBQSxFQUFBSixXQUFBLFNBQUFBLFdBQUEsSUFBQUksR0FBQSxJQUFBQSxHQUFBLENBQUFDLFVBQUEsV0FBQUQsR0FBQSxRQUFBQSxHQUFBLGFBQUFFLE9BQUEsQ0FBQUYsR0FBQSx5QkFBQUEsR0FBQSw0QkFBQUcsT0FBQSxFQUFBSCxHQUFBLFVBQUFJLEtBQUEsR0FBQVQsd0JBQUEsQ0FBQUMsV0FBQSxPQUFBUSxLQUFBLElBQUFBLEtBQUEsQ0FBQUMsR0FBQSxDQUFBTCxHQUFBLFlBQUFJLEtBQUEsQ0FBQUUsR0FBQSxDQUFBTixHQUFBLFNBQUFPLE1BQUEsV0FBQUMscUJBQUEsR0FBQUMsTUFBQSxDQUFBQyxjQUFBLElBQUFELE1BQUEsQ0FBQUUsd0JBQUEsV0FBQUMsR0FBQSxJQUFBWixHQUFBLFFBQUFZLEdBQUEsa0JBQUFILE1BQUEsQ0FBQUksU0FBQSxDQUFBQyxjQUFBLENBQUFDLElBQUEsQ0FBQWYsR0FBQSxFQUFBWSxHQUFBLFNBQUFJLElBQUEsR0FBQVIscUJBQUEsR0FBQUMsTUFBQSxDQUFBRSx3QkFBQSxDQUFBWCxHQUFBLEVBQUFZLEdBQUEsY0FBQUksSUFBQSxLQUFBQSxJQUFBLENBQUFWLEdBQUEsSUFBQVUsSUFBQSxDQUFBQyxHQUFBLEtBQUFSLE1BQUEsQ0FBQUMsY0FBQSxDQUFBSCxNQUFBLEVBQUFLLEdBQUEsRUFBQUksSUFBQSxZQUFBVCxNQUFBLENBQUFLLEdBQUEsSUFBQVosR0FBQSxDQUFBWSxHQUFBLFNBQUFMLE1BQUEsQ0FBQUosT0FBQSxHQUFBSCxHQUFBLE1BQUFJLEtBQUEsSUFBQUEsS0FBQSxDQUFBYSxHQUFBLENBQUFqQixHQUFBLEVBQUFPLE1BQUEsWUFBQUEsTUFBQTtBQVdqRCxJQUFNVyxHQUF1QixHQUFHLFNBQTFCQSxHQUF1QkEsQ0FBQUMsSUFBQSxFQUs5QjtFQUFBLElBSkpDLE1BQU0sR0FBQUQsSUFBQSxDQUFOQyxNQUFNO0lBQ05DLEtBQUssR0FBQUYsSUFBQSxDQUFMRSxLQUFLO0lBQ0xDLGFBQWEsR0FBQUgsSUFBQSxDQUFiRyxhQUFhO0lBQ2JDLG1CQUFtQixHQUFBSixJQUFBLENBQW5CSSxtQkFBbUI7RUFFbkIsSUFBTUMsTUFBTSxHQUFHLElBQUFDLGFBQU0sRUFBaUIsSUFBSSxDQUFDO0VBQzNDLElBQUFDLGNBQU0sRUFBQ0YsTUFBTSxFQUFFSixNQUFNLEVBQUVDLEtBQUssRUFBRUMsYUFBYSxFQUFFQyxtQkFBbUIsQ0FBQztFQUVqRSxvQkFDRWxDLE1BQUEsQ0FBQWMsT0FBQSxDQUFBd0IsYUFBQTtJQUFLQyxTQUFTLEVBQUM7RUFBZSxnQkFDNUJ2QyxNQUFBLENBQUFjLE9BQUEsQ0FBQXdCLGFBQUEsQ0FBQ2xDLGNBQUEsQ0FBQVUsT0FBYSxxQkFDWmQsTUFBQSxDQUFBYyxPQUFBLENBQUF3QixhQUFBO0lBQUtFLEdBQUcsRUFBRUwsTUFBTztJQUFDSSxTQUFTLEVBQUM7RUFBYSxDQUFFLENBQzlCLENBQ1osQ0FBQztBQUVWLENBQUM7QUFBQ0UsT0FBQSxDQUFBWixHQUFBLEdBQUFBLEdBQUEifQ==
@@ -1,170 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.useMap = void 0;
8
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/slicedToArray"));
9
- var _leaflet = _interopRequireDefault(require("leaflet"));
10
- var _react = require("react");
11
- var _PointIcon = require("Widgets/Map/points/PointIcon");
12
- var _theme = require("styles/theme/theme");
13
- var _MapUtils = require("Widgets/Map/MapUtils");
14
- var useMap = function useMap(mapRef, points, edges, selectedPoint, updateSelectedPoint) {
15
- var _useState = (0, _react.useState)(),
16
- _useState2 = (0, _slicedToArray2.default)(_useState, 2),
17
- map = _useState2[0],
18
- setMap = _useState2[1];
19
- var _useState3 = (0, _react.useState)(null),
20
- _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
21
- focusedMarker = _useState4[0],
22
- setFocusedMarker = _useState4[1];
23
- var pointsLayerRef = (0, _react.useRef)();
24
- var edgesLayerRef = (0, _react.useRef)();
25
- (0, _react.useEffect)(function () {
26
- if (!mapRef.current) {
27
- return;
28
- }
29
- var mapTypes = (0, _MapUtils.baseMaps)(_theme.leafletMap.mapDefault, _theme.leafletMap.satellite);
30
- var mapTemp = _leaflet.default.map(mapRef.current, {
31
- renderer: _leaflet.default.canvas()
32
- });
33
- Object.values(mapTypes)[0].addTo(mapTemp);
34
- _leaflet.default.control.layers(mapTypes, {}, {
35
- position: 'bottomright'
36
- }).addTo(mapTemp);
37
- setMap(mapTemp);
38
- return function () {
39
- if (!mapTemp) {
40
- return;
41
- }
42
- mapTemp.off();
43
- mapTemp.remove();
44
- };
45
- }, []);
46
- (0, _react.useEffect)(function () {
47
- var _pointsLayerRef$curre;
48
- if (focusedMarker) {
49
- focusedMarker.fire('mouseout');
50
- }
51
- (_pointsLayerRef$curre = pointsLayerRef.current) === null || _pointsLayerRef$curre === void 0 ? void 0 : _pointsLayerRef$curre.eachLayer(function (marker) {
52
- if (selectedPoint && marker.options.kando_object_id === (selectedPoint === null || selectedPoint === void 0 ? void 0 : selectedPoint.id)) {
53
- marker.fire('mouseover');
54
- setFocusedMarker(marker);
55
- return;
56
- }
57
- });
58
- }, [selectedPoint]);
59
- var handleMarkerClick = function handleMarkerClick(point) {
60
- updateSelectedPoint(point);
61
- };
62
- var addMarkers = function addMarkers() {
63
- if (!map || !points) {
64
- return;
65
- }
66
- if (pointsLayerRef.current) {
67
- if (map.hasLayer(pointsLayerRef.current)) {
68
- map.removeLayer(pointsLayerRef.current);
69
- }
70
- }
71
- pointsLayerRef.current = _leaflet.default.featureGroup();
72
- pointsLayerRef.current.addTo(map);
73
- if (!pointsLayerRef.current.getLayers().length) {
74
- points.forEach(function (point) {
75
- var _pointsLayerRef$curre2;
76
- var icon = (0, _PointIcon.getPointIconByType)(point.group.type, point.name, '', false, true);
77
- var focusedIcon = (0, _PointIcon.getPointIconByType)(point.group.type, point.name, '', true, false);
78
- var marker = getMarker(point);
79
- if (point.has_device) {
80
- marker.setIcon(icon);
81
- // The use of marker._isInside is to overcome the issue that mouseover is endlessly triggered
82
- // and we need it onley once
83
- marker.on('mouseover', function () {
84
- if (!marker._isInside) {
85
- marker._isInside = true;
86
- marker.setIcon(focusedIcon);
87
- }
88
- });
89
- marker.on('mouseout', function () {
90
- marker._isInside = false;
91
- marker.setIcon(icon);
92
- });
93
- }
94
- marker.on('click', function () {
95
- handleMarkerClick(point);
96
- });
97
- (_pointsLayerRef$curre2 = pointsLayerRef.current) === null || _pointsLayerRef$curre2 === void 0 ? void 0 : _pointsLayerRef$curre2.addLayer(marker);
98
- });
99
- }
100
- if (pointsLayerRef.current.getLayers().length) {
101
- map.fitBounds(pointsLayerRef.current.getBounds());
102
- } else {
103
- map.setView([32.219157, 34.982481], 12);
104
- }
105
- };
106
- var getMarker = function getMarker(point) {
107
- if (point.has_device === true) {
108
- return _leaflet.default.marker([point.latitude, point.longitude], {
109
- kando_object_id: point.id
110
- });
111
- } else {
112
- return _leaflet.default.circleMarker([point.latitude, point.longitude], {
113
- radius: 4,
114
- // circle radius in pixels
115
- color: '#000000',
116
- // border (stroke) color
117
- weight: 1,
118
- // border (stroke) width
119
- fillColor: '#ffffff',
120
- // fill color (white)
121
- fillOpacity: 1,
122
- // fully opaque
123
- kando_object_id: point.id
124
- });
125
- }
126
- };
127
- var addEdges = function addEdges() {
128
- // console.log('edges', edges);
129
- if (!map || !edges) {
130
- return;
131
- }
132
- if (edgesLayerRef.current) {
133
- if (map.hasLayer(edgesLayerRef.current)) {
134
- map.removeLayer(edgesLayerRef.current);
135
- }
136
- }
137
- edgesLayerRef.current = _leaflet.default.featureGroup();
138
- edgesLayerRef.current.addTo(map);
139
- edges.forEach(function (edge) {
140
- var _edgesLayerRef$curren;
141
- var sourcePoint = points.find(function (point) {
142
- return point.id === edge.source_point_id;
143
- });
144
- var targetPoint = points.find(function (point) {
145
- return point.id === edge.target_point_id;
146
- });
147
- // console.log('sourcePoint', sourcePoint);
148
- // console.log('targetPoint', targetPoint);
149
-
150
- if (!sourcePoint || !targetPoint) {
151
- return;
152
- }
153
- var latlngs = [[sourcePoint === null || sourcePoint === void 0 ? void 0 : sourcePoint.latitude, sourcePoint === null || sourcePoint === void 0 ? void 0 : sourcePoint.longitude], [targetPoint === null || targetPoint === void 0 ? void 0 : targetPoint.latitude, targetPoint === null || targetPoint === void 0 ? void 0 : targetPoint.longitude]];
154
- var polyline = _leaflet.default.polyline(latlngs, {
155
- color: 'black',
156
- weight: 1,
157
- opacity: 0.5,
158
- smoothFactor: 1
159
- });
160
- (_edgesLayerRef$curren = edgesLayerRef.current) === null || _edgesLayerRef$curren === void 0 ? void 0 : _edgesLayerRef$curren.addLayer(polyline);
161
- });
162
- };
163
- (0, _react.useEffect)(function () {
164
- addMarkers();
165
- addEdges();
166
- }, [points, map]);
167
- return map;
168
- };
169
- exports.useMap = useMap;
170
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbGVhZmxldCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX3JlYWN0IiwiX1BvaW50SWNvbiIsIl90aGVtZSIsIl9NYXBVdGlscyIsInVzZU1hcCIsIm1hcFJlZiIsInBvaW50cyIsImVkZ2VzIiwic2VsZWN0ZWRQb2ludCIsInVwZGF0ZVNlbGVjdGVkUG9pbnQiLCJfdXNlU3RhdGUiLCJ1c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheTIiLCJkZWZhdWx0IiwibWFwIiwic2V0TWFwIiwiX3VzZVN0YXRlMyIsIl91c2VTdGF0ZTQiLCJmb2N1c2VkTWFya2VyIiwic2V0Rm9jdXNlZE1hcmtlciIsInBvaW50c0xheWVyUmVmIiwidXNlUmVmIiwiZWRnZXNMYXllclJlZiIsInVzZUVmZmVjdCIsImN1cnJlbnQiLCJtYXBUeXBlcyIsImJhc2VNYXBzIiwibGVhZmxldE1hcCIsIm1hcERlZmF1bHQiLCJzYXRlbGxpdGUiLCJtYXBUZW1wIiwiTCIsInJlbmRlcmVyIiwiY2FudmFzIiwiT2JqZWN0IiwidmFsdWVzIiwiYWRkVG8iLCJjb250cm9sIiwibGF5ZXJzIiwicG9zaXRpb24iLCJvZmYiLCJyZW1vdmUiLCJfcG9pbnRzTGF5ZXJSZWYkY3VycmUiLCJmaXJlIiwiZWFjaExheWVyIiwibWFya2VyIiwib3B0aW9ucyIsImthbmRvX29iamVjdF9pZCIsImlkIiwiaGFuZGxlTWFya2VyQ2xpY2siLCJwb2ludCIsImFkZE1hcmtlcnMiLCJoYXNMYXllciIsInJlbW92ZUxheWVyIiwiZmVhdHVyZUdyb3VwIiwiZ2V0TGF5ZXJzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9wb2ludHNMYXllclJlZiRjdXJyZTIiLCJpY29uIiwiZ2V0UG9pbnRJY29uQnlUeXBlIiwiZ3JvdXAiLCJ0eXBlIiwibmFtZSIsImZvY3VzZWRJY29uIiwiZ2V0TWFya2VyIiwiaGFzX2RldmljZSIsInNldEljb24iLCJvbiIsIl9pc0luc2lkZSIsImFkZExheWVyIiwiZml0Qm91bmRzIiwiZ2V0Qm91bmRzIiwic2V0VmlldyIsImxhdGl0dWRlIiwibG9uZ2l0dWRlIiwiY2lyY2xlTWFya2VyIiwicmFkaXVzIiwiY29sb3IiLCJ3ZWlnaHQiLCJmaWxsQ29sb3IiLCJmaWxsT3BhY2l0eSIsImFkZEVkZ2VzIiwiZWRnZSIsIl9lZGdlc0xheWVyUmVmJGN1cnJlbiIsInNvdXJjZVBvaW50IiwiZmluZCIsInNvdXJjZV9wb2ludF9pZCIsInRhcmdldFBvaW50IiwidGFyZ2V0X3BvaW50X2lkIiwibGF0bG5ncyIsInBvbHlsaW5lIiwib3BhY2l0eSIsInNtb290aEZhY3RvciIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcGFnZXMvT3BlcmF0aW9uc1BhZ2UvdXNlTWFwLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTCwgeyBNYXJrZXIgfSBmcm9tICdsZWFmbGV0JztcbmltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBnZXRQb2ludEljb25CeVR5cGUgfSBmcm9tICdzcmMvV2lkZ2V0cy9NYXAvcG9pbnRzL1BvaW50SWNvbic7XG5pbXBvcnQgeyBsZWFmbGV0TWFwIH0gZnJvbSAnc3JjL3N0eWxlcy90aGVtZS90aGVtZSc7XG5pbXBvcnQgeyBiYXNlTWFwcyB9IGZyb20gJ3NyYy9XaWRnZXRzL01hcC9NYXBVdGlscyc7XG5pbXBvcnQgeyBJUG9pbnQgfSBmcm9tICdzcmMvc3RvcmUvcG9pbnRzL21vZGVscy9JUG9pbnQnO1xuaW1wb3J0IHsgSUVkZ2UgfSBmcm9tICdzcmMvc3RvcmUvZWRnZXMvbW9kZWxzL0lFZGdlJztcblxuZXhwb3J0IGNvbnN0IHVzZU1hcCA9IChcbiAgbWFwUmVmOiBSZWFjdC5SZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQ+LFxuICBwb2ludHM6IElQb2ludFtdLFxuICBlZGdlczogSUVkZ2VbXSxcbiAgc2VsZWN0ZWRQb2ludDogSVBvaW50IHwgbnVsbCxcbiAgdXBkYXRlU2VsZWN0ZWRQb2ludDogKHBvaW50OiBJUG9pbnQpID0+IHZvaWQsXG4pOiBMLk1hcCB8IHVuZGVmaW5lZCA9PiB7XG4gIGNvbnN0IFttYXAsIHNldE1hcF0gPSB1c2VTdGF0ZTxMLk1hcD4oKTtcbiAgY29uc3QgW2ZvY3VzZWRNYXJrZXIsIHNldEZvY3VzZWRNYXJrZXJdID0gdXNlU3RhdGU8TWFya2VyIHwgbnVsbD4obnVsbCk7XG4gIGNvbnN0IHBvaW50c0xheWVyUmVmID0gdXNlUmVmPEwuRmVhdHVyZUdyb3VwPigpO1xuICBjb25zdCBlZGdlc0xheWVyUmVmID0gdXNlUmVmPEwuRmVhdHVyZUdyb3VwPigpO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFtYXBSZWYuY3VycmVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IG1hcFR5cGVzID0gYmFzZU1hcHMobGVhZmxldE1hcC5tYXBEZWZhdWx0LCBsZWFmbGV0TWFwLnNhdGVsbGl0ZSk7XG4gICAgY29uc3QgbWFwVGVtcCA9IEwubWFwKG1hcFJlZi5jdXJyZW50LCB7IHJlbmRlcmVyOiBMLmNhbnZhcygpIH0pO1xuXG4gICAgT2JqZWN0LnZhbHVlcyhtYXBUeXBlcylbMF0uYWRkVG8obWFwVGVtcCk7XG5cbiAgICBMLmNvbnRyb2wubGF5ZXJzKG1hcFR5cGVzLCB7fSwgeyBwb3NpdGlvbjogJ2JvdHRvbXJpZ2h0JyB9KS5hZGRUbyhtYXBUZW1wKTtcblxuICAgIHNldE1hcChtYXBUZW1wKTtcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBpZiAoIW1hcFRlbXApIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgbWFwVGVtcC5vZmYoKTtcbiAgICAgIG1hcFRlbXAucmVtb3ZlKCk7XG4gICAgfTtcbiAgfSwgW10pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGZvY3VzZWRNYXJrZXIpIHtcbiAgICAgIGZvY3VzZWRNYXJrZXIuZmlyZSgnbW91c2VvdXQnKTtcbiAgICB9XG5cbiAgICBwb2ludHNMYXllclJlZi5jdXJyZW50Py5lYWNoTGF5ZXIoKG1hcmtlcikgPT4ge1xuICAgICAgaWYgKFxuICAgICAgICBzZWxlY3RlZFBvaW50ICYmXG4gICAgICAgIG1hcmtlci5vcHRpb25zLmthbmRvX29iamVjdF9pZCA9PT0gc2VsZWN0ZWRQb2ludD8uaWRcbiAgICAgICkge1xuICAgICAgICBtYXJrZXIuZmlyZSgnbW91c2VvdmVyJyk7XG4gICAgICAgIHNldEZvY3VzZWRNYXJrZXIobWFya2VyKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH0pO1xuICB9LCBbc2VsZWN0ZWRQb2ludF0pO1xuXG4gIGNvbnN0IGhhbmRsZU1hcmtlckNsaWNrID0gKHBvaW50KSA9PiB7XG4gICAgdXBkYXRlU2VsZWN0ZWRQb2ludChwb2ludCk7XG4gIH07XG5cbiAgY29uc3QgYWRkTWFya2VycyA9ICgpID0+IHtcbiAgICBpZiAoIW1hcCB8fCAhcG9pbnRzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHBvaW50c0xheWVyUmVmLmN1cnJlbnQpIHtcbiAgICAgIGlmIChtYXAuaGFzTGF5ZXIocG9pbnRzTGF5ZXJSZWYuY3VycmVudCkpIHtcbiAgICAgICAgbWFwLnJlbW92ZUxheWVyKHBvaW50c0xheWVyUmVmLmN1cnJlbnQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHBvaW50c0xheWVyUmVmLmN1cnJlbnQgPSBMLmZlYXR1cmVHcm91cCgpO1xuICAgIHBvaW50c0xheWVyUmVmLmN1cnJlbnQuYWRkVG8obWFwKTtcblxuICAgIGlmICghcG9pbnRzTGF5ZXJSZWYuY3VycmVudC5nZXRMYXllcnMoKS5sZW5ndGgpIHtcbiAgICAgIHBvaW50cy5mb3JFYWNoKChwb2ludCkgPT4ge1xuICAgICAgICBjb25zdCBpY29uID0gZ2V0UG9pbnRJY29uQnlUeXBlKFxuICAgICAgICAgIHBvaW50Lmdyb3VwLnR5cGUsXG4gICAgICAgICAgcG9pbnQubmFtZSxcbiAgICAgICAgICAnJyxcbiAgICAgICAgICBmYWxzZSxcbiAgICAgICAgICB0cnVlLFxuICAgICAgICApO1xuXG4gICAgICAgIGNvbnN0IGZvY3VzZWRJY29uID0gZ2V0UG9pbnRJY29uQnlUeXBlKFxuICAgICAgICAgIHBvaW50Lmdyb3VwLnR5cGUsXG4gICAgICAgICAgcG9pbnQubmFtZSxcbiAgICAgICAgICAnJyxcbiAgICAgICAgICB0cnVlLFxuICAgICAgICAgIGZhbHNlLFxuICAgICAgICApO1xuXG4gICAgICAgIGxldCBtYXJrZXIgPSBnZXRNYXJrZXIocG9pbnQpO1xuXG4gICAgICAgIGlmIChwb2ludC5oYXNfZGV2aWNlKSB7XG4gICAgICAgICAgbWFya2VyLnNldEljb24oaWNvbik7XG4gICAgICAgICAgLy8gVGhlIHVzZSBvZiBtYXJrZXIuX2lzSW5zaWRlIGlzIHRvIG92ZXJjb21lIHRoZSBpc3N1ZSB0aGF0IG1vdXNlb3ZlciBpcyBlbmRsZXNzbHkgdHJpZ2dlcmVkXG4gICAgICAgICAgLy8gYW5kIHdlIG5lZWQgaXQgb25sZXkgb25jZVxuICAgICAgICAgIG1hcmtlci5vbignbW91c2VvdmVyJywgKCkgPT4ge1xuICAgICAgICAgICAgaWYgKCFtYXJrZXIuX2lzSW5zaWRlKSB7XG4gICAgICAgICAgICAgIG1hcmtlci5faXNJbnNpZGUgPSB0cnVlO1xuICAgICAgICAgICAgICBtYXJrZXIuc2V0SWNvbihmb2N1c2VkSWNvbik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgbWFya2VyLm9uKCdtb3VzZW91dCcsICgpID0+IHtcbiAgICAgICAgICAgIG1hcmtlci5faXNJbnNpZGUgPSBmYWxzZTtcbiAgICAgICAgICAgIG1hcmtlci5zZXRJY29uKGljb24pO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgbWFya2VyLm9uKCdjbGljaycsICgpID0+IHtcbiAgICAgICAgICBoYW5kbGVNYXJrZXJDbGljayhwb2ludCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHBvaW50c0xheWVyUmVmLmN1cnJlbnQ/LmFkZExheWVyKG1hcmtlcik7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAocG9pbnRzTGF5ZXJSZWYuY3VycmVudC5nZXRMYXllcnMoKS5sZW5ndGgpIHtcbiAgICAgIG1hcC5maXRCb3VuZHMocG9pbnRzTGF5ZXJSZWYuY3VycmVudC5nZXRCb3VuZHMoKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIG1hcC5zZXRWaWV3KFszMi4yMTkxNTcsIDM0Ljk4MjQ4MV0sIDEyKTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgZ2V0TWFya2VyID0gKHBvaW50OiBJUG9pbnQpID0+IHtcbiAgICBpZiAocG9pbnQuaGFzX2RldmljZSA9PT0gdHJ1ZSkge1xuICAgICAgcmV0dXJuIEwubWFya2VyKFtwb2ludC5sYXRpdHVkZSwgcG9pbnQubG9uZ2l0dWRlXSwge1xuICAgICAgICBrYW5kb19vYmplY3RfaWQ6IHBvaW50LmlkLFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBMLmNpcmNsZU1hcmtlcihbcG9pbnQubGF0aXR1ZGUsIHBvaW50LmxvbmdpdHVkZV0sIHtcbiAgICAgICAgcmFkaXVzOiA0LCAvLyBjaXJjbGUgcmFkaXVzIGluIHBpeGVsc1xuICAgICAgICBjb2xvcjogJyMwMDAwMDAnLCAvLyBib3JkZXIgKHN0cm9rZSkgY29sb3JcbiAgICAgICAgd2VpZ2h0OiAxLCAvLyBib3JkZXIgKHN0cm9rZSkgd2lkdGhcbiAgICAgICAgZmlsbENvbG9yOiAnI2ZmZmZmZicsIC8vIGZpbGwgY29sb3IgKHdoaXRlKVxuICAgICAgICBmaWxsT3BhY2l0eTogMSwgLy8gZnVsbHkgb3BhcXVlXG4gICAgICAgIGthbmRvX29iamVjdF9pZDogcG9pbnQuaWQsXG4gICAgICB9KTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgYWRkRWRnZXMgPSAoKSA9PiB7XG4gICAgLy8gY29uc29sZS5sb2coJ2VkZ2VzJywgZWRnZXMpO1xuICAgIGlmICghbWFwIHx8ICFlZGdlcykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChlZGdlc0xheWVyUmVmLmN1cnJlbnQpIHtcbiAgICAgIGlmIChtYXAuaGFzTGF5ZXIoZWRnZXNMYXllclJlZi5jdXJyZW50KSkge1xuICAgICAgICBtYXAucmVtb3ZlTGF5ZXIoZWRnZXNMYXllclJlZi5jdXJyZW50KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBlZGdlc0xheWVyUmVmLmN1cnJlbnQgPSBMLmZlYXR1cmVHcm91cCgpO1xuICAgIGVkZ2VzTGF5ZXJSZWYuY3VycmVudC5hZGRUbyhtYXApO1xuXG4gICAgZWRnZXMuZm9yRWFjaCgoZWRnZSkgPT4ge1xuICAgICAgY29uc3Qgc291cmNlUG9pbnQgPSBwb2ludHMuZmluZChcbiAgICAgICAgKHBvaW50KSA9PiBwb2ludC5pZCA9PT0gZWRnZS5zb3VyY2VfcG9pbnRfaWQsXG4gICAgICApO1xuICAgICAgY29uc3QgdGFyZ2V0UG9pbnQgPSBwb2ludHMuZmluZChcbiAgICAgICAgKHBvaW50KSA9PiBwb2ludC5pZCA9PT0gZWRnZS50YXJnZXRfcG9pbnRfaWQsXG4gICAgICApO1xuICAgICAgLy8gY29uc29sZS5sb2coJ3NvdXJjZVBvaW50Jywgc291cmNlUG9pbnQpO1xuICAgICAgLy8gY29uc29sZS5sb2coJ3RhcmdldFBvaW50JywgdGFyZ2V0UG9pbnQpO1xuXG4gICAgICBpZiAoIXNvdXJjZVBvaW50IHx8ICF0YXJnZXRQb2ludCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGxhdGxuZ3MgPSBbXG4gICAgICAgIFtzb3VyY2VQb2ludD8ubGF0aXR1ZGUsIHNvdXJjZVBvaW50Py5sb25naXR1ZGVdLFxuICAgICAgICBbdGFyZ2V0UG9pbnQ/LmxhdGl0dWRlLCB0YXJnZXRQb2ludD8ubG9uZ2l0dWRlXSxcbiAgICAgIF07XG5cbiAgICAgIGNvbnN0IHBvbHlsaW5lID0gTC5wb2x5bGluZShsYXRsbmdzLCB7XG4gICAgICAgIGNvbG9yOiAnYmxhY2snLFxuICAgICAgICB3ZWlnaHQ6IDEsXG4gICAgICAgIG9wYWNpdHk6IDAuNSxcbiAgICAgICAgc21vb3RoRmFjdG9yOiAxLFxuICAgICAgfSk7XG5cbiAgICAgIGVkZ2VzTGF5ZXJSZWYuY3VycmVudD8uYWRkTGF5ZXIocG9seWxpbmUpO1xuICAgIH0pO1xuICB9O1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgYWRkTWFya2VycygpO1xuICAgIGFkZEVkZ2VzKCk7XG4gIH0sIFtwb2ludHMsIG1hcF0pO1xuXG4gIHJldHVybiBtYXA7XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBLElBQUFBLFFBQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLE1BQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLFVBQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLE1BQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLFNBQUEsR0FBQUosT0FBQTtBQUlPLElBQU1LLE1BQU0sR0FBRyxTQUFUQSxNQUFNQSxDQUNqQkMsTUFBdUMsRUFDdkNDLE1BQWdCLEVBQ2hCQyxLQUFjLEVBQ2RDLGFBQTRCLEVBQzVCQyxtQkFBNEMsRUFDdEI7RUFDdEIsSUFBQUMsU0FBQSxHQUFzQixJQUFBQyxlQUFRLEVBQVEsQ0FBQztJQUFBQyxVQUFBLE9BQUFDLGVBQUEsQ0FBQUMsT0FBQSxFQUFBSixTQUFBO0lBQWhDSyxHQUFHLEdBQUFILFVBQUE7SUFBRUksTUFBTSxHQUFBSixVQUFBO0VBQ2xCLElBQUFLLFVBQUEsR0FBMEMsSUFBQU4sZUFBUSxFQUFnQixJQUFJLENBQUM7SUFBQU8sVUFBQSxPQUFBTCxlQUFBLENBQUFDLE9BQUEsRUFBQUcsVUFBQTtJQUFoRUUsYUFBYSxHQUFBRCxVQUFBO0lBQUVFLGdCQUFnQixHQUFBRixVQUFBO0VBQ3RDLElBQU1HLGNBQWMsR0FBRyxJQUFBQyxhQUFNLEVBQWlCLENBQUM7RUFDL0MsSUFBTUMsYUFBYSxHQUFH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