@synerise/ds-date-range-picker 0.23.1 → 0.24.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 +11 -0
- package/dist/DateRangePicker.types.d.ts +2 -1
- package/dist/RangeFilter/Filters/DailyFilter/DailyFilter.d.ts +4 -2
- package/dist/RangeFilter/Filters/DailyFilter/DailyFilter.js +12 -3
- package/dist/RangeFilter/Filters/DailyFilter/DailyFilter.styles.js +1 -2
- package/dist/RangeFilter/Filters/MonthlyFilter/MonthlyFilter.d.ts +1 -1
- package/dist/RangeFilter/Filters/MonthlyFilter/MonthlyFilter.js +4 -2
- package/dist/RangeFilter/Filters/MonthlyFilter/MonthlyFilter.types.d.ts +2 -1
- package/dist/RangeFilter/Filters/WeeklyFilter/WeeklyFilter.d.ts +1 -1
- package/dist/RangeFilter/Filters/WeeklyFilter/WeeklyFilter.js +3 -1
- package/dist/RangeFilter/Filters/WeeklyFilter/WeeklyFilter.types.d.ts +2 -1
- package/dist/RangeFilter/Filters/new/Daily/Daily.js +2 -1
- package/dist/RangeFilter/Filters/new/Monthly/Monthly.js +6 -3
- package/dist/RangeFilter/Filters/new/Weekly/Weekly.js +6 -3
- package/dist/RangeFilter/RangeFilter.d.ts +1 -1
- package/dist/RangeFilter/RangeFilter.js +3 -1
- package/dist/RangeFilter/RangeFilter.types.d.ts +2 -1
- package/dist/RangeFilter/Shared/TimeWindow/Header/Header.d.ts +1 -1
- package/dist/RangeFilter/Shared/TimeWindow/RangeFormContainer/RangeForm/RangeForm.constants.d.ts +16 -0
- package/dist/RangeFilter/Shared/TimeWindow/RangeFormContainer/RangeForm/RangeForm.constants.js +21 -0
- package/dist/RangeFilter/Shared/TimeWindow/RangeFormContainer/RangeForm/RangeForm.d.ts +5 -14
- package/dist/RangeFilter/Shared/TimeWindow/RangeFormContainer/RangeForm/RangeForm.js +110 -37
- package/dist/RangeFilter/Shared/TimeWindow/RangeFormContainer/RangeForm/RangeForm.styles.d.ts +2 -0
- package/dist/RangeFilter/Shared/TimeWindow/RangeFormContainer/RangeForm/RangeForm.styles.js +6 -2
- package/dist/RangeFilter/Shared/TimeWindow/RangeFormContainer/RangeForm/RangeForm.types.d.ts +3 -0
- package/dist/RangeFilter/Shared/TimeWindow/RangeFormContainer/RangeForm/RangeForm.utils.d.ts +2 -0
- package/dist/RangeFilter/Shared/TimeWindow/RangeFormContainer/RangeForm/RangeForm.utils.js +19 -0
- package/dist/RangeFilter/Shared/TimeWindow/RangeFormContainer/RangeFormContainer.d.ts +2 -2
- package/dist/RangeFilter/Shared/TimeWindow/RangeFormContainer/RangeFormContainer.js +47 -12
- package/dist/RangeFilter/Shared/TimeWindow/RangeFormContainer/RangeFormContainer.styles.d.ts +1 -0
- package/dist/RangeFilter/Shared/TimeWindow/RangeFormContainer/RangeFormContainer.styles.js +5 -0
- package/dist/RangeFilter/Shared/TimeWindow/RangeFormContainer/RangeFormContainer.types.d.ts +4 -3
- package/dist/RangeFilter/Shared/TimeWindow/TimeWindow.d.ts +1 -1
- package/dist/RangeFilter/Shared/TimeWindow/TimeWindow.js +20 -15
- package/dist/RangeFilter/Shared/TimeWindow/TimeWindow.types.d.ts +6 -1
- package/dist/RangeFilter/constants.d.ts +3 -3
- package/dist/RawDateRangePicker.d.ts +1 -1
- package/dist/RawDateRangePicker.js +3 -1
- package/package.json +12 -12
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,17 @@
|
|
|
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.24.0](https://github.com/Synerise/synerise-design/compare/@synerise/ds-date-range-picker@0.23.1...@synerise/ds-date-range-picker@0.24.0) (2023-08-30)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Features
|
|
10
|
+
|
|
11
|
+
* **date-range-picker:** range filter as slider with "inverted" toggler ([6ae7d9e](https://github.com/Synerise/synerise-design/commit/6ae7d9e27925c4fee502ed8fac84806836e5e727))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
6
17
|
## [0.23.1](https://github.com/Synerise/synerise-design/compare/@synerise/ds-date-range-picker@0.23.0...@synerise/ds-date-range-picker@0.23.1) (2023-08-25)
|
|
7
18
|
|
|
8
19
|
|
|
@@ -7,7 +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
|
+
import { DateLimitMode, RangeDisplayMode } from './RangeFilter/Shared/TimeWindow/RangeFormContainer/RangeForm/RangeForm.types';
|
|
11
11
|
export { DateRange } from './date.types';
|
|
12
12
|
export declare type CustomColorArrow = 'blue' | 'grey' | 'red' | 'green' | 'yellow' | 'pink' | 'mars' | 'orange' | 'fern' | 'cyan' | 'purple' | 'violet';
|
|
13
13
|
export declare type AdditionalMapper = {
|
|
@@ -70,6 +70,7 @@ export interface DateRangePickerProps extends WrappedComponentProps {
|
|
|
70
70
|
renderPopoverTrigger?: (...args: any) => JSX.Element;
|
|
71
71
|
isTruncateMs?: boolean;
|
|
72
72
|
filterValueSelectionModes?: DateLimitMode[];
|
|
73
|
+
filterRangeDisplayMode?: RangeDisplayMode;
|
|
73
74
|
}
|
|
74
75
|
/**
|
|
75
76
|
* @deprecated use `DateRangePickerProps`
|
|
@@ -1,15 +1,17 @@
|
|
|
1
|
-
import
|
|
1
|
+
import React from 'react';
|
|
2
2
|
import { WrappedComponentProps } from 'react-intl';
|
|
3
3
|
import { RangeActions as RangeActionsMethods } from '../../Shared/TimeWindow/TimeWindow.types';
|
|
4
4
|
import { Days } from '../../../date.types';
|
|
5
5
|
import { WithTranslations } from '../../../DateRangePicker.types';
|
|
6
6
|
import { ValueSelectionModes, WithDisabledProp } from '../../RangeFilter.types';
|
|
7
|
+
import { RangeDisplayMode } from '../../Shared/TimeWindow/RangeFormContainer/RangeForm/RangeForm.types';
|
|
7
8
|
export interface Props extends WrappedComponentProps, Partial<RangeActionsMethods>, WithTranslations, WithDisabledProp {
|
|
8
9
|
value: string;
|
|
9
10
|
onChange: (v: Days) => {};
|
|
11
|
+
rangeDisplayMode?: RangeDisplayMode;
|
|
10
12
|
valueSelectionModes: ValueSelectionModes;
|
|
11
13
|
}
|
|
12
|
-
declare const _default: React.ForwardRefExoticComponent<Pick<Props, "onChange" | "onRangeCopy" | "onRangePaste" | "onRangeClear" | "valueSelectionModes" | "texts" | "disabled" | "value"> & {
|
|
14
|
+
declare const _default: React.ForwardRefExoticComponent<Pick<Props, "onChange" | "onRangeCopy" | "onRangePaste" | "onRangeClear" | "valueSelectionModes" | "rangeDisplayMode" | "texts" | "disabled" | "value"> & {
|
|
13
15
|
forwardedRef?: ((instance: any) => void) | React.RefObject<any> | null | undefined;
|
|
14
16
|
} & React.RefAttributes<any>> & {
|
|
15
17
|
WrappedComponent: React.ComponentType<Props>;
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import
|
|
1
|
+
import React from 'react';
|
|
2
2
|
import { injectIntl } from 'react-intl';
|
|
3
3
|
import * as S from './DailyFilter.styles';
|
|
4
4
|
import TimeWindow from '../../Shared/TimeWindow/TimeWindow';
|
|
5
|
+
import { RANGE_DISPLAY_MODES } from '../../Shared/TimeWindow/RangeFormContainer/RangeForm/RangeForm.constants';
|
|
5
6
|
|
|
6
7
|
var DailyFilter = function DailyFilter(props) {
|
|
7
8
|
var handleChange = function handleChange(value) {
|
|
@@ -16,11 +17,18 @@ var DailyFilter = function DailyFilter(props) {
|
|
|
16
17
|
onRangeClear = props.onRangeClear,
|
|
17
18
|
texts = props.texts,
|
|
18
19
|
valueSelectionModes = props.valueSelectionModes,
|
|
19
|
-
disabled = props.disabled
|
|
20
|
+
disabled = props.disabled,
|
|
21
|
+
rangeDisplayMode = props.rangeDisplayMode;
|
|
22
|
+
var hideHeader = rangeDisplayMode !== RANGE_DISPLAY_MODES.SLIDER;
|
|
23
|
+
var headerOptions = rangeDisplayMode === RANGE_DISPLAY_MODES.SLIDER ? {
|
|
24
|
+
includeSummary: false,
|
|
25
|
+
includeActions: false
|
|
26
|
+
} : undefined;
|
|
20
27
|
return /*#__PURE__*/React.createElement(S.DailyFilterWrapper, null, /*#__PURE__*/React.createElement(TimeWindow, {
|
|
21
28
|
disabled: disabled,
|
|
22
29
|
texts: texts,
|
|
23
|
-
hideHeader:
|
|
30
|
+
hideHeader: hideHeader,
|
|
31
|
+
headerOptions: headerOptions,
|
|
24
32
|
numberOfDays: 0,
|
|
25
33
|
customDays: {
|
|
26
34
|
0: {
|
|
@@ -40,6 +48,7 @@ var DailyFilter = function DailyFilter(props) {
|
|
|
40
48
|
onRangePaste: onRangePaste,
|
|
41
49
|
onRangeCopy: onRangeCopy,
|
|
42
50
|
onRangeClear: onRangeClear,
|
|
51
|
+
rangeDisplayMode: rangeDisplayMode,
|
|
43
52
|
valueSelectionModes: valueSelectionModes
|
|
44
53
|
}), ' ');
|
|
45
54
|
};
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import styled from 'styled-components';
|
|
2
|
-
|
|
1
|
+
import styled from 'styled-components';
|
|
3
2
|
export var DailyFilterWrapper = styled.div.withConfig({
|
|
4
3
|
displayName: "DailyFilterstyles__DailyFilterWrapper",
|
|
5
4
|
componentId: "sc-17xrhgz-0"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { MonthlyFilterProps } from './MonthlyFilter.types';
|
|
3
|
-
declare const _default: React.ForwardRefExoticComponent<Pick<MonthlyFilterProps, "onChange" | "onRangeCopy" | "onRangePaste" | "onRangeClear" | "rangeClipboard" | "valueSelectionModes" | "texts" | "renderRangeFormSuffix" | "timePickerProps" | "disabled" | "value" | "maxEntries" | "daysOfPeriods" | "countedFromPeriods"> & {
|
|
3
|
+
declare const _default: React.ForwardRefExoticComponent<Pick<MonthlyFilterProps, "onChange" | "onRangeCopy" | "onRangePaste" | "onRangeClear" | "rangeClipboard" | "valueSelectionModes" | "rangeDisplayMode" | "texts" | "renderRangeFormSuffix" | "timePickerProps" | "disabled" | "value" | "maxEntries" | "daysOfPeriods" | "countedFromPeriods"> & {
|
|
4
4
|
forwardedRef?: ((instance: any) => void) | React.RefObject<any> | null | undefined;
|
|
5
5
|
} & React.RefAttributes<any>> & {
|
|
6
6
|
WrappedComponent: React.ComponentType<MonthlyFilterProps>;
|
|
@@ -332,7 +332,8 @@ var MonthlyFilter = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
332
332
|
timePickerProps = _this$props4.timePickerProps,
|
|
333
333
|
disabled = _this$props4.disabled,
|
|
334
334
|
renderRangeFormSuffix = _this$props4.renderRangeFormSuffix,
|
|
335
|
-
maxEntries = _this$props4.maxEntries
|
|
335
|
+
maxEntries = _this$props4.maxEntries,
|
|
336
|
+
rangeDisplayMode = _this$props4.rangeDisplayMode; // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any
|
|
336
337
|
|
|
337
338
|
var _ref = this.props,
|
|
338
339
|
_ref$min = _ref.min,
|
|
@@ -407,7 +408,8 @@ var MonthlyFilter = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
407
408
|
renderRangeFormSuffix: renderRangeFormSuffix,
|
|
408
409
|
timePickerProps: timePickerProps
|
|
409
410
|
}, _this2.getTimeWindowSettings(item), {
|
|
410
|
-
monthlyFilter: true
|
|
411
|
+
monthlyFilter: true,
|
|
412
|
+
rangeDisplayMode: rangeDisplayMode
|
|
411
413
|
}))) : /*#__PURE__*/React.createElement("div", null)
|
|
412
414
|
},
|
|
413
415
|
texts: {
|
|
@@ -4,7 +4,7 @@ import type { TimePickerProps } from '@synerise/ds-time-picker';
|
|
|
4
4
|
import { RangeActions } from '../../Shared/TimeWindow/TimeWindow.types';
|
|
5
5
|
import { DenormalizedFilter, FilterDefinition, MonthlySelectValue, WithDisabledProp } from '../../RangeFilter.types';
|
|
6
6
|
import { WithTranslations } from '../../../DateRangePicker.types';
|
|
7
|
-
import { DateLimitMode } from '../../Shared/TimeWindow/RangeFormContainer/RangeForm/RangeForm.types';
|
|
7
|
+
import { RangeDisplayMode, DateLimitMode } from '../../Shared/TimeWindow/RangeFormContainer/RangeForm/RangeForm.types';
|
|
8
8
|
import { COUNTED_FROM_ENUM, DAYS_OF_PERIOD_ENUM } from '../../constants';
|
|
9
9
|
export declare type MonthlyFilterProps = {
|
|
10
10
|
maxEntries?: number;
|
|
@@ -17,6 +17,7 @@ export declare type MonthlyFilterProps = {
|
|
|
17
17
|
timePickerProps?: Partial<TimePickerProps>;
|
|
18
18
|
rangeClipboard?: Partial<FilterDefinition>;
|
|
19
19
|
valueSelectionModes?: DateLimitMode[];
|
|
20
|
+
rangeDisplayMode?: RangeDisplayMode;
|
|
20
21
|
} & WithDisabledProp & Partial<RangeActions> & WithTranslations;
|
|
21
22
|
export declare type Month<T = DenormalizedFilter> = {
|
|
22
23
|
id: string | number;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import { WeeklyFilterProps } from './WeeklyFilter.types';
|
|
3
|
-
declare const WeeklyFilter: ({ value, onChange, onRangeClear, onRangePaste, onRangeCopy, rangeClipboard, intl, valueSelectionModes, texts, }: WeeklyFilterProps) => JSX.Element;
|
|
3
|
+
declare const WeeklyFilter: ({ value, onChange, onRangeClear, onRangePaste, onRangeCopy, rangeClipboard, intl, valueSelectionModes, rangeDisplayMode, texts, }: WeeklyFilterProps) => JSX.Element;
|
|
4
4
|
export default WeeklyFilter;
|
|
@@ -11,6 +11,7 @@ var WeeklyFilter = function WeeklyFilter(_ref) {
|
|
|
11
11
|
rangeClipboard = _ref.rangeClipboard,
|
|
12
12
|
intl = _ref.intl,
|
|
13
13
|
valueSelectionModes = _ref.valueSelectionModes,
|
|
14
|
+
rangeDisplayMode = _ref.rangeDisplayMode,
|
|
14
15
|
texts = _ref.texts;
|
|
15
16
|
var handleDayFormatter = React.useCallback(function (dayKey) {
|
|
16
17
|
return intl.formatMessage({
|
|
@@ -38,7 +39,8 @@ var WeeklyFilter = function WeeklyFilter(_ref) {
|
|
|
38
39
|
onRangeCopy: onRangeCopy,
|
|
39
40
|
onRangeClear: onRangeClear,
|
|
40
41
|
rangeClipboard: rangeClipboard,
|
|
41
|
-
valueSelectionModes: valueSelectionModes
|
|
42
|
+
valueSelectionModes: valueSelectionModes,
|
|
43
|
+
rangeDisplayMode: rangeDisplayMode
|
|
42
44
|
}));
|
|
43
45
|
};
|
|
44
46
|
|
|
@@ -2,13 +2,14 @@ import { IntlShape } from 'react-intl';
|
|
|
2
2
|
import { DayOptions, RangeActions } from '../../Shared/TimeWindow/TimeWindow.types';
|
|
3
3
|
import { FilterDefinition } from '../../RangeFilter.types';
|
|
4
4
|
import { WithTranslations } from '../../../DateRangePicker.types';
|
|
5
|
-
import { DateLimitMode } from '../../Shared/TimeWindow/RangeFormContainer/RangeForm/RangeForm.types';
|
|
5
|
+
import { DateLimitMode, RangeDisplayMode } from '../../Shared/TimeWindow/RangeFormContainer/RangeForm/RangeForm.types';
|
|
6
6
|
export declare type WeeklyFilterProps = {
|
|
7
7
|
value: Days;
|
|
8
8
|
onChange: (days: Days) => void;
|
|
9
9
|
intl: IntlShape;
|
|
10
10
|
rangeClipboard: Partial<FilterDefinition>;
|
|
11
11
|
valueSelectionModes: DateLimitMode[];
|
|
12
|
+
rangeDisplayMode?: RangeDisplayMode;
|
|
12
13
|
} & WithTranslations & Partial<RangeActions>;
|
|
13
14
|
export declare type DayKey = number | string;
|
|
14
15
|
export declare type Days = {
|
|
@@ -40,7 +40,8 @@ var Daily = function Daily(_ref) {
|
|
|
40
40
|
updatedSchedule[index] = _objectSpread({}, value[index], {
|
|
41
41
|
restricted: true,
|
|
42
42
|
start: dayjs(dateValueArray[0]).format(DEFAULT_TIME_FORMAT),
|
|
43
|
-
stop: dayjs(dateValueArray[1]).format(DEFAULT_TIME_FORMAT)
|
|
43
|
+
stop: dayjs(dateValueArray[1]).format(DEFAULT_TIME_FORMAT),
|
|
44
|
+
inverted: Boolean(dateValueArray[2])
|
|
44
45
|
});
|
|
45
46
|
}, [value]);
|
|
46
47
|
|
|
@@ -130,21 +130,24 @@ var Monthly = function Monthly(_ref) {
|
|
|
130
130
|
var handleDayTimeChange = React.useCallback(function (dayValue, dayKey, guid) {
|
|
131
131
|
var updatedSchedule = value;
|
|
132
132
|
var start = dayValue[0],
|
|
133
|
-
end = dayValue[1]
|
|
133
|
+
end = dayValue[1],
|
|
134
|
+
inverted = dayValue[2];
|
|
134
135
|
|
|
135
136
|
if (dayKey instanceof Array) {
|
|
136
137
|
dayKey.forEach(function (day) {
|
|
137
138
|
updatedSchedule[guid][day] = _objectSpread({}, value[guid][day], {
|
|
138
139
|
restricted: true,
|
|
139
140
|
start: start ? dayjs(start).format(DEFAULT_TIME_FORMAT) : undefined,
|
|
140
|
-
stop: end ? dayjs(end).format(DEFAULT_TIME_FORMAT) : undefined
|
|
141
|
+
stop: end ? dayjs(end).format(DEFAULT_TIME_FORMAT) : undefined,
|
|
142
|
+
inverted: Boolean(inverted)
|
|
141
143
|
});
|
|
142
144
|
});
|
|
143
145
|
} else {
|
|
144
146
|
updatedSchedule[guid][dayKey] = _objectSpread({}, value[guid][dayKey], {
|
|
145
147
|
restricted: true,
|
|
146
148
|
start: start ? dayjs(start).format(DEFAULT_TIME_FORMAT) : undefined,
|
|
147
|
-
stop: end ? dayjs(end).format(DEFAULT_TIME_FORMAT) : undefined
|
|
149
|
+
stop: end ? dayjs(end).format(DEFAULT_TIME_FORMAT) : undefined,
|
|
150
|
+
inverted: Boolean(inverted)
|
|
148
151
|
});
|
|
149
152
|
}
|
|
150
153
|
|
|
@@ -76,7 +76,8 @@ var Weekly = function Weekly(_ref) {
|
|
|
76
76
|
var handleDayTimeChange = React.useCallback(function (dayValue, dayKey, guid) {
|
|
77
77
|
var updatedSchedule = value;
|
|
78
78
|
var start = dayValue[0],
|
|
79
|
-
end = dayValue[1]
|
|
79
|
+
end = dayValue[1],
|
|
80
|
+
inverted = dayValue[2];
|
|
80
81
|
|
|
81
82
|
if (dayKey instanceof Array) {
|
|
82
83
|
dayKey.forEach(function (day) {
|
|
@@ -84,7 +85,8 @@ var Weekly = function Weekly(_ref) {
|
|
|
84
85
|
updatedSchedule[guid][day] = _objectSpread({}, value[guid][day], {
|
|
85
86
|
restricted: true,
|
|
86
87
|
start: start ? dayjs(start).format(DEFAULT_TIME_FORMAT) : undefined,
|
|
87
|
-
stop: end ? dayjs(end).format(DEFAULT_TIME_FORMAT) : undefined
|
|
88
|
+
stop: end ? dayjs(end).format(DEFAULT_TIME_FORMAT) : undefined,
|
|
89
|
+
inverted: Boolean(inverted)
|
|
88
90
|
});
|
|
89
91
|
}
|
|
90
92
|
});
|
|
@@ -92,7 +94,8 @@ var Weekly = function Weekly(_ref) {
|
|
|
92
94
|
updatedSchedule[guid][dayKey] = _objectSpread({}, value[guid][dayKey], {
|
|
93
95
|
restricted: true,
|
|
94
96
|
start: start ? dayjs(start).format(DEFAULT_TIME_FORMAT) : undefined,
|
|
95
|
-
stop: end ? dayjs(end).format(DEFAULT_TIME_FORMAT) : undefined
|
|
97
|
+
stop: end ? dayjs(end).format(DEFAULT_TIME_FORMAT) : undefined,
|
|
98
|
+
inverted: Boolean(inverted)
|
|
96
99
|
});
|
|
97
100
|
}
|
|
98
101
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { RangeFilterProps } from './RangeFilter.types';
|
|
3
|
-
declare const _default: React.ForwardRefExoticComponent<Pick<RangeFilterProps, "onChange" | "valueSelectionModes" | "texts" | "value" | "rangeUnits" | "onApply" | "onFilterSave" | "savedFilters" | "allowedFilterTypes" | "hideFooter" | "onCancel"> & {
|
|
3
|
+
declare const _default: React.ForwardRefExoticComponent<Pick<RangeFilterProps, "onChange" | "valueSelectionModes" | "rangeDisplayMode" | "texts" | "value" | "rangeUnits" | "onApply" | "onFilterSave" | "savedFilters" | "allowedFilterTypes" | "hideFooter" | "onCancel"> & {
|
|
4
4
|
forwardedRef?: ((instance: any) => void) | React.RefObject<any> | null | undefined;
|
|
5
5
|
} & React.RefAttributes<any>> & {
|
|
6
6
|
WrappedComponent: React.ComponentType<RangeFilterProps>;
|
|
@@ -148,7 +148,8 @@ var RangeFilter = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
148
148
|
texts = _this$props3.texts,
|
|
149
149
|
hideFooter = _this$props3.hideFooter,
|
|
150
150
|
valueSelectionModes = _this$props3.valueSelectionModes,
|
|
151
|
-
allowedFilterTypes = _this$props3.allowedFilterTypes
|
|
151
|
+
allowedFilterTypes = _this$props3.allowedFilterTypes,
|
|
152
|
+
rangeDisplayMode = _this$props3.rangeDisplayMode;
|
|
152
153
|
var buttonSource = allowedFilterTypes != null && allowedFilterTypes.length ? allowedFilterTypes : Object.values(TYPES);
|
|
153
154
|
buttonSource.sort(function (a, b) {
|
|
154
155
|
return Object.values(TYPES).indexOf(a) < Object.values(TYPES).indexOf(b) ? -1 : 1;
|
|
@@ -179,6 +180,7 @@ var RangeFilter = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
179
180
|
})), /*#__PURE__*/React.createElement(S.MainComponentWrapper, null, Component && /*#__PURE__*/React.createElement(Component, {
|
|
180
181
|
intl: intl,
|
|
181
182
|
texts: texts,
|
|
183
|
+
rangeDisplayMode: rangeDisplayMode,
|
|
182
184
|
value: definition,
|
|
183
185
|
onChange: function onChange(def) {
|
|
184
186
|
var _updatedFilter;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { IntlShape } from 'react-intl';
|
|
3
3
|
import { SavedFilter } from './Shared/FilterDropdown/FilterDropdown.types';
|
|
4
|
-
import { DateLimitMode } from './Shared/TimeWindow/RangeFormContainer/RangeForm/RangeForm.types';
|
|
4
|
+
import { DateLimitMode, RangeDisplayMode } from './Shared/TimeWindow/RangeFormContainer/RangeForm/RangeForm.types';
|
|
5
5
|
import { Props as DateRangePickerProps, Texts } from '../DateRangePicker.types';
|
|
6
6
|
import { COUNTED_FROM_ENUM, DAYS_OF_PERIOD_ENUM } from './constants';
|
|
7
7
|
export declare type FilterValue<T = FilterDefinition> = {
|
|
@@ -20,6 +20,7 @@ export declare type RangeFilterProps = {
|
|
|
20
20
|
texts?: Texts;
|
|
21
21
|
allowedFilterTypes?: string[];
|
|
22
22
|
valueSelectionModes?: DateLimitMode[];
|
|
23
|
+
rangeDisplayMode?: RangeDisplayMode;
|
|
23
24
|
rangeUnits?: Pick<DateRangePickerProps, 'rangeUnits'>;
|
|
24
25
|
};
|
|
25
26
|
export declare type RangeFilterState = {
|
|
@@ -9,5 +9,5 @@ declare type HeaderProps = {
|
|
|
9
9
|
actions?: Action[];
|
|
10
10
|
suffix?: React.ReactNode;
|
|
11
11
|
};
|
|
12
|
-
export declare const Header: React.
|
|
12
|
+
export declare const Header: React.MemoExoticComponent<({ title, actions, suffix }: HeaderProps) => JSX.Element>;
|
|
13
13
|
export {};
|
package/dist/RangeFilter/Shared/TimeWindow/RangeFormContainer/RangeForm/RangeForm.constants.d.ts
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { DateLimitMode, RangeDisplayMode } from './RangeForm.types';
|
|
2
|
+
export declare const FORM_MODES: Record<string, DateLimitMode>;
|
|
3
|
+
export declare const RANGE_DISPLAY_MODES: Record<string, RangeDisplayMode>;
|
|
4
|
+
export declare const RANGE_FORM_INTL_KEYS: {
|
|
5
|
+
Hour: {
|
|
6
|
+
id: string;
|
|
7
|
+
defaultMessage: string;
|
|
8
|
+
};
|
|
9
|
+
Range: {
|
|
10
|
+
id: string;
|
|
11
|
+
defaultMessage: string;
|
|
12
|
+
};
|
|
13
|
+
};
|
|
14
|
+
export declare const SLIDER_MAX = 24;
|
|
15
|
+
export declare const SLIDER_MIN = 0;
|
|
16
|
+
export declare const SLIDER_STEP = 0.25;
|
package/dist/RangeFilter/Shared/TimeWindow/RangeFormContainer/RangeForm/RangeForm.constants.js
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export var FORM_MODES = {
|
|
2
|
+
HOUR: 'Hour',
|
|
3
|
+
RANGE: 'Range'
|
|
4
|
+
};
|
|
5
|
+
export var RANGE_DISPLAY_MODES = {
|
|
6
|
+
TIMEPICKER: 'timepicker',
|
|
7
|
+
SLIDER: 'slider'
|
|
8
|
+
};
|
|
9
|
+
export var RANGE_FORM_INTL_KEYS = {
|
|
10
|
+
Hour: {
|
|
11
|
+
id: 'DS.DATE-RANGE-PICKER.HOUR',
|
|
12
|
+
defaultMessage: 'Hour'
|
|
13
|
+
},
|
|
14
|
+
Range: {
|
|
15
|
+
id: 'DS.DATE-RANGE-PICKER.RANGE',
|
|
16
|
+
defaultMessage: 'Range'
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
export var SLIDER_MAX = 24;
|
|
20
|
+
export var SLIDER_MIN = 0;
|
|
21
|
+
export var SLIDER_STEP = 0.25;
|
|
@@ -1,15 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
export
|
|
5
|
-
|
|
6
|
-
id: string;
|
|
7
|
-
defaultMessage: string;
|
|
8
|
-
};
|
|
9
|
-
Range: {
|
|
10
|
-
id: string;
|
|
11
|
-
defaultMessage: string;
|
|
12
|
-
};
|
|
13
|
-
};
|
|
14
|
-
declare const RangeForm: React.FC<RangeFormProps>;
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { RangeFormProps } from './RangeForm.types';
|
|
3
|
+
import { FORM_MODES, RANGE_FORM_INTL_KEYS } from './RangeForm.constants';
|
|
4
|
+
export { FORM_MODES, RANGE_FORM_INTL_KEYS };
|
|
5
|
+
declare const RangeForm: ({ onModeChange, disabled, startDate, endDate, onStartChange, onEndChange, onExactHourSelect, onRangeDelete, valueSelectionModes, mode, rangeDisplayMode, isInvertedRange, timePickerProps, texts, valueFormatOptions, }: RangeFormProps) => JSX.Element;
|
|
15
6
|
export default RangeForm;
|
|
@@ -1,28 +1,20 @@
|
|
|
1
1
|
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
2
2
|
|
|
3
|
-
import
|
|
3
|
+
import React, { useState, useEffect } from 'react';
|
|
4
4
|
import { useIntl } from 'react-intl';
|
|
5
|
+
import dayjs from 'dayjs';
|
|
5
6
|
import Select from '@synerise/ds-select';
|
|
6
7
|
import Icon, { CloseS } from '@synerise/ds-icon';
|
|
7
8
|
import { useDataFormat } from '@synerise/ds-data-format';
|
|
8
9
|
import TimePicker from '@synerise/ds-time-picker';
|
|
10
|
+
import Slider from '@synerise/ds-slider';
|
|
9
11
|
import { theme } from '@synerise/ds-core';
|
|
10
12
|
import * as S from './RangeForm.styles';
|
|
11
13
|
import { getDisabledTimeOptions } from '../../../../../RangePicker/utils';
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
};
|
|
16
|
-
export var RANGE_FORM_INTL_KEYS = {
|
|
17
|
-
Hour: {
|
|
18
|
-
id: 'DS.DATE-RANGE-PICKER.HOUR',
|
|
19
|
-
defaultMessage: 'Hour'
|
|
20
|
-
},
|
|
21
|
-
Range: {
|
|
22
|
-
id: 'DS.DATE-RANGE-PICKER.RANGE',
|
|
23
|
-
defaultMessage: 'Range'
|
|
24
|
-
}
|
|
25
|
-
};
|
|
14
|
+
import { FORM_MODES, RANGE_DISPLAY_MODES, RANGE_FORM_INTL_KEYS, SLIDER_MIN, SLIDER_MAX, SLIDER_STEP } from './RangeForm.constants';
|
|
15
|
+
import { numberToDate, dateToNumber } from './RangeForm.utils'; // @deprecated, moved to ./RangeForm.constants
|
|
16
|
+
|
|
17
|
+
export { FORM_MODES, RANGE_FORM_INTL_KEYS };
|
|
26
18
|
|
|
27
19
|
var RangeForm = function RangeForm(_ref) {
|
|
28
20
|
var onModeChange = _ref.onModeChange,
|
|
@@ -37,6 +29,9 @@ var RangeForm = function RangeForm(_ref) {
|
|
|
37
29
|
valueSelectionModes = _ref$valueSelectionMo === void 0 ? [FORM_MODES.RANGE, FORM_MODES.HOUR] : _ref$valueSelectionMo,
|
|
38
30
|
_ref$mode = _ref.mode,
|
|
39
31
|
mode = _ref$mode === void 0 ? valueSelectionModes[0] : _ref$mode,
|
|
32
|
+
_ref$rangeDisplayMode = _ref.rangeDisplayMode,
|
|
33
|
+
rangeDisplayMode = _ref$rangeDisplayMode === void 0 ? RANGE_DISPLAY_MODES.TIMEPICKER : _ref$rangeDisplayMode,
|
|
34
|
+
isInvertedRange = _ref.isInvertedRange,
|
|
40
35
|
timePickerProps = _ref.timePickerProps,
|
|
41
36
|
texts = _ref.texts,
|
|
42
37
|
valueFormatOptions = _ref.valueFormatOptions;
|
|
@@ -46,22 +41,37 @@ var RangeForm = function RangeForm(_ref) {
|
|
|
46
41
|
|
|
47
42
|
var intl = useIntl();
|
|
48
43
|
|
|
49
|
-
var
|
|
50
|
-
start =
|
|
51
|
-
setStart =
|
|
44
|
+
var _useState = useState(startDate),
|
|
45
|
+
start = _useState[0],
|
|
46
|
+
setStart = _useState[1];
|
|
47
|
+
|
|
48
|
+
var _useState2 = useState(endDate),
|
|
49
|
+
end = _useState2[0],
|
|
50
|
+
setEnd = _useState2[1];
|
|
51
|
+
|
|
52
|
+
var _useState3 = useState(startDate ? dateToNumber(startDate) : SLIDER_MIN),
|
|
53
|
+
sliderStart = _useState3[0],
|
|
54
|
+
setSliderStart = _useState3[1];
|
|
52
55
|
|
|
53
|
-
var
|
|
54
|
-
|
|
55
|
-
|
|
56
|
+
var _useState4 = useState(endDate ? dateToNumber(endDate) : SLIDER_MAX),
|
|
57
|
+
sliderEnd = _useState4[0],
|
|
58
|
+
setSliderEnd = _useState4[1];
|
|
56
59
|
|
|
57
|
-
|
|
60
|
+
useEffect(function () {
|
|
61
|
+
if (rangeDisplayMode !== RANGE_DISPLAY_MODES.SLIDER) {
|
|
62
|
+
setStart(startDate);
|
|
63
|
+
setEnd(endDate);
|
|
64
|
+
} else {
|
|
65
|
+
setSliderStart(startDate ? dateToNumber(startDate) : SLIDER_MIN);
|
|
66
|
+
setSliderEnd(endDate ? dateToNumber(endDate) : SLIDER_MAX);
|
|
67
|
+
}
|
|
68
|
+
}, [rangeDisplayMode, startDate, endDate]);
|
|
69
|
+
|
|
70
|
+
var getPopupContainer = function getPopupContainer(node) {
|
|
58
71
|
return node.parentElement != null ? node.parentElement : document.body;
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
setEnd(endDate);
|
|
63
|
-
}, [startDate, endDate]);
|
|
64
|
-
var singleHourPicker = React.useMemo(function () {
|
|
72
|
+
};
|
|
73
|
+
|
|
74
|
+
var singleHourPicker = function singleHourPicker() {
|
|
65
75
|
return /*#__PURE__*/React.createElement(TimePicker, _extends({
|
|
66
76
|
disabled: disabled,
|
|
67
77
|
clearTooltip: texts == null ? void 0 : texts.clear,
|
|
@@ -80,8 +90,59 @@ var RangeForm = function RangeForm(_ref) {
|
|
|
80
90
|
use12HourClock: is12HoursClock,
|
|
81
91
|
valueFormatOptions: valueFormatOptions
|
|
82
92
|
}, timePickerProps));
|
|
83
|
-
}
|
|
84
|
-
|
|
93
|
+
};
|
|
94
|
+
|
|
95
|
+
var timeFormatByClockMode = is12HoursClock ? 'hh:mm A' : 'HH:mm';
|
|
96
|
+
|
|
97
|
+
var tipFormatter = function tipFormatter(value) {
|
|
98
|
+
if (value === undefined) return null;
|
|
99
|
+
var valueAsDate = numberToDate(value, SLIDER_MAX);
|
|
100
|
+
return dayjs(valueAsDate).format(timeFormatByClockMode);
|
|
101
|
+
};
|
|
102
|
+
|
|
103
|
+
var renderRangeSlider = function renderRangeSlider() {
|
|
104
|
+
var handleSliderChange = function handleSliderChange(range) {
|
|
105
|
+
if (range[0] !== sliderStart) {
|
|
106
|
+
setSliderStart(range[0]);
|
|
107
|
+
} else if (range[1] !== sliderEnd) {
|
|
108
|
+
setSliderEnd(range[1]);
|
|
109
|
+
}
|
|
110
|
+
};
|
|
111
|
+
|
|
112
|
+
var handleSliderAfterChange = function handleSliderAfterChange(range) {
|
|
113
|
+
var currentStartDateAsNumber = startDate ? dateToNumber(startDate) : SLIDER_MIN;
|
|
114
|
+
var currentEndDateAsNumber = endDate ? dateToNumber(endDate) : SLIDER_MAX;
|
|
115
|
+
var newStartDate = numberToDate(range[0], SLIDER_MAX, true);
|
|
116
|
+
var newEndDate = numberToDate(range[1], SLIDER_MAX);
|
|
117
|
+
|
|
118
|
+
if (range[0] !== currentStartDateAsNumber) {
|
|
119
|
+
setSliderStart(range[0]);
|
|
120
|
+
onStartChange(newStartDate);
|
|
121
|
+
} else if (range[1] !== currentEndDateAsNumber) {
|
|
122
|
+
setSliderEnd(range[1]);
|
|
123
|
+
onEndChange(newEndDate);
|
|
124
|
+
}
|
|
125
|
+
};
|
|
126
|
+
|
|
127
|
+
return /*#__PURE__*/React.createElement(Slider, {
|
|
128
|
+
range: true,
|
|
129
|
+
min: SLIDER_MIN,
|
|
130
|
+
max: SLIDER_MAX,
|
|
131
|
+
step: SLIDER_STEP,
|
|
132
|
+
inverted: isInvertedRange,
|
|
133
|
+
value: [sliderStart, sliderEnd],
|
|
134
|
+
included: true,
|
|
135
|
+
getTooltipPopupContainer: function getTooltipPopupContainer(container) {
|
|
136
|
+
return container;
|
|
137
|
+
},
|
|
138
|
+
tooltipVisible: true,
|
|
139
|
+
onAfterChange: handleSliderAfterChange,
|
|
140
|
+
onChange: handleSliderChange,
|
|
141
|
+
tipFormatter: tipFormatter
|
|
142
|
+
});
|
|
143
|
+
};
|
|
144
|
+
|
|
145
|
+
var renderRangePicker = function renderRangePicker() {
|
|
85
146
|
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(TimePicker, _extends({
|
|
86
147
|
disabled: disabled,
|
|
87
148
|
clearTooltip: texts == null ? void 0 : texts.clear,
|
|
@@ -114,12 +175,22 @@ var RangeForm = function RangeForm(_ref) {
|
|
|
114
175
|
disabledSeconds: getDisabledTimeOptions(end || start, 'SECONDS', start, null, is12HoursClock),
|
|
115
176
|
use12HourClock: is12HoursClock
|
|
116
177
|
}, timePickerProps)));
|
|
117
|
-
}
|
|
118
|
-
|
|
178
|
+
};
|
|
179
|
+
|
|
180
|
+
var renderRangeUI = function renderRangeUI() {
|
|
181
|
+
if (rangeDisplayMode === RANGE_DISPLAY_MODES.SLIDER) {
|
|
182
|
+
return renderRangeSlider();
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
return renderRangePicker();
|
|
186
|
+
};
|
|
187
|
+
|
|
188
|
+
var getModeLabel = function getModeLabel(modeName) {
|
|
119
189
|
if (texts && texts[modeName]) return texts[modeName];
|
|
120
190
|
return intl.formatMessage(RANGE_FORM_INTL_KEYS[modeName]);
|
|
121
|
-
}
|
|
122
|
-
|
|
191
|
+
};
|
|
192
|
+
|
|
193
|
+
var limitModeSelect = function limitModeSelect() {
|
|
123
194
|
return valueSelectionModes.length > 1 ? /*#__PURE__*/React.createElement(Select, {
|
|
124
195
|
value: mode,
|
|
125
196
|
disabled: disabled,
|
|
@@ -133,10 +204,12 @@ var RangeForm = function RangeForm(_ref) {
|
|
|
133
204
|
value: modeName
|
|
134
205
|
}, getModeLabel(modeName));
|
|
135
206
|
})) : null;
|
|
136
|
-
}
|
|
207
|
+
};
|
|
208
|
+
|
|
137
209
|
return /*#__PURE__*/React.createElement(S.Container, null, /*#__PURE__*/React.createElement(S.Row, {
|
|
138
|
-
justifyContent: "flex-start"
|
|
139
|
-
|
|
210
|
+
justifyContent: "flex-start",
|
|
211
|
+
mode: rangeDisplayMode
|
|
212
|
+
}, rangeDisplayMode !== RANGE_DISPLAY_MODES.SLIDER && limitModeSelect, mode === FORM_MODES.HOUR ? singleHourPicker() : renderRangeUI(), !!onRangeDelete && !disabled && /*#__PURE__*/React.createElement(S.RemoveIconWrapper, {
|
|
140
213
|
onClick: onRangeDelete
|
|
141
214
|
}, /*#__PURE__*/React.createElement(Icon, {
|
|
142
215
|
component: /*#__PURE__*/React.createElement(CloseS, null),
|
package/dist/RangeFilter/Shared/TimeWindow/RangeFormContainer/RangeForm/RangeForm.styles.d.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
|
+
import type { RangeDisplayMode } from './RangeForm.types';
|
|
1
2
|
export declare const RemoveIconWrapper: import("styled-components").StyledComponent<"div", any, {}, never>;
|
|
2
3
|
export declare const Container: import("styled-components").StyledComponent<"div", any, {}, never>;
|
|
3
4
|
export declare const Row: import("styled-components").StyledComponent<"div", any, {
|
|
4
5
|
justifyContent: string;
|
|
6
|
+
mode: RangeDisplayMode;
|
|
5
7
|
}, never>;
|
|
6
8
|
export declare const Separator: import("styled-components").StyledComponent<"span", any, {}, never>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import styled from 'styled-components';
|
|
1
|
+
import styled, { css } from 'styled-components';
|
|
2
2
|
export var RemoveIconWrapper = styled.div.withConfig({
|
|
3
3
|
displayName: "RangeFormstyles__RemoveIconWrapper",
|
|
4
4
|
componentId: "sc-4k3o5r-0"
|
|
@@ -10,8 +10,12 @@ export var Container = styled.div.withConfig({
|
|
|
10
10
|
export var Row = styled.div.withConfig({
|
|
11
11
|
displayName: "RangeFormstyles__Row",
|
|
12
12
|
componentId: "sc-4k3o5r-2"
|
|
13
|
-
})(["width:100%;display:flex;justify-content:", ";min-height:32px;margin:8px 0;"], function (props) {
|
|
13
|
+
})(["width:100%;display:flex;justify-content:", ";min-height:32px;margin:8px 0;", " .ant-slider{width:100%;margin:24px 8px 8px;}.ant-tooltip-inner{white-space:nowrap;}&& .ant-slider-handle:focus,&& .ant-slider-handle:hover{.ant-tooltip-content{background-color:transparent;}.ant-tooltip-inner{color:", ";}}"], function (props) {
|
|
14
14
|
return props.justifyContent;
|
|
15
|
+
}, function (props) {
|
|
16
|
+
return props.mode === 'slider' && css(["&{column-gap:8px;margin-top:16px;", "{margin-top:14px;}}"], RemoveIconWrapper);
|
|
17
|
+
}, function (props) {
|
|
18
|
+
return props.theme.palette['grey-600'];
|
|
15
19
|
});
|
|
16
20
|
export var Separator = styled.span.withConfig({
|
|
17
21
|
displayName: "RangeFormstyles__Separator",
|
package/dist/RangeFilter/Shared/TimeWindow/RangeFormContainer/RangeForm/RangeForm.types.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ import { WithTranslations } from '../../../../../DateRangePicker.types';
|
|
|
3
3
|
import { RangeFormContainerProps } from '../RangeFormContainer.types';
|
|
4
4
|
import { WithDisabledProp } from '../../../../RangeFilter.types';
|
|
5
5
|
export declare type DateLimitMode = 'Hour' | 'Range';
|
|
6
|
+
export declare type RangeDisplayMode = 'timepicker' | 'slider';
|
|
6
7
|
export declare type RangeFormProps = {
|
|
7
8
|
mode: DateLimitMode;
|
|
8
9
|
onModeChange: (mode: DateLimitMode) => void;
|
|
@@ -14,6 +15,8 @@ export declare type RangeFormProps = {
|
|
|
14
15
|
onExactHourSelect: (value?: Date) => void;
|
|
15
16
|
onRangeDelete?: () => void;
|
|
16
17
|
valueSelectionModes: DateLimitMode[];
|
|
18
|
+
rangeDisplayMode?: RangeDisplayMode;
|
|
19
|
+
isInvertedRange?: boolean;
|
|
17
20
|
} & WithTranslations & WithDisabledProp & Pick<RangeFormContainerProps, 'timePickerProps' | 'valueFormatOptions'>;
|
|
18
21
|
export declare type RangeFormTexts = {
|
|
19
22
|
range: React.ReactNode | string;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import dayjs from 'dayjs';
|
|
2
|
+
import startOf from '../../../../../dateUtils/startOf';
|
|
3
|
+
import endOf from '../../../../../dateUtils/endOf';
|
|
4
|
+
export var numberToDate = function numberToDate(number, max, isRangeStart) {
|
|
5
|
+
if (number === max) {
|
|
6
|
+
return dayjs().endOf('day').toDate();
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
var hours = Math.floor(number);
|
|
10
|
+
var minutes = 60 * (number % 1);
|
|
11
|
+
var result = dayjs().hour(hours).minute(minutes).toDate();
|
|
12
|
+
return isRangeStart ? startOf.MINUTES(result) : endOf.MINUTES(result);
|
|
13
|
+
};
|
|
14
|
+
export var dateToNumber = function dateToNumber(date) {
|
|
15
|
+
var integer = date.getHours();
|
|
16
|
+
var decimal = Math.round(date.getMinutes() / 60 * 4) / 4;
|
|
17
|
+
var result = integer + decimal;
|
|
18
|
+
return result;
|
|
19
|
+
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
/// <reference types="react" />
|
|
2
2
|
import type { RangeFormContainerProps } from './RangeFormContainer.types';
|
|
3
|
-
declare const RangeFormContainer:
|
|
3
|
+
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;
|
|
4
4
|
export default RangeFormContainer;
|
|
@@ -5,12 +5,15 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
|
|
|
5
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
6
|
|
|
7
7
|
import * as React from 'react';
|
|
8
|
+
import { FormattedMessage } from 'react-intl';
|
|
8
9
|
import RangeForm from './RangeForm/RangeForm';
|
|
10
|
+
import { RANGE_DISPLAY_MODES } from './RangeForm/RangeForm.constants';
|
|
9
11
|
import { getDateFromDayValue, getDefaultFilterForLimitMode } from '../utils';
|
|
10
12
|
import { Header } from '../Header/Header';
|
|
11
13
|
import RangeSummary from '../RangeSummary/RangeSummary';
|
|
12
14
|
import RangeActions from '../RangeActions/RangeActions';
|
|
13
15
|
import { DEFAULT_LIMIT_MODE } from '../TimeWindow';
|
|
16
|
+
import * as S from './RangeFormContainer.styles';
|
|
14
17
|
|
|
15
18
|
var RangeFormContainer = function RangeFormContainer(_ref) {
|
|
16
19
|
var activeDays = _ref.activeDays,
|
|
@@ -22,6 +25,8 @@ var RangeFormContainer = function RangeFormContainer(_ref) {
|
|
|
22
25
|
onDayTimeChange = _ref.onDayTimeChange,
|
|
23
26
|
onMultipleDayTimeChange = _ref.onMultipleDayTimeChange,
|
|
24
27
|
hideHeader = _ref.hideHeader,
|
|
28
|
+
_ref$headerOptions = _ref.headerOptions,
|
|
29
|
+
headerOptions = _ref$headerOptions === void 0 ? {} : _ref$headerOptions,
|
|
25
30
|
monthlyFilter = _ref.monthlyFilter,
|
|
26
31
|
monthlyFilterPeriod = _ref.monthlyFilterPeriod,
|
|
27
32
|
onRangeClear = _ref.onRangeClear,
|
|
@@ -33,6 +38,7 @@ var RangeFormContainer = function RangeFormContainer(_ref) {
|
|
|
33
38
|
onChange = _ref.onChange,
|
|
34
39
|
_ref$valueSelectionMo = _ref.valueSelectionModes,
|
|
35
40
|
valueSelectionModes = _ref$valueSelectionMo === void 0 ? ['Range', 'Hour'] : _ref$valueSelectionMo,
|
|
41
|
+
rangeDisplayMode = _ref.rangeDisplayMode,
|
|
36
42
|
onModeChange = _ref.onModeChange,
|
|
37
43
|
timePickerProps = _ref.timePickerProps,
|
|
38
44
|
renderSuffix = _ref.renderSuffix,
|
|
@@ -63,8 +69,9 @@ var RangeFormContainer = function RangeFormContainer(_ref) {
|
|
|
63
69
|
}, [dayValue, valueSelectionModes]);
|
|
64
70
|
var onStartChange = React.useCallback(function (start) {
|
|
65
71
|
var dayVal = getDayValue(activeDays[0]);
|
|
66
|
-
var
|
|
67
|
-
|
|
72
|
+
var inverted = dayVal.inverted,
|
|
73
|
+
end = dayVal.stop;
|
|
74
|
+
var value = [start, end ? getDateFromDayValue(end, timeFormat) : undefined, Boolean(inverted)];
|
|
68
75
|
|
|
69
76
|
if (activeDays.length > 1) {
|
|
70
77
|
onMultipleDayTimeChange(value);
|
|
@@ -74,8 +81,22 @@ var RangeFormContainer = function RangeFormContainer(_ref) {
|
|
|
74
81
|
}, [activeDays, onMultipleDayTimeChange, onDayTimeChange, timeFormat, getDayValue, dayKeys]);
|
|
75
82
|
var onEndChange = React.useCallback(function (end) {
|
|
76
83
|
var dayVal = getDayValue(activeDays[0]);
|
|
77
|
-
var start = dayVal.start
|
|
78
|
-
|
|
84
|
+
var start = dayVal.start,
|
|
85
|
+
inverted = dayVal.inverted;
|
|
86
|
+
var value = [start ? getDateFromDayValue(start, timeFormat) : undefined, end, Boolean(inverted)];
|
|
87
|
+
|
|
88
|
+
if (activeDays.length > 1) {
|
|
89
|
+
onMultipleDayTimeChange(value);
|
|
90
|
+
} else {
|
|
91
|
+
onDayTimeChange(value, dayKeys);
|
|
92
|
+
}
|
|
93
|
+
}, [activeDays, onMultipleDayTimeChange, onDayTimeChange, timeFormat, getDayValue, dayKeys]);
|
|
94
|
+
var toggleInverted = React.useCallback(function () {
|
|
95
|
+
var dayVal = getDayValue(activeDays[0]);
|
|
96
|
+
var start = dayVal.start,
|
|
97
|
+
inverted = dayVal.inverted,
|
|
98
|
+
end = dayVal.stop;
|
|
99
|
+
var value = [start ? getDateFromDayValue(start, timeFormat) : undefined, end ? getDateFromDayValue(end, timeFormat) : undefined, Boolean(!inverted)];
|
|
79
100
|
|
|
80
101
|
if (activeDays.length > 1) {
|
|
81
102
|
onMultipleDayTimeChange(value);
|
|
@@ -85,9 +106,9 @@ var RangeFormContainer = function RangeFormContainer(_ref) {
|
|
|
85
106
|
}, [activeDays, onMultipleDayTimeChange, onDayTimeChange, timeFormat, getDayValue, dayKeys]);
|
|
86
107
|
var onExactHourSelect = React.useCallback(function (value) {
|
|
87
108
|
if (activeDays.length > 1) {
|
|
88
|
-
onMultipleDayTimeChange([value, value]);
|
|
109
|
+
onMultipleDayTimeChange([value, value, false]);
|
|
89
110
|
} else {
|
|
90
|
-
onDayTimeChange([value, value], dayKeys);
|
|
111
|
+
onDayTimeChange([value, value, false], dayKeys);
|
|
91
112
|
}
|
|
92
113
|
}, [activeDays, onMultipleDayTimeChange, onDayTimeChange, dayKeys]);
|
|
93
114
|
var rangeForm = React.useMemo(function () {
|
|
@@ -107,20 +128,34 @@ var RangeFormContainer = function RangeFormContainer(_ref) {
|
|
|
107
128
|
onRangeDelete: onRangeDelete,
|
|
108
129
|
valueSelectionModes: valueSelectionModes,
|
|
109
130
|
valueFormatOptions: valueFormatOptions,
|
|
110
|
-
timePickerProps: timePickerProps
|
|
131
|
+
timePickerProps: timePickerProps,
|
|
132
|
+
rangeDisplayMode: rangeDisplayMode,
|
|
133
|
+
isInvertedRange: Boolean(dayValue == null ? void 0 : dayValue.inverted)
|
|
111
134
|
});
|
|
112
|
-
}, [timeFormat, valueSelectionModes, handleModeChange, mode, disabled, dayValue, onRangeDelete, texts, timePickerProps, onStartChange, onEndChange, onExactHourSelect, valueFormatOptions]);
|
|
135
|
+
}, [timeFormat, rangeDisplayMode, valueSelectionModes, handleModeChange, mode, disabled, dayValue, onRangeDelete, texts, timePickerProps, onStartChange, onEndChange, onExactHourSelect, valueFormatOptions]);
|
|
136
|
+
var invertedToggleLink = React.useMemo(function () {
|
|
137
|
+
return /*#__PURE__*/React.createElement(S.InvertAction, {
|
|
138
|
+
onClick: toggleInverted
|
|
139
|
+
}, /*#__PURE__*/React.createElement(FormattedMessage, {
|
|
140
|
+
id: "DS.DATE-RANGE-PICKER.FILTER-INVERSE-SELECTION",
|
|
141
|
+
defaultMessage: "Inverse selection"
|
|
142
|
+
}));
|
|
143
|
+
}, [toggleInverted]);
|
|
113
144
|
var suffix = React.useMemo(function () {
|
|
114
|
-
|
|
145
|
+
var _headerOptions$includ = headerOptions.includeActions,
|
|
146
|
+
includeActions = _headerOptions$includ === void 0 ? true : _headerOptions$includ;
|
|
147
|
+
return renderSuffix ? renderSuffix() : /*#__PURE__*/React.createElement(React.Fragment, null, rangeDisplayMode === RANGE_DISPLAY_MODES.SLIDER && invertedToggleLink, includeActions && /*#__PURE__*/React.createElement(RangeActions, {
|
|
115
148
|
onRangeClear: onRangeClear,
|
|
116
149
|
onRangeCopy: onRangeCopy,
|
|
117
150
|
onRangePaste: onRangePaste,
|
|
118
151
|
texts: texts
|
|
119
|
-
});
|
|
120
|
-
}, [onRangePaste, onRangeClear, onRangeCopy, texts, renderSuffix]);
|
|
152
|
+
}));
|
|
153
|
+
}, [onRangePaste, onRangeClear, onRangeCopy, texts, renderSuffix, rangeDisplayMode, invertedToggleLink, headerOptions]);
|
|
121
154
|
if (hideHeader) return rangeForm;
|
|
155
|
+
var _headerOptions$includ2 = headerOptions.includeSummary,
|
|
156
|
+
includeSummary = _headerOptions$includ2 === void 0 ? true : _headerOptions$includ2;
|
|
122
157
|
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Header, {
|
|
123
|
-
title: /*#__PURE__*/React.createElement(RangeSummary, {
|
|
158
|
+
title: includeSummary && /*#__PURE__*/React.createElement(RangeSummary, {
|
|
124
159
|
dayKeys: dayKeys,
|
|
125
160
|
getDayLabel: getDayLabel,
|
|
126
161
|
monthlyFilter: monthlyFilter,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const InvertAction: import("styled-components").StyledComponent<"a", any, {}, never>;
|
|
@@ -3,8 +3,8 @@ 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
|
-
import { DateLimitMode } from './RangeForm/RangeForm.types';
|
|
7
|
-
export declare type DateValue = [Date | undefined, Date | undefined];
|
|
6
|
+
import { DateLimitMode, RangeDisplayMode } from './RangeForm/RangeForm.types';
|
|
7
|
+
export declare type DateValue = [Date | undefined, Date | undefined, boolean | undefined];
|
|
8
8
|
export declare type RangeFormContainerProps = {
|
|
9
9
|
activeDays: DayKey[];
|
|
10
10
|
dayKeys: DayKey | DayKey[];
|
|
@@ -15,6 +15,7 @@ export declare type RangeFormContainerProps = {
|
|
|
15
15
|
onModeChange?: (mode: DateLimitMode) => void;
|
|
16
16
|
onRangeDelete?: () => void;
|
|
17
17
|
valueSelectionModes: DateLimitMode[];
|
|
18
|
+
rangeDisplayMode?: RangeDisplayMode;
|
|
18
19
|
texts: Partial<TimeWindowTexts>;
|
|
19
20
|
/**
|
|
20
21
|
* @deprecated use `valueFormatOptions` instead
|
|
@@ -23,4 +24,4 @@ export declare type RangeFormContainerProps = {
|
|
|
23
24
|
valueFormatOptions?: DateToFormatOptions;
|
|
24
25
|
timePickerProps?: Partial<TimePickerProps>;
|
|
25
26
|
renderSuffix?: () => React.ReactNode;
|
|
26
|
-
} & Pick<TimeWindowProps, 'monthlyFilter' | 'monthlyFilterPeriod' | 'hideHeader' | 'onChange' | 'days'> & WithDisabledProp & Partial<RangeActions>;
|
|
27
|
+
} & Pick<TimeWindowProps, 'monthlyFilter' | 'monthlyFilterPeriod' | 'hideHeader' | 'headerOptions' | 'onChange' | 'days'> & WithDisabledProp & Partial<RangeActions>;
|
|
@@ -14,11 +14,9 @@ function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.crea
|
|
|
14
14
|
|
|
15
15
|
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; }
|
|
16
16
|
|
|
17
|
-
import
|
|
17
|
+
import React, { PureComponent, createRef } from 'react';
|
|
18
18
|
import { range } from 'lodash';
|
|
19
|
-
import { FormattedMessage, injectIntl } from 'react-intl';
|
|
20
|
-
// @ts-ignore
|
|
21
|
-
|
|
19
|
+
import { FormattedMessage, injectIntl } from 'react-intl';
|
|
22
20
|
import dayjs from 'dayjs';
|
|
23
21
|
import { withDataFormat } from '@synerise/ds-data-format';
|
|
24
22
|
import * as S from './TimeWindow.styles';
|
|
@@ -33,8 +31,8 @@ import SelectionHint from '../SelectionHint/SelectionHint';
|
|
|
33
31
|
import { EU_NOTATION_MONTH_DAYS_INDEXES, EU_NOTATION_WEEK_DAYS_INDEXES, US_NOTATION_MONTH_DAYS_INDEXES, US_NOTATION_WEEK_DAYS_INDEXES } from './constants/timeWindow.constants';
|
|
34
32
|
export var DEFAULT_LIMIT_MODE = 'Range';
|
|
35
33
|
|
|
36
|
-
var TimeWindowBase = /*#__PURE__*/function (
|
|
37
|
-
_inheritsLoose(TimeWindowBase,
|
|
34
|
+
var TimeWindowBase = /*#__PURE__*/function (_PureComponent) {
|
|
35
|
+
_inheritsLoose(TimeWindowBase, _PureComponent);
|
|
38
36
|
|
|
39
37
|
function TimeWindowBase() {
|
|
40
38
|
var _this;
|
|
@@ -43,14 +41,14 @@ var TimeWindowBase = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
43
41
|
args[_key] = arguments[_key];
|
|
44
42
|
}
|
|
45
43
|
|
|
46
|
-
_this =
|
|
44
|
+
_this = _PureComponent.call.apply(_PureComponent, [this].concat(args)) || this;
|
|
47
45
|
|
|
48
46
|
_defineProperty(_assertThisInitialized(_this), "state", {
|
|
49
47
|
activeDays: _this.props.daily ? [0] : [],
|
|
50
48
|
controlKeyPressed: false
|
|
51
49
|
});
|
|
52
50
|
|
|
53
|
-
_defineProperty(_assertThisInitialized(_this), "wrapperRef",
|
|
51
|
+
_defineProperty(_assertThisInitialized(_this), "wrapperRef", createRef());
|
|
54
52
|
|
|
55
53
|
_defineProperty(_assertThisInitialized(_this), "isDayRestricted", function (dayKey) {
|
|
56
54
|
var days = _this.props.days;
|
|
@@ -158,7 +156,8 @@ var TimeWindowBase = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
158
156
|
_this.handleDayChange(dayKey, {
|
|
159
157
|
restricted: true,
|
|
160
158
|
start: value[0] !== undefined ? dayjs(value[0]).format(TIME_FORMAT) : DEFAULT_RANGE_START,
|
|
161
|
-
stop: value[1] !== undefined ? dayjs(value[1]).format(TIME_FORMAT) : DEFAULT_RANGE_END
|
|
159
|
+
stop: value[1] !== undefined ? dayjs(value[1]).format(TIME_FORMAT) : DEFAULT_RANGE_END,
|
|
160
|
+
inverted: Boolean(value[2])
|
|
162
161
|
});
|
|
163
162
|
});
|
|
164
163
|
|
|
@@ -173,6 +172,7 @@ var TimeWindowBase = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
173
172
|
day: k,
|
|
174
173
|
start: dayjs(value[0]).format(TIME_FORMAT),
|
|
175
174
|
stop: dayjs(value[1]).format(TIME_FORMAT),
|
|
175
|
+
inverted: Boolean(value[2]),
|
|
176
176
|
restricted: true
|
|
177
177
|
});
|
|
178
178
|
});
|
|
@@ -252,7 +252,7 @@ var TimeWindowBase = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
252
252
|
var activeDays = _this.state.activeDays;
|
|
253
253
|
|
|
254
254
|
if (rangeClipboard != null && rangeClipboard.stop && rangeClipboard != null && rangeClipboard.start) {
|
|
255
|
-
activeDays.length > 1 ? _this.handleMultipleDayTimeChange([getDateFromDayValue(rangeClipboard.start), getDateFromDayValue(rangeClipboard.stop)]) : _this.handleDayTimeChange([getDateFromDayValue(rangeClipboard.start), getDateFromDayValue(rangeClipboard.stop)], dayKeys);
|
|
255
|
+
activeDays.length > 1 ? _this.handleMultipleDayTimeChange([getDateFromDayValue(rangeClipboard.start), getDateFromDayValue(rangeClipboard.stop), rangeClipboard == null ? void 0 : rangeClipboard.inverted]) : _this.handleDayTimeChange([getDateFromDayValue(rangeClipboard.start), getDateFromDayValue(rangeClipboard.stop), rangeClipboard == null ? void 0 : rangeClipboard.inverted], dayKeys);
|
|
256
256
|
}
|
|
257
257
|
});
|
|
258
258
|
|
|
@@ -264,7 +264,8 @@ var TimeWindowBase = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
264
264
|
|
|
265
265
|
onRangeCopy && onRangeCopy({
|
|
266
266
|
start: dayValue.start,
|
|
267
|
-
stop: dayValue.stop
|
|
267
|
+
stop: dayValue.stop,
|
|
268
|
+
inverted: dayValue.inverted
|
|
268
269
|
});
|
|
269
270
|
});
|
|
270
271
|
|
|
@@ -337,7 +338,7 @@ var TimeWindowBase = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
337
338
|
var daily = _this.props.daily;
|
|
338
339
|
|
|
339
340
|
if (!daily && !_this.haveActiveDaysCommonRange()) {
|
|
340
|
-
_this.handleMultipleDayTimeChange([getDateFromDayValue(DEFAULT_RANGE_START), getDateFromDayValue(DEFAULT_RANGE_END)]);
|
|
341
|
+
_this.handleMultipleDayTimeChange([getDateFromDayValue(DEFAULT_RANGE_START), getDateFromDayValue(DEFAULT_RANGE_END), false]);
|
|
341
342
|
}
|
|
342
343
|
|
|
343
344
|
_this.setState({
|
|
@@ -349,6 +350,7 @@ var TimeWindowBase = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
349
350
|
var activeDays = _this.state.activeDays;
|
|
350
351
|
var _this$props9 = _this.props,
|
|
351
352
|
hideHeader = _this$props9.hideHeader,
|
|
353
|
+
headerOptions = _this$props9.headerOptions,
|
|
352
354
|
monthlyFilterPeriod = _this$props9.monthlyFilterPeriod,
|
|
353
355
|
monthlyFilter = _this$props9.monthlyFilter,
|
|
354
356
|
daily = _this$props9.daily,
|
|
@@ -358,7 +360,8 @@ var TimeWindowBase = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
358
360
|
valueSelectionModes = _this$props9.valueSelectionModes,
|
|
359
361
|
renderRangeFormSuffix = _this$props9.renderRangeFormSuffix,
|
|
360
362
|
timePickerProps = _this$props9.timePickerProps,
|
|
361
|
-
disabled = _this$props9.disabled
|
|
363
|
+
disabled = _this$props9.disabled,
|
|
364
|
+
rangeDisplayMode = _this$props9.rangeDisplayMode;
|
|
362
365
|
return /*#__PURE__*/React.createElement(RangeFormContainer, {
|
|
363
366
|
disabled: disabled,
|
|
364
367
|
onChange: onChange,
|
|
@@ -375,13 +378,15 @@ var TimeWindowBase = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
375
378
|
return _this.handleRangePaste(dayKeys);
|
|
376
379
|
},
|
|
377
380
|
hideHeader: hideHeader,
|
|
381
|
+
headerOptions: headerOptions,
|
|
378
382
|
monthlyFilter: monthlyFilter,
|
|
379
383
|
monthlyFilterPeriod: monthlyFilterPeriod,
|
|
380
384
|
onRangeDelete: daily ? undefined : _this.handleRangeDelete,
|
|
381
385
|
texts: texts || {},
|
|
382
386
|
renderSuffix: renderRangeFormSuffix,
|
|
383
387
|
timePickerProps: timePickerProps,
|
|
384
|
-
valueSelectionModes: valueSelectionModes
|
|
388
|
+
valueSelectionModes: valueSelectionModes,
|
|
389
|
+
rangeDisplayMode: rangeDisplayMode
|
|
385
390
|
});
|
|
386
391
|
});
|
|
387
392
|
|
|
@@ -533,7 +538,7 @@ var TimeWindowBase = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
533
538
|
};
|
|
534
539
|
|
|
535
540
|
return TimeWindowBase;
|
|
536
|
-
}(
|
|
541
|
+
}(PureComponent);
|
|
537
542
|
|
|
538
543
|
_defineProperty(TimeWindowBase, "defaultProps", {
|
|
539
544
|
days: {},
|
|
@@ -5,7 +5,7 @@ import type { WithDataFormatProps } from '@synerise/ds-data-format';
|
|
|
5
5
|
import { DayProps } from './Day/Day.types';
|
|
6
6
|
import { FilterDefinition, WithDisabledProp } from '../../RangeFilter.types';
|
|
7
7
|
import { GridTexts } from './Grid/Grid.types';
|
|
8
|
-
import { DateLimitMode } from './RangeFormContainer/RangeForm/RangeForm.types';
|
|
8
|
+
import { DateLimitMode, RangeDisplayMode } from './RangeFormContainer/RangeForm/RangeForm.types';
|
|
9
9
|
export declare type DayKey = number | string;
|
|
10
10
|
export declare type DayOptions = {
|
|
11
11
|
display?: boolean;
|
|
@@ -47,6 +47,10 @@ export declare type TimeWindowProps = {
|
|
|
47
47
|
dayTemplate: (day: DayKey) => object;
|
|
48
48
|
dayFormatter: (day: DayKey, long?: boolean) => string | React.ReactNode;
|
|
49
49
|
hideHeader?: boolean;
|
|
50
|
+
headerOptions?: {
|
|
51
|
+
includeSummary?: boolean;
|
|
52
|
+
includeActions?: boolean;
|
|
53
|
+
};
|
|
50
54
|
onCheckDay?: (dayKey: DayKey) => void;
|
|
51
55
|
onSelectAll?: () => void;
|
|
52
56
|
onUnselectAll?: () => void;
|
|
@@ -57,6 +61,7 @@ export declare type TimeWindowProps = {
|
|
|
57
61
|
daily?: boolean;
|
|
58
62
|
rangeClipboard: Partial<FilterDefinition>;
|
|
59
63
|
valueSelectionModes: DateLimitMode[];
|
|
64
|
+
rangeDisplayMode?: RangeDisplayMode;
|
|
60
65
|
texts?: TimeWindowTexts & GridTexts;
|
|
61
66
|
renderRangeFormSuffix?: () => React.ReactNode;
|
|
62
67
|
timePickerProps?: Partial<TimePickerProps>;
|
|
@@ -24,7 +24,7 @@ export declare const TYPES_DATA: {
|
|
|
24
24
|
MONTHLY: {
|
|
25
25
|
labelTranslationKey: string;
|
|
26
26
|
defaultLabel: string;
|
|
27
|
-
component: import("react").ForwardRefExoticComponent<Pick<import("./Filters/MonthlyFilter/MonthlyFilter.types").MonthlyFilterProps, "onChange" | "onRangeCopy" | "onRangePaste" | "onRangeClear" | "rangeClipboard" | "valueSelectionModes" | "texts" | "renderRangeFormSuffix" | "timePickerProps" | "disabled" | "value" | "maxEntries" | "daysOfPeriods" | "countedFromPeriods"> & {
|
|
27
|
+
component: import("react").ForwardRefExoticComponent<Pick<import("./Filters/MonthlyFilter/MonthlyFilter.types").MonthlyFilterProps, "onChange" | "onRangeCopy" | "onRangePaste" | "onRangeClear" | "rangeClipboard" | "valueSelectionModes" | "rangeDisplayMode" | "texts" | "renderRangeFormSuffix" | "timePickerProps" | "disabled" | "value" | "maxEntries" | "daysOfPeriods" | "countedFromPeriods"> & {
|
|
28
28
|
forwardedRef?: ((instance: any) => void) | import("react").RefObject<any> | null | undefined;
|
|
29
29
|
} & import("react").RefAttributes<any>> & {
|
|
30
30
|
WrappedComponent: import("react").ComponentType<import("./Filters/MonthlyFilter/MonthlyFilter.types").MonthlyFilterProps>;
|
|
@@ -39,13 +39,13 @@ export declare const TYPES_DATA: {
|
|
|
39
39
|
WEEKLY: {
|
|
40
40
|
labelTranslationKey: string;
|
|
41
41
|
defaultLabel: string;
|
|
42
|
-
component: ({ value, onChange, onRangeClear, onRangePaste, onRangeCopy, rangeClipboard, intl, valueSelectionModes, texts, }: import("./Filters/WeeklyFilter/WeeklyFilter.types").WeeklyFilterProps) => JSX.Element;
|
|
42
|
+
component: ({ value, onChange, onRangeClear, onRangePaste, onRangeCopy, rangeClipboard, intl, valueSelectionModes, rangeDisplayMode, texts, }: import("./Filters/WeeklyFilter/WeeklyFilter.types").WeeklyFilterProps) => JSX.Element;
|
|
43
43
|
definition: {};
|
|
44
44
|
};
|
|
45
45
|
DAILY: {
|
|
46
46
|
labelTranslationKey: string;
|
|
47
47
|
defaultLabel: string;
|
|
48
|
-
component: import("react").ForwardRefExoticComponent<Pick<import("./Filters/DailyFilter/DailyFilter").Props, "onChange" | "onRangeCopy" | "onRangePaste" | "onRangeClear" | "valueSelectionModes" | "texts" | "disabled" | "value"> & {
|
|
48
|
+
component: import("react").ForwardRefExoticComponent<Pick<import("./Filters/DailyFilter/DailyFilter").Props, "onChange" | "onRangeCopy" | "onRangePaste" | "onRangeClear" | "valueSelectionModes" | "rangeDisplayMode" | "texts" | "disabled" | "value"> & {
|
|
49
49
|
forwardedRef?: ((instance: any) => void) | import("react").RefObject<any> | null | undefined;
|
|
50
50
|
} & import("react").RefAttributes<any>> & {
|
|
51
51
|
WrappedComponent: import("react").ComponentType<import("./Filters/DailyFilter/DailyFilter").Props>;
|
|
@@ -27,7 +27,7 @@ export declare class RawDateRangePicker extends PureComponent<DateRangePickerPro
|
|
|
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" | "showNowButton" | "validate" | "valueTransformer" | "arrowColor" | "disableAbsoluteTimepickerInRelative" | "rangePickerInputProps" | "allowedFilterTypes" | "renderPopoverTrigger" | "isTruncateMs" | "filterValueSelectionModes"> & {
|
|
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" | "showNowButton" | "validate" | "valueTransformer" | "arrowColor" | "disableAbsoluteTimepickerInRelative" | "rangePickerInputProps" | "allowedFilterTypes" | "renderPopoverTrigger" | "isTruncateMs" | "filterValueSelectionModes" | "filterRangeDisplayMode"> & {
|
|
31
31
|
forwardedRef?: ((instance: any) => void) | React.RefObject<any> | null | undefined;
|
|
32
32
|
} & React.RefAttributes<any>> & {
|
|
33
33
|
WrappedComponent: React.ComponentType<DateRangePickerProps>;
|
|
@@ -330,6 +330,7 @@ export var RawDateRangePicker = /*#__PURE__*/function (_PureComponent) {
|
|
|
330
330
|
_this$props4$disableA = _this$props4.disableAbsoluteTimepickerInRelative,
|
|
331
331
|
disableAbsoluteTimepickerInRelative = _this$props4$disableA === void 0 ? false : _this$props4$disableA,
|
|
332
332
|
filterValueSelectionModes = _this$props4.filterValueSelectionModes,
|
|
333
|
+
filterRangeDisplayMode = _this$props4.filterRangeDisplayMode,
|
|
333
334
|
_this$props4$showNowB = _this$props4.showNowButton,
|
|
334
335
|
showNowButton = _this$props4$showNowB === void 0 ? true : _this$props4$showNowB;
|
|
335
336
|
var _this$state3 = this.state,
|
|
@@ -356,7 +357,8 @@ export var RawDateRangePicker = /*#__PURE__*/function (_PureComponent) {
|
|
|
356
357
|
savedFilters: savedFilters,
|
|
357
358
|
allowedFilterTypes: allowedFilterTypes,
|
|
358
359
|
onFilterSave: onFilterSave,
|
|
359
|
-
valueSelectionModes: filterValueSelectionModes
|
|
360
|
+
valueSelectionModes: filterValueSelectionModes,
|
|
361
|
+
rangeDisplayMode: filterRangeDisplayMode
|
|
360
362
|
}));
|
|
361
363
|
var validator = validate ? validate(value) : {
|
|
362
364
|
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.24.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,22 +33,22 @@
|
|
|
33
33
|
"types": "dist/index.d.ts",
|
|
34
34
|
"dependencies": {
|
|
35
35
|
"@date-fns/upgrade": "^1.0.3",
|
|
36
|
-
"@synerise/ds-badge": "^0.6.
|
|
36
|
+
"@synerise/ds-badge": "^0.6.34",
|
|
37
37
|
"@synerise/ds-button": "^0.18.0",
|
|
38
38
|
"@synerise/ds-button-group": "^0.6.28",
|
|
39
39
|
"@synerise/ds-data-format": "^0.4.1",
|
|
40
|
-
"@synerise/ds-date-picker": "^0.10.
|
|
41
|
-
"@synerise/ds-dropdown": "^0.17.
|
|
40
|
+
"@synerise/ds-date-picker": "^0.10.12",
|
|
41
|
+
"@synerise/ds-dropdown": "^0.17.75",
|
|
42
42
|
"@synerise/ds-icon": "^0.58.0",
|
|
43
|
-
"@synerise/ds-inline-edit": "^0.6.
|
|
44
|
-
"@synerise/ds-input": "^0.18.
|
|
45
|
-
"@synerise/ds-input-number": "^0.8.
|
|
46
|
-
"@synerise/ds-manageable-list": "^0.26.
|
|
43
|
+
"@synerise/ds-inline-edit": "^0.6.74",
|
|
44
|
+
"@synerise/ds-input": "^0.18.49",
|
|
45
|
+
"@synerise/ds-input-number": "^0.8.22",
|
|
46
|
+
"@synerise/ds-manageable-list": "^0.26.3",
|
|
47
47
|
"@synerise/ds-menu": "^0.17.16",
|
|
48
48
|
"@synerise/ds-scrollbar": "^0.6.5",
|
|
49
|
-
"@synerise/ds-
|
|
50
|
-
"@synerise/ds-tags": "^0.8.
|
|
51
|
-
"@synerise/ds-time-picker": "^0.8.
|
|
49
|
+
"@synerise/ds-slider": "^0.12.24",
|
|
50
|
+
"@synerise/ds-tags": "^0.8.9",
|
|
51
|
+
"@synerise/ds-time-picker": "^0.8.3",
|
|
52
52
|
"@synerise/ds-tooltip": "^0.14.2",
|
|
53
53
|
"@synerise/ds-utils": "^0.19.0",
|
|
54
54
|
"date-fns": "^2.16.1",
|
|
@@ -67,5 +67,5 @@
|
|
|
67
67
|
"devDependencies": {
|
|
68
68
|
"@types/ramda": "^0.27.14"
|
|
69
69
|
},
|
|
70
|
-
"gitHead": "
|
|
70
|
+
"gitHead": "291e114ff38d1a8e9d5ad8d9e499add6c6f25ee5"
|
|
71
71
|
}
|