@kando-env/kando-ui 1.2.121-alpha.4 → 1.2.121
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/Widgets/Map/Map.js +163 -40
- package/lib/Widgets/Map/areas/AreaPolygon.js +2 -2
- package/lib/Widgets/Map/events/EventIndicator.js +46 -21
- package/lib/Widgets/Map/events/EventIndicatorHover.js +252 -0
- package/lib/Widgets/Map/events/EventPath.js +38 -16
- package/lib/Widgets/Map/events/EventPathHover.js +81 -0
- package/lib/Widgets/Map/events/NetworkForSpecificEvent.js +117 -3
- package/lib/Widgets/Map/points/PointMarker.js +472 -10
- package/lib/Widgets/Map/points/PointMarkers.js +17 -24
- package/lib/i18n/en.json +4 -0
- package/lib/i18n/he.json +5 -0
- package/lib/macros/getVersion.js +2 -2
- package/lib/pages/EventsPage/EventsMapContainer/EventsMapContainer.js +4 -1
- package/lib/pages/EventsPage/events/events_list/EventsList.js +8 -25
- package/lib/pages/EventsPage/events/events_list/Filter/FilterContainer.js +2 -2
- package/lib/pages/SamplingsPage/SamplingProperties/ImageUpload.js +2 -2
- package/lib/pages/SamplingsPage/SamplingProperties/SamplerInProcess.js +57 -0
- package/lib/pages/SamplingsPage/SamplingProperties/SamplingProperties.js +12 -9
- package/lib/pages/SamplingsPage/SamplingProperties/SamplingPropertiesForm.js +6 -8
- package/lib/pages/SamplingsPage/SamplingProperties/samplingPropertiesUtils.js +1 -1
- package/lib/pages/SamplingsPage/SamplingProperties/style.module.scss +3 -0
- package/lib/pages/SamplingsPage/SamplingProperties/styles.js +27 -0
- package/package.json +1 -1
- package/lib/Widgets/Map/MapUtils.js +0 -102
- package/lib/Widgets/Map/events/Event.js +0 -69
- package/lib/Widgets/Map/events/EventUtils.js +0 -245
- package/lib/Widgets/Map/events/PointOfEvent.js +0 -142
- package/lib/Widgets/Map/events/PointsForSpecificEvent.js +0 -66
- package/lib/Widgets/Map/events/Snail.js +0 -60
- package/lib/Widgets/Map/points/PointUtils.js +0 -373
|
@@ -25,12 +25,18 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
|
|
|
25
25
|
var EventPath = function EventPath(_ref) {
|
|
26
26
|
var event = _ref.event,
|
|
27
27
|
global_data = _ref.global_data,
|
|
28
|
-
_ref$
|
|
29
|
-
|
|
28
|
+
_ref$focusedEvent = _ref.focusedEvent,
|
|
29
|
+
focusedEvent = _ref$focusedEvent === void 0 ? null : _ref$focusedEvent,
|
|
30
|
+
_ref$focusedEventPath = _ref.focusedEventPaths,
|
|
31
|
+
focusedEventPaths = _ref$focusedEventPath === void 0 ? [] : _ref$focusedEventPath,
|
|
32
|
+
_ref$hoveredEvent = _ref.hoveredEvent,
|
|
33
|
+
hoveredEvent = _ref$hoveredEvent === void 0 ? null : _ref$hoveredEvent,
|
|
34
|
+
_ref$hoveredEventPath = _ref.hoveredEventPaths,
|
|
35
|
+
hoveredEventPaths = _ref$hoveredEventPath === void 0 ? [] : _ref$hoveredEventPath;
|
|
30
36
|
var map = global_data.map;
|
|
31
37
|
var dispatch = (0, _reactRedux.useDispatch)();
|
|
32
38
|
|
|
33
|
-
var drawPolyline = function drawPolyline(event, layerLatlngs,
|
|
39
|
+
var drawPolyline = function drawPolyline(event, layerLatlngs, Paths, isHover) {
|
|
34
40
|
var eventPath = _leaflet.default.polyline(layerLatlngs, {
|
|
35
41
|
color: 'rgba(0,0,0,0)',
|
|
36
42
|
weight: 10,
|
|
@@ -38,47 +44,63 @@ var EventPath = function EventPath(_ref) {
|
|
|
38
44
|
stroke: true
|
|
39
45
|
}).addTo(map);
|
|
40
46
|
|
|
41
|
-
|
|
47
|
+
Paths.push(eventPath);
|
|
42
48
|
eventPath['kando_object_id'] = event.id;
|
|
43
49
|
eventPath['kando_object'] = 'EventPath';
|
|
44
50
|
|
|
45
|
-
if (
|
|
46
|
-
dispatch((0, _actions.setHoveredEventPaths)(
|
|
51
|
+
if (isHover) {
|
|
52
|
+
dispatch((0, _actions.setHoveredEventPaths)(Paths));
|
|
47
53
|
} else {
|
|
48
|
-
dispatch((0, _actions.setFocusedEventPaths)(
|
|
54
|
+
dispatch((0, _actions.setFocusedEventPaths)(Paths));
|
|
49
55
|
}
|
|
50
56
|
};
|
|
51
57
|
|
|
52
58
|
var renderEventPath = function renderEventPath(event, isHover) {
|
|
53
59
|
if (map !== undefined) {
|
|
54
|
-
var
|
|
60
|
+
var Paths = [];
|
|
55
61
|
var layers = map._layers;
|
|
56
62
|
event.path.forEach(function (path) {
|
|
57
63
|
for (var property in layers) {
|
|
58
64
|
if (layers[property].kando_object_id !== undefined && layers[property].kando_object_id === path.edge_id && layers[property].kando_object === 'Edge') {
|
|
59
65
|
var layerLatlngs = layers[property].getLatLngs();
|
|
60
|
-
drawPolyline(event, layerLatlngs,
|
|
66
|
+
drawPolyline(event, layerLatlngs, Paths, isHover);
|
|
61
67
|
}
|
|
62
68
|
}
|
|
63
69
|
});
|
|
64
70
|
|
|
65
|
-
if (!isHover &&
|
|
66
|
-
map.fitBounds(_leaflet.default.featureGroup(
|
|
71
|
+
if (!isHover && focusedEventPaths.length === 0 && Paths.length > 0) {
|
|
72
|
+
map.fitBounds(_leaflet.default.featureGroup(Paths).getBounds().pad(0.1));
|
|
67
73
|
}
|
|
68
74
|
}
|
|
69
75
|
};
|
|
70
76
|
|
|
71
77
|
(0, _react.useEffect)(function () {
|
|
72
|
-
if
|
|
73
|
-
|
|
78
|
+
// Cleanup existing paths if necessary
|
|
79
|
+
if (focusedEventPaths !== null) {
|
|
80
|
+
focusedEventPaths.forEach(function (path) {
|
|
74
81
|
map.removeLayer(path);
|
|
75
82
|
});
|
|
76
|
-
renderEventPath(event, event.hovered);
|
|
77
83
|
}
|
|
78
|
-
|
|
84
|
+
|
|
85
|
+
if (event.path !== null && focusedEvent !== null) {
|
|
86
|
+
renderEventPath(event, false);
|
|
87
|
+
}
|
|
88
|
+
}, [focusedEvent]);
|
|
89
|
+
(0, _react.useEffect)(function () {
|
|
90
|
+
// Cleanup existing paths if necessary
|
|
91
|
+
if (hoveredEventPaths) {
|
|
92
|
+
hoveredEventPaths.forEach(function (path) {
|
|
93
|
+
map.removeLayer(path);
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
if (event.path !== null && hoveredEvent !== null) {
|
|
98
|
+
renderEventPath(event, true);
|
|
99
|
+
}
|
|
100
|
+
}, [hoveredEvent]);
|
|
79
101
|
return /*#__PURE__*/_react.default.createElement("div", null);
|
|
80
102
|
};
|
|
81
103
|
|
|
82
104
|
var _default = EventPath;
|
|
83
105
|
exports.default = _default;
|
|
84
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
106
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9XaWRnZXRzL01hcC9ldmVudHMvRXZlbnRQYXRoLnRzeCJdLCJuYW1lcyI6WyJFdmVudFBhdGgiLCJldmVudCIsImdsb2JhbF9kYXRhIiwiZm9jdXNlZEV2ZW50IiwiZm9jdXNlZEV2ZW50UGF0aHMiLCJob3ZlcmVkRXZlbnQiLCJob3ZlcmVkRXZlbnRQYXRocyIsIm1hcCIsImRpc3BhdGNoIiwiZHJhd1BvbHlsaW5lIiwibGF5ZXJMYXRsbmdzIiwiUGF0aHMiLCJpc0hvdmVyIiwiZXZlbnRQYXRoIiwiTCIsInBvbHlsaW5lIiwiY29sb3IiLCJ3ZWlnaHQiLCJjbGFzc05hbWUiLCJzdHJva2UiLCJhZGRUbyIsInB1c2giLCJpZCIsInJlbmRlckV2ZW50UGF0aCIsInVuZGVmaW5lZCIsImxheWVycyIsIl9sYXllcnMiLCJwYXRoIiwiZm9yRWFjaCIsInByb3BlcnR5Iiwia2FuZG9fb2JqZWN0X2lkIiwiZWRnZV9pZCIsImthbmRvX29iamVjdCIsImdldExhdExuZ3MiLCJsZW5ndGgiLCJmaXRCb3VuZHMiLCJmZWF0dXJlR3JvdXAiLCJnZXRCb3VuZHMiLCJwYWQiLCJyZW1vdmVMYXllciJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7Ozs7O0FBSkE7QUFvQkEsSUFBTUEsU0FBMkIsR0FBRyxTQUE5QkEsU0FBOEIsT0FROUI7QUFBQSxNQVBKQyxLQU9JLFFBUEpBLEtBT0k7QUFBQSxNQU5KQyxXQU1JLFFBTkpBLFdBTUk7QUFBQSwrQkFMSkMsWUFLSTtBQUFBLE1BTEpBLFlBS0ksa0NBTFcsSUFLWDtBQUFBLG1DQUpKQyxpQkFJSTtBQUFBLE1BSkpBLGlCQUlJLHNDQUpnQixFQUloQjtBQUFBLCtCQUZKQyxZQUVJO0FBQUEsTUFGSkEsWUFFSSxrQ0FGVyxJQUVYO0FBQUEsbUNBREpDLGlCQUNJO0FBQUEsTUFESkEsaUJBQ0ksc0NBRGdCLEVBQ2hCO0FBQ0osTUFBUUMsR0FBUixHQUFnQkws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WUFBTTtBQUNkO0FBQ0EsUUFBSUcsaUJBQUosRUFBdUI7QUFDckJBLE1BQUFBLGlCQUFpQixDQUFDc0IsT0FBbEIsQ0FBMEIsVUFBQ0QsSUFBRCxFQUFVO0FBQ2xDcEIsUUFBQUEsR0FBRyxDQUFDZ0MsV0FBSixDQUFnQlosSUFBaEI7QUFDRCxPQUZEO0FBR0Q7O0FBRUQsUUFBSTFCLEtBQUssQ0FBQzBCLElBQU4sS0FBZSxJQUFmLElBQXVCdEIsWUFBWSxLQUFLLElBQTVDLEVBQWtEO0FBQ2hEa0IsTUFBQUEsZUFBZSxDQUFDdEIsS0FBRCxFQUFRLElBQVIsQ0FBZjtBQUNEO0FBQ0YsR0FYRCxFQVdHLENBQUNJLFlBQUQsQ0FYSDtBQWFBLHNCQUFPLHlDQUFQO0FBQ0QsQ0F6RkQ7O2VBMkZlTCxTIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWlnbm9yZVxuaW1wb3J0IEwgZnJvbSAnbGVhZmxldCc7XG5pbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlRGlzcGF0Y2ggfSBmcm9tICdyZWFjdC1yZWR1eCc7XG5pbXBvcnQge1xuICBzZXRGb2N1c2VkRXZlbnRQYXRocyxcbiAgc2V0SG92ZXJlZEV2ZW50UGF0aHMsXG59IGZyb20gJ3NyYy9zdG9yZS9ldmVudHMvYWN0aW9ucyc7XG5pbXBvcnQgeyBJRXZlbnQgfSBmcm9tICdzcmMvc3RvcmUvZXZlbnRzL21vZGVscy9JRXZlbnQnO1xuaW1wb3J0IHsgSUdsb2JhbFN0YXRlIH0gZnJvbSAnc3JjL3N0b3JlL2dsb2JhbC9tb2RlbHMvSUdsb2JhbFN0YXRlJztcblxudHlwZSBJUHJvcHMgPSB7XG4gIGV2ZW50OiBJRXZlbnQ7XG4gIGdsb2JhbF9kYXRhOiBJR2xvYmFsU3RhdGU7XG4gIGZvY3VzZWRFdmVudD86IElFdmVudDtcbiAgaG92ZXJlZEV2ZW50PzogSUV2ZW50O1xuICBmb2N1c2VkRXZlbnRQYXRocz86IGFueVtdO1xuICBob3ZlcmVkRXZlbnRQYXRocz86IGFueVtdO1xufTtcblxuY29uc3QgRXZlbnRQYXRoOiBSZWFjdC5GQzxJUHJvcHM+ID0gKHtcbiAgZXZlbnQsXG4gIGdsb2JhbF9kYXRhLFxuICBmb2N1c2VkRXZlbnQgPSBudWxsLFxuICBmb2N1c2VkRXZlbnRQYXRocyA9IFtdLFxuXG4gIGhvdmVyZWRFdmVudCA9IG51bGwsXG4gIGhvdmVyZWRFdmVudFBhdGhzID0gW10sXG59KSA9PiB7XG4gIGNvbnN0IHsgbWFwIH0gPSBnbG9iYWxfZGF0YTtcblxuICBjb25zdCBkaXNwYXRjaCA9IHVzZURpc3BhdGNoKCk7XG5cbiAgY29uc3QgZHJhd1BvbHlsaW5lID0gKFxuICAgIGV2ZW50OiBJRXZlbnQsXG4gICAgbGF5ZXJMYXRsbmdzOiBhbnksXG4gICAgUGF0aHM6IGFueSxcbiAgICBpc0hvdmVyOiBib29sZWFuLFxuICApID0+IHtcbiAgICBsZXQgZXZlbnRQYXRoID0gTC5wb2x5bGluZShsYXllckxhdGxuZ3MsIHtcbiAgICAgIGNvbG9yOiAncmdiYSgwLDAsMCwwKScsXG4gICAgICB3ZWlnaHQ6IDEwLFxuICAgICAgY2xhc3NOYW1lOiAnZXZlbnQtcGF0aCcsXG4gICAgICBzdHJva2U6IHRydWUsXG4gICAgfSkuYWRkVG8obWFwKTtcblxuICAgIFBhdGhzLnB1c2goZXZlbnRQYXRoKTtcblxuICAgIGV2ZW50UGF0aFsna2FuZG9fb2JqZWN0X2lkJ10gPSBldmVudC5pZDtcbiAgICBldmVudFBhdGhbJ2thbmRvX29iamVjdCddID0gJ0V2ZW50UGF0aCc7XG4gICAgaWYgKGlzSG92ZXIpIHtcbiAgICAgIGRpc3BhdGNoKHNldEhvdmVyZWRFdmVudFBhdGhzKFBhdGhzKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGRpc3BhdGNoKHNldEZvY3VzZWRFdmVudFBhdGhzKFBhdGhzKSk7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IHJlbmRlckV2ZW50UGF0aCA9IChldmVudDogSUV2ZW50LCBpc0hvdmVyOiBib29sZWFuKSA9PiB7XG4gICAgaWYgKG1hcCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBsZXQgUGF0aHM6IGFueVtdID0gW107XG4gICAgICBsZXQgbGF5ZXJzID0gbWFwLl9sYXllcnM7XG5cbiAgICAgIGV2ZW50LnBhdGguZm9yRWFjaCgocGF0aDogYW55KSA9PiB7XG4gICAgICAgIGZvciAoY29uc3QgcHJvcGVydHkgaW4gbGF5ZXJzKSB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgbGF5ZXJzW3Byb3BlcnR5XS5rYW5kb19vYmplY3RfaWQgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgICAgbGF5ZXJzW3Byb3BlcnR5XS5rYW5kb19vYmplY3RfaWQgPT09IHBhdGguZWRnZV9pZCAmJlxuICAgICAgICAgICAgbGF5ZXJzW3Byb3BlcnR5XS5rYW5kb19vYmplY3QgPT09ICdFZGdlJ1xuICAgICAgICAgICkge1xuICAgICAgICAgICAgbGV0IGxheWVyTGF0bG5ncyA9IGxheWVyc1twcm9wZXJ0eV0uZ2V0TGF0TG5ncygpO1xuXG4gICAgICAgICAgICBkcmF3UG9seWxpbmUoZXZlbnQsIGxheWVyTGF0bG5ncywgUGF0aHMsIGlzSG92ZXIpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIGlmICghaXNIb3ZlciAmJiBmb2N1c2VkRXZlbnRQYXRocy5sZW5ndGggPT09IDAgJiYgUGF0aHMubGVuZ3RoID4gMCkge1xuICAgICAgICBtYXAuZml0Qm91bmRzKEwuZmVhdHVyZUdyb3VwKFBhdGhzKS5nZXRCb3VuZHMoKS5wYWQoMC4xKSk7XG4gICAgICB9XG4gICAgfVxuICB9O1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgLy8gQ2xlYW51cCBleGlzdGluZyBwYXRocyBpZiBuZWNlc3NhcnlcbiAgICBpZiAoZm9jdXNlZEV2ZW50UGF0aHMgIT09IG51bGwpIHtcbiAgICAgIGZvY3VzZWRFdmVudFBhdGhzLmZvckVhY2goKHBhdGgpID0+IHtcbiAgICAgICAgbWFwLnJlbW92ZUxheWVyKHBhdGgpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKGV2ZW50LnBhdGggIT09IG51bGwgJiYgZm9jdXNlZEV2ZW50ICE9PSBudWxsKSB7XG4gICAgICByZW5kZXJFdmVudFBhdGgoZXZlbnQsIGZhbHNlKTtcbiAgICB9XG4gIH0sIFtmb2N1c2VkRXZlbnRdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIC8vIENsZWFudXAgZXhpc3RpbmcgcGF0aHMgaWYgbmVjZXNzYXJ5XG4gICAgaWYgKGhvdmVyZWRFdmVudFBhdGhzKSB7XG4gICAgICBob3ZlcmVkRXZlbnRQYXRocy5mb3JFYWNoKChwYXRoKSA9PiB7XG4gICAgICAgIG1hcC5yZW1vdmVMYXllcihwYXRoKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmIChldmVudC5wYXRoICE9PSBudWxsICYmIGhvdmVyZWRFdmVudCAhPT0gbnVsbCkge1xuICAgICAgcmVuZGVyRXZlbnRQYXRoKGV2ZW50LCB0cnVlKTtcbiAgICB9XG4gIH0sIFtob3ZlcmVkRXZlbnRdKTtcblxuICByZXR1cm4gPGRpdj48L2Rpdj47XG59O1xuXG5leHBvcnQgZGVmYXVsdCBFdmVudFBhdGg7XG4iXX0=
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "__esModule", {
|
|
8
|
+
value: true
|
|
9
|
+
});
|
|
10
|
+
exports.default = void 0;
|
|
11
|
+
|
|
12
|
+
var _leaflet = _interopRequireDefault(require("leaflet"));
|
|
13
|
+
|
|
14
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
15
|
+
|
|
16
|
+
var _reactRedux = require("react-redux");
|
|
17
|
+
|
|
18
|
+
var _actions = require("store/events/actions");
|
|
19
|
+
|
|
20
|
+
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; }
|
|
23
|
+
|
|
24
|
+
// @ts-ignore
|
|
25
|
+
var EventPath = function EventPath(_ref) {
|
|
26
|
+
var event = _ref.event,
|
|
27
|
+
global_data = _ref.global_data,
|
|
28
|
+
_ref$hoveredEvent = _ref.hoveredEvent,
|
|
29
|
+
hoveredEvent = _ref$hoveredEvent === void 0 ? null : _ref$hoveredEvent,
|
|
30
|
+
_ref$hoveredEventPath = _ref.hoveredEventPaths,
|
|
31
|
+
hoveredEventPaths = _ref$hoveredEventPath === void 0 ? [] : _ref$hoveredEventPath;
|
|
32
|
+
var map = global_data.map;
|
|
33
|
+
var dispatch = (0, _reactRedux.useDispatch)();
|
|
34
|
+
|
|
35
|
+
var drawPolyline = function drawPolyline(event, layerLatlngs, Paths, isHover) {
|
|
36
|
+
var eventPath = _leaflet.default.polyline(layerLatlngs, {
|
|
37
|
+
color: 'rgba(0,0,0,0)',
|
|
38
|
+
weight: 10,
|
|
39
|
+
className: 'event-path',
|
|
40
|
+
stroke: true
|
|
41
|
+
}).addTo(map);
|
|
42
|
+
|
|
43
|
+
Paths.push(eventPath);
|
|
44
|
+
eventPath['kando_object_id'] = event.id;
|
|
45
|
+
eventPath['kando_object'] = 'EventPath';
|
|
46
|
+
dispatch((0, _actions.setHoveredEventPaths)(Paths));
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
var renderEventPath = function renderEventPath(event, isHover) {
|
|
50
|
+
if (map !== undefined) {
|
|
51
|
+
var Paths = [];
|
|
52
|
+
var layers = map._layers;
|
|
53
|
+
event.path.forEach(function (path) {
|
|
54
|
+
for (var property in layers) {
|
|
55
|
+
if (layers[property].kando_object_id !== undefined && layers[property].kando_object_id === path.edge_id && layers[property].kando_object === 'Edge') {
|
|
56
|
+
var layerLatlngs = layers[property].getLatLngs();
|
|
57
|
+
drawPolyline(event, layerLatlngs, Paths, isHover);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
(0, _react.useEffect)(function () {
|
|
65
|
+
// Cleanup existing paths if necessary
|
|
66
|
+
if (hoveredEventPaths !== null) {
|
|
67
|
+
hoveredEventPaths.forEach(function (path) {
|
|
68
|
+
map.removeLayer(path);
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
if (event.path !== null && hoveredEvent !== null && hoveredEventPaths.length === 0) {
|
|
73
|
+
renderEventPath(event, true);
|
|
74
|
+
}
|
|
75
|
+
}, [hoveredEvent, hoveredEventPaths]);
|
|
76
|
+
return /*#__PURE__*/_react.default.createElement("div", null);
|
|
77
|
+
};
|
|
78
|
+
|
|
79
|
+
var _default = EventPath;
|
|
80
|
+
exports.default = _default;
|
|
81
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9XaWRnZXRzL01hcC9ldmVudHMvRXZlbnRQYXRoSG92ZXIudHN4Il0sIm5hbWVzIjpbIkV2ZW50UGF0aCIsImV2ZW50IiwiZ2xvYmFsX2RhdGEiLCJob3ZlcmVkRXZlbnQiLCJob3ZlcmVkRXZlbnRQYXRocyIsIm1hcCIsImRpc3BhdGNoIiwiZHJhd1BvbHlsaW5lIiwibGF5ZXJMYXRsbmdzIiwiUGF0aHMiLCJpc0hvdmVyIiwiZXZlbnRQYXRoIiwiTCIsInBvbHlsaW5lIiwiY29sb3IiLCJ3ZWlnaHQiLCJjbGFzc05hbWUiLCJzdHJva2UiLCJhZGRUbyIsInB1c2giLCJpZCIsInJlbmRlckV2ZW50UGF0aCIsInVuZGVmaW5lZCIsImxheWVycyIsIl9sYXllcnMiLCJwYXRoIiwiZm9yRWFjaCIsInByb3BlcnR5Iiwia2FuZG9fb2JqZWN0X2lkIiwiZWRnZV9pZCIsImthbmRvX29iamVjdCIsImdldExhdExuZ3MiLCJyZW1vdmVMYXllciIsImxlbmd0aCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7Ozs7O0FBSkE7QUFlQSxJQUFNQSxTQUEyQixHQUFHLFNBQTlCQSxTQUE4QixPQU05QjtBQUFBLE1BTEpDLEtBS0ksUUFMSkEsS0FLSTtBQUFBLE1BSkpDLFdBSUksUUFKSkEsV0FJSTtBQUFBLCtCQUZKQyxZQUVJO0FBQUEsTUFGSkEsWUFFSSxrQ0FGVyxJQUVYO0FBQUEsbUNBREpDLGlCQUNJO0FBQUEsTUFESkEsaUJBQ0ksc0NBRGdCLEVBQ2hCO0FBQ0osTUFBUUMsR0FBUixHQUFnQkgsV0FBaEIsQ0FBUUcsR0FBUjtBQUVBLE1BQU1DLFFBQVEsR0FBRyw4QkFBakI7O0FBRUEsTUFBTUMsWUFBWSxHQUFHLFNBQWZBLFlBQWUsQ0FDbkJOLEtBRG1CLEVBRW5CTyxZQUZtQixFQUduQkMsS0FIbUIsRUFJbkJDLE9BSm1CLEVBS2hCO0FBQ0gsUUFBSUMsU0FBUyxHQUFHQyxpQkFBRUMsUUFBRixDQUFXTCxZQUFYLEVBQXlCO0FBQ3ZDTSxNQUFBQSxLQUFLLEVBQUUsZUFEZ0M7QUFFdkNDLE1BQUFBLE1BQU0sRUFBRSxFQUYrQjtBQUd2Q0MsTUFBQUEsU0FBUyxFQUFFLFlBSDRCO0FBSXZDQyxNQUFBQSxNQUFNLEVBQUU7QUFKK0IsS0FBekIsRUFLYkMsS0FMYSxDQUtQYixHQUxPLENBQWhCOztBQU9BSSxJQUFBQSxLQUFLLENBQUNVLElBQU4sQ0FBV1IsU0FBWDtBQUVBQSxJQUFBQSxTQUFTLENBQUMsaUJBQUQsQ0FBVCxHQUErQlYsS0FBSyxDQUFDbUIsRUFBckM7QUFDQVQsSUFBQUEsU0FBUyxDQUFDLGNBQUQsQ0FBVCxHQUE0QixXQUE1QjtBQUNBTCxJQUFBQSxRQUFRLENBQUMsbUNBQXFCRyxLQUFyQixDQUFELENBQVI7QUFDRCxHQWxCRDs7QUFvQkEsTUFBTVksZUFBZSxHQUFHLFNBQWxCQSxlQUFrQixDQUFDcEIsS0FBRCxFQUFnQlMsT0FBaEIsRUFBcUM7QUFDM0QsUUFBSUwsR0FBRyxLQUFLaUIsU0FBWixFQUF1QjtBQUNyQixVQUFJYixLQUFZLEdBQUcsRUFBbkI7QUFDQSxVQUFJYyxNQUFNLEdBQUdsQixHQUFHLENBQUNtQixPQUFqQjtBQUVBdkIsTUFBQUEsS0FBSyxDQUFDd0IsSUFBTixDQUFXQyxPQUFYLENBQW1CLFVBQUNELElBQUQsRUFBZTtBQUNoQyxhQUFLLElBQU1FLFFBQVgsSUFBdUJKLE1BQXZCLEVBQStCO0FBQzdCLGNBQ0VBLE1BQU0sQ0FBQ0ksUUFBRCxDQUFOLENBQWlCQyxlQUFqQixLQUFxQ04sU0FBckMsSUFDQUMsTUFBTSxDQUFDSSxRQUFELENBQU4sQ0FBaUJDLGVBQWpCLEtBQXFDSCxJQUFJLENBQUNJLE9BRDFDLElBRUFOLE1BQU0sQ0FBQ0ksUUFBRCxDQUFOLENBQWlCRyxZQUFqQixLQUFrQyxNQUhwQyxFQUlFO0FBQ0EsZ0JBQUl0QixZQUFZLEdBQUdlLE1BQU0sQ0FBQ0ksUUFBRCxDQUFOLENBQWlCSSxVQUFqQixFQUFuQjtBQUVBeEIsWUFBQUEsWUFBWSxDQUFDTixLQUFELEVBQVFPLFlBQVIsRUFBc0JDLEtBQXRCLEVBQTZCQyxPQUE3QixDQUFaO0FBQ0Q7QUFDRjtBQUNGLE9BWkQ7QUFhRDtBQUNGLEdBbkJEOztBQXFCQSx3QkFBVSxZQUFNO0FBQ2Q7QUFDQSxRQUFJTixpQkFBaUIsS0FBSyxJQUExQixFQUFnQztBQUM5QkEsTUFBQUEsaUJBQWlCLENBQUNzQixPQUFsQixDQUEwQixVQUFDRCxJQUFELEVBQVU7QUFDbENwQixRQUFBQSxHQUFHLENBQUMyQixXQUFKLENBQWdCUCxJQUFoQjtBQUNELE9BRkQ7QUFHRDs7QUFFRCxRQUNFeEIsS0FBSyxDQUFDd0IsSUFBTixLQUFlLElBQWYsSUFDQXRCLFlBQVksS0FBSyxJQURqQixJQUVBQyxpQkFBaUIsQ0FBQzZCLE1BQWxCLEtBQTZCLENBSC9CLEVBSUU7QUFDQVosTUFBQUEsZUFBZSxDQUFDcEIsS0FBRCxFQUFRLElBQVIsQ0FBZjtBQUNEO0FBQ0YsR0FmRCxFQWVHLENBQUNFLFlBQUQsRUFBZUMsaUJBQWYsQ0FmSDtBQWlCQSxzQkFBTyx5Q0FBUDtBQUNELENBdEVEOztlQXdFZUosUyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1pZ25vcmVcbmltcG9ydCBMIGZyb20gJ2xlYWZsZXQnO1xuaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZURpc3BhdGNoIH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuaW1wb3J0IHsgc2V0SG92ZXJlZEV2ZW50UGF0aHMgfSBmcm9tICdzcmMvc3RvcmUvZXZlbnRzL2FjdGlvbnMnO1xuaW1wb3J0IHsgSUV2ZW50IH0gZnJvbSAnc3JjL3N0b3JlL2V2ZW50cy9tb2RlbHMvSUV2ZW50JztcbmltcG9ydCB7IElHbG9iYWxTdGF0ZSB9IGZyb20gJ3NyYy9zdG9yZS9nbG9iYWwvbW9kZWxzL0lHbG9iYWxTdGF0ZSc7XG5cbnR5cGUgSVByb3BzID0ge1xuICBldmVudDogSUV2ZW50O1xuICBnbG9iYWxfZGF0YTogSUdsb2JhbFN0YXRlO1xuICBob3ZlcmVkRXZlbnQ/OiBJRXZlbnQ7XG4gIGhvdmVyZWRFdmVudFBhdGhzPzogYW55W107XG59O1xuXG5jb25zdCBFdmVudFBhdGg6IFJlYWN0LkZDPElQcm9wcz4gPSAoe1xuICBldmVudCxcbiAgZ2xvYmFsX2RhdGEsXG5cbiAgaG92ZXJlZEV2ZW50ID0gbnVsbCxcbiAgaG92ZXJlZEV2ZW50UGF0aHMgPSBbXSxcbn0pID0+IHtcbiAgY29uc3QgeyBtYXAgfSA9IGdsb2JhbF9kYXRhO1xuXG4gIGNvbnN0IGRpc3BhdGNoID0gdXNlRGlzcGF0Y2goKTtcblxuICBjb25zdCBkcmF3UG9seWxpbmUgPSAoXG4gICAgZXZlbnQ6IElFdmVudCxcbiAgICBsYXllckxhdGxuZ3M6IGFueSxcbiAgICBQYXRoczogYW55LFxuICAgIGlzSG92ZXI6IGJvb2xlYW4sXG4gICkgPT4ge1xuICAgIGxldCBldmVudFBhdGggPSBMLnBvbHlsaW5lKGxheWVyTGF0bG5ncywge1xuICAgICAgY29sb3I6ICdyZ2JhKDAsMCwwLDApJyxcbiAgICAgIHdlaWdodDogMTAsXG4gICAgICBjbGFzc05hbWU6ICdldmVudC1wYXRoJyxcbiAgICAgIHN0cm9rZTogdHJ1ZSxcbiAgICB9KS5hZGRUbyhtYXApO1xuXG4gICAgUGF0aHMucHVzaChldmVudFBhdGgpO1xuXG4gICAgZXZlbnRQYXRoWydrYW5kb19vYmplY3RfaWQnXSA9IGV2ZW50LmlkO1xuICAgIGV2ZW50UGF0aFsna2FuZG9fb2JqZWN0J10gPSAnRXZlbnRQYXRoJztcbiAgICBkaXNwYXRjaChzZXRIb3ZlcmVkRXZlbnRQYXRocyhQYXRocykpO1xuICB9O1xuXG4gIGNvbnN0IHJlbmRlckV2ZW50UGF0aCA9IChldmVudDogSUV2ZW50LCBpc0hvdmVyOiBib29sZWFuKSA9PiB7XG4gICAgaWYgKG1hcCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBsZXQgUGF0aHM6IGFueVtdID0gW107XG4gICAgICBsZXQgbGF5ZXJzID0gbWFwLl9sYXllcnM7XG5cbiAgICAgIGV2ZW50LnBhdGguZm9yRWFjaCgocGF0aDogYW55KSA9PiB7XG4gICAgICAgIGZvciAoY29uc3QgcHJvcGVydHkgaW4gbGF5ZXJzKSB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgbGF5ZXJzW3Byb3BlcnR5XS5rYW5kb19vYmplY3RfaWQgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgICAgbGF5ZXJzW3Byb3BlcnR5XS5rYW5kb19vYmplY3RfaWQgPT09IHBhdGguZWRnZV9pZCAmJlxuICAgICAgICAgICAgbGF5ZXJzW3Byb3BlcnR5XS5rYW5kb19vYmplY3QgPT09ICdFZGdlJ1xuICAgICAgICAgICkge1xuICAgICAgICAgICAgbGV0IGxheWVyTGF0bG5ncyA9IGxheWVyc1twcm9wZXJ0eV0uZ2V0TGF0TG5ncygpO1xuXG4gICAgICAgICAgICBkcmF3UG9seWxpbmUoZXZlbnQsIGxheWVyTGF0bG5ncywgUGF0aHMsIGlzSG92ZXIpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9O1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgLy8gQ2xlYW51cCBleGlzdGluZyBwYXRocyBpZiBuZWNlc3NhcnlcbiAgICBpZiAoaG92ZXJlZEV2ZW50UGF0aHMgIT09IG51bGwpIHtcbiAgICAgIGhvdmVyZWRFdmVudFBhdGhzLmZvckVhY2goKHBhdGgpID0+IHtcbiAgICAgICAgbWFwLnJlbW92ZUxheWVyKHBhdGgpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgZXZlbnQucGF0aCAhPT0gbnVsbCAmJlxuICAgICAgaG92ZXJlZEV2ZW50ICE9PSBudWxsICYmXG4gICAgICBob3ZlcmVkRXZlbnRQYXRocy5sZW5ndGggPT09IDBcbiAgICApIHtcbiAgICAgIHJlbmRlckV2ZW50UGF0aChldmVudCwgdHJ1ZSk7XG4gICAgfVxuICB9LCBbaG92ZXJlZEV2ZW50LCBob3ZlcmVkRXZlbnRQYXRoc10pO1xuXG4gIHJldHVybiA8ZGl2PjwvZGl2Pjtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IEV2ZW50UGF0aDtcbiJdfQ==
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
3
5
|
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
4
6
|
|
|
5
7
|
Object.defineProperty(exports, "__esModule", {
|
|
@@ -7,13 +9,15 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
9
|
});
|
|
8
10
|
exports.NetworkForSpecificEvent = void 0;
|
|
9
11
|
|
|
12
|
+
var _leaflet = _interopRequireDefault(require("leaflet"));
|
|
13
|
+
|
|
10
14
|
var _react = _interopRequireWildcard(require("react"));
|
|
11
15
|
|
|
12
16
|
var _reactRedux = require("react-redux");
|
|
13
17
|
|
|
14
18
|
var _actions = require("store/events/actions");
|
|
15
19
|
|
|
16
|
-
var
|
|
20
|
+
var _whitePoint = _interopRequireDefault(require("../../../assets/white-point.png"));
|
|
17
21
|
|
|
18
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); }
|
|
19
23
|
|
|
@@ -27,6 +31,116 @@ var NetworkForSpecificEvent = function NetworkForSpecificEvent(_ref) {
|
|
|
27
31
|
map = _ref.map;
|
|
28
32
|
var dispatch = (0, _reactRedux.useDispatch)();
|
|
29
33
|
|
|
34
|
+
var getFirstEdgeOfEventPath = function getFirstEdgeOfEventPath() {
|
|
35
|
+
return edges.find(function (edge) {
|
|
36
|
+
return edge.id === event.path[0].edge_id;
|
|
37
|
+
});
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
var getUpstreamEdges = function getUpstreamEdges(firstEdge) {
|
|
41
|
+
return edges.filter(function (edge) {
|
|
42
|
+
return edge.target_point_id === firstEdge.source_point_id;
|
|
43
|
+
});
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
var findUpstreamEdgesToDraw = function findUpstreamEdgesToDraw(upstreamEdges, edgesToDraw) {
|
|
47
|
+
upstreamEdges.forEach(function (upstreamEdge) {
|
|
48
|
+
if (upstreamEdge) {
|
|
49
|
+
var sourcePoint = points.find(function (point) {
|
|
50
|
+
return point.id === upstreamEdge.source_point_id;
|
|
51
|
+
});
|
|
52
|
+
if (sourcePoint) edgesToDraw.push(upstreamEdge);
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
return edgesToDraw;
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
var findEdgesFromEventPathToDraw = function findEdgesFromEventPathToDraw(edgesToDraw) {
|
|
59
|
+
event.path.forEach(function (part) {
|
|
60
|
+
var matchedPart = edges.find(function (edge) {
|
|
61
|
+
return edge.id === part.edge_id;
|
|
62
|
+
});
|
|
63
|
+
if (matchedPart !== undefined) edgesToDraw.push(matchedPart);
|
|
64
|
+
});
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
var findAndDrawEventNetworkEdges = function findAndDrawEventNetworkEdges() {
|
|
68
|
+
var edgesToDraw = [];
|
|
69
|
+
var firstEdge = getFirstEdgeOfEventPath();
|
|
70
|
+
|
|
71
|
+
if (firstEdge !== undefined) {
|
|
72
|
+
var upstreamEdges = getUpstreamEdges(firstEdge);
|
|
73
|
+
if (upstreamEdges.length !== 0) findUpstreamEdgesToDraw(upstreamEdges, edgesToDraw);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
findEdgesFromEventPathToDraw(edgesToDraw);
|
|
77
|
+
drawNetwork(edgesToDraw);
|
|
78
|
+
};
|
|
79
|
+
|
|
80
|
+
var drawManholeIcon = function drawManholeIcon(sourcePoint) {
|
|
81
|
+
var pointIcon = _leaflet.default.icon({
|
|
82
|
+
iconUrl: _whitePoint.default,
|
|
83
|
+
iconSize: [9, 9],
|
|
84
|
+
iconAnchor: [4.5, 4.5]
|
|
85
|
+
});
|
|
86
|
+
|
|
87
|
+
var manholeIcon = _leaflet.default.marker([sourcePoint.latitude, sourcePoint.longitude], {
|
|
88
|
+
icon: pointIcon,
|
|
89
|
+
riseOnHover: true
|
|
90
|
+
}).addTo(map);
|
|
91
|
+
|
|
92
|
+
manholeIcon.bindTooltip("".concat(sourcePoint.group.name, " (").concat(sourcePoint.id, ")"));
|
|
93
|
+
manholeIcon['kando_object_id'] = sourcePoint.id;
|
|
94
|
+
manholeIcon['kando_object'] = 'UpstreamPoint';
|
|
95
|
+
};
|
|
96
|
+
|
|
97
|
+
var drawNetwork = function drawNetwork(edges) {
|
|
98
|
+
var latlngs = [];
|
|
99
|
+
edges.forEach(function (edge) {
|
|
100
|
+
edge.shape_data.forEach(function (data) {
|
|
101
|
+
latlngs.push([data.lat, data.lng]);
|
|
102
|
+
});
|
|
103
|
+
|
|
104
|
+
var polylineBack = _leaflet.default.polyline(latlngs, {
|
|
105
|
+
color: 'rgb(227,227,227)',
|
|
106
|
+
weight: 6,
|
|
107
|
+
opacity: 1
|
|
108
|
+
}).addTo(map);
|
|
109
|
+
|
|
110
|
+
if (points.length !== 0) {
|
|
111
|
+
var sourcePoint = points.find(function (point) {
|
|
112
|
+
return point.id === edge.source_point_id;
|
|
113
|
+
});
|
|
114
|
+
var targetPoint = points.find(function (point) {
|
|
115
|
+
return point.id === edge.target_point_id;
|
|
116
|
+
});
|
|
117
|
+
|
|
118
|
+
if (sourcePoint !== undefined && targetPoint !== undefined) {
|
|
119
|
+
polylineBack.bindPopup("Edge ID: ".concat(edge.id, ",<br>\n Source point: ").concat(sourcePoint.group.name, ",<br>\n Target point: ").concat(targetPoint.group.name, ",\n Distance: ").concat(edge.distance));
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
if (sourcePoint) drawManholeIcon(sourcePoint);
|
|
123
|
+
if (targetPoint) drawManholeIcon(targetPoint);
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
polylineBack['kando_object_id'] = edge.id;
|
|
127
|
+
polylineBack['kando_object'] = 'HoveredEdge';
|
|
128
|
+
polylineBack.bringToFront();
|
|
129
|
+
|
|
130
|
+
var polylineFront = _leaflet.default.polyline(latlngs, {
|
|
131
|
+
color: 'rgb(29,29,29)',
|
|
132
|
+
weight: 1,
|
|
133
|
+
opacity: 1
|
|
134
|
+
}).addTo(map);
|
|
135
|
+
|
|
136
|
+
polylineFront['kando_object_id'] = edge.id;
|
|
137
|
+
polylineFront['kando_object'] = 'HoveredEdgeFront';
|
|
138
|
+
polylineFront.bringToFront();
|
|
139
|
+
dispatch((0, _actions.setHoveredEdgePaths)([polylineBack, polylineFront]));
|
|
140
|
+
latlngs = [];
|
|
141
|
+
});
|
|
142
|
+
};
|
|
143
|
+
|
|
30
144
|
var cleanupLogic = function cleanupLogic() {
|
|
31
145
|
dispatch((0, _actions.setHoveredEdgePaths)([]));
|
|
32
146
|
var layers = map._layers;
|
|
@@ -39,7 +153,7 @@ var NetworkForSpecificEvent = function NetworkForSpecificEvent(_ref) {
|
|
|
39
153
|
};
|
|
40
154
|
|
|
41
155
|
(0, _react.useEffect)(function () {
|
|
42
|
-
|
|
156
|
+
findAndDrawEventNetworkEdges();
|
|
43
157
|
return function cleanup() {
|
|
44
158
|
cleanupLogic();
|
|
45
159
|
};
|
|
@@ -48,4 +162,4 @@ var NetworkForSpecificEvent = function NetworkForSpecificEvent(_ref) {
|
|
|
48
162
|
};
|
|
49
163
|
|
|
50
164
|
exports.NetworkForSpecificEvent = NetworkForSpecificEvent;
|
|
51
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9XaWRnZXRzL01hcC9ldmVudHMvTmV0d29ya0ZvclNwZWNpZmljRXZlbnQudHN4Il0sIm5hbWVzIjpbIk5ldHdvcmtGb3JTcGVjaWZpY0V2ZW50IiwiZXZlbnQiLCJlZGdlcyIsInBvaW50cyIsIm1hcCIsImRpc3BhdGNoIiwiY2xlYW51cExvZ2ljIiwibGF5ZXJzIiwiX2xheWVycyIsInByb3BlcnR5Iiwia2FuZG9fb2JqZWN0IiwidW5kZWZpbmVkIiwicmVtb3ZlTGF5ZXIiLCJjbGVhbnVwIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFFQTs7QUFDQTs7QUFDQTs7QUFJQTs7Ozs7O0FBUkE7QUFpQk8sSUFBTUEsdUJBQXlDLEdBQUcsU0FBNUNBLHVCQUE0QyxPQUtuRDtBQUFBLE1BSkpDLEtBSUksUUFKSkEsS0FJSTtBQUFBLE1BSEpDLEtBR0ksUUFISkEsS0FHSTtBQUFBLE1BRkpDLE1BRUksUUFGSkEsTUFFSTtBQUFBLE1BREpDLEdBQ0ksUUFESkEsR0FDSTtBQUNKLE1BQU1DLFFBQVEsR0FBRyw4QkFBakI7O0FBQ0EsTUFBTUMsWUFBWSxHQUFHLFNBQWZBLFlBQWUsR0FBTTtBQUN6QkQsSUFBQUEsUUFBUSxDQUFDLGtDQUFvQixFQUFwQixDQUFELENBQVI7QUFDQSxRQUFJRSxNQUFNLEdBQUdILEdBQUcsQ0FBQ0ksT0FBakI7O0FBQ0EsU0FBSyxJQUFNQyxRQUFYLElBQXVCRixNQUF2QixFQUErQjtBQUM3QixVQUNFQSxNQUFNLENBQUNFLFFBQUQsQ0FBTixDQUFpQkMsWUFBakIsS0FBa0NDLFNBQWxDLElBQ0FKLE1BQU0sQ0FBQ0UsUUFBRCxDQUFOLENBQWlCQyxZQUFqQixLQUFrQyxlQUZwQyxFQUdFO0FBQ0FOLFFBQUFBLEdBQUcsQ0FBQ1EsV0FBSixDQUFnQkwsTUFBTSxDQUFDRSxRQUFELENBQXRCO0FBQ0Q7QUFDRjtBQUNGLEdBWEQ7O0FBYUEsd0JBQVUsWUFBTTtBQUNkLGtEQUE2QlAsS0FBN0IsRUFBb0NELEtBQXBDLEVBQTJDRSxNQUEzQyxFQUFtREUsUUFBbkQsRUFBNkRELEdBQTdEO0FBRUEsV0FBTyxTQUFTUyxPQUFULEdBQW1CO0FBQ3hCUCxNQUFBQSxZQUFZO0FBQ2IsS0FGRDtBQUdELEdBTkQsRUFNRyxDQUFDTCxLQUFELENBTkg7QUFRQSxzQkFBTywyREFBUDtBQUNELENBN0JNIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWlnbm9yZVxuaW1wb3J0IHsgTWFwIGFzIExlYWZsZXRNYXAgfSBmcm9tICdsZWFmbGV0JztcbmltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VEaXNwYXRjaCB9IGZyb20gJ3JlYWN0LXJlZHV4JztcbmltcG9ydCB7IHNldEhvdmVyZWRFZGdlUGF0aHMgfSBmcm9tICdzcmMvc3RvcmUvZXZlbnRzL2FjdGlvbnMnO1xuaW1wb3J0IHsgSUV2ZW50IH0gZnJvbSAnc3JjL3N0b3JlL2V2ZW50cy9tb2RlbHMvSUV2ZW50JztcbmltcG9ydCB7IElFZGdlIH0gZnJvbSAnLi4vLi4vLi4vc3RvcmUvZWRnZXMvbW9kZWxzL0lFZGdlJztcbmltcG9ydCB7IElQb2ludCB9IGZyb20gJy4uLy4uLy4uL3N0b3JlL3BvaW50cy9tb2RlbHMvSVBvaW50JztcbmltcG9ydCB7IGZpbmRBbmREcmF3RXZlbnROZXR3b3JrRWRnZXMgfSBmcm9tICcuL0V2ZW50VXRpbHMnO1xuXG50eXBlIElQcm9wcyA9IHtcbiAgZXZlbnQ6IElFdmVudDtcbiAgZWRnZXM6IElFZGdlW107XG4gIHBvaW50czogSVBvaW50W107XG4gIG1hcDogTGVhZmxldE1hcCB8IGFueTtcbn07XG5cbmV4cG9ydCBjb25zdCBOZXR3b3JrRm9yU3BlY2lmaWNFdmVudDogUmVhY3QuRkM8SVByb3BzPiA9ICh7XG4gIGV2ZW50LFxuICBlZGdlcyxcbiAgcG9pbnRzLFxuICBtYXAsXG59KSA9PiB7XG4gIGNvbnN0IGRpc3BhdGNoID0gdXNlRGlzcGF0Y2goKTtcbiAgY29uc3QgY2xlYW51cExvZ2ljID0gKCkgPT4ge1xuICAgIGRpc3BhdGNoKHNldEhvdmVyZWRFZGdlUGF0aHMoW10pKTtcbiAgICBsZXQgbGF5ZXJzID0gbWFwLl9sYXllcnM7XG4gICAgZm9yIChjb25zdCBwcm9wZXJ0eSBpbiBsYXllcnMpIHtcbiAgICAgIGlmIChcbiAgICAgICAgbGF5ZXJzW3Byb3BlcnR5XS5rYW5kb19vYmplY3QgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICBsYXllcnNbcHJvcGVydHldLmthbmRvX29iamVjdCA9PT0gJ1Vwc3RyZWFtUG9pbnQnXG4gICAgICApIHtcbiAgICAgICAgbWFwLnJlbW92ZUxheWVyKGxheWVyc1twcm9wZXJ0eV0pO1xuICAgICAgfVxuICAgIH1cbiAgfTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGZpbmRBbmREcmF3RXZlbnROZXR3b3JrRWRnZXMoZWRnZXMsIGV2ZW50LCBwb2ludHMsIGRpc3BhdGNoLCBtYXApO1xuXG4gICAgcmV0dXJuIGZ1bmN0aW9uIGNsZWFudXAoKSB7XG4gICAgICBjbGVhbnVwTG9naWMoKTtcbiAgICB9O1xuICB9LCBbZXZlbnRdKTtcblxuICByZXR1cm4gPD48Lz47XG59O1xuIl19
|
|
165
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9XaWRnZXRzL01hcC9ldmVudHMvTmV0d29ya0ZvclNwZWNpZmljRXZlbnQudHN4Il0sIm5hbWVzIjpbIk5ldHdvcmtGb3JTcGVjaWZpY0V2ZW50IiwiZXZlbnQiLCJlZGdlcyIsInBvaW50cyIsIm1hcCIsImRpc3BhdGNoIiwiZ2V0Rmlyc3RFZGdlT2ZFdmVudFBhdGgiLCJmaW5kIiwiZWRnZSIsImlkIiwicGF0aCIsImVkZ2VfaWQiLCJnZXRVcHN0cmVhbUVkZ2VzIiwiZmlyc3RFZGdlIiwiZmlsdGVyIiwidGFyZ2V0X3BvaW50X2lkIiwic291cmNlX3BvaW50X2lkIiwiZmluZFVwc3RyZWFtRWRnZXNUb0RyYXciLCJ1cHN0cmVhbUVkZ2VzIiwiZWRnZXNUb0RyYXciLCJmb3JFYWNoIiwidXBzdHJlYW1FZGdlIiwic291cmNlUG9pbnQiLCJwb2ludCIsInB1c2giLCJmaW5kRWRnZXNGcm9tRXZlbnRQYXRoVG9EcmF3IiwicGFydCIsIm1hdGNoZWRQYXJ0IiwidW5kZWZpbmVkIiwiZmluZEFuZERyYXdFdmVudE5ldHdvcmtFZGdlcyIsImxlbmd0aCIsImRyYXdOZXR3b3JrIiwiZHJhd01hbmhvbGVJY29uIiwicG9pbnRJY29uIiwiTCIsImljb24iLCJpY29uVXJsIiwid2hpdGVQb2ludCIsImljb25TaXplIiwiaWNvbkFuY2hvciIsIm1hbmhvbGVJY29uIiwibWFya2VyIiwibGF0aXR1ZGUiLCJsb25naXR1ZGUiLCJyaXNlT25Ib3ZlciIsImFkZFRvIiwiYmluZFRvb2x0aXAiLCJncm91cCIsIm5hbWUiLCJsYXRsbmdzIiwic2hhcGVfZGF0YSIsImRhdGEiLCJsYXQiLCJsbmciLCJwb2x5bGluZUJhY2siLCJwb2x5bGluZSIsImNvbG9yIiwid2VpZ2h0Iiwib3BhY2l0eSIsInRhcmdldFBvaW50IiwiYmluZFBvcHVwIiwiZGlzdGFuY2UiLCJicmluZ1RvRnJvbnQiLCJwb2x5bGluZUZyb250IiwiY2xlYW51cExvZ2ljIiwibGF5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QU5IO0FBUUEsc0JBQU8sMkRBQVA7QUFDRCxDQWxKTSIsInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1pZ25vcmVcbmltcG9ydCBMLCB7IE1hcCBhcyBMZWFmbGV0TWFwIH0gZnJvbSAnbGVhZmxldCc7XG5pbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlRGlzcGF0Y2ggfSBmcm9tICdyZWFjdC1yZWR1eCc7XG5pbXBvcnQgeyBzZXRIb3ZlcmVkRWRnZVBhdGhzIH0gZnJvbSAnc3JjL3N0b3JlL2V2ZW50cy9hY3Rpb25zJztcbmltcG9ydCB7IElFdmVudCB9IGZyb20gJ3NyYy9zdG9yZS9ldmVudHMvbW9kZWxzL0lFdmVudCc7XG5pbXBvcnQgeyBJRWRnZSB9IGZyb20gJy4uLy4uLy4uL3N0b3JlL2VkZ2VzL21vZGVscy9JRWRnZSc7XG5pbXBvcnQgeyBJUG9pbnQgfSBmcm9tICcuLi8uLi8uLi9zdG9yZS9wb2ludHMvbW9kZWxzL0lQb2ludCc7XG5pbXBvcnQgd2hpdGVQb2ludCBmcm9tICcuLi8uLi8uLi9hc3NldHMvd2hpdGUtcG9pbnQucG5nJztcblxudHlwZSBJUHJvcHMgPSB7XG4gIGV2ZW50OiBJRXZlbnQ7XG4gIGVkZ2VzOiBJRWRnZVtdO1xuICBwb2ludHM6IElQb2ludFtdO1xuICBtYXA6IExlYWZsZXRNYXAgfCBhbnk7XG59O1xuXG5leHBvcnQgY29uc3QgTmV0d29ya0ZvclNwZWNpZmljRXZlbnQ6IFJlYWN0LkZDPElQcm9wcz4gPSAoe1xuICBldmVudCxcbiAgZWRnZXMsXG4gIHBvaW50cyxcbiAgbWFwLFxufSkgPT4ge1xuICBjb25zdCBkaXNwYXRjaCA9IHVzZURpc3BhdGNoKCk7XG5cbiAgY29uc3QgZ2V0Rmlyc3RFZGdlT2ZFdmVudFBhdGggPSAoKSA9PiB7XG4gICAgcmV0dXJuIGVkZ2VzLmZpbmQoKGVkZ2UpID0+IGVkZ2UuaWQgPT09IGV2ZW50LnBhdGhbMF0uZWRnZV9pZCk7XG4gIH07XG5cbiAgY29uc3QgZ2V0VXBzdHJlYW1FZGdlcyA9IChmaXJzdEVkZ2U6IElFZGdlKSA9PiB7XG4gICAgcmV0dXJuIGVkZ2VzLmZpbHRlcihcbiAgICAgIChlZGdlKSA9PiBlZGdlLnRhcmdldF9wb2ludF9pZCA9PT0gZmlyc3RFZGdlIS5zb3VyY2VfcG9pbnRfaWQsXG4gICAgKTtcbiAgfTtcblxuICBjb25zdCBmaW5kVXBzdHJlYW1FZGdlc1RvRHJhdyA9IChcbiAgICB1cHN0cmVhbUVkZ2VzOiBJRWRnZVtdLFxuICAgIGVkZ2VzVG9EcmF3OiBJRWRnZVtdLFxuICApID0+IHtcbiAgICB1cHN0cmVhbUVkZ2VzLmZvckVhY2goKHVwc3RyZWFtRWRnZSkgPT4ge1xuICAgICAgaWYgKHVwc3RyZWFtRWRnZSkge1xuICAgICAgICBsZXQgc291cmNlUG9pbnQgPSBwb2ludHMuZmluZChcbiAgICAgICAgICAocG9pbnQpID0+IHBvaW50LmlkID09PSB1cHN0cmVhbUVkZ2UhLnNvdXJjZV9wb2ludF9pZCxcbiAgICAgICAgKTtcblxuICAgICAgICBpZiAoc291cmNlUG9pbnQpIGVkZ2VzVG9EcmF3LnB1c2godXBzdHJlYW1FZGdlKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBlZGdlc1RvRHJhdztcbiAgfTtcblxuICBjb25zdCBmaW5kRWRnZXNGcm9tRXZlbnRQYXRoVG9EcmF3ID0gKGVkZ2VzVG9EcmF3OiBJRWRnZVtdKSA9PiB7XG4gICAgZXZlbnQucGF0aC5mb3JFYWNoKChwYXJ0KSA9PiB7XG4gICAgICBsZXQgbWF0Y2hlZFBhcnQgPSBlZGdlcy5maW5kKChlZGdlKSA9PiBlZGdlLmlkID09PSBwYXJ0LmVkZ2VfaWQpO1xuICAgICAgaWYgKG1hdGNoZWRQYXJ0ICE9PSB1bmRlZmluZWQpIGVkZ2VzVG9EcmF3LnB1c2gobWF0Y2hlZFBhcnQpO1xuICAgIH0pO1xuICB9O1xuXG4gIGNvbnN0IGZpbmRBbmREcmF3RXZlbnROZXR3b3JrRWRnZXMgPSAoKSA9PiB7XG4gICAgbGV0IGVkZ2VzVG9EcmF3OiBJRWRnZVtdID0gW107XG4gICAgbGV0IGZpcnN0RWRnZSA9IGdldEZpcnN0RWRnZU9mRXZlbnRQYXRoKCk7XG5cbiAgICBpZiAoZmlyc3RFZGdlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGxldCB1cHN0cmVhbUVkZ2VzID0gZ2V0VXBzdHJlYW1FZGdlcyhmaXJzdEVkZ2UpO1xuICAgICAgaWYgKHVwc3RyZWFtRWRnZXMubGVuZ3RoICE9PSAwKVxuICAgICAgICBmaW5kVXBzdHJlYW1FZGdlc1RvRHJhdyh1cHN0cmVhbUVkZ2VzLCBlZGdlc1RvRHJhdyk7XG4gICAgfVxuXG4gICAgZmluZEVkZ2VzRnJvbUV2ZW50UGF0aFRvRHJhdyhlZGdlc1RvRHJhdyk7XG4gICAgZHJhd05ldHdvcmsoZWRnZXNUb0RyYXcpO1xuICB9O1xuXG4gIGNvbnN0IGRyYXdNYW5ob2xlSWNvbiA9IChzb3VyY2VQb2ludCkgPT4ge1xuICAgIGxldCBwb2ludEljb24gPSBMLmljb24oe1xuICAgICAgaWNvblVybDogd2hpdGVQb2ludCxcbiAgICAgIGljb25TaXplOiBbOSwgOV0sXG4gICAgICBpY29uQW5jaG9yOiBbNC41LCA0LjVdLFxuICAgIH0pO1xuICAgIGxldCBtYW5ob2xlSWNvbjogYW55ID0gTC5tYXJrZXIoXG4gICAgICBbc291cmNlUG9pbnQubGF0aXR1ZGUsIHNvdXJjZVBvaW50LmxvbmdpdHVkZV0sXG4gICAgICB7XG4gICAgICAgIGljb246IHBvaW50SWNvbixcbiAgICAgICAgcmlzZU9uSG92ZXI6IHRydWUsXG4gICAgICB9LFxuICAgICkuYWRkVG8obWFwKTtcbiAgICBtYW5ob2xlSWNvbi5iaW5kVG9vbHRpcChgJHtzb3VyY2VQb2ludC5ncm91cC5uYW1lfSAoJHtzb3VyY2VQb2ludC5pZH0pYCk7XG4gICAgbWFuaG9sZUljb25bJ2thbmRvX29iamVjdF9pZCddID0gc291cmNlUG9pbnQuaWQ7XG4gICAgbWFuaG9sZUljb25bJ2thbmRvX29iamVjdCddID0gJ1Vwc3RyZWFtUG9pbnQnO1xuICB9O1xuXG4gIGNvbnN0IGRyYXdOZXR3b3JrID0gKGVkZ2VzKSA9PiB7XG4gICAgbGV0IGxhdGxuZ3M6IGFueSA9IFtdO1xuICAgIGVkZ2VzLmZvckVhY2goKGVkZ2UpID0+IHtcbiAgICAgIGVkZ2Uuc2hhcGVfZGF0YS5mb3JFYWNoKChkYXRhOiBhbnkpID0+IHtcbiAgICAgICAgbGF0bG5ncy5wdXNoKFtkYXRhLmxhdCwgZGF0YS5sbmddKTtcbiAgICAgIH0pO1xuXG4gICAgICBsZXQgcG9seWxpbmVCYWNrOiBhbnkgPSBMLnBvbHlsaW5lKGxhdGxuZ3MsIHtcbiAgICAgICAgY29sb3I6ICdyZ2IoMjI3LDIyNywyMjcpJyxcbiAgICAgICAgd2VpZ2h0OiA2LFxuICAgICAgICBvcGFjaXR5OiAxLFxuICAgICAgfSkuYWRkVG8obWFwKTtcbiAgICAgIGlmIChwb2ludHMubGVuZ3RoICE9PSAwKSB7XG4gICAgICAgIGxldCBzb3VyY2VQb2ludCA9IHBvaW50cy5maW5kKFxuICAgICAgICAgIChwb2ludDogSVBvaW50KSA9PiBwb2ludC5pZCA9PT0gZWRnZS5zb3VyY2VfcG9pbnRfaWQsXG4gICAgICAgICk7XG4gICAgICAgIGxldCB0YXJnZXRQb2ludCA9IHBvaW50cy5maW5kKFxuICAgICAgICAgIChwb2ludDogSVBvaW50KSA9PiBwb2ludC5pZCA9PT0gZWRnZS50YXJnZXRfcG9pbnRfaWQsXG4gICAgICAgICk7XG4gICAgICAgIGlmIChzb3VyY2VQb2ludCAhPT0gdW5kZWZpbmVkICYmIHRhcmdldFBvaW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBwb2x5bGluZUJhY2suYmluZFBvcHVwKGBFZGdlIElEOiAke2VkZ2UuaWR9LDxicj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU291cmNlIHBvaW50OiAke3NvdXJjZVBvaW50Lmdyb3VwLm5hbWV9LDxicj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGFyZ2V0IHBvaW50OiAke3RhcmdldFBvaW50Lmdyb3VwLm5hbWV9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEaXN0YW5jZTogJHtlZGdlLmRpc3RhbmNlfWApO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHNvdXJjZVBvaW50KSBkcmF3TWFuaG9sZUljb24oc291cmNlUG9pbnQpO1xuICAgICAgICBpZiAodGFyZ2V0UG9pbnQpIGRyYXdNYW5ob2xlSWNvbih0YXJnZXRQb2ludCk7XG4gICAgICB9XG5cbiAgICAgIHBvbHlsaW5lQmFja1sna2FuZG9fb2JqZWN0X2lkJ10gPSBlZGdlLmlkO1xuICAgICAgcG9seWxpbmVCYWNrWydrYW5kb19vYmplY3QnXSA9ICdIb3ZlcmVkRWRnZSc7XG5cbiAgICAgIHBvbHlsaW5lQmFjay5icmluZ1RvRnJvbnQoKTtcblxuICAgICAgbGV0IHBvbHlsaW5lRnJvbnQ6IGFueSA9IEwucG9seWxpbmUobGF0bG5ncywge1xuICAgICAgICBjb2xvcjogJ3JnYigyOSwyOSwyOSknLFxuICAgICAgICB3ZWlnaHQ6IDEsXG4gICAgICAgIG9wYWNpdHk6IDEsXG4gICAgICB9KS5hZGRUbyhtYXApO1xuXG4gICAgICBwb2x5bGluZUZyb250WydrYW5kb19vYmplY3RfaWQnXSA9IGVkZ2UuaWQ7XG4gICAgICBwb2x5bGluZUZyb250WydrYW5kb19vYmplY3QnXSA9ICdIb3ZlcmVkRWRnZUZyb250JztcblxuICAgICAgcG9seWxpbmVGcm9udC5icmluZ1RvRnJvbnQoKTtcbiAgICAgIGRpc3BhdGNoKHNldEhvdmVyZWRFZGdlUGF0aHMoW3BvbHlsaW5lQmFjaywgcG9seWxpbmVGcm9udF0pKTtcbiAgICAgIGxhdGxuZ3MgPSBbXTtcbiAgICB9KTtcbiAgfTtcblxuICBjb25zdCBjbGVhbnVwTG9naWMgPSAoKSA9PiB7XG4gICAgZGlzcGF0Y2goc2V0SG92ZXJlZEVkZ2VQYXRocyhbXSkpO1xuICAgIGxldCBsYXllcnMgPSBtYXAuX2xheWVycztcbiAgICBmb3IgKGNvbnN0IHByb3BlcnR5IGluIGxheWVycykge1xuICAgICAgaWYgKFxuICAgICAgICBsYXllcnNbcHJvcGVydHldLmthbmRvX29iamVjdCAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgIGxheWVyc1twcm9wZXJ0eV0ua2FuZG9fb2JqZWN0ID09PSAnVXBzdHJlYW1Qb2ludCdcbiAgICAgICkge1xuICAgICAgICBtYXAucmVtb3ZlTGF5ZXIobGF5ZXJzW3Byb3BlcnR5XSk7XG4gICAgICB9XG4gICAgfVxuICB9O1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgZmluZEFuZERyYXdFdmVudE5ldHdvcmtFZGdlcygpO1xuXG4gICAgcmV0dXJuIGZ1bmN0aW9uIGNsZWFudXAoKSB7XG4gICAgICBjbGVhbnVwTG9naWMoKTtcbiAgICB9O1xuICB9LCBbZXZlbnRdKTtcblxuICByZXR1cm4gPD48Lz47XG59O1xuIl19
|