@kepler.gl/reducers 3.0.0 → 3.1.0-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.
- package/package.json +26 -20
- package/dist/combined-updaters.d.ts +0 -79
- package/dist/combined-updaters.js +0 -423
- package/dist/composer-helpers.d.ts +0 -24
- package/dist/composer-helpers.js +0 -122
- package/dist/composers.d.ts +0 -18
- package/dist/composers.js +0 -27
- package/dist/core.d.ts +0 -64
- package/dist/core.js +0 -139
- package/dist/data-utils.d.ts +0 -8
- package/dist/data-utils.js +0 -42
- package/dist/export-utils.d.ts +0 -21
- package/dist/export-utils.js +0 -104
- package/dist/index.d.ts +0 -35
- package/dist/index.js +0 -373
- package/dist/interaction-utils.d.ts +0 -31
- package/dist/interaction-utils.js +0 -129
- package/dist/layer-utils.d.ts +0 -95
- package/dist/layer-utils.js +0 -344
- package/dist/map-state-updaters.d.ts +0 -93
- package/dist/map-state-updaters.js +0 -489
- package/dist/map-state.d.ts +0 -75
- package/dist/map-state.js +0 -47
- package/dist/map-style-updaters.d.ts +0 -186
- package/dist/map-style-updaters.js +0 -737
- package/dist/map-style.d.ts +0 -4
- package/dist/map-style.js +0 -46
- package/dist/merger-handler.d.ts +0 -10
- package/dist/merger-handler.js +0 -123
- package/dist/middleware.d.ts +0 -8
- package/dist/middleware.js +0 -30
- package/dist/provider-state-updaters.d.ts +0 -35
- package/dist/provider-state-updaters.js +0 -422
- package/dist/provider-state.d.ts +0 -4
- package/dist/provider-state.js +0 -46
- package/dist/root.d.ts +0 -24
- package/dist/root.js +0 -229
- package/dist/ui-state-updaters.d.ts +0 -362
- package/dist/ui-state-updaters.js +0 -871
- package/dist/ui-state.d.ts +0 -3
- package/dist/ui-state.js +0 -48
- package/dist/vis-state-merger.d.ts +0 -140
- package/dist/vis-state-merger.js +0 -915
- package/dist/vis-state-selectors.d.ts +0 -2
- package/dist/vis-state-selectors.js +0 -37
- package/dist/vis-state-updaters.d.ts +0 -545
- package/dist/vis-state-updaters.js +0 -3154
- package/dist/vis-state.d.ts +0 -211
- package/dist/vis-state.js +0 -46
package/dist/layer-utils.js
DELETED
|
@@ -1,344 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
Object.defineProperty(exports, "__esModule", {
|
|
6
|
-
value: true
|
|
7
|
-
});
|
|
8
|
-
exports.findDefaultLayer = findDefaultLayer;
|
|
9
|
-
exports.calculateLayerData = calculateLayerData;
|
|
10
|
-
exports.getLayerHoverProp = getLayerHoverProp;
|
|
11
|
-
exports.renderDeckGlLayer = renderDeckGlLayer;
|
|
12
|
-
exports.isLayerRenderable = isLayerRenderable;
|
|
13
|
-
exports.isLayerVisible = isLayerVisible;
|
|
14
|
-
exports.prepareLayersForDeck = prepareLayersForDeck;
|
|
15
|
-
exports.prepareLayersToRender = prepareLayersToRender;
|
|
16
|
-
exports.getCustomDeckLayers = getCustomDeckLayers;
|
|
17
|
-
exports.bindLayerCallbacks = bindLayerCallbacks;
|
|
18
|
-
exports.computeDeckLayers = computeDeckLayers;
|
|
19
|
-
exports.getLayerOrderFromLayers = getLayerOrderFromLayers;
|
|
20
|
-
exports.reorderLayerOrder = reorderLayerOrder;
|
|
21
|
-
exports.addLayerToLayerOrder = addLayerToLayerOrder;
|
|
22
|
-
|
|
23
|
-
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
24
|
-
|
|
25
|
-
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
26
|
-
|
|
27
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
28
|
-
|
|
29
|
-
var _sortable = require("@dnd-kit/sortable");
|
|
30
|
-
|
|
31
|
-
var _constants = require("@kepler.gl/constants");
|
|
32
|
-
|
|
33
|
-
var _layers = require("@kepler.gl/layers");
|
|
34
|
-
|
|
35
|
-
var _utils = require("@kepler.gl/utils");
|
|
36
|
-
|
|
37
|
-
var _deckglLayers = require("@kepler.gl/deckgl-layers");
|
|
38
|
-
|
|
39
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
|
|
40
|
-
|
|
41
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
42
|
-
|
|
43
|
-
/**
|
|
44
|
-
* Find default layers from fields
|
|
45
|
-
*/
|
|
46
|
-
function findDefaultLayer(dataset, layerClasses) {
|
|
47
|
-
if (!dataset) {
|
|
48
|
-
return [];
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
var layerProps = Object.keys(layerClasses).reduce(function (previous, lc) {
|
|
52
|
-
var result = typeof layerClasses[lc].findDefaultLayerProps === 'function' ? layerClasses[lc].findDefaultLayerProps(dataset, previous) : {
|
|
53
|
-
props: []
|
|
54
|
-
};
|
|
55
|
-
var props = Array.isArray(result) ? result : result.props || [];
|
|
56
|
-
var foundLayers = result.foundLayers || previous;
|
|
57
|
-
return foundLayers.concat(props.map(function (p) {
|
|
58
|
-
return _objectSpread(_objectSpread({}, p), {}, {
|
|
59
|
-
type: lc,
|
|
60
|
-
dataId: dataset.id
|
|
61
|
-
});
|
|
62
|
-
}));
|
|
63
|
-
}, []); // go through all layerProps to create layer
|
|
64
|
-
|
|
65
|
-
return layerProps.map(function (props) {
|
|
66
|
-
// @ts-expect-error TODO: checking props.type !== null
|
|
67
|
-
var layer = new layerClasses[props.type](props);
|
|
68
|
-
return typeof layer.setInitialLayerConfig === 'function' && dataset.dataContainer ? layer.setInitialLayerConfig(dataset) : layer;
|
|
69
|
-
});
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
/**
|
|
73
|
-
* Calculate layer data based on layer type, col Config,
|
|
74
|
-
* return updated layer if colorDomain, dataMap has changed.
|
|
75
|
-
* Also, returns updated layer in case the input layer was in invalid state.
|
|
76
|
-
* Adds an error message to the layer in case of an exception.
|
|
77
|
-
*/
|
|
78
|
-
function calculateLayerData(layer, state, oldLayerData) {
|
|
79
|
-
var layerData;
|
|
80
|
-
|
|
81
|
-
try {
|
|
82
|
-
// Make sure the layer updates data after an error
|
|
83
|
-
if (!layer.isValid) {
|
|
84
|
-
layer._oldDataUpdateTriggers = undefined;
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
if (!layer.type || !layer.hasAllColumns() || !layer.config.dataId) {
|
|
88
|
-
return {
|
|
89
|
-
layer: layer,
|
|
90
|
-
layerData: {}
|
|
91
|
-
};
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
layerData = layer.formatLayerData(state.datasets, oldLayerData); // At this point the data for the layer is updated without errors
|
|
95
|
-
|
|
96
|
-
if (!layer.isValid) {
|
|
97
|
-
// Switch to visible after an error
|
|
98
|
-
layer = layer.updateLayerConfig({
|
|
99
|
-
isVisible: true
|
|
100
|
-
});
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
layer.isValid = true;
|
|
104
|
-
layer.errorMessage = null;
|
|
105
|
-
} catch (err) {
|
|
106
|
-
layer = layer.updateLayerConfig({
|
|
107
|
-
isVisible: false
|
|
108
|
-
});
|
|
109
|
-
layer.isValid = false;
|
|
110
|
-
layer.errorMessage = err instanceof Error && err.message ? err.message.substring(0, 100) : 'Unknown error';
|
|
111
|
-
layerData = {};
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
return {
|
|
115
|
-
layer: layer,
|
|
116
|
-
layerData: layerData
|
|
117
|
-
};
|
|
118
|
-
}
|
|
119
|
-
/**
|
|
120
|
-
* Calculate props passed to LayerHoverInfo
|
|
121
|
-
* @type {typeof import('./layer-utils').getLayerHoverProp}
|
|
122
|
-
*/
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
function getLayerHoverProp(_ref) {
|
|
126
|
-
var interactionConfig = _ref.interactionConfig,
|
|
127
|
-
hoverInfo = _ref.hoverInfo,
|
|
128
|
-
layers = _ref.layers,
|
|
129
|
-
layersToRender = _ref.layersToRender,
|
|
130
|
-
datasets = _ref.datasets;
|
|
131
|
-
|
|
132
|
-
if (interactionConfig.tooltip.enabled && hoverInfo && hoverInfo.picked) {
|
|
133
|
-
// if anything hovered
|
|
134
|
-
var object = hoverInfo.object,
|
|
135
|
-
overlay = hoverInfo.layer; // deckgl layer to kepler-gl layer
|
|
136
|
-
|
|
137
|
-
var layer = layers[overlay.props.idx]; // NOTE: for binary format GeojsonLayer, deck will return object=null but hoverInfo.index >= 0
|
|
138
|
-
|
|
139
|
-
if ((object || hoverInfo.index >= 0) && layer && layer.getHoverData && layersToRender[layer.id]) {
|
|
140
|
-
// if layer is visible and have hovered data
|
|
141
|
-
var dataId = layer.config.dataId;
|
|
142
|
-
|
|
143
|
-
if (!dataId) {
|
|
144
|
-
return null;
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
var _datasets$dataId = datasets[dataId],
|
|
148
|
-
dataContainer = _datasets$dataId.dataContainer,
|
|
149
|
-
fields = _datasets$dataId.fields;
|
|
150
|
-
var data = layer.getHoverData(object || hoverInfo.index, dataContainer, fields);
|
|
151
|
-
|
|
152
|
-
if (!data) {
|
|
153
|
-
return null;
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
var fieldsToShow = interactionConfig.tooltip.config.fieldsToShow[dataId];
|
|
157
|
-
return {
|
|
158
|
-
data: data,
|
|
159
|
-
fields: fields,
|
|
160
|
-
fieldsToShow: fieldsToShow,
|
|
161
|
-
layer: layer
|
|
162
|
-
};
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
return null;
|
|
167
|
-
}
|
|
168
|
-
|
|
169
|
-
function renderDeckGlLayer(props, layerCallbacks) {
|
|
170
|
-
var datasets = props.datasets,
|
|
171
|
-
layer = props.layer,
|
|
172
|
-
layerIndex = props.layerIndex,
|
|
173
|
-
data = props.data,
|
|
174
|
-
hoverInfo = props.hoverInfo,
|
|
175
|
-
clicked = props.clicked,
|
|
176
|
-
mapState = props.mapState,
|
|
177
|
-
interactionConfig = props.interactionConfig,
|
|
178
|
-
animationConfig = props.animationConfig,
|
|
179
|
-
mapLayers = props.mapLayers;
|
|
180
|
-
var dataset = datasets[layer.config.dataId];
|
|
181
|
-
|
|
182
|
-
var _ref2 = dataset || {},
|
|
183
|
-
gpuFilter = _ref2.gpuFilter;
|
|
184
|
-
|
|
185
|
-
var objectHovered = clicked || hoverInfo;
|
|
186
|
-
var visible = !mapLayers || mapLayers && mapLayers[layer.id]; // Layer is Layer class
|
|
187
|
-
|
|
188
|
-
return layer.renderLayer({
|
|
189
|
-
data: data,
|
|
190
|
-
gpuFilter: gpuFilter,
|
|
191
|
-
idx: layerIndex,
|
|
192
|
-
interactionConfig: interactionConfig,
|
|
193
|
-
layerCallbacks: layerCallbacks,
|
|
194
|
-
mapState: mapState,
|
|
195
|
-
animationConfig: animationConfig,
|
|
196
|
-
objectHovered: objectHovered,
|
|
197
|
-
visible: visible
|
|
198
|
-
});
|
|
199
|
-
}
|
|
200
|
-
|
|
201
|
-
function isLayerRenderable(layer, layerData) {
|
|
202
|
-
return layer.id !== _constants.GEOCODER_LAYER_ID && layer.shouldRenderLayer(layerData);
|
|
203
|
-
}
|
|
204
|
-
|
|
205
|
-
function isLayerVisible(layer, mapLayers) {
|
|
206
|
-
return layer.config.isVisible && ( // if layer.id is not in mapLayers, don't render it
|
|
207
|
-
!mapLayers || mapLayers && mapLayers[layer.id]);
|
|
208
|
-
} // Prepare a dict of layers rendered by the deck.gl
|
|
209
|
-
// Note, isVisible: false layer is passed to deck.gl here
|
|
210
|
-
// return {[id]: true \ false}
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
function prepareLayersForDeck(layers, layerData) {
|
|
214
|
-
return layers.reduce(function (accu, layer, idx) {
|
|
215
|
-
return _objectSpread(_objectSpread({}, accu), {}, (0, _defineProperty2["default"])({}, layer.id, isLayerRenderable(layer, layerData[idx]) && layer.overlayType === _layers.OVERLAY_TYPE_CONST.deckgl));
|
|
216
|
-
}, {});
|
|
217
|
-
} // Prepare a dict of rendered layers rendered in the map
|
|
218
|
-
// This includes only the visibile layers for single map view and split map view
|
|
219
|
-
// return {[id]: true \ false}
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
function prepareLayersToRender(layers, layerData, mapLayers) {
|
|
223
|
-
return layers.reduce(function (accu, layer, idx) {
|
|
224
|
-
return _objectSpread(_objectSpread({}, accu), {}, (0, _defineProperty2["default"])({}, layer.id, isLayerRenderable(layer, layerData[idx]) && isLayerVisible(layer, mapLayers)));
|
|
225
|
-
}, {});
|
|
226
|
-
}
|
|
227
|
-
|
|
228
|
-
function getCustomDeckLayers(deckGlProps) {
|
|
229
|
-
var bottomDeckLayers = Array.isArray(deckGlProps === null || deckGlProps === void 0 ? void 0 : deckGlProps.layers) ? deckGlProps === null || deckGlProps === void 0 ? void 0 : deckGlProps.layers : (0, _utils.isFunction)(deckGlProps === null || deckGlProps === void 0 ? void 0 : deckGlProps.layers) ? deckGlProps === null || deckGlProps === void 0 ? void 0 : deckGlProps.layers() : [];
|
|
230
|
-
var topDeckLayers = Array.isArray(deckGlProps === null || deckGlProps === void 0 ? void 0 : deckGlProps.topLayers) ? deckGlProps === null || deckGlProps === void 0 ? void 0 : deckGlProps.topLayers : (0, _utils.isFunction)(deckGlProps === null || deckGlProps === void 0 ? void 0 : deckGlProps.topLayers) ? deckGlProps === null || deckGlProps === void 0 ? void 0 : deckGlProps.topLayers() : [];
|
|
231
|
-
return [bottomDeckLayers, topDeckLayers];
|
|
232
|
-
}
|
|
233
|
-
|
|
234
|
-
function bindLayerCallbacks() {
|
|
235
|
-
var layerCallbacks = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
236
|
-
var idx = arguments.length > 1 ? arguments[1] : undefined;
|
|
237
|
-
return Object.keys(layerCallbacks).reduce(function (accu, key) {
|
|
238
|
-
return _objectSpread(_objectSpread({}, accu), {}, (0, _defineProperty2["default"])({}, key, function (val) {
|
|
239
|
-
return layerCallbacks[key](idx, val);
|
|
240
|
-
}));
|
|
241
|
-
}, {});
|
|
242
|
-
}
|
|
243
|
-
|
|
244
|
-
// eslint-disable-next-line complexity
|
|
245
|
-
function computeDeckLayers(_ref3, options, layerCallbacks, deckGlProps) {
|
|
246
|
-
var visState = _ref3.visState,
|
|
247
|
-
mapState = _ref3.mapState,
|
|
248
|
-
mapStyle = _ref3.mapStyle;
|
|
249
|
-
var datasets = visState.datasets,
|
|
250
|
-
layers = visState.layers,
|
|
251
|
-
layerOrder = visState.layerOrder,
|
|
252
|
-
layerData = visState.layerData,
|
|
253
|
-
hoverInfo = visState.hoverInfo,
|
|
254
|
-
clicked = visState.clicked,
|
|
255
|
-
interactionConfig = visState.interactionConfig,
|
|
256
|
-
animationConfig = visState.animationConfig,
|
|
257
|
-
splitMaps = visState.splitMaps;
|
|
258
|
-
|
|
259
|
-
var _ref4 = options || {},
|
|
260
|
-
mapIndex = _ref4.mapIndex,
|
|
261
|
-
mapboxApiAccessToken = _ref4.mapboxApiAccessToken,
|
|
262
|
-
mapboxApiUrl = _ref4.mapboxApiUrl,
|
|
263
|
-
primaryMap = _ref4.primaryMap,
|
|
264
|
-
layersForDeck = _ref4.layersForDeck,
|
|
265
|
-
editorInfo = _ref4.editorInfo;
|
|
266
|
-
|
|
267
|
-
var dataLayers = [];
|
|
268
|
-
|
|
269
|
-
if (layerData && layerData.length) {
|
|
270
|
-
var mapLayers = (0, _utils.getMapLayersFromSplitMaps)(splitMaps, mapIndex || 0);
|
|
271
|
-
var currentLayersForDeck = layersForDeck || prepareLayersForDeck(layers, layerData);
|
|
272
|
-
dataLayers = layerOrder.slice().reverse().filter(function (id) {
|
|
273
|
-
return currentLayersForDeck[id];
|
|
274
|
-
}).reduce(function (overlays, layerId) {
|
|
275
|
-
var layerIndex = layers.findIndex(function (_ref5) {
|
|
276
|
-
var id = _ref5.id;
|
|
277
|
-
return id === layerId;
|
|
278
|
-
});
|
|
279
|
-
var bindedLayerCallbacks = layerCallbacks ? bindLayerCallbacks(layerCallbacks, layerIndex) : {};
|
|
280
|
-
var layer = layers[layerIndex];
|
|
281
|
-
var data = layerData[layerIndex];
|
|
282
|
-
var layerOverlay = renderDeckGlLayer({
|
|
283
|
-
datasets: datasets,
|
|
284
|
-
layer: layer,
|
|
285
|
-
layerIndex: layerIndex,
|
|
286
|
-
data: data,
|
|
287
|
-
hoverInfo: hoverInfo,
|
|
288
|
-
clicked: clicked,
|
|
289
|
-
mapState: mapState,
|
|
290
|
-
interactionConfig: interactionConfig,
|
|
291
|
-
animationConfig: animationConfig,
|
|
292
|
-
mapLayers: mapLayers
|
|
293
|
-
}, bindedLayerCallbacks);
|
|
294
|
-
return overlays.concat(layerOverlay || []);
|
|
295
|
-
}, []);
|
|
296
|
-
}
|
|
297
|
-
|
|
298
|
-
if (!primaryMap) {
|
|
299
|
-
return dataLayers;
|
|
300
|
-
}
|
|
301
|
-
|
|
302
|
-
if (mapStyle !== null && mapStyle !== void 0 && mapStyle.visibleLayerGroups['3d building'] && primaryMap && mapboxApiAccessToken && mapboxApiUrl) {
|
|
303
|
-
dataLayers.push(new _deckglLayers.ThreeDBuildingLayer({
|
|
304
|
-
id: '_keplergl_3d-building',
|
|
305
|
-
mapboxApiAccessToken: mapboxApiAccessToken,
|
|
306
|
-
mapboxApiUrl: mapboxApiUrl,
|
|
307
|
-
threeDBuildingColor: mapStyle.threeDBuildingColor,
|
|
308
|
-
updateTriggers: {
|
|
309
|
-
getFillColor: mapStyle.threeDBuildingColor
|
|
310
|
-
}
|
|
311
|
-
}));
|
|
312
|
-
}
|
|
313
|
-
|
|
314
|
-
var _getCustomDeckLayers = getCustomDeckLayers(deckGlProps),
|
|
315
|
-
_getCustomDeckLayers2 = (0, _slicedToArray2["default"])(_getCustomDeckLayers, 2),
|
|
316
|
-
customBottomDeckLayers = _getCustomDeckLayers2[0],
|
|
317
|
-
customTopDeckLayers = _getCustomDeckLayers2[1];
|
|
318
|
-
|
|
319
|
-
var editorLayer = [];
|
|
320
|
-
|
|
321
|
-
if (editorInfo) {
|
|
322
|
-
editorLayer.push((0, _layers.getEditorLayer)(_objectSpread({}, editorInfo)));
|
|
323
|
-
}
|
|
324
|
-
|
|
325
|
-
return [].concat((0, _toConsumableArray2["default"])(customBottomDeckLayers), (0, _toConsumableArray2["default"])(dataLayers), (0, _toConsumableArray2["default"])(customTopDeckLayers), editorLayer);
|
|
326
|
-
}
|
|
327
|
-
|
|
328
|
-
function getLayerOrderFromLayers(layers) {
|
|
329
|
-
return layers.map(function (_ref6) {
|
|
330
|
-
var id = _ref6.id;
|
|
331
|
-
return id;
|
|
332
|
-
});
|
|
333
|
-
}
|
|
334
|
-
|
|
335
|
-
function reorderLayerOrder(layerOrder, originLayerId, destinationLayerId) {
|
|
336
|
-
var activeIndex = layerOrder.indexOf(originLayerId);
|
|
337
|
-
var overIndex = layerOrder.indexOf(destinationLayerId);
|
|
338
|
-
return (0, _sortable.arrayMove)(layerOrder, activeIndex, overIndex);
|
|
339
|
-
}
|
|
340
|
-
|
|
341
|
-
function addLayerToLayerOrder(layerOrder, layerId) {
|
|
342
|
-
return [layerId].concat((0, _toConsumableArray2["default"])(layerOrder));
|
|
343
|
-
}
|
|
344
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9sYXllci11dGlscy50cyJdLCJuYW1lcyI6WyJmaW5kRGVmYXVsdExheWVyIiwiZGF0YXNldCIsImxheWVyQ2xhc3NlcyIsImxheWVyUHJvcHMiLCJPYmplY3QiLCJrZXlzIiwicmVkdWNlIiwicHJldmlvdXMiLCJsYyIsInJlc3VsdCIsImZpbmREZWZhdWx0TGF5ZXJQcm9wcyIsInByb3BzIiwiQXJyYXkiLCJpc0FycmF5IiwiZm91bmRMYXllcnMiLCJjb25jYXQiLCJtYXAiLCJwIiwidHlwZSIsImRhdGFJZCIsImlkIiwibGF5ZXIiLCJzZXRJbml0aWFsTGF5ZXJDb25maWciLCJkYXRhQ29udGFpbmVyIiwiY2FsY3VsYXRlTGF5ZXJEYXRhIiwic3RhdGUiLCJvbGRMYXllckRhdGEiLCJsYXllckRhdGEiLCJpc1ZhbGlkIiwiX29sZERhdGFVcGRhdGVUcmlnZ2VycyIsInVuZGVmaW5lZCIsImhhc0FsbENvbHVtbnMiLCJjb25maWciLCJmb3JtYXRMYXllckRhdGEiLCJkYXRhc2V0cyIsInVwZGF0ZUxheWVyQ29uZmlnIiwiaXNWaXNpYmxlIiwiZXJyb3JNZXNzYWdlIiwiZXJyIiwiRXJyb3IiLCJtZXNzYWdlIiwic3Vic3RyaW5nIiwiZ2V0TGF5ZXJIb3ZlclByb3AiLCJpbnRlcmFjdGlvbkNvbmZpZyIsImhvdmVySW5mbyIsImxheWVycyIsImxheWVyc1RvUmVuZGVyIiwidG9vbHRpcCIsImVuYWJsZWQiLCJwaWNrZWQiLCJvYmplY3QiLCJvdmVybGF5IiwiaWR4IiwiaW5kZXgiLCJnZXRIb3ZlckRhdGEiLCJmaWVsZHMiLCJkYXRhIiwiZmllbGRzVG9TaG93IiwicmVuZGVyRGVja0dsTGF5ZXIiLCJsYXllckNhbGxiYWNrcyIsImxheWVySW5kZXgiLCJjbGlja2VkIiwibWFwU3RhdGUiLCJhbmltYXRpb25Db25maWciLCJtYXBMYXllcnMiLCJncHVGaWx0ZXIiLCJvYmplY3RIb3ZlcmVkIiwidmlzaWJsZSIsInJlbmRlckxheWVyIiwiaXNMYXllclJlbmRlcmFibGUiLCJHRU9DT0RFUl9MQVlFUl9JRCIsInNob3VsZFJlbmRlckxheWVyIiwiaXNMYXllclZpc2libGUiLCJwcmVwYXJlTGF5ZXJzRm9yRGVjayIsImFjY3UiLCJvdmVybGF5VHlwZSIsIk9WRVJMQVlfVFlQRV9DT05TVCIsImRlY2tnbCIsInByZXBhcmVMYXllcnNUb1JlbmRlciIsImdldEN1c3RvbURlY2tMYXllcnMiLCJkZWNrR2xQcm9wcyIsImJvdHRvbURlY2tMYXllcnMiLCJ0b3BEZWNrTGF5ZXJzIiwidG9wTGF5ZXJzIiwiYmluZExheWVyQ2FsbGJhY2tzIiwia2V5IiwidmFsIiwiY29tcHV0ZURlY2tMYXllcnMiLCJvcHRpb25zIiwidmlzU3RhdGUiLCJtYXBTdHlsZSIsImxheWVyT3JkZXIiLCJzcGxpdE1hcHMiLCJtYXBJbmRleCIsIm1hcGJveEFwaUFjY2Vzc1Rva2VuIiwibWFwYm94QXBpVXJsIiwicHJpbWFyeU1hcCIsImxheWVyc0ZvckRlY2siLCJlZGl0b3JJbmZvIiwiZGF0YUxheWVycyIsImxlbmd0aCIsImN1cnJlbnRMYXllcnNGb3JEZWNrIiwic2xpY2UiLCJyZXZlcnNlIiwiZmlsdGVyIiwib3ZlcmxheXMiLCJsYXllcklkIiwiZmluZEluZGV4IiwiYmluZGVkTGF5ZXJDYWxsYmFja3MiLCJsYXllck92ZXJsYXkiLCJ2aXNpYmxlTGF5ZXJHcm91cHMiLCJwdXNoIiwiVGhyZWVEQnVpbGRpbmdMYXllciIsInRocmVlREJ1aWxkaW5nQ29sb3IiLCJ1cGRhdGVUcmlnZ2VycyIsImdldEZpbGxDb2xvciIsImN1c3RvbUJvdHRvbURlY2tMYXllcnMiLCJjdXN0b21Ub3BEZWNrTGF5ZXJzIiwiZWRpdG9yTGF5ZXIiLCJnZXRMYXllck9yZGVyRnJvbUxheWVycyIsInJlb3JkZXJMYXllck9yZGVyIiwib3JpZ2luTGF5ZXJJZCIsImRlc3RpbmF0aW9uTGF5ZXJJZCIsImFjdGl2ZUluZGV4IiwiaW5kZXhPZiIsIm92ZXJJbmRleCIsImFkZExheWVyVG9MYXllck9y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QUFTQyx1QkFBVCxDQUF5RDFFLE1BQXpELEVBQWdGO0FBQ3JGLFNBQU9BLE1BQU0sQ0FBQzdCLEdBQVAsQ0FBVztBQUFBLFFBQUVJLEVBQUYsU0FBRUEsRUFBRjtBQUFBLFdBQVVBLEVBQVY7QUFBQSxHQUFYLENBQVA7QUFDRDs7QUFFTSxTQUFTb0csaUJBQVQsQ0FDTDdCLFVBREssRUFFTDhCLGFBRkssRUFHTEMsa0JBSEssRUFJbUI7QUFDeEIsTUFBTUMsV0FBVyxHQUFHaEMsVUFBVSxDQUFDaUMsT0FBWCxDQUFtQkgsYUFBbkIsQ0FBcEI7QUFDQSxNQUFNSSxTQUFTLEdBQUdsQyxVQUFVLENBQUNpQyxPQUFYLENBQW1CRixrQkFBbkIsQ0FBbEI7QUFFQSxTQUFPLHlCQUFVL0IsVUFBVixFQUFzQmdDLFdBQXRCLEVBQW1DRSxTQUFuQyxDQUFQO0FBQ0Q7O0FBRU0sU0FBU0Msb0JBQVQsQ0FDTG5DLFVBREssRUFFTGUsT0FGSyxFQUdLO0FBQ1YsVUFBUUEsT0FBUiw2Q0FBb0JmLFVBQXBCO0FBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQge2FycmF5TW92ZX0gZnJvbSAnQGRuZC1raXQvc29ydGFibGUnO1xuaW1wb3J0IHtHRU9DT0RFUl9MQVlFUl9JRH0gZnJvbSAnQGtlcGxlci5nbC9jb25zdGFudHMnO1xuaW1wb3J0IHtMYXllciBhcyBEZWNrTGF5ZXIsIExheWVyUHJvcHMgYXMgRGVja0xheWVyUHJvcHN9IGZyb20gJ0BkZWNrLmdsL2NvcmUvdHlwZWQnO1xuaW1wb3J0IHtcbiAgRmllbGQsXG4gIFRvb2x0aXBGaWVsZCxcbiAgQ29tcGFyZVR5cGUsXG4gIFNwbGl0TWFwTGF5ZXJzLFxuICBJbnRlcmFjdGlvbkNvbmZpZyxcbiAgRWRpdG9yLFxuICBGZWF0dXJlLFxuICBGZWF0dXJlU2VsZWN0aW9uQ29udGV4dCxcbiAgVmlld3BvcnRcbn0gZnJvbSAnQGtlcGxlci5nbC90eXBlcyc7XG5pbXBvcnQge1xuICBGaW5kRGVmYXVsdExheWVyUHJvcHNSZXR1cm5WYWx1ZSxcbiAgTGF5ZXIsXG4gIExheWVyQ2xhc3Nlc1R5cGUsXG4gIE9WRVJMQVlfVFlQRV9DT05TVCxcbiAgZ2V0RWRpdG9yTGF5ZXJcbn0gZnJvbSAnQGtlcGxlci5nbC9sYXllcnMnO1xuXG5pbXBvcnQgS2VwbGVyVGFibGUsIHtEYXRhc2V0c30gZnJvbSAnQGtlcGxlci5nbC90YWJsZSc7XG5pbXBvcnQge1Zpc1N0YXRlfSBmcm9tICdAa2VwbGVyLmdsL3NjaGVtYXMnO1xuaW1wb3J0IHtpc0Z1bmN0aW9uLCBnZXRNYXBMYXllcnNGcm9tU3BsaXRNYXBzLCBEYXRhUm93fSBmcm9tICdAa2VwbGVyLmdsL3V0aWxzJztcbmltcG9ydCB7VGhyZWVEQnVpbGRpbmdMYXllcn0gZnJvbSAnQGtlcGxlci5nbC9kZWNrZ2wtbGF5ZXJzJztcblxuZXhwb3J0IHR5cGUgTGF5ZXJzVG9SZW5kZXIgPSB7XG4gIFtsYXllcklkOiBzdHJpbmddOiBib29sZWFuO1xufTtcblxuZXhwb3J0IHR5cGUgQWdncmVnYXRpb25MYXllckhvdmVyRGF0YSA9IHtwb2ludHM6IGFueVtdOyBjb2xvclZhbHVlPzogYW55OyBlbGV2YXRpb25WYWx1ZT86IGFueX07XG5cbmV4cG9ydCB0eXBlIExheWVySG92ZXJQcm9wID0ge1xuICBkYXRhOiBEYXRhUm93IHwgQWdncmVnYXRpb25MYXllckhvdmVyRGF0YSB8IG51bGw7XG4gIGZpZWxkczogRmllbGRbXTtcbiAgZmllbGRzVG9TaG93OiBUb29sdGlwRmllbGRbXTtcbiAgbGF5ZXI6IExheWVyO1xuICBwcmltYXJ5RGF0YT86IERhdGFSb3cgfCBBZ2dyZWdhdGlvbkxheWVySG92ZXJEYXRhIHwgbnVsbDtcbiAgY29tcGFyZVR5cGU/OiBDb21wYXJlVHlwZTtcbn07XG5cbi8qKlxuICogRmluZCBkZWZhdWx0IGxheWVycyBmcm9tIGZpZWxkc1xuICovXG5leHBvcnQgZnVuY3Rpb24gZmluZERlZmF1bHRMYXllcihkYXRhc2V0OiBLZXBsZXJUYWJsZSwgbGF5ZXJDbGFzc2VzOiBMYXllckNsYXNzZXNUeXBlKTogTGF5ZXJbXSB7XG4gIGlmICghZGF0YXNldCkge1xuICAgIHJldHVybiBbXTtcbiAgfVxuICBjb25zdCBsYXllclByb3BzID0gKE9iamVjdC5rZXlzKGxheWVyQ2xhc3NlcykgYXMgQXJyYXk8a2V5b2YgTGF5ZXJDbGFzc2VzVHlwZT4pLnJlZHVjZShcbiAgICAocHJldmlvdXMsIGxjKSA9PiB7XG4gICAgICBjb25zdCByZXN1bHQ6IEZpbmREZWZhdWx0TGF5ZXJQcm9wc1JldHVyblZhbHVlID1cbiAgICAgICAgdHlwZW9mIGxheWVyQ2xhc3Nlc1tsY10uZmluZERlZmF1bHRMYXllclByb3BzID09PSAnZnVuY3Rpb24nXG4gICAgICAgICAgPyBsYXllckNsYXNzZXNbbGNdLmZpbmREZWZhdWx0TGF5ZXJQcm9wcyhkYXRhc2V0LCBwcmV2aW91cylcbiAgICAgICAgICA6IHtwcm9wczogW119O1xuXG4gICAgICBjb25zdCBwcm9wcyA9IEFycmF5LmlzQXJyYXkocmVzdWx0KSA/IHJlc3VsdCA6IHJlc3VsdC5wcm9wcyB8fCBbXTtcbiAgICAgIGNvbnN0IGZvdW5kTGF5ZXJzID0gcmVzdWx0LmZvdW5kTGF5ZXJzIHx8IHByZXZpb3VzO1xuXG4gICAgICByZXR1cm4gZm91bmRMYXllcnMuY29uY2F0KFxuICAgICAgICBwcm9wcy5tYXAocCA9PiAoe1xuICAgICAgICAgIC4uLnAsXG4gICAgICAgICAgdHlwZTogbGMsXG4gICAgICAgICAgZGF0YUlkOiBkYXRhc2V0LmlkXG4gICAgICAgIH0pKVxuICAgICAgKTtcbiAgICB9LFxuICAgIFtdIGFzIExheWVyQ2xhc3Nlc1R5cGVba2V5b2YgTGF5ZXJDbGFzc2VzVHlwZV1bXVxuICApO1xuXG4gIC8vIGdvIHRocm91Z2ggYWxsIGxheWVyUHJvcHMgdG8gY3JlYXRlIGxheWVyXG4gIHJldHVybiBsYXllclByb3BzLm1hcChwcm9wcyA9PiB7XG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvciBUT0RPOiBjaGVja2luZyBwcm9wcy50eXBlICE9PSBudWxsXG4gICAgY29uc3QgbGF5ZXIgPSBuZXcgbGF5ZXJDbGFzc2VzW3Byb3BzLnR5cGVdKHByb3BzKTtcbiAgICByZXR1cm4gdHlwZW9mIGxheWVyLnNldEluaXRpYWxMYXllckNvbmZpZyA9PT0gJ2Z1bmN0aW9uJyAmJiBkYXRhc2V0LmRhdGFDb250YWluZXJcbiAgICAgID8gbGF5ZXIuc2V0SW5pdGlhbExheWVyQ29uZmlnKGRhdGFzZXQpXG4gICAgICA6IGxheWVyO1xuICB9KTtcbn1cblxudHlwZSBNaW5WaXNTdGF0ZUZvckxheWVyRGF0YSA9IHtcbiAgZGF0YXNldHM6IFZpc1N0YXRlWydkYXRhc2V0cyddO1xuICBhbmltYXRpb25Db25maWc6IFZpc1N0YXRlWydhbmltYXRpb25Db25maWcnXTtcbn07XG5cbi8qKlxuICogQ2FsY3VsYXRlIGxheWVyIGRhdGEgYmFzZWQgb24gbGF5ZXIgdHlwZSwgY29sIENvbmZpZyxcbiAqIHJldHVybiB1cGRhdGVkIGxheWVyIGlmIGNvbG9yRG9tYWluLCBkYXRhTWFwIGhhcyBjaGFuZ2VkLlxuICogQWxzbywgcmV0dXJucyB1cGRhdGVkIGxheWVyIGluIGNhc2UgdGhlIGlucHV0IGxheWVyIHdhcyBpbiBpbnZhbGlkIHN0YXRlLlxuICogQWRkcyBhbiBlcnJvciBtZXNzYWdlIHRvIHRoZSBsYXllciBpbiBjYXNlIG9mIGFuIGV4Y2VwdGlvbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNhbGN1bGF0ZUxheWVyRGF0YTxTIGV4dGVuZHMgTWluVmlzU3RhdGVGb3JMYXllckRhdGE+KFxuICBsYXllcjogTGF5ZXIsXG4gIHN0YXRlOiBTLFxuICBvbGRMYXllckRhdGE/OiBhbnlcbik6IHtcbiAgbGF5ZXJEYXRhOiBhbnk7XG4gIGxheWVyOiBMYXllcjtcbn0ge1xuICBsZXQgbGF5ZXJEYXRhO1xuICB0cnkge1xuICAgIC8vIE1ha2Ugc3VyZSB0aGUgbGF5ZXIgdXBkYXRlcyBkYXRhIGFmdGVyIGFuIGVycm9yXG4gICAgaWYgKCFsYXllci5pc1ZhbGlkKSB7XG4gICAgICBsYXllci5fb2xkRGF0YVVwZGF0ZVRyaWdnZXJzID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGlmICghbGF5ZXIudHlwZSB8fCAhbGF5ZXIuaGFzQWxsQ29sdW1ucygpIHx8ICFsYXllci5jb25maWcuZGF0YUlkKSB7XG4gICAgICByZXR1cm4ge2xheWVyLCBsYXllckRhdGE6IHt9fTtcbiAgICB9XG5cbiAgICBsYXllckRhdGEgPSBsYXllci5mb3JtYXRMYXllckRhdGEoc3RhdGUuZGF0YXNldHMsIG9sZExheWVyRGF0YSk7XG5cbiAgICAvLyBBdCB0aGlzIHBvaW50IHRoZSBkYXRhIGZvciB0aGUgbGF5ZXIgaXMgdXBkYXRlZCB3aXRob3V0IGVycm9yc1xuICAgIGlmICghbGF5ZXIuaXNWYWxpZCkge1xuICAgICAgLy8gU3dpdGNoIHRvIHZpc2libGUgYWZ0ZXIgYW4gZXJyb3JcbiAgICAgIGxheWVyID0gbGF5ZXIudXBkYXRlTGF5ZXJDb25maWcoe1xuICAgICAgICBpc1Zpc2libGU6IHRydWVcbiAgICAgIH0pO1xuICAgIH1cbiAgICBsYXllci5pc1ZhbGlkID0gdHJ1ZTtcbiAgICBsYXllci5lcnJvck1lc3NhZ2UgPSBudWxsO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICBsYXllciA9IGxheWVyLnVwZGF0ZUxheWVyQ29uZmlnKHtcbiAgICAgIGlzVmlzaWJsZTogZmFsc2VcbiAgICB9KTtcbiAgICBsYXllci5pc1ZhbGlkID0gZmFsc2U7XG5cbiAgICBsYXllci5lcnJvck1lc3NhZ2UgPVxuICAgICAgZXJyIGluc3RhbmNlb2YgRXJyb3IgJiYgZXJyLm1lc3NhZ2UgPyBlcnIubWVzc2FnZS5zdWJzdHJpbmcoMCwgMTAwKSA6ICdVbmtub3duIGVycm9yJztcblxuICAgIGxheWVyRGF0YSA9IHt9O1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBsYXllcixcbiAgICBsYXllckRhdGFcbiAgfTtcbn1cblxuLyoqXG4gKiBDYWxjdWxhdGUgcHJvcHMgcGFzc2VkIHRvIExheWVySG92ZXJJbmZvXG4gKiBAdHlwZSB7dHlwZW9mIGltcG9ydCgnLi9sYXllci11dGlscycpLmdldExheWVySG92ZXJQcm9wfVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0TGF5ZXJIb3ZlclByb3Aoe1xuICBpbnRlcmFjdGlvbkNvbmZpZyxcbiAgaG92ZXJJbmZvLFxuICBsYXllcnMsXG4gIGxheWVyc1RvUmVuZGVyLFxuICBkYXRhc2V0c1xufToge1xuICBpbnRlcmFjdGlvbkNvbmZpZzogSW50ZXJhY3Rpb25Db25maWc7XG4gIGhvdmVySW5mbzogYW55O1xuICBsYXllcnM6IExheWVyW107XG4gIGxheWVyc1RvUmVuZGVyOiBMYXllcnNUb1JlbmRlcjtcbiAgZGF0YXNldHM6IERhdGFzZXRzO1xufSk6IExheWVySG92ZXJQcm9wIHwgbnVsbCB7XG4gIGlmIChpbnRlcmFjdGlvbkNvbmZpZy50b29sdGlwLmVuYWJsZWQgJiYgaG92ZXJJbmZvICYmIGhvdmVySW5mby5waWNrZWQpIHtcbiAgICAvLyBpZiBhbnl0aGluZyBob3ZlcmVkXG4gICAgY29uc3Qge29iamVjdCwgbGF5ZXI6IG92ZXJsYXl9ID0gaG92ZXJJbmZvO1xuXG4gICAgLy8gZGVja2dsIGxheWVyIHRvIGtlcGxlci1nbCBsYXllclxuICAgIGNvbnN0IGxheWVyID0gbGF5ZXJzW292ZXJsYXkucHJvcHMuaWR4XTtcblxuICAgIC8vIE5PVEU6IGZvciBiaW5hcnkgZm9ybWF0IEdlb2pzb25MYXllciwgZGVjayB3aWxsIHJldHVybiBvYmplY3Q9bnVsbCBidXQgaG92ZXJJbmZvLmluZGV4ID49IDBcbiAgICBpZiAoXG4gICAgICAob2JqZWN0IHx8IGhvdmVySW5mby5pbmRleCA+PSAwKSAmJlxuICAgICAgbGF5ZXIgJiZcbiAgICAgIGxheWVyLmdldEhvdmVyRGF0YSAmJlxuICAgICAgbGF5ZXJzVG9SZW5kZXJbbGF5ZXIuaWRdXG4gICAgKSB7XG4gICAgICAvLyBpZiBsYXllciBpcyB2aXNpYmxlIGFuZCBoYXZlIGhvdmVyZWQgZGF0YVxuICAgICAgY29uc3Qge1xuICAgICAgICBjb25maWc6IHtkYXRhSWR9XG4gICAgICB9ID0gbGF5ZXI7XG4gICAgICBpZiAoIWRhdGFJZCkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHtkYXRhQ29udGFpbmVyLCBmaWVsZHN9ID0gZGF0YXNldHNbZGF0YUlkXTtcbiAgICAgIGNvbnN0IGRhdGE6IERhdGFSb3cgfCBudWxsID0gbGF5ZXIuZ2V0SG92ZXJEYXRhKFxuICAgICAgICBvYmplY3QgfHwgaG92ZXJJbmZvLmluZGV4LFxuICAgICAgICBkYXRhQ29udGFpbmVyLFxuICAgICAgICBmaWVsZHNcbiAgICAgICk7XG4gICAgICBpZiAoIWRhdGEpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgICBjb25zdCBmaWVsZHNUb1Nob3cgPSBpbnRlcmFjdGlvbkNvbmZpZy50b29sdGlwLmNvbmZpZy5maWVsZHNUb1Nob3dbZGF0YUlkXTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgZGF0YSxcbiAgICAgICAgZmllbGRzLFxuICAgICAgICBmaWVsZHNUb1Nob3csXG4gICAgICAgIGxheWVyXG4gICAgICB9O1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBudWxsO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVuZGVyRGVja0dsTGF5ZXIocHJvcHM6IGFueSwgbGF5ZXJDYWxsYmFja3M6IHtba2V5OiBzdHJpbmddOiBhbnl9KSB7XG4gIGNvbnN0IHtcbiAgICBkYXRhc2V0cyxcbiAgICBsYXllcixcbiAgICBsYXllckluZGV4LFxuICAgIGRhdGEsXG4gICAgaG92ZXJJbmZvLFxuICAgIGNsaWNrZWQsXG4gICAgbWFwU3RhdGUsXG4gICAgaW50ZXJhY3Rpb25Db25maWcsXG4gICAgYW5pbWF0aW9uQ29uZmlnLFxuICAgIG1hcExheWVyc1xuICB9ID0gcHJvcHM7XG4gIGNvbnN0IGRhdGFzZXQgPSBkYXRhc2V0c1tsYXllci5jb25maWcuZGF0YUlkXTtcbiAgY29uc3Qge2dwdUZpbHRlcn0gPSBkYXRhc2V0IHx8IHt9O1xuICBjb25zdCBvYmplY3RIb3ZlcmVkID0gY2xpY2tlZCB8fCBob3ZlckluZm87XG4gIGNvbnN0IHZpc2libGUgPSAhbWFwTGF5ZXJzIHx8IChtYXBMYXllcnMgJiYgbWFwTGF5ZXJzW2xheWVyLmlkXSk7XG4gIC8vIExheWVyIGlzIExheWVyIGNsYXNzXG4gIHJldHVybiBsYXllci5yZW5kZXJMYXllcih7XG4gICAgZGF0YSxcbiAgICBncHVGaWx0ZXIsXG4gICAgaWR4OiBsYXllckluZGV4LFxuICAgIGludGVyYWN0aW9uQ29uZmlnLFxuICAgIGxheWVyQ2FsbGJhY2tzLFxuICAgIG1hcFN0YXRlLFxuICAgIGFuaW1hdGlvbkNvbmZpZyxcbiAgICBvYmplY3RIb3ZlcmVkLFxuICAgIHZpc2libGVcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0xheWVyUmVuZGVyYWJsZShsYXllcjogTGF5ZXIsIGxheWVyRGF0YSkge1xuICByZXR1cm4gbGF5ZXIuaWQgIT09IEdFT0NPREVSX0xBWUVSX0lEICYmIGxheWVyLnNob3VsZFJlbmRlckxheWVyKGxheWVyRGF0YSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0xheWVyVmlzaWJsZShsYXllciwgbWFwTGF5ZXJzKSB7XG4gIHJldHVybiAoXG4gICAgbGF5ZXIuY29uZmlnLmlzVmlzaWJsZSAmJlxuICAgIC8vIGlmIGxheWVyLmlkIGlzIG5vdCBpbiBtYXBMYXllcnMsIGRvbid0IHJlbmRlciBpdFxuICAgICghbWFwTGF5ZXJzIHx8IChtYXBMYXllcnMgJiYgbWFwTGF5ZXJzW2xheWVyLmlkXSkpXG4gICk7XG59XG5cbi8vIFByZXBhcmUgYSBkaWN0IG9mIGxheWVycyByZW5kZXJlZCBieSB0aGUgZGVjay5nbFxuLy8gTm90ZSwgaXNWaXNpYmxlOiBmYWxzZSBsYXllciBpcyBwYXNzZWQgdG8gZGVjay5nbCBoZXJlXG4vLyByZXR1cm4ge1tpZF06IHRydWUgXFwgZmFsc2V9XG5leHBvcnQgZnVuY3Rpb24gcHJlcGFyZUxheWVyc0ZvckRlY2soXG4gIGxheWVyczogTGF5ZXJbXSxcbiAgbGF5ZXJEYXRhOiBWaXNTdGF0ZVsnbGF5ZXJEYXRhJ11cbik6IHtcbiAgW2tleTogc3RyaW5nXTogYm9vbGVhbjtcbn0ge1xuICByZXR1cm4gbGF5ZXJzLnJlZHVjZShcbiAgICAoYWNjdSwgbGF5ZXIsIGlkeCkgPT4gKHtcbiAgICAgIC4uLmFjY3UsXG4gICAgICBbbGF5ZXIuaWRdOlxuICAgICAgICBpc0xheWVyUmVuZGVyYWJsZShsYXllciwgbGF5ZXJEYXRhW2lkeF0pICYmIGxheWVyLm92ZXJsYXlUeXBlID09PSBPVkVSTEFZX1RZUEVfQ09OU1QuZGVja2dsXG4gICAgfSksXG4gICAge31cbiAgKTtcbn1cblxuLy8gUHJlcGFyZSBhIGRpY3Qgb2YgcmVuZGVyZWQgbGF5ZXJzIHJlbmRlcmVkIGluIHRoZSBtYXBcbi8vIFRoaXMgaW5jbHVkZXMgb25seSB0aGUgdmlzaWJpbGUgbGF5ZXJzIGZvciBzaW5nbGUgbWFwIHZpZXcgYW5kIHNwbGl0IG1hcCB2aWV3XG4vLyByZXR1cm4ge1tpZF06IHRydWUgXFwgZmFsc2V9XG5leHBvcnQgZnVuY3Rpb24gcHJlcGFyZUxheWVyc1RvUmVuZGVyKFxuICBsYXllcnM6IExheWVyW10sXG4gIGxheWVyRGF0YTogVmlzU3RhdGVbJ2xheWVyRGF0YSddLFxuICBtYXBMYXllcnM/OiBTcGxpdE1hcExheWVycyB8IHVuZGVmaW5lZCB8IG51bGxcbik6IExheWVyc1RvUmVuZGVyIHtcbiAgcmV0dXJuIGxheWVycy5yZWR1Y2UoXG4gICAgKGFjY3UsIGxheWVyLCBpZHgpID0+ICh7XG4gICAgICAuLi5hY2N1LFxuICAgICAgW2xheWVyLmlkXTogaXNMYXllclJlbmRlcmFibGUobGF5ZXIsIGxheWVyRGF0YVtpZHhdKSAmJiBpc0xheWVyVmlzaWJsZShsYXllciwgbWFwTGF5ZXJzKVxuICAgIH0pLFxuICAgIHt9XG4gICk7XG59XG5cbnR5cGUgQ3VzdG9tRGVja0xheWVyID0gRGVja0xheWVyPERlY2tMYXllclByb3BzPjtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldEN1c3RvbURlY2tMYXllcnMoZGVja0dsUHJvcHM/OiBhbnkpOiBbQ3VzdG9tRGVja0xheWVyW10sIEN1c3RvbURlY2tMYXllcltdXSB7XG4gIGNvbnN0IGJvdHRvbURlY2tMYXllcnMgPSBBcnJheS5pc0FycmF5KGRlY2tHbFByb3BzPy5sYXllcnMpXG4gICAgPyBkZWNrR2xQcm9wcz8ubGF5ZXJzXG4gICAgOiBpc0Z1bmN0aW9uKGRlY2tHbFByb3BzPy5sYXllcnMpXG4gICAgPyBkZWNrR2xQcm9wcz8ubGF5ZXJzKClcbiAgICA6IFtdO1xuICBjb25zdCB0b3BEZWNrTGF5ZXJzID0gQXJyYXkuaXNBcnJheShkZWNrR2xQcm9wcz8udG9wTGF5ZXJzKVxuICAgID8gZGVja0dsUHJvcHM/LnRvcExheWVyc1xuICAgIDogaXNGdW5jdGlvbihkZWNrR2xQcm9wcz8udG9wTGF5ZXJzKVxuICAgID8gZGVja0dsUHJvcHM/LnRvcExheWVycygpXG4gICAgOiBbXTtcblxuICByZXR1cm4gW2JvdHRvbURlY2tMYXllcnMsIHRvcERlY2tMYXllcnNdO1xufVxuXG5leHBvcnQgdHlwZSBDb21wdXRlRGVja0xheWVyc1Byb3BzID0ge1xuICBtYXBJbmRleD86IG51bWJlcjtcbiAgbWFwYm94QXBpQWNjZXNzVG9rZW4/OiBzdHJpbmc7XG4gIG1hcGJveEFwaVVybD86IHN0cmluZztcbiAgcHJpbWFyeU1hcD86IGJvb2xlYW47XG4gIGxheWVyc0ZvckRlY2s/OiB7W2tleTogc3RyaW5nXTogYm9vbGVhbn07XG4gIGVkaXRvckluZm8/OiB7XG4gICAgZWRpdG9yOiBFZGl0b3I7XG4gICAgZWRpdG9yTWVudUFjdGl2ZTogYm9vbGVhbjtcbiAgICBvblNldEZlYXR1cmVzOiAoZmVhdHVyZXM6IEZlYXR1cmVbXSkgPT4gYW55O1xuICAgIHNldFNlbGVjdGVkRmVhdHVyZTogKFxuICAgICAgZmVhdHVyZTogRmVhdHVyZSB8IG51bGwsXG4gICAgICBzZWxlY3Rpb25Db250ZXh0PzogRmVhdHVyZVNlbGVjdGlvbkNvbnRleHRcbiAgICApID0+IGFueTtcbiAgICBmZWF0dXJlQ29sbGVjdGlvbjoge1xuICAgICAgdHlwZTogc3RyaW5nO1xuICAgICAgZmVhdHVyZXM6IEZlYXR1cmVbXTtcbiAgICB9O1xuICAgIHNlbGVjdGVkRmVhdHVyZUluZGV4ZXM6IG51bWJlcltdO1xuICAgIHZpZXdwb3J0OiBWaWV3cG9ydDtcbiAgfTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBiaW5kTGF5ZXJDYWxsYmFja3MobGF5ZXJDYWxsYmFja3M6IExheWVyQ2FsbGJhY2tzID0ge30sIGlkeDogbnVtYmVyKSB7XG4gIHJldHVybiBPYmplY3Qua2V5cyhsYXllckNhbGxiYWNrcykucmVkdWNlKFxuICAgIChhY2N1LCBrZXkpID0+ICh7XG4gICAgICAuLi5hY2N1LFxuICAgICAgW2tleV06IHZhbCA9PiBsYXllckNhbGxiYWNrc1trZXldKGlkeCwgdmFsKVxuICAgIH0pLFxuICAgIHt9IGFzIFJlY29yZDxzdHJpbmcsIChfaWR4OiBudW1iZXIsIHZhbDogYW55KSA9PiB2b2lkPlxuICApO1xufVxuXG5leHBvcnQgdHlwZSBMYXllckNhbGxiYWNrcyA9IHtcbiAgb25MYXllckhvdmVyPzogKGlkeDogbnVtYmVyLCB2YWx1ZTogYW55KSA9PiB2b2lkO1xuICBvblNldExheWVyRG9tYWluPzogKGlkeDogbnVtYmVyLCB2YWx1ZTogYW55KSA9PiB2b2lkO1xufTtcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGNvbXBsZXhpdHlcbmV4cG9ydCBmdW5jdGlvbiBjb21wdXRlRGVja0xheWVycyhcbiAge3Zpc1N0YXRlLCBtYXBTdGF0ZSwgbWFwU3R5bGV9OiBhbnksXG4gIG9wdGlvbnM/OiBDb21wdXRlRGVja0xheWVyc1Byb3BzLFxuICBsYXllckNhbGxiYWNrcz86IExheWVyQ2FsbGJhY2tzLFxuICBkZWNrR2xQcm9wcz86IGFueVxuKTogTGF5ZXJbXSB7XG4gIGNvbnN0IHtcbiAgICBkYXRhc2V0cyxcbiAgICBsYXllcnMsXG4gICAgbGF5ZXJPcmRlcixcbiAgICBsYXllckRhdGEsXG4gICAgaG92ZXJJbmZvLFxuICAgIGNsaWNrZWQsXG4gICAgaW50ZXJhY3Rpb25Db25maWcsXG4gICAgYW5pbWF0aW9uQ29uZmlnLFxuICAgIHNwbGl0TWFwc1xuICB9ID0gdmlzU3RhdGU7XG5cbiAgY29uc3Qge21hcEluZGV4LCBtYXBib3hBcGlBY2Nlc3NUb2tlbiwgbWFwYm94QXBpVXJsLCBwcmltYXJ5TWFwLCBsYXllcnNGb3JEZWNrLCBlZGl0b3JJbmZvfSA9XG4gICAgb3B0aW9ucyB8fCB7fTtcblxuICBsZXQgZGF0YUxheWVyczogYW55W10gPSBbXTtcblxuICBpZiAobGF5ZXJEYXRhICYmIGxheWVyRGF0YS5sZW5ndGgpIHtcbiAgICBjb25zdCBtYXBMYXllcnMgPSBnZXRNYXBMYXllcnNGcm9tU3BsaXRNYXBzKHNwbGl0TWFwcywgbWFwSW5kZXggfHwgMCk7XG5cbiAgICBjb25zdCBjdXJyZW50TGF5ZXJzRm9yRGVjayA9IGxheWVyc0ZvckRlY2sgfHwgcHJlcGFyZUxheWVyc0ZvckRlY2sobGF5ZXJzLCBsYXllckRhdGEpO1xuXG4gICAgZGF0YUxheWVycyA9IGxheWVyT3JkZXJcbiAgICAgIC5zbGljZSgpXG4gICAgICAucmV2ZXJzZSgpXG4gICAgICAuZmlsdGVyKGlkID0+IGN1cnJlbnRMYXllcnNGb3JEZWNrW2lkXSlcbiAgICAgIC5yZWR1Y2UoKG92ZXJsYXlzLCBsYXllcklkKSA9PiB7XG4gICAgICAgIGNvbnN0IGxheWVySW5kZXggPSBsYXllcnMuZmluZEluZGV4KCh7aWR9KSA9PiBpZCA9PT0gbGF5ZXJJZCk7XG4gICAgICAgIGNvbnN0IGJpbmRlZExheWVyQ2FsbGJhY2tzID0gbGF5ZXJDYWxsYmFja3NcbiAgICAgICAgICA/IGJpbmRMYXllckNhbGxiYWNrcyhsYXllckNhbGxiYWNrcywgbGF5ZXJJbmRleClcbiAgICAgICAgICA6IHt9O1xuICAgICAgICBjb25zdCBsYXllciA9IGxheWVyc1tsYXllckluZGV4XTtcbiAgICAgICAgY29uc3QgZGF0YSA9IGxheWVyRGF0YVtsYXllckluZGV4XTtcbiAgICAgICAgY29uc3QgbGF5ZXJPdmVybGF5ID0gcmVuZGVyRGVja0dsTGF5ZXIoXG4gICAgICAgICAge1xuICAgICAgICAgICAgZGF0YXNldHMsXG4gICAgICAgICAgICBsYXllcixcbiAgICAgICAgICAgIGxheWVySW5kZXgsXG4gICAgICAgICAgICBkYXRhLFxuICAgICAgICAgICAgaG92ZXJJbmZvLFxuICAgICAgICAgICAgY2xpY2tlZCxcbiAgICAgICAgICAgIG1hcFN0YXRlLFxuICAgICAgICAgICAgaW50ZXJhY3Rpb25Db25maWcsXG4gICAgICAgICAgICBhbmltYXRpb25Db25maWcsXG4gICAgICAgICAgICBtYXBMYXllcnNcbiAgICAgICAgICB9LFxuICAgICAgICAgIGJpbmRlZExheWVyQ2FsbGJhY2tzXG4gICAgICAgICk7XG4gICAgICAgIHJldHVybiBvdmVybGF5cy5jb25jYXQobGF5ZXJPdmVybGF5IHx8IFtdKTtcbiAgICAgIH0sIFtdKTtcbiAgfVxuXG4gIGlmICghcHJpbWFyeU1hcCkge1xuICAgIHJldHVybiBkYXRhTGF5ZXJzO1xuICB9XG5cbiAgaWYgKFxuICAgIG1hcFN0eWxlPy52aXNpYmxlTGF5ZXJHcm91cHNbJzNkIGJ1aWxkaW5nJ10gJiZcbiAgICBwcmltYXJ5TWFwICYmXG4gICAgbWFwYm94QXBpQWNjZXNzVG9rZW4gJiZcbiAgICBtYXBib3hBcGlVcmxcbiAgKSB7XG4gICAgZGF0YUxheWVycy5wdXNoKFxuICAgICAgbmV3IFRocmVlREJ1aWxkaW5nTGF5ZXIoe1xuICAgICAgICBpZDogJ19rZXBsZXJnbF8zZC1idWlsZGluZycsXG4gICAgICAgIG1hcGJveEFwaUFjY2Vzc1Rva2VuLFxuICAgICAgICBtYXBib3hBcGlVcmwsXG4gICAgICAgIHRocmVlREJ1aWxkaW5nQ29sb3I6IG1hcFN0eWxlLnRocmVlREJ1aWxkaW5nQ29sb3IsXG4gICAgICAgIHVwZGF0ZVRyaWdnZXJzOiB7XG4gICAgICAgICAgZ2V0RmlsbENvbG9yOiBtYXBTdHlsZS50aHJlZURCdWlsZGluZ0NvbG9yXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIGNvbnN0IFtjdXN0b21Cb3R0b21EZWNrTGF5ZXJzLCBjdXN0b21Ub3BEZWNrTGF5ZXJzXSA9IGdldEN1c3RvbURlY2tMYXllcnMoZGVja0dsUHJvcHMpO1xuXG4gIGNvbnN0IGVkaXRvckxheWVyOiBhbnlbXSA9IFtdO1xuICBpZiAoZWRpdG9ySW5mbykge1xuICAgIGVkaXRvckxheWVyLnB1c2goXG4gICAgICBnZXRFZGl0b3JMYXllcih7XG4gICAgICAgIC4uLmVkaXRvckluZm9cbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiBbLi4uY3VzdG9tQm90dG9tRGVja0xheWVycywgLi4uZGF0YUxheWVycywgLi4uY3VzdG9tVG9wRGVja0xheWVycywgLi4uZWRpdG9yTGF5ZXJdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0TGF5ZXJPcmRlckZyb21MYXllcnM8VCBleHRlbmRzIHtpZDogc3RyaW5nfT4obGF5ZXJzOiBUW10pOiBzdHJpbmdbXSB7XG4gIHJldHVybiBsYXllcnMubWFwKCh7aWR9KSA9PiBpZCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZW9yZGVyTGF5ZXJPcmRlcihcbiAgbGF5ZXJPcmRlcjogVmlzU3RhdGVbJ2xheWVyT3JkZXInXSxcbiAgb3JpZ2luTGF5ZXJJZDogc3RyaW5nLFxuICBkZXN0aW5hdGlvbkxheWVySWQ6IHN0cmluZ1xuKTogVmlzU3RhdGVbJ2xheWVyT3JkZXInXSB7XG4gIGNvbnN0IGFjdGl2ZUluZGV4ID0gbGF5ZXJPcmRlci5pbmRleE9mKG9yaWdpbkxheWVySWQpO1xuICBjb25zdCBvdmVySW5kZXggPSBsYXllck9yZGVyLmluZGV4T2YoZGVzdGluYXRpb25MYXllcklkKTtcblxuICByZXR1cm4gYXJyYXlNb3ZlKGxheWVyT3JkZXIsIGFjdGl2ZUluZGV4LCBvdmVySW5kZXgpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYWRkTGF5ZXJUb0xheWVyT3JkZXIoXG4gIGxheWVyT3JkZXI6IFZpc1N0YXRlWydsYXllck9yZGVyJ10sXG4gIGxheWVySWQ6IHN0cmluZ1xuKTogc3RyaW5nW10ge1xuICByZXR1cm4gW2xheWVySWQsIC4uLmxheWVyT3JkZXJdO1xufVxuIl19
|
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
import { MapStateActions, ReceiveMapConfigPayload, ActionTypes } from '@kepler.gl/actions';
|
|
2
|
-
import { MapState, Bounds, Viewport } from '@kepler.gl/types';
|
|
3
|
-
/**
|
|
4
|
-
* Default initial `mapState`
|
|
5
|
-
* @memberof mapStateUpdaters
|
|
6
|
-
* @constant
|
|
7
|
-
* @property pitch Default: `0`
|
|
8
|
-
* @property bearing Default: `0`
|
|
9
|
-
* @property latitude Default: `37.75043`
|
|
10
|
-
* @property longitude Default: `-122.34679`
|
|
11
|
-
* @property zoom Default: `9`
|
|
12
|
-
* @property dragRotate Default: `false`
|
|
13
|
-
* @property width Default: `800`
|
|
14
|
-
* @property height Default: `800`
|
|
15
|
-
* @property minZoom: `undefined`,
|
|
16
|
-
* @property maxZoom: `undefined`,
|
|
17
|
-
* @property maxBounds: `undefined`,
|
|
18
|
-
* @property isSplit: `false`,
|
|
19
|
-
* @property isViewportSynced: `true`,
|
|
20
|
-
* @property isZoomLocked: `false`,
|
|
21
|
-
* @property splitMapViewports: `[]`
|
|
22
|
-
* @public
|
|
23
|
-
*/
|
|
24
|
-
export declare const INITIAL_MAP_STATE: MapState;
|
|
25
|
-
/**
|
|
26
|
-
* Update map viewport
|
|
27
|
-
* @memberof mapStateUpdaters
|
|
28
|
-
* @public
|
|
29
|
-
*/
|
|
30
|
-
export declare const updateMapUpdater: (state: MapState, action: MapStateActions.UpdateMapUpdaterAction) => MapState;
|
|
31
|
-
/**
|
|
32
|
-
* Fit map viewport to bounds
|
|
33
|
-
* @memberof mapStateUpdaters
|
|
34
|
-
* @public
|
|
35
|
-
*/
|
|
36
|
-
export declare const fitBoundsUpdater: (state: MapState, action: MapStateActions.FitBoundsUpdaterAction) => MapState;
|
|
37
|
-
/**
|
|
38
|
-
* Toggle between 3d and 2d map.
|
|
39
|
-
* @memberof mapStateUpdaters
|
|
40
|
-
* @public
|
|
41
|
-
*/
|
|
42
|
-
export declare const togglePerspectiveUpdater: (state: MapState, action: MapStateActions.TogglePerspectiveUpdaterAction) => MapState;
|
|
43
|
-
/**
|
|
44
|
-
* reset mapState to initial State
|
|
45
|
-
* @memberof mapStateUpdaters
|
|
46
|
-
* @public
|
|
47
|
-
*/
|
|
48
|
-
export declare const resetMapConfigUpdater: (state: MapState) => MapState;
|
|
49
|
-
/**
|
|
50
|
-
* Update `mapState` to propagate a new config
|
|
51
|
-
* @memberof mapStateUpdaters
|
|
52
|
-
* @public
|
|
53
|
-
*/
|
|
54
|
-
export declare const receiveMapConfigUpdater: (state: MapState, { payload: { config, options, bounds } }: {
|
|
55
|
-
type?: typeof ActionTypes.RECEIVE_MAP_CONFIG;
|
|
56
|
-
payload: ReceiveMapConfigPayload;
|
|
57
|
-
}) => MapState;
|
|
58
|
-
/**
|
|
59
|
-
* Toggle between one or split maps
|
|
60
|
-
* @memberof mapStateUpdaters
|
|
61
|
-
* @public
|
|
62
|
-
*/
|
|
63
|
-
export declare const toggleSplitMapUpdater: (state: MapState, action: MapStateActions.ToggleSplitMapUpdaterAction) => MapState;
|
|
64
|
-
/**
|
|
65
|
-
* Toggle between locked and unlocked split viewports
|
|
66
|
-
* @memberof mapStateUpdaters
|
|
67
|
-
* @public
|
|
68
|
-
*/
|
|
69
|
-
export declare const toggleSplitMapViewportUpdater: (state: MapState, action: MapStateActions.ToggleSplitMapViewportUpdaterAction) => {
|
|
70
|
-
isViewportSynced: boolean;
|
|
71
|
-
isZoomLocked: boolean;
|
|
72
|
-
pitch: number;
|
|
73
|
-
bearing: number;
|
|
74
|
-
latitude: number;
|
|
75
|
-
longitude: number;
|
|
76
|
-
zoom: number;
|
|
77
|
-
dragRotate: boolean;
|
|
78
|
-
width: number;
|
|
79
|
-
height: number;
|
|
80
|
-
minZoom?: number | undefined;
|
|
81
|
-
maxZoom?: number | undefined;
|
|
82
|
-
maxBounds?: Bounds | undefined;
|
|
83
|
-
initialState?: any;
|
|
84
|
-
scale?: number | undefined;
|
|
85
|
-
isSplit: boolean;
|
|
86
|
-
splitMapViewports: Viewport[];
|
|
87
|
-
};
|
|
88
|
-
export declare function getMapDimForSplitMap(isSplit: any, state: any): {
|
|
89
|
-
width?: undefined;
|
|
90
|
-
} | {
|
|
91
|
-
width: number;
|
|
92
|
-
};
|
|
93
|
-
export declare function pickViewportPropsFromMapState(state: MapState): Viewport;
|