@kando-env/kando-ui 1.2.395-alpha.2 → 1.2.395-alpha.4
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/macros/getVersion.js +1 -1
- package/lib/pages/OperationsPage/LeftPanel.js +3 -2
- package/lib/pages/OperationsPage/Map/Map.js +30 -0
- package/lib/pages/OperationsPage/Map/useMap.js +201 -0
- package/lib/pages/OperationsPage/OperationsPage.js +49 -4
- package/lib/pages/OperationsPage/OperationsPage.scss +8 -0
- package/lib/pages/OperationsPage/RightPanel.js +3 -2
- package/package.json +1 -1
- package/lib/pages/OperationsPage/Map.js +0 -29
- package/lib/pages/OperationsPage/useMap.js +0 -170
package/lib/macros/getVersion.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var packageJsonVersion = "1.2.395-alpha.
|
|
3
|
+
var packageJsonVersion = "1.2.395-alpha.4";
|
|
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));
|
|
@@ -9,12 +9,13 @@ var _react = _interopRequireDefault(require("react"));
|
|
|
9
9
|
var _reactBootstrap = require("react-bootstrap");
|
|
10
10
|
var LeftPanel = function LeftPanel(_ref) {
|
|
11
11
|
var points = _ref.points,
|
|
12
|
+
selectedPoint = _ref.selectedPoint,
|
|
12
13
|
setSelectedPoint = _ref.setSelectedPoint;
|
|
13
14
|
return /*#__PURE__*/_react.default.createElement(_reactBootstrap.Container, {
|
|
14
15
|
className: "mt-4"
|
|
15
16
|
}, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Row, null, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Col, null, /*#__PURE__*/_react.default.createElement("h4", null, "Monitored Points(".concat(points.length, ")")), /*#__PURE__*/_react.default.createElement(_reactBootstrap.ListGroup, null, points.length > 0 && points.map(function (point) {
|
|
16
17
|
return /*#__PURE__*/_react.default.createElement(_reactBootstrap.ListGroup.Item, {
|
|
17
|
-
className:
|
|
18
|
+
className: (selectedPoint === null || selectedPoint === void 0 ? void 0 : selectedPoint.id) === point.id ? 'list-item list-item-selected' : 'list-item',
|
|
18
19
|
key: point.id,
|
|
19
20
|
onClick: function onClick() {
|
|
20
21
|
return setSelectedPoint(point);
|
|
@@ -24,4 +25,4 @@ var LeftPanel = function LeftPanel(_ref) {
|
|
|
24
25
|
};
|
|
25
26
|
var _default = LeftPanel;
|
|
26
27
|
exports.default = _default;
|
|
27
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
28
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9yZWFjdEJvb3RzdHJhcCIsIkxlZnRQYW5lbCIsIl9yZWYiLCJwb2ludHMiLCJzZWxlY3RlZFBvaW50Iiwic2V0U2VsZWN0ZWRQb2ludCIsImRlZmF1bHQiLCJjcmVhdGVFbGVtZW50IiwiQ29udGFpbmVyIiwiY2xhc3NOYW1lIiwiUm93IiwiQ29sIiwiY29uY2F0IiwibGVuZ3RoIiwiTGlzdEdyb3VwIiwibWFwIiwicG9pbnQiLCJJdGVtIiwiaWQiLCJrZXkiLCJvbkNsaWNrIiwibmFtZSIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wYWdlcy9PcGVyYXRpb25zUGFnZS9MZWZ0UGFuZWwudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBDb250YWluZXIsIFJvdywgQ29sLCBMaXN0R3JvdXAgfSBmcm9tICdyZWFjdC1ib290c3RyYXAnO1xuaW1wb3J0IHsgSVBvaW50IH0gZnJvbSAnc3JjL3N0b3JlL3BvaW50cy9tb2RlbHMvSVBvaW50JztcblxuZXhwb3J0IGludGVyZmFjZSBMZWZ0UGFuZWxQcm9wcyB7XG4gIHBvaW50czogSVBvaW50W107XG4gIHNlbGVjdGVkUG9pbnQ6IElQb2ludCB8IG51bGw7XG4gIHNldFNlbGVjdGVkUG9pbnQ6IChwb2ludDogSVBvaW50KSA9PiB2b2lkO1xufVxuXG5jb25zdCBMZWZ0UGFuZWw6IFJlYWN0LkZDPExlZnRQYW5lbFByb3BzPiA9ICh7XG4gIHBvaW50cyxcbiAgc2VsZWN0ZWRQb2ludCxcbiAgc2V0U2VsZWN0ZWRQb2ludCxcbn0pID0+IHtcbiAgcmV0dXJuIChcbiAgICA8Q29udGFpbmVyIGNsYXNzTmFtZT1cIm10LTRcIj5cbiAgICAgIDxSb3c+XG4gICAgICAgIDxDb2w+XG4gICAgICAgICAgPGg0PntgTW9uaXRvcmVkIFBvaW50cygke3BvaW50cy5sZW5ndGh9KWB9PC9oND5cbiAgICAgICAgICA8TGlzdEdyb3VwPlxuICAgICAgICAgICAge3BvaW50cy5sZW5ndGggPiAwICYmXG4gICAgICAgICAgICAgIHBvaW50cy5tYXAoKHBvaW50KSA9PiAoXG4gICAgICAgICAgICAgICAgPExpc3RHcm91cC5JdGVtXG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e1xuICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZFBvaW50Py5pZCA9PT0gcG9pbnQuaWRcbiAgICAgICAgICAgICAgICAgICAgICA/ICdsaXN0LWl0ZW0gbGlzdC1pdGVtLXNlbGVjdGVkJ1xuICAgICAgICAgICAgICAgICAgICAgIDogJ2xpc3QtaXRlbSdcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIGtleT17cG9pbnQuaWR9XG4gICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBzZXRTZWxlY3RlZFBvaW50KHBvaW50KX1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7cG9pbnQubmFtZX1cbiAgICAgICAgICAgICAgICA8L0xpc3RHcm91cC5JdGVtPlxuICAgICAgICAgICAgICApKX1cbiAgICAgICAgICA8L0xpc3RHcm91cD5cbiAgICAgICAgPC9Db2w+XG4gICAgICA8L1Jvdz5cbiAgICA8L0NvbnRhaW5lcj5cbiAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IExlZnRQYW5lbDtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLGVBQUEsR0FBQUQsT0FBQTtBQVNBLElBQU1FLFNBQW1DLEdBQUcsU0FBdENBLFNBQW1DQSxDQUFBQyxJQUFBLEVBSW5DO0VBQUEsSUFISkMsTUFBTSxHQUFBRCxJQUFBLENBQU5DLE1BQU07SUFDTkMsYUFBYSxHQUFBRixJQUFBLENBQWJFLGFBQWE7SUFDYkMsZ0JBQWdCLEdBQUFILElBQUEsQ0FBaEJHLGdCQUFnQjtFQUVoQixvQkFDRVIsTUFBQSxDQUFBUyxPQUFBLENBQUFDLGFBQUEsQ0FBQ1AsZUFBQSxDQUFBUSxTQUFTO0lBQUNDLFNBQVMsRUFBQztFQUFNLGdCQUN6QlosTUFBQSxDQUFBUyxPQUFBLENBQUFDLGFBQUEsQ0FBQ1AsZUFBQSxDQUFBVSxHQUFHLHFCQUNGYixNQUFBLENBQUFTLE9BQUEsQ0FBQUMsYUFBQSxDQUFDUCxlQUFBLENBQUFXLEdBQUcscUJBQ0ZkLE1BQUEsQ0FBQVMsT0FBQSxDQUFBQyxhQUFBLGlDQUFBSyxNQUFBLENBQXlCVCxNQUFNLENBQUNVLE1BQU0sTUFBUSxDQUFDLGVBQy9DaEIsTUFBQSxDQUFBUyxPQUFBLENBQUFDLGFBQUEsQ0FBQ1AsZUFBQSxDQUFBYyxTQUFTLFFBQ1BYLE1BQU0sQ0FBQ1UsTUFBTSxHQUFHLENBQUMsSUFDaEJWLE1BQU0sQ0FBQ1ksR0FBRyxDQUFDLFVBQUNDLEtBQUs7SUFBQSxvQkFDZm5CLE1BQUEsQ0FBQVMsT0FBQSxDQUFBQyxhQUFBLENBQUNQLGVBQUEsQ0FBQWMsU0FBUyxDQUFDRyxJQUFJO01BQ2JSLFNBQVMsRUFDUCxDQUFBTCxhQUFhLGFBQWJBLGFBQWEsdUJBQWJBLGFBQWEsQ0FBRWMsRUFBRSxNQUFLRixLQUFLLENBQUNFLEVBQUUsR0FDMUIsOEJBQThCLEdBQzlCLFdBQ0w7TUFDREMsR0FBRyxFQUFFSCxLQUFLLENBQUNFLEVBQUc7TUFDZEUsT0FBTyxFQUFFLFNBQUFBLFFBQUE7UUFBQSxPQUFNZixnQkFBZ0IsQ0FBQ1csS0FBSyxDQUFDO01BQUE7SUFBQyxHQUV0Q0EsS0FBSyxDQUFDSyxJQUNPLENBQUM7RUFBQSxDQUNsQixDQUNNLENBQ1IsQ0FDRixDQUNJLENBQUM7QUFFaEIsQ0FBQztBQUFDLElBQUFDLFFBQUEsR0FFYXJCLFNBQVM7QUFBQXNCLE9BQUEsQ0FBQWpCLE9BQUEsR0FBQWdCLFFBQUEifQ==
|
|
@@ -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
|
+
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
|
+
});
|
|
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,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbGVhZmxldCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX3JlYWN0IiwiX1BvaW50SWNvbiIsIl90aGVtZSIsIl9NYXBVdGlscyIsInVzZU1hcCIsIm1hcFJlZiIsInBvaW50cyIsImVkZ2VzIiwiYXJlYXMiLCJzZWxlY3RlZFBvaW50IiwidXBkYXRlU2VsZWN0ZWRQb2ludCIsIl91c2VTdGF0ZSIsInVzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5MiIsImRlZmF1bHQiLCJtYXAiLCJzZXRNYXAiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsImZvY3VzZWRNYXJrZXIiLCJzZXRGb2N1c2VkTWFya2VyIiwicG9pbnRzTGF5ZXJSZWYiLCJ1c2VSZWYiLCJlZGdlc0xheWVyUmVmIiwiYXJlYXNMYXllclJlZiIsInVzZUVmZmVjdCIsImN1cnJlbnQiLCJtYXBUeXBlcyIsImJhc2VNYXBzIiwibGVhZmxldE1hcCIsIm1hcERlZmF1bHQiLCJzYXRlbGxpdGUiLCJtYXBUZW1wIiwiTCIsInJlbmRlcmVyIiwiY2FudmFzIiwiT2JqZWN0IiwidmFsdWVzIiwiYWRkVG8iLCJjb250cm9sIiwibGF5ZXJzIiwicG9zaXRpb24iLCJvZmYiLCJyZW1vdmUiLCJfcG9pbnRzTGF5ZXJSZWYkY3VycmUiLCJmaXJlIiwiZWFjaExheWVyIiwibWFya2VyIiwib3B0aW9ucyIsImthbmRvX29iamVjdF9pZCIsImlkIiwiaGFuZGxlTWFya2VyQ2xpY2siLCJwb2ludCIsImFkZE1hcmtlcnMiLCJoYXNMYXllciIsInJlbW92ZUxheWVyIiwiZmVhdHVyZUdyb3VwIiwiZ2V0TGF5ZXJzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9wb2ludHNMYXllclJlZiRjdXJyZTIiLCJpY29uIiwiZ2V0UG9pbnRJY29uQnlUeXBlIiwiZ3JvdXAiLCJ0eXBlIiwibmFtZSIsImZvY3VzZWRJY29uIiwiZ2V0TWFya2VyIiwiTWFya2VyIiwic2V0SWNvbiIsIm9uIiwiX2lzSW5zaWRlIiwiYWRkTGF5ZXIiLCJmaXRCb3VuZHMiLCJnZXRCb3VuZHMiLCJzZXRWaWV3IiwiaGFzX2RldmljZSIsImxhdGl0dWRlIiwibG9uZ2l0dWRlIiwiY2lyY2xlTWFya2VyIiwicmFkaXVzIiwiY29sb3IiLCJ3ZWlnaHQiLCJmaWxsQ29sb3IiLCJmaWxsT3BhY2l0eSIsImFkZEVkZ2VzIiwicG9pbnRMb29rdXAiLCJNYXAiLCJwIiwic2V0IiwiZWRnZSIsIl9lZGdlc0xheWVyUmVmJGN1cnJlbiIsInNvdXJjZVBvaW50IiwiZ2V0Iiwic291cmNlX3BvaW50X2lkIiwidGFyZ2V0UG9pbnQiLCJ0YXJnZXRfcG9pbnRfaWQiLCJsYXRsbmdzIiwicG9seWxpbmUiLCJvcGFjaXR5Iiwic21vb3RoRmFjdG9yIiwiYWRkQXJlYXMiLCJhcmVhIiwiX2FyZWFzTGF5ZXJSZWYkY3VycmVuIiwicG9seWdvbiIsInNoYXBlX2RhdGEiLCJpbnRlcmFjdGl2ZSIsImFyZWFfaWQiLCJiaW5kVG9vbHRpcCIsImFyZWFfbmFtZSIsInBlcm1hbmVudCIsImRpcmVjdGlvbiIsImNsYXNzTmFtZSIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcGFnZXMvT3BlcmF0aW9uc1BhZ2UvTWFwL3VzZU1hcC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEwsIHsgTWFya2VyIH0gZnJvbSAnbGVhZmxldCc7XG5pbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgZ2V0UG9pbnRJY29uQnlUeXBlIH0gZnJvbSAnc3JjL1dpZGdldHMvTWFwL3BvaW50cy9Qb2ludEljb24nO1xuaW1wb3J0IHsgbGVhZmxldE1hcCB9IGZyb20gJ3NyYy9zdHlsZXMvdGhlbWUvdGhlbWUnO1xuaW1wb3J0IHsgYmFzZU1hcHMgfSBmcm9tICdzcmMvV2lkZ2V0cy9NYXAvTWFwVXRpbHMnO1xuaW1wb3J0IHsgSVBvaW50IH0gZnJvbSAnc3JjL3N0b3JlL3BvaW50cy9tb2RlbHMvSVBvaW50JztcbmltcG9ydCB7IElFZGdlIH0gZnJvbSAnc3JjL3N0b3JlL2VkZ2VzL21vZGVscy9JRWRnZSc7XG5pbXBvcnQgeyBJQXJlYSB9IGZyb20gJ3NyYy9zdG9yZS9hcmVhcy9tb2RlbHMvSUFyZWEnO1xuXG5leHBvcnQgY29uc3QgdXNlTWFwID0gKFxuICBtYXBSZWY6IFJlYWN0LlJlZk9iamVjdDxIVE1MRGl2RWxlbWVudD4sXG4gIHBvaW50czogSVBvaW50W10sXG4gIGVkZ2VzOiBJRWRnZVtdLFxuICBhcmVhczogSUFyZWFbXSxcbiAgc2VsZWN0ZWRQb2ludDogSVBvaW50IHwgbnVsbCxcbiAgdXBkYXRlU2VsZWN0ZWRQb2ludDogKHBvaW50OiBJUG9pbnQpID0+IHZvaWQsXG4pOiBMLk1hcCB8IHVuZGVmaW5lZCA9PiB7XG4gIGNvbnN0IFttYXAsIHNldE1hcF0gPSB1c2VTdGF0ZTxMLk1hcD4oKTtcbiAgY29uc3QgW2ZvY3VzZWRNYXJrZXIsIHNldEZvY3VzZWRNYXJrZXJdID0gdXNlU3RhdGU8TWFya2VyIHwgbnVsbD4obnVsbCk7XG4gIGNvbnN0IHBvaW50c0xheWVyUmVmID0gdXNlUmVmPEwuRmVhdHVyZUdyb3VwPigpO1xuICBjb25zdCBlZGdlc0xheWVyUmVmID0gdXNlUmVmPEwuRmVhdHVyZUdyb3VwPigpO1xuICBjb25zdCBhcmVhc0xheWVyUmVmID0gdXNlUmVmPEwuRmVhdHVyZUdyb3VwPigpO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFtYXBSZWYuY3VycmVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IG1hcFR5cGVzID0gYmFzZU1hcHMobGVhZmxldE1hcC5tYXBEZWZhdWx0LCBsZWFmbGV0TWFwLnNhdGVsbGl0ZSk7XG4gICAgY29uc3QgbWFwVGVtcCA9IEwubWFwKG1hcFJlZi5jdXJyZW50LCB7IHJlbmRlcmVyOiBMLmNhbnZhcygpIH0pO1xuXG4gICAgT2JqZWN0LnZhbHVlcyhtYXBUeXBlcylbMF0uYWRkVG8obWFwVGVtcCk7XG5cbiAgICBMLmNvbnRyb2wubGF5ZXJzKG1hcFR5cGVzLCB7fSwgeyBwb3NpdGlvbjogJ2JvdHRvbXJpZ2h0JyB9KS5hZGRUbyhtYXBUZW1wKTtcblxuICAgIHNldE1hcChtYXBUZW1wKTtcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBpZiAoIW1hcFRlbXApIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgbWFwVGVtcC5vZmYoKTtcbiAgICAgIG1hcFRlbXAucmVtb3ZlKCk7XG4gICAgfTtcbiAgfSwgW10pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGZvY3VzZWRNYXJrZXIpIHtcbiAgICAgIGZvY3VzZWRNYXJrZXIuZmlyZSgnbW91c2VvdXQnKTtcbiAgICB9XG5cbiAgICBwb2ludHNMYXllclJlZi5jdXJyZW50Py5lYWNoTGF5ZXIoKG1hcmtlcikgPT4ge1xuICAgICAgaWYgKFxuICAgICAgICBzZWxlY3RlZFBvaW50ICYmXG4gICAgICAgIG1hcmtlci5vcHRpb25zLmthbmRvX29iamVjdF9pZCA9PT0gc2VsZWN0ZWRQb2ludD8uaWRcbiAgICAgICkge1xuICAgICAgICBtYXJrZXIuZmlyZSgnbW91c2VvdmVyJyk7XG4gICAgICAgIHNldEZvY3VzZWRNYXJrZXIobWFya2VyKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH0pO1xuICB9LCBbc2VsZWN0ZWRQb2ludF0pO1xuXG4gIGNvbnN0IGhhbmRsZU1hcmtlckNsaWNrID0gKHBvaW50KSA9PiB7XG4gICAgdXBkYXRlU2VsZWN0ZWRQb2ludChwb2ludCk7XG4gIH07XG5cbiAgY29uc3QgYWRkTWFya2VycyA9ICgpID0+IHtcbiAgICBpZiAoIW1hcCB8fCAhcG9pbnRzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHBvaW50c0xheWVyUmVmLmN1cnJlbnQpIHtcbiAgICAgIGlmIChtYXAuaGFzTGF5ZXIocG9pbnRzTGF5ZXJSZWYuY3VycmVudCkpIHtcbiAgICAgICAgbWFwLnJlbW92ZUxheWVyKHBvaW50c0xheWVyUmVmLmN1cnJlbnQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHBvaW50c0xheWVyUmVmLmN1cnJlbnQgPSBMLmZlYXR1cmVHcm91cCgpO1xuICAgIHBvaW50c0xheWVyUmVmLmN1cnJlbnQuYWRkVG8obWFwKTtcblxuICAgIGlmICghcG9pbnRzTGF5ZXJSZWYuY3VycmVudC5nZXRMYXllcnMoKS5sZW5ndGgpIHtcbiAgICAgIHBvaW50cy5mb3JFYWNoKChwb2ludCkgPT4ge1xuICAgICAgICBjb25zdCBpY29uID0gZ2V0UG9pbnRJY29uQnlUeXBlKFxuICAgICAgICAgIHBvaW50Lmdyb3VwLnR5cGUsXG4gICAgICAgICAgcG9pbnQubmFtZSxcbiAgICAgICAgICAnJyxcbiAgICAgICAgICBmYWxzZSxcbiAgICAgICAgICB0cnVlLFxuICAgICAgICApO1xuXG4gICAgICAgIGNvbnN0IGZvY3VzZWRJY29uID0gZ2V0UG9pbnRJY29uQnlUeXBlKFxuICAgICAgICAgIHBvaW50Lmdyb3VwLnR5cGUsXG4gICAgICAgICAgcG9pbnQubmFtZSxcbiAgICAgICAgICAnJyxcbiAgICAgICAgICB0cnVlLFxuICAgICAgICAgIGZhbHNlLFxuICAgICAgICApO1xuXG4gICAgICAgIGxldCBtYXJrZXIgPSBnZXRNYXJrZXIocG9pbnQpO1xuXG4gICAgICAgIGlmIChtYXJrZXIgaW5zdGFuY2VvZiBMLk1hcmtlcikge1xuICAgICAgICAgIG1hcmtlci5zZXRJY29uKGljb24pO1xuICAgICAgICAgIC8vIFRoZSB1c2Ugb2YgbWFya2VyLl9pc0luc2lkZSBpcyB0byBvdmVyY29tZSB0aGUgaXNzdWUgdGhhdCBtb3VzZW92ZXIgaXMgZW5kbGVzc2x5IHRyaWdnZXJlZFxuICAgICAgICAgIC8vIGFuZCB3ZSBuZWVkIGl0IG9ubGV5IG9uY2VcbiAgICAgICAgICBtYXJrZXIub24oJ21vdXNlb3ZlcicsICgpID0+IHtcbiAgICAgICAgICAgIGlmICghbWFya2VyLl9pc0luc2lkZSkge1xuICAgICAgICAgICAgICBtYXJrZXIuX2lzSW5zaWRlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgbWFya2VyLnNldEljb24oZm9jdXNlZEljb24pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICAgIG1hcmtlci5vbignbW91c2VvdXQnLCAoKSA9PiB7XG4gICAgICAgICAgICBtYXJrZXIuX2lzSW5zaWRlID0gZmFsc2U7XG4gICAgICAgICAgICBtYXJrZXIuc2V0SWNvbihpY29uKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIG1hcmtlci5vbignY2xpY2snLCAoKSA9PiB7XG4gICAgICAgICAgaGFuZGxlTWFya2VyQ2xpY2socG9pbnQpO1xuICAgICAgICB9KTtcblxuICAgICAgICBwb2ludHNMYXllclJlZi5jdXJyZW50Py5hZGRMYXllcihtYXJrZXIpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKHBvaW50c0xheWVyUmVmLmN1cnJlbnQuZ2V0TGF5ZXJzKCkubGVuZ3RoKSB7XG4gICAgICBtYXAuZml0Qm91bmRzKHBvaW50c0xheWVyUmVmLmN1cnJlbnQuZ2V0Qm91bmRzKCkpO1xuICAgIH0gZWxzZSB7XG4gICAgICBtYXAuc2V0VmlldyhbMzIuMjE5MTU3LCAzNC45ODI0ODFdLCAxMik7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IGdldE1hcmtlciA9IChwb2ludDogSVBvaW50KSA9PiB7XG4gICAgaWYgKFxuICAgICAgcG9pbnQuaGFzX2RldmljZSA9PT0gdHJ1ZSB8fFxuICAgICAgcG9pbnQuZ3JvdXAudHlwZSA9PT0gJ0dyb3Vwczo6V2FzdGV3YXRlclRyZWF0bWVudFBsYW50J1xuICAgICkge1xuICAgICAgcmV0dXJuIEwubWFya2VyKFtwb2ludC5sYXRpdHVkZSwgcG9pbnQubG9uZ2l0dWRlXSwge1xuICAgICAgICBrYW5kb19vYmplY3RfaWQ6IHBvaW50LmlkLFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBMLmNpcmNsZU1hcmtlcihbcG9pbnQubGF0aXR1ZGUsIHBvaW50LmxvbmdpdHVkZV0sIHtcbiAgICAgICAgcmFkaXVzOiA0LCAvLyBjaXJjbGUgcmFkaXVzIGluIHBpeGVsc1xuICAgICAgICBjb2xvcjogJyMwMDAwMDAnLCAvLyBib3JkZXIgKHN0cm9rZSkgY29sb3JcbiAgICAgICAgd2VpZ2h0OiAxLCAvLyBib3JkZXIgKHN0cm9rZSkgd2lkdGhcbiAgICAgICAgZmlsbENvbG9yOiAnI2ZmZmZmZicsIC8vIGZpbGwgY29sb3IgKHdoaXRlKVxuICAgICAgICBmaWxsT3BhY2l0eTogMSwgLy8gZnVsbHkgb3BhcXVlXG4gICAgICAgIGthbmRvX29iamVjdF9pZDogcG9pbnQuaWQsXG4gICAgICB9KTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgYWRkRWRnZXMgPSAoKSA9PiB7XG4gICAgLy8gY29uc29sZS5sb2coJ2VkZ2VzJywgZWRnZXMpO1xuICAgIGlmICghbWFwIHx8ICFlZGdlcykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHBvaW50TG9va3VwID0gbmV3IE1hcCgpO1xuICAgIHBvaW50cy5mb3JFYWNoKChwKSA9PiBwb2ludExvb2t1cC5zZXQocC5pZCwgcCkpO1xuXG4gICAgaWYgKGVkZ2VzTGF5ZXJSZWYuY3VycmVudCkge1xuICAgICAgaWYgKG1hcC5oYXNMYXllcihlZGdlc0xheWVyUmVmLmN1cnJlbnQpKSB7XG4gICAgICAgIG1hcC5yZW1vdmVMYXllcihlZGdlc0xheWVyUmVmLmN1cnJlbnQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGVkZ2VzTGF5ZXJSZWYuY3VycmVudCA9IEwuZmVhdHVyZUdyb3VwKCk7XG4gICAgZWRnZXNMYXllclJlZi5jdXJyZW50LmFkZFRvKG1hcCk7XG5cbiAgICBlZGdlcy5mb3JFYWNoKChlZGdlKSA9PiB7XG4gICAgICBjb25zdCBzb3VyY2VQb2ludCA9IHBvaW50TG9va3VwLmdldChlZGdlLnNvdXJjZV9wb2ludF9pZCk7XG4gICAgICBjb25zdCB0YXJnZXRQb2ludCA9IHBvaW50TG9va3VwLmdldChlZGdlLnRhcmdldF9wb2ludF9pZCk7XG4gICAgICAvLyBjb25zb2xlLmxvZygnc291cmNlUG9pbnQnLCBzb3VyY2VQb2ludCk7XG4gICAgICAvLyBjb25zb2xlLmxvZygndGFyZ2V0UG9pbnQnLCB0YXJnZXRQb2ludCk7XG5cbiAgICAgIGlmICghc291cmNlUG9pbnQgfHwgIXRhcmdldFBvaW50KSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3QgbGF0bG5ncyA9IFtcbiAgICAgICAgW3NvdXJjZVBvaW50Py5sYXRpdHVkZSwgc291cmNlUG9pbnQ/LmxvbmdpdHVkZV0sXG4gICAgICAgIFt0YXJnZXRQb2ludD8ubGF0aXR1ZGUsIHRhcmdldFBvaW50Py5sb25naXR1ZGVdLFxuICAgICAgXTtcblxuICAgICAgY29uc3QgcG9seWxpbmUgPSBMLnBvbHlsaW5lKGxhdGxuZ3MsIHtcbiAgICAgICAgY29sb3I6ICdibGFjaycsXG4gICAgICAgIHdlaWdodDogMSxcbiAgICAgICAgb3BhY2l0eTogMC41LFxuICAgICAgICBzbW9vdGhGYWN0b3I6IDEsXG4gICAgICB9KTtcblxuICAgICAgZWRnZXNMYXllclJlZi5jdXJyZW50Py5hZGRMYXllcihwb2x5bGluZSk7XG4gICAgfSk7XG4gIH07XG5cbiAgY29uc3QgYWRkQXJlYXMgPSAoKSA9PiB7XG4gICAgaWYgKCFtYXAgfHwgIWFyZWFzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKGFyZWFzTGF5ZXJSZWYuY3VycmVudCkge1xuICAgICAgaWYgKG1hcC5oYXNMYXllcihhcmVhc0xheWVyUmVmLmN1cnJlbnQpKSB7XG4gICAgICAgIG1hcC5yZW1vdmVMYXllcihhcmVhc0xheWVyUmVmLmN1cnJlbnQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGFyZWFzTGF5ZXJSZWYuY3VycmVudCA9IEwuZmVhdHVyZUdyb3VwKCk7XG4gICAgYXJlYXNMYXllclJlZi5jdXJyZW50LmFkZFRvKG1hcCk7XG5cbiAgICBhcmVhcy5mb3JFYWNoKChhcmVhKSA9PiB7XG4gICAgICBjb25zdCBwb2x5Z29uID0gTC5wb2x5Z29uKGFyZWEuc2hhcGVfZGF0YSwge1xuICAgICAgICBjb2xvcjogJ2JsYWNrJyxcbiAgICAgICAgd2VpZ2h0OiAxLFxuICAgICAgICBvcGFjaXR5OiAwLjgsXG4gICAgICAgIHNtb290aEZhY3RvcjogMSxcbiAgICAgICAgaW50ZXJhY3RpdmU6IGZhbHNlLFxuICAgICAgICBrYW5kb19vYmplY3RfaWQ6IGFyZWEuYXJlYV9pZCxcbiAgICAgIH0pO1xuXG4gICAgICBwb2x5Z29uLmJpbmRUb29sdGlwKGFyZWEuYXJlYV9uYW1lLCB7XG4gICAgICAgIHBlcm1hbmVudDogdHJ1ZSxcbiAgICAgICAgZGlyZWN0aW9uOiAnY2VudGVyJyxcbiAgICAgICAgY2xhc3NOYW1lOiAnYXJlYS10b29sdGlwJyxcbiAgICAgIH0pO1xuXG4gICAgICBhcmVhc0xheWVyUmVmLmN1cnJlbnQ/LmFkZExheWVyKHBvbHlnb24pO1xuICAgIH0pO1xuICB9O1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgYWRkQXJlYXMoKTtcbiAgICBhZGRNYXJrZXJzKCk7XG4gICAgYWRkRWRnZXMoKTtcbiAgfSwgW3BvaW50cywgbWFwXSk7XG5cbiAgcmV0dXJuIG1hcDtcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUEsSUFBQUEsUUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsTUFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsVUFBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcsTUFBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksU0FBQSxHQUFBSixPQUFBO0FBS08sSUFBTUssTUFBTSxHQUFHLFNBQVRBLE1BQU1BLENBQ2pCQyxNQUF1QyxFQUN2Q0MsTUFBZ0IsRUFDaEJDLEtBQWMsRUFDZEMsS0FBYyxF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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
|
});
|
|
@@ -38,6 +42,10 @@ var OperationsPage = function OperationsPage() {
|
|
|
38
42
|
_useState4 = (0, _slicedToArray2.default)(_useState3, 2),
|
|
39
43
|
selectedPoint = _useState4[0],
|
|
40
44
|
setSelectedPoint = _useState4[1];
|
|
45
|
+
var _useState5 = (0, _react.useState)(false),
|
|
46
|
+
_useState6 = (0, _slicedToArray2.default)(_useState5, 2),
|
|
47
|
+
isSmallScreen = _useState6[0],
|
|
48
|
+
setIsSmallScreen = _useState6[1];
|
|
41
49
|
var handleSelectPoint = function handleSelectPoint(newPoint) {
|
|
42
50
|
if (selectedPoint && newPoint.id === selectedPoint.id) {
|
|
43
51
|
setSelectedPoint(null);
|
|
@@ -49,11 +57,24 @@ var OperationsPage = function OperationsPage() {
|
|
|
49
57
|
dispatch((0, _actions.updateNavContext)({
|
|
50
58
|
name: 'operations'
|
|
51
59
|
}));
|
|
60
|
+
var checkScreenSize = function checkScreenSize() {
|
|
61
|
+
setIsSmallScreen(window.innerWidth < 768); // or any breakpoint
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
// Run on mount:
|
|
65
|
+
checkScreenSize();
|
|
66
|
+
|
|
67
|
+
// Also update if the user resizes the browser:
|
|
68
|
+
window.addEventListener('resize', checkScreenSize);
|
|
69
|
+
return function () {
|
|
70
|
+
window.removeEventListener('resize', checkScreenSize);
|
|
71
|
+
};
|
|
52
72
|
}, []);
|
|
53
73
|
(0, _react.useEffect)(function () {
|
|
54
74
|
if (global_data.waterAuthorityId) {
|
|
55
75
|
dispatch((0, _actions2.fetchPoints)(global_data.waterAuthorityId));
|
|
56
76
|
dispatch((0, _actions3.fetchEdges)(global_data.waterAuthorityId));
|
|
77
|
+
dispatch((0, _actions4.fetchAreas)(global_data.waterAuthorityId));
|
|
57
78
|
}
|
|
58
79
|
}, [global_data.waterAuthorityId]);
|
|
59
80
|
var monitoredPoints = (0, _react.useMemo)(function () {
|
|
@@ -71,7 +92,8 @@ var OperationsPage = function OperationsPage() {
|
|
|
71
92
|
var showLeftPanel = (0, _react.useMemo)(function () {
|
|
72
93
|
return /*#__PURE__*/_react.default.createElement(_LeftPanel.default, {
|
|
73
94
|
points: monitoredPoints,
|
|
74
|
-
|
|
95
|
+
selectedPoint: selectedPoint,
|
|
96
|
+
setSelectedPoint: setSelectedPoint
|
|
75
97
|
});
|
|
76
98
|
}, [monitoredPoints, selectedPoint]);
|
|
77
99
|
(0, _react.useEffect)(function () {
|
|
@@ -84,6 +106,27 @@ var OperationsPage = function OperationsPage() {
|
|
|
84
106
|
var onRightPanelClose = function onRightPanelClose() {
|
|
85
107
|
setSelectedPoint(null);
|
|
86
108
|
};
|
|
109
|
+
var getDistance = function getDistance() {
|
|
110
|
+
if (selectedPoint && edges_data.items) {
|
|
111
|
+
var edge = edges_data.items.find(function (edge) {
|
|
112
|
+
return edge.source_point_id === selectedPoint.id;
|
|
113
|
+
});
|
|
114
|
+
return (edge === null || edge === void 0 ? void 0 : edge.distance) || 0;
|
|
115
|
+
}
|
|
116
|
+
return 0;
|
|
117
|
+
};
|
|
118
|
+
if (isSmallScreen) {
|
|
119
|
+
// Show a message or a specialized layout
|
|
120
|
+
return /*#__PURE__*/_react.default.createElement(_reactBootstrap.Container, null, /*#__PURE__*/_react.default.createElement("div", {
|
|
121
|
+
style: {
|
|
122
|
+
marginTop: '6rem',
|
|
123
|
+
textAlign: 'center',
|
|
124
|
+
border: '1px solid #ccc',
|
|
125
|
+
padding: '1rem',
|
|
126
|
+
borderRadius: '10px'
|
|
127
|
+
}
|
|
128
|
+
}, /*#__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.')));
|
|
129
|
+
}
|
|
87
130
|
return /*#__PURE__*/_react.default.createElement(_reactBootstrap.Container, {
|
|
88
131
|
fluid: true,
|
|
89
132
|
className: "vh-90 p-0"
|
|
@@ -93,17 +136,19 @@ var OperationsPage = function OperationsPage() {
|
|
|
93
136
|
}, showLeftPanel), /*#__PURE__*/_react.default.createElement(_reactBootstrap.Col, {
|
|
94
137
|
className: "map-column",
|
|
95
138
|
sm: 9
|
|
96
|
-
}, /*#__PURE__*/_react.default.createElement(_Map.Map, {
|
|
139
|
+
}, !edges_data.isFetching && !areas_data.isFetching && /*#__PURE__*/_react.default.createElement(_Map.Map, {
|
|
97
140
|
points: points,
|
|
98
141
|
edges: edges_data.items,
|
|
142
|
+
areas: areas_data.newAreas,
|
|
99
143
|
selectedPoint: selectedPoint,
|
|
100
144
|
updateSelectedPoint: handleSelectPoint
|
|
101
145
|
}), /*#__PURE__*/_react.default.createElement(_RightPanel.default, {
|
|
102
146
|
className: "right-panel ".concat(showRightPanel ? 'open' : ''),
|
|
103
147
|
point: selectedPoint,
|
|
148
|
+
distance: getDistance(),
|
|
104
149
|
onClose: onRightPanelClose
|
|
105
150
|
}))));
|
|
106
151
|
};
|
|
107
152
|
var _default = OperationsPage;
|
|
108
153
|
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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
|
|
154
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJyZXF1aXJlIiwiX3JlYWN0IiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfcmVhY3RSZWR1eCIsIl9yZWFjdEJvb3RzdHJhcCIsIl9hY3Rpb25zIiwiX2FjdGlvbnMyIiwiX2FjdGlvbnMzIiwiX01hcCIsIl9MZWZ0UGFuZWwiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX1JpZ2h0UGFuZWwiLCJfYWN0aW9uczQiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJub2RlSW50ZXJvcCIsIldlYWtNYXAiLCJjYWNoZUJhYmVsSW50ZXJvcCIsImNhY2hlTm9kZUludGVyb3AiLCJvYmoiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImRlZmF1bHQiLCJjYWNoZSIsImhhcyIsImdldCIsIm5ld09iaiIsImhhc1Byb3BlcnR5RGVzY3JpcHRvciIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwia2V5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiZGVzYyIsInNldCIsIk9wZXJhdGlvbnNQYWdlIiwiZGlzcGF0Y2giLCJ1c2VEaXNwYXRjaCIsInBvaW50c19kYXRhIiwidXNlU2VsZWN0b3IiLCJzdGF0ZSIsImVkZ2VzX2RhdGEiLCJhcmVhc19kYXRhIiwiZ2xvYmFsX2RhdGEiLCJfdXNlU3RhdGUiLCJ1c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheTIiLCJzaG93UmlnaHRQYW5lbCIsInNldFNob3dSaWdodFBhbmVsIiwiX3VzZVN0YXRlMyIsIl91c2VTdGF0ZTQiLCJzZWxlY3RlZFBvaW50Iiwic2V0U2VsZWN0ZWRQb2ludCIsIl91c2VTdGF0ZTUiLCJfdXNlU3RhdGU2IiwiaXNTbWFsbFNjcmVlbiIsInNldElzU21hbGxTY3JlZW4iLCJoYW5kbGVTZWxlY3RQb2ludCIsIm5ld1BvaW50IiwiaWQiLCJ1c2VFZmZlY3QiLCJ1cGRhdGVOYXZDb250ZXh0IiwibmFtZSIsImNoZWNrU2NyZWVuU2l6ZSIsIndpbmRvdyIsImlubmVyV2lkdGgiLCJhZGRFdmVudExpc3RlbmVyIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsIndhdGVyQXV0aG9yaXR5SWQiLCJmZXRjaFBvaW50cyIsImZldGNoRWRnZXMiLCJmZXRjaEFyZWFzIiwibW9uaXRvcmVkUG9pbnRzIiwidXNlTWVtbyIsIl9wb2ludHNfZGF0YSRpdGVtcyIsIml0ZW1zIiwiZmlsdGVyIiwicG9pbnQiLCJoYXNfZGV2aWNlIiwicG9pbnRzIiwiX3BvaW50c19kYXRhJGl0ZW1zMiIsImxhdGl0dWRlIiwibG9uZ2l0dWRlIiwic2hvd0xlZnRQYW5lbCIsImNyZWF0ZUVsZW1lbnQiLCJvblJpZ2h0UGFuZWxDbG9zZSIsImdldERpc3RhbmNlIiwiZWRnZSIsImZpbmQiLCJzb3VyY2VfcG9pbnRfaWQiLCJkaXN0YW5jZSIsIkNvbnRhaW5lciIsInN0eWxlIiwibWFyZ2luVG9wIiwidGV4dEFsaWduIiwiYm9yZGVyIiwicGFkZGluZyIsImJvcmRlclJhZGl1cyIsImZsdWlkIiwiY2xhc3NOYW1lIiwiUm93IiwiQ29sIiwic20iLCJpc0ZldGNoaW5nIiwiTWFwIiwiZWRnZXMiLCJhcmVhcyIsIm5ld0FyZWFzIiwidXBkYXRlU2VsZWN0ZWRQb2ludCIsImNvbmNhdCIsIm9uQ2xvc2UiLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcGFnZXMvT3BlcmF0aW9uc1BhZ2UvT3BlcmF0aW9uc1BhZ2UudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAnLi9PcGVyYXRpb25zUGFnZS5zY3NzJztcbmltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZU1lbW8sIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlRGlzcGF0Y2gsIHVzZVNlbGVjdG9yIH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuaW1wb3J0IHsgQ29sLCBDb250YWluZXIsIFJvdyB9IGZyb20gJ3JlYWN0LWJvb3RzdHJhcCc7XG5pbXBvcnQgeyB1cGRhdGVOYXZDb250ZXh0IH0gZnJvbSAnc3JjL3N0b3JlL2NvbnRleHQvYWN0aW9ucyc7XG5pbXBvcnQgeyBmZXRjaFBvaW50cyB9IGZyb20gJ3NyYy9zdG9yZS9wb2ludHMvYWN0aW9ucyc7XG5pbXBvcnQgeyBmZXRjaEVkZ2VzIH0gZnJvbSAnc3JjL3N0b3JlL2VkZ2VzL2FjdGlvbnMnO1xuaW1wb3J0IHsgSVBvaW50IH0gZnJvbSAnc3JjL3N0b3JlL3BvaW50cy9tb2RlbHMvSVBvaW50JztcbmltcG9ydCB7IE1hcCB9IGZyb20gJy4vTWFwL01hcCc7XG5pbXBvcnQgTGVmdFBhbmVsIGZyb20gJy4vTGVmdFBhbmVsJztcbmltcG9ydCBSaWdodFBhbmVsIGZyb20gJy4vUmlnaHRQYW5lbCc7XG5pbXBvcnQgeyBmZXRjaEFyZWFzIH0gZnJvbSAnc3JjL3N0b3JlL2FyZWFzL2FjdGlvbnMnO1xuXG5jb25zdCBPcGVyYXRpb25zUGFnZTogUmVhY3QuRkMgPSAoKSA9PiB7XG4gIGNvbnN0IGRpc3BhdGNoID0gdXNlRGlzcGF0Y2goKTtcbiAgY29uc3QgcG9pbnRzX2RhdGEgPSB1c2VTZWxlY3Rvcigoc3RhdGUpID0+IHN0YXRlLnBvaW50c19kYXRhKTtcbiAgY29uc3QgZWRnZXNfZGF0YSA9IHVzZVNlbGVjdG9yKChzdGF0ZSkgPT4gc3RhdGUuZWRnZXNfZGF0YSk7XG4gIGNvbnN0IGFyZWFzX2RhdGEgPSB1c2VTZWxlY3Rvcigoc3RhdGUpID0+IHN0YXRlLmFyZWFzX2RhdGEpO1xuICBjb25zdCBnbG9iYWxfZGF0YSA9IHVzZVNlbGVjdG9yKChzdGF0ZSkgPT4gc3RhdGUuZ2xvYmFsX2RhdGEpO1xuICBjb25zdCBbc2hvd1JpZ2h0UGFuZWwsIHNldFNob3dSaWdodFBhbmVsXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgY29uc3QgW3NlbGVjdGVkUG9pbnQsIHNldFNlbGVjdGVkUG9pbnRdID0gdXNlU3RhdGU8SVBvaW50IHwgbnVsbD4obnVsbCk7XG4gIGNvbnN0IFtpc1NtYWxsU2NyZWVuLCBzZXRJc1NtYWxsU2NyZWVuXSA9IHVzZVN0YXRlKGZhbHNlKTtcblxuICBjb25zdCBoYW5kbGVTZWxlY3RQb2ludCA9IChuZXdQb2ludDogSVBvaW50KSA9PiB7XG4gICAgaWYgKHNlbGVjdGVkUG9pbnQgJiYgbmV3UG9pbnQuaWQgPT09IHNlbGVjdGVkUG9pbnQuaWQpIHtcbiAgICAgIHNldFNlbGVjdGVkUG9pbnQobnVsbCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNldFNlbGVjdGVkUG9pbnQobmV3UG9pbnQpO1xuICAgIH1cbiAgfTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGRpc3BhdGNoKHVwZGF0ZU5hdkNvbnRleHQoeyBuYW1lOiAnb3BlcmF0aW9ucycgfSkpO1xuXG4gICAgY29uc3QgY2hlY2tTY3JlZW5TaXplID0gKCkgPT4ge1xuICAgICAgc2V0SXNTbWFsbFNjcmVlbih3aW5kb3cuaW5uZXJXaWR0aCA8IDc2OCk7IC8vIG9yIGFueSBicmVha3BvaW50XG4gICAgfTtcblxuICAgIC8vIFJ1biBvbiBtb3VudDpcbiAgICBjaGVja1NjcmVlblNpemUoKTtcblxuICAgIC8vIEFsc28gdXBkYXRlIGlmIHRoZSB1c2VyIHJlc2l6ZXMgdGhlIGJyb3dzZXI6XG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIGNoZWNrU2NyZWVuU2l6ZSk7XG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdyZXNpemUnLCBjaGVja1NjcmVlblNpemUpO1xuICAgIH07XG4gIH0sIFtdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChnbG9iYWxfZGF0YS53YXRlckF1dGhvcml0eUlkKSB7XG4gICAgICBkaXNwYXRjaChmZXRjaFBvaW50cyhnbG9iYWxfZGF0YS53YXRlckF1dGhvcml0eUlkKSk7XG4gICAgICBkaXNwYXRjaChmZXRjaEVkZ2VzKGdsb2JhbF9kYXRhLndhdGVyQXV0aG9yaXR5SWQpKTtcbiAgICAgIGRpc3BhdGNoKGZldGNoQXJlYXMoZ2xvYmFsX2RhdGEud2F0ZXJBdXRob3JpdHlJZCkpO1xuICAgIH1cbiAgfSwgW2dsb2JhbF9kYXRhLndhdGVyQXV0aG9yaXR5SWRdKTtcblxuICBjb25zdCBtb25pdG9yZWRQb2ludHMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICByZXR1cm4gcG9pbnRzX2RhdGEuaXRlbXM/LmZpbHRlcigocG9pbnQ6IElQb2ludCkgPT4gcG9pbnQuaGFzX2RldmljZSkgfHwgW107XG4gIH0sIFtwb2ludHNfZGF0YS5pdGVtc10pO1xuXG4gIGNvbnN0IHBvaW50cyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIHJldHVybiAoXG4gICAgICBwb2ludHNfZGF0YS5pdGVtcz8uZmlsdGVyKFxuICAgICAgICAocG9pbnQ6IElQb2ludCkgPT4gcG9pbnQubGF0aXR1ZGUgJiYgcG9pbnQubG9uZ2l0dWRlLFxuICAgICAgKSB8fCBbXVxuICAgICk7XG4gIH0sIFtwb2ludHNfZGF0YS5pdGVtc10pO1xuXG4gIGNvbnN0IHNob3dMZWZ0UGFuZWwgPSB1c2VNZW1vKCgpID0+IHtcbiAgICByZXR1cm4gKFxuICAgICAgPExlZnRQYW5lbFxuICAgICAgICBwb2ludHM9e21vbml0b3JlZFBvaW50c31cbiAgICAgICAgc2VsZWN0ZWRQb2ludD17c2VsZWN0ZWRQb2ludH1cbiAgICAgICAgc2V0U2VsZWN0ZWRQb2ludD17c2V0U2VsZWN0ZWRQb2ludH1cbiAgICAgIC8+XG4gICAgKTtcbiAgfSwgW21vbml0b3JlZFBvaW50cywgc2VsZWN0ZWRQb2ludF0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHNlbGVjdGVkUG9pbnQpIHtcbiAgICAgIHNldFNob3dSaWdodFBhbmVsKHRydWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBzZXRTaG93UmlnaHRQYW5lbChmYWxzZSk7XG4gICAgfVxuICB9LCBbc2VsZWN0ZWRQb2ludF0pO1xuXG4gIGNvbnN0IG9uUmlnaHRQYW5lbENsb3NlID0gKCkgPT4ge1xuICAgIHNldFNlbGVjdGVkUG9pbnQobnVsbCk7XG4gIH07XG5cbiAgY29uc3QgZ2V0RGlzdGFuY2UgPSAoKSA9PiB7XG4gICAgaWYgKHNlbGVjdGVkUG9pbnQgJiYgZWRnZXNfZGF0YS5pdGVtcykge1xuICAgICAgY29uc3QgZWRnZSA9IGVkZ2VzX2RhdGEuaXRlbXMuZmluZChcbiAgICAgICAgKGVkZ2UpID0+IGVkZ2Uuc291cmNlX3BvaW50X2lkID09PSBzZWxlY3RlZFBvaW50LmlkLFxuICAgICAgKTtcbiAgICAgIHJldHVybiBlZGdlPy5kaXN0YW5jZSB8fCAwO1xuICAgIH1cbiAgICByZXR1cm4gMDtcbiAgfTtcblxuICBpZiAoaXNTbWFsbFNjcmVlbikge1xuICAgIC8vIFNob3cgYSBtZXNzYWdlIG9yIGEgc3BlY2lhbGl6ZWQgbGF5b3V0XG4gICAgcmV0dXJuIChcbiAgICAgIDxDb250YWluZXI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgbWFyZ2luVG9wOiAnNnJlbScsXG4gICAgICAgICAgICB0ZXh0QWxpZ246ICdjZW50ZXInLFxuICAgICAgICAgICAgYm9yZGVyOiAnMXB4IHNvbGlkICNjY2MnLFxuICAgICAgICAgICAgcGFkZGluZzogJzFyZW0nLFxuICAgICAgICAgICAgYm9yZGVyUmFkaXVzOiAnMTBweCcsXG4gICAgICAgICAgfX1cbiAgICAgICAgPlxuICAgICAgICAgIDxoNT57J1RoaXMgcGFnZSBpcyBub3Qgc3VwcG9ydGVkIG9uIHNtYWxsIHNjcmVlbnMnfTwvaDU+XG4gICAgICAgICAgPHA+eydQbGVhc2UgdXNlIGEgbGFyZ2VyIHNjcmVlbiBmb3IgdGhlIGJlc3QgZXhwZXJpZW5jZS4nfTwvcD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L0NvbnRhaW5lcj5cbiAgICApO1xuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8Q29udGFpbmVyIGZsdWlkIGNsYXNzTmFtZT1cInZoLTkwIHAtMFwiPlxuICAgICAgPFJvdz5cbiAgICAgICAgPENvbCBzbT17M30gY2xhc3NOYW1lPVwibGVmdC1wYW5lbFwiPlxuICAgICAgICAgIHtzaG93TGVmdFBhbmVsfVxuICAgICAgICA8L0NvbD5cbiAgICAgICAgPENvbCBjbGFzc05hbWU9XCJtYXAtY29sdW1uXCIgc209ezl9PlxuICAgICAgICAgIHshZWRnZXNfZGF0YS5pc0ZldGNoaW5nICYmICFhcmVhc19kYXRhLmlzRmV0Y2hpbmcgJiYgKFxuICAgICAgICAgICAgPE1hcFxuICAgICAgICAgICAgICBwb2ludHM9e3BvaW50c31cbiAgICAgICAgICAgICAgZWRnZXM9e2VkZ2VzX2RhdGEuaXRlbXN9XG4gICAgICAgICAgICAgIGFyZWFzPXthcmVhc19kYXRhLm5ld0FyZWFzfVxuICAgICAgICAgICAgICBzZWxlY3RlZFBvaW50PXtzZWxlY3RlZFBvaW50fVxuICAgICAgICAgICAgICB1cGRhdGVTZWxlY3RlZFBvaW50PXtoYW5kbGVTZWxlY3RQb2ludH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgICA8UmlnaHRQYW5lbFxuICAgICAgICAgICAgY2xhc3NOYW1lPXtgcmlnaHQtcGFuZWwgJHtzaG93UmlnaHRQYW5lbCA/ICdvcGVuJyA6ICcnfWB9XG4gICAgICAgICAgICBwb2ludD17c2VsZWN0ZWRQb2ludH1cbiAgICAgICAgICAgIGRpc3RhbmNlPXtnZXREaXN0YW5jZSgpfVxuICAgICAgICAgICAgb25DbG9zZT17b25SaWdodFBhbmVsQ2xvc2V9XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9Db2w+XG4gICAgICA8L1Jvdz5cbiAgICA8L0NvbnRhaW5lcj5cbiAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IE9wZXJhdGlvbnNQYWdlO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQUEsT0FBQTtBQUNBLElBQUFDLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFHLFdBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLGVBQUEsR0FB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
|
|
@@ -8,6 +8,7 @@ exports.default = void 0;
|
|
|
8
8
|
var _react = _interopRequireDefault(require("react"));
|
|
9
9
|
var RightPanel = function RightPanel(_ref) {
|
|
10
10
|
var point = _ref.point,
|
|
11
|
+
distance = _ref.distance,
|
|
11
12
|
className = _ref.className,
|
|
12
13
|
onClose = _ref.onClose;
|
|
13
14
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
@@ -21,8 +22,8 @@ var RightPanel = function RightPanel(_ref) {
|
|
|
21
22
|
className: "drawer-body p-3"
|
|
22
23
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
23
24
|
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, '
|
|
25
|
+
}, /*#__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, 'Was Monitored:'), ' ', (point === null || point === void 0 ? void 0 : point.device_status) !== 'regular' ? 'Yes' : 'No'), /*#__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.split('::')[1]), /*#__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), /*#__PURE__*/_react.default.createElement("p", null, /*#__PURE__*/_react.default.createElement("strong", null, 'Distance:'), " ", distance)))));
|
|
25
26
|
};
|
|
26
27
|
var _default = RightPanel;
|
|
27
28
|
exports.default = _default;
|
|
28
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
29
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIlJpZ2h0UGFuZWwiLCJfcmVmIiwicG9pbnQiLCJkaXN0YW5jZSIsImNsYXNzTmFtZSIsIm9uQ2xvc2UiLCJkZWZhdWx0IiwiY3JlYXRlRWxlbWVudCIsIm9uQ2xpY2siLCJuYW1lIiwiZGVzY3JpcHRpb24iLCJoYXNfZGV2aWNlIiwiZGV2aWNlX3N0YXR1cyIsImdyb3VwIiwic2VjdG9yX25hbWUiLCJ0eXBlIiwic3BsaXQiLCJ3YXRlcl9kaXNjaGFyZ2UiLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcGFnZXMvT3BlcmF0aW9uc1BhZ2UvUmlnaHRQYW5lbC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IElQb2ludCB9IGZyb20gJ3NyYy9zdG9yZS9wb2ludHMvbW9kZWxzL0lQb2ludCc7XG5cbnR5cGUgUmlnaHRQYW5lbFByb3BzID0ge1xuICBwb2ludDogSVBvaW50IHwgbnVsbDtcbiAgZGlzdGFuY2U6IG51bWJlcjtcbiAgY2xhc3NOYW1lPzogc3RyaW5nO1xuICBvbkNsb3NlPzogKCkgPT4gdm9pZDtcbn07XG5cbmNvbnN0IFJpZ2h0UGFuZWw6IFJlYWN0LkZDPFJpZ2h0UGFuZWxQcm9wcz4gPSAoe1xuICBwb2ludCxcbiAgZGlzdGFuY2UsXG4gIGNsYXNzTmFtZSxcbiAgb25DbG9zZSxcbn0pID0+IHtcbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT17Y2xhc3NOYW1lfT5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZHJhd2VyLWhlYWRlciBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1iZXR3ZWVuIHAtMyBwci00XCI+XG4gICAgICAgIHsnUG9pbnQgRGV0YWlscyd9XG4gICAgICAgIDxidXR0b24gY2xhc3NOYW1lPVwiY2xvc2VcIiBvbkNsaWNrPXtvbkNsb3NlfT5cbiAgICAgICAgICA8c3Bhbj4mdGltZXM7PC9zcGFuPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJkcmF3ZXItYm9keSBwLTNcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZvcm0tZ3JvdXBcIj5cbiAgICAgICAgICAgIDxwPlxuICAgICAgICAgICAgICA8c3Ryb25nPnsnTmFtZTonfTwvc3Ryb25nPiB7cG9pbnQ/Lm5hbWV9XG4gICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICA8cD5cbiAgICAgICAgICAgICAgPHN0cm9uZz57J0Rlc2NyaXB0aW9uOid9PC9zdHJvbmc+IHtwb2ludD8uZGVzY3JpcHRpb259XG4gICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICA8cD5cbiAgICAgICAgICAgICAgPHN0cm9uZz57J01vbml0b3JlZDonfTwvc3Ryb25nPiB7cG9pbnQ/Lmhhc19kZXZpY2UgPyAnWWVzJyA6ICdObyd9XG4gICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICA8cD5cbiAgICAgICAgICAgICAgPHN0cm9uZz57J1dhcyBNb25pdG9yZWQ6J308L3N0cm9uZz57JyAnfVxuICAgICAgICAgICAgICB7cG9pbnQ/LmRldmljZV9zdGF0dXMgIT09ICdyZWd1bGFyJyA/ICdZZXMnIDogJ05vJ31cbiAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgIDxwPlxuICAgICAgICAgICAgICA8c3Ryb25nPnsnU2VjdG9yOid9PC9zdHJvbmc+IHtwb2ludD8uZ3JvdXAuc2VjdG9yX25hbWV9XG4gICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICA8cD5cbiAgICAgICAgICAgICAgPHN0cm9uZz57J1R5cGU6J308L3N0cm9uZz4ge3BvaW50Py5ncm91cC50eXBlLnNwbGl0KCc6OicpWzFdfVxuICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgIDxzdHJvbmc+eydXYXRlciBEaXNjaGFyZ2U6J308L3N0cm9uZz57JyAnfVxuICAgICAgICAgICAgICB7cG9pbnQ/Lmdyb3VwLndhdGVyX2Rpc2NoYXJnZX1cbiAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgIDxwPlxuICAgICAgICAgICAgICA8c3Ryb25nPnsnRGlzdGFuY2U6J308L3N0cm9uZz4ge2Rpc3RhbmNlfVxuICAgICAgICAgICAgPC9wPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgUmlnaHRQYW5lbDtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQVVBLElBQU1DLFVBQXFDLEdBQUcsU0FBeENBLFVBQXFDQSxDQUFBQyxJQUFBLEVBS3JDO0VBQUEsSUFKSkMsS0FBSyxHQUFBRCxJQUFBLENBQUxDLEtBQUs7SUFDTEMsUUFBUSxHQUFBRixJQUFBLENBQVJFLFFBQVE7SUFDUkMsU0FBUyxHQUFBSCxJQUFBLENBQVRHLFNBQVM7SUFDVEMsT0FBTyxHQUFBSixJQUFBLENBQVBJLE9BQU87RUFFUCxvQkFDRVIsTUFBQSxDQUFBUyxPQUFBLENBQUFDLGFBQUE7SUFBS0gsU0FBUyxFQUFFQTtFQUFVLGdCQUN4QlAsTUFBQSxDQUFBUyxPQUFBLENBQUFDLGFBQUE7SUFBS0gsU0FBUyxFQUFDO0VBQTBFLEdBQ3RGLGVBQWUsZUFDaEJQLE1BQUEsQ0FBQVMsT0FBQSxDQUFBQyxhQUFBO0lBQVFILFNBQVMsRUFBQyxPQUFPO0lBQUNJLE9BQU8sRUFBRUg7RUFBUSxnQkFDekNSLE1BQUEsQ0FBQVMsT0FBQSxDQUFBQyxhQUFBLGVBQU0sTUFBYSxDQUNiLENBQ0wsQ0FBQyxlQUNOVixNQUFBLENBQUFTLE9BQUEsQ0FBQUMsYUFBQSwyQkFDRVYsTUFBQSxDQUFBUyxPQUFBLENBQUFDLGFBQUE7SUFBS0gsU0FBUyxFQUFDO0VBQWlCLGdCQUM5QlAsTUFBQSxDQUFBUyxPQUFBLENBQUFDLGFBQUE7SUFBS0gsU0FBUyxFQUFDO0VBQVksZ0JBQ3pCUCxNQUFBLENBQUFTLE9BQUEsQ0FBQUMsYUFBQSx5QkFDRVYsTUFBQSxDQUFBUyxPQUFBLENBQUFDLGFBQUEsaUJBQVMsT0FBZ0IsQ0FBQyxLQUFDLEVBQUNMLEtBQUssYUFBTEEsS0FBSyx1QkFBTEEsS0FBSyxDQUFFTyxJQUNsQyxDQUFDLGVBQ0paLE1BQUEsQ0FBQVMsT0FBQSxDQUFBQyxhQUFBLHlCQUNFVixNQUFBLENBQUFTLE9BQUEsQ0FBQUMsYUFBQSxpQkFBUyxjQUF1QixDQUFDLEtBQUMsRUFBQ0wsS0FBSyxhQUFMQSxLQUFLLHVCQUFMQSxLQUFLLENBQUVRLFdBQ3pDLENBQUMsZUFDSmIsTUFBQSxDQUFBUyxPQUFBLENBQUFDLGFBQUEseUJBQ0VWLE1BQUEsQ0FBQVMsT0FBQSxDQUFBQyxhQUFBLGlCQUFTLFlBQXFCLENBQUMsS0FBQyxFQUFDLENBQUFMLEtBQUssYUFBTEEsS0FBSyx1QkFBTEEsS0FBSyxDQUFFUyxVQUFVLElBQUcsS0FBSyxHQUFHLElBQzVELENBQUMsZUFDSmQsTUFBQSxDQUFBUyxPQUFBLENBQUFDLGFBQUEseUJBQ0VWLE1BQUEsQ0FBQVMsT0FBQSxDQUFBQyxhQUFBLGlCQUFTLGdCQUF5QixDQUFDLEVBQUMsR0FBRyxFQUN0QyxDQUFBTCxLQUFLLGFBQUxBLEtBQUssdUJBQUxBLEtBQUssQ0FBRVUsYUFBYSxNQUFLLFNBQVMsR0FBRyxLQUFLLEdBQUcsSUFDN0MsQ0FBQyxlQUNKZixNQUFBLENBQUFTLE9BQUEsQ0FBQUMsYUFBQSx5QkFDRVYsTUFBQSxDQUFBUyxPQUFBLENBQUFDLGFBQUEsaUJBQVMsU0FBa0IsQ0FBQyxLQUFDLEVBQUNMLEtBQUssYUFBTEEsS0FBSyx1QkFBTEEsS0FBSyxDQUFFVyxLQUFLLENBQUNDLFdBQzFDLENBQUMsZUFDSmpCLE1BQUEsQ0FBQVMsT0FBQSxDQUFBQyxhQUFBLHlCQUNFVixNQUFBLENBQUFTLE9BQUEsQ0FBQUMsYUFBQSxpQkFBUyxPQUFnQixDQUFDLEtBQUMsRUFBQ0wsS0FBSyxhQUFMQSxLQUFLLHVCQUFMQSxLQUFLLENBQUVXLEtBQUssQ0FBQ0UsSUFBSSxDQUFDQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUMxRCxDQUFDLGVBQ0puQixNQUFBLENBQUFTLE9BQUEsQ0FBQUMsYUFBQSx5QkFDRVYsTUFBQSxDQUFBUyxPQUFBLENBQUFDLGFBQUEsaUJBQVMsa0JBQTJCLENBQUMsRUFBQyxHQUFHLEVBQ3hDTCxLQUFLLGFBQUxBLEtBQUssdUJBQUxBLEtBQUssQ0FBRVcsS0FBSyxDQUFDSSxlQUNiLENBQUMsZUFDSnBCLE1BQUEsQ0FBQVMsT0FBQSxDQUFBQyxhQUFBLHlCQUNFVixNQUFBLENBQUFTLE9BQUEsQ0FBQUMsYUFBQSxpQkFBUyxXQUFvQixDQUFDLEtBQUMsRUFBQ0osUUFDL0IsQ0FDQSxDQUNGLENBQ0YsQ0FDRixDQUFDO0FBRVYsQ0FBQztBQUFDLElBQUFlLFFBQUEsR0FFYWxCLFVBQVU7QUFBQW1CLE9BQUEsQ0FBQWIsT0FBQSxHQUFBWSxRQUFBIn0=
|
package/package.json
CHANGED
|
@@ -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/LmxhdGl0dWRlLCB0YXJnZXRQb2ludD8ubG9uZ2l0dWRlXSxcbiAgICAgIF07XG5cbiAgICAgIGNvbnN0IHBvbHlsaW5lID0gTC5wb2x5bGluZShsYXRsbmdzLCB7XG4gICAgICAgIGNvbG9yOiAnYmxhY2snLFxuICAgICAgICB3ZWlnaHQ6IDEsXG4gICAgICAgIG9wYWNpdHk6IDAuNSxcbiAgICAgICAgc21vb3RoRmFjdG9yOiAxLFxuICAgICAgfSk7XG5cbiAgICAgIGVkZ2VzTGF5ZXJSZWYuY3VycmVudD8uYWRkTGF5ZXIocG9seWxpbmUpO1xuICAgIH0pO1xuICB9O1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgYWRkTWFya2VycygpO1xuICAgIGFkZEVkZ2VzKCk7XG4gIH0sIFtwb2ludHMsIG1hcF0pO1xuXG4gIHJldHVybiBtYXA7XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBLElBQUFBLFFBQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLE1BQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLFVBQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLE1BQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLFNBQUEsR0FBQUosT0FBQTtBQUlPLElBQU1LLE1BQU0sR0FBRyxTQUFUQSxNQUFNQSxDQUNqQkMsTUFBdUMsRUFDdkNDLE1BQWdCLEVBQ2hCQyxLQUFjLEVBQ2RDLGFBQTRCLEVBQzVCQyxtQkFBNEMsRUFDdEI7RUFDdEIsSUFBQUMsU0FBQSxHQUFzQixJQUFBQyxlQUFRLEVBQVEsQ0FBQztJQUFBQyxVQUFBLE9BQUFDLGVBQUEsQ0FBQUMsT0FBQSxFQUFBSixTQUFBO0lBQWhDSyxHQUFHLEdBQUFILFVBQUE7SUFBRUksTUFBTSxHQUFBSixVQUFBO0VBQ2xCLElBQUFLLFVBQUEsR0FBMEMsSUFBQU4sZUFBUSxFQUFnQixJQUFJLENBQUM7SUFBQU8sVUFBQSxPQUFBTCxlQUFBLENBQUFDLE9BQUEsRUFBQUcsVUFBQTtJQUFoRUUsYUFBYSxHQUFBRCxVQUFBO0lBQUVFLGdCQUFnQixHQUFBRixVQUFBO0VBQ3RDLElBQU1HLGNBQWMsR0FBRyxJQUFBQyxhQUFNLEVBQWlCLENBQUM7RUFDL0MsSUFBTUMsYUFBYSxHQUFHLElBQUFELGFBQU0sRUFBaUIsQ0FBQztFQUU5QyxJQUFBRSxnQkFBUyxFQUFDLFlBQU07SUFDZCxJQUFJLENBQUNuQixNQUFNLENBQUNvQixPQUFPLEVBQUU7TUFDbkI7SUFDRjtJQUVBLElBQU1DLFFBQVEsR0FBRyxJQUFBQyxrQkFBUSxFQUFDQyxpQkFBVSxDQUFDQyxVQUFVLEVBQUVELGlCQUFVLENBQUNFLFNBQVMsQ0FBQztJQUN0RSxJQUFNQyxPQUFPLEdBQUdDLGdCQUFDLENBQUNqQixHQUFHLENBQUNWLE1BQU0sQ0FBQ29CLE9BQU8sRUFBRTtNQUFFUSxRQUFRLEVBQUVELGdCQUFDLENBQUNFLE1BQU0sQ0FBQztJQUFFLENBQUMsQ0FBQztJQUUvREMsTUFBTSxDQUFDQyxNQUFNLENBQUNWLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDVyxLQUFLLENBQUNOLE9BQU8sQ0FBQztJQUV6Q0MsZ0JBQUMsQ0FBQ00sT0FBTyxDQUFDQyxNQUFNLENBQUNiLFFBQVEsRUFBRSxDQUFDLENBQUMsRUFBRTtNQUFFYyxRQUFRLEVBQUU7SUFBYyxDQUFDLENBQUMsQ0FBQ0gsS0FBSyxDQUFDTixPQUFPLENBQUM7SUFFMUVmLE1BQU0sQ0FBQ2UsT0FBTyxDQUFDO0lBRWYsT0FBTyxZQUFNO01BQ1gsSUFBSSxDQUFDQSxPQUFPLEVBQUU7UUFDWjtNQUNGO01BQ0FBLE9BQU8sQ0FBQ1UsR0FBRyxDQUFDLENBQUM7TUFDYlYsT0FBTyxDQUFDVyxNQUFNLENBQUMsQ0FBQztJQUNsQixDQUFDO0VBQ0gsQ0FBQyxFQUFFLEVBQUUsQ0FBQztFQUVOLElBQUFsQixnQkFBUyxFQUFDLFlBQU07SUFBQSxJQUFBbUIscUJBQUE7SUFDZCxJQUFJeEIsYUFBYSxFQUFFO01BQ2pCQSxhQUFhLENBQUN5QixJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ2hDO0lBRUEsQ0FBQUQscUJBQUEsR0FBQXRCLGNBQWMsQ0FBQ0ksT0FBTyxjQUFBa0IscUJBQUEsdUJBQXRCQSxxQkFBQSxDQUF3QkUsU0FBUyxDQUFDLFVBQUNDLE1BQU0sRUFBSztNQUM1QyxJQUNFdEMsYUFBYSxJQUNic0MsTUFBTSxDQUFDQyxPQUFPLENBQUNDLGVBQWUsTUFBS3hDLGFBQWEsYUFBYkEsYUFBYSx1QkFBYkEsYUFBYSxDQUFFeUMsRUFBRSxHQUNwRDtRQUNBSCxNQUFNLENBQUNGLElBQUksQ0FBQyxXQUFXLENBQUM7UUFDeEJ4QixnQkFBZ0IsQ0FBQzBCLE1BQU0sQ0FBQztRQUN4QjtNQUNGO0lBQ0YsQ0FBQyxDQUFDO0VBQ0osQ0FBQyxFQUFFLENBQUN0QyxhQUFhLENBQUMsQ0FBQztFQUVuQixJQUFNMEMsaUJBQWlCLEdBQUcsU0FBcEJBLGlCQUFpQkEsQ0FBSUMsS0FBSyxFQUFLO0lBQ25DMUMsbUJBQW1CLENBQUMwQyxLQUFLLENBQUM7RUFDNUIsQ0FBQztFQUVELElBQU1DLFVBQVUsR0FBRyxTQUFiQSxVQUFVQSxDQUFBLEVBQVM7SUFDdkIsSUFBSSxDQUFDckMsR0FBRyxJQUFJLENBQUNULE1BQU0sRUFBRTtNQUNuQjtJQUNGO0lBRUEsSUFBSWUsY0FBYyxDQUFDSSxPQUFPLEVBQUU7TUFDMUIsSUFBSVYsR0FBRyxDQUFDc0MsUUFBUSxDQUFDaEMsY0FBYyxDQUFDSSxPQUFPLENBQUMsRUFBRTtRQUN4Q1YsR0FBRyxDQUFDdUMsV0FBVyxDQUFDakMsY0FBYyxDQUFDSSxPQUFPLENBQUM7TUFDekM7SUFDRjtJQUVBSixjQUFjLENBQUNJLE9BQU8sR0FBR08sZ0JBQUMsQ0FBQ3VCLFlBQVksQ0FBQyxDQUFDO0lBQ3pDbEMsY0FBYyxDQUFDSSxPQUFPLENBQUNZLEtBQUssQ0FBQ3RCLEdBQUcsQ0FBQztJQUVqQyxJQUFJLENBQUNNLGNBQWMsQ0FBQ0ksT0FBTyxDQUFDK0IsU0FBUyxDQUFDLENBQUMsQ0FBQ0MsTUFBTSxFQUFFO01BQzlDbkQsTUFBTSxDQUFDb0QsT0FBTyxDQUFDLFVBQUNQLEtBQUssRUFBSztRQUFBLElBQUFRLHNCQUFBO1FBQ3hCLElBQU1DLElBQUksR0FBRyxJQUFBQyw2QkFBa0IsRUFDN0JWLEtBQUssQ0FBQ1csS0FBSyxDQUFDQyxJQUFJLEVBQ2hCWixLQUFLLENBQUNhLElBQUksRUFDVixFQUFFLEVBQ0YsS0FBSyxFQUNMLElBQ0YsQ0FBQztRQUVELElBQU1DLFdBQVcsR0FBRyxJQUFBSiw2QkFBa0IsRUFDcENWLEtBQUssQ0FBQ1csS0FBSyxDQUFDQyxJQUFJLEVBQ2hCWixLQUFLLENBQUNhLElBQUksRUFDVixFQUFFLEVBQ0YsSUFBSSxFQUNKLEtBQ0YsQ0FBQztRQUVELElBQUlsQixNQUFNLEdBQUdvQixTQUFTLENBQUNmLEtBQUssQ0FBQztRQUU3QixJQUFJQSxLQUFLLENBQUNnQixVQUFVLEVBQUU7VUFDcEJyQixNQUFNLENBQUNzQixPQUFPLENBQUNSLElBQUksQ0FBQztVQUNwQjtVQUNBO1VBQ0FkLE1BQU0sQ0FBQ3VCLEVBQUUsQ0FBQyxXQUFXLEVBQUUsWUFBTTtZQUMzQixJQUFJLENBQUN2QixNQUFNLENBQUN3QixTQUFTLEVBQUU7Y0FDckJ4QixNQUFNLENBQUN3QixTQUFTLEdBQUcsSUFBSTtjQUN2QnhCLE1BQU0sQ0FBQ3NCLE9BQU8sQ0FBQ0gsV0FBVyxDQUFDO1lBQzdCO1VBQ0YsQ0FBQyxDQUFDO1VBQ0ZuQixNQUFNLENBQUN1QixFQUFFLENBQUMsVUFBVSxFQUFFLFlBQU07WUFDMUJ2QixNQUFNLENBQUN3QixTQUFTLEdBQUcsS0FBSztZQUN4QnhCLE1BQU0sQ0FBQ3NCLE9BQU8sQ0FBQ1IsSUFBSSxDQUFDO1VBQ3RCLENBQUMsQ0FBQztRQUNKO1FBRUFkLE1BQU0sQ0FBQ3VCLEVBQUUsQ0FBQyxPQUFPLEVBQUUsWUFBTTtVQUN2Qm5CLGlCQUFpQixDQUFDQyxLQUFLLENBQUM7UUFDMUIsQ0FBQyxDQUFDO1FBRUYsQ0FBQVEsc0JBQUEsR0FBQXRDLGNBQWMsQ0FBQ0ksT0FBTyxjQUFBa0Msc0JBQUEsdUJBQXRCQSxzQkFBQSxDQUF3QlksUUFBUSxDQUFDekIsTUFBTSxDQUFDO01BQzFDLENBQUMsQ0FBQztJQUNKO0lBRUEsSUFBSXpCLGNBQWMsQ0FBQ0ksT0FBTyxDQUFDK0IsU0FBUyxDQUFDLENBQUMsQ0FBQ0MsTUFBTSxFQUFFO01BQzdDMUMsR0FBRyxDQUFDeUQsU0FBUyxDQUFDbkQsY0FBYyxDQUFDSSxPQUFPLENBQUNnRCxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQ25ELENBQUMsTUFBTTtNQUNMMUQsR0FBRyxDQUFDMkQsT0FBTyxDQUFDLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxFQUFFLEVBQUUsQ0FBQztJQUN6QztFQUNGLENBQUM7RUFFRCxJQUFNUixTQUFTLEdBQUcsU0FBWkEsU0FBU0EsQ0FBSWYsS0FBYSxFQUFLO0lBQ25DLElBQUlBLEtBQUssQ0FBQ2dCLFVBQVUsS0FBSyxJQUFJLEVBQUU7TUFDN0IsT0FBT25DLGdCQUFDLENBQUNjLE1BQU0sQ0FBQyxDQUFDSyxLQUFLLENBQUN3QixRQUFRLEVBQUV4QixLQUFLLENBQUN5QixTQUFTLENBQUMsRUFBRTtRQUNqRDVCLGVBQWUsRUFBRUcsS0FBSyxDQUFDRjtNQUN6QixDQUFDLENBQUM7SUFDSixDQUFDLE1BQU07TUFDTCxPQUFPakIsZ0JBQUMsQ0FBQzZDLFlBQVksQ0FBQyxDQUFDMUIsS0FBSyxDQUFDd0IsUUFBUSxFQUFFeEIsS0FBSyxDQUFDeUIsU0FBUyxDQUFDLEVBQUU7UUFDdkRFLE1BQU0sRUFBRSxDQUFDO1FBQUU7UUFDWEMsS0FBSyxFQUFFLFNBQVM7UUFBRTtRQUNsQkMsTUFBTSxFQUFFLENBQUM7UUFBRTtRQUNYQyxTQUFTLEVBQUUsU0FBUztRQUFFO1FBQ3RCQyxXQUFXLEVBQUUsQ0FBQztRQUFFO1FBQ2hCbEMsZUFBZSxFQUFFRyxLQUFLLENBQUNGO01BQ3pCLENBQUMsQ0FBQztJQUNKO0VBQ0YsQ0FBQztFQUVELElBQU1rQyxRQUFRLEdBQUcsU0FBWEEsUUFBUUEsQ0FBQSxFQUFTO0lBQ3JCO0lBQ0EsSUFBSSxDQUFDcEUsR0FBRyxJQUFJLENBQUNSLEtBQUssRUFBRTtNQUNsQjtJQUNGO0lBRUEsSUFBSWdCLGFBQWEsQ0FBQ0UsT0FBTyxFQUFFO01BQ3pCLElBQUlWLEdBQUcsQ0FBQ3NDLFFBQVEsQ0FBQzlCLGFBQWEsQ0FBQ0UsT0FBTyxDQUFDLEVBQUU7UUFDdkNWLEdBQUcsQ0FBQ3VDLFdBQVcsQ0FBQy9CLGFBQWEsQ0FBQ0UsT0FBTyxDQUFDO01BQ3hDO0lBQ0Y7SUFFQUYsYUFBYSxDQUFDRSxPQUFPLEdBQUdPLGdCQUFDLENBQUN1QixZQUFZLENBQUMsQ0FBQztJQUN4Q2hDLGFBQWEsQ0FBQ0UsT0FBTyxDQUFDWSxLQUFLLENBQUN0QixHQUFHLENBQUM7SUFFaENSLEtBQUssQ0FBQ21ELE9BQU8sQ0FBQyxVQUFDMEIsSUFBSSxFQUFLO01BQUEsSUFBQUMscUJBQUE7TUFDdEIsSUFBTUMsV0FBVyxHQUFHaEYsTUFBTSxDQUFDaUYsSUFBSSxDQUM3QixVQUFDcEMsS0FBSztRQUFBLE9BQUtBLEtBQUssQ0FBQ0YsRUFBRSxLQUFLbUMsSUFBSSxDQUFDSSxlQUFlO01BQUEsQ0FDOUMsQ0FBQztNQUNELElBQU1DLFdBQVcsR0FBR25GLE1BQU0sQ0FBQ2lGLElBQUksQ0FDN0IsVUFBQ3BDLEtBQUs7UUFBQSxPQUFLQSxLQUFLLENBQUNGLEVBQUUsS0FBS21DLElBQUksQ0FBQ00sZUFBZTtNQUFBLENBQzlDLENBQUM7TUFDRDtNQUNBOztNQUVBLElBQUksQ0FBQ0osV0FBVyxJQUFJLENBQUNHLFdBQVcsRUFBRTtRQUNoQztNQUNGO01BRUEsSUFBTUUsT0FBTyxHQUFHLENBQ2QsQ0FBQ0wsV0FBVyxhQUFYQSxXQUFXLHVCQUFYQSxXQUFXLENBQUVYLFFBQVEsRUFBRVcsV0FBVyxhQUFYQSxXQUFXLHVCQUFYQSxXQUFXLENBQUVWLFNBQVMsQ0FBQyxFQUMvQyxDQUFDYSxXQUFXLGFBQVhBLFdBQVcsdUJBQVhBLFdBQVcsQ0FBRWQsUUFBUSxFQUFFYyxXQUFXLGFBQVhBLFdBQVcsdUJBQVhBLFdBQVcsQ0FBRWIsU0FBUyxDQUFDLENBQ2hEO01BRUQsSUFBTWdCLFFBQVEsR0FBRzVELGdCQUFDLENBQUM0RCxRQUFRLENBQUNELE9BQU8sRUFBRTtRQUNuQ1osS0FBSyxFQUFFLE9BQU87UUFDZEMsTUFBTSxFQUFFLENBQUM7UUFDVGEsT0FBTyxFQUFFLEdBQUc7UUFDWkMsWUFBWSxFQUFFO01BQ2hCLENBQUMsQ0FBQztNQUVGLENBQUFULHFCQUFBLEdBQUE5RCxhQUFhLENBQUNFLE9BQU8sY0FBQTRELHFCQUFBLHVCQUFyQkEscUJBQUEsQ0FBdUJkLFFBQVEsQ0FBQ3FCLFFBQVEsQ0FBQztJQUMzQyxDQUFDLENBQUM7RUFDSixDQUFDO0VBRUQsSUFBQXBFLGdCQUFTLEVBQUMsWUFBTTtJQUNkNEIsVUFBVSxDQUFDLENBQUM7SUFDWitCLFFBQVEsQ0FBQyxDQUFDO0VBQ1osQ0FBQyxFQUFFLENBQUM3RSxNQUFNLEVBQUVTLEdBQUcsQ0FBQyxDQUFDO0VBRWpCLE9BQU9BLEdBQUc7QUFDWixDQUFDO0FBQUNnRixPQUFBLENBQUEzRixNQUFBLEdBQUFBLE1BQUEifQ==
|