@synerise/ds-date-range-picker 0.26.5 → 0.26.6
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/README.md +94 -0
- package/dist/DateRangePicker.types.d.ts +4 -4
- package/dist/RangeFilter/Filters/DailyFilter/DailyFilter.js +1 -5
- package/dist/RangeFilter/Filters/MonthlyFilter/MonthlyFilter.js +3 -16
- package/dist/RangeFilter/Filters/new/Daily/Daily.d.ts +1 -1
- package/dist/RangeFilter/Filters/new/Daily/Daily.js +8 -6
- package/dist/RangeFilter/Filters/new/Daily/Daily.types.d.ts +2 -0
- package/dist/RangeFilter/Filters/new/Monthly/Monthly.d.ts +1 -1
- package/dist/RangeFilter/Filters/new/Monthly/Monthly.js +15 -23
- package/dist/RangeFilter/Filters/new/Monthly/Monthly.types.d.ts +2 -0
- package/dist/RangeFilter/Filters/new/Weekly/Weekly.d.ts +1 -1
- package/dist/RangeFilter/Filters/new/Weekly/Weekly.js +44 -52
- package/dist/RangeFilter/Filters/new/Weekly/Weekly.types.d.ts +2 -0
- package/dist/RangeFilter/RangeFilter.js +7 -18
- package/dist/RangeFilter/RangeFilter.types.d.ts +2 -2
- package/dist/RangeFilter/Shared/RangeFilterStatus/RangeFilterStatus.js +5 -12
- package/dist/RangeFilter/Shared/RangeFilterStatus/RangeFilterStatus.types.d.ts +3 -2
- package/dist/RangeFilter/Shared/SaveFilterForm/SaveFilterForm.js +4 -11
- package/dist/RangeFilter/Shared/SaveFilterForm/SaveFilterForm.types.d.ts +2 -0
- package/dist/RangeFilter/Shared/TimeWindow/Day/Day.js +1 -1
- package/dist/RangeFilter/Shared/TimeWindow/Day/Day.types.d.ts +1 -1
- package/dist/RangeFilter/Shared/TimeWindow/Grid/Grid.js +3 -9
- package/dist/RangeFilter/Shared/TimeWindow/Grid/Grid.types.d.ts +3 -4
- package/dist/RangeFilter/Shared/TimeWindow/RangeFormContainer/RangeForm/RangeForm.js +4 -4
- package/dist/RangeFilter/Shared/TimeWindow/RangeFormContainer/RangeForm/RangeForm.types.d.ts +3 -2
- package/dist/RangeFilter/Shared/TimeWindow/RangeFormContainer/RangeFormContainer.js +4 -8
- package/dist/RangeFilter/Shared/TimeWindow/RangeFormContainer/RangeFormContainer.types.d.ts +1 -1
- package/dist/RangeFilter/Shared/TimeWindow/RangeSummary/RangeSummary.js +3 -7
- package/dist/RangeFilter/Shared/TimeWindow/RangeSummary/RangeSummary.types.d.ts +2 -0
- package/dist/RangeFilter/Shared/TimeWindow/TimeWindow.js +4 -12
- package/dist/RangeFilter/Shared/TimeWindow/TimeWindow.types.d.ts +3 -8
- package/dist/RawDateRangePicker.d.ts +10 -6
- package/dist/RawDateRangePicker.js +58 -56
- package/dist/RelativeRangePicker/Elements/CustomRangeForm/CustomRangeForm.types.d.ts +1 -1
- package/dist/utils.js +86 -57
- package/package.json +3 -3
|
@@ -4,7 +4,7 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
|
|
|
4
4
|
|
|
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
|
-
import
|
|
7
|
+
import React, { useRef, useEffect, useCallback, useState, useMemo } from 'react';
|
|
8
8
|
import { useIntl } from 'react-intl';
|
|
9
9
|
import dayjs from 'dayjs';
|
|
10
10
|
import { v4 as uuid } from 'uuid';
|
|
@@ -18,6 +18,7 @@ import { useShiftAndControlKeys } from '../hooks/useShiftAndControlKeys';
|
|
|
18
18
|
import { canAddAnotherRange, haveActiveDaysCommonRange, range, removeEmptyEntries } from './utils';
|
|
19
19
|
import { DEFAULT_RANGE_START, DEFAULT_RANGE_END, DEFAULT_TIME_FORMAT, EMPTY_OBJECT, DEFAULT_MAX_ENTRIES, RENDER_EMPTY_NODE_FN, NOOP } from '../constants';
|
|
20
20
|
import { EU_NOTATION_WEEK_DAYS_INDEXES, US_NOTATION_WEEK_DAYS_INDEXES } from '../../../Shared/TimeWindow/constants/timeWindow.constants';
|
|
21
|
+
import { getDefaultTexts } from '../../../../utils';
|
|
21
22
|
|
|
22
23
|
var Weekly = function Weekly(_ref) {
|
|
23
24
|
var _ref$maxEntries = _ref.maxEntries,
|
|
@@ -29,10 +30,15 @@ var Weekly = function Weekly(_ref) {
|
|
|
29
30
|
timeFormat = _ref.timeFormat,
|
|
30
31
|
valueFormatOptions = _ref.valueFormatOptions,
|
|
31
32
|
value = _ref.value,
|
|
33
|
+
texts = _ref.texts,
|
|
32
34
|
timePickerProps = _ref.timePickerProps,
|
|
33
35
|
disabled = _ref.disabled,
|
|
34
36
|
errorTexts = _ref.errorTexts;
|
|
35
|
-
var
|
|
37
|
+
var intl = useIntl();
|
|
38
|
+
var allTexts = useMemo(function () {
|
|
39
|
+
return getDefaultTexts(intl, false, texts);
|
|
40
|
+
}, [texts, intl]);
|
|
41
|
+
var defaultDayValue = useMemo(function () {
|
|
36
42
|
return {
|
|
37
43
|
start: DEFAULT_RANGE_START,
|
|
38
44
|
stop: DEFAULT_RANGE_END,
|
|
@@ -43,29 +49,27 @@ var Weekly = function Weekly(_ref) {
|
|
|
43
49
|
};
|
|
44
50
|
}, [valueSelectionMode]);
|
|
45
51
|
|
|
46
|
-
var
|
|
47
|
-
filteredSchedule =
|
|
48
|
-
setFilteredSchedule =
|
|
52
|
+
var _useState = useState(Object.keys(value)),
|
|
53
|
+
filteredSchedule = _useState[0],
|
|
54
|
+
setFilteredSchedule = _useState[1];
|
|
49
55
|
|
|
50
|
-
var
|
|
51
|
-
activeDays =
|
|
52
|
-
setActiveDays =
|
|
56
|
+
var _useState2 = useState([]),
|
|
57
|
+
activeDays = _useState2[0],
|
|
58
|
+
setActiveDays = _useState2[1];
|
|
53
59
|
|
|
54
|
-
var ref =
|
|
60
|
+
var ref = useRef();
|
|
55
61
|
|
|
56
62
|
var _useShiftAndControlKe = useShiftAndControlKeys(ref),
|
|
57
63
|
controlKeyPressed = _useShiftAndControlKe[0],
|
|
58
64
|
shiftKeyPressed = _useShiftAndControlKe[1];
|
|
59
65
|
|
|
60
|
-
var intl = useIntl();
|
|
61
|
-
|
|
62
66
|
var _useDataFormat = useDataFormat(),
|
|
63
67
|
isSundayFirstWeekDay = _useDataFormat.isSundayFirstWeekDay;
|
|
64
68
|
|
|
65
|
-
var allKeys =
|
|
69
|
+
var allKeys = useMemo(function () {
|
|
66
70
|
return isSundayFirstWeekDay ? US_NOTATION_WEEK_DAYS_INDEXES : EU_NOTATION_WEEK_DAYS_INDEXES;
|
|
67
71
|
}, [isSundayFirstWeekDay]);
|
|
68
|
-
|
|
72
|
+
useEffect(function () {
|
|
69
73
|
removeEmptyEntries(value);
|
|
70
74
|
var entriesWithActiveDaysValue = activeDays.length ? Object.keys(value).filter(function (id) {
|
|
71
75
|
return activeDays.every(function (day) {
|
|
@@ -74,7 +78,7 @@ var Weekly = function Weekly(_ref) {
|
|
|
74
78
|
}) : [];
|
|
75
79
|
setFilteredSchedule(entriesWithActiveDaysValue);
|
|
76
80
|
}, [value, activeDays]);
|
|
77
|
-
var handleDayTimeChange =
|
|
81
|
+
var handleDayTimeChange = useCallback(function (dayValue, dayKey, guid) {
|
|
78
82
|
var updatedSchedule = value;
|
|
79
83
|
var start = dayValue[0],
|
|
80
84
|
end = dayValue[1],
|
|
@@ -103,7 +107,7 @@ var Weekly = function Weekly(_ref) {
|
|
|
103
107
|
onChange(updatedSchedule);
|
|
104
108
|
}, [value, onChange]);
|
|
105
109
|
|
|
106
|
-
var _getDayValue =
|
|
110
|
+
var _getDayValue = useCallback(function (dayKey, guid) {
|
|
107
111
|
if (typeof dayKey === 'number' && value[guid] && !!value[guid][dayKey]) {
|
|
108
112
|
return value[guid][dayKey];
|
|
109
113
|
}
|
|
@@ -111,7 +115,7 @@ var Weekly = function Weekly(_ref) {
|
|
|
111
115
|
return defaultDayValue;
|
|
112
116
|
}, [value, defaultDayValue]);
|
|
113
117
|
|
|
114
|
-
var handleModeChange =
|
|
118
|
+
var handleModeChange = useCallback(function (selectedMode, dayKeys, guid) {
|
|
115
119
|
var updatedSchedule = value;
|
|
116
120
|
dayKeys.forEach(function (day) {
|
|
117
121
|
updatedSchedule[guid][day] = _objectSpread({}, value[guid][day], {
|
|
@@ -120,35 +124,35 @@ var Weekly = function Weekly(_ref) {
|
|
|
120
124
|
});
|
|
121
125
|
onChange(updatedSchedule);
|
|
122
126
|
}, [value, onChange]);
|
|
123
|
-
var handleRangeDelete =
|
|
127
|
+
var handleRangeDelete = useCallback(function (guid, activeDaysArray) {
|
|
124
128
|
var updatedSchedule = value;
|
|
125
129
|
activeDaysArray.forEach(function (activeDay) {
|
|
126
130
|
delete updatedSchedule[guid][activeDay];
|
|
127
131
|
});
|
|
128
132
|
onChange(_objectSpread({}, updatedSchedule));
|
|
129
133
|
}, [value, onChange]);
|
|
130
|
-
var dayFormatter =
|
|
134
|
+
var dayFormatter = useCallback(function (dayKey) {
|
|
131
135
|
return intl.formatMessage({
|
|
132
136
|
id: "DS.DATE-RANGE-PICKER.WEEKDAYS-SHORT-" + dayKey
|
|
133
137
|
});
|
|
134
138
|
}, [intl]);
|
|
135
|
-
var checkDay =
|
|
139
|
+
var checkDay = useCallback(function (dayKey) {
|
|
136
140
|
setActiveDays([dayKey]);
|
|
137
141
|
}, []);
|
|
138
|
-
var getDayLabel =
|
|
142
|
+
var getDayLabel = useCallback(function (dayKey) {
|
|
139
143
|
return dayFormatter(dayKey);
|
|
140
144
|
}, [dayFormatter]);
|
|
141
|
-
var excludeDayFromActive =
|
|
145
|
+
var excludeDayFromActive = useCallback(function (dayKey) {
|
|
142
146
|
setActiveDays(activeDays.filter(function (day) {
|
|
143
147
|
return day !== dayKey;
|
|
144
148
|
}));
|
|
145
149
|
}, [activeDays]);
|
|
146
|
-
var isDayRestricted =
|
|
150
|
+
var isDayRestricted = useCallback(function (dayKey) {
|
|
147
151
|
return Object.keys(value).some(function (key) {
|
|
148
152
|
return !!value[key][dayKey];
|
|
149
153
|
});
|
|
150
154
|
}, [value]);
|
|
151
|
-
var removeDaySelection =
|
|
155
|
+
var removeDaySelection = useCallback(function (dayKey) {
|
|
152
156
|
var updatedSchedule = value;
|
|
153
157
|
Object.keys(value).forEach(function (key) {
|
|
154
158
|
delete updatedSchedule[key][dayKey];
|
|
@@ -156,16 +160,16 @@ var Weekly = function Weekly(_ref) {
|
|
|
156
160
|
excludeDayFromActive(dayKey);
|
|
157
161
|
onChange(updatedSchedule);
|
|
158
162
|
}, [value, onChange, excludeDayFromActive]);
|
|
159
|
-
var uncheckActiveDay =
|
|
163
|
+
var uncheckActiveDay = useCallback(function (dayKey) {
|
|
160
164
|
removeDaySelection(dayKey);
|
|
161
165
|
}, [removeDaySelection]);
|
|
162
|
-
var handleSelectAll =
|
|
166
|
+
var handleSelectAll = useCallback(function () {
|
|
163
167
|
setActiveDays(allKeys);
|
|
164
168
|
}, [allKeys]);
|
|
165
|
-
var handleUnselectAll =
|
|
169
|
+
var handleUnselectAll = useCallback(function () {
|
|
166
170
|
setActiveDays([]);
|
|
167
171
|
}, []);
|
|
168
|
-
var checkActiveDay =
|
|
172
|
+
var checkActiveDay = useCallback(function (dayKey) {
|
|
169
173
|
if (!isDayRestricted(dayKey)) {
|
|
170
174
|
checkDay(dayKey);
|
|
171
175
|
}
|
|
@@ -182,7 +186,7 @@ var Weekly = function Weekly(_ref) {
|
|
|
182
186
|
|
|
183
187
|
setActiveDays(updatedActiveDay);
|
|
184
188
|
}, [checkDay, isDayRestricted, activeDays, controlKeyPressed, shiftKeyPressed]);
|
|
185
|
-
var handleToggleDay =
|
|
189
|
+
var handleToggleDay = useCallback(function (dayKey, forcedState) {
|
|
186
190
|
if (typeof forcedState !== 'undefined') {
|
|
187
191
|
if (controlKeyPressed && forcedState) {
|
|
188
192
|
activeDays.includes(dayKey) ? excludeDayFromActive(dayKey) : checkActiveDay(dayKey);
|
|
@@ -194,7 +198,7 @@ var Weekly = function Weekly(_ref) {
|
|
|
194
198
|
activeDays.includes(dayKey) ? uncheckActiveDay(dayKey) : checkActiveDay(dayKey);
|
|
195
199
|
}
|
|
196
200
|
}, [controlKeyPressed, activeDays, uncheckActiveDay, checkActiveDay, excludeDayFromActive]);
|
|
197
|
-
var renderDay =
|
|
201
|
+
var renderDay = useCallback(function (dayKey) {
|
|
198
202
|
var isActive = activeDays.includes(dayKey);
|
|
199
203
|
return /*#__PURE__*/React.createElement(Day, {
|
|
200
204
|
key: dayKey,
|
|
@@ -207,10 +211,10 @@ var Weekly = function Weekly(_ref) {
|
|
|
207
211
|
intl: intl,
|
|
208
212
|
onToggle: handleToggleDay,
|
|
209
213
|
onClear: removeDaySelection,
|
|
210
|
-
texts:
|
|
214
|
+
texts: allTexts
|
|
211
215
|
});
|
|
212
|
-
}, [activeDays,
|
|
213
|
-
var handleRangeAdd =
|
|
216
|
+
}, [activeDays, getDayLabel, isDayRestricted, disabled, intl, handleToggleDay, removeDaySelection, allTexts]);
|
|
217
|
+
var handleRangeAdd = useCallback(function () {
|
|
214
218
|
var _objectSpread2;
|
|
215
219
|
|
|
216
220
|
var updatedDay = {};
|
|
@@ -228,15 +232,12 @@ var Weekly = function Weekly(_ref) {
|
|
|
228
232
|
|
|
229
233
|
onChange(updatedSchedule);
|
|
230
234
|
}, [value, activeDays, defaultDayValue, onChange]);
|
|
231
|
-
var renderGridTitle =
|
|
235
|
+
var renderGridTitle = useCallback(function (count) {
|
|
232
236
|
return /*#__PURE__*/React.createElement(SelectionCount, {
|
|
233
237
|
selectedDayCount: count,
|
|
234
|
-
label:
|
|
235
|
-
id: 'DS.DATE-RANGE-PICKER.SELECTED',
|
|
236
|
-
defaultMessage: 'Selected'
|
|
237
|
-
})
|
|
238
|
+
label: allTexts.selected
|
|
238
239
|
});
|
|
239
|
-
}, [
|
|
240
|
+
}, [allTexts.selected]);
|
|
240
241
|
var canAddRange = canAddAnotherRange(value, activeDays, maxEntries);
|
|
241
242
|
var isAnyDaySelected = activeDays.length > 0;
|
|
242
243
|
var shouldRenderAddButton = isAnyDaySelected && filteredSchedule.length < maxEntries && canAddRange && !disabled;
|
|
@@ -258,7 +259,7 @@ var Weekly = function Weekly(_ref) {
|
|
|
258
259
|
days: EMPTY_OBJECT,
|
|
259
260
|
intl: intl,
|
|
260
261
|
numberOfDays: 7,
|
|
261
|
-
texts:
|
|
262
|
+
texts: allTexts,
|
|
262
263
|
title: renderGridTitle(activeDays.length)
|
|
263
264
|
}), isAnyDaySelected && filteredSchedule.map(function (guid, index) {
|
|
264
265
|
return /*#__PURE__*/React.createElement(RangeFormContainer, {
|
|
@@ -269,7 +270,7 @@ var Weekly = function Weekly(_ref) {
|
|
|
269
270
|
onDayTimeChange: function onDayTimeChange(dayValue, dayKey) {
|
|
270
271
|
handleDayTimeChange(dayValue, dayKey, guid);
|
|
271
272
|
},
|
|
272
|
-
texts:
|
|
273
|
+
texts: allTexts,
|
|
273
274
|
onMultipleDayTimeChange: function onMultipleDayTimeChange(dates) {
|
|
274
275
|
return handleDayTimeChange(dates, activeDays, guid);
|
|
275
276
|
},
|
|
@@ -295,22 +296,13 @@ var Weekly = function Weekly(_ref) {
|
|
|
295
296
|
disabled: disabled
|
|
296
297
|
});
|
|
297
298
|
}), isAnyDaySelected && !canAddRange && /*#__PURE__*/React.createElement(SelectionHint, {
|
|
298
|
-
message:
|
|
299
|
-
id: 'DS.DATE-RANGE-PICKER.MAXIMUM-RANGES-MESSAGE',
|
|
300
|
-
defaultMessage: 'The maximum amount of ranges have been selected.'
|
|
301
|
-
})
|
|
299
|
+
message: allTexts.maximumRanges
|
|
302
300
|
}), shouldRenderAddButton && /*#__PURE__*/React.createElement(AddButton, {
|
|
303
301
|
"data-testid": "drp-filter-add-range",
|
|
304
|
-
label:
|
|
305
|
-
id: 'DS.DATE-RANGE-PICKER.ADD-TIME',
|
|
306
|
-
defaultMessage: 'Add range'
|
|
307
|
-
}),
|
|
302
|
+
label: allTexts.addTime,
|
|
308
303
|
onClick: handleRangeAdd
|
|
309
304
|
}), !isAnyDaySelected && !disabled && /*#__PURE__*/React.createElement(SelectionHint, {
|
|
310
|
-
message:
|
|
311
|
-
id: 'DS.DATE-RANGE-PICKER.SELECT-DAYS-DESCRIPTION',
|
|
312
|
-
defaultMessage: 'Select range.'
|
|
313
|
-
})
|
|
305
|
+
message: allTexts.selectDaysDescription
|
|
314
306
|
}));
|
|
315
307
|
};
|
|
316
308
|
|
|
@@ -3,6 +3,7 @@ import { DateLimitMode } from '../../../Shared/TimeWindow/RangeFormContainer/Ran
|
|
|
3
3
|
import { FilterBaseProps } from '../Filters.types';
|
|
4
4
|
import { WithDisabledProp } from '../../../RangeFilter.types';
|
|
5
5
|
import { FilterErrorType } from '../../../Shared/TimeWindow/RangeFormContainer/RangeFormContainer.types';
|
|
6
|
+
import { Texts } from '../../../../DateRangePicker.types';
|
|
6
7
|
export type WeeklyScheduleDayValue = DayOptions & {
|
|
7
8
|
mode: DateLimitMode;
|
|
8
9
|
};
|
|
@@ -16,4 +17,5 @@ export type WeeklyProps = {
|
|
|
16
17
|
[guid: string]: FilterErrorType[];
|
|
17
18
|
};
|
|
18
19
|
onChange: (value: WeeklyProps['value']) => void;
|
|
20
|
+
texts?: Partial<Texts>;
|
|
19
21
|
} & FilterBaseProps & WithDisabledProp;
|
|
@@ -154,15 +154,12 @@ var RangeFilter = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
154
154
|
buttonSource.sort(function (a, b) {
|
|
155
155
|
return Object.values(TYPES).indexOf(a) < Object.values(TYPES).indexOf(b) ? -1 : 1;
|
|
156
156
|
});
|
|
157
|
-
return /*#__PURE__*/React.createElement(S.Container, null, /*#__PURE__*/React.createElement(S.Header, null, /*#__PURE__*/React.createElement(S.Title, null,
|
|
158
|
-
id: 'DS.DATE-RANGE-PICKER.DATES_FILTER',
|
|
159
|
-
defaultMessage: 'Date filter'
|
|
160
|
-
})), !!(savedFilters != null && savedFilters.length) && /*#__PURE__*/React.createElement(FilterDropdown, {
|
|
157
|
+
return /*#__PURE__*/React.createElement(S.Container, null, /*#__PURE__*/React.createElement(S.Header, null, /*#__PURE__*/React.createElement(S.Title, null, texts.datesFilter), !!(savedFilters != null && savedFilters.length) && /*#__PURE__*/React.createElement(FilterDropdown, {
|
|
161
158
|
filters: savedFilters,
|
|
162
159
|
onFilterSelect: this.handleSavedFilterSelect,
|
|
163
160
|
onFilterRemove: this.handleSavedFilterRemove,
|
|
164
|
-
label: texts
|
|
165
|
-
removeTooltip: texts
|
|
161
|
+
label: texts.savedFiltersTrigger,
|
|
162
|
+
removeTooltip: texts.remove
|
|
166
163
|
})), /*#__PURE__*/React.createElement(S.Body, null, buttonSource.length > 1 && /*#__PURE__*/React.createElement(ButtonGroup, {
|
|
167
164
|
fullWidth: true,
|
|
168
165
|
size: "large"
|
|
@@ -173,10 +170,7 @@ var RangeFilter = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
173
170
|
onClick: function onClick() {
|
|
174
171
|
return _this2.handleTypeChange(key);
|
|
175
172
|
}
|
|
176
|
-
},
|
|
177
|
-
id: TYPES_DATA[key].labelTranslationKey,
|
|
178
|
-
defaultMessage: TYPES_DATA[key].defaultLabel
|
|
179
|
-
}));
|
|
173
|
+
}, texts[key.toLowerCase()]);
|
|
180
174
|
})), /*#__PURE__*/React.createElement(S.MainComponentWrapper, null, Component && /*#__PURE__*/React.createElement(Component, {
|
|
181
175
|
intl: intl,
|
|
182
176
|
texts: texts,
|
|
@@ -197,23 +191,18 @@ var RangeFilter = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
197
191
|
}))), !hideFooter && /*#__PURE__*/React.createElement(S.Footer, {
|
|
198
192
|
"data-testid": "range-filter-footer"
|
|
199
193
|
}, savedFilters && onFilterSave && /*#__PURE__*/React.createElement(SaveFilterForm, {
|
|
194
|
+
texts: texts,
|
|
200
195
|
onFilterSave: this.handleFilterSave
|
|
201
196
|
}), /*#__PURE__*/React.createElement(S.FooterSeparator, null), /*#__PURE__*/React.createElement(Button, {
|
|
202
197
|
"data-testid": "range-filter-cancel-button",
|
|
203
198
|
type: "ghost",
|
|
204
199
|
onClick: this.handleCancel
|
|
205
|
-
},
|
|
206
|
-
id: 'DS.DATE-RANGE-PICKER.CANCEL',
|
|
207
|
-
defaultMessage: 'Cancel'
|
|
208
|
-
})), /*#__PURE__*/React.createElement(Button, {
|
|
200
|
+
}, texts.cancel), /*#__PURE__*/React.createElement(Button, {
|
|
209
201
|
"data-testid": "range-filter-apply-button",
|
|
210
202
|
type: "primary",
|
|
211
203
|
disabled: !isValidValue(activeValue),
|
|
212
204
|
onClick: this.handleApply
|
|
213
|
-
},
|
|
214
|
-
id: 'DS.DATE-RANGE-PICKER.APPLY',
|
|
215
|
-
defaultMessage: 'Apply'
|
|
216
|
-
}))));
|
|
205
|
+
}, texts.apply)));
|
|
217
206
|
};
|
|
218
207
|
|
|
219
208
|
return RangeFilter;
|
|
@@ -2,7 +2,7 @@ import * as React from 'react';
|
|
|
2
2
|
import { IntlShape } from 'react-intl';
|
|
3
3
|
import { SavedFilter } from './Shared/FilterDropdown/FilterDropdown.types';
|
|
4
4
|
import { DateLimitMode, RangeDisplayMode } from './Shared/TimeWindow/RangeFormContainer/RangeForm/RangeForm.types';
|
|
5
|
-
import {
|
|
5
|
+
import { DateRangePickerProps, Texts } from '../DateRangePicker.types';
|
|
6
6
|
import { COUNTED_FROM_ENUM, DAYS_OF_PERIOD_ENUM } from './constants';
|
|
7
7
|
export type FilterValue<T = FilterDefinition> = {
|
|
8
8
|
definition?: Partial<T>;
|
|
@@ -17,7 +17,7 @@ export type RangeFilterProps = {
|
|
|
17
17
|
intl: IntlShape;
|
|
18
18
|
savedFilters?: SavedFilter[];
|
|
19
19
|
onFilterSave?: (filters: SavedFilter[]) => void;
|
|
20
|
-
texts
|
|
20
|
+
texts: Texts;
|
|
21
21
|
allowedFilterTypes?: string[];
|
|
22
22
|
valueSelectionModes?: DateLimitMode[];
|
|
23
23
|
rangeDisplayMode?: RangeDisplayMode;
|
|
@@ -15,7 +15,7 @@ var RangeFilterStatus = function RangeFilterStatus(_ref) {
|
|
|
15
15
|
_onClick = _ref.onClick,
|
|
16
16
|
texts = _ref.texts;
|
|
17
17
|
var intl = useIntl();
|
|
18
|
-
return /*#__PURE__*/React.createElement(S.Container, null, /*#__PURE__*/React.createElement(S.Title, null, texts
|
|
18
|
+
return /*#__PURE__*/React.createElement(S.Container, null, /*#__PURE__*/React.createElement(S.Title, null, texts.filter), !filter ? /*#__PURE__*/React.createElement(S.CreatorButton, {
|
|
19
19
|
label: label,
|
|
20
20
|
disabled: disabled,
|
|
21
21
|
onClick: _onClick,
|
|
@@ -26,14 +26,8 @@ var RangeFilterStatus = function RangeFilterStatus(_ref) {
|
|
|
26
26
|
|
|
27
27
|
_onClick();
|
|
28
28
|
},
|
|
29
|
-
headerSuffix: /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(S.SuffixText, null,
|
|
30
|
-
|
|
31
|
-
defaultMessage: 'Change'
|
|
32
|
-
})), /*#__PURE__*/React.createElement(Tooltip, {
|
|
33
|
-
title: intl.formatMessage({
|
|
34
|
-
id: 'DS.DATE-RANGE-PICKER.REMOVE',
|
|
35
|
-
defaultMessage: 'Remove'
|
|
36
|
-
})
|
|
29
|
+
headerSuffix: /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(S.SuffixText, null, texts.change), /*#__PURE__*/React.createElement(Tooltip, {
|
|
30
|
+
title: texts.remove
|
|
37
31
|
}, /*#__PURE__*/React.createElement(Icon, {
|
|
38
32
|
onClick: function onClick(event) {
|
|
39
33
|
event.stopPropagation();
|
|
@@ -44,7 +38,7 @@ var RangeFilterStatus = function RangeFilterStatus(_ref) {
|
|
|
44
38
|
}))),
|
|
45
39
|
item: {
|
|
46
40
|
id: 'filter-trigger',
|
|
47
|
-
name: intl.formatMessage({
|
|
41
|
+
name: texts[filter.type.toLocaleLowerCase()] || intl.formatMessage({
|
|
48
42
|
id: "DS.DATE-RANGE-PICKER." + filter.type,
|
|
49
43
|
defaultMessage: 'Filter'
|
|
50
44
|
}),
|
|
@@ -55,8 +49,7 @@ var RangeFilterStatus = function RangeFilterStatus(_ref) {
|
|
|
55
49
|
}, /*#__PURE__*/React.createElement(Icon, {
|
|
56
50
|
component: /*#__PURE__*/React.createElement(FilterM, null)
|
|
57
51
|
})))
|
|
58
|
-
}
|
|
59
|
-
texts: {}
|
|
52
|
+
}
|
|
60
53
|
}));
|
|
61
54
|
};
|
|
62
55
|
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
1
2
|
import { DateFilter } from '../../../date.types';
|
|
2
3
|
import { Texts } from '../../../DateRangePicker.types';
|
|
3
4
|
export type RangeFilterStatusProps = {
|
|
4
5
|
filter: DateFilter | undefined;
|
|
5
6
|
disabled: boolean;
|
|
6
|
-
label:
|
|
7
|
-
texts
|
|
7
|
+
label: ReactNode;
|
|
8
|
+
texts: Pick<Texts, 'filter' | 'change' | 'remove'>;
|
|
8
9
|
onClick: () => void;
|
|
9
10
|
onFilterRemove: () => void;
|
|
10
11
|
};
|
|
@@ -2,11 +2,11 @@ import * as React from 'react';
|
|
|
2
2
|
import Button from '@synerise/ds-button';
|
|
3
3
|
import { RawInput } from '@synerise/ds-input';
|
|
4
4
|
import Icon, { CheckM, CloseM } from '@synerise/ds-icon';
|
|
5
|
-
import { useIntl } from 'react-intl';
|
|
6
5
|
import * as S from './SaveFilterForm.styles';
|
|
7
6
|
|
|
8
7
|
var SaveFilterForm = function SaveFilterForm(_ref) {
|
|
9
|
-
var
|
|
8
|
+
var texts = _ref.texts,
|
|
9
|
+
onFilterSave = _ref.onFilterSave;
|
|
10
10
|
|
|
11
11
|
var _React$useState = React.useState(false),
|
|
12
12
|
active = _React$useState[0],
|
|
@@ -16,12 +16,8 @@ var SaveFilterForm = function SaveFilterForm(_ref) {
|
|
|
16
16
|
name = _React$useState2[0],
|
|
17
17
|
setName = _React$useState2[1];
|
|
18
18
|
|
|
19
|
-
var intl = useIntl();
|
|
20
19
|
var input = /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(RawInput, {
|
|
21
|
-
placeholder:
|
|
22
|
-
id: 'DS.DATE-RANGE-PICKER.FILTER-NAME',
|
|
23
|
-
defaultMessage: 'Filter name'
|
|
24
|
-
}),
|
|
20
|
+
placeholder: texts.filterName,
|
|
25
21
|
value: name,
|
|
26
22
|
onChange: function onChange(e) {
|
|
27
23
|
setName(e.target.value);
|
|
@@ -53,10 +49,7 @@ var SaveFilterForm = function SaveFilterForm(_ref) {
|
|
|
53
49
|
onClick: function onClick() {
|
|
54
50
|
return setActive(!active);
|
|
55
51
|
}
|
|
56
|
-
},
|
|
57
|
-
id: 'DS.DATE-RANGE-PICKER.SAVE-FILTER',
|
|
58
|
-
defaultMessage: 'Save filter'
|
|
59
|
-
})));
|
|
52
|
+
}, texts.saveFilter));
|
|
60
53
|
};
|
|
61
54
|
|
|
62
55
|
export default SaveFilterForm;
|
|
@@ -67,7 +67,7 @@ var Day = function Day(_ref) {
|
|
|
67
67
|
mode: "label-icon"
|
|
68
68
|
}), /*#__PURE__*/React.createElement(S.Content, null, label)), restricted && /*#__PURE__*/React.createElement(Tooltip, {
|
|
69
69
|
trigger: ['hover'],
|
|
70
|
-
title:
|
|
70
|
+
title: texts.clear || 'Clear',
|
|
71
71
|
onVisibleChange: handleTooltipVisibleChange,
|
|
72
72
|
getPopupContainer: getPopupContainer
|
|
73
73
|
}, /*#__PURE__*/React.createElement(S.IconWrapper, {
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import { FormattedMessage } from 'react-intl';
|
|
3
2
|
import { range, rangeRight } from 'lodash';
|
|
4
3
|
import { Header } from '../Header/Header';
|
|
5
4
|
import * as S from '../TimeWindow.styles';
|
|
@@ -12,6 +11,7 @@ var Grid = function Grid(_ref) {
|
|
|
12
11
|
numberOfDaysPerRow = _ref.numberOfDaysPerRow,
|
|
13
12
|
rowLabelFormatter = _ref.rowLabelFormatter,
|
|
14
13
|
title = _ref.title,
|
|
14
|
+
texts = _ref.texts,
|
|
15
15
|
showSelectAll = _ref.showSelectAll,
|
|
16
16
|
showUnselectAll = _ref.showUnselectAll,
|
|
17
17
|
inverted = _ref.inverted,
|
|
@@ -26,18 +26,12 @@ var Grid = function Grid(_ref) {
|
|
|
26
26
|
if (showSelectAll) actions.push({
|
|
27
27
|
key: 'select-all',
|
|
28
28
|
onClick: onSelectAll,
|
|
29
|
-
label: /*#__PURE__*/React.createElement(
|
|
30
|
-
id: "DS.DATE-RANGE-PICKER.SELECT-ALL",
|
|
31
|
-
defaultMessage: "Select all"
|
|
32
|
-
})
|
|
29
|
+
label: /*#__PURE__*/React.createElement(React.Fragment, null, texts.selectAll)
|
|
33
30
|
});
|
|
34
31
|
if (showUnselectAll) actions.push({
|
|
35
32
|
key: 'unselect-all',
|
|
36
33
|
onClick: onUnselectAll,
|
|
37
|
-
label: /*#__PURE__*/React.createElement(
|
|
38
|
-
id: "DS.DATE-RANGE-PICKER.UNSELECT-ALL",
|
|
39
|
-
defaultMessage: "Unselect all"
|
|
40
|
-
})
|
|
34
|
+
label: /*#__PURE__*/React.createElement(React.Fragment, null, texts.unselectAll)
|
|
41
35
|
});
|
|
42
36
|
var grid = React.useMemo(function () {
|
|
43
37
|
return /*#__PURE__*/React.createElement(S.Days, {
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { IntlShape } from 'react-intl';
|
|
3
3
|
import { DayKey, Days } from '../TimeWindow.types';
|
|
4
|
+
import type { Texts } from '../../../../DateRangePicker.types';
|
|
4
5
|
export type GridProps = {
|
|
5
6
|
keys: number[];
|
|
6
7
|
days: Days;
|
|
@@ -19,8 +20,6 @@ export type GridProps = {
|
|
|
19
20
|
onSelectAll: () => void;
|
|
20
21
|
onUnselectAll: () => void;
|
|
21
22
|
renderDay: (day: DayKey) => React.ReactNode;
|
|
22
|
-
texts
|
|
23
|
-
};
|
|
24
|
-
export type GridTexts = {
|
|
25
|
-
clear?: string | React.ReactNode;
|
|
23
|
+
texts: GridTexts;
|
|
26
24
|
};
|
|
25
|
+
export type GridTexts = Pick<Texts, 'clear' | 'selectAll' | 'unselectAll'>;
|
|
@@ -79,7 +79,7 @@ var RangeForm = function RangeForm(_ref) {
|
|
|
79
79
|
return /*#__PURE__*/React.createElement(TimePicker, _extends({
|
|
80
80
|
errorText: errorForFirstItem,
|
|
81
81
|
disabled: disabled,
|
|
82
|
-
clearTooltip: texts
|
|
82
|
+
clearTooltip: texts.clear,
|
|
83
83
|
onChange: function onChange(date) {
|
|
84
84
|
onExactHourSelect(date);
|
|
85
85
|
setStart(date);
|
|
@@ -151,7 +151,7 @@ var RangeForm = function RangeForm(_ref) {
|
|
|
151
151
|
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(TimePicker, _extends({
|
|
152
152
|
errorText: errorForFirstItem,
|
|
153
153
|
disabled: disabled,
|
|
154
|
-
clearTooltip: texts
|
|
154
|
+
clearTooltip: texts.clear,
|
|
155
155
|
onChange: function onChange(date) {
|
|
156
156
|
setStart(date);
|
|
157
157
|
onStartChange(date);
|
|
@@ -168,7 +168,7 @@ var RangeForm = function RangeForm(_ref) {
|
|
|
168
168
|
}, timePickerProps)), /*#__PURE__*/React.createElement(S.Separator, null, "-"), /*#__PURE__*/React.createElement(TimePicker, _extends({
|
|
169
169
|
errorText: errorForSecondItem,
|
|
170
170
|
disabled: disabled,
|
|
171
|
-
clearTooltip: texts
|
|
171
|
+
clearTooltip: texts.clear,
|
|
172
172
|
onChange: function onChange(date) {
|
|
173
173
|
setEnd(date);
|
|
174
174
|
onEndChange(date);
|
|
@@ -193,7 +193,7 @@ var RangeForm = function RangeForm(_ref) {
|
|
|
193
193
|
};
|
|
194
194
|
|
|
195
195
|
var getModeLabel = function getModeLabel(modeName) {
|
|
196
|
-
if (texts
|
|
196
|
+
if (texts[modeName.toLocaleLowerCase()]) return texts[modeName.toLocaleLowerCase()];
|
|
197
197
|
return intl.formatMessage(RANGE_FORM_INTL_KEYS[modeName]);
|
|
198
198
|
};
|
|
199
199
|
|
package/dist/RangeFilter/Shared/TimeWindow/RangeFormContainer/RangeForm/RangeForm.types.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ReactNode } from 'react';
|
|
2
|
-
import { WithTranslations } from '../../../../../DateRangePicker.types';
|
|
3
2
|
import { RangeFormContainerProps } from '../RangeFormContainer.types';
|
|
4
3
|
import { WithDisabledProp } from '../../../../RangeFilter.types';
|
|
4
|
+
import { TimeWindowTexts } from '../../TimeWindow.types';
|
|
5
5
|
export type DateLimitMode = 'Hour' | 'Range';
|
|
6
6
|
export type RangeDisplayMode = 'timepicker' | 'slider';
|
|
7
7
|
export type RangeFormProps = {
|
|
@@ -17,7 +17,8 @@ export type RangeFormProps = {
|
|
|
17
17
|
valueSelectionModes: DateLimitMode[];
|
|
18
18
|
rangeDisplayMode?: RangeDisplayMode;
|
|
19
19
|
isInvertedRange?: boolean;
|
|
20
|
-
|
|
20
|
+
texts: TimeWindowTexts;
|
|
21
|
+
} & WithDisabledProp & Pick<RangeFormContainerProps, 'timePickerProps' | 'valueFormatOptions' | 'errorTexts'>;
|
|
21
22
|
export type RangeFormTexts = {
|
|
22
23
|
range: ReactNode | string;
|
|
23
24
|
hour: ReactNode | string;
|
|
@@ -5,7 +5,6 @@ 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';
|
|
9
8
|
import RangeForm from './RangeForm/RangeForm';
|
|
10
9
|
import { RANGE_DISPLAY_MODES } from './RangeForm/RangeForm.constants';
|
|
11
10
|
import { getDateFromDayValue, getDefaultFilterForLimitMode } from '../utils';
|
|
@@ -34,8 +33,7 @@ var RangeFormContainer = function RangeFormContainer(_ref) {
|
|
|
34
33
|
onRangePaste = _ref.onRangePaste,
|
|
35
34
|
onRangeCopy = _ref.onRangeCopy,
|
|
36
35
|
onRangeDelete = _ref.onRangeDelete,
|
|
37
|
-
|
|
38
|
-
texts = _ref$texts === void 0 ? {} : _ref$texts,
|
|
36
|
+
texts = _ref.texts,
|
|
39
37
|
onChange = _ref.onChange,
|
|
40
38
|
_ref$valueSelectionMo = _ref.valueSelectionModes,
|
|
41
39
|
valueSelectionModes = _ref$valueSelectionMo === void 0 ? ['Range', 'Hour'] : _ref$valueSelectionMo,
|
|
@@ -138,11 +136,8 @@ var RangeFormContainer = function RangeFormContainer(_ref) {
|
|
|
138
136
|
var invertedToggleLink = React.useMemo(function () {
|
|
139
137
|
return /*#__PURE__*/React.createElement(S.InvertAction, {
|
|
140
138
|
onClick: toggleInverted
|
|
141
|
-
},
|
|
142
|
-
|
|
143
|
-
defaultMessage: "Inverse selection"
|
|
144
|
-
}));
|
|
145
|
-
}, [toggleInverted]);
|
|
139
|
+
}, texts.inverseSelection);
|
|
140
|
+
}, [texts.inverseSelection, toggleInverted]);
|
|
146
141
|
var suffix = React.useMemo(function () {
|
|
147
142
|
var _headerOptions$includ = headerOptions.includeActions,
|
|
148
143
|
includeActions = _headerOptions$includ === void 0 ? true : _headerOptions$includ;
|
|
@@ -160,6 +155,7 @@ var RangeFormContainer = function RangeFormContainer(_ref) {
|
|
|
160
155
|
title: includeSummary && /*#__PURE__*/React.createElement(RangeSummary, {
|
|
161
156
|
dayKeys: dayKeys,
|
|
162
157
|
getDayLabel: getDayLabel,
|
|
158
|
+
texts: texts,
|
|
163
159
|
monthlyFilter: monthlyFilter,
|
|
164
160
|
monthlyFilterPeriod: monthlyFilterPeriod
|
|
165
161
|
}),
|
|
@@ -18,7 +18,7 @@ export type RangeFormContainerProps = {
|
|
|
18
18
|
onRangeDelete?: () => void;
|
|
19
19
|
valueSelectionModes: DateLimitMode[];
|
|
20
20
|
rangeDisplayMode?: RangeDisplayMode;
|
|
21
|
-
texts:
|
|
21
|
+
texts: TimeWindowTexts;
|
|
22
22
|
/**
|
|
23
23
|
* @deprecated use `valueFormatOptions` instead
|
|
24
24
|
*/
|