@synerise/ds-date-range-picker 0.21.23 → 0.22.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/README.md +1 -0
- package/dist/DateRangePicker.types.d.ts +2 -0
- package/dist/Footer/Footer.js +1 -0
- package/dist/RangeFilter/Filters/MonthlyFilter/MonthlyFilter.js +1 -1
- 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/RangeFilter.js +5 -1
- package/dist/RangeFilter/Shared/SaveFilterForm/SaveFilterForm.js +7 -3
- package/dist/RangeFilter/Shared/TimeWindow/RangeFormContainer/RangeFormContainer.js +7 -5
- package/dist/RawDateRangePicker.d.ts +1 -1
- package/dist/RawDateRangePicker.js +14 -9
- package/package.json +18 -7
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.22.0](https://github.com/Synerise/synerise-design/compare/@synerise/ds-date-range-picker@0.21.24...@synerise/ds-date-range-picker@0.22.0) (2023-08-20)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* **date-range-picker:** added missing deps to package.json ([a8ec6ee](https://github.com/Synerise/synerise-design/commit/a8ec6ee2ce43d6b5ca98ed4767144ccd990de053))
|
|
12
|
+
* **date-range-picker:** fixed default value for monthly filter dropdown ([03b520f](https://github.com/Synerise/synerise-design/commit/03b520f3d203050d8675b048028c9942e1d535ef))
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
### Features
|
|
16
|
+
|
|
17
|
+
* **modal:** create modal footer, header and refactor modal ([ab3603f](https://github.com/Synerise/synerise-design/commit/ab3603f5d8ac379ad1700b4a9904f340cd50315a))
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
## [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)
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
### Bug Fixes
|
|
27
|
+
|
|
28
|
+
* **date-range-picker:** weekly filter standalone starttime reset fixed ([63072c2](https://github.com/Synerise/synerise-design/commit/63072c21bbe63286f2b5b31decf7f58b22c1ac1d))
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
|
|
6
34
|
## [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)
|
|
7
35
|
|
|
8
36
|
|
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`
|
package/dist/Footer/Footer.js
CHANGED
|
@@ -71,6 +71,7 @@ var Footer = function Footer(_ref) {
|
|
|
71
71
|
}, rest), ChosenRange, /*#__PURE__*/React.createElement(S.ActionsPlaceholder, null), /*#__PURE__*/React.createElement(S.Actions, null, /*#__PURE__*/React.createElement(Tooltip, {
|
|
72
72
|
title: message
|
|
73
73
|
}, /*#__PURE__*/React.createElement(Button, {
|
|
74
|
+
"data-testid": "date-range-picker-apply-button",
|
|
74
75
|
disabled: !canApply,
|
|
75
76
|
type: "primary",
|
|
76
77
|
onClick: function onClick() {
|
|
@@ -51,7 +51,7 @@ var MonthlyFilter = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
51
51
|
countedFromPeriods = _this$props.countedFromPeriods,
|
|
52
52
|
daysOfPeriods = _this$props.daysOfPeriods;
|
|
53
53
|
var defaultPeriod = (daysOfPeriods || DEFAULT_DAYS_OF_PERIODS)[0].value;
|
|
54
|
-
var defaultPeriodType = (countedFromPeriods ||
|
|
54
|
+
var defaultPeriodType = (countedFromPeriods || DEFAULT_COUNTED_FROM)[0].value;
|
|
55
55
|
|
|
56
56
|
_this.setData([].concat(value, [{
|
|
57
57
|
period: defaultPeriod,
|
|
@@ -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
|
+
});
|
|
@@ -192,15 +192,19 @@ var RangeFilter = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
192
192
|
onRangeCopy: this.handleRangeCopy,
|
|
193
193
|
rangeClipboard: rangeClipboard,
|
|
194
194
|
valueSelectionModes: valueSelectionModes
|
|
195
|
-
}))), !hideFooter && /*#__PURE__*/React.createElement(S.Footer,
|
|
195
|
+
}))), !hideFooter && /*#__PURE__*/React.createElement(S.Footer, {
|
|
196
|
+
"data-testid": "range-filter-footer"
|
|
197
|
+
}, savedFilters && onFilterSave && /*#__PURE__*/React.createElement(SaveFilterForm, {
|
|
196
198
|
onFilterSave: this.handleFilterSave
|
|
197
199
|
}), /*#__PURE__*/React.createElement(S.FooterSeparator, null), /*#__PURE__*/React.createElement(Button, {
|
|
200
|
+
"data-testid": "range-filter-cancel-button",
|
|
198
201
|
type: "ghost",
|
|
199
202
|
onClick: this.handleCancel
|
|
200
203
|
}, intl.formatMessage({
|
|
201
204
|
id: 'DS.DATE-RANGE-PICKER.CANCEL',
|
|
202
205
|
defaultMessage: 'Cancel'
|
|
203
206
|
})), /*#__PURE__*/React.createElement(Button, {
|
|
207
|
+
"data-testid": "range-filter-apply-button",
|
|
204
208
|
type: "primary",
|
|
205
209
|
disabled: !isValidValue(activeValue),
|
|
206
210
|
onClick: this.handleApply
|
|
@@ -19,7 +19,8 @@ var SaveFilterForm = function SaveFilterForm(_ref) {
|
|
|
19
19
|
var intl = useIntl();
|
|
20
20
|
var input = /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(RawInput, {
|
|
21
21
|
placeholder: intl.formatMessage({
|
|
22
|
-
id: 'DS.DATE-RANGE-PICKER.FILTER-NAME'
|
|
22
|
+
id: 'DS.DATE-RANGE-PICKER.FILTER-NAME',
|
|
23
|
+
defaultMessage: 'Filter name'
|
|
23
24
|
}),
|
|
24
25
|
value: name,
|
|
25
26
|
onChange: function onChange(e) {
|
|
@@ -45,13 +46,16 @@ var SaveFilterForm = function SaveFilterForm(_ref) {
|
|
|
45
46
|
}, /*#__PURE__*/React.createElement(Icon, {
|
|
46
47
|
component: /*#__PURE__*/React.createElement(CheckM, null)
|
|
47
48
|
})));
|
|
48
|
-
return /*#__PURE__*/React.createElement(S.Container,
|
|
49
|
+
return /*#__PURE__*/React.createElement(S.Container, {
|
|
50
|
+
"data-testid": "drp-save-filter-form"
|
|
51
|
+
}, active ? input : /*#__PURE__*/React.createElement(Button, {
|
|
49
52
|
type: "ghost",
|
|
50
53
|
onClick: function onClick() {
|
|
51
54
|
return setActive(!active);
|
|
52
55
|
}
|
|
53
56
|
}, intl.formatMessage({
|
|
54
|
-
id: 'DS.DATE-RANGE-PICKER.SAVE-FILTER'
|
|
57
|
+
id: 'DS.DATE-RANGE-PICKER.SAVE-FILTER',
|
|
58
|
+
defaultMessage: 'Save filter'
|
|
55
59
|
})));
|
|
56
60
|
};
|
|
57
61
|
|
|
@@ -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]);
|
|
@@ -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.
|
|
3
|
+
"version": "0.22.0",
|
|
4
4
|
"description": "Date-Range-Picker UI Component for the Synerise Design System",
|
|
5
5
|
"license": "ISC",
|
|
6
6
|
"repository": "Synerise/synerise-design",
|
|
@@ -33,12 +33,23 @@
|
|
|
33
33
|
"types": "dist/index.d.ts",
|
|
34
34
|
"dependencies": {
|
|
35
35
|
"@date-fns/upgrade": "^1.0.3",
|
|
36
|
-
"@synerise/ds-
|
|
37
|
-
"@synerise/ds-
|
|
36
|
+
"@synerise/ds-badge": "^0.6.32",
|
|
37
|
+
"@synerise/ds-button": "^0.18.0",
|
|
38
|
+
"@synerise/ds-button-group": "^0.6.28",
|
|
39
|
+
"@synerise/ds-data-format": "^0.4.0",
|
|
40
|
+
"@synerise/ds-date-picker": "^0.10.9",
|
|
41
|
+
"@synerise/ds-dropdown": "^0.17.72",
|
|
38
42
|
"@synerise/ds-icon": "^0.58.0",
|
|
39
|
-
"@synerise/ds-
|
|
40
|
-
"@synerise/ds-
|
|
41
|
-
"@synerise/ds-
|
|
43
|
+
"@synerise/ds-inline-edit": "^0.6.71",
|
|
44
|
+
"@synerise/ds-input": "^0.18.46",
|
|
45
|
+
"@synerise/ds-input-number": "^0.8.19",
|
|
46
|
+
"@synerise/ds-manageable-list": "^0.26.0",
|
|
47
|
+
"@synerise/ds-menu": "^0.17.15",
|
|
48
|
+
"@synerise/ds-scrollbar": "^0.6.4",
|
|
49
|
+
"@synerise/ds-select": "^0.15.11",
|
|
50
|
+
"@synerise/ds-tags": "^0.8.6",
|
|
51
|
+
"@synerise/ds-time-picker": "^0.8.0",
|
|
52
|
+
"@synerise/ds-tooltip": "^0.14.1",
|
|
42
53
|
"@synerise/ds-utils": "^0.19.0",
|
|
43
54
|
"date-fns": "^2.16.1",
|
|
44
55
|
"dayjs": "^1.8.35",
|
|
@@ -54,5 +65,5 @@
|
|
|
54
65
|
"devDependencies": {
|
|
55
66
|
"@types/ramda": "^0.27.14"
|
|
56
67
|
},
|
|
57
|
-
"gitHead": "
|
|
68
|
+
"gitHead": "0795eb5071d9160e429731ba8f8807c1ae509085"
|
|
58
69
|
}
|