kepler.gl
Version:
kepler.gl is a webgl based application to visualize large scale location data in the browser
181 lines (166 loc) • 5.14 kB
JavaScript
// Copyright (c) 2020 Uber Technologies, Inc.
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
import keyMirror from 'keymirror';
import {ACTION_PREFIX} from './default-settings';
/**
* Kepler.gl action types, can be listened by reducers to perform additional tasks whenever an action is called in kepler.gl
* @constant
* @type {Object}
* @public
*
* @example
* // store.js
* import {handleActions} from 'redux-actions';
* import {createStore, combineReducers, applyMiddleware} from 'redux';
* import {taskMiddleware} from 'react-palm/tasks';
*
* import keplerGlReducer from 'kepler.gl/reducers';
* import {ActionTypes} from 'kepler.gl/actions';
*
* const appReducer = handleActions({
* // listen on kepler.gl map update action to store a copy of viewport in app state
* [ActionTypes.UPDATE_MAP]: (state, action) => ({
* ...state,
* viewport: action.payload
* }),
* }, {});
*
* const reducers = combineReducers({
* app: appReducer,
* keplerGl: keplerGlReducer
* });
*
* export default createStore(reducers, {}, applyMiddleware(taskMiddleware))
*/
const ActionTypes = keyMirror({
// identity action
REGISTER_ENTRY: null,
DELETE_ENTRY: null,
RENAME_ENTRY: null,
// visState
ADD_DATA: null,
ADD_FILTER: null,
ADD_LAYER: null,
INTERACTION_CONFIG_CHANGE: null,
LAYER_CONFIG_CHANGE: null,
LAYER_VISUAL_CHANNEL_CHANGE: null,
LAYER_TYPE_CHANGE: null,
LAYER_VIS_CONFIG_CHANGE: null,
LAYER_TEXT_LABEL_CHANGE: null,
LAYER_HOVER: null,
LAYER_CLICK: null,
MAP_CLICK: null,
MOUSE_MOVE: null,
REMOVE_FILTER: null,
REMOVE_LAYER: null,
REMOVE_DATASET: null,
REORDER_LAYER: null,
SET_FILTER: null,
SHOW_DATASET_TABLE: null,
UPDATE_LAYER_BLENDING: null,
UPDATE_VIS_DATA: null,
TOGGLE_FILTER_ANIMATION: null,
UPDATE_FILTER_ANIMATION_SPEED: null,
PLAY_ANIMATION: null,
UPDATE_ANIMATION_TIME: null,
UPDATE_ANIMATION_SPEED: null,
UPDATE_LAYER_ANIMATION_SPEED: null,
TOGGLE_LAYER_CONFIG_ACTIVE: null,
ENLARGE_FILTER: null,
TOGGLE_FILTER_FEATURE: null,
SET_VISIBLE_LAYERS_FOR_MAP: null,
TOGGLE_LAYER_FOR_MAP: null,
SET_FILTER_PLOT: null,
LOAD_FILES: null,
LOAD_NEXT_FILE: null,
LOAD_FILES_ERR: null,
LOAD_FILES_SUCCESS: null,
LAYER_COLOR_UI_CHANGE: null,
TOGGLE_FEATURE_LAYER: null,
APPLY_CPU_FILTER: null,
SET_MAP_INFO: null,
SORT_TABLE_COLUMN: null,
PIN_TABLE_COLUMN: null,
COPY_TABLE_COLUMN: null,
// mapState
UPDATE_MAP: null,
FIT_BOUNDS: null,
TOGGLE_PERSPECTIVE: null,
TOGGLE_SPLIT_MAP: null,
TOGGLE_FULLSCREEN: null,
// mapStyle
MAP_CONFIG_CHANGE: null,
SET_DEFAULT_MAP_STYLE: null,
MAP_STYLE_CHANGE: null,
LOAD_MAP_STYLES: null,
LOAD_MAP_STYLE_ERR: null,
INPUT_MAP_STYLE: null,
LOAD_CUSTOM_MAP_STYLE: null,
ADD_CUSTOM_MAP_STYLE: null,
REQUEST_MAP_STYLES: null,
SET_3D_BUILDING_COLOR: null,
// uiState
TOGGLE_SIDE_PANEL: null,
TOGGLE_MODAL: null,
SHOW_EXPORT_DROPDOWN: null,
HIDE_EXPORT_DROPDOWN: null,
OPEN_DELETE_MODAL: null,
TOGGLE_MAP_CONTROL: null,
ADD_NOTIFICATION: null,
REMOVE_NOTIFICATION: null,
SET_LOCALE: null,
// uiState > export image
SET_EXPORT_IMAGE_SETTING: null,
START_EXPORTING_IMAGE: null,
SET_EXPORT_IMAGE_DATA_URI: null,
SET_EXPORT_IMAGE_ERROR: null,
CLEANUP_EXPORT_IMAGE: null,
// uiState > export data
SET_EXPORT_SELECTED_DATASET: null,
SET_EXPORT_DATA_TYPE: null,
SET_EXPORT_FILTERED: null,
SET_EXPORT_DATA: null,
// uiState > export map
SET_EXPORT_MAP_FORMAT: null,
SET_USER_MAPBOX_ACCESS_TOKEN: null,
SET_EXPORT_MAP_HTML_MODE: null,
// uiState > editor
SET_EDITOR_MODE: null,
SET_SELECTED_FEATURE: null,
// all
INIT: null,
ADD_DATA_TO_MAP: null,
RECEIVE_MAP_CONFIG: null,
RESET_MAP_CONFIG: null,
// geo-operations
SET_FEATURES: null,
SET_POLYGON_FILTER_LAYER: null,
DELETE_FEATURE: null,
TOGGLE_EDITOR_VISIBILITY: null
});
export const addPrefix = actions =>
Object.keys(actions).reduce(
(accu, key) => ({
...accu,
[key]: `${ACTION_PREFIX}${actions[key]}`
}),
{}
);
export default addPrefix(ActionTypes);