diff --git a/package.json b/package.json index 54c7330ad3..104d5112bc 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,8 @@ "workspaces": [ "./src/constants", "./src/types", - "./src/deckgl-layers" + "./src/deckgl-layers", + "./src/layers" ], "repository": { "type": "git", diff --git a/src/actions/vis-state-actions.ts b/src/actions/vis-state-actions.ts index 36f3a27e0d..6c0d7dc60f 100644 --- a/src/actions/vis-state-actions.ts +++ b/src/actions/vis-state-actions.ts @@ -22,10 +22,9 @@ import {default as ActionTypes} from './action-types'; import {AddDataToMapPayload} from '../actions/actions'; import {FileCacheItem} from '../processors/types'; -import {Layer, LayerBaseConfig, LayerVisConfig} from 'layers'; +import {Layer, LayerBaseConfig} from '@kepler.gl/layers'; import {Feature, InteractionConfig} from 'reducers/vis-state-updaters'; -import {ValueOf, Merge, RGBColor, NestedPartial} from '@kepler.gl/types'; -import {ColorUI} from 'layers/layer-factory'; +import {ValueOf, Merge, RGBColor, NestedPartial, LayerVisConfig, ColorUI} from '@kepler.gl/types'; // TODO - import LoaderObject type from @loaders.gl/core when supported // TODO - import LoadOptions type from @loaders.gl/core when supported diff --git a/src/components/editor/editor.tsx b/src/components/editor/editor.tsx index bac394ec05..84b649df24 100644 --- a/src/components/editor/editor.tsx +++ b/src/components/editor/editor.tsx @@ -28,11 +28,10 @@ import {createSelector} from 'reselect'; import FeatureActionPanelFactory, {FeatureActionPanelProps} from './feature-action-panel'; import {FILTER_TYPES, EDITOR_MODES, KeyEvent} from '@kepler.gl/constants'; -import {EDITOR_AVAILABLE_LAYERS} from 'layers/types'; +import {EDITOR_AVAILABLE_LAYERS, Layer} from '@kepler.gl/layers'; import {DEFAULT_RADIUS, getStyle as getFeatureStyle} from './feature-styles'; import {getStyle as getEditHandleStyle, getEditHandleShape} from './handle-style'; -import {Layer} from 'layers'; import {Datasets, Filter} from 'reducers'; import {Feature} from '@nebula.gl/edit-modes'; import {MjolnirEvent} from 'mjolnir.js'; diff --git a/src/components/editor/feature-action-panel.tsx b/src/components/editor/feature-action-panel.tsx index 77f30e5cc2..870ef704d9 100644 --- a/src/components/editor/feature-action-panel.tsx +++ b/src/components/editor/feature-action-panel.tsx @@ -27,7 +27,7 @@ import onClickOutside from 'react-onclickoutside'; import classnames from 'classnames'; import {Trash, Layers, Copy, Checkmark} from 'components/common/icons'; import copy from 'copy-to-clipboard'; -import {Layer} from 'layers'; +import {Layer} from '@kepler.gl/layers'; import {Datasets, Filter} from 'reducers'; import {Feature} from '@nebula.gl/edit-modes'; diff --git a/src/components/filters/filter-panels/types.ts b/src/components/filters/filter-panels/types.ts index d79377168c..e6cb215e85 100644 --- a/src/components/filters/filter-panels/types.ts +++ b/src/components/filters/filter-panels/types.ts @@ -1,6 +1,6 @@ import {FunctionComponent, ComponentType} from 'react'; import {Datasets, Filter, PolygonFilter, TimeRangeFilter} from 'reducers'; -import {Layer} from 'layers'; +import {Layer} from '@kepler.gl/layers'; import {Field} from 'utils/table-utils/kepler-table'; interface PanelAction { diff --git a/src/components/filters/polygon-filter.tsx b/src/components/filters/polygon-filter.tsx index b0d2eb76ab..0beedb8d73 100644 --- a/src/components/filters/polygon-filter.tsx +++ b/src/components/filters/polygon-filter.tsx @@ -20,8 +20,7 @@ import React, {useMemo, useCallback} from 'react'; import ItemSelector from 'components/common/item-selector/item-selector'; -import {Layer} from 'layers'; -import {LAYER_TYPES} from 'layers/types'; +import {Layer, LAYER_TYPES} from '@kepler.gl/layers'; import {PolygonFilterProps} from './types'; import {StyledFilterPanel} from './components'; diff --git a/src/components/filters/types.ts b/src/components/filters/types.ts index 2d41d90914..9f56f5ade6 100644 --- a/src/components/filters/types.ts +++ b/src/components/filters/types.ts @@ -6,7 +6,7 @@ import { SelectFilter, TimeRangeFilter } from 'reducers'; -import {Layer} from 'layers'; +import {Layer} from '@kepler.gl/layers'; import { ActionHandler, enlargeFilter, diff --git a/src/components/map-container.tsx b/src/components/map-container.tsx index 410c52f7e9..9de282b4e5 100644 --- a/src/components/map-container.tsx +++ b/src/components/map-container.tsx @@ -38,7 +38,13 @@ import {StyledMapContainer, StyledAttrbution} from 'components/common/styled-com import EditorFactory from './editor/editor'; // utils -import {generateMapboxLayers, updateMapboxLayers} from 'layers/mapbox-utils'; +import { + generateMapboxLayers, + updateMapboxLayers, + Layer, + LayerBaseConfig, + VisualChannelDomain +} from '@kepler.gl/layers'; import {setLayerBlending} from 'utils/gl-utils'; import {transformRequest} from 'utils/map-style-utils/mapbox-utils'; import { @@ -65,9 +71,7 @@ import { MapStyle, Viewport } from 'reducers'; -import {Layer} from 'layers'; import {SplitMapLayers} from 'reducers/vis-state-updaters'; -import {LayerBaseConfig, VisualChannelDomain} from 'layers/base-layer'; /** @type {{[key: string]: React.CSSProperties}} */ const MAP_STYLE: {[key: string]: React.CSSProperties} = { diff --git a/src/components/map/layer-selector-panel.tsx b/src/components/map/layer-selector-panel.tsx index 4b4b768459..bb907d152b 100644 --- a/src/components/map/layer-selector-panel.tsx +++ b/src/components/map/layer-selector-panel.tsx @@ -26,7 +26,7 @@ import {Layers} from '../common/icons'; import MapLayerSelector from '../common/map-layer-selector'; import MapControlTooltipFactory from './map-control-tooltip'; import MapControlPanelFactory from './map-control-panel'; -import {Layer} from 'layers'; +import {Layer} from '@kepler.gl/layers'; import {MapControl, MapControls} from 'reducers'; LayerSelectorPanelFactory.deps = [MapControlTooltipFactory, MapControlPanelFactory]; diff --git a/src/components/map/map-control.tsx b/src/components/map/map-control.tsx index acd3694a14..a641b19a50 100644 --- a/src/components/map/map-control.tsx +++ b/src/components/map/map-control.tsx @@ -30,7 +30,7 @@ import MapLegendPanelFactory from './map-legend-panel'; import MapDrawPanelFactory from './map-draw-panel'; import LocalePanelFactory from './locale-panel'; import {Datasets, Editor, MapControls} from 'reducers'; -import {Layer} from 'layers'; +import {Layer} from '@kepler.gl/layers'; interface StyledMapControlProps { top?: number; diff --git a/src/components/map/map-legend-panel.tsx b/src/components/map/map-legend-panel.tsx index 1b4c9e24c5..21df9b9de3 100644 --- a/src/components/map/map-legend-panel.tsx +++ b/src/components/map/map-legend-panel.tsx @@ -31,7 +31,7 @@ import TippyTooltip from 'components/common/tippy-tooltip'; import {createPortal} from 'react-dom'; import {DIMENSIONS} from '@kepler.gl/constants'; import {MapControl, MapControls} from 'reducers'; -import {Layer} from 'layers'; +import {Layer} from '@kepler.gl/layers'; MapLegendPanelFactory.deps = [MapControlPanelFactory, MapLegendFactory]; diff --git a/src/components/map/map-legend.tsx b/src/components/map/map-legend.tsx index aed77f2b8f..42e98fc8f0 100644 --- a/src/components/map/map-legend.tsx +++ b/src/components/map/map-legend.tsx @@ -24,7 +24,7 @@ import {rgb} from 'd3-color'; import ColorLegend from 'components/common/color-legend'; import {CHANNEL_SCALES, DIMENSIONS} from '@kepler.gl/constants'; import {FormattedMessage} from 'localization'; -import Layer, {LayerBaseConfig, VisualChannel, VisualChannelDescription} from 'layers/base-layer'; +import {Layer, LayerBaseConfig, VisualChannel, VisualChannelDescription} from '@kepler.gl/layers'; interface StyledMapControlLegendProps { width?: number; diff --git a/src/components/modal-container.tsx b/src/components/modal-container.tsx index 94af934bf6..b3b5736120 100644 --- a/src/components/modal-container.tsx +++ b/src/components/modal-container.tsx @@ -46,6 +46,7 @@ import {media} from 'styles/media-breakpoints'; // Template import { + KeyEvent, ADD_DATA_ID, DATA_TABLE_ID, DELETE_DATA_ID, @@ -57,8 +58,6 @@ import { SHARE_MAP_ID, OVERWRITE_MAP_ID } from '@kepler.gl/constants'; - -import {KeyEvent} from '@kepler.gl/constants'; import {getFileFormatNames, getFileExtensions} from '../reducers/vis-state-selectors'; import {MapState, MapStyle, UiState, VisState} from 'reducers'; import {OnSuccessCallBack, OnErrorCallBack} from 'actions'; diff --git a/src/components/modals/delete-data-modal.tsx b/src/components/modals/delete-data-modal.tsx index 66f3b82d71..63cd063a91 100644 --- a/src/components/modals/delete-data-modal.tsx +++ b/src/components/modals/delete-data-modal.tsx @@ -22,7 +22,7 @@ import React from 'react'; import styled from 'styled-components'; import DatasetLabel from 'components/common/dataset-label'; import {FormattedMessage} from 'localization'; -import {Layer} from 'layers'; +import {Layer} from '@kepler.gl/layers'; import KeplerTable from 'utils/table-utils/kepler-table'; const StyledMsg = styled.div` diff --git a/src/components/side-panel/filter-manager.tsx b/src/components/side-panel/filter-manager.tsx index afd88d39db..07b82610c0 100644 --- a/src/components/side-panel/filter-manager.tsx +++ b/src/components/side-panel/filter-manager.tsx @@ -25,7 +25,7 @@ import {Add} from 'components/common/icons'; import SourceDataCatalogFactory from './common/source-data-catalog'; import FilterPanelFactory from './filter-panel/filter-panel'; import {Datasets, Filter} from 'reducers'; -import {Layer} from 'layers'; +import {Layer} from '@kepler.gl/layers'; import * as VisStateActions from 'actions/vis-state-actions'; import {ActionHandler} from 'actions'; diff --git a/src/components/side-panel/filter-panel/filter-panel.tsx b/src/components/side-panel/filter-panel/filter-panel.tsx index cdf8ee33fc..1c87afc04b 100644 --- a/src/components/side-panel/filter-panel/filter-panel.tsx +++ b/src/components/side-panel/filter-panel/filter-panel.tsx @@ -33,7 +33,7 @@ import PolygonFilterPanelFactory from 'components/filters/filter-panels/polygon- import {Filter} from 'reducers/vis-state-updaters'; import {Field} from 'utils/table-utils/kepler-table'; import {FilterPanelProps} from 'components/filters/filter-panels/types'; -import {Layer} from 'layers'; +import {Layer} from '@kepler.gl/layers'; const StyledFilterPanel = styled.div` margin-bottom: 12px; diff --git a/src/components/side-panel/interaction-panel/tooltip-config/tooltip-chicklet.tsx b/src/components/side-panel/interaction-panel/tooltip-config/tooltip-chicklet.tsx index 1d9bc0745c..33177c571d 100644 --- a/src/components/side-panel/interaction-panel/tooltip-config/tooltip-chicklet.tsx +++ b/src/components/side-panel/interaction-panel/tooltip-config/tooltip-chicklet.tsx @@ -25,8 +25,7 @@ import {Hash, Delete} from 'components/common/icons'; import DropdownList from 'components/common/item-selector/dropdown-list'; import {FormattedMessage} from 'localization'; import onClickOutside from 'react-onclickoutside'; -import {FIELD_OPTS} from '@kepler.gl/constants'; -import {TOOLTIP_FORMATS, TOOLTIP_FORMAT_TYPES, TOOLTIP_KEY} from '@kepler.gl/constants'; +import {FIELD_OPTS, TOOLTIP_FORMATS, TOOLTIP_FORMAT_TYPES, TOOLTIP_KEY} from '@kepler.gl/constants'; import {getFormatter} from 'utils/data-utils'; import TippyTooltip from 'components/common/tippy-tooltip'; diff --git a/src/components/side-panel/layer-manager.tsx b/src/components/side-panel/layer-manager.tsx index 2a2d5e9c7b..1a88aa539c 100644 --- a/src/components/side-panel/layer-manager.tsx +++ b/src/components/side-panel/layer-manager.tsx @@ -36,7 +36,7 @@ import {PanelLabel, SidePanelDivider, SidePanelSection} from 'components/common/ import {LAYER_BLENDINGS} from '@kepler.gl/constants'; import {Datasets} from 'reducers'; -import {Layer, LayerClassesType} from 'layers'; +import {Layer, LayerClassesType} from '@kepler.gl/layers'; import * as UiStateActions from 'actions/ui-state-actions'; import * as VisStateActions from 'actions/vis-state-actions'; import {SidePanelItem} from 'components/types'; diff --git a/src/components/side-panel/layer-panel/color-range-selector.tsx b/src/components/side-panel/layer-panel/color-range-selector.tsx index c6c2aa9389..6611e7c54e 100644 --- a/src/components/side-panel/layer-panel/color-range-selector.tsx +++ b/src/components/side-panel/layer-panel/color-range-selector.tsx @@ -32,8 +32,7 @@ import {COLOR_RANGES, ColorRange} from '@kepler.gl/constants'; import {numberSort} from 'utils/data-utils'; import {reverseColorRange} from 'utils/color-utils'; import {FormattedMessage} from 'localization'; -import {ColorUI} from 'layers/layer-factory'; -import {NestedPartial} from '@kepler.gl/types'; +import {NestedPartial, ColorUI} from '@kepler.gl/types'; type ColorRangeSelectorProps = { colorPaletteUI: ColorUI; diff --git a/src/components/side-panel/layer-panel/color-selector.tsx b/src/components/side-panel/layer-panel/color-selector.tsx index 0fa29e5893..1db3d77b48 100644 --- a/src/components/side-panel/layer-panel/color-selector.tsx +++ b/src/components/side-panel/layer-panel/color-selector.tsx @@ -26,9 +26,8 @@ import ColorRangeSelector from './color-range-selector'; import ColorPalette from './color-palette'; import {StyledPanelDropdown} from 'components/common/styled-components'; import onClickOutside from 'react-onclickoutside'; -import {ColorUI} from 'layers/layer-factory'; import {ColorRange} from '@kepler.gl/constants'; -import {NestedPartial, RGBColor} from '@kepler.gl/types'; +import {NestedPartial, RGBColor, ColorUI} from '@kepler.gl/types'; type ColorSelectorInputProps = { active: boolean; diff --git a/src/components/side-panel/layer-panel/column-selector.tsx b/src/components/side-panel/layer-panel/column-selector.tsx index 05c1d12c10..8c34c2fa30 100644 --- a/src/components/side-panel/layer-panel/column-selector.tsx +++ b/src/components/side-panel/layer-panel/column-selector.tsx @@ -24,7 +24,7 @@ import {FormattedMessage} from 'localization'; import {PanelLabel} from 'components/common/styled-components'; import FieldSelectorFactory from 'components/common/field-selector'; import {validateColumn} from 'reducers/vis-state-merger'; -import {LayerColumn, LayerColumns} from 'layers'; +import {LayerColumn, LayerColumns} from '@kepler.gl/layers'; import {Field, FieldPair} from 'utils/table-utils/kepler-table'; type Pair = { 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 795969a32a..6f8e703dd0 100644 --- a/src/components/side-panel/layer-panel/dataset-layer-group.tsx +++ b/src/components/side-panel/layer-panel/dataset-layer-group.tsx @@ -22,7 +22,7 @@ import React, {useMemo} from 'react'; import DatasetLayerSectionFactory from './dataset-layer-section'; import {Datasets} from 'reducers'; -import {Layer, LayerClassesType} from 'layers'; +import {Layer, LayerClassesType} from '@kepler.gl/layers'; import * as UiStateActions from 'actions/ui-state-actions'; import * as VisStateActions from 'actions/vis-state-actions'; import {ActionHandler} from 'actions'; 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 5a886529f8..2f418baf86 100644 --- a/src/components/side-panel/layer-panel/dataset-layer-section.tsx +++ b/src/components/side-panel/layer-panel/dataset-layer-section.tsx @@ -23,7 +23,7 @@ import styled from 'styled-components'; import SourceDataCatalogFactory from '../common/source-data-catalog'; import LayerListFactory from './layer-list'; -import {Layer, LayerClassesType} from 'layers'; +import {Layer, LayerClassesType} from '@kepler.gl/layers'; import KeplerTable from 'utils/table-utils/kepler-table'; import * as UiStateActions from 'actions/ui-state-actions'; import * as VisStateActions from 'actions/vis-state-actions'; diff --git a/src/components/side-panel/layer-panel/layer-column-config.tsx b/src/components/side-panel/layer-panel/layer-column-config.tsx index 6876cfbbcb..e3034d55f6 100644 --- a/src/components/side-panel/layer-panel/layer-column-config.tsx +++ b/src/components/side-panel/layer-panel/layer-column-config.tsx @@ -23,8 +23,7 @@ import styled from 'styled-components'; import {FormattedMessage} from 'localization'; import {PanelLabel, SidePanelSection} from 'components/common/styled-components'; import ColumnSelectorFactory from './column-selector'; -import {ColumnPairs} from 'layers/base-layer'; -import {Layer, LayerColumns, LayerBaseConfig} from 'layers'; +import {ColumnPairs, Layer, LayerColumns, LayerBaseConfig} from '@kepler.gl/layers'; import {Field, FieldPair} from 'utils/table-utils/kepler-table'; type LayerColumnConfigProps = { diff --git a/src/components/side-panel/layer-panel/layer-config-group.tsx b/src/components/side-panel/layer-panel/layer-config-group.tsx index 787851646f..b981bd99a8 100644 --- a/src/components/side-panel/layer-panel/layer-config-group.tsx +++ b/src/components/side-panel/layer-panel/layer-config-group.tsx @@ -26,7 +26,8 @@ import {FormattedMessage} from 'react-intl'; import Switch from 'components/common/switch'; import InfoHelperFactory from 'components/common/info-helper'; import {VertThreeDots} from 'components/common/icons'; -import {Layer, LayerVisConfig} from 'layers'; +import {Layer} from '@kepler.gl/layers'; +import {LayerVisConfig} from '@kepler.gl/types'; type LayerConfigGroupLabelProps = { label?: string; diff --git a/src/components/side-panel/layer-panel/layer-configurator.tsx b/src/components/side-panel/layer-panel/layer-configurator.tsx index 2602230f2f..4054801080 100644 --- a/src/components/side-panel/layer-panel/layer-configurator.tsx +++ b/src/components/side-panel/layer-panel/layer-configurator.tsx @@ -40,13 +40,16 @@ import TextLabelPanelFactory from './text-label-panel'; import {capitalizeFirstLetter} from 'utils/utils'; import {CHANNEL_SCALE_SUPPORTED_FIELDS, ColorRange} from '@kepler.gl/constants'; -import {Layer, LayerBaseConfig, LayerVisConfig} from 'layers'; -import {LAYER_TYPES} from 'layers/types'; +import { + Layer, + LayerBaseConfig, + LAYER_TYPES, + VisualChannel, + AggregationLayer +} from '@kepler.gl/layers'; + import {Datasets} from 'reducers'; -import {NestedPartial, RGBColor} from '@kepler.gl/types'; -import {ColorUI} from 'layers/layer-factory'; -import {VisualChannel} from 'layers/base-layer'; -import AggregationLayer from 'layers/aggregation-layer'; +import {NestedPartial, RGBColor, LayerVisConfig, ColorUI} from '@kepler.gl/types'; import {Field} from 'utils/table-utils/kepler-table'; import {toggleModal} from 'actions/ui-state-actions'; import {ActionHandler} from 'actions'; diff --git a/src/components/side-panel/layer-panel/layer-list.tsx b/src/components/side-panel/layer-panel/layer-list.tsx index f24ba85e90..85f75190e2 100644 --- a/src/components/side-panel/layer-panel/layer-list.tsx +++ b/src/components/side-panel/layer-panel/layer-list.tsx @@ -25,7 +25,7 @@ import classnames from 'classnames'; import {SortableContainer, SortableElement} from 'react-sortable-hoc'; import LayerPanelFactory from './layer-panel'; import {Datasets} from 'reducers'; -import {Layer, LayerClassesType} from 'layers'; +import {Layer, LayerClassesType} from '@kepler.gl/layers'; import * as UiStateActions from 'actions/ui-state-actions'; import * as VisStateActions from 'actions/vis-state-actions'; diff --git a/src/components/side-panel/layer-panel/layer-panel.tsx b/src/components/side-panel/layer-panel/layer-panel.tsx index eb7087be7d..75a15c1448 100644 --- a/src/components/side-panel/layer-panel/layer-panel.tsx +++ b/src/components/side-panel/layer-panel/layer-panel.tsx @@ -30,11 +30,10 @@ import styled from 'styled-components'; import LayerConfiguratorFactory from './layer-configurator'; import LayerPanelHeaderFactory from './layer-panel-header'; import {Datasets} from 'reducers'; -import {NestedPartial} from '@kepler.gl/types'; -import {Layer, LayerBaseConfig, LayerVisConfig} from 'layers'; +import {NestedPartial, LayerVisConfig, ColorUI} from '@kepler.gl/types'; +import {Layer, LayerBaseConfig} from '@kepler.gl/layers'; import {toggleModal} from 'actions/ui-state-actions'; import * as VisStateActions from 'actions/vis-state-actions'; -import {ColorUI} from 'layers/layer-factory'; import {ActionHandler} from 'actions'; type LayerPanelProps = { diff --git a/src/components/side-panel/layer-panel/layer-type-selector.tsx b/src/components/side-panel/layer-panel/layer-type-selector.tsx index 875ec3c994..aed9092635 100644 --- a/src/components/side-panel/layer-panel/layer-type-selector.tsx +++ b/src/components/side-panel/layer-panel/layer-type-selector.tsx @@ -26,7 +26,7 @@ import LayerTypeListItemFactory from './layer-type-list-item'; import ItemSelector from 'components/common/item-selector/item-selector'; import {SidePanelSection} from 'components/common/styled-components'; -import {Layer} from 'layers'; +import {Layer} from '@kepler.gl/layers'; import {Datasets} from 'reducers'; type Option = { diff --git a/src/components/side-panel/layer-panel/text-label-panel.tsx b/src/components/side-panel/layer-panel/text-label-panel.tsx index f594d0bc7a..69c84b5cb2 100644 --- a/src/components/side-panel/layer-panel/text-label-panel.tsx +++ b/src/components/side-panel/layer-panel/text-label-panel.tsx @@ -37,10 +37,10 @@ import LayerConfigGroupFactory, { } from './layer-config-group'; import RangeSliderFactory from 'components/common/range-slider'; -import {LayerTextLabel, LAYER_TEXT_CONFIGS} from 'layers/layer-factory'; import FieldSelectorFactory from '../../common/field-selector'; import {Field} from 'utils/table-utils/kepler-table'; -import {RGBColor} from '@kepler.gl/types'; +import {RGBColor, LayerTextLabel} from '@kepler.gl/types'; +import {LAYER_TEXT_CONFIGS} from '@kepler.gl/constants'; type TextLabelPanelProps = { fields: Field[]; 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 643b800b9f..c438634038 100644 --- a/src/components/side-panel/layer-panel/vis-config-slider.tsx +++ b/src/components/side-panel/layer-panel/vis-config-slider.tsx @@ -28,7 +28,7 @@ import {KeyEvent} from '@kepler.gl/constants'; import {Checkbox} from 'components'; import {clamp} from 'utils/data-utils'; import {isInRange} from 'utils/filter-utils'; -import {Layer, LayerBaseConfig} from 'layers'; +import {Layer, LayerBaseConfig} from '@kepler.gl/layers'; type LazyInputProps = { value: string | [string, string]; diff --git a/src/components/side-panel/layer-panel/vis-config-switch.tsx b/src/components/side-panel/layer-panel/vis-config-switch.tsx index 0214d91283..32e0fa57b4 100644 --- a/src/components/side-panel/layer-panel/vis-config-switch.tsx +++ b/src/components/side-panel/layer-panel/vis-config-switch.tsx @@ -25,7 +25,7 @@ import Switch from 'components/common/switch'; import {SidePanelSection, PanelLabel} from 'components/common/styled-components'; import {capitalizeFirstLetter} from 'utils/utils'; import {FormattedMessage} from 'localization'; -import {Layer} from 'layers'; +import {Layer} from '@kepler.gl/layers'; type VisConfigSwitchProps = { layer: Layer; diff --git a/src/components/types.ts b/src/components/types.ts index e7fc1ad161..145520d34f 100644 --- a/src/components/types.ts +++ b/src/components/types.ts @@ -1,6 +1,6 @@ import {ComponentType} from 'react'; import {Datasets, Filter, InteractionConfig, MapStyle} from '../reducers'; -import {Layer, LayerClassesType} from '../layers'; +import {Layer, LayerClassesType} from '@kepler.gl/layers'; import {UiState} from 'reducers/ui-state-updaters'; import * as MapStyleActions from 'actions/map-style-actions'; diff --git a/src/constants/src/index.ts b/src/constants/src/index.ts index c1a671c54c..08351cc1a8 100644 --- a/src/constants/src/index.ts +++ b/src/constants/src/index.ts @@ -24,6 +24,7 @@ export * from './color-palette'; export * from './color-ranges'; export * from './custom-color-ranges'; export * from './default-settings'; +export * from './layers'; export {default as KeyEvent} from './keyevent'; export * from './tooltip'; export * from './user-feedbacks'; diff --git a/src/layers/layer-factory.ts b/src/constants/src/layers.ts similarity index 71% rename from src/layers/layer-factory.ts rename to src/constants/src/layers.ts index 436bcff80b..d4754a5cf1 100644 --- a/src/layers/layer-factory.ts +++ b/src/constants/src/layers.ts @@ -20,206 +20,19 @@ import keyMirror from 'keymirror'; -import {AGGREGATION_TYPES, ColorRange, DEFAULT_COLOR_RANGE} from '@kepler.gl/constants'; +import {ColorRange, DEFAULT_COLOR_RANGE} from './color-ranges'; +import {AGGREGATION_TYPES} from './default-settings'; -import {RGBColor, RGBAColor} from '@kepler.gl/types'; -import {Field} from '../utils/table-utils/kepler-table'; import { - LayerBaseConfig, - LayerColorConfig, - LayerHeightConfig, - LayerSizeConfig, - LayerWeightConfig -} from './base-layer'; - -export type LayerTextLabel = { - field: Field | null; - color: RGBColor; - size: number; - offset: [number, number]; - anchor: string; - alignment: string; -}; + ColorUI, + LayerTextConfig, + LayerTextLabel, + LayerVisConfigSettings, + RGBAColor +} from '@kepler.gl/types'; export type AggregationTypes = keyof typeof AGGREGATION_TYPES; -export type ColorUI = { - // customPalette in edit - customPalette: ColorRange; - // show color sketcher modal - showSketcher: boolean | number; - // show color range selection panel - showDropdown: boolean | number; - // color range selector config - colorRangeConfig: { - type: string; - steps: number; - reversed: boolean; - custom: boolean; - }; -}; - -export type VisConfig = { - label: - | string - | (( - config: LayerBaseConfig & - Partial & - Partial & - Partial & - Partial - ) => string); - group: keyof typeof PROPERTY_GROUPS; - property: string; - description?: string; - condition?: ( - config: LayerBaseConfig & - Partial & - Partial & - Partial & - Partial - ) => boolean; - - allowCustomValue?: boolean; -}; - -export type VisConfigNumber = VisConfig & { - type: 'number'; - isRanged: false; - defaultValue: number; - range: [number, number]; - step: number; -}; - -export type VisConfigBoolean = VisConfig & { - type: 'boolean'; - defaultValue: boolean; -}; - -export type VisConfigSelection = VisConfig & { - type: 'select'; - defaultValue: string; - options: string[]; -}; - -export type VisConfigRange = VisConfig & { - type: 'number'; - isRanged: boolean; - range: [number, number]; - defaultValue: [number, number]; - step: number; -}; - -export type VisConfigColorSelect = VisConfig & { - type: 'color-select'; - defaultValue: null; -}; - -export type VisConfigColorRange = VisConfig & { - type: 'color-range-select'; - defaultValue: ColorRange; -}; - -export type LayerVisConfigSettings = { - thickness: VisConfigNumber; - strokeWidthRange: VisConfigRange; - trailLength: VisConfigNumber; - radius: VisConfigNumber; - fixedRadius: VisConfigBoolean; - radiusRange: VisConfigRange; - clusterRadius: VisConfigNumber; - clusterRadiusRange: VisConfigRange; - opacity: VisConfigNumber; - coverage: VisConfigNumber; - outline: VisConfigBoolean; - colorRange: VisConfigColorRange; - strokeColorRange: VisConfigColorRange; - targetColor: VisConfigColorSelect; - strokeColor: VisConfigColorSelect; - colorAggregation: VisConfigSelection; - sizeAggregation: VisConfigSelection; - percentile: VisConfigRange; - elevationPercentile: VisConfigRange; - resolution: VisConfigNumber; - sizeScale: VisConfigNumber; - angle: VisConfigNumber; - worldUnitSize: VisConfigNumber; - elevationScale: VisConfigNumber; - enableElevationZoomFactor: VisConfigBoolean; - elevationRange: VisConfigRange; - heightRange: VisConfigRange; - coverageRange: VisConfigRange; - 'hi-precision': VisConfigBoolean; - enable3d: VisConfigBoolean; - stroked: VisConfigBoolean; - filled: VisConfigBoolean; - extruded: VisConfigBoolean; - wireframe: VisConfigBoolean; - weight: VisConfigNumber; - heatmapRadius: VisConfigNumber; -}; - -// TODO: Move this to individual layers -export type LayerVisConfig = { - [key: string]: any; - // possible visConfigs - - // thickness: number; - // sizeRange: number; - // trailLength: number; - // radius: number; - // fixedRadius: boolean; - // radiusRange: [number, number]; - // clusterRadius: number; - // opacity: number; - // coverage: number; - // outline: boolean; - // colorRange: ColorRange; - // strokeColorRange: ColorRange; - // targetColor: any; - // strokeColor: any; - // colorAggregation: keyof typeof AGGREGATION_TYPES; - // sizeAggregation: keyof typeof AGGREGATION_TYPES; - // percentile: [number, number]; - // elevationPercentile: [number, number]; - // resolution: number; - // sizeScale: number; - // angle: number; - // worldUnitSize: number; - // elevationScale: number; - // enableElevationZoomFactor: boolean; - // heightRange: [number, number]; - // coverageRange: [number, number]; - // 'hi-precision': boolean; - // enable3d: boolean; - // stroked: boolean; - // filled: boolean; - // extruded: boolean; - // wireframe: boolean; - // weight: number; -}; - -export type TextConfigSelect = { - type: 'select'; - options: string[]; - multiSelect: boolean; - searchable: boolean; -}; -export type TextConfigNumber = { - type: 'number'; - range: number[]; - value0: number; - step: number; - isRanged: boolean; - label: string; - showInput: boolean; -}; -export type LayerTextConfig = { - fontSize: TextConfigNumber; - textAnchor: TextConfigSelect; - textAlignment: TextConfigSelect; -}; - export const PROPERTY_GROUPS = keyMirror({ color: null, stroke: null, diff --git a/src/deckgl-layers/src/cluster-layer/cluster-layer.ts b/src/deckgl-layers/src/cluster-layer/cluster-layer.ts index 408ca11d42..7a5d05f49d 100644 --- a/src/deckgl-layers/src/cluster-layer/cluster-layer.ts +++ b/src/deckgl-layers/src/cluster-layer/cluster-layer.ts @@ -31,8 +31,7 @@ import CPUAggregator, { import {getDistanceScales} from 'viewport-mercator-project'; import {max} from 'd3-array'; -import {LAYER_VIS_CONFIGS} from '../../../layers/layer-factory'; -import {SCALE_TYPES, DEFAULT_COLOR_RANGE} from '@kepler.gl/constants'; +import {SCALE_TYPES, DEFAULT_COLOR_RANGE, LAYER_VIS_CONFIGS} from '@kepler.gl/constants'; import ClusterBuilder, {getGeoJSON} from '../layer-utils/cluster-utils'; import {RGBAColor} from '@kepler.gl/types'; import {AggregationLayerProps} from '@deck.gl/aggregation-layers/aggregation-layer'; diff --git a/src/layers/babel.config.js b/src/layers/babel.config.js new file mode 100644 index 0000000000..8693d21ea7 --- /dev/null +++ b/src/layers/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/layers/package.json b/src/layers/package.json new file mode 100644 index 0000000000..c2e380e37f --- /dev/null +++ b/src/layers/package.json @@ -0,0 +1,74 @@ +{ + "name": "@kepler.gl/layers", + "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/layers/src/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" + }, + "files": [ + "dist", + "umd" + ], + "dependencies": { + "@deck.gl/geo-layers": "8.2.0", + "@deck.gl/core": "8.2.0", + "@deck.gl/extensions": "8.2.0", + "@deck.gl/layers": "8.2.0", + "@deck.gl/mesh-layers": "8.2.0", + "@kepler.gl/deckgl-layers": "^2.5.5", + "@kepler.gl/layers": "^2.5.5", + "@kepler.gl/constants": "^2.5.5", + "@kepler.gl/types": "^2.5.5", + "@loaders.gl/core": "^2.3.3", + "@loaders.gl/gltf": "^2.3.3", + "@mapbox/geojson-normalize": "0.0.1", + "@turf/bbox": "^6.0.1", + "@types/geojson": "^7946.0.7", + "global": "^4.3.0", + "h3-js": "^3.1.0", + "keymirror": "^0.1.1", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.0.1", + "long": "^4.0.0", + "react": "^16.8.4", + "s2-geometry": "^1.2.10", + "styled-components": "^4.1.3", + "type-analyzer": "0.3.0", + "viewport-mercator-project": "^6.0.0", + "wellknown": "^0.5.0" + }, + "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/layers/aggregation-layer.ts b/src/layers/src/aggregation-layer.ts similarity index 98% rename from src/layers/aggregation-layer.ts rename to src/layers/src/aggregation-layer.ts index 931070ace6..6d1dc62406 100644 --- a/src/layers/aggregation-layer.ts +++ b/src/layers/src/aggregation-layer.ts @@ -27,8 +27,8 @@ import Layer, { VisualChannelDescription, VisualChannels } from './base-layer'; -import {hexToRgb} from '../utils/color-utils'; -import {aggregate} from '../utils/aggregate-utils'; +import {hexToRgb} from '../../utils/color-utils'; +import {aggregate} from '../../utils/aggregate-utils'; import { HIGHLIGH_COLOR_3D, CHANNEL_SCALES, @@ -36,9 +36,9 @@ import { DEFAULT_AGGREGATION, ColorRange } from '@kepler.gl/constants'; -import {Datasets} from '../reducers'; +import {Datasets} from 'reducers'; import {Merge} from '@kepler.gl/types'; -import {KeplerTable} from '../utils'; +import {KeplerTable} from '../../utils'; type AggregationLayerColumns = { lat: LayerColumn; diff --git a/src/layers/arc-layer/arc-layer-icon.tsx b/src/layers/src/arc-layer/arc-layer-icon.tsx similarity index 98% rename from src/layers/arc-layer/arc-layer-icon.tsx rename to src/layers/src/arc-layer/arc-layer-icon.tsx index 12f158ec64..bcf142b991 100644 --- a/src/layers/arc-layer/arc-layer-icon.tsx +++ b/src/layers/src/arc-layer/arc-layer-icon.tsx @@ -20,7 +20,7 @@ import React, {Component} from 'react'; import PropTypes from 'prop-types'; -import Base from '../../components/common/icons/base'; +import Base from 'components/common/icons/base'; class ArcLayerIcon extends Component { static propTypes = { diff --git a/src/layers/arc-layer/arc-layer.ts b/src/layers/src/arc-layer/arc-layer.ts similarity index 96% rename from src/layers/arc-layer/arc-layer.ts rename to src/layers/src/arc-layer/arc-layer.ts index 0e1649f578..6507045f22 100644 --- a/src/layers/arc-layer/arc-layer.ts +++ b/src/layers/src/arc-layer/arc-layer.ts @@ -28,19 +28,20 @@ import Layer, { import {BrushingExtension} from '@deck.gl/extensions'; import {ArcLayer as DeckArcLayer} from '@deck.gl/layers'; -import {hexToRgb} from '../../utils/color-utils'; +import {hexToRgb} from 'utils/color-utils'; import ArcLayerIcon from './arc-layer-icon'; import {DEFAULT_LAYER_COLOR, ColorRange} from '@kepler.gl/constants'; -import {DataContainerInterface} from '../../utils/table-utils/data-container-interface'; -import {RGBColor, Merge} from '@kepler.gl/types'; +import {DataContainerInterface} from 'utils/table-utils/data-container-interface'; import { + RGBColor, + Merge, VisConfigColorRange, VisConfigColorSelect, VisConfigNumber, VisConfigRange -} from '../layer-factory'; -import KeplerTable from '../../utils/table-utils/kepler-table'; +} from '@kepler.gl/types'; +import KeplerTable from 'utils/table-utils/kepler-table'; export type ArcLayerVisConfigSettings = { opacity: VisConfigNumber; diff --git a/src/layers/base-layer.ts b/src/layers/src/base-layer.ts similarity index 99% rename from src/layers/base-layer.ts rename to src/layers/src/base-layer.ts index 7a3acd32fd..5dd21d99b8 100644 --- a/src/layers/base-layer.ts +++ b/src/layers/src/base-layer.ts @@ -38,18 +38,14 @@ import { MAX_GPU_FILTERS, ColorRange, COLOR_RANGES, - DataVizColors -} from '@kepler.gl/constants'; -import { + DataVizColors, LAYER_VIS_CONFIGS, DEFAULT_TEXT_LABEL, DEFAULT_COLOR_UI, UNKNOWN_COLOR_KEY, DEFAULT_HIGHLIGHT_COLOR, - DEFAULT_LAYER_LABEL, - LayerVisConfig, - LayerVisConfigSettings -} from './layer-factory'; + DEFAULT_LAYER_LABEL +} from '@kepler.gl/constants'; import {generateHashId, isPlainObject} from 'utils/utils'; @@ -59,9 +55,17 @@ import {getSampleData} from 'utils/table-utils/data-container-utils'; import {hexToRgb, getColorGroupByName, reverseColorRange} from 'utils/color-utils'; import {MapState, Filter, Datasets} from 'reducers'; -import {RGBColor, RGBAColor, ValueOf, NestedPartial} from '@kepler.gl/types'; -import {LayerTextLabel, ColorUI} from './layer-factory'; -import {KeplerTable} from '../utils'; +import { + RGBColor, + RGBAColor, + ValueOf, + NestedPartial, + LayerTextLabel, + ColorUI, + LayerVisConfig, + LayerVisConfigSettings +} from '@kepler.gl/types'; +import {KeplerTable} from '../../utils'; import {DataContainerInterface} from 'utils/table-utils/data-container-interface'; import {Field, GpuFilter} from 'utils/table-utils/kepler-table'; import React from 'react'; @@ -191,7 +195,7 @@ const dataFilterExtension = new DataFilterExtension({filterSize: MAX_GPU_FILTERS const defaultDataAccessor = dc => d => d; const defaultGetFieldValue = (field, d) => field.valueAccessor(d); -export const OVERLAY_TYPE = keymirror({ +export const OVERLAY_TYPE_CONST = keymirror({ deckgl: null, mapboxgl: null }); @@ -243,8 +247,8 @@ class Layer { return DefaultLayerIcon; } - get overlayType(): keyof typeof OVERLAY_TYPE { - return OVERLAY_TYPE.deckgl; + get overlayType(): keyof typeof OVERLAY_TYPE_CONST { + return OVERLAY_TYPE_CONST.deckgl; } get type(): string | null { diff --git a/src/layers/cluster-layer/cluster-layer-icon.tsx b/src/layers/src/cluster-layer/cluster-layer-icon.tsx similarity index 100% rename from src/layers/cluster-layer/cluster-layer-icon.tsx rename to src/layers/src/cluster-layer/cluster-layer-icon.tsx diff --git a/src/layers/cluster-layer/cluster-layer.ts b/src/layers/src/cluster-layer/cluster-layer.ts similarity index 95% rename from src/layers/cluster-layer/cluster-layer.ts rename to src/layers/src/cluster-layer/cluster-layer.ts index 1fbd8cb60d..7707231f65 100644 --- a/src/layers/cluster-layer/cluster-layer.ts +++ b/src/layers/src/cluster-layer/cluster-layer.ts @@ -22,17 +22,15 @@ import AggregationLayer, {AggregationLayerConfig} from '../aggregation-layer'; import {ScatterplotLayer} from '@deck.gl/layers'; import {DeckGLClusterLayer} from '@kepler.gl/deckgl-layers'; -import {CHANNEL_SCALES} from '@kepler.gl/constants'; import ClusterLayerIcon from './cluster-layer-icon'; import { - AggregationTypes, VisConfigColorRange, VisConfigNumber, VisConfigRange, - VisConfigSelection -} from '../layer-factory'; -import {ColorRange} from '@kepler.gl/constants'; -import {Merge} from '@kepler.gl/types'; + VisConfigSelection, + Merge +} from '@kepler.gl/types'; +import {CHANNEL_SCALES, AggregationTypes, ColorRange} from '@kepler.gl/constants'; import {VisualChannels} from '../base-layer'; export type ClusterLayerVisConfigSettings = { diff --git a/src/layers/default-layer-icon.tsx b/src/layers/src/default-layer-icon.tsx similarity index 100% rename from src/layers/default-layer-icon.tsx rename to src/layers/src/default-layer-icon.tsx diff --git a/src/layers/geojson-layer/geojson-layer-icon.tsx b/src/layers/src/geojson-layer/geojson-layer-icon.tsx similarity index 97% rename from src/layers/geojson-layer/geojson-layer-icon.tsx rename to src/layers/src/geojson-layer/geojson-layer-icon.tsx index e4d854d642..ad45793776 100644 --- a/src/layers/geojson-layer/geojson-layer-icon.tsx +++ b/src/layers/src/geojson-layer/geojson-layer-icon.tsx @@ -20,7 +20,7 @@ import React, {Component} from 'react'; import PropTypes from 'prop-types'; -import Base from '../../components/common/icons/base'; +import Base from 'components/common/icons/base'; export default class GeojsonLayerIcon extends Component { static propTypes = { diff --git a/src/layers/geojson-layer/geojson-layer.ts b/src/layers/src/geojson-layer/geojson-layer.ts similarity index 97% rename from src/layers/geojson-layer/geojson-layer.ts rename to src/layers/src/geojson-layer/geojson-layer.ts index 520b101418..090a5b06c8 100644 --- a/src/layers/geojson-layer/geojson-layer.ts +++ b/src/layers/src/geojson-layer/geojson-layer.ts @@ -39,18 +39,24 @@ import { GeojsonDataMaps } from './geojson-utils'; import GeojsonLayerIcon from './geojson-layer-icon'; -import {GEOJSON_FIELDS, HIGHLIGH_COLOR_3D, CHANNEL_SCALES, ColorRange} from '@kepler.gl/constants'; import { - LAYER_VIS_CONFIGS, + GEOJSON_FIELDS, + HIGHLIGH_COLOR_3D, + CHANNEL_SCALES, + ColorRange, + LAYER_VIS_CONFIGS +} from '@kepler.gl/constants'; +import { VisConfigNumber, VisConfigColorSelect, VisConfigColorRange, VisConfigRange, - VisConfigBoolean -} from '../layer-factory'; -import {DataContainerInterface} from '../../utils/table-utils/data-container-interface'; -import {Merge, RGBColor} from '@kepler.gl/types'; -import {KeplerTable} from '../../utils'; + VisConfigBoolean, + Merge, + RGBColor +} from '@kepler.gl/types'; +import {DataContainerInterface} from 'utils/table-utils/data-container-interface'; +import {KeplerTable} from '../../../utils'; const SUPPORTED_ANALYZER_TYPES = { [DATA_TYPES.GEOMETRY]: true, diff --git a/src/layers/geojson-layer/geojson-utils.ts b/src/layers/src/geojson-layer/geojson-utils.ts similarity index 98% rename from src/layers/geojson-layer/geojson-utils.ts rename to src/layers/src/geojson-layer/geojson-utils.ts index 3a64e6432e..2a972ed7ba 100644 --- a/src/layers/geojson-layer/geojson-utils.ts +++ b/src/layers/src/geojson-layer/geojson-utils.ts @@ -22,7 +22,7 @@ import wktParser from 'wellknown'; import normalize from '@mapbox/geojson-normalize'; import bbox from '@turf/bbox'; -import {getSampleData} from '../../utils/data-utils'; +import {getSampleData} from '../../../utils/data-utils'; import {Feature, BBox} from 'geojson'; export type GetFeature = (d: any) => Feature; diff --git a/src/layers/grid-layer/grid-layer-icon.tsx b/src/layers/src/grid-layer/grid-layer-icon.tsx similarity index 97% rename from src/layers/grid-layer/grid-layer-icon.tsx rename to src/layers/src/grid-layer/grid-layer-icon.tsx index 2182bd97c0..95b0feb695 100644 --- a/src/layers/grid-layer/grid-layer-icon.tsx +++ b/src/layers/src/grid-layer/grid-layer-icon.tsx @@ -20,7 +20,7 @@ import React, {Component} from 'react'; import PropTypes from 'prop-types'; -import Base from '../../components/common/icons/base'; +import Base from '../../../components/common/icons/base'; export default class GridLayerIcon extends Component { static propTypes = { diff --git a/src/layers/grid-layer/grid-layer.ts b/src/layers/src/grid-layer/grid-layer.ts similarity index 96% rename from src/layers/grid-layer/grid-layer.ts rename to src/layers/src/grid-layer/grid-layer.ts index 88066e7602..874050440a 100644 --- a/src/layers/grid-layer/grid-layer.ts +++ b/src/layers/src/grid-layer/grid-layer.ts @@ -24,15 +24,14 @@ import AggregationLayer, {AggregationLayerConfig} from '../aggregation-layer'; import {pointToPolygonGeo} from './grid-utils'; import GridLayerIcon from './grid-layer-icon'; import { - AggregationTypes, VisConfigBoolean, VisConfigColorRange, VisConfigNumber, VisConfigRange, - VisConfigSelection -} from '../layer-factory'; -import {ColorRange} from '@kepler.gl/constants'; -import {Merge} from '@kepler.gl/types'; + VisConfigSelection, + Merge +} from '@kepler.gl/types'; +import {AggregationTypes, ColorRange} from '@kepler.gl/constants'; export type GridLayerVisConfigSettings = { opacity: VisConfigNumber; diff --git a/src/layers/grid-layer/grid-utils.ts b/src/layers/src/grid-layer/grid-utils.ts similarity index 98% rename from src/layers/grid-layer/grid-utils.ts rename to src/layers/src/grid-layer/grid-utils.ts index c1e18d127c..2e285d4be4 100644 --- a/src/layers/grid-layer/grid-utils.ts +++ b/src/layers/src/grid-layer/grid-utils.ts @@ -19,7 +19,7 @@ // THE SOFTWARE. import {WebMercatorViewport} from '@deck.gl/core'; -import {MapState} from '../../reducers'; +import {MapState} from '../../../reducers'; /** * top left of the grid to a square polygon for the hover layer diff --git a/src/layers/h3-hexagon-layer/h3-hexagon-layer-icon.tsx b/src/layers/src/h3-hexagon-layer/h3-hexagon-layer-icon.tsx similarity index 100% rename from src/layers/h3-hexagon-layer/h3-hexagon-layer-icon.tsx rename to src/layers/src/h3-hexagon-layer/h3-hexagon-layer-icon.tsx diff --git a/src/layers/h3-hexagon-layer/h3-hexagon-layer.ts b/src/layers/src/h3-hexagon-layer/h3-hexagon-layer.ts similarity index 97% rename from src/layers/h3-hexagon-layer/h3-hexagon-layer.ts rename to src/layers/src/h3-hexagon-layer/h3-hexagon-layer.ts index c6616cae6e..cf91443db2 100644 --- a/src/layers/h3-hexagon-layer/h3-hexagon-layer.ts +++ b/src/layers/src/h3-hexagon-layer/h3-hexagon-layer.ts @@ -38,11 +38,11 @@ import { VisConfigBoolean, VisConfigColorRange, VisConfigNumber, - VisConfigRange -} from '../layer-factory'; -import {Merge} from '@kepler.gl/types'; -import {DataContainerInterface} from '../../utils/table-utils/data-container-interface'; -import {KeplerTable} from '../../utils'; + VisConfigRange, + Merge +} from '@kepler.gl/types'; +import {DataContainerInterface} from 'utils/table-utils/data-container-interface'; +import {KeplerTable} from '../../../utils'; export type HexagonIdLayerColumnsConfig = { hex_id: LayerColumn; diff --git a/src/layers/h3-hexagon-layer/h3-utils.ts b/src/layers/src/h3-hexagon-layer/h3-utils.ts similarity index 100% rename from src/layers/h3-hexagon-layer/h3-utils.ts rename to src/layers/src/h3-hexagon-layer/h3-utils.ts diff --git a/src/layers/heatmap-layer/heatmap-layer-icon.tsx b/src/layers/src/heatmap-layer/heatmap-layer-icon.tsx similarity index 100% rename from src/layers/heatmap-layer/heatmap-layer-icon.tsx rename to src/layers/src/heatmap-layer/heatmap-layer-icon.tsx diff --git a/src/layers/heatmap-layer/heatmap-layer.ts b/src/layers/src/heatmap-layer/heatmap-layer.ts similarity index 99% rename from src/layers/heatmap-layer/heatmap-layer.ts rename to src/layers/src/heatmap-layer/heatmap-layer.ts index 51ddd7d746..79f6fc7d6e 100644 --- a/src/layers/heatmap-layer/heatmap-layer.ts +++ b/src/layers/src/heatmap-layer/heatmap-layer.ts @@ -26,7 +26,7 @@ import MapboxGLLayer, {MapboxLayerGLConfig} from '../mapboxgl-layer'; import HeatmapLayerIcon from './heatmap-layer-icon'; import {LayerColumn, LayerWeightConfig, VisualChannels} from '../base-layer'; import {DataContainerInterface} from 'utils/table-utils/data-container-interface'; -import {VisConfigColorRange, VisConfigNumber} from '../layer-factory'; +import {VisConfigColorRange, VisConfigNumber} from '@kepler.gl/types'; import {HexColor, Merge} from '@kepler.gl/types'; export type HeatmapLayerVisConfigSettings = { diff --git a/src/layers/hexagon-layer/hexagon-layer-icon.tsx b/src/layers/src/hexagon-layer/hexagon-layer-icon.tsx similarity index 100% rename from src/layers/hexagon-layer/hexagon-layer-icon.tsx rename to src/layers/src/hexagon-layer/hexagon-layer-icon.tsx diff --git a/src/layers/hexagon-layer/hexagon-layer.ts b/src/layers/src/hexagon-layer/hexagon-layer.ts similarity index 96% rename from src/layers/hexagon-layer/hexagon-layer.ts rename to src/layers/src/hexagon-layer/hexagon-layer.ts index 1b6c577e3d..21874a81a5 100644 --- a/src/layers/hexagon-layer/hexagon-layer.ts +++ b/src/layers/src/hexagon-layer/hexagon-layer.ts @@ -24,16 +24,15 @@ import {EnhancedHexagonLayer} from '@kepler.gl/deckgl-layers'; import {hexagonToPolygonGeo} from './hexagon-utils'; import HexagonLayerIcon from './hexagon-layer-icon'; import {clamp} from 'utils/data-utils'; -import {Merge} from '@kepler.gl/types'; import { - AggregationTypes, VisConfigBoolean, VisConfigColorRange, VisConfigNumber, VisConfigRange, - VisConfigSelection -} from '../layer-factory'; -import {ColorRange} from '@kepler.gl/constants'; + VisConfigSelection, + Merge +} from '@kepler.gl/types'; +import {AggregationTypes, ColorRange} from '@kepler.gl/constants'; export type HexagonLayerVisConfigSettings = { opacity: VisConfigNumber; diff --git a/src/layers/hexagon-layer/hexagon-utils.ts b/src/layers/src/hexagon-layer/hexagon-utils.ts similarity index 100% rename from src/layers/hexagon-layer/hexagon-utils.ts rename to src/layers/src/hexagon-layer/hexagon-utils.ts diff --git a/src/layers/icon-layer/icon-info-modal.tsx b/src/layers/src/icon-layer/icon-info-modal.tsx similarity index 100% rename from src/layers/icon-layer/icon-info-modal.tsx rename to src/layers/src/icon-layer/icon-info-modal.tsx diff --git a/src/layers/icon-layer/icon-layer-icon.tsx b/src/layers/src/icon-layer/icon-layer-icon.tsx similarity index 100% rename from src/layers/icon-layer/icon-layer-icon.tsx rename to src/layers/src/icon-layer/icon-layer-icon.tsx diff --git a/src/layers/icon-layer/icon-layer.ts b/src/layers/src/icon-layer/icon-layer.ts similarity index 97% rename from src/layers/icon-layer/icon-layer.ts rename to src/layers/src/icon-layer/icon-layer.ts index e1487a81b7..41f4347ba0 100644 --- a/src/layers/icon-layer/icon-layer.ts +++ b/src/layers/src/icon-layer/icon-layer.ts @@ -23,20 +23,19 @@ import {BrushingExtension} from '@deck.gl/extensions'; import {SvgIconLayer} from '@kepler.gl/deckgl-layers'; import IconLayerIcon from './icon-layer-icon'; -import {ICON_FIELDS, CLOUDFRONT} from '@kepler.gl/constants'; +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 {DataContainerInterface} from '../../utils/table-utils/data-container-interface'; +import {DataContainerInterface} from 'utils/table-utils/data-container-interface'; import { VisConfigBoolean, VisConfigColorRange, VisConfigNumber, - VisConfigRange -} from '../layer-factory'; -import {ColorRange} from '@kepler.gl/constants'; -import {Merge} from '@kepler.gl/types'; -import {KeplerTable} from '../../utils'; + VisConfigRange, + Merge +} from '@kepler.gl/types'; +import {KeplerTable} from '../../../utils'; export type IconLayerColumnsConfig = { lat: LayerColumn; diff --git a/src/layers/index.ts b/src/layers/src/index.ts similarity index 69% rename from src/layers/index.ts rename to src/layers/src/index.ts index f719269157..0e279c7e10 100644 --- a/src/layers/index.ts +++ b/src/layers/src/index.ts @@ -22,19 +22,50 @@ 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'; import {default as GridLayer} from './grid-layer/grid-layer'; +export {pointToPolygonGeo} from './grid-layer/grid-utils'; import {default as HexagonLayer} from './hexagon-layer/hexagon-layer'; import {default as GeojsonLayer} from './geojson-layer/geojson-layer'; +export { + defaultElevation, + defaultLineWidth, + defaultRadius +} from './geojson-layer/geojson-layer'; import {default as ClusterLayer} from './cluster-layer/cluster-layer'; import {default as IconLayer} from './icon-layer/icon-layer'; import {default as HeatmapLayer} from './heatmap-layer/heatmap-layer'; +export {MAX_ZOOM_LEVEL} from './heatmap-layer/heatmap-layer'; import {default as H3Layer} from './h3-hexagon-layer/h3-hexagon-layer'; +export {defaultElevation as h3DefaultElevation} from './h3-hexagon-layer/h3-hexagon-layer'; +export {getCentroid, h3IsValid, getHexFields} from './h3-hexagon-layer/h3-utils'; import {default as ScenegraphLayer} from './scenegraph-layer/scenegraph-layer'; import {default as TripLayer} from './trip-layer/trip-layer'; +export {defaultLineWidth as tripDefaultLineWidth} from './trip-layer/trip-layer'; +export {containValidTime, parseTripGeoJsonTimestamp} from './trip-layer/trip-utils'; import {default as S2GeometryLayer} from './s2-geometry-layer/s2-geometry-layer'; -import {LAYER_TYPES} from 'layers/types'; +export {defaultElevation as s2DefaultElevation} from './s2-geometry-layer/s2-geometry-layer'; +export {getS2Center} from './s2-geometry-layer/s2-utils'; +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, LAYER_ID_LENGTH, colorMaker} from './base-layer'; -export type {LayerBaseConfig, LayerColumns, LayerColumn} from './base-layer'; +export { + default as Layer, + OVERLAY_TYPE_CONST, + LAYER_ID_LENGTH, + colorMaker, + layerColors +} from './base-layer'; +/* eslint-disable prettier/prettier */ +export type { + LayerBaseConfig, + LayerColumns, + LayerColumn, + VisualChannelDomain, + VisualChannel, + VisualChannelDescription, + ColumnPairs, + FindDefaultLayerPropsReturnValue +} from './base-layer'; // individual layers export const KeplerGlLayers = { @@ -72,5 +103,4 @@ export const LayerClasses = { export type OVERLAY_TYPE = {[key: string]: string}; -export {LAYER_VIS_CONFIGS} from './layer-factory'; -export type {LayerVisConfig} from './layer-factory'; +export * from './mapbox-utils'; diff --git a/src/layers/layer-text-label.ts b/src/layers/src/layer-text-label.ts similarity index 100% rename from src/layers/layer-text-label.ts rename to src/layers/src/layer-text-label.ts diff --git a/src/layers/layer-update.ts b/src/layers/src/layer-update.ts similarity index 100% rename from src/layers/layer-update.ts rename to src/layers/src/layer-update.ts diff --git a/src/layers/line-layer/line-layer-icon.tsx b/src/layers/src/line-layer/line-layer-icon.tsx similarity index 100% rename from src/layers/line-layer/line-layer-icon.tsx rename to src/layers/src/line-layer/line-layer-icon.tsx diff --git a/src/layers/line-layer/line-layer.ts b/src/layers/src/line-layer/line-layer.ts similarity index 96% rename from src/layers/line-layer/line-layer.ts rename to src/layers/src/line-layer/line-layer.ts index 062afd6b8b..db51002962 100644 --- a/src/layers/line-layer/line-layer.ts +++ b/src/layers/src/line-layer/line-layer.ts @@ -20,21 +20,21 @@ import {BrushingExtension} from '@deck.gl/extensions'; -import {LAYER_VIS_CONFIGS} from 'layers/layer-factory'; +import {EnhancedLineLayer} from '@kepler.gl/deckgl-layers'; import LineLayerIcon from './line-layer-icon'; import ArcLayer, {ArcLayerConfig} from '../arc-layer/arc-layer'; -import {EnhancedLineLayer} from '@kepler.gl/deckgl-layers'; import {LayerColumn} from '../base-layer'; +import {LAYER_VIS_CONFIGS, ColorRange} from '@kepler.gl/constants'; import { + Merge, + RGBColor, VisConfigColorRange, VisConfigColorSelect, VisConfigNumber, VisConfigRange -} from '../layer-factory'; -import {ColorRange} from '@kepler.gl/constants'; -import {Merge, RGBColor} from '@kepler.gl/types'; +} from '@kepler.gl/types'; import {DataContainerInterface} from 'utils/table-utils/data-container-interface'; -import {KeplerTable} from '../../utils'; +import {KeplerTable} from '../../../utils'; export type LineLayerVisConfigSettings = { opacity: VisConfigNumber; diff --git a/src/layers/mapbox-utils.ts b/src/layers/src/mapbox-utils.ts similarity index 97% rename from src/layers/mapbox-utils.ts rename to src/layers/src/mapbox-utils.ts index ee38ce5f6c..b583b3637c 100644 --- a/src/layers/mapbox-utils.ts +++ b/src/layers/src/mapbox-utils.ts @@ -18,7 +18,7 @@ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. -import Layer, {OVERLAY_TYPE} from './base-layer'; +import Layer, {OVERLAY_TYPE_CONST} from './base-layer'; import {Feature} from 'geojson'; /** @@ -40,7 +40,8 @@ export function generateMapboxLayers( .slice() .reverse() .filter( - idx => layers[idx].overlayType === OVERLAY_TYPE.mapboxgl && layersToRender[layers[idx].id] + idx => + layers[idx].overlayType === OVERLAY_TYPE_CONST.mapboxgl && layersToRender[layers[idx].id] ) .reduce((accu, index) => { const layer = layers[index]; diff --git a/src/layers/mapboxgl-layer.ts b/src/layers/src/mapboxgl-layer.ts similarity index 96% rename from src/layers/mapboxgl-layer.ts rename to src/layers/src/mapboxgl-layer.ts index a3400ecfaa..ed3b0c5f50 100644 --- a/src/layers/mapboxgl-layer.ts +++ b/src/layers/src/mapboxgl-layer.ts @@ -18,11 +18,16 @@ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. -import Layer, {LayerBaseConfig, LayerColumn, OVERLAY_TYPE, VisualChannels} from './base-layer'; +import Layer, { + LayerBaseConfig, + LayerColumn, + OVERLAY_TYPE_CONST, + VisualChannels +} from './base-layer'; import {createSelector} from 'reselect'; import {geoJsonFromData, prefixGpuField, gpuFilterToMapboxFilter} from './mapbox-utils'; -import KeplerTable from '../utils/table-utils/kepler-table'; +import KeplerTable from 'utils/table-utils/kepler-table'; import {Merge} from '@kepler.gl/types'; type MapboxLayerGLColumns = { @@ -41,7 +46,7 @@ class MapboxLayerGL extends Layer { declare config: MapboxLayerGLConfig; get overlayType() { - return OVERLAY_TYPE.mapboxgl; + return OVERLAY_TYPE_CONST.mapboxgl; } get type(): string | null { diff --git a/src/layers/point-layer/point-layer-icon.tsx b/src/layers/src/point-layer/point-layer-icon.tsx similarity index 100% rename from src/layers/point-layer/point-layer-icon.tsx rename to src/layers/src/point-layer/point-layer-icon.tsx diff --git a/src/layers/point-layer/point-layer.ts b/src/layers/src/point-layer/point-layer.ts similarity index 97% rename from src/layers/point-layer/point-layer.ts rename to src/layers/src/point-layer/point-layer.ts index 808922e684..91edb10655 100644 --- a/src/layers/point-layer/point-layer.ts +++ b/src/layers/src/point-layer/point-layer.ts @@ -31,19 +31,24 @@ import Layer, { import {hexToRgb} from 'utils/color-utils'; import {findDefaultColorField} from 'utils/dataset-utils'; import PointLayerIcon from './point-layer-icon'; -import {DEFAULT_LAYER_COLOR, CHANNEL_SCALES, ColorRange} from '@kepler.gl/constants'; +import { + LAYER_VIS_CONFIGS, + DEFAULT_LAYER_COLOR, + CHANNEL_SCALES, + ColorRange +} from '@kepler.gl/constants'; import {getTextOffsetByRadius, formatTextLabelData} from '../layer-text-label'; -import {Merge, RGBColor} from '@kepler.gl/types'; import { + Merge, + RGBColor, VisConfigBoolean, VisConfigColorRange, VisConfigColorSelect, VisConfigNumber, VisConfigRange -} from '../layer-factory'; -import {LAYER_VIS_CONFIGS} from '../layer-factory'; -import {KeplerTable} from '../../utils'; +} from '@kepler.gl/types'; +import {KeplerTable} from '../../../utils'; export type PointLayerVisConfigSettings = { radius: VisConfigNumber; diff --git a/src/layers/s2-geometry-layer/s2-geometry-layer.ts b/src/layers/src/s2-geometry-layer/s2-geometry-layer.ts similarity index 96% rename from src/layers/s2-geometry-layer/s2-geometry-layer.ts rename to src/layers/src/s2-geometry-layer/s2-geometry-layer.ts index 11e9950f67..48bd086fe9 100644 --- a/src/layers/s2-geometry-layer/s2-geometry-layer.ts +++ b/src/layers/src/s2-geometry-layer/s2-geometry-layer.ts @@ -19,12 +19,15 @@ // THE SOFTWARE. import {S2Layer} from '@deck.gl/geo-layers'; -import {HIGHLIGH_COLOR_3D, CHANNEL_SCALES, ColorRange} from '@kepler.gl/constants'; -import {LAYER_VIS_CONFIGS} from 'layers/layer-factory'; -import {KeplerTable} from '../../utils'; +import { + HIGHLIGH_COLOR_3D, + CHANNEL_SCALES, + ColorRange, + LAYER_VIS_CONFIGS +} from '@kepler.gl/constants'; +import {KeplerTable} from '../../../utils'; import {createDataContainer} from 'utils/table-utils'; -import {Merge, RGBColor} from '@kepler.gl/types'; -import {DataContainerInterface} from '../../utils/table-utils/data-container-interface'; +import {DataContainerInterface} from 'utils/table-utils/data-container-interface'; import Layer, { LayerBaseConfig, LayerColorConfig, @@ -34,12 +37,14 @@ import Layer, { LayerHeightConfig } from '../base-layer'; import { + Merge, + RGBColor, VisConfigBoolean, VisConfigColorRange, VisConfigColorSelect, VisConfigNumber, VisConfigRange -} from '../layer-factory'; +} from '@kepler.gl/types'; import S2LayerIcon from './s2-layer-icon'; import {getS2Center, validS2Token} from './s2-utils'; diff --git a/src/layers/s2-geometry-layer/s2-layer-icon.tsx b/src/layers/src/s2-geometry-layer/s2-layer-icon.tsx similarity index 100% rename from src/layers/s2-geometry-layer/s2-layer-icon.tsx rename to src/layers/src/s2-geometry-layer/s2-layer-icon.tsx diff --git a/src/layers/s2-geometry-layer/s2-utils.ts b/src/layers/src/s2-geometry-layer/s2-utils.ts similarity index 100% rename from src/layers/s2-geometry-layer/s2-utils.ts rename to src/layers/src/s2-geometry-layer/s2-utils.ts diff --git a/src/layers/scenegraph-layer/scenegraph-info-modal.tsx b/src/layers/src/scenegraph-layer/scenegraph-info-modal.tsx similarity index 100% rename from src/layers/scenegraph-layer/scenegraph-info-modal.tsx rename to src/layers/src/scenegraph-layer/scenegraph-info-modal.tsx diff --git a/src/layers/scenegraph-layer/scenegraph-layer-icon.tsx b/src/layers/src/scenegraph-layer/scenegraph-layer-icon.tsx similarity index 100% rename from src/layers/scenegraph-layer/scenegraph-layer-icon.tsx rename to src/layers/src/scenegraph-layer/scenegraph-layer-icon.tsx diff --git a/src/layers/scenegraph-layer/scenegraph-layer.ts b/src/layers/src/scenegraph-layer/scenegraph-layer.ts similarity index 95% rename from src/layers/scenegraph-layer/scenegraph-layer.ts rename to src/layers/src/scenegraph-layer/scenegraph-layer.ts index 26f0a4cd5b..147975946a 100644 --- a/src/layers/scenegraph-layer/scenegraph-layer.ts +++ b/src/layers/src/scenegraph-layer/scenegraph-layer.ts @@ -25,12 +25,10 @@ import {GLTFLoader} from '@loaders.gl/gltf'; import Layer, {LayerBaseConfig, LayerColumn} from '../base-layer'; import ScenegraphLayerIcon from './scenegraph-layer-icon'; import ScenegraphInfoModalFactory from './scenegraph-info-modal'; -import {LAYER_VIS_CONFIGS} from 'layers/layer-factory'; -import {VisConfigColorRange, VisConfigNumber} from '../layer-factory'; -import {ColorRange} from '@kepler.gl/constants'; -import {Merge} from '@kepler.gl/types'; -import {DataContainerInterface} from '../../utils/table-utils/data-container-interface'; -import {KeplerTable} from '../../utils'; +import {LAYER_VIS_CONFIGS, ColorRange} from '@kepler.gl/constants'; +import {Merge, VisConfigColorRange, VisConfigNumber} from '@kepler.gl/types'; +import {DataContainerInterface} from 'utils/table-utils/data-container-interface'; +import {KeplerTable} from '../../../utils'; export type ScenegraphLayerVisConfigSettings = { opacity: VisConfigNumber; diff --git a/src/layers/trip-layer/trip-info-modal.tsx b/src/layers/src/trip-layer/trip-info-modal.tsx similarity index 100% rename from src/layers/trip-layer/trip-info-modal.tsx rename to src/layers/src/trip-layer/trip-info-modal.tsx diff --git a/src/layers/trip-layer/trip-layer-icon.tsx b/src/layers/src/trip-layer/trip-layer-icon.tsx similarity index 100% rename from src/layers/trip-layer/trip-layer-icon.tsx rename to src/layers/src/trip-layer/trip-layer-icon.tsx diff --git a/src/layers/trip-layer/trip-layer.ts b/src/layers/src/trip-layer/trip-layer.ts similarity index 97% rename from src/layers/trip-layer/trip-layer.ts rename to src/layers/src/trip-layer/trip-layer.ts index 5ebdb7feff..e587ac659e 100644 --- a/src/layers/trip-layer/trip-layer.ts +++ b/src/layers/src/trip-layer/trip-layer.ts @@ -31,14 +31,13 @@ import { getGeojsonBounds, getGeojsonFeatureTypes, GeojsonDataMaps -} from 'layers/geojson-layer/geojson-utils'; +} from '../geojson-layer/geojson-utils'; import {isTripGeoJsonField, parseTripGeoJsonTimestamp} from './trip-utils'; import TripInfoModalFactory from './trip-info-modal'; -import {DataContainerInterface} from '../../utils/table-utils/data-container-interface'; -import {VisConfigColorRange, VisConfigNumber, VisConfigRange} from '../layer-factory'; -import {Merge} from '@kepler.gl/types'; -import {KeplerTable} from '../../utils'; +import {DataContainerInterface} from 'utils/table-utils/data-container-interface'; +import {Merge, VisConfigColorRange, VisConfigNumber, VisConfigRange} from '@kepler.gl/types'; +import {KeplerTable} from '../../../utils'; export type TripLayerVisConfigSettings = { opacity: VisConfigNumber; diff --git a/src/layers/trip-layer/trip-utils.ts b/src/layers/src/trip-layer/trip-utils.ts similarity index 97% rename from src/layers/trip-layer/trip-utils.ts rename to src/layers/src/trip-layer/trip-utils.ts index cb46415f9c..aadb048fb6 100644 --- a/src/layers/trip-layer/trip-utils.ts +++ b/src/layers/src/trip-layer/trip-utils.ts @@ -23,8 +23,8 @@ import {Analyzer, DATA_TYPES} from 'type-analyzer'; import {timeToUnixMilli, notNullorUndefined} from 'utils/data-utils'; import {getSampleData} from 'utils/table-utils/data-container-utils'; -import {parseGeoJsonRawFeature, getGeojsonFeatureTypes} from 'layers/geojson-layer/geojson-utils'; -import {Field} from '../../utils/table-utils/kepler-table'; +import {parseGeoJsonRawFeature, getGeojsonFeatureTypes} from '../geojson-layer/geojson-utils'; +import {Field} from 'utils/table-utils/kepler-table'; import {DataContainerInterface} from 'utils/table-utils/data-container-interface'; /** diff --git a/src/typedefs/deckgl.d.ts b/src/layers/src/typedefs/deckgl.d.ts similarity index 100% rename from src/typedefs/deckgl.d.ts rename to src/layers/src/typedefs/deckgl.d.ts diff --git a/src/layers/types.ts b/src/layers/src/types.ts similarity index 100% rename from src/layers/types.ts rename to src/layers/src/types.ts diff --git a/src/layers/tsconfig.production.json b/src/layers/tsconfig.production.json new file mode 100644 index 0000000000..b0c818a378 --- /dev/null +++ b/src/layers/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": { + "@kepler.gl/layers": ["layers/src"] //TODO change once all dependencies are isolated + } + }, + "include": [ + "src" + ] +} diff --git a/src/reducers/combined-updaters.ts b/src/reducers/combined-updaters.ts index 893e9d1bf1..7d8bb3e494 100644 --- a/src/reducers/combined-updaters.ts +++ b/src/reducers/combined-updaters.ts @@ -40,7 +40,7 @@ import {ProviderState} from './provider-state-updaters'; import {AddDataToMapPayload} from 'actions/actions'; import {loadFilesSuccessUpdaterAction} from 'actions/vis-state-actions'; import {ParsedConfig} from 'schemas'; -import {Layer} from 'layers'; +import {Layer} from '@kepler.gl/layers'; export type KeplerGlState = { visState: VisState; diff --git a/src/reducers/vis-state-merger.ts b/src/reducers/vis-state-merger.ts index 8ab63e197a..5a191d318c 100644 --- a/src/reducers/vis-state-merger.ts +++ b/src/reducers/vis-state-merger.ts @@ -32,7 +32,7 @@ import {CURRENT_VERSION, visStateSchema} from 'schemas'; import {VisState, Datasets} from './vis-state-updaters'; import {KeplerTable} from '../utils'; import {ParsedConfig, ParsedLayer} from 'schemas'; -import {Layer, LayerColumns, LayerColumn} from 'layers'; +import {Layer, LayerColumns, LayerColumn} from '@kepler.gl/layers'; import {TooltipInfo} from './vis-state-updaters'; import {SavedInteractionConfig} from 'schemas/schema-manager'; diff --git a/src/reducers/vis-state-updaters.ts b/src/reducers/vis-state-updaters.ts index 7643be337b..54e55932c2 100644 --- a/src/reducers/vis-state-updaters.ts +++ b/src/reducers/vis-state-updaters.ts @@ -81,9 +81,14 @@ import { removeLayerFromSplitMaps } from 'utils/split-map-utils'; -import {Layer, LayerClasses, LayerClassesType, LAYER_ID_LENGTH} from 'layers'; -import {DEFAULT_TEXT_LABEL} from 'layers/layer-factory'; -import {EDITOR_MODES, SORT_ORDER, FILTER_TYPES, MAX_DEFAULT_TOOLTIPS} from '@kepler.gl/constants'; +import {Layer, LayerClasses, LayerClassesType, LAYER_ID_LENGTH} from '@kepler.gl/layers'; +import { + EDITOR_MODES, + SORT_ORDER, + FILTER_TYPES, + MAX_DEFAULT_TOOLTIPS, + DEFAULT_TEXT_LABEL +} from '@kepler.gl/constants'; import {ActionTypes} from 'actions'; import {pick_, merge_, swap_} from './composer-helpers'; import {processFileContent} from 'actions/vis-state-actions'; diff --git a/src/schemas/schema-manager.ts b/src/schemas/schema-manager.ts index 54c3f42d30..5efd743648 100644 --- a/src/schemas/schema-manager.ts +++ b/src/schemas/schema-manager.ts @@ -37,9 +37,7 @@ import { VisState } from '../reducers'; -import {RGBColor, Merge, RGBAColor} from '@kepler.gl/types'; - -import {LayerTextLabel} from '../layers/layer-factory'; +import {RGBColor, Merge, RGBAColor, LayerTextLabel} from '@kepler.gl/types'; export type SavedFilter = { dataId: Filter['dataId']; diff --git a/src/schemas/vis-state-schema.ts b/src/schemas/vis-state-schema.ts index 2af40f2181..f3e28fbb63 100644 --- a/src/schemas/vis-state-schema.ts +++ b/src/schemas/vis-state-schema.ts @@ -21,7 +21,7 @@ import pick from 'lodash.pick'; import {VERSIONS} from './versions'; import {isValidFilterValue} from 'utils/filter-utils'; -import {LAYER_VIS_CONFIGS} from 'layers/layer-factory'; +import {LAYER_VIS_CONFIGS} from '@kepler.gl/constants'; import Schema from './schema'; import cloneDeep from 'lodash.clonedeep'; import {notNullorUndefined} from 'utils/data-utils'; diff --git a/src/types/layers.d.ts b/src/types/layers.d.ts new file mode 100644 index 0000000000..baf240f231 --- /dev/null +++ b/src/types/layers.d.ts @@ -0,0 +1,264 @@ +export type LayerBaseConfig = { + dataId: string | null; + label: string; + color: RGBColor; + + columns: LayerColumns; + isVisible: boolean; + isConfigActive: boolean; + highlightColor: RGBColor | RGBAColor; + hidden: boolean; + + visConfig: LayerVisConfig; + textLabel: LayerTextLabel[]; + + colorUI: { + color: ColorUI; + colorRange: ColorUI; + }; + animation: { + enabled: boolean; + domain?: null; + }; +}; + +export type LayerColorConfig = { + colorField: VisualChannelField; + colorDomain: VisualChannelDomain; + colorScale: VisualChannelScale; +}; +export type LayerSizeConfig = { + // color by size, domain is set by filters, field, scale type + sizeDomain: VisualChannelDomain; + sizeScale: VisualChannelScale; + sizeField: VisualChannelField; +}; +export type LayerHeightConfig = { + heightField: VisualChannelField; + heightDomain: VisualChannelDomain; + heightScale: VisualChannelScale; +}; +export type LayerStrokeColorConfig = { + strokeColorField: VisualChannelField; + strokeColorDomain: VisualChannelDomain; + strokeColorScale: VisualChannelScale; +}; +export type LayerCoverageConfig = { + coverageField: VisualChannelField; + coverageDomain: VisualChannelDomain; + coverageScale: VisualChannelScale; +}; +export type LayerRadiusConfig = { + radiusField: VisualChannelField; + radiusDomain: VisualChannelDomain; + radiusScale: VisualChannelScale; +}; +export type LayerWeightConfig = { + weightField: VisualChannelField; +}; + +export type Field = { + analyzerType: string; + id?: string; + name: string; + displayName: string; + format: string; + type: string; + fieldIdx: number; + valueAccessor(v: {index: number}): any; + filterProps?: any; + metadata?: any; +}; +import { + LayerBaseConfig, + LayerColorConfig, + LayerHeightConfig, + LayerSizeConfig, + LayerWeightConfig +} from '@kepler.gl/types'; + +export type LayerTextLabel = { + field: Field | null; + color: RGBColor; + size: number; + offset: [number, number]; + anchor: string; + alignment: string; +}; + +export type ColorUI = { + // customPalette in edit + customPalette: ColorRange; + // show color sketcher modal + showSketcher: boolean | number; + // show color range selection panel + showDropdown: boolean | number; + // color range selector config + colorRangeConfig: { + type: string; + steps: number; + reversed: boolean; + custom: boolean; + }; +}; + +export type VisConfig = { + label: + | string + | (( + config: LayerBaseConfig & + Partial & + Partial & + Partial & + Partial + ) => string); + group: keyof typeof PROPERTY_GROUPS; + property: string; + description?: string; + condition?: ( + config: LayerBaseConfig & + Partial & + Partial & + Partial & + Partial + ) => boolean; + + allowCustomValue?: boolean; +}; + +export type VisConfigNumber = VisConfig & { + type: 'number'; + isRanged: false; + defaultValue: number; + range: [number, number]; + step: number; +}; + +export type VisConfigBoolean = VisConfig & { + type: 'boolean'; + defaultValue: boolean; +}; + +export type VisConfigSelection = VisConfig & { + type: 'select'; + defaultValue: string; + options: string[]; +}; + +export type VisConfigRange = VisConfig & { + type: 'number'; + isRanged: boolean; + range: [number, number]; + defaultValue: [number, number]; + step: number; +}; + +export type VisConfigColorSelect = VisConfig & { + type: 'color-select'; + defaultValue: null; +}; + +export type VisConfigColorRange = VisConfig & { + type: 'color-range-select'; + defaultValue: ColorRange; +}; + +export type LayerVisConfigSettings = { + thickness: VisConfigNumber; + strokeWidthRange: VisConfigRange; + trailLength: VisConfigNumber; + radius: VisConfigNumber; + fixedRadius: VisConfigBoolean; + radiusRange: VisConfigRange; + clusterRadius: VisConfigNumber; + clusterRadiusRange: VisConfigRange; + opacity: VisConfigNumber; + coverage: VisConfigNumber; + outline: VisConfigBoolean; + colorRange: VisConfigColorRange; + strokeColorRange: VisConfigColorRange; + targetColor: VisConfigColorSelect; + strokeColor: VisConfigColorSelect; + colorAggregation: VisConfigSelection; + sizeAggregation: VisConfigSelection; + percentile: VisConfigRange; + elevationPercentile: VisConfigRange; + resolution: VisConfigNumber; + sizeScale: VisConfigNumber; + angle: VisConfigNumber; + worldUnitSize: VisConfigNumber; + elevationScale: VisConfigNumber; + enableElevationZoomFactor: VisConfigBoolean; + elevationRange: VisConfigRange; + heightRange: VisConfigRange; + coverageRange: VisConfigRange; + 'hi-precision': VisConfigBoolean; + enable3d: VisConfigBoolean; + stroked: VisConfigBoolean; + filled: VisConfigBoolean; + extruded: VisConfigBoolean; + wireframe: VisConfigBoolean; + weight: VisConfigNumber; + heatmapRadius: VisConfigNumber; +}; + +// TODO: Move this to individual layers +export type LayerVisConfig = { + [key: string]: any; + // possible visConfigs + + // thickness: number; + // sizeRange: number; + // trailLength: number; + // radius: number; + // fixedRadius: boolean; + // radiusRange: [number, number]; + // clusterRadius: number; + // opacity: number; + // coverage: number; + // outline: boolean; + // colorRange: ColorRange; + // strokeColorRange: ColorRange; + // targetColor: any; + // strokeColor: any; + // colorAggregation: keyof typeof AGGREGATION_TYPES; + // sizeAggregation: keyof typeof AGGREGATION_TYPES; + // percentile: [number, number]; + // elevationPercentile: [number, number]; + // resolution: number; + // sizeScale: number; + // angle: number; + // worldUnitSize: number; + // elevationScale: number; + // enableElevationZoomFactor: boolean; + // heightRange: [number, number]; + // coverageRange: [number, number]; + // 'hi-precision': boolean; + // enable3d: boolean; + // stroked: boolean; + // filled: boolean; + // extruded: boolean; + // wireframe: boolean; + // weight: number; +}; + +export type TextConfigSelect = { + type: 'select'; + options: string[]; + multiSelect: boolean; + searchable: boolean; +}; +export type TextConfigNumber = { + type: 'number'; + range: number[]; + value0: number; + step: number; + isRanged: boolean; + label: string; + showInput: boolean; +}; +export type LayerTextConfig = { + fontSize: TextConfigNumber; + textAnchor: TextConfigSelect; + textAlignment: TextConfigSelect; +}; diff --git a/src/types/types.d.ts b/src/types/types.d.ts index e74059cc27..0c8c08a563 100644 --- a/src/types/types.d.ts +++ b/src/types/types.d.ts @@ -1,3 +1,5 @@ +export * from './layers'; + export type RGBColor = [number, number, number]; export type RGBAColor = [number, number, number, number]; export type HexColor = string; // this is the best typescript can do at the moment diff --git a/src/utils/data-utils.ts b/src/utils/data-utils.ts index 7e7c62cbee..533752e82f 100644 --- a/src/utils/data-utils.ts +++ b/src/utils/data-utils.ts @@ -19,14 +19,18 @@ // THE SOFTWARE. import assert from 'assert'; -import {ALL_FIELD_TYPES} from '@kepler.gl/constants'; -import {TOOLTIP_FORMATS, TOOLTIP_FORMAT_TYPES, TOOLTIP_KEY} from '@kepler.gl/constants'; +import { + ALL_FIELD_TYPES, + TOOLTIP_FORMATS, + TOOLTIP_FORMAT_TYPES, + TOOLTIP_KEY +} from '@kepler.gl/constants'; import {format as d3Format} from 'd3-format'; import {bisectLeft} from 'd3-array'; import moment from 'moment-timezone'; import {Millisecond} from '@kepler.gl/types'; -import {Layer} from 'layers'; +import {Layer} from '@kepler.gl/layers'; import {Bounds} from 'reducers/map-state-updaters'; import {DataContainerInterface} from './table-utils/data-container-interface'; import {Field} from './table-utils/kepler-table'; diff --git a/src/utils/filter-utils.ts b/src/utils/filter-utils.ts index 381bd788a2..c9f18edb2e 100644 --- a/src/utils/filter-utils.ts +++ b/src/utils/filter-utils.ts @@ -28,11 +28,10 @@ import booleanWithin from '@turf/boolean-within'; import {point as turfPoint} from '@turf/helpers'; import {Decimal} from 'decimal.js'; import {ALL_FIELD_TYPES, FILTER_TYPES, ANIMATION_WINDOW, PLOT_TYPES} from '@kepler.gl/constants'; -import {LAYER_TYPES} from 'layers/types'; +import {LAYER_TYPES, getCentroid, h3IsValid, Layer} from '@kepler.gl/layers'; import {notNullorUndefined, unique, timeToUnixMilli} from './data-utils'; import * as ScaleUtils from './data-scale-utils'; import {generateHashId, set, toArray} from './utils'; -import {getCentroid, h3IsValid} from 'layers/h3-hexagon-layer/h3-utils'; import { Filter, @@ -50,7 +49,6 @@ import { RangeFieldDomain } from '../reducers/vis-state-updaters'; import KeplerTable, {Field, FilterRecord, FilterDatasetOpt} from './table-utils/kepler-table'; -import {Layer} from 'layers'; import {ParsedFilter} from 'schemas'; import {DataContainerInterface} from './table-utils/data-container-interface'; import {Millisecond} from 'cloud-providers'; diff --git a/src/utils/index.ts b/src/utils/index.ts index bcddfec728..7bb51b2188 100644 --- a/src/utils/index.ts +++ b/src/utils/index.ts @@ -44,8 +44,7 @@ export {resetFilterGpuMode, assignGpuChannels} from 'utils/gpu-filter-utils'; // REDUCER UTILS export {updateAllLayerDomainData} from '../reducers/vis-state-updaters'; -export {getHexFields} from '../layers/h3-hexagon-layer/h3-utils'; -export {containValidTime} from '../layers/trip-layer/trip-utils'; +export {getHexFields, containValidTime} from '@kepler.gl/layers'; export { default as KeplerTable, diff --git a/src/utils/layer-utils.ts b/src/utils/layer-utils.ts index c9aa416f3d..85fa711922 100644 --- a/src/utils/layer-utils.ts +++ b/src/utils/layer-utils.ts @@ -18,9 +18,13 @@ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. -import {FindDefaultLayerPropsReturnValue, OVERLAY_TYPE} from 'layers/base-layer'; +import { + FindDefaultLayerPropsReturnValue, + Layer, + LayerClassesType, + OVERLAY_TYPE_CONST +} from '@kepler.gl/layers'; import {GEOCODER_LAYER_ID} from '@kepler.gl/constants'; -import {Layer, LayerClassesType} from 'layers'; import {VisState, TooltipField, CompareType, SplitMapLayers} from 'reducers/vis-state-updaters'; import KeplerTable, {Field} from './table-utils/kepler-table'; @@ -202,7 +206,7 @@ export function prepareLayersForDeck( (accu, layer, idx) => ({ ...accu, [layer.id]: - isLayerRenderable(layer, layerData[idx]) && layer.overlayType === OVERLAY_TYPE.deckgl + isLayerRenderable(layer, layerData[idx]) && layer.overlayType === OVERLAY_TYPE_CONST.deckgl }), {} ); diff --git a/src/utils/table-utils/kepler-table.ts b/src/utils/table-utils/kepler-table.ts index a09da09331..6932f06f77 100644 --- a/src/utils/table-utils/kepler-table.ts +++ b/src/utils/table-utils/kepler-table.ts @@ -46,7 +46,7 @@ import { import {createDataContainer} from './data-container-utils'; import {RGBColor} from '@kepler.gl/types'; -import {Layer} from 'layers'; +import {Layer} from '@kepler.gl/layers'; import {FieldDomain, Filter} from 'reducers/vis-state-updaters'; import {DataContainerInterface} from './data-container-interface'; import {ProtoDataset} from 'actions'; diff --git a/test/browser/layer-tests/arc-layer-specs.js b/test/browser/layer-tests/arc-layer-specs.js index e0d879a882..db0b72cb48 100644 --- a/test/browser/layer-tests/arc-layer-specs.js +++ b/test/browser/layer-tests/arc-layer-specs.js @@ -32,7 +32,7 @@ import { arcLayerMeta } from 'test/helpers/layer-utils'; -import {KeplerGlLayers} from 'layers'; +import {KeplerGlLayers} from '@kepler.gl/layers'; import {copyTableAndUpdate} from 'utils/table-utils/kepler-table'; const {ArcLayer} = KeplerGlLayers; diff --git a/test/browser/layer-tests/base-layer-sepcs.js b/test/browser/layer-tests/base-layer-sepcs.js index c3ed1e5522..1d97d344d0 100644 --- a/test/browser/layer-tests/base-layer-sepcs.js +++ b/test/browser/layer-tests/base-layer-sepcs.js @@ -19,8 +19,7 @@ // THE SOFTWARE. import test from 'tape-catch'; -import {Layer} from 'layers'; -import AggregationLayer from 'layers/aggregation-layer'; +import {Layer, AggregationLayer} from '@kepler.gl/layers'; /* Fixed in #618 test('#BaseLayer -> updateLayerDomain', t => { diff --git a/test/browser/layer-tests/cluster-layer-specs.js b/test/browser/layer-tests/cluster-layer-specs.js index 5badce634a..d3383afea6 100644 --- a/test/browser/layer-tests/cluster-layer-specs.js +++ b/test/browser/layer-tests/cluster-layer-specs.js @@ -31,7 +31,7 @@ import { pointLayerMeta } from 'test/helpers/layer-utils'; -import {KeplerGlLayers} from 'layers'; +import {KeplerGlLayers} from '@kepler.gl/layers'; import {INITIAL_MAP_STATE} from 'reducers/map-state-updaters'; const {ClusterLayer} = KeplerGlLayers; diff --git a/test/browser/layer-tests/geojson-layer-specs.js b/test/browser/layer-tests/geojson-layer-specs.js index 1cec9cc30c..d57a46b5ee 100644 --- a/test/browser/layer-tests/geojson-layer-specs.js +++ b/test/browser/layer-tests/geojson-layer-specs.js @@ -19,11 +19,9 @@ // THE SOFTWARE. import test from 'tape'; -import GeojsonLayer, { - defaultElevation, - defaultLineWidth, - defaultRadius -} from 'layers/geojson-layer/geojson-layer'; +import {KeplerGlLayers, defaultElevation, defaultLineWidth, defaultRadius} from '@kepler.gl/layers'; + +const {GeojsonLayer} = KeplerGlLayers; import {updatedLayerV2} from 'test/fixtures/test-csv-data'; import { diff --git a/test/browser/layer-tests/grid-layer-specs.js b/test/browser/layer-tests/grid-layer-specs.js index 19842d34de..2b39d82214 100644 --- a/test/browser/layer-tests/grid-layer-specs.js +++ b/test/browser/layer-tests/grid-layer-specs.js @@ -31,8 +31,8 @@ import { pointLayerMeta } from 'test/helpers/layer-utils'; -import GridLayer from 'layers/grid-layer/grid-layer'; -import {pointToPolygonGeo} from 'layers/grid-layer/grid-utils'; +import {KeplerGlLayers, pointToPolygonGeo} from '@kepler.gl/layers'; +const {GridLayer} = KeplerGlLayers; import {INITIAL_MAP_STATE} from 'reducers/map-state-updaters'; const columns = { diff --git a/test/browser/layer-tests/h3-hexagon-layer-specs.js b/test/browser/layer-tests/h3-hexagon-layer-specs.js index 6ae575ca7f..77415229e6 100644 --- a/test/browser/layer-tests/h3-hexagon-layer-specs.js +++ b/test/browser/layer-tests/h3-hexagon-layer-specs.js @@ -31,9 +31,11 @@ import { preparedFilterDomain0, hexagonIdLayerMeta } from 'test/helpers/layer-utils'; -import {KeplerGlLayers} from 'layers'; -import {getCentroid} from 'layers/h3-hexagon-layer/h3-utils'; -import {defaultElevation} from 'layers/h3-hexagon-layer/h3-hexagon-layer'; +import { + KeplerGlLayers, + getCentroid, + h3DefaultElevation as defaultElevation +} from '@kepler.gl/layers'; import {copyTableAndUpdate} from 'utils/table-utils/kepler-table'; const {H3Layer} = KeplerGlLayers; diff --git a/test/browser/layer-tests/heatmap-layer-specs.js b/test/browser/layer-tests/heatmap-layer-specs.js index bd9e215c2f..749541a8e6 100644 --- a/test/browser/layer-tests/heatmap-layer-specs.js +++ b/test/browser/layer-tests/heatmap-layer-specs.js @@ -29,7 +29,10 @@ import { import {StateWFiles, testCsvDataId} from 'test/helpers/mock-state'; import {gpsPointBounds} from 'test/fixtures/test-csv-data'; -import HeatmapLayer, {MAX_ZOOM_LEVEL} from 'layers/heatmap-layer/heatmap-layer'; +import {KeplerGlLayers, MAX_ZOOM_LEVEL} from '@kepler.gl/layers'; + +const {HeatmapLayer} = KeplerGlLayers; + import {copyTableAndUpdate} from 'utils/table-utils/kepler-table'; const columns = { diff --git a/test/browser/layer-tests/hexagon-layer-specs.js b/test/browser/layer-tests/hexagon-layer-specs.js index a1dff0f0ae..8c72e3a9fa 100644 --- a/test/browser/layer-tests/hexagon-layer-specs.js +++ b/test/browser/layer-tests/hexagon-layer-specs.js @@ -31,7 +31,8 @@ import { pointLayerMeta } from 'test/helpers/layer-utils'; -import HexagonLayer from 'layers/hexagon-layer/hexagon-layer'; +import {KeplerGlLayers} from '@kepler.gl/layers'; +const {HexagonLayer} = KeplerGlLayers; const columns = { lat: 'lat', diff --git a/test/browser/layer-tests/icon-layer-specs.js b/test/browser/layer-tests/icon-layer-specs.js index 0d6523d0fb..2209a95acb 100644 --- a/test/browser/layer-tests/icon-layer-specs.js +++ b/test/browser/layer-tests/icon-layer-specs.js @@ -24,7 +24,8 @@ import {mount} from 'enzyme'; import sinon from 'sinon'; import sinonStubPromise from 'sinon-stub-promise'; import {getDistanceScales} from 'viewport-mercator-project'; -import {DEFAULT_TEXT_LABEL} from 'layers/layer-factory'; +import {KeplerGlLayers} from '@kepler.gl/layers'; +import {DEFAULT_TEXT_LABEL} from '@kepler.gl/constants'; sinonStubPromise(sinon); @@ -38,7 +39,6 @@ import { pointLayerMeta, iconGeometry } from 'test/helpers/layer-utils'; -import {KeplerGlLayers} from 'layers'; import {INITIAL_MAP_STATE} from 'reducers/map-state-updaters'; import {IntlWrapper} from '../../helpers/component-utils'; import {copyTableAndUpdate} from 'utils/table-utils/kepler-table'; diff --git a/test/browser/layer-tests/line-layer-specs.js b/test/browser/layer-tests/line-layer-specs.js index d86c3d0e09..118b720fb4 100644 --- a/test/browser/layer-tests/line-layer-specs.js +++ b/test/browser/layer-tests/line-layer-specs.js @@ -31,7 +31,7 @@ import { arcLayerMeta } from 'test/helpers/layer-utils'; -import {KeplerGlLayers} from 'layers'; +import {KeplerGlLayers} from '@kepler.gl/layers'; import {copyTable, copyTableAndUpdate} from 'utils/table-utils/kepler-table'; const {LineLayer} = KeplerGlLayers; diff --git a/test/browser/layer-tests/point-layer-specs.js b/test/browser/layer-tests/point-layer-specs.js index ebaaae0ae6..f2bac6aa92 100644 --- a/test/browser/layer-tests/point-layer-specs.js +++ b/test/browser/layer-tests/point-layer-specs.js @@ -33,10 +33,10 @@ import { fieldDomain } from 'test/helpers/layer-utils'; -import {KeplerGlLayers} from 'layers'; +import {KeplerGlLayers} from '@kepler.gl/layers'; import {INITIAL_MAP_STATE} from 'reducers/map-state-updaters'; -import {DEFAULT_TEXT_LABEL} from 'layers/layer-factory'; import {copyTableAndUpdate} from 'utils/table-utils/kepler-table'; +import {DEFAULT_TEXT_LABEL} 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 0bbc284404..f65e000586 100644 --- a/test/browser/layer-tests/s2-geometry-layer-specs.js +++ b/test/browser/layer-tests/s2-geometry-layer-specs.js @@ -30,7 +30,10 @@ import { testRows, preparedFilterDomain0 } from 'test/helpers/layer-utils'; -import S2GeometryLayer, {defaultElevation} from 'layers/s2-geometry-layer/s2-geometry-layer'; +import {KeplerGlLayers, s2DefaultElevation as defaultElevation} from '@kepler.gl/layers'; + +const {S2GeometryLayer} = KeplerGlLayers; + import {copyTableAndUpdate} from 'utils/table-utils/kepler-table'; test('#S2Geometry -> constructor', t => { diff --git a/test/browser/layer-tests/scenegraph-layer-specs.js b/test/browser/layer-tests/scenegraph-layer-specs.js index 2451f84b51..f3cbe4bbdd 100644 --- a/test/browser/layer-tests/scenegraph-layer-specs.js +++ b/test/browser/layer-tests/scenegraph-layer-specs.js @@ -35,7 +35,7 @@ import { pointLayerMeta, preparedFilterDomain0 } from 'test/helpers/layer-utils'; -import {KeplerGlLayers} from 'layers'; +import {KeplerGlLayers} from '@kepler.gl/layers'; const {ScenegraphLayer} = KeplerGlLayers; const columns = {lat: 'lat', lng: 'lng'}; diff --git a/test/browser/layer-tests/trip-layer-specs.js b/test/browser/layer-tests/trip-layer-specs.js index 0a07329983..4bd3d362e5 100644 --- a/test/browser/layer-tests/trip-layer-specs.js +++ b/test/browser/layer-tests/trip-layer-specs.js @@ -22,7 +22,13 @@ import test from 'tape'; import cloneDeep from 'lodash.clonedeep'; -import TripLayer, {defaultLineWidth} from 'layers/trip-layer/trip-layer'; +import { + KeplerGlLayers, + tripDefaultLineWidth as defaultLineWidth, + parseTripGeoJsonTimestamp +} from '@kepler.gl/layers'; + +const {TripLayer} = KeplerGlLayers; import { dataId, @@ -33,7 +39,6 @@ import { valueFilterDomain0, animationConfig } from 'test/helpers/layer-utils'; -import {parseTripGeoJsonTimestamp} from 'layers/trip-layer/trip-utils'; import {TripLayerMeta, dataToFeature, dataToTimeStamp} from 'test/fixtures/trip-geojson'; import {copyTableAndUpdate} from 'utils/table-utils/kepler-table'; diff --git a/test/fixtures/state-saved-v0.js b/test/fixtures/state-saved-v0.js index 1b9fc577f7..8fff3114fe 100644 --- a/test/fixtures/state-saved-v0.js +++ b/test/fixtures/state-saved-v0.js @@ -18,10 +18,10 @@ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. -import {KeplerGlLayers} from 'layers'; +import {KeplerGlLayers} from '@kepler.gl/layers'; const {PointLayer, ArcLayer, HexagonLayer, GeojsonLayer} = KeplerGlLayers; import {getDefaultInteraction} from 'utils/interaction-utils'; -import {DEFAULT_TEXT_LABEL, DEFAULT_COLOR_UI} from 'layers/layer-factory'; +import {DEFAULT_TEXT_LABEL, DEFAULT_COLOR_UI} from '@kepler.gl/constants'; export const savedStateV0 = { config: { diff --git a/test/fixtures/state-saved-v1-1.js b/test/fixtures/state-saved-v1-1.js index 5fb51eb90e..25ff5c6542 100644 --- a/test/fixtures/state-saved-v1-1.js +++ b/test/fixtures/state-saved-v1-1.js @@ -18,9 +18,11 @@ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. -import GeojsonLayer from 'layers/geojson-layer/geojson-layer'; -import {DEFAULT_TEXT_LABEL, DEFAULT_COLOR_UI} from 'layers/layer-factory'; +import {KeplerGlLayers} from '@kepler.gl/layers'; import {getDefaultInteraction} from 'utils/interaction-utils'; +import {DEFAULT_TEXT_LABEL, DEFAULT_COLOR_UI} from '@kepler.gl/constants'; + +const {GeojsonLayer} = KeplerGlLayers; export const savedStateV1 = { datasets: [ diff --git a/test/fixtures/state-saved-v1-3.js b/test/fixtures/state-saved-v1-3.js index 93bd2330bd..64f2297fa0 100644 --- a/test/fixtures/state-saved-v1-3.js +++ b/test/fixtures/state-saved-v1-3.js @@ -18,9 +18,9 @@ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. -import {KeplerGlLayers} from 'layers'; +import {KeplerGlLayers} from '@kepler.gl/layers'; +import {DEFAULT_TEXT_LABEL, DEFAULT_COLOR_UI} from '@kepler.gl/constants'; const {PointLayer, HexagonLayer} = KeplerGlLayers; -import {DEFAULT_TEXT_LABEL, DEFAULT_COLOR_UI} from 'layers/layer-factory'; // saved state v1 with split maps export const savedStateV1 = { diff --git a/test/fixtures/state-saved-v1-4.js b/test/fixtures/state-saved-v1-4.js index caecc09bdd..3f32c8a71f 100644 --- a/test/fixtures/state-saved-v1-4.js +++ b/test/fixtures/state-saved-v1-4.js @@ -18,9 +18,9 @@ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. -import {KeplerGlLayers} from 'layers'; +import {KeplerGlLayers} from '@kepler.gl/layers'; +import {DEFAULT_COLOR_UI} from '@kepler.gl/constants'; const {PointLayer} = KeplerGlLayers; -import {DEFAULT_COLOR_UI} from 'layers/layer-factory'; export const stateSavedV1 = { datasets: [ diff --git a/test/fixtures/state-saved-v1-5.js b/test/fixtures/state-saved-v1-5.js index 30f0d08281..58c0b55fc9 100644 --- a/test/fixtures/state-saved-v1-5.js +++ b/test/fixtures/state-saved-v1-5.js @@ -23,13 +23,14 @@ import tripGeojson, { tripBounds, dataToTimeStamp } from 'test/fixtures/trip-geojson'; +import {KeplerGlLayers} from '@kepler.gl/layers'; import { + DEFAULT_LAYER_OPACITY, DEFAULT_TEXT_LABEL, DEFAULT_COLOR_RANGE, - DEFAULT_LAYER_OPACITY, DEFAULT_COLOR_UI -} from 'layers/layer-factory'; -import {KeplerGlLayers} from 'layers'; +} from '@kepler.gl/constants'; + const {TripLayer} = KeplerGlLayers; export const savedStateV1TripGeoJson = { diff --git a/test/fixtures/test-hex-id-data.js b/test/fixtures/test-hex-id-data.js index 6d4397a22e..89f38c4fcb 100644 --- a/test/fixtures/test-hex-id-data.js +++ b/test/fixtures/test-hex-id-data.js @@ -18,9 +18,9 @@ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. -import {KeplerGlLayers} from 'layers'; +import {KeplerGlLayers} from '@kepler.gl/layers'; +import {DEFAULT_COLOR_UI} from '@kepler.gl/constants'; const {H3Layer} = KeplerGlLayers; -import {DEFAULT_COLOR_UI} from 'layers/layer-factory'; import {createDataContainer} from 'utils/table-utils'; diff --git a/test/helpers/layer-utils.js b/test/helpers/layer-utils.js index 206231cee0..53ffcef56c 100644 --- a/test/helpers/layer-utils.js +++ b/test/helpers/layer-utils.js @@ -31,11 +31,10 @@ import {INITIAL_VIS_STATE} from 'reducers/vis-state-updaters'; import * as VisStateActions from 'actions/vis-state-actions'; import {addDataToMap} from 'actions/actions'; -import {colorMaker, layerColors} from 'layers/base-layer'; +import {colorMaker, layerColors, LayerClasses} from '@kepler.gl/layers'; import {getGpuFilterProps} from 'utils/gpu-filter-utils'; import {renderDeckGlLayer} from 'utils/layer-utils'; import {validateLayerWithData} from 'reducers/vis-state-merger'; -import {LayerClasses} from 'layers'; import {processCsvData, processGeojson} from 'processors/data-processor'; import {applyActions, InitialState} from 'test/helpers/mock-state'; import {visStateReducer, keplerGlReducerCore} from 'reducers'; diff --git a/test/helpers/mock-state.js b/test/helpers/mock-state.js index 5ced860100..f0966741d8 100644 --- a/test/helpers/mock-state.js +++ b/test/helpers/mock-state.js @@ -22,18 +22,19 @@ import test from 'tape-catch'; import cloneDeep from 'lodash.clonedeep'; import {drainTasksForTesting} from 'react-palm/tasks'; -import {VizColorPalette, COMPARE_TYPES} from '@kepler.gl/constants'; import {getInitialInputStyle} from 'reducers/map-style-updaters'; import keplerGlReducer from 'reducers/core'; import {addDataToMap} from 'actions/actions'; import { + VizColorPalette, + COMPARE_TYPES, + DEFAULT_LAYER_OPACITY, DEFAULT_TEXT_LABEL, DEFAULT_COLOR_RANGE, - DEFAULT_LAYER_OPACITY, DEFAULT_HIGHLIGHT_COLOR, DEFAULT_LAYER_LABEL -} from 'layers/layer-factory'; +} from '@kepler.gl/constants'; import {DEFAULT_KEPLER_GL_PROPS} from 'components'; import * as VisStateActions from 'actions/vis-state-actions'; import * as MapStateActions from 'actions/map-state-actions'; diff --git a/test/node/reducers/vis-state-test.js b/test/node/reducers/vis-state-test.js index 020e877b2b..1962f78c5d 100644 --- a/test/node/reducers/vis-state-test.js +++ b/test/node/reducers/vis-state-test.js @@ -37,8 +37,14 @@ import {getDefaultFilter} from 'utils/filter-utils'; import {createNewDataEntry} from 'utils/dataset-utils'; import {maybeToDate} from 'utils/data-utils'; import {processCsvData, processGeojson} from 'processors/data-processor'; -import {Layer, KeplerGlLayers} from 'layers'; -import {ALL_FIELD_TYPES, EDITOR_MODES} from '@kepler.gl/constants'; +import {Layer, KeplerGlLayers} from '@kepler.gl/layers'; +import { + ALL_FIELD_TYPES, + EDITOR_MODES, + LAYER_VIS_CONFIGS, + DEFAULT_TEXT_LABEL, + DEFAULT_COLOR_UI +} from '@kepler.gl/constants'; const {ArcLayer, PointLayer, GeojsonLayer, LineLayer, TripLayer} = KeplerGlLayers; @@ -79,7 +85,6 @@ import { testGeoJsonDataId, InitialState } from 'test/helpers/mock-state'; -import {LAYER_VIS_CONFIGS, DEFAULT_TEXT_LABEL, DEFAULT_COLOR_UI} from 'layers/layer-factory'; import {getNextColorMakerValue} from 'test/helpers/layer-utils'; import {assertDatasetIsTable} from '../../helpers/comparison-utils'; diff --git a/test/node/utils/layer-utils-test.js b/test/node/utils/layer-utils-test.js index 1c18b11eec..c7bf539b2b 100644 --- a/test/node/utils/layer-utils-test.js +++ b/test/node/utils/layer-utils-test.js @@ -25,7 +25,7 @@ import {createNewDataEntry} from 'utils/dataset-utils'; import KeplerTable, {findPointFieldPairs} from 'utils/table-utils/kepler-table'; import {processCsvData, processGeojson} from 'processors/data-processor'; import {GEOJSON_FIELDS} from '@kepler.gl/constants'; -import {LayerClasses, KeplerGlLayers} from 'layers'; +import {LayerClasses, KeplerGlLayers} from '@kepler.gl/layers'; import {StateWTripGeojson, StateWFiles} from 'test/helpers/mock-state'; const {PointLayer, ArcLayer, GeojsonLayer, LineLayer} = KeplerGlLayers; diff --git a/test/node/utils/s2-utils-test.js b/test/node/utils/s2-utils-test.js index 9be8135dde..cd00848d60 100644 --- a/test/node/utils/s2-utils-test.js +++ b/test/node/utils/s2-utils-test.js @@ -19,7 +19,7 @@ // THE SOFTWARE. import test from 'tape'; -import {getS2Center} from 'layers/s2-geometry-layer/s2-utils'; +import {getS2Center} from '@kepler.gl/layers'; test('Utils -> getS2Center', t => { const s2Toekn = '8085873c';