@kepler.gl/reducers 3.3.0-alpha.1 → 3.3.0-alpha.11
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/dist/cjs/combined-updaters.js +491 -0
- package/dist/cjs/composer-helpers.js +101 -0
- package/dist/cjs/composers.js +22 -0
- package/dist/cjs/core.js +105 -0
- package/dist/cjs/data-utils.js +53 -0
- package/dist/cjs/export-utils.js +91 -0
- package/dist/{index.js → cjs/index.js} +2 -3
- package/dist/cjs/interaction-utils.js +115 -0
- package/dist/cjs/layer-utils.js +635 -0
- package/dist/cjs/map-state-updaters.js +658 -0
- package/dist/cjs/map-state.js +35 -0
- package/dist/cjs/map-style-updaters.js +659 -0
- package/dist/cjs/map-style.js +33 -0
- package/dist/cjs/merger-handler.js +105 -0
- package/dist/cjs/middleware.js +25 -0
- package/dist/cjs/provider-state-updaters.js +464 -0
- package/dist/cjs/provider-state.js +34 -0
- package/dist/cjs/root.js +207 -0
- package/dist/cjs/ui-state-updaters.js +922 -0
- package/dist/cjs/ui-state.js +36 -0
- package/dist/cjs/vis-state-merger.js +1215 -0
- package/dist/cjs/vis-state-selectors.js +48 -0
- package/dist/cjs/vis-state-updaters.js +5150 -0
- package/dist/cjs/vis-state.js +35 -0
- package/dist/combined-updaters.d.ts +19 -2
- package/dist/composers.d.ts +2 -0
- package/dist/esm/combined-updaters.js +484 -0
- package/dist/esm/composer-helpers.js +85 -0
- package/dist/esm/composers.js +14 -0
- package/dist/esm/core.js +101 -0
- package/dist/esm/data-utils.js +47 -0
- package/dist/esm/export-utils.js +86 -0
- package/dist/esm/index.js +62 -0
- package/dist/esm/interaction-utils.js +106 -0
- package/dist/esm/layer-utils.js +602 -0
- package/dist/esm/map-state-updaters.js +650 -0
- package/dist/esm/map-state.js +29 -0
- package/dist/esm/map-style-updaters.js +652 -0
- package/dist/esm/map-style.js +27 -0
- package/dist/esm/merger-handler.js +96 -0
- package/dist/esm/middleware.js +17 -0
- package/dist/esm/provider-state-updaters.js +458 -0
- package/dist/esm/provider-state.js +28 -0
- package/dist/esm/root.js +201 -0
- package/dist/esm/ui-state-updaters.js +917 -0
- package/dist/esm/ui-state.js +30 -0
- package/dist/esm/vis-state-merger.js +1182 -0
- package/dist/esm/vis-state-selectors.js +42 -0
- package/dist/esm/vis-state-updaters.js +5057 -0
- package/dist/esm/vis-state.js +29 -0
- package/dist/interaction-utils.d.ts +1 -1
- package/dist/layer-utils.d.ts +23 -5
- package/dist/map-state-updaters.d.ts +26 -21
- package/dist/map-state.d.ts +2 -78
- package/dist/map-style-updaters.d.ts +1 -3
- package/dist/middleware.d.ts +2 -2
- package/dist/root.d.ts +1 -1
- package/dist/ui-state-updaters.d.ts +17 -2
- package/dist/vis-state-merger.d.ts +7 -0
- package/dist/vis-state-selectors.d.ts +88 -5
- package/dist/vis-state-updaters.d.ts +127 -4
- package/dist/vis-state.d.ts +8 -4
- package/package.json +37 -32
- package/dist/combined-updaters.js +0 -363
- package/dist/composer-helpers.js +0 -101
- package/dist/composers.js +0 -23
- package/dist/core.js +0 -105
- package/dist/data-utils.js +0 -53
- package/dist/export-utils.js +0 -91
- package/dist/interaction-utils.js +0 -105
- package/dist/layer-utils.js +0 -376
- package/dist/map-state-updaters.js +0 -438
- package/dist/map-state.js +0 -35
- package/dist/map-style-updaters.js +0 -661
- package/dist/map-style.js +0 -34
- package/dist/merger-handler.js +0 -105
- package/dist/middleware.js +0 -27
- package/dist/provider-state-updaters.js +0 -466
- package/dist/provider-state.js +0 -35
- package/dist/root.js +0 -207
- package/dist/ui-state-updaters.js +0 -887
- package/dist/ui-state.js +0 -37
- package/dist/vis-state-merger.js +0 -1032
- package/dist/vis-state-selectors.js +0 -30
- package/dist/vis-state-updaters.js +0 -3859
- package/dist/vis-state.js +0 -36
|
@@ -1,363 +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.toggleSplitMapUpdater = exports.replaceDataInMapUpdater = exports.loadFilesSuccessUpdater = exports.isValidConfig = exports.defaultAddDataToMapOptions = exports.combinedMapStyleChangeUpdater = exports.combinedLayerTypeChangeUpdater = exports.addDataToMapUpdater = exports.addDataToMapComposed = void 0;
|
|
8
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
9
|
-
var _uiStateUpdaters = require("./ui-state-updaters");
|
|
10
|
-
var _visStateUpdaters = require("./vis-state-updaters");
|
|
11
|
-
var _mapStateUpdaters = require("./map-state-updaters");
|
|
12
|
-
var _mapStyleUpdaters = require("./map-style-updaters");
|
|
13
|
-
var _processors = require("@kepler.gl/processors");
|
|
14
|
-
var _composerHelpers = require("./composer-helpers");
|
|
15
|
-
var _utils = require("@kepler.gl/utils");
|
|
16
|
-
var _dataUtils = require("./data-utils");
|
|
17
|
-
var _constants = require("@kepler.gl/constants");
|
|
18
|
-
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
19
|
-
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } // SPDX-License-Identifier: MIT
|
|
20
|
-
// Copyright contributors to the kepler.gl project
|
|
21
|
-
// compose action to apply result multiple reducers, with the output of one
|
|
22
|
-
|
|
23
|
-
/**
|
|
24
|
-
* Some actions will affect the entire kepler.lg instance state.
|
|
25
|
-
* The updaters for these actions is exported as `combinedUpdaters`. These updater take the entire instance state
|
|
26
|
-
* as the first argument. Read more about [Using updaters](../advanced-usage/using-updaters.md)
|
|
27
|
-
* @public
|
|
28
|
-
* @example
|
|
29
|
-
*
|
|
30
|
-
* import keplerGlReducer, {combinedUpdaters} from '@kepler.gl/reducers';
|
|
31
|
-
* // Root Reducer
|
|
32
|
-
* const reducers = combineReducers({
|
|
33
|
-
* keplerGl: keplerGlReducer,
|
|
34
|
-
* app: appReducer
|
|
35
|
-
* });
|
|
36
|
-
*
|
|
37
|
-
* const composedReducer = (state, action) => {
|
|
38
|
-
* switch (action.type) {
|
|
39
|
-
* // add data to map after receiving data from remote sources
|
|
40
|
-
* case 'LOAD_REMOTE_RESOURCE_SUCCESS':
|
|
41
|
-
* return {
|
|
42
|
-
* ...state,
|
|
43
|
-
* keplerGl: {
|
|
44
|
-
* ...state.keplerGl,
|
|
45
|
-
* // pass in kepler.gl instance state to combinedUpdaters
|
|
46
|
-
* map: combinedUpdaters.addDataToMapUpdater(
|
|
47
|
-
* state.keplerGl.map,
|
|
48
|
-
* {
|
|
49
|
-
* payload: {
|
|
50
|
-
* datasets: action.datasets,
|
|
51
|
-
* options: {readOnly: true},
|
|
52
|
-
* config: action.config
|
|
53
|
-
* }
|
|
54
|
-
* }
|
|
55
|
-
* )
|
|
56
|
-
* }
|
|
57
|
-
* };
|
|
58
|
-
* }
|
|
59
|
-
* return reducers(state, action);
|
|
60
|
-
* };
|
|
61
|
-
*
|
|
62
|
-
* export default composedReducer;
|
|
63
|
-
*/
|
|
64
|
-
|
|
65
|
-
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
66
|
-
// @ts-ignore
|
|
67
|
-
var combinedUpdaters = null;
|
|
68
|
-
/* eslint-enable @typescript-eslint/no-unused-vars */
|
|
69
|
-
|
|
70
|
-
var isValidConfig = exports.isValidConfig = function isValidConfig(config) {
|
|
71
|
-
return (0, _utils.isPlainObject)(config) && (0, _utils.isPlainObject)(config.config) && config.version;
|
|
72
|
-
};
|
|
73
|
-
var defaultAddDataToMapOptions = exports.defaultAddDataToMapOptions = {
|
|
74
|
-
centerMap: true,
|
|
75
|
-
keepExistingConfig: false,
|
|
76
|
-
autoCreateLayers: true,
|
|
77
|
-
autoCreateTooltips: true
|
|
78
|
-
};
|
|
79
|
-
|
|
80
|
-
/**
|
|
81
|
-
* Combine data and full configuration update in a single action
|
|
82
|
-
*
|
|
83
|
-
* @memberof combinedUpdaters
|
|
84
|
-
* @param {Object} state kepler.gl instance state, containing all subreducer state
|
|
85
|
-
* @param {Object} action
|
|
86
|
-
* @param {Object} action.payload `{datasets, options, config}`
|
|
87
|
-
* @param action.payload.datasets - ***required** datasets can be a dataset or an array of datasets
|
|
88
|
-
* Each dataset object needs to have `info` and `data` property.
|
|
89
|
-
* @param [action.payload.options] option object `{centerMap: true}`
|
|
90
|
-
* @param [action.payload.config] map config
|
|
91
|
-
* @param [action.payload.info] map info contains title and description
|
|
92
|
-
* @returns nextState
|
|
93
|
-
*
|
|
94
|
-
* @typedef {Object} Dataset
|
|
95
|
-
* @property info -info of a dataset
|
|
96
|
-
* @property info.id - id of this dataset. If config is defined, `id` should matches the `dataId` in config.
|
|
97
|
-
* @property info.label - A display name of this dataset
|
|
98
|
-
* @property data - ***required** The data object, in a tabular format with 2 properties `fields` and `rows`
|
|
99
|
-
* @property data.fields - ***required** Array of fields,
|
|
100
|
-
* @property data.fields.name - ***required** Name of the field,
|
|
101
|
-
* @property data.rows - ***required** Array of rows, in a tabular format with `fields` and `rows`
|
|
102
|
-
*
|
|
103
|
-
* @public
|
|
104
|
-
*/
|
|
105
|
-
var addDataToMapUpdater = exports.addDataToMapUpdater = function addDataToMapUpdater(state, _ref) {
|
|
106
|
-
var _datasets$, _datasets$2, _datasets$3;
|
|
107
|
-
var payload = _ref.payload;
|
|
108
|
-
var datasets = payload.datasets,
|
|
109
|
-
config = payload.config,
|
|
110
|
-
info = payload.info;
|
|
111
|
-
var options = _objectSpread(_objectSpread({}, defaultAddDataToMapOptions), payload.options);
|
|
112
|
-
|
|
113
|
-
// check if progressive loading dataset by batches, and update visState directly
|
|
114
|
-
var isProgressiveLoading = Array.isArray(datasets) && ((_datasets$ = datasets[0]) === null || _datasets$ === void 0 ? void 0 : _datasets$.info.format) === 'arrow' && ((_datasets$2 = datasets[0]) === null || _datasets$2 === void 0 ? void 0 : _datasets$2.info.id) && ((_datasets$3 = datasets[0]) === null || _datasets$3 === void 0 ? void 0 : _datasets$3.info.id) in state.visState.datasets;
|
|
115
|
-
if (isProgressiveLoading) {
|
|
116
|
-
return (0, _composerHelpers.compose_)([(0, _composerHelpers.pick_)('visState')((0, _composerHelpers.apply_)(_visStateUpdaters.updateVisDataUpdater, {
|
|
117
|
-
datasets: datasets,
|
|
118
|
-
options: options,
|
|
119
|
-
config: config
|
|
120
|
-
}))])(state);
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
// @ts-expect-error
|
|
124
|
-
var parsedConfig = config;
|
|
125
|
-
if (isValidConfig(config)) {
|
|
126
|
-
// if passed in saved config
|
|
127
|
-
// @ts-expect-error
|
|
128
|
-
parsedConfig = state.visState.schema.parseSavedConfig(config);
|
|
129
|
-
}
|
|
130
|
-
var oldLayers = state.visState.layers;
|
|
131
|
-
var filterNewlyAddedLayers = function filterNewlyAddedLayers(layers) {
|
|
132
|
-
return layers.filter(function (nl) {
|
|
133
|
-
return !oldLayers.find(function (ol) {
|
|
134
|
-
return ol === nl;
|
|
135
|
-
});
|
|
136
|
-
});
|
|
137
|
-
};
|
|
138
|
-
|
|
139
|
-
// Returns undefined if not found, to make typescript happy
|
|
140
|
-
var findMapBoundsIfCentered = function findMapBoundsIfCentered(layers) {
|
|
141
|
-
var bounds = options.centerMap && (0, _dataUtils.findMapBounds)(layers);
|
|
142
|
-
return bounds ? bounds : undefined;
|
|
143
|
-
};
|
|
144
|
-
return (0, _composerHelpers.compose_)([(0, _composerHelpers.pick_)('visState')(
|
|
145
|
-
// this part can be async
|
|
146
|
-
(0, _composerHelpers.apply_)(_visStateUpdaters.updateVisDataUpdater, {
|
|
147
|
-
datasets: datasets,
|
|
148
|
-
options: options,
|
|
149
|
-
config: parsedConfig
|
|
150
|
-
})), (0, _composerHelpers.if_)(Boolean(info), (0, _composerHelpers.pick_)('visState')((0, _composerHelpers.apply_)(_visStateUpdaters.setMapInfoUpdater, {
|
|
151
|
-
info: info
|
|
152
|
-
}))),
|
|
153
|
-
// Note that fit bounds here won't be called in case datasets are created in Tasks.
|
|
154
|
-
// A separate Task to update bounds is created once the datasets are ready.
|
|
155
|
-
(0, _composerHelpers.with_)(function (_ref2) {
|
|
156
|
-
var visState = _ref2.visState;
|
|
157
|
-
return (0, _composerHelpers.pick_)('mapState')((0, _composerHelpers.apply_)(_mapStateUpdaters.receiveMapConfigUpdater, (0, _composerHelpers.payload_)({
|
|
158
|
-
config: parsedConfig,
|
|
159
|
-
options: options,
|
|
160
|
-
bounds: findMapBoundsIfCentered(filterNewlyAddedLayers(visState.layers))
|
|
161
|
-
})));
|
|
162
|
-
}), (0, _composerHelpers.pick_)('mapStyle')((0, _composerHelpers.apply_)(_mapStyleUpdaters.receiveMapConfigUpdater, (0, _composerHelpers.payload_)({
|
|
163
|
-
config: parsedConfig,
|
|
164
|
-
options: options
|
|
165
|
-
}))), (0, _composerHelpers.pick_)('uiState')((0, _composerHelpers.apply_)(_uiStateUpdaters.receiveMapConfigUpdater, (0, _composerHelpers.payload_)({
|
|
166
|
-
config: parsedConfig,
|
|
167
|
-
options: options
|
|
168
|
-
}))), (0, _composerHelpers.pick_)('uiState')((0, _composerHelpers.apply_)(_uiStateUpdaters.loadFilesSuccessUpdater, (0, _composerHelpers.payload_)(null))), (0, _composerHelpers.pick_)('uiState')((0, _composerHelpers.apply_)(_uiStateUpdaters.toggleModalUpdater, (0, _composerHelpers.payload_)(null))), (0, _composerHelpers.pick_)('uiState')((0, _composerHelpers.merge_)(Object.prototype.hasOwnProperty.call(options, 'readOnly') ? {
|
|
169
|
-
readOnly: options.readOnly
|
|
170
|
-
} : {}))])(state);
|
|
171
|
-
};
|
|
172
|
-
var loadFilesSuccessUpdater = exports.loadFilesSuccessUpdater = function loadFilesSuccessUpdater(state, action) {
|
|
173
|
-
// still more to load
|
|
174
|
-
var payloads = (0, _processors.filesToDataPayload)(action.result);
|
|
175
|
-
var nextState = (0, _composerHelpers.compose_)([(0, _composerHelpers.pick_)('visState')((0, _composerHelpers.merge_)({
|
|
176
|
-
fileLoading: false,
|
|
177
|
-
fileLoadingProgress: {}
|
|
178
|
-
}))])(state);
|
|
179
|
-
// make multiple add data to map calls
|
|
180
|
-
var stateWithData = (0, _composerHelpers.compose_)(payloads.map(function (p) {
|
|
181
|
-
return (0, _composerHelpers.apply_)(addDataToMapUpdater, (0, _composerHelpers.payload_)(p));
|
|
182
|
-
}))(nextState);
|
|
183
|
-
return stateWithData;
|
|
184
|
-
};
|
|
185
|
-
var addDataToMapComposed = exports.addDataToMapComposed = addDataToMapUpdater;
|
|
186
|
-
|
|
187
|
-
/**
|
|
188
|
-
* Helper which updates map overlay blending mode in visState,
|
|
189
|
-
* but only if it's not currently in the `normal` mode.
|
|
190
|
-
*/
|
|
191
|
-
var updateOverlayBlending = function updateOverlayBlending(overlayBlending) {
|
|
192
|
-
return function (visState) {
|
|
193
|
-
if (visState.overlayBlending !== _constants.OVERLAY_BLENDINGS.normal.value) {
|
|
194
|
-
return _objectSpread(_objectSpread({}, visState), {}, {
|
|
195
|
-
overlayBlending: overlayBlending
|
|
196
|
-
});
|
|
197
|
-
}
|
|
198
|
-
return visState;
|
|
199
|
-
};
|
|
200
|
-
};
|
|
201
|
-
|
|
202
|
-
/**
|
|
203
|
-
* Helper which updates `darkBaseMapEnabled` in all the layers in visState which
|
|
204
|
-
* have this config setting (or in one specific layer if the `layerId` param is provided).
|
|
205
|
-
*/
|
|
206
|
-
var updateDarkBaseMapLayers = function updateDarkBaseMapLayers(darkBaseMapEnabled) {
|
|
207
|
-
var layerId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
|
|
208
|
-
return function (visState) {
|
|
209
|
-
return _objectSpread(_objectSpread({}, visState), {}, {
|
|
210
|
-
layers: visState.layers.map(function (layer) {
|
|
211
|
-
if (!layerId || layer.id === layerId) {
|
|
212
|
-
if (Object.prototype.hasOwnProperty.call(layer.visConfigSettings, 'darkBaseMapEnabled')) {
|
|
213
|
-
var visConfig = layer.config.visConfig;
|
|
214
|
-
return layer.updateLayerConfig({
|
|
215
|
-
visConfig: _objectSpread(_objectSpread({}, visConfig), {}, {
|
|
216
|
-
darkBaseMapEnabled: darkBaseMapEnabled
|
|
217
|
-
})
|
|
218
|
-
});
|
|
219
|
-
}
|
|
220
|
-
}
|
|
221
|
-
return layer;
|
|
222
|
-
})
|
|
223
|
-
});
|
|
224
|
-
};
|
|
225
|
-
};
|
|
226
|
-
|
|
227
|
-
/**
|
|
228
|
-
* Updater that changes the map style by calling mapStyleChangeUpdater on visState.
|
|
229
|
-
* In addition to that, it does the following:
|
|
230
|
-
*
|
|
231
|
-
* 1. Update map overlay blending mode in accordance with the colorMode of the
|
|
232
|
-
* base map, but only if it's not in the `normal` mode.
|
|
233
|
-
*
|
|
234
|
-
* 2. Update all the layers which have the `darkBaseMapEnabled` config setting
|
|
235
|
-
* adjusting it in accordance with the colorMode of the base map.
|
|
236
|
-
*
|
|
237
|
-
*/
|
|
238
|
-
var combinedMapStyleChangeUpdater = exports.combinedMapStyleChangeUpdater = function combinedMapStyleChangeUpdater(state, action) {
|
|
239
|
-
var payload = action.payload;
|
|
240
|
-
var mapStyle = state.mapStyle;
|
|
241
|
-
var getColorMode = function getColorMode(key) {
|
|
242
|
-
var _mapStyle$mapStyles$k;
|
|
243
|
-
return (_mapStyle$mapStyles$k = mapStyle.mapStyles[key]) === null || _mapStyle$mapStyles$k === void 0 ? void 0 : _mapStyle$mapStyles$k.colorMode;
|
|
244
|
-
};
|
|
245
|
-
var prevColorMode = getColorMode(mapStyle.styleType);
|
|
246
|
-
var nextColorMode = getColorMode(payload.styleType);
|
|
247
|
-
var visState = state.visState;
|
|
248
|
-
if (nextColorMode !== prevColorMode) {
|
|
249
|
-
switch (nextColorMode) {
|
|
250
|
-
case _constants.BASE_MAP_COLOR_MODES.DARK:
|
|
251
|
-
visState = (0, _composerHelpers.compose_)([updateOverlayBlending(_constants.OVERLAY_BLENDINGS.screen.value), updateDarkBaseMapLayers(true)])(visState);
|
|
252
|
-
break;
|
|
253
|
-
case _constants.BASE_MAP_COLOR_MODES.LIGHT:
|
|
254
|
-
visState = (0, _composerHelpers.compose_)([updateOverlayBlending(_constants.OVERLAY_BLENDINGS.darken.value), updateDarkBaseMapLayers(false)])(visState);
|
|
255
|
-
break;
|
|
256
|
-
default:
|
|
257
|
-
// do nothing
|
|
258
|
-
}
|
|
259
|
-
}
|
|
260
|
-
return _objectSpread(_objectSpread({}, state), {}, {
|
|
261
|
-
visState: visState,
|
|
262
|
-
mapStyle: (0, _mapStyleUpdaters.mapStyleChangeUpdater)(mapStyle, {
|
|
263
|
-
payload: _objectSpread({}, payload)
|
|
264
|
-
})
|
|
265
|
-
});
|
|
266
|
-
};
|
|
267
|
-
|
|
268
|
-
/**
|
|
269
|
-
* Updater that changes the layer type by calling `layerTypeChangeUpdater` on visState.
|
|
270
|
-
* In addition to that, if the new layer type has the `darkBaseMapEnabled` config
|
|
271
|
-
* setting, we adjust it in accordance with the colorMode of the base map.s
|
|
272
|
-
*/
|
|
273
|
-
var combinedLayerTypeChangeUpdater = exports.combinedLayerTypeChangeUpdater = function combinedLayerTypeChangeUpdater(state, action) {
|
|
274
|
-
var visState = state.visState;
|
|
275
|
-
var oldLayerIndex = visState.layers.findIndex(function (layer) {
|
|
276
|
-
return layer === action.oldLayer;
|
|
277
|
-
});
|
|
278
|
-
visState = (0, _visStateUpdaters.layerTypeChangeUpdater)(visState, action);
|
|
279
|
-
var newLayer = visState.layers[oldLayerIndex];
|
|
280
|
-
if (Object.prototype.hasOwnProperty.call(newLayer === null || newLayer === void 0 ? void 0 : newLayer.visConfigSettings, 'darkBaseMapEnabled')) {
|
|
281
|
-
var mapStyle = state.mapStyle;
|
|
282
|
-
var colorMode = mapStyle.mapStyles[mapStyle.styleType].colorMode;
|
|
283
|
-
var darkBaseMapEnabled = newLayer.config.visConfig.darkBaseMapEnabled;
|
|
284
|
-
switch (colorMode) {
|
|
285
|
-
case _constants.BASE_MAP_COLOR_MODES.DARK:
|
|
286
|
-
if (!darkBaseMapEnabled) {
|
|
287
|
-
visState = updateDarkBaseMapLayers(true, newLayer.id)(visState);
|
|
288
|
-
}
|
|
289
|
-
break;
|
|
290
|
-
case _constants.BASE_MAP_COLOR_MODES.LIGHT:
|
|
291
|
-
if (darkBaseMapEnabled) {
|
|
292
|
-
visState = updateDarkBaseMapLayers(false, newLayer.id)(visState);
|
|
293
|
-
}
|
|
294
|
-
break;
|
|
295
|
-
default:
|
|
296
|
-
// do nothing
|
|
297
|
-
}
|
|
298
|
-
}
|
|
299
|
-
return _objectSpread(_objectSpread({}, state), {}, {
|
|
300
|
-
visState: visState
|
|
301
|
-
});
|
|
302
|
-
};
|
|
303
|
-
|
|
304
|
-
/**
|
|
305
|
-
* Make mapLegend active when toggleSplitMap action is called
|
|
306
|
-
*/
|
|
307
|
-
var toggleSplitMapUpdater = exports.toggleSplitMapUpdater = function toggleSplitMapUpdater(state, action) {
|
|
308
|
-
var _newState$uiState$map;
|
|
309
|
-
var newState = _objectSpread(_objectSpread({}, state), {}, {
|
|
310
|
-
visState: (0, _visStateUpdaters.toggleSplitMapUpdater)(state.visState, action),
|
|
311
|
-
uiState: (0, _uiStateUpdaters.toggleSplitMapUpdater)(state.uiState),
|
|
312
|
-
mapState: (0, _mapStateUpdaters.toggleSplitMapUpdater)(state.mapState)
|
|
313
|
-
});
|
|
314
|
-
var isSplit = newState.visState.splitMaps.length !== 0;
|
|
315
|
-
var isLegendActive = (_newState$uiState$map = newState.uiState.mapControls) === null || _newState$uiState$map === void 0 || (_newState$uiState$map = _newState$uiState$map.mapLegend) === null || _newState$uiState$map === void 0 ? void 0 : _newState$uiState$map.active;
|
|
316
|
-
if (isSplit && !isLegendActive) {
|
|
317
|
-
newState.uiState = (0, _uiStateUpdaters.toggleMapControlUpdater)(newState.uiState, {
|
|
318
|
-
payload: {
|
|
319
|
-
panelId: 'mapLegend',
|
|
320
|
-
index: action.payload
|
|
321
|
-
}
|
|
322
|
-
});
|
|
323
|
-
}
|
|
324
|
-
return newState;
|
|
325
|
-
};
|
|
326
|
-
var defaultReplaceDataToMapOptions = {
|
|
327
|
-
keepExistingConfig: true,
|
|
328
|
-
centerMap: true,
|
|
329
|
-
autoCreateLayers: false
|
|
330
|
-
};
|
|
331
|
-
|
|
332
|
-
/**
|
|
333
|
-
* Updater replace a dataset in state
|
|
334
|
-
*/
|
|
335
|
-
var replaceDataInMapUpdater = exports.replaceDataInMapUpdater = function replaceDataInMapUpdater(state, _ref3) {
|
|
336
|
-
var payload = _ref3.payload;
|
|
337
|
-
var datasetToReplaceId = payload.datasetToReplaceId,
|
|
338
|
-
datasetToUse = payload.datasetToUse,
|
|
339
|
-
_payload$options = payload.options,
|
|
340
|
-
options = _payload$options === void 0 ? {} : _payload$options;
|
|
341
|
-
var addDataToMapOptions = _objectSpread(_objectSpread({}, defaultReplaceDataToMapOptions), options);
|
|
342
|
-
|
|
343
|
-
// check if dataset is there
|
|
344
|
-
if (!state.visState.datasets[datasetToReplaceId]) {
|
|
345
|
-
return state;
|
|
346
|
-
}
|
|
347
|
-
// datasetToUse is ProtoDataset
|
|
348
|
-
var dataIdToUse = datasetToUse.info.id;
|
|
349
|
-
if (!dataIdToUse) {
|
|
350
|
-
return state;
|
|
351
|
-
}
|
|
352
|
-
// remove dataset and put dependencies in toBeMerged
|
|
353
|
-
var preparedState = _objectSpread(_objectSpread({}, state), {}, {
|
|
354
|
-
visState: (0, _visStateUpdaters.prepareStateForDatasetReplace)(state.visState, datasetToReplaceId, dataIdToUse)
|
|
355
|
-
});
|
|
356
|
-
var nextState = addDataToMapUpdater(preparedState, (0, _composerHelpers.payload_)({
|
|
357
|
-
datasets: datasetToUse,
|
|
358
|
-
// should zoom to new dataset
|
|
359
|
-
options: addDataToMapOptions
|
|
360
|
-
}));
|
|
361
|
-
return nextState;
|
|
362
|
-
};
|
|
363
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdWlTdGF0ZVVwZGF0ZXJzIiwicmVxdWlyZSIsIl92aXNTdGF0ZVVwZGF0ZXJzIiwiX21hcFN0YXRlVXBkYXRlcnMiLCJfbWFwU3R5bGVVcGRhdGVycyIsIl9wcm9jZXNzb3JzIiwiX2NvbXBvc2VySGVscGVycyIsIl91dGlscyIsIl9kYXRhVXRpbHMiLCJfY29uc3RhbnRzIiwib3duS2V5cyIsImUiLCJyIiwidCIsIk9iamVjdCIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJvIiwiZmlsdGVyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5MiIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJjb21iaW5lZFVwZGF0ZXJzIiwiaXNWYWxpZENvbmZpZyIsImV4cG9ydHMiLCJjb25maWciLCJpc1BsYWluT2JqZWN0IiwidmVyc2lvbiIsImRlZmF1bHRBZGREYXRhVG9NYXBPcHRpb25zIiwiY2VudGVyTWFwIiwia2VlcEV4aXN0aW5nQ29uZmlnIiwiYXV0b0NyZWF0ZUxheWVycyIsImF1dG9DcmVhdGVUb29sdGlwcyIsImFkZERhdGFUb01hcFVwZGF0ZXIiLCJzdGF0ZSIsIl9yZWYiLCJfZGF0YXNldHMkIiwiX2RhdGFzZXRzJDIiLCJfZGF0YXNldHMkMyIsInBheWxvYWQiLCJkYXRhc2V0cyIsImluZm8iLCJvcHRpb25zIiwiaXNQcm9ncmVzc2l2ZUxvYWRpbmciLCJBcnJheSIsImlzQXJyYXkiLCJmb3JtYXQiLCJpZCIsInZpc1N0YXRlIiwiY29tcG9zZV8iLCJwaWNrXyIsImFwcGx5XyIsInZpc1N0YXRlVXBkYXRlVmlzRGF0YVVwZGF0ZXIiLCJwYXJzZWRDb25maWciLCJzY2hlbWEiLCJwYXJzZVNhdmVkQ29uZmlnIiwib2xkTGF5ZXJzIiwibGF5ZXJzIiwiZmlsdGVyTmV3bHlBZGRlZExheWVycyIsIm5sIiwiZmluZCIsIm9sIiwiZmluZE1hcEJvdW5kc0lmQ2VudGVyZWQiLCJib3VuZHMiLCJmaW5kTWFwQm91bmRzIiwidW5kZWZpbmVkIiwiaWZfIiwiQm9vbGVhbiIsInNldE1hcEluZm9VcGRhdGVyIiwid2l0aF8iLCJfcmVmMiIsInN0YXRlTWFwQ29uZmlnVXBkYXRlciIsInBheWxvYWRfIiwic3R5bGVNYXBDb25maWdVcGRhdGVyIiwidWlTdGF0ZVJlY2VpdmVNYXBDb25maWdVcGRhdGVyIiwidWlTdGF0ZUxvYWRGaWxlc1N1Y2Nlc3NVcGRhdGVyIiwidG9nZ2xlTW9kYWxVcGRhdGVyIiwibWVyZ2VfIiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwicmVhZE9ubHkiLCJsb2FkRmlsZXNTdWNjZXNzVXBkYXRlciIsImFjdGlvbiIsInBheWxvYWRzIiwiZmlsZXNUb0RhdGFQYXlsb2FkIiwicmVzdWx0IiwibmV4dFN0YXRlIiwiZmlsZUxvYWRpbmciLCJmaWxlTG9hZGluZ1Byb2dyZXNzIiwic3RhdGVXaXRoRGF0YSIsIm1hcCIsInAiLCJhZGREYXRhVG9NYXBDb21wb3NlZCIsInVwZGF0ZU92ZXJsYXlCbGVuZGluZyIsIm92ZXJsYXlCbGVuZGluZyIsIk9WRVJMQVlfQkxFTkRJTkdTIiwibm9ybWFsIiwidmFsdWUiLCJ1cGRhdGVEYXJrQmFzZU1hcExheWVycyIsImRhcmtCYXNlTWFwRW5hYmxlZCIsImxheWVySWQiLCJsYXllciIsInZpc0NvbmZpZ1NldHRpbmdzIiwidmlzQ29uZmlnIiwidXBkYXRlTGF5ZXJDb25maWciLCJjb21iaW5lZE1hcFN0eWxlQ2hhbmdlVXBkYXRlciIsIm1hcFN0eWxlIiwiZ2V0Q29sb3JNb2RlIiwia2V5IiwiX21hcFN0eWxlJG1hcFN0eWxlcyRrIiwibWFwU3R5bGVzIiwiY29sb3JNb2RlIiwicHJldkNvbG9yTW9kZSIsInN0eWxlVHlwZSIsIm5leHRDb2xvck1vZGUiLCJCQVNFX01BUF9DT0xPUl9NT0RFUyIsIkRBUksiLCJzY3JlZW4iLCJMSUdIVCIsImRhcmtlbiIsIm1hcFN0eWxlQ2hhbmdlVXBkYXRlciIsImNvbWJpbmVkTGF5ZXJUeXBlQ2hhbmdlVXBkYXRlciIsIm9sZExheWVySW5kZXgiLCJmaW5kSW5kZXgiLCJvbGRMYXllciIsImxheWVyVHlwZUNoYW5nZVVwZGF0ZXIiLCJuZXdMYXllciIsInRvZ2dsZVNwbGl0TWFwVXBkYXRlciIsIl9uZXdTdGF0ZSR1aVN0YXRlJG1hcCIsIm5ld1N0YXRlIiwidmlzU3RhdGVUb2dnbGVTcGxpdE1hcFVwZGF0ZXIiLCJ1aVN0YXRlIiwidWlTdGF0ZVRvZ2dsZVNwbGl0TWFwVXBkYXRlciIsIm1hcFN0YXRlIiwibWFwU3RhdGVUb2dnbGVTcGxpdE1hcFVwZGF0ZXIiLCJpc1NwbGl0Iiwic3BsaXRNYXBzIiwiaXNMZWdlbmRBY3RpdmUiLCJtYXBDb250cm9scyIsIm1hcExlZ2VuZCIsImFjdGl2ZSIsInRvZ2dsZU1hcENvbnRyb2xVcGRhdGVyIiwicGFuZWxJZCIsImluZGV4IiwiZGVmYXVsdFJlcGxhY2VEYXRhVG9NYXBPcHRpb25zIiwicmVwbGFjZURhdGFJbk1hcFVwZGF0ZXIiLCJfcmVmMyIsImRhdGFzZXRUb1JlcGxhY2VJZCIsImRhdGFzZXRUb1VzZSIsIl9wYXlsb2FkJG9wdGlvbnMiLCJhZGREYXRhVG9NYXBPcHRpb25zIiwiZGF0YUlkVG9Vc2UiLCJwcmVwYXJlZFN0YXRlIiwicHJlcGFyZVN0YXRlRm9yRGF0YXNldFJlcGxhY2UiXSwic291cmNlcyI6WyIuLi9zcmMvY29tYmluZWQtdXBkYXRlcnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IHtcbiAgdG9nZ2xlTW9kYWxVcGRhdGVyLFxuICBsb2FkRmlsZXNTdWNjZXNzVXBkYXRlciBhcyB1aVN0YXRlTG9hZEZpbGVzU3VjY2Vzc1VwZGF0ZXIsXG4gIHRvZ2dsZU1hcENvbnRyb2xVcGRhdGVyLFxuICB0b2dnbGVTcGxpdE1hcFVwZGF0ZXIgYXMgdWlTdGF0ZVRvZ2dsZVNwbGl0TWFwVXBkYXRlcixcbiAgcmVjZWl2ZU1hcENvbmZpZ1VwZGF0ZXIgYXMgdWlTdGF0ZVJlY2VpdmVNYXBDb25maWdVcGRhdGVyXG59IGZyb20gJy4vdWktc3RhdGUtdXBkYXRlcnMnO1xuaW1wb3J0IHtcbiAgdXBkYXRlVmlzRGF0YVVwZGF0ZXIgYXMgdmlzU3RhdGVVcGRhdGVWaXNEYXRhVXBkYXRlcixcbiAgc2V0TWFwSW5mb1VwZGF0ZXIsXG4gIGxheWVyVHlwZUNoYW5nZVVwZGF0ZXIsXG4gIHRvZ2dsZVNwbGl0TWFwVXBkYXRlciBhcyB2aXNTdGF0ZVRvZ2dsZVNwbGl0TWFwVXBkYXRlcixcbiAgcHJlcGFyZVN0YXRlRm9yRGF0YXNldFJlcGxhY2Vcbn0gZnJvbSAnLi92aXMtc3RhdGUtdXBkYXRlcnMnO1xuaW1wb3J0IHtcbiAgcmVjZWl2ZU1hcENvbmZpZ1VwZGF0ZXIgYXMgc3RhdGVNYXBDb25maWdVcGRhdGVyLFxuICB0b2dnbGVTcGxpdE1hcFVwZGF0ZXIgYXMgbWFwU3RhdGVUb2dnbGVTcGxpdE1hcFVwZGF0ZXJcbn0gZnJvbSAnLi9tYXAtc3RhdGUtdXBkYXRlcnMnO1xuaW1wb3J0IHtcbiAgbWFwU3R5bGVDaGFuZ2VVcGRhdGVyLFxuICByZWNlaXZlTWFwQ29uZmlnVXBkYXRlciBhcyBzdHlsZU1hcENvbmZpZ1VwZGF0ZXJcbn0gZnJvbSAnLi9tYXAtc3R5bGUtdXBkYXRlcnMnO1xuaW1wb3J0IHtmaWxlc1RvRGF0YVBheWxvYWR9IGZyb20gJ0BrZXBsZXIuZ2wvcHJvY2Vzc29ycyc7XG5pbXBvcnQge3BheWxvYWRfLCBhcHBseV8sIHdpdGhfLCBpZl8sIGNvbXBvc2VfLCBtZXJnZV8sIHBpY2tffSBmcm9tICcuL2NvbXBvc2VyLWhlbHBlcnMnO1xuaW1wb3J0IHtNYXBTdGF0ZSwgVWlTdGF0ZSwgQWRkRGF0YVRvTWFwUGF5bG9hZCwgUGFyc2VkQ29uZmlnfSBmcm9tICdAa2VwbGVyLmdsL3R5cGVzJztcbmltcG9ydCB7TWFwU3R5bGV9IGZyb20gJy4vbWFwLXN0eWxlLXVwZGF0ZXJzJztcbmltcG9ydCB7UHJvdmlkZXJTdGF0ZX0gZnJvbSAnLi9wcm92aWRlci1zdGF0ZS11cGRhdGVycyc7XG5pbXBvcnQge1xuICBsb2FkRmlsZXNTdWNjZXNzVXBkYXRlckFjdGlvbixcbiAgTWFwU3R5bGVDaGFuZ2VVcGRhdGVyQWN0aW9uLFxuICBMYXllclR5cGVDaGFuZ2VVcGRhdGVyQWN0aW9uLFxuICBUb2dnbGVTcGxpdE1hcFVwZGF0ZXJBY3Rpb24sXG4gIFJlcGxhY2VEYXRhSW5NYXBQYXlsb2FkXG59IGZyb20gJ0BrZXBsZXIuZ2wvYWN0aW9ucyc7XG5pbXBvcnQge1Zpc1N0YXRlfSBmcm9tICdAa2VwbGVyLmdsL3NjaGVtYXMnO1xuaW1wb3J0IHtMYXllcn0gZnJvbSAnQGtlcGxlci5nbC9sYXllcnMnO1xuaW1wb3J0IHtpc1BsYWluT2JqZWN0fSBmcm9tICdAa2VwbGVyLmdsL3V0aWxzJztcbmltcG9ydCB7ZmluZE1hcEJvdW5kc30gZnJvbSAnLi9kYXRhLXV0aWxzJztcbmltcG9ydCB7QkFTRV9NQVBfQ09MT1JfTU9ERVMsIE9WRVJMQVlfQkxFTkRJTkdTfSBmcm9tICdAa2VwbGVyLmdsL2NvbnN0YW50cyc7XG5cbmV4cG9ydCB0eXBlIEtlcGxlckdsU3RhdGUgPSB7XG4gIHZpc1N0YXRlOiBWaXNTdGF0ZTtcbiAgbWFwU3RhdGU6IE1hcFN0YXRlO1xuICBtYXBTdHlsZTogTWFwU3R5bGU7XG4gIHVpU3RhdGU6IFVpU3RhdGU7XG4gIHByb3ZpZGVyU3RhdGU6IFByb3ZpZGVyU3RhdGU7XG59O1xuXG4vLyBjb21wb3NlIGFjdGlvbiB0byBhcHBseSByZXN1bHQgbXVsdGlwbGUgcmVkdWNlcnMsIHdpdGggdGhlIG91dHB1dCBvZiBvbmVcblxuLyoqXG4gKiBTb21lIGFjdGlvbnMgd2lsbCBhZmZlY3QgdGhlIGVudGlyZSBrZXBsZXIubGcgaW5zdGFuY2Ugc3RhdGUuXG4gKiBUaGUgdXBkYXRlcnMgZm9yIHRoZXNlIGFjdGlvbnMgaXMgZXhwb3J0ZWQgYXMgYGNvbWJpbmVkVXBkYXRlcnNgLiBUaGVzZSB1cGRhdGVyIHRha2UgdGhlIGVudGlyZSBpbnN0YW5jZSBzdGF0ZVxuICogYXMgdGhlIGZpcnN0IGFyZ3VtZW50LiBSZWFkIG1vcmUgYWJvdXQgW1VzaW5nIHVwZGF0ZXJzXSguLi9hZHZhbmNlZC11c2FnZS91c2luZy11cGRhdGVycy5tZClcbiAqIEBwdWJsaWNcbiAqIEBleGFtcGxlXG4gKlxuICogaW1wb3J0IGtlcGxlckdsUmVkdWNlciwge2NvbWJpbmVkVXBkYXRlcnN9IGZyb20gJ0BrZXBsZXIuZ2wvcmVkdWNlcnMnO1xuICogLy8gUm9vdCBSZWR1Y2VyXG4gKiBjb25zdCByZWR1Y2VycyA9IGNvbWJpbmVSZWR1Y2Vycyh7XG4gKiAga2VwbGVyR2w6IGtlcGxlckdsUmVkdWNlcixcbiAqICBhcHA6IGFwcFJlZHVjZXJcbiAqIH0pO1xuICpcbiAqIGNvbnN0IGNvbXBvc2VkUmVkdWNlciA9IChzdGF0ZSwgYWN0aW9uKSA9PiB7XG4gKiAgc3dpdGNoIChhY3Rpb24udHlwZSkge1xuICogICAgLy8gYWRkIGRhdGEgdG8gbWFwIGFmdGVyIHJlY2VpdmluZyBkYXRhIGZyb20gcmVtb3RlIHNvdXJjZXNcbiAqICAgIGNhc2UgJ0xPQURfUkVNT1RFX1JFU09VUkNFX1NVQ0NFU1MnOlxuICogICAgICByZXR1cm4ge1xuICogICAgICAgIC4uLnN0YXRlLFxuICogICAgICAgIGtlcGxlckdsOiB7XG4gKiAgICAgICAgICAuLi5zdGF0ZS5rZXBsZXJHbCxcbiAqICAgICAgICAgIC8vIHBhc3MgaW4ga2VwbGVyLmdsIGluc3RhbmNlIHN0YXRlIHRvIGNvbWJpbmVkVXBkYXRlcnNcbiAqICAgICAgICAgIG1hcDogIGNvbWJpbmVkVXBkYXRlcnMuYWRkRGF0YVRvTWFwVXBkYXRlcihcbiAqICAgICAgICAgICBzdGF0ZS5rZXBsZXJHbC5tYXAsXG4gKiAgICAgICAgICAge1xuICogICAgICAgICAgICAgcGF5bG9hZDoge1xuICogICAgICAgICAgICAgICBkYXRhc2V0czogYWN0aW9uLmRhdGFzZXRzLFxuICogICAgICAgICAgICAgICBvcHRpb25zOiB7cmVhZE9ubHk6IHRydWV9LFxuICogICAgICAgICAgICAgICBjb25maWc6IGFjdGlvbi5jb25maWdcbiAqICAgICAgICAgICAgICB9XG4gKiAgICAgICAgICAgIH1cbiAqICAgICAgICAgIClcbiAqICAgICAgICB9XG4gKiAgICAgIH07XG4gKiAgfVxuICogIHJldHVybiByZWR1Y2VycyhzdGF0ZSwgYWN0aW9uKTtcbiAqIH07XG4gKlxuICogZXhwb3J0IGRlZmF1bHQgY29tcG9zZWRSZWR1Y2VyO1xuICovXG5cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFycyAqL1xuLy8gQHRzLWlnbm9yZVxuY29uc3QgY29tYmluZWRVcGRhdGVycyA9IG51bGw7XG4vKiBlc2xpbnQtZW5hYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFycyAqL1xuXG5leHBvcnQgY29uc3QgaXNWYWxpZENvbmZpZyA9IGNvbmZpZyA9PlxuICBpc1BsYWluT2JqZWN0KGNvbmZpZykgJiYgaXNQbGFpbk9iamVjdChjb25maWcuY29uZmlnKSAmJiBjb25maWcudmVyc2lvbjtcblxuZXhwb3J0IGNvbnN0IGRlZmF1bHRBZGREYXRhVG9NYXBPcHRpb25zID0ge1xuICBjZW50ZXJNYXA6IHRydWUsXG4gIGtlZXBFeGlzdGluZ0NvbmZpZzogZmFsc2UsXG4gIGF1dG9DcmVhdGVMYXllcnM6IHRydWUsXG4gIGF1dG9DcmVhdGVUb29sdGlwczogdHJ1ZVxufTtcblxuLyoqXG4gKiBDb21iaW5lIGRhdGEgYW5kIGZ1bGwgY29uZmlndXJhdGlvbiB1cGRhdGUgaW4gYSBzaW5nbGUgYWN0aW9uXG4gKlxuICogQG1lbWJlcm9mIGNvbWJpbmVkVXBkYXRlcnNcbiAqIEBwYXJhbSB7T2JqZWN0fSBzdGF0ZSBrZXBsZXIuZ2wgaW5zdGFuY2Ugc3RhdGUsIGNvbnRhaW5pbmcgYWxsIHN1YnJlZHVjZXIgc3RhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBhY3Rpb25cbiAqIEBwYXJhbSB7T2JqZWN0fSBhY3Rpb24ucGF5bG9hZCBge2RhdGFzZXRzLCBvcHRpb25zLCBjb25maWd9YFxuICogQHBhcmFtIGFjdGlvbi5wYXlsb2FkLmRhdGFzZXRzIC0gKioqcmVxdWlyZWQqKiBkYXRhc2V0cyBjYW4gYmUgYSBkYXRhc2V0IG9yIGFuIGFycmF5IG9mIGRhdGFzZXRzXG4gKiBFYWNoIGRhdGFzZXQgb2JqZWN0IG5lZWRzIHRvIGhhdmUgYGluZm9gIGFuZCBgZGF0YWAgcHJvcGVydHkuXG4gKiBAcGFyYW0gW2FjdGlvbi5wYXlsb2FkLm9wdGlvbnNdIG9wdGlvbiBvYmplY3QgYHtjZW50ZXJNYXA6IHRydWV9YFxuICogQHBhcmFtIFthY3Rpb24ucGF5bG9hZC5jb25maWddIG1hcCBjb25maWdcbiAqIEBwYXJhbSBbYWN0aW9uLnBheWxvYWQuaW5mb10gbWFwIGluZm8gY29udGFpbnMgdGl0bGUgYW5kIGRlc2NyaXB0aW9uXG4gKiBAcmV0dXJucyBuZXh0U3RhdGVcbiAqXG4gKiBAdHlwZWRlZiB7T2JqZWN0fSBEYXRhc2V0XG4gKiBAcHJvcGVydHkgaW5mbyAtaW5mbyBvZiBhIGRhdGFzZXRcbiAqIEBwcm9wZXJ0eSBpbmZvLmlkIC0gaWQgb2YgdGhpcyBkYXRhc2V0LiBJZiBjb25maWcgaXMgZGVmaW5lZCwgYGlkYCBzaG91bGQgbWF0Y2hlcyB0aGUgYGRhdGFJZGAgaW4gY29uZmlnLlxuICogQHByb3BlcnR5IGluZm8ubGFiZWwgLSBBIGRpc3BsYXkgbmFtZSBvZiB0aGlzIGRhdGFzZXRcbiAqIEBwcm9wZXJ0eSBkYXRhIC0gKioqcmVxdWlyZWQqKiBUaGUgZGF0YSBvYmplY3QsIGluIGEgdGFidWxhciBmb3JtYXQgd2l0aCAyIHByb3BlcnRpZXMgYGZpZWxkc2AgYW5kIGByb3dzYFxuICogQHByb3BlcnR5IGRhdGEuZmllbGRzIC0gKioqcmVxdWlyZWQqKiBBcnJheSBvZiBmaWVsZHMsXG4gKiBAcHJvcGVydHkgZGF0YS5maWVsZHMubmFtZSAtICoqKnJlcXVpcmVkKiogTmFtZSBvZiB0aGUgZmllbGQsXG4gKiBAcHJvcGVydHkgZGF0YS5yb3dzIC0gKioqcmVxdWlyZWQqKiBBcnJheSBvZiByb3dzLCBpbiBhIHRhYnVsYXIgZm9ybWF0IHdpdGggYGZpZWxkc2AgYW5kIGByb3dzYFxuICpcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IGFkZERhdGFUb01hcFVwZGF0ZXIgPSAoXG4gIHN0YXRlOiBLZXBsZXJHbFN0YXRlLFxuICB7cGF5bG9hZH06IHtwYXlsb2FkOiBBZGREYXRhVG9NYXBQYXlsb2FkfVxuKTogS2VwbGVyR2xTdGF0ZSA9PiB7XG4gIGNvbnN0IHtkYXRhc2V0cywgY29uZmlnLCBpbmZvfSA9IHBheWxvYWQ7XG5cbiAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAuLi5kZWZhdWx0QWRkRGF0YVRvTWFwT3B0aW9ucyxcbiAgICAuLi5wYXlsb2FkLm9wdGlvbnNcbiAgfTtcblxuICAvLyBjaGVjayBpZiBwcm9ncmVzc2l2ZSBsb2FkaW5nIGRhdGFzZXQgYnkgYmF0Y2hlcywgYW5kIHVwZGF0ZSB2aXNTdGF0ZSBkaXJlY3RseVxuICBjb25zdCBpc1Byb2dyZXNzaXZlTG9hZGluZyA9XG4gICAgQXJyYXkuaXNBcnJheShkYXRhc2V0cykgJiZcbiAgICBkYXRhc2V0c1swXT8uaW5mby5mb3JtYXQgPT09ICdhcnJvdycgJiZcbiAgICBkYXRhc2V0c1swXT8uaW5mby5pZCAmJlxuICAgIGRhdGFzZXRzWzBdPy5pbmZvLmlkIGluIHN0YXRlLnZpc1N0YXRlLmRhdGFzZXRzO1xuICBpZiAoaXNQcm9ncmVzc2l2ZUxvYWRpbmcpIHtcbiAgICByZXR1cm4gY29tcG9zZV88S2VwbGVyR2xTdGF0ZT4oW1xuICAgICAgcGlja18oJ3Zpc1N0YXRlJykoXG4gICAgICAgIGFwcGx5XzxWaXNTdGF0ZSwgYW55Pih2aXNTdGF0ZVVwZGF0ZVZpc0RhdGFVcGRhdGVyLCB7XG4gICAgICAgICAgZGF0YXNldHMsXG4gICAgICAgICAgb3B0aW9ucyxcbiAgICAgICAgICBjb25maWdcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICBdKShzdGF0ZSk7XG4gIH1cblxuICAvLyBAdHMtZXhwZWN0LWVycm9yXG4gIGxldCBwYXJzZWRDb25maWc6IFBhcnNlZENvbmZpZyA9IGNvbmZpZztcblxuICBpZiAoaXNWYWxpZENvbmZpZyhjb25maWcpKSB7XG4gICAgLy8gaWYgcGFzc2VkIGluIHNhdmVkIGNvbmZpZ1xuICAgIC8vIEB0cy1leHBlY3QtZXJyb3JcbiAgICBwYXJzZWRDb25maWcgPSBzdGF0ZS52aXNTdGF0ZS5zY2hlbWEucGFyc2VTYXZlZENvbmZpZyhjb25maWcpO1xuICB9XG4gIGNvbnN0IG9sZExheWVycyA9IHN0YXRlLnZpc1N0YXRlLmxheWVycztcbiAgY29uc3QgZmlsdGVyTmV3bHlBZGRlZExheWVycyA9IChsYXllcnM6IExheWVyW10pID0+XG4gICAgbGF5ZXJzLmZpbHRlcihubCA9PiAhb2xkTGF5ZXJzLmZpbmQob2wgPT4gb2wgPT09IG5sKSk7XG5cbiAgLy8gUmV0dXJucyB1bmRlZmluZWQgaWYgbm90IGZvdW5kLCB0byBtYWtlIHR5cGVzY3JpcHQgaGFwcHlcbiAgY29uc3QgZmluZE1hcEJvdW5kc0lmQ2VudGVyZWQgPSAobGF5ZXJzOiBMYXllcltdKSA9PiB7XG4gICAgY29uc3QgYm91bmRzID0gb3B0aW9ucy5jZW50ZXJNYXAgJiYgZmluZE1hcEJvdW5kcyhsYXllcnMpO1xuICAgIHJldHVybiBib3VuZHMgPyBib3VuZHMgOiB1bmRlZmluZWQ7XG4gIH07XG5cbiAgcmV0dXJuIGNvbXBvc2VfPEtlcGxlckdsU3RhdGU+KFtcbiAgICBwaWNrXygndmlzU3RhdGUnKShcbiAgICAgIC8vIHRoaXMgcGFydCBjYW4gYmUgYXN5bmNcbiAgICAgIGFwcGx5XzxWaXNTdGF0ZSwgYW55Pih2aXNTdGF0ZVVwZGF0ZVZpc0RhdGFVcGRhdGVyLCB7XG4gICAgICAgIGRhdGFzZXRzLFxuICAgICAgICBvcHRpb25zLFxuICAgICAgICBjb25maWc6IHBhcnNlZENvbmZpZ1xuICAgICAgfSlcbiAgICApLFxuXG4gICAgaWZfKEJvb2xlYW4oaW5mbyksIHBpY2tfKCd2aXNTdGF0ZScpKGFwcGx5XzxWaXNTdGF0ZSwgYW55PihzZXRNYXBJbmZvVXBkYXRlciwge2luZm99KSkpLFxuICAgIC8vIE5vdGUgdGhhdCBmaXQgYm91bmRzIGhlcmUgd29uJ3QgYmUgY2FsbGVkIGluIGNhc2UgZGF0YXNldHMgYXJlIGNyZWF0ZWQgaW4gVGFza3MuXG4gICAgLy8gQSBzZXBhcmF0ZSBUYXNrIHRvIHVwZGF0ZSBib3VuZHMgaXMgY3JlYXRlZCBvbmNlIHRoZSBkYXRhc2V0cyBhcmUgcmVhZHkuXG4gICAgd2l0aF8oKHt2aXNTdGF0ZX0pID0+XG4gICAgICBwaWNrXygnbWFwU3RhdGUnKShcbiAgICAgICAgYXBwbHlfKFxuICAgICAgICAgIHN0YXRlTWFwQ29uZmlnVXBkYXRlcixcbiAgICAgICAgICBwYXlsb2FkXyh7XG4gICAgICAgICAgICBjb25maWc6IHBhcnNlZENvbmZpZyxcbiAgICAgICAgICAgIG9wdGlvbnMsXG4gICAgICAgICAgICBib3VuZHM6IGZpbmRNYXBCb3VuZHNJZkNlbnRlcmVkKGZpbHRlck5ld2x5QWRkZWRMYXllcnModmlzU3RhdGUubGF5ZXJzKSlcbiAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgICApXG4gICAgKSxcbiAgICBwaWNrXygnbWFwU3R5bGUnKShhcHBseV8oc3R5bGVNYXBDb25maWdVcGRhdGVyLCBwYXlsb2FkXyh7Y29uZmlnOiBwYXJzZWRDb25maWcsIG9wdGlvbnN9KSkpLFxuICAgIHBpY2tfKCd1aVN0YXRlJykoXG4gICAgICBhcHBseV8odWlTdGF0ZVJlY2VpdmVNYXBDb25maWdVcGRhdGVyLCBwYXlsb2FkXyh7Y29uZmlnOiBwYXJzZWRDb25maWcsIG9wdGlvbnN9KSlcbiAgICApLFxuICAgIHBpY2tfKCd1aVN0YXRlJykoYXBwbHlfKHVpU3RhdGVMb2FkRmlsZXNTdWNjZXNzVXBkYXRlciwgcGF5bG9hZF8obnVsbCkpKSxcblxuICAgIHBpY2tfKCd1aVN0YXRlJykoYXBwbHlfKHRvZ2dsZU1vZGFsVXBkYXRlciwgcGF5bG9hZF8obnVsbCkpKSxcbiAgICBwaWNrXygndWlTdGF0ZScpKFxuICAgICAgbWVyZ2VfKFxuICAgICAgICBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob3B0aW9ucywgJ3JlYWRPbmx5JylcbiAgICAgICAgICA/IHtyZWFkT25seTogb3B0aW9ucy5yZWFkT25seX1cbiAgICAgICAgICA6IHt9XG4gICAgICApXG4gICAgKVxuICBdKShzdGF0ZSk7XG59O1xuXG5leHBvcnQgY29uc3QgbG9hZEZpbGVzU3VjY2Vzc1VwZGF0ZXIgPSAoXG4gIHN0YXRlOiBLZXBsZXJHbFN0YXRlLFxuICBhY3Rpb246IGxvYWRGaWxlc1N1Y2Nlc3NVcGRhdGVyQWN0aW9uXG4pOiBLZXBsZXJHbFN0YXRlID0+IHtcbiAgLy8gc3RpbGwgbW9yZSB0byBsb2FkXG4gIGNvbnN0IHBheWxvYWRzID0gZmlsZXNUb0RhdGFQYXlsb2FkKGFjdGlvbi5yZXN1bHQpO1xuICBjb25zdCBuZXh0U3RhdGUgPSBjb21wb3NlXyhbXG4gICAgcGlja18oJ3Zpc1N0YXRlJykoXG4gICAgICBtZXJnZV8oe1xuICAgICAgICBmaWxlTG9hZGluZzogZmFsc2UsXG4gICAgICAgIGZpbGVMb2FkaW5nUHJvZ3Jlc3M6IHt9XG4gICAgICB9KVxuICAgIClcbiAgXSkoc3RhdGUpO1xuICAvLyBtYWtlIG11bHRpcGxlIGFkZCBkYXRhIHRvIG1hcCBjYWxsc1xuICBjb25zdCBzdGF0ZVdpdGhEYXRhID0gY29tcG9zZV8ocGF5bG9hZHMubWFwKHAgPT4gYXBwbHlfKGFkZERhdGFUb01hcFVwZGF0ZXIsIHBheWxvYWRfKHApKSkpKFxuICAgIG5leHRTdGF0ZVxuICApO1xuICByZXR1cm4gc3RhdGVXaXRoRGF0YSBhcyBLZXBsZXJHbFN0YXRlO1xufTtcblxuZXhwb3J0IGNvbnN0IGFkZERhdGFUb01hcENvbXBvc2VkID0gYWRkRGF0YVRvTWFwVXBkYXRlcjtcblxuLyoqXG4gKiBIZWxwZXIgd2hpY2ggdXBkYXRlcyBtYXAgb3ZlcmxheSBibGVuZGluZyBtb2RlIGluIHZpc1N0YXRlLFxuICogYnV0IG9ubHkgaWYgaXQncyBub3QgY3VycmVudGx5IGluIHRoZSBgbm9ybWFsYCBtb2RlLlxuICovXG5jb25zdCB1cGRhdGVPdmVybGF5QmxlbmRpbmcgPSBvdmVybGF5QmxlbmRpbmcgPT4gdmlzU3RhdGUgPT4ge1xuICBpZiAodmlzU3RhdGUub3ZlcmxheUJsZW5kaW5nICE9PSBPVkVSTEFZX0JMRU5ESU5HUy5ub3JtYWwudmFsdWUpIHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4udmlzU3RhdGUsXG4gICAgICBvdmVybGF5QmxlbmRpbmdcbiAgICB9O1xuICB9XG4gIHJldHVybiB2aXNTdGF0ZTtcbn07XG5cbi8qKlxuICogSGVscGVyIHdoaWNoIHVwZGF0ZXMgYGRhcmtCYXNlTWFwRW5hYmxlZGAgaW4gYWxsIHRoZSBsYXllcnMgaW4gdmlzU3RhdGUgd2hpY2hcbiAqIGhhdmUgdGhpcyBjb25maWcgc2V0dGluZyAob3IgaW4gb25lIHNwZWNpZmljIGxheWVyIGlmIHRoZSBgbGF5ZXJJZGAgcGFyYW0gaXMgcHJvdmlkZWQpLlxuICovXG5jb25zdCB1cGRhdGVEYXJrQmFzZU1hcExheWVycyA9XG4gIChkYXJrQmFzZU1hcEVuYWJsZWQ6IGJvb2xlYW4sIGxheWVySWQ6IHN0cmluZyB8IG51bGwgPSBudWxsKSA9PlxuICB2aXNTdGF0ZSA9PiAoe1xuICAgIC4uLnZpc1N0YXRlLFxuICAgIGxheWVyczogdmlzU3RhdGUubGF5ZXJzLm1hcChsYXllciA9PiB7XG4gICAgICBpZiAoIWxheWVySWQgfHwgbGF5ZXIuaWQgPT09IGxheWVySWQpIHtcbiAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChsYXllci52aXNDb25maWdTZXR0aW5ncywgJ2RhcmtCYXNlTWFwRW5hYmxlZCcpKSB7XG4gICAgICAgICAgY29uc3Qge3Zpc0NvbmZpZ30gPSBsYXllci5jb25maWc7XG4gICAgICAgICAgcmV0dXJuIGxheWVyLnVwZGF0ZUxheWVyQ29uZmlnKHtcbiAgICAgICAgICAgIHZpc0NvbmZpZzogey4uLnZpc0NvbmZpZywgZGFya0Jhc2VNYXBFbmFibGVkfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gbGF5ZXI7XG4gICAgfSlcbiAgfSk7XG5cbi8qKlxuICogVXBkYXRlciB0aGF0IGNoYW5nZXMgdGhlIG1hcCBzdHlsZSBieSBjYWxsaW5nIG1hcFN0eWxlQ2hhbmdlVXBkYXRlciBvbiB2aXNTdGF0ZS5cbiAqIEluIGFkZGl0aW9uIHRvIHRoYXQsIGl0IGRvZXMgdGhlIGZvbGxvd2luZzpcbiAqXG4gKiAgIDEuIFVwZGF0ZSBtYXAgb3ZlcmxheSBibGVuZGluZyBtb2RlIGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgY29sb3JNb2RlIG9mIHRoZVxuICogICAgICBiYXNlIG1hcCwgYnV0IG9ubHkgaWYgaXQncyBub3QgaW4gdGhlIGBub3JtYWxgIG1vZGUuXG4gKlxuICogICAyLiBVcGRhdGUgYWxsIHRoZSBsYXllcnMgd2hpY2ggaGF2ZSB0aGUgYGRhcmtCYXNlTWFwRW5hYmxlZGAgY29uZmlnIHNldHRpbmdcbiAqICAgICAgYWRqdXN0aW5nIGl0IGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgY29sb3JNb2RlIG9mIHRoZSBiYXNlIG1hcC5cbiAqXG4gKi9cbmV4cG9ydCBjb25zdCBjb21iaW5lZE1hcFN0eWxlQ2hhbmdlVXBkYXRlciA9IChcbiAgc3RhdGU6IEtlcGxlckdsU3RhdGUsXG4gIGFjdGlvbjogTWFwU3R5bGVDaGFuZ2VVcGRhdGVyQWN0aW9uXG4pOiBLZXBsZXJHbFN0YXRlID0+IHtcbiAgY29uc3Qge3BheWxvYWR9ID0gYWN0aW9uO1xuICBjb25zdCB7bWFwU3R5bGV9ID0gc3RhdGU7XG4gIGNvbnN0IGdldENvbG9yTW9kZSA9IGtleSA9PiBtYXBTdHlsZS5tYXBTdHlsZXNba2V5XT8uY29sb3JNb2RlO1xuICBjb25zdCBwcmV2Q29sb3JNb2RlID0gZ2V0Q29sb3JNb2RlKG1hcFN0eWxlLnN0eWxlVHlwZSk7XG4gIGNvbnN0IG5leHRDb2xvck1vZGUgPSBnZXRDb2xvck1vZGUocGF5bG9hZC5zdHlsZVR5cGUpO1xuICBsZXQge3Zpc1N0YXRlfSA9IHN0YXRlO1xuICBpZiAobmV4dENvbG9yTW9kZSAhPT0gcHJldkNvbG9yTW9kZSkge1xuICAgIHN3aXRjaCAobmV4dENvbG9yTW9kZSkge1xuICAgICAgY2FzZSBCQVNFX01BUF9DT0xPUl9NT0RFUy5EQVJLOlxuICAgICAgICB2aXNTdGF0ZSA9IGNvbXBvc2VfKFtcbiAgICAgICAgICB1cGRhdGVPdmVybGF5QmxlbmRpbmcoT1ZFUkxBWV9CTEVORElOR1Muc2NyZWVuLnZhbHVlKSxcbiAgICAgICAgICB1cGRhdGVEYXJrQmFzZU1hcExheWVycyh0cnVlKVxuICAgICAgICBdKSh2aXNTdGF0ZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBCQVNFX01BUF9DT0xPUl9NT0RFUy5MSUdIVDpcbiAgICAgICAgdmlzU3RhdGUgPSBjb21wb3NlXyhbXG4gICAgICAgICAgdXBkYXRlT3ZlcmxheUJsZW5kaW5nKE9WRVJMQVlfQkxFTkRJTkdTLmRhcmtlbi52YWx1ZSksXG4gICAgICAgICAgdXBkYXRlRGFya0Jhc2VNYXBMYXllcnMoZmFsc2UpXG4gICAgICAgIF0pKHZpc1N0YXRlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgLy8gZG8gbm90aGluZ1xuICAgIH1cbiAgfVxuICByZXR1cm4ge1xuICAgIC4uLnN0YXRlLFxuICAgIHZpc1N0YXRlLFxuICAgIG1hcFN0eWxlOiBtYXBTdHlsZUNoYW5nZVVwZGF0ZXIobWFwU3R5bGUsIHtwYXlsb2FkOiB7Li4ucGF5bG9hZH19KVxuICB9O1xufTtcblxuLyoqXG4gKiBVcGRhdGVyIHRoYXQgY2hhbmdlcyB0aGUgbGF5ZXIgdHlwZSBieSBjYWxsaW5nIGBsYXllclR5cGVDaGFuZ2VVcGRhdGVyYCBvbiB2aXNTdGF0ZS5cbiAqIEluIGFkZGl0aW9uIHRvIHRoYXQsIGlmIHRoZSBuZXcgbGF5ZXIgdHlwZSBoYXMgdGhlIGBkYXJrQmFzZU1hcEVuYWJsZWRgIGNvbmZpZ1xuICogc2V0dGluZywgd2UgYWRqdXN0IGl0IGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgY29sb3JNb2RlIG9mIHRoZSBiYXNlIG1hcC5zXG4gKi9cbmV4cG9ydCBjb25zdCBjb21iaW5lZExheWVyVHlwZUNoYW5nZVVwZGF0ZXIgPSAoXG4gIHN0YXRlOiBLZXBsZXJHbFN0YXRlLFxuICBhY3Rpb246IExheWVyVHlwZUNoYW5nZVVwZGF0ZXJBY3Rpb25cbik6IEtlcGxlckdsU3RhdGUgPT4ge1xuICBsZXQge3Zpc1N0YXRlfSA9IHN0YXRlO1xuICBjb25zdCBvbGRMYXllckluZGV4ID0gdmlzU3RhdGUubGF5ZXJzLmZpbmRJbmRleChsYXllciA9PiBsYXllciA9PT0gYWN0aW9uLm9sZExheWVyKTtcbiAgdmlzU3RhdGUgPSBsYXllclR5cGVDaGFuZ2VVcGRhdGVyKHZpc1N0YXRlLCBhY3Rpb24pO1xuICBjb25zdCBuZXdMYXllciA9IHZpc1N0YXRlLmxheWVyc1tvbGRMYXllckluZGV4XTtcbiAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChuZXdMYXllcj8udmlzQ29uZmlnU2V0dGluZ3MsICdkYXJrQmFzZU1hcEVuYWJsZWQnKSkge1xuICAgIGNvbnN0IHttYXBTdHlsZX0gPSBzdGF0ZTtcbiAgICBjb25zdCB7Y29sb3JNb2RlfSA9IG1hcFN0eWxlLm1hcFN0eWxlc1ttYXBTdHlsZS5zdHlsZVR5cGVdO1xuICAgIGNvbnN0IHtkYXJrQmFzZU1hcEVuYWJsZWR9ID0gbmV3TGF5ZXIuY29uZmlnLnZpc0NvbmZpZztcbiAgICBzd2l0Y2ggKGNvbG9yTW9kZSkge1xuICAgICAgY2FzZSBCQVNFX01BUF9DT0xPUl9NT0RFUy5EQVJLOlxuICAgICAgICBpZiAoIWRhcmtCYXNlTWFwRW5hYmxlZCkge1xuICAgICAgICAgIHZpc1N0YXRlID0gdXBkYXRlRGFya0Jhc2VNYXBMYXllcnModHJ1ZSwgbmV3TGF5ZXIuaWQpKHZpc1N0YXRlKTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgQkFTRV9NQVBfQ09MT1JfTU9ERVMuTElHSFQ6XG4gICAgICAgIGlmIChkYXJrQmFzZU1hcEVuYWJsZWQpIHtcbiAgICAgICAgICB2aXNTdGF0ZSA9IHVwZGF0ZURhcmtCYXNlTWFwTGF5ZXJzKGZhbHNlLCBuZXdMYXllci5pZCkodmlzU3RhdGUpO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgIC8vIGRvIG5vdGhpbmdcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHtcbiAgICAuLi5zdGF0ZSxcbiAgICB2aXNTdGF0ZVxuICB9O1xufTtcblxuLyoqXG4gKiBNYWtlIG1hcExlZ2VuZCBhY3RpdmUgd2hlbiB0b2dnbGVTcGxpdE1hcCBhY3Rpb24gaXMgY2FsbGVkXG4gKi9cbmV4cG9ydCBjb25zdCB0b2dnbGVTcGxpdE1hcFVwZGF0ZXIgPSAoXG4gIHN0YXRlOiBLZXBsZXJHbFN0YXRlLFxuICBhY3Rpb246IFRvZ2dsZVNwbGl0TWFwVXBkYXRlckFjdGlvblxuKTogS2VwbGVyR2xTdGF0ZSA9PiB7XG4gIGNvbnN0IG5ld1N0YXRlID0ge1xuICAgIC4uLnN0YXRlLFxuICAgIHZpc1N0YXRlOiB2aXNTdGF0ZVRvZ2dsZVNwbGl0TWFwVXBkYXRlcihzdGF0ZS52aXNTdGF0ZSwgYWN0aW9uKSxcbiAgICB1aVN0YXRlOiB1aVN0YXRlVG9nZ2xlU3BsaXRNYXBVcGRhdGVyKHN0YXRlLnVpU3RhdGUpLFxuICAgIG1hcFN0YXRlOiBtYXBTdGF0ZVRvZ2dsZVNwbGl0TWFwVXBkYXRlcihzdGF0ZS5tYXBTdGF0ZSlcbiAgfTtcblxuICBjb25zdCBpc1NwbGl0ID0gbmV3U3RhdGUudmlzU3RhdGUuc3BsaXRNYXBzLmxlbmd0aCAhPT0gMDtcbiAgY29uc3QgaXNMZWdlbmRBY3RpdmUgPSBuZXdTdGF0ZS51aVN0YXRlLm1hcENvbnRyb2xzPy5tYXBMZWdlbmQ/LmFjdGl2ZTtcbiAgaWYgKGlzU3BsaXQgJiYgIWlzTGVnZW5kQWN0aXZlKSB7XG4gICAgbmV3U3RhdGUudWlTdGF0ZSA9IHRvZ2dsZU1hcENvbnRyb2xVcGRhdGVyKG5ld1N0YXRlLnVpU3RhdGUsIHtcbiAgICAgIHBheWxvYWQ6IHtwYW5lbElkOiAnbWFwTGVnZW5kJywgaW5kZXg6IGFjdGlvbi5wYXlsb2FkfVxuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIG5ld1N0YXRlO1xufTtcblxuY29uc3QgZGVmYXVsdFJlcGxhY2VEYXRhVG9NYXBPcHRpb25zID0ge1xuICBrZWVwRXhpc3RpbmdDb25maWc6IHRydWUsXG4gIGNlbnRlck1hcDogdHJ1ZSxcbiAgYXV0b0NyZWF0ZUxheWVyczogZmFsc2Vcbn07XG5cbi8qKlxuICogVXBkYXRlciByZXBsYWNlIGEgZGF0YXNldCBpbiBzdGF0ZVxuICovXG5leHBvcnQgY29uc3QgcmVwbGFjZURhdGFJbk1hcFVwZGF0ZXIgPSAoXG4gIHN0YXRlOiBLZXBsZXJHbFN0YXRlLFxuICB7cGF5bG9hZH06IHtwYXlsb2FkOiBSZXBsYWNlRGF0YUluTWFwUGF5bG9hZH1cbik6IEtlcGxlckdsU3RhdGUgPT4ge1xuICBjb25zdCB7ZGF0YXNldFRvUmVwbGFjZUlkLCBkYXRhc2V0VG9Vc2UsIG9wdGlvbnMgPSB7fX0gPSBwYXlsb2FkO1xuICBjb25zdCBhZGREYXRhVG9NYXBPcHRpb25zID0gey4uLmRlZmF1bHRSZXBsYWNlRGF0YVRvTWFwT3B0aW9ucywgLi4ub3B0aW9uc307XG5cbiAgLy8gY2hlY2sgaWYgZGF0YXNldCBpcyB0aGVyZVxuICBpZiAoIXN0YXRlLnZpc1N0YXRlLmRhdGFzZXRzW2RhdGFzZXRUb1JlcGxhY2VJZF0pIHtcbiAgICByZXR1cm4gc3RhdGU7XG4gIH1cbiAgLy8gZGF0YXNldFRvVXNlIGlzIFByb3RvRGF0YXNldFxuICBjb25zdCBkYXRhSWRUb1VzZSA9IGRhdGFzZXRUb1VzZS5pbmZvLmlkO1xuICBpZiAoIWRhdGFJZFRvVXNlKSB7XG4gICAgcmV0dXJuIHN0YXRlO1xuICB9XG4gIC8vIHJlbW92ZSBkYXRhc2V0IGFuZCBwdXQgZGVwZW5kZW5jaWVzIGluIHRvQmVNZXJnZWRcbiAgY29uc3QgcHJlcGFyZWRTdGF0ZSA9IHtcbiAgICAuLi5zdGF0ZSxcbiAgICB2aXNTdGF0ZTogcHJlcGFyZVN0YXRlRm9yRGF0YXNldFJlcGxhY2Uoc3RhdGUudmlzU3RhdGUsIGRhdGFzZXRUb1JlcGxhY2VJZCwgZGF0YUlkVG9Vc2UpXG4gIH07XG5cbiAgY29uc3QgbmV4dFN0YXRlID0gYWRkRGF0YVRvTWFwVXBkYXRlcihcbiAgICBwcmVwYXJlZFN0YXRlLFxuICAgIHBheWxvYWRfKHtcbiAgICAgIGRhdGFzZXRzOiBkYXRhc2V0VG9Vc2UsXG4gICAgICAvLyBzaG91bGQgem9vbSB0byBuZXcgZGF0YXNldFxuICAgICAgb3B0aW9uczogYWRkRGF0YVRvTWFwT3B0aW9uc1xuICAgIH0pXG4gICk7XG5cbiAgcmV0dXJuIG5leHRTdGF0ZTtcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBR0EsSUFBQUEsZ0JBQUEsR0FBQUMsT0FBQTtBQU9BLElBQUFDLGlCQUFBLEdBQUFELE9BQUE7QUFPQSxJQUFBRSxpQkFBQSxHQUFBRixPQUFBO0FBSUEsSUFBQUcsaUJBQUEsR0FBQUgsT0FBQTtBQUlBLElBQUFJLFdBQUEsR0FBQUosT0FBQTtBQUNBLElBQUFLLGdCQUFBLEdBQUFMLE9BQUE7QUFhQSxJQUFBTSxNQUFBLEdBQUFOLE9BQUE7QUFDQSxJQUFBTyxVQUFBLEdBQUFQLE9BQUE7QUFDQSxJQUFBUSxVQUFBLEdBQUFSLE9BQUE7QUFBNkUsU0FBQVMs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
|
package/dist/composer-helpers.js
DELETED
|
@@ -1,101 +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.apply_ = apply_;
|
|
8
|
-
exports.compose_ = compose_;
|
|
9
|
-
exports.filterOutById = filterOutById;
|
|
10
|
-
exports.if_ = if_;
|
|
11
|
-
exports.log = log;
|
|
12
|
-
exports.map_ = map_;
|
|
13
|
-
exports.merge_ = merge_;
|
|
14
|
-
exports.payload_ = payload_;
|
|
15
|
-
exports.pick_ = pick_;
|
|
16
|
-
exports.removeElementAtIndex = removeElementAtIndex;
|
|
17
|
-
exports.swap_ = swap_;
|
|
18
|
-
exports.with_ = with_;
|
|
19
|
-
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
20
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
21
|
-
var _console = _interopRequireDefault(require("global/console"));
|
|
22
|
-
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
23
|
-
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } // SPDX-License-Identifier: MIT
|
|
24
|
-
// Copyright contributors to the kepler.gl project
|
|
25
|
-
var identity = function identity(state) {
|
|
26
|
-
return state;
|
|
27
|
-
};
|
|
28
|
-
|
|
29
|
-
/** Returns a function that logs a value with a given message */
|
|
30
|
-
function log(text) {
|
|
31
|
-
return function (value) {
|
|
32
|
-
return _console["default"].log(text, value);
|
|
33
|
-
};
|
|
34
|
-
}
|
|
35
|
-
/** Wraps a value in an object and stores it the `payload` field */
|
|
36
|
-
function payload_(payload) {
|
|
37
|
-
return {
|
|
38
|
-
payload: payload
|
|
39
|
-
};
|
|
40
|
-
}
|
|
41
|
-
/** Wraps a value in an object and stores it the `payload` field */
|
|
42
|
-
function apply_(updater, payload) {
|
|
43
|
-
return function (state) {
|
|
44
|
-
return updater(state, payload);
|
|
45
|
-
};
|
|
46
|
-
}
|
|
47
|
-
function with_(fn) {
|
|
48
|
-
return function (state) {
|
|
49
|
-
return fn(state)(state);
|
|
50
|
-
};
|
|
51
|
-
}
|
|
52
|
-
function if_(pred, fn) {
|
|
53
|
-
return pred ? fn : identity;
|
|
54
|
-
}
|
|
55
|
-
function compose_(fns) {
|
|
56
|
-
return function (state) {
|
|
57
|
-
return fns.reduce(function (state2, fn) {
|
|
58
|
-
return fn(state2);
|
|
59
|
-
}, state);
|
|
60
|
-
};
|
|
61
|
-
}
|
|
62
|
-
/** Returns a reducer function that merges props with state */
|
|
63
|
-
function merge_(obj) {
|
|
64
|
-
return function (state) {
|
|
65
|
-
return _objectSpread(_objectSpread({}, state), obj);
|
|
66
|
-
};
|
|
67
|
-
}
|
|
68
|
-
function pick_(prop) {
|
|
69
|
-
return function (fn) {
|
|
70
|
-
return function (state) {
|
|
71
|
-
return _objectSpread(_objectSpread({}, state), {}, (0, _defineProperty2["default"])({}, prop, fn(state[prop])));
|
|
72
|
-
};
|
|
73
|
-
};
|
|
74
|
-
}
|
|
75
|
-
function swap_(item) {
|
|
76
|
-
return function (arr) {
|
|
77
|
-
return arr.map(function (a) {
|
|
78
|
-
return a.id === item.id ? item : a;
|
|
79
|
-
});
|
|
80
|
-
};
|
|
81
|
-
}
|
|
82
|
-
function map_(fn) {
|
|
83
|
-
return function (arr) {
|
|
84
|
-
return arr.map(function (e) {
|
|
85
|
-
return fn(e);
|
|
86
|
-
});
|
|
87
|
-
};
|
|
88
|
-
}
|
|
89
|
-
function filterOutById(id) {
|
|
90
|
-
return function (arr) {
|
|
91
|
-
return arr.filter(function (e) {
|
|
92
|
-
return e.id !== id;
|
|
93
|
-
});
|
|
94
|
-
};
|
|
95
|
-
}
|
|
96
|
-
function removeElementAtIndex(index) {
|
|
97
|
-
return function (arr) {
|
|
98
|
-
return [].concat((0, _toConsumableArray2["default"])(arr.slice(0, index)), (0, _toConsumableArray2["default"])(arr.slice(index + 1, arr.length)));
|
|
99
|
-
};
|
|
100
|
-
}
|
|
101
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY29uc29sZSIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwib3duS2V5cyIsImUiLCJyIiwidCIsIk9iamVjdCIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJvIiwiZmlsdGVyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5MiIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJpZGVudGl0eSIsInN0YXRlIiwibG9nIiwidGV4dCIsInZhbHVlIiwiQ29uc29sZSIsInBheWxvYWRfIiwicGF5bG9hZCIsImFwcGx5XyIsInVwZGF0ZXIiLCJ3aXRoXyIsImZuIiwiaWZfIiwicHJlZCIsImNvbXBvc2VfIiwiZm5zIiwicmVkdWNlIiwic3RhdGUyIiwibWVyZ2VfIiwib2JqIiwicGlja18iLCJwcm9wIiwic3dhcF8iLCJpdGVtIiwiYXJyIiwibWFwIiwiYSIsImlkIiwibWFwXyIsImZpbHRlck91dEJ5SWQiLCJyZW1vdmVFbGVtZW50QXRJbmRleCIsImluZGV4IiwiY29uY2F0IiwiX3RvQ29uc3VtYWJsZUFycmF5MiIsInNsaWNlIl0sInNvdXJjZXMiOlsiLi4vc3JjL2NvbXBvc2VyLWhlbHBlcnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IENvbnNvbGUgZnJvbSAnZ2xvYmFsL2NvbnNvbGUnO1xuXG5jb25zdCBpZGVudGl0eSA9IHN0YXRlID0+IHN0YXRlO1xuXG4vKiogUmV0dXJucyBhIGZ1bmN0aW9uIHRoYXQgbG9ncyBhIHZhbHVlIHdpdGggYSBnaXZlbiBtZXNzYWdlICovXG5leHBvcnQgZnVuY3Rpb24gbG9nKHRleHQ6IHN0cmluZyk6ICh2YWx1ZTogYW55KSA9PiB2b2lkIHtcbiAgcmV0dXJuIHZhbHVlID0+IENvbnNvbGUubG9nKHRleHQsIHZhbHVlKTtcbn1cbi8qKiBXcmFwcyBhIHZhbHVlIGluIGFuIG9iamVjdCBhbmQgc3RvcmVzIGl0IHRoZSBgcGF5bG9hZGAgZmllbGQgKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXlsb2FkXzxQPihwYXlsb2FkOiBQKSB7XG4gIHJldHVybiB7cGF5bG9hZH07XG59XG4vKiogV3JhcHMgYSB2YWx1ZSBpbiBhbiBvYmplY3QgYW5kIHN0b3JlcyBpdCB0aGUgYHBheWxvYWRgIGZpZWxkICovXG5leHBvcnQgZnVuY3Rpb24gYXBwbHlfPFN0YXRlLCBQPihcbiAgdXBkYXRlcjogKHN0YXRlOiBTdGF0ZSwgbmV4dFBheWxvYWQ6IFApID0+IFN0YXRlLFxuICBwYXlsb2FkOiBQXG4pOiAoc3RhdGU6IFN0YXRlKSA9PiBTdGF0ZSB7XG4gIHJldHVybiBzdGF0ZSA9PiB1cGRhdGVyKHN0YXRlLCBwYXlsb2FkKTtcbn1cblxudHlwZSBBcmc8U3RhdGU+ID0gKHN0YXRlOiBTdGF0ZSkgPT4gKG5leHRTdGF0ZTogU3RhdGUpID0+IFN0YXRlO1xuZXhwb3J0IGZ1bmN0aW9uIHdpdGhfPFN0YXRlPihmbjogQXJnPFN0YXRlPik6IChzdGF0ZTogU3RhdGUpID0+IFN0YXRlIHtcbiAgcmV0dXJuIHN0YXRlID0+IGZuKHN0YXRlKShzdGF0ZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpZl88U3RhdGU+KHByZWQ6IGJvb2xlYW4sIGZuOiAoc3RhdGU6IFN0YXRlKSA9PiBTdGF0ZSk6IChzdGF0ZTogU3RhdGUpID0+IFN0YXRlIHtcbiAgcmV0dXJuIHByZWQgPyBmbiA6IGlkZW50aXR5O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29tcG9zZV88U3RhdGU+KGZuczogQXJyYXk8KHM6IFN0YXRlKSA9PiBTdGF0ZT4pOiAoczogU3RhdGUpID0+IFN0YXRlIHtcbiAgcmV0dXJuIHN0YXRlID0+IGZucy5yZWR1Y2UoKHN0YXRlMiwgZm4pID0+IGZuKHN0YXRlMiksIHN0YXRlKTtcbn1cbi8qKiBSZXR1cm5zIGEgcmVkdWNlciBmdW5jdGlvbiB0aGF0IG1lcmdlcyBwcm9wcyB3aXRoIHN0YXRlICovXG5leHBvcnQgZnVuY3Rpb24gbWVyZ2VfPFByb3BzPihvYmo6IFByb3BzKTogPFN0YXRlPihzdGF0ZTogU3RhdGUpID0+IFN0YXRlIHtcbiAgcmV0dXJuIHN0YXRlID0+ICh7Li4uc3RhdGUsIC4uLm9ian0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGlja188UHJvcCBleHRlbmRzIHN0cmluZz4oXG4gIHByb3A6IFByb3Bcbik6IDxWYWx1ZT4oZm46IChwOiBWYWx1ZSkgPT4gVmFsdWUpID0+IDxTdGF0ZSBleHRlbmRzIFJlY29yZDxQcm9wLCBWYWx1ZT4+KHN0YXRlOiBTdGF0ZSkgPT4gU3RhdGUge1xuICByZXR1cm4gZm4gPT4gc3RhdGUgPT4gKHsuLi5zdGF0ZSwgW3Byb3BdOiBmbihzdGF0ZVtwcm9wXSl9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHN3YXBfPFggZXh0ZW5kcyB7aWQ6IHN0cmluZ30+KGl0ZW06IFgpOiAoYXJyOiBYW10pID0+IFhbXSB7XG4gIHJldHVybiBhcnIgPT4gYXJyLm1hcChhID0+IChhLmlkID09PSBpdGVtLmlkID8gaXRlbSA6IGEpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1hcF88WCwgVD4oZm46IChzdGF0ZTogWCkgPT4gVCk6IChhcnI6IFhbXSkgPT4gVFtdIHtcbiAgcmV0dXJuIGFyciA9PiBhcnIubWFwKGUgPT4gZm4oZSkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZmlsdGVyT3V0QnlJZDxYIGV4dGVuZHMge2lkOiBzdHJpbmd9PihpZDogc3RyaW5nKTogKGFycjogWFtdKSA9PiBYW10ge1xuICByZXR1cm4gYXJyID0+IGFyci5maWx0ZXIoZSA9PiBlLmlkICE9PSBpZCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZW1vdmVFbGVtZW50QXRJbmRleDxYPihpbmRleDogbnVtYmVyKTogKGFycjogWFtdKSA9PiBYW10ge1xuICByZXR1cm4gYXJyID0+IFsuLi5hcnIuc2xpY2UoMCwgaW5kZXgpLCAuLi5hcnIuc2xpY2UoaW5kZXggKyAxLCBhcnIubGVuZ3RoKV07XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBR0EsSUFBQUEsUUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQXFDLFNBQUFDLFFBQUFDLENBQUEsRUFBQUMsQ0FBQSxRQUFBQyxDQUFBLEdBQUFDLE1BQUEsQ0FBQUMsSUFBQSxDQUFBSixDQUFBLE9BQUFHLE1BQUEsQ0FBQUUscUJBQUEsUUFBQUMsQ0FBQSxHQUFBSCxNQUFBLENBQUFFLHFCQUFBLENBQUFMLENBQUEsR0FBQUMsQ0FBQSxLQUFBSyxDQUFBLEdBQUFBLENBQUEsQ0FBQUMsTUFBQSxXQUFBTixDQUFBLFdBQUFFLE1BQUEsQ0FBQUssd0JBQUEsQ0FBQVIsQ0FBQSxFQUFBQyxDQUFBLEVBQUFRLFVBQUEsT0FBQVAsQ0FBQSxDQUFBUSxJQUFBLENBQUFDLEtBQUEsQ0FBQVQsQ0FBQSxFQUFBSSxDQUFBLFlBQUFKLENBQUE7QUFBQSxTQUFBVSxjQUFBWixDQUFBLGFBQUFDLENBQUEsTUFBQUEsQ0FBQSxHQUFBWSxTQUFBLENBQUFDLE1BQUEsRUFBQWIsQ0FBQSxVQUFBQyxDQUFBLFdBQUFXLFNBQUEsQ0FBQVosQ0FBQSxJQUFBWSxTQUFBLENBQUFaLENBQUEsUUFBQUEsQ0FBQSxPQUFBRixPQUFBLENBQUFJLE1BQUEsQ0FBQUQsQ0FBQSxPQUFBYSxPQUFBLFdBQUFkLENBQUEsUUFBQWUsZ0JBQUEsYUFBQWhCLENBQUEsRUFBQUMsQ0FBQSxFQUFBQyxDQUFBLENBQUFELENBQUEsU0FBQUUsTUFBQSxDQUFBYyx5QkFBQSxHQUFBZCxNQUFBLENBQUFlLGdCQUFBLENBQUFsQixDQUFBLEVBQUFHLE1BQUEsQ0FBQWMseUJB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
|
package/dist/composers.js
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
5
|
-
Object.defineProperty(exports, "__esModule", {
|
|
6
|
-
value: true
|
|
7
|
-
});
|
|
8
|
-
exports["default"] = void 0;
|
|
9
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
10
|
-
var _actions = require("@kepler.gl/actions");
|
|
11
|
-
var combinedUpdaters = _interopRequireWildcard(require("./combined-updaters"));
|
|
12
|
-
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
13
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
|
|
14
|
-
// SPDX-License-Identifier: MIT
|
|
15
|
-
// Copyright contributors to the kepler.gl project
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
* Important: Do not rename `actionHandler` or the assignment pattern of property value.
|
|
19
|
-
* It is used to generate documentation
|
|
20
|
-
*/
|
|
21
|
-
var actionHandler = (0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])({}, _actions.ActionTypes.ADD_DATA_TO_MAP, combinedUpdaters.addDataToMapUpdater), _actions.ActionTypes.MAP_STYLE_CHANGE, combinedUpdaters.combinedMapStyleChangeUpdater), _actions.ActionTypes.LAYER_TYPE_CHANGE, combinedUpdaters.combinedLayerTypeChangeUpdater), _actions.ActionTypes.LOAD_FILES_SUCCESS, combinedUpdaters.loadFilesSuccessUpdater), _actions.ActionTypes.TOGGLE_SPLIT_MAP, combinedUpdaters.toggleSplitMapUpdater), _actions.ActionTypes.REPLACE_DATA_IN_MAP, combinedUpdaters.replaceDataInMapUpdater);
|
|
22
|
-
var _default = exports["default"] = actionHandler;
|
|
23
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfYWN0aW9ucyIsInJlcXVpcmUiLCJjb21iaW5lZFVwZGF0ZXJzIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJhY3Rpb25IYW5kbGVyIiwiX2RlZmluZVByb3BlcnR5MiIsIkFjdGlvblR5cGVzIiwiQUREX0RBVEFfVE9fTUFQIiwiYWRkRGF0YVRvTWFwVXBkYXRlciIsIk1BUF9TVFlMRV9DSEFOR0UiLCJjb21iaW5lZE1hcFN0eWxlQ2hhbmdlVXBkYXRlciIsIkxBWUVSX1RZUEVfQ0hBTkdFIiwiY29tYmluZWRMYXllclR5cGVDaGFuZ2VVcGRhdGVyIiwiTE9BRF9GSUxFU19TVUNDRVNTIiwibG9hZEZpbGVzU3VjY2Vzc1VwZGF0ZXIiLCJUT0dHTEVfU1BMSVRfTUFQIiwidG9nZ2xlU3BsaXRNYXBVcGRhdGVyIiwiUkVQTEFDRV9EQVRBX0lOX01BUCIsInJlcGxhY2VEYXRhSW5NYXBVcGRhdGVyIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vc3JjL2NvbXBvc2Vycy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQge0FjdGlvblR5cGVzfSBmcm9tICdAa2VwbGVyLmdsL2FjdGlvbnMnO1xuaW1wb3J0ICogYXMgY29tYmluZWRVcGRhdGVycyBmcm9tICcuL2NvbWJpbmVkLXVwZGF0ZXJzJztcblxuLyoqXG4gKiBJbXBvcnRhbnQ6IERvIG5vdCByZW5hbWUgYGFjdGlvbkhhbmRsZXJgIG9yIHRoZSBhc3NpZ25tZW50IHBhdHRlcm4gb2YgcHJvcGVydHkgdmFsdWUuXG4gKiBJdCBpcyB1c2VkIHRvIGdlbmVyYXRlIGRvY3VtZW50YXRpb25cbiAqL1xuY29uc3QgYWN0aW9uSGFuZGxlciA9IHtcbiAgW0FjdGlvblR5cGVzLkFERF9EQVRBX1RPX01BUF06IGNvbWJpbmVkVXBkYXRlcnMuYWRkRGF0YVRvTWFwVXBkYXRlcixcbiAgW0FjdGlvblR5cGVzLk1BUF9TVFlMRV9DSEFOR0VdOiBjb21iaW5lZFVwZGF0ZXJzLmNvbWJpbmVkTWFwU3R5bGVDaGFuZ2VVcGRhdGVyLFxuICBbQWN0aW9uVHlwZXMuTEFZRVJfVFlQRV9DSEFOR0VdOiBjb21iaW5lZFVwZGF0ZXJzLmNvbWJpbmVkTGF5ZXJUeXBlQ2hhbmdlVXBkYXRlcixcbiAgW0FjdGlvblR5cGVzLkxPQURfRklMRVNfU1VDQ0VTU106IGNvbWJpbmVkVXBkYXRlcnMubG9hZEZpbGVzU3VjY2Vzc1VwZGF0ZXIsXG4gIFtBY3Rpb25UeXBlcy5UT0dHTEVfU1BMSVRfTUFQXTogY29tYmluZWRVcGRhdGVycy50b2dnbGVTcGxpdE1hcFVwZGF0ZXIsXG4gIFtBY3Rpb25UeXBlcy5SRVBMQUNFX0RBVEFfSU5fTUFQXTogY29tYmluZWRVcGRhdGVycy5yZXBsYWNlRGF0YUluTWFwVXBkYXRlclxufTtcblxuZXhwb3J0IGRlZmF1bHQgYWN0aW9uSGFuZGxlcjtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBR0EsSUFBQUEsUUFBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsZ0JBQUEsR0FBQUMsdUJBQUEsQ0FBQUYsT0FBQTtBQUF3RCxTQUFBRyx5QkFBQUMsQ0FBQSw2QkFBQUMsT0FBQSxtQkFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSx5QkFBQUMsQ0FBQSxXQUFBQSxDQUFBLEdBQUFHLENBQUEsR0FBQUQsQ0FBQSxLQUFBRixDQUFBO0FBQUEsU0FBQUYsd0JBQUFFLENBQUEsRUFBQUUsQ0FBQSxTQUFBQSxDQUFBLElBQUFGLENBQUEsSUFBQUEsQ0FBQSxDQUFBSSxVQUFBLFNBQUFKLENBQUEsZUFBQUEsQ0FBQSxnQkFBQUssT0FBQSxDQUFBTCxDQUFBLDBCQUFBQSxDQUFBLHNCQUFBQSxDQUFBLFFBQUFHLENBQUEsR0FBQUosd0JBQUEsQ0FBQUcsQ0FBQSxPQUFBQyxDQUFBLElBQUFBLENBQUEsQ0FBQUcsR0FBQSxDQUFBTixDQUFBLFVBQUFHLENBQUEsQ0FBQUksR0FBQSxDQUFBUCxDQUFBLE9BQUFRLENBQUEsS0FBQUMsU0FBQSxVQUFBQyxDQUFBLEdBQUFDLE1BQUEsQ0FBQUMsY0FBQSxJQUFBRCxNQUFBLENBQUFFLHdCQUFBLFdBQUFDLENBQUEsSUFBQWQsQ0FBQSxvQkFBQWMsQ0FBQSxPQUFBQyxjQUFBLENBQUFDLElBQUEsQ0FBQWhCLENBQUEsRUFBQWMsQ0FBQSxTQUFBRyxDQUFBLEdBQUFQLENBQUEsR0FBQUMsTUFBQSxDQUFBRSx3QkFBQSxDQUFBYixDQUFBLEVBQUFjLENBQUEsVUFBQUcsQ0FBQSxLQUFBQSxDQUFBLENBQUFWLEdBQUEsSUFBQVUsQ0FBQSxDQUFBQyxHQUFBLElBQUFQLE1BQUEsQ0FBQUMsY0FBQSxDQUFBSixDQUFBLEVBQUFNLENBQUEsRUFBQUcsQ0FBQSxJQUFBVCxDQUFBLENBQUFNLENBQUEsSUFBQWQsQ0FBQSxDQUFBYyxDQUFBLFlBQUFOLENBQUEsY0FBQVIsQ0FBQSxFQUFBRyxDQUFBLElBQUFBLENBQUEsQ0FBQWUsR0FBQSxDQUFBbEIsQ0FBQSxFQUFBUSxDQUFBLEdBQUFBLENBQUE7QUFKeEQ7QUFDQTs7QUFLQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQU1XLGFBQWEsT0FBQUMsZ0JBQUEsaUJBQUFBLGdCQUFBLGlCQUFBQSxnQkFBQSxpQkFBQUEsZ0JBQUEsaUJBQUFBLGdCQUFBLGlCQUFBQSxnQkFBQSxpQkFDaEJDLG9CQUFXLENBQUNDLGVBQWUsRUFBR3pCLGdCQUFnQixDQUFDMEIsbUJBQW1CLEdBQ2xFRixvQkFBVyxDQUFDRyxnQkFBZ0IsRUFBRzNCLGdCQUFnQixDQUFDNEIsNkJBQTZCLEdBQzdFSixvQkFBVyxDQUFDSyxpQkFBaUIsRUFBRzdCLGdCQUFnQixDQUFDOEIsOEJBQThCLEdBQy9FTixvQkFBVyxDQUFDTyxrQkFBa0IsRUFBRy9CLGdCQUFnQixDQUFDZ0MsdUJBQXVCLEdBQ3pFUixvQkFBVyxDQUFDUyxnQkFBZ0IsRUFBR2pDLGdCQUFnQixDQUFDa0MscUJBQXFCLEdBQ3JFVixvQkFBVyxDQUFDVyxtQkFBbUIsRUFBR25DLGdCQUFnQixDQUFDb0MsdUJBQXVCLENBQzVFO0FBQUMsSUFBQUMsUUFBQSxHQUFBQyxPQUFBLGNBRWFoQixhQUFhIiwiaWdub3JlTGlzdCI6W119
|