@kando-env/kando-ui 1.2.384 → 1.2.385-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. package/lib/Router.js +6 -1
  2. package/lib/Widgets/Map/Map.js +18 -15
  3. package/lib/Widgets/Map/MapUtils.js +5 -2
  4. package/lib/Widgets/PotentialImpactSummary/Icon.js +5 -5
  5. package/lib/components/Sector/Sector.js +19 -12
  6. package/lib/components/Sector/SectorIconsNew.js +112 -0
  7. package/lib/i18n/en.json +15 -0
  8. package/lib/macros/getVersion.js +2 -2
  9. package/lib/pages/DashboardMap/SeverityBadge.js +5 -6
  10. package/lib/pages/EventsPage/EventsMapContainer/EventsMapContainer.js +3 -3
  11. package/lib/pages/PollutionRiskAssessment/FactoryDetails.js +130 -0
  12. package/lib/pages/PollutionRiskAssessment/FilterBehaviors.js +64 -0
  13. package/lib/pages/PollutionRiskAssessment/FilterButton.js +36 -0
  14. package/lib/pages/PollutionRiskAssessment/Map.js +49 -0
  15. package/lib/pages/PollutionRiskAssessment/Map.scss +59 -0
  16. package/lib/pages/PollutionRiskAssessment/TotalSavings.js +51 -0
  17. package/lib/pages/PollutionRiskAssessment/UseCases.js +53 -0
  18. package/lib/pages/PollutionRiskAssessment/contact_us.svg +18 -0
  19. package/lib/pages/PollutionRiskAssessment/filter_button.svg +5 -0
  20. package/lib/pages/PollutionRiskAssessment/index.js +246 -0
  21. package/lib/pages/PollutionRiskAssessment/index.scss +45 -0
  22. package/lib/pages/PollutionRiskAssessment/pig.svg +3 -0
  23. package/lib/pages/PollutionRiskAssessment/useMap.js +132 -0
  24. package/lib/pages/PollutionRiskAssessment/use_cases.json +50 -0
  25. package/lib/store/points/models/IGeoPoint.js +6 -0
  26. package/lib/styles/theme/theme.js +2 -2
  27. package/lib/ui-kit/Checkbox/Checkbox.js +7 -2
  28. package/lib/ui-kit/KandoBottomSheet/KandoBottomSheet.js +44 -0
  29. package/lib/ui-kit/KandoBottomSheet/KandoBottomSheet.scss +18 -0
  30. package/lib/utilities/urls.js +6 -1
  31. package/package.json +3 -1
