@kepler.gl/reducers 3.3.0-alpha.1 → 3.3.0-alpha.10

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.
Files changed (84) hide show
  1. package/dist/cjs/combined-updaters.js +491 -0
  2. package/dist/cjs/composer-helpers.js +101 -0
  3. package/dist/cjs/composers.js +22 -0
  4. package/dist/cjs/core.js +105 -0
  5. package/dist/cjs/data-utils.js +53 -0
  6. package/dist/cjs/export-utils.js +91 -0
  7. package/dist/{index.js → cjs/index.js} +2 -3
  8. package/dist/cjs/interaction-utils.js +115 -0
  9. package/dist/cjs/layer-utils.js +635 -0
  10. package/dist/cjs/map-state-updaters.js +658 -0
  11. package/dist/cjs/map-state.js +35 -0
  12. package/dist/cjs/map-style-updaters.js +660 -0
  13. package/dist/cjs/map-style.js +33 -0
  14. package/dist/cjs/merger-handler.js +105 -0
  15. package/dist/cjs/middleware.js +27 -0
  16. package/dist/cjs/provider-state-updaters.js +465 -0
  17. package/dist/cjs/provider-state.js +34 -0
  18. package/dist/cjs/root.js +207 -0
  19. package/dist/cjs/ui-state-updaters.js +922 -0
  20. package/dist/cjs/ui-state.js +36 -0
  21. package/dist/cjs/vis-state-merger.js +1193 -0
  22. package/dist/cjs/vis-state-selectors.js +30 -0
  23. package/dist/cjs/vis-state-updaters.js +5100 -0
  24. package/dist/cjs/vis-state.js +35 -0
  25. package/dist/combined-updaters.d.ts +19 -2
  26. package/dist/composers.d.ts +2 -0
  27. package/dist/esm/combined-updaters.js +484 -0
  28. package/dist/esm/composer-helpers.js +85 -0
  29. package/dist/esm/composers.js +14 -0
  30. package/dist/esm/core.js +101 -0
  31. package/dist/esm/data-utils.js +47 -0
  32. package/dist/esm/export-utils.js +86 -0
  33. package/dist/esm/index.js +62 -0
  34. package/dist/esm/interaction-utils.js +106 -0
  35. package/dist/esm/layer-utils.js +602 -0
  36. package/dist/esm/map-state-updaters.js +650 -0
  37. package/dist/esm/map-state.js +29 -0
  38. package/dist/esm/map-style-updaters.js +652 -0
  39. package/dist/esm/map-style.js +27 -0
  40. package/dist/esm/merger-handler.js +96 -0
  41. package/dist/esm/middleware.js +19 -0
  42. package/dist/esm/provider-state-updaters.js +458 -0
  43. package/dist/esm/provider-state.js +28 -0
  44. package/dist/esm/root.js +201 -0
  45. package/dist/esm/ui-state-updaters.js +917 -0
  46. package/dist/esm/ui-state.js +30 -0
  47. package/dist/esm/vis-state-merger.js +1161 -0
  48. package/dist/esm/vis-state-selectors.js +24 -0
  49. package/dist/esm/vis-state-updaters.js +5006 -0
  50. package/dist/esm/vis-state.js +29 -0
  51. package/dist/interaction-utils.d.ts +1 -1
  52. package/dist/layer-utils.d.ts +23 -5
  53. package/dist/map-state-updaters.d.ts +26 -21
  54. package/dist/map-state.d.ts +2 -78
  55. package/dist/map-style-updaters.d.ts +1 -3
  56. package/dist/ui-state-updaters.d.ts +17 -2
  57. package/dist/vis-state-merger.d.ts +7 -0
  58. package/dist/vis-state-selectors.d.ts +42 -6
  59. package/dist/vis-state-updaters.d.ts +123 -1
  60. package/dist/vis-state.d.ts +8 -4
  61. package/package.json +37 -31
  62. package/dist/combined-updaters.js +0 -363
  63. package/dist/composer-helpers.js +0 -101
  64. package/dist/composers.js +0 -23
  65. package/dist/core.js +0 -105
  66. package/dist/data-utils.js +0 -53
  67. package/dist/export-utils.js +0 -91
  68. package/dist/interaction-utils.js +0 -105
  69. package/dist/layer-utils.js +0 -376
  70. package/dist/map-state-updaters.js +0 -438
  71. package/dist/map-state.js +0 -35
  72. package/dist/map-style-updaters.js +0 -661
  73. package/dist/map-style.js +0 -34
  74. package/dist/merger-handler.js +0 -105
  75. package/dist/middleware.js +0 -27
  76. package/dist/provider-state-updaters.js +0 -466
  77. package/dist/provider-state.js +0 -35
  78. package/dist/root.js +0 -207
  79. package/dist/ui-state-updaters.js +0 -887
  80. package/dist/ui-state.js +0 -37
  81. package/dist/vis-state-merger.js +0 -1032
  82. package/dist/vis-state-selectors.js +0 -30
  83. package/dist/vis-state-updaters.js +0 -3859
  84. package/dist/vis-state.js +0 -36
