@opengeoweb/core 4.19.1 → 4.21.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/index.esm.js +1884 -847
  2. package/index.umd.js +1992 -930
  3. package/lib/components/ComponentsLookUp/componentsLookUp.d.ts +1 -1
  4. package/lib/components/LayerManager/DockedLayerManagerConnect.d.ts +2 -1
  5. package/lib/components/LayerManager/LayerContainerRow/LayerRow/LayerRow.d.ts +1 -0
  6. package/lib/components/LayerManager/LayerManager.d.ts +1 -1
  7. package/lib/components/LayerManager/LayerManagerConnect.d.ts +2 -1
  8. package/lib/components/LayerManager/LayerManagerHeaderOptions.d.ts +21 -0
  9. package/lib/components/LayerManager/LayerManagerHeaderOptionsConnect.d.ts +2 -1
  10. package/lib/components/LayerManager/LayerManagerUtils.d.ts +20 -1
  11. package/lib/components/LayerManager/index.d.ts +1 -0
  12. package/lib/components/MapControls/MapControlButton.d.ts +2 -3
  13. package/lib/components/ReactMapView/ReactMapViewParseLayer.d.ts +1 -2
  14. package/lib/components/TimeSliderLite/TimeSliderLite.d.ts +36 -0
  15. package/lib/components/TimeSliderLite/TimeSliderLite.stories.d.ts +9 -0
  16. package/lib/components/TimeSliderLite/TimeSliderLiteBackground/TimeSliderDraggableNeedle.d.ts +20 -0
  17. package/lib/components/TimeSliderLite/TimeSliderLiteBackground/TimeSliderDraggableNeedle.spec.d.ts +1 -0
  18. package/lib/components/TimeSliderLite/TimeSliderLiteBackground/TimeSliderLiteBackground.d.ts +17 -0
  19. package/lib/components/TimeSliderLite/TimeSliderLiteBackground/TimeSliderLiteBackgroundSvg.d.ts +13 -0
  20. package/lib/components/TimeSliderLite/TimeSliderLiteBackground/TimeSliderLiteBackgroundSvg.spec.d.ts +1 -0
  21. package/lib/components/TimeSliderLite/TimeSliderLiteButtons/ControlButtonGroup/ControlButtonGroup.d.ts +8 -0
  22. package/lib/components/TimeSliderLite/TimeSliderLiteButtons/HideButton/HideButton.d.ts +9 -0
  23. package/lib/components/TimeSliderLite/TimeSliderLiteButtons/MenuButton/MenuButton.d.ts +9 -0
  24. package/lib/components/TimeSliderLite/TimeSliderLiteButtons/PlayButton/PlayButton.d.ts +11 -0
  25. package/lib/components/TimeSliderLite/TimeSliderLiteButtons/StepButton/StepButton.d.ts +11 -0
  26. package/lib/components/TimeSliderLite/TimeSliderLiteButtons/TimeSliderLiteButtonUtils.d.ts +3 -0
  27. package/lib/components/TimeSliderLite/TimeSliderLiteConnect.d.ts +20 -0
  28. package/lib/components/TimeSliderLite/TimeSliderLiteConnect.spec.d.ts +1 -0
  29. package/lib/components/TimeSliderLite/TimeSliderLiteConnect.stories.d.ts +9 -0
  30. package/lib/components/TimeSliderLite/TimeSliderLiteOptionsMenu/SubmenuWrapper.d.ts +8 -0
  31. package/lib/components/TimeSliderLite/TimeSliderLiteOptionsMenu/SubmenuWrapper.spec.d.ts +1 -0
  32. package/lib/components/TimeSliderLite/TimeSliderLiteOptionsMenu/TimeRangeOptions/DayHourSelector.d.ts +21 -0
  33. package/lib/components/TimeSliderLite/TimeSliderLiteOptionsMenu/TimeRangeOptions/DayHourSelector.spec.d.ts +1 -0
  34. package/lib/components/TimeSliderLite/TimeSliderLiteOptionsMenu/TimeRangeOptions/TimeRangeOptions.d.ts +15 -0
  35. package/lib/components/TimeSliderLite/TimeSliderLiteOptionsMenu/TimeSliderLiteOptionsMenu.d.ts +27 -0
  36. package/lib/components/TimeSliderLite/TimeSliderLiteOptionsMenu/TimeSliderLiteOptionsMenu.spec.d.ts +1 -0
  37. package/lib/components/TimeSliderLite/index.d.ts +4 -0
  38. package/lib/components/TimeSliderLite/timeSliderLiteUtils.d.ts +83 -0
  39. package/lib/components/TimeSliderLite/timeSliderLiteUtils.spec.d.ts +1 -0
  40. package/lib/index.d.ts +5 -4
  41. package/lib/store/generic/synchronizationGroups/selectors.d.ts +2 -1
  42. package/lib/store/generic/synchronizationGroups/types.d.ts +4 -4
  43. package/lib/store/mapStore/layers/reducer.d.ts +2 -2
  44. package/lib/store/mapStore/layers/types.d.ts +0 -2
  45. package/lib/store/mapStore/map/index.d.ts +1 -1
  46. package/lib/store/mapStore/utils/helpers.d.ts +1 -0
  47. package/lib/store/ui/index.d.ts +1 -1
  48. package/lib/utils/sanitizeHTML.d.ts +3 -0
  49. package/lib/utils/sanitizeHTML.spec.d.ts +1 -0
  50. package/package.json +11 -10
  51. package/lib/components/LayerManager/LayerSelect/LayerList/SearchHighlight.d.ts +0 -7
  52. /package/lib/components/{LayerManager/LayerSelect/LayerList/SearchHighlight.spec.d.ts → TimeSliderLite/TimeSliderLite.spec.d.ts} +0 -0
