diff --git a/package.json b/package.json index 4ff98147bf..c3f4178636 100644 --- a/package.json +++ b/package.json @@ -18,6 +18,7 @@ "workspaces": [ "./src/constants", "./src/types", + "./src/localization", "./src/middleware", "./src/deckgl-layers", "./src/layers", diff --git a/src/components/common/animation-control/playback-controls.tsx b/src/components/common/animation-control/playback-controls.tsx index 62e91e6eec..dd7402c47c 100644 --- a/src/components/common/animation-control/playback-controls.tsx +++ b/src/components/common/animation-control/playback-controls.tsx @@ -21,7 +21,7 @@ import React, {useState, useCallback} from 'react'; import styled from 'styled-components'; import classnames from 'classnames'; -import {FormattedMessage} from 'localization'; +import {FormattedMessage} from '@kepler.gl/localization'; import {Button, Tooltip, ButtonProps} from 'components/common/styled-components'; import AnimationSpeedSliderFactory from './animation-speed-slider'; import {Reset, Play, Pause, Rocket, AnchorWindow, FreeWindow} from 'components/common/icons'; diff --git a/src/components/common/file-uploader/file-upload.tsx b/src/components/common/file-uploader/file-upload.tsx index ebac45b652..9d86eb8612 100644 --- a/src/components/common/file-uploader/file-upload.tsx +++ b/src/components/common/file-uploader/file-upload.tsx @@ -32,7 +32,7 @@ import {GUIDES_FILE_FORMAT_DOC} from '@kepler.gl/constants'; import ReactMarkdown from 'react-markdown'; // Breakpoints import {media} from 'styles/media-breakpoints'; -import {FormattedMessage} from 'localization'; +import {FormattedMessage} from '@kepler.gl/localization'; /** @typedef {import('./file-upload').FileUploadProps} FileUploadProps */ diff --git a/src/components/common/info-helper.tsx b/src/components/common/info-helper.tsx index 6e8c1c1214..44e5d34784 100644 --- a/src/components/common/info-helper.tsx +++ b/src/components/common/info-helper.tsx @@ -20,7 +20,7 @@ import React from 'react'; import {useIntl} from 'react-intl'; -import {FormattedMessage} from 'localization'; +import {FormattedMessage} from '@kepler.gl/localization'; import {Tooltip} from './styled-components'; import {Docs} from 'components/common/icons'; import styled from 'styled-components'; diff --git a/src/components/common/item-selector/chickleted-input.tsx b/src/components/common/item-selector/chickleted-input.tsx index 3c81fb8bcb..baab88a29b 100644 --- a/src/components/common/item-selector/chickleted-input.tsx +++ b/src/components/common/item-selector/chickleted-input.tsx @@ -22,7 +22,7 @@ import React, {ElementType, MouseEventHandler, ReactNode} from 'react'; import styled from 'styled-components'; import Delete from '../icons/delete'; -import {FormattedMessage} from 'localization'; +import {FormattedMessage} from '@kepler.gl/localization'; interface ChickletedInput { // required properties diff --git a/src/components/common/item-selector/item-selector.tsx b/src/components/common/item-selector/item-selector.tsx index e4dadf3b72..b67f8e5527 100644 --- a/src/components/common/item-selector/item-selector.tsx +++ b/src/components/common/item-selector/item-selector.tsx @@ -32,7 +32,7 @@ import DropdownList, {ListItem} from './dropdown-list'; import {toArray} from 'utils/utils'; import {injectIntl, IntlShape} from 'react-intl'; -import {FormattedMessage} from 'localization'; +import {FormattedMessage} from '@kepler.gl/localization'; interface StyledDropdownSelect { inputTheme?: string; diff --git a/src/components/common/modal.tsx b/src/components/common/modal.tsx index ba45b5aab9..9bcd2acab2 100644 --- a/src/components/common/modal.tsx +++ b/src/components/common/modal.tsx @@ -19,7 +19,7 @@ // THE SOFTWARE. import React, {Component, ReactNode} from 'react'; -import {FormattedMessage} from 'localization'; +import {FormattedMessage} from '@kepler.gl/localization'; import styled, {FlattenSimpleInterpolation} from 'styled-components'; import Modal from 'react-modal'; @@ -158,7 +158,8 @@ interface ModalDialogOwnProps { children?: ReactNode; } -export type ModalDialogProps = ModalDialogOwnProps & Omit +export type ModalDialogProps = ModalDialogOwnProps & + Omit; export class ModalDialog extends Component { static defaultProps = { diff --git a/src/components/common/toolbar-item.tsx b/src/components/common/toolbar-item.tsx index 13f8bdfc11..d83993e9e1 100644 --- a/src/components/common/toolbar-item.tsx +++ b/src/components/common/toolbar-item.tsx @@ -21,7 +21,7 @@ import React from 'react'; import styled from 'styled-components'; import classnames from 'classnames'; -import {FormattedMessage} from 'localization'; +import {FormattedMessage} from '@kepler.gl/localization'; import {ComponentType, MouseEvent} from 'react'; interface StyledDivProps { diff --git a/src/components/filters/multi-select-filter.tsx b/src/components/filters/multi-select-filter.tsx index 5186546113..c80dffe88d 100644 --- a/src/components/filters/multi-select-filter.tsx +++ b/src/components/filters/multi-select-filter.tsx @@ -21,7 +21,7 @@ import React from 'react'; import ItemSelector from '../common/item-selector/item-selector'; import {PanelLabel} from '../common/styled-components'; -import {FormattedMessage} from 'localization'; +import {FormattedMessage} from '@kepler.gl/localization'; import {MultiSelectFilterProps} from './types'; export default function MultiSelectFilterFactory() { diff --git a/src/components/filters/single-select-filter.tsx b/src/components/filters/single-select-filter.tsx index 966227ab7d..3cd83f478d 100644 --- a/src/components/filters/single-select-filter.tsx +++ b/src/components/filters/single-select-filter.tsx @@ -21,7 +21,7 @@ import React from 'react'; import ItemSelector from '../common/item-selector/item-selector'; import {PanelLabel, SidePanelSection} from '../common/styled-components'; -import {FormattedMessage} from 'localization'; +import {FormattedMessage} from '@kepler.gl/localization'; import {SingleSelectFilterProps} from './types'; export default function SingleSelectFilterFactory() { diff --git a/src/components/kepler-gl.tsx b/src/components/kepler-gl.tsx index 93b6b7fb60..c40e8f6a92 100644 --- a/src/components/kepler-gl.tsx +++ b/src/components/kepler-gl.tsx @@ -25,7 +25,7 @@ import styled, {ThemeProvider, withTheme} from 'styled-components'; import {createSelector} from 'reselect'; import {connect as keplerGlConnect} from 'connect/keplergl-connect'; import {IntlProvider} from 'react-intl'; -import {messages} from '../localization'; +import {messages} from '@kepler.gl/localization'; import {RootContext} from 'components/context'; import {OnErrorCallBack, OnSuccessCallBack} from 'actions/provider-actions'; diff --git a/src/components/map-container.tsx b/src/components/map-container.tsx index 9de282b4e5..90b262f4ea 100644 --- a/src/components/map-container.tsx +++ b/src/components/map-container.tsx @@ -61,7 +61,7 @@ import {FILTER_TYPES, GEOCODER_LAYER_ID, THROTTLE_NOTIFICATION_TIME} from '@kepl import ErrorBoundary from 'components/common/error-boundary'; import {observeDimensions, unobserveDimensions} from '../utils/observe-dimensions'; -import {LOCALE_CODES} from 'localization/locales'; +import {LOCALE_CODES} from '@kepler.gl/localization'; import { Datasets, Filter, diff --git a/src/components/map/locale-panel.tsx b/src/components/map/locale-panel.tsx index b7a65837ea..5a0d2475fd 100644 --- a/src/components/map/locale-panel.tsx +++ b/src/components/map/locale-panel.tsx @@ -25,7 +25,7 @@ import ToolbarItem from 'components/common/toolbar-item'; import {MapControlButton} from 'components/common/styled-components'; import MapControlTooltipFactory from './map-control-tooltip'; import MapControlToolbarFactory from './map-control-toolbar'; -import {FormattedMessage} from '../../localization'; +import {FormattedMessage} from '@kepler.gl/localization'; import TippyTooltip from 'components/common/tippy-tooltip'; import {MapControls} from 'reducers'; diff --git a/src/components/map/map-control-panel.tsx b/src/components/map/map-control-panel.tsx index 33cd3e379f..05c2fff096 100644 --- a/src/components/map/map-control-panel.tsx +++ b/src/components/map/map-control-panel.tsx @@ -20,7 +20,7 @@ import React from 'react'; import styled from 'styled-components'; -import {FormattedMessage} from 'localization'; +import {FormattedMessage} from '@kepler.gl/localization'; import {IconRoundSmall} from 'components/common/styled-components'; import {Close, Pin} from 'components/common/icons'; diff --git a/src/components/map/map-control-tooltip.tsx b/src/components/map/map-control-tooltip.tsx index e1ade12614..8969d871ca 100644 --- a/src/components/map/map-control-tooltip.tsx +++ b/src/components/map/map-control-tooltip.tsx @@ -20,7 +20,7 @@ import React from 'react'; import {Tooltip} from 'components/common/styled-components'; -import {FormattedMessage} from 'localization'; +import {FormattedMessage} from '@kepler.gl/localization'; export type MapControlTooltipProps = { id: string; diff --git a/src/components/map/map-draw-panel.tsx b/src/components/map/map-draw-panel.tsx index 04b080978f..2d03178bed 100644 --- a/src/components/map/map-draw-panel.tsx +++ b/src/components/map/map-draw-panel.tsx @@ -35,7 +35,7 @@ import ToolbarItem from 'components/common/toolbar-item'; import MapControlTooltipFactory from './map-control-tooltip'; import MapControlPanelFactory from './map-control-panel'; import MapControlToolbarFactory from './map-control-toolbar'; -import {FormattedMessage} from '../../localization'; +import {FormattedMessage} from '@kepler.gl/localization'; import TippyTooltip from 'components/common/tippy-tooltip'; import {Editor, MapControls} from 'reducers'; import {BaseProps} from 'components/common/icons/base'; diff --git a/src/components/map/map-legend-panel.tsx b/src/components/map/map-legend-panel.tsx index 21df9b9de3..c26b318ead 100644 --- a/src/components/map/map-legend-panel.tsx +++ b/src/components/map/map-legend-panel.tsx @@ -22,7 +22,7 @@ import React, {ComponentType, useState} from 'react'; import styled from 'styled-components'; import {Legend} from 'components/common/icons'; -import {FormattedMessage} from 'localization'; +import {FormattedMessage} from '@kepler.gl/localization'; import {MapControlButton} from 'components/common/styled-components'; import MapControlPanelFactory from './map-control-panel'; import MapLegendFactory from './map-legend'; diff --git a/src/components/map/map-legend.tsx b/src/components/map/map-legend.tsx index 42e98fc8f0..15ecf2074c 100644 --- a/src/components/map/map-legend.tsx +++ b/src/components/map/map-legend.tsx @@ -23,7 +23,7 @@ import styled from 'styled-components'; 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 {FormattedMessage} from '@kepler.gl/localization'; import {Layer, LayerBaseConfig, VisualChannel, VisualChannelDescription} from '@kepler.gl/layers'; interface StyledMapControlLegendProps { diff --git a/src/components/map/map-popover.tsx b/src/components/map/map-popover.tsx index eb341539f7..6bbd85d17c 100644 --- a/src/components/map/map-popover.tsx +++ b/src/components/map/map-popover.tsx @@ -24,7 +24,7 @@ import LayerHoverInfoFactory from './layer-hover-info'; import CoordinateInfoFactory from './coordinate-info'; import {ArrowLeft, ArrowRight, Pin} from 'components/common/icons'; import {injectIntl, IntlShape} from 'react-intl'; -import {FormattedMessage} from 'localization'; +import {FormattedMessage} from '@kepler.gl/localization'; import Tippy from '@tippyjs/react/headless'; import {LayerHoverProp} from 'utils/layer-utils'; diff --git a/src/components/map/split-map-button.tsx b/src/components/map/split-map-button.tsx index bcd9ae47d7..061e3bed57 100644 --- a/src/components/map/split-map-button.tsx +++ b/src/components/map/split-map-button.tsx @@ -22,7 +22,7 @@ import React, {ComponentType, useCallback, useMemo} from 'react'; import classnames from 'classnames'; import {MapControlButton} from 'components/common/styled-components'; import {Delete, Split} from 'components/common/icons'; -import {FormattedMessage} from '../../localization'; +import {FormattedMessage} from '@kepler.gl/localization'; import TippyTooltip from '../common/tippy-tooltip'; import {MapControl, MapControls} from 'reducers'; diff --git a/src/components/map/toggle-3d-button.tsx b/src/components/map/toggle-3d-button.tsx index abdd5a8dc3..8d14ae14bb 100644 --- a/src/components/map/toggle-3d-button.tsx +++ b/src/components/map/toggle-3d-button.tsx @@ -23,7 +23,7 @@ import classnames from 'classnames'; import {Cube3d} from 'components/common/icons'; import {MapControlButton} from 'components/common/styled-components'; -import {FormattedMessage} from '../../localization'; +import {FormattedMessage} from '@kepler.gl/localization'; import TippyTooltip from 'components/common/tippy-tooltip'; import {MapControls} from 'reducers'; diff --git a/src/components/modals/add-map-style-modal.tsx b/src/components/modals/add-map-style-modal.tsx index f84697cbf6..11f5e83925 100644 --- a/src/components/modals/add-map-style-modal.tsx +++ b/src/components/modals/add-map-style-modal.tsx @@ -35,7 +35,7 @@ import {media} from 'styles/media-breakpoints'; // Utils import {transformRequest} from 'utils/map-style-utils/mapbox-utils'; import {injectIntl, IntlShape} from 'react-intl'; -import {FormattedMessage} from 'localization'; +import {FormattedMessage} from '@kepler.gl/localization'; import {InputStyle, MapState} from 'reducers'; import mapboxgl from 'mapbox-gl'; diff --git a/src/components/modals/delete-data-modal.tsx b/src/components/modals/delete-data-modal.tsx index 63cd063a91..4a738bdf00 100644 --- a/src/components/modals/delete-data-modal.tsx +++ b/src/components/modals/delete-data-modal.tsx @@ -21,7 +21,7 @@ import React from 'react'; import styled from 'styled-components'; import DatasetLabel from 'components/common/dataset-label'; -import {FormattedMessage} from 'localization'; +import {FormattedMessage} from '@kepler.gl/localization'; import {Layer} from '@kepler.gl/layers'; import KeplerTable from 'utils/table-utils/kepler-table'; diff --git a/src/components/modals/export-data-modal.tsx b/src/components/modals/export-data-modal.tsx index fcf84cf9b3..4bffbd2c30 100644 --- a/src/components/modals/export-data-modal.tsx +++ b/src/components/modals/export-data-modal.tsx @@ -30,7 +30,7 @@ import { CheckMark } from 'components/common/styled-components'; import {injectIntl, IntlShape} from 'react-intl'; -import {FormattedMessage} from 'localization'; +import {FormattedMessage} from '@kepler.gl/localization'; import {Datasets} from 'reducers'; const getDataRowCount = ( diff --git a/src/components/modals/export-image-modal.tsx b/src/components/modals/export-image-modal.tsx index 127e7534d1..b6a441868e 100644 --- a/src/components/modals/export-image-modal.tsx +++ b/src/components/modals/export-image-modal.tsx @@ -28,7 +28,7 @@ import {EXPORT_IMG_RATIO_OPTIONS, EXPORT_IMG_RESOLUTION_OPTIONS} from '@kepler.g import {StyledModalContent, SelectionButton, CheckMark} from 'components/common/styled-components'; import Switch from 'components/common/switch'; import {injectIntl, IntlShape} from 'react-intl'; -import {FormattedMessage} from 'localization'; +import {FormattedMessage} from '@kepler.gl/localization'; import {ExportImage} from 'reducers'; const ImageOptionList = styled.div` diff --git a/src/components/modals/export-map-modal/export-html-map.tsx b/src/components/modals/export-map-modal/export-html-map.tsx index 7d35a830b3..4a3a0e47af 100644 --- a/src/components/modals/export-map-modal/export-html-map.tsx +++ b/src/components/modals/export-map-modal/export-html-map.tsx @@ -28,7 +28,7 @@ import { } from '@kepler.gl/constants'; import styled from 'styled-components'; import {injectIntl} from 'react-intl'; -import {FormattedMessage} from 'localization'; +import {FormattedMessage} from '@kepler.gl/localization'; import {IntlShape} from 'react-intl'; import {setUserMapboxAccessToken, setExportHTMLMapMode, ActionHandler} from 'actions'; diff --git a/src/components/modals/export-map-modal/export-json-map.tsx b/src/components/modals/export-map-modal/export-json-map.tsx index 2fa5efb1db..a31e5302d5 100644 --- a/src/components/modals/export-map-modal/export-json-map.tsx +++ b/src/components/modals/export-map-modal/export-json-map.tsx @@ -24,7 +24,7 @@ import {ADD_DATA_TO_MAP_DOC} from '@kepler.gl/constants'; import styled from 'styled-components'; import {StyledExportSection, Button} from 'components/common/styled-components'; import {StyledExportMapSection, StyledWarning, ExportMapLink} from './components'; -import {FormattedMessage} from 'localization'; +import {FormattedMessage} from '@kepler.gl/localization'; import {CopyToClipboard} from 'react-copy-to-clipboard'; const StyledJsonExportSection = styled(StyledExportSection)` diff --git a/src/components/modals/export-map-modal/export-map-modal.tsx b/src/components/modals/export-map-modal/export-map-modal.tsx index c90d66a30e..ac51365b8f 100644 --- a/src/components/modals/export-map-modal/export-map-modal.tsx +++ b/src/components/modals/export-map-modal/export-map-modal.tsx @@ -26,7 +26,7 @@ import {EXPORT_MAP_FORMATS, EXPORT_MAP_FORMAT_OPTIONS} from '@kepler.gl/constant import {StyledExportMapSection} from './components'; import ExportHtmlMapFactory from './export-html-map'; import ExportJsonMapFactory from './export-json-map'; -import {FormattedMessage} from 'localization'; +import {FormattedMessage} from '@kepler.gl/localization'; import {ActionHandler, setExportHTMLMapMode, setUserMapboxAccessToken} from 'actions'; interface ExportMapModalFactoryProps { diff --git a/src/components/modals/load-storage-map.tsx b/src/components/modals/load-storage-map.tsx index 8be4127d25..3a524f2d0a 100644 --- a/src/components/modals/load-storage-map.tsx +++ b/src/components/modals/load-storage-map.tsx @@ -27,7 +27,7 @@ import {Button} from 'components/common/styled-components'; import CloudTile from './cloud-tile'; import {Base, ArrowLeft} from 'components/common/icons'; import ProviderModalContainer from './provider-modal-container'; -import {FormattedMessage} from 'localization'; +import {FormattedMessage} from '@kepler.gl/localization'; import {MapListItem, Provider} from 'cloud-providers'; const StyledProviderSection = styled.div.attrs({ diff --git a/src/components/modals/loading-dialog.tsx b/src/components/modals/loading-dialog.tsx index 18d8c3ba4b..d3067a6e0c 100644 --- a/src/components/modals/loading-dialog.tsx +++ b/src/components/modals/loading-dialog.tsx @@ -21,7 +21,7 @@ import React from 'react'; import styled from 'styled-components'; import LoadingSpinner from 'components/common/loading-spinner'; -import {FormattedMessage} from 'localization'; +import {FormattedMessage} from '@kepler.gl/localization'; const StyledSpinner = styled.div` text-align: center; diff --git a/src/components/modals/overwrite-map-modal.tsx b/src/components/modals/overwrite-map-modal.tsx index 7f20642d9d..3cade812b9 100644 --- a/src/components/modals/overwrite-map-modal.tsx +++ b/src/components/modals/overwrite-map-modal.tsx @@ -23,7 +23,7 @@ import styled from 'styled-components'; import {CenterVerticalFlexbox} from 'components/common/styled-components'; import {UploadAnimation} from './status-panel'; import ImageModalContainer from './image-modal-container'; -import {FormattedMessage} from 'localization'; +import {FormattedMessage} from '@kepler.gl/localization'; import {Provider} from 'cloud-providers'; import {ImageModalContainerProps} from './image-modal-container'; diff --git a/src/components/modals/save-map-modal.tsx b/src/components/modals/save-map-modal.tsx index 0493c2bd8c..4fb8dd4290 100644 --- a/src/components/modals/save-map-modal.tsx +++ b/src/components/modals/save-map-modal.tsx @@ -36,7 +36,7 @@ import { StyledModalInputFootnote } from 'components/common/styled-components'; import ImagePreview from 'components/common/image-preview'; -import {FormattedMessage} from 'localization'; +import {FormattedMessage} from '@kepler.gl/localization'; import {ExportImage, MapInfo} from 'reducers'; import {Provider} from 'cloud-providers'; import {setMapInfo, cleanupExportImage} from 'actions'; diff --git a/src/components/modals/share-map-modal.tsx b/src/components/modals/share-map-modal.tsx index 18442b2d39..dd07125e6a 100644 --- a/src/components/modals/share-map-modal.tsx +++ b/src/components/modals/share-map-modal.tsx @@ -33,7 +33,7 @@ import { } from 'components/common/styled-components'; import CloudTile from './cloud-tile'; import StatusPanel from './status-panel'; -import {FormattedMessage} from 'localization'; +import {FormattedMessage} from '@kepler.gl/localization'; import {Provider} from 'cloud-providers'; import {cleanupExportImage, SetCloudProviderPayload} from 'actions'; diff --git a/src/components/modals/status-panel.tsx b/src/components/modals/status-panel.tsx index 7d500a4f48..91c900ad02 100644 --- a/src/components/modals/status-panel.tsx +++ b/src/components/modals/status-panel.tsx @@ -23,7 +23,7 @@ import styled from 'styled-components'; import {MapIcon} from 'components/common/icons'; import {StyledExportSection} from 'components/common/styled-components'; import ErrorDisplay from './error-display'; -import {FormattedMessage} from 'localization'; +import {FormattedMessage} from '@kepler.gl/localization'; import {IconProps} from 'cloud-providers/provider'; const StyledUploader = styled.div` diff --git a/src/components/modals/storage-map-viewer.tsx b/src/components/modals/storage-map-viewer.tsx index 4a4f7d2f4f..3347277026 100644 --- a/src/components/modals/storage-map-viewer.tsx +++ b/src/components/modals/storage-map-viewer.tsx @@ -22,7 +22,7 @@ import React from 'react'; import styled from 'styled-components'; import moment from 'moment'; import {LeftArrow} from 'components/common/icons'; -import {FormattedMessage} from 'localization'; +import {FormattedMessage} from '@kepler.gl/localization'; const imageH = 108; diff --git a/src/components/side-panel.tsx b/src/components/side-panel.tsx index 633fd76349..f70953eae3 100644 --- a/src/components/side-panel.tsx +++ b/src/components/side-panel.tsx @@ -19,7 +19,7 @@ // THE SOFTWARE. import React, {useCallback, useMemo} from 'react'; -import {FormattedMessage} from 'localization'; +import {FormattedMessage} from '@kepler.gl/localization'; import { EXPORT_DATA_ID, diff --git a/src/components/side-panel/common/dataset-info.tsx b/src/components/side-panel/common/dataset-info.tsx index 73edab30ea..aabd2bd914 100644 --- a/src/components/side-panel/common/dataset-info.tsx +++ b/src/components/side-panel/common/dataset-info.tsx @@ -21,7 +21,7 @@ import React from 'react'; import styled from 'styled-components'; import {format} from 'd3-format'; -import {FormattedMessage} from 'localization'; +import {FormattedMessage} from '@kepler.gl/localization'; import {DatasetInfoProps} from './types'; const numFormat = format(','); diff --git a/src/components/side-panel/common/dataset-tag.tsx b/src/components/side-panel/common/dataset-tag.tsx index 6ad0fd232b..9a57c9b8ca 100644 --- a/src/components/side-panel/common/dataset-tag.tsx +++ b/src/components/side-panel/common/dataset-tag.tsx @@ -19,7 +19,7 @@ // THE SOFTWARE. import React from 'react'; -import {FormattedMessage} from 'localization'; +import {FormattedMessage} from '@kepler.gl/localization'; import styled from 'styled-components'; import {DatasetSquare, Tooltip} from 'components'; import {DatasetTagProps, UpdateTableColorTypes} from './types'; diff --git a/src/components/side-panel/common/dataset-title.tsx b/src/components/side-panel/common/dataset-title.tsx index da3952e289..debe0fc61a 100644 --- a/src/components/side-panel/common/dataset-title.tsx +++ b/src/components/side-panel/common/dataset-title.tsx @@ -20,7 +20,7 @@ import React, {createRef, MouseEvent, PureComponent} from 'react'; import styled from 'styled-components'; -import {FormattedMessage} from 'localization'; +import {FormattedMessage} from '@kepler.gl/localization'; import {CenterFlexbox, Tooltip} from 'components/common/styled-components'; import {ArrowRight, Table, Trash} from 'components/common/icons'; diff --git a/src/components/side-panel/common/source-data-selector.tsx b/src/components/side-panel/common/source-data-selector.tsx index bf3a873c25..0a6eaef99f 100644 --- a/src/components/side-panel/common/source-data-selector.tsx +++ b/src/components/side-panel/common/source-data-selector.tsx @@ -24,7 +24,7 @@ import {createSelector} from 'reselect'; import {PanelLabel, SidePanelSection} from 'components/common/styled-components'; import ItemSelector from 'components/common/item-selector/item-selector'; import DatasetTagFactory from 'components/side-panel/common/dataset-tag'; -import {FormattedMessage} from 'localization'; +import {FormattedMessage} from '@kepler.gl/localization'; import {DatasetItemProps, SourceDataSelectorProps} from './types'; const defaultPlaceHolder = 'Select A Data Source'; diff --git a/src/components/side-panel/filter-manager.tsx b/src/components/side-panel/filter-manager.tsx index 07b82610c0..05263caa47 100644 --- a/src/components/side-panel/filter-manager.tsx +++ b/src/components/side-panel/filter-manager.tsx @@ -19,7 +19,7 @@ // THE SOFTWARE. import React, {useCallback, useMemo} from 'react'; -import {FormattedMessage} from 'localization'; +import {FormattedMessage} from '@kepler.gl/localization'; import {Button, SidePanelDivider, SidePanelSection} from 'components/common/styled-components'; import {Add} from 'components/common/icons'; import SourceDataCatalogFactory from './common/source-data-catalog'; diff --git a/src/components/side-panel/interaction-panel/brush-config.tsx b/src/components/side-panel/interaction-panel/brush-config.tsx index 163c446c85..1cf1bcef5f 100644 --- a/src/components/side-panel/interaction-panel/brush-config.tsx +++ b/src/components/side-panel/interaction-panel/brush-config.tsx @@ -23,7 +23,7 @@ import RangeSliderFactory from 'components/common/range-slider'; import {PanelLabel, SidePanelSection} from 'components/common/styled-components'; import {BRUSH_CONFIG} from 'utils/interaction-utils'; -import {FormattedMessage} from 'localization'; +import {FormattedMessage} from '@kepler.gl/localization'; BrushConfigFactory.deps = [RangeSliderFactory]; diff --git a/src/components/side-panel/interaction-panel/interaction-panel.tsx b/src/components/side-panel/interaction-panel/interaction-panel.tsx index 96e6ec071d..a88ff2c51f 100644 --- a/src/components/side-panel/interaction-panel/interaction-panel.tsx +++ b/src/components/side-panel/interaction-panel/interaction-panel.tsx @@ -31,7 +31,7 @@ import { PanelHeaderContent, PanelContent } from 'components/common/styled-components'; -import {FormattedMessage} from 'localization'; +import {FormattedMessage} from '@kepler.gl/localization'; interface InteractionPanelProps { datasets: any; diff --git a/src/components/side-panel/interaction-panel/tooltip-config.tsx b/src/components/side-panel/interaction-panel/tooltip-config.tsx index 66c1f08396..8fa048b61e 100644 --- a/src/components/side-panel/interaction-panel/tooltip-config.tsx +++ b/src/components/side-panel/interaction-panel/tooltip-config.tsx @@ -21,7 +21,7 @@ import React from 'react'; import styled from 'styled-components'; import {injectIntl, IntlShape} from 'react-intl'; -import {FormattedMessage} from 'localization'; +import {FormattedMessage} from '@kepler.gl/localization'; import { SidePanelSection, 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 33177c571d..6e0380034f 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 @@ -23,7 +23,7 @@ import styled from 'styled-components'; import {ChickletButton, ChickletTag} from 'components/common/item-selector/chickleted-input'; import {Hash, Delete} from 'components/common/icons'; import DropdownList from 'components/common/item-selector/dropdown-list'; -import {FormattedMessage} from 'localization'; +import {FormattedMessage} from '@kepler.gl/localization'; import onClickOutside from 'react-onclickoutside'; import {FIELD_OPTS, TOOLTIP_FORMATS, TOOLTIP_FORMAT_TYPES, TOOLTIP_KEY} from '@kepler.gl/constants'; import {getFormatter} from 'utils/data-utils'; diff --git a/src/components/side-panel/layer-manager.tsx b/src/components/side-panel/layer-manager.tsx index 1a88aa539c..e68415c02f 100644 --- a/src/components/side-panel/layer-manager.tsx +++ b/src/components/side-panel/layer-manager.tsx @@ -21,7 +21,7 @@ import React, {Component, useCallback} from 'react'; import {injectIntl, WrappedComponentProps} from 'react-intl'; -import {FormattedMessage} from 'localization'; +import {FormattedMessage} from '@kepler.gl/localization'; import styled from 'styled-components'; import LayerListFactory from './layer-panel/layer-list'; diff --git a/src/components/side-panel/layer-panel/add-layer-button.tsx b/src/components/side-panel/layer-panel/add-layer-button.tsx index ae64b838ca..0852ff68a0 100644 --- a/src/components/side-panel/layer-panel/add-layer-button.tsx +++ b/src/components/side-panel/layer-panel/add-layer-button.tsx @@ -20,7 +20,7 @@ import React, {useCallback, useMemo, useState} from 'react'; import styled from 'styled-components'; -import {FormattedMessage} from 'localization'; +import {FormattedMessage} from '@kepler.gl/localization'; import {WrappedComponentProps} from 'react-intl'; import Tippy from '@tippyjs/react'; 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 6611e7c54e..ec43afc8f4 100644 --- a/src/components/side-panel/layer-panel/color-range-selector.tsx +++ b/src/components/side-panel/layer-panel/color-range-selector.tsx @@ -31,7 +31,7 @@ import CustomPalette from './custom-palette'; 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 {FormattedMessage} from '@kepler.gl/localization'; import {NestedPartial, ColorUI} from '@kepler.gl/types'; type ColorRangeSelectorProps = { diff --git a/src/components/side-panel/layer-panel/column-selector.tsx b/src/components/side-panel/layer-panel/column-selector.tsx index 8c34c2fa30..d4120bc550 100644 --- a/src/components/side-panel/layer-panel/column-selector.tsx +++ b/src/components/side-panel/layer-panel/column-selector.tsx @@ -20,7 +20,7 @@ import React from 'react'; import styled from 'styled-components'; -import {FormattedMessage} from 'localization'; +import {FormattedMessage} from '@kepler.gl/localization'; import {PanelLabel} from 'components/common/styled-components'; import FieldSelectorFactory from 'components/common/field-selector'; import {validateColumn} from 'reducers/vis-state-merger'; diff --git a/src/components/side-panel/layer-panel/dataset-section.tsx b/src/components/side-panel/layer-panel/dataset-section.tsx index 979e7e4613..485f1da799 100644 --- a/src/components/side-panel/layer-panel/dataset-section.tsx +++ b/src/components/side-panel/layer-panel/dataset-section.tsx @@ -20,7 +20,7 @@ import React from 'react'; import styled from 'styled-components'; -import {FormattedMessage} from 'localization'; +import {FormattedMessage} from '@kepler.gl/localization'; import {Add} from 'components/common/icons'; import {Button} from 'components/common/styled-components'; diff --git a/src/components/side-panel/layer-panel/dimension-scale-selector.tsx b/src/components/side-panel/layer-panel/dimension-scale-selector.tsx index 1a8add2270..a737d1cab8 100644 --- a/src/components/side-panel/layer-panel/dimension-scale-selector.tsx +++ b/src/components/side-panel/layer-panel/dimension-scale-selector.tsx @@ -21,7 +21,7 @@ import React from 'react'; import {PanelLabel, SidePanelSection} from 'components/common/styled-components'; import ItemSelector from 'components/common/item-selector/item-selector'; -import {FormattedMessage} from 'localization'; +import {FormattedMessage} from '@kepler.gl/localization'; import {camelize} from 'utils/utils'; type DimensionScaleSelectorProps = { 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 e3034d55f6..817fea935d 100644 --- a/src/components/side-panel/layer-panel/layer-column-config.tsx +++ b/src/components/side-panel/layer-panel/layer-column-config.tsx @@ -20,7 +20,7 @@ import React, {useCallback, useMemo} from 'react'; import styled from 'styled-components'; -import {FormattedMessage} from 'localization'; +import {FormattedMessage} from '@kepler.gl/localization'; import {PanelLabel, SidePanelSection} from 'components/common/styled-components'; import ColumnSelectorFactory from './column-selector'; import {ColumnPairs, Layer, LayerColumns, LayerBaseConfig} from '@kepler.gl/layers'; diff --git a/src/components/side-panel/layer-panel/layer-configurator.tsx b/src/components/side-panel/layer-panel/layer-configurator.tsx index 4054801080..d4361cfa63 100644 --- a/src/components/side-panel/layer-panel/layer-configurator.tsx +++ b/src/components/side-panel/layer-panel/layer-configurator.tsx @@ -21,7 +21,7 @@ /* eslint-disable complexity */ import React, {Component, Fragment, MouseEventHandler} from 'react'; import styled from 'styled-components'; -import {FormattedMessage} from 'localization'; +import {FormattedMessage} from '@kepler.gl/localization'; import {Button, Input, PanelLabel, SidePanelSection} from 'components/common/styled-components'; import ItemSelector from 'components/common/item-selector/item-selector'; diff --git a/src/components/side-panel/layer-panel/layer-panel-header.tsx b/src/components/side-panel/layer-panel/layer-panel-header.tsx index fb7a7811b0..f0cdebd6fc 100644 --- a/src/components/side-panel/layer-panel/layer-panel-header.tsx +++ b/src/components/side-panel/layer-panel/layer-panel-header.tsx @@ -32,7 +32,7 @@ import PanelHeaderActionFactory from 'components/side-panel/panel-header-action' import {Copy, ArrowDown, EyeSeen, EyeUnseen, Trash, VertDots} from 'components/common/icons'; import {InlineInput, StyledPanelHeader} from 'components/common/styled-components'; -import {FormattedMessage} from 'localization'; +import {FormattedMessage} from '@kepler.gl/localization'; import {RGBColor} from '@kepler.gl/types'; import {BaseProps} from 'components/common/icons/base'; diff --git a/src/components/side-panel/layer-panel/layer-type-list-item.tsx b/src/components/side-panel/layer-panel/layer-type-list-item.tsx index f997b2171b..505ed7a7b0 100644 --- a/src/components/side-panel/layer-panel/layer-type-list-item.tsx +++ b/src/components/side-panel/layer-panel/layer-type-list-item.tsx @@ -22,7 +22,7 @@ import React, {ComponentType} from 'react'; import styled from 'styled-components'; import {CLOUDFRONT} from '@kepler.gl/constants'; import classNames from 'classnames'; -import {FormattedMessage} from 'localization'; +import {FormattedMessage} from '@kepler.gl/localization'; import {BaseProps} from 'components/common/icons/base'; type LayerTypeListItemProps = { diff --git a/src/components/side-panel/layer-panel/panel-view-list-toggle.tsx b/src/components/side-panel/layer-panel/panel-view-list-toggle.tsx index 922aa6b6eb..cd315bab3c 100644 --- a/src/components/side-panel/layer-panel/panel-view-list-toggle.tsx +++ b/src/components/side-panel/layer-panel/panel-view-list-toggle.tsx @@ -23,7 +23,7 @@ import styled from 'styled-components'; import OrderByList from 'components/common/icons/order-by-list'; import OrderByDataset from 'components/common/icons/order-by-dataset'; import {Tooltip} from 'components/common/styled-components'; -import {FormattedMessage} from 'localization'; +import {FormattedMessage} from '@kepler.gl/localization'; import {LayerPanelListView} from 'reducers/ui-state-updaters'; type ToggleOptionProps = { 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 69c84b5cb2..887f4addf0 100644 --- a/src/components/side-panel/layer-panel/text-label-panel.tsx +++ b/src/components/side-panel/layer-panel/text-label-panel.tsx @@ -19,7 +19,7 @@ // THE SOFTWARE. import React, {Component} from 'react'; -import {FormattedMessage} from 'localization'; +import {FormattedMessage} from '@kepler.gl/localization'; import { Button, 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 c438634038..c6d025a5c9 100644 --- a/src/components/side-panel/layer-panel/vis-config-slider.tsx +++ b/src/components/side-panel/layer-panel/vis-config-slider.tsx @@ -23,7 +23,7 @@ import styled from 'styled-components'; import {PanelLabel, SidePanelSection} from 'components/common/styled-components'; import RangeSliderFactory from 'components/common/range-slider'; -import {FormattedMessage} from 'localization'; +import {FormattedMessage} from '@kepler.gl/localization'; import {KeyEvent} from '@kepler.gl/constants'; import {Checkbox} from 'components'; import {clamp} from 'utils/data-utils'; 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 32e0fa57b4..064a461c78 100644 --- a/src/components/side-panel/layer-panel/vis-config-switch.tsx +++ b/src/components/side-panel/layer-panel/vis-config-switch.tsx @@ -24,7 +24,7 @@ import InfoHelperFactory from 'components/common/info-helper'; import Switch from 'components/common/switch'; import {SidePanelSection, PanelLabel} from 'components/common/styled-components'; import {capitalizeFirstLetter} from 'utils/utils'; -import {FormattedMessage} from 'localization'; +import {FormattedMessage} from '@kepler.gl/localization'; import {Layer} from '@kepler.gl/layers'; type VisConfigSwitchProps = { diff --git a/src/components/side-panel/map-manager.tsx b/src/components/side-panel/map-manager.tsx index 3a6115030e..bf702c4e20 100644 --- a/src/components/side-panel/map-manager.tsx +++ b/src/components/side-panel/map-manager.tsx @@ -28,7 +28,7 @@ import {Add} from 'components/common/icons'; import ColorSelector from './layer-panel/color-selector'; import {createSelector} from 'reselect'; import {injectIntl, WrappedComponentProps} from 'react-intl'; -import {FormattedMessage} from 'localization'; +import {FormattedMessage} from '@kepler.gl/localization'; import {MapStyle} from 'reducers'; import * as MapStyleActions from 'actions/map-style-actions'; diff --git a/src/components/side-panel/map-style-panel/map-layer-selector.tsx b/src/components/side-panel/map-style-panel/map-layer-selector.tsx index 10ef019054..b3331d52f2 100644 --- a/src/components/side-panel/map-style-panel/map-layer-selector.tsx +++ b/src/components/side-panel/map-style-panel/map-layer-selector.tsx @@ -30,7 +30,7 @@ import { PanelLabelWrapper, CenterFlexbox } from 'components/common/styled-components'; -import {FormattedMessage} from 'localization'; +import {FormattedMessage} from '@kepler.gl/localization'; import {camelize} from 'utils/utils'; import {VisibleLayerGroups} from 'reducers'; import {BaseProps} from 'components/common/icons/base'; diff --git a/src/components/side-panel/map-style-panel/map-style-selector.tsx b/src/components/side-panel/map-style-panel/map-style-selector.tsx index f68abe4ae4..f3d0bd5686 100644 --- a/src/components/side-panel/map-style-panel/map-style-selector.tsx +++ b/src/components/side-panel/map-style-panel/map-style-selector.tsx @@ -30,7 +30,7 @@ import { PanelLabel, StyledPanelHeader } from 'components/common/styled-components'; -import {FormattedMessage} from 'localization'; +import {FormattedMessage} from '@kepler.gl/localization'; import {MapStyle} from 'reducers'; import {BaseProps} from 'components/common/icons/base'; diff --git a/src/components/side-panel/panel-header-action.tsx b/src/components/side-panel/panel-header-action.tsx index 363b697823..4f30739563 100644 --- a/src/components/side-panel/panel-header-action.tsx +++ b/src/components/side-panel/panel-header-action.tsx @@ -22,7 +22,7 @@ import React, {Component, ComponentType, MouseEventHandler} from 'react'; import {TooltipProps} from 'react-tooltip'; import classnames from 'classnames'; import styled from 'styled-components'; -import {FormattedMessage} from 'localization'; +import {FormattedMessage} from '@kepler.gl/localization'; import {Tooltip} from 'components/common/styled-components'; import {BaseProps} from 'components/common/icons/base'; diff --git a/src/components/side-panel/panel-header.tsx b/src/components/side-panel/panel-header.tsx index f7f1348762..192164e31a 100644 --- a/src/components/side-panel/panel-header.tsx +++ b/src/components/side-panel/panel-header.tsx @@ -28,7 +28,7 @@ import {Save, DataTable, Save2, Picture, Db, Map as MapIcon, Share} from 'compon import ClickOutsideCloseDropdown from 'components/side-panel/panel-dropdown'; import Toolbar from 'components/common/toolbar'; import ToolbarItem, {ToolbarItemProps} from 'components/common/toolbar-item'; -import {FormattedMessage} from 'localization'; +import {FormattedMessage} from '@kepler.gl/localization'; import {UiState} from 'reducers'; import {BaseProps} from 'components/common/icons/base'; diff --git a/src/components/side-panel/panel-tab.tsx b/src/components/side-panel/panel-tab.tsx index 4037888840..459267bb4a 100644 --- a/src/components/side-panel/panel-tab.tsx +++ b/src/components/side-panel/panel-tab.tsx @@ -21,7 +21,7 @@ import React from 'react'; import styled from 'styled-components'; import {Tooltip} from 'components/common/styled-components'; -import {FormattedMessage} from 'localization'; +import {FormattedMessage} from '@kepler.gl/localization'; import {BaseProps} from 'components/common/icons/base'; type StyledPanelTabProps = { diff --git a/src/layers/src/icon-layer/icon-info-modal.tsx b/src/layers/src/icon-layer/icon-info-modal.tsx index 011b29a853..43ba23766a 100644 --- a/src/layers/src/icon-layer/icon-info-modal.tsx +++ b/src/layers/src/icon-layer/icon-info-modal.tsx @@ -22,7 +22,7 @@ import React from 'react'; import styled from 'styled-components'; import {line} from 'd3-shape'; import {Table, CenterFlexbox} from 'components/common/styled-components'; -import {FormattedMessage} from 'localization'; +import {FormattedMessage} from '@kepler.gl/localization'; const lineFunction = line() .x(d => d[0] * 10) diff --git a/src/layers/src/trip-layer/trip-info-modal.tsx b/src/layers/src/trip-layer/trip-info-modal.tsx index 5219ccb550..e7d5331a53 100644 --- a/src/layers/src/trip-layer/trip-info-modal.tsx +++ b/src/layers/src/trip-layer/trip-info-modal.tsx @@ -20,7 +20,7 @@ import React from 'react'; import styled from 'styled-components'; -import {FormattedMessage} from 'localization'; +import {FormattedMessage} from '@kepler.gl/localization'; const StyledCode = styled.code` color: ${props => props.theme.titleColorLT}; diff --git a/src/localization/babel.config.js b/src/localization/babel.config.js new file mode 100644 index 0000000000..0672a8d638 --- /dev/null +++ b/src/localization/babel.config.js @@ -0,0 +1,64 @@ +// 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-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/localization/package.json b/src/localization/package.json new file mode 100644 index 0000000000..04c2f9d807 --- /dev/null +++ b/src/localization/package.json @@ -0,0 +1,67 @@ +{ + "name": "@kepler.gl/localization", + "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/localization/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", + "stab": "mkdir -p dist && touch dist/index.js" + }, + "files": [ + "dist", + "umd" + ], + "dependencies": { + "@danmarshall/deckgl-typings": "4.9.22", + "@deck.gl/aggregation-layers": "8.4.11", + "@deck.gl/core": "^8.4.11", + "@deck.gl/extensions": "^8.4.11", + "@deck.gl/geo-layers": "^8.4.11", + "@deck.gl/layers": "^8.4.11", + "@deck.gl/mesh-layers": "^8.4.11", + "@deck.gl/react": "^8.4.11", + "@luma.gl/constants": "^8.4.3", + "@luma.gl/core": "^8.4.3", + "@mapbox/geo-viewport": "^0.4.1", + "@mapbox/vector-tile": "^1.3.1", + "@types/geojson": "^7946.0.7", + "d3-array": "^2.8.0", + "global": "^4.3.0", + "keymirror": "^0.1.1", + "@kepler.gl/constants": "2.5.5", + "lodash.memoize": "^4.1.2" + }, + "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/localization/formatted-message.tsx b/src/localization/src/formatted-message.tsx similarity index 100% rename from src/localization/formatted-message.tsx rename to src/localization/src/formatted-message.tsx diff --git a/src/localization/index.ts b/src/localization/src/index.ts similarity index 100% rename from src/localization/index.ts rename to src/localization/src/index.ts diff --git a/src/localization/locales.ts b/src/localization/src/locales.ts similarity index 100% rename from src/localization/locales.ts rename to src/localization/src/locales.ts diff --git a/src/localization/messages.ts b/src/localization/src/messages.ts similarity index 95% rename from src/localization/messages.ts rename to src/localization/src/messages.ts index 28cde5e988..4afed09b57 100644 --- a/src/localization/messages.ts +++ b/src/localization/src/messages.ts @@ -19,7 +19,7 @@ // THE SOFTWARE. import en from './translations/en'; -import {flattenMessages} from '../utils/locale-utils'; +import {flattenMessages} from '../../utils/locale-utils'; import {LOCALE_CODES} from './locales'; const enFlat = flattenMessages(en); @@ -32,7 +32,7 @@ export const messages: { [key]: key === 'en' ? enFlat - : {...enFlat, ...flattenMessages(require(`./translations/${key}.ts`).default)} + : {...enFlat, ...flattenMessages(require(`./translations/${key}`).default)} }), {} ); diff --git a/src/localization/translations/ca.ts b/src/localization/src/translations/ca.ts similarity index 100% rename from src/localization/translations/ca.ts rename to src/localization/src/translations/ca.ts diff --git a/src/localization/translations/cn.ts b/src/localization/src/translations/cn.ts similarity index 100% rename from src/localization/translations/cn.ts rename to src/localization/src/translations/cn.ts diff --git a/src/localization/translations/en.ts b/src/localization/src/translations/en.ts similarity index 100% rename from src/localization/translations/en.ts rename to src/localization/src/translations/en.ts diff --git a/src/localization/translations/es.ts b/src/localization/src/translations/es.ts similarity index 100% rename from src/localization/translations/es.ts rename to src/localization/src/translations/es.ts diff --git a/src/localization/translations/fi.ts b/src/localization/src/translations/fi.ts similarity index 100% rename from src/localization/translations/fi.ts rename to src/localization/src/translations/fi.ts diff --git a/src/localization/translations/ja.ts b/src/localization/src/translations/ja.ts similarity index 100% rename from src/localization/translations/ja.ts rename to src/localization/src/translations/ja.ts diff --git a/src/localization/translations/pt.ts b/src/localization/src/translations/pt.ts similarity index 100% rename from src/localization/translations/pt.ts rename to src/localization/src/translations/pt.ts diff --git a/src/localization/translations/ru.ts b/src/localization/src/translations/ru.ts similarity index 100% rename from src/localization/translations/ru.ts rename to src/localization/src/translations/ru.ts diff --git a/src/localization/tsconfig.production.json b/src/localization/tsconfig.production.json new file mode 100644 index 0000000000..7e01b84364 --- /dev/null +++ b/src/localization/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/localization": ["localization"] //TODO change once all dependencies are isolated + } + }, + "include": [ + "src" + ] +} diff --git a/src/localization/webpack/umd.js b/src/localization/webpack/umd.js new file mode 100644 index 0000000000..3eb025d5e4 --- /dev/null +++ b/src/localization/webpack/umd.js @@ -0,0 +1,120 @@ +// 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 resolve = require('path').resolve; +const join = require('path').join; + +// Import package.json to read version +const KeplerPackage = require('../package'); + +const SRC_DIR = resolve(__dirname, '../src'); +const OUTPUT_DIR = resolve(__dirname, '../umd'); + +const LIBRARY_BUNDLE_CONFIG = env => ({ + entry: { + KeplerGl: join(SRC_DIR, 'index.ts') + }, + + // Silence warnings about big bundles + stats: { + warnings: false + }, + + output: { + // Generate the bundle in dist folder + path: OUTPUT_DIR, + filename: 'keplergl.min.js', + globalObject: 'this', + library: '[name]', + libraryTarget: 'umd' + }, + + // let's put everything in + externals: { + react: { + root: 'React', + commonjs2: 'react', + commonjs: 'react', + amd: 'react', + umd: 'react' + }, + 'react-dom': { + root: 'ReactDOM', + commonjs2: 'react-dom', + commonjs: 'react-dom', + amd: 'react-dom', + umd: 'react-dom' + }, + redux: { + root: 'Redux', + commonjs2: 'redux', + commonjs: 'redux', + amd: 'redux', + umd: 'redux' + }, + 'react-redux': { + root: 'ReactRedux', + commonjs2: 'react-redux', + commonjs: 'react-redux', + amd: 'react-redux', + umd: 'react-redux' + }, + 'styled-components': { + commonjs: 'styled-components', + commonjs2: 'styled-components', + amd: 'styled-components', + root: 'styled' + } + }, + resolve: { + extensions: ['.tsx', '.ts', '.js'], + modules: ['node_modules', SRC_DIR] + }, + module: { + rules: [ + { + test: /\.(js|ts|tsx)$/, + loader: 'babel-loader', + include: [SRC_DIR], + options: { + plugins: [ + [ + 'search-and-replace', + { + rules: [ + { + search: '__PACKAGE_VERSION__', + replace: KeplerPackage.version + } + ] + } + ] + ] + } + } + ] + }, + + node: { + fs: 'empty' + } +}); + +module.exports = env => LIBRARY_BUNDLE_CONFIG(env); diff --git a/src/reducers/ui-state-updaters.ts b/src/reducers/ui-state-updaters.ts index a73741bfad..a7582f0aa6 100644 --- a/src/reducers/ui-state-updaters.ts +++ b/src/reducers/ui-state-updaters.ts @@ -31,7 +31,7 @@ import { MAP_CONTROLS } from '@kepler.gl/constants'; import {ActionTypes} from 'actions'; -import {LOCALE_CODES} from 'localization/locales'; +import {LOCALE_CODES} from '@kepler.gl/localization'; import {createNotification, errorNotification} from 'utils/notifications-utils'; import {calculateExportImageSize} from '../utils/export-utils'; import {payload_, apply_, compose_} from './composer-helpers'; diff --git a/test/browser/components/map/map-control-test.js b/test/browser/components/map/map-control-test.js index c33e58f5a7..818d74167b 100644 --- a/test/browser/components/map/map-control-test.js +++ b/test/browser/components/map/map-control-test.js @@ -46,7 +46,7 @@ import { import {Cube3d, Split, Legend, DrawPolygon, Layers, Delete} from 'components/common/icons'; -import {LOCALE_CODES, LOCALES} from 'localization'; +import {LOCALE_CODES, LOCALES} from '@kepler.gl/localization'; import {toggleMapControl} from 'actions'; import {keplerGlReducerCore} from 'reducers'; diff --git a/test/helpers/component-utils.js b/test/helpers/component-utils.js index 619ed8c4b9..bc11670914 100644 --- a/test/helpers/component-utils.js +++ b/test/helpers/component-utils.js @@ -24,7 +24,7 @@ import {mount} from 'enzyme'; import {theme} from 'styles/base'; import {ThemeProvider} from 'styled-components'; import {IntlProvider} from 'react-intl'; -import {messages} from 'localization'; +import {messages} from '@kepler.gl/localization'; export function mountWithTheme(node, options) { return mount(node, {