@@ -0,0 +1,246 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
10
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/asyncToGenerator"));
11
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/slicedToArray"));
12
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
13
+ require("bootstrap/dist/css/bootstrap.min.css");
14
+ var _react = _interopRequireWildcard(require("react"));
15
+ var _reactRedux = require("react-redux");
16
+ var _actions = require("store/context/actions");
17
+ var _Analytics = require("../../utilities/Analytics");
18
+ var _Map = require("./Map");
19
+ var _useNavContext2 = require("../../hooks/useNavContext");
20
+ var _KandoBottomSheet = _interopRequireDefault(require("../../ui-kit/KandoBottomSheet/KandoBottomSheet"));
21
+ var _urls = require("../../utilities/urls");
22
+ require("./index.scss");
23
+ var _TotalSavings = require("./TotalSavings");
24
+ var _FilterBehaviors = require("./FilterBehaviors");
25
+ var _FactoryDetails = require("./FactoryDetails");
26
+ var _FilterButton = _interopRequireDefault(require("./FilterButton"));
27
+ var _use_cases = _interopRequireDefault(require("./use_cases.json"));
28
+ 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); }
29
+ 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; }
30
+ var PollutionRiskAssessment = function PollutionRiskAssessment() {
31
+ var waterAuthorityName = (0, _reactRedux.useSelector)(function (state) {
32
+ return state.global_data.waterAuthorityName;
33
+ });
34
+ var waterAuthorityId = (0, _reactRedux.useSelector)(function (state) {
35
+ return state.global_data.waterAuthorityId;
36
+ });
37
+ var _useState = (0, _react.useState)(),
38
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
39
+ polygonData = _useState2[0],
40
+ setPolygonData = _useState2[1];
41
+ var _useState3 = (0, _react.useState)(),
42
+ _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
43
+ pointsData = _useState4[0],
44
+ setPointsData = _useState4[1];
45
+ var _useNavContext = (0, _useNavContext2.useNavContext)(),
46
+ isRtl = _useNavContext.isRtl;
47
+ var _useState5 = (0, _react.useState)('total_savings'),
48
+ _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
49
+ shownContent = _useState6[0],
50
+ setShownContent = _useState6[1];
51
+ var _useState7 = (0, _react.useState)([]),
52
+ _useState8 = (0, _slicedToArray2.default)(_useState7, 2),
53
+ visiblePoints = _useState8[0],
54
+ setVisiblePoints = _useState8[1];
55
+ var _useState9 = (0, _react.useState)(''),
56
+ _useState10 = (0, _slicedToArray2.default)(_useState9, 2),
57
+ useCasesFilter = _useState10[0],
58
+ setUseCasesFilter = _useState10[1];
59
+ var _useState11 = (0, _react.useState)(null),
60
+ _useState12 = (0, _slicedToArray2.default)(_useState11, 2),
61
+ mapBounds = _useState12[0],
62
+ setMapBounds = _useState12[1];
63
+ var _useState13 = (0, _react.useState)(),
64
+ _useState14 = (0, _slicedToArray2.default)(_useState13, 2),
65
+ clickedPointId = _useState14[0],
66
+ setClickedPointId = _useState14[1];
67
+ var handleDismiss = function handleDismiss() {
68
+ setShownContent('total_savings');
69
+ };
70
+ var dispatch = (0, _reactRedux.useDispatch)();
71
+ var fetchData = /*#__PURE__*/function () {
72
+ var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(url, setData) {
73
+ var response, result;
74
+ return _regenerator.default.wrap(function _callee$(_context) {
75
+ while (1) {
76
+ switch (_context.prev = _context.next) {
77
+ case 0:
78
+ _context.prev = 0;
79
+ _context.next = 3;
80
+ return fetch(url);
81
+ case 3:
82
+ response = _context.sent;
83
+ _context.next = 6;
84
+ return response.json();
85
+ case 6:
86
+ result = _context.sent;
87
+ setData(result);
88
+ _context.next = 13;
89
+ break;
90
+ case 10:
91
+ _context.prev = 10;
92
+ _context.t0 = _context["catch"](0);
93
+ console.error("Failed to fetch data from ".concat(url, ":"), _context.t0);
94
+ case 13:
95
+ case "end":
96
+ return _context.stop();
97
+ }
98
+ }
99
+ }, _callee, null, [[0, 10]]);
100
+ }));
101
+ return function fetchData(_x, _x2) {
102
+ return _ref.apply(this, arguments);
103
+ };
104
+ }();
105
+ (0, _react.useEffect)(function () {
106
+ if (waterAuthorityId) {
107
+ var currentGeoAreaUrl = (0, _urls.urls)({
108
+ waterAuthorityId: waterAuthorityId
109
+ }).PollutionRiskAssessment.currentGeoArea;
110
+ fetchData(currentGeoAreaUrl, setPolygonData);
111
+ (0, _Analytics.analyticsTrack)('Viewed Pollution Risk Assessment Page', {
112
+ utility_name: waterAuthorityName
113
+ });
114
+ dispatch((0, _actions.updateNavContext)({
115
+ name: 'pollution_risk_assessment'
116
+ }));
117
+ }
118
+ }, [waterAuthorityId]);
119
+ var getPolygonGeoJSON = function getPolygonGeoJSON(polygonData) {
120
+ try {
121
+ return (polygonData === null || polygonData === void 0 ? void 0 : polygonData.polygon) ? JSON.parse(polygonData.polygon) : [];
122
+ } catch (error) {
123
+ console.error('Failed to parse polygon data:', error);
124
+ return [];
125
+ }
126
+ };
127
+ (0, _react.useEffect)(function () {
128
+ if (!polygonData) return;
129
+ var allPointsUrl = (0, _urls.urls)({
130
+ waterAuthorityId: waterAuthorityId,
131
+ id: polygonData === null || polygonData === void 0 ? void 0 : polygonData.id
132
+ }).PollutionRiskAssessment.allPoints;
133
+ fetchData(allPointsUrl, setPointsData);
134
+ }, [polygonData]);
135
+ var useCase = _use_cases.default.find(function (useCase) {
136
+ return useCase.id === useCasesFilter;
137
+ });
138
+ var getBottomSheetConfig = function getBottomSheetConfig() {
139
+ switch (shownContent) {
140
+ case 'total_savings':
141
+ return {
142
+ content: /*#__PURE__*/_react.default.createElement(_TotalSavings.TotalSavings, {
143
+ points: visiblePoints,
144
+ filteredUseCase: useCase
145
+ }),
146
+ snapPoints: function snapPoints(_ref2) {
147
+ var maxHeight = _ref2.maxHeight;
148
+ return [78, maxHeight - 100];
149
+ },
150
+ backgroundColor: '#000'
151
+ };
152
+ case 'filter_behaviors':
153
+ return {
154
+ content: /*#__PURE__*/_react.default.createElement(_FilterBehaviors.FilterBehaviors, {
155
+ selectedItem: useCasesFilter,
156
+ handleChange: setUseCasesFilter
157
+ }),
158
+ snapPoints: function snapPoints(_ref3) {
159
+ var maxHeight = _ref3.maxHeight;
160
+ return [maxHeight - 300, maxHeight - 300];
161
+ },
162
+ backgroundColor: '#fff'
163
+ };
164
+ case 'factory_details':
165
+ return {
166
+ content: /*#__PURE__*/_react.default.createElement(_FactoryDetails.FactoryDetails, {
167
+ point_id: clickedPointId
168
+ }),
169
+ snapPoints: function snapPoints(_ref4) {
170
+ var maxHeight = _ref4.maxHeight;
171
+ return [maxHeight - 500, maxHeight - 500];
172
+ },
173
+ backgroundColor: '#fff'
174
+ };
175
+ default:
176
+ return {
177
+ content: null,
178
+ snapPoints: function snapPoints() {
179
+ return [0];
180
+ },
181
+ backgroundColor: '#000'
182
+ };
183
+ }
184
+ };
185
+ var _useMemo = (0, _react.useMemo)(getBottomSheetConfig, [shownContent, useCasesFilter, visiblePoints, clickedPointId]),
186
+ content = _useMemo.content,
187
+ snapPoints = _useMemo.snapPoints,
188
+ backgroundColor = _useMemo.backgroundColor;
189
+ var bottomSheet = (0, _react.useMemo)(function () {
190
+ return /*#__PURE__*/_react.default.createElement(_KandoBottomSheet.default, {
191
+ backgroundColor: backgroundColor,
192
+ snapPoints: snapPoints,
193
+ onDismiss: handleDismiss,
194
+ isOpen: true
195
+ }, content);
196
+ }, [visiblePoints, shownContent, clickedPointId]);
197
+ (0, _react.useEffect)(function () {
198
+ if (!mapBounds || !pointsData) return;
199
+ var filteredPoints = pointsData.filter(function (point) {
200
+ return point.lat >= mapBounds.getSouthWest().lat && point.lat <= mapBounds.getNorthEast().lat && point.lng >= mapBounds.getSouthWest().lng && point.lng <= mapBounds.getNorthEast().lng;
201
+ });
202
+ setVisiblePoints(filteredPoints);
203
+ }, [mapBounds, pointsData]);
204
+ var handleBoundsChange = (0, _react.useCallback)(function (bounds) {
205
+ setMapBounds(bounds);
206
+ }, []);
207
+ var filterButtonClick = function filterButtonClick() {
208
+ setShownContent(function (prevContent) {
209
+ return prevContent === 'filter_behaviors' ? 'total_savings' : 'filter_behaviors';
210
+ });
211
+ };
212
+ var filterButtonState = (0, _react.useMemo)(function () {
213
+ if (shownContent === 'filter_behaviors') {
214
+ return 'filled';
215
+ }
216
+ return useCasesFilter !== '' ? 'filled-red' : '';
217
+ }, [shownContent, useCasesFilter]);
218
+ var markerClicked = function markerClicked(id) {
219
+ setClickedPointId(id);
220
+ if (shownContent !== 'factory_details') {
221
+ setShownContent('factory_details');
222
+ }
223
+ };
224
+ if (!pointsData || !polygonData) return null;
225
+ return /*#__PURE__*/_react.default.createElement("div", {
226
+ className: "app-wrapper"
227
+ }, /*#__PURE__*/_react.default.createElement(MapTableContainer, {
228
+ isRtl: isRtl
229
+ }, /*#__PURE__*/_react.default.createElement(_Map.Map, {
230
+ filteredUseCaseCode: (useCase ? useCase.code : 'to') + 's',
231
+ points: pointsData,
232
+ polygon: getPolygonGeoJSON(polygonData),
233
+ onBoundsChange: handleBoundsChange,
234
+ onMarkerClick: markerClicked
235
+ })), bottomSheet, /*#__PURE__*/_react.default.createElement(_FilterButton.default, {
236
+ buttonState: filterButtonState,
237
+ onClick: filterButtonClick
238
+ }));
239
+ };
240
+ var _default = PollutionRiskAssessment;
241
+ exports.default = _default;
242
+ var MapTableContainer = _styledComponents.default.div.withConfig({
243
+ displayName: "PollutionRiskAssessment__MapTableContainer",
244
+ componentId: "sc-peb1i1-0"
245
+ })(["position:fixed;top:65px;height:calc(100vh - 20px);width:100vw;#map{height:100%;width:100%;*,*:focus,*:hover{outline:none;}}"]);
246
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJyZXF1aXJlIiwiX3JlYWN0IiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfcmVhY3RSZWR1eCIsIl9hY3Rpb25zIiwiX0FuYWx5dGljcyIsIl9NYXAiLCJfdXNlTmF2Q29udGV4dDIiLCJfS2FuZG9Cb3R0b21TaGVldCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfdXJscyIsIl9Ub3RhbFNhdmluZ3MiLCJfRmlsdGVyQmVoYXZpb3JzIiwiX0ZhY3RvcnlEZXRhaWxzIiwiX0ZpbHRlckJ1dHRvbiIsIl91c2VfY2FzZXMiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJub2RlSW50ZXJvcCIsIldlYWtNYXAiLCJjYWNoZUJhYmVsSW50ZXJvcCIsImNhY2hlTm9kZUludGVyb3AiLCJvYmoiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImRlZmF1bHQiLCJjYWNoZSIsImhhcyIsImdldCIsIm5ld09iaiIsImhhc1Byb3BlcnR5RGVzY3JpcHRvciIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwia2V5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiZGVzYyIsInNldCIsIlBvbGx1dGlvblJpc2tBc3Nlc3NtZW50Iiwid2F0ZXJBdXRob3JpdHlOYW1lIiwidXNlU2VsZWN0b3IiLCJzdGF0ZSIsImdsb2JhbF9kYXRhIiwid2F0ZXJBdXRob3JpdHlJZCIsIl91c2VTdGF0ZSIsInVzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5MiIsInBvbHlnb25EYXRhIiwic2V0UG9seWdvbkRhdGEiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsInBvaW50c0RhdGEiLCJzZXRQb2ludHNEYXRhIiwiX3VzZU5hdkNvbnRleHQiLCJ1c2VOYXZDb250ZXh0IiwiaXNSdGwiLCJfdXNlU3RhdGU1IiwiX3VzZVN0YXRlNiIsInNob3duQ29udGVudCIsInNldFNob3duQ29udGVudCIsIl91c2VTdGF0ZTciLCJfdXNlU3RhdGU4IiwidmlzaWJsZVBvaW50cyIsInNldFZpc2libGVQb2ludHMiLCJfdXNlU3RhdGU5IiwiX3VzZVN0YXRlMTAiLCJ1c2VDYXNlc0ZpbHRlciIsInNldFVzZUNhc2VzRmlsdGVyIiwiX3VzZVN0YXRlMTEiLCJfdXNlU3RhdGUxMiIsIm1hcEJvdW5kcyIsInNldE1hcEJvdW5kcyIsIl91c2VTdGF0ZTEzIiwiX3VzZVN0YXRlMTQiLCJjbGlja2VkUG9pbnRJZCIsInNldENsaWNrZWRQb2ludElkIiwiaGFuZGxlRGlzbWlzcyIsImRpc3BhdGNoIiwidXNlRGlzcGF0Y2giLCJmZXRjaERhdGEiLCJfcmVmIiwiX2FzeW5jVG9HZW5lcmF0b3IyIiwiX3JlZ2VuZXJhdG9yIiwibWFyayIsIl9jYWxsZWUiLCJ1cmwiLCJzZXREYXRhIiwicmVzcG9uc2UiLCJyZXN1bHQiLCJ3cmFwIiwiX2NhbGxlZSQiLCJfY29udGV4dCIsInByZXYiLCJuZXh0IiwiZmV0Y2giLCJzZW50IiwianNvbiIsInQwIiwiY29uc29sZSIsImVycm9yIiwiY29uY2F0Iiwic3RvcCIsIl94IiwiX3gyIiwiYXBwbHkiLCJhcmd1bWVudHMiLCJ1c2VFZmZlY3QiLCJjdXJyZW50R2VvQXJlYVVybCIsInVybHMiLCJjdXJyZW50R2VvQXJlYSIsImFuYWx5dGljc1RyYWNrIiwidXRpbGl0eV9uYW1lIiwidXBkYXRlTmF2Q29udGV4dCIsIm5hbWUiLCJnZXRQb2x5Z29uR2VvSlNPTiIsInBvbHlnb24iLCJKU09OIiwicGFyc2UiLCJhbGxQb2ludHNVcmwiLCJpZCIsImFsbFBvaW50cyIsInVzZUNhc2UiLCJ1c2VDYXNlcyIsImZpbmQiLCJnZXRCb3R0b21TaGVldENvbmZpZyIsImNvbnRlbnQiLCJjcmVhdGVFbGVtZW50IiwiVG90YWxTYXZpbmdzIiwicG9pbnRzIiwiZmlsdGVyZWRVc2VDYXNlIiwic25hcFBvaW50cyIsIl9yZWYyIiwibWF4SGVpZ2h0IiwiYmFja2dyb3VuZENvbG9yIiwiRmlsdGVyQmVoYXZpb3JzIiwic2VsZWN0ZWRJdGVtIiwiaGFuZGxlQ2hhbmdlIiwiX3JlZjMiLCJGYWN0b3J5RGV0YWlscyIsInBvaW50X2lkIiwiX3JlZjQiLCJfdXNlTWVtbyIsInVzZU1lbW8iLCJib3R0b21TaGVldCIsIm9uRGlzbWlzcyIsImlzT3BlbiIsImZpbHRlcmVkUG9pbnRzIiwiZmlsdGVyIiwicG9pbnQiLCJsYXQiLCJnZXRTb3V0aFdlc3QiLCJnZXROb3J0aEVhc3QiLCJsbmciLCJoYW5kbGVCb3VuZHNDaGFuZ2UiLCJ1c2VDYWxsYmFjayIsImJvdW5kcyIsImZpbHRlckJ1dHRvbkNsaWNrIiwicHJldkNvbnRlbnQiLCJmaWx0ZXJCdXR0b25TdGF0ZSIsIm1hcmtlckNsaWNrZWQiLCJjbGFzc05hbWUiLCJNYXBUYWJsZUNvbnRhaW5lciIsIk1hcCIsImZpbHRlcmVkVXNlQ2FzZUNvZGUiLCJjb2RlIiwib25Cb3VuZHNDaGFuZ2UiLCJvbk1hcmtlckNsaWNrIiwiYnV0dG9uU3RhdGUiLCJvbkNsaWNrIiwiX2RlZmF1bHQiLCJleHBvcnRzIiwic3R5bGVkIiwiZGl2Iiwid2l0aENvbmZpZyIsImRpc3BsYXlOYW1lIiwiY29tcG9uZW50SWQiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcGFnZXMvUG9sbHV0aW9uUmlza0Fzc2Vzc21lbnQvaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAnYm9vdHN0cmFwL2Rpc3QvY3NzL2Jvb3RzdHJhcC5taW4uY3NzJztcbmltcG9ydCBSZWFjdCwgeyB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VNZW1vLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZURpc3BhdGNoLCB1c2VTZWxlY3RvciB9IGZyb20gJ3JlYWN0LXJlZHV4JztcbmltcG9ydCB7IHVwZGF0ZU5hdkNvbnRleHQgfSBmcm9tICdzcmMvc3RvcmUvY29udGV4dC9hY3Rpb25zJztcbmltcG9ydCB7IGFuYWx5dGljc1RyYWNrIH0gZnJvbSAnLi4vLi4vdXRpbGl0aWVzL0FuYWx5dGljcyc7XG5pbXBvcnQgeyBNYXAgfSBmcm9tICcuL01hcCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzL21hY3JvJztcbmltcG9ydCB7IHVzZU5hdkNvbnRleHQgfSBmcm9tICcuLi8uLi9ob29rcy91c2VOYXZDb250ZXh0JztcbmltcG9ydCBLYW5kb0JvdHRvbVNoZWV0IGZyb20gJy4uLy4uL3VpLWtpdC9LYW5kb0JvdHRvbVNoZWV0L0thbmRvQm90dG9tU2hlZXQnO1xuaW1wb3J0IHsgdXJscyB9IGZyb20gJy4uLy4uL3V0aWxpdGllcy91cmxzJztcbmltcG9ydCB7IElHZW9Qb2ludCB9IGZyb20gJ3NyYy9zdG9yZS9wb2ludHMvbW9kZWxzL0lHZW9Qb2ludCc7XG5pbXBvcnQgTCwgeyBHZW9KU09OIH0gZnJvbSAnbGVhZmxldCc7XG5pbXBvcnQgJy4vaW5kZXguc2Nzcyc7XG5pbXBvcnQgeyBUb3RhbFNhdmluZ3MgfSBmcm9tICcuL1RvdGFsU2F2aW5ncyc7XG5pbXBvcnQgeyBGaWx0ZXJCZWhhdmlvcnMgfSBmcm9tICcuL0ZpbHRlckJlaGF2aW9ycyc7XG5pbXBvcnQgeyBGYWN0b3J5RGV0YWlscyB9IGZyb20gJy4vRmFjdG9yeURldGFpbHMnO1xuaW1wb3J0IEZpbHRlckJ1dHRvbiBmcm9tICcuL0ZpbHRlckJ1dHRvbic7XG5pbXBvcnQgdXNlQ2FzZXMgZnJvbSAnLi91c2VfY2FzZXMuanNvbic7XG5cbmNvbnN0IFBvbGx1dGlvblJpc2tBc3Nlc3NtZW50OiBSZWFjdC5GQyA9ICgpID0+IHtcbiAgY29uc3Qgd2F0ZXJBdXRob3JpdHlOYW1lID0gdXNlU2VsZWN0b3IoXG4gICAgKHN0YXRlKSA9PiBzdGF0ZS5nbG9iYWxfZGF0YS53YXRlckF1dGhvcml0eU5hbWUsXG4gICk7XG4gIGNvbnN0IHdhdGVyQXV0aG9yaXR5SWQgPSB1c2VTZWxlY3RvcihcbiAgICAoc3RhdGUpID0+IHN0YXRlLmdsb2JhbF9kYXRhLndhdGVyQXV0aG9yaXR5SWQsXG4gICk7XG4gIGNvbnN0IFtwb2x5Z29uRGF0YSwgc2V0UG9seWdvbkRhdGFdID0gdXNlU3RhdGU8R2VvSlNPTj4oKTtcbiAgY29uc3QgW3BvaW50c0RhdGEsIHNldFBvaW50c0RhdGFdID0gdXNlU3RhdGU8SUdlb1BvaW50W10+KCk7XG4gIGNvbnN0IHsgaXNSdGwgfSA9IHVzZU5hdkNvbnRleHQoKTtcbiAgY29uc3QgW3Nob3duQ29udGVudCwgc2V0U2hvd25Db250ZW50XSA9IHVzZVN0YXRlKCd0b3RhbF9zYXZpbmdzJyk7XG4gIGNvbnN0IFt2aXNpYmxlUG9pbnRzLCBzZXRWaXNpYmxlUG9pbnRzXSA9IHVzZVN0YXRlPElHZW9Qb2ludFtdPihbXSk7XG4gIGNvbnN0IFt1c2VDYXNlc0ZpbHRlciwgc2V0VXNlQ2FzZXNGaWx0ZXJdID0gdXNlU3RhdGUoJycpO1xuICBjb25zdCBbbWFwQm91bmRzLCBzZXRNYXBCb3VuZHNdID0gdXNlU3RhdGU8TC5MYXRMbmdCb3VuZHMgfCBudWxsPihudWxsKTtcbiAgY29uc3QgW2NsaWNrZWRQb2ludElkLCBzZXRDbGlja2VkUG9pbnRJZF0gPSB1c2VTdGF0ZTxudW1iZXI+KCk7XG5cbiAgY29uc3QgaGFuZGxlRGlzbWlzcyA9ICgpID0+IHtcbiAgICBzZXRTaG93bkNvbnRlbnQoJ3RvdGFsX3NhdmluZ3MnKTtcbiAgfTtcblxuICBjb25zdCBkaXNwYXRjaCA9IHVzZURpc3BhdGNoKCk7XG4gIGNvbnN0IGZldGNoRGF0YSA9IGFzeW5jIDxULD4oXG4gICAgdXJsOiBzdHJpbmcsXG4gICAgc2V0RGF0YTogUmVhY3QuRGlzcGF0Y2g8UmVhY3QuU2V0U3RhdGVBY3Rpb248VD4+LFxuICApID0+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCh1cmwpO1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcmVzcG9uc2UuanNvbigpO1xuICAgICAgc2V0RGF0YShyZXN1bHQpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGBGYWlsZWQgdG8gZmV0Y2ggZGF0YSBmcm9tICR7dXJsfTpgLCBlcnJvcik7XG4gICAgfVxuICB9O1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHdhdGVyQXV0aG9yaXR5SWQpIHtcbiAgICAgIGNvbnN0IGN1cnJlbnRHZW9BcmVhVXJsID0gdXJscyh7IHdhdGVyQXV0aG9yaXR5SWQgfSlcbiAgICAgICAgLlBvbGx1dGlvblJpc2tBc3Nlc3NtZW50LmN1cnJlbnRHZW9BcmVhO1xuICAgICAgZmV0Y2hEYXRhKGN1cnJlbnRHZW9BcmVhVXJsLCBzZXRQb2x5Z29uRGF0YSk7XG5cbiAgICAgIGFuYWx5dGljc1RyYWNrKCdWaWV3ZWQgUG9sbHV0aW9uIFJpc2sgQXNzZXNzbWVudCBQYWdlJywge1xuICAgICAgICB1dGlsaXR5X25hbWU6IHdhdGVyQXV0aG9yaXR5TmFtZSxcbiAgICAgIH0pO1xuICAgICAgZGlzcGF0Y2godXBkYXRlTmF2Q29udGV4dCh7IG5hbWU6ICdwb2xsdXRpb25fcmlza19hc3Nlc3NtZW50JyB9KSk7XG4gICAgfVxuICB9LCBbd2F0ZXJBdXRob3JpdHlJZF0pO1xuXG4gIGNvbnN0IGdldFBvbHlnb25HZW9KU09OID0gKHBvbHlnb25EYXRhKSA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBwb2x5Z29uRGF0YT8ucG9seWdvbiA/IEpTT04ucGFyc2UocG9seWdvbkRhdGEucG9seWdvbikgOiBbXTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIHBhcnNlIHBvbHlnb24gZGF0YTonLCBlcnJvcik7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuICB9O1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFwb2x5Z29uRGF0YSkgcmV0dXJuO1xuXG4gICAgY29uc3QgYWxsUG9pbnRzVXJsID0gdXJscyh7XG4gICAgICB3YXRlckF1dGhvcml0eUlkOiB3YXRlckF1dGhvcml0eUlkLFxuICAgICAgaWQ6IHBvbHlnb25EYXRhPy5pZCxcbiAgICB9KS5Qb2xsdXRpb25SaXNrQXNzZXNzbWVudC5hbGxQb2ludHM7XG5cbiAgICBmZXRjaERhdGEoYWxsUG9pbnRzVXJsLCBzZXRQb2ludHNEYXRhKTtcbiAgfSwgW3BvbHlnb25EYXRhXSk7XG5cbiAgY29uc3QgdXNlQ2FzZSA9IHVzZUNhc2VzLmZpbmQoKHVzZUNhc2UpID0+IHVzZUNhc2UuaWQgPT09IHVzZUNhc2VzRmlsdGVyKTtcblxuICBjb25zdCBnZXRCb3R0b21TaGVldENvbmZpZyA9ICgpID0+IHtcbiAgICBzd2l0Y2ggKHNob3duQ29udGVudCkge1xuICAgICAgY2FzZSAndG90YWxfc2F2aW5ncyc6XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgY29udGVudDogKFxuICAgICAgICAgICAgPFRvdGFsU2F2aW5ncyBwb2ludHM9e3Zpc2libGVQb2ludHN9IGZpbHRlcmVkVXNlQ2FzZT17dXNlQ2FzZX0gLz5cbiAgICAgICAgICApLFxuICAgICAgICAgIHNuYXBQb2ludHM6ICh7IG1heEhlaWdodCB9OiB7IG1heEhlaWdodDogbnVtYmVyIH0pID0+IFtcbiAgICAgICAgICAgIDc4LFxuICAgICAgICAgICAgbWF4SGVpZ2h0IC0gMTAwLFxuICAgICAgICAgIF0sXG4gICAgICAgICAgYmFja2dyb3VuZENvbG9yOiAnIzAwMCcsXG4gICAgICAgIH07XG4gICAgICBjYXNlICdmaWx0ZXJfYmVoYXZpb3JzJzpcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBjb250ZW50OiAoXG4gICAgICAgICAgICA8RmlsdGVyQmVoYXZpb3JzXG4gICAgICAgICAgICAgIHNlbGVjdGVkSXRlbT17dXNlQ2FzZXNGaWx0ZXJ9XG4gICAgICAgICAgICAgIGhhbmRsZUNoYW5nZT17c2V0VXNlQ2FzZXNGaWx0ZXJ9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICksXG4gICAgICAgICAgc25hcFBvaW50czogKHsgbWF4SGVpZ2h0IH06IHsgbWF4SGVpZ2h0OiBudW1iZXIgfSkgPT4gW1xuICAgICAgICAgICAgbWF4SGVpZ2h0IC0gMzAwLFxuICAgICAgICAgICAgbWF4SGVpZ2h0IC0gMzAwLFxuICAgICAgICAgIF0sXG4gICAgICAgICAgYmFja2dyb3VuZENvbG9yOiAnI2ZmZicsXG4gICAgICAgIH07XG4gICAgICBjYXNlICdmYWN0b3J5X2RldGFpbHMnOlxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGNvbnRlbnQ6IDxGYWN0b3J5RGV0YWlscyBwb2ludF9pZD17Y2xpY2tlZFBvaW50SWR9IC8+LFxuICAgICAgICAgIHNuYXBQb2ludHM6ICh7IG1heEhlaWdodCB9OiB7IG1heEhlaWdodDogbnVtYmVyIH0pID0+IFtcbiAgICAgICAgICAgIG1heEhlaWdodCAtIDUwMCxcbiAgICAgICAgICAgIG1heEhlaWdodCAtIDUwMCxcbiAgICAgICAgICBdLFxuICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogJyNmZmYnLFxuICAgICAgICB9O1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBjb250ZW50OiBudWxsLFxuICAgICAgICAgIHNuYXBQb2ludHM6ICgpID0+IFswXSxcbiAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICcjMDAwJyxcbiAgICAgICAgfTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgeyBjb250ZW50LCBzbmFwUG9pbnRzLCBiYWNrZ3JvdW5kQ29sb3IgfSA9IHVzZU1lbW8oXG4gICAgZ2V0Qm90dG9tU2hlZXRDb25maWcsXG4gICAgW3Nob3duQ29udGVudCwgdXNlQ2FzZXNGaWx0ZXIsIHZpc2libGVQb2ludHMsIGNsaWNrZWRQb2ludElkXSxcbiAgKTtcblxuICBjb25zdCBib3R0b21TaGVldCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIHJldHVybiAoXG4gICAgICA8S2FuZG9Cb3R0b21TaGVldFxuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I9e2JhY2tncm91bmRDb2xvcn1cbiAgICAgICAgc25hcFBvaW50cz17c25hcFBvaW50c31cbiAgICAgICAgb25EaXNtaXNzPXtoYW5kbGVEaXNtaXNzfVxuICAgICAgICBpc09wZW49e3RydWV9XG4gICAgICA+XG4gICAgICAgIHtjb250ZW50fVxuICAgICAgPC9LYW5kb0JvdHRvbVNoZWV0PlxuICAgICk7XG4gIH0sIFt2aXNpYmxlUG9pbnRzLCBzaG93bkNvbnRlbnQsIGNsaWNrZWRQb2ludElkXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIW1hcEJvdW5kcyB8fCAhcG9pbnRzRGF0YSkgcmV0dXJuO1xuXG4gICAgY29uc3QgZmlsdGVyZWRQb2ludHMgPSBwb2ludHNEYXRhLmZpbHRlcigocG9pbnQpID0+IHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIHBvaW50LmxhdCA+PSBtYXBCb3VuZHMuZ2V0U291dGhXZXN0KCkubGF0ICYmXG4gICAgICAgIHBvaW50LmxhdCA8PSBtYXBCb3VuZHMuZ2V0Tm9ydGhFYXN0KCkubGF0ICYmXG4gICAgICAgIHBvaW50LmxuZyA+PSBtYXBCb3VuZHMuZ2V0U291dGhXZXN0KCkubG5nICYmXG4gICAgICAgIHBvaW50LmxuZyA8PSBtYXBCb3VuZHMuZ2V0Tm9ydGhFYXN0KCkubG5nXG4gICAgICApO1xuICAgIH0pO1xuXG4gICAgc2V0VmlzaWJsZVBvaW50cyhmaWx0ZXJlZFBvaW50cyk7XG4gIH0sIFttYXBCb3VuZHMsIHBvaW50c0RhdGFdKTtcblxuICBjb25zdCBoYW5kbGVCb3VuZHNDaGFuZ2UgPSB1c2VDYWxsYmFjaygoYm91bmRzKSA9PiB7XG4gICAgc2V0TWFwQm91bmRzKGJvdW5kcyk7XG4gIH0sIFtdKTtcblxuICBjb25zdCBmaWx0ZXJCdXR0b25DbGljayA9ICgpID0+IHtcbiAgICBzZXRTaG93bkNvbnRlbnQoKHByZXZDb250ZW50KSA9PlxuICAgICAgcHJldkNvbnRlbnQgPT09ICdmaWx0ZXJfYmVoYXZpb3JzJyA/ICd0b3RhbF9zYXZpbmdzJyA6ICdmaWx0ZXJfYmVoYXZpb3JzJyxcbiAgICApO1xuICB9O1xuXG4gIGNvbnN0IGZpbHRlckJ1dHRvblN0YXRlID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKHNob3duQ29udGVudCA9PT0gJ2ZpbHRlcl9iZWhhdmlvcnMnKSB7XG4gICAgICByZXR1cm4gJ2ZpbGxlZCc7XG4gICAgfVxuICAgIHJldHVybiB1c2VDYXNlc0ZpbHRlciAhPT0gJycgPyAnZmlsbGVkLXJlZCcgOiAnJztcbiAgfSwgW3Nob3duQ29udGVudCwgdXNlQ2FzZXNGaWx0ZXJdKTtcblxuICBjb25zdCBtYXJrZXJDbGlja2VkID0gKGlkOiBudW1iZXIpID0+IHtcbiAgICBzZXRDbGlja2VkUG9pbnRJZChpZCk7XG4gICAgaWYgKHNob3duQ29udGVudCAhPT0gJ2ZhY3RvcnlfZGV0YWlscycpIHtcbiAgICAgIHNldFNob3duQ29udGVudCgnZmFjdG9yeV9kZXRhaWxzJyk7XG4gICAgfVxuICB9O1xuXG4gIGlmICghcG9pbnRzRGF0YSB8fCAhcG9seWdvbkRhdGEpIHJldHVybiBudWxsO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJhcHAtd3JhcHBlclwiPlxuICAgICAgPE1hcFRhYmxlQ29udGFpbmVyIGlzUnRsPXtpc1J0bH0+XG4gICAgICAgIDxNYXBcbiAgICAgICAgICBmaWx0ZXJlZFVzZUNhc2VDb2RlPXsodXNlQ2FzZSA/IHVzZUNhc2UuY29kZSA6ICd0bycpICsgJ3MnfVxuICAgICAgICAgIHBvaW50cz17cG9pbnRzRGF0YX1cbiAgICAgICAgICBwb2x5Z29uPXtnZXRQb2x5Z29uR2VvSlNPTihwb2x5Z29uRGF0YSl9XG4gICAgICAgICAgb25Cb3VuZHNDaGFuZ2U9e2hhbmRsZUJvdW5kc0NoYW5nZX1cbiAgICAgICAgICBvbk1hcmtlckNsaWNrPXttYXJrZXJDbGlja2VkfVxuICAgICAgICAvPlxuICAgICAgPC9NYXBUYWJsZUNvbnRhaW5lcj5cbiAgICAgIHtib3R0b21TaGVldH1cbiAgICAgIDxGaWx0ZXJCdXR0b25cbiAgICAgICAgYnV0dG9uU3RhdGU9e2ZpbHRlckJ1dHRvblN0YXRlfVxuICAgICAgICBvbkNsaWNrPXtmaWx0ZXJCdXR0b25DbGlja31cbiAgICAgIC8+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBQb2xsdXRpb25SaXNrQXNzZXNzbWVudDtcblxuY29uc3QgTWFwVGFibGVDb250YWluZXIgPSBzdHlsZWQuZGl2PHsgaXNSdGw6IGJvb2xlYW4gfT5gXG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiA2NXB4O1xuICBoZWlnaHQ6IGNhbGMoMTAwdmggLSAyMHB4KTtcbiAgd2lkdGg6IDEwMHZ3O1xuXG4gICNtYXAge1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgICosXG4gICAgKjpmb2N1cyxcbiAgICAqOmhvdmVyIHtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgfVxuICB9XG5gO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQUEsT0FBQTtBQUNBLElBQUFDLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFHLFdBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLFFBQUEsR0FBQUosT0FBQTtBQUNBLElBQUFLLFVBQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLElBQUEsR0FBQU4sT0FBQTtBQUVBLElBQUFPLGVBQUEsR0FBQVAsT0FBQTtBQUNBLElBQUFRLGlCQUFBLEdBQUFDLHNCQUFBLENBQUFULE9BQUE7QUFDQSxJQUFBVSxLQUFBLEdBQUFWLE9BQUE7QUFHQUEsT0FBQTtBQUNBLElBQUFXLGFBQUEsR0FBQVgsT0FBQTtBQUNBLElBQUFZLGdCQUFBLEdBQUFaLE9BQUE7QUFDQSxJQUFBYSxlQUFBLEdBQUFiLE9BQUE7QUFDQSxJQUFBYyxhQUFBLEdBQUFMLHNCQUFBLENBQUFULE9BQUE7QUFDQSxJQUFBZSxVQUFBLEdBQUFOLHNCQUFBLENBQUFULE9BQUE7QUFBd0MsU0FBQWdCLHlCQUFBQyxXQUFBLGVBQUFDLE9BQUEsa0NB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
@@ -0,0 +1,45 @@
1
+ .map-heights {
2
+ height: 100%;
3
+ width: 100%;
4
+
5
+ *,
6
+ *:focus,
7
+ *:hover {
8
+ outline: none;
9
+ }
10
+ }
11
+
12
+ .assessment-page {
13
+ height: 100%;
14
+ width: 100%;
15
+ left: 0;
16
+ top: 0;
17
+
18
+ #map {
19
+ height: 100%;
20
+ width: 100%;
21
+
22
+ .leaflet-popup-close-button {
23
+ font-size: x-large;
24
+ }
25
+ }
26
+
27
+ .btn-group {
28
+ display: flex;
29
+ justify-content: center;
30
+ margin-top: 20px;
31
+
32
+ button {
33
+ margin: 0 10px;
34
+ }
35
+ }
36
+
37
+ .use-case-icon {
38
+ width: 24px;
39
+ height: 24px;
40
+ }
41
+
42
+ svg path {
43
+ fill: white !important;
44
+ }
45
+ }
@@ -0,0 +1,3 @@
1
+ <svg width="22" height="22" viewBox="0 0 22 22" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M15.4627 10.3134C15.7358 10.3134 15.9686 10.2172 16.161 10.0248C16.3534 9.83241 16.4496 9.59963 16.4496 9.32644C16.4496 9.05325 16.3534 8.82047 16.161 8.62809C15.9686 8.43571 15.7358 8.33952 15.4627 8.33952C15.1895 8.33952 14.9567 8.43571 14.7643 8.62809C14.5719 8.82047 14.4757 9.05325 14.4757 9.32644C14.4757 9.59963 14.5719 9.83241 14.7643 10.0248C14.9567 10.2172 15.1895 10.3134 15.4627 10.3134ZM6.53734 7.93183H12.1157V6.25839H6.53734V7.93183ZM3.05092 21.0409C2.46162 19.0069 1.87268 16.983 1.2841 14.9691C0.695508 12.9552 0.401215 10.8884 0.401215 8.76861C0.401215 7.21527 0.9426 5.89722 2.02537 4.81447C3.10812 3.7317 4.42617 3.19031 5.97951 3.19031H11.8368C12.3474 2.5195 12.9599 1.97991 13.6744 1.57154C14.3888 1.16317 15.1709 0.958984 16.0205 0.958984C16.328 0.958984 16.5908 1.06805 16.8089 1.28618C17.0271 1.50429 17.1361 1.76711 17.1361 2.07462C17.1361 2.15043 17.1258 2.22624 17.105 2.30205C17.0843 2.37784 17.0625 2.44792 17.0396 2.5123C16.9366 2.78121 16.849 3.05655 16.7767 3.33833C16.7045 3.62011 16.6426 3.90476 16.5912 4.19226L19.4941 7.09514H21.5988V13.9114L18.5543 14.9112L16.7178 21.0409H11.5579V18.8096H8.21081V21.0409H3.05092ZM4.30601 19.3674H6.53734V17.1361H13.2313V19.3674H15.4627L17.1919 13.6217L19.9253 12.7013V8.76861H18.8097L14.9048 4.86378C14.9048 4.49189 14.9281 4.13395 14.9746 3.78996C15.021 3.44596 15.0979 3.10089 15.2052 2.75476C14.666 2.90351 14.1954 3.16276 13.7935 3.53249C13.3915 3.90224 13.0833 4.346 12.8687 4.86378H5.97951C4.90103 4.86378 3.98061 5.24497 3.21824 6.00734C2.45587 6.76971 2.07468 7.69013 2.07468 8.76861C2.07468 10.5909 2.32571 12.3713 2.82776 14.1099C3.32981 15.8484 3.82256 17.601 4.30601 19.3674Z" fill="white"/>
3
+ </svg>
@@ -0,0 +1,132 @@
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, filteredUseCaseCode, polygon, onMarkerClick) {
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)(15),
20
+ _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
21
+ mapZoomLevel = _useState4[0],
22
+ setMapZoomLevel = _useState4[1];
23
+ var heatLayerRef = (0, _react.useRef)();
24
+ var pointsLayerRef = (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
+ Object.values(mapTypes)[0].addTo(mapTemp);
32
+ _leaflet.default.control.layers(mapTypes, {}, {
33
+ position: 'topright'
34
+ }).addTo(mapTemp);
35
+
36
+ // The colors are transparent so the map will fit the polygon bounds but it won't be visible
37
+ if (polygon && polygon.length === undefined) {
38
+ var geoJSONLayer = _leaflet.default.geoJSON(polygon, {
39
+ style: {
40
+ color: 'transparent',
41
+ fillColor: 'transparent',
42
+ fillOpacity: 0
43
+ }
44
+ }).addTo(mapTemp);
45
+ mapTemp.fitBounds(geoJSONLayer.getBounds());
46
+ }
47
+ mapTemp.on('zoomend', function () {
48
+ setMapZoomLevel(mapTemp.getZoom());
49
+ });
50
+ setMap(mapTemp);
51
+ return function () {
52
+ if (!mapTemp) {
53
+ return;
54
+ }
55
+ mapTemp.off();
56
+ mapTemp.remove();
57
+
58
+ // Clean up layers
59
+ if (heatLayerRef.current) {
60
+ heatLayerRef.current.off();
61
+ heatLayerRef.current.remove();
62
+ heatLayerRef.current = null;
63
+ }
64
+ if (pointsLayerRef.current) {
65
+ pointsLayerRef.current.clearLayers();
66
+ pointsLayerRef.current = null;
67
+ }
68
+ };
69
+ }, []);
70
+
71
+ // The heat map plugin expects an array of arrays with the lat, lng and intensity
72
+ // The intensity is the value of the point's total score (tos) divided by 100 because the intensity should be between 0 and 1
73
+ var calculateHeatPoints = (0, _react.useCallback)(function () {
74
+ return points.map(function (point) {
75
+ var intensityValue = point[filteredUseCaseCode];
76
+ if (typeof intensityValue === 'number' && !isNaN(intensityValue)) {
77
+ var intensity = intensityValue / 100;
78
+ return [point.lat, point.lng, intensity];
79
+ }
80
+ return null; // Exclude invalid points
81
+ }).filter(Boolean); // Remove null values
82
+ }, [points, filteredUseCaseCode]);
83
+ (0, _react.useEffect)(function () {
84
+ if (!map || !points) {
85
+ return;
86
+ }
87
+ if (!heatLayerRef.current) {
88
+ heatLayerRef.current = _leaflet.default.heatLayer([], {
89
+ radius: 25,
90
+ blur: 15,
91
+ maxZoom: 15
92
+ });
93
+ }
94
+ if (!pointsLayerRef.current) {
95
+ pointsLayerRef.current = _leaflet.default.layerGroup();
96
+ }
97
+ if (mapZoomLevel <= 15) {
98
+ if (!map.hasLayer(heatLayerRef.current)) {
99
+ map.addLayer(heatLayerRef.current);
100
+ }
101
+ heatLayerRef.current.setLatLngs(calculateHeatPoints());
102
+ if (map.hasLayer(pointsLayerRef.current)) {
103
+ map.removeLayer(pointsLayerRef.current);
104
+ }
105
+ } else {
106
+ if (!pointsLayerRef.current.getLayers().length) {
107
+ points.forEach(function (point) {
108
+ var _pointsLayerRef$curre;
109
+ var icon = (0, _PointIcon.getPointIconByType)('Groups::Factory', point === null || point === void 0 ? void 0 : point.id.toString(), '', false, true);
110
+ var marker = _leaflet.default.marker([point.lat, point.lng], {
111
+ icon: icon
112
+ });
113
+ marker.on('click', function () {
114
+ if (onMarkerClick) {
115
+ onMarkerClick(point.id);
116
+ }
117
+ });
118
+ (_pointsLayerRef$curre = pointsLayerRef.current) === null || _pointsLayerRef$curre === void 0 ? void 0 : _pointsLayerRef$curre.addLayer(marker);
119
+ });
120
+ }
121
+ if (!map.hasLayer(pointsLayerRef.current)) {
122
+ map.addLayer(pointsLayerRef.current);
123
+ }
124
+ if (map.hasLayer(heatLayerRef.current)) {
125
+ map.removeLayer(heatLayerRef.current);
126
+ }
127
+ }
128
+ }, [points, map, mapZoomLevel, filteredUseCaseCode, calculateHeatPoints]);
129
+ return map;
130
+ };
131
+ exports.useMap = useMap;
132
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbGVhZmxldCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX3JlYWN0IiwiX1BvaW50SWNvbiIsIl90aGVtZSIsIl9NYXBVdGlscyIsInVzZU1hcCIsIm1hcFJlZiIsInBvaW50cyIsImZpbHRlcmVkVXNlQ2FzZUNvZGUiLCJwb2x5Z29uIiwib25NYXJrZXJDbGljayIsIl91c2VTdGF0ZSIsInVzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5MiIsImRlZmF1bHQiLCJtYXAiLCJzZXRNYXAiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsIm1hcFpvb21MZXZlbCIsInNldE1hcFpvb21MZXZlbCIsImhlYXRMYXllclJlZiIsInVzZVJlZiIsInBvaW50c0xheWVyUmVmIiwidXNlRWZmZWN0IiwiY3VycmVudCIsIm1hcFR5cGVzIiwiYmFzZU1hcHMiLCJsZWFmbGV0TWFwIiwibWFwRGVmYXVsdCIsInNhdGVsbGl0ZSIsIm1hcFRlbXAiLCJMIiwiT2JqZWN0IiwidmFsdWVzIiwiYWRkVG8iLCJjb250cm9sIiwibGF5ZXJzIiwicG9zaXRpb24iLCJsZW5ndGgiLCJ1bmRlZmluZWQiLCJnZW9KU09OTGF5ZXIiLCJnZW9KU09OIiwic3R5bGUiLCJjb2xvciIsImZpbGxDb2xvciIsImZpbGxPcGFjaXR5IiwiZml0Qm91bmRzIiwiZ2V0Qm91bmRzIiwib24iLCJnZXRab29tIiwib2ZmIiwicmVtb3ZlIiwiY2xlYXJMYXllcnMiLCJjYWxjdWxhdGVIZWF0UG9pbnRzIiwidXNlQ2FsbGJhY2siLCJwb2ludCIsImludGVuc2l0eVZhbHVlIiwiaXNOYU4iLCJpbnRlbnNpdHkiLCJsYXQiLCJsbmciLCJmaWx0ZXIiLCJCb29sZWFuIiwiaGVhdExheWVyIiwicmFkaXVzIiwiYmx1ciIsIm1heFpvb20iLCJsYXllckdyb3VwIiwiaGFzTGF5ZXIiLCJhZGRMYXllciIsInNldExhdExuZ3MiLCJyZW1vdmVMYXllciIsImdldExheWVycyIsImZvckVhY2giLCJfcG9pbnRzTGF5ZXJSZWYkY3VycmUiLCJpY29uIiwiZ2V0UG9pbnRJY29uQnlUeXBlIiwiaWQiLCJ0b1N0cmluZyIsIm1hcmtlciIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcGFnZXMvUG9sbHV0aW9uUmlza0Fzc2Vzc21lbnQvdXNlTWFwLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTCBmcm9tICdsZWFmbGV0JztcbmltcG9ydCBSZWFjdCwgeyB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgZ2V0UG9pbnRJY29uQnlUeXBlIH0gZnJvbSAnc3JjL1dpZGdldHMvTWFwL3BvaW50cy9Qb2ludEljb24nO1xuaW1wb3J0IHsgSUdlb1BvaW50IH0gZnJvbSAnc3JjL3N0b3JlL3BvaW50cy9tb2RlbHMvSUdlb1BvaW50JztcbmltcG9ydCB7IGxlYWZsZXRNYXAgfSBmcm9tICdzcmMvc3R5bGVzL3RoZW1lL3RoZW1lJztcbmltcG9ydCB7IGJhc2VNYXBzIH0gZnJvbSAnc3JjL1dpZGdldHMvTWFwL01hcFV0aWxzJztcblxuZXhwb3J0IGNvbnN0IHVzZU1hcCA9IChcbiAgbWFwUmVmOiBSZWFjdC5SZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQ+LFxuICBwb2ludHM6IElHZW9Qb2ludFtdLFxuICBmaWx0ZXJlZFVzZUNhc2VDb2RlOiBzdHJpbmcsXG4gIHBvbHlnb24/OiBhbnksXG4gIG9uTWFya2VyQ2xpY2s/OiAoaWQ6IG51bWJlcikgPT4gdm9pZCxcbik6IEwuTWFwIHwgdW5kZWZpbmVkID0+IHtcbiAgY29uc3QgW21hcCwgc2V0TWFwXSA9IHVzZVN0YXRlPEwuTWFwPigpO1xuICBjb25zdCBbbWFwWm9vbUxldmVsLCBzZXRNYXBab29tTGV2ZWxdID0gdXNlU3RhdGUoMTUpO1xuICBjb25zdCBoZWF0TGF5ZXJSZWYgPSB1c2VSZWY8TC5IZWF0TGF5ZXI+KCk7XG4gIGNvbnN0IHBvaW50c0xheWVyUmVmID0gdXNlUmVmPEwuTGF5ZXJHcm91cD4oKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghbWFwUmVmLmN1cnJlbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBtYXBUeXBlcyA9IGJhc2VNYXBzKGxlYWZsZXRNYXAubWFwRGVmYXVsdCwgbGVhZmxldE1hcC5zYXRlbGxpdGUpO1xuICAgIGNvbnN0IG1hcFRlbXAgPSBMLm1hcChtYXBSZWYuY3VycmVudCwge30pO1xuXG4gICAgT2JqZWN0LnZhbHVlcyhtYXBUeXBlcylbMF0uYWRkVG8obWFwVGVtcCk7XG5cbiAgICBMLmNvbnRyb2wubGF5ZXJzKG1hcFR5cGVzLCB7fSwgeyBwb3NpdGlvbjogJ3RvcHJpZ2h0JyB9KS5hZGRUbyhtYXBUZW1wKTtcblxuICAgIC8vIFRoZSBjb2xvcnMgYXJlIHRyYW5zcGFyZW50IHNvIHRoZSBtYXAgd2lsbCBmaXQgdGhlIHBvbHlnb24gYm91bmRzIGJ1dCBpdCB3b24ndCBiZSB2aXNpYmxlXG4gICAgaWYgKHBvbHlnb24gJiYgcG9seWdvbi5sZW5ndGggPT09IHVuZGVmaW5lZCkge1xuICAgICAgY29uc3QgZ2VvSlNPTkxheWVyID0gTC5nZW9KU09OKHBvbHlnb24sIHtcbiAgICAgICAgc3R5bGU6IHtcbiAgICAgICAgICBjb2xvcjogJ3RyYW5zcGFyZW50JyxcbiAgICAgICAgICBmaWxsQ29sb3I6ICd0cmFuc3BhcmVudCcsXG4gICAgICAgICAgZmlsbE9wYWNpdHk6IDAsXG4gICAgICAgIH0sXG4gICAgICB9KS5hZGRUbyhtYXBUZW1wKTtcbiAgICAgIG1hcFRlbXAuZml0Qm91bmRzKGdlb0pTT05MYXllci5nZXRCb3VuZHMoKSk7XG4gICAgfVxuXG4gICAgbWFwVGVtcC5vbignem9vbWVuZCcsICgpID0+IHtcbiAgICAgIHNldE1hcFpvb21MZXZlbChtYXBUZW1wLmdldFpvb20oKSk7XG4gICAgfSk7XG5cbiAgICBzZXRNYXAobWFwVGVtcCk7XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgaWYgKCFtYXBUZW1wKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIG1hcFRlbXAub2ZmKCk7XG4gICAgICBtYXBUZW1wLnJlbW92ZSgpO1xuXG4gICAgICAvLyBDbGVhbiB1cCBsYXllcnNcbiAgICAgIGlmIChoZWF0TGF5ZXJSZWYuY3VycmVudCkge1xuICAgICAgICBoZWF0TGF5ZXJSZWYuY3VycmVudC5vZmYoKTtcbiAgICAgICAgaGVhdExheWVyUmVmLmN1cnJlbnQucmVtb3ZlKCk7XG4gICAgICAgIGhlYXRMYXllclJlZi5jdXJyZW50ID0gbnVsbDtcbiAgICAgIH1cbiAgICAgIGlmIChwb2ludHNMYXllclJlZi5jdXJyZW50KSB7XG4gICAgICAgIHBvaW50c0xheWVyUmVmLmN1cnJlbnQuY2xlYXJMYXllcnMoKTtcbiAgICAgICAgcG9pbnRzTGF5ZXJSZWYuY3VycmVudCA9IG51bGw7XG4gICAgICB9XG4gICAgfTtcbiAgfSwgW10pO1xuXG4gIC8vIFRoZSBoZWF0IG1hcCBwbHVnaW4gZXhwZWN0cyBhbiBhcnJheSBvZiBhcnJheXMgd2l0aCB0aGUgbGF0LCBsbmcgYW5kIGludGVuc2l0eVxuICAvLyBUaGUgaW50ZW5zaXR5IGlzIHRoZSB2YWx1ZSBvZiB0aGUgcG9pbnQncyB0b3RhbCBzY29yZSAodG9zKSBkaXZpZGVkIGJ5IDEwMCBiZWNhdXNlIHRoZSBpbnRlbnNpdHkgc2hvdWxkIGJlIGJldHdlZW4gMCBhbmQgMVxuICBjb25zdCBjYWxjdWxhdGVIZWF0UG9pbnRzID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIHJldHVybiBwb2ludHNcbiAgICAgIC5tYXAoKHBvaW50KSA9PiB7XG4gICAgICAgIGNvbnN0IGludGVuc2l0eVZhbHVlID0gcG9pbnRbZmlsdGVyZWRVc2VDYXNlQ29kZV07XG4gICAgICAgIGlmICh0eXBlb2YgaW50ZW5zaXR5VmFsdWUgPT09ICdudW1iZXInICYmICFpc05hTihpbnRlbnNpdHlWYWx1ZSkpIHtcbiAgICAgICAgICBjb25zdCBpbnRlbnNpdHkgPSBpbnRlbnNpdHlWYWx1ZSAvIDEwMDtcbiAgICAgICAgICByZXR1cm4gW3BvaW50LmxhdCwgcG9pbnQubG5nLCBpbnRlbnNpdHldO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsOyAvLyBFeGNsdWRlIGludmFsaWQgcG9pbnRzXG4gICAgICB9KVxuICAgICAgLmZpbHRlcihCb29sZWFuKTsgLy8gUmVtb3ZlIG51bGwgdmFsdWVzXG4gIH0sIFtwb2ludHMsIGZpbHRlcmVkVXNlQ2FzZUNvZGVdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghbWFwIHx8ICFwb2ludHMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIWhlYXRMYXllclJlZi5jdXJyZW50KSB7XG4gICAgICBoZWF0TGF5ZXJSZWYuY3VycmVudCA9IEwuaGVhdExheWVyKFtdLCB7XG4gICAgICAgIHJhZGl1czogMjUsXG4gICAgICAgIGJsdXI6IDE1LFxuICAgICAgICBtYXhab29tOiAxNSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmICghcG9pbnRzTGF5ZXJSZWYuY3VycmVudCkge1xuICAgICAgcG9pbnRzTGF5ZXJSZWYuY3VycmVudCA9IEwubGF5ZXJHcm91cCgpO1xuICAgIH1cblxuICAgIGlmIChtYXBab29tTGV2ZWwgPD0gMTUpIHtcbiAgICAgIGlmICghbWFwLmhhc0xheWVyKGhlYXRMYXllclJlZi5jdXJyZW50KSkge1xuICAgICAgICBtYXAuYWRkTGF5ZXIoaGVhdExheWVyUmVmLmN1cnJlbnQpO1xuICAgICAgfVxuXG4gICAgICBoZWF0TGF5ZXJSZWYuY3VycmVudC5zZXRMYXRMbmdzKGNhbGN1bGF0ZUhlYXRQb2ludHMoKSk7XG5cbiAgICAgIGlmIChtYXAuaGFzTGF5ZXIocG9pbnRzTGF5ZXJSZWYuY3VycmVudCkpIHtcbiAgICAgICAgbWFwLnJlbW92ZUxheWVyKHBvaW50c0xheWVyUmVmLmN1cnJlbnQpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoIXBvaW50c0xheWVyUmVmLmN1cnJlbnQuZ2V0TGF5ZXJzKCkubGVuZ3RoKSB7XG4gICAgICAgIHBvaW50cy5mb3JFYWNoKChwb2ludCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGljb24gPSBnZXRQb2ludEljb25CeVR5cGUoXG4gICAgICAgICAgICAnR3JvdXBzOjpGYWN0b3J5JyxcbiAgICAgICAgICAgIHBvaW50Py5pZC50b1N0cmluZygpLFxuICAgICAgICAgICAgJycsXG4gICAgICAgICAgICBmYWxzZSxcbiAgICAgICAgICAgIHRydWUsXG4gICAgICAgICAgKTtcbiAgICAgICAgICBjb25zdCBtYXJrZXIgPSBMLm1hcmtlcihbcG9pbnQubGF0LCBwb2ludC5sbmddLCB7XG4gICAgICAgICAgICBpY29uLFxuICAgICAgICAgIH0pO1xuICAgICAgICAgIG1hcmtlci5vbignY2xpY2snLCAoKSA9PiB7XG4gICAgICAgICAgICBpZiAob25NYXJrZXJDbGljaykge1xuICAgICAgICAgICAgICBvbk1hcmtlckNsaWNrKHBvaW50LmlkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgICBwb2ludHNMYXllclJlZi5jdXJyZW50Py5hZGRMYXllcihtYXJrZXIpO1xuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgaWYgKCFtYXAuaGFzTGF5ZXIocG9pbnRzTGF5ZXJSZWYuY3VycmVudCkpIHtcbiAgICAgICAgbWFwLmFkZExheWVyKHBvaW50c0xheWVyUmVmLmN1cnJlbnQpO1xuICAgICAgfVxuXG4gICAgICBpZiAobWFwLmhhc0xheWVyKGhlYXRMYXllclJlZi5jdXJyZW50KSkge1xuICAgICAgICBtYXAucmVtb3ZlTGF5ZXIoaGVhdExheWVyUmVmLmN1cnJlbnQpO1xuICAgICAgfVxuICAgIH1cbiAgfSwgW3BvaW50cywgbWFwLCBtYXBab29tTGV2ZWwsIGZpbHRlcmVkVXNlQ2FzZUNvZGUsIGNhbGN1bGF0ZUhlYXRQb2ludHNd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
@@ -0,0 +1,50 @@
1
+ [
2
+ {
3
+ "id": "additional_opex",
4
+ "name": "additional_opex",
5
+ "icon": "wwtp_cost",
6
+ "code": "ao"
7
+ },
8
+ {
9
+ "id": "agriculture_irrigation",
10
+ "name": "agriculture_irrigation",
11
+ "icon": "shorten_collection_lifetime",
12
+ "code": "ai"
13
+ },
14
+ {
15
+ "id": "biosolids_land_application",
16
+ "name": "biosolids_land_application",
17
+ "icon": "shorten_collection_lifetime",
18
+ "code": "bl"
19
+ },
20
+ {
21
+ "id": "pipeline_corrosion",
22
+ "name": "pipeline_corrosion",
23
+ "icon": "pipes_pumps_blockage",
24
+ "code": "pc"
25
+ },
26
+ {
27
+ "id": "pipeline_blockages",
28
+ "name": "pipeline_blockages",
29
+ "icon": "pipes_pumps_blockage",
30
+ "code": "pb"
31
+ },
32
+ {
33
+ "id": "process_interference",
34
+ "name": "process_interference",
35
+ "icon": "shorten_collection_lifetime",
36
+ "code": "pi"
37
+ },
38
+ {
39
+ "id": "sludge_for_landfill",
40
+ "name": "sludge_for_landfill",
41
+ "icon": "sludge_treatment",
42
+ "code": "sl"
43
+ },
44
+ {
45
+ "id": "surface_water_pollution",
46
+ "name": "surface_water_pollution",
47
+ "icon": "water_reuse",
48
+ "code": "sw"
49
+ }
50
+ ]
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3N0b3JlL3BvaW50cy9tb2RlbHMvSUdlb1BvaW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgSUdlb1BvaW50IHtcbiAgaWQ6IG51bWJlcjtcbiAgbGF0OiBudW1iZXI7XG4gIGxuZzogbnVtYmVyO1xuICB0b3M6IG51bWJlcjtcbiAgdG9jOiBudW1iZXI7XG59XG4iXSwibWFwcGluZ3MiOiIifQ==