@synerise/ds-date-range-picker 0.24.10 → 0.25.1
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 +2 -1
- package/dist/DateRangePicker.js +11 -8
- package/dist/DateRangePicker.types.d.ts +3 -2
- package/dist/RangeFilter/Filters/new/Daily/Daily.d.ts +1 -1
- package/dist/RangeFilter/Filters/new/Daily/Daily.js +4 -1
- package/dist/RangeFilter/Filters/new/Daily/Daily.types.d.ts +2 -0
- package/dist/RangeFilter/Filters/new/Monthly/Monthly.d.ts +1 -2
- package/dist/RangeFilter/Filters/new/Monthly/Monthly.js +8 -1
- package/dist/RangeFilter/Filters/new/Monthly/Monthly.types.d.ts +4 -0
- package/dist/RangeFilter/Filters/new/Weekly/Weekly.d.ts +1 -2
- package/dist/RangeFilter/Filters/new/Weekly/Weekly.js +8 -1
- package/dist/RangeFilter/Filters/new/Weekly/Weekly.types.d.ts +4 -0
- package/dist/RangeFilter/Shared/RangeFilterStatus/RangeFilterStatus.d.ts +1 -2
- package/dist/RangeFilter/Shared/RangeFilterStatus/RangeFilterStatus.js +8 -7
- package/dist/RangeFilter/Shared/RangeFilterStatus/RangeFilterStatus.styles.d.ts +1 -0
- package/dist/RangeFilter/Shared/RangeFilterStatus/RangeFilterStatus.styles.js +9 -3
- package/dist/RangeFilter/Shared/RangeFilterStatus/RangeFilterStatus.types.d.ts +2 -0
- package/dist/RangeFilter/Shared/TimeWindow/RangeFormContainer/RangeForm/RangeForm.d.ts +1 -1
- package/dist/RangeFilter/Shared/TimeWindow/RangeFormContainer/RangeForm/RangeForm.js +8 -1
- package/dist/RangeFilter/Shared/TimeWindow/RangeFormContainer/RangeForm/RangeForm.types.d.ts +5 -5
- package/dist/RangeFilter/Shared/TimeWindow/RangeFormContainer/RangeFormContainer.d.ts +1 -1
- package/dist/RangeFilter/Shared/TimeWindow/RangeFormContainer/RangeFormContainer.js +4 -2
- package/dist/RangeFilter/Shared/TimeWindow/RangeFormContainer/RangeFormContainer.types.d.ts +5 -3
- package/dist/RangePickerInput/RangePickerInput.js +2 -1
- package/dist/RawDateRangePicker.d.ts +2 -2
- package/dist/RawDateRangePicker.js +13 -24
- package/dist/RelativeRangePicker/Elements/CustomRangeForm/CustomRangeForm.js +1 -1
- package/dist/RelativeRangePicker/Elements/CustomRangeForm/DurationField/DurationField.js +3 -4
- package/dist/RelativeRangePicker/Elements/CustomRangeForm/OffsetField/OffsetField.js +3 -4
- package/dist/RelativeRangePicker/Elements/ModeDropdown/ModeDropdown.js +1 -1
- package/dist/RelativeRangePicker/Elements/RangeButtons/RangeButtons.d.ts +1 -2
- package/dist/RelativeRangePicker/Elements/RangeButtons/RangeButtons.js +5 -1
- package/dist/RelativeRangePicker/Elements/RangeDropdown/RangeDropdown.js +3 -2
- package/dist/RelativeRangePicker/Elements/RangeDropdown/RangeDropdown.types.d.ts +3 -3
- package/dist/RelativeRangePicker/RelativeRangePicker.js +12 -10
- package/dist/RelativeRangePicker/RelativeRangePicker.types.d.ts +3 -3
- package/dist/RelativeRangePicker/utils/findMatchingPreset.utils.d.ts +18 -0
- package/dist/RelativeRangePicker/utils/findMatchingPreset.utils.js +20 -0
- package/dist/RelativeRangePicker/utils/getCurrentGroupFromProps.utils.d.ts +3 -0
- package/dist/RelativeRangePicker/utils/getCurrentGroupFromProps.utils.js +9 -0
- package/dist/RelativeRangePicker/utils/getDefaultCustomRange.utils.d.ts +2 -0
- package/dist/RelativeRangePicker/utils/getDefaultCustomRange.utils.js +17 -0
- package/dist/RelativeRangePicker/utils/index.d.ts +8 -0
- package/dist/RelativeRangePicker/utils/index.js +8 -0
- package/dist/RelativeRangePicker/utils/isAbsolute.utils.d.ts +2 -0
- package/dist/RelativeRangePicker/utils/isAbsolute.utils.js +4 -0
- package/dist/RelativeRangePicker/utils/setDurationValue.utils.d.ts +2 -0
- package/dist/RelativeRangePicker/utils/setDurationValue.utils.js +6 -0
- package/dist/RelativeRangePicker/utils/setFuture.utils.d.ts +1 -0
- package/dist/RelativeRangePicker/utils/setFuture.utils.js +3 -0
- package/dist/RelativeRangePicker/utils/setOffsetValue.utils.d.ts +2 -0
- package/dist/RelativeRangePicker/utils/setOffsetValue.utils.js +6 -0
- package/dist/RelativeRangePicker/utils/updatePresetKey.utils.d.ts +2 -0
- package/dist/RelativeRangePicker/utils/updatePresetKey.utils.js +23 -0
- package/dist/constants.d.ts +14 -3
- package/dist/constants.js +13 -0
- package/dist/date.types.d.ts +8 -0
- package/package.json +20 -20
- package/dist/RelativeRangePicker/utils.d.ts +0 -19
- package/dist/RelativeRangePicker/utils.js +0 -52
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.25.1](https://github.com/Synerise/synerise-design/compare/@synerise/ds-date-range-picker@0.25.0...@synerise/ds-date-range-picker@0.25.1) (2023-10-18)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* **date-range-picker:** ui/ux updates to filter and relative section ([8bb636b](https://github.com/Synerise/synerise-design/commit/8bb636b185a5fe98a4ef70350dc387493ac6f0a5))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
# [0.25.0](https://github.com/Synerise/synerise-design/compare/@synerise/ds-date-range-picker@0.24.10...@synerise/ds-date-range-picker@0.25.0) (2023-10-17)
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
### Features
|
|
21
|
+
|
|
22
|
+
* **date-range-picker:** display errors in daily / weekly / monthly scheduler ([1bc8695](https://github.com/Synerise/synerise-design/commit/1bc8695af46628b30492fb247a2ddbe5785711b0))
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
6
28
|
## [0.24.10](https://github.com/Synerise/synerise-design/compare/@synerise/ds-date-range-picker@0.24.9...@synerise/ds-date-range-picker@0.24.10) (2023-10-11)
|
|
7
29
|
|
|
8
30
|
|
package/README.md
CHANGED
|
@@ -58,7 +58,8 @@ const value = {
|
|
|
58
58
|
| showFilter | Enable range filtering | boolean | `false` |
|
|
59
59
|
| showCustomRange | Enable custom range form in relative range picker | boolean | `true` |
|
|
60
60
|
| validate | Function to specify if particular date ranges are correct | (date:Date)=>boolean | - |
|
|
61
|
-
| value | Value of the picker | DateRange |
|
|
61
|
+
| value | Value of the picker | DateRange | |
|
|
62
|
+
| defaultValue | Default value of the picker (when value is undefined and when user clears input) | DateRange | |
|
|
62
63
|
| startAlwaysOnTheLeft | Enable not to move month from left side to right side | boolean | `false` |
|
|
63
64
|
| onVisibleChange | Callback executed when popover with dateRangePicker changes its visibility | (visible: boolean) => void | - |
|
|
64
65
|
| filterValueSelectionModes | Allowed modes to display in filter | DateLimitMode[] | ["Range", "Hour"] |
|
package/dist/DateRangePicker.js
CHANGED
|
@@ -17,6 +17,7 @@ import { getDefaultTexts } from './utils';
|
|
|
17
17
|
|
|
18
18
|
var DateRangePicker = function DateRangePicker(props) {
|
|
19
19
|
var value = props.value,
|
|
20
|
+
defaultValue = props.defaultValue,
|
|
20
21
|
onApply = props.onApply,
|
|
21
22
|
showTime = props.showTime,
|
|
22
23
|
texts = props.texts,
|
|
@@ -37,12 +38,13 @@ var DateRangePicker = function DateRangePicker(props) {
|
|
|
37
38
|
_props$readOnly = props.readOnly,
|
|
38
39
|
readOnly = _props$readOnly === void 0 ? false : _props$readOnly;
|
|
39
40
|
var intl = useIntl();
|
|
41
|
+
var selectedRange = value || defaultValue;
|
|
40
42
|
|
|
41
43
|
var _React$useState = React.useState(false),
|
|
42
44
|
popupVisible = _React$useState[0],
|
|
43
45
|
setPopupVisible = _React$useState[1];
|
|
44
46
|
|
|
45
|
-
var _React$useState2 = React.useState(
|
|
47
|
+
var _React$useState2 = React.useState(selectedRange),
|
|
46
48
|
selectedDate = _React$useState2[0],
|
|
47
49
|
setSelectedDate = _React$useState2[1];
|
|
48
50
|
|
|
@@ -59,17 +61,18 @@ var DateRangePicker = function DateRangePicker(props) {
|
|
|
59
61
|
}
|
|
60
62
|
}, [popupVisible]);
|
|
61
63
|
React.useEffect(function () {
|
|
62
|
-
if (!isEqual(
|
|
63
|
-
setSelectedDate(
|
|
64
|
+
if (!isEqual(selectedRange, selectedDate)) {
|
|
65
|
+
setSelectedDate(selectedRange);
|
|
64
66
|
} // eslint-disable-next-line react-hooks/exhaustive-deps
|
|
65
67
|
|
|
66
|
-
}, [
|
|
67
|
-
var onApplyCallback = React.useCallback(function (
|
|
68
|
-
|
|
69
|
-
|
|
68
|
+
}, [selectedRange]);
|
|
69
|
+
var onApplyCallback = React.useCallback(function (range) {
|
|
70
|
+
var finalDateRange = range === undefined && defaultValue !== undefined ? defaultValue : range;
|
|
71
|
+
onApply && onApply(finalDateRange);
|
|
72
|
+
setSelectedDate(finalDateRange);
|
|
70
73
|
setPopupVisible(false);
|
|
71
74
|
setInputActive(false);
|
|
72
|
-
}, [onApply]);
|
|
75
|
+
}, [defaultValue, onApply]);
|
|
73
76
|
|
|
74
77
|
var conditionalVisibilityProps = _objectSpread({}, popupVisible === false && {
|
|
75
78
|
visible: false
|
|
@@ -2,7 +2,7 @@ import { ReactNode } from 'react';
|
|
|
2
2
|
import { WrappedComponentProps } from 'react-intl';
|
|
3
3
|
import { PopoverProps } from 'antd/lib/popover';
|
|
4
4
|
import { DateToFormatOptions } from '@synerise/ds-data-format';
|
|
5
|
-
import { DateFilter, DateRange, RelativeUnits } from './date.types';
|
|
5
|
+
import { DateFilter, DateRange, DateRangePreset, RelativeUnits } from './date.types';
|
|
6
6
|
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';
|
|
@@ -42,7 +42,7 @@ export interface DateRangePickerProps extends WrappedComponentProps {
|
|
|
42
42
|
onFilterSave?: (filters: SavedFilter[]) => void;
|
|
43
43
|
popoverProps?: Partial<PopoverProps>;
|
|
44
44
|
popoverTrigger?: ReactNode;
|
|
45
|
-
ranges?:
|
|
45
|
+
ranges?: DateRangePreset[];
|
|
46
46
|
rangeUnits?: Array<RelativeUnits>;
|
|
47
47
|
relativeFuture?: boolean;
|
|
48
48
|
relativePast?: boolean;
|
|
@@ -59,6 +59,7 @@ export interface DateRangePickerProps extends WrappedComponentProps {
|
|
|
59
59
|
message?: string;
|
|
60
60
|
};
|
|
61
61
|
value: DateRange;
|
|
62
|
+
defaultValue?: DateRange;
|
|
62
63
|
/**
|
|
63
64
|
* transforms value, by default omits ALL_TIME props
|
|
64
65
|
*/
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { DailyProps } from './Daily.types';
|
|
2
|
-
declare const Daily: ({ maxEntries, disabled, value, onChange, valueSelectionMode, timeFormat, timePickerProps, }: DailyProps) => JSX.Element;
|
|
2
|
+
declare const Daily: ({ maxEntries, disabled, value, onChange, valueSelectionMode, timeFormat, timePickerProps, errorTexts, }: DailyProps) => JSX.Element;
|
|
3
3
|
export default Daily;
|
|
@@ -23,7 +23,9 @@ var Daily = function Daily(_ref) {
|
|
|
23
23
|
_ref$valueSelectionMo = _ref.valueSelectionMode,
|
|
24
24
|
valueSelectionMode = _ref$valueSelectionMo === void 0 ? ['Hour', 'Range'] : _ref$valueSelectionMo,
|
|
25
25
|
timeFormat = _ref.timeFormat,
|
|
26
|
-
timePickerProps = _ref.timePickerProps
|
|
26
|
+
timePickerProps = _ref.timePickerProps,
|
|
27
|
+
_ref$errorTexts = _ref.errorTexts,
|
|
28
|
+
errorTexts = _ref$errorTexts === void 0 ? [] : _ref$errorTexts;
|
|
27
29
|
var intl = useIntl();
|
|
28
30
|
var defaultDayValue = useMemo(function () {
|
|
29
31
|
return {
|
|
@@ -75,6 +77,7 @@ var Daily = function Daily(_ref) {
|
|
|
75
77
|
disabled: disabled,
|
|
76
78
|
days: EMPTY_OBJECT,
|
|
77
79
|
onChange: NOOP,
|
|
80
|
+
errorTexts: errorTexts[index],
|
|
78
81
|
onMultipleDayTimeChange: NOOP // eslint-disable-next-line react/no-array-index-key
|
|
79
82
|
,
|
|
80
83
|
key: "range-" + index + "-" + String(s == null ? void 0 : s.start),
|
|
@@ -2,10 +2,12 @@ import { FilterBaseProps } from '../Filters.types';
|
|
|
2
2
|
import { DateLimitMode } from '../../../Shared/TimeWindow/RangeFormContainer/RangeForm/RangeForm.types';
|
|
3
3
|
import { DayOptions } from '../../../Shared/TimeWindow/TimeWindow.types';
|
|
4
4
|
import { WithDisabledProp } from '../../../RangeFilter.types';
|
|
5
|
+
import { FilterErrorType } from '../../../Shared/TimeWindow/RangeFormContainer/RangeFormContainer.types';
|
|
5
6
|
export type DailySchedule = DayOptions & {
|
|
6
7
|
mode: DateLimitMode;
|
|
7
8
|
};
|
|
8
9
|
export type DailyProps = {
|
|
9
10
|
value: DailySchedule[];
|
|
11
|
+
errorTexts?: FilterErrorType[];
|
|
10
12
|
onChange: (value: DailyProps['value']) => void;
|
|
11
13
|
} & FilterBaseProps & WithDisabledProp;
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
1
|
import { MonthlyProps } from './Monthly.types';
|
|
3
|
-
declare const Monthly:
|
|
2
|
+
declare const Monthly: ({ maxEntries, valueSelectionMode, onChange, timeFormat, valueFormatOptions, value, timePickerProps, disabled, periodType, countedFrom, errorTexts, }: MonthlyProps) => JSX.Element;
|
|
4
3
|
export default Monthly;
|
|
@@ -37,7 +37,8 @@ var Monthly = function Monthly(_ref) {
|
|
|
37
37
|
_ref$periodType = _ref.periodType,
|
|
38
38
|
periodType = _ref$periodType === void 0 ? DAYS_OF_PERIOD_ENUM.DAY_OF_MONTH : _ref$periodType,
|
|
39
39
|
_ref$countedFrom = _ref.countedFrom,
|
|
40
|
-
countedFrom = _ref$countedFrom === void 0 ? COUNTED_FROM_ENUM.BEGINNING : _ref$countedFrom
|
|
40
|
+
countedFrom = _ref$countedFrom === void 0 ? COUNTED_FROM_ENUM.BEGINNING : _ref$countedFrom,
|
|
41
|
+
errorTexts = _ref.errorTexts;
|
|
41
42
|
var defaultDayValue = React.useMemo(function () {
|
|
42
43
|
return {
|
|
43
44
|
start: DEFAULT_RANGE_START,
|
|
@@ -304,6 +305,11 @@ var Monthly = function Monthly(_ref) {
|
|
|
304
305
|
var canAddRange = canAddAnotherRange(value, activeDays, maxEntries);
|
|
305
306
|
var isAnyDaySelected = activeDays.length > 0;
|
|
306
307
|
var shouldRenderAddButton = isAnyDaySelected && filteredSchedule.length < maxEntries && canAddRange && !disabled;
|
|
308
|
+
|
|
309
|
+
var getErrorTextsForFormRow = function getErrorTextsForFormRow(guid) {
|
|
310
|
+
return activeDays.length === 1 && errorTexts && errorTexts[guid] && errorTexts[guid][activeDays[0]];
|
|
311
|
+
};
|
|
312
|
+
|
|
307
313
|
return /*#__PURE__*/React.createElement(S.NewFilterContainer, {
|
|
308
314
|
ref: ref
|
|
309
315
|
}, /*#__PURE__*/React.createElement(Grid, _extends({
|
|
@@ -323,6 +329,7 @@ var Monthly = function Monthly(_ref) {
|
|
|
323
329
|
}, getGridSettings())), isAnyDaySelected && filteredSchedule.map(function (guid, index) {
|
|
324
330
|
return /*#__PURE__*/React.createElement(RangeFormContainer, {
|
|
325
331
|
days: EMPTY_OBJECT,
|
|
332
|
+
errorTexts: getErrorTextsForFormRow(guid),
|
|
326
333
|
onChange: NOOP,
|
|
327
334
|
key: "value-range-" + guid,
|
|
328
335
|
onDayTimeChange: function onDayTimeChange(dayValue, dayKey) {
|
|
@@ -3,6 +3,7 @@ import { DayOptions } from '../../../Shared/TimeWindow/TimeWindow.types';
|
|
|
3
3
|
import { DateLimitMode } from '../../../Shared/TimeWindow/RangeFormContainer/RangeForm/RangeForm.types';
|
|
4
4
|
import { FilterBaseProps } from '../Filters.types';
|
|
5
5
|
import { WithDisabledProp } from '../../../RangeFilter.types';
|
|
6
|
+
import { FilterErrorType } from '../../../Shared/TimeWindow/RangeFormContainer/RangeFormContainer.types';
|
|
6
7
|
export type MonthlyScheduleDayValue = DayOptions & {
|
|
7
8
|
mode: DateLimitMode;
|
|
8
9
|
};
|
|
@@ -12,6 +13,9 @@ export type MonthlySchedule = {
|
|
|
12
13
|
export type DayOfMonthIndex = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31;
|
|
13
14
|
export type MonthlyProps = {
|
|
14
15
|
value: MonthlySchedule;
|
|
16
|
+
errorTexts?: {
|
|
17
|
+
[guid: string]: FilterErrorType[];
|
|
18
|
+
};
|
|
15
19
|
periodType: DAYS_OF_PERIOD_ENUM;
|
|
16
20
|
countedFrom: COUNTED_FROM_ENUM;
|
|
17
21
|
onChange: (value: MonthlyProps['value']) => void;
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
1
|
import { WeeklyProps } from './Weekly.types';
|
|
3
|
-
declare const Weekly:
|
|
2
|
+
declare const Weekly: ({ maxEntries, valueSelectionMode, onChange, timeFormat, valueFormatOptions, value, timePickerProps, disabled, errorTexts, }: WeeklyProps) => JSX.Element;
|
|
4
3
|
export default Weekly;
|
|
@@ -30,7 +30,8 @@ var Weekly = function Weekly(_ref) {
|
|
|
30
30
|
valueFormatOptions = _ref.valueFormatOptions,
|
|
31
31
|
value = _ref.value,
|
|
32
32
|
timePickerProps = _ref.timePickerProps,
|
|
33
|
-
disabled = _ref.disabled
|
|
33
|
+
disabled = _ref.disabled,
|
|
34
|
+
errorTexts = _ref.errorTexts;
|
|
34
35
|
var defaultDayValue = React.useMemo(function () {
|
|
35
36
|
return {
|
|
36
37
|
start: DEFAULT_RANGE_START,
|
|
@@ -239,6 +240,11 @@ var Weekly = function Weekly(_ref) {
|
|
|
239
240
|
var canAddRange = canAddAnotherRange(value, activeDays, maxEntries);
|
|
240
241
|
var isAnyDaySelected = activeDays.length > 0;
|
|
241
242
|
var shouldRenderAddButton = isAnyDaySelected && filteredSchedule.length < maxEntries && canAddRange && !disabled;
|
|
243
|
+
|
|
244
|
+
var getErrorTextsForFormRow = function getErrorTextsForFormRow(guid) {
|
|
245
|
+
return activeDays.length === 1 && errorTexts && errorTexts[guid] && errorTexts[guid][activeDays[0]];
|
|
246
|
+
};
|
|
247
|
+
|
|
242
248
|
return /*#__PURE__*/React.createElement(S.NewFilterContainer, {
|
|
243
249
|
ref: ref
|
|
244
250
|
}, /*#__PURE__*/React.createElement(Grid, {
|
|
@@ -258,6 +264,7 @@ var Weekly = function Weekly(_ref) {
|
|
|
258
264
|
return /*#__PURE__*/React.createElement(RangeFormContainer, {
|
|
259
265
|
days: EMPTY_OBJECT,
|
|
260
266
|
onChange: NOOP,
|
|
267
|
+
errorTexts: getErrorTextsForFormRow(guid),
|
|
261
268
|
key: "value-range-" + guid,
|
|
262
269
|
onDayTimeChange: function onDayTimeChange(dayValue, dayKey) {
|
|
263
270
|
handleDayTimeChange(dayValue, dayKey, guid);
|
|
@@ -2,6 +2,7 @@ import { DayOptions } from '../../../Shared/TimeWindow/TimeWindow.types';
|
|
|
2
2
|
import { DateLimitMode } from '../../../Shared/TimeWindow/RangeFormContainer/RangeForm/RangeForm.types';
|
|
3
3
|
import { FilterBaseProps } from '../Filters.types';
|
|
4
4
|
import { WithDisabledProp } from '../../../RangeFilter.types';
|
|
5
|
+
import { FilterErrorType } from '../../../Shared/TimeWindow/RangeFormContainer/RangeFormContainer.types';
|
|
5
6
|
export type WeeklyScheduleDayValue = DayOptions & {
|
|
6
7
|
mode: DateLimitMode;
|
|
7
8
|
};
|
|
@@ -11,5 +12,8 @@ export type WeeklySchedule = {
|
|
|
11
12
|
export type DayOfWeekIndex = 0 | 1 | 2 | 3 | 4 | 5 | 6;
|
|
12
13
|
export type WeeklyProps = {
|
|
13
14
|
value: WeeklySchedule;
|
|
15
|
+
errorTexts?: {
|
|
16
|
+
[guid: string]: FilterErrorType[];
|
|
17
|
+
};
|
|
14
18
|
onChange: (value: WeeklyProps['value']) => void;
|
|
15
19
|
} & FilterBaseProps & WithDisabledProp;
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
1
|
import { RangeFilterStatusProps } from './RangeFilterStatus.types';
|
|
3
|
-
declare const RangeFilterStatus:
|
|
2
|
+
declare const RangeFilterStatus: ({ onFilterRemove, disabled, filter, label, onClick, texts }: RangeFilterStatusProps) => JSX.Element;
|
|
4
3
|
export default RangeFilterStatus;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import React from 'react';
|
|
2
2
|
import Button from '@synerise/ds-button';
|
|
3
3
|
import ContentItem from '@synerise/ds-manageable-list/dist/Item/ContentItem/ContentItem';
|
|
4
4
|
import Badge from '@synerise/ds-badge';
|
|
@@ -13,16 +13,17 @@ var RangeFilterStatus = function RangeFilterStatus(_ref) {
|
|
|
13
13
|
disabled = _ref.disabled,
|
|
14
14
|
filter = _ref.filter,
|
|
15
15
|
label = _ref.label,
|
|
16
|
-
_onClick = _ref.onClick
|
|
16
|
+
_onClick = _ref.onClick,
|
|
17
|
+
texts = _ref.texts;
|
|
17
18
|
var intl = useIntl();
|
|
18
|
-
return /*#__PURE__*/React.createElement(S.Container, null, !filter ? /*#__PURE__*/React.createElement(Button.Creator, {
|
|
19
|
+
return /*#__PURE__*/React.createElement(S.Container, null, /*#__PURE__*/React.createElement(S.Title, null, texts == null ? void 0 : texts.filter), !filter ? /*#__PURE__*/React.createElement(Button.Creator, {
|
|
19
20
|
label: label,
|
|
20
21
|
disabled: disabled,
|
|
21
22
|
onClick: _onClick,
|
|
22
23
|
block: true
|
|
23
24
|
}) : /*#__PURE__*/React.createElement(ContentItem, {
|
|
24
|
-
onClick: function onClick(
|
|
25
|
-
|
|
25
|
+
onClick: function onClick(event) {
|
|
26
|
+
event.stopPropagation();
|
|
26
27
|
|
|
27
28
|
_onClick();
|
|
28
29
|
},
|
|
@@ -35,8 +36,8 @@ var RangeFilterStatus = function RangeFilterStatus(_ref) {
|
|
|
35
36
|
defaultMessage: 'Remove'
|
|
36
37
|
})
|
|
37
38
|
}, /*#__PURE__*/React.createElement(Icon, {
|
|
38
|
-
onClick: function onClick(
|
|
39
|
-
|
|
39
|
+
onClick: function onClick(event) {
|
|
40
|
+
event.stopPropagation();
|
|
40
41
|
onFilterRemove && onFilterRemove();
|
|
41
42
|
},
|
|
42
43
|
component: /*#__PURE__*/React.createElement(CloseS, null),
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
export declare const BadgeWrapper: import("styled-components").StyledComponent<"div", any, {}, never>;
|
|
2
|
+
export declare const Title: import("styled-components").StyledComponent<"h3", any, {}, never>;
|
|
2
3
|
export declare const SuffixText: import("styled-components").StyledComponent<"span", any, {}, never>;
|
|
3
4
|
export declare const Container: import("styled-components").StyledComponent<"div", any, {}, never>;
|
|
@@ -3,13 +3,19 @@ export var BadgeWrapper = styled.div.withConfig({
|
|
|
3
3
|
displayName: "RangeFilterStatusstyles__BadgeWrapper",
|
|
4
4
|
componentId: "sc-1ei851t-0"
|
|
5
5
|
})(["margin-right:16px;margin-bottom:-2px;"]);
|
|
6
|
+
export var Title = styled.h3.withConfig({
|
|
7
|
+
displayName: "RangeFilterStatusstyles__Title",
|
|
8
|
+
componentId: "sc-1ei851t-1"
|
|
9
|
+
})(["font-size:16px;line-height:1.39;color:", ";margin-bottom:1em;"], function (props) {
|
|
10
|
+
return props.theme.palette['grey-800'];
|
|
11
|
+
});
|
|
6
12
|
export var SuffixText = styled.span.withConfig({
|
|
7
13
|
displayName: "RangeFilterStatusstyles__SuffixText",
|
|
8
|
-
componentId: "sc-1ei851t-
|
|
14
|
+
componentId: "sc-1ei851t-2"
|
|
9
15
|
})(["color:", ";font-weight:500;margin-right:16px;"], function (props) {
|
|
10
16
|
return props.theme.palette['blue-600'];
|
|
11
17
|
});
|
|
12
18
|
export var Container = styled.div.withConfig({
|
|
13
19
|
displayName: "RangeFilterStatusstyles__Container",
|
|
14
|
-
componentId: "sc-1ei851t-
|
|
15
|
-
})(["
|
|
20
|
+
componentId: "sc-1ei851t-3"
|
|
21
|
+
})(["padding:16px 24px 24px;"]);
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { DateFilter } from '../../../date.types';
|
|
2
|
+
import { Texts } from '../../../DateRangePicker.types';
|
|
2
3
|
export type RangeFilterStatusProps = {
|
|
3
4
|
filter: DateFilter | undefined;
|
|
4
5
|
disabled: boolean;
|
|
5
6
|
label: string;
|
|
7
|
+
texts?: Partial<Texts>;
|
|
6
8
|
onClick: () => void;
|
|
7
9
|
onFilterRemove: () => void;
|
|
8
10
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { RangeFormProps } from './RangeForm.types';
|
|
2
2
|
import { FORM_MODES, RANGE_FORM_INTL_KEYS } from './RangeForm.constants';
|
|
3
3
|
export { FORM_MODES, RANGE_FORM_INTL_KEYS };
|
|
4
|
-
declare const RangeForm: ({ onModeChange, disabled, startDate, endDate, onStartChange, onEndChange, onExactHourSelect, onRangeDelete, valueSelectionModes, mode, rangeDisplayMode, isInvertedRange, timePickerProps, texts, valueFormatOptions, }: RangeFormProps) => JSX.Element;
|
|
4
|
+
declare const RangeForm: ({ onModeChange, disabled, startDate, endDate, onStartChange, onEndChange, onExactHourSelect, onRangeDelete, valueSelectionModes, mode, rangeDisplayMode, isInvertedRange, timePickerProps, texts, valueFormatOptions, errorTexts, }: RangeFormProps) => JSX.Element;
|
|
5
5
|
export default RangeForm;
|
|
@@ -34,7 +34,8 @@ var RangeForm = function RangeForm(_ref) {
|
|
|
34
34
|
isInvertedRange = _ref.isInvertedRange,
|
|
35
35
|
timePickerProps = _ref.timePickerProps,
|
|
36
36
|
texts = _ref.texts,
|
|
37
|
-
valueFormatOptions = _ref.valueFormatOptions
|
|
37
|
+
valueFormatOptions = _ref.valueFormatOptions,
|
|
38
|
+
errorTexts = _ref.errorTexts;
|
|
38
39
|
|
|
39
40
|
var _useDataFormat = useDataFormat(),
|
|
40
41
|
is12HoursClock = _useDataFormat.is12HoursClock;
|
|
@@ -71,8 +72,12 @@ var RangeForm = function RangeForm(_ref) {
|
|
|
71
72
|
return node.parentElement != null ? node.parentElement : document.body;
|
|
72
73
|
};
|
|
73
74
|
|
|
75
|
+
var errorForFirstItem = (errorTexts == null ? void 0 : errorTexts.length) && errorTexts[0];
|
|
76
|
+
var errorForSecondItem = (errorTexts == null ? void 0 : errorTexts.length) && errorTexts[1];
|
|
77
|
+
|
|
74
78
|
var singleHourPicker = function singleHourPicker() {
|
|
75
79
|
return /*#__PURE__*/React.createElement(TimePicker, _extends({
|
|
80
|
+
errorText: errorForFirstItem,
|
|
76
81
|
disabled: disabled,
|
|
77
82
|
clearTooltip: texts == null ? void 0 : texts.clear,
|
|
78
83
|
onChange: function onChange(date) {
|
|
@@ -144,6 +149,7 @@ var RangeForm = function RangeForm(_ref) {
|
|
|
144
149
|
|
|
145
150
|
var renderRangePicker = function renderRangePicker() {
|
|
146
151
|
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(TimePicker, _extends({
|
|
152
|
+
errorText: errorForFirstItem,
|
|
147
153
|
disabled: disabled,
|
|
148
154
|
clearTooltip: texts == null ? void 0 : texts.clear,
|
|
149
155
|
onChange: function onChange(date) {
|
|
@@ -160,6 +166,7 @@ var RangeForm = function RangeForm(_ref) {
|
|
|
160
166
|
use12HourClock: is12HoursClock,
|
|
161
167
|
valueFormatOptions: valueFormatOptions
|
|
162
168
|
}, timePickerProps)), /*#__PURE__*/React.createElement(S.Separator, null, "-"), /*#__PURE__*/React.createElement(TimePicker, _extends({
|
|
169
|
+
errorText: errorForSecondItem,
|
|
163
170
|
disabled: disabled,
|
|
164
171
|
clearTooltip: texts == null ? void 0 : texts.clear,
|
|
165
172
|
onChange: function onChange(date) {
|
package/dist/RangeFilter/Shared/TimeWindow/RangeFormContainer/RangeForm/RangeForm.types.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
2
|
import { WithTranslations } from '../../../../../DateRangePicker.types';
|
|
3
3
|
import { RangeFormContainerProps } from '../RangeFormContainer.types';
|
|
4
4
|
import { WithDisabledProp } from '../../../../RangeFilter.types';
|
|
@@ -7,7 +7,7 @@ export type RangeDisplayMode = 'timepicker' | 'slider';
|
|
|
7
7
|
export type RangeFormProps = {
|
|
8
8
|
mode: DateLimitMode;
|
|
9
9
|
onModeChange: (mode: DateLimitMode) => void;
|
|
10
|
-
title?:
|
|
10
|
+
title?: ReactNode;
|
|
11
11
|
startDate: Date | undefined;
|
|
12
12
|
endDate: Date | undefined;
|
|
13
13
|
onStartChange: (value?: Date) => void;
|
|
@@ -17,8 +17,8 @@ export type RangeFormProps = {
|
|
|
17
17
|
valueSelectionModes: DateLimitMode[];
|
|
18
18
|
rangeDisplayMode?: RangeDisplayMode;
|
|
19
19
|
isInvertedRange?: boolean;
|
|
20
|
-
} & WithTranslations & WithDisabledProp & Pick<RangeFormContainerProps, 'timePickerProps' | 'valueFormatOptions'>;
|
|
20
|
+
} & WithTranslations & WithDisabledProp & Pick<RangeFormContainerProps, 'timePickerProps' | 'valueFormatOptions' | 'errorTexts'>;
|
|
21
21
|
export type RangeFormTexts = {
|
|
22
|
-
range:
|
|
23
|
-
hour:
|
|
22
|
+
range: ReactNode | string;
|
|
23
|
+
hour: ReactNode | string;
|
|
24
24
|
};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import type { RangeFormContainerProps } from './RangeFormContainer.types';
|
|
2
|
-
declare const RangeFormContainer: ({ activeDays, disabled, days, dayKeys, getDayValue, getDayLabel, onDayTimeChange, onMultipleDayTimeChange, hideHeader, headerOptions, monthlyFilter, monthlyFilterPeriod, onRangeClear, onRangePaste, onRangeCopy, onRangeDelete, texts, onChange, valueSelectionModes, rangeDisplayMode, onModeChange, timePickerProps, renderSuffix, timeFormat, valueFormatOptions, }: RangeFormContainerProps) => JSX.Element;
|
|
2
|
+
declare const RangeFormContainer: ({ errorTexts, activeDays, disabled, days, dayKeys, getDayValue, getDayLabel, onDayTimeChange, onMultipleDayTimeChange, hideHeader, headerOptions, monthlyFilter, monthlyFilterPeriod, onRangeClear, onRangePaste, onRangeCopy, onRangeDelete, texts, onChange, valueSelectionModes, rangeDisplayMode, onModeChange, timePickerProps, renderSuffix, timeFormat, valueFormatOptions, }: RangeFormContainerProps) => JSX.Element;
|
|
3
3
|
export default RangeFormContainer;
|
|
@@ -16,7 +16,8 @@ import { DEFAULT_LIMIT_MODE } from '../TimeWindow';
|
|
|
16
16
|
import * as S from './RangeFormContainer.styles';
|
|
17
17
|
|
|
18
18
|
var RangeFormContainer = function RangeFormContainer(_ref) {
|
|
19
|
-
var
|
|
19
|
+
var errorTexts = _ref.errorTexts,
|
|
20
|
+
activeDays = _ref.activeDays,
|
|
20
21
|
disabled = _ref.disabled,
|
|
21
22
|
days = _ref.days,
|
|
22
23
|
dayKeys = _ref.dayKeys,
|
|
@@ -115,6 +116,7 @@ var RangeFormContainer = function RangeFormContainer(_ref) {
|
|
|
115
116
|
return /*#__PURE__*/React.createElement(RangeForm, {
|
|
116
117
|
disabled: disabled,
|
|
117
118
|
texts: texts,
|
|
119
|
+
errorTexts: errorTexts,
|
|
118
120
|
onModeChange: function onModeChange(selected) {
|
|
119
121
|
setMode(selected);
|
|
120
122
|
handleModeChange(selected);
|
|
@@ -132,7 +134,7 @@ var RangeFormContainer = function RangeFormContainer(_ref) {
|
|
|
132
134
|
rangeDisplayMode: rangeDisplayMode,
|
|
133
135
|
isInvertedRange: Boolean(dayValue == null ? void 0 : dayValue.inverted)
|
|
134
136
|
});
|
|
135
|
-
}, [
|
|
137
|
+
}, [disabled, texts, errorTexts, mode, dayValue.start, dayValue.stop, dayValue == null ? void 0 : dayValue.inverted, timeFormat, onStartChange, onEndChange, onExactHourSelect, onRangeDelete, valueSelectionModes, valueFormatOptions, timePickerProps, rangeDisplayMode, handleModeChange]);
|
|
136
138
|
var invertedToggleLink = React.useMemo(function () {
|
|
137
139
|
return /*#__PURE__*/React.createElement(S.InvertAction, {
|
|
138
140
|
onClick: toggleInverted
|
|
@@ -1,14 +1,16 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
2
|
import type { TimePickerProps } from '@synerise/ds-time-picker';
|
|
3
3
|
import type { DateToFormatOptions } from '@synerise/ds-data-format';
|
|
4
4
|
import { DayKey, RangeActions, TimeWindowProps, TimeWindowTexts } from '../TimeWindow.types';
|
|
5
5
|
import { FilterDefinition, WithDisabledProp } from '../../../RangeFilter.types';
|
|
6
6
|
import { DateLimitMode, RangeDisplayMode } from './RangeForm/RangeForm.types';
|
|
7
7
|
export type DateValue = [Date | undefined, Date | undefined, boolean | undefined];
|
|
8
|
+
export type FilterErrorType = [ReactNode?, ReactNode?];
|
|
8
9
|
export type RangeFormContainerProps = {
|
|
10
|
+
errorTexts?: FilterErrorType;
|
|
9
11
|
activeDays: DayKey[];
|
|
10
12
|
dayKeys: DayKey | DayKey[];
|
|
11
|
-
getDayLabel: (dayKey: DayKey, long?: boolean) => string | object |
|
|
13
|
+
getDayLabel: (dayKey: DayKey, long?: boolean) => string | object | ReactNode;
|
|
12
14
|
getDayValue: (dayKey: DayKey) => Partial<FilterDefinition>;
|
|
13
15
|
onMultipleDayTimeChange: (value: DateValue) => void;
|
|
14
16
|
onDayTimeChange: (value: DateValue, dayKey: DayKey) => void;
|
|
@@ -23,5 +25,5 @@ export type RangeFormContainerProps = {
|
|
|
23
25
|
timeFormat?: string;
|
|
24
26
|
valueFormatOptions?: DateToFormatOptions;
|
|
25
27
|
timePickerProps?: Partial<TimePickerProps>;
|
|
26
|
-
renderSuffix?: () =>
|
|
28
|
+
renderSuffix?: () => ReactNode;
|
|
27
29
|
} & Pick<TimeWindowProps, 'monthlyFilter' | 'monthlyFilterPeriod' | 'hideHeader' | 'headerOptions' | 'onChange' | 'days'> & WithDisabledProp & Partial<RangeActions>;
|
|
@@ -48,6 +48,7 @@ var RangePickerInput = function RangePickerInput(_ref) {
|
|
|
48
48
|
setHovered = _React$useState[1];
|
|
49
49
|
|
|
50
50
|
var showError = error || !!errorText;
|
|
51
|
+
var hasValue = (dateRangeValue == null ? void 0 : dateRangeValue.from) && (dateRangeValue == null ? void 0 : dateRangeValue.to);
|
|
51
52
|
var handleIconMouseEnter = React.useCallback(function () {
|
|
52
53
|
return setHovered(true);
|
|
53
54
|
}, []);
|
|
@@ -113,7 +114,7 @@ var RangePickerInput = function RangePickerInput(_ref) {
|
|
|
113
114
|
active: !!highlight && !disabled,
|
|
114
115
|
tabIndex: disabled ? -1 : 0,
|
|
115
116
|
focus: active && !disabled
|
|
116
|
-
}, placeholder, /*#__PURE__*/React.createElement(S.IconSeparator, null), !readOnly && hovered &&
|
|
117
|
+
}, placeholder, /*#__PURE__*/React.createElement(S.IconSeparator, null), !readOnly && hovered && hasValue ? /*#__PURE__*/React.createElement(Tooltip, {
|
|
117
118
|
title: texts == null ? void 0 : texts.clear
|
|
118
119
|
}, /*#__PURE__*/React.createElement(S.ClearIconWrapper, null, /*#__PURE__*/React.createElement(Icon, {
|
|
119
120
|
component: /*#__PURE__*/React.createElement(Close3S, null),
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import React, { PureComponent } from 'react';
|
|
2
2
|
import type { DateRangePickerProps, DateRangePickerProps as Props, State, AddonType } from './DateRangePicker.types';
|
|
3
|
-
import type { DateRange
|
|
3
|
+
import type { DateRange } from './date.types';
|
|
4
4
|
import { FilterDefinition, FilterValue } from './RangeFilter/RangeFilter.types';
|
|
5
5
|
export declare function defaultValueTransformer(value: DateRange): DateRange;
|
|
6
6
|
export declare class RawDateRangePicker extends PureComponent<DateRangePickerProps, State> {
|
|
7
7
|
static defaultProps: {
|
|
8
|
-
ranges: (import("./date.types").
|
|
8
|
+
ranges: (import("./date.types").RelativeDateRangePreset | import("./date.types").AbsoluteDateRangePreset)[];
|
|
9
9
|
relativePast: boolean;
|
|
10
10
|
showRelativePicker: boolean;
|
|
11
11
|
validate: () => {
|
|
@@ -257,34 +257,23 @@ export var RawDateRangePicker = /*#__PURE__*/function (_PureComponent) {
|
|
|
257
257
|
}
|
|
258
258
|
|
|
259
259
|
if (showFilter) {
|
|
260
|
-
var _value$filter, _value$filter2;
|
|
261
|
-
|
|
262
260
|
var _addonKey = 'filter';
|
|
263
261
|
var filterEnabled = value.from && value.to || isLifetime(value);
|
|
264
262
|
var label = value != null && value.filter ? intl.formatMessage({
|
|
265
263
|
id: "DS.DATE-RANGE-PICKER.FILTER-ENABLED",
|
|
266
264
|
defaultMessage: 'Filter enabled'
|
|
267
265
|
}) : intl.formatMessage({
|
|
268
|
-
id: "DS.DATE-RANGE-PICKER.
|
|
269
|
-
defaultMessage: '
|
|
266
|
+
id: "DS.DATE-RANGE-PICKER.SELECT-DATE-FILTER",
|
|
267
|
+
defaultMessage: 'Select date filter'
|
|
270
268
|
});
|
|
271
269
|
addons.push({
|
|
272
|
-
content: /*#__PURE__*/React.createElement(
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
}),
|
|
280
|
-
title: texts == null ? void 0 : texts.filter,
|
|
281
|
-
expanded: _addonKey === visibleAddonKey,
|
|
282
|
-
onCollapseChange: function onCollapseChange(expanded) {
|
|
283
|
-
return _this.handleAddonCollapse(_addonKey, expanded);
|
|
284
|
-
},
|
|
285
|
-
collapsedSummary: value != null && (_value$filter = value.filter) != null && _value$filter.type ? intl.formatMessage({
|
|
286
|
-
id: "DS.DATE-RANGE-PICKER." + (value == null ? void 0 : (_value$filter2 = value.filter) == null ? void 0 : _value$filter2.type)
|
|
287
|
-
}) : null
|
|
270
|
+
content: /*#__PURE__*/React.createElement(RangeFilterStatus, {
|
|
271
|
+
onFilterRemove: _this.handleRemoveFilterClick,
|
|
272
|
+
filter: value.filter,
|
|
273
|
+
texts: texts,
|
|
274
|
+
disabled: !filterEnabled,
|
|
275
|
+
label: label,
|
|
276
|
+
onClick: _this.handleModalOpenClick
|
|
288
277
|
}),
|
|
289
278
|
key: _addonKey
|
|
290
279
|
});
|
|
@@ -296,7 +285,7 @@ export var RawDateRangePicker = /*#__PURE__*/function (_PureComponent) {
|
|
|
296
285
|
_this.state = {
|
|
297
286
|
mode: MODES.DATE,
|
|
298
287
|
value: normalizeRange(props.value),
|
|
299
|
-
visibleAddonKey: ''
|
|
288
|
+
visibleAddonKey: 'relative-picker'
|
|
300
289
|
};
|
|
301
290
|
return _this;
|
|
302
291
|
}
|
|
@@ -306,7 +295,7 @@ export var RawDateRangePicker = /*#__PURE__*/function (_PureComponent) {
|
|
|
306
295
|
_proto.componentDidUpdate = function componentDidUpdate(prevProps) {
|
|
307
296
|
var value = this.props.value;
|
|
308
297
|
|
|
309
|
-
if (prevProps.value !== value
|
|
298
|
+
if (prevProps.value !== value) {
|
|
310
299
|
this.handleRangeChange(value);
|
|
311
300
|
}
|
|
312
301
|
};
|
|
@@ -367,9 +356,9 @@ export var RawDateRangePicker = /*#__PURE__*/function (_PureComponent) {
|
|
|
367
356
|
|
|
368
357
|
function isRelative(dateRange) {
|
|
369
358
|
var isLegacyCustom = Object.keys(value).includes('key') && key === undefined;
|
|
370
|
-
return CONST.RELATIVE_PRESETS.map(function (e) {
|
|
359
|
+
return dateRange.key && (CONST.RELATIVE_PRESETS.map(function (e) {
|
|
371
360
|
return e.key;
|
|
372
|
-
}).includes(dateRange.key) || isLegacyCustom;
|
|
361
|
+
}).includes(dateRange.key) || dateRange.key === CONST.CUSTOM_RANGE_KEY) || isLegacyCustom;
|
|
373
362
|
}
|
|
374
363
|
|
|
375
364
|
var isValidRelative = isRelative(value) && Boolean(value.offset && value.duration);
|
|
@@ -5,7 +5,7 @@ import * as S from '../../RelativeRangePicker.styles';
|
|
|
5
5
|
import ModeDropdown from '../ModeDropdown/ModeDropdown';
|
|
6
6
|
import DurationField from './DurationField/DurationField';
|
|
7
7
|
import OffsetField from './OffsetField/OffsetField';
|
|
8
|
-
import { RANGES_MODE } from '
|
|
8
|
+
import { RANGES_MODE } from '../../../constants';
|
|
9
9
|
import TimestampRange from '../TimestampRange/TimestampRange';
|
|
10
10
|
export var setOffsetType = set(lensPath(['offset', 'type']));
|
|
11
11
|
|