@synerise/ds-date-range-picker 0.26.5 → 0.26.7

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.
Files changed (38) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/README.md +94 -0
  3. package/dist/DateRangePicker.types.d.ts +4 -4
  4. package/dist/RangeFilter/Filters/DailyFilter/DailyFilter.js +1 -5
  5. package/dist/RangeFilter/Filters/MonthlyFilter/MonthlyFilter.js +8 -18
  6. package/dist/RangeFilter/Filters/MonthlyFilter/MonthlyFilter.types.d.ts +1 -1
  7. package/dist/RangeFilter/Filters/new/Daily/Daily.d.ts +1 -1
  8. package/dist/RangeFilter/Filters/new/Daily/Daily.js +8 -6
  9. package/dist/RangeFilter/Filters/new/Daily/Daily.types.d.ts +2 -0
  10. package/dist/RangeFilter/Filters/new/Monthly/Monthly.d.ts +1 -1
  11. package/dist/RangeFilter/Filters/new/Monthly/Monthly.js +15 -23
  12. package/dist/RangeFilter/Filters/new/Monthly/Monthly.types.d.ts +2 -0
  13. package/dist/RangeFilter/Filters/new/Weekly/Weekly.d.ts +1 -1
  14. package/dist/RangeFilter/Filters/new/Weekly/Weekly.js +44 -52
  15. package/dist/RangeFilter/Filters/new/Weekly/Weekly.types.d.ts +2 -0
  16. package/dist/RangeFilter/RangeFilter.js +7 -18
  17. package/dist/RangeFilter/RangeFilter.types.d.ts +2 -2
  18. package/dist/RangeFilter/Shared/RangeFilterStatus/RangeFilterStatus.js +5 -12
  19. package/dist/RangeFilter/Shared/RangeFilterStatus/RangeFilterStatus.types.d.ts +3 -2
  20. package/dist/RangeFilter/Shared/SaveFilterForm/SaveFilterForm.js +4 -11
  21. package/dist/RangeFilter/Shared/SaveFilterForm/SaveFilterForm.types.d.ts +2 -0
  22. package/dist/RangeFilter/Shared/TimeWindow/Day/Day.js +1 -1
  23. package/dist/RangeFilter/Shared/TimeWindow/Day/Day.types.d.ts +1 -1
  24. package/dist/RangeFilter/Shared/TimeWindow/Grid/Grid.js +3 -9
  25. package/dist/RangeFilter/Shared/TimeWindow/Grid/Grid.types.d.ts +3 -4
  26. package/dist/RangeFilter/Shared/TimeWindow/RangeFormContainer/RangeForm/RangeForm.js +4 -4
  27. package/dist/RangeFilter/Shared/TimeWindow/RangeFormContainer/RangeForm/RangeForm.types.d.ts +3 -2
  28. package/dist/RangeFilter/Shared/TimeWindow/RangeFormContainer/RangeFormContainer.js +4 -8
  29. package/dist/RangeFilter/Shared/TimeWindow/RangeFormContainer/RangeFormContainer.types.d.ts +1 -1
  30. package/dist/RangeFilter/Shared/TimeWindow/RangeSummary/RangeSummary.js +3 -7
  31. package/dist/RangeFilter/Shared/TimeWindow/RangeSummary/RangeSummary.types.d.ts +2 -0
  32. package/dist/RangeFilter/Shared/TimeWindow/TimeWindow.js +4 -12
  33. package/dist/RangeFilter/Shared/TimeWindow/TimeWindow.types.d.ts +3 -8
  34. package/dist/RawDateRangePicker.d.ts +10 -6
  35. package/dist/RawDateRangePicker.js +58 -56
  36. package/dist/RelativeRangePicker/Elements/CustomRangeForm/CustomRangeForm.types.d.ts +1 -1
  37. package/dist/utils.js +86 -57
  38. package/package.json +12 -12
