@opengeoweb/time-slider-lite 14.4.0 → 14.5.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.
- package/index.esm.js +747 -743
- package/package.json +7 -7
- package/src/lib/components/TimeSliderLite/TimeSliderLite.d.ts +5 -4
- package/src/lib/components/TimeSliderLite/TimeSliderLiteConnect.d.ts +4 -4
- package/src/lib/components/TimeSliderLite/timeSliderLiteUtils.d.ts +3 -3
- package/src/lib/components/TimeSliderLite/useOnToggleAnimation.d.ts +2 -2
- package/src/lib/components/TimeSliderLiteBackground/TimeSliderDraggableNeedle.d.ts +1 -1
- package/src/lib/components/TimeSliderLiteBackground/TimeSliderLiteBackground.d.ts +1 -1
- package/src/lib/components/TimeSliderLiteBackground/TimeSliderLiteBackgroundSvg.d.ts +1 -1
- package/src/lib/components/TimeSliderLiteBackground/TimeSliderZeroTimestamp.d.ts +1 -1
- package/src/lib/components/TimeSliderLiteButtons/ControlButtonGroup/ControlButtonGroup.d.ts +1 -1
- package/src/lib/components/TimeSliderLiteButtons/HideButton/HideButton.d.ts +1 -1
- package/src/lib/components/TimeSliderLiteButtons/MenuButton/MenuButton.d.ts +1 -1
- package/src/lib/components/TimeSliderLiteButtons/PlayButton/PlayButton.d.ts +1 -1
- package/src/lib/components/TimeSliderLiteButtons/StepButton/StepButton.d.ts +2 -2
- package/src/lib/components/TimeSliderLiteButtons/TimeSliderLiteButtonUtils.d.ts +1 -1
- package/src/lib/components/TimeSliderLiteOptionsMenu/AnimationSpeedOptions/AnimationSpeedOptions.d.ts +1 -1
- package/src/lib/components/TimeSliderLiteOptionsMenu/SubmenuSelectLabel.d.ts +1 -1
- package/src/lib/components/TimeSliderLiteOptionsMenu/SubmenuWrapper.d.ts +1 -1
- package/src/lib/components/TimeSliderLiteOptionsMenu/TimeRangeOptions/DayHourSelector.d.ts +1 -1
- package/src/lib/components/TimeSliderLiteOptionsMenu/TimeSliderLiteOptionsMenu.d.ts +6 -6
- package/src/lib/components/TimeSliderLiteOptionsMenu/TimeStepOptions/TimeStepSelector.d.ts +1 -1
- package/src/lib/locales/i18n.d.ts +3 -2
- package/src/lib/testUtils/Providers.d.ts +4 -4
package/index.esm.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
2
|
-
import { Card, Typography, IconButton, Select, MenuItem,
|
|
3
|
-
import
|
|
4
|
-
import
|
|
2
|
+
import { Card, Typography, IconButton, CardContent, Select, MenuItem, Grid, RadioGroup, FormControlLabel, Radio, Box, ToggleButtonGroup, ToggleButton, Divider, useTheme, ButtonGroup, Tooltip } from '@mui/material';
|
|
3
|
+
import React, { useState, useEffect, useLayoutEffect, useRef, createElement } from 'react';
|
|
4
|
+
import { Close, ChevronDown, ChevronUp, Options, Pause, Play, StepForward, StepBackward } from '@opengeoweb/theme';
|
|
5
5
|
import { usePrevious, safelyInitI18nForTestsAndStories } from '@opengeoweb/shared';
|
|
6
|
-
import {
|
|
6
|
+
import { speedFactors, defaultAnimationDelayAtStart } from '@opengeoweb/time-slider';
|
|
7
7
|
import i18n from 'i18next';
|
|
8
|
+
import { I18nextProvider, useTranslation } from 'react-i18next';
|
|
8
9
|
import { CORE_NAMESPACE, coreTranslations } from '@opengeoweb/core';
|
|
9
|
-
import { speedFactors, defaultAnimationDelayAtStart } from '@opengeoweb/time-slider';
|
|
10
10
|
import { useDispatch, useSelector } from 'react-redux';
|
|
11
11
|
import { mapActions, mapEnums, mapSelectors, genericActions } from '@opengeoweb/store';
|
|
12
12
|
import { handleDateUtilsISOString } from '@opengeoweb/webmap';
|
|
@@ -167,7 +167,7 @@ var SubmenuWrapper = function SubmenuWrapper(_ref) {
|
|
|
167
167
|
return jsxs(Card, Object.assign({}, props, {
|
|
168
168
|
sx: Object.assign({
|
|
169
169
|
position: 'relative'
|
|
170
|
-
}, sx),
|
|
170
|
+
}, Array.isArray(sx) ? Object.assign.apply(Object, [{}].concat(sx)) : sx),
|
|
171
171
|
children: [jsx(Typography, {
|
|
172
172
|
sx: {
|
|
173
173
|
fontWeight: '500',
|
|
@@ -177,15 +177,15 @@ var SubmenuWrapper = function SubmenuWrapper(_ref) {
|
|
|
177
177
|
children: title
|
|
178
178
|
}), jsx(IconButton, {
|
|
179
179
|
"data-testid": "TimeSliderLite-submenuWrapper-closeButton",
|
|
180
|
+
onClick: function onClick() {
|
|
181
|
+
return setSubmenu == null ? void 0 : setSubmenu(null);
|
|
182
|
+
},
|
|
180
183
|
size: "small",
|
|
181
184
|
sx: {
|
|
182
185
|
position: 'absolute',
|
|
183
186
|
top: 4,
|
|
184
187
|
right: 4
|
|
185
188
|
},
|
|
186
|
-
onClick: function onClick() {
|
|
187
|
-
return setSubmenu && setSubmenu(null);
|
|
188
|
-
},
|
|
189
189
|
children: closeButtonIcon != null ? closeButtonIcon : jsx(Close, {
|
|
190
190
|
"data-testid": "TimeSliderLite-submenuWrapper-defaultCloseIcon"
|
|
191
191
|
})
|
|
@@ -636,54 +636,62 @@ var useTimesliderLiteTranslation = function useTimesliderLiteTranslation() {
|
|
|
636
636
|
return useTranslation(TIME_SLIDER_LITE_NAMESPACE);
|
|
637
637
|
};
|
|
638
638
|
|
|
639
|
-
var
|
|
640
|
-
var
|
|
639
|
+
var AnimationSpeedOptions = function AnimationSpeedOptions(_ref) {
|
|
640
|
+
var _useAnimationSpeed$;
|
|
641
641
|
var dropdownButtonIcon = _ref.dropdownButtonIcon,
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
642
|
+
_ref$speedOptions = _ref.speedOptions,
|
|
643
|
+
speedOptions = _ref$speedOptions === void 0 ? speedFactors.sort(function (speedA, speedB) {
|
|
644
|
+
return speedB - speedA;
|
|
645
|
+
}) : _ref$speedOptions,
|
|
646
|
+
_ref$speedOptionItemP = _ref.speedOptionItemPrefix,
|
|
647
|
+
speedOptionItemPrefix = _ref$speedOptionItemP === void 0 ? 'x ' : _ref$speedOptionItemP,
|
|
648
|
+
_ref$speedOptionItemP2 = _ref.speedOptionItemPostfix,
|
|
649
|
+
speedOptionItemPostfix = _ref$speedOptionItemP2 === void 0 ? '' : _ref$speedOptionItemP2,
|
|
650
|
+
defaultSpeedOptionPostfix = _ref.defaultSpeedOptionPostfix,
|
|
651
|
+
_ref$defaultSpeedFact = _ref.defaultSpeedFactor,
|
|
652
|
+
defaultSpeedFactor = _ref$defaultSpeedFact === void 0 ? speedFactors[2] : _ref$defaultSpeedFact,
|
|
653
|
+
useAnimationSpeed = _ref.useAnimationSpeed;
|
|
647
654
|
var _useTimesliderLiteTra = useTimesliderLiteTranslation(),
|
|
648
655
|
t = _useTimesliderLiteTra.t;
|
|
649
|
-
var
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
720: "12 " + t('units.hours')
|
|
657
|
-
};
|
|
658
|
-
var options = timeStepOptions != null ? timeStepOptions : defaultTimeStepOptions;
|
|
659
|
-
var allOptionsKeys = Object.keys(options);
|
|
660
|
-
var availableOptionKeys = allOptionsKeys.filter(function (option) {
|
|
661
|
-
return Number(option) >= defaultTimeStep;
|
|
662
|
-
});
|
|
663
|
-
return jsx(Select, Object.assign({}, props, {
|
|
664
|
-
className: "TimeSliderLite-timeStepSelect",
|
|
665
|
-
"data-testid": "TimeSliderLite-timeStepSelect",
|
|
666
|
-
inputProps: {
|
|
667
|
-
'data-testid': 'TimeSliderLite-timeStepSelect-input'
|
|
668
|
-
},
|
|
656
|
+
var translatedSpeedOptionPostfix = defaultSpeedOptionPostfix != null ? defaultSpeedOptionPostfix : " (" + t('common.default').toLocaleLowerCase() + ")";
|
|
657
|
+
var animationSpeed = (_useAnimationSpeed$ = useAnimationSpeed == null ? void 0 : useAnimationSpeed[0]) != null ? _useAnimationSpeed$ : defaultSpeedFactor;
|
|
658
|
+
var setAnimationSpeed = useAnimationSpeed == null ? void 0 : useAnimationSpeed[1];
|
|
659
|
+
var readOnly = !setAnimationSpeed || speedOptions.length < 2;
|
|
660
|
+
return jsx(CardContent, {
|
|
661
|
+
className: "TimeSliderLite-animationSpeedOptions",
|
|
662
|
+
"data-testid": "TimeSliderLite-animationSpeedOptions",
|
|
669
663
|
sx: {
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
value: String(availableOptionKeys.includes(String(value)) ? value : availableOptionKeys[availableOptionKeys.length - 1]),
|
|
674
|
-
onChange: function onChange(event) {
|
|
675
|
-
var _event$target;
|
|
676
|
-
var newValue = Number(event == null || (_event$target = event.target) == null ? void 0 : _event$target.value);
|
|
677
|
-
setValue(newValue);
|
|
664
|
+
paddingTop: '12px',
|
|
665
|
+
marginBottom: '-8px',
|
|
666
|
+
minWidth: '200px'
|
|
678
667
|
},
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
668
|
+
children: jsx(Select, {
|
|
669
|
+
IconComponent: dropdownButtonIcon,
|
|
670
|
+
className: "TimeSliderLite-animationSpeedSelect",
|
|
671
|
+
"data-testid": "TimeSliderLite-animationSpeedSelect",
|
|
672
|
+
disabled: readOnly,
|
|
673
|
+
inputProps: {
|
|
674
|
+
'data-testid': 'TimeSliderLite-animationSpeedSelect-input'
|
|
675
|
+
},
|
|
676
|
+
onChange: function onChange(event) {
|
|
677
|
+
var _event$target;
|
|
678
|
+
var newValue = Number(event == null || (_event$target = event.target) == null ? void 0 : _event$target.value);
|
|
679
|
+
setAnimationSpeed == null || setAnimationSpeed(newValue);
|
|
680
|
+
},
|
|
681
|
+
sx: {
|
|
682
|
+
height: '40px'
|
|
683
|
+
},
|
|
684
|
+
value: String(animationSpeed),
|
|
685
|
+
children: speedOptions.map(function (option) {
|
|
686
|
+
var postfix = option === defaultSpeedFactor ? translatedSpeedOptionPostfix : speedOptionItemPostfix;
|
|
687
|
+
var label = speedOptionItemPrefix + option + postfix;
|
|
688
|
+
return jsx(MenuItem, {
|
|
689
|
+
value: String(option),
|
|
690
|
+
children: label
|
|
691
|
+
}, String(option));
|
|
692
|
+
})
|
|
685
693
|
})
|
|
686
|
-
})
|
|
694
|
+
});
|
|
687
695
|
};
|
|
688
696
|
|
|
689
697
|
var SubmenuSelectLabel = function SubmenuSelectLabel(_ref) {
|
|
@@ -699,150 +707,22 @@ var SubmenuSelectLabel = function SubmenuSelectLabel(_ref) {
|
|
|
699
707
|
});
|
|
700
708
|
};
|
|
701
709
|
|
|
702
|
-
var
|
|
703
|
-
var useTimeStep = _ref.useTimeStep,
|
|
704
|
-
_ref$defaultTimeStep = _ref.defaultTimeStep,
|
|
705
|
-
defaultTimeStep = _ref$defaultTimeStep === void 0 ? [5, 15] : _ref$defaultTimeStep,
|
|
706
|
-
timeStepOptions = _ref.timeStepOptions,
|
|
707
|
-
dropdownButtonIcon = _ref.dropdownButtonIcon;
|
|
708
|
-
var _useTimesliderLiteTra = useTimesliderLiteTranslation(),
|
|
709
|
-
t = _useTimesliderLiteTra.t;
|
|
710
|
-
var isReadOnly = useTimeStep === undefined;
|
|
711
|
-
var timeStep = useTimeStep == null ? void 0 : useTimeStep[0];
|
|
712
|
-
var setTimeStep = useTimeStep == null ? void 0 : useTimeStep[1];
|
|
713
|
-
var observedTimeStepProp = timeStep == null ? void 0 : timeStep[0];
|
|
714
|
-
var forecastTimeStepProp = timeStep == null ? void 0 : timeStep[1];
|
|
715
|
-
var isDefault = !useTimeStep || timeStep === null;
|
|
716
|
-
var defaultObservedTimeStep = defaultTimeStep[0];
|
|
717
|
-
var defaultForecastTimeStep = defaultTimeStep[1];
|
|
718
|
-
var _React$useState = React.useState(observedTimeStepProp != null ? observedTimeStepProp : defaultObservedTimeStep),
|
|
719
|
-
observedTimeStep = _React$useState[0],
|
|
720
|
-
setObservedTimeStep = _React$useState[1];
|
|
721
|
-
var _React$useState2 = React.useState(forecastTimeStepProp != null ? forecastTimeStepProp : defaultForecastTimeStep),
|
|
722
|
-
forecastTimeStep = _React$useState2[0],
|
|
723
|
-
setForecastTimeStep = _React$useState2[1];
|
|
724
|
-
useEffect(function () {
|
|
725
|
-
if (!isDefault && setTimeStep) {
|
|
726
|
-
setTimeStep([observedTimeStep, forecastTimeStep]);
|
|
727
|
-
}
|
|
728
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
729
|
-
}, [observedTimeStep, forecastTimeStep]);
|
|
730
|
-
var handleIsDefaultChange = function handleIsDefaultChange(event) {
|
|
731
|
-
if (event.target.value === 'default') {
|
|
732
|
-
setTimeStep && setTimeStep(null);
|
|
733
|
-
setObservedTimeStep(defaultTimeStep[0]);
|
|
734
|
-
setForecastTimeStep(defaultTimeStep[1]);
|
|
735
|
-
}
|
|
736
|
-
if (event.target.value === 'custom' && setTimeStep) {
|
|
737
|
-
setTimeStep(defaultTimeStep);
|
|
738
|
-
}
|
|
739
|
-
};
|
|
740
|
-
return jsxs(CardContent, {
|
|
741
|
-
"data-testid": "TimeSliderLite-timeStepOptions",
|
|
742
|
-
sx: {
|
|
743
|
-
paddingTop: '4px',
|
|
744
|
-
'& label': {
|
|
745
|
-
height: '36px'
|
|
746
|
-
},
|
|
747
|
-
'&:last-child': {
|
|
748
|
-
paddingBottom: '16px'
|
|
749
|
-
}
|
|
750
|
-
},
|
|
751
|
-
children: [jsxs(RadioGroup, {
|
|
752
|
-
defaultValue: isDefault ? 'default' : 'custom',
|
|
753
|
-
name: "time-range-radio-button-group",
|
|
754
|
-
row: true,
|
|
755
|
-
sx: {
|
|
756
|
-
marginTop: 1
|
|
757
|
-
},
|
|
758
|
-
value: isDefault ? 'default' : 'custom',
|
|
759
|
-
onChange: handleIsDefaultChange,
|
|
760
|
-
children: [jsx(FormControlLabel, {
|
|
761
|
-
disabled: isReadOnly,
|
|
762
|
-
value: "default",
|
|
763
|
-
control: jsx(Radio, {}),
|
|
764
|
-
label: t('common.default')
|
|
765
|
-
}), jsx(FormControlLabel, {
|
|
766
|
-
disabled: isReadOnly,
|
|
767
|
-
value: "custom",
|
|
768
|
-
control: jsx(Radio, {}),
|
|
769
|
-
label: t('common.custom')
|
|
770
|
-
})]
|
|
771
|
-
}), jsxs(Grid, {
|
|
772
|
-
container: true,
|
|
773
|
-
width: 250,
|
|
774
|
-
children: [jsx(Grid, {
|
|
775
|
-
size: {
|
|
776
|
-
xs: 4
|
|
777
|
-
},
|
|
778
|
-
sx: {
|
|
779
|
-
marginY: 1
|
|
780
|
-
},
|
|
781
|
-
children: jsx(SubmenuSelectLabel, {
|
|
782
|
-
isDisabled: isDefault,
|
|
783
|
-
children: t('common.observed')
|
|
784
|
-
})
|
|
785
|
-
}), jsx(Grid, {
|
|
786
|
-
size: {
|
|
787
|
-
xs: 8
|
|
788
|
-
},
|
|
789
|
-
paddingX: "4px",
|
|
790
|
-
sx: {
|
|
791
|
-
marginY: 1
|
|
792
|
-
},
|
|
793
|
-
children: jsx(TimeStepSelector, {
|
|
794
|
-
disabled: isDefault,
|
|
795
|
-
value: observedTimeStep,
|
|
796
|
-
setValue: setObservedTimeStep,
|
|
797
|
-
defaultTimeStep: defaultTimeStep[0],
|
|
798
|
-
dropdownButtonIcon: dropdownButtonIcon,
|
|
799
|
-
timeStepOptions: timeStepOptions
|
|
800
|
-
})
|
|
801
|
-
}), jsx(Grid, {
|
|
802
|
-
size: {
|
|
803
|
-
xs: 4
|
|
804
|
-
},
|
|
805
|
-
children: jsx(SubmenuSelectLabel, {
|
|
806
|
-
isDisabled: isDefault,
|
|
807
|
-
children: t('common.forecast')
|
|
808
|
-
})
|
|
809
|
-
}), jsx(Grid, {
|
|
810
|
-
size: {
|
|
811
|
-
xs: 8
|
|
812
|
-
},
|
|
813
|
-
paddingX: "4px",
|
|
814
|
-
children: jsx(TimeStepSelector, {
|
|
815
|
-
disabled: isDefault,
|
|
816
|
-
value: forecastTimeStep,
|
|
817
|
-
setValue: setForecastTimeStep,
|
|
818
|
-
defaultTimeStep: defaultTimeStep[1],
|
|
819
|
-
dropdownButtonIcon: dropdownButtonIcon,
|
|
820
|
-
timeStepOptions: timeStepOptions
|
|
821
|
-
})
|
|
822
|
-
})]
|
|
823
|
-
})]
|
|
824
|
-
});
|
|
825
|
-
};
|
|
826
|
-
|
|
827
|
-
var _excluded$2 = ["amountOfOptions", "dropdownButtonIcon", "itemPostFix", "value", "setValue"];
|
|
710
|
+
var _excluded$3 = ["amountOfOptions", "dropdownButtonIcon", "itemPostFix", "value", "setValue"];
|
|
828
711
|
var CustomSelect = function CustomSelect(_ref) {
|
|
829
712
|
var amountOfOptions = _ref.amountOfOptions,
|
|
830
713
|
dropdownButtonIcon = _ref.dropdownButtonIcon,
|
|
831
714
|
itemPostFix = _ref.itemPostFix,
|
|
832
715
|
value = _ref.value,
|
|
833
716
|
setValue = _ref.setValue,
|
|
834
|
-
props = _objectWithoutPropertiesLoose(_ref, _excluded$
|
|
717
|
+
props = _objectWithoutPropertiesLoose(_ref, _excluded$3);
|
|
835
718
|
var availableOptions = Array.from(Array(amountOfOptions).keys());
|
|
836
719
|
return jsx(Select, Object.assign({}, props, {
|
|
720
|
+
IconComponent: dropdownButtonIcon,
|
|
721
|
+
autoWidth: false,
|
|
837
722
|
"data-testid": "TimeSliderLite-customSelect-" + itemPostFix,
|
|
838
723
|
inputProps: {
|
|
839
724
|
'data-testid': "TimeSliderLite-customSelect-" + itemPostFix + "-input"
|
|
840
725
|
},
|
|
841
|
-
sx: {
|
|
842
|
-
height: '40px',
|
|
843
|
-
width: '100%'
|
|
844
|
-
},
|
|
845
|
-
value: String(availableOptions.includes(value) ? value : availableOptions[availableOptions.length - 1]),
|
|
846
726
|
onChange: function onChange(event) {
|
|
847
727
|
var _event$target;
|
|
848
728
|
var newValue = Number(event == null || (_event$target = event.target) == null ? void 0 : _event$target.value);
|
|
@@ -850,8 +730,11 @@ var CustomSelect = function CustomSelect(_ref) {
|
|
|
850
730
|
setValue(newValue);
|
|
851
731
|
}
|
|
852
732
|
},
|
|
853
|
-
|
|
854
|
-
|
|
733
|
+
sx: {
|
|
734
|
+
height: '40px',
|
|
735
|
+
width: '100%'
|
|
736
|
+
},
|
|
737
|
+
value: String(availableOptions.includes(value) ? value : availableOptions[availableOptions.length - 1]),
|
|
855
738
|
children: availableOptions.map(function (option) {
|
|
856
739
|
return jsxs(MenuItem, {
|
|
857
740
|
value: String(option),
|
|
@@ -889,30 +772,30 @@ var DayHourSelector = function DayHourSelector(_ref2) {
|
|
|
889
772
|
children: label
|
|
890
773
|
})
|
|
891
774
|
}), jsx(Grid, {
|
|
775
|
+
paddingX: "4px",
|
|
892
776
|
size: {
|
|
893
777
|
xs: 4.5
|
|
894
778
|
},
|
|
895
|
-
paddingX: "4px",
|
|
896
779
|
children: jsx(CustomSelect, {
|
|
780
|
+
amountOfOptions: amountOfDayOptions,
|
|
897
781
|
disabled: isDisabled || amountOfDayOptions === 1,
|
|
898
|
-
|
|
899
|
-
setValue: setDays,
|
|
782
|
+
dropdownButtonIcon: dropdownButtonIcon,
|
|
900
783
|
itemPostFix: t('units.days'),
|
|
901
|
-
|
|
902
|
-
|
|
784
|
+
setValue: setDays,
|
|
785
|
+
value: days
|
|
903
786
|
})
|
|
904
787
|
}), jsx(Grid, {
|
|
788
|
+
paddingLeft: "4px",
|
|
905
789
|
size: {
|
|
906
790
|
xs: 4.5
|
|
907
791
|
},
|
|
908
|
-
paddingLeft: "4px",
|
|
909
792
|
children: jsx(CustomSelect, {
|
|
793
|
+
amountOfOptions: amountOfHourOptions,
|
|
910
794
|
disabled: isDisabled || amountOfHourOptions === 1,
|
|
911
|
-
|
|
912
|
-
setValue: setHours,
|
|
795
|
+
dropdownButtonIcon: dropdownButtonIcon,
|
|
913
796
|
itemPostFix: t('units.hours'),
|
|
914
|
-
|
|
915
|
-
|
|
797
|
+
setValue: setHours,
|
|
798
|
+
value: hours
|
|
916
799
|
})
|
|
917
800
|
})]
|
|
918
801
|
});
|
|
@@ -928,7 +811,7 @@ var TimeRangeOptions = function TimeRangeOptions(_ref) {
|
|
|
928
811
|
var _useTimesliderLiteTra = useTimesliderLiteTranslation(),
|
|
929
812
|
t = _useTimesliderLiteTra.t;
|
|
930
813
|
var isReadOnly = useTimeRange === undefined;
|
|
931
|
-
var isDefault =
|
|
814
|
+
var isDefault = (useTimeRange == null ? void 0 : useTimeRange[0]) === null;
|
|
932
815
|
var handleIsDefaultChange = function handleIsDefaultChange(event) {
|
|
933
816
|
if (event.target.value === 'default' && useTimeRange != null && useTimeRange[1]) {
|
|
934
817
|
useTimeRange[1](null);
|
|
@@ -1002,28 +885,28 @@ var TimeRangeOptions = function TimeRangeOptions(_ref) {
|
|
|
1002
885
|
children: [t('menu.timeRange.description'), jsxs(RadioGroup, {
|
|
1003
886
|
defaultValue: isDefault ? 'default' : 'custom',
|
|
1004
887
|
name: "time-range-radio-button-group",
|
|
888
|
+
onChange: handleIsDefaultChange,
|
|
1005
889
|
row: true,
|
|
1006
890
|
sx: {
|
|
1007
891
|
marginTop: 1
|
|
1008
892
|
},
|
|
1009
893
|
value: isDefault ? 'default' : 'custom',
|
|
1010
|
-
onChange: handleIsDefaultChange,
|
|
1011
894
|
children: [jsx(FormControlLabel, {
|
|
1012
|
-
disabled: isReadOnly,
|
|
1013
|
-
value: "default",
|
|
1014
895
|
control: jsx(Radio, {}),
|
|
1015
|
-
label: t('common.default')
|
|
1016
|
-
}), jsx(FormControlLabel, {
|
|
1017
896
|
disabled: isReadOnly,
|
|
1018
|
-
|
|
897
|
+
label: t('common.default'),
|
|
898
|
+
value: "default"
|
|
899
|
+
}), jsx(FormControlLabel, {
|
|
1019
900
|
control: jsx(Radio, {}),
|
|
1020
|
-
|
|
901
|
+
disabled: isReadOnly,
|
|
902
|
+
label: t('common.custom'),
|
|
903
|
+
value: "custom"
|
|
1021
904
|
})]
|
|
1022
905
|
}), jsxs(Box, {
|
|
1023
906
|
minWidth: TIME_SELECTOR_MIN_WIDTH,
|
|
1024
907
|
children: [jsx(DayHourSelector, {
|
|
1025
|
-
isDisabled: isDefault,
|
|
1026
908
|
dropdownButtonIcon: dropdownButtonIcon,
|
|
909
|
+
isDisabled: isDefault,
|
|
1027
910
|
label: t('common.observed'),
|
|
1028
911
|
maxHours: maxObservedHours,
|
|
1029
912
|
sx: {
|
|
@@ -1032,8 +915,8 @@ var TimeRangeOptions = function TimeRangeOptions(_ref) {
|
|
|
1032
915
|
useDays: [observedDays, setObservedDays],
|
|
1033
916
|
useHours: [observedHours, setObservedHours]
|
|
1034
917
|
}), jsx(DayHourSelector, {
|
|
1035
|
-
isDisabled: isDefault,
|
|
1036
918
|
dropdownButtonIcon: dropdownButtonIcon,
|
|
919
|
+
isDisabled: isDefault,
|
|
1037
920
|
label: t('common.forecast'),
|
|
1038
921
|
maxHours: maxForecastHours,
|
|
1039
922
|
useDays: [forecastDays, setForecastDays],
|
|
@@ -1043,122 +926,178 @@ var TimeRangeOptions = function TimeRangeOptions(_ref) {
|
|
|
1043
926
|
});
|
|
1044
927
|
};
|
|
1045
928
|
|
|
1046
|
-
var
|
|
1047
|
-
|
|
929
|
+
var _excluded$2 = ["dropdownButtonIcon", "value", "setValue", "defaultTimeStep", "timeStepOptions"];
|
|
930
|
+
var TimeStepSelector = function TimeStepSelector(_ref) {
|
|
1048
931
|
var dropdownButtonIcon = _ref.dropdownButtonIcon,
|
|
1049
|
-
|
|
1050
|
-
|
|
1051
|
-
|
|
1052
|
-
|
|
1053
|
-
|
|
1054
|
-
speedOptionItemPrefix = _ref$speedOptionItemP === void 0 ? 'x ' : _ref$speedOptionItemP,
|
|
1055
|
-
_ref$speedOptionItemP2 = _ref.speedOptionItemPostfix,
|
|
1056
|
-
speedOptionItemPostfix = _ref$speedOptionItemP2 === void 0 ? '' : _ref$speedOptionItemP2,
|
|
1057
|
-
defaultSpeedOptionPostfix = _ref.defaultSpeedOptionPostfix,
|
|
1058
|
-
_ref$defaultSpeedFact = _ref.defaultSpeedFactor,
|
|
1059
|
-
defaultSpeedFactor = _ref$defaultSpeedFact === void 0 ? speedFactors[2] : _ref$defaultSpeedFact,
|
|
1060
|
-
useAnimationSpeed = _ref.useAnimationSpeed;
|
|
932
|
+
value = _ref.value,
|
|
933
|
+
setValue = _ref.setValue,
|
|
934
|
+
defaultTimeStep = _ref.defaultTimeStep,
|
|
935
|
+
timeStepOptions = _ref.timeStepOptions,
|
|
936
|
+
props = _objectWithoutPropertiesLoose(_ref, _excluded$2);
|
|
1061
937
|
var _useTimesliderLiteTra = useTimesliderLiteTranslation(),
|
|
1062
938
|
t = _useTimesliderLiteTra.t;
|
|
1063
|
-
var
|
|
1064
|
-
|
|
1065
|
-
|
|
1066
|
-
|
|
1067
|
-
|
|
1068
|
-
|
|
1069
|
-
|
|
939
|
+
var defaultTimeStepOptions = {
|
|
940
|
+
5: "5 " + t('units.minutes'),
|
|
941
|
+
15: "15 " + t('units.minutes'),
|
|
942
|
+
30: "30 " + t('units.minutes'),
|
|
943
|
+
60: "1 " + t('units.hours'),
|
|
944
|
+
180: "3 " + t('units.hours'),
|
|
945
|
+
360: "6 " + t('units.hours'),
|
|
946
|
+
720: "12 " + t('units.hours')
|
|
947
|
+
};
|
|
948
|
+
var options = timeStepOptions != null ? timeStepOptions : defaultTimeStepOptions;
|
|
949
|
+
var allOptionsKeys = Object.keys(options);
|
|
950
|
+
var availableOptionKeys = allOptionsKeys.filter(function (option) {
|
|
951
|
+
return Number(option) >= defaultTimeStep;
|
|
952
|
+
});
|
|
953
|
+
return jsx(Select, Object.assign({}, props, {
|
|
954
|
+
IconComponent: dropdownButtonIcon,
|
|
955
|
+
className: "TimeSliderLite-timeStepSelect",
|
|
956
|
+
"data-testid": "TimeSliderLite-timeStepSelect",
|
|
957
|
+
inputProps: {
|
|
958
|
+
'data-testid': 'TimeSliderLite-timeStepSelect-input'
|
|
959
|
+
},
|
|
960
|
+
onChange: function onChange(event) {
|
|
961
|
+
var _event$target;
|
|
962
|
+
var newValue = Number(event == null || (_event$target = event.target) == null ? void 0 : _event$target.value);
|
|
963
|
+
setValue(newValue);
|
|
964
|
+
},
|
|
1070
965
|
sx: {
|
|
1071
|
-
|
|
1072
|
-
|
|
1073
|
-
minWidth: '200px'
|
|
966
|
+
height: '40px',
|
|
967
|
+
width: '100%'
|
|
1074
968
|
},
|
|
1075
|
-
|
|
1076
|
-
|
|
1077
|
-
|
|
1078
|
-
|
|
1079
|
-
|
|
1080
|
-
|
|
1081
|
-
},
|
|
1082
|
-
sx: {
|
|
1083
|
-
height: '40px'
|
|
1084
|
-
},
|
|
1085
|
-
value: String(animationSpeed),
|
|
1086
|
-
onChange: function onChange(event) {
|
|
1087
|
-
var _event$target;
|
|
1088
|
-
var newValue = Number(event == null || (_event$target = event.target) == null ? void 0 : _event$target.value);
|
|
1089
|
-
setAnimationSpeed && setAnimationSpeed(newValue);
|
|
1090
|
-
},
|
|
1091
|
-
IconComponent: dropdownButtonIcon,
|
|
1092
|
-
children: speedOptions.map(function (option) {
|
|
1093
|
-
var postfix = option === defaultSpeedFactor ? translatedSpeedOptionPostfix : speedOptionItemPostfix;
|
|
1094
|
-
var label = speedOptionItemPrefix + option + postfix;
|
|
1095
|
-
return jsx(MenuItem, {
|
|
1096
|
-
value: String(option),
|
|
1097
|
-
children: label
|
|
1098
|
-
}, String(option));
|
|
1099
|
-
})
|
|
969
|
+
value: String(availableOptionKeys.includes(String(value)) ? value : availableOptionKeys[availableOptionKeys.length - 1]),
|
|
970
|
+
children: availableOptionKeys.map(function (option) {
|
|
971
|
+
return jsx(MenuItem, {
|
|
972
|
+
value: String(option),
|
|
973
|
+
children: options[option]
|
|
974
|
+
}, String(option));
|
|
1100
975
|
})
|
|
1101
|
-
});
|
|
976
|
+
}));
|
|
1102
977
|
};
|
|
1103
978
|
|
|
1104
|
-
var
|
|
1105
|
-
var
|
|
1106
|
-
|
|
1107
|
-
|
|
1108
|
-
|
|
1109
|
-
dropdownButtonIcon = _ref.dropdownButtonIcon
|
|
1110
|
-
_ref$intervalOptionPr = _ref.intervalOptionPrefix,
|
|
1111
|
-
intervalOptionPrefix = _ref$intervalOptionPr === void 0 ? '' : _ref$intervalOptionPr,
|
|
1112
|
-
intervalOptionPostfix = _ref.intervalOptionPostfix,
|
|
1113
|
-
defaultOptionPostfix = _ref.defaultOptionPostfix,
|
|
1114
|
-
_ref$updateIntervalOp = _ref.updateIntervalOptions,
|
|
1115
|
-
updateIntervalOptions = _ref$updateIntervalOp === void 0 ? defaultUpdateIntervalOptions.sort(function (optionA, optionB) {
|
|
1116
|
-
return optionA - optionB;
|
|
1117
|
-
}) : _ref$updateIntervalOp,
|
|
1118
|
-
useUpdateInterval = _ref.useUpdateInterval;
|
|
979
|
+
var TimeStepOptions = function TimeStepOptions(_ref) {
|
|
980
|
+
var useTimeStep = _ref.useTimeStep,
|
|
981
|
+
_ref$defaultTimeStep = _ref.defaultTimeStep,
|
|
982
|
+
defaultTimeStep = _ref$defaultTimeStep === void 0 ? [5, 15] : _ref$defaultTimeStep,
|
|
983
|
+
timeStepOptions = _ref.timeStepOptions,
|
|
984
|
+
dropdownButtonIcon = _ref.dropdownButtonIcon;
|
|
1119
985
|
var _useTimesliderLiteTra = useTimesliderLiteTranslation(),
|
|
1120
986
|
t = _useTimesliderLiteTra.t;
|
|
1121
|
-
var
|
|
1122
|
-
var
|
|
1123
|
-
var
|
|
1124
|
-
var
|
|
1125
|
-
var
|
|
1126
|
-
var
|
|
1127
|
-
|
|
1128
|
-
|
|
1129
|
-
|
|
1130
|
-
|
|
1131
|
-
|
|
987
|
+
var isReadOnly = useTimeStep === undefined;
|
|
988
|
+
var timeStep = useTimeStep == null ? void 0 : useTimeStep[0];
|
|
989
|
+
var setTimeStep = useTimeStep == null ? void 0 : useTimeStep[1];
|
|
990
|
+
var observedTimeStepProp = timeStep == null ? void 0 : timeStep[0];
|
|
991
|
+
var forecastTimeStepProp = timeStep == null ? void 0 : timeStep[1];
|
|
992
|
+
var isDefault = !useTimeStep || timeStep === null;
|
|
993
|
+
var defaultObservedTimeStep = defaultTimeStep[0];
|
|
994
|
+
var defaultForecastTimeStep = defaultTimeStep[1];
|
|
995
|
+
var _React$useState = React.useState(observedTimeStepProp != null ? observedTimeStepProp : defaultObservedTimeStep),
|
|
996
|
+
observedTimeStep = _React$useState[0],
|
|
997
|
+
setObservedTimeStep = _React$useState[1];
|
|
998
|
+
var _React$useState2 = React.useState(forecastTimeStepProp != null ? forecastTimeStepProp : defaultForecastTimeStep),
|
|
999
|
+
forecastTimeStep = _React$useState2[0],
|
|
1000
|
+
setForecastTimeStep = _React$useState2[1];
|
|
1001
|
+
useEffect(function () {
|
|
1002
|
+
if (!isDefault && setTimeStep) {
|
|
1003
|
+
setTimeStep([observedTimeStep, forecastTimeStep]);
|
|
1004
|
+
}
|
|
1005
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
1006
|
+
}, [observedTimeStep, forecastTimeStep]);
|
|
1007
|
+
var handleIsDefaultChange = function handleIsDefaultChange(event) {
|
|
1008
|
+
if (event.target.value === 'default') {
|
|
1009
|
+
setTimeStep == null || setTimeStep(null);
|
|
1010
|
+
setObservedTimeStep(defaultTimeStep[0]);
|
|
1011
|
+
setForecastTimeStep(defaultTimeStep[1]);
|
|
1012
|
+
}
|
|
1013
|
+
if (event.target.value === 'custom' && setTimeStep) {
|
|
1014
|
+
setTimeStep(defaultTimeStep);
|
|
1015
|
+
}
|
|
1016
|
+
};
|
|
1017
|
+
return jsxs(CardContent, {
|
|
1018
|
+
"data-testid": "TimeSliderLite-timeStepOptions",
|
|
1132
1019
|
sx: {
|
|
1133
|
-
paddingTop: '
|
|
1134
|
-
|
|
1135
|
-
|
|
1136
|
-
},
|
|
1137
|
-
children: jsx(Select, {
|
|
1138
|
-
disabled: readOnly,
|
|
1139
|
-
className: "TimeSliderLite-updateIntervalSelect",
|
|
1140
|
-
"data-testid": "TimeSliderLite-updateIntervalSelect",
|
|
1141
|
-
inputProps: {
|
|
1142
|
-
'data-testid': 'TimeSliderLite-updateIntervalSelect-input'
|
|
1020
|
+
paddingTop: '4px',
|
|
1021
|
+
'& label': {
|
|
1022
|
+
height: '36px'
|
|
1143
1023
|
},
|
|
1024
|
+
'&:last-child': {
|
|
1025
|
+
paddingBottom: '16px'
|
|
1026
|
+
}
|
|
1027
|
+
},
|
|
1028
|
+
children: [jsxs(RadioGroup, {
|
|
1029
|
+
defaultValue: isDefault ? 'default' : 'custom',
|
|
1030
|
+
name: "time-range-radio-button-group",
|
|
1031
|
+
onChange: handleIsDefaultChange,
|
|
1032
|
+
row: true,
|
|
1144
1033
|
sx: {
|
|
1145
|
-
|
|
1146
|
-
},
|
|
1147
|
-
value: String(updateInterval != null ? updateInterval : defaultValue),
|
|
1148
|
-
onChange: function onChange(event) {
|
|
1149
|
-
var _event$target;
|
|
1150
|
-
var newValue = Number(event == null || (_event$target = event.target) == null ? void 0 : _event$target.value);
|
|
1151
|
-
setUpdateInterval && setUpdateInterval(newValue === defaultValue ? null : newValue);
|
|
1034
|
+
marginTop: 1
|
|
1152
1035
|
},
|
|
1153
|
-
|
|
1154
|
-
children:
|
|
1155
|
-
|
|
1156
|
-
|
|
1157
|
-
|
|
1158
|
-
|
|
1159
|
-
|
|
1160
|
-
|
|
1161
|
-
|
|
1036
|
+
value: isDefault ? 'default' : 'custom',
|
|
1037
|
+
children: [jsx(FormControlLabel, {
|
|
1038
|
+
control: jsx(Radio, {}),
|
|
1039
|
+
disabled: isReadOnly,
|
|
1040
|
+
label: t('common.default'),
|
|
1041
|
+
value: "default"
|
|
1042
|
+
}), jsx(FormControlLabel, {
|
|
1043
|
+
control: jsx(Radio, {}),
|
|
1044
|
+
disabled: isReadOnly,
|
|
1045
|
+
label: t('common.custom'),
|
|
1046
|
+
value: "custom"
|
|
1047
|
+
})]
|
|
1048
|
+
}), jsxs(Grid, {
|
|
1049
|
+
container: true,
|
|
1050
|
+
width: 250,
|
|
1051
|
+
children: [jsx(Grid, {
|
|
1052
|
+
size: {
|
|
1053
|
+
xs: 4
|
|
1054
|
+
},
|
|
1055
|
+
sx: {
|
|
1056
|
+
marginY: 1
|
|
1057
|
+
},
|
|
1058
|
+
children: jsx(SubmenuSelectLabel, {
|
|
1059
|
+
isDisabled: isDefault,
|
|
1060
|
+
children: t('common.observed')
|
|
1061
|
+
})
|
|
1062
|
+
}), jsx(Grid, {
|
|
1063
|
+
paddingX: "4px",
|
|
1064
|
+
size: {
|
|
1065
|
+
xs: 8
|
|
1066
|
+
},
|
|
1067
|
+
sx: {
|
|
1068
|
+
marginY: 1
|
|
1069
|
+
},
|
|
1070
|
+
children: jsx(TimeStepSelector, {
|
|
1071
|
+
defaultTimeStep: defaultTimeStep[0],
|
|
1072
|
+
disabled: isDefault,
|
|
1073
|
+
dropdownButtonIcon: dropdownButtonIcon,
|
|
1074
|
+
setValue: setObservedTimeStep,
|
|
1075
|
+
timeStepOptions: timeStepOptions,
|
|
1076
|
+
value: observedTimeStep
|
|
1077
|
+
})
|
|
1078
|
+
}), jsx(Grid, {
|
|
1079
|
+
size: {
|
|
1080
|
+
xs: 4
|
|
1081
|
+
},
|
|
1082
|
+
children: jsx(SubmenuSelectLabel, {
|
|
1083
|
+
isDisabled: isDefault,
|
|
1084
|
+
children: t('common.forecast')
|
|
1085
|
+
})
|
|
1086
|
+
}), jsx(Grid, {
|
|
1087
|
+
paddingX: "4px",
|
|
1088
|
+
size: {
|
|
1089
|
+
xs: 8
|
|
1090
|
+
},
|
|
1091
|
+
children: jsx(TimeStepSelector, {
|
|
1092
|
+
defaultTimeStep: defaultTimeStep[1],
|
|
1093
|
+
disabled: isDefault,
|
|
1094
|
+
dropdownButtonIcon: dropdownButtonIcon,
|
|
1095
|
+
setValue: setForecastTimeStep,
|
|
1096
|
+
timeStepOptions: timeStepOptions,
|
|
1097
|
+
value: forecastTimeStep
|
|
1098
|
+
})
|
|
1099
|
+
})]
|
|
1100
|
+
})]
|
|
1162
1101
|
});
|
|
1163
1102
|
};
|
|
1164
1103
|
|
|
@@ -1188,22 +1127,83 @@ var TimeZoneSwitch = function TimeZoneSwitch(_ref) {
|
|
|
1188
1127
|
var _useTimesliderLiteTra = useTimesliderLiteTranslation(),
|
|
1189
1128
|
t = _useTimesliderLiteTra.t;
|
|
1190
1129
|
return jsx(ToggleButtonGroup, {
|
|
1191
|
-
disabled: !setTimeZone,
|
|
1192
1130
|
className: "TimeSliderLite-timeZoneSwitch",
|
|
1193
1131
|
"data-testid": "TimeSliderLite-timeZoneSwitch",
|
|
1194
|
-
|
|
1132
|
+
disabled: !setTimeZone,
|
|
1195
1133
|
exclusive: true,
|
|
1196
|
-
sx: styles$3.root,
|
|
1197
1134
|
onChange: function onChange(_event, newZone) {
|
|
1198
1135
|
if (newZone && setTimeZone) {
|
|
1199
1136
|
setTimeZone(newZone);
|
|
1200
1137
|
}
|
|
1201
1138
|
},
|
|
1202
|
-
|
|
1203
|
-
|
|
1204
|
-
|
|
1205
|
-
|
|
1206
|
-
|
|
1139
|
+
sx: styles$3.root,
|
|
1140
|
+
value: timeZone != null ? timeZone : 'LT',
|
|
1141
|
+
children: availableTimeZones.map(function (zone) {
|
|
1142
|
+
return jsx(ToggleButton, {
|
|
1143
|
+
value: zone,
|
|
1144
|
+
children: t("menu." + zone)
|
|
1145
|
+
}, zone);
|
|
1146
|
+
})
|
|
1147
|
+
});
|
|
1148
|
+
};
|
|
1149
|
+
|
|
1150
|
+
var defaultUpdateIntervalOptions = [1, 2, 5, 10, 15, 30, 60];
|
|
1151
|
+
var UpdateIntervalOptions = function UpdateIntervalOptions(_ref) {
|
|
1152
|
+
var _useUpdateInterval$, _updateIntervalOption;
|
|
1153
|
+
var _ref$defaultUpdateInt = _ref.defaultUpdateInterval,
|
|
1154
|
+
defaultUpdateInterval = _ref$defaultUpdateInt === void 0 ? 1 : _ref$defaultUpdateInt,
|
|
1155
|
+
dropdownButtonIcon = _ref.dropdownButtonIcon,
|
|
1156
|
+
_ref$intervalOptionPr = _ref.intervalOptionPrefix,
|
|
1157
|
+
intervalOptionPrefix = _ref$intervalOptionPr === void 0 ? '' : _ref$intervalOptionPr,
|
|
1158
|
+
intervalOptionPostfix = _ref.intervalOptionPostfix,
|
|
1159
|
+
defaultOptionPostfix = _ref.defaultOptionPostfix,
|
|
1160
|
+
_ref$updateIntervalOp = _ref.updateIntervalOptions,
|
|
1161
|
+
updateIntervalOptions = _ref$updateIntervalOp === void 0 ? defaultUpdateIntervalOptions.sort(function (optionA, optionB) {
|
|
1162
|
+
return optionA - optionB;
|
|
1163
|
+
}) : _ref$updateIntervalOp,
|
|
1164
|
+
useUpdateInterval = _ref.useUpdateInterval;
|
|
1165
|
+
var _useTimesliderLiteTra = useTimesliderLiteTranslation(),
|
|
1166
|
+
t = _useTimesliderLiteTra.t;
|
|
1167
|
+
var translatedIntervalOptionPostfix = intervalOptionPostfix != null ? intervalOptionPostfix : " " + t('units.minutes');
|
|
1168
|
+
var translatedDefaultOptionPostfix = defaultOptionPostfix != null ? defaultOptionPostfix : " " + t('units.minutes') + " (" + t('common.default').toLowerCase() + ")";
|
|
1169
|
+
var updateInterval = (_useUpdateInterval$ = useUpdateInterval == null ? void 0 : useUpdateInterval[0]) != null ? _useUpdateInterval$ : defaultUpdateInterval;
|
|
1170
|
+
var setUpdateInterval = useUpdateInterval == null ? void 0 : useUpdateInterval[1];
|
|
1171
|
+
var readOnly = !setUpdateInterval || updateIntervalOptions.length < 2;
|
|
1172
|
+
var defaultValue = (_updateIntervalOption = updateIntervalOptions.find(function (option) {
|
|
1173
|
+
return option === defaultUpdateInterval;
|
|
1174
|
+
})) != null ? _updateIntervalOption : Math.min.apply(Math, updateIntervalOptions);
|
|
1175
|
+
return jsx(CardContent, {
|
|
1176
|
+
className: "TimeSliderLite-updateIntervalOptions",
|
|
1177
|
+
"data-testid": "TimeSliderLite-updateIntervalOptions",
|
|
1178
|
+
sx: {
|
|
1179
|
+
paddingTop: '12px',
|
|
1180
|
+
marginBottom: '-8px',
|
|
1181
|
+
minWidth: '200px'
|
|
1182
|
+
},
|
|
1183
|
+
children: jsx(Select, {
|
|
1184
|
+
IconComponent: dropdownButtonIcon,
|
|
1185
|
+
className: "TimeSliderLite-updateIntervalSelect",
|
|
1186
|
+
"data-testid": "TimeSliderLite-updateIntervalSelect",
|
|
1187
|
+
disabled: readOnly,
|
|
1188
|
+
inputProps: {
|
|
1189
|
+
'data-testid': 'TimeSliderLite-updateIntervalSelect-input'
|
|
1190
|
+
},
|
|
1191
|
+
onChange: function onChange(event) {
|
|
1192
|
+
var _event$target;
|
|
1193
|
+
var newValue = Number(event == null || (_event$target = event.target) == null ? void 0 : _event$target.value);
|
|
1194
|
+
setUpdateInterval == null || setUpdateInterval(newValue === defaultValue ? null : newValue);
|
|
1195
|
+
},
|
|
1196
|
+
sx: {
|
|
1197
|
+
height: '40px'
|
|
1198
|
+
},
|
|
1199
|
+
value: String(updateInterval != null ? updateInterval : defaultValue),
|
|
1200
|
+
children: updateIntervalOptions.map(function (option) {
|
|
1201
|
+
var label = option === defaultValue ? "" + intervalOptionPrefix + option + translatedDefaultOptionPostfix : "" + intervalOptionPrefix + option + translatedIntervalOptionPostfix;
|
|
1202
|
+
return jsx(MenuItem, {
|
|
1203
|
+
value: String(option),
|
|
1204
|
+
children: label
|
|
1205
|
+
}, String(option));
|
|
1206
|
+
})
|
|
1207
1207
|
})
|
|
1208
1208
|
});
|
|
1209
1209
|
};
|
|
@@ -1266,31 +1266,31 @@ var TimeSliderLiteOptionsMenu = function TimeSliderLiteOptionsMenu(_ref) {
|
|
|
1266
1266
|
submenuLeft = _React$useState2[0],
|
|
1267
1267
|
setSubmenuLeft = _React$useState2[1];
|
|
1268
1268
|
return jsxs(Fragment, {
|
|
1269
|
-
children: [submenu && jsxs(SubmenuWrapper, {
|
|
1269
|
+
children: [!!submenu && jsxs(SubmenuWrapper, {
|
|
1270
|
+
closeButtonIcon: closeButtonIcon,
|
|
1271
|
+
setSubmenu: setSubmenu,
|
|
1270
1272
|
sx: Object.assign({
|
|
1271
1273
|
left: submenuLeft,
|
|
1272
1274
|
marginLeft: '-12px'
|
|
1273
|
-
}, subMenuSx),
|
|
1274
|
-
setSubmenu: setSubmenu,
|
|
1275
|
+
}, Array.isArray(subMenuSx) ? Object.assign.apply(Object, [{}].concat(subMenuSx)) : subMenuSx),
|
|
1275
1276
|
title: t(submenu + ".title"),
|
|
1276
|
-
closeButtonIcon: closeButtonIcon,
|
|
1277
1277
|
children: [submenu === SubmenuTitleTranslations.TIME_RANGE && jsx(TimeRangeOptions, {
|
|
1278
1278
|
currentTime: currentTime,
|
|
1279
|
-
useTimeRange: useTimeRange,
|
|
1280
1279
|
defaultTimeRange: defaultTimeRange,
|
|
1281
|
-
dropdownButtonIcon: dropdownButtonIcon
|
|
1280
|
+
dropdownButtonIcon: dropdownButtonIcon,
|
|
1281
|
+
useTimeRange: useTimeRange
|
|
1282
1282
|
}), submenu === SubmenuTitleTranslations.TIME_STEP && jsx(TimeStepOptions, {
|
|
1283
1283
|
defaultTimeStep: defaultTimeStep,
|
|
1284
|
-
useTimeStep: useTimeStep,
|
|
1285
1284
|
dropdownButtonIcon: dropdownButtonIcon,
|
|
1286
|
-
timeStepOptions: timeStepOptions
|
|
1285
|
+
timeStepOptions: timeStepOptions,
|
|
1286
|
+
useTimeStep: useTimeStep
|
|
1287
1287
|
}), submenu === SubmenuTitleTranslations.SPEED && jsx(AnimationSpeedOptions, {
|
|
1288
|
-
|
|
1288
|
+
defaultSpeedFactor: defaultSpeedFactor,
|
|
1289
1289
|
dropdownButtonIcon: dropdownButtonIcon,
|
|
1290
1290
|
speedOptionItemPostfix: speedOptionItemPostfix,
|
|
1291
1291
|
speedOptionItemPrefix: speedOptionItemPrefix,
|
|
1292
1292
|
speedOptions: speedOptions,
|
|
1293
|
-
|
|
1293
|
+
useAnimationSpeed: useAnimationSpeed
|
|
1294
1294
|
}), submenu === SubmenuTitleTranslations.UPDATE_INTERVAL && jsx(UpdateIntervalOptions, {
|
|
1295
1295
|
defaultUpdateInterval: defaultUpdateInterval,
|
|
1296
1296
|
dropdownButtonIcon: dropdownButtonIcon,
|
|
@@ -1305,119 +1305,221 @@ var TimeSliderLiteOptionsMenu = function TimeSliderLiteOptionsMenu(_ref) {
|
|
|
1305
1305
|
flexDirection: 'row',
|
|
1306
1306
|
marginY: 1,
|
|
1307
1307
|
visibility: menuOpen ? 'visible' : 'hidden'
|
|
1308
|
-
}, sx),
|
|
1308
|
+
}, Array.isArray(sx) ? Object.assign.apply(Object, [{}].concat(sx)) : sx),
|
|
1309
1309
|
children: [jsx(ToggleButtonGroup, {
|
|
1310
1310
|
"data-testid": "TimeSliderLite-optionsMenu",
|
|
1311
|
-
value: submenu,
|
|
1312
1311
|
exclusive: true,
|
|
1313
|
-
sx: {
|
|
1314
|
-
padding: 0.5,
|
|
1315
|
-
gap: 0.5
|
|
1316
|
-
},
|
|
1317
1312
|
onChange: function onChange(event, newOption) {
|
|
1318
1313
|
setSubmenu(newOption);
|
|
1319
1314
|
var button = event.currentTarget;
|
|
1320
1315
|
var buttonPosition = button.getBoundingClientRect();
|
|
1321
1316
|
setSubmenuLeft(buttonPosition.x);
|
|
1322
1317
|
},
|
|
1318
|
+
sx: {
|
|
1319
|
+
padding: 0.5,
|
|
1320
|
+
gap: 0.5
|
|
1321
|
+
},
|
|
1322
|
+
value: submenu,
|
|
1323
1323
|
children: Object.values(SubmenuTitleTranslations).map(function (value) {
|
|
1324
1324
|
return jsx(ToggleButton, {
|
|
1325
|
-
value: value,
|
|
1326
1325
|
sx: styles$2.button,
|
|
1326
|
+
value: value,
|
|
1327
1327
|
children: t(value + ".button")
|
|
1328
1328
|
}, value);
|
|
1329
1329
|
})
|
|
1330
1330
|
}), jsx(TimeZoneSwitch$1, {
|
|
1331
1331
|
useTimeZone: useTimeZone != null ? useTimeZone : ['LT']
|
|
1332
1332
|
}), jsx(Divider, {
|
|
1333
|
-
|
|
1334
|
-
|
|
1333
|
+
flexItem: true,
|
|
1334
|
+
orientation: "vertical"
|
|
1335
1335
|
}), jsx(IconButton, {
|
|
1336
1336
|
"data-testid": "TimeSliderLite-optionsMenu-closeButton",
|
|
1337
|
+
onClick: function onClick() {
|
|
1338
|
+
return setMenuOpen == null ? void 0 : setMenuOpen(false);
|
|
1339
|
+
},
|
|
1337
1340
|
size: "small",
|
|
1338
1341
|
sx: {
|
|
1339
1342
|
margin: 0.5
|
|
1340
1343
|
},
|
|
1341
|
-
onClick: function onClick() {
|
|
1342
|
-
return setMenuOpen && setMenuOpen(false);
|
|
1343
|
-
},
|
|
1344
1344
|
children: closeButtonIcon != null ? closeButtonIcon : jsx(Close, {})
|
|
1345
1345
|
})]
|
|
1346
1346
|
})]
|
|
1347
1347
|
});
|
|
1348
1348
|
};
|
|
1349
1349
|
|
|
1350
|
-
|
|
1351
|
-
|
|
1352
|
-
|
|
1353
|
-
|
|
1354
|
-
|
|
1355
|
-
|
|
1356
|
-
|
|
1357
|
-
|
|
1358
|
-
|
|
1359
|
-
|
|
1360
|
-
|
|
1361
|
-
|
|
1362
|
-
|
|
1363
|
-
|
|
1364
|
-
|
|
1365
|
-
|
|
1366
|
-
|
|
1367
|
-
|
|
1368
|
-
|
|
1369
|
-
width: '36px',
|
|
1370
|
-
height: '36px'
|
|
1371
|
-
}
|
|
1350
|
+
var DRAG_AREA_WIDTH = 10;
|
|
1351
|
+
var NEEDLE_WIDTH = 5;
|
|
1352
|
+
var SHADOW_SPREAD = 2;
|
|
1353
|
+
var NeedleShadow = function NeedleShadow(_ref) {
|
|
1354
|
+
var x = _ref.x,
|
|
1355
|
+
stroke = _ref.stroke,
|
|
1356
|
+
height = _ref.height,
|
|
1357
|
+
width = _ref.width;
|
|
1358
|
+
return jsx("line", {
|
|
1359
|
+
"data-testid": "TimeSliderLite-NeedleShadow",
|
|
1360
|
+
filter: "blur(0.5px)",
|
|
1361
|
+
stroke: stroke,
|
|
1362
|
+
strokeLinecap: "round",
|
|
1363
|
+
strokeWidth: width + SHADOW_SPREAD,
|
|
1364
|
+
x1: x,
|
|
1365
|
+
x2: x,
|
|
1366
|
+
y1: height - (height - SHADOW_SPREAD / 2),
|
|
1367
|
+
y2: height - SHADOW_SPREAD / 2
|
|
1368
|
+
});
|
|
1372
1369
|
};
|
|
1373
|
-
|
|
1374
|
-
var
|
|
1375
|
-
|
|
1376
|
-
|
|
1377
|
-
|
|
1378
|
-
|
|
1379
|
-
|
|
1380
|
-
|
|
1381
|
-
|
|
1382
|
-
|
|
1383
|
-
|
|
1384
|
-
|
|
1385
|
-
|
|
1386
|
-
|
|
1387
|
-
"aria-selected": !isVisible,
|
|
1388
|
-
onClick: onClick,
|
|
1389
|
-
"data-testid": "TimeSliderLite-HideButton",
|
|
1390
|
-
children: isVisible ? hideIcon : showIcon
|
|
1391
|
-
}))
|
|
1370
|
+
var NeedleLine = function NeedleLine(_ref2) {
|
|
1371
|
+
var x = _ref2.x,
|
|
1372
|
+
stroke = _ref2.stroke,
|
|
1373
|
+
height = _ref2.height,
|
|
1374
|
+
width = _ref2.width;
|
|
1375
|
+
return jsx("line", {
|
|
1376
|
+
"data-testid": "TimeSliderLite-NeedleLine",
|
|
1377
|
+
stroke: stroke,
|
|
1378
|
+
strokeLinecap: "round",
|
|
1379
|
+
strokeWidth: width,
|
|
1380
|
+
x1: x,
|
|
1381
|
+
x2: x,
|
|
1382
|
+
y1: width / 2,
|
|
1383
|
+
y2: height - width / 2
|
|
1392
1384
|
});
|
|
1393
1385
|
};
|
|
1394
|
-
|
|
1395
|
-
var
|
|
1396
|
-
|
|
1397
|
-
|
|
1398
|
-
|
|
1399
|
-
|
|
1400
|
-
|
|
1401
|
-
|
|
1402
|
-
|
|
1403
|
-
|
|
1404
|
-
|
|
1405
|
-
|
|
1406
|
-
|
|
1407
|
-
|
|
1408
|
-
|
|
1409
|
-
|
|
1410
|
-
|
|
1411
|
-
|
|
1412
|
-
|
|
1413
|
-
|
|
1414
|
-
|
|
1415
|
-
|
|
1416
|
-
|
|
1417
|
-
|
|
1418
|
-
|
|
1419
|
-
|
|
1420
|
-
|
|
1386
|
+
var TimeSliderDraggableNeedle = function TimeSliderDraggableNeedle(_ref3) {
|
|
1387
|
+
var draggableLabel = _ref3.draggableLabel,
|
|
1388
|
+
width = _ref3.width,
|
|
1389
|
+
height = _ref3.height,
|
|
1390
|
+
_ref3$timeZone = _ref3.timeZone,
|
|
1391
|
+
timeZone = _ref3$timeZone === void 0 ? 'LT' : _ref3$timeZone,
|
|
1392
|
+
_ref3$currentTime = _ref3.currentTime,
|
|
1393
|
+
currentTime = _ref3$currentTime === void 0 ? Date.now() * MILLISECOND_TO_SECOND : _ref3$currentTime,
|
|
1394
|
+
currentTimeSelected = _ref3.currentTimeSelected,
|
|
1395
|
+
startTime = _ref3.startTime,
|
|
1396
|
+
endTime = _ref3.endTime,
|
|
1397
|
+
disableForecast = _ref3.disableForecast,
|
|
1398
|
+
_ref3$needleDragAreaW = _ref3.needleDragAreaWidth,
|
|
1399
|
+
needleDragAreaWidth = _ref3$needleDragAreaW === void 0 ? DRAG_AREA_WIDTH : _ref3$needleDragAreaW,
|
|
1400
|
+
needleLabelZIndex = _ref3.needleLabelZIndex,
|
|
1401
|
+
_ref3$needleLabelOffs = _ref3.needleLabelOffset,
|
|
1402
|
+
needleLabelOffset = _ref3$needleLabelOffs === void 0 ? [0, -5] : _ref3$needleLabelOffs,
|
|
1403
|
+
_ref3$needleWidth = _ref3.needleWidth,
|
|
1404
|
+
needleWidth = _ref3$needleWidth === void 0 ? NEEDLE_WIDTH : _ref3$needleWidth,
|
|
1405
|
+
timeStep = _ref3.timeStep,
|
|
1406
|
+
selectedTime = _ref3.selectedTime,
|
|
1407
|
+
setSelectedTime = _ref3.setSelectedTime,
|
|
1408
|
+
style = _ref3.style,
|
|
1409
|
+
onDoubleClick = _ref3.onDoubleClick;
|
|
1410
|
+
var _useTimesliderLiteTra = useTimesliderLiteTranslation(),
|
|
1411
|
+
i18n = _useTimesliderLiteTra.i18n;
|
|
1412
|
+
var language = i18n.language;
|
|
1413
|
+
var draggableRef = useRef(null);
|
|
1414
|
+
var _useTheme = useTheme(),
|
|
1415
|
+
timeSliderLite = _useTheme.palette.geowebColors.timeSliderLite;
|
|
1416
|
+
var timeZoneOffset = timeZone === 'UTC' ? 0 : undefined;
|
|
1417
|
+
var observedTimeStepSeconds = timeStep[0];
|
|
1418
|
+
var forecastTimeStepSeconds = timeStep[1];
|
|
1419
|
+
var timeStepSeconds = selectedTime >= currentTime ? forecastTimeStepSeconds : observedTimeStepSeconds;
|
|
1420
|
+
var lastObservedTime = floorLocalSeconds(currentTime, observedTimeStepSeconds, timeZoneOffset);
|
|
1421
|
+
var firstForecastTime = floorLocalSeconds(currentTime, forecastTimeStepSeconds, timeZoneOffset) + forecastTimeStepSeconds;
|
|
1422
|
+
var selectedTimePx = getSelectedTimePx(startTime, endTime, selectedTime, width);
|
|
1423
|
+
var x = selectedTimePx > 0 ? selectedTimePx - needleDragAreaWidth / 2 : -needleDragAreaWidth / 2;
|
|
1424
|
+
var isBetweenObservedAndForecast = selectedTime >= lastObservedTime && selectedTime < firstForecastTime;
|
|
1425
|
+
var roundedSelectedTime = isBetweenObservedAndForecast ? lastObservedTime : floorLocalSeconds(selectedTime, timeStepSeconds, timeZoneOffset);
|
|
1426
|
+
var dateString = new Date(roundedSelectedTime * 1000).toLocaleDateString(language, {
|
|
1427
|
+
weekday: 'short',
|
|
1428
|
+
month: 'numeric',
|
|
1429
|
+
day: 'numeric',
|
|
1430
|
+
hour: 'numeric',
|
|
1431
|
+
minute: 'numeric',
|
|
1432
|
+
timeZone: timeZone === 'UTC' ? 'UTC' : undefined
|
|
1433
|
+
});
|
|
1434
|
+
var localLabel = language === 'fi' || language === 'sv-FI' ? reformatFinnishDateString(dateString) : dateString;
|
|
1435
|
+
var label = timeZone === 'UTC' ? shortUTCTime(localLabel) : localLabel;
|
|
1436
|
+
return jsx(Draggable, {
|
|
1437
|
+
axis: "x",
|
|
1438
|
+
bounds: {
|
|
1439
|
+
left: -needleDragAreaWidth / 2,
|
|
1440
|
+
right: width - needleDragAreaWidth / 2
|
|
1441
|
+
},
|
|
1442
|
+
handle: ".TimeSliderLite-DraggableNeedle",
|
|
1443
|
+
nodeRef: draggableRef,
|
|
1444
|
+
onDrag: function onDrag(_, position) {
|
|
1445
|
+
var positionOffsetToCompensateFlooring = 0.5;
|
|
1446
|
+
var needleCenterPosition = position.x + needleDragAreaWidth / 2 + positionOffsetToCompensateFlooring;
|
|
1447
|
+
var newSelectedTime = getSelectedTimeFromPx(startTime, endTime, needleCenterPosition, width);
|
|
1448
|
+
if (disableForecast && newSelectedTime >= lastObservedTime) {
|
|
1449
|
+
setSelectedTime(lastObservedTime);
|
|
1450
|
+
}
|
|
1451
|
+
setSelectedTime(newSelectedTime);
|
|
1452
|
+
},
|
|
1453
|
+
onStop: function onStop(_, position) {
|
|
1454
|
+
var positionOffsetToCompensateFlooring = 0.5;
|
|
1455
|
+
var needleCenterPosition = position.x + needleDragAreaWidth / 2 + positionOffsetToCompensateFlooring;
|
|
1456
|
+
var newSelectedTime = getSelectedTimeFromPx(startTime, endTime, needleCenterPosition, width);
|
|
1457
|
+
var isLastObservedTime = newSelectedTime >= lastObservedTime && newSelectedTime < firstForecastTime || newSelectedTime >= lastObservedTime && disableForecast;
|
|
1458
|
+
var roundedSelectedTime = isLastObservedTime ? lastObservedTime : floorLocalSeconds(newSelectedTime, timeStepSeconds, timeZoneOffset);
|
|
1459
|
+
setSelectedTime(roundedSelectedTime);
|
|
1460
|
+
},
|
|
1461
|
+
position: {
|
|
1462
|
+
x: x,
|
|
1463
|
+
y: 0
|
|
1464
|
+
},
|
|
1465
|
+
children: jsxs(Box, {
|
|
1466
|
+
className: "TimeSliderLite-DraggableNeedle",
|
|
1467
|
+
"data-testid": "TimeSliderLite-DraggableNeedle",
|
|
1468
|
+
onDoubleClick: onDoubleClick,
|
|
1469
|
+
ref: draggableRef,
|
|
1470
|
+
sx: {
|
|
1471
|
+
overflow: 'visible'
|
|
1472
|
+
},
|
|
1473
|
+
children: [jsxs("svg", {
|
|
1474
|
+
cursor: "ew-resize",
|
|
1475
|
+
"data-testid": "TimeSliderLite-NeedleSvg",
|
|
1476
|
+
height: height,
|
|
1477
|
+
style: style,
|
|
1478
|
+
width: needleDragAreaWidth,
|
|
1479
|
+
children: [jsx(NeedleShadow, {
|
|
1480
|
+
height: height,
|
|
1481
|
+
stroke: timeSliderLite.needleShadow.stroke,
|
|
1482
|
+
width: needleWidth,
|
|
1483
|
+
x: needleDragAreaWidth / 2
|
|
1484
|
+
}), jsx(NeedleLine, {
|
|
1485
|
+
height: height,
|
|
1486
|
+
stroke: currentTimeSelected ? timeSliderLite.needleDefault.stroke : timeSliderLite.needle.stroke,
|
|
1487
|
+
width: needleWidth,
|
|
1488
|
+
x: needleDragAreaWidth / 2
|
|
1489
|
+
})]
|
|
1490
|
+
}), jsxs(Box, {
|
|
1491
|
+
bottom: "-1px",
|
|
1492
|
+
className: "TimeSliderLite-timeStamp",
|
|
1493
|
+
position: "absolute",
|
|
1494
|
+
sx: {
|
|
1495
|
+
backgroundColor: timeSliderLite.needleLabel.backgroundColor,
|
|
1496
|
+
border: "1px solid " + timeSliderLite.needleLabel.borderColor,
|
|
1497
|
+
borderRadius: '4px',
|
|
1498
|
+
className: draggableLabel ? 'TimeSliderLite-DraggableNeedle' : '',
|
|
1499
|
+
color: timeSliderLite.needleLabel.color,
|
|
1500
|
+
cursor: draggableLabel ? 'ew-resize' : null,
|
|
1501
|
+
fontSize: '12px',
|
|
1502
|
+
padding: '0px 4px 0px 4px',
|
|
1503
|
+
pointerEvents: draggableLabel ? null : 'none',
|
|
1504
|
+
transform: "translate(calc(-50% + " + needleWidth + "px + " + needleLabelOffset[0] + "px), " + needleLabelOffset[1] + "px)",
|
|
1505
|
+
zIndex: needleLabelZIndex != null ? needleLabelZIndex : null
|
|
1506
|
+
},
|
|
1507
|
+
children: [label, jsx(Box, {
|
|
1508
|
+
bottom: "-4px",
|
|
1509
|
+
className: "TimeSliderLite-timeStamp-tail",
|
|
1510
|
+
height: "10px",
|
|
1511
|
+
position: "absolute",
|
|
1512
|
+
sx: {
|
|
1513
|
+
backgroundColor: timeSliderLite.needleLabel.backgroundColor,
|
|
1514
|
+
transform: 'rotate(45deg)',
|
|
1515
|
+
left: "calc(50% - 5px - " + needleLabelOffset[0] + "px)",
|
|
1516
|
+
zIndex: -1
|
|
1517
|
+
},
|
|
1518
|
+
width: "10px"
|
|
1519
|
+
})]
|
|
1520
|
+
})]
|
|
1521
|
+
})
|
|
1522
|
+
});
|
|
1421
1523
|
};
|
|
1422
1524
|
|
|
1423
1525
|
var OBSERVED_PADDING_DAYS = 1;
|
|
@@ -1447,8 +1549,8 @@ var TimeSliderLiteBackgroundSvg = function TimeSliderLiteBackgroundSvg(_ref) {
|
|
|
1447
1549
|
timeSliderLite = _useTheme.palette.geowebColors.timeSliderLite;
|
|
1448
1550
|
if (!width) {
|
|
1449
1551
|
return jsx("svg", {
|
|
1450
|
-
|
|
1451
|
-
|
|
1552
|
+
height: height,
|
|
1553
|
+
style: style
|
|
1452
1554
|
});
|
|
1453
1555
|
}
|
|
1454
1556
|
// Convert start and end time from Unix timestamp to JavaScript Date object
|
|
@@ -1492,14 +1594,14 @@ var TimeSliderLiteBackgroundSvg = function TimeSliderLiteBackgroundSvg(_ref) {
|
|
|
1492
1594
|
});
|
|
1493
1595
|
var label = dateString.charAt(0).toUpperCase() + dateString.slice(1);
|
|
1494
1596
|
return jsx("text", {
|
|
1495
|
-
x: x,
|
|
1496
|
-
y: 14,
|
|
1497
1597
|
fill: timeSliderLite.timeline.fill,
|
|
1498
|
-
textAnchor: "left",
|
|
1499
1598
|
fontSize: "12px",
|
|
1500
1599
|
style: {
|
|
1501
1600
|
userSelect: 'none'
|
|
1502
1601
|
},
|
|
1602
|
+
textAnchor: "left",
|
|
1603
|
+
x: x,
|
|
1604
|
+
y: 14,
|
|
1503
1605
|
children: label
|
|
1504
1606
|
}, monthChange + "-month-change-text");
|
|
1505
1607
|
}) : null;
|
|
@@ -1516,18 +1618,18 @@ var TimeSliderLiteBackgroundSvg = function TimeSliderLiteBackgroundSvg(_ref) {
|
|
|
1516
1618
|
};
|
|
1517
1619
|
var isObserved = index + 1 < currentDayIndex;
|
|
1518
1620
|
var baseRectangle = /*#__PURE__*/createElement("rect", Object.assign({}, defaultProps, {
|
|
1621
|
+
"data-testid": "TimeSliderLite-BackgroundRectangle-" + (isObserved ? 'Observed' : 'Forecast'),
|
|
1519
1622
|
fill: isObserved ? observedColor : forecastColor,
|
|
1520
|
-
width: Math.ceil(tickSpacing),
|
|
1521
1623
|
key: label + "-color",
|
|
1522
|
-
|
|
1624
|
+
width: Math.ceil(tickSpacing)
|
|
1523
1625
|
}));
|
|
1524
1626
|
var localDayOffset = secondsSinceLocalMidnight(currentTime) * SECOND_TO_DAY + utcOffset;
|
|
1525
1627
|
var isCurrentDay = index === Math.floor(currentDayIndex);
|
|
1526
1628
|
if (isCurrentDay) {
|
|
1527
1629
|
var partialRectangle = /*#__PURE__*/createElement("rect", Object.assign({}, defaultProps, {
|
|
1528
|
-
width: tickSpacing * localDayOffset,
|
|
1529
1630
|
fill: observedColor,
|
|
1530
|
-
key: label + "-partial-color"
|
|
1631
|
+
key: label + "-partial-color",
|
|
1632
|
+
width: tickSpacing * localDayOffset
|
|
1531
1633
|
}));
|
|
1532
1634
|
return [baseRectangle, partialRectangle];
|
|
1533
1635
|
}
|
|
@@ -1535,14 +1637,14 @@ var TimeSliderLiteBackgroundSvg = function TimeSliderLiteBackgroundSvg(_ref) {
|
|
|
1535
1637
|
}).flat();
|
|
1536
1638
|
var dailyLabels = !showMonthLabel ? dayLabels.map(function (label, index) {
|
|
1537
1639
|
return jsx("text", {
|
|
1538
|
-
x: (index - OBSERVED_PADDING_DAYS) * tickSpacing + 8 - tickOffset,
|
|
1539
|
-
y: 14,
|
|
1540
1640
|
fill: timeSliderLite.timeline.fill,
|
|
1541
|
-
textAnchor: "left",
|
|
1542
1641
|
fontSize: "12px",
|
|
1543
1642
|
style: {
|
|
1544
1643
|
userSelect: 'none'
|
|
1545
1644
|
},
|
|
1645
|
+
textAnchor: "left",
|
|
1646
|
+
x: (index - OBSERVED_PADDING_DAYS) * tickSpacing + 8 - tickOffset,
|
|
1647
|
+
y: 14,
|
|
1546
1648
|
children: dayLabels[index]
|
|
1547
1649
|
}, label + "-text");
|
|
1548
1650
|
}) : null;
|
|
@@ -1560,16 +1662,16 @@ var TimeSliderLiteBackgroundSvg = function TimeSliderLiteBackgroundSvg(_ref) {
|
|
|
1560
1662
|
};
|
|
1561
1663
|
return jsxs("g", {
|
|
1562
1664
|
children: [jsx("text", Object.assign({}, defaultProps, {
|
|
1563
|
-
textAnchor: "end",
|
|
1564
1665
|
style: {
|
|
1565
1666
|
userSelect: 'none'
|
|
1566
1667
|
},
|
|
1668
|
+
textAnchor: "end",
|
|
1567
1669
|
children: value
|
|
1568
1670
|
})), jsx("text", Object.assign({}, defaultProps, {
|
|
1569
|
-
textAnchor: "start",
|
|
1570
1671
|
style: {
|
|
1571
1672
|
userSelect: 'none'
|
|
1572
1673
|
},
|
|
1674
|
+
textAnchor: "start",
|
|
1573
1675
|
children: ":00"
|
|
1574
1676
|
})), ","]
|
|
1575
1677
|
}, label + "-" + value + "-hourLabel");
|
|
@@ -1590,18 +1692,18 @@ var TimeSliderLiteBackgroundSvg = function TimeSliderLiteBackgroundSvg(_ref) {
|
|
|
1590
1692
|
length: Math.floor(observedTicksPerDay * (currentDayIndex - index)) + 1
|
|
1591
1693
|
}, function (_, value) {
|
|
1592
1694
|
return /*#__PURE__*/createElement("line", Object.assign({}, defaultProps, {
|
|
1695
|
+
key: label + "-" + value + "-observed-tick",
|
|
1593
1696
|
x1: (index - OBSERVED_PADDING_DAYS) * tickSpacing + value * (tickSpacing / observedTicksPerDay) - tickOffset,
|
|
1594
|
-
x2: (index - OBSERVED_PADDING_DAYS) * tickSpacing + value * (tickSpacing / observedTicksPerDay) - tickOffset
|
|
1595
|
-
key: label + "-" + value + "-observed-tick"
|
|
1697
|
+
x2: (index - OBSERVED_PADDING_DAYS) * tickSpacing + value * (tickSpacing / observedTicksPerDay) - tickOffset
|
|
1596
1698
|
}));
|
|
1597
1699
|
});
|
|
1598
1700
|
var forecastTickMarksFromEndOfDay = Array.from({
|
|
1599
1701
|
length: Math.floor(forecastTicksPerDay * (1 - (currentDayIndex - index))) + 1
|
|
1600
1702
|
}, function (_, value) {
|
|
1601
1703
|
return /*#__PURE__*/createElement("line", Object.assign({}, defaultProps, {
|
|
1704
|
+
key: label + "-" + value + "-forecast-tick",
|
|
1602
1705
|
x1: (index + 1 - OBSERVED_PADDING_DAYS) * tickSpacing - value * (tickSpacing / forecastTicksPerDay) - tickOffset,
|
|
1603
|
-
x2: (index + 1 - OBSERVED_PADDING_DAYS) * tickSpacing - value * (tickSpacing / forecastTicksPerDay) - tickOffset
|
|
1604
|
-
key: label + "-" + value + "-forecast-tick"
|
|
1706
|
+
x2: (index + 1 - OBSERVED_PADDING_DAYS) * tickSpacing - value * (tickSpacing / forecastTicksPerDay) - tickOffset
|
|
1605
1707
|
}));
|
|
1606
1708
|
});
|
|
1607
1709
|
return [].concat(observedTickMarksFromStartOfDay, forecastTickMarksFromEndOfDay);
|
|
@@ -1610,195 +1712,20 @@ var TimeSliderLiteBackgroundSvg = function TimeSliderLiteBackgroundSvg(_ref) {
|
|
|
1610
1712
|
length: ticksPerDay + 1
|
|
1611
1713
|
}, function (_, value) {
|
|
1612
1714
|
return /*#__PURE__*/createElement("line", Object.assign({}, defaultProps, {
|
|
1715
|
+
key: label + "-" + value + "-tick",
|
|
1613
1716
|
x1: (index - OBSERVED_PADDING_DAYS) * tickSpacing + value * (tickSpacing / ticksPerDay) - tickOffset,
|
|
1614
|
-
x2: (index - OBSERVED_PADDING_DAYS) * tickSpacing + value * (tickSpacing / ticksPerDay) - tickOffset
|
|
1615
|
-
key: label + "-" + value + "-tick"
|
|
1717
|
+
x2: (index - OBSERVED_PADDING_DAYS) * tickSpacing + value * (tickSpacing / ticksPerDay) - tickOffset
|
|
1616
1718
|
}));
|
|
1617
1719
|
});
|
|
1618
1720
|
}).flat();
|
|
1619
1721
|
return jsxs("svg", {
|
|
1722
|
+
height: height,
|
|
1620
1723
|
style: style,
|
|
1621
1724
|
width: width + TIME_SLIDER_LITE_PADDING_RIGHT,
|
|
1622
|
-
height: height,
|
|
1623
1725
|
children: [backgroundRectangles, tickMarks, monthLabels, dailyLabels, hourLabels]
|
|
1624
1726
|
});
|
|
1625
1727
|
};
|
|
1626
1728
|
|
|
1627
|
-
var DRAG_AREA_WIDTH = 10;
|
|
1628
|
-
var NEEDLE_WIDTH = 5;
|
|
1629
|
-
var SHADOW_SPREAD = 2;
|
|
1630
|
-
var NeedleShadow = function NeedleShadow(_ref) {
|
|
1631
|
-
var x = _ref.x,
|
|
1632
|
-
stroke = _ref.stroke,
|
|
1633
|
-
height = _ref.height,
|
|
1634
|
-
width = _ref.width;
|
|
1635
|
-
return jsx("line", {
|
|
1636
|
-
x1: x,
|
|
1637
|
-
y1: height - (height - SHADOW_SPREAD / 2),
|
|
1638
|
-
x2: x,
|
|
1639
|
-
y2: height - SHADOW_SPREAD / 2,
|
|
1640
|
-
strokeWidth: width + SHADOW_SPREAD,
|
|
1641
|
-
stroke: stroke,
|
|
1642
|
-
strokeLinecap: "round",
|
|
1643
|
-
filter: "blur(0.5px)",
|
|
1644
|
-
"data-testid": "TimeSliderLite-NeedleShadow"
|
|
1645
|
-
});
|
|
1646
|
-
};
|
|
1647
|
-
var NeedleLine = function NeedleLine(_ref2) {
|
|
1648
|
-
var x = _ref2.x,
|
|
1649
|
-
stroke = _ref2.stroke,
|
|
1650
|
-
height = _ref2.height,
|
|
1651
|
-
width = _ref2.width;
|
|
1652
|
-
return jsx("line", {
|
|
1653
|
-
x1: x,
|
|
1654
|
-
y1: width / 2,
|
|
1655
|
-
x2: x,
|
|
1656
|
-
y2: height - width / 2,
|
|
1657
|
-
strokeWidth: width,
|
|
1658
|
-
strokeLinecap: "round",
|
|
1659
|
-
stroke: stroke,
|
|
1660
|
-
"data-testid": "TimeSliderLite-NeedleLine"
|
|
1661
|
-
});
|
|
1662
|
-
};
|
|
1663
|
-
var TimeSliderDraggableNeedle = function TimeSliderDraggableNeedle(_ref3) {
|
|
1664
|
-
var draggableLabel = _ref3.draggableLabel,
|
|
1665
|
-
width = _ref3.width,
|
|
1666
|
-
height = _ref3.height,
|
|
1667
|
-
_ref3$timeZone = _ref3.timeZone,
|
|
1668
|
-
timeZone = _ref3$timeZone === void 0 ? 'LT' : _ref3$timeZone,
|
|
1669
|
-
_ref3$currentTime = _ref3.currentTime,
|
|
1670
|
-
currentTime = _ref3$currentTime === void 0 ? Date.now() * MILLISECOND_TO_SECOND : _ref3$currentTime,
|
|
1671
|
-
currentTimeSelected = _ref3.currentTimeSelected,
|
|
1672
|
-
startTime = _ref3.startTime,
|
|
1673
|
-
endTime = _ref3.endTime,
|
|
1674
|
-
disableForecast = _ref3.disableForecast,
|
|
1675
|
-
_ref3$needleDragAreaW = _ref3.needleDragAreaWidth,
|
|
1676
|
-
needleDragAreaWidth = _ref3$needleDragAreaW === void 0 ? DRAG_AREA_WIDTH : _ref3$needleDragAreaW,
|
|
1677
|
-
needleLabelZIndex = _ref3.needleLabelZIndex,
|
|
1678
|
-
_ref3$needleLabelOffs = _ref3.needleLabelOffset,
|
|
1679
|
-
needleLabelOffset = _ref3$needleLabelOffs === void 0 ? [0, -5] : _ref3$needleLabelOffs,
|
|
1680
|
-
_ref3$needleWidth = _ref3.needleWidth,
|
|
1681
|
-
needleWidth = _ref3$needleWidth === void 0 ? NEEDLE_WIDTH : _ref3$needleWidth,
|
|
1682
|
-
timeStep = _ref3.timeStep,
|
|
1683
|
-
selectedTime = _ref3.selectedTime,
|
|
1684
|
-
setSelectedTime = _ref3.setSelectedTime,
|
|
1685
|
-
style = _ref3.style,
|
|
1686
|
-
onDoubleClick = _ref3.onDoubleClick;
|
|
1687
|
-
var _useTimesliderLiteTra = useTimesliderLiteTranslation(),
|
|
1688
|
-
i18n = _useTimesliderLiteTra.i18n;
|
|
1689
|
-
var language = i18n.language;
|
|
1690
|
-
var draggableRef = useRef(null);
|
|
1691
|
-
var _useTheme = useTheme(),
|
|
1692
|
-
timeSliderLite = _useTheme.palette.geowebColors.timeSliderLite;
|
|
1693
|
-
var timeZoneOffset = timeZone === 'UTC' ? 0 : undefined;
|
|
1694
|
-
var observedTimeStepSeconds = timeStep[0];
|
|
1695
|
-
var forecastTimeStepSeconds = timeStep[1];
|
|
1696
|
-
var timeStepSeconds = selectedTime >= currentTime ? forecastTimeStepSeconds : observedTimeStepSeconds;
|
|
1697
|
-
var lastObservedTime = floorLocalSeconds(currentTime, observedTimeStepSeconds, timeZoneOffset);
|
|
1698
|
-
var firstForecastTime = floorLocalSeconds(currentTime, forecastTimeStepSeconds, timeZoneOffset) + forecastTimeStepSeconds;
|
|
1699
|
-
var selectedTimePx = getSelectedTimePx(startTime, endTime, selectedTime, width);
|
|
1700
|
-
var x = selectedTimePx > 0 ? selectedTimePx - needleDragAreaWidth / 2 : -needleDragAreaWidth / 2;
|
|
1701
|
-
var isBetweenObservedAndForecast = selectedTime >= lastObservedTime && selectedTime < firstForecastTime;
|
|
1702
|
-
var roundedSelectedTime = isBetweenObservedAndForecast ? lastObservedTime : floorLocalSeconds(selectedTime, timeStepSeconds, timeZoneOffset);
|
|
1703
|
-
var dateString = new Date(roundedSelectedTime * 1000).toLocaleDateString(language, {
|
|
1704
|
-
weekday: 'short',
|
|
1705
|
-
month: 'numeric',
|
|
1706
|
-
day: 'numeric',
|
|
1707
|
-
hour: 'numeric',
|
|
1708
|
-
minute: 'numeric',
|
|
1709
|
-
timeZone: timeZone === 'UTC' ? 'UTC' : undefined
|
|
1710
|
-
});
|
|
1711
|
-
var localLabel = language === 'fi' || language === 'sv-FI' ? reformatFinnishDateString(dateString) : dateString;
|
|
1712
|
-
var label = timeZone === 'UTC' ? shortUTCTime(localLabel) : localLabel;
|
|
1713
|
-
return jsx(Draggable, {
|
|
1714
|
-
handle: ".TimeSliderLite-DraggableNeedle",
|
|
1715
|
-
axis: "x",
|
|
1716
|
-
nodeRef: draggableRef,
|
|
1717
|
-
bounds: {
|
|
1718
|
-
left: -needleDragAreaWidth / 2,
|
|
1719
|
-
right: width - needleDragAreaWidth / 2
|
|
1720
|
-
},
|
|
1721
|
-
position: {
|
|
1722
|
-
x: x,
|
|
1723
|
-
y: 0
|
|
1724
|
-
},
|
|
1725
|
-
onDrag: function onDrag(_, position) {
|
|
1726
|
-
var positionOffsetToCompensateFlooring = 0.5;
|
|
1727
|
-
var needleCenterPosition = position.x + needleDragAreaWidth / 2 + positionOffsetToCompensateFlooring;
|
|
1728
|
-
var newSelectedTime = getSelectedTimeFromPx(startTime, endTime, needleCenterPosition, width);
|
|
1729
|
-
if (disableForecast && newSelectedTime >= lastObservedTime) {
|
|
1730
|
-
setSelectedTime(lastObservedTime);
|
|
1731
|
-
}
|
|
1732
|
-
setSelectedTime(newSelectedTime);
|
|
1733
|
-
},
|
|
1734
|
-
onStop: function onStop(_, position) {
|
|
1735
|
-
var positionOffsetToCompensateFlooring = 0.5;
|
|
1736
|
-
var needleCenterPosition = position.x + needleDragAreaWidth / 2 + positionOffsetToCompensateFlooring;
|
|
1737
|
-
var newSelectedTime = getSelectedTimeFromPx(startTime, endTime, needleCenterPosition, width);
|
|
1738
|
-
var isLastObservedTime = newSelectedTime >= lastObservedTime && newSelectedTime < firstForecastTime || newSelectedTime >= lastObservedTime && disableForecast;
|
|
1739
|
-
var roundedSelectedTime = isLastObservedTime ? lastObservedTime : floorLocalSeconds(newSelectedTime, timeStepSeconds, timeZoneOffset);
|
|
1740
|
-
setSelectedTime(roundedSelectedTime);
|
|
1741
|
-
},
|
|
1742
|
-
children: jsxs(Box, {
|
|
1743
|
-
className: "TimeSliderLite-DraggableNeedle",
|
|
1744
|
-
ref: draggableRef,
|
|
1745
|
-
"data-testid": "TimeSliderLite-DraggableNeedle",
|
|
1746
|
-
onDoubleClick: onDoubleClick,
|
|
1747
|
-
sx: {
|
|
1748
|
-
overflow: 'visible'
|
|
1749
|
-
},
|
|
1750
|
-
children: [jsxs("svg", {
|
|
1751
|
-
style: style,
|
|
1752
|
-
cursor: "ew-resize",
|
|
1753
|
-
width: needleDragAreaWidth,
|
|
1754
|
-
height: height,
|
|
1755
|
-
"data-testid": "TimeSliderLite-NeedleSvg",
|
|
1756
|
-
children: [jsx(NeedleShadow, {
|
|
1757
|
-
x: needleDragAreaWidth / 2,
|
|
1758
|
-
stroke: timeSliderLite.needleShadow.stroke,
|
|
1759
|
-
height: height,
|
|
1760
|
-
width: needleWidth
|
|
1761
|
-
}), jsx(NeedleLine, {
|
|
1762
|
-
x: needleDragAreaWidth / 2,
|
|
1763
|
-
stroke: currentTimeSelected ? timeSliderLite.needleDefault.stroke : timeSliderLite.needle.stroke,
|
|
1764
|
-
height: height,
|
|
1765
|
-
width: needleWidth
|
|
1766
|
-
})]
|
|
1767
|
-
}), jsxs(Box, {
|
|
1768
|
-
className: "TimeSliderLite-timeStamp",
|
|
1769
|
-
position: "absolute",
|
|
1770
|
-
bottom: "-1px",
|
|
1771
|
-
sx: {
|
|
1772
|
-
backgroundColor: timeSliderLite.needleLabel.backgroundColor,
|
|
1773
|
-
border: "1px solid " + timeSliderLite.needleLabel.borderColor,
|
|
1774
|
-
borderRadius: '4px',
|
|
1775
|
-
className: draggableLabel ? 'TimeSliderLite-DraggableNeedle' : '',
|
|
1776
|
-
color: timeSliderLite.needleLabel.color,
|
|
1777
|
-
cursor: draggableLabel ? 'ew-resize' : null,
|
|
1778
|
-
fontSize: '12px',
|
|
1779
|
-
padding: '0px 4px 0px 4px',
|
|
1780
|
-
pointerEvents: draggableLabel ? null : 'none',
|
|
1781
|
-
transform: "translate(calc(-50% + " + needleWidth + "px + " + needleLabelOffset[0] + "px), " + needleLabelOffset[1] + "px)",
|
|
1782
|
-
zIndex: needleLabelZIndex != null ? needleLabelZIndex : null
|
|
1783
|
-
},
|
|
1784
|
-
children: [label, jsx(Box, {
|
|
1785
|
-
className: "TimeSliderLite-timeStamp-tail",
|
|
1786
|
-
position: "absolute",
|
|
1787
|
-
width: "10px",
|
|
1788
|
-
height: "10px",
|
|
1789
|
-
bottom: "-4px",
|
|
1790
|
-
sx: {
|
|
1791
|
-
backgroundColor: timeSliderLite.needleLabel.backgroundColor,
|
|
1792
|
-
transform: 'rotate(45deg)',
|
|
1793
|
-
left: "calc(50% - 5px - " + needleLabelOffset[0] + "px)",
|
|
1794
|
-
zIndex: -1
|
|
1795
|
-
}
|
|
1796
|
-
})]
|
|
1797
|
-
})]
|
|
1798
|
-
})
|
|
1799
|
-
});
|
|
1800
|
-
};
|
|
1801
|
-
|
|
1802
1729
|
var HOVER_NEEDLE_WIDTH = 1;
|
|
1803
1730
|
var DEFAULT_OPACITY = 0.5;
|
|
1804
1731
|
var TimeSliderClickableTimeline = function TimeSliderClickableTimeline(_ref) {
|
|
@@ -1828,12 +1755,6 @@ var TimeSliderClickableTimeline = function TimeSliderClickableTimeline(_ref) {
|
|
|
1828
1755
|
}
|
|
1829
1756
|
return jsx("svg", {
|
|
1830
1757
|
"data-testid": "TimeSliderLite-clickableTimeline",
|
|
1831
|
-
style: {
|
|
1832
|
-
position: 'absolute',
|
|
1833
|
-
width: '100%',
|
|
1834
|
-
height: '100%',
|
|
1835
|
-
cursor: 'pointer'
|
|
1836
|
-
},
|
|
1837
1758
|
onClick: function onClick() {
|
|
1838
1759
|
return setSelectedTime(needleSuggestion);
|
|
1839
1760
|
},
|
|
@@ -1846,17 +1767,23 @@ var TimeSliderClickableTimeline = function TimeSliderClickableTimeline(_ref) {
|
|
|
1846
1767
|
onMouseMove: function onMouseMove(event) {
|
|
1847
1768
|
isShown && setMouseX(event.nativeEvent.offsetX);
|
|
1848
1769
|
},
|
|
1770
|
+
style: {
|
|
1771
|
+
position: 'absolute',
|
|
1772
|
+
width: '100%',
|
|
1773
|
+
height: '100%',
|
|
1774
|
+
cursor: 'pointer'
|
|
1775
|
+
},
|
|
1849
1776
|
children: jsx("line", {
|
|
1850
1777
|
opacity: isShown ? opacity : 0,
|
|
1851
|
-
x1: x,
|
|
1852
|
-
y1: "0",
|
|
1853
|
-
x2: x,
|
|
1854
|
-
y2: "100%",
|
|
1855
1778
|
stroke: timeSliderLite.timeline.stroke,
|
|
1856
1779
|
strokeWidth: HOVER_NEEDLE_WIDTH,
|
|
1857
1780
|
style: {
|
|
1858
1781
|
transition: 'opacity 0.2s ease-in-out'
|
|
1859
|
-
}
|
|
1782
|
+
},
|
|
1783
|
+
x1: x,
|
|
1784
|
+
x2: x,
|
|
1785
|
+
y1: "0",
|
|
1786
|
+
y2: "100%"
|
|
1860
1787
|
})
|
|
1861
1788
|
});
|
|
1862
1789
|
};
|
|
@@ -1947,6 +1874,7 @@ var TimeSliderLiteBackground = function TimeSliderLiteBackground(_ref) {
|
|
|
1947
1874
|
};
|
|
1948
1875
|
}, [sliderAreaRef]);
|
|
1949
1876
|
return jsxs(Box, {
|
|
1877
|
+
"data-testid": "TimeSliderLite-Background",
|
|
1950
1878
|
ref: sliderAreaRef,
|
|
1951
1879
|
sx: {
|
|
1952
1880
|
position: 'relative',
|
|
@@ -1955,93 +1883,157 @@ var TimeSliderLiteBackground = function TimeSliderLiteBackground(_ref) {
|
|
|
1955
1883
|
width: '100%',
|
|
1956
1884
|
backgroundColor: timeSliderLite.timelineBackgroundObserved.fill
|
|
1957
1885
|
},
|
|
1958
|
-
"data-testid": "TimeSliderLite-Background",
|
|
1959
1886
|
children: [jsx(TimeSliderLiteBackgroundSvg, {
|
|
1887
|
+
currentTime: currentTime,
|
|
1888
|
+
disableForecast: disableForecast,
|
|
1889
|
+
endTime: endTime,
|
|
1890
|
+
height: height,
|
|
1891
|
+
startTime: startTime,
|
|
1960
1892
|
style: {
|
|
1961
1893
|
position: 'absolute',
|
|
1962
1894
|
top: 0
|
|
1963
1895
|
},
|
|
1964
1896
|
timeStep: timeStep,
|
|
1965
|
-
|
|
1966
|
-
|
|
1967
|
-
startTime: startTime,
|
|
1968
|
-
endTime: endTime,
|
|
1969
|
-
disableForecast: disableForecast,
|
|
1970
|
-
currentTime: currentTime,
|
|
1971
|
-
timeZone: timeZone
|
|
1897
|
+
timeZone: timeZone,
|
|
1898
|
+
width: areaWidth
|
|
1972
1899
|
}), jsx(TimeSliderClickableTimeline, {
|
|
1973
1900
|
currentTime: currentTime,
|
|
1901
|
+
disableForecast: disableForecast,
|
|
1902
|
+
endTime: endTime,
|
|
1974
1903
|
opacity: mouseHoverNeedleOpacity,
|
|
1975
|
-
|
|
1904
|
+
setSelectedTime: setSelectedTime,
|
|
1976
1905
|
startTime: startTime,
|
|
1977
|
-
endTime: endTime,
|
|
1978
|
-
disableForecast: disableForecast,
|
|
1979
1906
|
timeStep: timeStep,
|
|
1980
|
-
|
|
1981
|
-
|
|
1982
|
-
}), drawNeedle && (!zerorange ? jsx(TimeSliderDraggableNeedle, {
|
|
1907
|
+
timeZone: timeZone,
|
|
1908
|
+
width: areaWidth
|
|
1909
|
+
}), !!drawNeedle && (!zerorange ? jsx(TimeSliderDraggableNeedle, {
|
|
1910
|
+
currentTime: currentTime,
|
|
1983
1911
|
currentTimeSelected: currentTimeSelected,
|
|
1984
|
-
|
|
1912
|
+
disableForecast: disableForecast,
|
|
1913
|
+
draggableLabel: draggableTimeStamp,
|
|
1914
|
+
endTime: endTime,
|
|
1915
|
+
height: height,
|
|
1916
|
+
needleDragAreaWidth: needleDragAreaWidth,
|
|
1917
|
+
needleLabelOffset: needleLabelOffset,
|
|
1918
|
+
needleLabelZIndex: needleLabelZIndex,
|
|
1985
1919
|
needleWidth: needleWidth,
|
|
1986
|
-
|
|
1920
|
+
onDoubleClick: resetSelectedTime,
|
|
1921
|
+
selectedTime: selectedTime,
|
|
1922
|
+
setSelectedTime: setSelectedTime,
|
|
1923
|
+
startTime: startTime,
|
|
1987
1924
|
style: {
|
|
1988
1925
|
position: 'absolute',
|
|
1989
1926
|
top: 0
|
|
1990
1927
|
},
|
|
1991
|
-
timeZone: timeZone,
|
|
1992
|
-
disableForecast: disableForecast,
|
|
1993
|
-
width: areaWidth,
|
|
1994
|
-
needleDragAreaWidth: needleDragAreaWidth,
|
|
1995
|
-
needleLabelZIndex: needleLabelZIndex,
|
|
1996
|
-
needleLabelOffset: needleLabelOffset,
|
|
1997
|
-
height: height,
|
|
1998
|
-
startTime: startTime,
|
|
1999
|
-
endTime: endTime,
|
|
2000
1928
|
timeStep: timeStep,
|
|
2001
|
-
currentTime: currentTime,
|
|
2002
|
-
selectedTime: selectedTime,
|
|
2003
|
-
setSelectedTime: setSelectedTime
|
|
2004
|
-
}) : jsx(TimeSliderZeroTimestamp, {
|
|
2005
1929
|
timeZone: timeZone,
|
|
2006
|
-
|
|
1930
|
+
width: areaWidth
|
|
1931
|
+
}) : jsx(TimeSliderZeroTimestamp, {
|
|
2007
1932
|
currentTime: currentTime,
|
|
1933
|
+
timeStep: timeStep,
|
|
1934
|
+
timeZone: timeZone,
|
|
2008
1935
|
timestampZIndex: needleLabelZIndex
|
|
2009
1936
|
}))]
|
|
2010
1937
|
});
|
|
2011
1938
|
};
|
|
2012
1939
|
|
|
2013
|
-
var
|
|
2014
|
-
|
|
2015
|
-
var
|
|
2016
|
-
|
|
2017
|
-
|
|
2018
|
-
|
|
1940
|
+
var _excluded$1 = ["children", "right", "left"];
|
|
1941
|
+
var ControlButtonGroup = function ControlButtonGroup(_ref) {
|
|
1942
|
+
var children = _ref.children,
|
|
1943
|
+
right = _ref.right,
|
|
1944
|
+
left = _ref.left,
|
|
1945
|
+
props = _objectWithoutPropertiesLoose(_ref, _excluded$1);
|
|
1946
|
+
return jsx(ButtonGroup, Object.assign({
|
|
1947
|
+
fullWidth: true,
|
|
1948
|
+
orientation: "horizontal"
|
|
1949
|
+
}, props, {
|
|
1950
|
+
sx: Object.assign({}, right && {
|
|
1951
|
+
borderTopLeftRadius: 0,
|
|
1952
|
+
borderBottomLeftRadius: 0
|
|
1953
|
+
}, left && {
|
|
1954
|
+
borderTopRightRadius: 0,
|
|
1955
|
+
borderBottomRightRadius: 0
|
|
1956
|
+
}, {
|
|
1957
|
+
backgroundColor: 'geowebColors.background.surface',
|
|
1958
|
+
height: '100%',
|
|
1959
|
+
alignItems: 'center',
|
|
1960
|
+
justifyContent: 'center',
|
|
1961
|
+
padding: '4px',
|
|
1962
|
+
gap: '2px'
|
|
1963
|
+
}, Array.isArray(props.sx) ? Object.assign.apply(Object, [{}].concat(props.sx)) : props.sx),
|
|
1964
|
+
children: children
|
|
1965
|
+
}));
|
|
1966
|
+
};
|
|
1967
|
+
|
|
1968
|
+
/* *
|
|
1969
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
1970
|
+
* you may not use this file except in compliance with the License.
|
|
1971
|
+
* You may obtain a copy of the License at
|
|
1972
|
+
*
|
|
1973
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
1974
|
+
*
|
|
1975
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
1976
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
1977
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1978
|
+
* See the License for the specific language governing permissions and
|
|
1979
|
+
* limitations under the License.
|
|
1980
|
+
*
|
|
1981
|
+
* Copyright 2023 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
1982
|
+
* Copyright 2023 - Finnish Meteorological Institute (FMI)
|
|
1983
|
+
* Copyright 2024 - The Norwegian Meteorological Institute (MET Norway)
|
|
1984
|
+
* */
|
|
1985
|
+
var timeSliderLiteButtonDefaultProps = {
|
|
1986
|
+
sx: {
|
|
1987
|
+
width: '36px',
|
|
1988
|
+
height: '36px'
|
|
1989
|
+
}
|
|
1990
|
+
};
|
|
1991
|
+
|
|
1992
|
+
var HideButton = function HideButton(_ref) {
|
|
1993
|
+
var _settings$icon$hide, _settings$icon, _settings$icon$show, _settings$icon2;
|
|
1994
|
+
var isVisible = _ref.isVisible,
|
|
2019
1995
|
settings = _ref.settings,
|
|
2020
|
-
|
|
1996
|
+
onClick = _ref.onClick;
|
|
2021
1997
|
var _useTimesliderLiteTra = useTimesliderLiteTranslation(),
|
|
2022
1998
|
t = _useTimesliderLiteTra.t;
|
|
2023
|
-
var
|
|
2024
|
-
var
|
|
2025
|
-
|
|
2026
|
-
|
|
2027
|
-
|
|
2028
|
-
|
|
2029
|
-
|
|
1999
|
+
var hideIcon = (_settings$icon$hide = settings == null || (_settings$icon = settings.icon) == null ? void 0 : _settings$icon.hide) != null ? _settings$icon$hide : jsx(ChevronDown, {});
|
|
2000
|
+
var showIcon = (_settings$icon$show = settings == null || (_settings$icon2 = settings.icon) == null ? void 0 : _settings$icon2.show) != null ? _settings$icon$show : jsx(ChevronUp, {});
|
|
2001
|
+
return jsx(Tooltip, {
|
|
2002
|
+
placement: "top-end",
|
|
2003
|
+
title: isVisible ? t('controlButtons.hide') : t('controlButtons.show'),
|
|
2004
|
+
children: jsx(IconButton, Object.assign({}, timeSliderLiteButtonDefaultProps, {
|
|
2005
|
+
"aria-selected": !isVisible,
|
|
2006
|
+
"data-testid": "TimeSliderLite-HideButton",
|
|
2007
|
+
onClick: onClick,
|
|
2008
|
+
children: isVisible ? hideIcon : showIcon
|
|
2009
|
+
}))
|
|
2030
2010
|
});
|
|
2011
|
+
};
|
|
2012
|
+
|
|
2013
|
+
var MenuButton = function MenuButton(_ref) {
|
|
2014
|
+
var _settings$icon;
|
|
2015
|
+
var menuOpen = _ref.menuOpen,
|
|
2016
|
+
onClick = _ref.onClick,
|
|
2017
|
+
settings = _ref.settings;
|
|
2018
|
+
var _useTimesliderLiteTra = useTimesliderLiteTranslation(),
|
|
2019
|
+
t = _useTimesliderLiteTra.t;
|
|
2020
|
+
var icon = (_settings$icon = settings == null ? void 0 : settings.icon) != null ? _settings$icon : jsx(Options, {});
|
|
2021
|
+
var Button = jsx(IconButton, Object.assign({}, timeSliderLiteButtonDefaultProps, {
|
|
2022
|
+
"aria-selected": menuOpen,
|
|
2023
|
+
"data-testid": "TimeSliderLite-MenuButton",
|
|
2024
|
+
onClick: onClick,
|
|
2025
|
+
sx: Object.assign({}, menuOpen && {
|
|
2026
|
+
backgroundColor: 'geowebColors.timeSliderLite.selected.backgroundColor'
|
|
2027
|
+
}, Array.isArray(timeSliderLiteButtonDefaultProps.sx) ? Object.assign.apply(Object, [{}].concat(timeSliderLiteButtonDefaultProps.sx)) : timeSliderLiteButtonDefaultProps.sx),
|
|
2028
|
+
children: icon
|
|
2029
|
+
}));
|
|
2030
|
+
if (menuOpen) {
|
|
2031
|
+
return Button;
|
|
2032
|
+
}
|
|
2031
2033
|
return jsx(Tooltip, {
|
|
2032
|
-
placement: "top",
|
|
2033
|
-
title:
|
|
2034
|
-
|
|
2035
|
-
enterNextDelay: tooltipDelay,
|
|
2036
|
-
children: jsx("span", {
|
|
2037
|
-
children: jsx(IconButton, Object.assign({}, timeSliderLiteButtonDefaultProps, {
|
|
2038
|
-
disabled: isDisabled,
|
|
2039
|
-
"aria-label": forward ? forwardTitle : backwardTitle,
|
|
2040
|
-
onClick: onClick,
|
|
2041
|
-
"data-testid": "TimeSliderLite-StepButton" + (forward ? 'Forward' : 'Backward'),
|
|
2042
|
-
children: forward ? forwardIcon : backwardIcon
|
|
2043
|
-
}))
|
|
2044
|
-
})
|
|
2034
|
+
placement: "top-start",
|
|
2035
|
+
title: t('menu.title'),
|
|
2036
|
+
children: Button
|
|
2045
2037
|
});
|
|
2046
2038
|
};
|
|
2047
2039
|
|
|
@@ -2057,50 +2049,58 @@ var PlayButton = function PlayButton(_ref) {
|
|
|
2057
2049
|
var pauseIcon = (_settings$icon$pause = settings == null || (_settings$icon = settings.icon) == null ? void 0 : _settings$icon.pause) != null ? _settings$icon$pause : jsx(Pause, {});
|
|
2058
2050
|
var playIcon = (_settings$icon$play = settings == null || (_settings$icon2 = settings.icon) == null ? void 0 : _settings$icon2.play) != null ? _settings$icon$play : jsx(Play, {});
|
|
2059
2051
|
return jsx(Tooltip, {
|
|
2060
|
-
title: isAnimating ? t('controlButtons.pause') : t('controlButtons.play'),
|
|
2061
|
-
placement: "top",
|
|
2062
2052
|
enterDelay: tooltipDelay,
|
|
2063
2053
|
enterNextDelay: tooltipDelay,
|
|
2054
|
+
placement: "top",
|
|
2055
|
+
title: isAnimating ? t('controlButtons.pause') : t('controlButtons.play'),
|
|
2064
2056
|
children: jsx("span", {
|
|
2065
2057
|
children: jsx(IconButton, Object.assign({}, timeSliderLiteButtonDefaultProps, {
|
|
2066
|
-
|
|
2067
|
-
|
|
2068
|
-
}, timeSliderLiteButtonDefaultProps.sx),
|
|
2058
|
+
"data-testid": "TimeSliderLite-PlayButton",
|
|
2059
|
+
disabled: isDisabled,
|
|
2069
2060
|
onClick: function onClick() {
|
|
2070
2061
|
onTogglePlayButton();
|
|
2071
2062
|
},
|
|
2072
|
-
|
|
2073
|
-
|
|
2063
|
+
sx: Object.assign({}, isAnimating && {
|
|
2064
|
+
backgroundColor: 'geowebColors.timeSliderLite.selected.backgroundColor'
|
|
2065
|
+
}, Array.isArray(timeSliderLiteButtonDefaultProps.sx) ? Object.assign.apply(Object, [{}].concat(timeSliderLiteButtonDefaultProps.sx)) : timeSliderLiteButtonDefaultProps.sx),
|
|
2074
2066
|
children: isAnimating ? pauseIcon : playIcon
|
|
2075
2067
|
}))
|
|
2076
2068
|
})
|
|
2077
2069
|
});
|
|
2078
2070
|
};
|
|
2079
2071
|
|
|
2080
|
-
var
|
|
2081
|
-
var _settings$icon;
|
|
2082
|
-
var
|
|
2083
|
-
|
|
2084
|
-
|
|
2072
|
+
var StepButton = function StepButton(_ref) {
|
|
2073
|
+
var _settings$icon$forwar, _settings$icon, _settings$icon$backwa, _settings$icon2;
|
|
2074
|
+
var forward = _ref.forward,
|
|
2075
|
+
isDisabled = _ref.isDisabled,
|
|
2076
|
+
_ref$onClick = _ref.onClick,
|
|
2077
|
+
onClick = _ref$onClick === void 0 ? function () {} : _ref$onClick,
|
|
2078
|
+
settings = _ref.settings,
|
|
2079
|
+
tooltipDelay = _ref.tooltipDelay;
|
|
2085
2080
|
var _useTimesliderLiteTra = useTimesliderLiteTranslation(),
|
|
2086
2081
|
t = _useTimesliderLiteTra.t;
|
|
2087
|
-
var
|
|
2088
|
-
var
|
|
2089
|
-
|
|
2090
|
-
|
|
2091
|
-
|
|
2092
|
-
|
|
2093
|
-
|
|
2094
|
-
|
|
2095
|
-
children: icon
|
|
2096
|
-
}));
|
|
2097
|
-
if (menuOpen) {
|
|
2098
|
-
return Button;
|
|
2099
|
-
}
|
|
2082
|
+
var forwardTitle = t('controlButtons.forward');
|
|
2083
|
+
var backwardTitle = t('controlButtons.backward');
|
|
2084
|
+
var forwardIcon = (_settings$icon$forwar = settings == null || (_settings$icon = settings.icon) == null ? void 0 : _settings$icon.forward) != null ? _settings$icon$forwar : jsx(StepForward, {
|
|
2085
|
+
"data-testid": "step-forward-svg-path"
|
|
2086
|
+
});
|
|
2087
|
+
var backwardIcon = (_settings$icon$backwa = settings == null || (_settings$icon2 = settings.icon) == null ? void 0 : _settings$icon2.backward) != null ? _settings$icon$backwa : jsx(StepBackward, {
|
|
2088
|
+
"data-testid": "step-backward-svg-path"
|
|
2089
|
+
});
|
|
2100
2090
|
return jsx(Tooltip, {
|
|
2101
|
-
|
|
2102
|
-
|
|
2103
|
-
|
|
2091
|
+
enterDelay: tooltipDelay,
|
|
2092
|
+
enterNextDelay: tooltipDelay,
|
|
2093
|
+
placement: "top",
|
|
2094
|
+
title: forward ? forwardTitle : backwardTitle,
|
|
2095
|
+
children: jsx("span", {
|
|
2096
|
+
children: jsx(IconButton, Object.assign({}, timeSliderLiteButtonDefaultProps, {
|
|
2097
|
+
"aria-label": forward ? forwardTitle : backwardTitle,
|
|
2098
|
+
"data-testid": "TimeSliderLite-StepButton" + (forward ? 'Forward' : 'Backward'),
|
|
2099
|
+
disabled: isDisabled,
|
|
2100
|
+
onClick: onClick,
|
|
2101
|
+
children: forward ? forwardIcon : backwardIcon
|
|
2102
|
+
}))
|
|
2103
|
+
})
|
|
2104
2104
|
});
|
|
2105
2105
|
};
|
|
2106
2106
|
|
|
@@ -2240,12 +2240,12 @@ var TimeSliderLite = function TimeSliderLite(_ref) {
|
|
|
2240
2240
|
var tooltipDelay = menuOpen ? TIME_SLIDER_LITE_TOOLTIP_DELAY : undefined;
|
|
2241
2241
|
return jsxs(Grid, {
|
|
2242
2242
|
container: true,
|
|
2243
|
-
|
|
2243
|
+
"data-testid": "timeSliderLite-" + mapId,
|
|
2244
|
+
sx: Object.assign({}, styles.container, Array.isArray(sx) ? Object.assign.apply(Object, [{}].concat(sx)) : sx, {
|
|
2244
2245
|
gridTemplateColumns: isVisible ? 'auto 1fr auto' : "1fr auto",
|
|
2245
2246
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
2246
2247
|
boxShadow: isVisible ? sx == null ? void 0 : sx.boxShadow : undefined
|
|
2247
2248
|
}),
|
|
2248
|
-
"data-testid": "timeSliderLite-" + mapId,
|
|
2249
2249
|
children: [isVisible ? jsxs(Fragment, {
|
|
2250
2250
|
children: [jsx(Grid, {
|
|
2251
2251
|
sx: {
|
|
@@ -2255,9 +2255,9 @@ var TimeSliderLite = function TimeSliderLite(_ref) {
|
|
|
2255
2255
|
left: true,
|
|
2256
2256
|
children: [!hideMenuButton && jsxs(Fragment, {
|
|
2257
2257
|
children: [jsx(MenuButton, {
|
|
2258
|
-
settings: settings == null ? void 0 : settings.menuButton,
|
|
2259
2258
|
menuOpen: menuOpen,
|
|
2260
|
-
onClick: onToggleMenu
|
|
2259
|
+
onClick: onToggleMenu,
|
|
2260
|
+
settings: settings == null ? void 0 : settings.menuButton
|
|
2261
2261
|
}), jsx(Divider, {
|
|
2262
2262
|
orientation: "vertical",
|
|
2263
2263
|
sx: {
|
|
@@ -2266,51 +2266,51 @@ var TimeSliderLite = function TimeSliderLite(_ref) {
|
|
|
2266
2266
|
}
|
|
2267
2267
|
})]
|
|
2268
2268
|
}), !hidePlayButton && jsx(PlayButton, {
|
|
2269
|
-
settings: settings == null ? void 0 : settings.playButton,
|
|
2270
2269
|
isAnimating: isAnimating,
|
|
2270
|
+
isDisabled: needleDisabled,
|
|
2271
2271
|
onTogglePlayButton: onToggleAnimation,
|
|
2272
|
-
|
|
2273
|
-
|
|
2272
|
+
settings: settings == null ? void 0 : settings.playButton,
|
|
2273
|
+
tooltipDelay: tooltipDelay
|
|
2274
2274
|
}), !hideStepButtons && jsxs(Fragment, {
|
|
2275
2275
|
children: [jsx(StepButton, {
|
|
2276
|
-
|
|
2276
|
+
isDisabled: needleDisabled,
|
|
2277
2277
|
onClick: function onClick() {
|
|
2278
2278
|
return handleTimeStep(-timeStepSeconds);
|
|
2279
2279
|
},
|
|
2280
|
-
|
|
2281
|
-
|
|
2280
|
+
settings: settings == null ? void 0 : settings.stepButton,
|
|
2281
|
+
tooltipDelay: tooltipDelay
|
|
2282
2282
|
}), jsx(StepButton, {
|
|
2283
2283
|
forward: true,
|
|
2284
|
-
|
|
2284
|
+
isDisabled: needleDisabled,
|
|
2285
2285
|
onClick: function onClick() {
|
|
2286
2286
|
return handleTimeStep(timeStepSeconds);
|
|
2287
2287
|
},
|
|
2288
|
-
|
|
2289
|
-
|
|
2288
|
+
settings: settings == null ? void 0 : settings.stepButton,
|
|
2289
|
+
tooltipDelay: tooltipDelay
|
|
2290
2290
|
})]
|
|
2291
2291
|
})]
|
|
2292
2292
|
})
|
|
2293
2293
|
}), jsx(Grid, {
|
|
2294
2294
|
children: jsx(TimeSliderLiteBackground, {
|
|
2295
|
-
draggableTimeStamp: draggableTimeStamp,
|
|
2296
2295
|
currentTime: currentTime,
|
|
2297
|
-
currentTimeSelected: autoUpdateSelectedTime && !isAnimating,
|
|
2298
|
-
startTime: roundedStartTime,
|
|
2299
|
-
timeZone: timeZone,
|
|
2300
|
-
endTime: roundedEndTime,
|
|
2296
|
+
currentTimeSelected: !!autoUpdateSelectedTime && !isAnimating,
|
|
2301
2297
|
disableForecast: isObservedTimeRange,
|
|
2298
|
+
draggableTimeStamp: draggableTimeStamp,
|
|
2299
|
+
endTime: roundedEndTime,
|
|
2300
|
+
height: height,
|
|
2302
2301
|
mouseHoverNeedleOpacity: mouseHoverNeedleOpacity,
|
|
2303
|
-
needleWidth: needleWidth,
|
|
2304
2302
|
needleDragAreaWidth: needleDragAreaWidth,
|
|
2305
|
-
needleLabelZIndex: needleLabelZIndex,
|
|
2306
2303
|
needleLabelOffset: needleLabelOffset,
|
|
2307
|
-
|
|
2308
|
-
|
|
2309
|
-
setSelectedTime: handleTimeSelect,
|
|
2304
|
+
needleLabelZIndex: needleLabelZIndex,
|
|
2305
|
+
needleWidth: needleWidth,
|
|
2310
2306
|
resetSelectedTime: function resetSelectedTime() {
|
|
2311
2307
|
return setRawSelectedTime(lastObservedTime);
|
|
2312
2308
|
},
|
|
2313
|
-
|
|
2309
|
+
selectedTime: runningExternalAnimation ? selectedTime : rawSelectedTime,
|
|
2310
|
+
setSelectedTime: handleTimeSelect,
|
|
2311
|
+
startTime: roundedStartTime,
|
|
2312
|
+
timeStep: [observedTimeStepSeconds, forecastTimeStepSeconds],
|
|
2313
|
+
timeZone: timeZone,
|
|
2314
2314
|
zerorange: needleDisabled
|
|
2315
2315
|
})
|
|
2316
2316
|
})]
|
|
@@ -2325,9 +2325,9 @@ var TimeSliderLite = function TimeSliderLite(_ref) {
|
|
|
2325
2325
|
className: "timeSliderLite-hideButtonGroup-" + (isVisible ? 'hide' : 'show'),
|
|
2326
2326
|
right: isVisible,
|
|
2327
2327
|
children: jsx(HideButton, {
|
|
2328
|
-
|
|
2328
|
+
isVisible: isVisible,
|
|
2329
2329
|
onClick: onToggleTimeSlider,
|
|
2330
|
-
|
|
2330
|
+
settings: settings == null ? void 0 : settings.hideButton
|
|
2331
2331
|
})
|
|
2332
2332
|
})
|
|
2333
2333
|
})]
|
|
@@ -2410,18 +2410,22 @@ var TimeSliderLiteConnect = function TimeSliderLiteConnect(_ref) {
|
|
|
2410
2410
|
var _React$useState = React.useState(false),
|
|
2411
2411
|
menuOpen = _React$useState[0],
|
|
2412
2412
|
setMenuOpen = _React$useState[1];
|
|
2413
|
+
// eslint-disable-next-line react/hook-use-state
|
|
2413
2414
|
var useTimeRange = React.useState(null);
|
|
2414
2415
|
var _ref2 = overrideUseTimeRange || useTimeRange,
|
|
2415
2416
|
timeRange = _ref2[0],
|
|
2416
2417
|
setTimeRange = _ref2[1];
|
|
2418
|
+
// eslint-disable-next-line react/hook-use-state
|
|
2417
2419
|
var useTimeStep = React.useState(null);
|
|
2418
2420
|
var _ref3 = overrideUseTimeStep || useTimeStep,
|
|
2419
2421
|
timeStep = _ref3[0],
|
|
2420
2422
|
setTimeStep = _ref3[1];
|
|
2423
|
+
// eslint-disable-next-line react/hook-use-state
|
|
2421
2424
|
var useTimeZone = React.useState('LT');
|
|
2422
2425
|
var _ref4 = overrideUseTimeZone || useTimeZone,
|
|
2423
2426
|
timeZone = _ref4[0],
|
|
2424
2427
|
setTimeZone = _ref4[1];
|
|
2428
|
+
// eslint-disable-next-line react/hook-use-state
|
|
2425
2429
|
var useUpdateInterval = React.useState(null);
|
|
2426
2430
|
var _ref5 = overrideUseUpdateInterval || useUpdateInterval,
|
|
2427
2431
|
updateInterval = _ref5[0],
|
|
@@ -2505,29 +2509,34 @@ var TimeSliderLiteConnect = function TimeSliderLiteConnect(_ref) {
|
|
|
2505
2509
|
setTimeStep(newTimeStep);
|
|
2506
2510
|
};
|
|
2507
2511
|
return jsxs(Fragment, {
|
|
2508
|
-
children: [isVisible && menuOpen && jsx(TimeSliderLiteOptionsMenu, Object.assign({
|
|
2509
|
-
|
|
2510
|
-
|
|
2512
|
+
children: [!!isVisible && !!menuOpen && jsx(TimeSliderLiteOptionsMenu, Object.assign({
|
|
2513
|
+
TimeZoneSwitch: timeSliderProps == null || (_timeSliderProps$sett = timeSliderProps.settings) == null ? void 0 : _timeSliderProps$sett.TimeZoneSwitch,
|
|
2514
|
+
closeButtonIcon: (_timeSliderProps$sett2 = timeSliderProps.settings) == null || (_timeSliderProps$sett2 = _timeSliderProps$sett2.closeButton) == null ? void 0 : _timeSliderProps$sett2.icon,
|
|
2511
2515
|
defaultTimeRange: [defaultStartTime, defaultEndTime],
|
|
2512
2516
|
defaultTimeStep: defaultTimeStep,
|
|
2517
|
+
dropdownButtonIcon: (_timeSliderProps$sett3 = timeSliderProps.settings) == null || (_timeSliderProps$sett3 = _timeSliderProps$sett3.dropdownButton) == null ? void 0 : _timeSliderProps$sett3.icon,
|
|
2518
|
+
menuOpen: menuOpen,
|
|
2519
|
+
setMenuOpen: setMenuOpen,
|
|
2520
|
+
useAnimationSpeed: [animationSpeed, handleAnimationSpeedChange],
|
|
2513
2521
|
useTimeRange: [timeRange, handleTimeRangeChange],
|
|
2514
2522
|
useTimeStep: [timeStep, handleTimeStepChange],
|
|
2515
|
-
useAnimationSpeed: [animationSpeed, handleAnimationSpeedChange],
|
|
2516
|
-
useUpdateInterval: [updateInterval, setUpdateInterval],
|
|
2517
2523
|
useTimeZone: [timeZone, setTimeZone],
|
|
2518
|
-
|
|
2519
|
-
dropdownButtonIcon: (_timeSliderProps$sett2 = timeSliderProps.settings) == null || (_timeSliderProps$sett2 = _timeSliderProps$sett2.dropdownButton) == null ? void 0 : _timeSliderProps$sett2.icon,
|
|
2520
|
-
TimeZoneSwitch: timeSliderProps == null || (_timeSliderProps$sett3 = timeSliderProps.settings) == null ? void 0 : _timeSliderProps$sett3.TimeZoneSwitch
|
|
2524
|
+
useUpdateInterval: [updateInterval, setUpdateInterval]
|
|
2521
2525
|
}, TimeSliderLiteOptionsMenuProps)), jsx(TimeSliderLite, Object.assign({
|
|
2522
2526
|
currentTime: currentTime,
|
|
2523
|
-
|
|
2524
|
-
timeStep: timeStep != null ? timeStep : defaultTimeStep,
|
|
2525
|
-
timeZone: timeZone,
|
|
2526
|
-
overrideAnimation: true,
|
|
2527
|
+
endTime: endTime,
|
|
2527
2528
|
isAnimating: !!isAnimating,
|
|
2528
2529
|
isVisible: isVisible,
|
|
2529
|
-
needleDisabled: zeroRange,
|
|
2530
2530
|
mapId: mapId,
|
|
2531
|
+
menuOpen: menuOpen,
|
|
2532
|
+
needleDisabled: zeroRange,
|
|
2533
|
+
onToggleAnimation: onToggleAnimation,
|
|
2534
|
+
onToggleMenu: function onToggleMenu() {
|
|
2535
|
+
return setMenuOpen(!menuOpen);
|
|
2536
|
+
},
|
|
2537
|
+
onToggleTimeSlider: onToggleTimeSliderVisibility,
|
|
2538
|
+
overrideAnimation: true,
|
|
2539
|
+
selectedTime: selectedTime,
|
|
2531
2540
|
setSelectedTime: function setSelectedTime(newSelectedTime) {
|
|
2532
2541
|
var newDate = preTimeDimensionSelect(mapId, newSelectedTime);
|
|
2533
2542
|
if (isAnimating) {
|
|
@@ -2543,14 +2552,9 @@ var TimeSliderLiteConnect = function TimeSliderLiteConnect(_ref) {
|
|
|
2543
2552
|
origin: mapEnums.MapActionOrigin.map
|
|
2544
2553
|
}));
|
|
2545
2554
|
},
|
|
2546
|
-
menuOpen: menuOpen,
|
|
2547
|
-
onToggleMenu: function onToggleMenu() {
|
|
2548
|
-
return setMenuOpen(!menuOpen);
|
|
2549
|
-
},
|
|
2550
|
-
onToggleTimeSlider: onToggleTimeSliderVisibility,
|
|
2551
|
-
onToggleAnimation: onToggleAnimation,
|
|
2552
2555
|
startTime: startTime,
|
|
2553
|
-
|
|
2556
|
+
timeStep: timeStep != null ? timeStep : defaultTimeStep,
|
|
2557
|
+
timeZone: timeZone
|
|
2554
2558
|
}, timeSliderProps))]
|
|
2555
2559
|
});
|
|
2556
2560
|
};
|