@kando-env/kando-ui 1.2.395 → 1.2.397-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.
@@ -0,0 +1,232 @@
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
+ var pointLookup = new Map();
134
+ points.forEach(function (p) {
135
+ return pointLookup.set(p.id, p);
136
+ });
137
+ if (edgesLayerRef.current) {
138
+ if (map.hasLayer(edgesLayerRef.current)) {
139
+ map.removeLayer(edgesLayerRef.current);
140
+ }
141
+ }
142
+ edgesLayerRef.current = _leaflet.default.featureGroup();
143
+ edgesLayerRef.current.addTo(map);
144
+ edges.forEach(function (edge) {
145
+ var _edgesLayerRef$curren;
146
+ var sourcePoint = pointLookup.get(edge.source_point_id);
147
+ var targetPoint = pointLookup.get(edge.target_point_id);
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
+ var decorator = _leaflet.default.polylineDecorator(polyline, {
163
+ patterns: [{
164
+ offset: 20,
165
+ repeat: 60,
166
+ symbol: _leaflet.default.Symbol.arrowHead({
167
+ pixelSize: 4,
168
+ polygon: false,
169
+ pathOptions: {
170
+ stroke: true,
171
+ color: '#555',
172
+ weight: 1,
173
+ opacity: 0.8
174
+ }
175
+ })
176
+ }]
177
+ });
178
+ decorator.addTo(map);
179
+ });
180
+ };
181
+ var addAreas = function addAreas() {
182
+ if (!map || !areas) {
183
+ return;
184
+ }
185
+ if (areasLayerRef.current) {
186
+ if (map.hasLayer(areasLayerRef.current)) {
187
+ map.removeLayer(areasLayerRef.current);
188
+ }
189
+ }
190
+ areasLayerRef.current = _leaflet.default.featureGroup();
191
+ areasLayerRef.current.addTo(map);
192
+ var flattenAreas = function flattenAreas() {
193
+ var areas = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
194
+ var allAreas = [];
195
+ areas.forEach(function (area) {
196
+ allAreas.push(area);
197
+
198
+ // If there are sub_areas, recurse and concatenate
199
+ if (Array.isArray(area.sub_areas) && area.sub_areas.length > 0) {
200
+ allAreas = allAreas.concat(flattenAreas(area.sub_areas));
201
+ }
202
+ });
203
+ return allAreas;
204
+ };
205
+ var allAreas = flattenAreas(areas);
206
+ allAreas.forEach(function (area) {
207
+ var _areasLayerRef$curren;
208
+ var polygon = _leaflet.default.polygon(area.shape_data, {
209
+ color: 'black',
210
+ weight: 1,
211
+ opacity: 0.8,
212
+ smoothFactor: 1,
213
+ interactive: false,
214
+ kando_object_id: area.area_id
215
+ });
216
+ polygon.bindTooltip(area.area_name, {
217
+ permanent: true,
218
+ direction: 'center',
219
+ className: 'area-tooltip'
220
+ });
221
+ (_areasLayerRef$curren = areasLayerRef.current) === null || _areasLayerRef$curren === void 0 ? void 0 : _areasLayerRef$curren.addLayer(polygon);
222
+ });
223
+ };
224
+ (0, _react.useEffect)(function () {
225
+ addAreas();
226
+ addMarkers();
227
+ addEdges();
228
+ }, [points, map]);
229
+ return map;
230
+ };
231
+ exports.useMap = useMap;
232
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbGVhZmxldCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX3JlYWN0IiwiX1BvaW50SWNvbiIsIl90aGVtZSIsIl9NYXBVdGlscyIsInVzZU1hcCIsIm1hcFJlZiIsInBvaW50cyIsImVkZ2VzIiwiYXJlYXMiLCJzZWxlY3RlZFBvaW50IiwidXBkYXRlU2VsZWN0ZWRQb2ludCIsIl91c2VTdGF0ZSIsInVzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5MiIsImRlZmF1bHQiLCJtYXAiLCJzZXRNYXAiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsImZvY3VzZWRNYXJrZXIiLCJzZXRGb2N1c2VkTWFya2VyIiwicG9pbnRzTGF5ZXJSZWYiLCJ1c2VSZWYiLCJlZGdlc0xheWVyUmVmIiwiYXJlYXNMYXllclJlZiIsInVzZUVmZmVjdCIsImN1cnJlbnQiLCJtYXBUeXBlcyIsImJhc2VNYXBzIiwibGVhZmxldE1hcCIsIm1hcERlZmF1bHQiLCJzYXRlbGxpdGUiLCJtYXBUZW1wIiwiTCIsInJlbmRlcmVyIiwiY2FudmFzIiwiT2JqZWN0IiwidmFsdWVzIiwiYWRkVG8iLCJjb250cm9sIiwibGF5ZXJzIiwicG9zaXRpb24iLCJvZmYiLCJyZW1vdmUiLCJfcG9pbnRzTGF5ZXJSZWYkY3VycmUiLCJmaXJlIiwiZWFjaExheWVyIiwibWFya2VyIiwib3B0aW9ucyIsImthbmRvX29iamVjdF9pZCIsImlkIiwiaGFuZGxlTWFya2VyQ2xpY2siLCJwb2ludCIsImFkZE1hcmtlcnMiLCJoYXNMYXllciIsInJlbW92ZUxheWVyIiwiZmVhdHVyZUdyb3VwIiwiZ2V0TGF5ZXJzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9wb2ludHNMYXllclJlZiRjdXJyZTIiLCJpY29uIiwiZ2V0UG9pbnRJY29uQnlUeXBlIiwiZ3JvdXAiLCJ0eXBlIiwibmFtZSIsImZvY3VzZWRJY29uIiwiZ2V0TWFya2VyIiwiTWFya2VyIiwic2V0SWNvbiIsIm9uIiwiX2lzSW5zaWRlIiwiYWRkTGF5ZXIiLCJmaXRCb3VuZHMiLCJnZXRCb3VuZHMiLCJzZXRWaWV3IiwiaGFzX2RldmljZSIsImxhdGl0dWRlIiwibG9uZ2l0dWRlIiwiY2lyY2xlTWFya2VyIiwicmFkaXVzIiwiY29sb3IiLCJ3ZWlnaHQiLCJmaWxsQ29sb3IiLCJmaWxsT3BhY2l0eSIsImFkZEVkZ2VzIiwicG9pbnRMb29rdXAiLCJNYXAiLCJwIiwic2V0IiwiZWRnZSIsIl9lZGdlc0xheWVyUmVmJGN1cnJlbiIsInNvdXJjZVBvaW50IiwiZ2V0Iiwic291cmNlX3BvaW50X2lkIiwidGFyZ2V0UG9pbnQiLCJ0YXJnZXRfcG9pbnRfaWQiLCJsYXRsbmdzIiwicG9seWxpbmUiLCJvcGFjaXR5Iiwic21vb3RoRmFjdG9yIiwiZGVjb3JhdG9yIiwicG9seWxpbmVEZWNvcmF0b3IiLCJwYXR0ZXJucyIsIm9mZnNldCIsInJlcGVhdCIsInN5bWJvbCIsIlN5bWJvbCIsImFycm93SGVhZCIsInBpeGVsU2l6ZSIsInBvbHlnb24iLCJwYXRoT3B0aW9ucyIsInN0cm9rZSIsImFkZEFyZWFzIiwiZmxhdHRlbkFyZWFzIiwiYXJndW1lbnRzIiwidW5kZWZpbmVkIiwiYWxsQXJlYXMiLCJhcmVhIiwicHVzaCIsIkFycmF5IiwiaXNBcnJheSIsInN1Yl9hcmVhcyIsImNvbmNhdCIsIl9hcmVhc0xheWVyUmVmJGN1cnJlbiIsInNoYXBlX2RhdGEiLCJpbnRlcmFjdGl2ZSIsImFyZWFfaWQiLCJiaW5kVG9vbHRpcCIsImFyZWFfbmFtZSIsInBlcm1hbmVudCIsImRpcmVjdGlvbiIsImNsYXNzTmFtZSIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcGFnZXMvT3BlcmF0aW9uc1BhZ2UvTWFwL3VzZU1hcC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEwsIHsgTWFya2VyIH0gZnJvbSAnbGVhZmxldCc7XG5pbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgZ2V0UG9pbnRJY29uQnlUeXBlIH0gZnJvbSAnc3JjL1dpZGdldHMvTWFwL3BvaW50cy9Qb2ludEljb24nO1xuaW1wb3J0IHsgbGVhZmxldE1hcCB9IGZyb20gJ3NyYy9zdHlsZXMvdGhlbWUvdGhlbWUnO1xuaW1wb3J0IHsgYmFzZU1hcHMgfSBmcm9tICdzcmMvV2lkZ2V0cy9NYXAvTWFwVXRpbHMnO1xuaW1wb3J0IHsgSVBvaW50IH0gZnJvbSAnc3JjL3N0b3JlL3BvaW50cy9tb2RlbHMvSVBvaW50JztcbmltcG9ydCB7IElFZGdlIH0gZnJvbSAnc3JjL3N0b3JlL2VkZ2VzL21vZGVscy9JRWRnZSc7XG5pbXBvcnQgeyBJQXJlYSB9IGZyb20gJ3NyYy9zdG9yZS9hcmVhcy9tb2RlbHMvSUFyZWEnO1xuXG5leHBvcnQgY29uc3QgdXNlTWFwID0gKFxuICBtYXBSZWY6IFJlYWN0LlJlZk9iamVjdDxIVE1MRGl2RWxlbWVudD4sXG4gIHBvaW50czogSVBvaW50W10sXG4gIGVkZ2VzOiBJRWRnZVtdLFxuICBhcmVhczogSUFyZWFbXSxcbiAgc2VsZWN0ZWRQb2ludDogSVBvaW50IHwgbnVsbCxcbiAgdXBkYXRlU2VsZWN0ZWRQb2ludDogKHBvaW50OiBJUG9pbnQpID0+IHZvaWQsXG4pOiBMLk1hcCB8IHVuZGVmaW5lZCA9PiB7XG4gIGNvbnN0IFttYXAsIHNldE1hcF0gPSB1c2VTdGF0ZTxMLk1hcD4oKTtcbiAgY29uc3QgW2ZvY3VzZWRNYXJrZXIsIHNldEZvY3VzZWRNYXJrZXJdID0gdXNlU3RhdGU8TWFya2VyIHwgbnVsbD4obnVsbCk7XG4gIGNvbnN0IHBvaW50c0xheWVyUmVmID0gdXNlUmVmPEwuRmVhdHVyZUdyb3VwPigpO1xuICBjb25zdCBlZGdlc0xheWVyUmVmID0gdXNlUmVmPEwuRmVhdHVyZUdyb3VwPigpO1xuICBjb25zdCBhcmVhc0xheWVyUmVmID0gdXNlUmVmPEwuRmVhdHVyZUdyb3VwPigpO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFtYXBSZWYuY3VycmVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IG1hcFR5cGVzID0gYmFzZU1hcHMobGVhZmxldE1hcC5tYXBEZWZhdWx0LCBsZWFmbGV0TWFwLnNhdGVsbGl0ZSk7XG4gICAgY29uc3QgbWFwVGVtcCA9IEwubWFwKG1hcFJlZi5jdXJyZW50LCB7IHJlbmRlcmVyOiBMLmNhbnZhcygpIH0pO1xuXG4gICAgT2JqZWN0LnZhbHVlcyhtYXBUeXBlcylbMF0uYWRkVG8obWFwVGVtcCk7XG5cbiAgICBMLmNvbnRyb2wubGF5ZXJzKG1hcFR5cGVzLCB7fSwgeyBwb3NpdGlvbjogJ2JvdHRvbXJpZ2h0JyB9KS5hZGRUbyhtYXBUZW1wKTtcblxuICAgIHNldE1hcChtYXBUZW1wKTtcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBpZiAoIW1hcFRlbXApIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgbWFwVGVtcC5vZmYoKTtcbiAgICAgIG1hcFRlbXAucmVtb3ZlKCk7XG4gICAgfTtcbiAgfSwgW10pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGZvY3VzZWRNYXJrZXIpIHtcbiAgICAgIGZvY3VzZWRNYXJrZXIuZmlyZSgnbW91c2VvdXQnKTtcbiAgICB9XG5cbiAgICBwb2ludHNMYXllclJlZi5jdXJyZW50Py5lYWNoTGF5ZXIoKG1hcmtlcikgPT4ge1xuICAgICAgaWYgKFxuICAgICAgICBzZWxlY3RlZFBvaW50ICYmXG4gICAgICAgIG1hcmtlci5vcHRpb25zLmthbmRvX29iamVjdF9pZCA9PT0gc2VsZWN0ZWRQb2ludD8uaWRcbiAgICAgICkge1xuICAgICAgICBtYXJrZXIuZmlyZSgnbW91c2VvdmVyJyk7XG4gICAgICAgIHNldEZvY3VzZWRNYXJrZXIobWFya2VyKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH0pO1xuICB9LCBbc2VsZWN0ZWRQb2ludF0pO1xuXG4gIGNvbnN0IGhhbmRsZU1hcmtlckNsaWNrID0gKHBvaW50KSA9PiB7XG4gICAgdXBkYXRlU2VsZWN0ZWRQb2ludChwb2ludCk7XG4gIH07XG5cbiAgY29uc3QgYWRkTWFya2VycyA9ICgpID0+IHtcbiAgICBpZiAoIW1hcCB8fCAhcG9pbnRzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHBvaW50c0xheWVyUmVmLmN1cnJlbnQpIHtcbiAgICAgIGlmIChtYXAuaGFzTGF5ZXIocG9pbnRzTGF5ZXJSZWYuY3VycmVudCkpIHtcbiAgICAgICAgbWFwLnJlbW92ZUxheWVyKHBvaW50c0xheWVyUmVmLmN1cnJlbnQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHBvaW50c0xheWVyUmVmLmN1cnJlbnQgPSBMLmZlYXR1cmVHcm91cCgpO1xuICAgIHBvaW50c0xheWVyUmVmLmN1cnJlbnQuYWRkVG8obWFwKTtcblxuICAgIGlmICghcG9pbnRzTGF5ZXJSZWYuY3VycmVudC5nZXRMYXllcnMoKS5sZW5ndGgpIHtcbiAgICAgIHBvaW50cy5mb3JFYWNoKChwb2ludCkgPT4ge1xuICAgICAgICBjb25zdCBpY29uID0gZ2V0UG9pbnRJY29uQnlUeXBlKFxuICAgICAgICAgIHBvaW50Lmdyb3VwLnR5cGUsXG4gICAgICAgICAgcG9pbnQubmFtZSxcbiAgICAgICAgICAnJyxcbiAgICAgICAgICBmYWxzZSxcbiAgICAgICAgICB0cnVlLFxuICAgICAgICApO1xuXG4gICAgICAgIGNvbnN0IGZvY3VzZWRJY29uID0gZ2V0UG9pbnRJY29uQnlUeXBlKFxuICAgICAgICAgIHBvaW50Lmdyb3VwLnR5cGUsXG4gICAgICAgICAgcG9pbnQubmFtZSxcbiAgICAgICAgICAnJyxcbiAgICAgICAgICB0cnVlLFxuICAgICAgICAgIGZhbHNlLFxuICAgICAgICApO1xuXG4gICAgICAgIGxldCBtYXJrZXIgPSBnZXRNYXJrZXIocG9pbnQpO1xuXG4gICAgICAgIGlmIChtYXJrZXIgaW5zdGFuY2VvZiBMLk1hcmtlcikge1xuICAgICAgICAgIG1hcmtlci5zZXRJY29uKGljb24pO1xuICAgICAgICAgIC8vIFRoZSB1c2Ugb2YgbWFya2VyLl9pc0luc2lkZSBpcyB0byBvdmVyY29tZSB0aGUgaXNzdWUgdGhhdCBtb3VzZW92ZXIgaXMgZW5kbGVzc2x5IHRyaWdnZXJlZFxuICAgICAgICAgIC8vIGFuZCB3ZSBuZWVkIGl0IG9ubGV5IG9uY2VcbiAgICAgICAgICBtYXJrZXIub24oJ21vdXNlb3ZlcicsICgpID0+IHtcbiAgICAgICAgICAgIGlmICghbWFya2VyLl9pc0luc2lkZSkge1xuICAgICAgICAgICAgICBtYXJrZXIuX2lzSW5zaWRlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgbWFya2VyLnNldEljb24oZm9jdXNlZEljb24pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICAgIG1hcmtlci5vbignbW91c2VvdXQnLCAoKSA9PiB7XG4gICAgICAgICAgICBtYXJrZXIuX2lzSW5zaWRlID0gZmFsc2U7XG4gICAgICAgICAgICBtYXJrZXIuc2V0SWNvbihpY29uKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIG1hcmtlci5vbignY2xpY2snLCAoKSA9PiB7XG4gICAgICAgICAgaGFuZGxlTWFya2VyQ2xpY2socG9pbnQpO1xuICAgICAgICB9KTtcblxuICAgICAgICBwb2ludHNMYXllclJlZi5jdXJyZW50Py5hZGRMYXllcihtYXJrZXIpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKHBvaW50c0xheWVyUmVmLmN1cnJlbnQuZ2V0TGF5ZXJzKCkubGVuZ3RoKSB7XG4gICAgICBtYXAuZml0Qm91bmRzKHBvaW50c0xheWVyUmVmLmN1cnJlbnQuZ2V0Qm91bmRzKCkpO1xuICAgIH0gZWxzZSB7XG4gICAgICBtYXAuc2V0VmlldyhbMzIuMjE5MTU3LCAzNC45ODI0ODFdLCAxMik7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IGdldE1hcmtlciA9IChwb2ludDogSVBvaW50KSA9PiB7XG4gICAgaWYgKFxuICAgICAgcG9pbnQuaGFzX2RldmljZSA9PT0gdHJ1ZSB8fFxuICAgICAgcG9pbnQuZ3JvdXAudHlwZSA9PT0gJ0dyb3Vwczo6V2FzdGV3YXRlclRyZWF0bWVudFBsYW50J1xuICAgICkge1xuICAgICAgcmV0dXJuIEwubWFya2VyKFtwb2ludC5sYXRpdHVkZSwgcG9pbnQubG9uZ2l0dWRlXSwge1xuICAgICAgICBrYW5kb19vYmplY3RfaWQ6IHBvaW50LmlkLFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBMLmNpcmNsZU1hcmtlcihbcG9pbnQubGF0aXR1ZGUsIHBvaW50LmxvbmdpdHVkZV0sIHtcbiAgICAgICAgcmFkaXVzOiA0LCAvLyBjaXJjbGUgcmFkaXVzIGluIHBpeGVsc1xuICAgICAgICBjb2xvcjogJyMwMDAwMDAnLCAvLyBib3JkZXIgKHN0cm9rZSkgY29sb3JcbiAgICAgICAgd2VpZ2h0OiAxLCAvLyBib3JkZXIgKHN0cm9rZSkgd2lkdGhcbiAgICAgICAgZmlsbENvbG9yOiAnI2ZmZmZmZicsIC8vIGZpbGwgY29sb3IgKHdoaXRlKVxuICAgICAgICBmaWxsT3BhY2l0eTogMSwgLy8gZnVsbHkgb3BhcXVlXG4gICAgICAgIGthbmRvX29iamVjdF9pZDogcG9pbnQuaWQsXG4gICAgICB9KTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgYWRkRWRnZXMgPSAoKSA9PiB7XG4gICAgLy8gY29uc29sZS5sb2coJ2VkZ2VzJywgZWRnZXMpO1xuICAgIGlmICghbWFwIHx8ICFlZGdlcykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHBvaW50TG9va3VwID0gbmV3IE1hcCgpO1xuICAgIHBvaW50cy5mb3JFYWNoKChwKSA9PiBwb2ludExvb2t1cC5zZXQocC5pZCwgcCkpO1xuXG4gICAgaWYgKGVkZ2VzTGF5ZXJSZWYuY3VycmVudCkge1xuICAgICAgaWYgKG1hcC5oYXNMYXllcihlZGdlc0xheWVyUmVmLmN1cnJlbnQpKSB7XG4gICAgICAgIG1hcC5yZW1vdmVMYXllcihlZGdlc0xheWVyUmVmLmN1cnJlbnQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGVkZ2VzTGF5ZXJSZWYuY3VycmVudCA9IEwuZmVhdHVyZUdyb3VwKCk7XG4gICAgZWRnZXNMYXllclJlZi5jdXJyZW50LmFkZFRvKG1hcCk7XG5cbiAgICBlZGdlcy5mb3JFYWNoKChlZGdlKSA9PiB7XG4gICAgICBjb25zdCBzb3VyY2VQb2ludCA9IHBvaW50TG9va3VwLmdldChlZGdlLnNvdXJjZV9wb2ludF9pZCk7XG4gICAgICBjb25zdCB0YXJnZXRQb2ludCA9IHBvaW50TG9va3VwLmdldChlZGdlLnRhcmdldF9wb2ludF9pZCk7XG4gICAgICAvLyBjb25zb2xlLmxvZygnc291cmNlUG9pbnQnLCBzb3VyY2VQb2ludCk7XG4gICAgICAvLyBjb25zb2xlLmxvZygndGFyZ2V0UG9pbnQnLCB0YXJnZXRQb2ludCk7XG5cbiAgICAgIGlmICghc291cmNlUG9pbnQgfHwgIXRhcmdldFBvaW50KSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3QgbGF0bG5ncyA9IFtcbiAgICAgICAgW3NvdXJjZVBvaW50Py5sYXRpdHVkZSwgc291cmNlUG9pbnQ/LmxvbmdpdHVkZV0sXG4gICAgICAgIFt0YXJnZXRQb2ludD8ubGF0aXR1ZGUsIHRhcmdldFBvaW50Py5sb25naXR1ZGVdLFxuICAgICAgXTtcblxuICAgICAgY29uc3QgcG9seWxpbmUgPSBMLnBvbHlsaW5lKGxhdGxuZ3MsIHtcbiAgICAgICAgY29sb3I6ICdibGFjaycsXG4gICAgICAgIHdlaWdodDogMSxcbiAgICAgICAgb3BhY2l0eTogMC41LFxuICAgICAgICBzbW9vdGhGYWN0b3I6IDEsXG4gICAgICB9KTtcblxuICAgICAgZWRnZXNMYXllclJlZi5jdXJyZW50Py5hZGRMYXllcihwb2x5bGluZSk7XG5cbiAgICAgIGNvbnN0IGRlY29yYXRvciA9IEwucG9seWxpbmVEZWNvcmF0b3IocG9seWxpbmUsIHtcbiAgICAgICAgcGF0dGVybnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBvZmZzZXQ6IDIwLFxuICAgICAgICAgICAgcmVwZWF0OiA2MCxcbiAgICAgICAgICAgIHN5bWJvbDogTC5TeW1ib2wuYXJyb3dIZWFkKHtcbiAgICAgICAgICAgICAgcGl4ZWxTaXplOiA0LFxuICAgICAgICAgICAgICBwb2x5Z29uOiBmYWxzZSxcbiAgICAgICAgICAgICAgcGF0aE9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICBzdHJva2U6IHRydWUsXG4gICAgICAgICAgICAgICAgY29sb3I6ICcjNTU1JyxcbiAgICAgICAgICAgICAgICB3ZWlnaHQ6IDEsXG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC44LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0pO1xuXG4gICAgICBkZWNvcmF0b3IuYWRkVG8obWFwKTtcbiAgICB9KTtcbiAgfTtcblxuICBjb25zdCBhZGRBcmVhcyA9ICgpID0+IHtcbiAgICBpZiAoIW1hcCB8fCAhYXJlYXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoYXJlYXNMYXllclJlZi5jdXJyZW50KSB7XG4gICAgICBpZiAobWFwLmhhc0xheWVyKGFyZWFzTGF5ZXJSZWYuY3VycmVudCkpIHtcbiAgICAgICAgbWFwLnJlbW92ZUxheWVyKGFyZWFzTGF5ZXJSZWYuY3VycmVudCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgYXJlYXNMYXllclJlZi5jdXJyZW50ID0gTC5mZWF0dXJlR3JvdXAoKTtcbiAgICBhcmVhc0xheWVyUmVmLmN1cnJlbnQuYWRkVG8obWFwKTtcblxuICAgIGNvbnN0IGZsYXR0ZW5BcmVhcyA9IChhcmVhczogSUFyZWFbXSA9IFtdKTogSUFyZWFbXSA9PiB7XG4gICAgICBsZXQgYWxsQXJlYXM6IElBcmVhW10gPSBbXTtcblxuICAgICAgYXJlYXMuZm9yRWFjaCgoYXJlYTogSUFyZWEpID0+IHtcbiAgICAgICAgYWxsQXJlYXMucHVzaChhcmVhKTtcblxuICAgICAgICAvLyBJZiB0aGVyZSBhcmUgc3ViX2FyZWFzLCByZWN1cnNlIGFuZCBjb25jYXRlbmF0ZVxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShhcmVhLnN1Yl9hcmVhcykgJiYgYXJlYS5zdWJfYXJlYXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgIGFsbEFyZWFzID0gYWxsQXJlYXMuY29uY2F0KGZsYXR0ZW5BcmVhcyhhcmVhLnN1Yl9hcmVhcykpO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgcmV0dXJuIGFsbEFyZWFzO1xuICAgIH07XG5cbiAgICBjb25zdCBhbGxBcmVhcyA9IGZsYXR0ZW5BcmVhcyhhcmVhcyk7XG5cbiAgICBhbGxBcmVhcy5mb3JFYWNoKChhcmVhKSA9PiB7XG4gICAgICBjb25zdCBwb2x5Z29uID0gTC5wb2x5Z29uKGFyZWEuc2hhcGVfZGF0YSwge1xuICAgICAgICBjb2xvcjogJ2JsYWNrJyxcbiAgICAgICAgd2VpZ2h0OiAxLFxuICAgICAgICBvcGFjaXR5OiAwLjgsXG4gICAgICAgIHNtb290aEZhY3RvcjogMSxcbiAgICAgICAgaW50ZXJhY3RpdmU6IGZhbHNlLFxuICAgICAgICBrYW5kb19vYmplY3RfaWQ6IGFyZWEuYXJlYV9pZCxcbiAgICAgIH0pO1xuXG4gICAgICBwb2x5Z29uLmJpbmRUb29sdGlwKGFyZWEuYXJlYV9uYW1lLCB7XG4gICAgICAgIHBlcm1hbmVudDogdHJ1ZSxcbiAgICAgICAgZGlyZWN0aW9uOiAnY2VudGVyJyxcbiAgICAgICAgY2xhc3NOYW1lOiAnYXJlYS10b29sdGlwJyxcbiAgICAgIH0pO1xuXG4gICAgICBhcmVhc0xheWVyUmVmLmN1cnJlbnQ/LmFkZExheWVyKHBvbHlnb24pO1xuICAgIH0pO1xuICB9O1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgYWRkQXJlYXMoKTtcbiAgICBhZGRNYXJrZXJzKCk7XG4gICAgYWRkRWRn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
@@ -0,0 +1,149 @@
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.default = void 0;
9
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/slicedToArray"));
10
+ require("./OperationsPage.scss");
11
+ var _react = _interopRequireWildcard(require("react"));
12
+ var _reactRedux = require("react-redux");
13
+ var _reactBootstrap = require("react-bootstrap");
14
+ var _actions = require("store/context/actions");
15
+ var _actions2 = require("store/points/actions");
16
+ var _actions3 = require("store/edges/actions");
17
+ var _Map = require("./Map/Map");
18
+ var _LeftPanel = _interopRequireDefault(require("./LeftPanel"));
19
+ var _RightPanel = _interopRequireDefault(require("./RightPanel"));
20
+ var _actions4 = require("store/areas/actions");
21
+ var _KandoAlert = require("ui-kit/Alert/KandoAlert");
22
+ 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); }
23
+ 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; }
24
+ var OperationsPage = function OperationsPage() {
25
+ var dispatch = (0, _reactRedux.useDispatch)();
26
+ var points_data = (0, _reactRedux.useSelector)(function (state) {
27
+ return state.points_data;
28
+ });
29
+ var edges_data = (0, _reactRedux.useSelector)(function (state) {
30
+ return state.edges_data;
31
+ });
32
+ var areas_data = (0, _reactRedux.useSelector)(function (state) {
33
+ return state.areas_data;
34
+ });
35
+ var global_data = (0, _reactRedux.useSelector)(function (state) {
36
+ return state.global_data;
37
+ });
38
+ var _useState = (0, _react.useState)(false),
39
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
40
+ showRightPanel = _useState2[0],
41
+ setShowRightPanel = _useState2[1];
42
+ var _useState3 = (0, _react.useState)(null),
43
+ _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
44
+ selectedPoint = _useState4[0],
45
+ setSelectedPoint = _useState4[1];
46
+ var _useState5 = (0, _react.useState)(false),
47
+ _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
48
+ isSmallScreen = _useState6[0],
49
+ setIsSmallScreen = _useState6[1];
50
+ var handleSelectPoint = function handleSelectPoint(newPoint) {
51
+ if (selectedPoint && newPoint.id === selectedPoint.id) {
52
+ setSelectedPoint(null);
53
+ } else {
54
+ setSelectedPoint(newPoint);
55
+ }
56
+ };
57
+ (0, _react.useEffect)(function () {
58
+ dispatch((0, _actions.updateNavContext)({
59
+ name: 'operations'
60
+ }));
61
+ var checkScreenSize = function checkScreenSize() {
62
+ setIsSmallScreen(window.innerWidth < 768); // or any breakpoint
63
+ };
64
+
65
+ // Run on mount:
66
+ checkScreenSize();
67
+
68
+ // Also update if the user resizes the browser:
69
+ window.addEventListener('resize', checkScreenSize);
70
+ return function () {
71
+ window.removeEventListener('resize', checkScreenSize);
72
+ };
73
+ }, []);
74
+ (0, _react.useEffect)(function () {
75
+ if (global_data.waterAuthorityId) {
76
+ dispatch((0, _actions2.fetchPoints)(global_data.waterAuthorityId));
77
+ dispatch((0, _actions3.fetchEdges)(global_data.waterAuthorityId));
78
+ dispatch((0, _actions4.fetchAreas)(global_data.waterAuthorityId));
79
+ }
80
+ }, [global_data.waterAuthorityId]);
81
+ var monitoredPoints = (0, _react.useMemo)(function () {
82
+ var _points_data$items;
83
+ return ((_points_data$items = points_data.items) === null || _points_data$items === void 0 ? void 0 : _points_data$items.filter(function (point) {
84
+ return point.has_device;
85
+ })) || [];
86
+ }, [points_data.items]);
87
+ var points = (0, _react.useMemo)(function () {
88
+ var _points_data$items2;
89
+ return ((_points_data$items2 = points_data.items) === null || _points_data$items2 === void 0 ? void 0 : _points_data$items2.filter(function (point) {
90
+ return point.latitude && point.longitude;
91
+ })) || [];
92
+ }, [points_data.items]);
93
+ var showLeftPanel = (0, _react.useMemo)(function () {
94
+ return /*#__PURE__*/_react.default.createElement(_LeftPanel.default, {
95
+ points: monitoredPoints,
96
+ selectedPoint: selectedPoint,
97
+ setSelectedPoint: setSelectedPoint
98
+ });
99
+ }, [monitoredPoints, selectedPoint]);
100
+ (0, _react.useEffect)(function () {
101
+ if (selectedPoint) {
102
+ setShowRightPanel(true);
103
+ } else {
104
+ setShowRightPanel(false);
105
+ }
106
+ }, [selectedPoint]);
107
+ var onRightPanelClose = function onRightPanelClose() {
108
+ setSelectedPoint(null);
109
+ };
110
+ var getDistance = function getDistance() {
111
+ if (selectedPoint && edges_data.items) {
112
+ var edge = edges_data.items.find(function (edge) {
113
+ return edge.source_point_id === selectedPoint.id;
114
+ });
115
+ return (edge === null || edge === void 0 ? void 0 : edge.distance) || 0;
116
+ }
117
+ return 0;
118
+ };
119
+ if (isSmallScreen) {
120
+ return /*#__PURE__*/_react.default.createElement(_KandoAlert.KandoAlert, {
121
+ variant: "success",
122
+ header: "Notice"
123
+ }, /*#__PURE__*/_react.default.createElement("h5", null, 'This page is not supported on small screens'), /*#__PURE__*/_react.default.createElement("p", null, 'Please use a larger screen for the best experience.'));
124
+ }
125
+ return /*#__PURE__*/_react.default.createElement(_reactBootstrap.Container, {
126
+ fluid: true,
127
+ className: "vh-90 p-0"
128
+ }, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Row, null, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Col, {
129
+ sm: 3,
130
+ className: "left-panel"
131
+ }, showLeftPanel), /*#__PURE__*/_react.default.createElement(_reactBootstrap.Col, {
132
+ className: "map-column",
133
+ sm: 9
134
+ }, !edges_data.isFetching && !areas_data.isFetching && /*#__PURE__*/_react.default.createElement(_Map.Map, {
135
+ points: points,
136
+ edges: edges_data.items,
137
+ areas: areas_data.newAreas,
138
+ selectedPoint: selectedPoint,
139
+ updateSelectedPoint: handleSelectPoint
140
+ }), /*#__PURE__*/_react.default.createElement(_RightPanel.default, {
141
+ className: "right-panel ".concat(showRightPanel ? 'open' : ''),
142
+ point: selectedPoint,
143
+ distance: getDistance(),
144
+ onClose: onRightPanelClose
145
+ }))));
146
+ };
147
+ var _default = OperationsPage;
148
+ exports.default = _default;
149
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJyZXF1aXJlIiwiX3JlYWN0IiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfcmVhY3RSZWR1eCIsIl9yZWFjdEJvb3RzdHJhcCIsIl9hY3Rpb25zIiwiX2FjdGlvbnMyIiwiX2FjdGlvbnMzIiwiX01hcCIsIl9MZWZ0UGFuZWwiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX1JpZ2h0UGFuZWwiLCJfYWN0aW9uczQiLCJfS2FuZG9BbGVydCIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsIm5vZGVJbnRlcm9wIiwiV2Vha01hcCIsImNhY2hlQmFiZWxJbnRlcm9wIiwiY2FjaGVOb2RlSW50ZXJvcCIsIm9iaiIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiZGVmYXVsdCIsImNhY2hlIiwiaGFzIiwiZ2V0IiwibmV3T2JqIiwiaGFzUHJvcGVydHlEZXNjcmlwdG9yIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJrZXkiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJkZXNjIiwic2V0IiwiT3BlcmF0aW9uc1BhZ2UiLCJkaXNwYXRjaCIsInVzZURpc3BhdGNoIiwicG9pbnRzX2RhdGEiLCJ1c2VTZWxlY3RvciIsInN0YXRlIiwiZWRnZXNfZGF0YSIsImFyZWFzX2RhdGEiLCJnbG9iYWxfZGF0YSIsIl91c2VTdGF0ZSIsInVzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5MiIsInNob3dSaWdodFBhbmVsIiwic2V0U2hvd1JpZ2h0UGFuZWwiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsInNlbGVjdGVkUG9pbnQiLCJzZXRTZWxlY3RlZFBvaW50IiwiX3VzZVN0YXRlNSIsIl91c2VTdGF0ZTYiLCJpc1NtYWxsU2NyZWVuIiwic2V0SXNTbWFsbFNjcmVlbiIsImhhbmRsZVNlbGVjdFBvaW50IiwibmV3UG9pbnQiLCJpZCIsInVzZUVmZmVjdCIsInVwZGF0ZU5hdkNvbnRleHQiLCJuYW1lIiwiY2hlY2tTY3JlZW5TaXplIiwid2luZG93IiwiaW5uZXJXaWR0aCIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwid2F0ZXJBdXRob3JpdHlJZCIsImZldGNoUG9pbnRzIiwiZmV0Y2hFZGdlcyIsImZldGNoQXJlYXMiLCJtb25pdG9yZWRQb2ludHMiLCJ1c2VNZW1vIiwiX3BvaW50c19kYXRhJGl0ZW1zIiwiaXRlbXMiLCJmaWx0ZXIiLCJwb2ludCIsImhhc19kZXZpY2UiLCJwb2ludHMiLCJfcG9pbnRzX2RhdGEkaXRlbXMyIiwibGF0aXR1ZGUiLCJsb25naXR1ZGUiLCJzaG93TGVmdFBhbmVsIiwiY3JlYXRlRWxlbWVudCIsIm9uUmlnaHRQYW5lbENsb3NlIiwiZ2V0RGlzdGFuY2UiLCJlZGdlIiwiZmluZCIsInNvdXJjZV9wb2ludF9pZCIsImRpc3RhbmNlIiwiS2FuZG9BbGVydCIsInZhcmlhbnQiLCJoZWFkZXIiLCJDb250YWluZXIiLCJmbHVpZCIsImNsYXNzTmFtZSIsIlJvdyIsIkNvbCIsInNtIiwiaXNGZXRjaGluZyIsIk1hcCIsImVkZ2VzIiwiYXJlYXMiLCJuZXdBcmVhcyIsInVwZGF0ZVNlbGVjdGVkUG9pbnQiLCJjb25jYXQiLCJvbkNsb3NlIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3BhZ2VzL09wZXJhdGlvbnNQYWdlL09wZXJhdGlvbnNQYWdlLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJy4vT3BlcmF0aW9uc1BhZ2Uuc2Nzcyc7XG5pbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VNZW1vLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZURpc3BhdGNoLCB1c2VTZWxlY3RvciB9IGZyb20gJ3JlYWN0LXJlZHV4JztcbmltcG9ydCB7IENvbCwgQ29udGFpbmVyLCBSb3cgfSBmcm9tICdyZWFjdC1ib290c3RyYXAnO1xuaW1wb3J0IHsgdXBkYXRlTmF2Q29udGV4dCB9IGZyb20gJ3NyYy9zdG9yZS9jb250ZXh0L2FjdGlvbnMnO1xuaW1wb3J0IHsgZmV0Y2hQb2ludHMgfSBmcm9tICdzcmMvc3RvcmUvcG9pbnRzL2FjdGlvbnMnO1xuaW1wb3J0IHsgZmV0Y2hFZGdlcyB9IGZyb20gJ3NyYy9zdG9yZS9lZGdlcy9hY3Rpb25zJztcbmltcG9ydCB7IElQb2ludCB9IGZyb20gJ3NyYy9zdG9yZS9wb2ludHMvbW9kZWxzL0lQb2ludCc7XG5pbXBvcnQgeyBNYXAgfSBmcm9tICcuL01hcC9NYXAnO1xuaW1wb3J0IExlZnRQYW5lbCBmcm9tICcuL0xlZnRQYW5lbCc7XG5pbXBvcnQgUmlnaHRQYW5lbCBmcm9tICcuL1JpZ2h0UGFuZWwnO1xuaW1wb3J0IHsgZmV0Y2hBcmVhcyB9IGZyb20gJ3NyYy9zdG9yZS9hcmVhcy9hY3Rpb25zJztcbmltcG9ydCB7IEthbmRvQWxlcnQgfSBmcm9tICdzcmMvdWkta2l0L0FsZXJ0L0thbmRvQWxlcnQnO1xuXG5jb25zdCBPcGVyYXRpb25zUGFnZTogUmVhY3QuRkMgPSAoKSA9PiB7XG4gIGNvbnN0IGRpc3BhdGNoID0gdXNlRGlzcGF0Y2goKTtcbiAgY29uc3QgcG9pbnRzX2RhdGEgPSB1c2VTZWxlY3Rvcigoc3RhdGUpID0+IHN0YXRlLnBvaW50c19kYXRhKTtcbiAgY29uc3QgZWRnZXNfZGF0YSA9IHVzZVNlbGVjdG9yKChzdGF0ZSkgPT4gc3RhdGUuZWRnZXNfZGF0YSk7XG4gIGNvbnN0IGFyZWFzX2RhdGEgPSB1c2VTZWxlY3Rvcigoc3RhdGUpID0+IHN0YXRlLmFyZWFzX2RhdGEpO1xuICBjb25zdCBnbG9iYWxfZGF0YSA9IHVzZVNlbGVjdG9yKChzdGF0ZSkgPT4gc3RhdGUuZ2xvYmFsX2RhdGEpO1xuICBjb25zdCBbc2hvd1JpZ2h0UGFuZWwsIHNldFNob3dSaWdodFBhbmVsXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgY29uc3QgW3NlbGVjdGVkUG9pbnQsIHNldFNlbGVjdGVkUG9pbnRdID0gdXNlU3RhdGU8SVBvaW50IHwgbnVsbD4obnVsbCk7XG4gIGNvbnN0IFtpc1NtYWxsU2NyZWVuLCBzZXRJc1NtYWxsU2NyZWVuXSA9IHVzZVN0YXRlKGZhbHNlKTtcblxuICBjb25zdCBoYW5kbGVTZWxlY3RQb2ludCA9IChuZXdQb2ludDogSVBvaW50KSA9PiB7XG4gICAgaWYgKHNlbGVjdGVkUG9pbnQgJiYgbmV3UG9pbnQuaWQgPT09IHNlbGVjdGVkUG9pbnQuaWQpIHtcbiAgICAgIHNldFNlbGVjdGVkUG9pbnQobnVsbCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNldFNlbGVjdGVkUG9pbnQobmV3UG9pbnQpO1xuICAgIH1cbiAgfTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGRpc3BhdGNoKHVwZGF0ZU5hdkNvbnRleHQoeyBuYW1lOiAnb3BlcmF0aW9ucycgfSkpO1xuXG4gICAgY29uc3QgY2hlY2tTY3JlZW5TaXplID0gKCkgPT4ge1xuICAgICAgc2V0SXNTbWFsbFNjcmVlbih3aW5kb3cuaW5uZXJXaWR0aCA8IDc2OCk7IC8vIG9yIGFueSBicmVha3BvaW50XG4gICAgfTtcblxuICAgIC8vIFJ1biBvbiBtb3VudDpcbiAgICBjaGVja1NjcmVlblNpemUoKTtcblxuICAgIC8vIEFsc28gdXBkYXRlIGlmIHRoZSB1c2VyIHJlc2l6ZXMgdGhlIGJyb3dzZXI6XG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIGNoZWNrU2NyZWVuU2l6ZSk7XG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdyZXNpemUnLCBjaGVja1NjcmVlblNpemUpO1xuICAgIH07XG4gIH0sIFtdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChnbG9iYWxfZGF0YS53YXRlckF1dGhvcml0eUlkKSB7XG4gICAgICBkaXNwYXRjaChmZXRjaFBvaW50cyhnbG9iYWxfZGF0YS53YXRlckF1dGhvcml0eUlkKSk7XG4gICAgICBkaXNwYXRjaChmZXRjaEVkZ2VzKGdsb2JhbF9kYXRhLndhdGVyQXV0aG9yaXR5SWQpKTtcbiAgICAgIGRpc3BhdGNoKGZldGNoQXJlYXMoZ2xvYmFsX2RhdGEud2F0ZXJBdXRob3JpdHlJZCkpO1xuICAgIH1cbiAgfSwgW2dsb2JhbF9kYXRhLndhdGVyQXV0aG9yaXR5SWRdKTtcblxuICBjb25zdCBtb25pdG9yZWRQb2ludHMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICByZXR1cm4gcG9pbnRzX2RhdGEuaXRlbXM/LmZpbHRlcigocG9pbnQ6IElQb2ludCkgPT4gcG9pbnQuaGFzX2RldmljZSkgfHwgW107XG4gIH0sIFtwb2ludHNfZGF0YS5pdGVtc10pO1xuXG4gIGNvbnN0IHBvaW50cyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIHJldHVybiAoXG4gICAgICBwb2ludHNfZGF0YS5pdGVtcz8uZmlsdGVyKFxuICAgICAgICAocG9pbnQ6IElQb2ludCkgPT4gcG9pbnQubGF0aXR1ZGUgJiYgcG9pbnQubG9uZ2l0dWRlLFxuICAgICAgKSB8fCBbXVxuICAgICk7XG4gIH0sIFtwb2ludHNfZGF0YS5pdGVtc10pO1xuXG4gIGNvbnN0IHNob3dMZWZ0UGFuZWwgPSB1c2VNZW1vKCgpID0+IHtcbiAgICByZXR1cm4gKFxuICAgICAgPExlZnRQYW5lbFxuICAgICAgICBwb2ludHM9e21vbml0b3JlZFBvaW50c31cbiAgICAgICAgc2VsZWN0ZWRQb2ludD17c2VsZWN0ZWRQb2ludH1cbiAgICAgICAgc2V0U2VsZWN0ZWRQb2ludD17c2V0U2VsZWN0ZWRQb2ludH1cbiAgICAgIC8+XG4gICAgKTtcbiAgfSwgW21vbml0b3JlZFBvaW50cywgc2VsZWN0ZWRQb2ludF0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHNlbGVjdGVkUG9pbnQpIHtcbiAgICAgIHNldFNob3dSaWdodFBhbmVsKHRydWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBzZXRTaG93UmlnaHRQYW5lbChmYWxzZSk7XG4gICAgfVxuICB9LCBbc2VsZWN0ZWRQb2ludF0pO1xuXG4gIGNvbnN0IG9uUmlnaHRQYW5lbENsb3NlID0gKCkgPT4ge1xuICAgIHNldFNlbGVjdGVkUG9pbnQobnVsbCk7XG4gIH07XG5cbiAgY29uc3QgZ2V0RGlzdGFuY2UgPSAoKSA9PiB7XG4gICAgaWYgKHNlbGVjdGVkUG9pbnQgJiYgZWRnZXNfZGF0YS5pdGVtcykge1xuICAgICAgY29uc3QgZWRnZSA9IGVkZ2VzX2RhdGEuaXRlbXMuZmluZChcbiAgICAgICAgKGVkZ2UpID0+IGVkZ2Uuc291cmNlX3BvaW50X2lkID09PSBzZWxlY3RlZFBvaW50LmlkLFxuICAgICAgKTtcbiAgICAgIHJldHVybiBlZGdlPy5kaXN0YW5jZSB8fCAwO1xuICAgIH1cbiAgICByZXR1cm4gMDtcbiAgfTtcblxuICBpZiAoaXNTbWFsbFNjcmVlbikge1xuICAgIHJldHVybiAoXG4gICAgICA8S2FuZG9BbGVydCB2YXJpYW50PVwic3VjY2Vzc1wiIGhlYWRlcj1cIk5vdGljZVwiPlxuICAgICAgICA8aDU+eydUaGlzIHBhZ2UgaXMgbm90IHN1cHBvcnRlZCBvbiBzbWFsbCBzY3JlZW5zJ308L2g1PlxuICAgICAgICA8cD57J1BsZWFzZSB1c2UgYSBsYXJnZXIgc2NyZWVuIGZvciB0aGUgYmVzdCBleHBlcmllbmNlLid9PC9wPlxuICAgICAgPC9LYW5kb0FsZXJ0PlxuICAgICk7XG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxDb250YWluZXIgZmx1aWQgY2xhc3NOYW1lPVwidmgtOTAgcC0wXCI+XG4gICAgICA8Um93PlxuICAgICAgICA8Q29sIHNtPXszfSBjbGFzc05hbWU9XCJsZWZ0LXBhbmVsXCI+XG4gICAgICAgICAge3Nob3dMZWZ0UGFuZWx9XG4gICAgICAgIDwvQ29sPlxuICAgICAgICA8Q29sIGNsYXNzTmFtZT1cIm1hcC1jb2x1bW5cIiBzbT17OX0+XG4gICAgICAgICAgeyFlZGdlc19kYXRhLmlzRmV0Y2hpbmcgJiYgIWFyZWFzX2RhdGEuaXNGZXRjaGluZyAmJiAoXG4gICAgICAgICAgICA8TWFwXG4gICAgICAgICAgICAgIHBvaW50cz17cG9pbnRzfVxuICAgICAgICAgICAgICBlZGdlcz17ZWRnZXNfZGF0YS5pdGVtc31cbiAgICAgICAgICAgICAgYXJlYXM9e2FyZWFzX2RhdGEubmV3QXJlYXN9XG4gICAgICAgICAgICAgIHNlbGVjdGVkUG9pbnQ9e3NlbGVjdGVkUG9pbnR9XG4gICAgICAgICAgICAgIHVwZGF0ZVNlbGVjdGVkUG9pbnQ9e2hhbmRsZVNlbGVjdFBvaW50fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuICAgICAgICAgIDxSaWdodFBhbmVsXG4gICAgICAgICAgICBjbGFzc05hbWU9e2ByaWdodC1wYW5lbCAke3Nob3dSaWdodFBhbmVsID8gJ29wZW4nIDogJyd9YH1cbiAgICAgICAgICAgIHBvaW50PXtzZWxlY3RlZFBvaW50fVxuICAgICAgICAgICAgZGlzdGFuY2U9e2dldERpc3RhbmNlKCl9XG4gICAgICAgICAgICBvbkNsb3NlPXtvblJpZ2h0UGFuZWxDbG9zZX1cbiAgICAgICAgICAvPlxuICAgICAgICA8L0NvbD5cbiAgICAgIDwvUm93PlxuICAgIDwvQ29udGFpbmVyPlxuICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgT3BlcmF0aW9uc1BhZ2U7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBQSxPQUFBO0FBQ0EsSUFBQUMsTUFBQSxHQUFBQyx1QkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcsV0FBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksZUFBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssUUFBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sU0FBQSxHQUFBTixPQUFBO0FBQ0EsSUFBQU8sU0FBQSxHQUFBUCxPQUFBO0FBRUEsSUFBQVEsSUFBQSxHQUFBUixPQUFBO0FBQ0EsSUFBQVMsVUFBQSxHQUFBQyxzQkFBQSxDQUFBVixPQUFBO0FBQ0EsSUFBQVcsV0FBQSxHQUFBRCxzQkFBQSxDQUFBVixPQUFBO0FBQ0EsSUFBQVksU0FBQSxHQUFBWixP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
@@ -0,0 +1,64 @@
1
+ .map-column {
2
+ position: relative;
3
+ .kd-map-container {
4
+ position: relative;
5
+ height: calc(100vh - 68px);
6
+ width: 100wh;
7
+
8
+ #map {
9
+ height: 100%;
10
+ width: 100%;
11
+
12
+ *,
13
+ *:focus,
14
+ *:hover {
15
+ outline: none;
16
+ }
17
+ }
18
+ }
19
+
20
+ .right-panel {
21
+ position: absolute;
22
+ top: 0;
23
+ right: 0;
24
+ width: 350px;
25
+ height: 100%;
26
+ background-color: #fff;
27
+ box-shadow: -2px 0 8px rgba(0, 0, 0, 0.2);
28
+ transition: transform 0.3s ease-in-out;
29
+ transform: translateX(100%);
30
+ z-index: 1000;
31
+ display: flex;
32
+ flex-direction: column; /* to have header, body, footer stacked */
33
+ }
34
+
35
+ .right-panel.open {
36
+ transform: translateX(0);
37
+ }
38
+ }
39
+
40
+ .left-panel {
41
+ height: calc(100vh - 68px);
42
+ overflow-y: auto;
43
+ overflow-x: hidden;
44
+ background-color: #f5f5f5;
45
+
46
+ .list-item {
47
+ padding: 10px;
48
+ border-bottom: 1px solid #e0e0e0;
49
+ cursor: pointer;
50
+ transition: background-color 0.3s;
51
+
52
+ &:hover {
53
+ background-color: #e0e0e0;
54
+ }
55
+
56
+ &.list-item-selected {
57
+ background-color: #e0e0e0;
58
+ }
59
+ }
60
+ }
61
+
62
+ .area-tooltip {
63
+ font-weight: 600;
64
+ }
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _Card = _interopRequireDefault(require("react-bootstrap/Card"));
10
+ var _ListGroup = _interopRequireDefault(require("react-bootstrap/ListGroup"));
11
+ var RightPanel = function RightPanel(_ref) {
12
+ var _point$name, _point$description;
13
+ var point = _ref.point,
14
+ distance = _ref.distance,
15
+ className = _ref.className,
16
+ onClose = _ref.onClose;
17
+ return /*#__PURE__*/_react.default.createElement("div", {
18
+ className: className
19
+ }, /*#__PURE__*/_react.default.createElement("div", {
20
+ className: "drawer-body p-3"
21
+ }, /*#__PURE__*/_react.default.createElement(_Card.default, {
22
+ style: {
23
+ maxWidth: '600px',
24
+ margin: '0 auto'
25
+ }
26
+ }, /*#__PURE__*/_react.default.createElement(_Card.default.Header, null, 'Point Details', /*#__PURE__*/_react.default.createElement("button", {
27
+ className: "close",
28
+ onClick: onClose
29
+ }, /*#__PURE__*/_react.default.createElement("span", null, "\xD7"))), /*#__PURE__*/_react.default.createElement(_ListGroup.default, {
30
+ variant: "flush"
31
+ }, /*#__PURE__*/_react.default.createElement(_ListGroup.default.Item, null, /*#__PURE__*/_react.default.createElement("strong", null, 'Name:'), " ", (_point$name = point === null || point === void 0 ? void 0 : point.name) !== null && _point$name !== void 0 ? _point$name : '-'), /*#__PURE__*/_react.default.createElement(_ListGroup.default.Item, null, /*#__PURE__*/_react.default.createElement("strong", null, 'Description:'), " ", (_point$description = point === null || point === void 0 ? void 0 : point.description) !== null && _point$description !== void 0 ? _point$description : '-'), /*#__PURE__*/_react.default.createElement(_ListGroup.default.Item, null, /*#__PURE__*/_react.default.createElement("strong", null, 'Monitored:'), " ", (point === null || point === void 0 ? void 0 : point.has_device) ? 'Yes' : 'No'), /*#__PURE__*/_react.default.createElement(_ListGroup.default.Item, null, /*#__PURE__*/_react.default.createElement("strong", null, 'Was Monitored:'), (point === null || point === void 0 ? void 0 : point.device_status) !== 'regular' ? 'Yes' : 'No'), /*#__PURE__*/_react.default.createElement(_ListGroup.default.Item, null, /*#__PURE__*/_react.default.createElement("strong", null, 'Sector:'), " ", point === null || point === void 0 ? void 0 : point.group.sector_name), /*#__PURE__*/_react.default.createElement(_ListGroup.default.Item, null, /*#__PURE__*/_react.default.createElement("strong", null, 'Type:'), " ", point === null || point === void 0 ? void 0 : point.group.type.split('::')[1]), /*#__PURE__*/_react.default.createElement(_ListGroup.default.Item, null, /*#__PURE__*/_react.default.createElement("strong", null, 'Water Discharge:'), ' ', point === null || point === void 0 ? void 0 : point.group.water_discharge), /*#__PURE__*/_react.default.createElement(_ListGroup.default.Item, null, /*#__PURE__*/_react.default.createElement("strong", null, 'Distance:'), " ", distance)))));
32
+ };
33
+ var _default = RightPanel;
34
+ exports.default = _default;
35
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9DYXJkIiwiX0xpc3RHcm91cCIsIlJpZ2h0UGFuZWwiLCJfcmVmIiwiX3BvaW50JG5hbWUiLCJfcG9pbnQkZGVzY3JpcHRpb24iLCJwb2ludCIsImRpc3RhbmNlIiwiY2xhc3NOYW1lIiwib25DbG9zZSIsImRlZmF1bHQiLCJjcmVhdGVFbGVtZW50Iiwic3R5bGUiLCJtYXhXaWR0aCIsIm1hcmdpbiIsIkhlYWRlciIsIm9uQ2xpY2siLCJ2YXJpYW50IiwiSXRlbSIsIm5hbWUiLCJkZXNjcmlwdGlvbiIsImhhc19kZXZpY2UiLCJkZXZpY2Vfc3RhdHVzIiwiZ3JvdXAiLCJzZWN0b3JfbmFtZSIsInR5cGUiLCJzcGxpdCIsIndhdGVyX2Rpc2NoYXJnZSIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wYWdlcy9PcGVyYXRpb25zUGFnZS9SaWdodFBhbmVsLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgSVBvaW50IH0gZnJvbSAnc3JjL3N0b3JlL3BvaW50cy9tb2RlbHMvSVBvaW50JztcbmltcG9ydCBDYXJkIGZyb20gJ3JlYWN0LWJvb3RzdHJhcC9DYXJkJztcbmltcG9ydCBMaXN0R3JvdXAgZnJvbSAncmVhY3QtYm9vdHN0cmFwL0xpc3RHcm91cCc7XG5cbnR5cGUgUmlnaHRQYW5lbFByb3BzID0ge1xuICBwb2ludDogSVBvaW50IHwgbnVsbDtcbiAgZGlzdGFuY2U6IG51bWJlcjtcbiAgY2xhc3NOYW1lPzogc3RyaW5nO1xuICBvbkNsb3NlPzogKCkgPT4gdm9pZDtcbn07XG5cbmNvbnN0IFJpZ2h0UGFuZWw6IFJlYWN0LkZDPFJpZ2h0UGFuZWxQcm9wcz4gPSAoe1xuICBwb2ludCxcbiAgZGlzdGFuY2UsXG4gIGNsYXNzTmFtZSxcbiAgb25DbG9zZSxcbn0pID0+IHtcbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT17Y2xhc3NOYW1lfT5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZHJhd2VyLWJvZHkgcC0zXCI+XG4gICAgICAgIDxDYXJkIHN0eWxlPXt7IG1heFdpZHRoOiAnNjAwcHgnLCBtYXJnaW46ICcwIGF1dG8nIH19PlxuICAgICAgICAgIDxDYXJkLkhlYWRlcj5cbiAgICAgICAgICAgIHsnUG9pbnQgRGV0YWlscyd9XG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzTmFtZT1cImNsb3NlXCIgb25DbGljaz17b25DbG9zZX0+XG4gICAgICAgICAgICAgIDxzcGFuPiZ0aW1lczs8L3NwYW4+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L0NhcmQuSGVhZGVyPlxuICAgICAgICAgIDxMaXN0R3JvdXAgdmFyaWFudD1cImZsdXNoXCI+XG4gICAgICAgICAgICA8TGlzdEdyb3VwLkl0ZW0+XG4gICAgICAgICAgICAgIDxzdHJvbmc+eydOYW1lOid9PC9zdHJvbmc+IHtwb2ludD8ubmFtZSA/PyAnLSd9XG4gICAgICAgICAgICA8L0xpc3RHcm91cC5JdGVtPlxuICAgICAgICAgICAgPExpc3RHcm91cC5JdGVtPlxuICAgICAgICAgICAgICA8c3Ryb25nPnsnRGVzY3JpcHRpb246J308L3N0cm9uZz4ge3BvaW50Py5kZXNjcmlwdGlvbiA/PyAnLSd9XG4gICAgICAgICAgICA8L0xpc3RHcm91cC5JdGVtPlxuICAgICAgICAgICAgPExpc3RHcm91cC5JdGVtPlxuICAgICAgICAgICAgICA8c3Ryb25nPnsnTW9uaXRvcmVkOid9PC9zdHJvbmc+IHtwb2ludD8uaGFzX2RldmljZSA/ICdZZXMnIDogJ05vJ31cbiAgICAgICAgICAgIDwvTGlzdEdyb3VwLkl0ZW0+XG4gICAgICAgICAgICA8TGlzdEdyb3VwLkl0ZW0+XG4gICAgICAgICAgICAgIDxzdHJvbmc+eydXYXMgTW9uaXRvcmVkOid9PC9zdHJvbmc+XG4gICAgICAgICAgICAgIHtwb2ludD8uZGV2aWNlX3N0YXR1cyAhPT0gJ3JlZ3VsYXInID8gJ1llcycgOiAnTm8nfVxuICAgICAgICAgICAgPC9MaXN0R3JvdXAuSXRlbT5cbiAgICAgICAgICAgIDxMaXN0R3JvdXAuSXRlbT5cbiAgICAgICAgICAgICAgPHN0cm9uZz57J1NlY3RvcjonfTwvc3Ryb25nPiB7cG9pbnQ/Lmdyb3VwLnNlY3Rvcl9uYW1lfVxuICAgICAgICAgICAgPC9MaXN0R3JvdXAuSXRlbT5cbiAgICAgICAgICAgIDxMaXN0R3JvdXAuSXRlbT5cbiAgICAgICAgICAgICAgPHN0cm9uZz57J1R5cGU6J308L3N0cm9uZz4ge3BvaW50Py5ncm91cC50eXBlLnNwbGl0KCc6OicpWzFdfVxuICAgICAgICAgICAgPC9MaXN0R3JvdXAuSXRlbT5cbiAgICAgICAgICAgIDxMaXN0R3JvdXAuSXRlbT5cbiAgICAgICAgICAgICAgPHN0cm9uZz57J1dhdGVyIERpc2NoYXJnZTonfTwvc3Ryb25nPnsnICd9XG4gICAgICAgICAgICAgIHtwb2ludD8uZ3JvdXAud2F0ZXJfZGlzY2hhcmdlfVxuICAgICAgICAgICAgPC9MaXN0R3JvdXAuSXRlbT5cbiAgICAgICAgICAgIDxMaXN0R3JvdXAuSXRlbT5cbiAgICAgICAgICAgICAgPHN0cm9uZz57J0Rpc3RhbmNlOid9PC9zdHJvbmc+IHtkaXN0YW5jZX1cbiAgICAgICAgICAgIDwvTGlzdEdyb3VwLkl0ZW0+XG4gICAgICAgICAgPC9MaXN0R3JvdXA+XG4gICAgICAgIDwvQ2FyZD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgUmlnaHRQYW5lbDtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUVBLElBQUFDLEtBQUEsR0FBQUYsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFFLFVBQUEsR0FBQUgsc0JBQUEsQ0FBQUMsT0FBQTtBQVNBLElBQU1HLFVBQXFDLEdBQUcsU0FB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
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _OperationsPage = _interopRequireDefault(require("./OperationsPage"));
9
+ var _default = _OperationsPage.default;
10
+ exports.default = _default;
11
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfT3BlcmF0aW9uc1BhZ2UiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9kZWZhdWx0IiwiT3BlcmF0aW9uc1BhZ2UiLCJleHBvcnRzIiwiZGVmYXVsdCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wYWdlcy9PcGVyYXRpb25zUGFnZS9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgT3BlcmF0aW9uc1BhZ2UgZnJvbSAnLi9PcGVyYXRpb25zUGFnZSc7XG5leHBvcnQgZGVmYXVsdCBPcGVyYXRpb25zUGFnZTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBLElBQUFBLGVBQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUE4QyxJQUFBQyxRQUFBLEdBQy9CQyx1QkFBYztBQUFBQyxPQUFBLENBQUFDLE9BQUEsR0FBQUgsUUFBQSJ9