@@ -0,0 +1,29 @@
1
+ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
+ var _actionHandler;
3
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
4
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
5
+ // SPDX-License-Identifier: MIT
6
+ // Copyright contributors to the kepler.gl project
7
+
8
+ import { ActionTypes } from '@kepler.gl/actions';
9
+ import { handleActions } from 'redux-actions';
10
+ import * as visStateUpdaters from './vis-state-updaters';
11
+
12
+ /**
13
+ * Important: Do not rename `actionHandler` or the assignment pattern of property value.
14
+ * It is used to generate documentation
15
+ */
16
+ var actionHandler = (_actionHandler = {}, _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_actionHandler, ActionTypes.ADD_FILTER, visStateUpdaters.addFilterUpdater), ActionTypes.CREATE_OR_UPDATE_FILTER, visStateUpdaters.createOrUpdateFilterUpdater), ActionTypes.ADD_LAYER, visStateUpdaters.addLayerUpdater), ActionTypes.APPLY_FILTER_CONFIG, visStateUpdaters.applyFilterConfigUpdater), ActionTypes.APPLY_LAYER_CONFIG, visStateUpdaters.applyLayerConfigUpdater), ActionTypes.DUPLICATE_LAYER, visStateUpdaters.duplicateLayerUpdater), ActionTypes.SET_FILTER_VIEW, visStateUpdaters.setFilterViewUpdater), ActionTypes.INTERACTION_CONFIG_CHANGE, visStateUpdaters.interactionConfigChangeUpdater), ActionTypes.LAYER_CLICK, visStateUpdaters.layerClickUpdater), ActionTypes.LAYER_CONFIG_CHANGE, visStateUpdaters.layerConfigChangeUpdater), _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_actionHandler, ActionTypes.LAYER_SET_IS_VALID, visStateUpdaters.layerSetIsValidUpdater), ActionTypes.LAYER_HOVER, visStateUpdaters.layerHoverUpdater), ActionTypes.LAYER_TYPE_CHANGE, visStateUpdaters.layerTypeChangeUpdater), ActionTypes.LAYER_VIS_CONFIG_CHANGE, visStateUpdaters.layerVisConfigChangeUpdater), ActionTypes.LAYER_TOGGLE_VISIBILITY, visStateUpdaters.layerToggleVisibilityUpdater), ActionTypes.LAYER_TEXT_LABEL_CHANGE, visStateUpdaters.layerTextLabelChangeUpdater), ActionTypes.LAYER_VISUAL_CHANNEL_CHANGE, visStateUpdaters.layerVisualChannelChangeUpdater), ActionTypes.LAYER_COLOR_UI_CHANGE, visStateUpdaters.layerColorUIChangeUpdater), ActionTypes.TOGGLE_LAYER_ANIMATION, visStateUpdaters.toggleLayerAnimationUpdater), ActionTypes.TOGGLE_LAYER_ANIMATION_CONTROL, visStateUpdaters.toggleLayerAnimationControlUpdater), _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_actionHandler, ActionTypes.LOAD_FILES, visStateUpdaters.loadFilesUpdater), ActionTypes.LOAD_FILES_ERR, visStateUpdaters.loadFilesErrUpdater), ActionTypes.LOAD_NEXT_FILE, visStateUpdaters.loadNextFileUpdater), ActionTypes.LOAD_FILE_STEP_SUCCESS, visStateUpdaters.loadFileStepSuccessUpdater), ActionTypes.MAP_CLICK, visStateUpdaters.mapClickUpdater), ActionTypes.MOUSE_MOVE, visStateUpdaters.mouseMoveUpdater), ActionTypes.RECEIVE_MAP_CONFIG, visStateUpdaters.receiveMapConfigUpdater), ActionTypes.REMOVE_DATASET, visStateUpdaters.removeDatasetUpdater), ActionTypes.REMOVE_FILTER, visStateUpdaters.removeFilterUpdater), ActionTypes.REMOVE_LAYER, visStateUpdaters.removeLayerUpdater), _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_actionHandler, ActionTypes.REORDER_LAYER, visStateUpdaters.reorderLayerUpdater), ActionTypes.ADD_LAYER_GROUP, visStateUpdaters.addLayerGroupUpdater), ActionTypes.REMOVE_LAYER_GROUP, visStateUpdaters.removeLayerGroupUpdater), ActionTypes.UPDATE_LAYER_GROUP, visStateUpdaters.updateLayerGroupUpdater), ActionTypes.ADD_LAYER_TO_LAYER_GROUP, visStateUpdaters.addLayerToLayerGroupUpdater), ActionTypes.REMOVE_LAYER_FROM_LAYER_GROUP, visStateUpdaters.removeLayerFromLayerGroupUpdater), ActionTypes.SWAP_LAYER_ORDER_ENTRIES, visStateUpdaters.swapLayerOrderEntriesUpdater), ActionTypes.RESET_MAP_CONFIG, visStateUpdaters.resetMapConfigUpdater), ActionTypes.SET_FILTER, visStateUpdaters.setFilterUpdater), ActionTypes.SET_FILTER_ANIMATION_TIME, visStateUpdaters.setFilterAnimationTimeUpdater), _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_actionHandler, ActionTypes.SET_FILTER_ANIMATION_TIME_CONFIG, visStateUpdaters.setFilterAnimationTimeConfigUpdater), ActionTypes.SET_FILTER_ANIMATION_WINDOW, visStateUpdaters.setFilterAnimationWindowUpdater), ActionTypes.SET_FILTER_PLOT, visStateUpdaters.setFilterPlotUpdater), ActionTypes.SET_MAP_INFO, visStateUpdaters.setMapInfoUpdater), ActionTypes.SHOW_DATASET_TABLE, visStateUpdaters.showDatasetTableUpdater), ActionTypes.UPDATE_TABLE_COLOR, visStateUpdaters.updateTableColorUpdater), ActionTypes.REFRESH_DATASET, visStateUpdaters.refreshDatasetUpdater), ActionTypes.REFRESH_DATASET_SUCCESS, visStateUpdaters.refreshDatasetSuccessUpdater), ActionTypes.REFRESH_DATASET_ERROR, visStateUpdaters.refreshDatasetErrorUpdater), ActionTypes.REFRESH_DATASET_PROGRESS, visStateUpdaters.refreshDatasetProgressUpdater), _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_actionHandler, ActionTypes.ADD_TO_DATASET, visStateUpdaters.addToDatasetUpdater), ActionTypes.REMOVE_FROM_DATASET, visStateUpdaters.removeFromDatasetUpdater), ActionTypes.TOGGLE_FILTER_ANIMATION, visStateUpdaters.toggleFilterAnimationUpdater), ActionTypes.UPDATE_FILTER_ANIMATION_SPEED, visStateUpdaters.updateFilterAnimationSpeedUpdater), ActionTypes.SET_ANIMATION_CONFIG, visStateUpdaters.setAnimationConfigUpdater), ActionTypes.SET_LAYER_ANIMATION_TIME, visStateUpdaters.setLayerAnimationTimeUpdater), ActionTypes.UPDATE_LAYER_ANIMATION_SPEED, visStateUpdaters.updateLayerAnimationSpeedUpdater), ActionTypes.TOGGLE_LAYER_FOR_MAP, visStateUpdaters.toggleLayerForMapUpdater), ActionTypes.TOGGLE_SPLIT_MAP, visStateUpdaters.toggleSplitMapUpdater), ActionTypes.UPDATE_LAYER_BLENDING, visStateUpdaters.updateLayerBlendingUpdater), _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_actionHandler, ActionTypes.UPDATE_OVERLAY_BLENDING, visStateUpdaters.updateOverlayBlendingUpdater), ActionTypes.UPDATE_VIS_DATA, visStateUpdaters.updateVisDataUpdater), ActionTypes.RENAME_DATASET, visStateUpdaters.renameDatasetUpdater), ActionTypes.UPDATE_DATASET_PROPS, visStateUpdaters.updateDatasetPropsUpdater), ActionTypes.UPDATE_DATASET, visStateUpdaters.updateDatasetUpdater), ActionTypes.SET_FEATURES, visStateUpdaters.setFeaturesUpdater), ActionTypes.SET_EDITOR_FEATURE_PROPERTIES, visStateUpdaters.setEditorFeaturePropertiesUpdater), ActionTypes.DELETE_FEATURE, visStateUpdaters.deleteFeatureUpdater), ActionTypes.SET_POLYGON_FILTER_LAYER, visStateUpdaters.setPolygonFilterLayerUpdater), ActionTypes.SET_POLYGON_FILTER_ALL_LAYERS, visStateUpdaters.setPolygonFilterAllLayersUpdater), _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_actionHandler, ActionTypes.SET_SELECTED_FEATURE, visStateUpdaters.setSelectedFeatureUpdater), ActionTypes.SET_EDITOR_MODE, visStateUpdaters.setEditorModeUpdater), ActionTypes.TOGGLE_EDITOR_VISIBILITY, visStateUpdaters.toggleEditorVisibilityUpdater), ActionTypes.CONVERT_EDITOR_FEATURES_TO_LAYER, visStateUpdaters.convertEditorFeaturesToLayerUpdater), ActionTypes.TOGGLE_FILTER_FEATURE, visStateUpdaters.toggleFilterFeatureUpdater), ActionTypes.APPLY_CPU_FILTER, visStateUpdaters.applyCPUFilterUpdater), ActionTypes.SORT_TABLE_COLUMN, visStateUpdaters.sortTableColumnUpdater), ActionTypes.PIN_TABLE_COLUMN, visStateUpdaters.pinTableColumnUpdater), ActionTypes.COPY_TABLE_COLUMN, visStateUpdaters.copyTableColumnUpdater), ActionTypes.SET_COLUMN_DISPLAY_FORMAT, visStateUpdaters.setColumnDisplayFormatUpdater), _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_actionHandler, ActionTypes.LOAD_COLUMN_STATS, visStateUpdaters.loadColumnStatsUpdater), ActionTypes.LOAD_COLUMN_STATS_SUCCESS, visStateUpdaters.loadColumnStatsSuccessUpdater), ActionTypes.LOAD_COLUMN_STATS_ERROR, visStateUpdaters.loadColumnStatsErrorUpdater), ActionTypes.NEXT_FILE_BATCH, visStateUpdaters.nextFileBatchUpdater), ActionTypes.PROCESS_FILE_CONTENT, visStateUpdaters.processFileContentUpdater), ActionTypes.SET_LAYER_ANIMATION_TIME_CONFIG, visStateUpdaters.setLayerAnimationTimeConfigUpdater), ActionTypes.LAYER_FILTERED_ITEMS_CHANGE, visStateUpdaters.layerFilteredItemsChangeUpdater), ActionTypes.WMS_FEATURE_INFO, visStateUpdaters.wmsFeatureInfoUpdater), ActionTypes.SYNC_TIME_FILTER_WITH_LAYER_TIMELINE, visStateUpdaters.syncTimeFilterWithLayerTimelineUpdater), ActionTypes.SYNC_TIME_FILTER_TIMELINE_MODE, visStateUpdaters.setTimeFilterTimelineModeUpdater), _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_actionHandler, ActionTypes.ADD_EFFECT, visStateUpdaters.addEffectUpdater), ActionTypes.REORDER_EFFECT, visStateUpdaters.reorderEffectUpdater), ActionTypes.REMOVE_EFFECT, visStateUpdaters.removeEffectUpdater), ActionTypes.UPDATE_EFFECT, visStateUpdaters.updateEffectUpdater), ActionTypes.ADD_ANNOTATION, visStateUpdaters.addAnnotationUpdater), ActionTypes.REMOVE_ANNOTATION, visStateUpdaters.removeAnnotationUpdater), ActionTypes.UPDATE_ANNOTATION, visStateUpdaters.updateAnnotationUpdater), ActionTypes.DUPLICATE_ANNOTATION, visStateUpdaters.duplicateAnnotationUpdater), ActionTypes.SET_SELECTED_ANNOTATION, visStateUpdaters.setSelectedAnnotationUpdater), ActionTypes.CREATE_NEW_DATASET_SUCCESS, visStateUpdaters.createNewDatasetSuccessUpdater), _defineProperty(_actionHandler, ActionTypes.SET_LOADING_INDICATOR, visStateUpdaters.setLoadingIndicatorUpdater));
17
+
18
+ // construct vis-state reducer
19
+ export var visStateReducerFactory = function visStateReducerFactory() {
20
+ var initialState = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
21
+ return (
22
+ // @ts-expect-error
23
+ handleActions(actionHandler, _objectSpread(_objectSpread(_objectSpread({}, visStateUpdaters.INITIAL_VIS_STATE), initialState), {}, {
24
+ initialState: initialState
25
+ }))
26
+ );
27
+ };
28
+ export default visStateReducerFactory();
29
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJBY3Rpb25UeXBlcyIsImhhbmRsZUFjdGlvbnMiLCJ2aXNTdGF0ZVVwZGF0ZXJzIiwiYWN0aW9uSGFuZGxlciIsIl9hY3Rpb25IYW5kbGVyIiwiX2RlZmluZVByb3BlcnR5IiwiQUREX0ZJTFRFUiIsImFkZEZpbHRlclVwZGF0ZXIiLCJDUkVBVEVfT1JfVVBEQVRFX0ZJTFRFUiIsImNyZWF0ZU9yVXBkYXRlRmlsdGVyVXBkYXRlciIsIkFERF9MQVlFUiIsImFkZExheWVyVXBkYXRlciIsIkFQUExZX0ZJTFRFUl9DT05GSUciLCJhcHBseUZpbHRlckNvbmZpZ1VwZGF0ZXIiLCJBUFBMWV9MQVlFUl9DT05GSUciLCJhcHBseUxheWVyQ29uZmlnVXBkYXRlciIsIkRVUExJQ0FURV9MQVlFUiIsImR1cGxpY2F0ZUxheWVyVXBkYXRlciIsIlNFVF9GSUxURVJfVklFVyIsInNldEZpbHRlclZpZXdVcGRhdGVyIiwiSU5URVJBQ1RJT05fQ09ORklHX0NIQU5HRSIsImludGVyYWN0aW9uQ29uZmlnQ2hhbmdlVXBkYXRlciIsIkxBWUVSX0NMSUNLIiwibGF5ZXJDbGlja1VwZGF0ZXIiLCJMQVlFUl9DT05GSUdfQ0hBTkdFIiwibGF5ZXJDb25maWdDaGFuZ2VVcGRhdGVyIiwiTEFZRVJfU0VUX0lTX1ZBTElEIiwibGF5ZXJTZXRJc1ZhbGlkVXBkYXRlciIsIkxBWUVSX0hPVkVSIiwibGF5ZXJIb3ZlclVwZGF0ZXIiLCJMQVlFUl9UWVBFX0NIQU5HRSIsImxheWVyVHlwZUNoYW5nZVVwZGF0ZXIiLCJMQVlFUl9WSVNfQ09ORklHX0NIQU5HRSIsImxheWVyVmlzQ29uZmlnQ2hhbmdlVXBkYXRlciIsIkxBWUVSX1RPR0dMRV9WSVNJQklMSVRZIiwibGF5ZXJUb2dnbGVWaXNpYmlsaXR5VXBkYXRlciIsIkxBWUVSX1RFWFRfTEFCRUxfQ0hBTkdFIiwibGF5ZXJUZXh0TGFiZWxDaGFuZ2VVcGRhdGVyIiwiTEFZRVJfVklTVUFMX0NIQU5ORUxfQ0hBTkdFIiwibGF5ZXJWaXN1YWxDaGFubmVsQ2hhbmdlVXBkYXRlciIsIkxBWUVSX0NPTE9SX1VJX0NIQU5HRSIsImxheWVyQ29sb3JVSUNoYW5nZVVwZGF0ZXIiLCJUT0dHTEVfTEFZRVJfQU5JTUFUSU9OIiwidG9nZ2xlTGF5ZXJBbmltYXRpb25VcGRhdGVyIiwiVE9HR0xFX0xBWUVSX0FOSU1BVElPTl9DT05UUk9MIiwidG9nZ2xlTGF5ZXJBbmltYXRpb25Db250cm9sVXBkYXRlciIsIkxPQURfRklMRVMiLCJsb2FkRmlsZXNVcGRhdGVyIiwiTE9BRF9GSUxFU19FUlIiLCJsb2FkRmlsZXNFcnJVcGRhdGVyIiwiTE9BRF9ORVhUX0ZJTEUiLCJsb2FkTmV4dEZpbGVVcGRhdGVyIiwiTE9BRF9GSUxFX1NURVBfU1VDQ0VTUyIsImxvYWRGaWxlU3RlcFN1Y2Nlc3NVcGRhdGVyIiwiTUFQX0NMSUNLIiwibWFwQ2xpY2tVcGRhdGVyIiwiTU9VU0VfTU9WRSIsIm1vdXNlTW92ZVVwZGF0ZXIiLCJSRUNFSVZFX01BUF9DT05GSUciLCJyZWNlaXZlTWFwQ29uZmlnVXBkYXRlciIsIlJFTU9WRV9EQVRBU0VUIiwicmVtb3ZlRGF0YXNldFVwZGF0ZXIiLCJSRU1PVkVfRklMVEVSIiwicmVtb3ZlRmlsdGVyVXBkYXRlciIsIlJFTU9WRV9MQVlFUiIsInJlbW92ZUxheWVyVXBkYXRlciIsIlJFT1JERVJfTEFZRVIiLCJyZW9yZGVyTGF5ZXJVcGRhdGVyIiwiQUREX0xBWUVSX0dST1VQIiwiYWRkTGF5ZXJHcm91cFVwZGF0ZXIiLCJSRU1PVkVfTEFZRVJfR1JPVVAiLCJyZW1vdmVMYXllckdyb3VwVXBkYXRlciIsIlVQREFURV9MQVlFUl9HUk9VUCIsInVwZGF0ZUxheWVyR3JvdXBVcGRhdGVyIiwiQUREX0xBWUVSX1RPX0xBWUVSX0dST1VQIiwiYWRkTGF5ZXJUb0xheWVyR3JvdXBVcGRhdGVyIiwiUkVNT1ZFX0xBWUVSX0ZST01fTEFZRVJfR1JPVVAiLCJyZW1vdmVMYXllckZyb21MYXllckdyb3VwVXBkYXRlciIsIlNXQVBfTEFZRVJfT1JERVJfRU5UUklFUyIsInN3YXBMYXllck9yZGVyRW50cmllc1VwZGF0ZXIiLCJSRVNFVF9NQVBfQ09ORklHIiwicmVzZXRNYXBDb25maWdVcGRhdGVyIiwiU0VUX0ZJTFRFUiIsInNldEZpbHRlclVwZGF0ZXIiLCJTRVRfRklMVEVSX0FOSU1BVElPTl9USU1FIiwic2V0RmlsdGVyQW5pbWF0aW9uVGltZVVwZGF0ZXIiLCJTRVRfRklMVEVSX0FOSU1BVElPTl9USU1FX0NPTkZJRyIsInNldEZpbHRlckFuaW1hdGlvblRpbWVDb25maWdVcGRhdGVyIiwiU0VUX0ZJTFRFUl9BTklNQVRJT05fV0lORE9XIiwic2V0RmlsdGVyQW5pbWF0aW9uV2luZG93VXBkYXRlciIsIlNFVF9GSUxURVJfUExPVCIsInNldEZpbHRlclBsb3RVcGRhdGVyIiwiU0VUX01BUF9JTkZPIiwic2V0TWFwSW5mb1VwZGF0ZXIiLCJTSE9XX0RBVEFTRVRfVEFCTEUiLCJzaG93RGF0YXNldFRhYmxlVXBkYXRlciIsIlVQREFURV9UQUJMRV9DT0xPUiIsInVwZGF0ZVRhYmxlQ29sb3JVcGRhdGVyIiwiUkVGUkVTSF9EQVRBU0VUIiwicmVmcmVzaERhdGFzZXRVcGRhdGVyIiwiUkVGUkVTSF9EQVRBU0VUX1NVQ0NFU1MiLCJyZWZyZXNoRGF0YXNldFN1Y2Nlc3NVcGRhdGVyIiwiUkVGUkVTSF9EQVRBU0VUX0VSUk9SIiwicmVmcmVzaERhdGFzZXRFcnJvclVwZGF0ZXIiLCJSRUZSRVNIX0RBVEFTRVRfUFJPR1JFU1MiLCJyZWZyZXNoRGF0YXNldFByb2dyZXNzVXBkYXRlciIsIkFERF9UT19EQVRBU0VUIiwiYWRkVG9EYXRhc2V0VXBkYXRlciIsIlJFTU9WRV9GUk9NX0RBVEFTRVQiLCJyZW1vdmVGcm9tRGF0YXNldFVwZGF0ZXIiLCJUT0dHTEVfRklMVEVSX0FOSU1BVElPTiIsInRvZ2dsZUZpbHRlckFuaW1hdGlvblVwZGF0ZXIiLCJVUERBVEVfRklMVEVSX0FOSU1BVElPTl9TUEVFRCIsInVwZGF0ZUZpbHRlckFuaW1hdGlvblNwZWVkVXBkYXRlciIsIlNFVF9BTklNQVRJT05fQ09ORklHIiwic2V0QW5pbWF0aW9uQ29uZmlnVXBkYXRlciIsIlNFVF9MQVlFUl9BTklNQVRJT05fVElNRSIsInNldExheWVyQW5pbWF0aW9uVGltZVVwZGF0ZXIiLCJVUERBVEVfTEFZRVJfQU5JTUFUSU9OX1NQRUVEIiwidXBkYXRlTGF5ZXJBbmltYXRpb25TcGVlZFVwZGF0ZXIiLCJUT0dHTEVfTEFZRVJfRk9SX01BUCIsInRvZ2dsZUxheWVyRm9yTWFwVXBkYXRlciIsIlRPR0dMRV9TUExJVF9NQVAiLCJ0b2dnbGVTcGxpdE1hcFVwZGF0ZXIiLCJVUERBVEVfTEFZRVJfQkxFTkRJTkciLCJ1cGRhdGVMYXllckJsZW5kaW5nVXBkYXRlciIsIlVQREFURV9PVkVSTEFZX0JMRU5ESU5HIiwidXBkYXRlT3ZlcmxheUJsZW5kaW5nVXBkYXRlciIsIlVQREFURV9WSVNfREFUQSIsInVwZGF0ZVZpc0RhdGFVcGRhdGVyIiwiUkVOQU1FX0RBVEFTRVQiLCJyZW5hbWVEYXRhc2V0VXBkYXRlciIsIlVQREFURV9EQVRBU0VUX1BST1BTIiwidXBkYXRlRGF0YXNldFByb3BzVXBkYXRlciIsIlVQREFURV9EQVRBU0VUIiwidXBkYXRlRGF0YXNldFVwZGF0ZXIiLCJTRVRfRkVBVFVSRVMiLCJzZXRGZWF0dXJlc1VwZGF0ZXIiLCJTRVRfRURJVE9SX0ZFQVRVUkVfUFJPUEVSVElFUyIsInNldEVkaXRvckZlYXR1cmVQcm9wZXJ0aWVzVXBkYXRlciIsIkRFTEVURV9GRUFUVVJFIiwiZGVsZXRlRmVhdHVyZVVwZGF0ZXIiLCJTRVRfUE9MWUdPTl9GSUxURVJfTEFZRVIiLCJzZXRQb2x5Z29uRmlsdGVyTGF5ZXJVcGRhdGVyIiwiU0VUX1BPTFlHT05fRklMVEVSX0FMTF9MQVlFUlMiLCJzZXRQb2x5Z29uRmlsdGVyQWxsTGF5ZXJzVXBkYXRlciIsIlNFVF9TRUxFQ1RFRF9GRUFUVVJFIiwic2V0U2VsZWN0ZWRGZWF0dXJlVXBkYXRlciIsIlNFVF9FRElUT1JfTU9ERSIsInNldEVkaXRvck1vZGVVcGRhdGVyIiwiVE9HR0xFX0VESVRPUl9WSVNJQklMSVRZIiwidG9nZ2xlRWRpdG9yVmlzaWJpbGl0eVVwZGF0ZXIiLCJDT05WRVJUX0VESVRPUl9GRUFUVVJFU19UT19MQVlFUiIsImNvbnZlcnRFZGl0b3JGZWF0dXJlc1RvTGF5ZXJVcGRhdGVyIiwiVE9HR0xFX0ZJTFRFUl9GRUFUVVJFIiwidG9nZ2xlRmlsdGVyRmVhdHVyZVVwZGF0ZXIiLCJBUFBMWV9DUFVfRklMVEVSIiwiYXBwbHlDUFVGaWx0ZXJVcGRhdGVyIiwiU09SVF9UQUJMRV9DT0xVTU4iLCJzb3J0VGFibGVDb2x1bW5VcGRhdGVyIiwiUElOX1RBQkxFX0NPTFVNTiIsInBpblRhYmxlQ29sdW1uVXBkYXRlciIsIkNPUFlfVEFCTEVfQ09MVU1OIiwiY29weVRhYmxlQ29sdW1uVXBkYXRlciIsIlNFVF9DT0xVTU5fRElTUExBWV9GT1JNQVQiLCJzZXRDb2x1bW5EaXNwbGF5Rm9ybWF0VXBkYXRlciIsIkxPQURfQ09MVU1OX1NUQVRTIiwibG9hZENvbHVtblN0YXRzVXBkYXRlciIsIkxPQURfQ09MVU1OX1NUQVRTX1NVQ0NFU1MiLCJsb2FkQ29sdW1uU3RhdHNTdWNjZXNzVXBkYXRlciIsIkxPQURfQ09MVU1OX1NUQVRTX0VSUk9SIiwibG9hZENvbHVtblN0YXRzRXJyb3JVcGRhdGVyIiwiTkVYVF9GSUxFX0JBVENIIiwibmV4dEZpbGVCYXRjaFVwZGF0ZXIiLCJQUk9DRVNTX0ZJTEVfQ09OVEVOVCIsInByb2Nlc3NGaWxlQ29udGVudFVwZGF0ZXIiLCJTRVRfTEFZRVJfQU5JTUFUSU9OX1RJTUVfQ09ORklHIiwic2V0TGF5ZXJBbmltYXRpb25UaW1lQ29uZmlnVXBkYXRlciIsIkxBWUVSX0ZJTFRFUkVEX0lURU1TX0NIQU5HRSIsImxheWVyRmlsdGVyZWRJdGVtc0NoYW5nZVVwZGF0ZXIiLCJXTVNfRkVBVFVSRV9JTkZPIiwid21zRmVhdHVyZUluZm9VcGRhdGVyIiwiU1lOQ19USU1FX0ZJTFRFUl9XSVRIX0xBWUVSX1RJTUVMSU5FIiwic3luY1RpbWVGaWx0ZXJXaXRoTGF5ZXJUaW1lbGluZVVwZGF0ZXIiLCJTWU5DX1RJTUVfRklMVEVSX1RJTUVMSU5FX01PREUiLCJzZXRUaW1lRmlsdGVyVGltZWxpbmVNb2RlVXBkYXRlciIsIkFERF9FRkZFQ1QiLCJhZGRFZmZlY3RVcGRhdGVyIiwiUkVPUkRFUl9FRkZFQ1QiLCJyZW9yZGVyRWZmZWN0VXBkYXRlciIsIlJFTU9WRV9FRkZFQ1QiLCJyZW1vdmVFZmZlY3RVcGRhdGVyIiwiVVBEQVRFX0VGRkVDVCIsInVwZGF0ZUVmZmVjdFVwZGF0ZXIiLCJBRERfQU5OT1RBVElPTiIsImFkZEFubm90YXRpb25VcGRhdGVyIiwiUkVNT1ZFX0FOTk9UQVRJT04iLCJyZW1vdmVBbm5vdGF0aW9uVXBkYXRlciIsIlVQREFURV9BTk5PVEFUSU9OIiwidXBkYXRlQW5ub3RhdGlvblVwZGF0ZXIiLCJEVVBMSUNBVEVfQU5OT1RBVElPTiIsImR1cGxpY2F0ZUFubm90YXRpb25VcGRhdGVyIiwiU0VUX1NFTEVDVEVEX0FOTk9UQVRJT04iLCJzZXRTZWxlY3RlZEFubm90YXRpb25VcGRhdGVyIiwiQ1JFQVRFX05FV19EQVRBU0VUX1NVQ0NFU1MiLCJjcmVhdGVOZXdEYXRhc2V0U3VjY2Vzc1VwZGF0ZXIiLCJTRVRfTE9BRElOR19JTkRJQ0FUT1IiLCJzZXRMb2FkaW5nSW5kaWNhdG9yVXBkYXRlciIsInZpc1N0YXRlUmVkdWNlckZhY3RvcnkiLCJpbml0aWFsU3RhdGUiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJ1bmRlZmluZWQiLCJfb2JqZWN0U3ByZWFkIiwiSU5JVElBTF9WSVNfU1RBVEUiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdmlzLXN0YXRlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCB7QWN0aW9uVHlwZXN9IGZyb20gJ0BrZXBsZXIuZ2wvYWN0aW9ucyc7XG5pbXBvcnQge2hhbmRsZUFjdGlvbnN9IGZyb20gJ3JlZHV4LWFjdGlvbnMnO1xuaW1wb3J0ICogYXMgdmlzU3RhdGVVcGRhdGVycyBmcm9tICcuL3Zpcy1zdGF0ZS11cGRhdGVycyc7XG5cbi8qKlxuICogSW1wb3J0YW50OiBEbyBub3QgcmVuYW1lIGBhY3Rpb25IYW5kbGVyYCBvciB0aGUgYXNzaWdubWVudCBwYXR0ZXJuIG9mIHByb3BlcnR5IHZhbHVlLlxuICogSXQgaXMgdXNlZCB0byBnZW5lcmF0ZSBkb2N1bWVudGF0aW9uXG4gKi9cbmNvbnN0IGFjdGlvbkhhbmRsZXIgPSB7XG4gIFtBY3Rpb25UeXBlcy5BRERfRklMVEVSXTogdmlzU3RhdGVVcGRhdGVycy5hZGRGaWx0ZXJVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5DUkVBVEVfT1JfVVBEQVRFX0ZJTFRFUl06IHZpc1N0YXRlVXBkYXRlcnMuY3JlYXRlT3JVcGRhdGVGaWx0ZXJVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5BRERfTEFZRVJdOiB2aXNTdGF0ZVVwZGF0ZXJzLmFkZExheWVyVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuQVBQTFlfRklMVEVSX0NPTkZJR106IHZpc1N0YXRlVXBkYXRlcnMuYXBwbHlGaWx0ZXJDb25maWdVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5BUFBMWV9MQVlFUl9DT05GSUddOiB2aXNTdGF0ZVVwZGF0ZXJzLmFwcGx5TGF5ZXJDb25maWdVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5EVVBMSUNBVEVfTEFZRVJdOiB2aXNTdGF0ZVVwZGF0ZXJzLmR1cGxpY2F0ZUxheWVyVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuU0VUX0ZJTFRFUl9WSUVXXTogdmlzU3RhdGVVcGRhdGVycy5zZXRGaWx0ZXJWaWV3VXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuSU5URVJBQ1RJT05fQ09ORklHX0NIQU5HRV06IHZpc1N0YXRlVXBkYXRlcnMuaW50ZXJhY3Rpb25Db25maWdDaGFuZ2VVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5MQVlFUl9DTElDS106IHZpc1N0YXRlVXBkYXRlcnMubGF5ZXJDbGlja1VwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLkxBWUVSX0NPTkZJR19DSEFOR0VdOiB2aXNTdGF0ZVVwZGF0ZXJzLmxheWVyQ29uZmlnQ2hhbmdlVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuTEFZRVJfU0VUX0lTX1ZBTElEXTogdmlzU3RhdGVVcGRhdGVycy5sYXllclNldElzVmFsaWRVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5MQVlFUl9IT1ZFUl06IHZpc1N0YXRlVXBkYXRlcnMubGF5ZXJIb3ZlclVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLkxBWUVSX1RZUEVfQ0hBTkdFXTogdmlzU3RhdGVVcGRhdGVycy5sYXllclR5cGVDaGFuZ2VVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5MQVlFUl9WSVNfQ09ORklHX0NIQU5HRV06IHZpc1N0YXRlVXBkYXRlcnMubGF5ZXJWaXNDb25maWdDaGFuZ2VVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5MQVlFUl9UT0dHTEVfVklTSUJJTElUWV06IHZpc1N0YXRlVXBkYXRlcnMubGF5ZXJUb2dnbGVWaXNpYmlsaXR5VXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuTEFZRVJfVEVYVF9MQUJFTF9DSEFOR0VdOiB2aXNTdGF0ZVVwZGF0ZXJzLmxheWVyVGV4dExhYmVsQ2hhbmdlVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuTEFZRVJfVklTVUFMX0NIQU5ORUxfQ0hBTkdFXTogdmlzU3RhdGVVcGRhdGVycy5sYXllclZpc3VhbENoYW5uZWxDaGFuZ2VVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5MQVlFUl9DT0xPUl9VSV9DSEFOR0VdOiB2aXNTdGF0ZVVwZGF0ZXJzLmxheWVyQ29sb3JVSUNoYW5nZVVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlRPR0dMRV9MQVlFUl9BTklNQVRJT05dOiB2aXNTdGF0ZVVwZGF0ZXJzLnRvZ2dsZUxheWVyQW5pbWF0aW9uVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuVE9HR0xFX0xBWUVSX0FOSU1BVElPTl9DT05UUk9MXTogdmlzU3RhdGVVcGRhdGVycy50b2dnbGVMYXllckFuaW1hdGlvbkNvbnRyb2xVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5MT0FEX0ZJTEVTXTogdmlzU3RhdGVVcGRhdGVycy5sb2FkRmlsZXNVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5MT0FEX0ZJTEVTX0VSUl06IHZpc1N0YXRlVXBkYXRlcnMubG9hZEZpbGVzRXJyVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuTE9BRF9ORVhUX0ZJTEVdOiB2aXNTdGF0ZVVwZGF0ZXJzLmxvYWROZXh0RmlsZVVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLkxPQURfRklMRV9TVEVQX1NVQ0NFU1NdOiB2aXNTdGF0ZVVwZGF0ZXJzLmxvYWRGaWxlU3RlcFN1Y2Nlc3NVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5NQVBfQ0xJQ0tdOiB2aXNTdGF0ZVVwZGF0ZXJzLm1hcENsaWNrVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuTU9VU0VfTU9WRV06IHZpc1N0YXRlVXBkYXRlcnMubW91c2VNb3ZlVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuUkVDRUlWRV9NQVBfQ09ORklHXTogdmlzU3RhdGVVcGRhdGVycy5yZWNlaXZlTWFwQ29uZmlnVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuUkVNT1ZFX0RBVEFTRVRdOiB2aXNTdGF0ZVVwZGF0ZXJzLnJlbW92ZURhdGFzZXRVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5SRU1PVkVfRklMVEVSXTogdmlzU3RhdGVVcGRhdGVycy5yZW1vdmVGaWx0ZXJVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5SRU1PVkVfTEFZRVJdOiB2aXNTdGF0ZVVwZGF0ZXJzLnJlbW92ZUxheWVyVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuUkVPUkRFUl9MQVlFUl06IHZpc1N0YXRlVXBkYXRlcnMucmVvcmRlckxheWVyVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuQUREX0xBWUVSX0dST1VQXTogdmlzU3RhdGVVcGRhdGVycy5hZGRMYXllckdyb3VwVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuUkVNT1ZFX0xBWUVSX0dST1VQXTogdmlzU3RhdGVVcGRhdGVycy5yZW1vdmVMYXllckdyb3VwVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuVVBEQVRFX0xBWUVSX0dST1VQXTogdmlzU3RhdGVVcGRhdGVycy51cGRhdGVMYXllckdyb3VwVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuQUREX0xBWUVSX1RPX0xBWUVSX0dST1VQXTogdmlzU3RhdGVVcGRhdGVycy5hZGRMYXllclRvTGF5ZXJHcm91cFVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlJFTU9WRV9MQVlFUl9GUk9NX0xBWUVSX0dST1VQXTogdmlzU3RhdGVVcGRhdGVycy5yZW1vdmVMYXllckZyb21MYXllckdyb3VwVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuU1dBUF9MQVlFUl9PUkRFUl9FTlRSSUVTXTogdmlzU3RhdGVVcGRhdGVycy5zd2FwTGF5ZXJPcmRlckVudHJpZXNVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5SRVNFVF9NQVBfQ09ORklHXTogdmlzU3RhdGVVcGRhdGVycy5yZXNldE1hcENvbmZpZ1VwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlNFVF9GSUxURVJdOiB2aXNTdGF0ZVVwZGF0ZXJzLnNldEZpbHRlclVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlNFVF9GSUxURVJfQU5JTUFUSU9OX1RJTUVdOiB2aXNTdGF0ZVVwZGF0ZXJzLnNldEZpbHRlckFuaW1hdGlvblRpbWVVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5TRVRfRklMVEVSX0FOSU1BVElPTl9USU1FX0NPTkZJR106XG4gICAgdmlzU3RhdGVVcGRhdGVycy5zZXRGaWx0ZXJBbmltYXRpb25UaW1lQ29uZmlnVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuU0VUX0ZJTFRFUl9BTklNQVRJT05fV0lORE9XXTogdmlzU3RhdGVVcGRhdGVycy5zZXRGaWx0ZXJBbmltYXRpb25XaW5kb3dVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5TRVRfRklMVEVSX1BMT1RdOiB2aXNTdGF0ZVVwZGF0ZXJzLnNldEZpbHRlclBsb3RVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5TRVRfTUFQX0lORk9dOiB2aXNTdGF0ZVVwZGF0ZXJzLnNldE1hcEluZm9VcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5TSE9XX0RBVEFTRVRfVEFCTEVdOiB2aXNTdGF0ZVVwZGF0ZXJzLnNob3dEYXRhc2V0VGFibGVVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5VUERBVEVfVEFCTEVfQ09MT1JdOiB2aXNTdGF0ZVVwZGF0ZXJzLnVwZGF0ZVRhYmxlQ29sb3JVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5SRUZSRVNIX0RBVEFTRVRdOiB2aXNTdGF0ZVVwZGF0ZXJzLnJlZnJlc2hEYXRhc2V0VXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuUkVGUkVTSF9EQVRBU0VUX1NVQ0NFU1NdOiB2aXNTdGF0ZVVwZGF0ZXJzLnJlZnJlc2hEYXRhc2V0U3VjY2Vzc1VwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlJFRlJFU0hfREFUQVNFVF9FUlJPUl06IHZpc1N0YXRlVXBkYXRlcnMucmVmcmVzaERhdGFzZXRFcnJvclVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlJFRlJFU0hfREFUQVNFVF9QUk9HUkVTU106IHZpc1N0YXRlVXBkYXRlcnMucmVmcmVzaERhdGFzZXRQcm9ncmVzc1VwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLkFERF9UT19EQVRBU0VUXTogdmlzU3RhdGVVcGRhdGVycy5hZGRUb0RhdGFzZXRVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5SRU1PVkVfRlJPTV9EQVRBU0VUXTogdmlzU3RhdGVVcGRhdGVycy5yZW1vdmVGcm9tRGF0YXNldFVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlRPR0dMRV9GSUxURVJfQU5JTUFUSU9OXTogdmlzU3RhdGVVcGRhdGVycy50b2dnbGVGaWx0ZXJBbmltYXRpb25VcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5VUERBVEVfRklMVEVSX0FOSU1BVElPTl9TUEVFRF06IHZpc1N0YXRlVXBkYXRlcnMudXBkYXRlRmlsdGVyQW5pbWF0aW9uU3BlZWRVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5TRVRfQU5JTUFUSU9OX0NPTkZJR106IHZpc1N0YXRlVXBkYXRlcnMuc2V0QW5pbWF0aW9uQ29uZmlnVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuU0VUX0xBWUVSX0FOSU1BVElPTl9USU1FXTogdmlzU3RhdGVVcGRhdGVycy5zZXRMYXllckFuaW1hdGlvblRpbWVVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5VUERBVEVfTEFZRVJfQU5JTUFUSU9OX1NQRUVEXTogdmlzU3RhdGVVcGRhdGVycy51cGRhdGVMYXllckFuaW1hdGlvblNwZWVkVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuVE9HR0xFX0xBWUVSX0ZPUl9NQVBdOiB2aXNTdGF0ZVVwZGF0ZXJzLnRvZ2dsZUxheWVyRm9yTWFwVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuVE9HR0xFX1NQTElUX01BUF06IHZpc1N0YXRlVXBkYXRlcnMudG9nZ2xlU3BsaXRNYXBVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5VUERBVEVfTEFZRVJfQkxFTkRJTkddOiB2aXNTdGF0ZVVwZGF0ZXJzLnVwZGF0ZUxheWVyQmxlbmRpbmdVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5VUERBVEVfT1ZFUkxBWV9CTEVORElOR106IHZpc1N0YXRlVXBkYXRlcnMudXBkYXRlT3ZlcmxheUJsZW5kaW5nVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuVVBEQVRFX1ZJU19EQVRBXTogdmlzU3RhdGVVcGRhdGVycy51cGRhdGVWaXNEYXRhVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuUkVOQU1FX0RBVEFTRVRdOiB2aXNTdGF0ZVVwZGF0ZXJzLnJlbmFtZURhdGFzZXRVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5VUERBVEVfREFUQVNFVF9QUk9QU106IHZpc1N0YXRlVXBkYXRlcnMudXBkYXRlRGF0YXNldFByb3BzVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuVVBEQVRFX0RBVEFTRVRdOiB2aXNTdGF0ZVVwZGF0ZXJzLnVwZGF0ZURhdGFzZXRVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5TRVRfRkVBVFVSRVNdOiB2aXNTdGF0ZVVwZGF0ZXJzLnNldEZlYXR1cmVzVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuU0VUX0VESVRPUl9GRUFUVVJFX1BST1BFUlRJRVNdOiB2aXNTdGF0ZVVwZGF0ZXJzLnNldEVkaXRvckZlYXR1cmVQcm9wZXJ0aWVzVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuREVMRVRFX0ZFQVRVUkVdOiB2aXNTdGF0ZVVwZGF0ZXJzLmRlbGV0ZUZlYXR1cmVVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5TRVRfUE9MWUdPTl9GSUxURVJfTEFZRVJdOiB2aXNTdGF0ZVVwZGF0ZXJzLnNldFBvbHlnb25GaWx0ZXJMYXllclVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlNFVF9QT0xZR09OX0ZJTFRFUl9BTExfTEFZRVJTXTogdmlzU3RhdGVVcGRhdGVycy5zZXRQb2x5Z29uRmlsdGVyQWxsTGF5ZXJzVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuU0VUX1NFTEVDVEVEX0ZFQVRVUkVdOiB2aXNTdGF0ZVVwZGF0ZXJzLnNldFNlbGVjdGVkRmVhdHVyZVVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlNFVF9FRElUT1JfTU9ERV06IHZpc1N0YXRlVXBkYXRlcnMuc2V0RWRpdG9yTW9kZVVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlRPR0dMRV9FRElUT1JfVklTSUJJTElUWV06IHZpc1N0YXRlVXBkYXRlcnMudG9nZ2xlRWRpdG9yVmlzaWJpbGl0eVVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLkNPTlZFUlRfRURJVE9SX0ZFQVRVUkVTX1RPX0xBWUVSXTpcbiAgICB2aXNTdGF0ZVVwZGF0ZXJzLmNvbnZlcnRFZGl0b3JGZWF0dXJlc1RvTGF5ZXJVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5UT0dHTEVfRklMVEVSX0ZFQVRVUkVdOiB2aXNTdGF0ZVVwZGF0ZXJzLnRvZ2dsZUZpbHRlckZlYXR1cmVVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5BUFBMWV9DUFVfRklMVEVSXTogdmlzU3RhdGVVcGRhdGVycy5hcHBseUNQVUZpbHRlclVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlNPUlRfVEFCTEVfQ09MVU1OXTogdmlzU3RhdGVVcGRhdGVycy5zb3J0VGFibGVDb2x1bW5VcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5QSU5fVEFCTEVfQ09MVU1OXTogdmlzU3RhdGVVcGRhdGVycy5waW5UYWJsZUNvbHVtblVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLkNPUFlfVEFCTEVfQ09MVU1OXTogdmlzU3RhdGVVcGRhdGVycy5jb3B5VGFibGVDb2x1bW5VcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5TRVRfQ09MVU1OX0RJU1BMQVlfRk9STUFUXTogdmlzU3RhdGVVcGRhdGVycy5zZXRDb2x1bW5EaXNwbGF5Rm9ybWF0VXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuTE9BRF9DT0xVTU5fU1RBVFNdOiB2aXNTdGF0ZVVwZGF0ZXJzLmxvYWRDb2x1bW5TdGF0c1VwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLkxPQURfQ09MVU1OX1NUQVRTX1NVQ0NFU1NdOiB2aXNTdGF0ZVVwZGF0ZXJzLmxvYWRDb2x1bW5TdGF0c1N1Y2Nlc3NVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5MT0FEX0NPTFVNTl9TVEFUU19FUlJPUl06IHZpc1N0YXRlVXBkYXRlcnMubG9hZENvbHVtblN0YXRzRXJyb3JVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5ORVhUX0ZJTEVfQkFUQ0hdOiB2aXNTdGF0ZVVwZGF0ZXJzLm5leHRGaWxlQmF0Y2hVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5QUk9DRVNTX0ZJTEVfQ09OVEVOVF06IHZpc1N0YXRlVXBkYXRlcnMucHJvY2Vzc0ZpbGVDb250ZW50VXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuU0VUX0xBWUVSX0FOSU1BVElPTl9USU1FX0NPTkZJR106XG4gICAgdmlzU3RhdGVVcGRhdGVycy5zZXRMYXllckFuaW1hdGlvblRpbWVDb25maWdVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5MQVlFUl9GSUxURVJFRF9JVEVNU19DSEFOR0VdOiB2aXNTdGF0ZVVwZGF0ZXJzLmxheWVyRmlsdGVyZWRJdGVtc0NoYW5nZVVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLldNU19GRUFUVVJFX0lORk9dOiB2aXNTdGF0ZVVwZGF0ZXJzLndtc0ZlYXR1cmVJbmZvVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuU1lOQ19USU1FX0ZJTFRFUl9XSVRIX0xBWUVSX1RJTUVMSU5FXTpcbiAgICB2aXNTdGF0ZVVwZGF0ZXJzLnN5bmNUaW1lRmlsdGVyV2l0aExheWVyVGltZWxpbmVVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5TWU5DX1RJTUVfRklMVEVSX1RJTUVMSU5FX01PREVdOiB2aXNTdGF0ZVVwZGF0ZXJzLnNldFRpbWVGaWx0ZXJUaW1lbGluZU1vZGVVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5BRERfRUZGRUNUXTogdmlzU3RhdGVVcGRhdGVycy5hZGRFZmZlY3RVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5SRU9SREVSX0VGRkVDVF06IHZpc1N0YXRlVXBkYXRlcnMucmVvcmRlckVmZmVjdFVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlJFTU9WRV9FRkZFQ1RdOiB2aXNTdGF0ZVVwZGF0ZXJzLnJlbW92ZUVmZmVjdFVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlVQREFURV9FRkZFQ1RdOiB2aXNTdGF0ZVVwZGF0ZXJzLnVwZGF0ZUVmZmVjdFVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLkFERF9BTk5PVEFUSU9OXTogdmlzU3RhdGVVcGRhdGVycy5hZGRBbm5vdGF0aW9uVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuUkVNT1ZFX0FOTk9UQVRJT05dOiB2aXNTdGF0ZVVwZGF0ZXJzLnJlbW92ZUFubm90YXRpb25VcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5VUERBVEVfQU5OT1RBVElPTl06IHZpc1N0YXRlVXBkYXRlcnMudXBkYXRlQW5ub3RhdGlvblVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLkRVUExJQ0FURV9BTk5PVEFUSU9OXTogdmlzU3RhdGVVcGRhdGVycy5kdXBsaWNhdGVBbm5vdGF0aW9uVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuU0VUX1NFTEVDVEVEX0FOTk9UQVRJT05dOiB2aXNTdGF0ZVVwZGF0ZXJzLnNldFNlbGVjdGVkQW5ub3RhdGlvblVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLkNSRUFURV9ORVdfREFUQVNFVF9TVUNDRVNTXTogdmlzU3RhdGVVcGRhdGVycy5jcmVhdGVOZXdEYXRhc2V0U3VjY2Vzc1VwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlNFVF9MT0FESU5HX0lORElDQVRPUl06IHZpc1N0YXRlVXBkYXRlcnMuc2V0TG9hZGluZ0luZGljYXRvclVwZGF0ZXJcbn07XG5cbi8vIGNvbnN0cnVjdCB2aXMtc3RhdGUgcmVkdWNlclxuZXhwb3J0IGNvbnN0IHZpc1N0YXRlUmVkdWNlckZhY3RvcnkgPSAoaW5pdGlhbFN0YXRlID0ge30pID0+XG4gIC8vIEB0cy1leHBlY3QtZXJyb3JcbiAgaGFuZGxlQWN0aW9ucyhhY3Rpb25IYW5kbGVyLCB7XG4gICAgLi4udmlzU3RhdGVVcGRhdGVycy5JTklUSUFMX1ZJU19TVEFURSxcbiAgICAuLi5pbml0aWFsU3RhdGUsXG4gICAgaW5pdGlhbFN0YXRlXG4gIH0pO1xuXG5leHBv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
@@ -14,7 +14,7 @@ export declare function findFieldsToShow({ fields, id, maxDefaultTooltips }: {
14
14
  id: string;
15
15
  maxDefaultTooltips: number;
16
16
  }): {
17
- [key: string]: string[];
17
+ [key: string]: TooltipField[];
18
18
  };
