@kepler.gl/reducers 3.3.0-alpha.0 → 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 +30 -5
  53. package/dist/map-state-updaters.d.ts +27 -20
  54. package/dist/map-state.d.ts +2 -74
  55. package/dist/map-style-updaters.d.ts +1 -3
  56. package/dist/ui-state-updaters.d.ts +53 -3
  57. package/dist/vis-state-merger.d.ts +11 -0
  58. package/dist/vis-state-selectors.d.ts +42 -6
  59. package/dist/vis-state-updaters.d.ts +163 -2
  60. package/dist/vis-state.d.ts +24 -4
  61. package/package.json +43 -35
  62. package/dist/combined-updaters.js +0 -366
  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 -335
  70. package/dist/map-state-updaters.js +0 -436
  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 -803
  80. package/dist/ui-state.js +0 -37
  81. package/dist/vis-state-merger.js +0 -990
  82. package/dist/vis-state-selectors.js +0 -30
  83. package/dist/vis-state-updaters.js +0 -3611
  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, 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
  };
@@ -30,6 +30,12 @@ export type LayerHoverProp = {
30
30
  * Find default layers from fields
31
31
  */
32
32
  export declare function findDefaultLayer(dataset: KeplerTable, layerClasses: LayerClassesType): Layer[];
33
+ /**
34
+ * Applies `patch` to `config.visConfig` only for layers whose `dataId` is in `datasetIdsToPatch`.
35
+ * Layers for datasets that were already on the map are left unchanged — `addDataToMap`
36
+ * Keys whose patch value is `undefined` are skipped so existing visConfig is not cleared.
37
+ */
38
+ export declare function mergeLayerVisConfigForNewDatasets(state: VisState, patch: Partial<LayerVisConfig> | undefined, datasetIdsToPatch: string[]): VisState;
33
39
  type MinVisStateForLayerData = {
34
40
  datasets: VisState['datasets'];
35
41
  animationConfig: VisState['animationConfig'];
@@ -79,6 +85,7 @@ export type ComputeDeckLayersProps = {
79
85
  editorMenuActive: boolean;
80
86
  onSetFeatures: (features: Feature[]) => any;
81
87
  setSelectedFeature: (feature: Feature | null, selectionContext?: FeatureSelectionContext) => any;
88
+ onApplyPolygonFilterAll?: (feature: Feature) => any;
82
89
  featureCollection: {
83
90
  type: string;
84
91
  features: Feature[];
@@ -92,9 +99,27 @@ export declare function computeDeckLayers({ visState, mapState, mapStyle }: any,
92
99
  export declare function getLayerOrderFromLayers<T extends {
93
100
  id: string;
94
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;
95
120
  export declare function reorderLayerOrder(layerOrder: VisState['layerOrder'], originLayerId: string, destinationLayerId: string): VisState['layerOrder'];
96
- export declare function addLayerToLayerOrder(layerOrder: VisState['layerOrder'], layerId: string): string[];
97
- 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;
98
123
  /** Checks if any Deck layers are in the process of loading. */
99
124
  export declare function areAnyDeckLayersLoading(layers: DeckLayer[]): boolean;
100
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
@@ -14,6 +14,7 @@ import { MapState, Bounds, Viewport } from '@kepler.gl/types';
14
14
  * @property height Default: `800`
15
15
  * @property minZoom: `undefined`,
16
16
  * @property maxZoom: `undefined`,
17
+ * @property maxPitch: `undefined` (defaults to application config value, deck.gl default is 60)
17
18
  * @property maxBounds: `undefined`,
18
19
  * @property isSplit: `false`,
19
20
  * @property isViewportSynced: `true`,
@@ -40,6 +41,18 @@ export declare const fitBoundsUpdater: (state: MapState, action: MapStateActions
40
41
  * @public
41
42
  */
42
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;
43
56
  /**
44
57
  * reset mapState to initial State
45
58
  * @memberof mapStateUpdaters
@@ -61,30 +74,24 @@ export declare const receiveMapConfigUpdater: (state: MapState, { payload: { con
61
74
  * @public
62
75
  */
63
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;
64
89
  /**
65
90
  * Toggle between locked and unlocked split viewports
66
91
  * @memberof mapStateUpdaters
67
92
  * @public
68
93
  */
69
- export declare const toggleSplitMapViewportUpdater: (state: MapState, action: MapStateActions.ToggleSplitMapViewportUpdaterAction) => {
70
- isViewportSynced: boolean;
71
- isZoomLocked: boolean;
72
- pitch: number;
73
- bearing: number;
74
- latitude: number;
75
- longitude: number;
76
- zoom: number;
77
- dragRotate: boolean;
78
- width: number;
79
- height: number;
80
- minZoom?: number;
81
- maxZoom?: number;
82
- maxBounds?: Bounds;
83
- initialState?: any;
84
- scale?: number;
85
- isSplit: boolean;
86
- splitMapViewports: Viewport[];
87
- };
94
+ export declare const toggleSplitMapViewportUpdater: (state: MapState, action: MapStateActions.ToggleSplitMapViewportUpdaterAction) => MapState;
88
95
  export declare function getMapDimForSplitMap(isSplit: any, state: any): {
89
96
  width?: undefined;
90
97
  } | {
@@ -1,75 +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
- maxBounds?: import("@kepler.gl/types").Bounds;
15
- initialState?: any;
16
- scale?: number;
17
- isSplit: boolean;
18
- splitMapViewports: import("@kepler.gl/types").Viewport[];
19
- }, {
20
- isViewportSynced: boolean;
21
- isZoomLocked: boolean;
22
- pitch: number;
23
- bearing: number;
24
- latitude: number;
25
- longitude: number;
26
- zoom: number;
27
- dragRotate: boolean;
28
- width: number;
29
- height: number;
30
- minZoom?: number;
31
- maxZoom?: number;
32
- maxBounds?: import("@kepler.gl/types").Bounds;
33
- initialState?: any;
34
- scale?: number;
35
- isSplit: boolean;
36
- splitMapViewports: import("@kepler.gl/types").Viewport[];
37
- }>;
38
- declare const _default: import("redux-actions").ReduxCompatibleReducer<{
39
- isViewportSynced: boolean;
40
- isZoomLocked: boolean;
41
- pitch: number;
42
- bearing: number;
43
- latitude: number;
44
- longitude: number;
45
- zoom: number;
46
- dragRotate: boolean;
47
- width: number;
48
- height: number;
49
- minZoom?: number;
50
- maxZoom?: number;
51
- maxBounds?: import("@kepler.gl/types").Bounds;
52
- initialState?: any;
53
- scale?: number;
54
- isSplit: boolean;
55
- splitMapViewports: import("@kepler.gl/types").Viewport[];
56
- }, {
57
- isViewportSynced: boolean;
58
- isZoomLocked: boolean;
59
- pitch: number;
60
- bearing: number;
61
- latitude: number;
62
- longitude: number;
63
- zoom: number;
64
- dragRotate: boolean;
65
- width: number;
66
- height: number;
67
- minZoom?: number;
68
- maxZoom?: number;
69
- maxBounds?: import("@kepler.gl/types").Bounds;
70
- initialState?: any;
71
- scale?: number;
72
- isSplit: boolean;
73
- splitMapViewports: import("@kepler.gl/types").Viewport[];
74
- }>;
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>;
75
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
  /**
@@ -1,5 +1,5 @@
1
- import { ActionTypes, KeplerGlInitPayload, LoadFilesErrUpdaterAction, UIStateActions } from '@kepler.gl/actions';
2
- import { ExportData, ExportHtml, ExportJson, ExportMap, ExportImage, MapControls, UiState } from '@kepler.gl/types';
1
+ import { ActionTypes, KeplerGlInitPayload, LoadFilesErrUpdaterAction, ReceiveMapConfigPayload, UIStateActions } from '@kepler.gl/actions';
2
+ import { ExportData, ExportHtml, ExportJson, ExportMap, ExportImage, ExportVideo, MapControls, UiState } from '@kepler.gl/types';
3
3
  export declare const DEFAULT_ACTIVE_SIDE_PANEL = "layer";
4
4
  export declare const DEFAULT_MODAL = "addData";
5
5
  /**
@@ -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;
@@ -72,6 +73,18 @@ export declare const DEFAULT_EXPORT_JSON: ExportJson;
72
73
  * @public
73
74
  */
74
75
  export declare const DEFAULT_EXPORT_MAP: ExportMap;
76
+ /**
77
+ * Default initial `exportVideo` settings
78
+ * @memberof uiStateUpdaters
79
+ * @constant
80
+ * @property mediaType Default: `'webm'`
81
+ * @property cameraPreset Default: `'None'`
82
+ * @property fileName Default: `'kepler.gl'`
83
+ * @property resolution Default: `'1280x720'`
84
+ * @property durationMs Default: `1000`
85
+ * @public
86
+ */
87
+ export declare const DEFAULT_EXPORT_VIDEO: ExportVideo;
75
88
  /**
76
89
  * Default initial `uiState`
77
90
  * @memberof uiStateUpdaters
@@ -88,6 +101,8 @@ export declare const DEFAULT_EXPORT_MAP: ExportMap;
88
101
  * @property notifications Default: `[]`
89
102
  * @property notifications Default: `[]`
90
103
  * @property loadFiles
104
+ * @property locale Default: `'en'`
105
+ * @property theme Default: `'dark'`
91
106
  * @property isSidePanelCloseButtonVisible Default: `true`
92
107
  * @public
93
108
  */
@@ -143,6 +158,7 @@ export declare const hideExportDropdownUpdater: (state: UiState) => UiState;
143
158
  * @public
144
159
  */
145
160
  export declare const toggleSidePanelCloseButtonUpdater: (state: UiState, { payload: { show } }: UIStateActions.ToggleSidePanelCloseButtonUpdaterAction) => UiState;
161
+ export declare const MUTUALLY_EXCLUSIVE_MAP_CONTROLS: string[];
146
162
  /**
147
163
  * Toggle active map control panel
148
164
  * @memberof uiStateUpdaters
@@ -212,6 +228,16 @@ export declare const setExportImageErrorUpdater: (state: UiState, { payload: err
212
228
  * @public
213
229
  */
214
230
  export declare const cleanupExportImageUpdater: (state: UiState) => UiState;
231
+ /**
232
+ * Set `exportVideo` settings: mediaType, cameraPreset, fileName, resolution, durationMs
233
+ * @memberof uiStateUpdaters
234
+ * @param state `uiState`
235
+ * @param action
236
+ * @param action.payload new video export settings
237
+ * @returns nextState
238
+ * @public
239
+ */
240
+ export declare const setExportVideoSettingUpdater: (state: UiState, { payload: newSetting }: UIStateActions.SetExportVideoSettingUpdaterAction) => UiState;
215
241
  /**
216
242
  * Start image exporting flow
217
243
  * @memberof uiStateUpdaters
@@ -359,6 +385,17 @@ export declare const showDatasetTableUpdater: (state: UiState) => UiState;
359
385
  * @public
360
386
  */
361
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;
362
399
  /**
363
400
  * Toggle layer panel list view
364
401
  * @memberof uiStateUpdaters
@@ -369,3 +406,16 @@ export declare const setLocaleUpdater: (state: UiState, { payload: { locale } }:
369
406
  * @public
370
407
  */
371
408
  export declare const togglePanelListViewUpdater: (state: UiState, { payload: { panelId, listView } }: UIStateActions.TogglePanelListViewAction) => UiState;
409
+ /**
410
+ * Merge received ui state config when loading a saved map
411
+ * @memberof uiStateUpdaters
412
+ * @param state `uiState`
413
+ * @param action
414
+ * @param action.payload saved map config `{mapStyle, visState, mapState, uiState}`
415
+ * @returns nextState
416
+ * @public
417
+ */
418
+ export declare const receiveMapConfigUpdater: (state: UiState, { payload: { config } }: {
419
+ type?: (typeof ActionTypes)["RECEIVE_MAP_CONFIG"];
420
+ payload: ReceiveMapConfigPayload;
421
+ }) => UiState;
@@ -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
  *
@@ -55,6 +62,10 @@ export declare function mergeSplitMaps<S extends VisState>(state: S, splitMaps?:
55
62
  * Merge effects with saved config
56
63
  */
57
64
  export declare function mergeEffects<S extends VisState>(state: S, effects: NonNullable<ParsedConfig['visState']>['effects'], fromConfig?: boolean): S;
65
+ /**
66
+ * Merge annotations with saved config
67
+ */
68
+ export declare function mergeAnnotations<S extends VisState>(state: S, annotations: any[]): S;
58
69
  /**
59
70
  * Merge interactionConfig.tooltip with saved config,
60
71
  * validate fieldsToShow
@@ -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 {};