@@ -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 * as React from 'react';
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 defaultDayValue = React.useMemo(function () {
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 _React$useState = React.useState(Object.keys(value)),
47
- filteredSchedule = _React$useState[0],
48
- setFilteredSchedule = _React$useState[1];
52
+ var _useState = useState(Object.keys(value)),
53
+ filteredSchedule = _useState[0],
54
+ setFilteredSchedule = _useState[1];
49
55
 
50
- var _React$useState2 = React.useState([]),
51
- activeDays = _React$useState2[0],
52
- setActiveDays = _React$useState2[1];
56
+ var _useState2 = useState([]),
57
+ activeDays = _useState2[0],
58
+ setActiveDays = _useState2[1];
53
59
 
54
- var ref = React.useRef();
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 = React.useMemo(function () {
69
+ var allKeys = useMemo(function () {
66
70
  return isSundayFirstWeekDay ? US_NOTATION_WEEK_DAYS_INDEXES : EU_NOTATION_WEEK_DAYS_INDEXES;
67
71
  }, [isSundayFirstWeekDay]);
68
- React.useEffect(function () {
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 = React.useCallback(function (dayValue, dayKey, guid) {
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 = React.useCallback(function (dayKey, guid) {
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 = React.useCallback(function (selectedMode, dayKeys, guid) {
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 = React.useCallback(function (guid, activeDaysArray) {
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 = React.useCallback(function (dayKey) {
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 = React.useCallback(function (dayKey) {
139
+ var checkDay = useCallback(function (dayKey) {
136
140
  setActiveDays([dayKey]);
137
141
  }, []);
138
- var getDayLabel = React.useCallback(function (dayKey) {
142
+ var getDayLabel = useCallback(function (dayKey) {
139
143
  return dayFormatter(dayKey);
140
144
  }, [dayFormatter]);
141
- var excludeDayFromActive = React.useCallback(function (dayKey) {
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 = React.useCallback(function (dayKey) {
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 = React.useCallback(function (dayKey) {
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 = React.useCallback(function (dayKey) {
163
+ var uncheckActiveDay = useCallback(function (dayKey) {
160
164
  removeDaySelection(dayKey);
161
165
  }, [removeDaySelection]);
162
- var handleSelectAll = React.useCallback(function () {
166
+ var handleSelectAll = useCallback(function () {
163
167
  setActiveDays(allKeys);
164
168
  }, [allKeys]);
165
- var handleUnselectAll = React.useCallback(function () {
169
+ var handleUnselectAll = useCallback(function () {
166
170
  setActiveDays([]);
167
171
  }, []);
168
- var checkActiveDay = React.useCallback(function (dayKey) {
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 = React.useCallback(function (dayKey, forcedState) {
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 = React.useCallback(function (dayKey) {
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: EMPTY_OBJECT
214
+ texts: allTexts
211
215
  });
212
- }, [activeDays, intl, getDayLabel, handleToggleDay, removeDaySelection, isDayRestricted, disabled]);
213
- var handleRangeAdd = React.useCallback(function () {
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 = React.useCallback(function (count) {
235
+ var renderGridTitle = useCallback(function (count) {
232
236
  return /*#__PURE__*/React.createElement(SelectionCount, {
233
237
  selectedDayCount: count,
234
- label: intl.formatMessage({
235
- id: 'DS.DATE-RANGE-PICKER.SELECTED',
236
- defaultMessage: 'Selected'
237
- })
238
+ label: allTexts.selected
238
239
  });
239
- }, [intl]);
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: EMPTY_OBJECT,
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: EMPTY_OBJECT,
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: intl.formatMessage({
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: intl.formatMessage({
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: intl.formatMessage({
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, intl.formatMessage({
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 == null ? void 0 : texts.savedFiltersTrigger,
165
- removeTooltip: texts == null ? void 0 : texts.remove
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
- }, intl.formatMessage({
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
- }, intl.formatMessage({
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
- }, intl.formatMessage({
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 { Props as DateRangePickerProps, Texts } from '../DateRangePicker.types';
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?: 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 == null ? void 0 : texts.filter), !filter ? /*#__PURE__*/React.createElement(S.CreatorButton, {
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, intl.formatMessage({
30
- id: 'DS.DATE-RANGE-PICKER.CHANGE',
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: string;
7
- texts?: Partial<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 onFilterSave = _ref.onFilterSave;
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: intl.formatMessage({
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
- }, intl.formatMessage({
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;
@@ -1,3 +1,5 @@
1
+ import { Texts } from '../../../DateRangePicker.types';
1
2
  export type SaveFilterFormProps = {
3
+ texts: Pick<Texts, 'saveFilter' | 'filterName'>;
2
4
  onFilterSave: (name: string) => void;
3
5
  };
@@ -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: (texts == null ? void 0 : texts.clear) || 'Clear',
70
+ title: texts.clear || 'Clear',
71
71
  onVisibleChange: handleTooltipVisibleChange,
72
72
  getPopupContainer: getPopupContainer
73
73
  }, /*#__PURE__*/React.createElement(S.IconWrapper, {
@@ -10,5 +10,5 @@ export type DayProps = {
10
10
  onToggle: (dayKey: DayKey, forceState?: boolean) => void;
11
11
  onClear: (dayKey: DayKey) => void;
12
12
  readOnly?: boolean;
13
- texts?: GridTexts;
13
+ texts: GridTexts;
14
14
  } & WrappedComponentProps;
@@ -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(FormattedMessage, {
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(FormattedMessage, {
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?: GridTexts;
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 == null ? void 0 : texts.clear,
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 == null ? void 0 : texts.clear,
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 == null ? void 0 : texts.clear,
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 && texts[modeName]) return texts[modeName];
196
+ if (texts[modeName.toLocaleLowerCase()]) return texts[modeName.toLocaleLowerCase()];
197
197
  return intl.formatMessage(RANGE_FORM_INTL_KEYS[modeName]);
198
198
  };
199
199
 
@@ -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
- } & WithTranslations & WithDisabledProp & Pick<RangeFormContainerProps, 'timePickerProps' | 'valueFormatOptions' | 'errorTexts'>;
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
- _ref$texts = _ref.texts,
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
- }, /*#__PURE__*/React.createElement(FormattedMessage, {
142
- id: "DS.DATE-RANGE-PICKER.FILTER-INVERSE-SELECTION",
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: Partial<TimeWindowTexts>;
21
+ texts: TimeWindowTexts;
22
22
  /**
23
23
  * @deprecated use `valueFormatOptions` instead
24
24
  */