@kepler.gl/reducers 3.0.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/combined-updaters.d.ts +50 -0
- package/dist/combined-updaters.js +212 -0
- package/dist/composer-helpers.d.ts +21 -0
- package/dist/composer-helpers.js +133 -0
- package/dist/composers.d.ts +12 -0
- package/dist/composers.js +47 -0
- package/dist/core.d.ts +64 -0
- package/dist/core.js +149 -0
- package/dist/data-utils.d.ts +8 -0
- package/dist/data-utils.js +60 -0
- package/dist/export-utils.d.ts +21 -0
- package/dist/export-utils.js +124 -0
- package/dist/index.d.ts +36 -0
- package/dist/index.js +372 -0
- package/dist/interaction-utils.d.ts +35 -0
- package/dist/interaction-utils.js +149 -0
- package/dist/layer-utils.d.ts +66 -0
- package/dist/layer-utils.js +289 -0
- package/dist/map-state-updaters.d.ts +62 -0
- package/dist/map-state-updaters.js +250 -0
- package/dist/map-state.d.ts +3 -0
- package/dist/map-state.js +67 -0
- package/dist/map-style-updaters.d.ts +173 -0
- package/dist/map-style-updaters.js +538 -0
- package/dist/map-style.d.ts +4 -0
- package/dist/map-style.js +66 -0
- package/dist/middleware.d.ts +8 -0
- package/dist/middleware.js +46 -0
- package/dist/provider-state-updaters.d.ts +42 -0
- package/dist/provider-state-updaters.js +512 -0
- package/dist/provider-state.d.ts +4 -0
- package/dist/provider-state.js +66 -0
- package/dist/root.d.ts +31 -0
- package/dist/root.js +235 -0
- package/dist/ui-state-updaters.d.ts +355 -0
- package/dist/ui-state-updaters.js +866 -0
- package/dist/ui-state.d.ts +3 -0
- package/dist/ui-state.js +68 -0
- package/dist/vis-state-merger.d.ts +102 -0
- package/dist/vis-state-merger.js +635 -0
- package/dist/vis-state-selectors.d.ts +2 -0
- package/dist/vis-state-selectors.js +53 -0
- package/dist/vis-state-updaters.d.ts +419 -0
- package/dist/vis-state-updaters.js +2472 -0
- package/dist/vis-state.d.ts +3 -0
- package/dist/vis-state.js +66 -0
- package/package.json +83 -0
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { MapState, UiState, AddDataToMapPayload } from '@kepler.gl/types';
|
|
2
|
+
import { MapStyle } from './map-style-updaters';
|
|
3
|
+
import { ProviderState } from './provider-state-updaters';
|
|
4
|
+
import { loadFilesSuccessUpdaterAction } from '@kepler.gl/actions';
|
|
5
|
+
import { VisState } from '@kepler.gl/schemas';
|
|
6
|
+
export declare type KeplerGlState = {
|
|
7
|
+
visState: VisState;
|
|
8
|
+
mapState: MapState;
|
|
9
|
+
mapStyle: MapStyle;
|
|
10
|
+
uiState: UiState;
|
|
11
|
+
providerState: ProviderState;
|
|
12
|
+
};
|
|
13
|
+
export declare const isValidConfig: (config: any) => unknown;
|
|
14
|
+
export declare const defaultAddDataToMapOptions: {
|
|
15
|
+
centerMap: boolean;
|
|
16
|
+
keepExistingConfig: boolean;
|
|
17
|
+
autoCreateLayers: boolean;
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* Combine data and full configuration update in a single action
|
|
21
|
+
*
|
|
22
|
+
* @memberof combinedUpdaters
|
|
23
|
+
* @param {Object} state kepler.gl instance state, containing all subreducer state
|
|
24
|
+
* @param {Object} action
|
|
25
|
+
* @param {Object} action.payload `{datasets, options, config}`
|
|
26
|
+
* @param action.payload.datasets - ***required** datasets can be a dataset or an array of datasets
|
|
27
|
+
* Each dataset object needs to have `info` and `data` property.
|
|
28
|
+
* @param [action.payload.options] option object `{centerMap: true}`
|
|
29
|
+
* @param [action.payload.config] map config
|
|
30
|
+
* @param [action.payload.info] map info contains title and description
|
|
31
|
+
* @returns nextState
|
|
32
|
+
*
|
|
33
|
+
* @typedef {Object} Dataset
|
|
34
|
+
* @property info -info of a dataset
|
|
35
|
+
* @property info.id - id of this dataset. If config is defined, `id` should matches the `dataId` in config.
|
|
36
|
+
* @property info.label - A display name of this dataset
|
|
37
|
+
* @property data - ***required** The data object, in a tabular format with 2 properties `fields` and `rows`
|
|
38
|
+
* @property data.fields - ***required** Array of fields,
|
|
39
|
+
* @property data.fields.name - ***required** Name of the field,
|
|
40
|
+
* @property data.rows - ***required** Array of rows, in a tabular format with `fields` and `rows`
|
|
41
|
+
*
|
|
42
|
+
* @public
|
|
43
|
+
*/
|
|
44
|
+
export declare const addDataToMapUpdater: (state: KeplerGlState, { payload }: {
|
|
45
|
+
payload: AddDataToMapPayload;
|
|
46
|
+
}) => KeplerGlState;
|
|
47
|
+
export declare const loadFilesSuccessUpdater: (state: KeplerGlState, action: loadFilesSuccessUpdaterAction) => KeplerGlState;
|
|
48
|
+
export declare const addDataToMapComposed: (state: KeplerGlState, { payload }: {
|
|
49
|
+
payload: AddDataToMapPayload;
|
|
50
|
+
}) => KeplerGlState;
|
|
@@ -0,0 +1,212 @@
|
|
|
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
|
+
"use strict";
|
|
22
|
+
|
|
23
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
24
|
+
|
|
25
|
+
Object.defineProperty(exports, "__esModule", {
|
|
26
|
+
value: true
|
|
27
|
+
});
|
|
28
|
+
exports.addDataToMapComposed = exports.loadFilesSuccessUpdater = exports.addDataToMapUpdater = exports.defaultAddDataToMapOptions = exports.isValidConfig = void 0;
|
|
29
|
+
|
|
30
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
31
|
+
|
|
32
|
+
var _uiStateUpdaters = require("./ui-state-updaters");
|
|
33
|
+
|
|
34
|
+
var _visStateUpdaters = require("./vis-state-updaters");
|
|
35
|
+
|
|
36
|
+
var _mapStateUpdaters = require("./map-state-updaters");
|
|
37
|
+
|
|
38
|
+
var _mapStyleUpdaters = require("./map-style-updaters");
|
|
39
|
+
|
|
40
|
+
var _processors = require("@kepler.gl/processors");
|
|
41
|
+
|
|
42
|
+
var _composerHelpers = require("./composer-helpers");
|
|
43
|
+
|
|
44
|
+
var _utils = require("@kepler.gl/utils");
|
|
45
|
+
|
|
46
|
+
var _dataUtils = require("./data-utils");
|
|
47
|
+
|
|
48
|
+
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
|
+
|
|
50
|
+
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; }
|
|
51
|
+
|
|
52
|
+
// compose action to apply result multiple reducers, with the output of one
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Some actions will affect the entire kepler.lg instance state.
|
|
56
|
+
* The updaters for these actions is exported as `combinedUpdaters`. These updater take the entire instance state
|
|
57
|
+
* as the first argument. Read more about [Using updaters](../advanced-usage/using-updaters.md)
|
|
58
|
+
* @public
|
|
59
|
+
* @example
|
|
60
|
+
*
|
|
61
|
+
* import keplerGlReducer, {combinedUpdaters} from 'kepler.gl/reducers';
|
|
62
|
+
* // Root Reducer
|
|
63
|
+
* const reducers = combineReducers({
|
|
64
|
+
* keplerGl: keplerGlReducer,
|
|
65
|
+
* app: appReducer
|
|
66
|
+
* });
|
|
67
|
+
*
|
|
68
|
+
* const composedReducer = (state, action) => {
|
|
69
|
+
* switch (action.type) {
|
|
70
|
+
* // add data to map after receiving data from remote sources
|
|
71
|
+
* case 'LOAD_REMOTE_RESOURCE_SUCCESS':
|
|
72
|
+
* return {
|
|
73
|
+
* ...state,
|
|
74
|
+
* keplerGl: {
|
|
75
|
+
* ...state.keplerGl,
|
|
76
|
+
* // pass in kepler.gl instance state to combinedUpdaters
|
|
77
|
+
* map: combinedUpdaters.addDataToMapUpdater(
|
|
78
|
+
* state.keplerGl.map,
|
|
79
|
+
* {
|
|
80
|
+
* payload: {
|
|
81
|
+
* datasets: action.datasets,
|
|
82
|
+
* options: {readOnly: true},
|
|
83
|
+
* config: action.config
|
|
84
|
+
* }
|
|
85
|
+
* }
|
|
86
|
+
* )
|
|
87
|
+
* }
|
|
88
|
+
* };
|
|
89
|
+
* }
|
|
90
|
+
* return reducers(state, action);
|
|
91
|
+
* };
|
|
92
|
+
*
|
|
93
|
+
* export default composedReducer;
|
|
94
|
+
*/
|
|
95
|
+
|
|
96
|
+
/* eslint-disable no-unused-vars */
|
|
97
|
+
// @ts-ignore
|
|
98
|
+
var combinedUpdaters = null;
|
|
99
|
+
/* eslint-enable no-unused-vars */
|
|
100
|
+
|
|
101
|
+
var isValidConfig = function isValidConfig(config) {
|
|
102
|
+
return (0, _utils.isPlainObject)(config) && (0, _utils.isPlainObject)(config.config) && config.version;
|
|
103
|
+
};
|
|
104
|
+
|
|
105
|
+
exports.isValidConfig = isValidConfig;
|
|
106
|
+
var defaultAddDataToMapOptions = {
|
|
107
|
+
centerMap: true,
|
|
108
|
+
keepExistingConfig: false,
|
|
109
|
+
autoCreateLayers: true
|
|
110
|
+
};
|
|
111
|
+
/**
|
|
112
|
+
* Combine data and full configuration update in a single action
|
|
113
|
+
*
|
|
114
|
+
* @memberof combinedUpdaters
|
|
115
|
+
* @param {Object} state kepler.gl instance state, containing all subreducer state
|
|
116
|
+
* @param {Object} action
|
|
117
|
+
* @param {Object} action.payload `{datasets, options, config}`
|
|
118
|
+
* @param action.payload.datasets - ***required** datasets can be a dataset or an array of datasets
|
|
119
|
+
* Each dataset object needs to have `info` and `data` property.
|
|
120
|
+
* @param [action.payload.options] option object `{centerMap: true}`
|
|
121
|
+
* @param [action.payload.config] map config
|
|
122
|
+
* @param [action.payload.info] map info contains title and description
|
|
123
|
+
* @returns nextState
|
|
124
|
+
*
|
|
125
|
+
* @typedef {Object} Dataset
|
|
126
|
+
* @property info -info of a dataset
|
|
127
|
+
* @property info.id - id of this dataset. If config is defined, `id` should matches the `dataId` in config.
|
|
128
|
+
* @property info.label - A display name of this dataset
|
|
129
|
+
* @property data - ***required** The data object, in a tabular format with 2 properties `fields` and `rows`
|
|
130
|
+
* @property data.fields - ***required** Array of fields,
|
|
131
|
+
* @property data.fields.name - ***required** Name of the field,
|
|
132
|
+
* @property data.rows - ***required** Array of rows, in a tabular format with `fields` and `rows`
|
|
133
|
+
*
|
|
134
|
+
* @public
|
|
135
|
+
*/
|
|
136
|
+
|
|
137
|
+
exports.defaultAddDataToMapOptions = defaultAddDataToMapOptions;
|
|
138
|
+
|
|
139
|
+
var addDataToMapUpdater = function addDataToMapUpdater(state, _ref) {
|
|
140
|
+
var payload = _ref.payload;
|
|
141
|
+
var datasets = payload.datasets,
|
|
142
|
+
config = payload.config,
|
|
143
|
+
info = payload.info;
|
|
144
|
+
|
|
145
|
+
var options = _objectSpread(_objectSpread({}, defaultAddDataToMapOptions), payload.options); // @ts-expect-error
|
|
146
|
+
|
|
147
|
+
|
|
148
|
+
var parsedConfig = config;
|
|
149
|
+
|
|
150
|
+
if (isValidConfig(config)) {
|
|
151
|
+
// if passed in saved config
|
|
152
|
+
// @ts-expect-error
|
|
153
|
+
parsedConfig = state.visState.schema.parseSavedConfig(config);
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
var oldLayers = state.visState.layers;
|
|
157
|
+
|
|
158
|
+
var filterNewlyAddedLayers = function filterNewlyAddedLayers(layers) {
|
|
159
|
+
return layers.filter(function (nl) {
|
|
160
|
+
return !oldLayers.find(function (ol) {
|
|
161
|
+
return ol === nl;
|
|
162
|
+
});
|
|
163
|
+
});
|
|
164
|
+
}; // Returns undefined if not found, to make typescript happy
|
|
165
|
+
|
|
166
|
+
|
|
167
|
+
var findMapBoundsIfCentered = function findMapBoundsIfCentered(layers) {
|
|
168
|
+
var bounds = options.centerMap && (0, _dataUtils.findMapBounds)(layers);
|
|
169
|
+
return bounds ? bounds : undefined;
|
|
170
|
+
};
|
|
171
|
+
|
|
172
|
+
return (0, _composerHelpers.compose_)([(0, _composerHelpers.pick_)('visState')((0, _composerHelpers.apply_)(_visStateUpdaters.updateVisDataUpdater, {
|
|
173
|
+
datasets: datasets,
|
|
174
|
+
options: options,
|
|
175
|
+
config: parsedConfig
|
|
176
|
+
})), (0, _composerHelpers.if_)(Boolean(info), (0, _composerHelpers.pick_)('visState')((0, _composerHelpers.apply_)(_visStateUpdaters.setMapInfoUpdater, {
|
|
177
|
+
info: info
|
|
178
|
+
}))), (0, _composerHelpers.with_)(function (_ref2) {
|
|
179
|
+
var visState = _ref2.visState;
|
|
180
|
+
return (0, _composerHelpers.pick_)('mapState')((0, _composerHelpers.apply_)(_mapStateUpdaters.receiveMapConfigUpdater, (0, _composerHelpers.payload_)({
|
|
181
|
+
config: parsedConfig,
|
|
182
|
+
options: options,
|
|
183
|
+
bounds: findMapBoundsIfCentered(filterNewlyAddedLayers(visState.layers))
|
|
184
|
+
})));
|
|
185
|
+
}), (0, _composerHelpers.pick_)('mapStyle')((0, _composerHelpers.apply_)(_mapStyleUpdaters.receiveMapConfigUpdater, (0, _composerHelpers.payload_)({
|
|
186
|
+
config: parsedConfig,
|
|
187
|
+
options: options
|
|
188
|
+
}))), (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_)(options.hasOwnProperty('readOnly') ? {
|
|
189
|
+
readOnly: options.readOnly
|
|
190
|
+
} : {}))])(state);
|
|
191
|
+
};
|
|
192
|
+
|
|
193
|
+
exports.addDataToMapUpdater = addDataToMapUpdater;
|
|
194
|
+
|
|
195
|
+
var loadFilesSuccessUpdater = function loadFilesSuccessUpdater(state, action) {
|
|
196
|
+
// still more to load
|
|
197
|
+
var payloads = (0, _processors.filesToDataPayload)(action.result);
|
|
198
|
+
var nextState = (0, _composerHelpers.compose_)([(0, _composerHelpers.pick_)('visState')((0, _composerHelpers.merge_)({
|
|
199
|
+
fileLoading: false,
|
|
200
|
+
fileLoadingProgress: {}
|
|
201
|
+
}))])(state); // make multiple add data to map calls
|
|
202
|
+
|
|
203
|
+
var stateWithData = (0, _composerHelpers.compose_)(payloads.map(function (p) {
|
|
204
|
+
return (0, _composerHelpers.apply_)(addDataToMapUpdater, (0, _composerHelpers.payload_)(p));
|
|
205
|
+
}))(nextState);
|
|
206
|
+
return stateWithData;
|
|
207
|
+
};
|
|
208
|
+
|
|
209
|
+
exports.loadFilesSuccessUpdater = loadFilesSuccessUpdater;
|
|
210
|
+
var addDataToMapComposed = addDataToMapUpdater;
|
|
211
|
+
exports.addDataToMapComposed = addDataToMapComposed;
|
|
212
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb21iaW5lZC11cGRhdGVycy50cyJdLCJuYW1lcyI6WyJjb21iaW5lZFVwZGF0ZXJzIiwiaXNWYWxpZENvbmZpZyIsImNvbmZpZyIsInZlcnNpb24iLCJkZWZhdWx0QWRkRGF0YVRvTWFwT3B0aW9ucyIsImNlbnRlck1hcCIsImtlZXBFeGlzdGluZ0NvbmZpZyIsImF1dG9DcmVhdGVMYXllcnMiLCJhZGREYXRhVG9NYXBVcGRhdGVyIiwic3RhdGUiLCJwYXlsb2FkIiwiZGF0YXNldHMiLCJpbmZvIiwib3B0aW9ucyIsInBhcnNlZENvbmZpZyIsInZpc1N0YXRlIiwic2NoZW1hIiwicGFyc2VTYXZlZENvbmZpZyIsIm9sZExheWVycyIsImxheWVycyIsImZpbHRlck5ld2x5QWRkZWRMYXllcnMiLCJmaWx0ZXIiLCJubCIsImZpbmQiLCJvbCIsImZpbmRNYXBCb3VuZHNJZkNlbnRlcmVkIiwiYm91bmRzIiwidW5kZWZpbmVkIiwidmlzU3RhdGVVcGRhdGVWaXNEYXRhVXBkYXRlciIsIkJvb2xlYW4iLCJzZXRNYXBJbmZvVXBkYXRlciIsInN0YXRlTWFwQ29uZmlnVXBkYXRlciIsInN0eWxlTWFwQ29uZmlnVXBkYXRlciIsInVpU3RhdGVMb2FkRmlsZXNTdWNjZXNzVXBkYXRlciIsInRvZ2dsZU1vZGFsVXBkYXRlciIsImhhc093blByb3BlcnR5IiwicmVhZE9ubHkiLCJsb2FkRmlsZXNTdWNjZXNzVXBkYXRlciIsImFjdGlvbiIsInBheWxvYWRzIiwicmVzdWx0IiwibmV4dFN0YXRlIiwiZmlsZUxvYWRpbmciLCJmaWxlTG9hZGluZ1Byb2dyZXNzIiwic3RhdGVXaXRoRGF0YSIsIm1hcCIsInAiLCJhZGREYXRhVG9NYXBDb21wb3NlZCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFvQkE7O0FBSUE7O0FBSUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBT0E7O0FBQ0E7Ozs7OztBQVVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNB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QyxJQUFBQSxXQUFXLEVBQUUsS0FEUjtBQUVMQyxJQUFBQSxtQkFBbUIsRUFBRTtBQUZoQixHQUFQLENBREYsQ0FEeUIsQ0FBVCxFQU9mbEMsS0FQZSxDQUFsQixDQUhrQixDQVdsQjs7QUFDQSxNQUFNbUMsYUFBYSxHQUFHLCtCQUFTTCxRQUFRLENBQUNNLEdBQVQsQ0FBYSxVQUFBQyxDQUFDO0FBQUEsV0FBSSw2QkFBT3RDLG1CQUFQLEVBQTRCLCtCQUFTc0MsQ0FBVCxDQUE1QixDQUFKO0FBQUEsR0FBZCxDQUFULEVBQ3BCTCxTQURvQixDQUF0QjtBQUdBLFNBQU9HLGFBQVA7QUFDRCxDQW5CTTs7O0FBcUJBLElBQU1HLG9CQUFvQixHQUFHdkMsbUJBQTdCIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSAyMDIyIFViZXIgVGVjaG5vbG9naWVzLCBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cblxuaW1wb3J0IHtcbiAgdG9nZ2xlTW9kYWxVcGRhdGVyLFxuICBsb2FkRmlsZXNTdWNjZXNzVXBkYXRlciBhcyB1aVN0YXRlTG9hZEZpbGVzU3VjY2Vzc1VwZGF0ZXJcbn0gZnJvbSAnLi91aS1zdGF0ZS11cGRhdGVycyc7XG5pbXBvcnQge1xuICB1cGRhdGVWaXNEYXRhVXBkYXRlciBhcyB2aXNTdGF0ZVVwZGF0ZVZpc0RhdGFVcGRhdGVyLFxuICBzZXRNYXBJbmZvVXBkYXRlclxufSBmcm9tICcuL3Zpcy1zdGF0ZS11cGRhdGVycyc7XG5pbXBvcnQge3JlY2VpdmVNYXBDb25maWdVcGRhdGVyIGFzIHN0YXRlTWFwQ29uZmlnVXBkYXRlcn0gZnJvbSAnLi9tYXAtc3RhdGUtdXBkYXRlcnMnO1xuaW1wb3J0IHtyZWNlaXZlTWFwQ29uZmlnVXBkYXRlciBhcyBzdHlsZU1hcENvbmZpZ1VwZGF0ZXJ9IGZyb20gJy4vbWFwLXN0eWxlLXVwZGF0ZXJzJztcbmltcG9ydCB7ZmlsZXNUb0RhdGFQYXlsb2FkfSBmcm9tICdAa2VwbGVyLmdsL3Byb2Nlc3NvcnMnO1xuaW1wb3J0IHtwYXlsb2FkXywgYXBwbHlfLCB3aXRoXywgaWZfLCBjb21wb3NlXywgbWVyZ2VfLCBwaWNrX30gZnJvbSAnLi9jb21wb3Nlci1oZWxwZXJzJztcbmltcG9ydCB7TWFwU3RhdGUsIFVpU3RhdGUsIEFkZERhdGFUb01hcFBheWxvYWQsIFBhcnNlZENvbmZpZ30gZnJvbSAnQGtlcGxlci5nbC90eXBlcyc7XG5pbXBvcnQge01hcFN0eWxlfSBmcm9tICcuL21hcC1zdHlsZS11cGRhdGVycyc7XG5pbXBvcnQge1Byb3ZpZGVyU3RhdGV9IGZyb20gJy4vcHJvdmlkZXItc3RhdGUtdXBkYXRlcnMnO1xuaW1wb3J0IHtsb2FkRmlsZXNTdWNjZXNzVXBkYXRlckFjdGlvbn0gZnJvbSAnQGtlcGxlci5nbC9hY3Rpb25zJztcbmltcG9ydCB7VmlzU3RhdGV9IGZyb20gJ0BrZXBsZXIuZ2wvc2NoZW1hcyc7XG5pbXBvcnQge0xheWVyfSBmcm9tICdAa2VwbGVyLmdsL2xheWVycyc7XG5pbXBvcnQge2lzUGxhaW5PYmplY3R9IGZyb20gJ0BrZXBsZXIuZ2wvdXRpbHMnO1xuaW1wb3J0IHtmaW5kTWFwQm91bmRzfSBmcm9tICcuL2RhdGEtdXRpbHMnO1xuXG5leHBvcnQgdHlwZSBLZXBsZXJHbFN0YXRlID0ge1xuICB2aXNTdGF0ZTogVmlzU3RhdGU7XG4gIG1hcFN0YXRlOiBNYXBTdGF0ZTtcbiAgbWFwU3R5bGU6IE1hcFN0eWxlO1xuICB1aVN0YXRlOiBVaVN0YXRlO1xuICBwcm92aWRlclN0YXRlOiBQcm92aWRlclN0YXRlO1xufTtcblxuLy8gY29tcG9zZSBhY3Rpb24gdG8gYXBwbHkgcmVzdWx0IG11bHRpcGxlIHJlZHVjZXJzLCB3aXRoIHRoZSBvdXRwdXQgb2Ygb25lXG5cbi8qKlxuICogU29tZSBhY3Rpb25zIHdpbGwgYWZmZWN0IHRoZSBlbnRpcmUga2VwbGVyLmxnIGluc3RhbmNlIHN0YXRlLlxuICogVGhlIHVwZGF0ZXJzIGZvciB0aGVzZSBhY3Rpb25zIGlzIGV4cG9ydGVkIGFzIGBjb21iaW5lZFVwZGF0ZXJzYC4gVGhlc2UgdXBkYXRlciB0YWtlIHRoZSBlbnRpcmUgaW5zdGFuY2Ugc3RhdGVcbiAqIGFzIHRoZSBmaXJzdCBhcmd1bWVudC4gUmVhZCBtb3JlIGFib3V0IFtVc2luZyB1cGRhdGVyc10oLi4vYWR2YW5jZWQtdXNhZ2UvdXNpbmctdXBkYXRlcnMubWQpXG4gKiBAcHVibGljXG4gKiBAZXhhbXBsZVxuICpcbiAqIGltcG9ydCBrZXBsZXJHbFJlZHVjZXIsIHtjb21iaW5lZFVwZGF0ZXJzfSBmcm9tICdrZXBsZXIuZ2wvcmVkdWNlcnMnO1xuICogLy8gUm9vdCBSZWR1Y2VyXG4gKiBjb25zdCByZWR1Y2VycyA9IGNvbWJpbmVSZWR1Y2Vycyh7XG4gKiAga2VwbGVyR2w6IGtlcGxlckdsUmVkdWNlcixcbiAqICBhcHA6IGFwcFJlZHVjZXJcbiAqIH0pO1xuICpcbiAqIGNvbnN0IGNvbXBvc2VkUmVkdWNlciA9IChzdGF0ZSwgYWN0aW9uKSA9PiB7XG4gKiAgc3dpdGNoIChhY3Rpb24udHlwZSkge1xuICogICAgLy8gYWRkIGRhdGEgdG8gbWFwIGFmdGVyIHJlY2VpdmluZyBkYXRhIGZyb20gcmVtb3RlIHNvdXJjZXNcbiAqICAgIGNhc2UgJ0xPQURfUkVNT1RFX1JFU09VUkNFX1NVQ0NFU1MnOlxuICogICAgICByZXR1cm4ge1xuICogICAgICAgIC4uLnN0YXRlLFxuICogICAgICAgIGtlcGxlckdsOiB7XG4gKiAgICAgICAgICAuLi5zdGF0ZS5rZXBsZXJHbCxcbiAqICAgICAgICAgIC8vIHBhc3MgaW4ga2VwbGVyLmdsIGluc3RhbmNlIHN0YXRlIHRvIGNvbWJpbmVkVXBkYXRlcnNcbiAqICAgICAgICAgIG1hcDogIGNvbWJpbmVkVXBkYXRlcnMuYWRkRGF0YVRvTWFwVXBkYXRlcihcbiAqICAgICAgICAgICBzdGF0ZS5rZXBsZXJHbC5tYXAsXG4gKiAgICAgICAgICAge1xuICogICAgICAgICAgICAgcGF5bG9hZDoge1xuICogICAgICAgICAgICAgICBkYXRhc2V0czogYWN0aW9uLmRhdGFzZXRzLFxuICogICAgICAgICAgICAgICBvcHRpb25zOiB7cmVhZE9ubHk6IHRydWV9LFxuICogICAgICAgICAgICAgICBjb25maWc6IGFjdGlvbi5jb25maWdcbiAqICAgICAgICAgICAgICB9XG4gKiAgICAgICAgICAgIH1cbiAqICAgICAgICAgIClcbiAqICAgICAgICB9XG4gKiAgICAgIH07XG4gKiAgfVxuICogIHJldHVybiByZWR1Y2VycyhzdGF0ZSwgYWN0aW9uKTtcbiAqIH07XG4gKlxuICogZXhwb3J0IGRlZmF1bHQgY29tcG9zZWRSZWR1Y2VyO1xuICovXG5cbi8qIGVzbGludC1kaXNhYmxlIG5vLXVudXNlZC12YXJzICovXG4vLyBAdHMtaWdub3JlXG5jb25zdCBjb21iaW5lZFVwZGF0ZXJzID0gbnVsbDtcbi8qIGVzbGludC1lbmFibGUgbm8tdW51c2VkLXZhcnMgKi9cblxuZXhwb3J0IGNvbnN0IGlzVmFsaWRDb25maWcgPSBjb25maWcgPT5cbiAgaXNQbGFpbk9iamVjdChjb25maWcpICYmIGlzUGxhaW5PYmplY3QoY29uZmlnLmNvbmZpZykgJiYgY29uZmlnLnZlcnNpb247XG5cbmV4cG9ydCBjb25zdCBkZWZhdWx0QWRkRGF0YVRvTWFwT3B0aW9ucyA9IHtcbiAgY2VudGVyTWFwOiB0cnVlLFxuICBrZWVwRXhpc3RpbmdDb25maWc6IGZhbHNlLFxuICBhdXRvQ3JlYXRlTGF5ZXJzOiB0cnVlXG59O1xuXG4vKipcbiAqIENvbWJpbmUgZGF0YSBhbmQgZnVsbCBjb25maWd1cmF0aW9uIHVwZGF0ZSBpbiBhIHNpbmdsZSBhY3Rpb25cbiAqXG4gKiBAbWVtYmVyb2YgY29tYmluZWRVcGRhdGVyc1xuICogQHBhcmFtIHtPYmplY3R9IHN0YXRlIGtlcGxlci5nbCBpbnN0YW5jZSBzdGF0ZSwgY29udGFpbmluZyBhbGwgc3VicmVkdWNlciBzdGF0ZVxuICogQHBhcmFtIHtPYmplY3R9IGFjdGlvblxuICogQHBhcmFtIHtPYmplY3R9IGFjdGlvbi5wYXlsb2FkIGB7ZGF0YXNldHMsIG9wdGlvbnMsIGNvbmZpZ31gXG4gKiBAcGFyYW0gYWN0aW9uLnBheWxvYWQuZGF0YXNldHMgLSAqKipyZXF1aXJlZCoqIGRhdGFzZXRzIGNhbiBiZSBhIGRhdGFzZXQgb3IgYW4gYXJyYXkgb2YgZGF0YXNldHNcbiAqIEVhY2ggZGF0YXNldCBvYmplY3QgbmVlZHMgdG8gaGF2ZSBgaW5mb2AgYW5kIGBkYXRhYCBwcm9wZXJ0eS5cbiAqIEBwYXJhbSBbYWN0aW9uLnBheWxvYWQub3B0aW9uc10gb3B0aW9uIG9iamVjdCBge2NlbnRlck1hcDogdHJ1ZX1gXG4gKiBAcGFyYW0gW2FjdGlvbi5wYXlsb2FkLmNvbmZpZ10gbWFwIGNvbmZpZ1xuICogQHBhcmFtIFthY3Rpb24ucGF5bG9hZC5pbmZvXSBtYXAgaW5mbyBjb250YWlucyB0aXRsZSBhbmQgZGVzY3JpcHRpb25cbiAqIEByZXR1cm5zIG5leHRTdGF0ZVxuICpcbiAqIEB0eXBlZGVmIHtPYmplY3R9IERhdGFzZXRcbiAqIEBwcm9wZXJ0eSBpbmZvIC1pbmZvIG9mIGEgZGF0YXNldFxuICogQHByb3BlcnR5IGluZm8uaWQgLSBpZCBvZiB0aGlzIGRhdGFzZXQuIElmIGNvbmZpZyBpcyBkZWZpbmVkLCBgaWRgIHNob3VsZCBtYXRjaGVzIHRoZSBgZGF0YUlkYCBpbiBjb25maWcuXG4gKiBAcHJvcGVydHkgaW5mby5sYWJlbCAtIEEgZGlzcGxheSBuYW1lIG9mIHRoaXMgZGF0YXNldFxuICogQHByb3BlcnR5IGRhdGEgLSAqKipyZXF1aXJlZCoqIFRoZSBkYXRhIG9iamVjdCwgaW4gYSB0YWJ1bGFyIGZvcm1hdCB3aXRoIDIgcHJvcGVydGllcyBgZmllbGRzYCBhbmQgYHJvd3NgXG4gKiBAcHJvcGVydHkgZGF0YS5maWVsZHMgLSAqKipyZXF1aXJlZCoqIEFycmF5IG9mIGZpZWxkcyxcbiAqIEBwcm9wZXJ0eSBkYXRhLmZpZWxkcy5uYW1lIC0gKioqcmVxdWlyZWQqKiBOYW1lIG9mIHRoZSBmaWVsZCxcbiAqIEBwcm9wZXJ0eSBkYXRhLnJvd3MgLSAqKipyZXF1aXJlZCoqIEFycmF5IG9mIHJvd3MsIGluIGEgdGFidWxhciBmb3JtYXQgd2l0aCBgZmllbGRzYCBhbmQgYHJvd3NgXG4gKlxuICogQHB1YmxpY1xuICovXG5leHBvcnQgY29uc3QgYWRkRGF0YVRvTWFwVXBkYXRlciA9IChcbiAgc3RhdGU6IEtlcGxlckdsU3RhdGUsXG4gIHtwYXlsb2FkfToge3BheWxvYWQ6IEFkZERhdGFUb01hcFBheWxvYWR9XG4pOiBLZXBsZXJHbFN0YXRlID0+IHtcbiAgY29uc3Qge2RhdGFzZXRzLCBjb25maWcsIGluZm99ID0gcGF5bG9hZDtcblxuICBjb25zdCBvcHRpb25zID0ge1xuICAgIC4uLmRlZmF1bHRBZGREYXRhVG9NYXBPcHRpb25zLFxuICAgIC4uLnBheWxvYWQub3B0aW9uc1xuICB9O1xuXG4gIC8vIEB0cy1leHBlY3QtZXJyb3JcbiAgbGV0IHBhcnNlZENvbmZpZzogUGFyc2VkQ29uZmlnID0gY29uZmlnO1xuXG4gIGlmIChpc1ZhbGlkQ29uZmlnKGNvbmZpZykpIHtcbiAgICAvLyBpZiBwYXNzZWQgaW4gc2F2ZWQgY29uZmlnXG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvclxuICAgIHBhcnNlZENvbmZpZyA9IHN0YXRlLnZpc1N0YXRlLnNjaGVtYS5wYXJzZVNhdmVkQ29uZmlnKGNvbmZpZyk7XG4gIH1cbiAgY29uc3Qgb2xkTGF5ZXJzID0gc3RhdGUudmlzU3RhdGUubGF5ZXJzO1xuICBjb25zdCBmaWx0ZXJOZXdseUFkZGVkTGF5ZXJzID0gKGxheWVyczogTGF5ZXJbXSkgPT5cbiAgICBsYXllcnMuZmlsdGVyKG5sID0+ICFvbGRMYXllcnMuZmluZChvbCA9PiBvbCA9PT0gbmwpKTtcblxuICAvLyBSZXR1cm5zIHVuZGVmaW5lZCBpZiBub3QgZm91bmQsIHRvIG1ha2UgdHlwZXNjcmlwdCBoYXBweVxuICBjb25zdCBmaW5kTWFwQm91bmRzSWZDZW50ZXJlZCA9IChsYXllcnM6IExheWVyW10pID0+IHtcbiAgICBjb25zdCBib3VuZHMgPSBvcHRpb25zLmNlbnRlck1hcCAmJiBmaW5kTWFwQm91bmRzKGxheWVycyk7XG4gICAgcmV0dXJuIGJvdW5kcyA/IGJvdW5kcyA6IHVuZGVmaW5lZDtcbiAgfTtcblxuICByZXR1cm4gY29tcG9zZV88S2VwbGVyR2xTdGF0ZT4oW1xuICAgIHBpY2tfKCd2aXNTdGF0ZScpKFxuICAgICAgYXBwbHlfPFZpc1N0YXRlLCBhbnk+KHZpc1N0YXRlVXBkYXRlVmlzRGF0YVVwZGF0ZXIsIHtcbiAgICAgICAgZGF0YXNldHMsXG4gICAgICAgIG9wdGlvbnMsXG4gICAgICAgIGNvbmZpZzogcGFyc2VkQ29uZmlnXG4gICAgICB9KVxuICAgICksXG5cbiAgICBpZl8oXG4gICAgICBCb29sZWFuKGluZm8pLFxuICAgICAgcGlja18oJ3Zpc1N0YXRlJykoXG4gICAgICAgIGFwcGx5XzxWaXNTdGF0ZSwgYW55PihzZXRNYXBJbmZvVXBkYXRlciwge2luZm99KVxuICAgICAgKVxuICAgICksXG5cbiAgICB3aXRoXygoe3Zpc1N0YXRlfSkgPT5cbiAgICAgIHBpY2tfKCdtYXBTdGF0ZScpKFxuICAgICAgICBhcHBseV8oXG4gICAgICAgICAgc3RhdGVNYXBDb25maWdVcGRhdGVyLFxuICAgICAgICAgIHBheWxvYWRfKHtcbiAgICAgICAgICAgIGNvbmZpZzogcGFyc2VkQ29uZmlnLFxuICAgICAgICAgICAgb3B0aW9ucyxcbiAgICAgICAgICAgIGJvdW5kczogZmluZE1hcEJvdW5kc0lmQ2VudGVyZWQoZmlsdGVyTmV3bHlBZGRlZExheWVycyh2aXNTdGF0ZS5sYXllcnMpKVxuICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICAgIClcbiAgICApLFxuICAgIHBpY2tfKCdtYXBTdHlsZScpKGFwcGx5XyhzdHlsZU1hcENvbmZpZ1VwZGF0ZXIsIHBheWxvYWRfKHtjb25maWc6IHBhcnNlZENvbmZpZywgb3B0aW9uc30pKSksXG4gICAgcGlja18oJ3VpU3RhdGUnKShhcHBseV8odWlTdGF0ZUxvYWRGaWxlc1N1Y2Nlc3NVcGRhdGVyLCBwYXlsb2FkXyhudWxsKSkpLFxuICAgIHBpY2tfKCd1aVN0YXRlJykoYXBwbHlfKHRvZ2dsZU1vZGFsVXBkYXRlciwgcGF5bG9hZF8obnVsbCkpKSxcbiAgICBwaWNrXygndWlTdGF0ZScpKG1lcmdlXyhvcHRpb25zLmhhc093blByb3BlcnR5KCdyZWFkT25seScpID8ge3JlYWRPbmx5OiBvcHRpb25zLnJlYWRPbmx5fSA6IHt9KSlcbiAgXSkoc3RhdGUpO1xufTtcblxuZXhwb3J0IGNvbnN0IGxvYWRGaWxlc1N1Y2Nlc3NVcGRhdGVyID0gKFxuICBzdGF0ZTogS2VwbGVyR2xTdGF0ZSxcbiAgYWN0aW9uOiBsb2FkRmlsZXNTdWNjZXNzVXBkYXRlckFjdGlvblxuKTogS2VwbGVyR2xTdGF0ZSA9PiB7XG4gIC8vIHN0aWxsIG1vcmUgdG8gbG9hZFxuICBjb25zdCBwYXlsb2FkcyA9IGZpbGVzVG9EYXRhUGF5bG9hZChhY3Rpb24ucmVzdWx0KTtcbiAgY29uc3QgbmV4dFN0YXRlID0gY29tcG9zZV8oW1xuICAgIHBpY2tfKCd2aXNTdGF0ZScpKFxuICAgICAgbWVyZ2VfKHtcbiAgICAgICAgZmlsZUxvYWRpbmc6IGZhbHNlLFxuICAgICAgICBmaWxlTG9hZGluZ1Byb2dyZXNzOiB7fVxuICAgICAgfSlcbiAgICApXG4gIF0pKHN0YXRlKTtcbiAgLy8gbWFrZSBtdWx0aXBsZSBhZGQgZGF0YSB0byBtYXAgY2FsbHNcbiAgY29uc3Qgc3RhdGVXaXRoRGF0YSA9IGNvbXBvc2VfKHBheWxvYWRzLm1hcChwID0+IGFwcGx5XyhhZGREYXRhVG9NYXBVcGRhdGVyLCBwYXlsb2FkXyhwKSkpKShcbiAgICBuZXh0U3RhdGVcbiAgKTtcbiAgcmV0dXJuIHN0YXRlV2l0aERhdGEgYXMgS2VwbGVyR2xTdGF0ZTtcbn07XG5cbmV4cG9ydCBjb25zdCBhZGREYXRhVG9NYXBDb21wb3NlZCA9IGFkZERhdGFUb01hcFVwZGF0ZXI7XG4iXX0=
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/** Returns a function that logs a value with a given message */
|
|
2
|
+
export declare function log(text: string): (value: any) => void;
|
|
3
|
+
/** Wraps a value in an object and stores it the `payload` field */
|
|
4
|
+
export declare function payload_<P>(payload: P): {
|
|
5
|
+
payload: P;
|
|
6
|
+
};
|
|
7
|
+
/** Wraps a value in an object and stores it the `payload` field */
|
|
8
|
+
export declare function apply_<State, P>(updater: (state: State, nextPayload: P) => State, payload: P): (state: State) => State;
|
|
9
|
+
export declare function with_<State>(fn: (state: State) => (nextState: State) => State): (state: State) => State;
|
|
10
|
+
export declare function if_<State>(pred: boolean, fn: (state: State) => State): (state: State) => State;
|
|
11
|
+
export declare function compose_<State>(fns: Array<(s: State) => State>): (s: State) => State;
|
|
12
|
+
/** Returns a reducer function that merges props with state */
|
|
13
|
+
export declare function merge_<Props>(obj: Props): <State>(state: State) => State;
|
|
14
|
+
export declare function pick_<Prop extends string>(prop: Prop): <Value>(fn: (p: Value) => Value) => <State extends Record<Prop, Value>>(state: State) => State;
|
|
15
|
+
export declare function swap_<X extends {
|
|
16
|
+
id: string;
|
|
17
|
+
}>(item: X): (arr: X[]) => X[];
|
|
18
|
+
export declare function findById<X extends {
|
|
19
|
+
id: string;
|
|
20
|
+
}>(id: string): (arr: X[]) => X | undefined;
|
|
21
|
+
export declare function map_<X>(fn: (state: X) => X): (arr: X[]) => X[];
|
|
@@ -0,0 +1,133 @@
|
|
|
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
|
+
"use strict";
|
|
22
|
+
|
|
23
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
24
|
+
|
|
25
|
+
Object.defineProperty(exports, "__esModule", {
|
|
26
|
+
value: true
|
|
27
|
+
});
|
|
28
|
+
exports.log = log;
|
|
29
|
+
exports.payload_ = payload_;
|
|
30
|
+
exports.apply_ = apply_;
|
|
31
|
+
exports.with_ = with_;
|
|
32
|
+
exports.if_ = if_;
|
|
33
|
+
exports.compose_ = compose_;
|
|
34
|
+
exports.merge_ = merge_;
|
|
35
|
+
exports.pick_ = pick_;
|
|
36
|
+
exports.swap_ = swap_;
|
|
37
|
+
exports.findById = findById;
|
|
38
|
+
exports.map_ = map_;
|
|
39
|
+
|
|
40
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
41
|
+
|
|
42
|
+
var _console = _interopRequireDefault(require("global/console"));
|
|
43
|
+
|
|
44
|
+
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; }
|
|
45
|
+
|
|
46
|
+
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; }
|
|
47
|
+
|
|
48
|
+
var identity = function identity(state) {
|
|
49
|
+
return state;
|
|
50
|
+
};
|
|
51
|
+
/** Returns a function that logs a value with a given message */
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
function log(text) {
|
|
55
|
+
return function (value) {
|
|
56
|
+
return _console["default"].log(text, value);
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
/** Wraps a value in an object and stores it the `payload` field */
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
function payload_(payload) {
|
|
63
|
+
return {
|
|
64
|
+
payload: payload
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
/** Wraps a value in an object and stores it the `payload` field */
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
function apply_(updater, payload) {
|
|
71
|
+
return function (state) {
|
|
72
|
+
return updater(state, payload);
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
function with_(fn) {
|
|
77
|
+
return function (state) {
|
|
78
|
+
return fn(state)(state);
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
function if_(pred, fn) {
|
|
83
|
+
return pred ? fn : identity;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
function compose_(fns) {
|
|
87
|
+
return function (state) {
|
|
88
|
+
return fns.reduce(function (state2, fn) {
|
|
89
|
+
return fn(state2);
|
|
90
|
+
}, state);
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
/** Returns a reducer function that merges props with state */
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
function merge_(obj) {
|
|
97
|
+
return function (state) {
|
|
98
|
+
return _objectSpread(_objectSpread({}, state), obj);
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
function pick_(prop) {
|
|
103
|
+
return function (fn) {
|
|
104
|
+
return function (state) {
|
|
105
|
+
return _objectSpread(_objectSpread({}, state), {}, (0, _defineProperty2["default"])({}, prop, fn(state[prop])));
|
|
106
|
+
};
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
function swap_(item) {
|
|
111
|
+
return function (arr) {
|
|
112
|
+
return arr.map(function (a) {
|
|
113
|
+
return a.id === item.id ? item : a;
|
|
114
|
+
});
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
function findById(id) {
|
|
119
|
+
return function (arr) {
|
|
120
|
+
return arr.find(function (a) {
|
|
121
|
+
return a.id === id;
|
|
122
|
+
});
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
function map_(fn) {
|
|
127
|
+
return function (arr) {
|
|
128
|
+
return arr.map(function (e) {
|
|
129
|
+
return fn(e);
|
|
130
|
+
});
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb21wb3Nlci1oZWxwZXJzLnRzIl0sIm5hbWVzIjpbImlkZW50aXR5Iiwic3RhdGUiLCJsb2ciLCJ0ZXh0IiwidmFsdWUiLCJDb25zb2xlIiwicGF5bG9hZF8iLCJwYXlsb2FkIiwiYXBwbHlfIiwidXBkYXRlciIsIndpdGhfIiwiZm4iLCJpZl8iLCJwcmVkIiwiY29tcG9zZV8iLCJmbnMiLCJyZWR1Y2UiLCJzdGF0ZTIiLCJtZXJnZV8iLCJvYmoiLCJwaWNrXyIsInByb3AiLCJzd2FwXyIsIml0ZW0iLCJhcnIiLCJtYXAiLCJhIiwiaWQiLCJmaW5kQnlJZCIsImZpbmQiLCJtYXBfIiwiZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBb0JBOzs7Ozs7QUFFQSxJQUFNQSxRQUFRLEdBQUcsU0FBWEEsUUFBVyxDQUFBQyxLQUFLO0FBQUEsU0FBSUEsS0FBSjtBQUFBLENBQXRCO0FBRUE7OztBQUNPLFNBQVNDLEdBQVQsQ0FBYUMsSUFBYixFQUFpRDtBQUN0RCxTQUFPLFVBQUFDLEtBQUs7QUFBQSxXQUFJQyxvQkFBUUgsR0FBUixDQUFZQyxJQUFaLEVBQWtCQyxLQUFsQixDQUFKO0FBQUEsR0FBWjtBQUNEO0FBQ0Q7OztBQUNPLFNBQVNFLFFBQVQsQ0FBcUJDLE9BQXJCLEVBQWlDO0FBQ3RDLFNBQU87QUFBQ0EsSUFBQUEsT0FBTyxFQUFQQTtBQUFELEdBQVA7QUFDRDtBQUNEOzs7QUFDTyxTQUFTQyxNQUFULENBQ0xDLE9BREssRUFFTEYsT0FGSyxFQUdvQjtBQUN6QixTQUFPLFVBQUFOLEtBQUs7QUFBQSxXQUFJUSxPQUFPLENBQUNSLEtBQUQsRUFBUU0sT0FBUixDQUFYO0FBQUEsR0FBWjtBQUNEOztBQUVNLFNBQVNHLEtBQVQsQ0FDTEMsRUFESyxFQUVvQjtBQUN6QixTQUFPLFVBQUFWLEtBQUs7QUFBQSxXQUFJVSxFQUFFLENBQUNWLEtBQUQsQ0FBRixDQUFVQSxLQUFWLENBQUo7QUFBQSxHQUFaO0FBQ0Q7O0FBRU0sU0FBU1csR0FBVCxDQUFvQkMsSUFBcEIsRUFBbUNGLEVBQW5DLEVBQXlGO0FBQzlGLFNBQU9FLElBQUksR0FBR0YsRUFBSCxHQUFRWCxRQUFuQjtBQUNEOztBQUVNLFNBQVNjLFFBQVQsQ0FBeUJDLEdBQXpCLEVBQStFO0FBQ3BGLFNBQU8sVUFBQWQsS0FBSztBQUFBLFdBQUljLEdBQUcsQ0FBQ0MsTUFBSixDQUFXLFVBQUNDLE1BQUQsRUFBU04sRUFBVDtBQUFBLGFBQWdCQSxFQUFFLENBQUNNLE1BQUQsQ0FBbEI7QUFBQSxLQUFYLEVBQXVDaEIsS0FBdkMsQ0FBSjtBQUFBLEdBQVo7QUFDRDtBQUNEOzs7QUFDTyxTQUFTaUIsTUFBVCxDQUF1QkMsR0FBdkIsRUFBbUU7QUFDeEUsU0FBTyxVQUFBbEIsS0FBSztBQUFBLDJDQUFTQSxLQUFULEdBQW1Ca0IsR0FBbkI7QUFBQSxHQUFaO0FBQ0Q7O0FBRU0sU0FBU0MsS0FBVCxDQUNMQyxJQURLLEVBRTJGO0FBQ2hHLFNBQU8sVUFBQVYsRUFBRTtBQUFBLFdBQUksVUFBQVYsS0FBSztBQUFBLDZDQUFTQSxLQUFULDRDQUFpQm9CLElBQWpCLEVBQXdCVixFQUFFLENBQUNWLEtBQUssQ0FBQ29CLElBQUQsQ0FBTixDQUExQjtBQUFBLEtBQVQ7QUFBQSxHQUFUO0FBQ0Q7O0FBRU0sU0FBU0MsS0FBVCxDQUF1Q0MsSUFBdkMsRUFBbUU7QUFDeEUsU0FBTyxVQUFBQyxHQUFHO0FBQUEsV0FBSUEsR0FBRyxDQUFDQyxHQUFKLENBQVEsVUFBQUMsQ0FBQztBQUFBLGFBQUtBLENBQUMsQ0FBQ0MsRUFBRixLQUFTSixJQUFJLENBQUNJLEVBQWQsR0FBbUJKLElBQW5CLEdBQTBCRyxDQUEvQjtBQUFBLEtBQVQsQ0FBSjtBQUFBLEdBQVY7QUFDRDs7QUFFTSxTQUFTRSxRQUFULENBQTBDRCxFQUExQyxFQUFtRjtBQUN4RixTQUFPLFVBQUFILEdBQUc7QUFBQSxXQUFJQSxHQUFHLENBQUNLLElBQUosQ0FBUyxVQUFBSCxDQUFDO0FBQUEsYUFBSUEsQ0FBQyxDQUFDQyxFQUFGLEtBQVNBLEVBQWI7QUFBQSxLQUFWLENBQUo7QUFBQSxHQUFWO0FBQ0Q7O0FBRU0sU0FBU0csSUFBVCxDQUFpQm5CLEVBQWpCLEVBQXlEO0FBQzlELFNBQU8sVUFBQWEsR0FBRztBQUFBLFdBQUlBLEdBQUcsQ0FBQ0MsR0FBSixDQUFRLFVBQUFNLENBQUM7QUFBQSxhQUFJcEIsRUFBRSxDQUFDb0IsQ0FBRCxDQUFOO0FBQUEsS0FBVCxDQUFKO0FBQUEsR0FBVjtBQUNEIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSAyMDIyIFViZXIgVGVjaG5vbG9naWVzLCBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cblxuaW1wb3J0IENvbnNvbGUgZnJvbSAnZ2xvYmFsL2NvbnNvbGUnO1xuXG5jb25zdCBpZGVudGl0eSA9IHN0YXRlID0+IHN0YXRlO1xuXG4vKiogUmV0dXJucyBhIGZ1bmN0aW9uIHRoYXQgbG9ncyBhIHZhbHVlIHdpdGggYSBnaXZlbiBtZXNzYWdlICovXG5leHBvcnQgZnVuY3Rpb24gbG9nKHRleHQ6IHN0cmluZyk6ICh2YWx1ZTogYW55KSA9PiB2b2lkIHtcbiAgcmV0dXJuIHZhbHVlID0+IENvbnNvbGUubG9nKHRleHQsIHZhbHVlKTtcbn1cbi8qKiBXcmFwcyBhIHZhbHVlIGluIGFuIG9iamVjdCBhbmQgc3RvcmVzIGl0IHRoZSBgcGF5bG9hZGAgZmllbGQgKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXlsb2FkXzxQPihwYXlsb2FkOiBQKSB7XG4gIHJldHVybiB7cGF5bG9hZH07XG59XG4vKiogV3JhcHMgYSB2YWx1ZSBpbiBhbiBvYmplY3QgYW5kIHN0b3JlcyBpdCB0aGUgYHBheWxvYWRgIGZpZWxkICovXG5leHBvcnQgZnVuY3Rpb24gYXBwbHlfPFN0YXRlLCBQPihcbiAgdXBkYXRlcjogKHN0YXRlOiBTdGF0ZSwgbmV4dFBheWxvYWQ6IFApID0+IFN0YXRlLFxuICBwYXlsb2FkOiBQXG4pOiAoc3RhdGU6IFN0YXRlKSA9PiBTdGF0ZSB7XG4gIHJldHVybiBzdGF0ZSA9PiB1cGRhdGVyKHN0YXRlLCBwYXlsb2FkKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHdpdGhfPFN0YXRlPihcbiAgZm46IChzdGF0ZTogU3RhdGUpID0+IChuZXh0U3RhdGU6IFN0YXRlKSA9PiBTdGF0ZVxuKTogKHN0YXRlOiBTdGF0ZSkgPT4gU3RhdGUge1xuICByZXR1cm4gc3RhdGUgPT4gZm4oc3RhdGUpKHN0YXRlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlmXzxTdGF0ZT4ocHJlZDogYm9vbGVhbiwgZm46IChzdGF0ZTogU3RhdGUpID0+IFN0YXRlKTogKHN0YXRlOiBTdGF0ZSkgPT4gU3RhdGUge1xuICByZXR1cm4gcHJlZCA/IGZuIDogaWRlbnRpdHk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb21wb3NlXzxTdGF0ZT4oZm5zOiBBcnJheTwoczogU3RhdGUpID0+IFN0YXRlPik6IChzOiBTdGF0ZSkgPT4gU3RhdGUge1xuICByZXR1cm4gc3RhdGUgPT4gZm5zLnJlZHVjZSgoc3RhdGUyLCBmbikgPT4gZm4oc3RhdGUyKSwgc3RhdGUpO1xufVxuLyoqIFJldHVybnMgYSByZWR1Y2VyIGZ1bmN0aW9uIHRoYXQgbWVyZ2VzIHByb3BzIHdpdGggc3RhdGUgKi9cbmV4cG9ydCBmdW5jdGlvbiBtZXJnZV88UHJvcHM+KG9iajogUHJvcHMpOiA8U3RhdGU+KHN0YXRlOiBTdGF0ZSkgPT4gU3RhdGUge1xuICByZXR1cm4gc3RhdGUgPT4gKHsuLi5zdGF0ZSwgLi4ub2JqfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwaWNrXzxQcm9wIGV4dGVuZHMgc3RyaW5nPihcbiAgcHJvcDogUHJvcFxuKTogPFZhbHVlPihmbjogKHA6IFZhbHVlKSA9PiBWYWx1ZSkgPT4gPFN0YXRlIGV4dGVuZHMgUmVjb3JkPFByb3AsIFZhbHVlPj4oc3RhdGU6IFN0YXRlKSA9PiBTdGF0ZSB7XG4gIHJldHVybiBmbiA9PiBzdGF0ZSA9PiAoey4uLnN0YXRlLCBbcHJvcF06IGZuKHN0YXRlW3Byb3BdKX0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc3dhcF88WCBleHRlbmRzIHtpZDogc3RyaW5nfT4oaXRlbTogWCk6IChhcnI6IFhbXSkgPT4gWFtdIHtcbiAgcmV0dXJuIGFyciA9PiBhcnIubWFwKGEgPT4gKGEuaWQgPT09IGl0ZW0uaWQgPyBpdGVtIDogYSkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZmluZEJ5SWQ8WCBleHRlbmRzIHtpZDogc3RyaW5nfT4oaWQ6IHN0cmluZyk6IChhcnI6IFhbXSkgPT4gWCB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBhcnIgPT4gYXJyLmZpbmQoYSA9PiBhLmlkID09PSBpZCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtYXBfPFg+KGZuOiAoc3RhdGU6IFgpID0+IFgpOiAoYXJyOiBYW10pID0+IFhbXSB7XG4gIHJldHVybiBhcnIgPT4gYXJyLm1hcChlID0+IGZuKGUpKTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import * as combinedUpdaters from './combined-updaters';
|
|
2
|
+
/**
|
|
3
|
+
* Important: Do not rename `actionHandler` or the assignment pattern of property value.
|
|
4
|
+
* It is used to generate documentation
|
|
5
|
+
*/
|
|
6
|
+
declare const actionHandler: {
|
|
7
|
+
"@@kepler.gl/ADD_DATA_TO_MAP": (state: combinedUpdaters.KeplerGlState, { payload }: {
|
|
8
|
+
payload: import("@kepler.gl/types").AddDataToMapPayload;
|
|
9
|
+
}) => combinedUpdaters.KeplerGlState;
|
|
10
|
+
"@@kepler.gl/LOAD_FILES_SUCCESS": (state: combinedUpdaters.KeplerGlState, action: import("@kepler.gl/actions").loadFilesSuccessUpdaterAction) => combinedUpdaters.KeplerGlState;
|
|
11
|
+
};
|
|
12
|
+
export default actionHandler;
|
|
@@ -0,0 +1,47 @@
|
|
|
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
|
+
"use strict";
|
|
22
|
+
|
|
23
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
24
|
+
|
|
25
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
|
|
26
|
+
|
|
27
|
+
Object.defineProperty(exports, "__esModule", {
|
|
28
|
+
value: true
|
|
29
|
+
});
|
|
30
|
+
exports["default"] = void 0;
|
|
31
|
+
|
|
32
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
33
|
+
|
|
34
|
+
var _actions = require("@kepler.gl/actions");
|
|
35
|
+
|
|
36
|
+
var combinedUpdaters = _interopRequireWildcard(require("./combined-updaters"));
|
|
37
|
+
|
|
38
|
+
var _actionHandler;
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Important: Do not rename `actionHandler` or the assignment pattern of property value.
|
|
42
|
+
* It is used to generate documentation
|
|
43
|
+
*/
|
|
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);
|
|
45
|
+
var _default = actionHandler;
|
|
46
|
+
exports["default"] = _default;
|
|
47
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb21wb3NlcnMudHMiXSwibmFtZXMiOlsiYWN0aW9uSGFuZGxlciIsIkFjdGlvblR5cGVzIiwiQUREX0RBVEFfVE9fTUFQIiwiY29tYmluZWRVcGRhdGVycyIsImFkZERhdGFUb01hcFVwZGF0ZXIiLCJMT0FEX0ZJTEVTX1NVQ0NFU1MiLCJsb2FkRmlsZXNTdWNjZXNzVXBkYXRlciJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQW9CQTs7QUFDQTs7OztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBTUEsYUFBYSwwRUFDaEJDLHFCQUFZQyxlQURJLEVBQ2NDLGdCQUFnQixDQUFDQyxtQkFEL0Isb0RBRWhCSCxxQkFBWUksa0JBRkksRUFFaUJGLGdCQUFnQixDQUFDRyx1QkFGbEMsa0JBQW5CO2VBS2VOLGEiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIDIwMjIgVWJlciBUZWNobm9sb2dpZXMsIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuXG5pbXBvcnQge0FjdGlvblR5cGVzfSBmcm9tICdAa2VwbGVyLmdsL2FjdGlvbnMnO1xuaW1wb3J0ICogYXMgY29tYmluZWRVcGRhdGVycyBmcm9tICcuL2NvbWJpbmVkLXVwZGF0ZXJzJztcblxuLyoqXG4gKiBJbXBvcnRhbnQ6IERvIG5vdCByZW5hbWUgYGFjdGlvbkhhbmRsZXJgIG9yIHRoZSBhc3NpZ25tZW50IHBhdHRlcm4gb2YgcHJvcGVydHkgdmFsdWUuXG4gKiBJdCBpcyB1c2VkIHRvIGdlbmVyYXRlIGRvY3VtZW50YXRpb25cbiAqL1xuY29uc3QgYWN0aW9uSGFuZGxlciA9IHtcbiAgW0FjdGlvblR5cGVzLkFERF9EQVRBX1RPX01BUF06IGNvbWJpbmVkVXBkYXRlcnMuYWRkRGF0YVRvTWFwVXBkYXRlcixcbiAgW0FjdGlvblR5cGVzLkxPQURfRklMRVNfU1VDQ0VTU106IGNvbWJpbmVkVXBkYXRlcnMubG9hZEZpbGVzU3VjY2Vzc1VwZGF0ZXJcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGFjdGlvbkhhbmRsZXI7XG4iXX0=
|
package/dist/core.d.ts
ADDED
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { VisState } from '@kepler.gl/schemas';
|
|
2
|
+
import { MapState, UiState } from '@kepler.gl/types';
|
|
3
|
+
import { MapStyle } from './map-style-updaters';
|
|
4
|
+
import { ProviderState } from './provider-state-updaters';
|
|
5
|
+
export declare type KeplerGlState = {
|
|
6
|
+
visState: VisState;
|
|
7
|
+
mapState: MapState;
|
|
8
|
+
mapStyle: MapStyle;
|
|
9
|
+
uiState: UiState;
|
|
10
|
+
providerState: ProviderState;
|
|
11
|
+
};
|
|
12
|
+
export declare const coreReducerFactory: (initialState?: Partial<KeplerGlState>) => (state: any, action: any) => any;
|
|
13
|
+
declare const _default: (state: any, action: any) => any;
|
|
14
|
+
export default _default;
|
|
15
|
+
/**
|
|
16
|
+
* Connect subreducer `mapState`, used with `injectComponents`. Learn more at
|
|
17
|
+
* [Replace UI Component](../advanced-usages/replace-ui-component.md#pass-custom-component-props)
|
|
18
|
+
*
|
|
19
|
+
* @param {*} reduxState
|
|
20
|
+
* @public
|
|
21
|
+
*/
|
|
22
|
+
export declare const mapStateLens: (reduxState: KeplerGlState) => {
|
|
23
|
+
mapState: MapState;
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* Connect subreducer `mapStyle`, used with `injectComponents`. Learn more at
|
|
27
|
+
* [Replace UI Component](../advanced-usages/replace-ui-component.md#pass-custom-component-props)
|
|
28
|
+
*
|
|
29
|
+
* @param {*} reduxState
|
|
30
|
+
* @public
|
|
31
|
+
*/
|
|
32
|
+
export declare const mapStyleLens: (reduxState: KeplerGlState) => {
|
|
33
|
+
mapStyle: MapStyle;
|
|
34
|
+
};
|
|
35
|
+
/**
|
|
36
|
+
* Connect subreducer `visState`, used with `injectComponents`. Learn more at
|
|
37
|
+
* [Replace UI Component](../advanced-usages/replace-ui-component.md#pass-custom-component-props)
|
|
38
|
+
*
|
|
39
|
+
* @param {*} reduxState
|
|
40
|
+
* @public
|
|
41
|
+
*/
|
|
42
|
+
export declare const visStateLens: (reduxState: KeplerGlState) => {
|
|
43
|
+
visState: VisState;
|
|
44
|
+
};
|
|
45
|
+
/**
|
|
46
|
+
* Connect subreducer `uiState`, used with `injectComponents`. Learn more at
|
|
47
|
+
* [Replace UI Component](../advanced-usages/replace-ui-component.md#pass-custom-component-props)
|
|
48
|
+
*
|
|
49
|
+
* @param {*} reduxState
|
|
50
|
+
* @public
|
|
51
|
+
*/
|
|
52
|
+
export declare const uiStateLens: (reduxState: KeplerGlState) => {
|
|
53
|
+
uiState: UiState;
|
|
54
|
+
};
|
|
55
|
+
/**
|
|
56
|
+
* Connect subreducer `providerState`, used with `injectComponents`. Learn more at
|
|
57
|
+
* [Replace UI Component](../advanced-usages/replace-ui-component.md#pass-custom-component-props)
|
|
58
|
+
*
|
|
59
|
+
* @param {*} reduxState
|
|
60
|
+
* @public
|
|
61
|
+
*/
|
|
62
|
+
export declare const providerStateLens: (reduxState: KeplerGlState) => {
|
|
63
|
+
providerState: ProviderState;
|
|
64
|
+
};
|