@synerise/ds-date-range-picker 0.21.22 → 0.21.24
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 +22 -0
- package/README.md +1 -0
- package/dist/DateRangePicker.types.d.ts +2 -0
- package/dist/RangeFilter/Filters/new/Weekly/Weekly.js +13 -23
- package/dist/RangeFilter/Filters/new/Weekly/utils.d.ts +1 -0
- package/dist/RangeFilter/Filters/new/Weekly/utils.js +9 -0
- package/dist/RangeFilter/Filters/new/Weekly/utils.spec.d.ts +1 -0
- package/dist/RangeFilter/Filters/new/Weekly/utils.spec.js +36 -0
- package/dist/RangeFilter/Shared/TimeWindow/RangeFormContainer/RangeFormContainer.js +7 -5
- package/dist/RangePicker/utils.js +26 -67
- package/dist/RawDateRangePicker.d.ts +1 -1
- package/dist/RawDateRangePicker.js +14 -9
- package/package.json +4 -4
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,28 @@
|
|
|
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.21.24](https://github.com/Synerise/synerise-design/compare/@synerise/ds-date-range-picker@0.21.23...@synerise/ds-date-range-picker@0.21.24) (2023-08-09)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* **date-range-picker:** weekly filter standalone starttime reset fixed ([63072c2](https://github.com/Synerise/synerise-design/commit/63072c21bbe63286f2b5b31decf7f58b22c1ac1d))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
## [0.21.23](https://github.com/Synerise/synerise-design/compare/@synerise/ds-date-range-picker@0.21.22...@synerise/ds-date-range-picker@0.21.23) (2023-08-03)
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
### Bug Fixes
|
|
21
|
+
|
|
22
|
+
* **date-range-picker:** fixed algorithm for disabling timepicker options ([487066f](https://github.com/Synerise/synerise-design/commit/487066f75f0bd1949ec4a5bf28effa40c1f9f2e8))
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
6
28
|
## [0.21.22](https://github.com/Synerise/synerise-design/compare/@synerise/ds-date-range-picker@0.21.21...@synerise/ds-date-range-picker@0.21.22) (2023-07-26)
|
|
7
29
|
|
|
8
30
|
**Note:** Version bump only for package @synerise/ds-date-range-picker
|
package/README.md
CHANGED
|
@@ -60,6 +60,7 @@ const value = {
|
|
|
60
60
|
| value | Value of the picker | DateRange | new Date() |
|
|
61
61
|
| startAlwaysOnTheLeft | Enable not to move month from left side to right side | boolean | `false` |
|
|
62
62
|
| onVisibleChange | Callback executed when popover with dateRangePicker changes its visibility | (visible: boolean) => void | - |
|
|
63
|
+
| filterValueSelectionModes | Allowed modes to display in filter | DateLimitMode[] | ["Range", "Hour"] |
|
|
63
64
|
|
|
64
65
|
### DateRange
|
|
65
66
|
|
|
@@ -7,6 +7,7 @@ import { FilterDefinition } from './RangeFilter/RangeFilter.types';
|
|
|
7
7
|
import { SavedFilter } from './RangeFilter/Shared/FilterDropdown/FilterDropdown.types';
|
|
8
8
|
import { Props as FooterProps } from './Footer/Footer.types';
|
|
9
9
|
import { RangePickerInputProps } from './RangePickerInput/RangePickerInput.types';
|
|
10
|
+
import { DateLimitMode } from './RangeFilter/Shared/TimeWindow/RangeFormContainer/RangeForm/RangeForm.types';
|
|
10
11
|
export { DateRange } from './date.types';
|
|
11
12
|
export declare type CustomColorArrow = 'blue' | 'grey' | 'red' | 'green' | 'yellow' | 'pink' | 'mars' | 'orange' | 'fern' | 'cyan' | 'purple' | 'violet';
|
|
12
13
|
export declare type AdditionalMapper = {
|
|
@@ -67,6 +68,7 @@ export interface DateRangePickerProps extends WrappedComponentProps {
|
|
|
67
68
|
allowedFilterTypes?: string[];
|
|
68
69
|
renderPopoverTrigger?: (...args: any) => JSX.Element;
|
|
69
70
|
isTruncateMs?: boolean;
|
|
71
|
+
filterValueSelectionModes?: DateLimitMode[];
|
|
70
72
|
}
|
|
71
73
|
/**
|
|
72
74
|
* @deprecated use `DateRangePickerProps`
|
|
@@ -6,7 +6,7 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
|
|
|
6
6
|
|
|
7
7
|
import * as React from 'react';
|
|
8
8
|
import { useIntl } from 'react-intl';
|
|
9
|
-
import
|
|
9
|
+
import dayjs from 'dayjs';
|
|
10
10
|
import { v4 as uuid } from 'uuid';
|
|
11
11
|
import { useDataFormat } from '@synerise/ds-data-format';
|
|
12
12
|
import RangeFormContainer from '../../../Shared/TimeWindow/RangeFormContainer/RangeFormContainer';
|
|
@@ -15,7 +15,7 @@ import Grid from '../../../Shared/TimeWindow/Grid/Grid';
|
|
|
15
15
|
import Day from '../../../Shared/TimeWindow/Day/Day';
|
|
16
16
|
import * as S from '../../../RangeFilter.styles';
|
|
17
17
|
import { useShiftAndControlKeys } from '../hooks/useShiftAndControlKeys';
|
|
18
|
-
import { canAddAnotherRange, haveActiveDaysCommonRange, range } from './utils';
|
|
18
|
+
import { canAddAnotherRange, haveActiveDaysCommonRange, range, removeEmptyEntries } from './utils';
|
|
19
19
|
import { DEFAULT_RANGE_START, DEFAULT_RANGE_END, DEFAULT_TIME_FORMAT, EMPTY_OBJECT, DEFAULT_MAX_ENTRIES, RENDER_EMPTY_NODE_FN, NOOP } from '../constants';
|
|
20
20
|
import { EU_NOTATION_WEEK_DAYS_INDEXES, US_NOTATION_WEEK_DAYS_INDEXES } from '../../../Shared/TimeWindow/constants/timeWindow.constants';
|
|
21
21
|
|
|
@@ -65,27 +65,14 @@ var Weekly = function Weekly(_ref) {
|
|
|
65
65
|
return isSundayFirstWeekDay ? US_NOTATION_WEEK_DAYS_INDEXES : EU_NOTATION_WEEK_DAYS_INDEXES;
|
|
66
66
|
}, [isSundayFirstWeekDay]);
|
|
67
67
|
React.useEffect(function () {
|
|
68
|
-
|
|
69
|
-
}, [value]);
|
|
70
|
-
var removeEmptyEntries = React.useCallback(function (weeklySchedule) {
|
|
71
|
-
var emptyEntries = Object.keys(weeklySchedule).filter(function (key) {
|
|
72
|
-
return Object.keys(weeklySchedule[key]).length === 0;
|
|
73
|
-
});
|
|
74
|
-
var scheduleToUpdate = weeklySchedule;
|
|
75
|
-
emptyEntries.forEach(function (emptyEntry) {
|
|
76
|
-
delete scheduleToUpdate[emptyEntry];
|
|
77
|
-
});
|
|
78
|
-
onChange(scheduleToUpdate);
|
|
79
|
-
}, [onChange]);
|
|
80
|
-
React.useEffect(function () {
|
|
68
|
+
removeEmptyEntries(value);
|
|
81
69
|
var entriesWithActiveDaysValue = activeDays.length ? Object.keys(value).filter(function (id) {
|
|
82
70
|
return activeDays.every(function (day) {
|
|
83
71
|
return !!value[id][day] && haveActiveDaysCommonRange(value[id], activeDays);
|
|
84
72
|
});
|
|
85
73
|
}) : [];
|
|
86
|
-
removeEmptyEntries(value);
|
|
87
74
|
setFilteredSchedule(entriesWithActiveDaysValue);
|
|
88
|
-
}, [value, activeDays
|
|
75
|
+
}, [value, activeDays]);
|
|
89
76
|
var handleDayTimeChange = React.useCallback(function (dayValue, dayKey, guid) {
|
|
90
77
|
var updatedSchedule = value;
|
|
91
78
|
var start = dayValue[0],
|
|
@@ -93,13 +80,15 @@ var Weekly = function Weekly(_ref) {
|
|
|
93
80
|
|
|
94
81
|
if (dayKey instanceof Array) {
|
|
95
82
|
dayKey.forEach(function (day) {
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
83
|
+
if (guid in updatedSchedule) {
|
|
84
|
+
updatedSchedule[guid][day] = _objectSpread({}, value[guid][day], {
|
|
85
|
+
restricted: true,
|
|
86
|
+
start: start ? dayjs(start).format(DEFAULT_TIME_FORMAT) : undefined,
|
|
87
|
+
stop: end ? dayjs(end).format(DEFAULT_TIME_FORMAT) : undefined
|
|
88
|
+
});
|
|
89
|
+
}
|
|
101
90
|
});
|
|
102
|
-
} else {
|
|
91
|
+
} else if (guid in updatedSchedule) {
|
|
103
92
|
updatedSchedule[guid][dayKey] = _objectSpread({}, value[guid][dayKey], {
|
|
104
93
|
restricted: true,
|
|
105
94
|
start: start ? dayjs(start).format(DEFAULT_TIME_FORMAT) : undefined,
|
|
@@ -301,6 +290,7 @@ var Weekly = function Weekly(_ref) {
|
|
|
301
290
|
defaultMessage: 'The maximum amount of ranges have been selected.'
|
|
302
291
|
})
|
|
303
292
|
}), shouldRenderAddButton && /*#__PURE__*/React.createElement(AddButton, {
|
|
293
|
+
"data-testid": "drp-filter-add-range",
|
|
304
294
|
label: intl.formatMessage({
|
|
305
295
|
id: 'DS.DATE-RANGE-PICKER.ADD-TIME',
|
|
306
296
|
defaultMessage: 'Add range'
|
|
@@ -3,3 +3,4 @@ import { DayKey } from '../../WeeklyFilter/WeeklyFilter.types';
|
|
|
3
3
|
export declare const range: (start: number, stop: number) => number[];
|
|
4
4
|
export declare const haveActiveDaysCommonRange: (days: Record<DayOfWeekIndex, WeeklyScheduleDayValue>, activeDaysArray: DayKey[]) => boolean;
|
|
5
5
|
export declare const canAddAnotherRange: (schedule: WeeklySchedule, activeDays: DayKey[], maxRanges?: number) => boolean;
|
|
6
|
+
export declare const removeEmptyEntries: (weeklySchedule: WeeklySchedule) => void;
|
|
@@ -40,4 +40,13 @@ export var canAddAnotherRange = function canAddAnotherRange(schedule, activeDays
|
|
|
40
40
|
return schedule[key][day] === undefined;
|
|
41
41
|
}) && !haveActiveDaysCommonRange(schedule[key], activeDays);
|
|
42
42
|
});
|
|
43
|
+
};
|
|
44
|
+
export var removeEmptyEntries = function removeEmptyEntries(weeklySchedule) {
|
|
45
|
+
var emptyEntries = Object.keys(weeklySchedule).filter(function (key) {
|
|
46
|
+
return Object.keys(weeklySchedule[key]).length === 0;
|
|
47
|
+
});
|
|
48
|
+
var scheduleToUpdate = weeklySchedule;
|
|
49
|
+
emptyEntries.forEach(function (emptyEntry) {
|
|
50
|
+
delete scheduleToUpdate[emptyEntry];
|
|
51
|
+
});
|
|
43
52
|
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import '@testing-library/jest-dom/extend-expect';
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
|
|
2
|
+
|
|
3
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
4
|
+
|
|
5
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
6
|
+
|
|
7
|
+
import '@testing-library/jest-dom/extend-expect';
|
|
8
|
+
import { removeEmptyEntries } from './utils';
|
|
9
|
+
var dayValue = {
|
|
10
|
+
"start": "06:00:00.000",
|
|
11
|
+
"stop": "20:59:59.999",
|
|
12
|
+
"restricted": true,
|
|
13
|
+
"display": false,
|
|
14
|
+
"inverted": false,
|
|
15
|
+
"mode": "Range"
|
|
16
|
+
};
|
|
17
|
+
var scheduleWithEmptyEntries = {
|
|
18
|
+
'5de64ead-e81e-4bf9-8e13-47e8829b8cc3': {
|
|
19
|
+
0: _objectSpread({}, dayValue),
|
|
20
|
+
1: _objectSpread({}, dayValue),
|
|
21
|
+
2: _objectSpread({}, dayValue),
|
|
22
|
+
3: _objectSpread({}, dayValue),
|
|
23
|
+
4: _objectSpread({}, dayValue),
|
|
24
|
+
5: _objectSpread({}, dayValue),
|
|
25
|
+
6: _objectSpread({}, dayValue)
|
|
26
|
+
},
|
|
27
|
+
// @ts-ignore
|
|
28
|
+
'5dr44ead-e81e-4bf9-8e13-47e8829b8cc3': {}
|
|
29
|
+
};
|
|
30
|
+
describe('Weekly utils', function () {
|
|
31
|
+
it('removeEmptyEntries should clear entries with no day data', function () {
|
|
32
|
+
removeEmptyEntries(scheduleWithEmptyEntries);
|
|
33
|
+
expect(Object.keys(scheduleWithEmptyEntries).length).toBe(1);
|
|
34
|
+
expect(Object.keys(scheduleWithEmptyEntries)[0]).toBe('5de64ead-e81e-4bf9-8e13-47e8829b8cc3');
|
|
35
|
+
});
|
|
36
|
+
});
|
|
@@ -62,7 +62,8 @@ var RangeFormContainer = function RangeFormContainer(_ref) {
|
|
|
62
62
|
setMode((dayValue == null ? void 0 : dayValue.mode) || valueSelectionModes[0] || DEFAULT_LIMIT_MODE);
|
|
63
63
|
}, [dayValue, valueSelectionModes]);
|
|
64
64
|
var onStartChange = React.useCallback(function (start) {
|
|
65
|
-
var
|
|
65
|
+
var dayVal = getDayValue(activeDays[0]);
|
|
66
|
+
var end = dayVal.stop;
|
|
66
67
|
var value = [start, end ? getDateFromDayValue(end, timeFormat) : undefined];
|
|
67
68
|
|
|
68
69
|
if (activeDays.length > 1) {
|
|
@@ -70,17 +71,18 @@ var RangeFormContainer = function RangeFormContainer(_ref) {
|
|
|
70
71
|
} else {
|
|
71
72
|
onDayTimeChange(value, dayKeys);
|
|
72
73
|
}
|
|
73
|
-
}, [activeDays, onMultipleDayTimeChange, onDayTimeChange, timeFormat,
|
|
74
|
+
}, [activeDays, onMultipleDayTimeChange, onDayTimeChange, timeFormat, getDayValue, dayKeys]);
|
|
74
75
|
var onEndChange = React.useCallback(function (end) {
|
|
75
|
-
var
|
|
76
|
-
var
|
|
76
|
+
var dayVal = getDayValue(activeDays[0]);
|
|
77
|
+
var start = dayVal.start;
|
|
78
|
+
var value = [start ? getDateFromDayValue(start, timeFormat) : undefined, end];
|
|
77
79
|
|
|
78
80
|
if (activeDays.length > 1) {
|
|
79
81
|
onMultipleDayTimeChange(value);
|
|
80
82
|
} else {
|
|
81
83
|
onDayTimeChange(value, dayKeys);
|
|
82
84
|
}
|
|
83
|
-
}, [activeDays, onMultipleDayTimeChange, onDayTimeChange, timeFormat,
|
|
85
|
+
}, [activeDays, onMultipleDayTimeChange, onDayTimeChange, timeFormat, getDayValue, dayKeys]);
|
|
84
86
|
var onExactHourSelect = React.useCallback(function (value) {
|
|
85
87
|
if (activeDays.length > 1) {
|
|
86
88
|
onMultipleDayTimeChange([value, value]);
|
|
@@ -18,14 +18,6 @@ var getAmOrPmFromDate = function getAmOrPmFromDate(date) {
|
|
|
18
18
|
return dayjs(date).get(HOUR) >= HOUR_12 ? PM : AM;
|
|
19
19
|
};
|
|
20
20
|
|
|
21
|
-
var change24To12Hour = function change24To12Hour(date) {
|
|
22
|
-
var dateBuilder = dayjs(date);
|
|
23
|
-
var hour = dateBuilder.get(HOUR);
|
|
24
|
-
var hourToMap = MAP_24_HOUR_TO_12[hour];
|
|
25
|
-
dateBuilder = dateBuilder.set(HOUR, hourToMap);
|
|
26
|
-
return dateBuilder.toDate();
|
|
27
|
-
};
|
|
28
|
-
|
|
29
21
|
export var getDisabledTimeOptions = function getDisabledTimeOptions(initialDay, granularity, initialLowerLimit, initialUpperLimit, is12HoursClock) {
|
|
30
22
|
if (initialLowerLimit === void 0) {
|
|
31
23
|
initialLowerLimit = null;
|
|
@@ -43,56 +35,27 @@ export var getDisabledTimeOptions = function getDisabledTimeOptions(initialDay,
|
|
|
43
35
|
return [];
|
|
44
36
|
}
|
|
45
37
|
|
|
46
|
-
var dayClockMode = getAmOrPmFromDate(legacyParse(day));
|
|
47
|
-
var lowerLimitClockMode = getAmOrPmFromDate(legacyParse(lowerLimit));
|
|
48
|
-
var upperLimitClockMode = getAmOrPmFromDate(legacyParse(upperLimit));
|
|
49
38
|
var dayBuilder = dayjs(day);
|
|
50
|
-
var
|
|
39
|
+
var dayClockMode = getAmOrPmFromDate(legacyParse(day));
|
|
40
|
+
var disableMeridienToggle = false;
|
|
51
41
|
|
|
52
|
-
if (is12HoursClock &&
|
|
53
|
-
|
|
54
|
-
return [DISABLE_CLOCK_MODE_HOUR];
|
|
55
|
-
}
|
|
42
|
+
if (is12HoursClock && granularity === HOURS_GRANULARITY) {
|
|
43
|
+
var diff;
|
|
56
44
|
|
|
57
|
-
if (
|
|
58
|
-
|
|
59
|
-
var lowLimitDayBuilder = dayjs(lowerLimit);
|
|
45
|
+
if (lowerLimit) {
|
|
46
|
+
diff = dayBuilder.diff(dayjs(lowerLimit), 'minute') / 60;
|
|
60
47
|
|
|
61
|
-
if (
|
|
62
|
-
|
|
48
|
+
if (diff < 12 && dayClockMode === PM) {
|
|
49
|
+
disableMeridienToggle = true;
|
|
63
50
|
}
|
|
64
51
|
}
|
|
65
52
|
|
|
66
|
-
if (
|
|
67
|
-
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
if (lowerLimitClockMode === PM && dayClockMode === PM) {
|
|
71
|
-
day = change24To12Hour(legacyParse(day));
|
|
72
|
-
lowerLimit = change24To12Hour(legacyParse(lowerLimit));
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
if (is12HoursClock && upperLimit) {
|
|
77
|
-
if (upperLimitClockMode === PM && dayClockMode === PM) {
|
|
78
|
-
day = change24To12Hour(legacyParse(day));
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
upperLimit = change24To12Hour(legacyParse(upperLimit));
|
|
82
|
-
var upLimitDayBuilder = dayjs(upperLimit);
|
|
83
|
-
|
|
84
|
-
if (upperLimitClockMode === PM && dayClockMode === AM && dayBuilder.isAfter(upLimitDayBuilder)) {
|
|
85
|
-
return [DISABLE_CLOCK_MODE_HOUR];
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
if (upperLimitClockMode === PM && dayClockMode === AM) {
|
|
89
|
-
return [];
|
|
90
|
-
}
|
|
91
|
-
}
|
|
53
|
+
if (upperLimit) {
|
|
54
|
+
diff = dayjs(upperLimit).diff(dayBuilder, 'minute') / 60;
|
|
92
55
|
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
56
|
+
if (diff < 12 && dayClockMode === AM) {
|
|
57
|
+
disableMeridienToggle = true;
|
|
58
|
+
}
|
|
96
59
|
}
|
|
97
60
|
}
|
|
98
61
|
|
|
@@ -110,27 +73,23 @@ export var getDisabledTimeOptions = function getDisabledTimeOptions(initialDay,
|
|
|
110
73
|
return GET[granularity](option);
|
|
111
74
|
});
|
|
112
75
|
|
|
113
|
-
if (is12HoursClock) {
|
|
114
|
-
if (
|
|
76
|
+
if (is12HoursClock && granularity === HOURS_GRANULARITY) {
|
|
77
|
+
if (dayClockMode === AM) {
|
|
115
78
|
result = result.filter(function (item) {
|
|
116
|
-
return item
|
|
79
|
+
return item < HOUR_12;
|
|
117
80
|
});
|
|
81
|
+
} else if (dayClockMode === PM) {
|
|
82
|
+
result = result.filter(function (item) {
|
|
83
|
+
return item >= HOUR_12;
|
|
84
|
+
});
|
|
85
|
+
}
|
|
118
86
|
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
if (lowerLimitClockMode === PM && lowerLimitHour !== HOUR_12 && result[0] === 0) {
|
|
124
|
-
result.push(HOUR_12);
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
if (lowerLimitClockMode === AM && lowerLimitHour !== 0 && dayClockMode === AM && initialLowerLimit !== null) {
|
|
128
|
-
result.push(HOUR_12);
|
|
129
|
-
}
|
|
87
|
+
result = result.map(function (item) {
|
|
88
|
+
return MAP_24_HOUR_TO_12[item];
|
|
89
|
+
});
|
|
130
90
|
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
}
|
|
91
|
+
if (disableMeridienToggle) {
|
|
92
|
+
result.push(DISABLE_CLOCK_MODE_HOUR);
|
|
134
93
|
}
|
|
135
94
|
}
|
|
136
95
|
|
|
@@ -27,7 +27,7 @@ export declare class RawDateRangePicker extends React.PureComponent<DateRangePic
|
|
|
27
27
|
getAddons: () => AddonType[];
|
|
28
28
|
render(): JSX.Element;
|
|
29
29
|
}
|
|
30
|
-
declare const _default: React.ForwardRefExoticComponent<Pick<DateRangePickerProps, "readOnly" | "texts" | "valueFormatOptions" | "format" | "value" | "onVisibleChange" | "rangeUnits" | "containerClass" | "disableDefaultTexts" | "disabledDate" | "forceAdjacentMonths" | "forceAbsolute" | "footerProps" | "onValueChange" | "onApply" | "onFilterSave" | "popoverProps" | "popoverTrigger" | "ranges" | "relativeFuture" | "relativePast" | "relativeModes" | "savedFilters" | "showRelativePicker" | "showFilter" | "showTime" | "showCustomRange" | "validate" | "valueTransformer" | "arrowColor" | "disableAbsoluteTimepickerInRelative" | "rangePickerInputProps" | "allowedFilterTypes" | "renderPopoverTrigger" | "isTruncateMs"> & {
|
|
30
|
+
declare const _default: React.ForwardRefExoticComponent<Pick<DateRangePickerProps, "readOnly" | "texts" | "valueFormatOptions" | "format" | "value" | "onVisibleChange" | "rangeUnits" | "containerClass" | "disableDefaultTexts" | "disabledDate" | "forceAdjacentMonths" | "forceAbsolute" | "footerProps" | "onValueChange" | "onApply" | "onFilterSave" | "popoverProps" | "popoverTrigger" | "ranges" | "relativeFuture" | "relativePast" | "relativeModes" | "savedFilters" | "showRelativePicker" | "showFilter" | "showTime" | "showCustomRange" | "validate" | "valueTransformer" | "arrowColor" | "disableAbsoluteTimepickerInRelative" | "rangePickerInputProps" | "allowedFilterTypes" | "renderPopoverTrigger" | "isTruncateMs" | "filterValueSelectionModes"> & {
|
|
31
31
|
forwardedRef?: ((instance: any) => void) | React.RefObject<any> | null | undefined;
|
|
32
32
|
} & React.RefAttributes<any>> & {
|
|
33
33
|
WrappedComponent: React.ComponentType<DateRangePickerProps>;
|
|
@@ -29,17 +29,19 @@ import RangeFilter from './RangeFilter/RangeFilter';
|
|
|
29
29
|
import RangeFilterStatus from './RangeFilter/Shared/RangeFilterStatus/RangeFilterStatus';
|
|
30
30
|
import { isLifetime } from './RelativeRangePicker/Elements/RangeDropdown/RangeDropdown';
|
|
31
31
|
export function defaultValueTransformer(value) {
|
|
32
|
-
if (value.key === 'ALL_TIME' || isLifetime(value)) {
|
|
33
|
-
return {
|
|
34
|
-
type: 'ABSOLUTE'
|
|
35
|
-
};
|
|
36
|
-
}
|
|
37
|
-
|
|
38
32
|
var id = value.id,
|
|
39
33
|
timestamp = value.timestamp,
|
|
40
34
|
translationKey = value.translationKey,
|
|
41
35
|
filter = value.filter;
|
|
42
36
|
|
|
37
|
+
if (value.key === 'ALL_TIME' || isLifetime(value)) {
|
|
38
|
+
return _objectSpread({
|
|
39
|
+
type: 'ABSOLUTE'
|
|
40
|
+
}, filter ? {
|
|
41
|
+
filter: filter
|
|
42
|
+
} : {});
|
|
43
|
+
}
|
|
44
|
+
|
|
43
45
|
var baseValue = _objectSpread({}, id ? {
|
|
44
46
|
id: id
|
|
45
47
|
} : {}, {}, timestamp ? {
|
|
@@ -258,6 +260,7 @@ export var RawDateRangePicker = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
258
260
|
var _value$filter, _value$filter2;
|
|
259
261
|
|
|
260
262
|
var _addonKey = 'filter';
|
|
263
|
+
var filterEnabled = value.from && value.to || isLifetime(value);
|
|
261
264
|
var label = value != null && value.filter ? intl.formatMessage({
|
|
262
265
|
id: "DS.DATE-RANGE-PICKER.FILTER-ENABLED",
|
|
263
266
|
defaultMessage: 'Filter enabled'
|
|
@@ -270,7 +273,7 @@ export var RawDateRangePicker = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
270
273
|
content: /*#__PURE__*/React.createElement(RangeFilterStatus, {
|
|
271
274
|
onFilterRemove: _this.handleRemoveFilterClick,
|
|
272
275
|
filter: value.filter,
|
|
273
|
-
disabled: !
|
|
276
|
+
disabled: !filterEnabled,
|
|
274
277
|
label: label,
|
|
275
278
|
onClick: _this.handleModalOpenClick
|
|
276
279
|
}),
|
|
@@ -325,7 +328,8 @@ export var RawDateRangePicker = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
325
328
|
footerProps = _this$props4.footerProps,
|
|
326
329
|
allowedFilterTypes = _this$props4.allowedFilterTypes,
|
|
327
330
|
_this$props4$disableA = _this$props4.disableAbsoluteTimepickerInRelative,
|
|
328
|
-
disableAbsoluteTimepickerInRelative = _this$props4$disableA === void 0 ? false : _this$props4$disableA
|
|
331
|
+
disableAbsoluteTimepickerInRelative = _this$props4$disableA === void 0 ? false : _this$props4$disableA,
|
|
332
|
+
filterValueSelectionModes = _this$props4.filterValueSelectionModes;
|
|
329
333
|
var _this$state3 = this.state,
|
|
330
334
|
value = _this$state3.value,
|
|
331
335
|
mode = _this$state3.mode;
|
|
@@ -349,7 +353,8 @@ export var RawDateRangePicker = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
349
353
|
onApply: this.handleFilterApply,
|
|
350
354
|
savedFilters: savedFilters,
|
|
351
355
|
allowedFilterTypes: allowedFilterTypes,
|
|
352
|
-
onFilterSave: onFilterSave
|
|
356
|
+
onFilterSave: onFilterSave,
|
|
357
|
+
valueSelectionModes: filterValueSelectionModes
|
|
353
358
|
}));
|
|
354
359
|
var validator = validate ? validate(value) : {
|
|
355
360
|
valid: true
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@synerise/ds-date-range-picker",
|
|
3
|
-
"version": "0.21.
|
|
3
|
+
"version": "0.21.24",
|
|
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.20",
|
|
37
|
-
"@synerise/ds-date-picker": "^0.10.
|
|
37
|
+
"@synerise/ds-date-picker": "^0.10.8",
|
|
38
38
|
"@synerise/ds-icon": "^0.58.0",
|
|
39
39
|
"@synerise/ds-manageable-list": "^0.25.14",
|
|
40
|
-
"@synerise/ds-time-picker": "^0.7.
|
|
40
|
+
"@synerise/ds-time-picker": "^0.7.16",
|
|
41
41
|
"@synerise/ds-tooltip": "^0.14.0",
|
|
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": "1a5a5475cc50107c0da950887a91b003e77a96e4"
|
|
58
58
|
}
|