@synerise/ds-date-range-picker 0.15.5 → 0.16.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/CHANGELOG.md +28 -0
- package/dist/RangeFilter/Filters/new/Weekly/Weekly.js +6 -4
- package/dist/RangeFilter/Shared/TimeWindow/RangeFormContainer/RangeForm/RangeForm.js +12 -13
- package/dist/RangeFilter/Shared/TimeWindow/RangeFormContainer/RangeForm/RangeForm.types.d.ts +3 -3
- package/dist/RangeFilter/Shared/TimeWindow/RangeFormContainer/RangeFormContainer.d.ts +1 -1
- package/dist/RangeFilter/Shared/TimeWindow/RangeFormContainer/RangeFormContainer.js +31 -10
- package/dist/RangeFilter/Shared/TimeWindow/RangeFormContainer/RangeFormContainer.types.d.ts +3 -2
- package/dist/RangeFilter/Shared/TimeWindow/utils.d.ts +1 -1
- package/package.json +5 -5
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,34 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [0.16.0](https://github.com/Synerise/synerise-design/compare/@synerise/ds-date-range-picker@0.15.6...@synerise/ds-date-range-picker@0.16.0) (2022-09-13)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* **date-picker:** fix time picker updating ([f47725d](https://github.com/Synerise/synerise-design/commit/f47725da087b0381f6a7578b4e4952d27becaefd))
|
|
12
|
+
* **time-picker:** fix scroll picker issue ([6ab6f23](https://github.com/Synerise/synerise-design/commit/6ab6f23e50cc063494afb22496b286672f29ff35))
|
|
13
|
+
* **time-picker:** fixes for clear and hour select ([a060150](https://github.com/Synerise/synerise-design/commit/a0601503a9bfea4930c5b940d6f78e13599555a8))
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
### Features
|
|
17
|
+
|
|
18
|
+
* **date-picker:** fix start end valid logic ([171cb59](https://github.com/Synerise/synerise-design/commit/171cb5919a1e9da49fee06dbecd15c925c995808))
|
|
19
|
+
* **date-picker:** proper updating with clear action ([6ac56e4](https://github.com/Synerise/synerise-design/commit/6ac56e4e0b62c5786015a6f5379da0e4c181dda9))
|
|
20
|
+
* **date-picker:** test commit ([477311a](https://github.com/Synerise/synerise-design/commit/477311a51baf2561d189585cab03a0d2b168fbd9))
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
## [0.15.6](https://github.com/Synerise/synerise-design/compare/@synerise/ds-date-range-picker@0.15.5...@synerise/ds-date-range-picker@0.15.6) (2022-09-08)
|
|
27
|
+
|
|
28
|
+
**Note:** Version bump only for package @synerise/ds-date-range-picker
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
|
|
6
34
|
## [0.15.5](https://github.com/Synerise/synerise-design/compare/@synerise/ds-date-range-picker@0.15.4...@synerise/ds-date-range-picker@0.15.5) (2022-09-07)
|
|
7
35
|
|
|
8
36
|
**Note:** Version bump only for package @synerise/ds-date-range-picker
|
|
@@ -82,20 +82,22 @@ var Weekly = function Weekly(_ref) {
|
|
|
82
82
|
}, [value, activeDays, removeEmptyEntries]);
|
|
83
83
|
var handleDayTimeChange = React.useCallback(function (dayValue, dayKey, guid) {
|
|
84
84
|
var updatedSchedule = value;
|
|
85
|
+
var start = dayValue[0],
|
|
86
|
+
end = dayValue[1];
|
|
85
87
|
|
|
86
88
|
if (dayKey instanceof Array) {
|
|
87
89
|
dayKey.forEach(function (day) {
|
|
88
90
|
updatedSchedule[guid][day] = _objectSpread({}, value[guid][day], {
|
|
89
91
|
restricted: true,
|
|
90
|
-
start: dayjs(
|
|
91
|
-
stop: dayjs(
|
|
92
|
+
start: start ? dayjs(start).format(DEFAULT_TIME_FORMAT) : undefined,
|
|
93
|
+
stop: end ? dayjs(end).format(DEFAULT_TIME_FORMAT) : undefined
|
|
92
94
|
});
|
|
93
95
|
});
|
|
94
96
|
} else {
|
|
95
97
|
updatedSchedule[guid][dayKey] = _objectSpread({}, value[guid][dayKey], {
|
|
96
98
|
restricted: true,
|
|
97
|
-
start: dayjs(
|
|
98
|
-
stop: dayjs(
|
|
99
|
+
start: start ? dayjs(start).format(DEFAULT_TIME_FORMAT) : undefined,
|
|
100
|
+
stop: end ? dayjs(end).format(DEFAULT_TIME_FORMAT) : undefined
|
|
99
101
|
});
|
|
100
102
|
}
|
|
101
103
|
|
|
@@ -36,9 +36,6 @@ var RangeForm = function RangeForm(_ref) {
|
|
|
36
36
|
end = _React$useState2[0],
|
|
37
37
|
setEnd = _React$useState2[1];
|
|
38
38
|
|
|
39
|
-
var areStartAndEndValid = React.useMemo(function () {
|
|
40
|
-
return !!start && !!end;
|
|
41
|
-
}, [start, end]);
|
|
42
39
|
var getPopupContainer = React.useCallback(function (node) {
|
|
43
40
|
return node.parentElement != null ? node.parentElement : document.body;
|
|
44
41
|
}, []);
|
|
@@ -51,7 +48,9 @@ var RangeForm = function RangeForm(_ref) {
|
|
|
51
48
|
disabled: disabled,
|
|
52
49
|
clearTooltip: texts == null ? void 0 : texts.clear,
|
|
53
50
|
onChange: function onChange(date) {
|
|
54
|
-
|
|
51
|
+
onExactHourSelect(date);
|
|
52
|
+
setStart(date);
|
|
53
|
+
setEnd(date);
|
|
55
54
|
},
|
|
56
55
|
value: start,
|
|
57
56
|
dropdownProps: {
|
|
@@ -68,31 +67,31 @@ var RangeForm = function RangeForm(_ref) {
|
|
|
68
67
|
clearTooltip: texts == null ? void 0 : texts.clear,
|
|
69
68
|
onChange: function onChange(date) {
|
|
70
69
|
setStart(date);
|
|
71
|
-
|
|
70
|
+
onStartChange(date);
|
|
72
71
|
},
|
|
73
72
|
value: start,
|
|
74
73
|
dropdownProps: {
|
|
75
74
|
getPopupContainer: getPopupContainer
|
|
76
75
|
},
|
|
77
|
-
disabledHours:
|
|
78
|
-
disabledMinutes:
|
|
79
|
-
disabledSeconds:
|
|
76
|
+
disabledHours: getDisabledTimeOptions(start || end, 'HOURS', null, end),
|
|
77
|
+
disabledMinutes: getDisabledTimeOptions(start || end, 'MINUTES', null, end),
|
|
78
|
+
disabledSeconds: getDisabledTimeOptions(start || end, 'SECONDS', null, end)
|
|
80
79
|
}, timePickerProps)), /*#__PURE__*/React.createElement(S.Separator, null, "-"), /*#__PURE__*/React.createElement(TimePicker, _extends({
|
|
81
80
|
disabled: disabled,
|
|
82
81
|
clearTooltip: texts == null ? void 0 : texts.clear,
|
|
83
82
|
onChange: function onChange(date) {
|
|
84
83
|
setEnd(date);
|
|
85
|
-
|
|
84
|
+
onEndChange(date);
|
|
86
85
|
},
|
|
87
86
|
value: end,
|
|
88
87
|
dropdownProps: {
|
|
89
88
|
getPopupContainer: getPopupContainer
|
|
90
89
|
},
|
|
91
|
-
disabledHours:
|
|
92
|
-
disabledMinutes:
|
|
93
|
-
disabledSeconds:
|
|
90
|
+
disabledHours: getDisabledTimeOptions(end || start, 'HOURS', start, null),
|
|
91
|
+
disabledMinutes: getDisabledTimeOptions(end || start, 'MINUTES', start, null),
|
|
92
|
+
disabledSeconds: getDisabledTimeOptions(end || start, 'SECONDS', start, null)
|
|
94
93
|
}, timePickerProps)));
|
|
95
|
-
}, [
|
|
94
|
+
}, [start, end, onStartChange, onEndChange, setStart, setEnd, getPopupContainer, texts, timePickerProps, disabled]);
|
|
96
95
|
var limitModeSelect = React.useMemo(function () {
|
|
97
96
|
return valueSelectionModes.length > 1 ? /*#__PURE__*/React.createElement(Select, {
|
|
98
97
|
value: mode,
|
package/dist/RangeFilter/Shared/TimeWindow/RangeFormContainer/RangeForm/RangeForm.types.d.ts
CHANGED
|
@@ -9,9 +9,9 @@ export declare type RangeFormProps = {
|
|
|
9
9
|
title?: React.ReactNode;
|
|
10
10
|
startDate: Date | undefined;
|
|
11
11
|
endDate: Date | undefined;
|
|
12
|
-
onStartChange: (value
|
|
13
|
-
onEndChange: (value
|
|
14
|
-
onExactHourSelect: (value
|
|
12
|
+
onStartChange: (value?: Date) => void;
|
|
13
|
+
onEndChange: (value?: Date) => void;
|
|
14
|
+
onExactHourSelect: (value?: Date) => void;
|
|
15
15
|
onRangeDelete?: () => void;
|
|
16
16
|
valueSelectionModes: DateLimitMode[];
|
|
17
17
|
} & WithTranslations & WithDisabledProp & Pick<RangeFormContainerProps, 'timePickerProps'>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import { RangeFormContainerProps } from './RangeFormContainer.types';
|
|
2
|
+
import type { RangeFormContainerProps } from './RangeFormContainer.types';
|
|
3
3
|
declare const RangeFormContainer: React.FC<RangeFormContainerProps>;
|
|
4
4
|
export default RangeFormContainer;
|
|
@@ -60,6 +60,33 @@ var RangeFormContainer = function RangeFormContainer(_ref) {
|
|
|
60
60
|
React.useEffect(function () {
|
|
61
61
|
setMode((dayValue == null ? void 0 : dayValue.mode) || valueSelectionModes[0] || DEFAULT_LIMIT_MODE);
|
|
62
62
|
}, [dayValue, valueSelectionModes]);
|
|
63
|
+
var onStartChange = React.useCallback(function (start) {
|
|
64
|
+
var end = dayValue.stop;
|
|
65
|
+
var value = [start, end ? getDateFromDayValue(end, timeFormat) : undefined];
|
|
66
|
+
|
|
67
|
+
if (activeDays.length > 1) {
|
|
68
|
+
onMultipleDayTimeChange(value);
|
|
69
|
+
} else {
|
|
70
|
+
onDayTimeChange(value, dayKeys);
|
|
71
|
+
}
|
|
72
|
+
}, [activeDays, onMultipleDayTimeChange, onDayTimeChange, timeFormat, dayValue, dayKeys]);
|
|
73
|
+
var onEndChange = React.useCallback(function (end) {
|
|
74
|
+
var start = dayValue.start;
|
|
75
|
+
var value = [start ? getDateFromDayValue(dayValue.start, timeFormat) : undefined, end];
|
|
76
|
+
|
|
77
|
+
if (activeDays.length > 1) {
|
|
78
|
+
onMultipleDayTimeChange(value);
|
|
79
|
+
} else {
|
|
80
|
+
onDayTimeChange(value, dayKeys);
|
|
81
|
+
}
|
|
82
|
+
}, [activeDays, onMultipleDayTimeChange, onDayTimeChange, timeFormat, dayValue, dayKeys]);
|
|
83
|
+
var onExactHourSelect = React.useCallback(function (value) {
|
|
84
|
+
if (activeDays.length > 1) {
|
|
85
|
+
onMultipleDayTimeChange([value, value]);
|
|
86
|
+
} else {
|
|
87
|
+
onDayTimeChange([value, value], dayKeys);
|
|
88
|
+
}
|
|
89
|
+
}, [activeDays, onMultipleDayTimeChange, onDayTimeChange, dayKeys]);
|
|
63
90
|
var rangeForm = React.useMemo(function () {
|
|
64
91
|
return /*#__PURE__*/React.createElement(RangeForm, {
|
|
65
92
|
disabled: disabled,
|
|
@@ -71,20 +98,14 @@ var RangeFormContainer = function RangeFormContainer(_ref) {
|
|
|
71
98
|
mode: mode,
|
|
72
99
|
startDate: dayValue != null && dayValue.start ? getDateFromDayValue(dayValue.start, timeFormat) : undefined,
|
|
73
100
|
endDate: dayValue != null && dayValue.stop ? getDateFromDayValue(dayValue.stop, timeFormat) : undefined,
|
|
74
|
-
onStartChange:
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
onEndChange: function onEndChange(value) {
|
|
78
|
-
return activeDays.length > 1 ? onMultipleDayTimeChange([getDateFromDayValue(dayValue.start, timeFormat), value]) : onDayTimeChange([getDateFromDayValue(dayValue.start, timeFormat), value], dayKeys);
|
|
79
|
-
},
|
|
80
|
-
onExactHourSelect: function onExactHourSelect(value) {
|
|
81
|
-
activeDays.length > 1 ? onMultipleDayTimeChange([value, value]) : onDayTimeChange([value, value], dayKeys);
|
|
82
|
-
},
|
|
101
|
+
onStartChange: onStartChange,
|
|
102
|
+
onEndChange: onEndChange,
|
|
103
|
+
onExactHourSelect: onExactHourSelect,
|
|
83
104
|
onRangeDelete: onRangeDelete,
|
|
84
105
|
valueSelectionModes: valueSelectionModes,
|
|
85
106
|
timePickerProps: timePickerProps
|
|
86
107
|
});
|
|
87
|
-
}, [timeFormat, valueSelectionModes, handleModeChange,
|
|
108
|
+
}, [timeFormat, valueSelectionModes, handleModeChange, mode, disabled, dayValue, onRangeDelete, texts, timePickerProps, onStartChange, onEndChange, onExactHourSelect]);
|
|
88
109
|
var suffix = React.useMemo(function () {
|
|
89
110
|
return renderSuffix ? renderSuffix() : /*#__PURE__*/React.createElement(RangeActions, {
|
|
90
111
|
onRangeClear: onRangeClear,
|
|
@@ -3,14 +3,15 @@ import { TimePickerProps } from '@synerise/ds-time-picker/dist/TimePicker.types'
|
|
|
3
3
|
import { DayKey, RangeActions, TimeWindowProps, TimeWindowTexts } from '../TimeWindow.types';
|
|
4
4
|
import { FilterDefinition, WithDisabledProp } from '../../../RangeFilter.types';
|
|
5
5
|
import { DateLimitMode } from './RangeForm/RangeForm.types';
|
|
6
|
+
export declare type DateValue = [Date | undefined, Date | undefined];
|
|
6
7
|
export declare type RangeFormContainerProps = {
|
|
7
8
|
activeDays: DayKey[];
|
|
8
9
|
dayKeys: DayKey | DayKey[];
|
|
9
10
|
getDayLabel: (dayKey: DayKey, long?: boolean) => string | object | React.ReactNode;
|
|
10
11
|
getDayValue: (dayKey: DayKey) => Partial<FilterDefinition>;
|
|
11
|
-
onMultipleDayTimeChange: (value:
|
|
12
|
+
onMultipleDayTimeChange: (value: DateValue) => void;
|
|
13
|
+
onDayTimeChange: (value: DateValue, dayKey: DayKey) => void;
|
|
12
14
|
onModeChange?: (mode: DateLimitMode) => void;
|
|
13
|
-
onDayTimeChange: (value: [Date, Date], dayKey: DayKey) => void;
|
|
14
15
|
onRangeDelete?: () => void;
|
|
15
16
|
valueSelectionModes: DateLimitMode[];
|
|
16
17
|
texts: Partial<TimeWindowTexts>;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { DateLimitMode } from './RangeFormContainer/RangeForm/RangeForm.types';
|
|
2
2
|
import { FilterDefinition } from '../../RangeFilter.types';
|
|
3
|
-
export declare const getDateFromDayValue: (dayValue
|
|
3
|
+
export declare const getDateFromDayValue: (dayValue?: string | undefined, hourTimeFormat?: string | undefined) => Date;
|
|
4
4
|
export declare const reverseRange: (inputRange: number[], groupItem: number) => number[];
|
|
5
5
|
export declare const getDefaultFilterForLimitMode: (mode: DateLimitMode) => Partial<FilterDefinition>;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@synerise/ds-date-range-picker",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.16.0",
|
|
4
4
|
"description": "Date-Range-Picker UI Component for the Synerise Design System",
|
|
5
5
|
"license": "ISC",
|
|
6
6
|
"repository": "Synerise/synerise-design",
|
|
@@ -34,10 +34,10 @@
|
|
|
34
34
|
"dependencies": {
|
|
35
35
|
"@date-fns/upgrade": "^1.0.3",
|
|
36
36
|
"@synerise/ds-button": "^0.17.9",
|
|
37
|
-
"@synerise/ds-date-picker": "^0.6.
|
|
37
|
+
"@synerise/ds-date-picker": "^0.6.39",
|
|
38
38
|
"@synerise/ds-icon": "^0.51.0",
|
|
39
|
-
"@synerise/ds-manageable-list": "^0.23.
|
|
40
|
-
"@synerise/ds-time-picker": "^0.6.
|
|
39
|
+
"@synerise/ds-manageable-list": "^0.23.34",
|
|
40
|
+
"@synerise/ds-time-picker": "^0.6.38",
|
|
41
41
|
"@synerise/ds-tooltip": "^0.11.17",
|
|
42
42
|
"@synerise/ds-utils": "^0.19.0",
|
|
43
43
|
"date-fns": "^2.16.1",
|
|
@@ -54,5 +54,5 @@
|
|
|
54
54
|
"devDependencies": {
|
|
55
55
|
"@types/ramda": "^0.27.14"
|
|
56
56
|
},
|
|
57
|
-
"gitHead": "
|
|
57
|
+
"gitHead": "4a728965c03f982f1da86336e3a16db41ffc5a27"
|
|
58
58
|
}
|