@kepler.gl/reducers 3.0.0-alpha.0 → 3.0.0-alpha.2
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/combined-updaters.d.ts +30 -1
- package/dist/combined-updaters.js +235 -24
- package/dist/composer-helpers.d.ts +7 -4
- package/dist/composer-helpers.js +17 -28
- package/dist/composers.d.ts +6 -0
- package/dist/composers.js +2 -22
- package/dist/core.d.ts +1 -1
- package/dist/core.js +15 -25
- package/dist/data-utils.js +5 -23
- package/dist/export-utils.js +1 -21
- package/dist/index.d.ts +2 -3
- package/dist/index.js +36 -35
- package/dist/interaction-utils.d.ts +1 -5
- package/dist/interaction-utils.js +11 -31
- package/dist/layer-utils.d.ts +39 -10
- package/dist/layer-utils.js +112 -57
- package/dist/map-state-updaters.d.ts +33 -2
- package/dist/map-state-updaters.js +277 -38
- package/dist/map-state.d.ts +74 -2
- package/dist/map-state.js +2 -22
- package/dist/map-style-updaters.d.ts +30 -17
- package/dist/map-style-updaters.js +303 -104
- package/dist/map-style.js +2 -22
- package/dist/merger-handler.d.ts +10 -0
- package/dist/merger-handler.js +123 -0
- package/dist/middleware.js +6 -22
- package/dist/provider-state-updaters.d.ts +0 -7
- package/dist/provider-state-updaters.js +2 -92
- package/dist/provider-state.js +2 -22
- package/dist/root.d.ts +1 -8
- package/dist/root.js +24 -30
- package/dist/ui-state-updaters.d.ts +9 -2
- package/dist/ui-state-updaters.js +87 -82
- package/dist/ui-state.js +2 -22
- package/dist/vis-state-merger.d.ts +51 -13
- package/dist/vis-state-merger.js +411 -131
- package/dist/vis-state-selectors.js +8 -24
- package/dist/vis-state-updaters.d.ts +136 -10
- package/dist/vis-state-updaters.js +965 -283
- package/dist/vis-state.d.ts +210 -2
- package/dist/vis-state.js +2 -22
- package/package.json +23 -20
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { MapState, UiState, AddDataToMapPayload } from '@kepler.gl/types';
|
|
2
2
|
import { MapStyle } from './map-style-updaters';
|
|
3
3
|
import { ProviderState } from './provider-state-updaters';
|
|
4
|
-
import { loadFilesSuccessUpdaterAction } from '@kepler.gl/actions';
|
|
4
|
+
import { loadFilesSuccessUpdaterAction, MapStyleChangeUpdaterAction, LayerTypeChangeUpdaterAction, ToggleSplitMapUpdaterAction, ReplaceDataInMapPayload } from '@kepler.gl/actions';
|
|
5
5
|
import { VisState } from '@kepler.gl/schemas';
|
|
6
6
|
export declare type KeplerGlState = {
|
|
7
7
|
visState: VisState;
|
|
@@ -15,6 +15,7 @@ export declare const defaultAddDataToMapOptions: {
|
|
|
15
15
|
centerMap: boolean;
|
|
16
16
|
keepExistingConfig: boolean;
|
|
17
17
|
autoCreateLayers: boolean;
|
|
18
|
+
autoCreateTooltips: boolean;
|
|
18
19
|
};
|
|
19
20
|
/**
|
|
20
21
|
* Combine data and full configuration update in a single action
|
|
@@ -48,3 +49,31 @@ export declare const loadFilesSuccessUpdater: (state: KeplerGlState, action: loa
|
|
|
48
49
|
export declare const addDataToMapComposed: (state: KeplerGlState, { payload }: {
|
|
49
50
|
payload: AddDataToMapPayload;
|
|
50
51
|
}) => KeplerGlState;
|
|
52
|
+
/**
|
|
53
|
+
* Updater that changes the map style by calling mapStyleChangeUpdater on visState.
|
|
54
|
+
* In addition to that, it does the following:
|
|
55
|
+
*
|
|
56
|
+
* 1. Update map overlay blending mode in accordance with the colorMode of the
|
|
57
|
+
* base map, but only if it's not in the `normal` mode.
|
|
58
|
+
*
|
|
59
|
+
* 2. Update all the layers which have the `darkBaseMapEnabled` config setting
|
|
60
|
+
* adjusting it in accordance with the colorMode of the base map.
|
|
61
|
+
*
|
|
62
|
+
*/
|
|
63
|
+
export declare const combinedMapStyleChangeUpdater: (state: KeplerGlState, action: MapStyleChangeUpdaterAction) => KeplerGlState;
|
|
64
|
+
/**
|
|
65
|
+
* Updater that changes the layer type by calling `layerTypeChangeUpdater` on visState.
|
|
66
|
+
* In addition to that, if the new layer type has the `darkBaseMapEnabled` config
|
|
67
|
+
* setting, we adjust it in accordance with the colorMode of the base map.s
|
|
68
|
+
*/
|
|
69
|
+
export declare const combinedLayerTypeChangeUpdater: (state: KeplerGlState, action: LayerTypeChangeUpdaterAction) => KeplerGlState;
|
|
70
|
+
/**
|
|
71
|
+
* Make mapLegend active when toggleSplitMap action is called
|
|
72
|
+
*/
|
|
73
|
+
export declare const toggleSplitMapUpdater: (state: KeplerGlState, action: ToggleSplitMapUpdaterAction) => KeplerGlState;
|
|
74
|
+
/**
|
|
75
|
+
* Updater replace a dataset in state
|
|
76
|
+
*/
|
|
77
|
+
export declare const replaceDataInMapUpdater: (state: KeplerGlState, { payload }: {
|
|
78
|
+
payload: ReplaceDataInMapPayload;
|
|
79
|
+
}) => KeplerGlState;
|
|
@@ -1,23 +1,3 @@
|
|
|
1
|
-
// Copyright (c) 2022 Uber Technologies, Inc.
|
|
2
|
-
//
|
|
3
|
-
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
4
|
-
// of this software and associated documentation files (the "Software"), to deal
|
|
5
|
-
// in the Software without restriction, including without limitation the rights
|
|
6
|
-
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
7
|
-
// copies of the Software, and to permit persons to whom the Software is
|
|
8
|
-
// furnished to do so, subject to the following conditions:
|
|
9
|
-
//
|
|
10
|
-
// The above copyright notice and this permission notice shall be included in
|
|
11
|
-
// all copies or substantial portions of the Software.
|
|
12
|
-
//
|
|
13
|
-
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
14
|
-
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
15
|
-
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
16
|
-
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
17
|
-
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
18
|
-
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
19
|
-
// THE SOFTWARE.
|
|
20
|
-
|
|
21
1
|
"use strict";
|
|
22
2
|
|
|
23
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
@@ -25,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
25
5
|
Object.defineProperty(exports, "__esModule", {
|
|
26
6
|
value: true
|
|
27
7
|
});
|
|
28
|
-
exports.addDataToMapComposed = exports.loadFilesSuccessUpdater = exports.addDataToMapUpdater = exports.defaultAddDataToMapOptions = exports.isValidConfig = void 0;
|
|
8
|
+
exports.replaceDataInMapUpdater = exports.toggleSplitMapUpdater = exports.combinedLayerTypeChangeUpdater = exports.combinedMapStyleChangeUpdater = exports.addDataToMapComposed = exports.loadFilesSuccessUpdater = exports.addDataToMapUpdater = exports.defaultAddDataToMapOptions = exports.isValidConfig = void 0;
|
|
29
9
|
|
|
30
10
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
31
11
|
|
|
@@ -45,6 +25,8 @@ var _utils = require("@kepler.gl/utils");
|
|
|
45
25
|
|
|
46
26
|
var _dataUtils = require("./data-utils");
|
|
47
27
|
|
|
28
|
+
var _constants = require("@kepler.gl/constants");
|
|
29
|
+
|
|
48
30
|
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; }
|
|
49
31
|
|
|
50
32
|
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; }
|
|
@@ -106,7 +88,8 @@ exports.isValidConfig = isValidConfig;
|
|
|
106
88
|
var defaultAddDataToMapOptions = {
|
|
107
89
|
centerMap: true,
|
|
108
90
|
keepExistingConfig: false,
|
|
109
|
-
autoCreateLayers: true
|
|
91
|
+
autoCreateLayers: true,
|
|
92
|
+
autoCreateTooltips: true
|
|
110
93
|
};
|
|
111
94
|
/**
|
|
112
95
|
* Combine data and full configuration update in a single action
|
|
@@ -137,12 +120,25 @@ var defaultAddDataToMapOptions = {
|
|
|
137
120
|
exports.defaultAddDataToMapOptions = defaultAddDataToMapOptions;
|
|
138
121
|
|
|
139
122
|
var addDataToMapUpdater = function addDataToMapUpdater(state, _ref) {
|
|
123
|
+
var _datasets$, _datasets$2, _datasets$3;
|
|
124
|
+
|
|
140
125
|
var payload = _ref.payload;
|
|
141
126
|
var datasets = payload.datasets,
|
|
142
127
|
config = payload.config,
|
|
143
128
|
info = payload.info;
|
|
144
129
|
|
|
145
|
-
var options = _objectSpread(_objectSpread({}, defaultAddDataToMapOptions), payload.options); //
|
|
130
|
+
var options = _objectSpread(_objectSpread({}, defaultAddDataToMapOptions), payload.options); // check if progresive loading dataset by bataches, and update visState directly
|
|
131
|
+
|
|
132
|
+
|
|
133
|
+
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;
|
|
134
|
+
|
|
135
|
+
if (isProgressiveLoading) {
|
|
136
|
+
return (0, _composerHelpers.compose_)([(0, _composerHelpers.pick_)('visState')((0, _composerHelpers.apply_)(_visStateUpdaters.updateVisDataUpdater, {
|
|
137
|
+
datasets: datasets,
|
|
138
|
+
options: options,
|
|
139
|
+
config: config
|
|
140
|
+
}))])(state);
|
|
141
|
+
} // @ts-expect-error
|
|
146
142
|
|
|
147
143
|
|
|
148
144
|
var parsedConfig = config;
|
|
@@ -208,5 +204,220 @@ var loadFilesSuccessUpdater = function loadFilesSuccessUpdater(state, action) {
|
|
|
208
204
|
|
|
209
205
|
exports.loadFilesSuccessUpdater = loadFilesSuccessUpdater;
|
|
210
206
|
var addDataToMapComposed = addDataToMapUpdater;
|
|
207
|
+
/**
|
|
208
|
+
* Helper which updates map overlay blending mode in visState,
|
|
209
|
+
* but only if it's not currently in the `normal` mode.
|
|
210
|
+
*/
|
|
211
|
+
|
|
211
212
|
exports.addDataToMapComposed = addDataToMapComposed;
|
|
212
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb21iaW5lZC11cGRhdGVycy50cyJdLCJuYW1lcyI6WyJjb21iaW5lZFVwZGF0ZXJzIiwiaXNWYWxpZENvbmZpZyIsImNvbmZpZyIsInZlcnNpb24iLCJkZWZhdWx0QWRkRGF0YVRvTWFwT3B0aW9ucyIsImNlbnRlck1hcCIsImtlZXBFeGlzdGluZ0NvbmZpZyIsImF1dG9DcmVhdGVMYXllcnMiLCJhZGREYXRhVG9NYXBVcGRhdGVyIiwic3RhdGUiLCJwYXlsb2FkIiwiZGF0YXNldHMiLCJpbmZvIiwib3B0aW9ucyIsInBhcnNlZENvbmZpZyIsInZpc1N0YXRlIiwic2NoZW1hIiwicGFyc2VTYXZlZENvbmZpZyIsIm9sZExheWVycyIsImxheWVycyIsImZpbHRlck5ld2x5QWRkZWRMYXllcnMiLCJmaWx0ZXIiLCJubCIsImZpbmQiLCJvbCIsImZpbmRNYXBCb3VuZHNJZkNlbnRlcmVkIiwiYm91bmRzIiwidW5kZWZpbmVkIiwidmlzU3RhdGVVcGRhdGVWaXNEYXRhVXBkYXRlciIsIkJvb2xlYW4iLCJzZXRNYXBJbmZvVXBkYXRlciIsInN0YXRlTWFwQ29uZmlnVXBkYXRlciIsInN0eWxlTWFwQ29uZmlnVXBkYXRlciIsInVpU3RhdGVMb2FkRmlsZXNTdWNjZXNzVXBkYXRlciIsInRvZ2dsZU1vZGFsVXBkYXRlciIsImhhc093blByb3BlcnR5IiwicmVhZE9ubHkiLCJsb2FkRmlsZXNTdWNjZXNzVXBkYXRlciIsImFjdGlvbiIsInBheWxvYWRzIiwicmVzdWx0IiwibmV4dFN0YXRlIiwiZmlsZUxvYWRpbmciLCJmaWxlTG9hZGluZ1Byb2dyZXNzIiwic3RhdGVXaXRoRGF0YSIsIm1hcCIsInAiLCJhZGREYXRhVG9NYXBDb21wb3NlZCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFvQkE7O0FBSUE7O0FBSUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBT0E7O0FBQ0E7Ozs7OztBQVVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNB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QyxJQUFBQSxXQUFXLEVBQUUsS0FEUjtBQUVMQyxJQUFBQSxtQkFBbUIsRUFBRTtBQUZoQixHQUFQLENBREYsQ0FEeUIsQ0FBVCxFQU9mbEMsS0FQZSxDQUFsQixDQUhrQixDQVdsQjs7QUFDQSxNQUFNbUMsYUFBYSxHQUFHLCtCQUFTTCxRQUFRLENBQUNNLEdBQVQsQ0FBYSxVQUFBQyxDQUFDO0FBQUEsV0FBSSw2QkFBT3RDLG1CQUFQLEVBQTRCLCtCQUFTc0MsQ0FBVCxDQUE1QixDQUFKO0FBQUEsR0FBZCxDQUFULEVBQ3BCTCxTQURvQixDQUF0QjtBQUdBLFNBQU9HLGFBQVA7QUFDRCxDQW5CTTs7O0FBcUJBLElBQU1HLG9CQUFvQixHQUFHdkMsbUJBQTdCIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSAyMDIyIFViZXIgVGVjaG5vbG9naWVzLCBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cblxuaW1wb3J0IHtcbiAgdG9nZ2xlTW9kYWxVcGRhdGVyLFxuICBsb2FkRmlsZXNTdWNjZXNzVXBkYXRlciBhcyB1aVN0YXRlTG9hZEZpbGVzU3VjY2Vzc1VwZGF0ZXJcbn0gZnJvbSAnLi91aS1zdGF0ZS11cGRhdGVycyc7XG5pbXBvcnQge1xuICB1cGRhdGVWaXNEYXRhVXBkYXRlciBhcyB2aXNTdGF0ZVVwZGF0ZVZpc0RhdGFVcGRhdGVyLFxuICBzZXRNYXBJbmZvVXBkYXRlclxufSBmcm9tICcuL3Zpcy1zdGF0ZS11cGRhdGVycyc7XG5pbXBvcnQge3JlY2VpdmVNYXBDb25maWdVcGRhdGVyIGFzIHN0YXRlTWFwQ29uZmlnVXBkYXRlcn0gZnJvbSAnLi9tYXAtc3RhdGUtdXBkYXRlcnMnO1xuaW1wb3J0IHtyZWNlaXZlTWFwQ29uZmlnVXBkYXRlciBhcyBzdHlsZU1hcENvbmZpZ1VwZGF0ZXJ9IGZyb20gJy4vbWFwLXN0eWxlLXVwZGF0ZXJzJztcbmltcG9ydCB7ZmlsZXNUb0RhdGFQYXlsb2FkfSBmcm9tICdAa2VwbGVyLmdsL3Byb2Nlc3NvcnMnO1xuaW1wb3J0IHtwYXlsb2FkXywgYXBwbHlfLCB3aXRoXywgaWZfLCBjb21wb3NlXywgbWVyZ2VfLCBwaWNrX30gZnJvbSAnLi9jb21wb3Nlci1oZWxwZXJzJztcbmltcG9ydCB7TWFwU3RhdGUsIFVpU3RhdGUsIEFkZERhdGFUb01hcFBheWxvYWQsIFBhcnNlZENvbmZpZ30gZnJvbSAnQGtlcGxlci5nbC90eXBlcyc7XG5pbXBvcnQge01hcFN0eWxlfSBmcm9tICcuL21hcC1zdHlsZS11cGRhdGVycyc7XG5pbXBvcnQge1Byb3ZpZGVyU3RhdGV9IGZyb20gJy4vcHJvdmlkZXItc3RhdGUtdXBkYXRlcnMnO1xuaW1wb3J0IHtsb2FkRmlsZXNTdWNjZXNzVXBkYXRlckFjdGlvbn0gZnJvbSAnQGtlcGxlci5nbC9hY3Rpb25zJztcbmltcG9ydCB7VmlzU3RhdGV9IGZyb20gJ0BrZXBsZXIuZ2wvc2NoZW1hcyc7XG5pbXBvcnQge0xheWVyfSBmcm9tICdAa2VwbGVyLmdsL2xheWVycyc7XG5pbXBvcnQge2lzUGxhaW5PYmplY3R9IGZyb20gJ0BrZXBsZXIuZ2wvdXRpbHMnO1xuaW1wb3J0IHtmaW5kTWFwQm91bmRzfSBmcm9tICcuL2RhdGEtdXRpbHMnO1xuXG5leHBvcnQgdHlwZSBLZXBsZXJHbFN0YXRlID0ge1xuICB2aXNTdGF0ZTogVmlzU3RhdGU7XG4gIG1hcFN0YXRlOiBNYXBTdGF0ZTtcbiAgbWFwU3R5bGU6IE1hcFN0eWxlO1xuICB1aVN0YXRlOiBVaVN0YXRlO1xuICBwcm92aWRlclN0YXRlOiBQcm92aWRlclN0YXRlO1xufTtcblxuLy8gY29tcG9zZSBhY3Rpb24gdG8gYXBwbHkgcmVzdWx0IG11bHRpcGxlIHJlZHVjZXJzLCB3aXRoIHRoZSBvdXRwdXQgb2Ygb25lXG5cbi8qKlxuICogU29tZSBhY3Rpb25zIHdpbGwgYWZmZWN0IHRoZSBlbnRpcmUga2VwbGVyLmxnIGluc3RhbmNlIHN0YXRlLlxuICogVGhlIHVwZGF0ZXJzIGZvciB0aGVzZSBhY3Rpb25zIGlzIGV4cG9ydGVkIGFzIGBjb21iaW5lZFVwZGF0ZXJzYC4gVGhlc2UgdXBkYXRlciB0YWtlIHRoZSBlbnRpcmUgaW5zdGFuY2Ugc3RhdGVcbiAqIGFzIHRoZSBmaXJzdCBhcmd1bWVudC4gUmVhZCBtb3JlIGFib3V0IFtVc2luZyB1cGRhdGVyc10oLi4vYWR2YW5jZWQtdXNhZ2UvdXNpbmctdXBkYXRlcnMubWQpXG4gKiBAcHVibGljXG4gKiBAZXhhbXBsZVxuICpcbiAqIGltcG9ydCBrZXBsZXJHbFJlZHVjZXIsIHtjb21iaW5lZFVwZGF0ZXJzfSBmcm9tICdrZXBsZXIuZ2wvcmVkdWNlcnMnO1xuICogLy8gUm9vdCBSZWR1Y2VyXG4gKiBjb25zdCByZWR1Y2VycyA9IGNvbWJpbmVSZWR1Y2Vycyh7XG4gKiAga2VwbGVyR2w6IGtlcGxlckdsUmVkdWNlcixcbiAqICBhcHA6IGFwcFJlZHVjZXJcbiAqIH0pO1xuICpcbiAqIGNvbnN0IGNvbXBvc2VkUmVkdWNlciA9IChzdGF0ZSwgYWN0aW9uKSA9PiB7XG4gKiAgc3dpdGNoIChhY3Rpb24udHlwZSkge1xuICogICAgLy8gYWRkIGRhdGEgdG8gbWFwIGFmdGVyIHJlY2VpdmluZyBkYXRhIGZyb20gcmVtb3RlIHNvdXJjZXNcbiAqICAgIGNhc2UgJ0xPQURfUkVNT1RFX1JFU09VUkNFX1NVQ0NFU1MnOlxuICogICAgICByZXR1cm4ge1xuICogICAgICAgIC4uLnN0YXRlLFxuICogICAgICAgIGtlcGxlckdsOiB7XG4gKiAgICAgICAgICAuLi5zdGF0ZS5rZXBsZXJHbCxcbiAqICAgICAgICAgIC8vIHBhc3MgaW4ga2VwbGVyLmdsIGluc3RhbmNlIHN0YXRlIHRvIGNvbWJpbmVkVXBkYXRlcnNcbiAqICAgICAgICAgIG1hcDogIGNvbWJpbmVkVXBkYXRlcnMuYWRkRGF0YVRvTWFwVXBkYXRlcihcbiAqICAgICAgICAgICBzdGF0ZS5rZXBsZXJHbC5tYXAsXG4gKiAgICAgICAgICAge1xuICogICAgICAgICAgICAgcGF5bG9hZDoge1xuICogICAgICAgICAgICAgICBkYXRhc2V0czogYWN0aW9uLmRhdGFzZXRzLFxuICogICAgICAgICAgICAgICBvcHRpb25zOiB7cmVhZE9ubHk6IHRydWV9LFxuICogICAgICAgICAgICAgICBjb25maWc6IGFjdGlvbi5jb25maWdcbiAqICAgICAgICAgICAgICB9XG4gKiAgICAgICAgICAgIH1cbiAqICAgICAgICAgIClcbiAqICAgICAgICB9XG4gKiAgICAgIH07XG4gKiAgfVxuICogIHJldHVybiByZWR1Y2VycyhzdGF0ZSwgYWN0aW9uKTtcbiAqIH07XG4gKlxuICogZXhwb3J0IGRlZmF1bHQgY29tcG9zZWRSZWR1Y2VyO1xuICovXG5cbi8qIGVzbGludC1kaXNhYmxlIG5vLXVudXNlZC12YXJzICovXG4vLyBAdHMtaWdub3JlXG5jb25zdCBjb21iaW5lZFVwZGF0ZXJzID0gbnVsbDtcbi8qIGVzbGludC1lbmFibGUgbm8tdW51c2VkLXZhcnMgKi9cblxuZXhwb3J0IGNvbnN0IGlzVmFsaWRDb25maWcgPSBjb25maWcgPT5cbiAgaXNQbGFpbk9iamVjdChjb25maWcpICYmIGlzUGxhaW5PYmplY3QoY29uZmlnLmNvbmZpZykgJiYgY29uZmlnLnZlcnNpb247XG5cbmV4cG9ydCBjb25zdCBkZWZhdWx0QWRkRGF0YVRvTWFwT3B0aW9ucyA9IHtcbiAgY2VudGVyTWFwOiB0cnVlLFxuICBrZWVwRXhpc3RpbmdDb25maWc6IGZhbHNlLFxuICBhdXRvQ3JlYXRlTGF5ZXJzOiB0cnVlXG59O1xuXG4vKipcbiAqIENvbWJpbmUgZGF0YSBhbmQgZnVsbCBjb25maWd1cmF0aW9uIHVwZGF0ZSBpbiBhIHNpbmdsZSBhY3Rpb25cbiAqXG4gKiBAbWVtYmVyb2YgY29tYmluZWRVcGRhdGVyc1xuICogQHBhcmFtIHtPYmplY3R9IHN0YXRlIGtlcGxlci5nbCBpbnN0YW5jZSBzdGF0ZSwgY29udGFpbmluZyBhbGwgc3VicmVkdWNlciBzdGF0ZVxuICogQHBhcmFtIHtPYmplY3R9IGFjdGlvblxuICogQHBhcmFtIHtPYmplY3R9IGFjdGlvbi5wYXlsb2FkIGB7ZGF0YXNldHMsIG9wdGlvbnMsIGNvbmZpZ31gXG4gKiBAcGFyYW0gYWN0aW9uLnBheWxvYWQuZGF0YXNldHMgLSAqKipyZXF1aXJlZCoqIGRhdGFzZXRzIGNhbiBiZSBhIGRhdGFzZXQgb3IgYW4gYXJyYXkgb2YgZGF0YXNldHNcbiAqIEVhY2ggZGF0YXNldCBvYmplY3QgbmVlZHMgdG8gaGF2ZSBgaW5mb2AgYW5kIGBkYXRhYCBwcm9wZXJ0eS5cbiAqIEBwYXJhbSBbYWN0aW9uLnBheWxvYWQub3B0aW9uc10gb3B0aW9uIG9iamVjdCBge2NlbnRlck1hcDogdHJ1ZX1gXG4gKiBAcGFyYW0gW2FjdGlvbi5wYXlsb2FkLmNvbmZpZ10gbWFwIGNvbmZpZ1xuICogQHBhcmFtIFthY3Rpb24ucGF5bG9hZC5pbmZvXSBtYXAgaW5mbyBjb250YWlucyB0aXRsZSBhbmQgZGVzY3JpcHRpb25cbiAqIEByZXR1cm5zIG5leHRTdGF0ZVxuICpcbiAqIEB0eXBlZGVmIHtPYmplY3R9IERhdGFzZXRcbiAqIEBwcm9wZXJ0eSBpbmZvIC1pbmZvIG9mIGEgZGF0YXNldFxuICogQHByb3BlcnR5IGluZm8uaWQgLSBpZCBvZiB0aGlzIGRhdGFzZXQuIElmIGNvbmZpZyBpcyBkZWZpbmVkLCBgaWRgIHNob3VsZCBtYXRjaGVzIHRoZSBgZGF0YUlkYCBpbiBjb25maWcuXG4gKiBAcHJvcGVydHkgaW5mby5sYWJlbCAtIEEgZGlzcGxheSBuYW1lIG9mIHRoaXMgZGF0YXNldFxuICogQHByb3BlcnR5IGRhdGEgLSAqKipyZXF1aXJlZCoqIFRoZSBkYXRhIG9iamVjdCwgaW4gYSB0YWJ1bGFyIGZvcm1hdCB3aXRoIDIgcHJvcGVydGllcyBgZmllbGRzYCBhbmQgYHJvd3NgXG4gKiBAcHJvcGVydHkgZGF0YS5maWVsZHMgLSAqKipyZXF1aXJlZCoqIEFycmF5IG9mIGZpZWxkcyxcbiAqIEBwcm9wZXJ0eSBkYXRhLmZpZWxkcy5uYW1lIC0gKioqcmVxdWlyZWQqKiBOYW1lIG9mIHRoZSBmaWVsZCxcbiAqIEBwcm9wZXJ0eSBkYXRhLnJvd3MgLSAqKipyZXF1aXJlZCoqIEFycmF5IG9mIHJvd3MsIGluIGEgdGFidWxhciBmb3JtYXQgd2l0aCBgZmllbGRzYCBhbmQgYHJvd3NgXG4gKlxuICogQHB1YmxpY1xuICovXG5leHBvcnQgY29uc3QgYWRkRGF0YVRvTWFwVXBkYXRlciA9IChcbiAgc3RhdGU6IEtlcGxlckdsU3RhdGUsXG4gIHtwYXlsb2FkfToge3BheWxvYWQ6IEFkZERhdGFUb01hcFBheWxvYWR9XG4pOiBLZXBsZXJHbFN0YXRlID0+IHtcbiAgY29uc3Qge2RhdGFzZXRzLCBjb25maWcsIGluZm99ID0gcGF5bG9hZDtcblxuICBjb25zdCBvcHRpb25zID0ge1xuICAgIC4uLmRlZmF1bHRBZGREYXRhVG9NYXBPcHRpb25zLFxuICAgIC4uLnBheWxvYWQub3B0aW9uc1xuICB9O1xuXG4gIC8vIEB0cy1leHBlY3QtZXJyb3JcbiAgbGV0IHBhcnNlZENvbmZpZzogUGFyc2VkQ29uZmlnID0gY29uZmlnO1xuXG4gIGlmIChpc1ZhbGlkQ29uZmlnKGNvbmZpZykpIHtcbiAgICAvLyBpZiBwYXNzZWQgaW4gc2F2ZWQgY29uZmlnXG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvclxuICAgIHBhcnNlZENvbmZpZyA9IHN0YXRlLnZpc1N0YXRlLnNjaGVtYS5wYXJzZVNhdmVkQ29uZmlnKGNvbmZpZyk7XG4gIH1cbiAgY29uc3Qgb2xkTGF5ZXJzID0gc3RhdGUudmlzU3RhdGUubGF5ZXJzO1xuICBjb25zdCBmaWx0ZXJOZXdseUFkZGVkTGF5ZXJzID0gKGxheWVyczogTGF5ZXJbXSkgPT5cbiAgICBsYXllcnMuZmlsdGVyKG5sID0+ICFvbGRMYXllcnMuZmluZChvbCA9PiBvbCA9PT0gbmwpKTtcblxuICAvLyBSZXR1cm5zIHVuZGVmaW5lZCBpZiBub3QgZm91bmQsIHRvIG1ha2UgdHlwZXNjcmlwdCBoYXBweVxuICBjb25zdCBmaW5kTWFwQm91bmRzSWZDZW50ZXJlZCA9IChsYXllcnM6IExheWVyW10pID0+IHtcbiAgICBjb25zdCBib3VuZHMgPSBvcHRpb25zLmNlbnRlck1hcCAmJiBmaW5kTWFwQm91bmRzKGxheWVycyk7XG4gICAgcmV0dXJuIGJvdW5kcyA/IGJvdW5kcyA6IHVuZGVmaW5lZDtcbiAgfTtcblxuICByZXR1cm4gY29tcG9zZV88S2VwbGVyR2xTdGF0ZT4oW1xuICAgIHBpY2tfKCd2aXNTdGF0ZScpKFxuICAgICAgYXBwbHlfPFZpc1N0YXRlLCBhbnk+KHZpc1N0YXRlVXBkYXRlVmlzRGF0YVVwZGF0ZXIsIHtcbiAgICAgICAgZGF0YXNldHMsXG4gICAgICAgIG9wdGlvbnMsXG4gICAgICAgIGNvbmZpZzogcGFyc2VkQ29uZmlnXG4gICAgICB9KVxuICAgICksXG5cbiAgICBpZl8oXG4gICAgICBCb29sZWFuKGluZm8pLFxuICAgICAgcGlja18oJ3Zpc1N0YXRlJykoXG4gICAgICAgIGFwcGx5XzxWaXNTdGF0ZSwgYW55PihzZXRNYXBJbmZvVXBkYXRlciwge2luZm99KVxuICAgICAgKVxuICAgICksXG5cbiAgICB3aXRoXygoe3Zpc1N0YXRlfSkgPT5cbiAgICAgIHBpY2tfKCdtYXBTdGF0ZScpKFxuICAgICAgICBhcHBseV8oXG4gICAgICAgICAgc3RhdGVNYXBDb25maWdVcGRhdGVyLFxuICAgICAgICAgIHBheWxvYWRfKHtcbiAgICAgICAgICAgIGNvbmZpZzogcGFyc2VkQ29uZmlnLFxuICAgICAgICAgICAgb3B0aW9ucyxcbiAgICAgICAgICAgIGJvdW5kczogZmluZE1hcEJvdW5kc0lmQ2VudGVyZWQoZmlsdGVyTmV3bHlBZGRlZExheWVycyh2aXNTdGF0ZS5sYXllcnMpKVxuICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICAgIClcbiAgICApLFxuICAgIHBpY2tfKCdtYXBTdHlsZScpKGFwcGx5XyhzdHlsZU1hcENvbmZpZ1VwZGF0ZXIsIHBheWxvYWRfKHtjb25maWc6IHBhcnNlZENvbmZpZywgb3B0aW9uc30pKSksXG4gICAgcGlja18oJ3VpU3RhdGUnKShhcHBseV8odWlTdGF0ZUxvYWRGaWxlc1N1Y2Nlc3NVcGRhdGVyLCBwYXlsb2FkXyhudWxsKSkpLFxuICAgIHBpY2tfKCd1aVN0YXRlJykoYXBwbHlfKHRvZ2dsZU1vZGFsVXBkYXRlciwgcGF5bG9hZF8obnVsbCkpKSxcbiAgICBwaWNrXygndWlTdGF0ZScpKG1lcmdlXyhvcHRpb25zLmhhc093blByb3BlcnR5KCdyZWFkT25seScpID8ge3JlYWRPbmx5OiBvcHRpb25zLnJlYWRPbmx5fSA6IHt9KSlcbiAgXSkoc3RhdGUpO1xufTtcblxuZXhwb3J0IGNvbnN0IGxvYWRGaWxlc1N1Y2Nlc3NVcGRhdGVyID0gKFxuICBzdGF0ZTogS2VwbGVyR2xTdGF0ZSxcbiAgYWN0aW9uOiBsb2FkRmlsZXNTdWNjZXNzVXBkYXRlckFjdGlvblxuKTogS2VwbGVyR2xTdGF0ZSA9PiB7XG4gIC8vIHN0aWxsIG1vcmUgdG8gbG9hZFxuICBjb25zdCBwYXlsb2FkcyA9IGZpbGVzVG9EYXRhUGF5bG9hZChhY3Rpb24ucmVzdWx0KTtcbiAgY29uc3QgbmV4dFN0YXRlID0gY29tcG9zZV8oW1xuICAgIHBpY2tfKCd2aXNTdGF0ZScpKFxuICAgICAgbWVyZ2VfKHtcbiAgICAgICAgZmlsZUxvYWRpbmc6IGZhbHNlLFxuICAgICAgICBmaWxlTG9hZGluZ1Byb2dyZXNzOiB7fVxuICAgICAgfSlcbiAgICApXG4gIF0pKHN0YXRlKTtcbiAgLy8gbWFrZSBtdWx0aXBsZSBhZGQgZGF0YSB0byBtYXAgY2FsbHNcbiAgY29uc3Qgc3RhdGVXaXRoRGF0YSA9IGNvbXBvc2VfKHBheWxvYWRzLm1hcChwID0+IGFwcGx5XyhhZGREYXRhVG9NYXBVcGRhdGVyLCBwYXlsb2FkXyhwKSkpKShcbiAgICBuZXh0U3RhdGVcbiAgKTtcbiAgcmV0dXJuIHN0YXRlV2l0aERhdGEgYXMgS2VwbGVyR2xTdGF0ZTtcbn07XG5cbmV4cG9ydCBjb25zdCBhZGREYXRhVG9NYXBDb21wb3NlZCA9IGFkZERhdGFUb01hcFVwZGF0ZXI7XG4iXX0=
|
|
213
|
+
|
|
214
|
+
var updateOverlayBlending = function updateOverlayBlending(overlayBlending) {
|
|
215
|
+
return function (visState) {
|
|
216
|
+
if (visState.overlayBlending !== _constants.OVERLAY_BLENDINGS.normal.value) {
|
|
217
|
+
return _objectSpread(_objectSpread({}, visState), {}, {
|
|
218
|
+
overlayBlending: overlayBlending
|
|
219
|
+
});
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
return visState;
|
|
223
|
+
};
|
|
224
|
+
};
|
|
225
|
+
/**
|
|
226
|
+
* Helper which updates `darkBaseMapEnabled` in all the layers in visState which
|
|
227
|
+
* have this config setting (or in one specific layer if the `layerId` param is provided).
|
|
228
|
+
*/
|
|
229
|
+
|
|
230
|
+
|
|
231
|
+
var updateDarkBaseMapLayers = function updateDarkBaseMapLayers(darkBaseMapEnabled) {
|
|
232
|
+
var layerId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
|
|
233
|
+
return function (visState) {
|
|
234
|
+
return _objectSpread(_objectSpread({}, visState), {}, {
|
|
235
|
+
layers: visState.layers.map(function (layer) {
|
|
236
|
+
if (!layerId || layer.id === layerId) {
|
|
237
|
+
if (layer.visConfigSettings.hasOwnProperty('darkBaseMapEnabled')) {
|
|
238
|
+
var visConfig = layer.config.visConfig;
|
|
239
|
+
return layer.updateLayerConfig({
|
|
240
|
+
visConfig: _objectSpread(_objectSpread({}, visConfig), {}, {
|
|
241
|
+
darkBaseMapEnabled: darkBaseMapEnabled
|
|
242
|
+
})
|
|
243
|
+
});
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
return layer;
|
|
248
|
+
})
|
|
249
|
+
});
|
|
250
|
+
};
|
|
251
|
+
};
|
|
252
|
+
/**
|
|
253
|
+
* Updater that changes the map style by calling mapStyleChangeUpdater on visState.
|
|
254
|
+
* In addition to that, it does the following:
|
|
255
|
+
*
|
|
256
|
+
* 1. Update map overlay blending mode in accordance with the colorMode of the
|
|
257
|
+
* base map, but only if it's not in the `normal` mode.
|
|
258
|
+
*
|
|
259
|
+
* 2. Update all the layers which have the `darkBaseMapEnabled` config setting
|
|
260
|
+
* adjusting it in accordance with the colorMode of the base map.
|
|
261
|
+
*
|
|
262
|
+
*/
|
|
263
|
+
|
|
264
|
+
|
|
265
|
+
var combinedMapStyleChangeUpdater = function combinedMapStyleChangeUpdater(state, action) {
|
|
266
|
+
var payload = action.payload;
|
|
267
|
+
var mapStyle = state.mapStyle;
|
|
268
|
+
|
|
269
|
+
var getColorMode = function getColorMode(key) {
|
|
270
|
+
var _mapStyle$mapStyles$k;
|
|
271
|
+
|
|
272
|
+
return (_mapStyle$mapStyles$k = mapStyle.mapStyles[key]) === null || _mapStyle$mapStyles$k === void 0 ? void 0 : _mapStyle$mapStyles$k.colorMode;
|
|
273
|
+
};
|
|
274
|
+
|
|
275
|
+
var prevColorMode = getColorMode(mapStyle.styleType);
|
|
276
|
+
var nextColorMode = getColorMode(payload.styleType);
|
|
277
|
+
var visState = state.visState;
|
|
278
|
+
|
|
279
|
+
if (nextColorMode !== prevColorMode) {
|
|
280
|
+
switch (nextColorMode) {
|
|
281
|
+
case _constants.BASE_MAP_COLOR_MODES.DARK:
|
|
282
|
+
visState = (0, _composerHelpers.compose_)([updateOverlayBlending(_constants.OVERLAY_BLENDINGS.screen.value), updateDarkBaseMapLayers(true)])(visState);
|
|
283
|
+
break;
|
|
284
|
+
|
|
285
|
+
case _constants.BASE_MAP_COLOR_MODES.LIGHT:
|
|
286
|
+
visState = (0, _composerHelpers.compose_)([updateOverlayBlending(_constants.OVERLAY_BLENDINGS.darken.value), updateDarkBaseMapLayers(false)])(visState);
|
|
287
|
+
break;
|
|
288
|
+
|
|
289
|
+
default: // do nothing
|
|
290
|
+
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
295
|
+
visState: visState,
|
|
296
|
+
mapStyle: (0, _mapStyleUpdaters.mapStyleChangeUpdater)(mapStyle, {
|
|
297
|
+
payload: _objectSpread({}, payload)
|
|
298
|
+
})
|
|
299
|
+
});
|
|
300
|
+
};
|
|
301
|
+
/**
|
|
302
|
+
* Updater that changes the layer type by calling `layerTypeChangeUpdater` on visState.
|
|
303
|
+
* In addition to that, if the new layer type has the `darkBaseMapEnabled` config
|
|
304
|
+
* setting, we adjust it in accordance with the colorMode of the base map.s
|
|
305
|
+
*/
|
|
306
|
+
|
|
307
|
+
|
|
308
|
+
exports.combinedMapStyleChangeUpdater = combinedMapStyleChangeUpdater;
|
|
309
|
+
|
|
310
|
+
var combinedLayerTypeChangeUpdater = function combinedLayerTypeChangeUpdater(state, action) {
|
|
311
|
+
var visState = state.visState;
|
|
312
|
+
var oldLayerIndex = visState.layers.findIndex(function (layer) {
|
|
313
|
+
return layer === action.oldLayer;
|
|
314
|
+
});
|
|
315
|
+
visState = (0, _visStateUpdaters.layerTypeChangeUpdater)(visState, action);
|
|
316
|
+
var newLayer = visState.layers[oldLayerIndex];
|
|
317
|
+
|
|
318
|
+
if (newLayer !== null && newLayer !== void 0 && newLayer.visConfigSettings.hasOwnProperty('darkBaseMapEnabled')) {
|
|
319
|
+
var mapStyle = state.mapStyle;
|
|
320
|
+
var colorMode = mapStyle.mapStyles[mapStyle.styleType].colorMode;
|
|
321
|
+
var darkBaseMapEnabled = newLayer.config.visConfig.darkBaseMapEnabled;
|
|
322
|
+
|
|
323
|
+
switch (colorMode) {
|
|
324
|
+
case _constants.BASE_MAP_COLOR_MODES.DARK:
|
|
325
|
+
if (!darkBaseMapEnabled) {
|
|
326
|
+
visState = updateDarkBaseMapLayers(true, newLayer.id)(visState);
|
|
327
|
+
}
|
|
328
|
+
|
|
329
|
+
break;
|
|
330
|
+
|
|
331
|
+
case _constants.BASE_MAP_COLOR_MODES.LIGHT:
|
|
332
|
+
if (darkBaseMapEnabled) {
|
|
333
|
+
visState = updateDarkBaseMapLayers(false, newLayer.id)(visState);
|
|
334
|
+
}
|
|
335
|
+
|
|
336
|
+
break;
|
|
337
|
+
|
|
338
|
+
default: // do nothing
|
|
339
|
+
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
|
|
343
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
344
|
+
visState: visState
|
|
345
|
+
});
|
|
346
|
+
};
|
|
347
|
+
/**
|
|
348
|
+
* Make mapLegend active when toggleSplitMap action is called
|
|
349
|
+
*/
|
|
350
|
+
|
|
351
|
+
|
|
352
|
+
exports.combinedLayerTypeChangeUpdater = combinedLayerTypeChangeUpdater;
|
|
353
|
+
|
|
354
|
+
var toggleSplitMapUpdater = function toggleSplitMapUpdater(state, action) {
|
|
355
|
+
var _newState$uiState$map, _newState$uiState$map2;
|
|
356
|
+
|
|
357
|
+
var newState = _objectSpread(_objectSpread({}, state), {}, {
|
|
358
|
+
visState: (0, _visStateUpdaters.toggleSplitMapUpdater)(state.visState, action),
|
|
359
|
+
uiState: (0, _uiStateUpdaters.toggleSplitMapUpdater)(state.uiState),
|
|
360
|
+
mapState: (0, _mapStateUpdaters.toggleSplitMapUpdater)(state.mapState, action)
|
|
361
|
+
});
|
|
362
|
+
|
|
363
|
+
var isSplit = newState.visState.splitMaps.length !== 0;
|
|
364
|
+
var isLegendActive = (_newState$uiState$map = newState.uiState.mapControls) === null || _newState$uiState$map === void 0 ? void 0 : (_newState$uiState$map2 = _newState$uiState$map.mapLegend) === null || _newState$uiState$map2 === void 0 ? void 0 : _newState$uiState$map2.active;
|
|
365
|
+
|
|
366
|
+
if (isSplit && !isLegendActive) {
|
|
367
|
+
newState.uiState = (0, _uiStateUpdaters.toggleMapControlUpdater)(newState.uiState, {
|
|
368
|
+
payload: {
|
|
369
|
+
panelId: 'mapLegend',
|
|
370
|
+
index: action.payload
|
|
371
|
+
}
|
|
372
|
+
});
|
|
373
|
+
}
|
|
374
|
+
|
|
375
|
+
return newState;
|
|
376
|
+
};
|
|
377
|
+
|
|
378
|
+
exports.toggleSplitMapUpdater = toggleSplitMapUpdater;
|
|
379
|
+
var defaultReplaceDataToMapOptions = {
|
|
380
|
+
keepExistingConfig: true,
|
|
381
|
+
centerMap: true,
|
|
382
|
+
autoCreateLayers: false
|
|
383
|
+
};
|
|
384
|
+
/**
|
|
385
|
+
* Updater replace a dataset in state
|
|
386
|
+
*/
|
|
387
|
+
|
|
388
|
+
var replaceDataInMapUpdater = function replaceDataInMapUpdater(state, _ref3) {
|
|
389
|
+
var payload = _ref3.payload;
|
|
390
|
+
var datasetToReplaceId = payload.datasetToReplaceId,
|
|
391
|
+
datasetToUse = payload.datasetToUse,
|
|
392
|
+
_payload$options = payload.options,
|
|
393
|
+
options = _payload$options === void 0 ? {} : _payload$options;
|
|
394
|
+
|
|
395
|
+
var addDataToMapOptions = _objectSpread(_objectSpread({}, defaultReplaceDataToMapOptions), options); // check if dataset is there
|
|
396
|
+
|
|
397
|
+
|
|
398
|
+
if (!state.visState.datasets[datasetToReplaceId]) {
|
|
399
|
+
return state;
|
|
400
|
+
} // datasetToUse is ProtoDataset
|
|
401
|
+
|
|
402
|
+
|
|
403
|
+
var dataIdToUse = datasetToUse.info.id;
|
|
404
|
+
|
|
405
|
+
if (!dataIdToUse) {
|
|
406
|
+
return state;
|
|
407
|
+
} // remove dataset and put dependencies in toBeMerged
|
|
408
|
+
|
|
409
|
+
|
|
410
|
+
var preparedState = _objectSpread(_objectSpread({}, state), {}, {
|
|
411
|
+
visState: (0, _visStateUpdaters.prepareStateForDatasetReplace)(state.visState, datasetToReplaceId, dataIdToUse)
|
|
412
|
+
});
|
|
413
|
+
|
|
414
|
+
var nextState = addDataToMapUpdater(preparedState, (0, _composerHelpers.payload_)({
|
|
415
|
+
datasets: datasetToUse,
|
|
416
|
+
// should zoom to new dataset
|
|
417
|
+
options: addDataToMapOptions
|
|
418
|
+
}));
|
|
419
|
+
return nextState;
|
|
420
|
+
};
|
|
421
|
+
|
|
422
|
+
exports.replaceDataInMapUpdater = replaceDataInMapUpdater;
|
|
423
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb21iaW5lZC11cGRhdGVycy50cyJdLCJuYW1lcyI6WyJjb21iaW5lZFVwZGF0ZXJzIiwiaXNWYWxpZENvbmZpZyIsImNvbmZpZyIsInZlcnNpb24iLCJkZWZhdWx0QWRkRGF0YVRvTWFwT3B0aW9ucyIsImNlbnRlck1hcCIsImtlZXBFeGlzdGluZ0NvbmZpZyIsImF1dG9DcmVhdGVMYXllcnMiLCJhdXRvQ3JlYXRlVG9vbHRpcHMiLCJhZGREYXRhVG9NYXBVcGRhdGVyIiwic3RhdGUiLCJwYXlsb2FkIiwiZGF0YXNldHMiLCJpbmZvIiwib3B0aW9ucyIsImlzUHJvZ3Jlc3NpdmVMb2FkaW5nIiwiQXJyYXkiLCJpc0FycmF5IiwiZm9ybWF0IiwiaWQiLCJ2aXNTdGF0ZSIsInZpc1N0YXRlVXBkYXRlVmlzRGF0YVVwZGF0ZXIiLCJwYXJzZWRDb25maWciLCJzY2hlbWEiLCJwYXJzZVNhdmVkQ29uZmlnIiwib2xkTGF5ZXJzIiwibGF5ZXJzIiwiZmlsdGVyTmV3bHlBZGRlZExheWVycyIsImZpbHRlciIsIm5sIiwiZmluZCIsIm9sIiwiZmluZE1hcEJvdW5kc0lmQ2VudGVyZWQiLCJib3VuZHMiLCJ1bmRlZmluZWQiLCJCb29sZWFuIiwic2V0TWFwSW5mb1VwZGF0ZXIiLCJzdGF0ZU1hcENvbmZpZ1VwZGF0ZXIiLCJzdHlsZU1hcENvbmZpZ1VwZGF0ZXIiLCJ1aVN0YXRlTG9hZEZpbGVzU3VjY2Vzc1VwZGF0ZXIiLCJ0b2dnbGVNb2RhbFVwZGF0ZXIiLCJoYXNPd25Qcm9wZXJ0eSIsInJlYWRPbmx5IiwibG9hZEZpbGVzU3VjY2Vzc1VwZGF0ZXIiLCJhY3Rpb24iLCJwYXlsb2FkcyIsInJlc3VsdCIsIm5leHRTdGF0ZSIsImZpbGVMb2FkaW5nIiwiZmlsZUxvYWRpbmdQcm9ncmVzcyIsInN0YXRlV2l0aERhdGEiLCJtYXAiLCJwIiwiYWRkRGF0YVRvTWFwQ29tcG9zZWQiLCJ1cGRhdGVPdmVybGF5QmxlbmRpbmciLCJvdmVybGF5QmxlbmRpbmciLCJPVkVSTEFZX0JMRU5ESU5HUyIsIm5vcm1hbCIsInZhbHVlIiwidXBkYXRlRGFya0Jhc2VNYXBMYXllcnMiLCJkYXJrQmFzZU1hcEVuYWJsZWQiLCJsYXllcklkIiwibGF5ZXIiLCJ2aXNDb25maWdTZXR0aW5ncyIsInZpc0NvbmZpZyIsInVwZGF0ZUxheWVyQ29uZmlnIiwiY29tYmluZWRNYXBTdHlsZUNoYW5nZVVwZGF0ZXIiLCJtYXBTdHlsZSIsImdldENvbG9yTW9kZSIsImtleSIsIm1hcFN0eWxlcyIsImNvbG9yTW9kZSIsInByZXZDb2xvck1vZGUiLCJzdHlsZVR5cGUiLCJuZXh0Q29sb3JNb2RlIiwiQkFTRV9NQVBfQ09MT1JfTU9ERVMiLCJEQVJLIiwic2NyZWVuIiwiTElHSFQiLCJkYXJrZW4iLCJjb21iaW5lZExheWVyVHlwZUNoYW5nZVVwZGF0ZXIiLCJvbGRMYXllckluZGV4IiwiZmluZEluZGV4Iiwib2xkTGF5ZXIiLCJuZXdMYXllciIsInRvZ2dsZVNwbGl0TWFwVXBkYXRlciIsIm5ld1N0YXRlIiwidWlTdGF0ZSIsIm1hcFN0YXRlIiwiaXNTcGxpdCIsInNwbGl0TWFwcyIsImxlbmd0aCIsImlzTGVnZW5kQWN0aXZlIiwibWFwQ29udHJvbHMiLCJtYXBMZWdlbmQiLCJhY3RpdmUiLCJwYW5lbElkIiwiaW5kZXgiLCJkZWZhdWx0UmVwbGFjZURhdGFUb01hcE9wdGlvbnMiLCJyZXBsYWNlRGF0YUluTWFwVXBkYXRlciIsImRhdGFzZXRUb1JlcGxhY2VJZCIsImRhdGFzZXRUb1VzZSIsImFkZERhdGFUb01hcE9wdGlvbnMiLCJkYXRhSWRUb1VzZSIsInByZXBhcmVkU3RhdGUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBR0E7O0FBTUE7O0FBT0E7O0FBSUE7O0FBSUE7O0FBQ0E7O0FBYUE7O0FBQ0E7O0FBQ0E7Ozs7OztBQVVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FB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LCtCQUFTO0FBQ1A1RixJQUFBQSxRQUFRLEVBQUV5RixZQURIO0FBRVA7QUFDQXZGLElBQUFBLE9BQU8sRUFBRXdGO0FBSEYsR0FBVCxDQUZtQyxDQUFyQztBQVNBLFNBQU92RCxTQUFQO0FBQ0QsQ0FoQ00iLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQge1xuICB0b2dnbGVNb2RhbFVwZGF0ZXIsXG4gIGxvYWRGaWxlc1N1Y2Nlc3NVcGRhdGVyIGFzIHVpU3RhdGVMb2FkRmlsZXNTdWNjZXNzVXBkYXRlcixcbiAgdG9nZ2xlTWFwQ29udHJvbFVwZGF0ZXIsXG4gIHRvZ2dsZVNwbGl0TWFwVXBkYXRlciBhcyB1aVN0YXRlVG9nZ2xlU3BsaXRNYXBVcGRhdGVyXG59IGZyb20gJy4vdWktc3RhdGUtdXBkYXRlcnMnO1xuaW1wb3J0IHtcbiAgdXBkYXRlVmlzRGF0YVVwZGF0ZXIgYXMgdmlzU3RhdGVVcGRhdGVWaXNEYXRhVXBkYXRlcixcbiAgc2V0TWFwSW5mb1VwZGF0ZXIsXG4gIGxheWVyVHlwZUNoYW5nZVVwZGF0ZXIsXG4gIHRvZ2dsZVNwbGl0TWFwVXBkYXRlciBhcyB2aXNTdGF0ZVRvZ2dsZVNwbGl0TWFwVXBkYXRlcixcbiAgcHJlcGFyZVN0YXRlRm9yRGF0YXNldFJlcGxhY2Vcbn0gZnJvbSAnLi92aXMtc3RhdGUtdXBkYXRlcnMnO1xuaW1wb3J0IHtcbiAgcmVjZWl2ZU1hcENvbmZpZ1VwZGF0ZXIgYXMgc3RhdGVNYXBDb25maWdVcGRhdGVyLFxuICB0b2dnbGVTcGxpdE1hcFVwZGF0ZXIgYXMgbWFwU3RhdGVUb2dnbGVTcGxpdE1hcFVwZGF0ZXJcbn0gZnJvbSAnLi9tYXAtc3RhdGUtdXBkYXRlcnMnO1xuaW1wb3J0IHtcbiAgbWFwU3R5bGVDaGFuZ2VVcGRhdGVyLFxuICByZWNlaXZlTWFwQ29uZmlnVXBkYXRlciBhcyBzdHlsZU1hcENvbmZpZ1VwZGF0ZXJcbn0gZnJvbSAnLi9tYXAtc3R5bGUtdXBkYXRlcnMnO1xuaW1wb3J0IHtmaWxlc1RvRGF0YVBheWxvYWR9IGZyb20gJ0BrZXBsZXIuZ2wvcHJvY2Vzc29ycyc7XG5pbXBvcnQge3BheWxvYWRfLCBhcHBseV8sIHdpdGhfLCBpZl8sIGNvbXBvc2VfLCBtZXJnZV8sIHBpY2tffSBmcm9tICcuL2NvbXBvc2VyLWhlbHBlcnMnO1xuaW1wb3J0IHtNYXBTdGF0ZSwgVWlTdGF0ZSwgQWRkRGF0YVRvTWFwUGF5bG9hZCwgUGFyc2VkQ29uZmlnfSBmcm9tICdAa2VwbGVyLmdsL3R5cGVzJztcbmltcG9ydCB7TWFwU3R5bGV9IGZyb20gJy4vbWFwLXN0eWxlLXVwZGF0ZXJzJztcbmltcG9ydCB7UHJvdmlkZXJTdGF0ZX0gZnJvbSAnLi9wcm92aWRlci1zdGF0ZS11cGRhdGVycyc7XG5pbXBvcnQge1xuICBsb2FkRmlsZXNTdWNjZXNzVXBkYXRlckFjdGlvbixcbiAgTWFwU3R5bGVDaGFuZ2VVcGRhdGVyQWN0aW9uLFxuICBMYXllclR5cGVDaGFuZ2VVcGRhdGVyQWN0aW9uLFxuICBUb2dnbGVTcGxpdE1hcFVwZGF0ZXJBY3Rpb24sXG4gIFJlcGxhY2VEYXRhSW5NYXBQYXlsb2FkXG59IGZyb20gJ0BrZXBsZXIuZ2wvYWN0aW9ucyc7XG5pbXBvcnQge1Zpc1N0YXRlfSBmcm9tICdAa2VwbGVyLmdsL3NjaGVtYXMnO1xuaW1wb3J0IHtMYXllcn0gZnJvbSAnQGtlcGxlci5nbC9sYXllcnMnO1xuaW1wb3J0IHtpc1BsYWluT2JqZWN0fSBmcm9tICdAa2VwbGVyLmdsL3V0aWxzJztcbmltcG9ydCB7ZmluZE1hcEJvdW5kc30gZnJvbSAnLi9kYXRhLXV0aWxzJztcbmltcG9ydCB7QkFTRV9NQVBfQ09MT1JfTU9ERVMsIE9WRVJMQVlfQkxFTkRJTkdTfSBmcm9tICdAa2VwbGVyLmdsL2NvbnN0YW50cyc7XG5cbmV4cG9ydCB0eXBlIEtlcGxlckdsU3RhdGUgPSB7XG4gIHZpc1N0YXRlOiBWaXNTdGF0ZTtcbiAgbWFwU3RhdGU6IE1hcFN0YXRlO1xuICBtYXBTdHlsZTogTWFwU3R5bGU7XG4gIHVpU3RhdGU6IFVpU3RhdGU7XG4gIHByb3ZpZGVyU3RhdGU6IFByb3ZpZGVyU3RhdGU7XG59O1xuXG4vLyBjb21wb3NlIGFjdGlvbiB0byBhcHBseSByZXN1bHQgbXVsdGlwbGUgcmVkdWNlcnMsIHdpdGggdGhlIG91dHB1dCBvZiBvbmVcblxuLyoqXG4gKiBTb21lIGFjdGlvbnMgd2lsbCBhZmZlY3QgdGhlIGVudGlyZSBrZXBsZXIubGcgaW5zdGFuY2Ugc3RhdGUuXG4gKiBUaGUgdXBkYXRlcnMgZm9yIHRoZXNlIGFjdGlvbnMgaXMgZXhwb3J0ZWQgYXMgYGNvbWJpbmVkVXBkYXRlcnNgLiBUaGVzZSB1cGRhdGVyIHRha2UgdGhlIGVudGlyZSBpbnN0YW5jZSBzdGF0ZVxuICogYXMgdGhlIGZpcnN0IGFyZ3VtZW50LiBSZWFkIG1vcmUgYWJvdXQgW1VzaW5nIHVwZGF0ZXJzXSguLi9hZHZhbmNlZC11c2FnZS91c2luZy11cGRhdGVycy5tZClcbiAqIEBwdWJsaWNcbiAqIEBleGFtcGxlXG4gKlxuICogaW1wb3J0IGtlcGxlckdsUmVkdWNlciwge2NvbWJpbmVkVXBkYXRlcnN9IGZyb20gJ2tlcGxlci5nbC9yZWR1Y2Vycyc7XG4gKiAvLyBSb290IFJlZHVjZXJcbiAqIGNvbnN0IHJlZHVjZXJzID0gY29tYmluZVJlZHVjZXJzKHtcbiAqICBrZXBsZXJHbDoga2VwbGVyR2xSZWR1Y2VyLFxuICogIGFwcDogYXBwUmVkdWNlclxuICogfSk7XG4gKlxuICogY29uc3QgY29tcG9zZWRSZWR1Y2VyID0gKHN0YXRlLCBhY3Rpb24pID0+IHtcbiAqICBzd2l0Y2ggKGFjdGlvbi50eXBlKSB7XG4gKiAgICAvLyBhZGQgZGF0YSB0byBtYXAgYWZ0ZXIgcmVjZWl2aW5nIGRhdGEgZnJvbSByZW1vdGUgc291cmNlc1xuICogICAgY2FzZSAnTE9BRF9SRU1PVEVfUkVTT1VSQ0VfU1VDQ0VTUyc6XG4gKiAgICAgIHJldHVybiB7XG4gKiAgICAgICAgLi4uc3RhdGUsXG4gKiAgICAgICAga2VwbGVyR2w6IHtcbiAqICAgICAgICAgIC4uLnN0YXRlLmtlcGxlckdsLFxuICogICAgICAgICAgLy8gcGFzcyBpbiBrZXBsZXIuZ2wgaW5zdGFuY2Ugc3RhdGUgdG8gY29tYmluZWRVcGRhdGVyc1xuICogICAgICAgICAgbWFwOiAgY29tYmluZWRVcGRhdGVycy5hZGREYXRhVG9NYXBVcGRhdGVyKFxuICogICAgICAgICAgIHN0YXRlLmtlcGxlckdsLm1hcCxcbiAqICAgICAgICAgICB7XG4gKiAgICAgICAgICAgICBwYXlsb2FkOiB7XG4gKiAgICAgICAgICAgICAgIGRhdGFzZXRzOiBhY3Rpb24uZGF0YXNldHMsXG4gKiAgICAgICAgICAgICAgIG9wdGlvbnM6IHtyZWFkT25seTogdHJ1ZX0sXG4gKiAgICAgICAgICAgICAgIGNvbmZpZzogYWN0aW9uLmNvbmZpZ1xuICogICAgICAgICAgICAgIH1cbiAqICAgICAgICAgICAgfVxuICogICAgICAgICAgKVxuICogICAgICAgIH1cbiAqICAgICAgfTtcbiAqICB9XG4gKiAgcmV0dXJuIHJlZHVjZXJzKHN0YXRlLCBhY3Rpb24pO1xuICogfTtcbiAqXG4gKiBleHBvcnQgZGVmYXVsdCBjb21wb3NlZFJlZHVjZXI7XG4gKi9cblxuLyogZXNsaW50LWRpc2FibGUgbm8tdW51c2VkLXZhcnMgKi9cbi8vIEB0cy1pZ25vcmVcbmNvbnN0IGNvbWJpbmVkVXBkYXRlcnMgPSBudWxsO1xuLyogZXNsaW50LWVuYWJsZSBuby11bnVzZWQtdmFycyAqL1xuXG5leHBvcnQgY29uc3QgaXNWYWxpZENvbmZpZyA9IGNvbmZpZyA9PlxuICBpc1BsYWluT2JqZWN0KGNvbmZpZykgJiYgaXNQbGFpbk9iamVjdChjb25maWcuY29uZmlnKSAmJiBjb25maWcudmVyc2lvbjtcblxuZXhwb3J0IGNvbnN0IGRlZmF1bHRBZGREYXRhVG9NYXBPcHRpb25zID0ge1xuICBjZW50ZXJNYXA6IHRydWUsXG4gIGtlZXBFeGlzdGluZ0NvbmZpZzogZmFsc2UsXG4gIGF1dG9DcmVhdGVMYXllcnM6IHRydWUsXG4gIGF1dG9DcmVhdGVUb29sdGlwczogdHJ1ZVxufTtcblxuLyoqXG4gKiBDb21iaW5lIGRhdGEgYW5kIGZ1bGwgY29uZmlndXJhdGlvbiB1cGRhdGUgaW4gYSBzaW5nbGUgYWN0aW9uXG4gKlxuICogQG1lbWJlcm9mIGNvbWJpbmVkVXBkYXRlcnNcbiAqIEBwYXJhbSB7T2JqZWN0fSBzdGF0ZSBrZXBsZXIuZ2wgaW5zdGFuY2Ugc3RhdGUsIGNvbnRhaW5pbmcgYWxsIHN1YnJlZHVjZXIgc3RhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBhY3Rpb25cbiAqIEBwYXJhbSB7T2JqZWN0fSBhY3Rpb24ucGF5bG9hZCBge2RhdGFzZXRzLCBvcHRpb25zLCBjb25maWd9YFxuICogQHBhcmFtIGFjdGlvbi5wYXlsb2FkLmRhdGFzZXRzIC0gKioqcmVxdWlyZWQqKiBkYXRhc2V0cyBjYW4gYmUgYSBkYXRhc2V0IG9yIGFuIGFycmF5IG9mIGRhdGFzZXRzXG4gKiBFYWNoIGRhdGFzZXQgb2JqZWN0IG5lZWRzIHRvIGhhdmUgYGluZm9gIGFuZCBgZGF0YWAgcHJvcGVydHkuXG4gKiBAcGFyYW0gW2FjdGlvbi5wYXlsb2FkLm9wdGlvbnNdIG9wdGlvbiBvYmplY3QgYHtjZW50ZXJNYXA6IHRydWV9YFxuICogQHBhcmFtIFthY3Rpb24ucGF5bG9hZC5jb25maWddIG1hcCBjb25maWdcbiAqIEBwYXJhbSBbYWN0aW9uLnBheWxvYWQuaW5mb10gbWFwIGluZm8gY29udGFpbnMgdGl0bGUgYW5kIGRlc2NyaXB0aW9uXG4gKiBAcmV0dXJucyBuZXh0U3RhdGVcbiAqXG4gKiBAdHlwZWRlZiB7T2JqZWN0fSBEYXRhc2V0XG4gKiBAcHJvcGVydHkgaW5mbyAtaW5mbyBvZiBhIGRhdGFzZXRcbiAqIEBwcm9wZXJ0eSBpbmZvLmlkIC0gaWQgb2YgdGhpcyBkYXRhc2V0LiBJZiBjb25maWcgaXMgZGVmaW5lZCwgYGlkYCBzaG91bGQgbWF0Y2hlcyB0aGUgYGRhdGFJZGAgaW4gY29uZmlnLlxuICogQHByb3BlcnR5IGluZm8ubGFiZWwgLSBBIGRpc3BsYXkgbmFtZSBvZiB0aGlzIGRhdGFzZXRcbiAqIEBwcm9wZXJ0eSBkYXRhIC0gKioqcmVxdWlyZWQqKiBUaGUgZGF0YSBvYmplY3QsIGluIGEgdGFidWxhciBmb3JtYXQgd2l0aCAyIHByb3BlcnRpZXMgYGZpZWxkc2AgYW5kIGByb3dzYFxuICogQHByb3BlcnR5IGRhdGEuZmllbGRzIC0gKioqcmVxdWlyZWQqKiBBcnJheSBvZiBmaWVsZHMsXG4gKiBAcHJvcGVydHkgZGF0YS5maWVsZHMubmFtZSAtICoqKnJlcXVpcmVkKiogTmFtZSBvZiB0aGUgZmllbGQsXG4gKiBAcHJvcGVydHkgZGF0YS5yb3dzIC0gKioqcmVxdWlyZWQqKiBBcnJheSBvZiByb3dzLCBpbiBhIHRhYnVsYXIgZm9ybWF0IHdpdGggYGZpZWxkc2AgYW5kIGByb3dzYFxuICpcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IGFkZERhdGFUb01hcFVwZGF0ZXIgPSAoXG4gIHN0YXRlOiBLZXBsZXJHbFN0YXRlLFxuICB7cGF5bG9hZH06IHtwYXlsb2FkOiBBZGREYXRhVG9NYXBQYXlsb2FkfVxuKTogS2VwbGVyR2xTdGF0ZSA9PiB7XG4gIGNvbnN0IHtkYXRhc2V0cywgY29uZmlnLCBpbmZvfSA9IHBheWxvYWQ7XG5cbiAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAuLi5kZWZhdWx0QWRkRGF0YVRvTWFwT3B0aW9ucyxcbiAgICAuLi5wYXlsb2FkLm9wdGlvbnNcbiAgfTtcblxuICAvLyBjaGVjayBpZiBwcm9ncmVzaXZlIGxvYWRpbmcgZGF0YXNldCBieSBiYXRhY2hlcywgYW5kIHVwZGF0ZSB2aXNTdGF0ZSBkaXJlY3RseVxuICBjb25zdCBpc1Byb2dyZXNzaXZlTG9hZGluZyA9XG4gICAgQXJyYXkuaXNBcnJheShkYXRhc2V0cykgJiZcbiAgICBkYXRhc2V0c1swXT8uaW5mby5mb3JtYXQgPT09ICdhcnJvdycgJiZcbiAgICBkYXRhc2V0c1swXT8uaW5mby5pZCAmJlxuICAgIGRhdGFzZXRzWzBdPy5pbmZvLmlkIGluIHN0YXRlLnZpc1N0YXRlLmRhdGFzZXRzO1xuICBpZiAoaXNQcm9ncmVzc2l2ZUxvYWRpbmcpIHtcbiAgICByZXR1cm4gY29tcG9zZV88S2VwbGVyR2xTdGF0ZT4oW1xuICAgICAgcGlja18oJ3Zpc1N0YXRlJykoXG4gICAgICAgIGFwcGx5XzxWaXNTdGF0ZSwgYW55Pih2aXNTdGF0ZVVwZGF0ZVZpc0RhdGFVcGRhdGVyLCB7XG4gICAgICAgICAgZGF0YXNldHMsXG4gICAgICAgICAgb3B0aW9ucyxcbiAgICAgICAgICBjb25maWdcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICBdKShzdGF0ZSk7XG4gIH1cblxuICAvLyBAdHMtZXhwZWN0LWVycm9yXG4gIGxldCBwYXJzZWRDb25maWc6IFBhcnNlZENvbmZpZyA9IGNvbmZpZztcblxuICBpZiAoaXNWYWxpZENvbmZpZyhjb25maWcpKSB7XG4gICAgLy8gaWYgcGFzc2VkIGluIHNhdmVkIGNvbmZpZ1xuICAgIC8vIEB0cy1leHBlY3QtZXJyb3JcbiAgICBwYXJzZWRDb25maWcgPSBzdGF0ZS52aXNTdGF0ZS5zY2hlbWEucGFyc2VTYXZlZENvbmZpZyhjb25maWcpO1xuICB9XG4gIGNvbnN0IG9sZExheWVycyA9IHN0YXRlLnZpc1N0YXRlLmxheWVycztcbiAgY29uc3QgZmlsdGVyTmV3bHlBZGRlZExheWVycyA9IChsYXllcnM6IExheWVyW10pID0+XG4gICAgbGF5ZXJzLmZpbHRlcihubCA9PiAhb2xkTGF5ZXJzLmZpbmQob2wgPT4gb2wgPT09IG5sKSk7XG5cbiAgLy8gUmV0dXJucyB1bmRlZmluZWQgaWYgbm90IGZvdW5kLCB0byBtYWtlIHR5cGVzY3JpcHQgaGFwcHlcbiAgY29uc3QgZmluZE1hcEJvdW5kc0lmQ2VudGVyZWQgPSAobGF5ZXJzOiBMYXllcltdKSA9PiB7XG4gICAgY29uc3QgYm91bmRzID0gb3B0aW9ucy5jZW50ZXJNYXAgJiYgZmluZE1hcEJvdW5kcyhsYXllcnMpO1xuICAgIHJldHVybiBib3VuZHMgPyBib3VuZHMgOiB1bmRlZmluZWQ7XG4gIH07XG5cbiAgcmV0dXJuIGNvbXBvc2VfPEtlcGxlckdsU3RhdGU+KFtcbiAgICBwaWNrXygndmlzU3RhdGUnKShcbiAgICAgIGFwcGx5XzxWaXNTdGF0ZSwgYW55Pih2aXNTdGF0ZVVwZGF0ZVZpc0RhdGFVcGRhdGVyLCB7XG4gICAgICAgIGRhdGFzZXRzLFxuICAgICAgICBvcHRpb25zLFxuICAgICAgICBjb25maWc6IHBhcnNlZENvbmZpZ1xuICAgICAgfSlcbiAgICApLFxuXG4gICAgaWZfKFxuICAgICAgQm9vbGVhbihpbmZvKSxcbiAgICAgIHBpY2tfKCd2aXNTdGF0ZScpKFxuICAgICAgICBhcHBseV88VmlzU3RhdGUsIGFueT4oc2V0TWFwSW5mb1VwZGF0ZXIsIHtpbmZvfSlcbiAgICAgIClcbiAgICApLFxuICAgIHdpdGhfKCh7dmlzU3RhdGV9KSA9PlxuICAgICAgcGlja18oJ21hcFN0YXRlJykoXG4gICAgICAgIGFwcGx5XyhcbiAgICAgICAgICBzdGF0ZU1hcENvbmZpZ1VwZGF0ZXIsXG4gICAgICAgICAgcGF5bG9hZF8oe1xuICAgICAgICAgICAgY29uZmlnOiBwYXJzZWRDb25maWcsXG4gICAgICAgICAgICBvcHRpb25zLFxuICAgICAgICAgICAgYm91bmRzOiBmaW5kTWFwQm91bmRzSWZDZW50ZXJlZChmaWx0ZXJOZXdseUFkZGVkTGF5ZXJzKHZpc1N0YXRlLmxheWVycykpXG4gICAgICAgICAgfSlcbiAgICAgICAgKVxuICAgICAgKVxuICAgICksXG4gICAgcGlja18oJ21hcFN0eWxlJykoYXBwbHlfKHN0eWxlTWFwQ29uZmlnVXBkYXRlciwgcGF5bG9hZF8oe2NvbmZpZzogcGFyc2VkQ29uZmlnLCBvcHRpb25zfSkpKSxcbiAgICBwaWNrXygndWlTdGF0ZScpKGFwcGx5Xyh1aVN0YXRlTG9hZEZpbGVzU3VjY2Vzc1VwZGF0ZXIsIHBheWxvYWRfKG51bGwpKSksXG4gICAgcGlja18oJ3VpU3RhdGUnKShhcHBseV8odG9nZ2xlTW9kYWxVcGRhdGVyLCBwYXlsb2FkXyhudWxsKSkpLFxuICAgIHBpY2tfKCd1aVN0YXRlJykobWVyZ2VfKG9wdGlvbnMuaGFzT3duUHJvcGVydHkoJ3JlYWRPbmx5JykgPyB7cmVhZE9ubHk6IG9wdGlvbnMucmVhZE9ubHl9IDoge30pKVxuICBdKShzdGF0ZSk7XG59O1xuXG5leHBvcnQgY29uc3QgbG9hZEZpbGVzU3VjY2Vzc1VwZGF0ZXIgPSAoXG4gIHN0YXRlOiBLZXBsZXJHbFN0YXRlLFxuICBhY3Rpb246IGxvYWRGaWxlc1N1Y2Nlc3NVcGRhdGVyQWN0aW9uXG4pOiBLZXBsZXJHbFN0YXRlID0+IHtcbiAgLy8gc3RpbGwgbW9yZSB0byBsb2FkXG4gIGNvbnN0IHBheWxvYWRzID0gZmlsZXNUb0RhdGFQYXlsb2FkKGFjdGlvbi5yZXN1bHQpO1xuICBjb25zdCBuZXh0U3RhdGUgPSBjb21wb3NlXyhbXG4gICAgcGlja18oJ3Zpc1N0YXRlJykoXG4gICAgICBtZXJnZV8oe1xuICAgICAgICBmaWxlTG9hZGluZzogZmFsc2UsXG4gICAgICAgIGZpbGVMb2FkaW5nUHJvZ3Jlc3M6IHt9XG4gICAgICB9KVxuICAgIClcbiAgXSkoc3RhdGUpO1xuICAvLyBtYWtlIG11bHRpcGxlIGFkZCBkYXRhIHRvIG1hcCBjYWxsc1xuICBjb25zdCBzdGF0ZVdpdGhEYXRhID0gY29tcG9zZV8ocGF5bG9hZHMubWFwKHAgPT4gYXBwbHlfKGFkZERhdGFUb01hcFVwZGF0ZXIsIHBheWxvYWRfKHApKSkpKFxuICAgIG5leHRTdGF0ZVxuICApO1xuICByZXR1cm4gc3RhdGVXaXRoRGF0YSBhcyBLZXBsZXJHbFN0YXRlO1xufTtcblxuZXhwb3J0IGNvbnN0IGFkZERhdGFUb01hcENvbXBvc2VkID0gYWRkRGF0YVRvTWFwVXBkYXRlcjtcblxuLyoqXG4gKiBIZWxwZXIgd2hpY2ggdXBkYXRlcyBtYXAgb3ZlcmxheSBibGVuZGluZyBtb2RlIGluIHZpc1N0YXRlLFxuICogYnV0IG9ubHkgaWYgaXQncyBub3QgY3VycmVudGx5IGluIHRoZSBgbm9ybWFsYCBtb2RlLlxuICovXG5jb25zdCB1cGRhdGVPdmVybGF5QmxlbmRpbmcgPSBvdmVybGF5QmxlbmRpbmcgPT4gdmlzU3RhdGUgPT4ge1xuICBpZiAodmlzU3RhdGUub3ZlcmxheUJsZW5kaW5nICE9PSBPVkVSTEFZX0JMRU5ESU5HUy5ub3JtYWwudmFsdWUpIHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4udmlzU3RhdGUsXG4gICAgICBvdmVybGF5QmxlbmRpbmdcbiAgICB9O1xuICB9XG4gIHJldHVybiB2aXNTdGF0ZTtcbn07XG5cbi8qKlxuICogSGVscGVyIHdoaWNoIHVwZGF0ZXMgYGRhcmtCYXNlTWFwRW5hYmxlZGAgaW4gYWxsIHRoZSBsYXllcnMgaW4gdmlzU3RhdGUgd2hpY2hcbiAqIGhhdmUgdGhpcyBjb25maWcgc2V0dGluZyAob3IgaW4gb25lIHNwZWNpZmljIGxheWVyIGlmIHRoZSBgbGF5ZXJJZGAgcGFyYW0gaXMgcHJvdmlkZWQpLlxuICovXG5jb25zdCB1cGRhdGVEYXJrQmFzZU1hcExheWVycyA9IChcbiAgZGFya0Jhc2VNYXBFbmFibGVkOiBib29sZWFuLFxuICBsYXllcklkOiBzdHJpbmcgfCBudWxsID0gbnVsbFxuKSA9PiB2aXNTdGF0ZSA9PiAoe1xuICAuLi52aXNTdGF0ZSxcbiAgbGF5ZXJzOiB2aXNTdGF0ZS5sYXllcnMubWFwKGxheWVyID0+IHtcbiAgICBpZiAoIWxheWVySWQgfHwgbGF5ZXIuaWQgPT09IGxheWVySWQpIHtcbiAgICAgIGlmIChsYXllci52aXNDb25maWdTZXR0aW5ncy5oYXNPd25Qcm9wZXJ0eSgnZGFya0Jhc2VNYXBFbmFibGVkJykpIHtcbiAgICAgICAgY29uc3Qge3Zpc0NvbmZpZ30gPSBsYXllci5jb25maWc7XG4gICAgICAgIHJldHVybiBsYXllci51cGRhdGVMYXllckNvbmZpZyh7XG4gICAgICAgICAgdmlzQ29uZmlnOiB7Li4udmlzQ29uZmlnLCBkYXJrQmFzZU1hcEVuYWJsZWR9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbGF5ZXI7XG4gIH0pXG59KTtcblxuLyoqXG4gKiBVcGRhdGVyIHRoYXQgY2hhbmdlcyB0aGUgbWFwIHN0eWxlIGJ5IGNhbGxpbmcgbWFwU3R5bGVDaGFuZ2VVcGRhdGVyIG9uIHZpc1N0YXRlLlxuICogSW4gYWRkaXRpb24gdG8gdGhhdCwgaXQgZG9lcyB0aGUgZm9sbG93aW5nOlxuICpcbiAqICAgMS4gVXBkYXRlIG1hcCBvdmVybGF5IGJsZW5kaW5nIG1vZGUgaW4gYWNjb3JkYW5jZSB3aXRoIHRoZSBjb2xvck1vZGUgb2YgdGhlXG4gKiAgICAgIGJhc2UgbWFwLCBidXQgb25seSBpZiBpdCdzIG5vdCBpbiB0aGUgYG5vcm1hbGAgbW9kZS5cbiAqXG4gKiAgIDIuIFVwZGF0ZSBhbGwgdGhlIGxheWVycyB3aGljaCBoYXZlIHRoZSBgZGFya0Jhc2VNYXBFbmFibGVkYCBjb25maWcgc2V0dGluZ1xuICogICAgICBhZGp1c3RpbmcgaXQgaW4gYWNjb3JkYW5jZSB3aXRoIHRoZSBjb2xvck1vZGUgb2YgdGhlIGJhc2UgbWFwLlxuICpcbiAqL1xuZXhwb3J0IGNvbnN0IGNvbWJpbmVkTWFwU3R5bGVDaGFuZ2VVcGRhdGVyID0gKFxuICBzdGF0ZTogS2VwbGVyR2xTdGF0ZSxcbiAgYWN0aW9uOiBNYXBTdHlsZUNoYW5nZVVwZGF0ZXJBY3Rpb25cbik6IEtlcGxlckdsU3RhdGUgPT4ge1xuICBjb25zdCB7cGF5bG9hZH0gPSBhY3Rpb247XG4gIGNvbnN0IHttYXBTdHlsZX0gPSBzdGF0ZTtcbiAgY29uc3QgZ2V0Q29sb3JNb2RlID0ga2V5ID0+IG1hcFN0eWxlLm1hcFN0eWxlc1trZXldPy5jb2xvck1vZGU7XG4gIGNvbnN0IHByZXZDb2xvck1vZGUgPSBnZXRDb2xvck1vZGUobWFwU3R5bGUuc3R5bGVUeXBlKTtcbiAgY29uc3QgbmV4dENvbG9yTW9kZSA9IGdldENvbG9yTW9kZShwYXlsb2FkLnN0eWxlVHlwZSk7XG4gIGxldCB7dmlzU3RhdGV9ID0gc3RhdGU7XG4gIGlmIChuZXh0Q29sb3JNb2RlICE9PSBwcmV2Q29sb3JNb2RlKSB7XG4gICAgc3dpdGNoIChuZXh0Q29sb3JNb2RlKSB7XG4gICAgICBjYXNlIEJBU0VfTUFQX0NPTE9SX01PREVTLkRBUks6XG4gICAgICAgIHZpc1N0YXRlID0gY29tcG9zZV8oW1xuICAgICAgICAgIHVwZGF0ZU92ZXJsYXlCbGVuZGluZyhPVkVSTEFZX0JMRU5ESU5HUy5zY3JlZW4udmFsdWUpLFxuICAgICAgICAgIHVwZGF0ZURhcmtCYXNlTWFwTGF5ZXJzKHRydWUpXG4gICAgICAgIF0pKHZpc1N0YXRlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIEJBU0VfTUFQX0NPTE9SX01PREVTLkxJR0hUOlxuICAgICAgICB2aXNTdGF0ZSA9IGNvbXBvc2VfKFtcbiAgICAgICAgICB1cGRhdGVPdmVybGF5QmxlbmRpbmcoT1ZFUkxBWV9CTEVORElOR1MuZGFya2VuLnZhbHVlKSxcbiAgICAgICAgICB1cGRhdGVEYXJrQmFzZU1hcExheWVycyhmYWxzZSlcbiAgICAgICAgXSkodmlzU3RhdGUpO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAvLyBkbyBub3RoaW5nXG4gICAgfVxuICB9XG4gIHJldHVybiB7XG4gICAgLi4uc3RhdGUsXG4gICAgdmlzU3RhdGUsXG4gICAgbWFwU3R5bGU6IG1hcFN0eWxlQ2hhbmdlVXBkYXRlcihtYXBTdHlsZSwge3BheWxvYWQ6IHsuLi5wYXlsb2FkfX0pXG4gIH07XG59O1xuXG4vKipcbiAqIFVwZGF0ZXIgdGhhdCBjaGFuZ2VzIHRoZSBsYXllciB0eXBlIGJ5IGNhbGxpbmcgYGxheWVyVHlwZUNoYW5nZVVwZGF0ZXJgIG9uIHZpc1N0YXRlLlxuICogSW4gYWRkaXRpb24gdG8gdGhhdCwgaWYgdGhlIG5ldyBsYXllciB0eXBlIGhhcyB0aGUgYGRhcmtCYXNlTWFwRW5hYmxlZGAgY29uZmlnXG4gKiBzZXR0aW5nLCB3ZSBhZGp1c3QgaXQgaW4gYWNjb3JkYW5jZSB3aXRoIHRoZSBjb2xvck1vZGUgb2YgdGhlIGJhc2UgbWFwLnNcbiAqL1xuZXhwb3J0IGNvbnN0IGNvbWJpbmVkTGF5ZXJUeXBlQ2hhbmdlVXBkYXRlciA9IChcbiAgc3RhdGU6IEtlcGxlckdsU3RhdGUsXG4gIGFjdGlvbjogTGF5ZXJUeXBlQ2hhbmdlVXBkYXRlckFjdGlvblxuKTogS2VwbGVyR2xTdGF0ZSA9PiB7XG4gIGxldCB7dmlzU3RhdGV9ID0gc3RhdGU7XG4gIGNvbnN0IG9sZExheWVySW5kZXggPSB2aXNTdGF0ZS5sYXllcnMuZmluZEluZGV4KGxheWVyID0+IGxheWVyID09PSBhY3Rpb24ub2xkTGF5ZXIpO1xuICB2aXNTdGF0ZSA9IGxheWVyVHlwZUNoYW5nZVVwZGF0ZXIodmlzU3RhdGUsIGFjdGlvbik7XG4gIGNvbnN0IG5ld0xheWVyID0gdmlzU3RhdGUubGF5ZXJzW29sZExheWVySW5kZXhdO1xuICBpZiAobmV3TGF5ZXI/LnZpc0NvbmZpZ1NldHRpbmdzLmhhc093blByb3BlcnR5KCdkYXJrQmFzZU1hcEVuYWJsZWQnKSkge1xuICAgIGNvbnN0IHttYXBTdHlsZX0gPSBzdGF0ZTtcbiAgICBjb25zdCB7Y29sb3JNb2RlfSA9IG1hcFN0eWxlLm1hcFN0eWxlc1ttYXBTdHlsZS5zdHlsZVR5cGVdO1xuICAgIGNvbnN0IHtkYXJrQmFzZU1hcEVuYWJsZWR9ID0gbmV3TGF5ZXIuY29uZmlnLnZpc0NvbmZpZztcbiAgICBzd2l0Y2ggKGNvbG9yTW9kZSkge1xuICAgICAgY2FzZSBCQVNFX01BUF9DT0xPUl9NT0RFUy5EQVJLOlxuICAgICAgICBpZiAoIWRhcmtCYXNlTWFwRW5hYmxlZCkge1xuICAgICAgICAgIHZpc1N0YXRlID0gdXBkYXRlRGFya0Jhc2VNYXBMYXllcnModHJ1ZSwgbmV3TGF5ZXIuaWQpKHZpc1N0YXRlKTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgQkFTRV9NQVBfQ09MT1JfTU9ERVMuTElHSFQ6XG4gICAgICAgIGlmIChkYXJrQmFzZU1hcEVuYWJsZWQpIHtcbiAgICAgICAgICB2aXNTdGF0ZSA9IHVwZGF0ZURhcmtCYXNlTWFwTGF5ZXJzKGZhbHNlLCBuZXdMYXllci5pZCkodmlzU3RhdGUpO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgIC8vIGRvIG5vdGhpbmdcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHtcbiAgICAuLi5zdGF0ZSxcbiAgICB2aXNTdGF0ZVxuICB9O1xufTtcblxuLyoqXG4gKiBNYWtlIG1hcExlZ2VuZCBhY3RpdmUgd2hlbiB0b2dnbGVTcGxpdE1hcCBhY3Rpb24gaXMgY2FsbGVkXG4gKi9cbmV4cG9ydCBjb25zdCB0b2dnbGVTcGxpdE1hcFVwZGF0ZXIgPSAoXG4gIHN0YXRlOiBLZXBsZXJHbFN0YXRlLFxuICBhY3Rpb246IFRvZ2dsZVNwbGl0TWFwVXBkYXRlckFjdGlvblxuKTogS2VwbGVyR2xTdGF0ZSA9PiB7XG4gIGNvbnN0IG5ld1N0YXRlID0ge1xuICAgIC4uLnN0YXRlLFxuICAgIHZpc1N0YXRlOiB2aXNTdGF0ZVRvZ2dsZVNwbGl0TWFwVXBkYXRlcihzdGF0ZS52aXNTdGF0ZSwgYWN0aW9uKSxcbiAgICB1aVN0YXRlOiB1aVN0YXRlVG9nZ2xlU3BsaXRNYXBVcGRhdGVyKHN0YXRlLnVpU3RhdGUpLFxuICAgIG1hcFN0YXRlOiBtYXBTdGF0ZVRvZ2dsZVNwbGl0TWFwVXBkYXRlcihzdGF0ZS5tYXBTdGF0ZSwgYWN0aW9uKVxuICB9O1xuXG4gIGNvbnN0IGlzU3BsaXQgPSBuZXdTdGF0ZS52aXNTdGF0ZS5zcGxpdE1hcHMubGVuZ3RoICE9PSAwO1xuICBjb25zdCBpc0xlZ2VuZEFjdGl2ZSA9IG5ld1N0YXRlLnVpU3RhdGUubWFwQ29udHJvbHM/Lm1hcExlZ2VuZD8uYWN0aXZlO1xuICBpZiAoaXNTcGxpdCAmJiAhaXNMZWdlbmRBY3RpdmUpIHtcbiAgICBuZXdTdGF0ZS51aVN0YXRlID0gdG9nZ2xlTWFwQ29udHJvbFVwZGF0ZXIobmV3U3RhdGUudWlTdGF0ZSwge1xuICAgICAgcGF5bG9hZDoge3BhbmVsSWQ6ICdtYXBMZWdlbmQnLCBpbmRleDogYWN0aW9uLnBheWxvYWR9XG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gbmV3U3RhdGU7XG59O1xuXG5jb25zdCBkZWZhdWx0UmVwbGFjZURhdGFUb01hcE9wdGlvbnMgPSB7XG4gIGtlZXBFeGlzdGluZ0NvbmZpZzogdHJ1ZSxcbiAgY2VudGVyTWFwOiB0cnVlLFxuICBhdXRvQ3JlYXRlTGF5ZXJzOiBmYWxzZVxufTtcblxuLyoqXG4gKiBVcGRhdGVyIHJlcGxhY2UgYSBkYXRhc2V0IGluIHN0YXRlXG4gKi9cbmV4cG9ydCBjb25zdCByZXBsYWNlRGF0YUluTWFwVXBkYXRlciA9IChcbiAgc3RhdGU6IEtlcGxlckdsU3RhdGUsXG4gIHtwYXlsb2FkfToge3BheWxvYWQ6IFJlcGxhY2VEYXRhSW5NYXBQYXlsb2FkfVxuKTogS2VwbGVyR2xTdGF0ZSA9PiB7XG4gIGNvbnN0IHtkYXRhc2V0VG9SZXBsYWNlSWQsIGRhdGFzZXRUb1VzZSwgb3B0aW9ucyA9IHt9fSA9IHBheWxvYWQ7XG4gIGNvbnN0IGFkZERhdGFUb01hcE9wdGlvbnMgPSB7Li4uZGVmYXVsdFJlcGxhY2VEYXRhVG9NYXBPcHRpb25zLCAuLi5vcHRpb25zfTtcblxuICAvLyBjaGVjayBpZiBkYXRhc2V0IGlzIHRoZXJlXG4gIGlmICghc3RhdGUudmlzU3RhdGUuZGF0YXNldHNbZGF0YXNldFRvUmVwbGFjZUlkXSkge1xuICAgIHJldHVybiBzdGF0ZTtcbiAgfVxuICAvLyBkYXRhc2V0VG9Vc2UgaXMgUHJvdG9EYXRhc2V0XG4gIGNvbnN0IGRhdGFJZFRvVXNlID0gZGF0YXNldFRvVXNlLmluZm8uaWQ7XG4gIGlmICghZGF0YUlkVG9Vc2UpIHtcbiAgICByZXR1cm4gc3RhdGU7XG4gIH1cbiAgLy8gcmVtb3ZlIGRhdGFzZXQgYW5kIHB1dCBkZXBlbmRlbmNpZXMgaW4gdG9CZU1lcmdlZFxuICBjb25zdCBwcmVwYXJlZFN0YXRlID0ge1xuICAgIC4uLnN0YXRlLFxuICAgIHZpc1N0YXRlOiBwcmVwYXJlU3RhdGVGb3JEYXRhc2V0UmVwbGFjZShzdGF0ZS52aXNTdGF0ZSwgZGF0YXNldFRvUmVwbGFjZUlkLCBkYXRhSWRUb1VzZSlcbiAgfTtcblxuICBjb25zdCBuZXh0U3RhdGUgPSBhZGREYXRhVG9NYXBVcGRhdGVyKFxuICAgIHByZXBhcmVkU3RhdGUsXG4gICAgcGF5bG9hZF8oe1xuICAgICAgZGF0YXNldHM6IGRhdGFzZXRUb1VzZSxcbiAgICAgIC8vIHNob3VsZCB6b29tIHRvIG5ldyBkYXRhc2V0XG4gICAgICBvcHRpb25zOiBhZGREYXRhVG9NYXBPcHRpb25zXG4gICAgfSlcbiAgKTtcblxuICByZXR1cm4gbmV4dFN0YXRlO1xufTtcbiJdfQ==
|
|
@@ -6,7 +6,8 @@ export declare function payload_<P>(payload: P): {
|
|
|
6
6
|
};
|
|
7
7
|
/** Wraps a value in an object and stores it the `payload` field */
|
|
8
8
|
export declare function apply_<State, P>(updater: (state: State, nextPayload: P) => State, payload: P): (state: State) => State;
|
|
9
|
-
|
|
9
|
+
declare type Arg<State> = (state: State) => (nextState: State) => State;
|
|
10
|
+
export declare function with_<State>(fn: Arg<State>): (state: State) => State;
|
|
10
11
|
export declare function if_<State>(pred: boolean, fn: (state: State) => State): (state: State) => State;
|
|
11
12
|
export declare function compose_<State>(fns: Array<(s: State) => State>): (s: State) => State;
|
|
12
13
|
/** Returns a reducer function that merges props with state */
|
|
@@ -15,7 +16,9 @@ export declare function pick_<Prop extends string>(prop: Prop): <Value>(fn: (p:
|
|
|
15
16
|
export declare function swap_<X extends {
|
|
16
17
|
id: string;
|
|
17
18
|
}>(item: X): (arr: X[]) => X[];
|
|
18
|
-
export declare function
|
|
19
|
+
export declare function map_<X, T>(fn: (state: X) => T): (arr: X[]) => T[];
|
|
20
|
+
export declare function filterOutById<X extends {
|
|
19
21
|
id: string;
|
|
20
|
-
}>(id: string): (arr: X[]) => X
|
|
21
|
-
export declare function
|
|
22
|
+
}>(id: string): (arr: X[]) => X[];
|
|
23
|
+
export declare function removeElementAtIndex<X>(index: number): (arr: X[]) => X[];
|
|
24
|
+
export {};
|
package/dist/composer-helpers.js
CHANGED
|
@@ -1,23 +1,3 @@
|
|
|
1
|
-
// Copyright (c) 2022 Uber Technologies, Inc.
|
|
2
|
-
//
|
|
3
|
-
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
4
|
-
// of this software and associated documentation files (the "Software"), to deal
|
|
5
|
-
// in the Software without restriction, including without limitation the rights
|
|
6
|
-
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
7
|
-
// copies of the Software, and to permit persons to whom the Software is
|
|
8
|
-
// furnished to do so, subject to the following conditions:
|
|
9
|
-
//
|
|
10
|
-
// The above copyright notice and this permission notice shall be included in
|
|
11
|
-
// all copies or substantial portions of the Software.
|
|
12
|
-
//
|
|
13
|
-
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
14
|
-
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
15
|
-
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
16
|
-
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
17
|
-
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
18
|
-
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
19
|
-
// THE SOFTWARE.
|
|
20
|
-
|
|
21
1
|
"use strict";
|
|
22
2
|
|
|
23
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
@@ -34,8 +14,11 @@ exports.compose_ = compose_;
|
|
|
34
14
|
exports.merge_ = merge_;
|
|
35
15
|
exports.pick_ = pick_;
|
|
36
16
|
exports.swap_ = swap_;
|
|
37
|
-
exports.findById = findById;
|
|
38
17
|
exports.map_ = map_;
|
|
18
|
+
exports.filterOutById = filterOutById;
|
|
19
|
+
exports.removeElementAtIndex = removeElementAtIndex;
|
|
20
|
+
|
|
21
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
39
22
|
|
|
40
23
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
41
24
|
|
|
@@ -115,19 +98,25 @@ function swap_(item) {
|
|
|
115
98
|
};
|
|
116
99
|
}
|
|
117
100
|
|
|
118
|
-
function
|
|
101
|
+
function map_(fn) {
|
|
119
102
|
return function (arr) {
|
|
120
|
-
return arr.
|
|
121
|
-
return
|
|
103
|
+
return arr.map(function (e) {
|
|
104
|
+
return fn(e);
|
|
122
105
|
});
|
|
123
106
|
};
|
|
124
107
|
}
|
|
125
108
|
|
|
126
|
-
function
|
|
109
|
+
function filterOutById(id) {
|
|
127
110
|
return function (arr) {
|
|
128
|
-
return arr.
|
|
129
|
-
return
|
|
111
|
+
return arr.filter(function (e) {
|
|
112
|
+
return e.id !== id;
|
|
130
113
|
});
|
|
131
114
|
};
|
|
132
115
|
}
|
|
133
|
-
|
|
116
|
+
|
|
117
|
+
function removeElementAtIndex(index) {
|
|
118
|
+
return function (arr) {
|
|
119
|
+
return [].concat((0, _toConsumableArray2["default"])(arr.slice(0, index)), (0, _toConsumableArray2["default"])(arr.slice(index + 1, arr.length)));
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb21wb3Nlci1oZWxwZXJzLnRzIl0sIm5hbWVzIjpbImlkZW50aXR5Iiwic3RhdGUiLCJsb2ciLCJ0ZXh0IiwidmFsdWUiLCJDb25zb2xlIiwicGF5bG9hZF8iLCJwYXlsb2FkIiwiYXBwbHlfIiwidXBkYXRlciIsIndpdGhfIiwiZm4iLCJpZl8iLCJwcmVkIiwiY29tcG9zZV8iLCJmbnMiLCJyZWR1Y2UiLCJzdGF0ZTIiLCJtZXJnZV8iLCJvYmoiLCJwaWNrXyIsInByb3AiLCJzd2FwXyIsIml0ZW0iLCJhcnIiLCJtYXAiLCJhIiwiaWQiLCJtYXBfIiwiZSIsImZpbHRlck91dEJ5SWQiLCJmaWx0ZXIiLCJyZW1vdmVFbGVtZW50QXRJbmRleCIsImluZGV4Iiwic2xpY2UiLCJsZW5ndGgiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUdBOzs7Ozs7QUFFQSxJQUFNQSxRQUFRLEdBQUcsU0FBWEEsUUFBVyxDQUFBQyxLQUFLO0FBQUEsU0FBSUEsS0FBSjtBQUFBLENBQXRCO0FBRUE7OztBQUNPLFNBQVNDLEdBQVQsQ0FBYUMsSUFBYixFQUFpRDtBQUN0RCxTQUFPLFVBQUFDLEtBQUs7QUFBQSxXQUFJQyxvQkFBUUgsR0FBUixDQUFZQyxJQUFaLEVBQWtCQyxLQUFsQixDQUFKO0FBQUEsR0FBWjtBQUNEO0FBQ0Q7OztBQUNPLFNBQVNFLFFBQVQsQ0FBcUJDLE9BQXJCLEVBQWlDO0FBQ3RDLFNBQU87QUFBQ0EsSUFBQUEsT0FBTyxFQUFQQTtBQUFELEdBQVA7QUFDRDtBQUNEOzs7QUFDTyxTQUFTQyxNQUFULENBQ0xDLE9BREssRUFFTEYsT0FGSyxFQUdvQjtBQUN6QixTQUFPLFVBQUFOLEtBQUs7QUFBQSxXQUFJUSxPQUFPLENBQUNSLEtBQUQsRUFBUU0sT0FBUixDQUFYO0FBQUEsR0FBWjtBQUNEOztBQUdNLFNBQVNHLEtBQVQsQ0FBc0JDLEVBQXRCLEVBQStEO0FBQ3BFLFNBQU8sVUFBQVYsS0FBSztBQUFBLFdBQUlVLEVBQUUsQ0FBQ1YsS0FBRCxDQUFGLENBQVVBLEtBQVYsQ0FBSjtBQUFBLEdBQVo7QUFDRDs7QUFFTSxTQUFTVyxHQUFULENBQW9CQyxJQUFwQixFQUFtQ0YsRUFBbkMsRUFBeUY7QUFDOUYsU0FBT0UsSUFBSSxHQUFHRixFQUFILEdBQVFYLFFBQW5CO0FBQ0Q7O0FBRU0sU0FBU2MsUUFBVCxDQUF5QkMsR0FBekIsRUFBK0U7QUFDcEYsU0FBTyxVQUFBZCxLQUFLO0FBQUEsV0FBSWMsR0FBRyxDQUFDQyxNQUFKLENBQVcsVUFBQ0MsTUFBRCxFQUFTTixFQUFUO0FBQUEsYUFBZ0JBLEVBQUUsQ0FBQ00sTUFBRCxDQUFsQjtBQUFBLEtBQVgsRUFBdUNoQixLQUF2QyxDQUFKO0FBQUEsR0FBWjtBQUNEO0FBQ0Q7OztBQUNPLFNBQVNpQixNQUFULENBQXVCQyxHQUF2QixFQUFtRTtBQUN4RSxTQUFPLFVBQUFsQixLQUFLO0FBQUEsMkNBQVNBLEtBQVQsR0FBbUJrQixHQUFuQjtBQUFBLEdBQVo7QUFDRDs7QUFFTSxTQUFTQyxLQUFULENBQ0xDLElBREssRUFFMkY7QUFDaEcsU0FBTyxVQUFBVixFQUFFO0FBQUEsV0FBSSxVQUFBVixLQUFLO0FBQUEsNkNBQVNBLEtBQVQsNENBQWlCb0IsSUFBakIsRUFBd0JWLEVBQUUsQ0FBQ1YsS0FBSyxDQUFDb0IsSUFBRCxDQUFOLENBQTFCO0FBQUEsS0FBVDtBQUFBLEdBQVQ7QUFDRDs7QUFFTSxTQUFTQyxLQUFULENBQXVDQyxJQUF2QyxFQUFtRTtBQUN4RSxTQUFPLFVBQUFDLEdBQUc7QUFBQSxXQUFJQSxHQUFHLENBQUNDLEdBQUosQ0FBUSxVQUFBQyxDQUFDO0FBQUEsYUFBS0EsQ0FBQyxDQUFDQyxFQUFGLEtBQVNKLElBQUksQ0FBQ0ksRUFBZCxHQUFtQkosSUFBbkIsR0FBMEJHLENBQS9CO0FBQUEsS0FBVCxDQUFKO0FBQUEsR0FBVjtBQUNEOztBQUVNLFNBQVNFLElBQVQsQ0FBb0JqQixFQUFwQixFQUE0RDtBQUNqRSxTQUFPLFVBQUFhLEdBQUc7QUFBQSxXQUFJQSxHQUFHLENBQUNDLEdBQUosQ0FBUSxVQUFBSSxDQUFDO0FBQUEsYUFBSWxCLEVBQUUsQ0FBQ2tCLENBQUQsQ0FBTjtBQUFBLEtBQVQsQ0FBSjtBQUFBLEdBQVY7QUFDRDs7QUFFTSxTQUFTQyxhQUFULENBQStDSCxFQUEvQyxFQUE4RTtBQUNuRixTQUFPLFVBQUFILEdBQUc7QUFBQSxXQUFJQSxHQUFHLENBQUNPLE1BQUosQ0FBVyxVQUFBRixDQUFDO0FBQUEsYUFBSUEsQ0FBQyxDQUFDRixFQUFGLEtBQVNBLEVBQWI7QUFBQSxLQUFaLENBQUo7QUFBQSxHQUFWO0FBQ0Q7O0FBRU0sU0FBU0ssb0JBQVQsQ0FBaUNDLEtBQWpDLEVBQW1FO0FBQ3hFLFNBQU8sVUFBQVQsR0FBRztBQUFBLHlEQUFRQSxHQUFHLENBQUNVLEtBQUosQ0FBVSxDQUFWLEVBQWFELEtBQWIsQ0FBUix1Q0FBZ0NULEdBQUcsQ0FBQ1UsS0FBSixDQUFVRCxLQUFLLEdBQUcsQ0FBbEIsRUFBcUJULEdBQUcsQ0FBQ1csTUFBekIsQ0FBaEM7QUFBQSxHQUFWO0FBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQgQ29uc29sZSBmcm9tICdnbG9iYWwvY29uc29sZSc7XG5cbmNvbnN0IGlkZW50aXR5ID0gc3RhdGUgPT4gc3RhdGU7XG5cbi8qKiBSZXR1cm5zIGEgZnVuY3Rpb24gdGhhdCBsb2dzIGEgdmFsdWUgd2l0aCBhIGdpdmVuIG1lc3NhZ2UgKi9cbmV4cG9ydCBmdW5jdGlvbiBsb2codGV4dDogc3RyaW5nKTogKHZhbHVlOiBhbnkpID0+IHZvaWQge1xuICByZXR1cm4gdmFsdWUgPT4gQ29uc29sZS5sb2codGV4dCwgdmFsdWUpO1xufVxuLyoqIFdyYXBzIGEgdmFsdWUgaW4gYW4gb2JqZWN0IGFuZCBzdG9yZXMgaXQgdGhlIGBwYXlsb2FkYCBmaWVsZCAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBheWxvYWRfPFA+KHBheWxvYWQ6IFApIHtcbiAgcmV0dXJuIHtwYXlsb2FkfTtcbn1cbi8qKiBXcmFwcyBhIHZhbHVlIGluIGFuIG9iamVjdCBhbmQgc3RvcmVzIGl0IHRoZSBgcGF5bG9hZGAgZmllbGQgKi9cbmV4cG9ydCBmdW5jdGlvbiBhcHBseV88U3RhdGUsIFA+KFxuICB1cGRhdGVyOiAoc3RhdGU6IFN0YXRlLCBuZXh0UGF5bG9hZDogUCkgPT4gU3RhdGUsXG4gIHBheWxvYWQ6IFBcbik6IChzdGF0ZTogU3RhdGUpID0+IFN0YXRlIHtcbiAgcmV0dXJuIHN0YXRlID0+IHVwZGF0ZXIoc3RhdGUsIHBheWxvYWQpO1xufVxuXG50eXBlIEFyZzxTdGF0ZT4gPSAoc3RhdGU6IFN0YXRlKSA9PiAobmV4dFN0YXRlOiBTdGF0ZSkgPT4gU3RhdGU7XG5leHBvcnQgZnVuY3Rpb24gd2l0aF88U3RhdGU+KGZuOiBBcmc8U3RhdGU+KTogKHN0YXRlOiBTdGF0ZSkgPT4gU3RhdGUge1xuICByZXR1cm4gc3RhdGUgPT4gZm4oc3RhdGUpKHN0YXRlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlmXzxTdGF0ZT4ocHJlZDogYm9vbGVhbiwgZm46IChzdGF0ZTogU3RhdGUpID0+IFN0YXRlKTogKHN0YXRlOiBTdGF0ZSkgPT4gU3RhdGUge1xuICByZXR1cm4gcHJlZCA/IGZuIDogaWRlbnRpdHk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb21wb3NlXzxTdGF0ZT4oZm5zOiBBcnJheTwoczogU3RhdGUpID0+IFN0YXRlPik6IChzOiBTdGF0ZSkgPT4gU3RhdGUge1xuICByZXR1cm4gc3RhdGUgPT4gZm5zLnJlZHVjZSgoc3RhdGUyLCBmbikgPT4gZm4oc3RhdGUyKSwgc3RhdGUpO1xufVxuLyoqIFJldHVybnMgYSByZWR1Y2VyIGZ1bmN0aW9uIHRoYXQgbWVyZ2VzIHByb3BzIHdpdGggc3RhdGUgKi9cbmV4cG9ydCBmdW5jdGlvbiBtZXJnZV88UHJvcHM+KG9iajogUHJvcHMpOiA8U3RhdGU+KHN0YXRlOiBTdGF0ZSkgPT4gU3RhdGUge1xuICByZXR1cm4gc3RhdGUgPT4gKHsuLi5zdGF0ZSwgLi4ub2JqfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwaWNrXzxQcm9wIGV4dGVuZHMgc3RyaW5nPihcbiAgcHJvcDogUHJvcFxuKTogPFZhbHVlPihmbjogKHA6IFZhbHVlKSA9PiBWYWx1ZSkgPT4gPFN0YXRlIGV4dGVuZHMgUmVjb3JkPFByb3AsIFZhbHVlPj4oc3RhdGU6IFN0YXRlKSA9PiBTdGF0ZSB7XG4gIHJldHVybiBmbiA9PiBzdGF0ZSA9PiAoey4uLnN0YXRlLCBbcHJvcF06IGZuKHN0YXRlW3Byb3BdKX0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc3dhcF88WCBleHRlbmRzIHtpZDogc3RyaW5nfT4oaXRlbTogWCk6IChhcnI6IFhbXSkgPT4gWFtdIHtcbiAgcmV0dXJuIGFyciA9PiBhcnIubWFwKGEgPT4gKGEuaWQgPT09IGl0ZW0uaWQgPyBpdGVtIDogYSkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbWFwXzxYLCBUPihmbjogKHN0YXRlOiBYKSA9PiBUKTogKGFycjogWFtdKSA9PiBUW10ge1xuICByZXR1cm4gYXJyID0+IGFyci5tYXAoZSA9PiBmbihlKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmaWx0ZXJPdXRCeUlkPFggZXh0ZW5kcyB7aWQ6IHN0cmluZ30+KGlkOiBzdHJpbmcpOiAoYXJyOiBYW10pID0+IFhbXSB7XG4gIHJldHVybiBhcnIgPT4gYXJyLmZpbHRlcihlID0+IGUuaWQgIT09IGlkKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlbW92ZUVsZW1lbnRBdEluZGV4PFg+KGluZGV4OiBudW1iZXIpOiAoYXJyOiBYW10pID0+IFhbXSB7XG4gIHJldHVybiBhcnIgPT4gWy4uLmFyci5zbGljZSgwLCBpbmRleCksIC4uLmFyci5zbGljZShpbmRleCArIDEsIGFyci5sZW5ndGgpXTtcbn1cbiJdfQ==
|
package/dist/composers.d.ts
CHANGED
|
@@ -7,6 +7,12 @@ declare const actionHandler: {
|
|
|
7
7
|
"@@kepler.gl/ADD_DATA_TO_MAP": (state: combinedUpdaters.KeplerGlState, { payload }: {
|
|
8
8
|
payload: import("@kepler.gl/types").AddDataToMapPayload;
|
|
9
9
|
}) => combinedUpdaters.KeplerGlState;
|
|
10
|
+
"@@kepler.gl/MAP_STYLE_CHANGE": (state: combinedUpdaters.KeplerGlState, action: import("@kepler.gl/actions").MapStyleChangeUpdaterAction) => combinedUpdaters.KeplerGlState;
|
|
11
|
+
"@@kepler.gl/LAYER_TYPE_CHANGE": (state: combinedUpdaters.KeplerGlState, action: import("@kepler.gl/actions").LayerTypeChangeUpdaterAction) => combinedUpdaters.KeplerGlState;
|
|
10
12
|
"@@kepler.gl/LOAD_FILES_SUCCESS": (state: combinedUpdaters.KeplerGlState, action: import("@kepler.gl/actions").loadFilesSuccessUpdaterAction) => combinedUpdaters.KeplerGlState;
|
|
13
|
+
"@@kepler.gl/TOGGLE_SPLIT_MAP": (state: combinedUpdaters.KeplerGlState, action: import("@kepler.gl/actions").ToggleSplitMapUpdaterAction) => combinedUpdaters.KeplerGlState;
|
|
14
|
+
"@@kepler.gl/REPLACE_DATA_IN_MAP": (state: combinedUpdaters.KeplerGlState, { payload }: {
|
|
15
|
+
payload: import("@kepler.gl/actions").ReplaceDataInMapPayload;
|
|
16
|
+
}) => combinedUpdaters.KeplerGlState;
|
|
11
17
|
};
|
|
12
18
|
export default actionHandler;
|
package/dist/composers.js
CHANGED
|
@@ -1,23 +1,3 @@
|
|
|
1
|
-
// Copyright (c) 2022 Uber Technologies, Inc.
|
|
2
|
-
//
|
|
3
|
-
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
4
|
-
// of this software and associated documentation files (the "Software"), to deal
|
|
5
|
-
// in the Software without restriction, including without limitation the rights
|
|
6
|
-
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
7
|
-
// copies of the Software, and to permit persons to whom the Software is
|
|
8
|
-
// furnished to do so, subject to the following conditions:
|
|
9
|
-
//
|
|
10
|
-
// The above copyright notice and this permission notice shall be included in
|
|
11
|
-
// all copies or substantial portions of the Software.
|
|
12
|
-
//
|
|
13
|
-
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
14
|
-
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
15
|
-
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
16
|
-
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
17
|
-
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
18
|
-
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
19
|
-
// THE SOFTWARE.
|
|
20
|
-
|
|
21
1
|
"use strict";
|
|
22
2
|
|
|
23
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
@@ -41,7 +21,7 @@ var _actionHandler;
|
|
|
41
21
|
* Important: Do not rename `actionHandler` or the assignment pattern of property value.
|
|
42
22
|
* It is used to generate documentation
|
|
43
23
|
*/
|
|
44
|
-
var actionHandler = (_actionHandler = {}, (0, _defineProperty2["default"])(_actionHandler, _actions.ActionTypes.ADD_DATA_TO_MAP, combinedUpdaters.addDataToMapUpdater), (0, _defineProperty2["default"])(_actionHandler, _actions.ActionTypes.LOAD_FILES_SUCCESS, combinedUpdaters.loadFilesSuccessUpdater), _actionHandler);
|
|
24
|
+
var actionHandler = (_actionHandler = {}, (0, _defineProperty2["default"])(_actionHandler, _actions.ActionTypes.ADD_DATA_TO_MAP, combinedUpdaters.addDataToMapUpdater), (0, _defineProperty2["default"])(_actionHandler, _actions.ActionTypes.MAP_STYLE_CHANGE, combinedUpdaters.combinedMapStyleChangeUpdater), (0, _defineProperty2["default"])(_actionHandler, _actions.ActionTypes.LAYER_TYPE_CHANGE, combinedUpdaters.combinedLayerTypeChangeUpdater), (0, _defineProperty2["default"])(_actionHandler, _actions.ActionTypes.LOAD_FILES_SUCCESS, combinedUpdaters.loadFilesSuccessUpdater), (0, _defineProperty2["default"])(_actionHandler, _actions.ActionTypes.TOGGLE_SPLIT_MAP, combinedUpdaters.toggleSplitMapUpdater), (0, _defineProperty2["default"])(_actionHandler, _actions.ActionTypes.REPLACE_DATA_IN_MAP, combinedUpdaters.replaceDataInMapUpdater), _actionHandler);
|
|
45
25
|
var _default = actionHandler;
|
|
46
26
|
exports["default"] = _default;
|
|
47
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
27
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb21wb3NlcnMudHMiXSwibmFtZXMiOlsiYWN0aW9uSGFuZGxlciIsIkFjdGlvblR5cGVzIiwiQUREX0RBVEFfVE9fTUFQIiwiY29tYmluZWRVcGRhdGVycyIsImFkZERhdGFUb01hcFVwZGF0ZXIiLCJNQVBfU1RZTEVfQ0hBTkdFIiwiY29tYmluZWRNYXBTdHlsZUNoYW5nZVVwZGF0ZXIiLCJMQVlFUl9UWVBFX0NIQU5HRSIsImNvbWJpbmVkTGF5ZXJUeXBlQ2hhbmdlVXBkYXRlciIsIkxPQURfRklMRVNfU1VDQ0VTUyIsImxvYWRGaWxlc1N1Y2Nlc3NVcGRhdGVyIiwiVE9HR0xFX1NQTElUX01BUCIsInRvZ2dsZVNwbGl0TWFwVXBkYXRlciIsIlJFUExBQ0VfREFUQV9JTl9NQVAiLCJyZXBsYWNlRGF0YUluTWFwVXBkYXRlciJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUdBOztBQUNBOzs7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFNQSxhQUFhLDBFQUNoQkMscUJBQVlDLGVBREksRUFDY0MsZ0JBQWdCLENBQUNDLG1CQUQvQixvREFFaEJILHFCQUFZSSxnQkFGSSxFQUVlRixnQkFBZ0IsQ0FBQ0csNkJBRmhDLG9EQUdoQkwscUJBQVlNLGlCQUhJLEVBR2dCSixnQkFBZ0IsQ0FBQ0ssOEJBSGpDLG9EQUloQlAscUJBQVlRLGtCQUpJLEVBSWlCTixnQkFBZ0IsQ0FBQ08sdUJBSmxDLG9EQUtoQlQscUJBQVlVLGdCQUxJLEVBS2VSLGdCQUFnQixDQUFDUyxxQkFMaEMsb0RBTWhCWCxxQkFBWVksbUJBTkksRUFNa0JWLGdCQUFnQixDQUFDVyx1QkFObkMsa0JBQW5CO2VBU2VkLGEiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQge0FjdGlvblR5cGVzfSBmcm9tICdAa2VwbGVyLmdsL2FjdGlvbnMnO1xuaW1wb3J0ICogYXMgY29tYmluZWRVcGRhdGVycyBmcm9tICcuL2NvbWJpbmVkLXVwZGF0ZXJzJztcblxuLyoqXG4gKiBJbXBvcnRhbnQ6IERvIG5vdCByZW5hbWUgYGFjdGlvbkhhbmRsZXJgIG9yIHRoZSBhc3NpZ25tZW50IHBhdHRlcm4gb2YgcHJvcGVydHkgdmFsdWUuXG4gKiBJdCBpcyB1c2VkIHRvIGdlbmVyYXRlIGRvY3VtZW50YXRpb25cbiAqL1xuY29uc3QgYWN0aW9uSGFuZGxlciA9IHtcbiAgW0FjdGlvblR5cGVzLkFERF9EQVRBX1RPX01BUF06IGNvbWJpbmVkVXBkYXRlcnMuYWRkRGF0YVRvTWFwVXBkYXRlcixcbiAgW0FjdGlvblR5cGVzLk1BUF9TVFlMRV9DSEFOR0VdOiBjb21iaW5lZFVwZGF0ZXJzLmNvbWJpbmVkTWFwU3R5bGVDaGFuZ2VVcGRhdGVyLFxuICBbQWN0aW9uVHlwZXMuTEFZRVJfVFlQRV9DSEFOR0VdOiBjb21iaW5lZFVwZGF0ZXJzLmNvbWJpbmVkTGF5ZXJUeXBlQ2hhbmdlVXBkYXRlcixcbiAgW0FjdGlvblR5cGVzLkxPQURfRklMRVNfU1VDQ0VTU106IGNvbWJpbmVkVXBkYXRlcnMubG9hZEZpbGVzU3VjY2Vzc1VwZGF0ZXIsXG4gIFtBY3Rpb25UeXBlcy5UT0dHTEVfU1BMSVRfTUFQXTogY29tYmluZWRVcGRhdGVycy50b2dnbGVTcGxpdE1hcFVwZGF0ZXIsXG4gIFtBY3Rpb25UeXBlcy5SRVBMQUNFX0RBVEFfSU5fTUFQXTogY29tYmluZWRVcGRhdGVycy5yZXBsYWNlRGF0YUluTWFwVXBkYXRlclxufTtcblxuZXhwb3J0IGRlZmF1bHQgYWN0aW9uSGFuZGxlcjtcbiJdfQ==
|
package/dist/core.d.ts
CHANGED
|
@@ -9,7 +9,7 @@ export declare type KeplerGlState = {
|
|
|
9
9
|
uiState: UiState;
|
|
10
10
|
providerState: ProviderState;
|
|
11
11
|
};
|
|
12
|
-
export declare const coreReducerFactory: (initialState?: Partial<KeplerGlState
|
|
12
|
+
export declare const coreReducerFactory: (initialState?: Partial<KeplerGlState>, extraReducers?: {}) => (state: any, action: any) => any;
|
|
13
13
|
declare const _default: (state: any, action: any) => any;
|
|
14
14
|
export default _default;
|
|
15
15
|
/**
|