@@ -19,7 +19,7 @@ interface InitialSliderProps {
19
19
  }
20
20
  export declare type InitialProps = InitialMapProps | InitialMultiMapProps | InitialSliderProps | InitialHarmTempAndPrecipProps | ModelRunIntervalProps | MapPresetInitialProps;
21
21
  /**
22
- * The lookup table is for registering your own components with the screenmanager.
22
+ * The lookup table is for registering your own components with the workspace.
23
23
  * @param payload
24
24
  * @returns
25
25
  */
@@ -7,7 +7,8 @@ interface DockedLayerManagerConnectProps {
7
7
  preloadedAvailableBaseLayers?: Layer[];
8
8
  preloadedBaseServices?: Service[];
9
9
  bounds?: string;
10
- showTitle?: boolean;
10
+ title?: string;
11
+ showMapIdInTitle?: boolean;
11
12
  leftHeaderComponent?: React.ReactElement;
12
13
  source?: Source;
13
14
  }
@@ -43,6 +43,7 @@ interface LayerRowProps {
43
43
  layerDeleteLayout?: React.ReactChild;
44
44
  layerMenuLayout?: React.ReactChild;
45
45
  layerActiveLayout?: React.ReactChild;
46
+ disableActivateLayer?: boolean;
46
47
  services?: Services;
47
48
  isEnabled?: boolean;
48
49
  dragHandle?: React.ReactElement;
@@ -14,7 +14,7 @@ interface LayerManagerProps {
14
14
  preloadedAvailableBaseLayers?: Layer[];
15
15
  preloadedBaseServices?: Service[];
16
16
  bounds?: string;
17
- showTitle?: boolean;
17
+ title?: string;
18
18
  onClose: () => void;
19
19
  onMouseDown?: () => void;
20
20
  isOpen: boolean;
@@ -6,7 +6,8 @@ interface LayerManagerConnectProps {
6
6
  preloadedMapServices?: Service[];
7
7
  preloadedBaseServices?: Service[];
8
8
  bounds?: string;
9
- showTitle?: boolean;
9
+ title?: string;
10
+ showMapIdInTitle?: boolean;
10
11
  leftHeaderComponent?: React.ReactElement;
11
12
  }
12
13
  /**
@@ -3,11 +3,32 @@ export declare type Size = {
3
3
  width: number;
4
4
  height: number;
5
5
  };
6
+ export interface ToolbarButtonSettings {
7
+ small?: {
8
+ icon?: React.ReactNode;
9
+ isDisabled?: boolean;
10
+ };
11
+ medium?: {
12
+ icon?: React.ReactNode;
13
+ isDisabled?: boolean;
14
+ };
15
+ large?: {
16
+ icon?: React.ReactNode;
17
+ isDisabled?: boolean;
18
+ };
19
+ dock?: {
20
+ isDisabled?: boolean;
21
+ };
22
+ divider?: {
23
+ element: React.ReactNode;
24
+ };
25
+ }
6
26
  interface HeaderOptionsProps {
7
27
  isDockedLayerManager: boolean;
8
28
  shortcutsEnabled: boolean;
9
29
  onClickDockButton: () => void;
10
30
  onChangeSize: (size: Size) => void;
31
+ buttonSettings?: ToolbarButtonSettings;
11
32
  }
12
33
  export declare const sizeSmall: {
13
34
  width: number;
@@ -1,10 +1,11 @@
1
1
  import * as React from 'react';
2
- import { Size } from './LayerManagerHeaderOptions';
2
+ import { Size, ToolbarButtonSettings } from './LayerManagerHeaderOptions';
3
3
  interface HeaderOptionsProps {
4
4
  isDockedLayerManager: boolean;
5
5
  mapId: string;
6
6
  onClickDockButton: () => void;
7
7
  onChangeSize: (size: Size) => void;
8
+ buttonSettings?: ToolbarButtonSettings;
8
9
  }
9
10
  export declare const areShortcutsEnabled: (activeMapId: string, mapId: string, floatingLmFocused: boolean, isDockedLayerManager: boolean) => boolean;
10
11
  declare const HeaderOptionsConnect: React.FC<HeaderOptionsProps>;
@@ -1,6 +1,6 @@
1
1
  /// <reference types="react" />
2
2
  import { DockedLayerManagerSize } from '../../store/mapStore/types';
3
- import { Size } from './LayerManagerHeaderOptions';
3
+ import { Size, ToolbarButtonSettings } from './LayerManagerHeaderOptions';
4
4
  export declare const columnClasses: {
5
5
  column1: string;
6
6
  column2: string;
@@ -154,6 +154,15 @@ export declare const layerManagerStyle: {
154
154
  };
155
155
  export declare const returnCorrectSize: (sizeResult: DockedLayerManagerSize | undefined) => Size;
156
156
  export interface LayerManagerCustomSettings {
157
+ toolbar?: {
158
+ dragHandle?: {
159
+ icon?: React.ReactNode;
160
+ };
161
+ controlButtonSettings?: ToolbarButtonSettings;
162
+ closeButton?: {
163
+ icon?: React.ReactNode;
164
+ };
165
+ };
157
166
  header?: {
158
167
  addLayer?: {
159
168
  tooltipTitle?: string;
@@ -177,6 +186,9 @@ export interface LayerManagerCustomSettings {
177
186
  tooltipTitle?: string;
178
187
  icon?: React.ReactNode;
179
188
  };
189
+ activateLayer?: {
190
+ isDisabled?: boolean;
191
+ };
180
192
  enableLayer?: {
181
193
  enabledIcon?: React.ReactNode;
182
194
  disabledIcon?: React.ReactNode;
@@ -184,6 +196,10 @@ export interface LayerManagerCustomSettings {
184
196
  disabledTooltipTitle?: string;
185
197
  };
186
198
  renderLayer?: {
199
+ Element?: React.FC<{
200
+ layerId: string;
201
+ mapId: string;
202
+ }>;
187
203
  tooltipPrefix?: string;
188
204
  };
189
205
  layerStyle?: {
@@ -205,6 +221,9 @@ export interface LayerManagerCustomSettings {
205
221
  footer?: {
206
222
  baseLayerRow?: {
207
223
  title?: string;
224
+ addLayersButton?: {
225
+ isDisabled?: boolean;
226
+ };
208
227
  };
209
228
  baseLayerDropdown?: {
210
229
  tooltipPrefix?: string;
@@ -7,3 +7,4 @@ export { default as LayerManagerConnect } from './LayerManagerConnect';
7
7
  export { default as DockedLayerManagerConnect } from './DockedLayerManagerConnect';
8
8
  export { default as LayerSelectConnect } from './LayerSelect/LayerSelectConnect';
9
9
  export { default as LayerManagerMapButtonConnect } from './LayerManagerMapButtonConnect';
10
+ export { useFetchServices } from './useFetchServices';
@@ -1,8 +1,7 @@
1
1
  import * as React from 'react';
2
2
  import { TooltipProps } from '@mui/material';
3
- import { ToolButtonProps } from '@opengeoweb/shared';
4
- interface MapControlButtonProps extends ToolButtonProps {
5
- onClick: () => void;
3
+ import { CustomIconProps } from '@opengeoweb/shared';
4
+ interface MapControlButtonProps extends CustomIconProps {
6
5
  isActive?: boolean;
7
6
  placement?: TooltipProps['placement'];
8
7
  children: React.ReactNode;
@@ -1,5 +1,4 @@
1
1
  import { WMLayer, WMJSDimension } from '@opengeoweb/webmap';
2
2
  import { UpdateLayerInfoPayload } from '../../store/mapStore/types';
3
- import { MapViewProps } from '../MapView/types';
4
3
  export declare const getCurrentDimensionValue: (dimensions: WMJSDimension[] | undefined, name: string) => string;
5
- export declare const setServiceMetadata: (wmLayer: WMLayer, mapId: string, mapProperties: MapViewProps, onUpdateLayerInformation?: ((payload: UpdateLayerInfoPayload) => void) | undefined) => void;
4
+ export declare const setLayerInfo: (wmLayer: WMLayer, mapId: string, onUpdateLayerInformation?: ((payload: UpdateLayerInfoPayload) => void) | undefined) => void;
@@ -0,0 +1,36 @@
1
+ import React, { ReactNode } from 'react';
2
+ import { SxProps } from '@mui/material';
3
+ import { TimeSliderLiteCustomSettings } from './timeSliderLiteUtils';
4
+ export interface TimeSliderLiteProps {
5
+ controlButtons?: ReactNode;
6
+ endTime: number;
7
+ height?: number;
8
+ hideButton?: ReactNode;
9
+ isAnimating?: boolean;
10
+ isVisible?: boolean;
11
+ locale?: string;
12
+ mapId: string;
13
+ menuOpen?: boolean;
14
+ overrideAnimation?: boolean;
15
+ onToggleAnimation?: () => void;
16
+ onToggleMenu: () => void;
17
+ onToggleTimeSlider: () => void;
18
+ selectedTime: number;
19
+ setSelectedTime: (time: number) => void;
20
+ settings?: TimeSliderLiteCustomSettings;
21
+ backgroundHoursOffset?: number;
22
+ needleWidth?: number;
23
+ needleDragAreaWidth?: number;
24
+ needleLabelZIndex?: number;
25
+ needleLabelOffset?: [number, number];
26
+ draggableTimeStamp?: boolean;
27
+ startTime: number;
28
+ sx?: SxProps;
29
+ timeStep: number;
30
+ }
31
+ export declare const TIME_SLIDER_LITE_DEFAULT_HEIGHT = 40;
32
+ export declare const TIME_SLIDER_LITE_DEFAULT_LOCALE = "en";
33
+ export declare const TIME_SLIDER_LITE_DEFAULT_TIME_STEP = 5;
34
+ export declare const TIME_SLIDER_LITE_TOOLTIP_DELAY = 3000;
35
+ declare const TimeSliderLite: React.FC<TimeSliderLiteProps>;
36
+ export default TimeSliderLite;
@@ -0,0 +1,9 @@
1
+ import * as React from 'react';
2
+ declare const _default: {
3
+ title: string;
4
+ };
5
+ export default _default;
6
+ export declare const DemoTimeSliderLite: {
7
+ (): React.ReactElement;
8
+ storyName: string;
9
+ };
@@ -0,0 +1,20 @@
1
+ import React from 'react';
2
+ interface Props {
3
+ draggableLabel?: boolean;
4
+ width: number;
5
+ height: number;
6
+ locale: string;
7
+ startTime: number;
8
+ endTime: number;
9
+ needleDragAreaWidth?: number;
10
+ needleLabelZIndex?: number;
11
+ needleLabelOffset?: [number, number];
12
+ needleWidth?: number;
13
+ timeStep: number;
14
+ selectedTime: number;
15
+ style: React.CSSProperties;
16
+ setSelectedTime: (time: number) => void;
17
+ }
18
+ export declare const DRAG_AREA_WIDTH = 10;
19
+ declare const TimeSliderDraggableNeedle: React.FC<Props>;
20
+ export default TimeSliderDraggableNeedle;
@@ -0,0 +1,17 @@
1
+ import React from 'react';
2
+ interface TimeSliderLiteBackgroundProps {
3
+ height: number;
4
+ draggableTimeStamp?: boolean;
5
+ startTime: number;
6
+ locale: string;
7
+ needleWidth?: number;
8
+ needleDragAreaWidth?: number;
9
+ needleLabelZIndex?: number;
10
+ needleLabelOffset?: [number, number];
11
+ endTime: number;
12
+ timeStep: number;
13
+ selectedTime: number;
14
+ setSelectedTime: (time: number) => void;
15
+ }
16
+ declare const TimeSliderLiteBackground: React.FC<TimeSliderLiteBackgroundProps>;
17
+ export default TimeSliderLiteBackground;
@@ -0,0 +1,13 @@
1
+ import React from 'react';
2
+ interface Props {
3
+ width: number;
4
+ height: number;
5
+ startTime: number;
6
+ endTime: number;
7
+ timeStep?: number;
8
+ style?: React.CSSProperties;
9
+ locale: string;
10
+ }
11
+ export declare const TIME_SLIDER_LITE_PADDING_RIGHT = 1;
12
+ declare const TimeSliderLiteBackgroundSvg: React.FC<Props>;
13
+ export default TimeSliderLiteBackgroundSvg;
@@ -0,0 +1,8 @@
1
+ import React from 'react';
2
+ import { ButtonGroupProps } from '@mui/material';
3
+ interface ControlButtonGroupProps extends ButtonGroupProps {
4
+ right?: boolean;
5
+ left?: boolean;
6
+ }
7
+ declare const ControlButtonGroup: React.FC<ControlButtonGroupProps>;
8
+ export default ControlButtonGroup;
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ import { TimeSliderLiteCustomSettings } from '../../timeSliderLiteUtils';
3
+ export interface HideButtonProps {
4
+ isVisible?: boolean;
5
+ settings?: TimeSliderLiteCustomSettings['hideButton'];
6
+ onClick: () => void;
7
+ }
8
+ declare const HideButton: React.FC<HideButtonProps>;
9
+ export default HideButton;
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ import { TimeSliderLiteCustomSettings } from '../../timeSliderLiteUtils';
3
+ interface Props {
4
+ menuOpen?: boolean;
5
+ onClick?: () => void;
6
+ settings?: TimeSliderLiteCustomSettings['menuButton'];
7
+ }
8
+ declare const MenuButton: React.FC<Props>;
9
+ export default MenuButton;
@@ -0,0 +1,11 @@
1
+ import React from 'react';
2
+ import { TimeSliderLiteCustomSettings } from '../../timeSliderLiteUtils';
3
+ export interface PlayButtonProps {
4
+ isAnimating?: boolean;
5
+ isDisabled?: boolean;
6
+ onTogglePlayButton: () => void;
7
+ settings?: TimeSliderLiteCustomSettings['playButton'];
8
+ tooltipDelay?: number;
9
+ }
10
+ declare const PlayButton: React.FC<PlayButtonProps>;
11
+ export default PlayButton;
@@ -0,0 +1,11 @@
1
+ import * as React from 'react';
2
+ import { TimeSliderLiteCustomSettings } from '../../timeSliderLiteUtils';
3
+ export interface StepButtonProps {
4
+ forward?: boolean;
5
+ isDisabled?: boolean;
6
+ onClick?: () => void;
7
+ settings?: TimeSliderLiteCustomSettings['stepButton'];
8
+ tooltipDelay?: number;
9
+ }
10
+ declare const StepButton: React.FC<StepButtonProps>;
11
+ export default StepButton;
@@ -0,0 +1,3 @@
1
+ import { IconButtonProps, TooltipProps } from '@mui/material';
2
+ export declare const timeSliderLiteButtonDefaultProps: IconButtonProps;
3
+ export declare const timeSliderLiteTooltipDefaultProps: Partial<TooltipProps>;
@@ -0,0 +1,20 @@
1
+ import * as React from 'react';
2
+ import { SxProps } from '@mui/material';
3
+ import { TimeSliderLiteProps } from './TimeSliderLite';
4
+ export declare const TIME_SLIDER_LITE_DEFAULT_TIME_RANGE: number;
5
+ export interface TimeSliderConnectLiteProps extends Partial<TimeSliderLiteProps> {
6
+ overrideUseTimeRange?: [
7
+ [
8
+ number,
9
+ number
10
+ ] | null,
11
+ (timeRange: [number, number] | null) => void
12
+ ];
13
+ sourceId: string;
14
+ mapId: string;
15
+ isAlwaysVisible?: boolean;
16
+ menuSx?: SxProps;
17
+ subMenuSx?: SxProps;
18
+ }
19
+ declare const TimeSliderLiteConnect: React.FC<TimeSliderConnectLiteProps>;
20
+ export default TimeSliderLiteConnect;
@@ -0,0 +1,9 @@
1
+ import * as React from 'react';
2
+ declare const _default: {
3
+ title: string;
4
+ };
5
+ export default _default;
6
+ export declare const DemoTimeSliderLiteConnect: {
7
+ (): React.ReactElement;
8
+ storyName: string;
9
+ };
@@ -0,0 +1,8 @@
1
+ import { CardProps } from '@mui/material';
2
+ import React from 'react';
3
+ interface SubmenuWrapperProps extends CardProps {
4
+ closeButtonIcon?: React.ReactNode;
5
+ setSubmenu?: (value: string | null) => void;
6
+ }
7
+ declare const SubmenuWrapper: React.FC<SubmenuWrapperProps>;
8
+ export default SubmenuWrapper;
@@ -0,0 +1,21 @@
1
+ import { SelectProps, SxProps } from '@mui/material';
2
+ import React from 'react';
3
+ interface CustomSelectProps extends SelectProps {
4
+ amountOfOptions: number;
5
+ dropdownButtonIcon?: React.ElementType;
6
+ itemPostFix: string;
7
+ value: number;
8
+ setValue: (value: number) => void;
9
+ }
10
+ export declare const CustomSelect: React.FC<CustomSelectProps>;
11
+ interface DayHourSelectorProps {
12
+ isDisabled?: boolean;
13
+ dropdownButtonIcon?: React.ElementType;
14
+ label: string;
15
+ maxHours?: number;
16
+ sx?: SxProps;
17
+ useDays: [number, (value: number) => void];
18
+ useHours: [number, (value: number) => void];
19
+ }
20
+ declare const DayHourSelector: React.FC<DayHourSelectorProps>;
21
+ export default DayHourSelector;
@@ -0,0 +1,15 @@
1
+ import React from 'react';
2
+ interface IProps {
3
+ currentTime: number;
4
+ useTimeRange?: [
5
+ [
6
+ number,
7
+ number
8
+ ] | null,
9
+ (timeRange: [number, number] | null) => void
10
+ ];
11
+ defaultTimeRange: [number, number];
12
+ dropdownButtonIcon?: React.ElementType;
13
+ }
14
+ declare const TimeRangeOptions: React.FC<IProps>;
15
+ export default TimeRangeOptions;
@@ -0,0 +1,27 @@
1
+ import { SxProps } from '@mui/material';
2
+ import React from 'react';
3
+ interface TimeSliderLiteOptionsMenuProps {
4
+ closeButtonIcon?: React.ReactNode;
5
+ currentTime?: number;
6
+ defaultTimeRange: [number, number];
7
+ dropdownButtonIcon?: React.ElementType;
8
+ menuOpen?: boolean;
9
+ setMenuOpen?: (menuOpen: boolean) => void;
10
+ submenuSx?: SxProps;
11
+ sx?: SxProps;
12
+ useTimeRange?: [
13
+ [
14
+ number,
15
+ number
16
+ ] | null,
17
+ (timeRange: [number, number] | null) => void
18
+ ];
19
+ }
20
+ export declare enum Submenu {
21
+ TIME_RANGE = "Time range",
22
+ TIME_STEP = "Time step",
23
+ SPEED = "Speed",
24
+ UPDATE_INTERVAL = "Update interval"
25
+ }
26
+ declare const TimeSliderLiteOptionsMenu: React.FC<TimeSliderLiteOptionsMenuProps>;
27
+ export default TimeSliderLiteOptionsMenu;
@@ -0,0 +1,4 @@
1
+ export { default as TimeSliderLiteOptionsMenu } from './TimeSliderLiteOptionsMenu/TimeSliderLiteOptionsMenu';
2
+ export { default as TimeSliderLiteConnect } from './TimeSliderLiteConnect';
3
+ export { default as TimeSliderLite } from './TimeSliderLite';
4
+ export * from './timeSliderLiteUtils';
@@ -0,0 +1,83 @@
1
+ import { ElementType, ReactNode } from 'react';
2
+ import { ReduxLayer } from '../../store/mapStore/types';
3
+ export declare const DAY_TO_MILLISECOND: number;
4
+ export declare const DAY_TO_SECOND = 86400;
5
+ export declare const HOUR_TO_SECOND = 3600;
6
+ export declare const MILLISECOND_TO_DAY: number;
7
+ export declare const MILLISECOND_TO_SECOND: number;
8
+ export declare const MINUTE_TO_SECOND = 60;
9
+ export declare const SECOND_TO_DAY: number;
10
+ export declare const SECOND_TO_HOUR: number;
11
+ export declare const SECOND_TO_MILLISECOND = 1000;
12
+ export declare const SEVEN_DAYS_IN_SECONDS: number;
13
+ /**
14
+ * Reformats a date that has capitalized first letter and colon separator for time
15
+ * @param dateString Date string from Date.toLocaleDateString
16
+ * @returns Reformatted date string
17
+ */
18
+ export declare const reformatFinnishDateString: (dateString: string) => string;
19
+ export declare const getMonthChanges: (startDate: Date, endDate: Date) => number[];
20
+ export declare const getSelectedTimePx: (startTime: number, endTime: number, selectedTime: number, width: number) => number;
21
+ export declare const boundedValue: (value: number, bounds: [number, number]) => number;
22
+ export declare const getSelectedTimeFromPx: (startTime: number, endTime: number, selectedTimePx: number, width: number) => number;
23
+ export declare const secondsToDaysAndHours: (seconds: number) => {
24
+ days: number;
25
+ hours: number;
26
+ };
27
+ export declare const hoursAndDaysToSeconds: (hours: number, days: number) => number;
28
+ export declare const TIME_SLIDER_LITE_DEFAULT_MAX_FORECAST_RANGE: number;
29
+ export declare const TIME_SLIDER_LITE_DEFAULT_MAX_OBSERVED_RANGE: number;
30
+ /**
31
+ * Checks which layers have observed/forecasted data and returns a default time range
32
+ * @param layers ReduxLayer[] Map layers
33
+ * @param currentTime Current time in seconds
34
+ * @param overrideDefaultTimeRange [observedTimeRange, forecastTime] in seconds from current time
35
+ * @returns [startTime, endTime] in seconds
36
+ */
37
+ export declare const defaultTimeRange: (layers: ReduxLayer[], currentTime?: number, overrideDefaultTimeRange?: [number, number] | undefined) => [number, number];
38
+ export declare const useDefaultTimeRange: (layers: ReduxLayer[], updateThreshold: number, currentTime?: number) => [number, number];
39
+ export declare const subTicksPerDay: (dayWidthInPixels: number) => number;
40
+ export declare const maxSubTicksPerDay: (dayWidthInPixels: number, timeStep: number) => number;
41
+ export declare const getRemainingHours: (maxHours: number | undefined, days: number) => number;
42
+ export interface TimeSliderLiteCustomSettings {
43
+ menuButton?: {
44
+ label?: string;
45
+ icon?: ReactNode;
46
+ };
47
+ playButton?: {
48
+ label?: {
49
+ play?: string;
50
+ pause?: string;
51
+ };
52
+ icon?: {
53
+ play?: ReactNode;
54
+ pause?: ReactNode;
55
+ };
56
+ };
57
+ stepButton?: {
58
+ label?: {
59
+ forward?: string;
60
+ backward?: string;
61
+ };
62
+ icon?: {
63
+ forward?: ReactNode;
64
+ backward?: ReactNode;
65
+ };
66
+ };
67
+ hideButton?: {
68
+ label?: {
69
+ hide?: string;
70
+ show?: string;
71
+ };
72
+ icon?: {
73
+ hide?: ReactNode;
74
+ show?: ReactNode;
75
+ };
76
+ };
77
+ closeButton?: {
78
+ icon?: ReactNode;
79
+ };
80
+ dropdownButton?: {
81
+ icon?: ElementType;
82
+ };
83
+ }
package/lib/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { mapSelectors, uiActions, uiSelectors, layerActions, genericActions, snackbarActions, routerActions, appActions, layerSelectors, genericSelectors, syncGroupsSelectors } from './store';
1
+ import { mapSelectors, webmapReducer, uiActions, uiSelectors, uiReducer, layerActions, genericActions, snackbarActions, routerActions, appActions, layerSelectors, serviceSelectors, genericSelectors, syncGroupsSelectors } from './store';
2
2
  import * as mapTypes from './store/mapStore/types';
3
3
  import * as layerTypes from './store/mapStore/layers/types';
4
4
  import * as mapUtils from './store/mapStore/map/utils';
@@ -7,7 +7,7 @@ import { reducer as layerReducer } from './store/mapStore/layers/reducer';
7
7
  import synchronizationGroupConfig from './store/generic/config';
8
8
  import * as SyncGroups from './store/generic/synchronizationGroups';
9
9
  import coreModuleConfig from './store/coreModuleConfig';
10
- import { LayerManagerConnect, LayerManagerHeaderOptions, LayerManagerDescriptionRow, LayerManagerLayerContainerRow, LayerManagerBaseLayerRow, LayerSelectConnect, LayerManagerMapButtonConnect, DockedLayerManagerConnect, LayerManager } from './components/LayerManager';
10
+ import { LayerManagerConnect, LayerManagerHeaderOptions, LayerManagerDescriptionRow, LayerManagerLayerContainerRow, LayerManagerBaseLayerRow, LayerSelectConnect, LayerManagerMapButtonConnect, DockedLayerManagerConnect, LayerManager, useFetchServices } from './components/LayerManager';
11
11
  import { MultiDimensionSelectMapButtonsConnect, MultiMapDimensionSelectConnect } from './components/MultiMapDimensionSelect';
12
12
  export * from './hooks';
13
13
  export * from './components/MultiMapView/MultiMapViewConnect';
@@ -17,6 +17,7 @@ export { ReactMapView, ReactMapViewLayer } from './components/ReactMapView';
17
17
  export { LegendConnect, Legend, LegendMapButtonConnect, } from './components/Legend';
18
18
  export { ZoomControls, ZoomControlConnect } from './components/MapControls';
19
19
  export { TimeSlider, TimeSliderConnect, TimeSliderButtonsConnect, TimeSliderOptionsMenuButtonConnect, TimeSliderPlayButtonConnect, TimeSliderBackwardForwardStepButtonConnect, timeSliderUtils, } from './components/TimeSlider';
20
+ export { TimeSliderLite } from './components/TimeSliderLite';
20
21
  export { MapControls } from './components/MapControls';
21
22
  export declare const mapActions: {
22
23
  serviceSetLayers: import("@reduxjs/toolkit").ActionCreatorWithPayload<mapTypes.SetLayersForServicePayload, string>;
@@ -83,7 +84,7 @@ export declare const mapActions: {
83
84
  onUpdateLayerInformation: import("@reduxjs/toolkit").ActionCreatorWithPayload<mapTypes.UpdateLayerInfoPayload, string>;
84
85
  setSelectedFeature: import("@reduxjs/toolkit").ActionCreatorWithPayload<mapTypes.SetSelectedFeaturePayload, string>;
85
86
  };
86
- export { mapSelectors, mapTypes, mapUtils, layerTypes, layerReducer, layerActions, uiActions, uiSelectors, uiTypes, genericActions as syncGroupActions, snackbarActions, appActions, layerSelectors, routerActions, genericSelectors, syncGroupsSelectors, };
87
+ export { mapSelectors, webmapReducer, mapTypes, mapUtils, layerTypes, layerReducer, layerActions, uiActions, uiSelectors, uiReducer, uiTypes, genericActions as syncGroupActions, snackbarActions, appActions, layerSelectors, serviceSelectors, routerActions, genericSelectors, syncGroupsSelectors, };
87
88
  export { synchronizationGroupConfig as synchronizationGroupModuleConfig };
88
89
  export * from './components/ComponentsLookUp';
89
90
  export * from './components/ConfigurableMap';
@@ -93,7 +94,7 @@ export { SyncGroups };
93
94
  export { store } from './storybookUtils/store';
94
95
  export * from './types/types';
95
96
  export { coreModuleConfig };
96
- export { LayerManagerConnect, LayerManagerHeaderOptions, LayerManagerDescriptionRow, LayerManagerBaseLayerRow, LayerManagerLayerContainerRow, LayerSelectConnect, LayerManagerMapButtonConnect, DockedLayerManagerConnect, LayerManager, };
97
+ export { LayerManagerConnect, LayerManagerHeaderOptions, LayerManagerDescriptionRow, LayerManagerBaseLayerRow, LayerManagerLayerContainerRow, LayerSelectConnect, LayerManagerMapButtonConnect, DockedLayerManagerConnect, LayerManager, useFetchServices, };
97
98
  export { MultiDimensionSelectMapButtonsConnect, MultiMapDimensionSelectConnect, };
98
99
  export * as publicLayers from './utils/publicLayers';
99
100
  export * as publicServices from './utils/publicServices';
@@ -1,7 +1,7 @@
1
1
  import { AppStore } from '../../../types/types';
2
2
  import { GenericSyncActionPayload } from '../synchronizationActions/types';
3
3
  import { GenericActionPayload } from '../types';
4
- import { SynchronizationGroup, SynchronizationGroupState, SynchronizationSource, SyncType } from './types';
4
+ import { SyncGroupTarget, SynchronizationGroup, SynchronizationGroupState, SynchronizationSource, SyncType } from './types';
5
5
  export declare const syncGroupStore: (store: AppStore) => SynchronizationGroupState;
6
6
  /**
7
7
  * Gets synchronization group state
@@ -51,3 +51,4 @@ export declare const getSyncedMapIdsForTimeslider: ((state: {
51
51
  }> & {
52
52
  clearCache: () => void;
53
53
  };
54
+ export declare const getSyncGroupTargets: (state: AppStore) => SyncGroupTarget[];
@@ -43,10 +43,12 @@ export interface SyncGroupsAddSourcePayload {
43
43
  export interface SyncGroupRemoveSourcePayload {
44
44
  id: string;
45
45
  }
46
- export interface SyncGroupAddTargetPayload {
46
+ export interface SyncGroupTarget {
47
47
  groupId: string;
48
48
  targetId: string;
49
49
  linked?: boolean;
50
+ }
51
+ export interface SyncGroupAddTargetPayload extends SyncGroupTarget {
50
52
  origin?: Origin;
51
53
  }
52
54
  export interface SyncGroupRemoveTargetPayload {
@@ -54,10 +56,8 @@ export interface SyncGroupRemoveTargetPayload {
54
56
  targetId: string;
55
57
  origin?: Origin;
56
58
  }
57
- export interface SyncGroupLinkTargetPayload {
59
+ export interface SyncGroupLinkTargetPayload extends SyncGroupTarget {
58
60
  linked: boolean;
59
- groupId: string;
60
- targetId: string;
61
61
  }
62
62
  export interface SyncGroupAddGroupPayload {
63
63
  groupId: string;