@sqlrooms/kepler 0.29.0-rc.2 → 0.29.0-rc.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +12 -2
- package/dist/KeplerSlice.d.ts +7 -5
- package/dist/KeplerSlice.d.ts.map +1 -1
- package/dist/KeplerSlice.js +48 -141
- package/dist/KeplerSlice.js.map +1 -1
- package/dist/components/CustomDndContext.d.ts.map +1 -1
- package/dist/components/CustomDndContext.js +5 -2
- package/dist/components/CustomDndContext.js.map +1 -1
- package/dist/components/CustomFilterPanelHeader.d.ts.map +1 -1
- package/dist/components/CustomFilterPanelHeader.js +5 -5
- package/dist/components/CustomFilterPanelHeader.js.map +1 -1
- package/dist/components/CustomMapLegend.d.ts +4 -1
- package/dist/components/CustomMapLegend.d.ts.map +1 -1
- package/dist/components/CustomMapLegend.js +15 -5
- package/dist/components/CustomMapLegend.js.map +1 -1
- package/dist/components/CustomMapLegendPanel.d.ts +3 -3
- package/dist/components/CustomMapLegendPanel.d.ts.map +1 -1
- package/dist/components/CustomMapLegendPanel.js +19 -4
- package/dist/components/CustomMapLegendPanel.js.map +1 -1
- package/dist/components/KeplerMapContainer.d.ts.map +1 -1
- package/dist/components/KeplerMapContainer.js +36 -4
- package/dist/components/KeplerMapContainer.js.map +1 -1
- package/dist/components/SplitMapIndexContext.d.ts +2 -0
- package/dist/components/SplitMapIndexContext.d.ts.map +1 -0
- package/dist/components/SplitMapIndexContext.js +3 -0
- package/dist/components/SplitMapIndexContext.js.map +1 -0
- package/dist/hooks/useDndEffects.d.ts +1 -1
- package/dist/hooks/useDndEffects.d.ts.map +1 -1
- package/dist/hooks/useDndEffects.js +4 -0
- package/dist/hooks/useDndEffects.js.map +1 -1
- package/dist/hooks/useDndLayers.d.ts +1 -1
- package/dist/hooks/useDndLayers.d.ts.map +1 -1
- package/dist/hooks/useDndLayers.js +4 -0
- package/dist/hooks/useDndLayers.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/package.json +6 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KeplerMapContainer.d.ts","sourceRoot":"","sources":["../../src/components/KeplerMapContainer.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAC,EAAE,EAAuC,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"KeplerMapContainer.d.ts","sourceRoot":"","sources":["../../src/components/KeplerMapContainer.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAC,EAAE,EAAuC,MAAM,OAAO,CAAC;AAsO/D,eAAO,MAAM,kBAAkB,EAAE,EAAE,CAAC;IAClC,KAAK,EAAE,MAAM,CAAC;CACf,CAMA,CAAC"}
|
|
@@ -7,6 +7,7 @@ import { getKeplerFactory } from './KeplerInjector';
|
|
|
7
7
|
import { KeplerProvider } from './KeplerProvider';
|
|
8
8
|
import { useKeplerStateActions } from '../hooks/useKeplerStateActions';
|
|
9
9
|
import { useStoreWithKepler } from '../KeplerSlice';
|
|
10
|
+
import { SplitMapIndexContext } from './SplitMapIndexContext';
|
|
10
11
|
const MapContainer = getKeplerFactory(MapContainerFactory);
|
|
11
12
|
const BottomWidget = getKeplerFactory(BottomWidgetFactory);
|
|
12
13
|
const GeoCoderPanel = getKeplerFactory(GeocoderPanelFactory);
|
|
@@ -36,6 +37,12 @@ const CustomWidgetcontainer = styled.div `
|
|
|
36
37
|
margin-top: 0 !important;
|
|
37
38
|
}
|
|
38
39
|
`;
|
|
40
|
+
const SplitMapsContainer = styled.div `
|
|
41
|
+
display: flex;
|
|
42
|
+
width: 100%;
|
|
43
|
+
height: 100%;
|
|
44
|
+
position: relative;
|
|
45
|
+
`;
|
|
39
46
|
const KeplerGl = ({ mapId }) => {
|
|
40
47
|
const bottomWidgetRef = useRef(null);
|
|
41
48
|
const [containerRef, size] = useDimensions();
|
|
@@ -70,22 +77,47 @@ const KeplerGl = ({ mapId }) => {
|
|
|
70
77
|
// dont need height
|
|
71
78
|
size || DEFAULT_DIMENSIONS)
|
|
72
79
|
: null;
|
|
80
|
+
const splitMaps = keplerState?.visState?.splitMaps;
|
|
81
|
+
const isSplit = splitMaps && splitMaps.length > 1;
|
|
73
82
|
const mapFields = useMemo(() => (keplerState?.visState ? mapFieldsSelector(mergedKeplerProps) : null), [keplerState, mergedKeplerProps]);
|
|
83
|
+
const mapFieldsSplit = useMemo(() => isSplit && keplerState?.visState
|
|
84
|
+
? splitMaps.map((_, index) => mapFieldsSelector(mergedKeplerProps, index))
|
|
85
|
+
: null, [keplerState, mergedKeplerProps, isSplit, splitMaps]);
|
|
74
86
|
// Check if there are filters or animatable layers (e.g., Trip layers)
|
|
75
87
|
const hasFilters = Boolean(keplerState?.visState.filters?.length);
|
|
76
88
|
const hasAnimatableLayers = useMemo(() => {
|
|
77
89
|
const layers = keplerState?.visState?.layers || [];
|
|
78
90
|
return getAnimatableVisibleLayers(layers).length > 0;
|
|
79
91
|
}, [keplerState?.visState?.layers]);
|
|
80
|
-
const bottomWidgetFields =
|
|
81
|
-
|
|
82
|
-
|
|
92
|
+
const bottomWidgetFields = useMemo(() => {
|
|
93
|
+
if (!hasFilters && !hasAnimatableLayers)
|
|
94
|
+
return null;
|
|
95
|
+
const fields = bottomWidgetSelector(mergedKeplerProps, theme);
|
|
96
|
+
// The legend is rendered as a draggable, portaled overlay so the
|
|
97
|
+
// BottomWidget should not shrink to reserve space for it. Mask
|
|
98
|
+
// mapLegend.active so the upstream spaceForLegendWidth stays 0.
|
|
99
|
+
return {
|
|
100
|
+
...fields,
|
|
101
|
+
uiState: {
|
|
102
|
+
...fields.uiState,
|
|
103
|
+
mapControls: {
|
|
104
|
+
...fields.uiState.mapControls,
|
|
105
|
+
mapLegend: {
|
|
106
|
+
...fields.uiState.mapControls?.mapLegend,
|
|
107
|
+
show: fields.uiState.mapControls?.mapLegend?.show ?? false,
|
|
108
|
+
active: false,
|
|
109
|
+
},
|
|
110
|
+
},
|
|
111
|
+
},
|
|
112
|
+
};
|
|
113
|
+
}, [hasFilters, hasAnimatableLayers, mergedKeplerProps, theme]);
|
|
83
114
|
const modalContainerFields = keplerState?.visState
|
|
84
115
|
? modalContainerSelector(mergedKeplerProps, containerNode)
|
|
85
116
|
: null;
|
|
86
117
|
const mapboxApiAccessToken = mapFields?.mapStyle?.mapboxApiAccessToken ||
|
|
87
118
|
basicKeplerProps?.mapboxApiAccessToken;
|
|
88
|
-
return (_jsx(RootContext.Provider, { value: containerRef, children: _jsxs(CustomWidgetcontainer, { ref: containerRef, className: "kepler-gl relative flex h-full w-full flex-col justify-between", children: [
|
|
119
|
+
return (_jsx(RootContext.Provider, { value: containerRef, children: _jsxs(CustomWidgetcontainer, { ref: containerRef, className: "kepler-gl relative flex h-full w-full flex-col justify-between", children: [isSplit && mapFieldsSplit ? (_jsx(SplitMapsContainer, { children: _jsx(MapViewStateContextProvider, { mapState: (mapFieldsSplit[0]?.mapState ??
|
|
120
|
+
mapFields?.mapState), children: mapFieldsSplit.map((fields, index) => (_jsx(SplitMapIndexContext.Provider, { value: index, children: _jsx(MapContainer, { index: index, primary: index === 1, containerId: index, ...fields, mapboxApiAccessToken: mapboxApiAccessToken || '' }) }, index))) }) })) : mapFields?.mapState ? (_jsx(MapViewStateContextProvider, { mapState: mapFields.mapState, children: _jsx(MapContainer, { primary: true, containerId: 0, index: 0, ...mapFields, mapboxApiAccessToken: mapboxApiAccessToken || '' }, 0) })) : null, geoCoderPanelFields && interactionConfig?.geocoder?.enabled ? (_jsx(GeoCoderPanel, { ...geoCoderPanelFields, index: 0, unsyncedViewports: false, mapboxApiAccessToken: mapboxApiAccessToken || '' })) : null, size && bottomWidgetFields ? (_jsx(BottomWidget, { rootRef: bottomWidgetRef, ...bottomWidgetFields, theme: theme, containerW: size?.width })) : null, size && size.width && size.height && modalContainerFields ? (_jsx(ModalContainer, { ...modalContainerFields, containerW: size?.width, containerH: size?.height })) : null] }) }));
|
|
89
121
|
};
|
|
90
122
|
export const KeplerMapContainer = ({ mapId }) => {
|
|
91
123
|
return (_jsx(KeplerProvider, { mapId: mapId, children: _jsx(KeplerGl, { mapId: mapId }) }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KeplerMapContainer.js","sourceRoot":"","sources":["../../src/components/KeplerMapContainer.tsx"],"names":[],"mappings":"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","sourcesContent":["import {FC, useMemo, useRef, useEffect, useState} from 'react';\n\nimport {\n MapContainerFactory,\n BottomWidgetFactory,\n GeocoderPanelFactory,\n mapFieldsSelector,\n bottomWidgetSelector,\n geoCoderPanelSelector,\n modalContainerSelector,\n MapViewStateContextProvider,\n RootContext,\n ModalContainerFactory,\n} from '@kepler.gl/components';\nimport {useDimensions, getAnimatableVisibleLayers} from '@kepler.gl/utils';\nimport styled, {useTheme} from 'styled-components';\n\nimport {getKeplerFactory} from './KeplerInjector';\nimport {KeplerProvider} from './KeplerProvider';\nimport {useKeplerStateActions} from '../hooks/useKeplerStateActions';\nimport {useStoreWithKepler} from '../KeplerSlice';\n\nconst MapContainer = getKeplerFactory(MapContainerFactory);\nconst BottomWidget = getKeplerFactory(BottomWidgetFactory);\nconst GeoCoderPanel = getKeplerFactory(GeocoderPanelFactory);\nconst ModalContainer = getKeplerFactory(ModalContainerFactory);\n\nconst DEFAULT_DIMENSIONS = {\n width: 0,\n height: 0,\n};\nconst KEPLER_PROPS = {\n mapboxApiUrl: 'https://api.mapbox.com',\n appName: 'kepler.gl',\n sidePanelWidth: 0,\n};\n// overide kepler default style\nconst CustomWidgetcontainer = styled.div`\n .bottom-widget--inner {\n margin-top: 0;\n }\n\n .map-popover {\n z-index: 50;\n }\n\n /* Remove top margin from Trip layer timeline */\n .kepler-gl .bottom-widget--container .animation-control-container,\n .bottom-widget--container .animation-control-container {\n margin-top: 0 !important;\n }\n`;\n\ntype KeplerGLProps = Parameters<typeof geoCoderPanelSelector>[0];\n\nconst KeplerGl: FC<{\n mapId: string;\n}> = ({mapId}) => {\n const bottomWidgetRef = useRef(null);\n const [containerRef, size] = useDimensions<HTMLDivElement>();\n const [containerNode, setContainerNode] = useState<HTMLElement | null>(null);\n const theme = useTheme();\n const basicKeplerProps = useStoreWithKepler(\n (state) => state.kepler.basicKeplerProps,\n );\n\n const {keplerActions, keplerState} = useKeplerStateActions({mapId});\n const interactionConfig = keplerState?.visState?.interactionConfig;\n\n // Capture the current container DOM node outside of render logic\n useEffect(() => {\n setContainerNode(containerRef.current);\n }, [containerRef]);\n\n // Update export image settings when size changes\n useEffect(() => {\n if (size?.width && size?.height) {\n keplerActions.uiStateActions.setExportImageSetting({\n mapW: size.width,\n mapH: size.height,\n });\n }\n }, [size?.width, size?.height, keplerActions.uiStateActions]);\n\n const mergedKeplerProps = useMemo(() => {\n return {\n ...KEPLER_PROPS,\n ...keplerState,\n ...keplerActions,\n id: mapId,\n } as KeplerGLProps;\n }, [keplerState, keplerActions, mapId]);\n const geoCoderPanelFields = keplerState?.visState\n ? geoCoderPanelSelector(\n mergedKeplerProps,\n // dont need height\n size || DEFAULT_DIMENSIONS,\n )\n : null;\n const mapFields = useMemo(\n () => (keplerState?.visState ? mapFieldsSelector(mergedKeplerProps) : null),\n [keplerState, mergedKeplerProps],\n );\n\n // Check if there are filters or animatable layers (e.g., Trip layers)\n const hasFilters = Boolean(keplerState?.visState.filters?.length);\n const hasAnimatableLayers = useMemo(() => {\n const layers = keplerState?.visState?.layers || [];\n return getAnimatableVisibleLayers(layers).length > 0;\n }, [keplerState?.visState?.layers]);\n\n const bottomWidgetFields =\n hasFilters || hasAnimatableLayers\n ? bottomWidgetSelector(mergedKeplerProps, theme)\n : null;\n\n const modalContainerFields = keplerState?.visState\n ? modalContainerSelector(mergedKeplerProps, containerNode)\n : null;\n\n const mapboxApiAccessToken =\n mapFields?.mapStyle?.mapboxApiAccessToken ||\n basicKeplerProps?.mapboxApiAccessToken;\n return (\n <RootContext.Provider value={containerRef}>\n <CustomWidgetcontainer\n ref={containerRef}\n className=\"kepler-gl relative flex h-full w-full flex-col justify-between\"\n >\n {mapFields?.mapState ? (\n <MapViewStateContextProvider mapState={mapFields.mapState}>\n <MapContainer\n primary={true}\n containerId={0}\n key={0}\n index={0}\n {...mapFields}\n mapboxApiAccessToken={mapboxApiAccessToken || ''}\n />\n </MapViewStateContextProvider>\n ) : null}\n {geoCoderPanelFields && interactionConfig?.geocoder?.enabled ? (\n <GeoCoderPanel\n {...geoCoderPanelFields}\n index={0}\n unsyncedViewports={false}\n mapboxApiAccessToken={mapboxApiAccessToken || ''}\n />\n ) : null}\n {size && bottomWidgetFields ? (\n <BottomWidget\n rootRef={bottomWidgetRef}\n {...bottomWidgetFields}\n theme={theme}\n containerW={size?.width}\n />\n ) : null}\n {size && size.width && size.height && modalContainerFields ? (\n <ModalContainer\n {...modalContainerFields}\n containerW={size?.width}\n containerH={size?.height}\n />\n ) : null}\n </CustomWidgetcontainer>\n </RootContext.Provider>\n );\n};\n\nexport const KeplerMapContainer: FC<{\n mapId: string;\n}> = ({mapId}) => {\n return (\n <KeplerProvider mapId={mapId}>\n <KeplerGl mapId={mapId} />\n </KeplerProvider>\n );\n};\n"]}
|
|
1
|
+
{"version":3,"file":"KeplerMapContainer.js","sourceRoot":"","sources":["../../src/components/KeplerMapContainer.tsx"],"names":[],"mappings":"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","sourcesContent":["import {FC, useMemo, useRef, useEffect, useState} from 'react';\n\nimport {\n MapContainerFactory,\n BottomWidgetFactory,\n GeocoderPanelFactory,\n mapFieldsSelector,\n bottomWidgetSelector,\n geoCoderPanelSelector,\n modalContainerSelector,\n MapViewStateContextProvider,\n RootContext,\n ModalContainerFactory,\n} from '@kepler.gl/components';\nimport {useDimensions, getAnimatableVisibleLayers} from '@kepler.gl/utils';\nimport styled, {useTheme} from 'styled-components';\n\nimport {getKeplerFactory} from './KeplerInjector';\nimport {KeplerProvider} from './KeplerProvider';\nimport {useKeplerStateActions} from '../hooks/useKeplerStateActions';\nimport {useStoreWithKepler} from '../KeplerSlice';\nimport {SplitMapIndexContext} from './SplitMapIndexContext';\n\nconst MapContainer = getKeplerFactory(MapContainerFactory);\nconst BottomWidget = getKeplerFactory(BottomWidgetFactory);\nconst GeoCoderPanel = getKeplerFactory(GeocoderPanelFactory);\nconst ModalContainer = getKeplerFactory(ModalContainerFactory);\n\nconst DEFAULT_DIMENSIONS = {\n width: 0,\n height: 0,\n};\nconst KEPLER_PROPS = {\n mapboxApiUrl: 'https://api.mapbox.com',\n appName: 'kepler.gl',\n sidePanelWidth: 0,\n};\n// overide kepler default style\nconst CustomWidgetcontainer = styled.div`\n .bottom-widget--inner {\n margin-top: 0;\n }\n\n .map-popover {\n z-index: 50;\n }\n\n /* Remove top margin from Trip layer timeline */\n .kepler-gl .bottom-widget--container .animation-control-container,\n .bottom-widget--container .animation-control-container {\n margin-top: 0 !important;\n }\n`;\n\nconst SplitMapsContainer = styled.div`\n display: flex;\n width: 100%;\n height: 100%;\n position: relative;\n`;\n\ntype KeplerGLProps = Parameters<typeof geoCoderPanelSelector>[0];\n\nconst KeplerGl: FC<{\n mapId: string;\n}> = ({mapId}) => {\n const bottomWidgetRef = useRef(null);\n const [containerRef, size] = useDimensions<HTMLDivElement>();\n const [containerNode, setContainerNode] = useState<HTMLElement | null>(null);\n const theme = useTheme();\n const basicKeplerProps = useStoreWithKepler(\n (state) => state.kepler.basicKeplerProps,\n );\n\n const {keplerActions, keplerState} = useKeplerStateActions({mapId});\n const interactionConfig = keplerState?.visState?.interactionConfig;\n\n // Capture the current container DOM node outside of render logic\n useEffect(() => {\n setContainerNode(containerRef.current);\n }, [containerRef]);\n\n // Update export image settings when size changes\n useEffect(() => {\n if (size?.width && size?.height) {\n keplerActions.uiStateActions.setExportImageSetting({\n mapW: size.width,\n mapH: size.height,\n });\n }\n }, [size?.width, size?.height, keplerActions.uiStateActions]);\n\n const mergedKeplerProps = useMemo(() => {\n return {\n ...KEPLER_PROPS,\n ...keplerState,\n ...keplerActions,\n id: mapId,\n } as KeplerGLProps;\n }, [keplerState, keplerActions, mapId]);\n const geoCoderPanelFields = keplerState?.visState\n ? geoCoderPanelSelector(\n mergedKeplerProps,\n // dont need height\n size || DEFAULT_DIMENSIONS,\n )\n : null;\n\n const splitMaps = keplerState?.visState?.splitMaps;\n const isSplit = splitMaps && splitMaps.length > 1;\n\n const mapFields = useMemo(\n () => (keplerState?.visState ? mapFieldsSelector(mergedKeplerProps) : null),\n [keplerState, mergedKeplerProps],\n );\n const mapFieldsSplit = useMemo(\n () =>\n isSplit && keplerState?.visState\n ? splitMaps.map((_, index) =>\n mapFieldsSelector(mergedKeplerProps, index),\n )\n : null,\n [keplerState, mergedKeplerProps, isSplit, splitMaps],\n );\n\n // Check if there are filters or animatable layers (e.g., Trip layers)\n const hasFilters = Boolean(keplerState?.visState.filters?.length);\n const hasAnimatableLayers = useMemo(() => {\n const layers = keplerState?.visState?.layers || [];\n return getAnimatableVisibleLayers(layers).length > 0;\n }, [keplerState?.visState?.layers]);\n\n const bottomWidgetFields = useMemo(() => {\n if (!hasFilters && !hasAnimatableLayers) return null;\n const fields = bottomWidgetSelector(mergedKeplerProps, theme);\n // The legend is rendered as a draggable, portaled overlay so the\n // BottomWidget should not shrink to reserve space for it. Mask\n // mapLegend.active so the upstream spaceForLegendWidth stays 0.\n return {\n ...fields,\n uiState: {\n ...fields.uiState,\n mapControls: {\n ...fields.uiState.mapControls,\n mapLegend: {\n ...fields.uiState.mapControls?.mapLegend,\n show: fields.uiState.mapControls?.mapLegend?.show ?? false,\n active: false,\n },\n },\n },\n };\n }, [hasFilters, hasAnimatableLayers, mergedKeplerProps, theme]);\n\n const modalContainerFields = keplerState?.visState\n ? modalContainerSelector(mergedKeplerProps, containerNode)\n : null;\n\n const mapboxApiAccessToken =\n mapFields?.mapStyle?.mapboxApiAccessToken ||\n basicKeplerProps?.mapboxApiAccessToken;\n return (\n <RootContext.Provider value={containerRef}>\n <CustomWidgetcontainer\n ref={containerRef}\n className=\"kepler-gl relative flex h-full w-full flex-col justify-between\"\n >\n {isSplit && mapFieldsSplit ? (\n <SplitMapsContainer>\n <MapViewStateContextProvider\n mapState={\n (mapFieldsSplit[0]?.mapState ??\n mapFields?.mapState) as NonNullable<\n typeof mapFields\n >['mapState']\n }\n >\n {mapFieldsSplit.map((fields, index) => (\n <SplitMapIndexContext.Provider key={index} value={index}>\n <MapContainer\n index={index}\n primary={index === 1}\n containerId={index}\n {...fields}\n mapboxApiAccessToken={mapboxApiAccessToken || ''}\n />\n </SplitMapIndexContext.Provider>\n ))}\n </MapViewStateContextProvider>\n </SplitMapsContainer>\n ) : mapFields?.mapState ? (\n <MapViewStateContextProvider mapState={mapFields.mapState}>\n <MapContainer\n primary={true}\n containerId={0}\n key={0}\n index={0}\n {...mapFields}\n mapboxApiAccessToken={mapboxApiAccessToken || ''}\n />\n </MapViewStateContextProvider>\n ) : null}\n {geoCoderPanelFields && interactionConfig?.geocoder?.enabled ? (\n <GeoCoderPanel\n {...geoCoderPanelFields}\n index={0}\n unsyncedViewports={false}\n mapboxApiAccessToken={mapboxApiAccessToken || ''}\n />\n ) : null}\n {size && bottomWidgetFields ? (\n <BottomWidget\n rootRef={bottomWidgetRef}\n {...bottomWidgetFields}\n theme={theme}\n containerW={size?.width}\n />\n ) : null}\n {size && size.width && size.height && modalContainerFields ? (\n <ModalContainer\n {...modalContainerFields}\n containerW={size?.width}\n containerH={size?.height}\n />\n ) : null}\n </CustomWidgetcontainer>\n </RootContext.Provider>\n );\n};\n\nexport const KeplerMapContainer: FC<{\n mapId: string;\n}> = ({mapId}) => {\n return (\n <KeplerProvider mapId={mapId}>\n <KeplerGl mapId={mapId} />\n </KeplerProvider>\n );\n};\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SplitMapIndexContext.d.ts","sourceRoot":"","sources":["../../src/components/SplitMapIndexContext.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,oBAAoB,6CAEhC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SplitMapIndexContext.js","sourceRoot":"","sources":["../../src/components/SplitMapIndexContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,OAAO,CAAC;AAEpC,MAAM,CAAC,MAAM,oBAAoB,GAAG,aAAa,CAC/C,SAAS,CACV,CAAC","sourcesContent":["import {createContext} from 'react';\n\nexport const SplitMapIndexContext = createContext<number | undefined>(\n undefined,\n);\n"]}
|
|
@@ -5,6 +5,6 @@ type DndEffectsHook = {
|
|
|
5
5
|
onDragStart: (event: DragStartEvent) => void;
|
|
6
6
|
onDragEnd: (event: DragEndEvent) => void;
|
|
7
7
|
};
|
|
8
|
-
declare const useDndEffects: (mapId: string, effects: Effect[], effectOrder: string[]) => DndEffectsHook;
|
|
8
|
+
declare const useDndEffects: (mapId: string | undefined, effects: Effect[], effectOrder: string[]) => DndEffectsHook;
|
|
9
9
|
export default useDndEffects;
|
|
10
10
|
//# sourceMappingURL=useDndEffects.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDndEffects.d.ts","sourceRoot":"","sources":["../../src/hooks/useDndEffects.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,YAAY,EAAE,cAAc,EAAC,MAAM,eAAe,CAAC;AAG3D,OAAO,EAAC,MAAM,EAAC,MAAM,kBAAkB,CAAC;AAQxC,KAAK,cAAc,GAAG;IACpB,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,WAAW,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC;IAC7C,SAAS,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;CAC1C,CAAC;AAEF,QAAA,MAAM,aAAa,EAAE,CACnB,KAAK,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"useDndEffects.d.ts","sourceRoot":"","sources":["../../src/hooks/useDndEffects.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,YAAY,EAAE,cAAc,EAAC,MAAM,eAAe,CAAC;AAG3D,OAAO,EAAC,MAAM,EAAC,MAAM,kBAAkB,CAAC;AAQxC,KAAK,cAAc,GAAG;IACpB,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,WAAW,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC;IAC7C,SAAS,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;CAC1C,CAAC;AAEF,QAAA,MAAM,aAAa,EAAE,CACnB,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,OAAO,EAAE,MAAM,EAAE,EACjB,WAAW,EAAE,MAAM,EAAE,KAClB,cAkFJ,CAAC;AAEF,eAAe,aAAa,CAAC"}
|
|
@@ -11,6 +11,8 @@ const useDndEffects = (mapId, effects, effectOrder) => {
|
|
|
11
11
|
const [activeEffect, setActiveEffect] = useState();
|
|
12
12
|
const onEffectDragStart = useCallback((event) => {
|
|
13
13
|
const { active } = event;
|
|
14
|
+
if (!mapId)
|
|
15
|
+
return;
|
|
14
16
|
const newActiveEffect = effects.find((effect) => effect.id === active.id);
|
|
15
17
|
if (newActiveEffect) {
|
|
16
18
|
setActiveEffect(newActiveEffect);
|
|
@@ -21,6 +23,8 @@ const useDndEffects = (mapId, effects, effectOrder) => {
|
|
|
21
23
|
}, [dispatch, effects, mapId]);
|
|
22
24
|
const onEffectDragEnd = useCallback((event) => {
|
|
23
25
|
const { active, over } = event;
|
|
26
|
+
if (!mapId)
|
|
27
|
+
return;
|
|
24
28
|
const { id: activeEffectId } = active;
|
|
25
29
|
const overType = over?.data?.current?.type;
|
|
26
30
|
if (!overType) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDndEffects.js","sourceRoot":"","sources":["../../src/hooks/useDndEffects.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAE,QAAQ,EAAC,MAAM,OAAO,CAAC;AAE5C,OAAO,EAAC,aAAa,EAAE,YAAY,EAAC,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAC,kBAAkB,EAAC,MAAM,kBAAkB,CAAC;AAEpD,OAAO,EAAC,oBAAoB,EAAC,MAAM,uBAAuB,CAAC;AAE3D,OAAO,EAAC,kBAAkB,EAAC,MAAM,gBAAgB,CAAC;AAElD,yEAAyE;AACzE,MAAM,0BAA0B,GAAG,MAAM,CAAC;AAQ1C,MAAM,aAAa,GAIG,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE;IACpD,oEAAoE;IACpE,MAAM,QAAQ,GAAG,kBAAkB,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IAE5E,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAGjC,QAAQ,EAAE,CAAC;IAEf,MAAM,iBAAiB,GAAG,WAAW,CACnC,CAAC,KAAqB,EAAE,EAAE;QACxB,MAAM,EAAC,MAAM,EAAC,GAAG,KAAK,CAAC;QACvB,MAAM,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,CAAC,CAAC;QAC1E,IAAI,eAAe,EAAE,CAAC;YACpB,eAAe,CAAC,eAAe,CAAC,CAAC;YACjC,IAAK,eAAuB,CAAC,cAAc,EAAE,CAAC;gBAC5C,QAAQ,CACN,KAAK,EACL,YAAY,CAAC,eAAe,CAAC,EAAE,EAAE,EAAC,cAAc,EAAE,KAAK,EAAC,CAAC,CAC1D,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC,EACD,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,CAAC,CAC3B,CAAC;IAEF,MAAM,eAAe,GAAG,WAAW,CACjC,CAAC,KAAmB,EAAE,EAAE;QACtB,MAAM,EAAC,MAAM,EAAE,IAAI,EAAC,GAAG,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"useDndEffects.js","sourceRoot":"","sources":["../../src/hooks/useDndEffects.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAE,QAAQ,EAAC,MAAM,OAAO,CAAC;AAE5C,OAAO,EAAC,aAAa,EAAE,YAAY,EAAC,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAC,kBAAkB,EAAC,MAAM,kBAAkB,CAAC;AAEpD,OAAO,EAAC,oBAAoB,EAAC,MAAM,uBAAuB,CAAC;AAE3D,OAAO,EAAC,kBAAkB,EAAC,MAAM,gBAAgB,CAAC;AAElD,yEAAyE;AACzE,MAAM,0BAA0B,GAAG,MAAM,CAAC;AAQ1C,MAAM,aAAa,GAIG,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE;IACpD,oEAAoE;IACpE,MAAM,QAAQ,GAAG,kBAAkB,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IAE5E,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAGjC,QAAQ,EAAE,CAAC;IAEf,MAAM,iBAAiB,GAAG,WAAW,CACnC,CAAC,KAAqB,EAAE,EAAE;QACxB,MAAM,EAAC,MAAM,EAAC,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,KAAK;YAAE,OAAO;QACnB,MAAM,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,CAAC,CAAC;QAC1E,IAAI,eAAe,EAAE,CAAC;YACpB,eAAe,CAAC,eAAe,CAAC,CAAC;YACjC,IAAK,eAAuB,CAAC,cAAc,EAAE,CAAC;gBAC5C,QAAQ,CACN,KAAK,EACL,YAAY,CAAC,eAAe,CAAC,EAAE,EAAE,EAAC,cAAc,EAAE,KAAK,EAAC,CAAC,CAC1D,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC,EACD,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,CAAC,CAC3B,CAAC;IAEF,MAAM,eAAe,GAAG,WAAW,CACjC,CAAC,KAAmB,EAAE,EAAE;QACtB,MAAM,EAAC,MAAM,EAAE,IAAI,EAAC,GAAG,KAAK,CAAC;QAC7B,IAAI,CAAC,KAAK;YAAE,OAAO;QAEnB,MAAM,EAAC,EAAE,EAAE,cAAc,EAAC,GAAG,MAAM,CAAC;QACpC,MAAM,QAAQ,GAAG,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC;QAE3C,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,eAAe,CAAC,SAAS,CAAC,CAAC;YAC3B,OAAO;QACT,CAAC;QAED,QAAQ,QAAQ,EAAE,CAAC;YACjB,kBAAkB;YAClB,KAAK,oBAAoB;gBACvB,QAAQ,CACN,KAAK,EACL,aAAa,CACX,kBAAkB,CAChB,WAAW,EACX,cAAc,CAAC,QAAQ,EAAE,EACzB,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,CACnB,CACF,CACF,CAAC;gBACF,MAAM;YACR,oCAAoC;YACpC,KAAK,0BAA0B;gBAC7B,qCAAqC;gBACrC,QAAQ,CACN,KAAK,EACL,aAAa,CACX,kBAAkB,CAChB,WAAW,EACX,cAAc,CAAC,QAAQ,EAAE,EACzB,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,CAC1C,CACF,CACF,CAAC;gBACF,MAAM;YACR;gBACE,MAAM;QACV,CAAC;QAED,eAAe,CAAC,SAAS,CAAC,CAAC;IAC7B,CAAC,EACD,CAAC,QAAQ,EAAE,WAAW,EAAE,KAAK,CAAC,CAC/B,CAAC;IAEF,OAAO;QACL,YAAY;QACZ,WAAW,EAAE,iBAAiB;QAC9B,SAAS,EAAE,eAAe;KAC3B,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,aAAa,CAAC","sourcesContent":["import {useCallback, useState} from 'react';\nimport {DragEndEvent, DragStartEvent} from '@dnd-kit/core';\nimport {reorderEffect, updateEffect} from '@kepler.gl/actions';\nimport {reorderEffectOrder} from '@kepler.gl/utils';\nimport {Effect} from '@kepler.gl/types';\nimport {SORTABLE_EFFECT_TYPE} from '@kepler.gl/components';\n\nimport {useStoreWithKepler} from '../KeplerSlice';\n\n// TODO import from @kepler.gl/components once 3.2.1 release is available\nconst SORTABLE_EFFECT_PANEL_TYPE = 'root';\n\ntype DndEffectsHook = {\n activeEffect: Effect | undefined;\n onDragStart: (event: DragStartEvent) => void;\n onDragEnd: (event: DragEndEvent) => void;\n};\n\nconst useDndEffects: (\n mapId: string | undefined,\n effects: Effect[],\n effectOrder: string[],\n) => DndEffectsHook = (mapId, effects, effectOrder) => {\n // Use the proper sqlrooms dispatch mechanism instead of useDispatch\n const dispatch = useStoreWithKepler((state) => state.kepler.dispatchAction);\n\n const [activeEffect, setActiveEffect]: [\n Effect | undefined,\n (effect: Effect | undefined) => void,\n ] = useState();\n\n const onEffectDragStart = useCallback(\n (event: DragStartEvent) => {\n const {active} = event;\n if (!mapId) return;\n const newActiveEffect = effects.find((effect) => effect.id === active.id);\n if (newActiveEffect) {\n setActiveEffect(newActiveEffect);\n if ((newActiveEffect as any).isConfigActive) {\n dispatch(\n mapId,\n updateEffect(newActiveEffect.id, {isConfigActive: false}),\n );\n }\n }\n },\n [dispatch, effects, mapId],\n );\n\n const onEffectDragEnd = useCallback(\n (event: DragEndEvent) => {\n const {active, over} = event;\n if (!mapId) return;\n\n const {id: activeEffectId} = active;\n const overType = over?.data?.current?.type;\n\n if (!overType) {\n setActiveEffect(undefined);\n return;\n }\n\n switch (overType) {\n // swaping effects\n case SORTABLE_EFFECT_TYPE:\n dispatch(\n mapId,\n reorderEffect(\n reorderEffectOrder(\n effectOrder,\n activeEffectId.toString(),\n over.id.toString(),\n ),\n ),\n );\n break;\n // moving effects within side panel\n case SORTABLE_EFFECT_PANEL_TYPE:\n // move effect to the end of the list\n dispatch(\n mapId,\n reorderEffect(\n reorderEffectOrder(\n effectOrder,\n activeEffectId.toString(),\n effectOrder[effectOrder.length - 1] || '',\n ),\n ),\n );\n break;\n default:\n break;\n }\n\n setActiveEffect(undefined);\n },\n [dispatch, effectOrder, mapId],\n );\n\n return {\n activeEffect,\n onDragStart: onEffectDragStart,\n onDragEnd: onEffectDragEnd,\n };\n};\n\nexport default useDndEffects;\n"]}
|
|
@@ -5,6 +5,6 @@ type DndEffectsHook = {
|
|
|
5
5
|
onDragStart: (event: DragStartEvent) => void;
|
|
6
6
|
onDragEnd: (event: DragEndEvent) => void;
|
|
7
7
|
};
|
|
8
|
-
declare const useDndLayers: (mapId: string, layers: Layer[], layerOrder: string[]) => DndEffectsHook;
|
|
8
|
+
declare const useDndLayers: (mapId: string | undefined, layers: Layer[], layerOrder: string[]) => DndEffectsHook;
|
|
9
9
|
export default useDndLayers;
|
|
10
10
|
//# sourceMappingURL=useDndLayers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDndLayers.d.ts","sourceRoot":"","sources":["../../src/hooks/useDndLayers.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,YAAY,EAAE,cAAc,EAAC,MAAM,eAAe,CAAC;AAO3D,OAAO,EAAC,KAAK,EAAC,MAAM,mBAAmB,CAAC;AAQxC,KAAK,cAAc,GAAG;IACpB,WAAW,EAAE,KAAK,GAAG,SAAS,CAAC;IAC/B,WAAW,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC;IAC7C,SAAS,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;CAC1C,CAAC;AAEF,QAAA,MAAM,YAAY,EAAE,CAClB,KAAK,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"useDndLayers.d.ts","sourceRoot":"","sources":["../../src/hooks/useDndLayers.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,YAAY,EAAE,cAAc,EAAC,MAAM,eAAe,CAAC;AAO3D,OAAO,EAAC,KAAK,EAAC,MAAM,mBAAmB,CAAC;AAQxC,KAAK,cAAc,GAAG;IACpB,WAAW,EAAE,KAAK,GAAG,SAAS,CAAC;IAC/B,WAAW,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC;IAC7C,SAAS,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;CAC1C,CAAC;AAEF,QAAA,MAAM,YAAY,EAAE,CAClB,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,MAAM,EAAE,KAAK,EAAE,EACf,UAAU,EAAE,MAAM,EAAE,KACjB,cAgFJ,CAAC;AAEF,eAAe,YAAY,CAAC"}
|
|
@@ -8,6 +8,8 @@ const useDndLayers = (mapId, layers, layerOrder) => {
|
|
|
8
8
|
const [activeLayer, setActiveLayer] = useState();
|
|
9
9
|
const onDragStart = useCallback((event) => {
|
|
10
10
|
const { active } = event;
|
|
11
|
+
if (!mapId)
|
|
12
|
+
return;
|
|
11
13
|
const newActiveLayer = layers.find((layer) => layer.id === active.id);
|
|
12
14
|
if (newActiveLayer) {
|
|
13
15
|
setActiveLayer(newActiveLayer);
|
|
@@ -18,6 +20,8 @@ const useDndLayers = (mapId, layers, layerOrder) => {
|
|
|
18
20
|
}, [dispatch, layers, mapId]);
|
|
19
21
|
const onDragEnd = useCallback((event) => {
|
|
20
22
|
const { active, over } = event;
|
|
23
|
+
if (!mapId)
|
|
24
|
+
return;
|
|
21
25
|
const { id: activeLayerId } = active;
|
|
22
26
|
const overType = over?.data?.current?.type;
|
|
23
27
|
if (!overType) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDndLayers.js","sourceRoot":"","sources":["../../src/hooks/useDndLayers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAE,QAAQ,EAAC,MAAM,OAAO,CAAC;AAE5C,OAAO,EACL,iBAAiB,EACjB,YAAY,EACZ,iBAAiB,GAClB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAC,iBAAiB,EAAC,MAAM,qBAAqB,CAAC;AAEtD,OAAO,EACL,4BAA4B,EAC5B,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAC,kBAAkB,EAAC,MAAM,gBAAgB,CAAC;AAQlD,MAAM,YAAY,GAII,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE;IAClD,MAAM,QAAQ,GAAG,kBAAkB,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IAE5E,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAG/B,QAAQ,EAAE,CAAC;IAEf,MAAM,WAAW,GAAG,WAAW,CAC7B,CAAC,KAAU,EAAE,EAAE;QACb,MAAM,EAAC,MAAM,EAAC,GAAG,KAAK,CAAC;QACvB,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,CAAC,CAAC;QACtE,IAAI,cAAc,EAAE,CAAC;YACnB,cAAc,CAAC,cAAc,CAAC,CAAC;YAC/B,IAAI,cAAc,EAAE,MAAM,CAAC,cAAc,EAAE,CAAC;gBAC1C,QAAQ,CACN,KAAK,EACL,iBAAiB,CAAC,cAAc,EAAE,EAAC,cAAc,EAAE,KAAK,EAAC,CAAC,CAC3D,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC,EACD,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,CAC1B,CAAC;IAEF,MAAM,SAAS,GAAG,WAAW,CAC3B,CAAC,KAAU,EAAE,EAAE;QACb,MAAM,EAAC,MAAM,EAAE,IAAI,EAAC,GAAG,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"useDndLayers.js","sourceRoot":"","sources":["../../src/hooks/useDndLayers.ts"],"names":[],"mappings":"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","sourcesContent":["import {useCallback, useState} from 'react';\nimport {DragEndEvent, DragStartEvent} from '@dnd-kit/core';\nimport {\n layerConfigChange,\n reorderLayer,\n toggleLayerForMap,\n} from '@kepler.gl/actions';\nimport {reorderLayerOrder} from '@kepler.gl/reducers';\nimport {Layer} from '@kepler.gl/layers';\nimport {\n DROPPABLE_MAP_CONTAINER_TYPE,\n SORTABLE_LAYER_TYPE,\n SORTABLE_SIDE_PANEL_TYPE,\n} from '@kepler.gl/components';\nimport {useStoreWithKepler} from '../KeplerSlice';\n\ntype DndEffectsHook = {\n activeLayer: Layer | undefined;\n onDragStart: (event: DragStartEvent) => void;\n onDragEnd: (event: DragEndEvent) => void;\n};\n\nconst useDndLayers: (\n mapId: string | undefined,\n layers: Layer[],\n layerOrder: string[],\n) => DndEffectsHook = (mapId, layers, layerOrder) => {\n const dispatch = useStoreWithKepler((state) => state.kepler.dispatchAction);\n\n const [activeLayer, setActiveLayer]: [\n activeEffect: Layer | undefined,\n setActiveEffect: (effect: Layer | undefined) => void,\n ] = useState();\n\n const onDragStart = useCallback(\n (event: any) => {\n const {active} = event;\n if (!mapId) return;\n const newActiveLayer = layers.find((layer) => layer.id === active.id);\n if (newActiveLayer) {\n setActiveLayer(newActiveLayer);\n if (newActiveLayer?.config.isConfigActive) {\n dispatch(\n mapId,\n layerConfigChange(newActiveLayer, {isConfigActive: false}),\n );\n }\n }\n },\n [dispatch, layers, mapId],\n );\n\n const onDragEnd = useCallback(\n (event: any) => {\n const {active, over} = event;\n if (!mapId) return;\n\n const {id: activeLayerId} = active;\n const overType = over?.data?.current?.type;\n\n if (!overType) {\n setActiveLayer(undefined);\n return;\n }\n\n switch (overType) {\n // moving layers into maps\n case DROPPABLE_MAP_CONTAINER_TYPE: {\n const mapIndex = over.data.current?.index ?? 0;\n dispatch(mapId, toggleLayerForMap(mapIndex, activeLayerId));\n break;\n }\n // swaping layers\n case SORTABLE_LAYER_TYPE: {\n const newLayerOrder = reorderLayerOrder(\n layerOrder,\n activeLayerId,\n over.id,\n );\n dispatch(mapId, reorderLayer(newLayerOrder));\n break;\n }\n // moving layers within side panel\n case SORTABLE_SIDE_PANEL_TYPE:\n // move layer to the end of the list\n dispatch(\n mapId,\n reorderLayer(\n reorderLayerOrder(\n layerOrder,\n activeLayerId,\n layerOrder[layerOrder.length - 1] || '',\n ),\n ),\n );\n break;\n default:\n break;\n }\n\n setActiveLayer(undefined);\n },\n [dispatch, layerOrder, mapId],\n );\n\n return {activeLayer, onDragStart, onDragEnd};\n};\n\nexport default useDndLayers;\n"]}
|
package/dist/index.d.ts
CHANGED
|
@@ -13,13 +13,15 @@ export { KeplerImageExport } from './components/KeplerImageExport';
|
|
|
13
13
|
export { configureKeplerInjector, getKeplerFactory, getKeplerInjector, KeplerInjector, resetKeplerInjectorRecipes, } from './components/KeplerInjector';
|
|
14
14
|
export type { KeplerFactoryRecipe, KeplerFactoryRecipeMode, } from './components/KeplerInjector';
|
|
15
15
|
export { KeplerMapContainer } from './components/KeplerMapContainer';
|
|
16
|
+
export { SplitMapIndexContext } from './components/SplitMapIndexContext';
|
|
16
17
|
export { KeplerPlotContainer } from './components/KeplerPlotContainer';
|
|
17
18
|
export { KeplerProvider } from './components/KeplerProvider';
|
|
18
19
|
export { KeplerS3Browser } from './components/KeplerS3Browser';
|
|
19
20
|
export type { KeplerS3BrowserProps } from './components/KeplerS3Browser';
|
|
20
21
|
export { KeplerSidePanels } from './components/KeplerSidePanels';
|
|
21
22
|
export { useKeplerStateActions } from './hooks/useKeplerStateActions';
|
|
22
|
-
export { KeplerMapSchema, KeplerSliceConfig } from '@sqlrooms/kepler-config';
|
|
23
|
+
export { KeplerMapSchema, KeplerSliceConfig, migrateKeplerTabsToArtifacts, } from '@sqlrooms/kepler-config';
|
|
24
|
+
export type { KeplerTabsArtifactsMigrationOptions } from '@sqlrooms/kepler-config';
|
|
23
25
|
export { CustomDndContextFactory } from './components/CustomDndContext';
|
|
24
26
|
export { CustomFilterPanelHeaderFactory } from './components/CustomFilterPanelHeader';
|
|
25
27
|
export { CustomMapControlTooltipFactory } from './components/CustomMapControlTooltipFactory';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,yBAAyB,EACzB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,eAAe,CAAC;AACvB,YAAY,EACV,kCAAkC,EAClC,wBAAwB,EACxB,gBAAgB,GACjB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAC,aAAa,EAAC,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAC,mBAAmB,EAAC,MAAM,kCAAkC,CAAC;AACrE,YAAY,EACV,cAAc,EACd,wBAAwB,GACzB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAC,sBAAsB,EAAC,MAAM,qCAAqC,CAAC;AAC3E,YAAY,EAAC,WAAW,EAAC,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAC,iBAAiB,EAAC,MAAM,gCAAgC,CAAC;AACjE,OAAO,EACL,uBAAuB,EACvB,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,0BAA0B,GAC3B,MAAM,6BAA6B,CAAC;AACrC,YAAY,EACV,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAC,kBAAkB,EAAC,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAC,mBAAmB,EAAC,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAC,cAAc,EAAC,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAC,eAAe,EAAC,MAAM,8BAA8B,CAAC;AAC7D,YAAY,EAAC,oBAAoB,EAAC,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAC,gBAAgB,EAAC,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAC,qBAAqB,EAAC,MAAM,+BAA+B,CAAC;AAIpE,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,yBAAyB,EACzB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,eAAe,CAAC;AACvB,YAAY,EACV,kCAAkC,EAClC,wBAAwB,EACxB,gBAAgB,GACjB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAC,aAAa,EAAC,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAC,mBAAmB,EAAC,MAAM,kCAAkC,CAAC;AACrE,YAAY,EACV,cAAc,EACd,wBAAwB,GACzB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAC,sBAAsB,EAAC,MAAM,qCAAqC,CAAC;AAC3E,YAAY,EAAC,WAAW,EAAC,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAC,iBAAiB,EAAC,MAAM,gCAAgC,CAAC;AACjE,OAAO,EACL,uBAAuB,EACvB,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,0BAA0B,GAC3B,MAAM,6BAA6B,CAAC;AACrC,YAAY,EACV,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAC,kBAAkB,EAAC,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAC,oBAAoB,EAAC,MAAM,mCAAmC,CAAC;AACvE,OAAO,EAAC,mBAAmB,EAAC,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAC,cAAc,EAAC,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAC,eAAe,EAAC,MAAM,8BAA8B,CAAC;AAC7D,YAAY,EAAC,oBAAoB,EAAC,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAC,gBAAgB,EAAC,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAC,qBAAqB,EAAC,MAAM,+BAA+B,CAAC;AAIpE,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,4BAA4B,GAC7B,MAAM,yBAAyB,CAAC;AACjC,YAAY,EAAC,mCAAmC,EAAC,MAAM,yBAAyB,CAAC;AAEjF,OAAO,EAAC,uBAAuB,EAAC,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAC,8BAA8B,EAAC,MAAM,sCAAsC,CAAC;AACpF,OAAO,EAAC,8BAA8B,EAAC,MAAM,6CAA6C,CAAC;AAC3F,OAAO,EAAC,sBAAsB,EAAC,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAC,2BAA2B,EAAC,MAAM,mCAAmC,CAAC;AAC9E,OAAO,EACL,0BAA0B,EAC1B,uBAAuB,GACxB,MAAM,6BAA6B,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -9,6 +9,7 @@ export { KeplerAddTileSetDialog } from './components/KeplerAddTileSetDialog';
|
|
|
9
9
|
export { KeplerImageExport } from './components/KeplerImageExport';
|
|
10
10
|
export { configureKeplerInjector, getKeplerFactory, getKeplerInjector, KeplerInjector, resetKeplerInjectorRecipes, } from './components/KeplerInjector';
|
|
11
11
|
export { KeplerMapContainer } from './components/KeplerMapContainer';
|
|
12
|
+
export { SplitMapIndexContext } from './components/SplitMapIndexContext';
|
|
12
13
|
export { KeplerPlotContainer } from './components/KeplerPlotContainer';
|
|
13
14
|
export { KeplerProvider } from './components/KeplerProvider';
|
|
14
15
|
export { KeplerS3Browser } from './components/KeplerS3Browser';
|
|
@@ -16,7 +17,7 @@ export { KeplerSidePanels } from './components/KeplerSidePanels';
|
|
|
16
17
|
export { useKeplerStateActions } from './hooks/useKeplerStateActions';
|
|
17
18
|
// Re-export from @sqlrooms/kepler-config
|
|
18
19
|
// Values also export their corresponding types automatically (Zod pattern)
|
|
19
|
-
export { KeplerMapSchema, KeplerSliceConfig } from '@sqlrooms/kepler-config';
|
|
20
|
+
export { KeplerMapSchema, KeplerSliceConfig, migrateKeplerTabsToArtifacts, } from '@sqlrooms/kepler-config';
|
|
20
21
|
export { CustomDndContextFactory } from './components/CustomDndContext';
|
|
21
22
|
export { CustomFilterPanelHeaderFactory } from './components/CustomFilterPanelHeader';
|
|
22
23
|
export { CustomMapControlTooltipFactory } from './components/CustomMapControlTooltipFactory';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,yBAAyB,EACzB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,eAAe,CAAC;AAOvB,OAAO,EAAC,aAAa,EAAC,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAC,mBAAmB,EAAC,MAAM,kCAAkC,CAAC;AAKrE,OAAO,EAAC,sBAAsB,EAAC,MAAM,qCAAqC,CAAC;AAE3E,OAAO,EAAC,iBAAiB,EAAC,MAAM,gCAAgC,CAAC;AACjE,OAAO,EACL,uBAAuB,EACvB,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,0BAA0B,GAC3B,MAAM,6BAA6B,CAAC;AAKrC,OAAO,EAAC,kBAAkB,EAAC,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAC,mBAAmB,EAAC,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAC,cAAc,EAAC,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAC,eAAe,EAAC,MAAM,8BAA8B,CAAC;AAE7D,OAAO,EAAC,gBAAgB,EAAC,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAC,qBAAqB,EAAC,MAAM,+BAA+B,CAAC;AAEpE,yCAAyC;AACzC,2EAA2E;AAC3E,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,yBAAyB,EACzB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,eAAe,CAAC;AAOvB,OAAO,EAAC,aAAa,EAAC,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAC,mBAAmB,EAAC,MAAM,kCAAkC,CAAC;AAKrE,OAAO,EAAC,sBAAsB,EAAC,MAAM,qCAAqC,CAAC;AAE3E,OAAO,EAAC,iBAAiB,EAAC,MAAM,gCAAgC,CAAC;AACjE,OAAO,EACL,uBAAuB,EACvB,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,0BAA0B,GAC3B,MAAM,6BAA6B,CAAC;AAKrC,OAAO,EAAC,kBAAkB,EAAC,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAC,oBAAoB,EAAC,MAAM,mCAAmC,CAAC;AACvE,OAAO,EAAC,mBAAmB,EAAC,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAC,cAAc,EAAC,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAC,eAAe,EAAC,MAAM,8BAA8B,CAAC;AAE7D,OAAO,EAAC,gBAAgB,EAAC,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAC,qBAAqB,EAAC,MAAM,+BAA+B,CAAC;AAEpE,yCAAyC;AACzC,2EAA2E;AAC3E,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,4BAA4B,GAC7B,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAAC,uBAAuB,EAAC,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAC,8BAA8B,EAAC,MAAM,sCAAsC,CAAC;AACpF,OAAO,EAAC,8BAA8B,EAAC,MAAM,6CAA6C,CAAC;AAC3F,OAAO,EAAC,sBAAsB,EAAC,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAC,2BAA2B,EAAC,MAAM,mCAAmC,CAAC;AAC9E,OAAO,EACL,0BAA0B,EAC1B,uBAAuB,GACxB,MAAM,6BAA6B,CAAC","sourcesContent":["/**\n * {@include ../README.md}\n * @packageDocumentation\n */\n\nexport {\n createDefaultKeplerConfig,\n createKeplerSlice,\n useStoreWithKepler,\n} from './KeplerSlice';\nexport type {\n CreateInitialMapKeplerStateContext,\n CreateKeplerSliceOptions,\n KeplerSliceState,\n} from './KeplerSlice';\n\nexport {FileDropInput} from './components/FileDropInput';\nexport {KeplerAddDataDialog} from './components/KeplerAddDataDialog';\nexport type {\n AddDataMethods,\n KeplerAddDataDialogProps,\n} from './components/KeplerAddDataDialog';\nexport {KeplerAddTileSetDialog} from './components/KeplerAddTileSetDialog';\nexport type {LoadTileSet} from './components/KeplerAddTileSetDialog';\nexport {KeplerImageExport} from './components/KeplerImageExport';\nexport {\n configureKeplerInjector,\n getKeplerFactory,\n getKeplerInjector,\n KeplerInjector,\n resetKeplerInjectorRecipes,\n} from './components/KeplerInjector';\nexport type {\n KeplerFactoryRecipe,\n KeplerFactoryRecipeMode,\n} from './components/KeplerInjector';\nexport {KeplerMapContainer} from './components/KeplerMapContainer';\nexport {SplitMapIndexContext} from './components/SplitMapIndexContext';\nexport {KeplerPlotContainer} from './components/KeplerPlotContainer';\nexport {KeplerProvider} from './components/KeplerProvider';\nexport {KeplerS3Browser} from './components/KeplerS3Browser';\nexport type {KeplerS3BrowserProps} from './components/KeplerS3Browser';\nexport {KeplerSidePanels} from './components/KeplerSidePanels';\nexport {useKeplerStateActions} from './hooks/useKeplerStateActions';\n\n// Re-export from @sqlrooms/kepler-config\n// Values also export their corresponding types automatically (Zod pattern)\nexport {\n KeplerMapSchema,\n KeplerSliceConfig,\n migrateKeplerTabsToArtifacts,\n} from '@sqlrooms/kepler-config';\nexport type {KeplerTabsArtifactsMigrationOptions} from '@sqlrooms/kepler-config';\n\nexport {CustomDndContextFactory} from './components/CustomDndContext';\nexport {CustomFilterPanelHeaderFactory} from './components/CustomFilterPanelHeader';\nexport {CustomMapControlTooltipFactory} from './components/CustomMapControlTooltipFactory';\nexport {CustomMapLegendFactory} from './components/CustomMapLegend';\nexport {CustomMapLegendPanelFactory} from './components/CustomMapLegendPanel';\nexport {\n CustomAddDataButtonFactory,\n CustomPanelTitleFactory,\n} from './components/KeplerInjector';\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sqlrooms/kepler",
|
|
3
|
-
"version": "0.29.0-rc.
|
|
3
|
+
"version": "0.29.0-rc.3",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"types": "dist/index.d.ts",
|
|
6
6
|
"module": "dist/index.js",
|
|
@@ -34,10 +34,10 @@
|
|
|
34
34
|
"@kepler.gl/types": "3.3.0-alpha.0",
|
|
35
35
|
"@kepler.gl/utils": "3.3.0-alpha.0",
|
|
36
36
|
"@paralleldrive/cuid2": "^3.0.0",
|
|
37
|
-
"@sqlrooms/kepler-config": "0.29.0-rc.
|
|
38
|
-
"@sqlrooms/room-shell": "0.29.0-rc.
|
|
39
|
-
"@sqlrooms/s3-browser": "0.29.0-rc.
|
|
40
|
-
"@sqlrooms/ui": "0.29.0-rc.
|
|
37
|
+
"@sqlrooms/kepler-config": "0.29.0-rc.3",
|
|
38
|
+
"@sqlrooms/room-shell": "0.29.0-rc.3",
|
|
39
|
+
"@sqlrooms/s3-browser": "0.29.0-rc.3",
|
|
40
|
+
"@sqlrooms/ui": "0.29.0-rc.3",
|
|
41
41
|
"apache-arrow": "17.0.0",
|
|
42
42
|
"immer": "^11.0.1",
|
|
43
43
|
"lucide-react": "^0.556.0",
|
|
@@ -61,5 +61,5 @@
|
|
|
61
61
|
"devDependencies": {
|
|
62
62
|
"@types/redux-logger": "^3.0.13"
|
|
63
63
|
},
|
|
64
|
-
"gitHead": "
|
|
64
|
+
"gitHead": "4ffaf6c31d41c27f96bd3e4f5e83d431968721c3"
|
|
65
65
|
}
|