@kando-env/kando-ui 1.2.228-alpha.91 → 1.2.228-alpha.92
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/Router.js +1 -5
- package/lib/Widgets/EventsRow/EventsRow.js +2 -2
- package/lib/Widgets/Map/edges/Edge.js +2 -2
- package/lib/Widgets/Map/events/EventIndicator.js +2 -2
- package/lib/Widgets/Map/events/EventUtils.js +2 -2
- package/lib/Widgets/MostPolluting/Areas/AreaBox/AreaBox.js +5 -5
- package/lib/Widgets/MostPolluting/Areas/areasResponse.interface.js +1 -1
- package/lib/Widgets/MostPolluting/MostPolluting.js +8 -34
- package/lib/Widgets/QualitySummary/styles.js +2 -2
- package/lib/Widgets/UtilityInformation/MapModal/MapModal.js +2 -2
- package/lib/Widgets/UtilityInformation/UtilityInformation.js +15 -9
- package/lib/components/CustomInputs/Select/Select.js +4 -22
- package/lib/components/Header/Slideshow/Slideshow.js +5 -5
- package/lib/components/TrendGraphNVL/TrendGraphNVL.js +3 -4
- package/lib/hooks/useInitializeHeaders.js +3 -2
- package/lib/i18n/en.json +4 -42
- package/lib/i18n/en_uk.json +3 -25
- package/lib/i18n/fr.json +2 -24
- package/lib/i18n/he.json +3 -33
- package/lib/i18n/it.json +2 -24
- package/lib/macros/getVersion.js +1 -1
- package/lib/pages/AreaPage/AreaPage.js +5 -9
- package/lib/pages/AreaPage/Dashboard/Dashboard.js +2 -2
- package/lib/pages/AreaPage/Dashboard/Sites/Sites.js +2 -19
- package/lib/pages/AreaPage/Dashboard/Sites/styles.js +2 -2
- package/lib/pages/CovidPage/components/TrendGraphNVL/TrendGraphNVL.js +3 -4
- package/lib/pages/CovidPage/components/TrendPopupContent/TrendPopupContent.js +2 -4
- package/lib/pages/EventsPage/events/EventsStyle.scss +0 -1
- package/lib/pages/EventsPage/events/events_list/EventsList.js +2 -2
- package/lib/pages/NotificationsPageV2/components/NotificationsForm/NotificationsFormContent.js +3 -3
- package/lib/pages/NotificationsPageV2/components/NotificationsUtils.js +3 -3
- package/lib/pages/NotificationsPageV2/notificationUtils.js +3 -7
- package/lib/pages/OldSitePage/IDashboardData.js +1 -1
- package/lib/pages/ProfilePage/Container.js +2 -2
- package/lib/pages/ProfilePage/ProfilePage.js +48 -154
- package/lib/pages/SamplingsPage/ActionsDropDown/SamplingActionContainer.js +6 -14
- package/lib/pages/SamplingsPage/SamplingProperties/ImagePreviewModal.js +2 -2
- package/lib/pages/SamplingsPage/SamplingProperties/SamplingProperties.js +4 -4
- package/lib/pages/SamplingsPage/SamplingProperties/samplingPropertiesUtils.js +2 -4
- package/lib/pages/UtilityDashboardPage/MostSevereEvents/MostSevereEvents.js +23 -11
- package/lib/pages/UtilityDashboardPage/TopBar/TopBar.js +6 -22
- package/lib/pages/UtilityDashboardPage/UtilityDashboard.js +6 -15
- package/lib/pages/WbeDashboard/ExpandableComponent.js +4 -6
- package/lib/pages/WbeDashboard/GraphWrapper.js +4 -5
- package/lib/pages/WbeDashboard/SummaryGraph.js +34 -45
- package/lib/pages/WbeDashboard/Tabs.js +1 -2
- package/lib/pages/WbeDashboard/WbeDashboardPage.js +55 -48
- package/lib/pages/WbeDashboard/WbeSummaryBar.js +10 -14
- package/lib/store/WBE/models/IWBE.js +1 -1
- package/lib/store/events/actions.js +3 -3
- package/lib/store/events/models/IEvent.js +1 -1
- package/lib/store/permissions/permissionsSlice.js +1 -3
- package/lib/ui-kit/ImageUploadButton/ImageUploadButton.js +4 -17
- package/lib/ui-kit/InfoTooltip/InfoTooltip.js +2 -9
- package/lib/ui-kit/KandoTable/KandoTable.js +4 -6
- package/lib/utilities/Analytics.js +1 -2
- package/lib/utilities/Enum.js +1 -12
- package/lib/utilities/polylinedecorator.js +383 -0
- package/lib/utilities/urls.js +3 -26
- package/package.json +1 -1
- package/lib/pages/UtilityDashboardPage/TopBar/constants.js +0 -17
- package/lib/pages/UtilityDashboardPage/VirtualAreaDashboardPage.js +0 -67
|
@@ -0,0 +1,383 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.computeSegmentHeading = exports.asRatioToPathLength = void 0;
|
|
8
|
+
exports.parseRelativeOrAbsoluteValue = parseRelativeOrAbsoluteValue;
|
|
9
|
+
exports.projectPatternOnPointPath = projectPatternOnPointPath;
|
|
10
|
+
var _leaflet = _interopRequireDefault(require("leaflet"));
|
|
11
|
+
require("leaflet-rotatedmarker");
|
|
12
|
+
// enable rotationAngle and rotationOrigin support on L.Marker
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Defines several classes of symbol factories,
|
|
16
|
+
* to be used with L.PolylineDecorator
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
_leaflet.default.Symbol = _leaflet.default.Symbol || {};
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* A simple dash symbol, drawn as a Polyline.
|
|
23
|
+
* Can also be used for dots, if 'pixelSize' option is given the 0 value.
|
|
24
|
+
*/
|
|
25
|
+
_leaflet.default.Symbol.Dash = _leaflet.default.Class.extend({
|
|
26
|
+
options: {
|
|
27
|
+
pixelSize: 10,
|
|
28
|
+
pathOptions: {}
|
|
29
|
+
},
|
|
30
|
+
initialize: function initialize(options) {
|
|
31
|
+
_leaflet.default.Util.setOptions(this, options);
|
|
32
|
+
this.options.pathOptions.clickable = false;
|
|
33
|
+
},
|
|
34
|
+
buildSymbol: function buildSymbol(dirPoint, latLngs, map, index, total) {
|
|
35
|
+
var opts = this.options;
|
|
36
|
+
var d2r = Math.PI / 180;
|
|
37
|
+
|
|
38
|
+
// for a dot, nothing more to compute
|
|
39
|
+
if (opts.pixelSize <= 1) {
|
|
40
|
+
return _leaflet.default.polyline([dirPoint.latLng, dirPoint.latLng], opts.pathOptions);
|
|
41
|
+
}
|
|
42
|
+
var midPoint = map.project(dirPoint.latLng);
|
|
43
|
+
var angle = -(dirPoint.heading - 90) * d2r;
|
|
44
|
+
var a = _leaflet.default.point(midPoint.x + opts.pixelSize * Math.cos(angle + Math.PI) / 2, midPoint.y + opts.pixelSize * Math.sin(angle) / 2);
|
|
45
|
+
// compute second point by central symmetry to avoid unecessary cos/sin
|
|
46
|
+
var b = midPoint.add(midPoint.subtract(a));
|
|
47
|
+
return _leaflet.default.polyline([map.unproject(a), map.unproject(b)], opts.pathOptions);
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
_leaflet.default.Symbol.dash = function (options) {
|
|
51
|
+
return new _leaflet.default.Symbol.Dash(options);
|
|
52
|
+
};
|
|
53
|
+
_leaflet.default.Symbol.ArrowHead = _leaflet.default.Class.extend({
|
|
54
|
+
options: {
|
|
55
|
+
polygon: true,
|
|
56
|
+
pixelSize: 10,
|
|
57
|
+
headAngle: 60,
|
|
58
|
+
pathOptions: {
|
|
59
|
+
stroke: false,
|
|
60
|
+
weight: 2
|
|
61
|
+
}
|
|
62
|
+
},
|
|
63
|
+
initialize: function initialize(options) {
|
|
64
|
+
_leaflet.default.Util.setOptions(this, options);
|
|
65
|
+
this.options.pathOptions.clickable = false;
|
|
66
|
+
},
|
|
67
|
+
buildSymbol: function buildSymbol(dirPoint, latLngs, map, index, total) {
|
|
68
|
+
return this.options.polygon ? _leaflet.default.polygon(this._buildArrowPath(dirPoint, map), this.options.pathOptions) : _leaflet.default.polyline(this._buildArrowPath(dirPoint, map), this.options.pathOptions);
|
|
69
|
+
},
|
|
70
|
+
_buildArrowPath: function _buildArrowPath(dirPoint, map) {
|
|
71
|
+
var d2r = Math.PI / 180;
|
|
72
|
+
var tipPoint = map.project(dirPoint.latLng);
|
|
73
|
+
var direction = -(dirPoint.heading - 90) * d2r;
|
|
74
|
+
var radianArrowAngle = this.options.headAngle / 2 * d2r;
|
|
75
|
+
var headAngle1 = direction + radianArrowAngle;
|
|
76
|
+
var headAngle2 = direction - radianArrowAngle;
|
|
77
|
+
var arrowHead1 = _leaflet.default.point(tipPoint.x - this.options.pixelSize * Math.cos(headAngle1), tipPoint.y + this.options.pixelSize * Math.sin(headAngle1));
|
|
78
|
+
var arrowHead2 = _leaflet.default.point(tipPoint.x - this.options.pixelSize * Math.cos(headAngle2), tipPoint.y + this.options.pixelSize * Math.sin(headAngle2));
|
|
79
|
+
return [map.unproject(arrowHead1), dirPoint.latLng, map.unproject(arrowHead2)];
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
_leaflet.default.Symbol.arrowHead = function (options) {
|
|
83
|
+
return new _leaflet.default.Symbol.ArrowHead(options);
|
|
84
|
+
};
|
|
85
|
+
_leaflet.default.Symbol.Marker = _leaflet.default.Class.extend({
|
|
86
|
+
options: {
|
|
87
|
+
markerOptions: {},
|
|
88
|
+
rotate: false
|
|
89
|
+
},
|
|
90
|
+
initialize: function initialize(options) {
|
|
91
|
+
_leaflet.default.Util.setOptions(this, options);
|
|
92
|
+
this.options.markerOptions.clickable = false;
|
|
93
|
+
this.options.markerOptions.draggable = false;
|
|
94
|
+
},
|
|
95
|
+
buildSymbol: function buildSymbol(directionPoint, latLngs, map, index, total) {
|
|
96
|
+
if (this.options.rotate) {
|
|
97
|
+
this.options.markerOptions.rotationAngle = directionPoint.heading + (this.options.angleCorrection || 0);
|
|
98
|
+
}
|
|
99
|
+
return _leaflet.default.marker(directionPoint.latLng, this.options.markerOptions);
|
|
100
|
+
}
|
|
101
|
+
});
|
|
102
|
+
_leaflet.default.Symbol.marker = function (options) {
|
|
103
|
+
return new _leaflet.default.Symbol.Marker(options);
|
|
104
|
+
};
|
|
105
|
+
var isCoord = function isCoord(c) {
|
|
106
|
+
return c instanceof _leaflet.default.LatLng || Array.isArray(c) && c.length === 2 && typeof c[0] === 'number';
|
|
107
|
+
};
|
|
108
|
+
var isCoordArray = function isCoordArray(ll) {
|
|
109
|
+
return Array.isArray(ll) && isCoord(ll[0]);
|
|
110
|
+
};
|
|
111
|
+
_leaflet.default.PolylineDecorator = _leaflet.default.FeatureGroup.extend({
|
|
112
|
+
options: {
|
|
113
|
+
patterns: []
|
|
114
|
+
},
|
|
115
|
+
initialize: function initialize(paths, options) {
|
|
116
|
+
_leaflet.default.FeatureGroup.prototype.initialize.call(this);
|
|
117
|
+
_leaflet.default.Util.setOptions(this, options);
|
|
118
|
+
this._map = null;
|
|
119
|
+
this._paths = this._initPaths(paths);
|
|
120
|
+
this._bounds = this._initBounds();
|
|
121
|
+
this._patterns = this._initPatterns(this.options.patterns);
|
|
122
|
+
},
|
|
123
|
+
/**
|
|
124
|
+
* Deals with all the different cases. input can be one of these types:
|
|
125
|
+
* array of LatLng, array of 2-number arrays, Polyline, Polygon,
|
|
126
|
+
* array of one of the previous.
|
|
127
|
+
*/
|
|
128
|
+
_initPaths: function _initPaths(input, isPolygon) {
|
|
129
|
+
var _this = this;
|
|
130
|
+
if (isCoordArray(input)) {
|
|
131
|
+
// Leaflet Polygons don't need the first point to be repeated, but we do
|
|
132
|
+
var coords = isPolygon ? input.concat([input[0]]) : input;
|
|
133
|
+
return [coords];
|
|
134
|
+
}
|
|
135
|
+
if (input instanceof _leaflet.default.Polyline) {
|
|
136
|
+
// we need some recursivity to support multi-poly*
|
|
137
|
+
return this._initPaths(input.getLatLngs(), input instanceof _leaflet.default.Polygon);
|
|
138
|
+
}
|
|
139
|
+
if (Array.isArray(input)) {
|
|
140
|
+
// flatten everything, we just need coordinate lists to apply patterns
|
|
141
|
+
return input.reduce(function (flatArray, p) {
|
|
142
|
+
return flatArray.concat(_this._initPaths(p, isPolygon));
|
|
143
|
+
}, []);
|
|
144
|
+
}
|
|
145
|
+
return [];
|
|
146
|
+
},
|
|
147
|
+
// parse pattern definitions and precompute some values
|
|
148
|
+
_initPatterns: function _initPatterns(patternDefs) {
|
|
149
|
+
return patternDefs.map(this._parsePatternDef);
|
|
150
|
+
},
|
|
151
|
+
/**
|
|
152
|
+
* Changes the patterns used by this decorator
|
|
153
|
+
* and redraws the new one.
|
|
154
|
+
*/
|
|
155
|
+
setPatterns: function setPatterns(patterns) {
|
|
156
|
+
this.options.patterns = patterns;
|
|
157
|
+
this._patterns = this._initPatterns(this.options.patterns);
|
|
158
|
+
this.redraw();
|
|
159
|
+
},
|
|
160
|
+
/**
|
|
161
|
+
* Changes the patterns used by this decorator
|
|
162
|
+
* and redraws the new one.
|
|
163
|
+
*/
|
|
164
|
+
setPaths: function setPaths(paths) {
|
|
165
|
+
this._paths = this._initPaths(paths);
|
|
166
|
+
this._bounds = this._initBounds();
|
|
167
|
+
this.redraw();
|
|
168
|
+
},
|
|
169
|
+
/**
|
|
170
|
+
* Parse the pattern definition
|
|
171
|
+
*/
|
|
172
|
+
_parsePatternDef: function _parsePatternDef(patternDef, latLngs) {
|
|
173
|
+
return {
|
|
174
|
+
symbolFactory: patternDef.symbol,
|
|
175
|
+
// Parse offset and repeat values, managing the two cases:
|
|
176
|
+
// absolute (in pixels) or relative (in percentage of the polyline length)
|
|
177
|
+
offset: parseRelativeOrAbsoluteValue(patternDef.offset),
|
|
178
|
+
endOffset: parseRelativeOrAbsoluteValue(patternDef.endOffset),
|
|
179
|
+
repeat: parseRelativeOrAbsoluteValue(patternDef.repeat)
|
|
180
|
+
};
|
|
181
|
+
},
|
|
182
|
+
onAdd: function onAdd(map) {
|
|
183
|
+
this._map = map;
|
|
184
|
+
this._draw();
|
|
185
|
+
this._map.on('moveend', this.redraw, this);
|
|
186
|
+
},
|
|
187
|
+
onRemove: function onRemove(map) {
|
|
188
|
+
this._map.off('moveend', this.redraw, this);
|
|
189
|
+
this._map = null;
|
|
190
|
+
_leaflet.default.FeatureGroup.prototype.onRemove.call(this, map);
|
|
191
|
+
},
|
|
192
|
+
/**
|
|
193
|
+
* As real pattern bounds depends on map zoom and bounds,
|
|
194
|
+
* we just compute the total bounds of all paths decorated by this instance.
|
|
195
|
+
*/
|
|
196
|
+
_initBounds: function _initBounds() {
|
|
197
|
+
var allPathCoords = this._paths.reduce(function (acc, path) {
|
|
198
|
+
return acc.concat(path);
|
|
199
|
+
}, []);
|
|
200
|
+
return _leaflet.default.latLngBounds(allPathCoords);
|
|
201
|
+
},
|
|
202
|
+
getBounds: function getBounds() {
|
|
203
|
+
return this._bounds;
|
|
204
|
+
},
|
|
205
|
+
/**
|
|
206
|
+
* Returns an array of ILayers object
|
|
207
|
+
*/
|
|
208
|
+
_buildSymbols: function _buildSymbols(latLngs, symbolFactory, directionPoints) {
|
|
209
|
+
var _this2 = this;
|
|
210
|
+
return directionPoints.map(function (directionPoint, i) {
|
|
211
|
+
return symbolFactory.buildSymbol(directionPoint, latLngs, _this2._map, i, directionPoints.length);
|
|
212
|
+
});
|
|
213
|
+
},
|
|
214
|
+
/**
|
|
215
|
+
* Compute pairs of LatLng and heading angle,
|
|
216
|
+
* that define positions and directions of the symbols on the path
|
|
217
|
+
*/
|
|
218
|
+
_getDirectionPoints: function _getDirectionPoints(latLngs, pattern) {
|
|
219
|
+
var _this3 = this;
|
|
220
|
+
if (latLngs.length < 2) {
|
|
221
|
+
return [];
|
|
222
|
+
}
|
|
223
|
+
var pathAsPoints = latLngs.map(function (latLng) {
|
|
224
|
+
return _this3._map.project(latLng);
|
|
225
|
+
});
|
|
226
|
+
return projectPatternOnPointPath(pathAsPoints, pattern).map(function (point) {
|
|
227
|
+
return {
|
|
228
|
+
latLng: _this3._map.unproject(_leaflet.default.point(point.pt)),
|
|
229
|
+
heading: point.heading
|
|
230
|
+
};
|
|
231
|
+
});
|
|
232
|
+
},
|
|
233
|
+
redraw: function redraw() {
|
|
234
|
+
if (!this._map) {
|
|
235
|
+
return;
|
|
236
|
+
}
|
|
237
|
+
this.clearLayers();
|
|
238
|
+
this._draw();
|
|
239
|
+
},
|
|
240
|
+
/**
|
|
241
|
+
* Returns all symbols for a given pattern as an array of FeatureGroup
|
|
242
|
+
*/
|
|
243
|
+
_getPatternLayers: function _getPatternLayers(pattern) {
|
|
244
|
+
var _this4 = this;
|
|
245
|
+
var mapBounds = this._map.getBounds().pad(0.1);
|
|
246
|
+
return this._paths.map(function (path) {
|
|
247
|
+
var directionPoints = _this4._getDirectionPoints(path, pattern)
|
|
248
|
+
// filter out invisible points
|
|
249
|
+
.filter(function (point) {
|
|
250
|
+
return mapBounds.contains(point.latLng);
|
|
251
|
+
});
|
|
252
|
+
return _leaflet.default.featureGroup(_this4._buildSymbols(path, pattern.symbolFactory, directionPoints));
|
|
253
|
+
});
|
|
254
|
+
},
|
|
255
|
+
/**
|
|
256
|
+
* Draw all patterns
|
|
257
|
+
*/
|
|
258
|
+
_draw: function _draw() {
|
|
259
|
+
var _this5 = this;
|
|
260
|
+
this._patterns.map(function (pattern) {
|
|
261
|
+
return _this5._getPatternLayers(pattern);
|
|
262
|
+
}).forEach(function (layers) {
|
|
263
|
+
_this5.addLayer(_leaflet.default.featureGroup(layers));
|
|
264
|
+
});
|
|
265
|
+
}
|
|
266
|
+
});
|
|
267
|
+
/*
|
|
268
|
+
* Allows compact syntax to be used
|
|
269
|
+
*/
|
|
270
|
+
_leaflet.default.polylineDecorator = function (paths, options) {
|
|
271
|
+
return new _leaflet.default.PolylineDecorator(paths, options);
|
|
272
|
+
};
|
|
273
|
+
|
|
274
|
+
// functional re-impl of L.Point.distanceTo,
|
|
275
|
+
// with no dependency on Leaflet for easier testing
|
|
276
|
+
function pointDistance(ptA, ptB) {
|
|
277
|
+
var x = ptB.x - ptA.x;
|
|
278
|
+
var y = ptB.y - ptA.y;
|
|
279
|
+
return Math.sqrt(x * x + y * y);
|
|
280
|
+
}
|
|
281
|
+
var computeSegmentHeading = function computeSegmentHeading(a, b) {
|
|
282
|
+
return (Math.atan2(b.y - a.y, b.x - a.x) * 180 / Math.PI + 90 + 360) % 360;
|
|
283
|
+
};
|
|
284
|
+
exports.computeSegmentHeading = computeSegmentHeading;
|
|
285
|
+
var asRatioToPathLength = function asRatioToPathLength(_ref, totalPathLength) {
|
|
286
|
+
var value = _ref.value,
|
|
287
|
+
isInPixels = _ref.isInPixels;
|
|
288
|
+
return isInPixels ? value / totalPathLength : value;
|
|
289
|
+
};
|
|
290
|
+
exports.asRatioToPathLength = asRatioToPathLength;
|
|
291
|
+
function parseRelativeOrAbsoluteValue(value) {
|
|
292
|
+
if (typeof value === 'string' && value.indexOf('%') !== -1) {
|
|
293
|
+
return {
|
|
294
|
+
value: parseFloat(value) / 100,
|
|
295
|
+
isInPixels: false
|
|
296
|
+
};
|
|
297
|
+
}
|
|
298
|
+
var parsedValue = value ? parseFloat(value) : 0;
|
|
299
|
+
return {
|
|
300
|
+
value: parsedValue,
|
|
301
|
+
isInPixels: parsedValue > 0
|
|
302
|
+
};
|
|
303
|
+
}
|
|
304
|
+
var pointsEqual = function pointsEqual(a, b) {
|
|
305
|
+
return a.x === b.x && a.y === b.y;
|
|
306
|
+
};
|
|
307
|
+
function pointsToSegments(pts) {
|
|
308
|
+
return pts.reduce(function (segments, b, idx, points) {
|
|
309
|
+
// this test skips same adjacent points
|
|
310
|
+
if (idx > 0 && !pointsEqual(b, points[idx - 1])) {
|
|
311
|
+
var a = points[idx - 1];
|
|
312
|
+
var distA = segments.length > 0 ? segments[segments.length - 1].distB : 0;
|
|
313
|
+
var distAB = pointDistance(a, b);
|
|
314
|
+
segments.push({
|
|
315
|
+
a: a,
|
|
316
|
+
b: b,
|
|
317
|
+
distA: distA,
|
|
318
|
+
distB: distA + distAB,
|
|
319
|
+
heading: computeSegmentHeading(a, b)
|
|
320
|
+
});
|
|
321
|
+
}
|
|
322
|
+
return segments;
|
|
323
|
+
}, []);
|
|
324
|
+
}
|
|
325
|
+
function projectPatternOnPointPath(pts, pattern) {
|
|
326
|
+
// 1. split the path into segment infos
|
|
327
|
+
var segments = pointsToSegments(pts);
|
|
328
|
+
var nbSegments = segments.length;
|
|
329
|
+
if (nbSegments === 0) {
|
|
330
|
+
return [];
|
|
331
|
+
}
|
|
332
|
+
var totalPathLength = segments[nbSegments - 1].distB;
|
|
333
|
+
var offset = asRatioToPathLength(pattern.offset, totalPathLength);
|
|
334
|
+
var endOffset = asRatioToPathLength(pattern.endOffset, totalPathLength);
|
|
335
|
+
var repeat = asRatioToPathLength(pattern.repeat, totalPathLength);
|
|
336
|
+
var repeatIntervalPixels = totalPathLength * repeat;
|
|
337
|
+
var startOffsetPixels = offset > 0 ? totalPathLength * offset : 0;
|
|
338
|
+
var endOffsetPixels = endOffset > 0 ? totalPathLength * endOffset : 0;
|
|
339
|
+
|
|
340
|
+
// 2. generate the positions of the pattern as offsets from the path start
|
|
341
|
+
var positionOffsets = [];
|
|
342
|
+
var positionOffset = startOffsetPixels;
|
|
343
|
+
do {
|
|
344
|
+
positionOffsets.push(positionOffset);
|
|
345
|
+
positionOffset += repeatIntervalPixels;
|
|
346
|
+
} while (repeatIntervalPixels > 0 && positionOffset < totalPathLength - endOffsetPixels);
|
|
347
|
+
|
|
348
|
+
// 3. projects offsets to segments
|
|
349
|
+
var segmentIndex = 0;
|
|
350
|
+
var segment = segments[0];
|
|
351
|
+
return positionOffsets.map(function (positionOffset) {
|
|
352
|
+
// find the segment matching the offset,
|
|
353
|
+
// starting from the previous one as offsets are ordered
|
|
354
|
+
while (positionOffset > segment.distB && segmentIndex < nbSegments - 1) {
|
|
355
|
+
segmentIndex++;
|
|
356
|
+
segment = segments[segmentIndex];
|
|
357
|
+
}
|
|
358
|
+
var segmentRatio = (positionOffset - segment.distA) / (segment.distB - segment.distA);
|
|
359
|
+
return {
|
|
360
|
+
pt: interpolateBetweenPoints(segment.a, segment.b, segmentRatio),
|
|
361
|
+
heading: segment.heading
|
|
362
|
+
};
|
|
363
|
+
});
|
|
364
|
+
}
|
|
365
|
+
|
|
366
|
+
/**
|
|
367
|
+
* Finds the point which lies on the segment defined by points A and B,
|
|
368
|
+
* at the given ratio of the distance from A to B, by linear interpolation.
|
|
369
|
+
*/
|
|
370
|
+
function interpolateBetweenPoints(ptA, ptB, ratio) {
|
|
371
|
+
if (ptB.x !== ptA.x) {
|
|
372
|
+
return {
|
|
373
|
+
x: ptA.x + ratio * (ptB.x - ptA.x),
|
|
374
|
+
y: ptA.y + ratio * (ptB.y - ptA.y)
|
|
375
|
+
};
|
|
376
|
+
}
|
|
377
|
+
// special case where points lie on the same vertical axis
|
|
378
|
+
return {
|
|
379
|
+
x: ptA.x,
|
|
380
|
+
y: ptA.y + (ptB.y - ptA.y) * ratio
|
|
381
|
+
};
|
|
382
|
+
}
|
|
383
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbGVhZmxldCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiTCIsIlN5bWJvbCIsIkRhc2giLCJDbGFzcyIsImV4dGVuZCIsIm9wdGlvbnMiLCJwaXhlbFNpemUiLCJwYXRoT3B0aW9ucyIsImluaXRpYWxpemUiLCJVdGlsIiwic2V0T3B0aW9ucyIsImNsaWNrYWJsZSIsImJ1aWxkU3ltYm9sIiwiZGlyUG9pbnQiLCJsYXRMbmdzIiwibWFwIiwiaW5kZXgiLCJ0b3RhbCIsIm9wdHMiLCJkMnIiLCJNYXRoIiwiUEkiLCJwb2x5bGluZSIsImxhdExuZyIsIm1pZFBvaW50IiwicHJvamVjdCIsImFuZ2xlIiwiaGVhZGluZyIsImEiLCJwb2ludCIsIngiLCJjb3MiLCJ5Iiwic2luIiwiYiIsImFkZCIsInN1YnRyYWN0IiwidW5wcm9qZWN0IiwiZGFzaCIsIkFycm93SGVhZCIsInBvbHlnb24iLCJoZWFkQW5nbGUiLCJzdHJva2UiLCJ3ZWlnaHQiLCJfYnVpbGRBcnJvd1BhdGgiLCJ0aXBQb2ludCIsImRpcmVjdGlvbiIsInJhZGlhbkFycm93QW5nbGUiLCJoZWFkQW5nbGUxIiwiaGVhZEFuZ2xlMiIsImFycm93SGVhZDEiLCJhcnJvd0hlYWQyIiwiYXJyb3dIZWFkIiwiTWFya2VyIiwibWFya2VyT3B0aW9ucyIsInJvdGF0ZSIsImRyYWdnYWJsZSIsImRpcmVjdGlvblBvaW50Iiwicm90YXRpb25BbmdsZSIsImFuZ2xlQ29ycmVjdGlvbiIsIm1hcmtlciIsImlzQ29vcmQiLCJjIiwiTGF0TG5nIiwiQXJyYXkiLCJpc0FycmF5IiwibGVuZ3RoIiwiaXNDb29yZEFycmF5IiwibGwiLCJQb2x5bGluZURlY29yYXRvciIsIkZlYXR1cmVHcm91cCIsInBhdHRlcm5zIiwicGF0aHMiLCJwcm90b3R5cGUiLCJjYWxsIiwiX21hcCIsIl9wYXRocyIsIl9pbml0UGF0aHMiLCJfYm91bmRzIiwiX2luaXRCb3VuZHMiLCJfcGF0dGVybnMiLCJfaW5pdFBhdHRlcm5zIiwiaW5wdXQiLCJpc1BvbHlnb24iLCJfdGhpcyIsImNvb3JkcyIsImNvbmNhdCIsIlBvbHlsaW5lIiwiZ2V0TGF0TG5ncyIsIlBvbHlnb24iLCJyZWR1Y2UiLCJmbGF0QXJyYXkiLCJwIiwicGF0dGVybkRlZnMiLCJfcGFyc2VQYXR0ZXJuRGVmIiwic2V0UGF0dGVybnMiLCJyZWRyYXciLCJzZXRQYXRocyIsInBhdHRlcm5EZWYiLCJzeW1ib2xGYWN0b3J5Iiwic3ltYm9sIiwib2Zmc2V0IiwicGFyc2VSZWxhdGl2ZU9yQWJzb2x1dGVWYWx1ZSIsImVuZE9mZnNldCIsInJlcGVhdCIsIm9uQWRkIiwiX2RyYXciLCJvbiIsIm9uUmVtb3ZlIiwib2ZmIiwiYWxsUGF0aENvb3JkcyIsImFjYyIsInBhdGgiLCJsYXRMbmdCb3VuZHMiLCJnZXRCb3VuZHMiLCJfYnVpbGRTeW1ib2xzIiwiZGlyZWN0aW9uUG9pbnRzIiwiX3RoaXMyIiwiaSIsIl9nZXREaXJlY3Rpb25Qb2ludHMiLCJwYXR0ZXJuIiwiX3RoaXMzIiwicGF0aEFzUG9pbnRzIiwicHJvamVjdFBhdHRlcm5PblBvaW50UGF0aCIsInB0IiwiY2xlYXJMYXllcnMiLCJfZ2V0UGF0dGVybkxheWVycyIsIl90aGlzNCIsIm1hcEJvdW5kcyIsInBhZCIsImZpbHRlciIsImNvbnRhaW5zIiwiZmVhdHVyZUdyb3VwIiwiX3RoaXM1IiwiZm9yRWFjaCIsImxheWVycyIsImFkZExheWVyIiwicG9seWxpbmVEZWNvcmF0b3IiLCJwb2ludERpc3RhbmNlIiwicHRBIiwicHRCIiwic3FydCIsImNvbXB1dGVTZWdtZW50SGVhZGluZyIsImF0YW4yIiwiZXhwb3J0cyIsImFzUmF0aW9Ub1BhdGhMZW5ndGgiLCJfcmVmIiwidG90YWxQYXRoTGVuZ3RoIiwidmFsdWUiLCJpc0luUGl4ZWxzIiwiaW5kZXhPZiIsInBhcnNlRmxvYXQiLCJwYXJzZWRWYWx1ZSIsInBvaW50c0VxdWFsIiwicG9pbnRzVG9TZWdtZW50cyIsInB0cyIsInNlZ21lbnRzIiwiaWR4IiwicG9pbnRzIiwiZGlzdEEiLCJkaXN0QiIsImRpc3RBQiIsInB1c2giLCJuYlNlZ21lbnRzIiwicmVwZWF0SW50ZXJ2YWxQaXhlbHMiLCJzdGFydE9mZnNldFBpeGVscyIsImVuZE9mZnNldFBpeGVscyIsInBvc2l0aW9uT2Zmc2V0cyIsInBvc2l0aW9uT2Zmc2V0Iiwic2VnbWVudEluZGV4Iiwic2VnbWVudCIsInNlZ21lbnRSYXRpbyIsImludGVycG9sYXRlQmV0d2VlblBvaW50cyIsInJhdGlvIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxpdGllcy9wb2x5bGluZWRlY29yYXRvci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTCBmcm9tICdsZWFmbGV0Jztcbi8vIGVuYWJsZSByb3RhdGlvbkFuZ2xlIGFuZCByb3RhdGlvbk9yaWdpbiBzdXBwb3J0IG9uIEwuTWFya2VyXG5pbXBvcnQgJ2xlYWZsZXQtcm90YXRlZG1hcmtlcic7XG5cbi8qKlxuICogRGVmaW5lcyBzZXZlcmFsIGNsYXNzZXMgb2Ygc3ltYm9sIGZhY3RvcmllcyxcbiAqIHRvIGJlIHVzZWQgd2l0aCBMLlBvbHlsaW5lRGVjb3JhdG9yXG4gKi9cblxuTC5TeW1ib2wgPSBMLlN5bWJvbCB8fCB7fTtcblxuLyoqXG4gKiBBIHNpbXBsZSBkYXNoIHN5bWJvbCwgZHJhd24gYXMgYSBQb2x5bGluZS5cbiAqIENhbiBhbHNvIGJlIHVzZWQgZm9yIGRvdHMsIGlmICdwaXhlbFNpemUnIG9wdGlvbiBpcyBnaXZlbiB0aGUgMCB2YWx1ZS5cbiAqL1xuTC5TeW1ib2wuRGFzaCA9IEwuQ2xhc3MuZXh0ZW5kKHtcbiAgb3B0aW9uczoge1xuICAgIHBpeGVsU2l6ZTogMTAsXG4gICAgcGF0aE9wdGlvbnM6IHt9LFxuICB9LFxuXG4gIGluaXRpYWxpemU6IGZ1bmN0aW9uIChvcHRpb25zKSB7XG4gICAgTC5VdGlsLnNldE9wdGlvbnModGhpcywgb3B0aW9ucyk7XG4gICAgdGhpcy5vcHRpb25zLnBhdGhPcHRpb25zLmNsaWNrYWJsZSA9IGZhbHNlO1xuICB9LFxuXG4gIGJ1aWxkU3ltYm9sOiBmdW5jdGlvbiAoZGlyUG9pbnQsIGxhdExuZ3MsIG1hcCwgaW5kZXgsIHRvdGFsKSB7XG4gICAgY29uc3Qgb3B0cyA9IHRoaXMub3B0aW9ucztcbiAgICBjb25zdCBkMnIgPSBNYXRoLlBJIC8gMTgwO1xuXG4gICAgLy8gZm9yIGEgZG90LCBub3RoaW5nIG1vcmUgdG8gY29tcHV0ZVxuICAgIGlmIChvcHRzLnBpeGVsU2l6ZSA8PSAxKSB7XG4gICAgICByZXR1cm4gTC5wb2x5bGluZShbZGlyUG9pbnQubGF0TG5nLCBkaXJQb2ludC5sYXRMbmddLCBvcHRzLnBhdGhPcHRpb25zKTtcbiAgICB9XG5cbiAgICBjb25zdCBtaWRQb2ludCA9IG1hcC5wcm9qZWN0KGRpclBvaW50LmxhdExuZyk7XG4gICAgY29uc3QgYW5nbGUgPSAtKGRpclBvaW50LmhlYWRpbmcgLSA5MCkgKiBkMnI7XG4gICAgY29uc3QgYSA9IEwucG9pbnQoXG4gICAgICBtaWRQb2ludC54ICsgKG9wdHMucGl4ZWxTaXplICogTWF0aC5jb3MoYW5nbGUgKyBNYXRoLlBJKSkgLyAyLFxuICAgICAgbWlkUG9pbnQueSArIChvcHRzLnBpeGVsU2l6ZSAqIE1hdGguc2luKGFuZ2xlKSkgLyAyLFxuICAgICk7XG4gICAgLy8gY29tcHV0ZSBzZWNvbmQgcG9pbnQgYnkgY2VudHJhbCBzeW1tZXRyeSB0byBhdm9pZCB1bmVjZXNzYXJ5IGNvcy9zaW5cbiAgICBjb25zdCBiID0gbWlkUG9pbnQuYWRkKG1pZFBvaW50LnN1YnRyYWN0KGEpKTtcbiAgICByZXR1cm4gTC5wb2x5bGluZShbbWFwLnVucHJvamVjdChhKSwgbWFwLnVucHJvamVjdChiKV0sIG9wdHMucGF0aE9wdGlvbnMpO1xuICB9LFxufSk7XG5cbkwuU3ltYm9sLmRhc2ggPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICByZXR1cm4gbmV3IEwuU3ltYm9sLkRhc2gob3B0aW9ucyk7XG59O1xuXG5MLlN5bWJvbC5BcnJvd0hlYWQgPSBMLkNsYXNzLmV4dGVuZCh7XG4gIG9wdGlvbnM6IHtcbiAgICBwb2x5Z29uOiB0cnVlLFxuICAgIHBpeGVsU2l6ZTogMTAsXG4gICAgaGVhZEFuZ2xlOiA2MCxcbiAgICBwYXRoT3B0aW9uczoge1xuICAgICAgc3Ryb2tlOiBmYWxzZSxcbiAgICAgIHdlaWdodDogMixcbiAgICB9LFxuICB9LFxuXG4gIGluaXRpYWxpemU6IGZ1bmN0aW9uIChvcHRpb25zKSB7XG4gICAgTC5VdGlsLnNldE9wdGlvbnModGhpcywgb3B0aW9ucyk7XG4gICAgdGhpcy5vcHRpb25zLnBhdGhPcHRpb25zLmNsaWNrYWJsZSA9IGZhbHNlO1xuICB9LFxuXG4gIGJ1aWxkU3ltYm9sOiBmdW5jdGlvbiAoZGlyUG9pbnQsIGxhdExuZ3MsIG1hcCwgaW5kZXgsIHRvdGFsKSB7XG4gICAgcmV0dXJuIHRoaXMub3B0aW9ucy5wb2x5Z29uXG4gICAgICA/IEwucG9seWdvbih0aGlzLl9idWlsZEFycm93UGF0aChkaXJQb2ludCwgbWFwKSwgdGhpcy5vcHRpb25zLnBhdGhPcHRpb25zKVxuICAgICAgOiBMLnBvbHlsaW5lKFxuICAgICAgICAgIHRoaXMuX2J1aWxkQXJyb3dQYXRoKGRpclBvaW50LCBtYXApLFxuICAgICAgICAgIHRoaXMub3B0aW9ucy5wYXRoT3B0aW9ucyxcbiAgICAgICAgKTtcbiAgfSxcblxuICBfYnVpbGRBcnJvd1BhdGg6IGZ1bmN0aW9uIChkaXJQb2ludCwgbWFwKSB7XG4gICAgY29uc3QgZDJyID0gTWF0aC5QSSAvIDE4MDtcbiAgICBjb25zdCB0aXBQb2ludCA9IG1hcC5wcm9qZWN0KGRpclBvaW50LmxhdExuZyk7XG4gICAgY29uc3QgZGlyZWN0aW9uID0gLShkaXJQb2ludC5oZWFkaW5nIC0gOTApICogZDJyO1xuICAgIGNvbnN0IHJhZGlhbkFycm93QW5nbGUgPSAodGhpcy5vcHRpb25zLmhlYWRBbmdsZSAvIDIpICogZDJyO1xuXG4gICAgY29uc3QgaGVhZEFuZ2xlMSA9IGRpcmVjdGlvbiArIHJhZGlhbkFycm93QW5nbGU7XG4gICAgY29uc3QgaGVhZEFuZ2xlMiA9IGRpcmVjdGlvbiAtIHJhZGlhbkFycm93QW5nbGU7XG4gICAgY29uc3QgYXJyb3dIZWFkMSA9IEwucG9pbnQoXG4gICAgICB0aXBQb2ludC54IC0gdGhpcy5vcHRpb25zLnBpeGVsU2l6ZSAqIE1hdGguY29zKGhlYWRBbmdsZTEpLFxuICAgICAgdGlwUG9pbnQueSArIHRoaXMub3B0aW9ucy5waXhlbFNpemUgKiBNYXRoLnNpbihoZWFkQW5nbGUxKSxcbiAgICApO1xuICAgIGNvbnN0IGFycm93SGVhZDIgPSBMLnBvaW50KFxuICAgICAgdGlwUG9pbnQueCAtIHRoaXMub3B0aW9ucy5waXhlbFNpemUgKiBNYXRoLmNvcyhoZWFkQW5nbGUyKSxcbiAgICAgIHRpcFBvaW50LnkgKyB0aGlzLm9wdGlvbnMucGl4ZWxTaXplICogTWF0aC5zaW4oaGVhZEFuZ2xlMiksXG4gICAgKTtcblxuICAgIHJldHVybiBbXG4gICAgICBtYXAudW5wcm9qZWN0KGFycm93SGVhZDEpLFxuICAgICAgZGlyUG9pbnQubGF0TG5nLFxuICAgICAgbWFwLnVucHJvamVjdChhcnJvd0hlYWQyKSxcbiAgICBdO1xuICB9LFxufSk7XG5cbkwuU3ltYm9sLmFycm93SGVhZCA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XG4gIHJldHVybiBuZXcgTC5TeW1ib2wuQXJyb3dIZWFkKG9wdGlvbnMpO1xufTtcblxuTC5TeW1ib2wuTWFya2VyID0gTC5DbGFzcy5leHRlbmQoe1xuICBvcHRpb25zOiB7XG4gICAgbWFya2VyT3B0aW9uczoge30sXG4gICAgcm90YXRlOiBmYWxzZSxcbiAgfSxcblxuICBpbml0aWFsaXplOiBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgIEwuVXRpbC5zZXRPcHRpb25zKHRoaXMsIG9wdGlvbnMpO1xuICAgIHRoaXMub3B0aW9ucy5tYXJrZXJPcHRpb25zLmNsaWNrYWJsZSA9IGZhbHNlO1xuICAgIHRoaXMub3B0aW9ucy5tYXJrZXJPcHRpb25zLmRyYWdnYWJsZSA9IGZhbHNlO1xuICB9LFxuXG4gIGJ1aWxkU3ltYm9sOiBmdW5jdGlvbiAoZGlyZWN0aW9uUG9pbnQsIGxhdExuZ3MsIG1hcCwgaW5kZXgsIHRvdGFsKSB7XG4gICAgaWYgKHRoaXMub3B0aW9ucy5yb3RhdGUpIHtcbiAgICAgIHRoaXMub3B0aW9ucy5tYXJrZXJPcHRpb25zLnJvdGF0aW9uQW5nbGUgPVxuICAgICAgICBkaXJlY3Rpb25Qb2ludC5oZWFkaW5nICsgKHRoaXMub3B0aW9ucy5hbmdsZUNvcnJlY3Rpb24gfHwgMCk7XG4gICAgfVxuICAgIHJldHVybiBMLm1hcmtlcihkaXJlY3Rpb25Qb2ludC5sYXRMbmcsIHRoaXMub3B0aW9ucy5tYXJrZXJPcHRpb25zKTtcbiAgfSxcbn0pO1xuXG5MLlN5bWJvbC5tYXJrZXIgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICByZXR1cm4gbmV3IEwuU3ltYm9sLk1hcmtlcihvcHRpb25zKTtcbn07XG5cbmNvbnN0IGlzQ29vcmQgPSAoYykgPT5cbiAgYyBpbnN0YW5jZW9mIEwuTGF0TG5nIHx8XG4gIChBcnJheS5pc0FycmF5KGMpICYmIGMubGVuZ3RoID09PSAyICYmIHR5cGVvZiBjWzBdID09PSAnbnVtYmVyJyk7XG5cbmNvbnN0IGlzQ29vcmRBcnJheSA9IChsbCkgPT4gQXJyYXkuaXNBcnJheShsbCkgJiYgaXNDb29yZChsbFswXSk7XG5cbkwuUG9seWxpbmVEZWNvcmF0b3IgPSBMLkZlYXR1cmVHcm91cC5leHRlbmQoe1xuICBvcHRpb25zOiB7XG4gICAgcGF0dGVybnM6IFtdLFxuICB9LFxuXG4gIGluaXRpYWxpemU6IGZ1bmN0aW9uIChwYXRocywgb3B0aW9ucykge1xuICAgIEwuRmVhdHVyZUdyb3VwLnByb3RvdHlwZS5pbml0aWFsaXplLmNhbGwodGhpcyk7XG4gICAgTC5VdGlsLnNldE9wdGlvbnModGhpcywgb3B0aW9ucyk7XG4gICAgdGhpcy5fbWFwID0gbnVsbDtcbiAgICB0aGlzLl9wYXRocyA9IHRoaXMuX2luaXRQYXRocyhwYXRocyk7XG4gICAgdGhpcy5fYm91bmRzID0gdGhpcy5faW5pdEJvdW5kcygpO1xuICAgIHRoaXMuX3BhdHRlcm5zID0gdGhpcy5faW5pdFBhdHRlcm5zKHRoaXMub3B0aW9ucy5wYXR0ZXJucyk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIERlYWxzIHdpdGggYWxsIHRoZSBkaWZmZXJlbnQgY2FzZXMuIGlucHV0IGNhbiBiZSBvbmUgb2YgdGhlc2UgdHlwZXM6XG4gICAqIGFycmF5IG9mIExhdExuZywgYXJyYXkgb2YgMi1udW1iZXIgYXJyYXlzLCBQb2x5bGluZSwgUG9seWdvbixcbiAgICogYXJyYXkgb2Ygb25lIG9mIHRoZSBwcmV2aW91cy5cbiAgICovXG4gIF9pbml0UGF0aHM6IGZ1bmN0aW9uIChpbnB1dCwgaXNQb2x5Z29uKSB7XG4gICAgaWYgKGlzQ29vcmRBcnJheShpbnB1dCkpIHtcbiAgICAgIC8vIExlYWZsZXQgUG9seWdvbnMgZG9uJ3QgbmVlZCB0aGUgZmlyc3QgcG9pbnQgdG8gYmUgcmVwZWF0ZWQsIGJ1dCB3ZSBkb1xuICAgICAgY29uc3QgY29vcmRzID0gaXNQb2x5Z29uID8gaW5wdXQuY29uY2F0KFtpbnB1dFswXV0pIDogaW5wdXQ7XG4gICAgICByZXR1cm4gW2Nvb3Jkc107XG4gICAgfVxuICAgIGlmIChpbnB1dCBpbnN0YW5jZW9mIEwuUG9seWxpbmUpIHtcbiAgICAgIC8vIHdlIG5lZWQgc29tZSByZWN1cnNpdml0eSB0byBzdXBwb3J0IG11bHRpLXBvbHkqXG4gICAgICByZXR1cm4gdGhpcy5faW5pdFBhdGhzKGlucHV0LmdldExhdExuZ3MoKSwgaW5wdXQgaW5zdGFuY2VvZiBMLlBvbHlnb24pO1xuICAgIH1cbiAgICBpZiAoQXJyYXkuaXNBcnJheShpbnB1dCkpIHtcbiAgICAgIC8vIGZsYXR0ZW4gZXZlcnl0aGluZywgd2UganVzdCBuZWVkIGNvb3JkaW5hdGUgbGlzdHMgdG8gYXBwbHkgcGF0dGVybnNcbiAgICAgIHJldHVybiBpbnB1dC5yZWR1Y2UoXG4gICAgICAgIChmbGF0QXJyYXksIHApID0+IGZsYXRBcnJheS5jb25jYXQodGhpcy5faW5pdFBhdGhzKHAsIGlzUG9seWdvbikpLFxuICAgICAgICBbXSxcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiBbXTtcbiAgfSxcblxuICAvLyBwYXJzZSBwYXR0ZXJuIGRlZmluaXRpb25zIGFuZCBwcmVjb21wdXRlIHNvbWUgdmFsdWVzXG4gIF9pbml0UGF0dGVybnM6IGZ1bmN0aW9uIChwYXR0ZXJuRGVmcykge1xuICAgIHJldHVybiBwYXR0ZXJuRGVmcy5tYXAodGhpcy5fcGFyc2VQYXR0ZXJuRGVmKTtcbiAgfSxcblxuICAvKipcbiAgICogQ2hhbmdlcyB0aGUgcGF0dGVybnMgdXNlZCBieSB0aGlzIGRlY29yYXRvclxuICAgKiBhbmQgcmVkcmF3cyB0aGUgbmV3IG9uZS5cbiAgICovXG4gIHNldFBhdHRlcm5zOiBmdW5jdGlvbiAocGF0dGVybnMpIHtcbiAgICB0aGlzLm9wdGlvbnMucGF0dGVybnMgPSBwYXR0ZXJucztcbiAgICB0aGlzLl9wYXR0ZXJucyA9IHRoaXMuX2luaXRQYXR0ZXJucyh0aGlzLm9wdGlvbnMucGF0dGVybnMpO1xuICAgIHRoaXMucmVkcmF3KCk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIENoYW5nZXMgdGhlIHBhdHRlcm5zIHVzZWQgYnkgdGhpcyBkZWNvcmF0b3JcbiAgICogYW5kIHJlZHJhd3MgdGhlIG5ldyBvbmUuXG4gICAqL1xuICBzZXRQYXRoczogZnVuY3Rpb24gKHBhdGhzKSB7XG4gICAgdGhpcy5fcGF0aHMgPSB0aGlzLl9pbml0UGF0aHMocGF0aHMpO1xuICAgIHRoaXMuX2JvdW5kcyA9IHRoaXMuX2luaXRCb3VuZHMoKTtcbiAgICB0aGlzLnJlZHJhdygpO1xuICB9LFxuXG4gIC8qKlxuICAgKiBQYXJzZSB0aGUgcGF0dGVybiBkZWZpbml0aW9uXG4gICAqL1xuICBfcGFyc2VQYXR0ZXJuRGVmOiBmdW5jdGlvbiAocGF0dGVybkRlZiwgbGF0TG5ncykge1xuICAgIHJldHVybiB7XG4gICAgICBzeW1ib2xGYWN0b3J5OiBwYXR0ZXJuRGVmLnN5bWJvbCxcbiAgICAgIC8vIFBhcnNlIG9mZnNldCBhbmQgcmVwZWF0IHZhbHVlcywgbWFuYWdpbmcgdGhlIHR3byBjYXNlczpcbiAgICAgIC8vIGFic29sdXRlIChpbiBwaXhlbHMpIG9yIHJlbGF0aXZlIChpbiBwZXJjZW50YWdlIG9mIHRoZSBwb2x5bGluZSBsZW5ndGgpXG4gICAgICBvZmZzZXQ6IHBhcnNlUmVsYXRpdmVPckFic29sdXRlVmFsdWUocGF0dGVybkRlZi5vZmZzZXQpLFxuICAgICAgZW5kT2Zmc2V0OiBwYXJzZVJlbGF0aXZlT3JBYnNvbHV0ZVZhbHVlKHBhdHRlcm5EZWYuZW5kT2Zmc2V0KSxcbiAgICAgIHJlcGVhdDogcGFyc2VSZWxhdGl2ZU9yQWJzb2x1dGVWYWx1ZShwYXR0ZXJuRGVmLnJlcGVhdCksXG4gICAgfTtcbiAgfSxcblxuICBvbkFkZDogZnVuY3Rpb24gKG1hcCkge1xuICAgIHRoaXMuX21hcCA9IG1hcDtcbiAgICB0aGlzLl9kcmF3KCk7XG4gICAgdGhpcy5fbWFwLm9uKCdtb3ZlZW5kJywgdGhpcy5yZWRyYXcsIHRoaXMpO1xuICB9LFxuXG4gIG9uUmVtb3ZlOiBmdW5jdGlvbiAobWFwKSB7XG4gICAgdGhpcy5fbWFwLm9mZignbW92ZWVuZCcsIHRoaXMucmVkcmF3LCB0aGlzKTtcbiAgICB0aGlzLl9tYXAgPSBudWxsO1xuICAgIEwuRmVhdHVyZUdyb3VwLnByb3RvdHlwZS5vblJlbW92ZS5jYWxsKHRoaXMsIG1hcCk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIEFzIHJlYWwgcGF0dGVybiBib3VuZHMgZGVwZW5kcyBvbiBtYXAgem9vbSBhbmQgYm91bmRzLFxuICAgKiB3ZSBqdXN0IGNvbXB1dGUgdGhlIHRvdGFsIGJvdW5kcyBvZiBhbGwgcGF0aHMgZGVjb3JhdGVkIGJ5IHRoaXMgaW5zdGFuY2UuXG4gICAqL1xuICBfaW5pdEJvdW5kczogZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IGFsbFBhdGhDb29yZHMgPSB0aGlzLl9wYXRocy5yZWR1Y2UoXG4gICAgICAoYWNjLCBwYXRoKSA9PiBhY2MuY29uY2F0KHBhdGgpLFxuICAgICAgW10sXG4gICAgKTtcbiAgICByZXR1cm4gTC5sYXRMbmdCb3VuZHMoYWxsUGF0aENvb3Jkcyk7XG4gIH0sXG5cbiAgZ2V0Qm91bmRzOiBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2JvdW5kcztcbiAgfSxcblxuICAvKipcbiAgICogUmV0dXJucyBhbiBhcnJheSBvZiBJTGF5ZXJzIG9iamVjdFxuICAgKi9cbiAgX2J1aWxkU3ltYm9sczogZnVuY3Rpb24gKGxhdExuZ3MsIHN5bWJvbEZhY3RvcnksIGRpcmVjdGlvblBvaW50cykge1xuICAgIHJldHVybiBkaXJlY3Rpb25Qb2ludHMubWFwKChkaXJlY3Rpb25Qb2ludCwgaSkgPT5cbiAgICAgIHN5bWJvbEZhY3RvcnkuYnVpbGRTeW1ib2woXG4gICAgICAgIGRpcmVjdGlvblBvaW50LFxuICAgICAgICBsYXRMbmdzLFxuICAgICAgICB0aGlzLl9tYXAsXG4gICAgICAgIGksXG4gICAgICAgIGRpcmVjdGlvblBvaW50cy5sZW5ndGgsXG4gICAgICApLFxuICAgICk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIENvbXB1dGUgcGFpcnMgb2YgTGF0TG5nIGFuZCBoZWFkaW5nIGFuZ2xlLFxuICAgKiB0aGF0IGRlZmluZSBwb3NpdGlvbnMgYW5kIGRpcmVjdGlvbnMgb2YgdGhlIHN5bWJvbHMgb24gdGhlIHBhdGhcbiAgICovXG4gIF9nZXREaXJlY3Rpb25Qb2ludHM6IGZ1bmN0aW9uIChsYXRMbmdzLCBwYXR0ZXJuKSB7XG4gICAgaWYgKGxhdExuZ3MubGVuZ3RoIDwgMikge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cbiAgICBjb25zdCBwYXRoQXNQb2ludHMgPSBsYXRMbmdzLm1hcCgobGF0TG5nKSA9PiB0aGlzLl9tYXAucHJvamVjdChsYXRMbmcpKTtcbiAgICByZXR1cm4gcHJvamVjdFBhdHRlcm5PblBvaW50UGF0aChwYXRoQXNQb2ludHMsIHBhdHRlcm4pLm1hcCgocG9pbnQpID0+ICh7XG4gICAgICBsYXRMbmc6IHRoaXMuX21hcC51bnByb2plY3QoTC5wb2ludChwb2ludC5wdCkpLFxuICAgICAgaGVhZGluZzogcG9pbnQuaGVhZGluZyxcbiAgICB9KSk7XG4gIH0sXG5cbiAgcmVkcmF3OiBmdW5jdGlvbiAoKSB7XG4gICAgaWYgKCF0aGlzLl9tYXApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5jbGVhckxheWVycygpO1xuICAgIHRoaXMuX2RyYXcoKTtcbiAgfSxcblxuICAvKipcbiAgICogUmV0dXJucyBhbGwgc3ltYm9scyBmb3IgYSBnaXZlbiBwYXR0ZXJuIGFzIGFuIGFycmF5IG9mIEZlYXR1cmVHcm91cFxuICAgKi9cbiAgX2dldFBhdHRlcm5MYXllcnM6IGZ1bmN0aW9uIChwYXR0ZXJuKSB7XG4gICAgY29uc3QgbWFwQm91bmRzID0gdGhpcy5fbWFwLmdldEJvdW5kcygpLnBhZCgwLjEpO1xuICAgIHJldHVybiB0aGlzLl9wYXRocy5tYXAoKHBhdGgpID0+IHtcbiAgICAgIGNvbnN0IGRpcmVjdGlvblBvaW50cyA9IHRoaXMuX2dldERpcmVjdGlvblBvaW50cyhwYXRoLCBwYXR0ZXJuKVxuICAgICAgICAvLyBmaWx0ZXIgb3V0IGludmlzaWJsZSBwb2ludHNcbiAgICAgICAgLmZpbHRlcigocG9pbnQpID0+IG1hcEJvdW5kcy5jb250YWlucyhwb2ludC5sYXRMbmcpKTtcbiAgICAgIHJldHVybiBMLmZlYXR1cmVHcm91cChcbiAgICAgICAgdGhpcy5fYnVpbGRTeW1ib2xzKHBhdGgsIHBhdHRlcm4uc3ltYm9sRmFjdG9yeSwgZGlyZWN0aW9uUG9pbnRzKSxcbiAgICAgICk7XG4gICAgfSk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIERyYXcgYWxsIHBhdHRlcm5zXG4gICAqL1xuICBfZHJhdzogZnVuY3Rpb24gKCkge1xuICAgIHRoaXMuX3BhdHRlcm5zXG4gICAgICAubWFwKChwYXR0ZXJuKSA9PiB0aGlzLl9nZXRQYXR0ZXJuTGF5ZXJzKHBhdHRlcm4pKVxuICAgICAgLmZvckVhY2goKGxheWVycykgPT4ge1xuICAgICAgICB0aGlzLmFkZExheWVyKEwuZmVhdHVyZUdyb3VwKGxheWVycykpO1xuICAgICAgfSk7XG4gIH0sXG59KTtcbi8qXG4gKiBBbGxvd3MgY29tcGFjdCBzeW50YXggdG8gYmUgdXNlZFxuICovXG5MLnBvbHlsaW5lRGVjb3JhdG9yID0gZnVuY3Rpb24gKHBhdGhzLCBvcHRpb25zKSB7XG4gIHJldHVybiBuZXcgTC5Qb2x5bGluZURlY29yYXRvcihwYXRocywgb3B0aW9ucyk7XG59O1xuXG4vLyBmdW5jdGlvbmFsIHJlLWltcGwgb2YgTC5Qb2ludC5kaXN0YW5jZVRvLFxuLy8gd2l0aCBubyBkZXBlbmRlbmN5IG9uIExlYWZsZXQgZm9yIGVhc2llciB0ZXN0aW5nXG5mdW5jdGlvbiBwb2ludERpc3RhbmNlKHB0QSwgcHRCKSB7XG4gIGNvbnN0IHggPSBwdEIueCAtIHB0QS54O1xuICBjb25zdCB5ID0gcHRCLnkgLSBwdEEueTtcbiAgcmV0dXJuIE1hdGguc3FydCh4ICogeCArIHkgKiB5KTtcbn1cblxuY29uc3QgY29tcHV0ZVNlZ21lbnRIZWFkaW5nID0gKGEsIGIpID0+XG4gICgoTWF0aC5hdGFuMihiLnkgLSBhLnksIGIueCAtIGEueCkgKiAxODApIC8gTWF0aC5QSSArIDkwICsgMzYwKSAlIDM2MDtcblxuY29uc3QgYXNSYXRpb1RvUGF0aExlbmd0aCA9ICh7IHZhbHVlLCBpc0luUGl4ZWxzIH0sIHRvdGFsUGF0aExlbmd0aCkgPT5cbiAgaXNJblBpeGVscyA/IHZhbHVlIC8gdG90YWxQYXRoTGVuZ3RoIDogdmFsdWU7XG5cbmZ1bmN0aW9uIHBhcnNlUmVsYXRpdmVPckFic29sdXRlVmFsdWUodmFsdWUpIHtcbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgJiYgdmFsdWUuaW5kZXhPZignJScpICE9PSAtMSkge1xuICAgIHJldHVybiB7XG4gICAgICB2YWx1ZTogcGFyc2VGbG9hdCh2YWx1ZSkgLyAxMDAsXG4gICAgICBpc0luUGl4ZWxzOiBmYWxzZSxcbiAgICB9O1xuICB9XG4gIGNvbnN0IHBhcnNlZFZhbHVlID0gdmFsdWUgPyBwYXJzZUZsb2F0KHZhbHVlKSA6IDA7XG4gIHJldHVybiB7XG4gICAgdmFsdWU6IHBhcnNlZFZhbHVlLFxuICAgIGlzSW5QaXhlbHM6IHBhcnNlZFZhbHVlID4gMCxcbiAgfTtcbn1cblxuY29uc3QgcG9pbnRzRXF1YWwgPSAoYSwgYikgPT4gYS54ID09PSBiLnggJiYgYS55ID09PSBiLnk7XG5cbmZ1bmN0aW9uIHBvaW50c1RvU2VnbWVudHMocHRzKSB7XG4gIHJldHVybiBwdHMucmVkdWNlKChzZWdtZW50cywgYiwgaWR4LCBwb2ludHMpID0+IHtcbiAgICAvLyB0aGlzIHRlc3Qgc2tpcHMgc2FtZSBhZGphY2VudCBwb2ludHNcbiAgICBpZiAoaWR4ID4gMCAmJiAhcG9pbnRzRXF1YWwoYiwgcG9pbnRzW2lkeCAtIDFdKSkge1xuICAgICAgY29uc3QgYSA9IHBvaW50c1tpZHggLSAxXTtcbiAgICAgIGNvbnN0IGRpc3RBID1cbiAgICAgICAgc2VnbWVudHMubGVuZ3RoID4gMCA/IHNlZ21lbnRzW3NlZ21lbnRzLmxlbmd0aCAtIDFdLmRpc3RCIDogMDtcbiAgICAgIGNvbnN0IGRpc3RBQiA9IHBvaW50RGlzdGFuY2UoYSwgYik7XG4gICAgICBzZWdtZW50cy5wdXNoKHtcbiAgICAgICAgYSxcbiAgICAgICAgYixcbiAgICAgICAgZGlzdEEsXG4gICAgICAgIGRpc3RCOiBkaXN0QSArIGRpc3RBQixcbiAgICAgICAgaGVhZGluZzogY29tcHV0ZVNlZ21lbnRIZWFkaW5nKGEsIGIpLFxuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBzZWdtZW50cztcbiAgfSwgW10pO1xufVxuXG5mdW5jdGlvbiBwcm9qZWN0UGF0dGVybk9uUG9pbnRQYXRoKHB0cywgcGF0dGVybikge1xuICAvLyAxLiBzcGxpdCB0aGUgcGF0aCBpbnRvIHNlZ21lbnQgaW5mb3NcbiAgY29uc3Qgc2VnbWVudHMgPSBwb2ludHNUb1NlZ21lbnRzKHB0cyk7XG4gIGNvbnN0IG5iU2VnbWVudHMgPSBzZWdtZW50cy5sZW5ndGg7XG4gIGlmIChuYlNlZ21lbnRzID09PSAwKSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgY29uc3QgdG90YWxQYXRoTGVuZ3RoID0gc2VnbWVudHNbbmJTZWdtZW50cyAtIDFdLmRpc3RCO1xuXG4gIGNvbnN0IG9mZnNldCA9IGFzUmF0aW9Ub1BhdGhMZW5ndGgocGF0dGVybi5vZmZzZXQsIHRvdGFsUGF0aExlbmd0aCk7XG4gIGNvbnN0IGVuZE9mZnNldCA9IGFzUmF0aW9Ub1BhdGhMZW5ndGgocGF0dGVybi5lbmRPZmZzZXQsIHRvdGFsUGF0aExlbmd0aCk7XG4gIGNvbnN0IHJlcGVhdCA9IGFzUmF0aW9Ub1BhdGhMZW5ndGgocGF0dGVybi5yZXBlYXQsIHRvdGFsUGF0aExlbmd0aCk7XG5cbiAgY29uc3QgcmVwZWF0SW50ZXJ2YWxQaXhlbHMgPSB0b3RhbFBhdGhMZW5ndGggKiByZXBlYXQ7XG4gIGNvbnN0IHN0YXJ0T2Zmc2V0UGl4ZWxzID0gb2Zmc2V0ID4gMCA/IHRvdGFsUGF0aExlbmd0aCAqIG9mZnNldCA6IDA7XG4gIGNvbnN0IGVuZE9mZnNldFBpeGVscyA9IGVuZE9mZnNldCA+IDAgPyB0b3RhbFBhdGhMZW5ndGggKiBlbmRPZmZzZXQgOiAwO1xuXG4gIC8vIDIuIGdlbmVyYXRlIHRoZSBwb3NpdGlvbnMgb2YgdGhlIHBhdHRlcm4gYXMgb2Zmc2V0cyBmcm9tIHRoZSBwYXRoIHN0YXJ0XG4gIGNvbnN0IHBvc2l0aW9uT2Zmc2V0cyA9IFtdO1xuICBsZXQgcG9zaXRpb25PZmZzZXQgPSBzdGFydE9mZnNldFBpeGVscztcbiAgZG8ge1xuICAgIHBvc2l0aW9uT2Zmc2V0cy5wdXNoKHBvc2l0aW9uT2Zmc2V0KTtcbiAgICBwb3NpdGlvbk9mZnNldCArPSByZXBlYXRJbnRlcnZhbFBpeGVscztcbiAgfSB3aGlsZSAoXG4gICAgcmVwZWF0SW50ZXJ2YWxQaXhlbHMgPiAwICYmXG4gICAgcG9zaXRpb25PZmZzZXQgPCB0b3RhbFBhdGhMZW5ndGggLSBlbmRPZmZzZXRQaXhlbHNcbiAgKTtcblxuICAvLyAzLiBwcm9qZWN0cyBvZmZzZXRzIHRvIHNlZ21lbnRzXG4gIGxldCBzZWdtZW50SW5kZXggPSAwO1xuICBsZXQgc2VnbWVudCA9IHNlZ21lbnRzWzBdO1xuICByZXR1cm4gcG9zaXRpb25PZmZzZXRzLm1hcCgocG9zaXRpb25PZmZzZXQpID0+IHtcbiAgICAvLyBmaW5kIHRoZSBzZWdtZW50IG1hdGNoaW5nIHRoZSBvZmZzZXQsXG4gICAgLy8gc3RhcnRpbmcgZnJvbSB0aGUgcHJldmlvdXMgb25lIGFzIG9mZnNldHMgYXJlIG9yZGVyZWRcbiAgICB3aGlsZSAocG9zaXRpb25PZmZzZXQgPiBzZWdtZW50LmRpc3RCICYmIHNlZ21lbnRJbmRleCA8IG5iU2VnbWVudHMgLSAxKSB7XG4gICAgICBzZWdtZW50SW5kZXgrKztcbiAgICAgIHNlZ21lbnQgPSBzZWdtZW50c1tzZWdtZW50SW5kZXhdO1xuICAgIH1cblxuICAgIGNvbnN0IHNlZ21lbnRSYXRpbyA9XG4gICAgICAocG9zaXRpb25PZmZzZXQgLSBzZWdtZW50LmRpc3RBKSAvIChzZWdtZW50LmRpc3RCIC0gc2VnbWVudC5kaXN0QSk7XG4gICAgcmV0dXJuIHtcbiAgICAgIHB0OiBpbnRlcnBvbGF0ZUJldHdlZW5Qb2ludHMoc2VnbWVudC5hLCBzZWdtZW50LmIsIHNlZ21lbnRSYXRpbyksXG4gICAgICBoZWFkaW5nOiBzZWdtZW50LmhlYWRpbmcsXG4gICAgfTtcbiAgfSk7XG59XG5cbi8qKlxuICogRmluZHMgdGhlIHBvaW50IHdoaWNoIGxpZXMgb24gdGhlIHNlZ21lbnQgZGVmaW5lZCBieSBwb2ludHMgQSBhbmQgQixcbiAqIGF0IHRoZSBnaXZlbiByYXRpbyBvZiB0aGUgZGlzdGFuY2UgZnJvbSBBIHRvIEIsIGJ5IGxpbmVhciBpbnRlcnBvbGF0aW9uLlxuICovXG5mdW5jdGlvbiBpbnRlcnBvbGF0ZUJldHdlZW5Qb2ludHMocHRBLCBwdEIsIHJhdGlvKSB7XG4gIGlmIChwdEIueCAhPT0gcHRBLngpIHtcbiAgICByZXR1cm4ge1xuICAgICAgeDogcHRBLnggKyByYXRpbyAqIChwdEIueCAtIHB0QS54KSxcbiAgICAgIHk6IHB0QS55ICsgcmF0aW8gKiAocHRCLnkgLSBwdEEueSksXG4gICAgfTtcbiAgfVxuICAvLyBzcGVjaWFsIGNhc2Ugd2hlcmUgcG9pbnRzIGxpZSBvbiB0aGUgc2FtZSB2ZXJ0aWNhbCBheGlzXG4gIHJldHVybiB7XG4gICAgeDogcHRBLngsXG4gICAgeTogcHRBLnkgKyAocHRCLnkgLSBwdEEueSkgKiByYXRpbyxcbiAgfTtcbn1cblxuZXhwb3J0IHtcbiAgcHJvamVjdFBhdHRlcm5PblBvaW50UGF0aCxcbiAgcGFyc2VSZWxhdGl2ZU9yQWJzb2x1dGVWYWx1ZSxcbiAgLy8gdGhlIGZvbGxvd2luZyBmdW5jdGlvbiBhcmUgZXhwb3J0ZWQgb25seSBmb3IgdW5pdCB0ZXN0aW5nIHB1cnBvc2VcbiAgY29tcHV0ZVNlZ21lbnRIZWFkaW5nLFxuICBhc1JhdGlvVG9QYXRoTGVuZ3RoLFxufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsSUFBQUEsUUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBRUFBLE9BQUE7QUFEQTs7QUFHQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQUMsZ0JBQUMsQ0FBQ0MsTUFBTSxHQUFHRCxnQkFBQyxDQUFDQyxNQUFNLElBQUksQ0FBQyxDQUFDOztBQUV6QjtBQUNBO0FBQ0E7QUFDQTtBQUNBRCxnQkFBQyxDQUFDQyxNQUFNLENBQUNDLElBQUksR0FBR0YsZ0JBQUMsQ0FBQ0csS0FBSyxDQUFDQyxNQUFNLENBQUM7RUFDN0JDLE9BQU8sRUFBRTtJQUNQQyxTQUFTLEVBQUUsRUFBRTtJQUNiQyxXQUFXLEVBQUUsQ0FBQztFQUNoQixDQUFDO0VBRURDLFVBQVUsRUFB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
|
package/lib/utilities/urls.js
CHANGED
|
@@ -82,13 +82,13 @@ var urls = function urls() {
|
|
|
82
82
|
},
|
|
83
83
|
wbeDashboard: {
|
|
84
84
|
trendGraph: {
|
|
85
|
-
url: "/api_ui/wbe_dashboard/
|
|
85
|
+
url: "/api_ui/wbe_dashboard/trend_graph/wa/".concat(param.waterAuthorityId, "?water_authority_id=").concat(param.waterAuthorityId)
|
|
86
86
|
},
|
|
87
87
|
govData: {
|
|
88
88
|
url: "https://data.gov.il/api/3/action/datastore_search?resource_id=bd7b8fa9-7120-4e8d-933f-a1449dae8dad&q=".concat(param.week)
|
|
89
89
|
},
|
|
90
90
|
summaryBar: {
|
|
91
|
-
url: "/api_ui/wbe_dashboard/
|
|
91
|
+
url: "/api_ui/wbe_dashboard/summary_bar/".concat(param.waterAuthorityId)
|
|
92
92
|
}
|
|
93
93
|
},
|
|
94
94
|
uploadLabResult: {
|
|
@@ -117,29 +117,6 @@ var urls = function urls() {
|
|
|
117
117
|
pollutionContributor: {
|
|
118
118
|
url: "/api_ui/overview/pollution_contributor/".concat(param.pointId)
|
|
119
119
|
}
|
|
120
|
-
},
|
|
121
|
-
dashboard: {
|
|
122
|
-
Utility: {
|
|
123
|
-
information: '/data/utility-information.json',
|
|
124
|
-
quality: '/data/quality-summary.json',
|
|
125
|
-
areas: '/areas/utilities.json',
|
|
126
|
-
factories: '/groups/utilities.json',
|
|
127
|
-
tabs: 'all',
|
|
128
|
-
mostSevereEvents: {
|
|
129
|
-
valuesFromKQL: "SeverityFilterItem IN ( 1 2 ) TimeFilterItem IN ( ".concat(param.period, " ) ORDER_BY severity")
|
|
130
|
-
}
|
|
131
|
-
},
|
|
132
|
-
Varea: {
|
|
133
|
-
information: "/data/varea/".concat(param.areaID, "/information.json"),
|
|
134
|
-
name: "/data/varea/".concat(param.areaID),
|
|
135
|
-
quality: "/data/varea/".concat(param.areaID, "/quality-summary.json"),
|
|
136
|
-
areas: "/varea/".concat(param.areaID, "/utilities.json"),
|
|
137
|
-
factories: "/groups/varea/".concat(param.areaID, "/utilities.json"),
|
|
138
|
-
tabs: [1, 2, 3],
|
|
139
|
-
mostSevereEvents: {
|
|
140
|
-
valuesFromKQL: "VareaFilterItem IN ( ".concat(param.areaID, " ) SeverityFilterItem IN ( 1 2 ) TimeFilterItem IN ( ").concat(param.period, " ) ORDER_BY severity")
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
120
|
}
|
|
144
121
|
};
|
|
145
122
|
};
|
|
@@ -152,4 +129,4 @@ var HTTP_METHODS = {
|
|
|
152
129
|
DELETE: 'DELETE'
|
|
153
130
|
};
|
|
154
131
|
exports.HTTP_METHODS = HTTP_METHODS;
|
|
155
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcXVlcnlTdHJpbmciLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9leGNsdWRlZCIsInF1ZXJ5VXJsIiwiX3JlZiIsInVybCIsInF1ZXJ5Iiwic29ydCIsInJlc3RRdWVyeSIsIl9vYmplY3RXaXRob3V0UHJvcGVydGllczIiLCJkZWZhdWx0Iiwic3RyIiwiY29uY2F0IiwicXVlcnlTdHJpbmciLCJzdHJpbmdpZnkiLCJtIiwic2xpY2UiLCJzb3J0U3RyIiwiZXhwb3J0cyIsInVybHMiLCJwYXJhbSIsImFyZ3VtZW50cyIsImxlbmd0aCIsInVuZGVmaW5lZCIsIm5vdGlmaWNhdGlvbnNQYWdlIiwiZ2V0Tm90aWZpY2F0aW9ucyIsIndhdGVyQXV0aG9yaXR5SWQiLCJkZWxldGVOb3RpZmljYXRpb24iLCJ1cGRhdGVOb3RpZmljYXRpb25zIiwic2FtcGxpbmdzUGFnZSIsImdldEFsbCIsImN1cnJlbnRQYWdlIiwib3JkZXJCeSIsIm9yZGVyRGlyZWN0aW9uIiwicGVyUGFnZSIsImxvY2FsZSIsImtxbCIsImRvd25sb2FkU2FtcGxpbmdzIiwiZG93bmxvYWRMYWJSZXN1bHRzIiwiZ2V0UG9pbnRzIiwiY3JlYXRlTmV3U2FtcGxpbmciLCJzYW1wbGluZ1Byb3BlcnRpZXNSb3V0ZSIsImlkIiwib3AiLCJzYW1wbGluZ3NMaXN0Um91dGUiLCJ1cGxvYWRMYWJSZXN1bHQiLCJ2aWV3TGFiUmVzdWx0Iiwic2FtcGxpbmdJZCIsInNhbXBsaW5nUHJvcGVydGllcyIsImZldGNoU2FtcGxpbmciLCJ1cGRhdGVTYW1wbGluZyIsImRlbGV0ZVNhbXBsaW5nIiwiY3JlYXRlU2FtcGxpbmciLCJnZXRQcmVzaWduZWRVcmwiLCJ3YmVEYXNoYm9hcmQiLCJ0cmVuZEdyYXBoIiwicGF0aG9nZW4iLCJnb3ZEYXRhIiwid2VlayIsInN1bW1hcnlCYXIiLCJ2YWxpZGF0ZSIsInVwbG9hZCIsImltcG9ydEdpc0ZpbGUiLCJnZXRBbGxGaWxlc0J5V2F0ZXJBdXRob3JpdHkiLCJpbXBvcnRHaXNQcm9jZXNzUGFnZSIsIm5ld0ZpbGUiLCJ2YWxpZGF0ZUZpbGUiLCJvdmVydmlldyIsInBvbGx1dGlvbkNvbnRyaWJ1dG9yIiwicG9pbnRJZCIsImRhc2hib2FyZCIsIlV0aWxpdHkiLCJpbmZvcm1hdGlvbiIsInF1YWxpdHkiLCJhcmVhcyIsImZhY3RvcmllcyIsInRhYnMiLCJtb3N0U2V2ZXJlRXZlbnRzIiwidmFsdWVzRnJvbUtRTCIsInBlcmlvZCIsIlZhcmVhIiwiYXJlYUlEIiwibmFtZSIsIkhUVFBfTUVUSE9EUyIsIlBPU1QiLCJQVVQiLCJQQVRDSCIsIkdFVCIsIkRFTEVURSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvdXJscy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcXVlcnlTdHJpbmcgZnJvbSAncXVlcnktc3RyaW5nJztcblxuZXhwb3J0IGNvbnN0IHF1ZXJ5VXJsID0gKHsgdXJsLCBxdWVyeSB9KSA9PiB7XG4gIGlmICghcXVlcnkpIHJldHVybiB1cmw7XG4gIGNvbnN0IHsgc29ydCwgLi4ucmVzdFF1ZXJ5IH0gPSBxdWVyeTtcbiAgY29uc3Qgc3RyID0gYCR7cXVlcnlTdHJpbmcuc3RyaW5naWZ5KHJlc3RRdWVyeSl9YDtcbiAgY29uc3QgbSA9IHVybC5zbGljZSgtMSkgPT09ICcmJyA/ICcnIDogJz8nO1xuICBjb25zdCBzb3J0U3RyID0gc29ydCA/IGAmc29ydD0ke3NvcnR9YCA6ICcnO1xuICByZXR1cm4gYCR7dXJsfSR7bX0ke3N0cn0ke3NvcnRTdHJ9YDtcbn07XG5cbmV4cG9ydCBjb25zdCB1cmxzID0gKHBhcmFtID0ge30pID0+ICh7XG4gIG5vdGlmaWNhdGlvbnNQYWdlOiB7XG4gICAgZ2V0Tm90aWZpY2F0aW9uczoge1xuICAgICAgdXJsOiBgL2FwaV91aS9ub3RpZmljYXRpb25fcGFnZS9pbmRleC5qc29uP3dhdGVyX2F1dGhvcml0eV9pZD0ke3BhcmFtLndhdGVyQXV0aG9yaXR5SWR9YCxcbiAgICB9LFxuICAgIGRlbGV0ZU5vdGlmaWNhdGlvbjoge1xuICAgICAgdXJsOiAnL3VzZXJfcHJlZmVyZW5jZXMvcmVtb3ZlX2FsZXJ0LmpzJyxcbiAgICB9LFxuICAgIHVwZGF0ZU5vdGlmaWNhdGlvbnM6IHtcbiAgICAgIHVybDogJy91c2VyX3ByZWZlcmVuY2VzL3VwZGF0ZV9hbGVydF9yZWdpc3RyYXRpb25zLmpzb24nLFxuICAgIH0sXG4gIH0sXG4gIHNhbXBsaW5nc1BhZ2U6IHtcbiAgICBnZXRBbGw6IHtcbiAgICAgIHVybDogYC9hcGlfdWkvc2FtcGxpbmdfcGFnZS9zYW1wbGluZ3NfZGF0YS5qc29uP3BhZ2U9JHtwYXJhbS5jdXJyZW50UGFnZX0mb3JkZXJfYnk9JHtwYXJhbS5vcmRlckJ5fS0ke3BhcmFtLm9yZGVyRGlyZWN0aW9ufSZwZXJfcGFnZT0ke3BhcmFtLnBlclBhZ2V9JndhdGVyX2F1dGhvcml0eV9pZD0ke3BhcmFtLndhdGVyQXV0aG9yaXR5SWR9JmxvY2FsZT0ke3BhcmFtLmxvY2FsZX0mdmFsdWVzRnJvbUtRTD0ke3BhcmFtLmtxbH1gLFxuICAgIH0sXG4gICAgZG93bmxvYWRTYW1wbGluZ3M6IHtcbiAgICAgIHVybDogYC9hcGlfdWkvc2FtcGxpbmdfcGFnZS9zYW1wbGluZ19yZXBvcnRfZGF0YS5jc3Y/b3JkZXJfYnk9JHtwYXJhbS5vcmRlckJ5fS0ke3BhcmFtLm9yZGVyRGlyZWN0aW9ufSZ3YXRlcl9hdXRob3JpdHlfaWQ9JHtwYXJhbS53YXRlckF1dGhvcml0eUlkfSZsb2NhbGU9JHtwYXJhbS5sb2NhbGV9JnZhbHVlc0Zyb21LUUw9JHtwYXJhbS5rcWx9YCxcbiAgICB9LFxuICAgIGRvd25sb2FkTGFiUmVzdWx0czoge1xuICAgICAgdXJsOiBgL2FwaV91aS9zYW1wbGluZ19wYWdlL2xhYl9yZXN1bHRfcmVwb3J0X2RhdGEuY3N2P29yZGVyX2J5PSR7cGFyYW0ub3JkZXJCeX0tJHtwYXJhbS5vcmRlckRpcmVjdGlvbn0md2F0ZXJfYXV0aG9yaXR5X2lkPSR7cGFyYW0ud2F0ZXJBdXRob3JpdHlJZH0mbG9jYWxlPSR7cGFyYW0ubG9jYWxlfSZ2YWx1ZXNGcm9tS1FMPSR7cGFyYW0ua3FsfWAsXG4gICAgfSxcbiAgICBnZXRQb2ludHM6IHtcbiAgICAgIHVybDogYC9hcGlfdWkvc2FtcGxpbmdfcGFnZS93YXRlcl9hdXRob3JpdHlfcG9pbnRzP2xvY2FsZT1lbiZ3YXRlcl9hdXRob3JpdHlfaWQ9JHtwYXJhbS53YXRlckF1dGhvcml0eUlkfWAsXG4gICAgfSxcbiAgICBjcmVhdGVOZXdTYW1wbGluZzoge1xuICAgICAgdXJsOiBgL2FwaV91aS9zYW1wbGluZ19wYWdlL2NyZWF0ZV9uZXdfc2FtcGxpbmc/d2F0ZXJfYXV0aG9yaXR5X2lkPSR7cGFyYW0ud2F0ZXJBdXRob3JpdHlJZH1gLFxuICAgIH0sXG4gICAgc2FtcGxpbmdQcm9wZXJ0aWVzUm91dGU6IHtcbiAgICAgIHVybDogYC9zYW1wbGluZy1wcm9wZXJ0aWVzLyR7cGFyYW0uaWR9P29wPSR7cGFyYW0ub3B9JmxvY2FsZT0ke3BhcmFtLmxvY2FsZX0md2F0ZXJfYXV0aG9yaXR5X2lkPSR7cGFyYW0ud2F0ZXJBdXRob3JpdHlJZH1gLFxuICAgIH0sXG4gICAgc2FtcGxpbmdzTGlzdFJvdXRlOiB7XG4gICAgICB1cmw6IGAvc2FtcGxpbmdzLWxpc3QvaW5kZXg/bG9jYWxlPSR7cGFyYW0ubG9jYWxlfSZ3YXRlcl9hdXRob3JpdHlfaWQ9JHtwYXJhbS53YXRlckF1dGhvcml0eUlkfWAsXG4gICAgfSxcbiAgICB1cGxvYWRMYWJSZXN1bHQ6IHtcbiAgICAgIHVybDogYC9zYW1wbGluZ3MtbGlzdC91cGxvYWRfbGFiX3Jlc3VsdD93YXRlcl9hdXRob3JpdHlfaWQ9JHtwYXJhbS53YXRlckF1dGhvcml0eUlkfSZsb2NhbGU9JHtwYXJhbS5sb2NhbGV9YCxcbiAgICB9LFxuICAgIHZpZXdMYWJSZXN1bHQ6IHtcbiAgICAgIHVybDogYC9hcGlfdWkvc2FtcGxpbmdfcGFnZS92aWV3X2xhYl9yZXN1bHQvJHtwYXJhbS5zYW1wbGluZ0lkfT93YXRlcl9hdXRob3JpdHlfaWQ9JHtwYXJhbS53YXRlckF1dGhvcml0eUlkfSZsb2NhbGU9JHtwYXJhbS5sb2NhbGV9YCxcbiAgICB9LFxuICB9LFxuICBzYW1wbGluZ1Byb3BlcnRpZXM6IHtcbiAgICBmZXRjaFNhbXBsaW5nOiB7XG4gICAgICB1cmw6IGAvYXBpX3VpL3NhbXBsaW5nX3BhZ2Uvc2FtcGxpbmdfcHJvcGVydGllcy8ke3BhcmFtLnNhbXBsaW5nSWR9YCxcbiAgICB9LFxuICAgIHVwZGF0ZVNhbXBsaW5nOiB7XG4gICAgICB1cmw6IGAvc2FtcGxpbmdzLyR7cGFyYW0uc2FtcGxpbmdJZH0/d2F0ZXJfYXV0aG9yaXR5X2lkPSR7cGFyYW0ud2F0ZXJBdXRob3JpdHlJZH1gLFxuICAgIH0sXG4gICAgZGVsZXRlU2FtcGxpbmc6IHtcbiAgICAgIHVybDogYC9hcGlfdWkvc2FtcGxpbmdfcGFnZS9kZWxldGVfc2FtcGxpbmcvJHtwYXJhbS5zYW1wbGluZ0lkfT93YXRlcl9hdXRob3JpdHlfaWQ9JHtwYXJhbS53YXRlckF1dGhvcml0eUlkfWAsXG4gICAgfSxcbiAgICBjcmVhdGVTYW1wbGluZzoge1xuICAgICAgdXJsOiBgL3NhbXBsaW5ncz93YXRlcl9hdXRob3JpdHlfaWQ9JHtwYXJhbS53YXRlckF1dGhvcml0eUlkfWAsXG4gICAgfSxcbiAgICBnZXRQcmVzaWduZWRVcmw6IHtcbiAgICAgIHVybDogYC9hcGlfdWkvc2FtcGxpbmdfcGFnZS9zYW1wbGluZ3MvJHtwYXJhbS5zYW1wbGluZ0lkfS9wcmVzaWduZWRfdXJsP3dhdGVyX2F1dGhvcml0eV9pZD0ke3BhcmFtLndhdGVyQXV0aG9yaXR5SWR9YCxcbiAgICB9LFxuICB9LFxuICB3YmVEYXNoYm9hcmQ6IHtcbiAgICB0cmVuZEdyYXBoOiB7XG4gICAgICB1cmw6IGAvYXBpX3VpL3diZV9kYXNoYm9hcmQvJHtwYXJhbS5wYXRob2dlbn0vdHJlbmRfZ3JhcGgvd2EvJHtwYXJhbS53YXRlckF1dGhvcml0eUlkfT93YXRlcl9hdXRob3JpdHlfaWQ9JHtwYXJhbS53YXRlckF1dGhvcml0eUlkfWAsXG4gICAgfSxcbiAgICBnb3ZEYXRhOiB7XG4gICAgICB1cmw6IGBodHRwczovL2RhdGEuZ292LmlsL2FwaS8zL2FjdGlvbi9kYXRhc3RvcmVfc2VhcmNoP3Jlc291cmNlX2lkPWJkN2I4ZmE5LTcxMjAtNGU4ZC05MzNmLWExNDQ5ZGFlOGRhZCZxPSR7cGFyYW0ud2Vla31gLFxuICAgIH0sXG4gICAgc3VtbWFyeUJhcjoge1xuICAgICAgdXJsOiBgL2FwaV91aS93YmVfZGFzaGJvYXJkLyR7cGFyYW0ucGF0aG9nZW59L3N1bW1hcnlfYmFyLyR7cGFyYW0ud2F0ZXJBdXRob3JpdHlJZH1gLFxuICAgIH0sXG4gIH0sXG4gIHVwbG9hZExhYlJlc3VsdDoge1xuICAgIHZhbGlkYXRlOiB7XG4gICAgICB1cmw6IGAvYXBpX3VpL2ltcG9ydF9sYWJfcmVzdWx0L3ZhbGlkYXRlP3dhdGVyX2F1dGhvcml0eV9pZD0ke3BhcmFtLndhdGVyQXV0aG9yaXR5SWR9JmxvY2FsZT0ke3BhcmFtLmxvY2FsZX1gLFxuICAgIH0sXG4gICAgdXBsb2FkOiB7XG4gICAgICB1cmw6IGAvYXBpX3VpL2ltcG9ydF9sYWJfcmVzdWx0L3VwbG9hZF9sYWJfcmVzdWx0P3dhdGVyX2F1dGhvcml0eV9pZD0ke3BhcmFtLndhdGVyQXV0aG9yaXR5SWR9YCxcbiAgICB9LFxuICB9LFxuICBpbXBvcnRHaXNGaWxlOiB7XG4gICAgZ2V0QWxsRmlsZXNCeVdhdGVyQXV0aG9yaXR5OiB7XG4gICAgICB1cmw6IGAvYXBpX3VpL2ltcG9ydF9naXMvd2F0ZXJfYXV0aG9yaXR5X2RhdGEvP3dhdGVyX2F1dGhvcml0eV9pZD0ke3BhcmFtLndhdGVyQXV0aG9yaXR5SWR9YCxcbiAgICB9LFxuICAgIGltcG9ydEdpc1Byb2Nlc3NQYWdlOiB7XG4gICAgICB1cmw6IGAvaW1wb3J0X2dpc19wcm9jZXNzL2luZGV4P3dhdGVyX2F1dGhvcml0eV9pZD0ke3BhcmFtLndhdGVyQXV0aG9yaXR5SWR9YCxcbiAgICB9LFxuICAgIG5ld0ZpbGU6IHtcbiAgICAgIHVybDogYC9hcGlfdWkvaW1wb3J0X2dpcy91cGxvYWRfZ2lzP3dhdGVyX2F1dGhvcml0eV9pZD0ke3BhcmFtLndhdGVyQXV0aG9yaXR5SWR9YCxcbiAgICB9LFxuICAgIHZhbGlkYXRlRmlsZToge1xuICAgICAgdXJsOiBgL2FwaV91aS9pbXBvcnRfZ2lzL3ZhbGlkYXRlX2dpcz93YXRlcl9hdXRob3JpdHlfaWQ9JHtwYXJhbS53YXRlckF1dGhvcml0eUlkfWAsXG4gICAgfSxcbiAgfSxcbiAgb3ZlcnZpZXc6IHtcbiAgICBwb2xsdXRpb25Db250cmlidXRvcjoge1xuICAgICAgdXJsOiBgL2FwaV91aS9vdmVydmlldy9wb2xsdXRpb25fY29udHJpYnV0b3IvJHtwYXJhbS5wb2ludElkfWAsXG4gICAgfSxcbiAgfSxcbiAgZGFzaGJvYXJkOiB7XG4gICAgVXRpbGl0eToge1xuICAgICAgaW5mb3JtYXRpb246ICcvZGF0YS91dGlsaXR5LWluZm9ybWF0aW9uLmpzb24nLFxuICAgICAgcXVhbGl0eTogJy9kYXRhL3F1YWxpdHktc3VtbWFyeS5qc29uJyxcbiAgICAgIGFyZWFzOiAnL2FyZWFzL3V0aWxpdGllcy5qc29uJyxcbiAgICAgIGZhY3RvcmllczogJy9ncm91cHMvdXRpbGl0aWVzLmpzb24nLFxuICAgICAgdGFiczogJ2FsbCcsXG4gICAgICBtb3N0U2V2ZXJlRXZlbnRzOiB7XG4gICAgICAgIHZhbHVlc0Zyb21LUUw6IGBTZXZlcml0eUZpbHRlckl0ZW0gSU4gKCAxIDIgKSBUaW1lRmlsdGVySXRlbSBJTiAoICR7cGFyYW0ucGVyaW9kfSApIE9SREVSX0JZIHNldmVyaXR5YCxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBWYXJlYToge1xuICAgICAgaW5mb3JtYXRpb246IGAvZGF0YS92YXJlYS8ke3BhcmFtLmFyZWFJRH0vaW5mb3JtYXRpb24uanNvbmAsXG4gICAgICBuYW1lOiBgL2RhdGEvdmFyZWEvJHtwYXJhbS5hcmVhSUR9YCxcbiAgICAgIHF1YWxpdHk6IGAvZGF0YS92YXJlYS8ke3BhcmFtLmFyZWFJRH0vcXVhbGl0eS1zdW1tYXJ5Lmpzb25gLFxuICAgICAgYXJlYXM6IGAvdmFyZWEvJHtwYXJhbS5hcmVhSUR9L3V0aWxpdGllcy5qc29uYCxcbiAgICAgIGZhY3RvcmllczogYC9ncm91cHMvdmFyZWEvJHtwYXJhbS5hcmVhSUR9L3V0aWxpdGllcy5qc29uYCxcbiAgICAgIHRhYnM6IFsxLCAyLCAzXSxcbiAgICAgIG1vc3RTZXZlcmVFdmVudHM6IHtcbiAgICAgICAgdmFsdWVzRnJvbUtRTDogYFZhcmVhRmlsdGVySXRlbSBJTiAoICR7cGFyYW0uYXJlYUlEfSApIFNldmVyaXR5RmlsdGVySXRlbSBJTiAoIDEgMiApIFRpbWVGaWx0ZXJJdGVtIElOICggJHtwYXJhbS5wZXJpb2R9ICkgT1JERVJfQlkgc2V2ZXJpdHlgLFxuICAgICAgfSxcbiAgICB9LFxuICB9LFxufSk7XG5cbmV4cG9ydCBjb25zdCBIVFRQX01FVEhPRFMgPSB7XG4gIFBPU1Q6ICdQT1NUJyxcbiAgUFVUOiAnUFVUJyxcbiAgUEFUQ0g6ICdQQVRDSCcsXG4gIEdFVDogJ0dFVCcsXG4gIERFTEVURTogJ0RFTEVURScsXG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBLElBQUFBLFlBQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUF1QyxJQUFBQyxTQUFBO0FBRWhDLElBQU1DLFFBQVEsR0FBRyxTQUFYQSxRQUFRQSxDQUFBQyxJQUFBLEVBQXVCO0VBQUEsSUFBakJDLEdBQUcsR0FBQUQsSUFBQSxDQUFIQyxHQUFHO0lBQUVDLEtBQUssR0FBQUYsSUFBQSxDQUFMRSxLQUFLO0VBQ25DLElBQUksQ0FBQ0EsS0FBSyxFQUFFLE9BQU9ELEdBQUc7RUFDdEIsSUFBUUUsSUFBSSxHQUFtQkQsS0FBSyxDQUE1QkMsSUFBSTtJQUFLQyxTQUFTLE9BQUFDLHlCQUFBLENBQUFDLE9BQUEsRUFBS0osS0FBSyxFQUFBSixTQUFBO0VBQ3BDLElBQU1TLEdBQUcsTUFBQUMs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
|
|
132
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcXVlcnlTdHJpbmciLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9leGNsdWRlZCIsInF1ZXJ5VXJsIiwiX3JlZiIsInVybCIsInF1ZXJ5Iiwic29ydCIsInJlc3RRdWVyeSIsIl9vYmplY3RXaXRob3V0UHJvcGVydGllczIiLCJkZWZhdWx0Iiwic3RyIiwiY29uY2F0IiwicXVlcnlTdHJpbmciLCJzdHJpbmdpZnkiLCJtIiwic2xpY2UiLCJzb3J0U3RyIiwiZXhwb3J0cyIsInVybHMiLCJwYXJhbSIsImFyZ3VtZW50cyIsImxlbmd0aCIsInVuZGVmaW5lZCIsIm5vdGlmaWNhdGlvbnNQYWdlIiwiZ2V0Tm90aWZpY2F0aW9ucyIsIndhdGVyQXV0aG9yaXR5SWQiLCJkZWxldGVOb3RpZmljYXRpb24iLCJ1cGRhdGVOb3RpZmljYXRpb25zIiwic2FtcGxpbmdzUGFnZSIsImdldEFsbCIsImN1cnJlbnRQYWdlIiwib3JkZXJCeSIsIm9yZGVyRGlyZWN0aW9uIiwicGVyUGFnZSIsImxvY2FsZSIsImtxbCIsImRvd25sb2FkU2FtcGxpbmdzIiwiZG93bmxvYWRMYWJSZXN1bHRzIiwiZ2V0UG9pbnRzIiwiY3JlYXRlTmV3U2FtcGxpbmciLCJzYW1wbGluZ1Byb3BlcnRpZXNSb3V0ZSIsImlkIiwib3AiLCJzYW1wbGluZ3NMaXN0Um91dGUiLCJ1cGxvYWRMYWJSZXN1bHQiLCJ2aWV3TGFiUmVzdWx0Iiwic2FtcGxpbmdJZCIsInNhbXBsaW5nUHJvcGVydGllcyIsImZldGNoU2FtcGxpbmciLCJ1cGRhdGVTYW1wbGluZyIsImRlbGV0ZVNhbXBsaW5nIiwiY3JlYXRlU2FtcGxpbmciLCJnZXRQcmVzaWduZWRVcmwiLCJ3YmVEYXNoYm9hcmQiLCJ0cmVuZEdyYXBoIiwiZ292RGF0YSIsIndlZWsiLCJzdW1tYXJ5QmFyIiwidmFsaWRhdGUiLCJ1cGxvYWQiLCJpbXBvcnRHaXNGaWxlIiwiZ2V0QWxsRmlsZXNCeVdhdGVyQXV0aG9yaXR5IiwiaW1wb3J0R2lzUHJvY2Vzc1BhZ2UiLCJuZXdGaWxlIiwidmFsaWRhdGVGaWxlIiwib3ZlcnZpZXciLCJwb2xsdXRpb25Db250cmlidXRvciIsInBvaW50SWQiLCJIVFRQX01FVEhPRFMiLCJQT1NUIiwiUFVUIiwiUEFUQ0giLCJHRVQiLCJERUxFVEUiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbGl0aWVzL3VybHMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHF1ZXJ5U3RyaW5nIGZyb20gJ3F1ZXJ5LXN0cmluZyc7XG5cbmV4cG9ydCBjb25zdCBxdWVyeVVybCA9ICh7IHVybCwgcXVlcnkgfSkgPT4ge1xuICBpZiAoIXF1ZXJ5KSByZXR1cm4gdXJsO1xuICBjb25zdCB7IHNvcnQsIC4uLnJlc3RRdWVyeSB9ID0gcXVlcnk7XG4gIGNvbnN0IHN0ciA9IGAke3F1ZXJ5U3RyaW5nLnN0cmluZ2lmeShyZXN0UXVlcnkpfWA7XG4gIGNvbnN0IG0gPSB1cmwuc2xpY2UoLTEpID09PSAnJicgPyAnJyA6ICc/JztcbiAgY29uc3Qgc29ydFN0ciA9IHNvcnQgPyBgJnNvcnQ9JHtzb3J0fWAgOiAnJztcbiAgcmV0dXJuIGAke3VybH0ke219JHtzdHJ9JHtzb3J0U3RyfWA7XG59O1xuXG5leHBvcnQgY29uc3QgdXJscyA9IChwYXJhbSA9IHt9KSA9PiAoe1xuICBub3RpZmljYXRpb25zUGFnZToge1xuICAgIGdldE5vdGlmaWNhdGlvbnM6IHtcbiAgICAgIHVybDogYC9hcGlfdWkvbm90aWZpY2F0aW9uX3BhZ2UvaW5kZXguanNvbj93YXRlcl9hdXRob3JpdHlfaWQ9JHtwYXJhbS53YXRlckF1dGhvcml0eUlkfWAsXG4gICAgfSxcbiAgICBkZWxldGVOb3RpZmljYXRpb246IHtcbiAgICAgIHVybDogJy91c2VyX3ByZWZlcmVuY2VzL3JlbW92ZV9hbGVydC5qcycsXG4gICAgfSxcbiAgICB1cGRhdGVOb3RpZmljYXRpb25zOiB7XG4gICAgICB1cmw6ICcvdXNlcl9wcmVmZXJlbmNlcy91cGRhdGVfYWxlcnRfcmVnaXN0cmF0aW9ucy5qc29uJyxcbiAgICB9LFxuICB9LFxuICBzYW1wbGluZ3NQYWdlOiB7XG4gICAgZ2V0QWxsOiB7XG4gICAgICB1cmw6IGAvYXBpX3VpL3NhbXBsaW5nX3BhZ2Uvc2FtcGxpbmdzX2RhdGEuanNvbj9wYWdlPSR7cGFyYW0uY3VycmVudFBhZ2V9Jm9yZGVyX2J5PSR7cGFyYW0ub3JkZXJCeX0tJHtwYXJhbS5vcmRlckRpcmVjdGlvbn0mcGVyX3BhZ2U9JHtwYXJhbS5wZXJQYWdlfSZ3YXRlcl9hdXRob3JpdHlfaWQ9JHtwYXJhbS53YXRlckF1dGhvcml0eUlkfSZsb2NhbGU9JHtwYXJhbS5sb2NhbGV9JnZhbHVlc0Zyb21LUUw9JHtwYXJhbS5rcWx9YCxcbiAgICB9LFxuICAgIGRvd25sb2FkU2FtcGxpbmdzOiB7XG4gICAgICB1cmw6IGAvYXBpX3VpL3NhbXBsaW5nX3BhZ2Uvc2FtcGxpbmdfcmVwb3J0X2RhdGEuY3N2P29yZGVyX2J5PSR7cGFyYW0ub3JkZXJCeX0tJHtwYXJhbS5vcmRlckRpcmVjdGlvbn0md2F0ZXJfYXV0aG9yaXR5X2lkPSR7cGFyYW0ud2F0ZXJBdXRob3JpdHlJZH0mbG9jYWxlPSR7cGFyYW0ubG9jYWxlfSZ2YWx1ZXNGcm9tS1FMPSR7cGFyYW0ua3FsfWAsXG4gICAgfSxcbiAgICBkb3dubG9hZExhYlJlc3VsdHM6IHtcbiAgICAgIHVybDogYC9hcGlfdWkvc2FtcGxpbmdfcGFnZS9sYWJfcmVzdWx0X3JlcG9ydF9kYXRhLmNzdj9vcmRlcl9ieT0ke3BhcmFtLm9yZGVyQnl9LSR7cGFyYW0ub3JkZXJEaXJlY3Rpb259JndhdGVyX2F1dGhvcml0eV9pZD0ke3BhcmFtLndhdGVyQXV0aG9yaXR5SWR9JmxvY2FsZT0ke3BhcmFtLmxvY2FsZX0mdmFsdWVzRnJvbUtRTD0ke3BhcmFtLmtxbH1gLFxuICAgIH0sXG4gICAgZ2V0UG9pbnRzOiB7XG4gICAgICB1cmw6IGAvYXBpX3VpL3NhbXBsaW5nX3BhZ2Uvd2F0ZXJfYXV0aG9yaXR5X3BvaW50cz9sb2NhbGU9ZW4md2F0ZXJfYXV0aG9yaXR5X2lkPSR7cGFyYW0ud2F0ZXJBdXRob3JpdHlJZH1gLFxuICAgIH0sXG4gICAgY3JlYXRlTmV3U2FtcGxpbmc6IHtcbiAgICAgIHVybDogYC9hcGlfdWkvc2FtcGxpbmdfcGFnZS9jcmVhdGVfbmV3X3NhbXBsaW5nP3dhdGVyX2F1dGhvcml0eV9pZD0ke3BhcmFtLndhdGVyQXV0aG9yaXR5SWR9YCxcbiAgICB9LFxuICAgIHNhbXBsaW5nUHJvcGVydGllc1JvdXRlOiB7XG4gICAgICB1cmw6IGAvc2FtcGxpbmctcHJvcGVydGllcy8ke3BhcmFtLmlkfT9vcD0ke3BhcmFtLm9wfSZsb2NhbGU9JHtwYXJhbS5sb2NhbGV9JndhdGVyX2F1dGhvcml0eV9pZD0ke3BhcmFtLndhdGVyQXV0aG9yaXR5SWR9YCxcbiAgICB9LFxuICAgIHNhbXBsaW5nc0xpc3RSb3V0ZToge1xuICAgICAgdXJsOiBgL3NhbXBsaW5ncy1saXN0L2luZGV4P2xvY2FsZT0ke3BhcmFtLmxvY2FsZX0md2F0ZXJfYXV0aG9yaXR5X2lkPSR7cGFyYW0ud2F0ZXJBdXRob3JpdHlJZH1gLFxuICAgIH0sXG4gICAgdXBsb2FkTGFiUmVzdWx0OiB7XG4gICAgICB1cmw6IGAvc2FtcGxpbmdzLWxpc3QvdXBsb2FkX2xhYl9yZXN1bHQ/d2F0ZXJfYXV0aG9yaXR5X2lkPSR7cGFyYW0ud2F0ZXJBdXRob3JpdHlJZH0mbG9jYWxlPSR7cGFyYW0ubG9jYWxlfWAsXG4gICAgfSxcbiAgICB2aWV3TGFiUmVzdWx0OiB7XG4gICAgICB1cmw6IGAvYXBpX3VpL3NhbXBsaW5nX3BhZ2Uvdmlld19sYWJfcmVzdWx0LyR7cGFyYW0uc2FtcGxpbmdJZH0/d2F0ZXJfYXV0aG9yaXR5X2lkPSR7cGFyYW0ud2F0ZXJBdXRob3JpdHlJZH0mbG9jYWxlPSR7cGFyYW0ubG9jYWxlfWAsXG4gICAgfSxcbiAgfSxcbiAgc2FtcGxpbmdQcm9wZXJ0aWVzOiB7XG4gICAgZmV0Y2hTYW1wbGluZzoge1xuICAgICAgdXJsOiBgL2FwaV91aS9zYW1wbGluZ19wYWdlL3NhbXBsaW5nX3Byb3BlcnRpZXMvJHtwYXJhbS5zYW1wbGluZ0lkfWAsXG4gICAgfSxcbiAgICB1cGRhdGVTYW1wbGluZzoge1xuICAgICAgdXJsOiBgL3NhbXBsaW5ncy8ke3BhcmFtLnNhbXBsaW5nSWR9P3dhdGVyX2F1dGhvcml0eV9pZD0ke3BhcmFtLndhdGVyQXV0aG9yaXR5SWR9YCxcbiAgICB9LFxuICAgIGRlbGV0ZVNhbXBsaW5nOiB7XG4gICAgICB1cmw6IGAvYXBpX3VpL3NhbXBsaW5nX3BhZ2UvZGVsZXRlX3NhbXBsaW5nLyR7cGFyYW0uc2FtcGxpbmdJZH0/d2F0ZXJfYXV0aG9yaXR5X2lkPSR7cGFyYW0ud2F0ZXJBdXRob3JpdHlJZH1gLFxuICAgIH0sXG4gICAgY3JlYXRlU2FtcGxpbmc6IHtcbiAgICAgIHVybDogYC9zYW1wbGluZ3M/d2F0ZXJfYXV0aG9yaXR5X2lkPSR7cGFyYW0ud2F0ZXJBdXRob3JpdHlJZH1gLFxuICAgIH0sXG4gICAgZ2V0UHJlc2lnbmVkVXJsOiB7XG4gICAgICB1cmw6IGAvYXBpX3VpL3NhbXBsaW5nX3BhZ2Uvc2FtcGxpbmdzLyR7cGFyYW0uc2FtcGxpbmdJZH0vcHJlc2lnbmVkX3VybD93YXRlcl9hdXRob3JpdHlfaWQ9JHtwYXJhbS53YXRlckF1dGhvcml0eUlkfWAsXG4gICAgfSxcbiAgfSxcbiAgd2JlRGFzaGJvYXJkOiB7XG4gICAgdHJlbmRHcmFwaDoge1xuICAgICAgdXJsOiBgL2FwaV91aS93YmVfZGFzaGJvYXJkL3RyZW5kX2dyYXBoL3dhLyR7cGFyYW0ud2F0ZXJBdXRob3JpdHlJZH0/d2F0ZXJfYXV0aG9yaXR5X2lkPSR7cGFyYW0ud2F0ZXJBdXRob3JpdHlJZH1gLFxuICAgIH0sXG4gICAgZ292RGF0YToge1xuICAgICAgdXJsOiBgaHR0cHM6Ly9kYXRhLmdvdi5pbC9hcGkvMy9hY3Rpb24vZGF0YXN0b3JlX3NlYXJjaD9yZXNvdXJjZV9pZD1iZDdiOGZhOS03MTIwLTRlOGQtOTMzZi1hMTQ0OWRhZThkYWQmcT0ke3BhcmFtLndlZWt9YCxcbiAgICB9LFxuICAgIHN1bW1hcnlCYXI6IHtcbiAgICAgIHVybDogYC9hcGlfdWkvd2JlX2Rhc2hib2FyZC9zdW1tYXJ5X2Jhci8ke3BhcmFtLndhdGVyQXV0aG9yaXR5SWR9YCxcbiAgICB9LFxuICB9LFxuICB1cGxvYWRMYWJSZXN1bHQ6IHtcbiAgICB2YWxpZGF0ZToge1xuICAgICAgdXJsOiBgL2FwaV91aS9pbXBvcnRfbGFiX3Jlc3VsdC92YWxpZGF0ZT93YXRlcl9hdXRob3JpdHlfaWQ9JHtwYXJhbS53YXRlckF1dGhvcml0eUlkfSZsb2NhbGU9JHtwYXJhbS5sb2NhbGV9YCxcbiAgICB9LFxuICAgIHVwbG9hZDoge1xuICAgICAgdXJsOiBgL2FwaV91aS9pbXBvcnRfbGFiX3Jlc3VsdC91cGxvYWRfbGFiX3Jlc3VsdD93YXRlcl9hdXRob3JpdHlfaWQ9JHtwYXJhbS53YXRlckF1dGhvcml0eUlkfWAsXG4gICAgfSxcbiAgfSxcbiAgaW1wb3J0R2lzRmlsZToge1xuICAgIGdldEFsbEZpbGVzQnlXYXRlckF1dGhvcml0eToge1xuICAgICAgdXJsOiBgL2FwaV91aS9pbXBvcnRfZ2lzL3dhdGVyX2F1dGhvcml0eV9kYXRhLz93YXRlcl9hdXRob3JpdHlfaWQ9JHtwYXJhbS53YXRlckF1dGhvcml0eUlkfWAsXG4gICAgfSxcbiAgICBpbXBvcnRHaXNQcm9jZXNzUGFnZToge1xuICAgICAgdXJsOiBgL2ltcG9ydF9naXNfcHJvY2Vzcy9pbmRleD93YXRlcl9hdXRob3JpdHlfaWQ9JHtwYXJhbS53YXRlckF1dGhvcml0eUlkfWAsXG4gICAgfSxcbiAgICBuZXdGaWxlOiB7XG4gICAgICB1cmw6IGAvYXBpX3VpL2ltcG9ydF9naXMvdXBsb2FkX2dpcz93YXRlcl9hdXRob3JpdHlfaWQ9JHtwYXJhbS53YXRlckF1dGhvcml0eUlkfWAsXG4gICAgfSxcbiAgICB2YWxpZGF0ZUZpbGU6IHtcbiAgICAgIHVybDogYC9hcGlfdWkvaW1wb3J0X2dpcy92YWxpZGF0ZV9naXM/d2F0ZXJfYXV0aG9yaXR5X2lkPSR7cGFyYW0ud2F0ZXJBdXRob3JpdHlJZH1gLFxuICAgIH0sXG4gIH0sXG4gIG92ZXJ2aWV3OiB7XG4gICAgcG9sbHV0aW9uQ29udHJpYnV0b3I6IHtcbiAgICAgIHVybDogYC9hcGlfdWkvb3ZlcnZpZXcvcG9sbHV0aW9uX2NvbnRyaWJ1dG9yLyR7cGFyYW0ucG9pbnRJZH1gLFxuICAgIH0sXG4gIH0sXG59KTtcblxuZXhwb3J0IGNvbnN0IEhUVFBfTUVUSE9EUyA9IHtcbiAgUE9TVDogJ1BPU1QnLFxuICBQVVQ6ICdQVVQnLFxuICBQQVRDSDogJ1BBVENIJyxcbiAgR0VUOiAnR0VUJyxcbiAgREVMRVRFOiAnREVMRVRFJyxcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUEsSUFBQUEsWUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQXVDLElBQUFDLFNBQUE7QUFFaEMsSUFBTUMsUUFBUSxHQUFHLFNBQVhBLFFBQVFBLENBQUFDLElBQUEsRUFBdUI7RUFBQSxJQUFqQkMsR0FBRyxHQUFBRCxJQUFBLENBQUhDLEdBQUc7SUFBRUMsS0FBSyxHQUFBRixJQUFBLENBQUxFLEtBQUs7RUFDbkMsSUFBSSxDQUFDQSxLQUFLLEVBQUUsT0FBT0QsR0FBRztFQUN0QixJQUFRRSxJQUFJLEdBQW1CRCxLQUFLLENBQTVCQyxJQUFJO0lBQUtDLFNBQVMsT0FBQUMseUJBQUEsQ0FBQUMsT0FBQSxFQUFLSixLQUFLLEVBQUFKLFNBQUE7RUFDcEMsSUFBTVMsR0FBRyxNQUFBQyxNQUFBLENBQU1DLG9CQUFXLENBQUNDLFNBQVMsQ0FBQ04sU0FBUyxDQUFDLENBQUU7RUFDakQsSUFBTU8sQ0FBQyxHQUFHVixHQUFHLENBQUNXLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsR0FBRyxFQUFFLEdBQUcsR0FBRztFQUMxQyxJQUFNQyxPQUFPLEdBQUdWLElBQUksWUFBQUssTUFBQSxDQUFZTCxJQUFJLElBQUssRUFBRTtFQUMzQyxVQUFBSyxNQUFBLENBQVVQLEdBQUcsRUFBQU8sTUFBQSxDQUFHRyxDQUFDLEVBQUFILE1BQUEsQ0FBR0QsR0FBRyxFQUFBQyxNQUFBLENBQUdLLE9BQU87QUFDbkMsQ0FBQztBQUFDQyxPQUFBLENBQUFmLFFBQUEsR0FBQUEsUUFBQTtBQUVLLElBQU1nQixJQUFJLEdBQUcsU0FBUEEsSUFBSUEsQ0FBQTtFQUFBLElBQUlDLEtBQUssR0FBQUMsU0FBQSxDQUFBQyxNQUFBLFFBQUFELFNBQUEsUUFBQUUsU0FBQSxHQUFBRixTQUFBLE1BQUcsQ0FBQyxDQUFDO0VBQUEsT0FBTTtJQUNuQ0csaUJBQWlCLEVBQUU7TUFDakJDLGdCQUFnQixFQUFFO1FBQ2hCcEIsR0FBRyw2REFBQU8sTUFBQSxDQUE2RFEsS0FBSyxDQUFDTSxnQkFBZ0I7TUFDeEYsQ0FBQztNQUNEQyxrQkFBa0IsRUFBRTtRQUNsQnRCLEdBQUcsRUFBRTtNQUNQLENBQUM7TUFDRHVCLG1CQUFtQixFQUFFO1FBQ25CdkIsR0FBRyxFQUFFO01BQ1A7SUFDRixDQUFDO0lBQ0R3QixhQUFhLEVBQUU7TUFDYkMsTUFBTSxFQUFFO1FBQ056QixHQUFHLG9EQUFBTyxNQUFBLENBQW9EUSxLQUFLLENBQUNXLFdBQVcsZ0JBQUFuQixNQUFBLENBQWFRLEtBQUssQ0FBQ1ksT0FBTyxPQUFBcEIsTUFBQSxDQUFJUSxLQUFLLENBQUNhLGNBQWMsZ0JBQUFyQixNQUFBLENBQWFRLEtBQUssQ0FBQ2MsT0FBTywwQkFBQXRCLE1BQUEsQ0FBdUJRLEtBQUssQ0FBQ00sZ0JBQWdCLGNBQUFkLE1BQUEsQ0FBV1EsS0FBSyxDQUFDZSxNQUFNLHFCQUFBdkIsTUFBQSxDQUFrQlEsS0FBSyxDQUFDZ0IsR0FBRztNQUNyUCxDQUFDO01BQ0RDLGlCQUFpQixFQUFFO1FBQ2pCaEMsR0FBRyw2REFBQU8sTUFBQSxDQUE2RFEsS0FBSyxDQUFDWSxPQUFPLE9BQUFwQixNQUFBLENBQUlRLEtBQUssQ0FBQ2EsY0FBYywwQkFBQXJCLE1BQUEsQ0FBdUJRLEtBQUssQ0FBQ00sZ0JBQWdCLGNBQUFkLE1BQUEsQ0FBV1EsS0FBSyxDQUFDZSxNQUFNLHFCQUFBdkIsTUFBQSxDQUFrQlEsS0FBSyxDQUFDZ0IsR0FBRztNQUN0TSxDQUFDO01BQ0RFLGtCQUFrQixFQUFFO1FBQ2xCakMsR0FBRywrREFBQU8sTUFBQSxDQUErRFEsS0FBSyxDQUFDWSxPQUFPLE9BQUFwQixNQUFBLENBQUlRLEtBQUssQ0FBQ2EsY0FBYywwQkFBQXJCLE1BQUEsQ0FBdUJRLEtBQUssQ0FBQ00sZ0JBQWdCLGNBQUFkLE1BQUEsQ0FBV1EsS0FBSyxDQUFDZSxNQUFNLHFCQUFBdkIsTUFBQSxDQUFrQlEsS0FBSyxDQUFDZ0IsR0FBRztNQUN4TSxDQUFDO01BQ0RHLFNBQVMsRUFBRTtRQUNUbEMsR0FBRywrRUFBQU8sTUFBQSxDQUErRVEsS0FBSyxDQUFDTSxnQkFBZ0I7TUFDMUcsQ0FBQztNQUNEYyxpQkFBaUIsRUFBRTtRQUNqQm5DLEdBQUcsa0VBQUFPLE1BQUEsQ0FBa0VRLEtBQUssQ0FBQ00sZ0JBQWdCO01BQzdGLENBQUM7TUFDRGUsdUJBQXVCLEVBQUU7UUFDdkJwQyxHQUFHLDBCQUFBTyxNQUFBLENBQTBCUSxLQUFLLENBQUNzQixFQUFFLFVBQUE5QixNQUFBLENBQU9RLEtBQUssQ0FBQ3VCLEVBQUUsY0FBQS9CLE1BQUEsQ0FBV1EsS0FBSyxDQUFDZSxNQUFNLDBCQUFBdkIsTUFBQSxDQUF1QlEsS0FBSyxDQUFDTSxnQkFBZ0I7TUFDMUgsQ0FBQztNQUNEa0Isa0JBQWtCLEVBQUU7UUFDbEJ2QyxHQUFHLGtDQUFBTyxNQUFBLENBQWtDUSxLQUFLLENBQUNlLE1BQU0sMEJBQUF2QixNQUFBLENBQXVCUSxLQUFLLENBQUNNLGdCQUFnQjtNQUNoRyxDQUFDO01BQ0RtQixlQUFlLEVBQUU7UUFDZnhDLEdBQUcsMERBQUFPLE1BQUEsQ0FBMERRLEtBQUssQ0FBQ00sZ0JBQWdCLGNBQUFkLE1BQUEsQ0FBV1EsS0FBSyxDQUFDZSxNQUFNO01BQzVHLENBQUM7TUFDRFcsYUFBYSxFQUFFO1FBQ2J6QyxHQUFHLDJDQUFBTyxNQUFBLENBQTJDUSxLQUFLLENBQUMyQixVQUFVLDBCQUFBbkMsTUFBQSxDQUF1QlEsS0FBSyxDQUFDTSxnQkFBZ0IsY0FBQWQsTUFBQSxDQUFXUSxLQUFLLENBQUNlLE1BQU07TUFDcEk7SUFDRixDQUFDO0lBQ0RhLGtCQUFrQixFQUFFO01BQ2xCQyxhQUFhLEVBQUU7UUFDYjVDLEdBQUcsK0NBQUFPLE1BQUEsQ0FBK0NRLEtBQUssQ0FBQzJCLFVBQVU7TUFDcEUsQ0FBQztNQUNERyxjQUFjLEVBQUU7UUFDZDdDLEdBQUcsZ0JBQUFPLE1BQUEsQ0FBZ0JRLEtBQUssQ0FBQzJCLFVBQVUsMEJBQUFuQyxNQUFBLENBQXVCUSxLQUFLLENBQUNNLGdCQUFnQjtNQUNsRixDQUFDO01BQ0R5QixjQUFjLEVBQUU7UUFDZDlDLEdBQUcsMkNBQUFPLE1BQUEsQ0FBMkNRLEtBQUssQ0FBQzJCLFVBQVUsMEJBQUFuQyxNQUFBLENBQXVCUSxLQUFLLENBQUNNLGdCQUFnQjtNQUM3RyxDQUFDO01BQ0QwQixjQUFjLEVBQUU7UUFDZC9DLEdBQUcsbUNBQUFPLE1BQUEsQ0FBbUNRLEtBQUssQ0FBQ00sZ0JBQWdCO01BQzlELENBQUM7TUFDRDJCLGVBQWUsRUFBRTtRQUNmaEQsR0FBRyxxQ0FBQU8sTUFBQSxDQUFxQ1EsS0FBSyxDQUFDMkIsVUFBVSx3Q0FBQW5DLE1BQUEsQ0FBcUNRLEtBQUssQ0FBQ00sZ0JBQWdCO01BQ3JIO0lBQ0YsQ0FBQztJQUNENEIsWUFBWSxFQUFFO01BQ1pDLFVBQVUsRUFBRTtRQUNWbEQsR0FBRywwQ0FBQU8sTUFBQSxDQUEwQ1EsS0FBSyxDQUFDTSxnQkFBZ0IsMEJBQUFkLE1BQUEsQ0FBdUJRLEtBQUssQ0FBQ00sZ0JBQWdCO01BQ2xILENBQUM7TUFDRDhCLE9BQU8sRUFBRTtRQUNQbkQsR0FBRywwR0FBQU8sTUFBQSxDQUEwR1EsS0FBSyxDQUFDcUMsSUFBSTtNQUN6SCxDQUFDO01BQ0RDLFVBQVUsRUFBRTtRQUNWckQsR0FBRyx1Q0FBQU8sTUFBQSxDQUF1Q1EsS0FBSyxDQUFDTSxnQkFBZ0I7TUFDbEU7SUFDRixDQUFDO0lBQ0RtQixlQUFlLEVBQUU7TUFDZmMsUUFBUSxFQUFFO1FBQ1J0RCxHQUFHLDJEQUFBTyxNQUFBLENBQTJEUSxLQUFLLENBQUNNLGdCQUFnQixjQUFBZCxNQUFBLENBQVdRLEtBQUssQ0FBQ2UsTUFBTTtNQUM3RyxDQUFDO01BQ0R5QixNQUFNLEVBQUU7UUFDTnZELEdBQUcsb0VBQUFPLE1BQUEsQ0FBb0VRLEtBQUssQ0FBQ00sZ0JBQWdCO01BQy9GO0lBQ0YsQ0FBQztJQUNEbUMsYUFBYSxFQUFFO01BQ2JDLDJCQUEyQixFQUFFO1FBQzNCekQsR0FBRyxpRUFBQU8sTUFBQSxDQUFpRVEsS0FBSyxDQUFDTSxnQkFBZ0I7TUFDNUYsQ0FBQztNQUNEcUMsb0JBQW9CLEVBQUU7UUFDcEIxRCxHQUFHLGtEQUFBTyxNQUFBLENBQWtEUSxLQUFLLENBQUNNLGdCQUFnQjtNQUM3RSxDQUFDO01BQ0RzQyxPQUFPLEVBQUU7UUFDUDNELEdBQUcsc0RBQUFPLE1BQUEsQ0FBc0RRLEtBQUssQ0FBQ00sZ0JBQWdCO01BQ2pGLENBQUM7TUFDRHVDLFlBQVksRUFBRTtRQUNaNUQsR0FBRyx3REFBQU8sTUFBQSxDQUF3RFEsS0FBSyxDQUFDTSxnQkFBZ0I7TUFDbkY7SUFDRixDQUFDO0lBQ0R3QyxRQUFRLEVBQUU7TUFDUkMsb0JBQW9CLEVBQUU7UUFDcEI5RCxHQUFHLDRDQUFBTyxNQUFBLENBQTRDUSxLQUFLLENBQUNnRCxPQUFPO01BQzlEO0lBQ0Y7RUFDRixDQUFDO0FBQUEsQ0FBQztBQUFDbEQsT0FBQSxDQUFBQyxJQUFBLEdBQUFBLElBQUE7QUFFSSxJQUFNa0QsWUFBWSxHQUFHO0VBQzFCQyxJQUFJLEVBQUUsTUFBTTtFQUNaQyxHQUFHLEVBQUUsS0FBSztFQUNWQyxLQUFLLEVBQUUsT0FBTztFQUNkQyxHQUFHLEVBQUUsS0FBSztFQUNWQyxNQUFNLEVBQUU7QUFDVixDQUFDO0FBQUN4RCxPQUFBLENBQUFtRCxZQUFBLEdBQUFBLFlBQUEifQ==
|
package/package.json
CHANGED
|
@@ -1,17 +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.information_titles = void 0;
|
|
8
|
-
var _i18n = _interopRequireDefault(require("utilities/i18n"));
|
|
9
|
-
var all_titles = [_i18n.default.t('dashboard_v2.utility_dashboard.topbar.utility-information.areas'), _i18n.default.t('dashboard_v2.utility_dashboard.topbar.utility-information.Factories'), _i18n.default.t('dashboard_v2.utility_dashboard.topbar.utility-information.wwtps')];
|
|
10
|
-
var Utilty = all_titles;
|
|
11
|
-
var Varea = [all_titles[0], all_titles[1]];
|
|
12
|
-
var information_titles = {
|
|
13
|
-
Utilty: Utilty,
|
|
14
|
-
Varea: Varea
|
|
15
|
-
};
|
|
16
|
-
exports.information_titles = information_titles;
|
|
17
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfaTE4biIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiYWxsX3RpdGxlcyIsImkxOG4iLCJ0IiwiVXRpbHR5IiwiVmFyZWEiLCJpbmZvcm1hdGlvbl90aXRsZXMiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3BhZ2VzL1V0aWxpdHlEYXNoYm9hcmRQYWdlL1RvcEJhci9jb25zdGFudHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGkxOG4gZnJvbSAnc3JjL3V0aWxpdGllcy9pMThuJztcblxuY29uc3QgYWxsX3RpdGxlcyA9IFtcbiAgaTE4bi50KCdkYXNoYm9hcmRfdjIudXRpbGl0eV9kYXNoYm9hcmQudG9wYmFyLnV0aWxpdHktaW5mb3JtYXRpb24uYXJlYXMnKSxcbiAgaTE4bi50KCdkYXNoYm9hcmRfdjIudXRpbGl0eV9kYXNoYm9hcmQudG9wYmFyLnV0aWxpdHktaW5mb3JtYXRpb24uRmFjdG9yaWVzJyksXG4gIGkxOG4udCgnZGFzaGJvYXJkX3YyLnV0aWxpdHlfZGFzaGJvYXJkLnRvcGJhci51dGlsaXR5LWluZm9ybWF0aW9uLnd3dHBzJyksXG5dO1xuXG5jb25zdCBVdGlsdHkgPSBhbGxfdGl0bGVzO1xuY29uc3QgVmFyZWEgPSBbYWxsX3RpdGxlc1swXSwgYWxsX3RpdGxlc1sxXV07XG5leHBvcnQgY29uc3QgaW5mb3JtYXRpb25fdGl0bGVzID0geyBVdGlsdHksIFZhcmVhIH07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQSxJQUFBQSxLQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFFQSxJQUFNQyxVQUFVLEdBQUcsQ0FDakJDLGFBQUksQ0FBQ0MsQ0FBQyxDQUFDLGlFQUFpRSxDQUFDLEVBQ3pFRCxhQUFJLENBQUNDLENBQUMsQ0FBQyxxRUFBcUUsQ0FBQyxFQUM3RUQsYUFBSSxDQUFDQyxDQUFDLENBQUMsaUVBQWlFLENBQUMsQ0FDMUU7QUFFRCxJQUFNQyxNQUFNLEdBQUdILFVBQVU7QUFDekIsSUFBTUksS0FBSyxHQUFHLENBQUNKLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRUEsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3JDLElBQU1LLGtCQUFrQixHQUFHO0VBQUVGLE1BQU0sRUFBTkEsTUFBTTtFQUFFQyxLQUFLLEVBQUxBO0FBQU0sQ0FBQztBQUFDRSxPQUFBLENBQUFELGtCQUFBLEdBQUFBLGtCQUFBIn0=
|