diff --git a/examples/demo-app/src/cloud-providers/carto/carto-provider.js b/examples/demo-app/src/cloud-providers/carto/carto-provider.js index 8d78b02f92..c414bf52c1 100644 --- a/examples/demo-app/src/cloud-providers/carto/carto-provider.js +++ b/examples/demo-app/src/cloud-providers/carto/carto-provider.js @@ -22,8 +22,8 @@ import {OAuthApp} from '@carto/toolkit'; import Console from 'global/console'; import CartoIcon from './carto-icon'; import {Provider} from '@kepler.gl/cloud-providers'; -import {createDataContainer} from 'kepler.gl/reducers/table-utils'; -import {formatCsv} from 'kepler.gl/reducers'; +import {createDataContainer} from '@kepler.gl/table'; +import {formatCsv} from 'reducers'; const NAME = 'carto'; const DISPLAY_NAME = 'CARTO'; diff --git a/package.json b/package.json index 8fa9fe1454..20a3bcf9f5 100644 --- a/package.json +++ b/package.json @@ -24,6 +24,7 @@ "./src/middleware", "./src/deckgl-layers", "./src/layers", + "./src/table", "./src/cloud-providers", "./src/processors", "./src/tasks", @@ -248,7 +249,6 @@ "@testing-library/react-hooks": "^3.4.2", "@types/d3-array": "^2.0.0", "@types/d3-scale": "^3.2.2", - "@types/lodash.debounce": "^4.0.6", "@types/geojson": "^7946.0.7", "@types/redux-actions": "^2.6.2", "@types/supercluster": "^7.1.0", diff --git a/src/components/bottom-widget.tsx b/src/components/bottom-widget.tsx index 40223801f8..374faaae31 100644 --- a/src/components/bottom-widget.tsx +++ b/src/components/bottom-widget.tsx @@ -24,7 +24,7 @@ import TimeWidgetFactory from './filters/time-widget'; import AnimationControlFactory from './common/animation-control/animation-control'; import AnimationControllerFactory from './common/animation-control/animation-controller'; import {ANIMATION_WINDOW, DIMENSIONS, FILTER_TYPES} from '@kepler.gl/constants'; -import {getIntervalBins} from 'reducers/filter-utils'; +import {getIntervalBins} from '@kepler.gl/utils'; import {media} from '@kepler.gl/styles'; import {AnimationConfig, TimeRangeFilter} from '@kepler.gl/types'; import {bottomWidgetSelector} from './kepler-gl'; diff --git a/src/components/common/color-legend.tsx b/src/components/common/color-legend.tsx index 9ce05b9802..4cb47b2d09 100644 --- a/src/components/common/color-legend.tsx +++ b/src/components/common/color-legend.tsx @@ -24,7 +24,7 @@ import {createSelector} from 'reselect'; import {format} from 'd3-format'; import moment from 'moment'; import {SCALE_TYPES, SCALE_FUNC, ALL_FIELD_TYPES} from '@kepler.gl/constants'; -import {getTimeWidgetHintFormatter} from 'reducers/filter-utils'; +import {getTimeWidgetHintFormatter} from '@kepler.gl/utils'; const ROW_H = 10; const GAP = 4; diff --git a/src/components/common/data-table/cell-size.ts b/src/components/common/data-table/cell-size.ts index 24974842a2..5a40ec73f7 100644 --- a/src/components/common/data-table/cell-size.ts +++ b/src/components/common/data-table/cell-size.ts @@ -19,7 +19,7 @@ // THE SOFTWARE. import document from 'global/document'; -import {DataContainerInterface} from 'reducers/table-utils'; +import {DataContainerInterface} from '@kepler.gl/table'; import {parseFieldValue} from '@kepler.gl/utils'; const MIN_GHOST_CELL_SIZE: number = 200; diff --git a/src/components/common/data-table/index.tsx b/src/components/common/data-table/index.tsx index 9d066a9804..b6d4154c9d 100644 --- a/src/components/common/data-table/index.tsx +++ b/src/components/common/data-table/index.tsx @@ -38,7 +38,7 @@ import {adjustCellsToContainer} from './cell-size'; import {ALL_FIELD_TYPES, SORT_ORDER} from '@kepler.gl/constants'; import FieldTokenFactory from 'components/common/field-token'; -import {DataContainerInterface} from 'reducers/table-utils/data-container-interface'; +import {DataContainerInterface} from '@kepler.gl/table'; const defaultHeaderRowHeight = 55; const defaultRowHeight = 32; diff --git a/src/components/common/image-preview.tsx b/src/components/common/image-preview.tsx index 9c4677b9ab..00367fd178 100644 --- a/src/components/common/image-preview.tsx +++ b/src/components/common/image-preview.tsx @@ -23,8 +23,6 @@ import styled from 'styled-components'; import LoadingSpinner from 'components/common/loading-spinner'; import {ExportImage} from '@kepler.gl/constants'; -/** @typedef {import('reducers/ui-state-updaters').ExportImage} ExportImage */ - const StyledImagePreview = styled.div.attrs({ className: 'image-preview' })` diff --git a/src/components/container.tsx b/src/components/container.tsx index 8c0981ee21..6e8626bd9c 100644 --- a/src/components/container.tsx +++ b/src/components/container.tsx @@ -27,7 +27,7 @@ import KeplerGlFactory from './kepler-gl'; import {registerEntry, deleteEntry, renameEntry, forwardTo} from '@kepler.gl/actions'; import {notNullorUndefined} from '@kepler.gl/utils'; -import {KeplerGlState} from 'reducers/core'; +import {KeplerGlState} from 'reducers'; export const ERROR_MSG = { noState: diff --git a/src/components/editor/editor.tsx b/src/components/editor/editor.tsx index e8ff1f1651..975c1a5f7d 100644 --- a/src/components/editor/editor.tsx +++ b/src/components/editor/editor.tsx @@ -35,7 +35,7 @@ import {getStyle as getEditHandleStyle, getEditHandleShape} from './handle-style import {Filter} from '@kepler.gl/types'; import {Feature} from '@nebula.gl/edit-modes'; import {MjolnirEvent} from 'mjolnir.js'; -import {Datasets} from 'reducers/table-utils/kepler-table'; +import {Datasets} from '@kepler.gl/table'; const StyledWrapper = styled.div` cursor: ${(props: {editor: {mode: string}}) => diff --git a/src/components/editor/feature-action-panel.tsx b/src/components/editor/feature-action-panel.tsx index 84f7332c84..6d7460d8fc 100644 --- a/src/components/editor/feature-action-panel.tsx +++ b/src/components/editor/feature-action-panel.tsx @@ -30,7 +30,7 @@ import copy from 'copy-to-clipboard'; import {Layer} from '@kepler.gl/layers'; import {Filter} from '@kepler.gl/types'; import {Feature} from '@nebula.gl/edit-modes'; -import {Datasets} from 'reducers/table-utils/kepler-table'; +import {Datasets} from '@kepler.gl/table'; const LAYOVER_OFFSET = 4; diff --git a/src/components/filters/filter-panels/filter-panel-with-field-select.tsx b/src/components/filters/filter-panels/filter-panel-with-field-select.tsx index 80259bdf07..9e38e5f6e2 100644 --- a/src/components/filters/filter-panels/filter-panel-with-field-select.tsx +++ b/src/components/filters/filter-panels/filter-panel-with-field-select.tsx @@ -26,7 +26,7 @@ import SourceDataSelectorFactory from 'components/side-panel/common/source-data- import FieldSelectorFactory from '../../common/field-selector'; import {getSupportedFilterFields} from './new-filter-panel'; import {FilterPanelWithFieldSelectComponent} from './types'; -import KeplerTable from 'reducers/table-utils/kepler-table'; +import {KeplerTable} from '@kepler.gl/table'; FieldPanelWithFieldSelectFactory.deps = [ FilterPanelHeaderFactory, diff --git a/src/components/filters/filter-panels/new-filter-panel.tsx b/src/components/filters/filter-panels/new-filter-panel.tsx index 18a75441a3..8a69ba49b6 100644 --- a/src/components/filters/filter-panels/new-filter-panel.tsx +++ b/src/components/filters/filter-panels/new-filter-panel.tsx @@ -24,7 +24,7 @@ import FilterPanelHeaderFactory from 'components/side-panel/filter-panel/filter- import SourceDataSelectorFactory from 'components/side-panel/common/source-data-selector'; import FieldSelectorFactory from '../../common/field-selector'; import {FilterPanelComponent} from './types'; -import KeplerTable from 'reducers/table-utils/kepler-table'; +import {KeplerTable} from '@kepler.gl/table'; import {Field, FilterBase, LineChart} from '@kepler.gl/types'; NewFilterPanelFactory.deps = [ diff --git a/src/components/filters/filter-panels/polygon-filter-panel.tsx b/src/components/filters/filter-panels/polygon-filter-panel.tsx index 4858ac1bf8..12e175f47f 100644 --- a/src/components/filters/filter-panels/polygon-filter-panel.tsx +++ b/src/components/filters/filter-panels/polygon-filter-panel.tsx @@ -29,7 +29,7 @@ import {StyledFilterPanel} from '../components'; import get from 'lodash.get'; import {PolygonFilterPanelComponent} from './types'; -import KeplerTable from 'reducers/table-utils/kepler-table'; +import {KeplerTable} from '@kepler.gl/table'; PolygonFilterPanelFactory.deps = [ FilterPanelHeaderFactory, diff --git a/src/components/filters/filter-panels/types.ts b/src/components/filters/filter-panels/types.ts index 9e17af7bd3..e180100faf 100644 --- a/src/components/filters/filter-panels/types.ts +++ b/src/components/filters/filter-panels/types.ts @@ -1,7 +1,7 @@ import {FunctionComponent, ComponentType} from 'react'; import {Filter, PolygonFilter, TimeRangeFilter, Field} from '@kepler.gl/types'; import {Layer} from '@kepler.gl/layers'; -import {Datasets} from 'reducers/table-utils/kepler-table'; +import {Datasets} from '@kepler.gl/table'; interface PanelAction { id: string; diff --git a/src/components/filters/types.ts b/src/components/filters/types.ts index 7e36e6dba0..1300281777 100644 --- a/src/components/filters/types.ts +++ b/src/components/filters/types.ts @@ -15,7 +15,7 @@ import { toggleFilterAnimation, updateFilterAnimationSpeed } from '@kepler.gl/actions'; -import {Datasets} from 'reducers/table-utils/kepler-table'; +import {Datasets} from '@kepler.gl/table'; export type PolygonFilterProps = { filter: Filter; diff --git a/src/components/kepler-gl.tsx b/src/components/kepler-gl.tsx index d83081c6e7..a01152f892 100644 --- a/src/components/kepler-gl.tsx +++ b/src/components/kepler-gl.tsx @@ -74,7 +74,7 @@ import { } from '@kepler.gl/utils'; import {theme as basicTheme, themeLT, themeBS} from '@kepler.gl/styles'; -import {KeplerGlState} from 'reducers/core'; +import {KeplerGlState} from 'reducers'; import {Provider} from 'cloud-providers'; // Maybe we should think about exporting this or creating a variable diff --git a/src/components/map-container.tsx b/src/components/map-container.tsx index e923a038ce..7be7a67840 100644 --- a/src/components/map-container.tsx +++ b/src/components/map-container.tsx @@ -68,7 +68,7 @@ import {LOCALE_CODES} from '@kepler.gl/localization'; import {getMapLayersFromSplitMaps, onViewPortChange} from '@kepler.gl/utils'; import {MapView} from '@deck.gl/core'; import {MapStyle} from 'reducers'; -import {Datasets} from 'reducers/table-utils'; +import {Datasets} from '@kepler.gl/table'; import { computeDeckLayers, getLayerHoverProp, diff --git a/src/components/map/map-control.tsx b/src/components/map/map-control.tsx index b360219eb3..c03f83e665 100644 --- a/src/components/map/map-control.tsx +++ b/src/components/map/map-control.tsx @@ -31,7 +31,7 @@ import MapDrawPanelFactory from './map-draw-panel'; import LocalePanelFactory from './locale-panel'; import {Layer} from '@kepler.gl/layers'; import {Editor, MapControls} from '@kepler.gl/types'; -import {Datasets} from 'reducers/table-utils/kepler-table'; +import {Datasets} from '@kepler.gl/table'; interface StyledMapControlProps { top?: number; diff --git a/src/components/modal-container.tsx b/src/components/modal-container.tsx index d2bb9e5fdc..122da5cfd5 100644 --- a/src/components/modal-container.tsx +++ b/src/components/modal-container.tsx @@ -27,7 +27,7 @@ import document from 'global/document'; import {EXPORT_DATA_TYPE_OPTIONS, EXPORT_MAP_FORMATS} from '@kepler.gl/constants'; import ModalDialogFactory from './modals/modal-dialog'; import {exportHtml, isValidMapInfo, exportMap, exportJson} from '@kepler.gl/utils'; -import {exportData} from 'reducers/export-utils'; +import {exportData, getFileFormatNames, getFileExtensions, MapStyle, ProviderState} from 'reducers'; // modals import DeleteDatasetModalFactory from './modals/delete-data-modal'; @@ -59,10 +59,7 @@ import { OVERWRITE_MAP_ID } from '@kepler.gl/constants'; -import {getFileFormatNames, getFileExtensions} from 'reducers/vis-state-selectors'; -import {MapStyle} from 'reducers'; -import {MapState, UiState, OnErrorCallBack, OnSuccessCallBack} from '@kepler.gl/types'; -import {ProviderState} from 'reducers/provider-state-updaters'; +import {MapState, UiState, OnSuccessCallBack, OnErrorCallBack} from '@kepler.gl/types'; import { VisStateActions, diff --git a/src/components/modals/data-table-modal.tsx b/src/components/modals/data-table-modal.tsx index 383c9ce383..32cf50f06b 100644 --- a/src/components/modals/data-table-modal.tsx +++ b/src/components/modals/data-table-modal.tsx @@ -25,7 +25,7 @@ import DataTableFactory from 'components/common/data-table'; import {createSelector} from 'reselect'; import {renderedSize} from 'components/common/data-table/cell-size'; import CanvasHack from 'components/common/data-table/canvas'; -import KeplerTable, {Datasets} from 'reducers/table-utils/kepler-table'; +import KeplerTable, {Datasets} from '@kepler.gl/table'; const dgSettings = { sidePadding: '38px', diff --git a/src/components/modals/delete-data-modal.tsx b/src/components/modals/delete-data-modal.tsx index bbc44de5b3..9ea55ff461 100644 --- a/src/components/modals/delete-data-modal.tsx +++ b/src/components/modals/delete-data-modal.tsx @@ -23,7 +23,7 @@ import styled from 'styled-components'; import DatasetLabel from 'components/common/dataset-label'; import {FormattedMessage} from '@kepler.gl/localization'; import {Layer} from '@kepler.gl/layers'; -import {KeplerTable} from 'reducers/table-utils'; +import {KeplerTable} from '@kepler.gl/table'; const StyledMsg = styled.div` margin-top: 24px; diff --git a/src/components/modals/export-data-modal.tsx b/src/components/modals/export-data-modal.tsx index 4f67fcf39f..e833296427 100644 --- a/src/components/modals/export-data-modal.tsx +++ b/src/components/modals/export-data-modal.tsx @@ -31,7 +31,7 @@ import { } from 'components/common/styled-components'; import {injectIntl, IntlShape} from 'react-intl'; import {FormattedMessage} from '@kepler.gl/localization'; -import {Datasets} from 'reducers/table-utils'; +import {Datasets} from '@kepler.gl/table'; const getDataRowCount = ( datasets: Datasets, diff --git a/src/components/plot-container.tsx b/src/components/plot-container.tsx index 5e7200dabc..6f8e2ab0a8 100644 --- a/src/components/plot-container.tsx +++ b/src/components/plot-container.tsx @@ -31,7 +31,7 @@ import { convertToPng, getScaleFromImageSize } from '@kepler.gl/utils'; -import {findMapBounds} from 'reducers/data-utils'; +import {findMapBounds} from 'reducers'; import MapContainerFactory from './map-container'; import MapsLayoutFactory from './maps-layout'; diff --git a/src/components/side-panel/common/types.ts b/src/components/side-panel/common/types.ts index b3b92ff3eb..e41e8de5cc 100644 --- a/src/components/side-panel/common/types.ts +++ b/src/components/side-panel/common/types.ts @@ -3,7 +3,7 @@ import {openDeleteModal} from '@kepler.gl/actions'; import {VisStateActions} from '@kepler.gl/actions'; import {ActionHandler} from '@kepler.gl/actions'; import {RGBColor} from '@kepler.gl/types'; -import KeplerTable, {Datasets} from 'reducers/table-utils/kepler-table'; +import KeplerTable, {Datasets} from '@kepler.gl/table'; export type DatasetInfoProps = { dataset: KeplerTable; diff --git a/src/components/side-panel/filter-manager.tsx b/src/components/side-panel/filter-manager.tsx index f6dc187504..d8e0435171 100644 --- a/src/components/side-panel/filter-manager.tsx +++ b/src/components/side-panel/filter-manager.tsx @@ -27,7 +27,7 @@ import FilterPanelFactory from './filter-panel/filter-panel'; import {Filter} from '@kepler.gl/types'; import {Layer} from '@kepler.gl/layers'; import {VisStateActions, ActionHandler} from '@kepler.gl/actions'; -import {Datasets} from 'reducers/table-utils/kepler-table'; +import {Datasets} from '@kepler.gl/table'; type FilterManagerProps = { filters: Filter[]; diff --git a/src/components/side-panel/filter-panel/filter-panel-header.tsx b/src/components/side-panel/filter-panel/filter-panel-header.tsx index a24d42b2bf..2960cfb0b3 100644 --- a/src/components/side-panel/filter-panel/filter-panel-header.tsx +++ b/src/components/side-panel/filter-panel/filter-panel-header.tsx @@ -25,7 +25,7 @@ import {Trash} from 'components/common/icons'; import {createLinearGradient} from '@kepler.gl/utils'; import {StyledPanelHeader, StyledPanelHeaderProps} from 'components/common/styled-components'; import {RGBColor, Filter} from '@kepler.gl/types'; -import KeplerTable from 'reducers/table-utils/kepler-table'; +import {KeplerTable} from '@kepler.gl/table'; interface StyledFilterHeaderProps extends StyledPanelHeaderProps { $labelRCGColorValues: RGBColor[]; diff --git a/src/components/side-panel/interaction-manager.tsx b/src/components/side-panel/interaction-manager.tsx index ba0847dc08..9750b5b6f7 100644 --- a/src/components/side-panel/interaction-manager.tsx +++ b/src/components/side-panel/interaction-manager.tsx @@ -22,7 +22,7 @@ import React from 'react'; import {InteractionConfig} from '@kepler.gl/types'; import InteractionPanelFactory from './interaction-panel/interaction-panel'; import {VisStateActions} from '@kepler.gl/actions'; -import {Datasets} from 'reducers/table-utils/kepler-table'; +import {Datasets} from '@kepler.gl/table'; type InteractionManagerProps = { interactionConfig: InteractionConfig; diff --git a/src/components/side-panel/interaction-panel/brush-config.tsx b/src/components/side-panel/interaction-panel/brush-config.tsx index 35caf6fb42..1618bc9204 100644 --- a/src/components/side-panel/interaction-panel/brush-config.tsx +++ b/src/components/side-panel/interaction-panel/brush-config.tsx @@ -22,7 +22,7 @@ import React from 'react'; import RangeSliderFactory from 'components/common/range-slider'; import {PanelLabel, SidePanelSection} from 'components/common/styled-components'; -import {BRUSH_CONFIG} from 'reducers/interaction-utils'; +import {BRUSH_CONFIG} from 'reducers'; import {FormattedMessage} from '@kepler.gl/localization'; BrushConfigFactory.deps = [RangeSliderFactory]; diff --git a/src/components/side-panel/interaction-panel/tooltip-config.tsx b/src/components/side-panel/interaction-panel/tooltip-config.tsx index 7a6356e517..5c3eb1612d 100644 --- a/src/components/side-panel/interaction-panel/tooltip-config.tsx +++ b/src/components/side-panel/interaction-panel/tooltip-config.tsx @@ -35,7 +35,7 @@ import Switch from 'components/common/switch'; import ItemSelector from 'components/common/item-selector/item-selector'; import {COMPARE_TYPES, GEOCODER_DATASET_NAME} from '@kepler.gl/constants'; import FieldSelectorFactory from '../../common/field-selector'; -import KeplerTable, {Datasets} from 'reducers/table-utils/kepler-table'; +import KeplerTable, {Datasets} from '@kepler.gl/table'; const TooltipConfigWrapper = styled.div` .item-selector > div > div { diff --git a/src/components/side-panel/layer-manager.tsx b/src/components/side-panel/layer-manager.tsx index ba59342d6f..040d93ced0 100644 --- a/src/components/side-panel/layer-manager.tsx +++ b/src/components/side-panel/layer-manager.tsx @@ -39,7 +39,7 @@ import {Layer, LayerClassesType} from '@kepler.gl/layers'; import {UIStateActions, VisStateActions, ActionHandler} from '@kepler.gl/actions'; import {SidePanelItem} from 'components/types'; import {LayerPanelListView} from '@kepler.gl/types'; -import {Datasets} from 'reducers/table-utils/kepler-table'; +import {Datasets} from '@kepler.gl/table'; type LayerBlendingSelectorProps = { layerBlending: string; diff --git a/src/components/side-panel/layer-panel/add-layer-button.tsx b/src/components/side-panel/layer-panel/add-layer-button.tsx index 699961bbc1..1e8b29ce46 100644 --- a/src/components/side-panel/layer-panel/add-layer-button.tsx +++ b/src/components/side-panel/layer-panel/add-layer-button.tsx @@ -29,7 +29,7 @@ import {Button} from 'components/common/styled-components'; import {DatasetSquare} from 'components'; import Typeahead from 'components/common/item-selector/typeahead'; import Accessor from 'components/common/item-selector/accessor'; -import {Datasets} from 'reducers/table-utils/kepler-table'; +import {Datasets} from '@kepler.gl/table'; import {RGBColor} from '@kepler.gl/types'; type AddLayerButtonProps = { diff --git a/src/components/side-panel/layer-panel/column-selector.tsx b/src/components/side-panel/layer-panel/column-selector.tsx index 10fecda3cd..14e1bcf3d3 100644 --- a/src/components/side-panel/layer-panel/column-selector.tsx +++ b/src/components/side-panel/layer-panel/column-selector.tsx @@ -23,7 +23,7 @@ import styled from 'styled-components'; import {FormattedMessage} from '@kepler.gl/localization'; import {PanelLabel} from 'components/common/styled-components'; import FieldSelectorFactory from 'components/common/field-selector'; -import {validateColumn} from 'reducers/vis-state-merger'; +import {validateColumn} from 'reducers'; import {LayerColumn, LayerColumns} from '@kepler.gl/layers'; import {Field, FieldPair} from '@kepler.gl/types'; diff --git a/src/components/side-panel/layer-panel/dataset-layer-group.tsx b/src/components/side-panel/layer-panel/dataset-layer-group.tsx index 4ee251e73f..fbddd05ca6 100644 --- a/src/components/side-panel/layer-panel/dataset-layer-group.tsx +++ b/src/components/side-panel/layer-panel/dataset-layer-group.tsx @@ -23,7 +23,7 @@ import React, {useMemo} from 'react'; import DatasetLayerSectionFactory from './dataset-layer-section'; import {Layer, LayerClassesType} from '@kepler.gl/layers'; import {UIStateActions, VisStateActions, ActionHandler} from '@kepler.gl/actions'; -import {Datasets} from 'reducers/table-utils/kepler-table'; +import {Datasets} from '@kepler.gl/table'; type DatasetLayerGroupProps = { datasets: Datasets; diff --git a/src/components/side-panel/layer-panel/dataset-layer-section.tsx b/src/components/side-panel/layer-panel/dataset-layer-section.tsx index 3bd17cb7eb..a9d9f7e59f 100644 --- a/src/components/side-panel/layer-panel/dataset-layer-section.tsx +++ b/src/components/side-panel/layer-panel/dataset-layer-section.tsx @@ -25,7 +25,7 @@ import SourceDataCatalogFactory from '../common/source-data-catalog'; import LayerListFactory from './layer-list'; import {Layer, LayerClassesType} from '@kepler.gl/layers'; import {UIStateActions, ActionHandler, VisStateActions} from '@kepler.gl/actions'; -import KeplerTable from 'reducers/table-utils/kepler-table'; +import {KeplerTable} from '@kepler.gl/table'; type DatasetLayerSectionProps = { dataset: KeplerTable; diff --git a/src/components/side-panel/layer-panel/dataset-section.tsx b/src/components/side-panel/layer-panel/dataset-section.tsx index 4b9ebf86b8..6e8dd4feff 100644 --- a/src/components/side-panel/layer-panel/dataset-section.tsx +++ b/src/components/side-panel/layer-panel/dataset-section.tsx @@ -26,7 +26,7 @@ import {Button} from 'components/common/styled-components'; import SourceDataCatalogFactory from '../common/source-data-catalog'; import {UIStateActions, VisStateActions, ActionHandler} from '@kepler.gl/actions'; -import {Datasets} from 'reducers/table-utils/kepler-table'; +import {Datasets} from '@kepler.gl/table'; type AddDataButtonProps = { onClick: () => void; diff --git a/src/components/side-panel/layer-panel/layer-configurator.tsx b/src/components/side-panel/layer-panel/layer-configurator.tsx index 8faa43c70d..0900e79703 100644 --- a/src/components/side-panel/layer-panel/layer-configurator.tsx +++ b/src/components/side-panel/layer-panel/layer-configurator.tsx @@ -51,7 +51,7 @@ import { import {NestedPartial, RGBColor, LayerVisConfig, ColorUI, Field} from '@kepler.gl/types'; import {toggleModal, ActionHandler} from '@kepler.gl/actions'; -import {Datasets} from 'reducers/table-utils/kepler-table'; +import {Datasets} from '@kepler.gl/table'; type LayerConfiguratorProps = { layer: Layer; diff --git a/src/components/side-panel/layer-panel/layer-list.tsx b/src/components/side-panel/layer-panel/layer-list.tsx index f2cce489e3..ec853daac5 100644 --- a/src/components/side-panel/layer-panel/layer-list.tsx +++ b/src/components/side-panel/layer-panel/layer-list.tsx @@ -24,7 +24,7 @@ import classnames from 'classnames'; import {SortableContainer, SortableElement} from 'react-sortable-hoc'; import LayerPanelFactory from './layer-panel'; import {Layer, LayerClassesType} from '@kepler.gl/layers'; -import {Datasets} from 'reducers/table-utils/kepler-table'; +import {Datasets} from '@kepler.gl/table'; import {arrayMove} from '@kepler.gl/utils'; import {UIStateActions, VisStateActions} from '@kepler.gl/actions'; diff --git a/src/components/side-panel/layer-panel/layer-panel.tsx b/src/components/side-panel/layer-panel/layer-panel.tsx index 9830d72bf9..4eb3b4b794 100644 --- a/src/components/side-panel/layer-panel/layer-panel.tsx +++ b/src/components/side-panel/layer-panel/layer-panel.tsx @@ -32,7 +32,7 @@ import LayerPanelHeaderFactory from './layer-panel-header'; import {NestedPartial, LayerVisConfig, ColorUI} from '@kepler.gl/types'; import {Layer, LayerBaseConfig} from '@kepler.gl/layers'; import {toggleModal, VisStateActions, ActionHandler} from '@kepler.gl/actions'; -import {Datasets} from 'reducers/table-utils/kepler-table'; +import {Datasets} from '@kepler.gl/table'; type LayerPanelProps = { className?: string; diff --git a/src/components/side-panel/layer-panel/vis-config-slider.tsx b/src/components/side-panel/layer-panel/vis-config-slider.tsx index ae4b28dc9b..eb2ede6706 100644 --- a/src/components/side-panel/layer-panel/vis-config-slider.tsx +++ b/src/components/side-panel/layer-panel/vis-config-slider.tsx @@ -27,7 +27,7 @@ import {FormattedMessage} from '@kepler.gl/localization'; import {KeyEvent} from '@kepler.gl/constants'; import {Checkbox} from 'components'; import {Layer, LayerBaseConfig} from '@kepler.gl/layers'; -import {isInRange} from 'reducers/filter-utils'; +import {isInRange} from '@kepler.gl/table'; import {clamp} from '@kepler.gl/utils'; type LazyInputProps = { diff --git a/src/components/types.ts b/src/components/types.ts index 61f71c99cf..b9966c6413 100644 --- a/src/components/types.ts +++ b/src/components/types.ts @@ -9,7 +9,7 @@ import { MapStateActions, UIStateActions } from '@kepler.gl/actions'; -import {Datasets} from 'reducers/table-utils/kepler-table'; +import {Datasets} from '@kepler.gl/table'; export type SidePanelItem = { id: string; diff --git a/src/connect/with-local-selector.tsx b/src/connect/with-local-selector.tsx index 45b59e6b36..d674d79166 100644 --- a/src/connect/with-local-selector.tsx +++ b/src/connect/with-local-selector.tsx @@ -21,7 +21,7 @@ import React, {Component} from 'react'; import {createSelector} from 'reselect'; import KeplerGlContext from 'components/context'; -import {KeplerGlState} from 'reducers/combined-updaters'; +import {KeplerGlState} from 'reducers'; const identity = state => state; diff --git a/src/layers/src/aggregation-layer.ts b/src/layers/src/aggregation-layer.ts index 3981720bd1..26621819b3 100644 --- a/src/layers/src/aggregation-layer.ts +++ b/src/layers/src/aggregation-layer.ts @@ -36,7 +36,7 @@ import { ColorRange } from '@kepler.gl/constants'; import {Merge} from '@kepler.gl/types'; -import KeplerTable, {Datasets} from 'reducers/table-utils/kepler-table'; +import {KeplerTable, Datasets} from '@kepler.gl/table'; type AggregationLayerColumns = { lat: LayerColumn; @@ -307,7 +307,9 @@ export default class AggregationLayer extends Layer { this.config.sizeField, this.config.visConfig.sizeAggregation ); - const hasFilter = Object.values(gpuFilter.filterRange).some(arr => arr.some(v => v !== 0)); + const hasFilter = Object.values(gpuFilter.filterRange).some((arr: any) => + arr.some(v => v !== 0) + ); const getFilterValue = gpuFilter.filterValueAccessor(dataContainer)( this.gpuFilterGetIndex, diff --git a/src/layers/src/arc-layer/arc-layer.ts b/src/layers/src/arc-layer/arc-layer.ts index e3185bd52b..21bb9645ba 100644 --- a/src/layers/src/arc-layer/arc-layer.ts +++ b/src/layers/src/arc-layer/arc-layer.ts @@ -44,8 +44,7 @@ import { VisConfigNumber, VisConfigRange } from '@kepler.gl/types'; -import {DataContainerInterface} from 'reducers/table-utils/data-container-interface'; -import KeplerTable from 'reducers/table-utils/kepler-table'; +import {KeplerTable, DataContainerInterface} from '@kepler.gl/table'; export type ArcLayerVisConfigSettings = { opacity: VisConfigNumber; diff --git a/src/layers/src/base-layer.ts b/src/layers/src/base-layer.ts index 96d32bbcac..f99fe68626 100644 --- a/src/layers/src/base-layer.ts +++ b/src/layers/src/base-layer.ts @@ -64,10 +64,8 @@ import { MapState, Filter } from '@kepler.gl/types'; -import KeplerTable, {Datasets, GpuFilter} from 'reducers/table-utils/kepler-table'; -import {DataContainerInterface} from 'reducers/table-utils/data-container-interface'; -import {getSampleData} from 'reducers/table-utils/data-container-utils'; -import {getLatLngBounds, isPlainObject, notNullorUndefined} from '@kepler.gl/utils'; +import {KeplerTable, Datasets, GpuFilter, DataContainerInterface} from '@kepler.gl/table'; +import {getLatLngBounds, getSampleData, isPlainObject, notNullorUndefined} from '@kepler.gl/utils'; export type LayerColumn = {value: string | null; fieldIdx: number; optional?: boolean}; diff --git a/src/layers/src/geojson-layer/geojson-layer.ts b/src/layers/src/geojson-layer/geojson-layer.ts index d2e5fe769d..8d8f5d4654 100644 --- a/src/layers/src/geojson-layer/geojson-layer.ts +++ b/src/layers/src/geojson-layer/geojson-layer.ts @@ -55,8 +55,7 @@ import { Merge, RGBColor } from '@kepler.gl/types'; -import {DataContainerInterface} from 'reducers/table-utils/data-container-interface'; -import KeplerTable from 'reducers/table-utils/kepler-table'; +import {KeplerTable, DataContainerInterface} from '@kepler.gl/table'; const SUPPORTED_ANALYZER_TYPES = { [DATA_TYPES.GEOMETRY]: true, diff --git a/src/layers/src/h3-hexagon-layer/h3-hexagon-layer.ts b/src/layers/src/h3-hexagon-layer/h3-hexagon-layer.ts index 2809f5e96a..eb84b4c602 100644 --- a/src/layers/src/h3-hexagon-layer/h3-hexagon-layer.ts +++ b/src/layers/src/h3-hexagon-layer/h3-hexagon-layer.ts @@ -39,10 +39,8 @@ import { VisConfigRange, Merge } from '@kepler.gl/types'; -import {DataContainerInterface} from 'reducers/table-utils/data-container-interface'; +import {KeplerTable, DataContainerInterface, createDataContainer} from '@kepler.gl/table'; import {findDefaultColorField} from '@kepler.gl/utils'; -import KeplerTable from 'reducers/table-utils/kepler-table'; -import {createDataContainer} from 'reducers/table-utils'; export type HexagonIdLayerColumnsConfig = { hex_id: LayerColumn; diff --git a/src/layers/src/heatmap-layer/heatmap-layer.ts b/src/layers/src/heatmap-layer/heatmap-layer.ts index 47fd97c617..1b46b747f9 100644 --- a/src/layers/src/heatmap-layer/heatmap-layer.ts +++ b/src/layers/src/heatmap-layer/heatmap-layer.ts @@ -27,7 +27,7 @@ import HeatmapLayerIcon from './heatmap-layer-icon'; import {LayerColumn, LayerWeightConfig, VisualChannels} from '../base-layer'; import {VisConfigColorRange, VisConfigNumber} from '@kepler.gl/types'; import {HexColor, Merge} from '@kepler.gl/types'; -import {DataContainerInterface} from 'reducers/table-utils/data-container-interface'; +import {DataContainerInterface} from '@kepler.gl/table'; export type HeatmapLayerVisConfigSettings = { opacity: VisConfigNumber; diff --git a/src/layers/src/icon-layer/icon-layer.ts b/src/layers/src/icon-layer/icon-layer.ts index 965dcb0407..0d01af7f16 100644 --- a/src/layers/src/icon-layer/icon-layer.ts +++ b/src/layers/src/icon-layer/icon-layer.ts @@ -28,8 +28,7 @@ import {ICON_FIELDS, CLOUDFRONT, ColorRange} from '@kepler.gl/constants'; import IconInfoModalFactory from './icon-info-modal'; import Layer, {LayerBaseConfig, LayerColumn} from '../base-layer'; import {getTextOffsetByRadius, formatTextLabelData} from '../layer-text-label'; -import {default as KeplerTable} from 'reducers/table-utils/kepler-table'; -import {DataContainerInterface} from 'reducers/table-utils/data-container-interface'; +import {default as KeplerTable, DataContainerInterface} from '@kepler.gl/table'; import { VisConfigBoolean, VisConfigColorRange, diff --git a/src/layers/src/index.ts b/src/layers/src/index.ts index ec3b7ea71f..3cf34e5bbc 100644 --- a/src/layers/src/index.ts +++ b/src/layers/src/index.ts @@ -18,6 +18,13 @@ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. +export { + default as Layer, + OVERLAY_TYPE_CONST, + LAYER_ID_LENGTH, + colorMaker, + layerColors +} from './base-layer'; import {default as PointLayer} from './point-layer/point-layer'; import {default as ArcLayer} from './arc-layer/arc-layer'; import {default as LineLayer} from './line-layer/line-layer'; @@ -44,13 +51,6 @@ export {default as AggregationLayer} from './aggregation-layer'; import {LAYER_TYPES} from './types'; export {LAYER_TYPES, EDITOR_AVAILABLE_LAYERS} from './types'; // base layer -export { - default as Layer, - OVERLAY_TYPE_CONST, - LAYER_ID_LENGTH, - colorMaker, - layerColors -} from './base-layer'; // eslint-disable-next-line prettier/prettier export type { LayerBaseConfig, diff --git a/src/layers/src/line-layer/line-layer.ts b/src/layers/src/line-layer/line-layer.ts index 1c78dd64a6..f44dac0613 100644 --- a/src/layers/src/line-layer/line-layer.ts +++ b/src/layers/src/line-layer/line-layer.ts @@ -33,8 +33,7 @@ import { VisConfigNumber, VisConfigRange } from '@kepler.gl/types'; -import {default as KeplerTable} from 'reducers/table-utils/kepler-table'; -import {DataContainerInterface} from 'reducers/table-utils/data-container-interface'; +import {default as KeplerTable, DataContainerInterface} from '@kepler.gl/table'; export type LineLayerVisConfigSettings = { opacity: VisConfigNumber; diff --git a/src/layers/src/mapboxgl-layer.ts b/src/layers/src/mapboxgl-layer.ts index 76c3803315..84a71b6ef2 100644 --- a/src/layers/src/mapboxgl-layer.ts +++ b/src/layers/src/mapboxgl-layer.ts @@ -27,7 +27,7 @@ import Layer, { import {createSelector} from 'reselect'; import {geoJsonFromData, prefixGpuField, gpuFilterToMapboxFilter} from './mapbox-utils'; -import {default as KeplerTable} from 'reducers/table-utils/kepler-table'; +import {default as KeplerTable} from '@kepler.gl/table'; import {Merge} from '@kepler.gl/types'; type MapboxLayerGLColumns = { diff --git a/src/layers/src/point-layer/point-layer.ts b/src/layers/src/point-layer/point-layer.ts index a0bc0af412..0f35598d75 100644 --- a/src/layers/src/point-layer/point-layer.ts +++ b/src/layers/src/point-layer/point-layer.ts @@ -29,7 +29,7 @@ import Layer, { LayerStrokeColorConfig } from '../base-layer'; import {hexToRgb} from '@kepler.gl/utils'; -import {default as KeplerTable} from 'reducers/table-utils/kepler-table'; +import {default as KeplerTable} from '@kepler.gl/table'; import {findDefaultColorField} from '@kepler.gl/utils'; import PointLayerIcon from './point-layer-icon'; import { diff --git a/src/layers/src/s2-geometry-layer/s2-geometry-layer.ts b/src/layers/src/s2-geometry-layer/s2-geometry-layer.ts index 67b3490297..9057f26f15 100644 --- a/src/layers/src/s2-geometry-layer/s2-geometry-layer.ts +++ b/src/layers/src/s2-geometry-layer/s2-geometry-layer.ts @@ -25,9 +25,11 @@ import { ColorRange, LAYER_VIS_CONFIGS } from '@kepler.gl/constants'; -import {default as KeplerTable} from 'reducers/table-utils/kepler-table'; -import {DataContainerInterface} from 'reducers/table-utils/data-container-interface'; -import {createDataContainer} from 'reducers/table-utils/data-container-utils'; +import { + default as KeplerTable, + DataContainerInterface, + createDataContainer +} from '@kepler.gl/table'; import Layer, { LayerBaseConfig, LayerColorConfig, diff --git a/src/layers/src/scenegraph-layer/scenegraph-layer.ts b/src/layers/src/scenegraph-layer/scenegraph-layer.ts index 450dae6caf..a861bed947 100644 --- a/src/layers/src/scenegraph-layer/scenegraph-layer.ts +++ b/src/layers/src/scenegraph-layer/scenegraph-layer.ts @@ -27,8 +27,7 @@ import ScenegraphLayerIcon from './scenegraph-layer-icon'; import ScenegraphInfoModalFactory from './scenegraph-info-modal'; import {LAYER_VIS_CONFIGS, ColorRange} from '@kepler.gl/constants'; import {Merge, VisConfigColorRange, VisConfigNumber} from '@kepler.gl/types'; -import {default as KeplerTable} from 'reducers/table-utils/kepler-table'; -import {DataContainerInterface} from 'reducers/table-utils/data-container-interface'; +import {default as KeplerTable, DataContainerInterface} from '@kepler.gl/table'; export type ScenegraphLayerVisConfigSettings = { opacity: VisConfigNumber; diff --git a/src/layers/src/trip-layer/trip-layer.ts b/src/layers/src/trip-layer/trip-layer.ts index ee4af9bfb3..62870162b2 100644 --- a/src/layers/src/trip-layer/trip-layer.ts +++ b/src/layers/src/trip-layer/trip-layer.ts @@ -36,8 +36,7 @@ import { import {isTripGeoJsonField, parseTripGeoJsonTimestamp} from './trip-utils'; import TripInfoModalFactory from './trip-info-modal'; import {Merge, VisConfigColorRange, VisConfigNumber, VisConfigRange} from '@kepler.gl/types'; -import {default as KeplerTable} from 'reducers/table-utils/kepler-table'; -import {DataContainerInterface} from 'reducers/table-utils/data-container-interface'; +import {default as KeplerTable, DataContainerInterface} from '@kepler.gl/table'; export type TripLayerVisConfigSettings = { opacity: VisConfigNumber; diff --git a/src/layers/src/trip-layer/trip-utils.ts b/src/layers/src/trip-layer/trip-utils.ts index cd2e8d4504..2fe7987176 100644 --- a/src/layers/src/trip-layer/trip-utils.ts +++ b/src/layers/src/trip-layer/trip-utils.ts @@ -23,9 +23,10 @@ import {Analyzer, DATA_TYPES} from 'type-analyzer'; import {Field} from '@kepler.gl/types'; import {parseGeoJsonRawFeature, getGeojsonFeatureTypes} from '../geojson-layer/geojson-utils'; -import {DataContainerInterface} from 'reducers/table-utils/data-container-interface'; +import {DataContainerInterface, getSampleData} from '@kepler.gl/table'; import {notNullorUndefined, timeToUnixMilli} from '@kepler.gl/utils'; -import {getSampleData} from 'reducers/table-utils/data-container-utils'; +import {Feature} from '@turf/helpers'; +import {GeoJsonProperties, Geometry} from 'geojson'; /** * Parse geojson from string @@ -81,7 +82,7 @@ export function isTripGeoJsonField(dataContainer: DataContainerInterface, field) const sampleRawFeatures = dataContainer.numRows() > maxCount ? getSampleData(dataContainer, maxCount) : dataContainer; - const features = sampleRawFeatures + const features: Feature[] = sampleRawFeatures .mapIndex(field.valueAccessor) .map(parseGeoJsonRawFeature) .filter(notNullorUndefined); diff --git a/src/processors/src/data-processor.ts b/src/processors/src/data-processor.ts index dbe6f42c2c..12e9d3bb89 100644 --- a/src/processors/src/data-processor.ts +++ b/src/processors/src/data-processor.ts @@ -34,7 +34,6 @@ import { import {KeplerGlSchema, ParsedDataset, SavedMap} from 'schemas'; import {Feature} from '@nebula.gl/edit-modes'; import {LoadedMap} from 'schemas/schema-manager'; -import {formatCsv} from 'reducers/export-utils'; // if any of these value occurs in csv, parse it to null; // const CSV_NULLS = ['', 'null', 'NULL', 'Null', 'NaN', '/N']; @@ -392,7 +391,6 @@ export const Processors: { analyzerTypeToFieldType: typeof analyzerTypeToFieldType; getFieldsFromData: typeof getFieldsFromData; parseCsvRowsByFieldType: typeof parseCsvRowsByFieldType; - formatCsv: typeof formatCsv; } = { processGeojson, processCsvData, @@ -401,6 +399,5 @@ export const Processors: { processKeplerglDataset, analyzerTypeToFieldType, getFieldsFromData, - parseCsvRowsByFieldType, - formatCsv + parseCsvRowsByFieldType }; diff --git a/src/reducers/export-utils.ts b/src/reducers/export-utils.ts index 92e64b4f20..9f738730e7 100644 --- a/src/reducers/export-utils.ts +++ b/src/reducers/export-utils.ts @@ -24,10 +24,8 @@ import {csvFormatRows} from 'd3-dsv'; import {EXPORT_DATA_TYPE} from '@kepler.gl/constants'; import {Field} from '@kepler.gl/types'; -import {createIndexedDataContainer} from 'reducers/table-utils/data-container-utils'; +import {createIndexedDataContainer, DataContainerInterface, Datasets} from '@kepler.gl/table'; import {parseFieldValue} from '@kepler.gl/utils'; -import {DataContainerInterface} from 'reducers/table-utils/data-container-interface'; -import {Datasets} from 'reducers/table-utils/kepler-table'; import {downloadFile, DEFAULT_DATA_NAME} from '@kepler.gl/utils'; interface StateType { diff --git a/src/reducers/index.ts b/src/reducers/index.ts index 37fd66a8f6..aebfc1d483 100644 --- a/src/reducers/index.ts +++ b/src/reducers/index.ts @@ -37,7 +37,9 @@ export { // Each individual reducer export {default as visStateReducer} from './vis-state'; export {default as mapStateReducer} from './map-state'; +export {default as uiStateReducer} from './ui-state'; export {default as mapStyleReducer} from './map-style'; +export {default as providerReducer} from './provider-state'; // reducer updaters @@ -49,24 +51,37 @@ export * as uiStateUpdaters from './ui-state-updaters'; // This will be deprecated export * as combineUpdaters from './combined-updaters'; export * as combinedUpdaters from './combined-updaters'; +export type {KeplerGlState} from './combined-updaters'; +export {addDataToMapUpdater} from './combined-updaters'; // reducer merges export * as visStateMergers from './vis-state-merger'; +export * from './vis-state-selectors'; +export * from './vis-state-merger'; +export * from './provider-state-updaters'; +export * from './provider-state'; +export * from './ui-state'; +export * from './map-state'; +export {getInitialInputStyle, loadMapStylesUpdater, INITIAL_MAP_STYLE} from './map-style-updaters'; +export {INITIAL_MAP_STATE} from './map-state-updaters'; // Helpers export * from './composer-helpers'; +// export types +export * from './vis-state-updaters'; + +export * from './layer-utils'; + +export {INITIAL_UI_STATE} from './ui-state-updaters'; + export type { MapboxStyleUrl, MapStyle } from './map-style-updaters'; -export * from './data-scale-utils'; export * from './data-utils'; -export * from './table-utils/dataset-utils'; export * from './export-utils'; -export * from './filter-utils'; -export * from './table-utils/gpu-filter-utils'; export * from './interaction-utils'; export * from './layer-utils'; export * as providerStateUpdaters from './provider-state-updaters'; diff --git a/src/reducers/interaction-utils.ts b/src/reducers/interaction-utils.ts index 20553bce60..c260e1157d 100644 --- a/src/reducers/interaction-utils.ts +++ b/src/reducers/interaction-utils.ts @@ -27,7 +27,7 @@ import { COMPARE_TYPES } from '@kepler.gl/constants'; -import {DataRow} from 'reducers/table-utils/data-row'; +import {DataRow} from '@kepler.gl/table'; import {Field, TooltipField, CompareType} from '@kepler.gl/types'; import { parseFieldValue, diff --git a/src/reducers/layer-utils.ts b/src/reducers/layer-utils.ts index db156dde9c..5597058c41 100644 --- a/src/reducers/layer-utils.ts +++ b/src/reducers/layer-utils.ts @@ -33,7 +33,7 @@ import { OVERLAY_TYPE_CONST } from '@kepler.gl/layers'; -import KeplerTable, {Datasets} from 'reducers/table-utils/kepler-table'; +import KeplerTable, {DataRow, Datasets} from '@kepler.gl/table'; import {VisState} from 'schemas'; import {isFunction, getMapLayersFromSplitMaps} from '@kepler.gl/utils'; import {ThreeDBuildingLayer} from '@kepler.gl/deckgl-layers'; @@ -146,7 +146,7 @@ export function getLayerHoverProp({ return null; } const {dataContainer, fields} = datasets[dataId]; - const data = layer.getHoverData(object, dataContainer, fields); + const data: DataRow | null = layer.getHoverData(object, dataContainer, fields); const fieldsToShow = interactionConfig.tooltip.config.fieldsToShow[dataId]; return { diff --git a/src/reducers/vis-state-merger.ts b/src/reducers/vis-state-merger.ts index 176f4680a1..ebe22ab85b 100644 --- a/src/reducers/vis-state-merger.ts +++ b/src/reducers/vis-state-merger.ts @@ -29,9 +29,13 @@ import {CURRENT_VERSION, Merger, VisState, VisStateMergers, visStateSchema} from import {ParsedConfig} from 'schemas'; import {ParsedLayer, SavedInteractionConfig, TooltipInfo} from '@kepler.gl/types'; -import KeplerTable, {Datasets} from './table-utils/kepler-table'; -import {applyFiltersToDatasets, validateFiltersUpdateDatasets} from './filter-utils'; -import {assignGpuChannels, resetFilterGpuMode} from './table-utils/gpu-filter-utils'; +import {KeplerTable, Datasets} from '@kepler.gl/table'; +import { + applyFiltersToDatasets, + validateFiltersUpdateDatasets, + assignGpuChannels, + resetFilterGpuMode +} from '@kepler.gl/table'; /** * Merge loaded filters with current state, if no fields or data are loaded diff --git a/src/reducers/vis-state-updaters.ts b/src/reducers/vis-state-updaters.ts index 095859adb8..56a4051087 100644 --- a/src/reducers/vis-state-updaters.ts +++ b/src/reducers/vis-state-updaters.ts @@ -79,12 +79,7 @@ import {Filter, InteractionConfig, AnimationConfig, Editor} from '@kepler.gl/typ import {Loader} from '@loaders.gl/loader-utils'; import {Messages, Crosshairs, CursorClick, Pin} from 'components/common/icons/index'; -import { - copyTableAndUpdate, - Datasets, - pinTableColumns, - sortDatasetByColumn -} from './table-utils/kepler-table'; +import {copyTableAndUpdate, Datasets, pinTableColumns, sortDatasetByColumn} from '@kepler.gl/table'; import {calculateLayerData, findDefaultLayer} from './layer-utils'; import { applyFilterFieldName, @@ -99,12 +94,15 @@ import { isInRange, LIMITED_FILTER_EFFECT_PROPS, updateFilterDataId -} from './filter-utils'; -import {assignGpuChannel, setFilterGpuMode} from './table-utils/gpu-filter-utils'; -import {createNewDataEntry} from './table-utils/dataset-utils'; +} from '@kepler.gl/table/src/filter-utils'; +import { + assignGpuChannel, + setFilterGpuMode, + createNewDataEntry, + getFilterPlot, + getDefaultFilterPlotType +} from '@kepler.gl/table'; import {findFieldsToShow} from './interaction-utils'; -import {getFilterPlot} from './filter-utils'; -import {getDefaultFilterPlotType} from './filter-utils'; // react-palm // disable capture exception for react-palm call to withTask diff --git a/src/schemas/dataset-schema.ts b/src/schemas/dataset-schema.ts index e1439de143..3ab95e8df6 100644 --- a/src/schemas/dataset-schema.ts +++ b/src/schemas/dataset-schema.ts @@ -22,7 +22,7 @@ import pick from 'lodash.pick'; import {console as globalConsole} from 'global/window'; import {ProtoDataset} from '@kepler.gl/types'; -import {KeplerTable} from 'reducers/table-utils'; +import {KeplerTable} from '@kepler.gl/table'; import {RGBColor} from 'types'; import {VERSIONS} from './versions'; import Schema from './schema'; diff --git a/src/schemas/schema-manager.ts b/src/schemas/schema-manager.ts index 7b12cf19b3..ca5a5c236b 100644 --- a/src/schemas/schema-manager.ts +++ b/src/schemas/schema-manager.ts @@ -20,7 +20,7 @@ import {console as Console} from 'global/window'; -import {Datasets} from 'reducers/table-utils'; +import {Datasets} from '@kepler.gl/table'; import datasetSchema from './dataset-schema'; import mapStyleSchema from './map-style-schema'; import mapStateSchema from './map-state-schema'; diff --git a/src/schemas/vis-state-schema.ts b/src/schemas/vis-state-schema.ts index f4d7afa181..9679edce43 100644 --- a/src/schemas/vis-state-schema.ts +++ b/src/schemas/vis-state-schema.ts @@ -41,8 +41,7 @@ import { SavedVisState, SplitMap } from '@kepler.gl/types'; -import {isFilterValidToSave} from 'reducers/filter-utils'; -import {Datasets} from 'reducers/table-utils'; +import {isFilterValidToSave, Datasets} from '@kepler.gl/table'; import {Layer, LayerClassesType} from '@kepler.gl/layers'; import {Loader} from '@loaders.gl/loader-utils'; import KeplerGLSchema from './schema-manager'; diff --git a/src/reducers/table-utils/UPGRADE-data-container.md b/src/table/UPGRADE-data-container.md similarity index 100% rename from src/reducers/table-utils/UPGRADE-data-container.md rename to src/table/UPGRADE-data-container.md diff --git a/src/table/babel.config.js b/src/table/babel.config.js new file mode 100644 index 0000000000..8693d21ea7 --- /dev/null +++ b/src/table/babel.config.js @@ -0,0 +1,66 @@ +// Copyright (c) 2022 Uber Technologies, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +const KeplerPackage = require('./package'); + +const PRESETS = ['@babel/preset-env', '@babel/preset-react', '@babel/preset-typescript']; +const PLUGINS = [ + ['@babel/plugin-transform-typescript', {isTSX: true, allowDeclareFields: true}], + '@babel/plugin-transform-modules-commonjs', + '@babel/plugin-proposal-class-properties', + '@babel/plugin-proposal-export-namespace-from', + '@babel/plugin-proposal-optional-chaining', + [ + '@babel/transform-runtime', + { + regenerator: true + } + ], + [ + 'search-and-replace', + { + rules: [ + { + search: '__PACKAGE_VERSION__', + replace: KeplerPackage.version + } + ] + } + ] +]; +const ENV = { + test: { + plugins: ['istanbul'] + }, + debug: { + sourceMaps: 'inline', + retainLines: true + } +}; + +module.exports = function babel(api) { + api.cache(true); + + return { + presets: PRESETS, + plugins: PLUGINS, + env: ENV + }; +}; diff --git a/src/table/package.json b/src/table/package.json new file mode 100644 index 0000000000..a569fff2bf --- /dev/null +++ b/src/table/package.json @@ -0,0 +1,47 @@ +{ + "name": "@kepler.gl/table", + "author": "Shan He ", + "version": "2.5.5", + "description": "kepler.gl constants used by kepler.gl components, actions and reducers", + "license": "MIT", + "main": "dist/index.js", + "types": "dist/index.d.ts", + "keywords": [ + "babel", + "es6", + "react", + "webgl", + "visualization", + "deck.gl" + ], + "repository": { + "type": "git", + "url": "https://github.com/keplergl/kepler.gl.git" + }, + "scripts": { + "build": "rm -fr dist && babel src --out-dir dist --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/*.d.ts'", + "build:umd": "webpack --config ./webpack/umd.js --progress --env.prod", + "build:types": "tsc --project ./tsconfig.production.json", + "prepublish": "uber-licence && yarn build && yarn build:types", + "stab": "mkdir -p dist && touch dist/index.js" + }, + "files": [ + "dist", + "umd" + ], + "nyc": { + "sourceMap": false, + "instrument": false + }, + "engines": { + "node": ">=12.0.0" + }, + "maintainers": [ + "Shan He ", + "Giuseppe Macri " + ], + "volta": { + "node": "12.22.0", + "yarn": "1.22.17" + } +} diff --git a/src/reducers/table-utils/data-container-interface.ts b/src/table/src/data-container-interface.ts similarity index 100% rename from src/reducers/table-utils/data-container-interface.ts rename to src/table/src/data-container-interface.ts diff --git a/src/reducers/table-utils/data-container-utils.ts b/src/table/src/data-container-utils.ts similarity index 100% rename from src/reducers/table-utils/data-container-utils.ts rename to src/table/src/data-container-utils.ts diff --git a/src/reducers/table-utils/data-row.ts b/src/table/src/data-row.ts similarity index 100% rename from src/reducers/table-utils/data-row.ts rename to src/table/src/data-row.ts diff --git a/src/reducers/data-scale-utils.ts b/src/table/src/data-scale-utils.ts similarity index 96% rename from src/reducers/data-scale-utils.ts rename to src/table/src/data-scale-utils.ts index ee0afdf9f9..c0d2ca1fb3 100644 --- a/src/reducers/data-scale-utils.ts +++ b/src/table/src/data-scale-utils.ts @@ -20,7 +20,7 @@ import {notNullorUndefined, unique} from '@kepler.gl/utils'; import {extent} from 'd3-array'; -import {DataContainerInterface} from 'reducers/table-utils/data-container-interface'; +import {DataContainerInterface} from './data-container-interface'; type dataValueAccessor = (param: T) => T; type dataContainerValueAccessor = (d: {index: number}, dc: DataContainerInterface) => any; diff --git a/src/reducers/table-utils/dataset-utils.ts b/src/table/src/dataset-utils.ts similarity index 97% rename from src/reducers/table-utils/dataset-utils.ts rename to src/table/src/dataset-utils.ts index 9bcc477dd5..b2d35fdd67 100644 --- a/src/reducers/table-utils/dataset-utils.ts +++ b/src/table/src/dataset-utils.ts @@ -19,8 +19,7 @@ // THE SOFTWARE. import uniq from 'lodash.uniq'; -import KeplerTable, {Datasets} from 'reducers/table-utils/kepler-table'; - +import KeplerTable, {Datasets} from './kepler-table'; import {ProtoDataset, RGBColor} from '@kepler.gl/types'; import {hexToRgb, validateInputData, datasetColorMaker} from '@kepler.gl/utils'; diff --git a/src/reducers/filter-utils.ts b/src/table/src/filter-utils.ts similarity index 95% rename from src/reducers/filter-utils.ts rename to src/table/src/filter-utils.ts index 3a87676c25..70ab2b75fd 100644 --- a/src/reducers/filter-utils.ts +++ b/src/table/src/filter-utils.ts @@ -49,14 +49,10 @@ import { RangeFieldDomain } from '@kepler.gl/types'; -import {VisState} from 'schemas'; -import KeplerTable, { - FilterRecord, - Datasets, - FilterDatasetOpt -} from 'reducers/table-utils/kepler-table'; -import {DataContainerInterface} from 'reducers/table-utils/data-container-interface'; import {LAYER_TYPES, getCentroid} from '@kepler.gl/layers'; +import KeplerTable, {Datasets, FilterDatasetOpt, FilterRecord} from './kepler-table'; +import {DataContainerInterface} from './data-container-interface'; +import {isValidTimeDomain, durationYear, durationDay} from '@kepler.gl/utils'; export type FilterResult = { filteredIndexForDomain?: number[]; @@ -85,13 +81,6 @@ export const TimestampStepMap = [ export const histogramBins = 30; export const enlargedHistogramBins = 100; -const durationSecond = 1000; -const durationMinute = durationSecond * 60; -const durationHour = durationMinute * 60; -const durationDay = durationHour * 24; -const durationWeek = durationDay * 7; -const durationYear = durationDay * 365; - export const FILTER_UPDATER_PROPS = keyMirror({ dataId: null, name: null, @@ -452,7 +441,7 @@ type filterFunction = (data: {index: number}) => boolean; * @param dataContainer Data container * @return filterFunction */ -// eslint-disable-next-line complexity +/* eslint-disable complexity */ export function getFilterFunction( field: Field | null, dataId: string, @@ -801,9 +790,6 @@ export function isInRange(val: any, domain: number[]): boolean { export function isInPolygon(point: number[], polygon: any): boolean { return booleanWithin(turfPoint(point), polygon); } -export function isValidTimeDomain(domain) { - return Array.isArray(domain) && domain.every(Number.isFinite); -} export function getTimeWidgetTitleFormatter(domain: [number, number]): string | null { if (!isValidTimeDomain(domain)) { return null; @@ -816,21 +802,6 @@ export function getTimeWidgetTitleFormatter(domain: [number, number]): string | return diff > durationYear ? 'L' : diff > durationDay ? 'L LT' : 'L LTS'; } -export function getTimeWidgetHintFormatter(domain: [number, number]): string | undefined { - if (!isValidTimeDomain(domain)) { - return undefined; - } - - const diff = domain[1] - domain[0]; - return diff > durationWeek - ? 'L' - : diff > durationDay - ? 'L LT' - : diff > durationHour - ? 'LT' - : 'LTS'; -} - /** * Sanity check on filters to prepare for save * @type {typeof import('./filter-utils').isFilterValidToSave} @@ -1114,7 +1085,7 @@ export function filterDatasetCPU(state: T, dataId: string): /** * Validate parsed filters with datasets and add filterProps to field */ -export function validateFiltersUpdateDatasets( +export function validateFiltersUpdateDatasets( state: S, filtersToValidate: ParsedFilter[] = [] ): { @@ -1189,16 +1160,3 @@ export function validateFiltersUpdateDatasets( return {validated, failed, updatedDatasets}; } - -/** - * Retrieve interval bins for time filter - */ -export function getIntervalBins(filter: TimeRangeFilter) { - const {bins} = filter; - const interval = filter.plotType?.interval; - if (!interval || !bins || Object.keys(bins).length === 0) { - return null; - } - const values = Object.values(bins); - return values[0] ? values[0][interval] : null; -} diff --git a/src/reducers/table-utils/gpu-filter-utils.ts b/src/table/src/gpu-filter-utils.ts similarity index 98% rename from src/reducers/table-utils/gpu-filter-utils.ts rename to src/table/src/gpu-filter-utils.ts index 44a2e6e0af..ab8e33704b 100644 --- a/src/reducers/table-utils/gpu-filter-utils.ts +++ b/src/table/src/gpu-filter-utils.ts @@ -23,8 +23,8 @@ import {MAX_GPU_FILTERS, FILTER_TYPES} from '@kepler.gl/constants'; import {Field, Filter} from '@kepler.gl/types'; import {set, toArray, notNullorUndefined} from '@kepler.gl/utils'; -import {DataContainerInterface} from 'reducers/table-utils/data-container-interface'; -import {GpuFilter} from 'reducers/table-utils/kepler-table'; +import {DataContainerInterface} from './data-container-interface'; +import {GpuFilter} from './kepler-table'; /** * Set gpu mode based on current number of gpu filters exists diff --git a/src/reducers/table-utils/index.ts b/src/table/src/index.ts similarity index 83% rename from src/reducers/table-utils/index.ts rename to src/table/src/index.ts index fd513e9f25..6870c9a04e 100644 --- a/src/reducers/table-utils/index.ts +++ b/src/table/src/index.ts @@ -29,6 +29,12 @@ export { maybeToDate } from './kepler-table'; /* eslint-disable prettier/prettier */ - export type {GpuFilter, Datasets} from './kepler-table'; + export type {GpuFilter, Datasets, FilterRecord, FilterDatasetOpt} from './kepler-table'; export {createDataContainer, createIndexedDataContainer, getSampleData as getSampleContainerData} from './data-container-utils'; export type {DataContainerInterface} from './data-container-interface'; + export * from './data-container-utils'; + export * from './data-row'; + export * from './gpu-filter-utils'; + export * from './dataset-utils'; + export * from './filter-utils'; + export * from './data-scale-utils'; diff --git a/src/reducers/table-utils/indexed-data-container.ts b/src/table/src/indexed-data-container.ts similarity index 100% rename from src/reducers/table-utils/indexed-data-container.ts rename to src/table/src/indexed-data-container.ts diff --git a/src/reducers/table-utils/kepler-table.ts b/src/table/src/kepler-table.ts similarity index 99% rename from src/reducers/table-utils/kepler-table.ts rename to src/table/src/kepler-table.ts index d8efbe2301..9cbb790c1b 100644 --- a/src/reducers/table-utils/kepler-table.ts +++ b/src/table/src/kepler-table.ts @@ -40,13 +40,13 @@ import { getFilterRecord, getNumericFieldDomain, getTimestampFieldDomain -} from '../filter-utils'; +} from './filter-utils'; import { getLinearDomain, getLogDomain, getOrdinalDomain, getQuantileDomain -} from '../data-scale-utils'; +} from './data-scale-utils'; import {DataContainerInterface} from './data-container-interface'; export type GpuFilter = { diff --git a/src/reducers/table-utils/row-data-container.ts b/src/table/src/row-data-container.ts similarity index 100% rename from src/reducers/table-utils/row-data-container.ts rename to src/table/src/row-data-container.ts diff --git a/src/table/tsconfig.production.json b/src/table/tsconfig.production.json new file mode 100644 index 0000000000..cddf14f7ca --- /dev/null +++ b/src/table/tsconfig.production.json @@ -0,0 +1,33 @@ +{ + "compilerOptions": { + "target": "es2020", + "allowJs": false, + "checkJs": false, + "jsx": "react", + "module": "esnext", + "moduleResolution": "node", + "declaration":true, + "emitDeclarationOnly":true, + "noImplicitAny": false, + "noImplicitReturns": true, + "noImplicitThis": true, + "noUnusedLocals": true, + "outDir": "dist", + "sourceMap": true, + "strictNullChecks": true, + "suppressImplicitAnyIndexErrors": false, + "esModuleInterop": true, + "allowSyntheticDefaultImports": true, + "skipLibCheck": true, + "strict": true, + "resolveJsonModule": true, + "isolatedModules": true, + "baseUrl": "./src", //TODO change once all dependencies are isolated + "paths": { + "*": ["*"] //TODO change once all dependencies are isolated + } + }, + "include": [ + "src" + ] +} diff --git a/src/utils/src/filter-utils.ts b/src/utils/src/filter-utils.ts index 71b5984853..0696195d0a 100644 --- a/src/utils/src/filter-utils.ts +++ b/src/utils/src/filter-utils.ts @@ -1,5 +1,13 @@ import {FILTER_TYPES} from '@kepler.gl/constants'; import get from 'lodash.get'; +import {TimeRangeFilter} from '@kepler.gl/types'; + +export const durationSecond = 1000; +export const durationMinute = durationSecond * 60; +export const durationHour = durationMinute * 60; +export const durationDay = durationHour * 24; +export const durationWeek = durationDay * 7; +export const durationYear = durationDay * 365; /** * Sanity check on filters to prepare for save @@ -32,3 +40,35 @@ export function isValidFilterValue(type: string | null, value: any): boolean { return true; } } + +/** + * Retrieve interval bins for time filter + */ +export function getIntervalBins(filter: TimeRangeFilter) { + const {bins} = filter; + const interval = filter.plotType?.interval; + if (!interval || !bins || Object.keys(bins).length === 0) { + return null; + } + const values = Object.values(bins); + return values[0] ? values[0][interval] : null; +} + +export function isValidTimeDomain(domain) { + return Array.isArray(domain) && domain.every(Number.isFinite); +} + +export function getTimeWidgetHintFormatter(domain: [number, number]): string | undefined { + if (!isValidTimeDomain(domain)) { + return undefined; + } + + const diff = domain[1] - domain[0]; + return diff > durationWeek + ? 'L' + : diff > durationDay + ? 'L LT' + : diff > durationHour + ? 'LT' + : 'LTS'; +} diff --git a/src/utils/src/index.ts b/src/utils/src/index.ts index 731dfc28b6..7305071979 100644 --- a/src/utils/src/index.ts +++ b/src/utils/src/index.ts @@ -97,7 +97,18 @@ export { exportMap, default as exporters } from './export-utils'; -export {isValidFilterValue} from './filter-utils'; +export { + isValidFilterValue, + isValidTimeDomain, + getIntervalBins, + getTimeWidgetHintFormatter, + durationSecond, + durationMinute, + durationHour, + durationDay, + durationWeek, + durationYear +} from './filter-utils'; export {setLayerBlending} from './gl-utils'; export {flattenMessages, mergeMessages} from './locale-utils'; export type {Dimensions} from './observe-dimensions'; diff --git a/test/browser/components/common/animation-control-test.js b/test/browser/components/common/animation-control-test.js index 7df3345d32..0714de97d1 100644 --- a/test/browser/components/common/animation-control-test.js +++ b/test/browser/components/common/animation-control-test.js @@ -34,7 +34,7 @@ import {appInjector} from 'components/container'; import {StateWTripGeojson} from 'test/helpers/mock-state'; import IconButton from 'components/common/icon-button'; -import reducer from 'reducers/vis-state'; +import {visStateReducer as reducer} from 'reducers'; const AnimationControl = appInjector.get(AnimationControlFactory); const PlaybackControls = appInjector.get(PlaybackControlsFactory); diff --git a/test/browser/components/container-test.js b/test/browser/components/container-test.js index 802e6ce14f..9239101c1f 100644 --- a/test/browser/components/container-test.js +++ b/test/browser/components/container-test.js @@ -27,8 +27,7 @@ import configureStore from 'redux-mock-store'; import {Provider} from 'react-redux'; import sinon from 'sinon'; import {console as Console} from 'global/window'; -import rootReducer from 'reducers/root'; -import coreReducer from 'reducers/core'; +import {keplerGlReducer as rootReducer, keplerGlReducerCore as coreReducer} from 'reducers'; import {keplerGlInit} from '@kepler.gl/actions'; import Container, {ERROR_MSG} from 'components/container'; diff --git a/test/browser/components/filters/time-widget-test.js b/test/browser/components/filters/time-widget-test.js index 67cdfcec60..3546735db6 100644 --- a/test/browser/components/filters/time-widget-test.js +++ b/test/browser/components/filters/time-widget-test.js @@ -26,7 +26,7 @@ import moment from 'moment'; import {IntlWrapper, mountWithTheme, mockHTMLElementClientSize} from 'test/helpers/component-utils'; import {setFilterAnimationTimeConfig} from '@kepler.gl/actions'; -import reducer from 'reducers/vis-state'; +import {visStateReducer as reducer} from 'reducers'; import { TimeWidgetFactory, diff --git a/test/browser/components/injector-test.js b/test/browser/components/injector-test.js index c2433c4064..1652b3e377 100644 --- a/test/browser/components/injector-test.js +++ b/test/browser/components/injector-test.js @@ -28,7 +28,7 @@ import {console as Console} from 'global/window'; import {withState, injectComponents, PanelHeaderFactory} from 'components'; -import coreReducer from 'reducers/core'; +import {keplerGlReducerCore as coreReducer} from 'reducers'; import {keplerGlInit} from '@kepler.gl/actions'; import {visStateLens, uiStateLens, mapStateLens, mapStyleLens} from 'reducers'; diff --git a/test/browser/components/kepler-gl-test.js b/test/browser/components/kepler-gl-test.js index 48b40d503a..a49184ae06 100644 --- a/test/browser/components/kepler-gl-test.js +++ b/test/browser/components/kepler-gl-test.js @@ -26,7 +26,7 @@ import {drainTasksForTesting, succeedTaskWithValues} from 'react-palm/tasks'; import configureStore from 'redux-mock-store'; import {Provider} from 'react-redux'; -import coreReducer from 'reducers/core'; +import {keplerGlReducerCore as coreReducer} from 'reducers'; import {keplerGlInit, ActionTypes} from '@kepler.gl/actions'; import { appInjector, diff --git a/test/browser/components/modals/data-table-modal-test.js b/test/browser/components/modals/data-table-modal-test.js index a7dffaebc1..0d5d7fd89f 100644 --- a/test/browser/components/modals/data-table-modal-test.js +++ b/test/browser/components/modals/data-table-modal-test.js @@ -26,7 +26,7 @@ import flatten from 'lodash.flattendeep'; import {mountWithTheme} from 'test/helpers/component-utils'; import CloneDeep from 'lodash.clonedeep'; import {VisStateActions} from '@kepler.gl/actions'; -import visStateReducer from 'reducers/vis-state'; +import {visStateReducer} from 'reducers'; import FieldTokenFactory from 'components/common/field-token'; import {VertThreeDots, ArrowUp} from 'components/common/icons'; @@ -41,7 +41,7 @@ import {geoStyleFields, geoStyleRows} from 'test/fixtures/geojson'; import {StateWFiles, testCsvDataId, testGeoJsonDataId} from 'test/helpers/mock-state'; import {appInjector} from 'components/container'; -import {createDataContainer} from 'reducers/table-utils'; +import {createDataContainer} from '@kepler.gl/table'; const DataTableModal = appInjector.get(DataTableModalFactory); const DataTable = appInjector.get(DataTableFactory); diff --git a/test/browser/components/modals/export-image-modal-test.js b/test/browser/components/modals/export-image-modal-test.js index 10896df145..c3688336be 100644 --- a/test/browser/components/modals/export-image-modal-test.js +++ b/test/browser/components/modals/export-image-modal-test.js @@ -28,7 +28,7 @@ import ImagePreview from 'components/common/image-preview'; import {appInjector} from 'components/container'; import {SelectionButton} from 'components/common/styled-components'; -import {INITIAL_UI_STATE} from 'reducers/ui-state-updaters'; +import {INITIAL_UI_STATE} from 'reducers'; const ExportImageModal = appInjector.get(ExportImageModalFactory); diff --git a/test/browser/components/side-panel/filter-manager-test.js b/test/browser/components/side-panel/filter-manager-test.js index 8519a7b331..7ea3eb8c79 100644 --- a/test/browser/components/side-panel/filter-manager-test.js +++ b/test/browser/components/side-panel/filter-manager-test.js @@ -34,7 +34,7 @@ import NewFilterPanelFactory from 'components/side-panel/filter-panel/filter-pan import {appInjector} from 'components/container'; import {mountWithTheme, IntlWrapper} from 'test/helpers/component-utils'; -import keplerGlReducer from 'reducers/core'; +import {keplerGlReducerCore as keplerGlReducer} from 'reducers'; import {VisStateActions} from '@kepler.gl/actions'; import {testFields, testAllData} from 'test/fixtures/test-csv-data'; import {ALL_FIELD_TYPES} from '@kepler.gl/constants'; diff --git a/test/browser/layer-tests/arc-layer-specs.js b/test/browser/layer-tests/arc-layer-specs.js index b84c855c7c..80e7c5bdc1 100644 --- a/test/browser/layer-tests/arc-layer-specs.js +++ b/test/browser/layer-tests/arc-layer-specs.js @@ -34,7 +34,7 @@ import { import {PROJECTED_PIXEL_SIZE_MULTIPLIER} from '@kepler.gl/constants'; import {KeplerGlLayers} from '@kepler.gl/layers'; -import {copyTableAndUpdate} from 'reducers/table-utils'; +import {copyTableAndUpdate} from '@kepler.gl/table'; const {ArcLayer} = KeplerGlLayers; const columns = { diff --git a/test/browser/layer-tests/cluster-layer-specs.js b/test/browser/layer-tests/cluster-layer-specs.js index d3383afea6..6d42735bc2 100644 --- a/test/browser/layer-tests/cluster-layer-specs.js +++ b/test/browser/layer-tests/cluster-layer-specs.js @@ -32,7 +32,7 @@ import { } from 'test/helpers/layer-utils'; import {KeplerGlLayers} from '@kepler.gl/layers'; -import {INITIAL_MAP_STATE} from 'reducers/map-state-updaters'; +import {INITIAL_MAP_STATE} from 'reducers'; const {ClusterLayer} = KeplerGlLayers; diff --git a/test/browser/layer-tests/geojson-layer-specs.js b/test/browser/layer-tests/geojson-layer-specs.js index 24f47b7d86..40694a2954 100644 --- a/test/browser/layer-tests/geojson-layer-specs.js +++ b/test/browser/layer-tests/geojson-layer-specs.js @@ -20,7 +20,7 @@ import test from 'tape'; import {defaultElevation, defaultLineWidth, defaultRadius, KeplerGlLayers} from '@kepler.gl/layers'; -import {copyTableAndUpdate} from 'reducers/table-utils'; +import {copyTableAndUpdate} from '@kepler.gl/table'; const {GeojsonLayer} = KeplerGlLayers; @@ -42,7 +42,7 @@ import { geoStyleMeta } from 'test/fixtures/geojson'; import {processGeojson} from '@kepler.gl/processors'; -import {createNewDataEntry} from 'reducers'; +import {createNewDataEntry} from '@kepler.gl/table'; test('#GeojsonLayer -> constructor', t => { const TEST_CASES = { diff --git a/test/browser/layer-tests/grid-layer-specs.js b/test/browser/layer-tests/grid-layer-specs.js index 6a6aca0ca5..57fa8896b4 100644 --- a/test/browser/layer-tests/grid-layer-specs.js +++ b/test/browser/layer-tests/grid-layer-specs.js @@ -33,7 +33,7 @@ import { import {pointToPolygonGeo, KeplerGlLayers} from '@kepler.gl/layers'; const {GridLayer} = KeplerGlLayers; -import {INITIAL_MAP_STATE} from 'reducers/map-state-updaters'; +import {INITIAL_MAP_STATE} from 'reducers'; const columns = { lat: 'lat', diff --git a/test/browser/layer-tests/h3-hexagon-layer-specs.js b/test/browser/layer-tests/h3-hexagon-layer-specs.js index f09e8b9cfb..5ea8c7d928 100644 --- a/test/browser/layer-tests/h3-hexagon-layer-specs.js +++ b/test/browser/layer-tests/h3-hexagon-layer-specs.js @@ -37,7 +37,7 @@ import { h3DefaultElevation as defaultElevation } from '@kepler.gl/layers'; -import {copyTableAndUpdate} from 'reducers/table-utils'; +import {copyTableAndUpdate} from '@kepler.gl/table'; const {H3Layer} = KeplerGlLayers; const columns = { diff --git a/test/browser/layer-tests/heatmap-layer-specs.js b/test/browser/layer-tests/heatmap-layer-specs.js index adab1b0e7d..e7d680aebe 100644 --- a/test/browser/layer-tests/heatmap-layer-specs.js +++ b/test/browser/layer-tests/heatmap-layer-specs.js @@ -30,7 +30,7 @@ import {StateWFiles, testCsvDataId} from 'test/helpers/mock-state'; import {gpsPointBounds} from 'test/fixtures/test-csv-data'; import {MAX_ZOOM_LEVEL, KeplerGlLayers} from '@kepler.gl/layers'; -import {copyTableAndUpdate} from 'reducers/table-utils'; +import {copyTableAndUpdate} from '@kepler.gl/table'; const {HeatmapLayer} = KeplerGlLayers; diff --git a/test/browser/layer-tests/icon-layer-specs.js b/test/browser/layer-tests/icon-layer-specs.js index aa1d805fe9..05ac0d5bd2 100644 --- a/test/browser/layer-tests/icon-layer-specs.js +++ b/test/browser/layer-tests/icon-layer-specs.js @@ -24,7 +24,7 @@ import {mount} from 'enzyme'; import sinon from 'sinon'; import sinonStubPromise from 'sinon-stub-promise'; import {getDistanceScales} from 'viewport-mercator-project'; -import {copyTableAndUpdate} from 'reducers/table-utils'; +import {copyTableAndUpdate} from '@kepler.gl/table'; import {KeplerGlLayers} from '@kepler.gl/layers'; import {DEFAULT_TEXT_LABEL, PROJECTED_PIXEL_SIZE_MULTIPLIER} from '@kepler.gl/constants'; @@ -40,7 +40,7 @@ import { pointLayerMeta, iconGeometry } from 'test/helpers/layer-utils'; -import {INITIAL_MAP_STATE} from 'reducers/map-state-updaters'; +import {INITIAL_MAP_STATE} from 'reducers'; import {IntlWrapper} from '../../helpers/component-utils'; const {IconLayer} = KeplerGlLayers; diff --git a/test/browser/layer-tests/line-layer-specs.js b/test/browser/layer-tests/line-layer-specs.js index 894f3b54aa..c69ce7d73d 100644 --- a/test/browser/layer-tests/line-layer-specs.js +++ b/test/browser/layer-tests/line-layer-specs.js @@ -33,7 +33,7 @@ import { import {PROJECTED_PIXEL_SIZE_MULTIPLIER} from '@kepler.gl/constants'; import {KeplerGlLayers} from '@kepler.gl/layers'; -import {copyTable, copyTableAndUpdate} from 'reducers/table-utils'; +import {copyTable, copyTableAndUpdate} from '@kepler.gl/table'; const {LineLayer} = KeplerGlLayers; const columns = { diff --git a/test/browser/layer-tests/point-layer-specs.js b/test/browser/layer-tests/point-layer-specs.js index 6e66eb23bc..692b33ae6d 100644 --- a/test/browser/layer-tests/point-layer-specs.js +++ b/test/browser/layer-tests/point-layer-specs.js @@ -33,9 +33,9 @@ import { fieldDomain } from 'test/helpers/layer-utils'; -import {copyTableAndUpdate} from 'reducers/table-utils'; +import {copyTableAndUpdate} from '@kepler.gl/table'; import {KeplerGlLayers} from '@kepler.gl/layers'; -import {INITIAL_MAP_STATE} from 'reducers/map-state-updaters'; +import {INITIAL_MAP_STATE} from 'reducers'; import {DEFAULT_TEXT_LABEL, PROJECTED_PIXEL_SIZE_MULTIPLIER} from '@kepler.gl/constants'; const {PointLayer} = KeplerGlLayers; diff --git a/test/browser/layer-tests/s2-geometry-layer-specs.js b/test/browser/layer-tests/s2-geometry-layer-specs.js index 634fcef7be..b225037396 100644 --- a/test/browser/layer-tests/s2-geometry-layer-specs.js +++ b/test/browser/layer-tests/s2-geometry-layer-specs.js @@ -31,7 +31,7 @@ import { preparedFilterDomain0 } from 'test/helpers/layer-utils'; import {s2DefaultElevation as defaultElevation, KeplerGlLayers} from '@kepler.gl/layers'; -import {copyTableAndUpdate} from 'reducers/table-utils'; +import {copyTableAndUpdate} from '@kepler.gl/table'; const {S2GeometryLayer} = KeplerGlLayers; diff --git a/test/browser/layer-tests/trip-layer-specs.js b/test/browser/layer-tests/trip-layer-specs.js index 081daa00d7..65e25a9c84 100644 --- a/test/browser/layer-tests/trip-layer-specs.js +++ b/test/browser/layer-tests/trip-layer-specs.js @@ -28,7 +28,7 @@ import { KeplerGlLayers } from '@kepler.gl/layers'; -import {copyTableAndUpdate} from 'reducers/table-utils'; +import {copyTableAndUpdate} from '@kepler.gl/table'; const {TripLayer} = KeplerGlLayers; import { diff --git a/test/browser/reducers/index.js b/test/browser/reducers/index.js index fbe630be53..7f39daacaa 100644 --- a/test/browser/reducers/index.js +++ b/test/browser/reducers/index.js @@ -18,7 +18,7 @@ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. -import reducer from 'reducers/vis-state'; +import {visStateReducer as reducer} from 'reducers'; import CloneDeep from 'lodash.clonedeep'; import test from 'tape-catch'; import {StateWFiles, testCsvDataId, testGeoJsonDataId} from 'test/helpers/mock-state'; diff --git a/test/fixtures/state-saved-v0.js b/test/fixtures/state-saved-v0.js index b72fb10053..42dbf8217b 100644 --- a/test/fixtures/state-saved-v0.js +++ b/test/fixtures/state-saved-v0.js @@ -21,7 +21,7 @@ import {KeplerGlLayers} from '@kepler.gl/layers'; const {PointLayer, ArcLayer, HexagonLayer, GeojsonLayer} = KeplerGlLayers; import {DEFAULT_TEXT_LABEL, DEFAULT_COLOR_UI} from '@kepler.gl/constants'; -import {defaultInteractionConfig} from 'reducers/vis-state-updaters'; +import {defaultInteractionConfig} from 'reducers'; export const savedStateV0 = { config: { diff --git a/test/fixtures/state-saved-v1-1.js b/test/fixtures/state-saved-v1-1.js index b01bb792c4..450dcbb86b 100644 --- a/test/fixtures/state-saved-v1-1.js +++ b/test/fixtures/state-saved-v1-1.js @@ -22,7 +22,7 @@ import {KeplerGlLayers} from '@kepler.gl/layers'; import {DEFAULT_TEXT_LABEL, DEFAULT_COLOR_UI} from '@kepler.gl/constants'; const {GeojsonLayer} = KeplerGlLayers; -import {defaultInteractionConfig} from 'reducers/vis-state-updaters'; +import {defaultInteractionConfig} from 'reducers'; export const savedStateV1 = { datasets: [ diff --git a/test/fixtures/test-hex-id-data.js b/test/fixtures/test-hex-id-data.js index 051802c221..527023c6fe 100644 --- a/test/fixtures/test-hex-id-data.js +++ b/test/fixtures/test-hex-id-data.js @@ -19,7 +19,7 @@ // THE SOFTWARE. import {KeplerGlLayers} from '@kepler.gl/layers'; -import {createDataContainer} from 'reducers/table-utils'; +import {createDataContainer} from '@kepler.gl/table'; import {DEFAULT_COLOR_UI} from '@kepler.gl/constants'; const {H3Layer} = KeplerGlLayers; diff --git a/test/helpers/comparison-utils.js b/test/helpers/comparison-utils.js index 168f961a24..7848daf6dd 100644 --- a/test/helpers/comparison-utils.js +++ b/test/helpers/comparison-utils.js @@ -19,8 +19,8 @@ // THE SOFTWARE. import {FILTER_TYPES} from '@kepler.gl/constants'; -import {toArray} from '../../src/utils'; -import {KeplerTable} from '../../src/reducers/table-utils'; +import {toArray} from '@kepler.gl/utils'; +import {KeplerTable} from '@kepler.gl/table'; export function cmpObjectKeys(t, expectedObj, actualObj, name) { t.deepEqual( diff --git a/test/helpers/layer-utils.js b/test/helpers/layer-utils.js index a54aae638e..b10f9655a6 100644 --- a/test/helpers/layer-utils.js +++ b/test/helpers/layer-utils.js @@ -26,13 +26,17 @@ import {mount} from 'enzyme'; import {console as Console} from 'global/window'; import cloneDeep from 'lodash.clonedeep'; -import {INITIAL_MAP_STATE} from 'reducers/map-state-updaters'; -import {INITIAL_VIS_STATE} from 'reducers/vis-state-updaters'; +import { + INITIAL_MAP_STATE, + INITIAL_VIS_STATE, + renderDeckGlLayer, + validateLayerWithData, + mapStateReducer as mapState +} from 'reducers'; +import {getGpuFilterProps} from '@kepler.gl/table'; import {VisStateActions, addDataToMap} from '@kepler.gl/actions'; import {colorMaker, layerColors, LayerClasses} from '@kepler.gl/layers'; -import {getGpuFilterProps, renderDeckGlLayer} from 'reducers'; -import {validateLayerWithData} from 'reducers/vis-state-merger'; import {processCsvData, processGeojson} from '@kepler.gl/processors'; import {applyActions, InitialState} from 'test/helpers/mock-state'; import {visStateReducer, keplerGlReducerCore} from 'reducers'; @@ -44,7 +48,6 @@ import tripGeoJson from 'test/fixtures/trip-geojson'; import {logStep} from '../../scripts/log'; import {IntlWrapper} from './component-utils'; -import mapState from 'reducers/map-state'; export const dataId = '0dj3h'; export const timeFilter = [{name: 'utc_timestamp', value: [1474071095000, 1474071608000]}]; diff --git a/test/helpers/mock-state.js b/test/helpers/mock-state.js index 3eb5a75230..e8df26ea28 100644 --- a/test/helpers/mock-state.js +++ b/test/helpers/mock-state.js @@ -22,9 +22,8 @@ import test from 'tape-catch'; import cloneDeep from 'lodash.clonedeep'; import {drainTasksForTesting} from 'react-palm/tasks'; -import {getInitialInputStyle} from 'reducers/map-style-updaters'; +import {getInitialInputStyle, keplerGlReducerCore as keplerGlReducer} from 'reducers'; -import keplerGlReducer from 'reducers/core'; import { VizColorPalette, COMPARE_TYPES, diff --git a/test/node/reducers/composer-state-test.js b/test/node/reducers/composer-state-test.js index 17213b9768..f062746d75 100644 --- a/test/node/reducers/composer-state-test.js +++ b/test/node/reducers/composer-state-test.js @@ -22,7 +22,7 @@ import test from 'tape'; import keplerGlReducer from 'reducers'; -import {addDataToMapUpdater} from 'reducers/combined-updaters'; +import {addDataToMapUpdater, INITIAL_UI_STATE} from 'reducers'; import {processCsvData} from '@kepler.gl/processors'; import {registerEntry} from '@kepler.gl/actions'; @@ -34,8 +34,6 @@ import testHexIdData, { expectedMergedDataset } from 'test/fixtures/test-hex-id-data'; import {cmpLayers, cmpFilters, cmpDataset, cmpInteraction} from 'test/helpers/comparison-utils'; -import {INITIAL_UI_STATE} from 'reducers/ui-state-updaters'; - const mockRawData = { fields: [ { diff --git a/test/node/reducers/map-state-test.js b/test/node/reducers/map-state-test.js index 85bad3a00a..20240be088 100644 --- a/test/node/reducers/map-state-test.js +++ b/test/node/reducers/map-state-test.js @@ -28,8 +28,7 @@ import { receiveMapConfig } from '@kepler.gl/actions'; -import reducer, {mapStateReducerFactory} from 'reducers/map-state'; -import {INITIAL_MAP_STATE} from 'reducers/map-state-updaters'; +import {mapStateReducer as reducer, mapStateReducerFactory, INITIAL_MAP_STATE} from 'reducers'; const InitialMapState = reducer(undefined, {}); test('#mapStateReducer', t => { diff --git a/test/node/reducers/map-style-test.js b/test/node/reducers/map-style-test.js index 0124c057eb..5a2f2d7cb2 100644 --- a/test/node/reducers/map-style-test.js +++ b/test/node/reducers/map-style-test.js @@ -21,12 +21,12 @@ import test from 'tape'; import {drainTasksForTesting, succeedTaskWithValues} from 'react-palm/tasks'; -import reducer from 'reducers/map-style'; import { + mapStyleReducer as reducer, INITIAL_MAP_STYLE, loadMapStylesUpdater, getInitialInputStyle -} from 'reducers/map-style-updaters'; +} from 'reducers'; import {keplerGlInit, receiveMapConfig} from '@kepler.gl/actions'; import SchemaManager from 'schemas'; import {DEFAULT_MAP_STYLES, DEFAULT_MAPBOX_API_URL} from '@kepler.gl/constants'; diff --git a/test/node/reducers/provider-state-test.js b/test/node/reducers/provider-state-test.js index 51e3c92c49..35c1f34a6e 100644 --- a/test/node/reducers/provider-state-test.js +++ b/test/node/reducers/provider-state-test.js @@ -29,8 +29,11 @@ import { resetProviderStatus, setCloudProvider } from '@kepler.gl/actions'; -import reducer, {providerStateReducerFactory} from 'reducers/provider-state'; -import {INITIAL_PROVIDER_STATE} from 'reducers/provider-state-updaters'; +import { + providerReducer as reducer, + providerStateReducerFactory, + INITIAL_PROVIDER_STATE +} from 'reducers'; import MockProvider from 'test/helpers/mock-provider'; test('#providerStateReducer', t => { diff --git a/test/node/reducers/ui-state-test.js b/test/node/reducers/ui-state-test.js index 89d405f205..7ce864cd3a 100644 --- a/test/node/reducers/ui-state-test.js +++ b/test/node/reducers/ui-state-test.js @@ -37,8 +37,7 @@ import { loadFilesErr, keplerGlInit } from '@kepler.gl/actions'; -import reducer, {uiStateReducerFactory} from 'reducers/ui-state'; -import {INITIAL_UI_STATE} from 'reducers/ui-state-updaters'; +import {uiStateReducer as reducer, uiStateReducerFactory, INITIAL_UI_STATE} from 'reducers'; import { EXPORT_DATA_TYPE, RESOLUTIONS, diff --git a/test/node/reducers/vis-state-merger-test.js b/test/node/reducers/vis-state-merger-test.js index f137ec4390..8dc4aafd86 100644 --- a/test/node/reducers/vis-state-merger-test.js +++ b/test/node/reducers/vis-state-merger-test.js @@ -27,17 +27,17 @@ import { mergeInteractions, mergeLayerBlending, mergeSplitMaps, - insertLayerAtRightOrder -} from 'reducers/vis-state-merger'; + insertLayerAtRightOrder, + visStateReducer, + keplerGlReducerCore as coreReducer, + defaultInteractionConfig +} from 'reducers'; import SchemaManager from 'schemas'; -import visStateReducer from 'reducers/vis-state'; -import coreReducer from 'reducers/core'; import {processKeplerglJSON} from '@kepler.gl/processors'; import {updateVisData, receiveMapConfig, addDataToMap} from '@kepler.gl/actions'; -import {defaultInteractionConfig} from 'reducers/vis-state-updaters'; -import {createDataContainer} from 'reducers/table-utils'; +import {createDataContainer} from '@kepler.gl/table'; // fixtures import { diff --git a/test/node/reducers/vis-state-test.js b/test/node/reducers/vis-state-test.js index ce13de9098..fb94387565 100644 --- a/test/node/reducers/vis-state-test.js +++ b/test/node/reducers/vis-state-test.js @@ -27,16 +27,23 @@ import {drainTasksForTesting, succeedTaskInTest, errorTaskInTest} from 'react-pa import CloneDeep from 'lodash.clonedeep'; import {VisStateActions, MapStateActions} from '@kepler.gl/actions'; -import reducer from 'reducers/vis-state'; +import { + visStateReducer as reducer, + INITIAL_VIS_STATE, + DEFAULT_ANIMATION_CONFIG, + serializeLayer, + defaultInteractionConfig +} from 'reducers'; -import {INITIAL_VIS_STATE, DEFAULT_ANIMATION_CONFIG} from 'reducers/vis-state-updaters'; -import {serializeLayer} from 'reducers/vis-state-merger'; -import KeplerTable from 'reducers/table-utils'; import {processCsvData, processGeojson} from '@kepler.gl/processors'; -import {defaultInteractionConfig} from 'reducers/vis-state-updaters'; import {Layer, KeplerGlLayers} from '@kepler.gl/layers'; -import {getDefaultFilter, createNewDataEntry} from 'reducers'; -import {createDataContainer, maybeToDate} from 'reducers/table-utils'; +import { + KeplerTable, + createDataContainer, + createNewDataEntry, + maybeToDate, + getDefaultFilter +} from '@kepler.gl/table'; import { ALL_FIELD_TYPES, EDITOR_MODES, diff --git a/test/node/utils/data-container-test.js b/test/node/utils/data-container-test.js index da7106c1fc..d2b7cc203c 100644 --- a/test/node/utils/data-container-test.js +++ b/test/node/utils/data-container-test.js @@ -20,7 +20,7 @@ import test from 'tape'; -import {createDataContainer, createIndexedDataContainer} from 'reducers/table-utils'; +import {createDataContainer, createIndexedDataContainer} from '@kepler.gl/table'; const data = [ [10, 20], // 0 diff --git a/test/node/utils/data-processor-test.js b/test/node/utils/data-processor-test.js index 15b5c0ea29..67e412ec34 100644 --- a/test/node/utils/data-processor-test.js +++ b/test/node/utils/data-processor-test.js @@ -57,7 +57,7 @@ import { getFieldsFromData } from '@kepler.gl/utils'; -import {createDataContainer} from 'reducers/table-utils'; +import {createDataContainer} from '@kepler.gl/table'; import {formatCsv} from 'reducers'; import {ALL_FIELD_TYPES} from '@kepler.gl/constants'; diff --git a/test/node/utils/data-scale-utils-test.js b/test/node/utils/data-scale-utils-test.js index 7b6d56b8b9..25009936e9 100644 --- a/test/node/utils/data-scale-utils-test.js +++ b/test/node/utils/data-scale-utils-test.js @@ -19,9 +19,14 @@ // THE SOFTWARE. import test from 'tape'; -import {getOrdinalDomain, getQuantileDomain, getLinearDomain, getLogDomain} from 'reducers'; -import {createDataContainer} from 'reducers/table-utils'; +import { + getOrdinalDomain, + getQuantileDomain, + getLinearDomain, + getLogDomain, + createDataContainer +} from '@kepler.gl/table'; function numberSort(a, b) { return a - b; diff --git a/test/node/utils/filter-utils-test.js b/test/node/utils/filter-utils-test.js index 7a1b389b5c..987cb1800c 100644 --- a/test/node/utils/filter-utils-test.js +++ b/test/node/utils/filter-utils-test.js @@ -33,10 +33,9 @@ import { diffFilters, getHistogram, getTimestampFieldDomain, + createDataContainer, getDatasetFieldIndexForFilter -} from '../../../src/reducers'; - -import {createDataContainer} from 'reducers/table-utils'; +} from '@kepler.gl/table'; import {FILTER_TYPES} from '@kepler.gl/constants'; import {mockPolygonFeature, mockPolygonData} from '../../fixtures/polygon'; diff --git a/test/node/utils/gpu-filter-utils-test.js b/test/node/utils/gpu-filter-utils-test.js index 1515b20cfb..a3ef1d05cc 100644 --- a/test/node/utils/gpu-filter-utils-test.js +++ b/test/node/utils/gpu-filter-utils-test.js @@ -24,7 +24,7 @@ import { assignGpuChannel, assignGpuChannels, getDatasetFieldIndexForFilter -} from 'reducers'; +} from '@kepler.gl/table'; test('gpuFilterUtils -> resetFilterGpuMode', t => { const testFilters = [ diff --git a/test/node/utils/kepler-table-test.js b/test/node/utils/kepler-table-test.js index 37d0a87822..e20f2f5820 100644 --- a/test/node/utils/kepler-table-test.js +++ b/test/node/utils/kepler-table-test.js @@ -23,7 +23,7 @@ import moment from 'moment'; import testData, {numericRangesCsv, testFields} from 'test/fixtures/test-csv-data'; import {preciseRound} from '@kepler.gl/utils'; -import {getFilterFunction, createNewDataEntry} from 'reducers'; +import {createNewDataEntry, getFilterFunction} from '@kepler.gl/table'; import {processCsvData} from '@kepler.gl/processors'; import {cmpFields} from '../../helpers/comparison-utils'; diff --git a/test/node/utils/layer-utils-test.js b/test/node/utils/layer-utils-test.js index 14bd019c8c..ae9c742607 100644 --- a/test/node/utils/layer-utils-test.js +++ b/test/node/utils/layer-utils-test.js @@ -23,7 +23,7 @@ import cloneDeep from 'lodash.clonedeep'; import {processCsvData, processGeojson} from '@kepler.gl/processors'; import {LayerClasses, KeplerGlLayers} from '@kepler.gl/layers'; import {GEOJSON_FIELDS} from '@kepler.gl/constants'; -import {findDefaultLayer, getLayerHoverProp, createNewDataEntry} from '../../../src/reducers'; +import {findDefaultLayer, getLayerHoverProp} from 'reducers'; import {StateWTripGeojson, StateWFiles} from 'test/helpers/mock-state'; const {PointLayer, ArcLayer, GeojsonLayer, LineLayer} = KeplerGlLayers; @@ -36,8 +36,9 @@ import {geoJsonWithStyle} from 'test/fixtures/geojson'; import { KeplerTable, findPointFieldPairs, - createDataContainer -} from '../../../src/reducers/table-utils'; + createDataContainer, + createNewDataEntry +} from '@kepler.gl/table'; test('layerUtils -> findDefaultLayer.1', t => { const inputFields = [