@opengeoweb/core 4.20.0 → 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 (19) hide show
  1. package/index.esm.js +237 -124
  2. package/index.umd.js +279 -165
  3. package/lib/components/TimeSliderLite/TimeSliderLite.d.ts +1 -0
  4. package/lib/components/TimeSliderLite/TimeSliderLiteBackground/TimeSliderLiteBackgroundSvg.d.ts +1 -0
  5. package/lib/components/TimeSliderLite/TimeSliderLiteButtons/ControlButtonGroup/ControlButtonGroup.d.ts +2 -2
  6. package/lib/components/TimeSliderLite/TimeSliderLiteButtons/PlayButton/PlayButton.d.ts +1 -0
  7. package/lib/components/TimeSliderLite/TimeSliderLiteButtons/StepButton/StepButton.d.ts +1 -0
  8. package/lib/components/TimeSliderLite/TimeSliderLiteConnect.d.ts +10 -2
  9. package/lib/components/TimeSliderLite/TimeSliderLiteOptionsMenu/SubmenuWrapper.d.ts +8 -0
  10. package/lib/components/TimeSliderLite/TimeSliderLiteOptionsMenu/TimeRangeOptions/DayHourSelector.d.ts +21 -0
  11. package/lib/components/TimeSliderLite/TimeSliderLiteOptionsMenu/TimeRangeOptions/DayHourSelector.spec.d.ts +1 -0
  12. package/lib/components/TimeSliderLite/TimeSliderLiteOptionsMenu/TimeRangeOptions/TimeRangeOptions.d.ts +15 -0
  13. package/lib/components/TimeSliderLite/TimeSliderLiteOptionsMenu/TimeSliderLiteOptionsMenu.d.ts +27 -0
  14. package/lib/components/TimeSliderLite/TimeSliderLiteOptionsMenu/TimeSliderLiteOptionsMenu.spec.d.ts +1 -0
  15. package/lib/components/TimeSliderLite/index.d.ts +2 -1
  16. package/lib/components/TimeSliderLite/timeSliderLiteUtils.d.ts +37 -1
  17. package/package.json +7 -7
  18. package/lib/components/LayerManager/LayerSelect/LayerList/SearchHighlight.d.ts +0 -7
  19. /package/lib/components/{LayerManager/LayerSelect/LayerList/SearchHighlight.spec.d.ts → TimeSliderLite/TimeSliderLiteOptionsMenu/SubmenuWrapper.spec.d.ts} +0 -0
