@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
|
@@ -4,8 +4,7 @@ import InputNumber from '@synerise/ds-input-number';
|
|
|
4
4
|
import set from 'ramda/src/set';
|
|
5
5
|
import lensPath from 'ramda/src/lensPath';
|
|
6
6
|
import * as S from '../../../RelativeRangePicker.styles';
|
|
7
|
-
import
|
|
8
|
-
import { RANGES_MODE } from '../../../utils';
|
|
7
|
+
import { RELATIVE_UNITS, RANGES_MODE, RELATIVE_DURATION_MAX } from '../../../../constants';
|
|
9
8
|
export var setDurationType = set(lensPath(['duration', 'type']));
|
|
10
9
|
var SELECT_DROPDOWN_OFFSET = -4;
|
|
11
10
|
|
|
@@ -26,7 +25,7 @@ var DurationField = function DurationField(_ref) {
|
|
|
26
25
|
compact: true
|
|
27
26
|
}, /*#__PURE__*/React.createElement(InputNumber, {
|
|
28
27
|
min: 1,
|
|
29
|
-
max:
|
|
28
|
+
max: RELATIVE_DURATION_MAX,
|
|
30
29
|
precision: 0,
|
|
31
30
|
step: 1,
|
|
32
31
|
value: duration == null ? void 0 : duration.value,
|
|
@@ -48,7 +47,7 @@ var DurationField = function DurationField(_ref) {
|
|
|
48
47
|
getPopupContainer: function getPopupContainer(node) {
|
|
49
48
|
return node.parentElement != null ? node.parentElement : document.body;
|
|
50
49
|
}
|
|
51
|
-
}, (rangeUnits ||
|
|
50
|
+
}, (rangeUnits || RELATIVE_UNITS).map(function (type) {
|
|
52
51
|
return /*#__PURE__*/React.createElement(Select.Option, {
|
|
53
52
|
key: type,
|
|
54
53
|
value: type
|
|
@@ -2,8 +2,7 @@ import * as React from 'react';
|
|
|
2
2
|
import Select from '@synerise/ds-select';
|
|
3
3
|
import InputNumber from '@synerise/ds-input-number';
|
|
4
4
|
import * as S from '../../../RelativeRangePicker.styles';
|
|
5
|
-
import
|
|
6
|
-
import { RANGES_MODE } from '../../../utils';
|
|
5
|
+
import { RELATIVE_UNITS, RANGES_MODE, RELATIVE_OFFSET_MAX } from '../../../../constants';
|
|
7
6
|
import { setOffsetType } from '../CustomRangeForm';
|
|
8
7
|
var SELECT_DROPDOWN_OFFSET = -4;
|
|
9
8
|
|
|
@@ -24,7 +23,7 @@ var OffsetField = function OffsetField(_ref) {
|
|
|
24
23
|
compact: true
|
|
25
24
|
}, /*#__PURE__*/React.createElement(InputNumber, {
|
|
26
25
|
min: 0,
|
|
27
|
-
max:
|
|
26
|
+
max: RELATIVE_OFFSET_MAX,
|
|
28
27
|
precision: 0,
|
|
29
28
|
step: 1,
|
|
30
29
|
value: offset == null ? void 0 : offset.value,
|
|
@@ -45,7 +44,7 @@ var OffsetField = function OffsetField(_ref) {
|
|
|
45
44
|
getPopupContainer: function getPopupContainer(node) {
|
|
46
45
|
return node.parentElement != null ? node.parentElement : document.body;
|
|
47
46
|
}
|
|
48
|
-
}, (rangeUnits ||
|
|
47
|
+
}, (rangeUnits || RELATIVE_UNITS).map(function (type) {
|
|
49
48
|
return /*#__PURE__*/React.createElement(Select.Option, {
|
|
50
49
|
key: type,
|
|
51
50
|
value: type
|
|
@@ -3,7 +3,7 @@ import Icon, { CheckS } from '@synerise/ds-icon';
|
|
|
3
3
|
import { theme } from '@synerise/ds-core';
|
|
4
4
|
import { useOnClickOutside } from '@synerise/ds-utils';
|
|
5
5
|
import * as S from '../../RelativeRangePicker.styles';
|
|
6
|
-
import { RANGES_ICON } from '
|
|
6
|
+
import { RANGES_ICON } from '../../../constants';
|
|
7
7
|
var MODE_TRANSLATION_KEYS = {
|
|
8
8
|
PAST: 'last',
|
|
9
9
|
FUTURE: 'next',
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import * as S from '../../RelativeRangePicker.styles';
|
|
3
|
+
import { isLifetime } from '../RangeDropdown/RangeDropdown';
|
|
4
|
+
import { ALL_TIME } from '../../../constants';
|
|
5
|
+
import { findMatchingPreset } from '../../utils';
|
|
3
6
|
|
|
4
7
|
var RangeButtons = function RangeButtons(_ref) {
|
|
5
8
|
var ranges = _ref.ranges,
|
|
6
9
|
currentRange = _ref.currentRange,
|
|
7
10
|
texts = _ref.texts,
|
|
8
11
|
onChange = _ref.onChange;
|
|
12
|
+
var matchingPreset = findMatchingPreset(currentRange);
|
|
9
13
|
return /*#__PURE__*/React.createElement(React.Fragment, null, ranges.map(function (range) {
|
|
10
14
|
return /*#__PURE__*/React.createElement(S.Range, {
|
|
11
15
|
"data-testid": "relative-range-preset-" + (range.key || range.id),
|
|
@@ -13,7 +17,7 @@ var RangeButtons = function RangeButtons(_ref) {
|
|
|
13
17
|
onClick: function onClick() {
|
|
14
18
|
onChange && onChange(range);
|
|
15
19
|
},
|
|
16
|
-
type:
|
|
20
|
+
type: matchingPreset && matchingPreset.key === range.key || isLifetime(currentRange) && range.key === ALL_TIME ? 'primary' : 'tertiary'
|
|
17
21
|
}, range.translationKey ? texts[range.translationKey] : texts == null ? void 0 : texts.custom);
|
|
18
22
|
}));
|
|
19
23
|
};
|
|
@@ -67,8 +67,9 @@ var RangeDropdown = function RangeDropdown(_ref) {
|
|
|
67
67
|
return isEqual(transformedCurrentRange, r);
|
|
68
68
|
}, mappedRanges);
|
|
69
69
|
var containsCurrentRange = currentRange && find(function (range) {
|
|
70
|
-
|
|
71
|
-
|
|
70
|
+
var key = isLifetime(currentRange) ? ALL_TIME : currentRange.key;
|
|
71
|
+
return range.key === key;
|
|
72
|
+
}, ranges) || anyOfTransformedRangesMatchesCurrentRange;
|
|
72
73
|
var overlay = /*#__PURE__*/React.createElement(S.OverlayWrapper, {
|
|
73
74
|
visible: dropVisible,
|
|
74
75
|
width: DROPDOWN_WIDTH
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { DateRange } from '../../../date.types';
|
|
2
2
|
import { DateRangePickerProps, Texts } from '../../../DateRangePicker.types';
|
|
3
3
|
export type RangeDropdownProps = {
|
|
4
4
|
ranges: DateRange[];
|
|
5
|
-
currentRange:
|
|
5
|
+
currentRange: DateRange;
|
|
6
6
|
texts: Texts;
|
|
7
|
-
onChange: (range:
|
|
7
|
+
onChange: (range: DateRange | undefined) => void;
|
|
8
8
|
valueTransformer?: ((value: DateRange | object) => DateRange | object) | DateRangePickerProps['valueTransformer'];
|
|
9
9
|
};
|
|
10
10
|
/**
|
|
@@ -16,10 +16,10 @@ import getRelativePresetForRange from '../dateUtils/getRelativePresetForRange';
|
|
|
16
16
|
import RangeButtons from './Elements/RangeButtons/RangeButtons';
|
|
17
17
|
import RangeDropdown from './Elements/RangeDropdown/RangeDropdown';
|
|
18
18
|
import CustomRangeForm from './Elements/CustomRangeForm/CustomRangeForm';
|
|
19
|
-
import { getCurrentGroupFromProps,
|
|
19
|
+
import { getCurrentGroupFromProps, getDefaultCustomRange, setFuture, setOffsetValue, setDurationValue, updatePresetKey, findMatchingPreset } from './utils';
|
|
20
20
|
import { fnsIsAfter } from '../fns';
|
|
21
21
|
import { DEFAULT_RANGE, normalizeRange } from '../utils';
|
|
22
|
-
import { CUSTOM_RANGE_KEY } from '../constants';
|
|
22
|
+
import { CUSTOM_RANGE_KEY, RANGES_MODE } from '../constants';
|
|
23
23
|
|
|
24
24
|
var RelativeRangePicker = /*#__PURE__*/function (_React$PureComponent) {
|
|
25
25
|
_inheritsLoose(RelativeRangePicker, _React$PureComponent);
|
|
@@ -27,8 +27,7 @@ var RelativeRangePicker = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
27
27
|
function RelativeRangePicker(props) {
|
|
28
28
|
var _this;
|
|
29
29
|
|
|
30
|
-
_this = _React$PureComponent.call(this, props) || this; //
|
|
31
|
-
// @ts-ignore
|
|
30
|
+
_this = _React$PureComponent.call(this, props) || this; // @ts-ignore
|
|
32
31
|
// eslint-disable-next-line
|
|
33
32
|
|
|
34
33
|
_defineProperty(_assertThisInitialized(_this), "onModeChange", function (mode) {
|
|
@@ -91,7 +90,7 @@ var RelativeRangePicker = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
91
90
|
}); // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
92
91
|
|
|
93
92
|
|
|
94
|
-
var resultRange = normalizeRange(changes);
|
|
93
|
+
var resultRange = normalizeRange(updatePresetKey(changes));
|
|
95
94
|
|
|
96
95
|
if ((resultRange == null ? void 0 : resultRange.translationKey) === CUSTOM_RANGE_KEY) {
|
|
97
96
|
_this.setState({
|
|
@@ -227,22 +226,25 @@ var RelativeRangePicker = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
227
226
|
_proto.render = function render() {
|
|
228
227
|
var _this$props4 = this.props,
|
|
229
228
|
texts = _this$props4.texts,
|
|
230
|
-
value = _this$props4.value,
|
|
231
229
|
showCustomRange = _this$props4.showCustomRange;
|
|
232
230
|
var _this$state3 = this.state,
|
|
233
231
|
groupedRanges = _this$state3.groupedRanges,
|
|
234
232
|
currentGroup = _this$state3.currentGroup,
|
|
235
233
|
currentRange = _this$state3.currentRange;
|
|
236
|
-
var isCustomValue = currentRange.type === 'RELATIVE' &&
|
|
237
|
-
var
|
|
238
|
-
|
|
234
|
+
var isCustomValue = currentRange.type === 'RELATIVE' && !findMatchingPreset(currentRange);
|
|
235
|
+
var orderedGroupedRanges = groupedRanges == null ? void 0 : groupedRanges.sort(function (a, b) {
|
|
236
|
+
return CONST.RELATIVE_SECTION_BUTTON_KEYS_ORDER.indexOf(a.key) - CONST.RELATIVE_SECTION_BUTTON_KEYS_ORDER.indexOf(b.key);
|
|
237
|
+
});
|
|
238
|
+
var visibleRanges = orderedGroupedRanges ? orderedGroupedRanges.slice(0, 4) : [];
|
|
239
|
+
var hiddenRanges = orderedGroupedRanges ? orderedGroupedRanges.slice(4) : [];
|
|
240
|
+
var displayRangeForm = isCustomValue || currentRange && currentRange.type === CONST.RELATIVE;
|
|
239
241
|
if (!currentGroup) return null;
|
|
240
242
|
return /*#__PURE__*/React.createElement(S.Container, null, /*#__PURE__*/React.createElement(S.Ranges, null, showCustomRange && /*#__PURE__*/React.createElement(S.Range, {
|
|
241
243
|
"data-testid": "relative-range-preset-" + CUSTOM_RANGE_KEY,
|
|
242
244
|
key: CUSTOM_RANGE_KEY,
|
|
243
245
|
onClick: this.handleCustomClick,
|
|
244
246
|
type: isCustomValue ? 'primary' : 'tertiary'
|
|
245
|
-
}, texts == null ? void 0 : texts.custom), this.renderRanges(visibleRanges), this.renderRangesDropdown(hiddenRanges)),
|
|
247
|
+
}, texts == null ? void 0 : texts.custom), this.renderRanges(visibleRanges), this.renderRangesDropdown(hiddenRanges)), displayRangeForm && this.renderCustomRangeForm());
|
|
246
248
|
};
|
|
247
249
|
|
|
248
250
|
return RelativeRangePicker;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { IntlShape } from 'react-intl';
|
|
2
|
-
import { DateRange, RelativeDateRange } from '../date.types';
|
|
2
|
+
import { DateRangePreset, DateRange, RelativeDateRange } from '../date.types';
|
|
3
3
|
import { DateRangePickerProps, RelativeMode, Texts } from '../DateRangePicker.types';
|
|
4
4
|
export type RelativeRangePickerProps = {
|
|
5
|
-
ranges?:
|
|
5
|
+
ranges?: DateRangePreset[];
|
|
6
6
|
value: DateRange;
|
|
7
7
|
onChange: (range: DateRange | undefined) => void;
|
|
8
8
|
future?: boolean;
|
|
@@ -21,7 +21,7 @@ export type State = {
|
|
|
21
21
|
past: boolean;
|
|
22
22
|
showCustomForm: boolean;
|
|
23
23
|
currentRange: RelativeDateRange;
|
|
24
|
-
groupedRanges?:
|
|
24
|
+
groupedRanges?: DateRangePreset[];
|
|
25
25
|
sinceTimestamp?: Date | undefined;
|
|
26
26
|
lastCustomRange?: RelativeDateRange;
|
|
27
27
|
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { DateRange } from '../../date.types';
|
|
3
|
+
export declare const findMatchingPreset: (range: DateRange) => {
|
|
4
|
+
type: "SINCE" | "RELATIVE";
|
|
5
|
+
offset: {
|
|
6
|
+
type: import("../../date.types").RelativeUnits;
|
|
7
|
+
value: number;
|
|
8
|
+
};
|
|
9
|
+
duration: import("../../date.types").Duration;
|
|
10
|
+
from?: import("../../date.types").NullableDateLimit | undefined;
|
|
11
|
+
to?: import("../../date.types").NullableDateLimit | undefined;
|
|
12
|
+
key: string;
|
|
13
|
+
future?: boolean | undefined;
|
|
14
|
+
filter?: import("../../date.types").DateFilter | undefined;
|
|
15
|
+
translationKey?: string | undefined;
|
|
16
|
+
id?: import("react").ReactText | undefined;
|
|
17
|
+
timestamp?: Date | undefined;
|
|
18
|
+
} | undefined;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
|
|
2
|
+
|
|
3
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
4
|
+
|
|
5
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
6
|
+
|
|
7
|
+
import * as CONST from '../../constants';
|
|
8
|
+
export var findMatchingPreset = function findMatchingPreset(range) {
|
|
9
|
+
if (!range || range.type !== CONST.RELATIVE) {
|
|
10
|
+
return;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
var matchingPreset = CONST.RELATIVE_PRESETS.find(function (preset) {
|
|
14
|
+
var _preset$offset, _range$offset, _preset$offset2, _range$offset2, _preset$duration, _range$duration, _preset$duration2, _range$duration2;
|
|
15
|
+
|
|
16
|
+
return Boolean(preset.future) === Boolean(range.future) && ((_preset$offset = preset.offset) == null ? void 0 : _preset$offset.type) === ((_range$offset = range.offset) == null ? void 0 : _range$offset.type) && ((_preset$offset2 = preset.offset) == null ? void 0 : _preset$offset2.value) === ((_range$offset2 = range.offset) == null ? void 0 : _range$offset2.value) && ((_preset$duration = preset.duration) == null ? void 0 : _preset$duration.type) === ((_range$duration = range.duration) == null ? void 0 : _range$duration.type) && ((_preset$duration2 = preset.duration) == null ? void 0 : _preset$duration2.value) === ((_range$duration2 = range.duration) == null ? void 0 : _range$duration2.value);
|
|
17
|
+
}); // eslint-disable-next-line consistent-return
|
|
18
|
+
|
|
19
|
+
return matchingPreset && _objectSpread({}, matchingPreset);
|
|
20
|
+
};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { RELATIVE, RANGES_MODE } from '../../constants';
|
|
2
|
+
export var getDefaultCustomRange = function getDefaultCustomRange(currentGroup) {
|
|
3
|
+
return {
|
|
4
|
+
type: RELATIVE,
|
|
5
|
+
from: undefined,
|
|
6
|
+
to: undefined,
|
|
7
|
+
future: currentGroup === RANGES_MODE.FUTURE,
|
|
8
|
+
offset: {
|
|
9
|
+
type: 'DAYS',
|
|
10
|
+
value: 0
|
|
11
|
+
},
|
|
12
|
+
duration: {
|
|
13
|
+
type: 'DAYS',
|
|
14
|
+
value: 30
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export { findMatchingPreset } from './findMatchingPreset.utils';
|
|
2
|
+
export { setFuture } from './setFuture.utils';
|
|
3
|
+
export { updatePresetKey } from './updatePresetKey.utils';
|
|
4
|
+
export { setDurationValue } from './setDurationValue.utils';
|
|
5
|
+
export { setOffsetValue } from './setOffsetValue.utils';
|
|
6
|
+
export { getDefaultCustomRange } from './getDefaultCustomRange.utils';
|
|
7
|
+
export { getCurrentGroupFromProps } from './getCurrentGroupFromProps.utils';
|
|
8
|
+
export { isAbsolute } from './isAbsolute.utils';
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export { findMatchingPreset } from './findMatchingPreset.utils';
|
|
2
|
+
export { setFuture } from './setFuture.utils';
|
|
3
|
+
export { updatePresetKey } from './updatePresetKey.utils';
|
|
4
|
+
export { setDurationValue } from './setDurationValue.utils';
|
|
5
|
+
export { setOffsetValue } from './setOffsetValue.utils';
|
|
6
|
+
export { getDefaultCustomRange } from './getDefaultCustomRange.utils';
|
|
7
|
+
export { getCurrentGroupFromProps } from './getCurrentGroupFromProps.utils';
|
|
8
|
+
export { isAbsolute } from './isAbsolute.utils';
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import set from 'ramda/src/set';
|
|
2
|
+
import lensPath from 'ramda/src/lensPath';
|
|
3
|
+
export var setDurationValue = function setDurationValue(value, currentRange) {
|
|
4
|
+
var updatedValue = value === '' ? null : value;
|
|
5
|
+
return set(lensPath(['duration', 'value']))(typeof updatedValue === 'number' && updatedValue >= 1 ? Math.round(updatedValue) : 1, currentRange);
|
|
6
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const setFuture: (a: any, obj: any) => any;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import set from 'ramda/src/set';
|
|
2
|
+
import lensPath from 'ramda/src/lensPath';
|
|
3
|
+
export var setOffsetValue = function setOffsetValue(value, currentRange) {
|
|
4
|
+
var updatedValue = value === '' ? null : value;
|
|
5
|
+
return set(lensPath(['offset', 'value']))(typeof updatedValue === 'number' && updatedValue >= 0 ? Math.round(updatedValue) : 0, currentRange);
|
|
6
|
+
};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
|
|
2
|
+
|
|
3
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
4
|
+
|
|
5
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
6
|
+
|
|
7
|
+
import { findMatchingPreset } from './findMatchingPreset.utils';
|
|
8
|
+
import { CUSTOM_RANGE_KEY } from '../../constants';
|
|
9
|
+
export var updatePresetKey = function updatePresetKey(range) {
|
|
10
|
+
var matchingPreset = findMatchingPreset(range);
|
|
11
|
+
|
|
12
|
+
if (matchingPreset && matchingPreset.key) {
|
|
13
|
+
return _objectSpread({}, range, {
|
|
14
|
+
key: matchingPreset.key,
|
|
15
|
+
translationKey: matchingPreset.translationKey
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
return _objectSpread({}, range, {
|
|
20
|
+
key: CUSTOM_RANGE_KEY,
|
|
21
|
+
translationKey: CUSTOM_RANGE_KEY
|
|
22
|
+
});
|
|
23
|
+
};
|
package/dist/constants.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { RelativeDateRangePreset, AbsoluteDateRangePreset, RelativeUnits, RangeKey } from './date.types';
|
|
2
2
|
export declare const SECONDS = "SECONDS";
|
|
3
3
|
export declare const MINUTES = "MINUTES";
|
|
4
4
|
export declare const HOURS = "HOURS";
|
|
@@ -12,14 +12,25 @@ export declare const RELATIVE_OFFSET_MAX = 999999;
|
|
|
12
12
|
export declare const RELATIVE_DURATION_MAX = 999999;
|
|
13
13
|
export declare const RELATIVE_UNITS: RelativeUnits[];
|
|
14
14
|
export declare const ALL_TIME: RangeKey;
|
|
15
|
+
export declare const RANGES_MODE: {
|
|
16
|
+
PAST: string;
|
|
17
|
+
FUTURE: string;
|
|
18
|
+
SINCE: string;
|
|
19
|
+
};
|
|
20
|
+
export declare const RANGES_ICON: {
|
|
21
|
+
PAST: JSX.Element;
|
|
22
|
+
FUTURE: JSX.Element;
|
|
23
|
+
SINCE: JSX.Element;
|
|
24
|
+
};
|
|
15
25
|
export declare const range: (start: number, end: number) => number[];
|
|
16
26
|
export declare const CUSTOM_RANGE_KEY = "custom";
|
|
17
27
|
export declare const DURATION_MODIFIERS: {
|
|
18
28
|
readonly LAST: "timestampLast";
|
|
19
29
|
readonly NEXT: "timestampNext";
|
|
20
30
|
};
|
|
21
|
-
export declare const RELATIVE_PRESETS:
|
|
22
|
-
export declare const
|
|
31
|
+
export declare const RELATIVE_PRESETS: RelativeDateRangePreset[];
|
|
32
|
+
export declare const RELATIVE_SECTION_BUTTON_KEYS_ORDER: string[];
|
|
33
|
+
export declare const ABSOLUTE_PRESETS: AbsoluteDateRangePreset[];
|
|
23
34
|
export declare const TIME_OPTIONS: {
|
|
24
35
|
HOURS: number[];
|
|
25
36
|
MINUTES: number[];
|
package/dist/constants.js
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { ArrowRightM, ArrowLeftM, SinceArrowRightM } from '@synerise/ds-icon';
|
|
1
3
|
export var SECONDS = 'SECONDS';
|
|
2
4
|
export var MINUTES = 'MINUTES';
|
|
3
5
|
export var HOURS = 'HOURS';
|
|
@@ -11,6 +13,16 @@ export var RELATIVE_OFFSET_MAX = 999999;
|
|
|
11
13
|
export var RELATIVE_DURATION_MAX = 999999;
|
|
12
14
|
export var RELATIVE_UNITS = [SECONDS, MINUTES, HOURS, DAYS, WEEKS, MONTHS, YEARS];
|
|
13
15
|
export var ALL_TIME = 'ALL_TIME';
|
|
16
|
+
export var RANGES_MODE = {
|
|
17
|
+
PAST: 'PAST',
|
|
18
|
+
FUTURE: 'FUTURE',
|
|
19
|
+
SINCE: 'SINCE'
|
|
20
|
+
};
|
|
21
|
+
export var RANGES_ICON = {
|
|
22
|
+
PAST: /*#__PURE__*/React.createElement(ArrowLeftM, null),
|
|
23
|
+
FUTURE: /*#__PURE__*/React.createElement(ArrowRightM, null),
|
|
24
|
+
SINCE: /*#__PURE__*/React.createElement(SinceArrowRightM, null)
|
|
25
|
+
};
|
|
14
26
|
export var range = function range(start, end) {
|
|
15
27
|
if (end <= start) {
|
|
16
28
|
return [];
|
|
@@ -282,6 +294,7 @@ export var RELATIVE_PRESETS = [{
|
|
|
282
294
|
value: 1
|
|
283
295
|
}
|
|
284
296
|
}];
|
|
297
|
+
export var RELATIVE_SECTION_BUTTON_KEYS_ORDER = [CUSTOM_RANGE_KEY, ALL_TIME, 'TODAY', 'YESTERDAY', 'LAST_WEEK', 'LAST_MONTH', 'LAST_YEAR', 'THIS_WEEK', 'THIS_MONTH', 'LAST_7_DAYS', 'LAST_3_MONTHS', 'LAST_6_MONTHS'];
|
|
285
298
|
export var ABSOLUTE_PRESETS = [{
|
|
286
299
|
key: ALL_TIME,
|
|
287
300
|
translationKey: 'allTime',
|
package/dist/date.types.d.ts
CHANGED
|
@@ -45,7 +45,15 @@ export interface RelativeDateRange extends DateRangeBase {
|
|
|
45
45
|
from?: NullableDateLimit;
|
|
46
46
|
to?: NullableDateLimit;
|
|
47
47
|
}
|
|
48
|
+
type PresetType = {
|
|
49
|
+
key: string;
|
|
50
|
+
translationKey?: string;
|
|
51
|
+
};
|
|
52
|
+
export type RelativeDateRangePreset = RelativeDateRange & PresetType;
|
|
53
|
+
export type AbsoluteDateRangePreset = AbsoluteDateRange & PresetType;
|
|
54
|
+
export type DateRangePreset = RelativeDateRangePreset | AbsoluteDateRangePreset;
|
|
48
55
|
export type Days = {
|
|
49
56
|
[key: string]: object;
|
|
50
57
|
};
|
|
51
58
|
export type DateRange = AbsoluteDateRange | RelativeDateRange;
|
|
59
|
+
export {};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@synerise/ds-date-range-picker",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.25.1",
|
|
4
4
|
"description": "Date-Range-Picker UI Component for the Synerise Design System",
|
|
5
5
|
"license": "ISC",
|
|
6
6
|
"repository": "Synerise/synerise-design",
|
|
@@ -34,25 +34,25 @@
|
|
|
34
34
|
"types": "dist/index.d.ts",
|
|
35
35
|
"dependencies": {
|
|
36
36
|
"@date-fns/upgrade": "^1.0.3",
|
|
37
|
-
"@synerise/ds-badge": "^0.6.
|
|
38
|
-
"@synerise/ds-button": "^0.18.
|
|
39
|
-
"@synerise/ds-button-group": "^0.6.
|
|
37
|
+
"@synerise/ds-badge": "^0.6.40",
|
|
38
|
+
"@synerise/ds-button": "^0.18.5",
|
|
39
|
+
"@synerise/ds-button-group": "^0.6.33",
|
|
40
40
|
"@synerise/ds-data-format": "^0.4.4",
|
|
41
|
-
"@synerise/ds-date-picker": "^0.10.
|
|
42
|
-
"@synerise/ds-dropdown": "^0.17.
|
|
43
|
-
"@synerise/ds-icon": "^0.58.
|
|
44
|
-
"@synerise/ds-inline-edit": "^0.6.
|
|
45
|
-
"@synerise/ds-input": "^0.19.
|
|
46
|
-
"@synerise/ds-input-number": "^0.8.
|
|
47
|
-
"@synerise/ds-manageable-list": "^0.26.
|
|
48
|
-
"@synerise/ds-menu": "^0.18.
|
|
49
|
-
"@synerise/ds-scrollbar": "^0.6.
|
|
50
|
-
"@synerise/ds-select": "^0.15.
|
|
51
|
-
"@synerise/ds-slider": "^0.13.
|
|
52
|
-
"@synerise/ds-tags": "^0.8.
|
|
53
|
-
"@synerise/ds-time-picker": "^0.
|
|
54
|
-
"@synerise/ds-tooltip": "^0.14.
|
|
55
|
-
"@synerise/ds-utils": "^0.24.
|
|
41
|
+
"@synerise/ds-date-picker": "^0.10.22",
|
|
42
|
+
"@synerise/ds-dropdown": "^0.17.84",
|
|
43
|
+
"@synerise/ds-icon": "^0.58.5",
|
|
44
|
+
"@synerise/ds-inline-edit": "^0.6.84",
|
|
45
|
+
"@synerise/ds-input": "^0.19.5",
|
|
46
|
+
"@synerise/ds-input-number": "^0.8.27",
|
|
47
|
+
"@synerise/ds-manageable-list": "^0.26.14",
|
|
48
|
+
"@synerise/ds-menu": "^0.18.2",
|
|
49
|
+
"@synerise/ds-scrollbar": "^0.6.10",
|
|
50
|
+
"@synerise/ds-select": "^0.15.23",
|
|
51
|
+
"@synerise/ds-slider": "^0.13.2",
|
|
52
|
+
"@synerise/ds-tags": "^0.8.18",
|
|
53
|
+
"@synerise/ds-time-picker": "^0.9.1",
|
|
54
|
+
"@synerise/ds-tooltip": "^0.14.7",
|
|
55
|
+
"@synerise/ds-utils": "^0.24.19",
|
|
56
56
|
"date-fns": "^2.16.1",
|
|
57
57
|
"dayjs": "^1.8.35",
|
|
58
58
|
"lodash": "^4.17.20",
|
|
@@ -73,5 +73,5 @@
|
|
|
73
73
|
"@testing-library/user-event": "^10.3.1",
|
|
74
74
|
"@types/ramda": "^0.28.23"
|
|
75
75
|
},
|
|
76
|
-
"gitHead": "
|
|
76
|
+
"gitHead": "1b2696001dd88b4c11413977e38b541b0c78733d"
|
|
77
77
|
}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { DateRange, RelativeDateRange } from '../date.types';
|
|
2
|
-
import { Props } from './RelativeRangePicker.types';
|
|
3
|
-
import { RelativeMode } from '../DateRangePicker.types';
|
|
4
|
-
export declare const setOffsetValue: (value: number | string, currentRange: RelativeDateRange) => RelativeDateRange;
|
|
5
|
-
export declare const setDurationValue: (value: number | string, currentRange: RelativeDateRange) => RelativeDateRange;
|
|
6
|
-
export declare const setFuture: (a: any, obj: any) => any;
|
|
7
|
-
export declare const RANGES_MODE: {
|
|
8
|
-
PAST: string;
|
|
9
|
-
FUTURE: string;
|
|
10
|
-
SINCE: string;
|
|
11
|
-
};
|
|
12
|
-
export declare const RANGES_ICON: {
|
|
13
|
-
PAST: JSX.Element;
|
|
14
|
-
FUTURE: JSX.Element;
|
|
15
|
-
SINCE: JSX.Element;
|
|
16
|
-
};
|
|
17
|
-
export declare const getDefaultCustomRange: (currentGroup: string | null) => RelativeDateRange;
|
|
18
|
-
export declare const isAbsolute: (value: DateRange) => boolean;
|
|
19
|
-
export declare function getCurrentGroupFromProps({ relativeModes }: Props): RelativeMode | null;
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
import set from 'ramda/src/set';
|
|
2
|
-
import lensPath from 'ramda/src/lensPath';
|
|
3
|
-
import { ArrowRightM, ArrowLeftM, SinceArrowRightM } from '@synerise/ds-icon';
|
|
4
|
-
import * as React from 'react';
|
|
5
|
-
import * as CONST from '../constants';
|
|
6
|
-
export var setOffsetValue = function setOffsetValue(value, currentRange) {
|
|
7
|
-
var updatedValue = value === '' ? null : value;
|
|
8
|
-
return set(lensPath(['offset', 'value']))(typeof updatedValue === 'number' && updatedValue >= 0 ? Math.round(updatedValue) : 0, currentRange);
|
|
9
|
-
};
|
|
10
|
-
export var setDurationValue = function setDurationValue(value, currentRange) {
|
|
11
|
-
var updatedValue = value === '' ? null : value;
|
|
12
|
-
return set(lensPath(['duration', 'value']))(typeof updatedValue === 'number' && updatedValue >= 1 ? Math.round(updatedValue) : 1, currentRange);
|
|
13
|
-
};
|
|
14
|
-
export var setFuture = set(lensPath(['future']));
|
|
15
|
-
export var RANGES_MODE = {
|
|
16
|
-
PAST: 'PAST',
|
|
17
|
-
FUTURE: 'FUTURE',
|
|
18
|
-
SINCE: 'SINCE'
|
|
19
|
-
};
|
|
20
|
-
export var RANGES_ICON = {
|
|
21
|
-
PAST: /*#__PURE__*/React.createElement(ArrowLeftM, null),
|
|
22
|
-
FUTURE: /*#__PURE__*/React.createElement(ArrowRightM, null),
|
|
23
|
-
SINCE: /*#__PURE__*/React.createElement(SinceArrowRightM, null)
|
|
24
|
-
};
|
|
25
|
-
export var getDefaultCustomRange = function getDefaultCustomRange(currentGroup) {
|
|
26
|
-
return {
|
|
27
|
-
type: CONST.RELATIVE,
|
|
28
|
-
from: undefined,
|
|
29
|
-
to: undefined,
|
|
30
|
-
future: currentGroup === RANGES_MODE.FUTURE,
|
|
31
|
-
offset: {
|
|
32
|
-
type: 'DAYS',
|
|
33
|
-
value: 0
|
|
34
|
-
},
|
|
35
|
-
duration: {
|
|
36
|
-
type: 'DAYS',
|
|
37
|
-
value: 30
|
|
38
|
-
}
|
|
39
|
-
};
|
|
40
|
-
};
|
|
41
|
-
export var isAbsolute = function isAbsolute(value) {
|
|
42
|
-
return value.type === CONST.ABSOLUTE && !value.from && !value.to;
|
|
43
|
-
};
|
|
44
|
-
export function getCurrentGroupFromProps(_ref) {
|
|
45
|
-
var relativeModes = _ref.relativeModes;
|
|
46
|
-
|
|
47
|
-
if (!!relativeModes && (relativeModes == null ? void 0 : relativeModes.length) > 0) {
|
|
48
|
-
return relativeModes[0];
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
return null;
|
|
52
|
-
}
|