19
19
  export declare function getTooltipDisplayDeltaValue({ field, value, primaryValue, compareType }: {
20
20
  field: Field;
@@ -1,6 +1,6 @@
1
1
  import { Layer as DeckLayer } from '@deck.gl/core';
2
2
  type DeckLayerProps = any;
3
- import { Field, LayerVisConfig, TooltipField, CompareType, SplitMapLayers, Editor, Feature, FeatureSelectionContext, BindedLayerCallbacks, LayerCallbacks, Viewport } from '@kepler.gl/types';
3
+ import { Field, LayerVisConfig, TooltipField, CompareType, SplitMapLayers, Editor, Feature, FeatureSelectionContext, BindedLayerCallbacks, LayerCallbacks, Viewport, LayerOrderGroup, LayerOrder, LayerOrderEntry, FlatLayerOrder, LayerOrderHierarchy } from '@kepler.gl/types';
4
4
  import { Layer, LayerClassesType } from '@kepler.gl/layers';
5
5
  import KeplerTable from '@kepler.gl/table';
6
6
  import { VisState } from '@kepler.gl/schemas';
@@ -18,11 +18,11 @@ export type AggregationLayerHoverData = {
18
18
  }>;
19
19
  };
20
20
  export type LayerHoverProp = {
21
- data: DataRow | AggregationLayerHoverData | null;
21
+ data: DataRow | AggregationLayerHoverData | any[] | null;
22
22
  fields: Field[];
23
23
  fieldsToShow: TooltipField[];
24
24
  layer: Layer;
25
- primaryData?: DataRow | AggregationLayerHoverData | null;
25
+ primaryData?: DataRow | AggregationLayerHoverData | any[] | null;
26
26
  compareType?: CompareType;
27
27
  currentTime?: VisState['animationConfig']['currentTime'];
28
28
  };
@@ -99,9 +99,27 @@ export declare function computeDeckLayers({ visState, mapState, mapStyle }: any,
99
99
  export declare function getLayerOrderFromLayers<T extends {
100
100
  id: string;
101
101
  }>(layers: T[]): string[];
102
+ export declare function getNewLayerGroup(props?: Partial<LayerOrderGroup>): LayerOrderGroup;
103
+ export declare function addLayerOrGroupToLayerOrder(layerOrder: LayerOrder, element: LayerOrderEntry, atIndex?: number): LayerOrder;
104
+ export declare function removeElementFromLayerOrder(layerOrder: LayerOrder, element: LayerOrderEntry): LayerOrder;
105
+ export declare function getLayerGroupFromLayerOrder(layerOrder: LayerOrder, layerGroupId: string): LayerOrderGroup | undefined;
106
+ /**
107
+ * Find the parent group that contains a given layer ID.
108
+ * Returns undefined if the layer is at the root level.
109
+ */
110
+ export declare function findParentGroupForLayer(layerOrder: LayerOrder, layerId: string): LayerOrderGroup | undefined;
111
+ export declare function getIndexFromLayerEntryId(layerOrder: LayerOrder, layerEntryId: string): number;
112
+ export declare function isLayerPresentInLayerOrder(layerOrder: LayerOrder, layerId: string): boolean;
113
+ export declare function replaceLayerEntryInLayerOrder(layerOrder: LayerOrder, oldEntry: LayerOrderEntry, newEntry: LayerOrderEntry): LayerOrder;
114
+ export declare function updateLayerGroupInLayerOrder(layerOrder: LayerOrder, newLayerGroup: LayerOrderGroup): LayerOrder;
115
+ export declare function getFlatLayerOrder(layerOrder: LayerOrder): FlatLayerOrder;
116
+ export declare function buildLayerOrderHierarchy(layerOrder: LayerOrder, layers?: Layer[] | readonly Layer[]): LayerOrderHierarchy;
117
+ export declare function removeGhostLayerFromLayerOrder(layerOrder: LayerOrder, layers: {
118
+ id: string;
119
+ }[]): LayerOrder;
102
120
  export declare function reorderLayerOrder(layerOrder: VisState['layerOrder'], originLayerId: string, destinationLayerId: string): VisState['layerOrder'];
103
- export declare function addLayerToLayerOrder(layerOrder: VisState['layerOrder'], layerId: string): string[];
104
- export declare function getLayerHoverPropValue(data: DataRow | AggregationLayerHoverData | null | undefined, fieldIndex: number): any;
121
+ export declare function addLayerToLayerOrder(layerOrder: VisState['layerOrder'], layerId: string): LayerOrder;
122
+ export declare function getLayerHoverPropValue(data: DataRow | AggregationLayerHoverData | any[] | null | undefined, fieldIndex: number): any;
105
123
  /** Checks if any Deck layers are in the process of loading. */
106
124
  export declare function areAnyDeckLayersLoading(layers: DeckLayer[]): boolean;
107
125
  export {};
@@ -1,5 +1,5 @@
1
1
  import { MapStateActions, ReceiveMapConfigPayload, ActionTypes } from '@kepler.gl/actions';
2
- import { MapState, Bounds, Viewport } from '@kepler.gl/types';
2
+ import { MapState, Viewport } from '@kepler.gl/types';
3
3
  /**
4
4
  * Default initial `mapState`
5
5
  * @memberof mapStateUpdaters
@@ -41,6 +41,18 @@ export declare const fitBoundsUpdater: (state: MapState, action: MapStateActions
41
41
  * @public
42
42
  */
43
43
  export declare const togglePerspectiveUpdater: (state: MapState) => MapState;
44
+ /**
45
+ * Set map view mode (2D, 3D, Globe)
46
+ * @memberof mapStateUpdaters
47
+ * @public
48
+ */
49
+ export declare const setMapViewModeUpdater: (state: MapState, action: MapStateActions.SetMapViewModeUpdaterAction) => MapState;
50
+ /**
51
+ * Update globe config
52
+ * @memberof mapStateUpdaters
53
+ * @public
54
+ */
55
+ export declare const globeConfigChangeUpdater: (state: MapState, action: MapStateActions.GlobeConfigChangeUpdaterAction) => MapState;
44
56
  /**
45
57
  * reset mapState to initial State
46
58
  * @memberof mapStateUpdaters
@@ -62,31 +74,24 @@ export declare const receiveMapConfigUpdater: (state: MapState, { payload: { con
62
74
  * @public
63
75
  */
64
76
  export declare const toggleSplitMapUpdater: (state: MapState) => MapState;
77
+ /**
78
+ * Set the map split mode (single, dual, or swipe)
79
+ * @memberof mapStateUpdaters
80
+ * @public
81
+ */
82
+ export declare const setMapSplitModeUpdater: (state: MapState, action: MapStateActions.SetMapSplitModeUpdaterAction) => MapState;
83
+ /**
84
+ * Set the swipe compare percentage
85
+ * @memberof mapStateUpdaters
86
+ * @public
87
+ */
88
+ export declare const setSwipeComparePercentageUpdater: (state: MapState, action: MapStateActions.SetSwipeComparePercentageUpdaterAction) => MapState;
65
89
  /**
66
90
  * Toggle between locked and unlocked split viewports
67
91
  * @memberof mapStateUpdaters
68
92
  * @public
69
93
  */
70
- export declare const toggleSplitMapViewportUpdater: (state: MapState, action: MapStateActions.ToggleSplitMapViewportUpdaterAction) => {
71
- isViewportSynced: boolean;
72
- isZoomLocked: boolean;
73
- pitch: number;
74
- bearing: number;
75
- latitude: number;
76
- longitude: number;
77
- zoom: number;
78
- dragRotate: boolean;
79
- width: number;
80
- height: number;
81
- minZoom?: number;
82
- maxZoom?: number;
83
- maxPitch?: number;
84
- maxBounds?: Bounds;
85
- initialState?: any;
86
- scale?: number;
87
- isSplit: boolean;
88
- splitMapViewports: Viewport[];
89
- };
94
+ export declare const toggleSplitMapViewportUpdater: (state: MapState, action: MapStateActions.ToggleSplitMapViewportUpdaterAction) => MapState;
90
95
  export declare function getMapDimForSplitMap(isSplit: any, state: any): {
91
96
  width?: undefined;
92
97
  } | {
@@ -1,79 +1,3 @@
1
- export declare const mapStateReducerFactory: (initialState?: {}) => import("redux-actions").ReduxCompatibleReducer<{
2
- isViewportSynced: boolean;
3
- isZoomLocked: boolean;
4
- pitch: number;
5
- bearing: number;
6
- latitude: number;
7
- longitude: number;
8
- zoom: number;
9
- dragRotate: boolean;
10
- width: number;
11
- height: number;
12
- minZoom?: number;
13
- maxZoom?: number;
14
- maxPitch?: number;
15
- maxBounds?: import("@kepler.gl/types").Bounds;
16
- initialState?: any;
17
- scale?: number;
18
- isSplit: boolean;
19
- splitMapViewports: import("@kepler.gl/types").Viewport[];
20
- }, {
21
- isViewportSynced: boolean;
22
- isZoomLocked: boolean;
23
- pitch: number;
24
- bearing: number;
25
- latitude: number;
26
- longitude: number;
27
- zoom: number;
28
- dragRotate: boolean;
29
- width: number;
30
- height: number;
31
- minZoom?: number;
32
- maxZoom?: number;
33
- maxPitch?: number;
34
- maxBounds?: import("@kepler.gl/types").Bounds;
35
- initialState?: any;
36
- scale?: number;
37
- isSplit: boolean;
38
- splitMapViewports: import("@kepler.gl/types").Viewport[];
39
- }>;
40
- declare const _default: import("redux-actions").ReduxCompatibleReducer<{
41
- isViewportSynced: boolean;
42
- isZoomLocked: boolean;
43
- pitch: number;
44
- bearing: number;
45
- latitude: number;
46
- longitude: number;
47
- zoom: number;
48
- dragRotate: boolean;
49
- width: number;
50
- height: number;
51
- minZoom?: number;
52
- maxZoom?: number;
53
- maxPitch?: number;
54
- maxBounds?: import("@kepler.gl/types").Bounds;
55
- initialState?: any;
56
- scale?: number;
57
- isSplit: boolean;
58
- splitMapViewports: import("@kepler.gl/types").Viewport[];
59
- }, {
60
- isViewportSynced: boolean;
61
- isZoomLocked: boolean;
62
- pitch: number;
63
- bearing: number;
64
- latitude: number;
65
- longitude: number;
66
- zoom: number;
67
- dragRotate: boolean;
68
- width: number;
69
- height: number;
70
- minZoom?: number;
71
- maxZoom?: number;
72
- maxPitch?: number;
73
- maxBounds?: import("@kepler.gl/types").Bounds;
74
- initialState?: any;
75
- scale?: number;
76
- isSplit: boolean;
77
- splitMapViewports: import("@kepler.gl/types").Viewport[];
78
- }>;
1
+ export declare const mapStateReducerFactory: (initialState?: {}) => import("redux-actions").ReduxCompatibleReducer<import("@kepler.gl/types").MapState, import("@kepler.gl/types").MapState>;
2
+ declare const _default: import("redux-actions").ReduxCompatibleReducer<import("@kepler.gl/types").MapState, import("@kepler.gl/types").MapState>;
79
3
  export default _default;
@@ -65,9 +65,7 @@ export declare function getMapStyles({ styleType, visibleLayerGroups, topLayerGr
65
65
  editable?: undefined;
66
66
  } | {
67
67
  bottomMapStyle: any;
68
- topMapStyle: {
69
- layers: any;
70
- } | null;
68
+ topMapStyle: object | null;
71
69
  editable: number;
72
70
  };
73
71
  /**
@@ -11,7 +11,8 @@ export declare const DEFAULT_MODAL = "addData";
11
11
  * @property toggle3d Default: `{show: true}`
12
12
  * @property splitMap Default: `{show: true}`
13
13
  * @property mapDraw Default: `{show: true, active: false}`
14
- * @property mapLocale Default: `{show: false, active: false}`
14
+ * @property mapLocale Default: `{show: true, active: false}`
15
+ * @property mapTheme Default: `{show: true, active: false}`
15
16
  * @public
16
17
  */
17
18
  export declare const DEFAULT_MAP_CONTROLS: MapControls;
@@ -79,7 +80,7 @@ export declare const DEFAULT_EXPORT_MAP: ExportMap;
79
80
  * @property mediaType Default: `'webm'`
80
81
  * @property cameraPreset Default: `'None'`
81
82
  * @property fileName Default: `'kepler.gl'`
82
- * @property resolution Default: `''`
83
+ * @property resolution Default: `'1280x720'`
83
84
  * @property durationMs Default: `1000`
84
85
  * @public
85
86
  */
@@ -100,6 +101,8 @@ export declare const DEFAULT_EXPORT_VIDEO: ExportVideo;
100
101
  * @property notifications Default: `[]`
101
102
  * @property notifications Default: `[]`
102
103
  * @property loadFiles
104
+ * @property locale Default: `'en'`
105
+ * @property theme Default: `'dark'`
103
106
  * @property isSidePanelCloseButtonVisible Default: `true`
104
107
  * @public
105
108
  */
@@ -155,6 +158,7 @@ export declare const hideExportDropdownUpdater: (state: UiState) => UiState;
155
158
  * @public
156
159
  */
157
160
  export declare const toggleSidePanelCloseButtonUpdater: (state: UiState, { payload: { show } }: UIStateActions.ToggleSidePanelCloseButtonUpdaterAction) => UiState;
161
+ export declare const MUTUALLY_EXCLUSIVE_MAP_CONTROLS: string[];
158
162
  /**
159
163
  * Toggle active map control panel
160
164
  * @memberof uiStateUpdaters
@@ -381,6 +385,17 @@ export declare const showDatasetTableUpdater: (state: UiState) => UiState;
381
385
  * @public
382
386
  */
383
387
  export declare const setLocaleUpdater: (state: UiState, { payload: { locale } }: UIStateActions.SetLocaleUpdaterAction) => UiState;
388
+ /**
389
+ * Set the theme of the UI
390
+ * @memberof uiStateUpdaters
391
+ * @param state `uiState`
392
+ * @param action
393
+ * @param action.payload
394
+ * @param action.payload.theme theme
395
+ * @returns nextState
396
+ * @public
397
+ */
398
+ export declare const setThemeUpdater: (state: UiState, { payload: { theme } }: UIStateActions.SetThemeUpdaterAction) => UiState;
384
399
  /**
385
400
  * Toggle layer panel list view
386
401
  * @memberof uiStateUpdaters
@@ -38,6 +38,13 @@ export declare function insertLayerAtRightOrder(currentLayers: any, layersToInse
38
38
  newLayers: any;
39
39
  newLayerOrder: any;
40
40
  };
41
+ /**
42
+ * Merge saved layerOrder with current state to restore layer groups.
43
+ * Called after layers have been merged. If the saved config contains a layerOrder
44
+ * with groups, this replaces the flat layerOrder with the saved hierarchical one,
45
+ * filtering out any layer IDs that don't exist in the current state.
46
+ */
47
+ export declare function mergeLayerOrder<S extends VisState>(state: S, savedLayerOrder?: any[], fromConfig?: boolean): S;
41
48
  /**
42
49
  * Merge interactions with saved config
43
50
  *
@@ -4,16 +4,52 @@ interface LoaderInfo {
4
4
  }
5
5
  export declare const getFileFormatNames: ((state: {
6
6
  loaders: LoaderInfo[];
7
- }) => string[]) & import("reselect").OutputSelectorFields<(args_0: LoaderInfo[]) => string[], {
8
- clearCache: () => void;
9
- }> & {
7
+ }) => string[]) & {
10
8
  clearCache: () => void;
9
+ resultsCount: () => number;
10
+ resetResultsCount: () => void;
11
+ } & {
12
+ resultFunc: (resultFuncArgs_0: LoaderInfo[]) => string[];
13
+ memoizedResultFunc: ((resultFuncArgs_0: LoaderInfo[]) => string[]) & {
14
+ clearCache: () => void;
15
+ resultsCount: () => number;
16
+ resetResultsCount: () => void;
17
+ };
18
+ lastResult: () => string[];
19
+ dependencies: [(state: {
20
+ loaders: LoaderInfo[];
21
+ }) => LoaderInfo[]];
22
+ recomputations: () => number;
23
+ resetRecomputations: () => void;
24
+ dependencyRecomputations: () => number;
25
+ resetDependencyRecomputations: () => void;
26
+ } & {
27
+ argsMemoize: typeof import("reselect").weakMapMemoize;
28
+ memoize: typeof import("reselect").weakMapMemoize;
11
29
  };
12
30
  export declare const getFileExtensions: ((state: {
13
31
  loaders: LoaderInfo[];
14
- }) => string[]) & import("reselect").OutputSelectorFields<(args_0: LoaderInfo[]) => string[], {
15
- clearCache: () => void;
16
- }> & {
32
+ }) => string[]) & {
17
33
  clearCache: () => void;
34
+ resultsCount: () => number;
35
+ resetResultsCount: () => void;
36
+ } & {
37
+ resultFunc: (resultFuncArgs_0: LoaderInfo[]) => string[];
38
+ memoizedResultFunc: ((resultFuncArgs_0: LoaderInfo[]) => string[]) & {
39
+ clearCache: () => void;
40
+ resultsCount: () => number;
41
+ resetResultsCount: () => void;
42
+ };
43
+ lastResult: () => string[];
44
+ dependencies: [(state: {
45
+ loaders: LoaderInfo[];
46
+ }) => LoaderInfo[]];
47
+ recomputations: () => number;
48
+ resetRecomputations: () => void;
49
+ dependencyRecomputations: () => number;
50
+ resetDependencyRecomputations: () => void;
51
+ } & {
52
+ argsMemoize: typeof import("reselect").weakMapMemoize;
53
+ memoize: typeof import("reselect").weakMapMemoize;
18
54
  };
19
55
  export {};
@@ -191,7 +191,8 @@ export declare const setFilterViewUpdater: (state: VisState, action: VisStateAct
191
191
  layers: Layer[];
192
192
  layerData: any[];
193
193
  layerToBeMerged: any[];
194
- layerOrder: string[];
194
+ layerOrder: import("@kepler.gl/types").LayerOrder;
195
+ layerOrderToBeMerged: any[] | null;
195
196
  effects: import("@kepler.gl/types").Effect[];
196
197
  effectOrder: string[];
197
198
  annotations: Annotation[];
@@ -258,6 +259,42 @@ export declare function removeLayerUpdater<T extends VisState>(state: T, { id }:
258
259
  * @public
259
260
  */
260
261
  export declare const reorderLayerUpdater: (state: VisState, { order }: VisStateActions.ReorderLayerUpdaterAction) => VisState;
262
+ /**
263
+ * Add a new layer group
264
+ * @memberof visStateUpdaters
265
+ * @public
266
+ */
267
+ export declare const addLayerGroupUpdater: (state: VisState, action: VisStateActions.AddLayerGroupUpdaterAction) => VisState;
268
+ /**
269
+ * Remove a layer group and all layers within it
270
+ * @memberof visStateUpdaters
271
+ * @public
272
+ */
273
+ export declare const removeLayerGroupUpdater: (state: VisState, action: VisStateActions.RemoveLayerGroupUpdaterAction) => VisState;
274
+ /**
275
+ * Update a layer group (label, visibility, layer membership)
276
+ * @memberof visStateUpdaters
277
+ * @public
278
+ */
279
+ export declare const updateLayerGroupUpdater: (state: VisState, action: VisStateActions.UpdateLayerGroupUpdaterAction) => VisState;
280
+ /**
281
+ * Add a layer to a layer group
282
+ * @memberof visStateUpdaters
283
+ * @public
284
+ */
285
+ export declare const addLayerToLayerGroupUpdater: (state: VisState, action: VisStateActions.AddLayerToLayerGroupUpdaterAction) => VisState;
286
+ /**
287
+ * Remove a layer from a layer group
288
+ * @memberof visStateUpdaters
289
+ * @public
290
+ */
291
+ export declare const removeLayerFromLayerGroupUpdater: (state: VisState, action: VisStateActions.RemoveLayerFromLayerGroupUpdaterAction) => VisState;
292
+ /**
293
+ * Swap layer order entries between root and groups
294
+ * @memberof visStateUpdaters
295
+ * @public
296
+ */
297
+ export declare const swapLayerOrderEntriesUpdater: (state: VisState, action: VisStateActions.SwapLayerOrderEntriesUpdaterAction) => VisState;
261
298
  /**
262
299
  * duplicate layer
263
300
  * @memberof visStateUpdaters
@@ -405,6 +442,45 @@ export declare const toggleSplitMapUpdater: (state: VisState, action: MapStateAc
405
442
  * @public
406
443
  */
407
444
  export declare const toggleLayerForMapUpdater: (state: VisState, { mapIndex, layerId }: VisStateActions.ToggleLayerForMapUpdaterAction) => VisState;
445
+ /**
446
+ * Re-fetch an externally hosted dataset and replace its table contents in place.
447
+ * Layers and filters are kept when field names match.
448
+ * @memberof visStateUpdaters
449
+ * @public
450
+ */
451
+ export declare function refreshDatasetUpdater(state: VisState, { dataId }: VisStateActions.RefreshDatasetUpdaterAction): VisState;
452
+ /**
453
+ * Record download progress for an in-flight remote dataset refresh.
454
+ * @memberof visStateUpdaters
455
+ * @public
456
+ */
457
+ export declare function refreshDatasetProgressUpdater(state: VisState, { dataId, percent }: VisStateActions.RefreshDatasetProgressUpdaterAction): VisState;
458
+ /**
459
+ * Apply a finished remote refresh: keep layers, re-run filters and layer data.
460
+ * @memberof visStateUpdaters
461
+ * @public
462
+ */
463
+ export declare function refreshDatasetSuccessUpdater(state: VisState, { dataId, result }: VisStateActions.RefreshDatasetSuccessUpdaterAction): VisState;
464
+ /**
465
+ * Append or upsert rows on an existing in-memory row dataset. Keeps layers and re-runs filters.
466
+ * Arrow/DuckDB tables warn and are left unchanged (INSERT / concat not implemented).
467
+ * @memberof visStateUpdaters
468
+ * @public
469
+ */
470
+ export declare function addToDatasetUpdater(state: VisState, { dataId, rows, options }: VisStateActions.AddToDatasetUpdaterAction): VisState;
471
+ /**
472
+ * Delete rows by index or by field values from an existing in-memory row dataset.
473
+ * Keeps layers. Arrow/DuckDB tables warn and are left unchanged.
474
+ * @memberof visStateUpdaters
475
+ * @public
476
+ */
477
+ export declare function removeFromDatasetUpdater(state: VisState, { dataId, rowIndexes, byField }: VisStateActions.RemoveFromDatasetUpdaterAction): VisState;
478
+ /**
479
+ * Record a failed remote dataset refresh without dropping existing rows.
480
+ * @memberof visStateUpdaters
481
+ * @public
482
+ */
483
+ export declare function refreshDatasetErrorUpdater(state: VisState, { dataId, error }: VisStateActions.RefreshDatasetErrorUpdaterAction): VisState;
408
484
  /**
409
485
  * Add new dataset to `visState`, with option to load a map config along with the datasets
410
486
  * @memberof visStateUpdaters
@@ -431,6 +507,25 @@ export declare function renameDatasetUpdater(state: VisState, action: VisStateAc
431
507
  * @public
432
508
  */
433
509
  export declare function updateDatasetPropsUpdater(state: VisState, action: VisStateActions.UpdateDatasetPropsUpdaterAction): VisState;
510
+ /**
511
+ * Update an existing dataset's schema (columns/fields) in place and reconcile
512
+ * everything that referenced the old columns: filters, layers, tooltip fields,
513
+ * pinned columns and sort state. The dataset keeps its id/label/color/metadata.
514
+ *
515
+ * `action.data` is the same shape `KeplerTable.importData` accepts (`{cols,
516
+ * fields, arrowTable}` when replacing columns). `action.renames` is an optional
517
+ * old → new column-name map so layers/filters/tooltips follow a rename instead
518
+ * of treating the old column as removed.
519
+ *
520
+ * Reconciliation is name-based — the same way kepler.gl loads a saved config
521
+ * against changed data. A layer whose required column is gone is removed; a
522
+ * filter on a gone column is dropped (or the dataset is spliced out of a synced
523
+ * filter); tooltip fields are remapped / dropped.
524
+ *
525
+ * @memberof visStateUpdaters
526
+ * @public
527
+ */
528
+ export declare function updateDatasetUpdater(state: VisState, action: VisStateActions.UpdateDatasetUpdaterAction): VisState;
434
529
  /**
435
530
  * When a user clicks on the specific map closing icon
436
531
  * the application will close the selected map
@@ -536,6 +631,11 @@ export declare const setEditorModeUpdater: (state: VisState, { mode }: VisStateA
536
631
  * @memberof visStateUpdaters
537
632
  */
538
633
  export declare function setFeaturesUpdater(state: VisState, { features }: VisStateActions.SetFeaturesUpdaterAction): VisState;
634
+ /**
635
+ * Set user-facing GeoJSON properties on a sketch or polygon-filter feature.
636
+ * @memberof visStateUpdaters
637
+ */
638
+ export declare function setEditorFeaturePropertiesUpdater(state: VisState, { feature, properties }: VisStateActions.SetEditorFeaturePropertiesUpdaterAction): VisState;
539
639
  /**
540
640
  * Set the current selected feature
541
641
  * @memberof uiStateUpdaters
@@ -578,10 +678,32 @@ export declare function copyTableColumnUpdater(state: VisState, { dataId, column
578
678
  * @public
579
679
  */
580
680
  export declare function setColumnDisplayFormatUpdater(state: VisState, { dataId, formats }: VisStateActions.SetColumnDisplayFormatUpdaterAction): VisState;
681
+ /**
682
+ * Start loading column statistics for one or more fields.
683
+ * @memberof visStateUpdaters
684
+ * @public
685
+ */
686
+ export declare function loadColumnStatsUpdater(state: VisState, { dataId, fieldName }: VisStateActions.LoadColumnStatsUpdaterAction): VisState;
687
+ /**
688
+ * Persist loaded column statistics on the field.
689
+ * @memberof visStateUpdaters
690
+ * @public
691
+ */
692
+ export declare function loadColumnStatsSuccessUpdater(state: VisState, { result, filterProps, dataId, fieldName }: VisStateActions.LoadColumnStatsSuccessUpdaterAction): VisState;
693
+ /**
694
+ * Clear loading flag when column statistics fail.
695
+ * @memberof visStateUpdaters
696
+ * @public
697
+ */
698
+ export declare function loadColumnStatsErrorUpdater(state: VisState, { error, dataId, fieldName }: VisStateActions.LoadColumnStatsErrorUpdaterAction): VisState;
581
699
  /**
582
700
  * Update editor
583
701
  */
584
702
  export declare function toggleEditorVisibilityUpdater(state: VisState, action: VisStateActions.ToggleEditorVisibilityUpdaterAction): VisState;
703
+ /**
704
+ * Convert editor sketch features into a GeoJSON dataset/layer and clear the sketches.
705
+ */
706
+ export declare function convertEditorFeaturesToLayerUpdater(state: VisState, _action: VisStateActions.ConvertEditorFeaturesToLayerUpdaterAction): VisState;
585
707
  export declare function setFilterAnimationTimeConfigUpdater(state: VisState, { idx, config }: VisStateActions.SetFilterAnimationTimeConfigAction): VisState;
586
708
  /**
587
709
  * Update editor