@@ -4,6 +4,7 @@ interface Props {
4
4
  height: number;
5
5
  startTime: number;
6
6
  endTime: number;
7
+ timeStep?: number;
7
8
  style?: React.CSSProperties;
8
9
  locale: string;
9
10
  }
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
- interface ControlButtonGroupProps {
3
- children?: React.ReactNode;
2
+ import { ButtonGroupProps } from '@mui/material';
3
+ interface ControlButtonGroupProps extends ButtonGroupProps {
4
4
  right?: boolean;
5
5
  left?: boolean;
6
6
  }
@@ -5,6 +5,7 @@ export interface PlayButtonProps {
5
5
  isDisabled?: boolean;
6
6
  onTogglePlayButton: () => void;
7
7
  settings?: TimeSliderLiteCustomSettings['playButton'];
8
+ tooltipDelay?: number;
8
9
  }
9
10
  declare const PlayButton: React.FC<PlayButtonProps>;
10
11
  export default PlayButton;
@@ -5,6 +5,7 @@ export interface StepButtonProps {
5
5
  isDisabled?: boolean;
6
6
  onClick?: () => void;
7
7
  settings?: TimeSliderLiteCustomSettings['stepButton'];
8
+ tooltipDelay?: number;
8
9
  }
9
10
  declare const StepButton: React.FC<StepButtonProps>;
10
11
  export default StepButton;
@@ -1,12 +1,20 @@
1
1
  import * as React from 'react';
2
+ import { SxProps } from '@mui/material';
2
3
  import { TimeSliderLiteProps } from './TimeSliderLite';
3
4
  export declare const TIME_SLIDER_LITE_DEFAULT_TIME_RANGE: number;
4
5
  export interface TimeSliderConnectLiteProps extends Partial<TimeSliderLiteProps> {
5
- observedRange?: number;
6
- forecastRange?: number;
6
+ overrideUseTimeRange?: [
7
+ [
8
+ number,
9
+ number
10
+ ] | null,
11
+ (timeRange: [number, number] | null) => void
12
+ ];
7
13
  sourceId: string;
8
14
  mapId: string;
9
15
  isAlwaysVisible?: boolean;
16
+ menuSx?: SxProps;
17
+ subMenuSx?: SxProps;
10
18
  }
11
19
  declare const TimeSliderLiteConnect: React.FC<TimeSliderConnectLiteProps>;
12
20
  export default TimeSliderLiteConnect;
@@ -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;
@@ -1,3 +1,4 @@
1
- export { default as TimeSliderLiteConnect } from './TimeSliderLite';
1
+ export { default as TimeSliderLiteOptionsMenu } from './TimeSliderLiteOptionsMenu/TimeSliderLiteOptionsMenu';
2
+ export { default as TimeSliderLiteConnect } from './TimeSliderLiteConnect';
2
3
  export { default as TimeSliderLite } from './TimeSliderLite';
3
4
  export * from './timeSliderLiteUtils';
@@ -1,14 +1,44 @@
1
- import { ReactNode } from 'react';
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;
2
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;
3
13
  /**
4
14
  * Reformats a date that has capitalized first letter and colon separator for time
5
15
  * @param dateString Date string from Date.toLocaleDateString
6
16
  * @returns Reformatted date string
7
17
  */
8
18
  export declare const reformatFinnishDateString: (dateString: string) => string;
19
+ export declare const getMonthChanges: (startDate: Date, endDate: Date) => number[];
9
20
  export declare const getSelectedTimePx: (startTime: number, endTime: number, selectedTime: number, width: number) => number;
10
21
  export declare const boundedValue: (value: number, bounds: [number, number]) => number;
11
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;
12
42
  export interface TimeSliderLiteCustomSettings {
13
43
  menuButton?: {
14
44
  label?: string;
@@ -44,4 +74,10 @@ export interface TimeSliderLiteCustomSettings {
44
74
  show?: ReactNode;
45
75
  };
46
76
  };
77
+ closeButton?: {
78
+ icon?: ReactNode;
79
+ };
80
+ dropdownButton?: {
81
+ icon?: ElementType;
82
+ };
47
83
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opengeoweb/core",
3
- "version": "4.20.0",
3
+ "version": "4.21.0",
4
4
  "description": "GeoWeb Core library for the opengeoweb project",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -13,30 +13,30 @@
13
13
  "dependencies": {},
14
14
  "peerDependencies": {
15
15
  "react": "^18.2.0",
16
- "@opengeoweb/shared": "4.20.0",
16
+ "@opengeoweb/shared": "4.21.0",
17
17
  "@mui/material": "^5.12.0",
18
- "@opengeoweb/theme": "4.20.0",
18
+ "@opengeoweb/theme": "4.21.0",
19
19
  "@mui/system": "^5.12.0",
20
20
  "@mui/x-date-pickers": "^6.2.1",
21
21
  "react-draggable": "^4.4.5",
22
22
  "re-resizable": "^6.9.0",
23
+ "lodash": "^4.17.20",
23
24
  "@redux-eggs/core": "^2.2.0",
24
25
  "react-redux": "^8.0.4",
25
- "lodash": "^4.17.20",
26
26
  "axios": "^0.25.0",
27
27
  "date-fns": "^2.29.3",
28
28
  "moment": "^2.29.0",
29
- "@opengeoweb/webmap": "4.20.0",
29
+ "@opengeoweb/webmap": "4.21.0",
30
30
  "throttle-debounce": "^3.0.1",
31
31
  "proj4": "^2.6.2",
32
- "@opengeoweb/api": "4.20.0",
32
+ "@opengeoweb/api": "4.21.0",
33
33
  "react-intl": "^5.17.5",
34
34
  "react-sortablejs": "^6.1.4",
35
35
  "sortablejs": "^1.15.0",
36
36
  "immer": "^9.0.15",
37
37
  "@reduxjs/toolkit": "^1.8.3",
38
38
  "react-window": "^1.8.7",
39
- "@opengeoweb/form-fields": "4.20.0",
39
+ "@opengeoweb/form-fields": "4.21.0",
40
40
  "react-hook-form": "^7.41.5",
41
41
  "moment-timezone": "^0.5.31",
42
42
  "react-resize-detector": "^9.1.0",
@@ -1,7 +0,0 @@
1
- import React from 'react';
2
- interface HighlightProps {
3
- text: string;
4
- search: string;
5
- }
6
- declare const SearchHighlight: React.FC<HighlightProps>;
7
- export default SearchHighlight;