@synerise/ds-date-range-picker 0.20.3 → 0.20.4

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 CHANGED
@@ -3,6 +3,24 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [0.20.4](https://github.com/Synerise/synerise-design/compare/@synerise/ds-date-range-picker@0.20.3...@synerise/ds-date-range-picker@0.20.4) (2023-03-28)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * **date-range-picker:** add allowedFilterTypes prop to DateRangePicker ([1be368e](https://github.com/Synerise/synerise-design/commit/1be368e03cb7f4224ed604c3c539a2385510d9ff))
12
+ * **date-range-picker:** add default labels ([f9e8990](https://github.com/Synerise/synerise-design/commit/f9e899009d9eac4fba86ca8ed99704b2ad334b9d))
13
+ * **date-range-picker:** allow range type buttons to be optional ([6d3e723](https://github.com/Synerise/synerise-design/commit/6d3e723b3324c3c73bcb29944211508de0069d87))
14
+ * **date-range-picker:** change allowed filter types to string array ([4fbdca0](https://github.com/Synerise/synerise-design/commit/4fbdca055e576f2aaa115a2a2ebd403d4937e05c))
15
+ * **date-range-picker:** fix monthly filter clipping ([20a205f](https://github.com/Synerise/synerise-design/commit/20a205fb892fd2bbeaf1d3f5f93641fe759f8dfe))
16
+ * **date-range-picker:** fix vert align for 2nd select in monthly filter ([be25040](https://github.com/Synerise/synerise-design/commit/be25040b25378118290abfb85a888bb317501235))
17
+ * **date-range-picker:** fix vertical alignment in monthly range filter ([b673345](https://github.com/Synerise/synerise-design/commit/b6733451ad42766f6a29e128969f531bbd7bd233))
18
+ * **date-range-picker:** monthly filter dropdowns display current value ([3c70725](https://github.com/Synerise/synerise-design/commit/3c707252c0d6ef0899cfa60184356e084b56f1d6))
19
+
20
+
21
+
22
+
23
+
6
24
  ## [0.20.3](https://github.com/Synerise/synerise-design/compare/@synerise/ds-date-range-picker@0.20.2...@synerise/ds-date-range-picker@0.20.3) (2023-03-24)
7
25
 
8
26
 
@@ -64,6 +64,7 @@ export interface DateRangePickerProps extends WrappedComponentProps {
64
64
  arrowColor?: AdditionalMapper;
65
65
  disableAbsoluteTimepickerInRelative?: boolean;
66
66
  rangePickerInputProps?: RangePickerInputProps;
67
+ allowedFilterTypes?: string[];
67
68
  renderPopoverTrigger?: (...args: any) => JSX.Element;
68
69
  }
69
70
  /**
@@ -219,6 +219,9 @@ var MonthlyFilter = /*#__PURE__*/function (_React$PureComponent) {
219
219
  }
220
220
  };
221
221
  });
222
+ var daysOfPeriodValue = (daysOfPeriods || DEFAULT_DAYS_OF_PERIODS).find(function (period) {
223
+ return (item == null ? void 0 : item.period) === period.value;
224
+ });
222
225
  return /*#__PURE__*/React.createElement(S.Select, {
223
226
  disabled: disabled,
224
227
  expanded: false,
@@ -234,9 +237,15 @@ var MonthlyFilter = /*#__PURE__*/function (_React$PureComponent) {
234
237
  id: (daysOfPeriods || DEFAULT_DAYS_OF_PERIODS)[0].translationKey
235
238
  }),
236
239
  input: {
240
+ value: daysOfPeriodValue ? intl.formatMessage({
241
+ id: daysOfPeriodValue == null ? void 0 : daysOfPeriodValue.translationKey
242
+ }) : undefined,
237
243
  name: 'days-of-period',
238
244
  maxLength: 120
239
245
  },
246
+ inputStyle: {
247
+ display: 'flex'
248
+ },
240
249
  dataSource: dataSource,
241
250
  size: "small"
242
251
  });
@@ -265,6 +274,9 @@ var MonthlyFilter = /*#__PURE__*/function (_React$PureComponent) {
265
274
  }
266
275
  };
267
276
  });
277
+ var countedFromValue = (countedFromPeriods || DEFAULT_COUNTED_FROM).find(function (i) {
278
+ return (item == null ? void 0 : item.periodType) === i.value;
279
+ });
268
280
  return /*#__PURE__*/React.createElement(S.Select, {
269
281
  disabled: disabled,
270
282
  expanded: false,
@@ -280,9 +292,16 @@ var MonthlyFilter = /*#__PURE__*/function (_React$PureComponent) {
280
292
  id: (countedFromPeriods || DEFAULT_COUNTED_FROM)[0].translationKey
281
293
  }),
282
294
  input: {
295
+ value: countedFromValue ? intl.formatMessage({
296
+ id: countedFromValue == null ? void 0 : countedFromValue.translationKey,
297
+ defaultMessage: item == null ? void 0 : item.periodType
298
+ }) : undefined,
283
299
  name: 'counted-from-select',
284
300
  maxLength: 120
285
301
  },
302
+ inputStyle: {
303
+ display: 'flex'
304
+ },
286
305
  dataSource: dataSource,
287
306
  size: "small"
288
307
  });
@@ -347,6 +366,7 @@ var MonthlyFilter = /*#__PURE__*/function (_React$PureComponent) {
347
366
  id: "DS.DATE-RANGE-PICKER.COUNTED-FROM",
348
367
  defaultMessage: "counted from"
349
368
  }), SPACE_UNICODE), _this2.renderCountedFromField(item, key)),
369
+ nameWrapperClassNames: ['full-width'],
350
370
  content: visible[item.id] ? /*#__PURE__*/React.createElement(S.ContentWrapper, null, /*#__PURE__*/React.createElement(TimeWindow, _extends({
351
371
  disabled: disabled,
352
372
  readOnly: !!disabled,
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import { RangeFilterProps } from './RangeFilter.types';
3
- declare const _default: React.ForwardRefExoticComponent<Pick<RangeFilterProps, "onChange" | "valueSelectionModes" | "texts" | "value" | "rangeUnits" | "onApply" | "onFilterSave" | "savedFilters" | "hideFooter" | "onCancel"> & {
3
+ declare const _default: React.ForwardRefExoticComponent<Pick<RangeFilterProps, "onChange" | "valueSelectionModes" | "texts" | "value" | "rangeUnits" | "onApply" | "onFilterSave" | "savedFilters" | "allowedFilterTypes" | "hideFooter" | "onCancel"> & {
4
4
  forwardedRef?: ((instance: any) => void) | React.RefObject<any> | null | undefined;
5
5
  } & React.RefAttributes<any>> & {
6
6
  WrappedComponent: React.ComponentType<RangeFilterProps>;
@@ -24,16 +24,28 @@ var RangeFilter = /*#__PURE__*/function (_React$PureComponent) {
24
24
  _inheritsLoose(RangeFilter, _React$PureComponent);
25
25
 
26
26
  function RangeFilter(props) {
27
- var _props$value, _this$state;
27
+ var _props$allowedFilterT, _props$value, _props$value2, _props$value3, _this$state;
28
28
 
29
29
  var _this;
30
30
 
31
31
  _this = _React$PureComponent.call(this, props) || this;
32
32
 
33
- _defineProperty(_assertThisInitialized(_this), "handleApply", function () {
33
+ _defineProperty(_assertThisInitialized(_this), "componentDidUpdate", function () {
34
34
  var _assertThisInitialize = _assertThisInitialized(_this),
35
35
  state = _assertThisInitialize.state;
36
36
 
37
+ var allowedFilterTypes = _this.props.allowedFilterTypes;
38
+ var activeType = state.activeType;
39
+
40
+ if (allowedFilterTypes != null && allowedFilterTypes.length && !allowedFilterTypes.includes(activeType)) {
41
+ _this.handleTypeChange(allowedFilterTypes[0]);
42
+ }
43
+ });
44
+
45
+ _defineProperty(_assertThisInitialized(_this), "handleApply", function () {
46
+ var _assertThisInitialize2 = _assertThisInitialized(_this),
47
+ state = _assertThisInitialize2.state;
48
+
37
49
  var onApply = _this.props.onApply;
38
50
  var activeType = state.activeType;
39
51
  var filter = state[String(activeType)];
@@ -48,8 +60,8 @@ var RangeFilter = /*#__PURE__*/function (_React$PureComponent) {
48
60
  _defineProperty(_assertThisInitialized(_this), "handleTypeChange", function (type) {
49
61
  var _this$setState;
50
62
 
51
- var _assertThisInitialize2 = _assertThisInitialized(_this),
52
- state = _assertThisInitialize2.state;
63
+ var _assertThisInitialize3 = _assertThisInitialized(_this),
64
+ state = _assertThisInitialize3.state;
53
65
 
54
66
  var previousValue = state[type];
55
67
  var previousDefinition = previousValue == null ? void 0 : previousValue.definition;
@@ -70,8 +82,8 @@ var RangeFilter = /*#__PURE__*/function (_React$PureComponent) {
70
82
  });
71
83
 
72
84
  _defineProperty(_assertThisInitialized(_this), "handleFilterSave", function (filterName) {
73
- var _assertThisInitialize3 = _assertThisInitialized(_this),
74
- state = _assertThisInitialize3.state;
85
+ var _assertThisInitialize4 = _assertThisInitialized(_this),
86
+ state = _assertThisInitialize4.state;
75
87
 
76
88
  var activeType = state.activeType;
77
89
  var _this$props = _this.props,
@@ -108,7 +120,9 @@ var RangeFilter = /*#__PURE__*/function (_React$PureComponent) {
108
120
  }, _this$setState2[selected.type] = selected, _this$setState2));
109
121
  });
110
122
 
111
- var valueType = props == null ? void 0 : (_props$value = props.value) == null ? void 0 : _props$value.type; // eslint-disable-next-line react/state-in-constructor
123
+ var _allowedFilterTypes = props != null && (_props$allowedFilterT = props.allowedFilterTypes) != null && _props$allowedFilterT.length ? props == null ? void 0 : props.allowedFilterTypes : Object.keys(TYPES);
124
+
125
+ var valueType = props != null && (_props$value = props.value) != null && _props$value.type && _allowedFilterTypes.includes(props == null ? void 0 : (_props$value2 = props.value) == null ? void 0 : _props$value2.type) ? props == null ? void 0 : (_props$value3 = props.value) == null ? void 0 : _props$value3.type : _allowedFilterTypes[0]; // eslint-disable-next-line react/state-in-constructor
112
126
 
113
127
  _this.state = (_this$state = {
114
128
  activeType: valueType
@@ -133,7 +147,12 @@ var RangeFilter = /*#__PURE__*/function (_React$PureComponent) {
133
147
  onFilterSave = _this$props3.onFilterSave,
134
148
  texts = _this$props3.texts,
135
149
  hideFooter = _this$props3.hideFooter,
136
- valueSelectionModes = _this$props3.valueSelectionModes;
150
+ valueSelectionModes = _this$props3.valueSelectionModes,
151
+ allowedFilterTypes = _this$props3.allowedFilterTypes;
152
+ var buttonSource = allowedFilterTypes != null && allowedFilterTypes.length ? allowedFilterTypes : Object.values(TYPES);
153
+ buttonSource.sort(function (a, b) {
154
+ return Object.values(TYPES).indexOf(a) < Object.values(TYPES).indexOf(b) ? -1 : 1;
155
+ });
137
156
  return /*#__PURE__*/React.createElement(S.Container, null, /*#__PURE__*/React.createElement(S.Header, null, /*#__PURE__*/React.createElement(S.Title, null, intl.formatMessage({
138
157
  id: 'DS.DATE-RANGE-PICKER.DATES_FILTER',
139
158
  defaultMessage: 'Date filter'
@@ -143,10 +162,10 @@ var RangeFilter = /*#__PURE__*/function (_React$PureComponent) {
143
162
  onFilterRemove: this.handleSavedFilterRemove,
144
163
  label: texts == null ? void 0 : texts.savedFiltersTrigger,
145
164
  removeTooltip: texts == null ? void 0 : texts.remove
146
- })), /*#__PURE__*/React.createElement(S.Body, null, /*#__PURE__*/React.createElement(ButtonGroup, {
165
+ })), /*#__PURE__*/React.createElement(S.Body, null, buttonSource.length > 1 && /*#__PURE__*/React.createElement(ButtonGroup, {
147
166
  fullWidth: true,
148
167
  size: "large"
149
- }, Object.values(TYPES).map(function (key) {
168
+ }, buttonSource.map(function (key) {
150
169
  return /*#__PURE__*/React.createElement(Button, {
151
170
  key: key,
152
171
  type: activeType === key ? 'primary' : undefined,
@@ -154,7 +173,8 @@ var RangeFilter = /*#__PURE__*/function (_React$PureComponent) {
154
173
  return _this2.handleTypeChange(key);
155
174
  }
156
175
  }, intl.formatMessage({
157
- id: TYPES_DATA[key].labelTranslationKey
176
+ id: TYPES_DATA[key].labelTranslationKey,
177
+ defaultMessage: TYPES_DATA[key].defaultLabel
158
178
  }));
159
179
  })), /*#__PURE__*/React.createElement(S.MainComponentWrapper, null, Component && /*#__PURE__*/React.createElement(Component, {
160
180
  intl: intl,
@@ -18,6 +18,7 @@ export declare type RangeFilterProps = {
18
18
  savedFilters?: SavedFilter[];
19
19
  onFilterSave?: (filters: SavedFilter[]) => void;
20
20
  texts?: Texts;
21
+ allowedFilterTypes?: string[];
21
22
  valueSelectionModes?: DateLimitMode[];
22
23
  rangeUnits?: Pick<DateRangePickerProps, 'rangeUnits'>;
23
24
  };
@@ -23,6 +23,7 @@ export declare const defaultId: string;
23
23
  export declare const TYPES_DATA: {
24
24
  MONTHLY: {
25
25
  labelTranslationKey: string;
26
+ defaultLabel: string;
26
27
  component: import("react").ForwardRefExoticComponent<Pick<import("./Filters/MonthlyFilter/MonthlyFilter.types").MonthlyFilterProps, "onChange" | "onRangeCopy" | "onRangePaste" | "onRangeClear" | "rangeClipboard" | "valueSelectionModes" | "texts" | "renderRangeFormSuffix" | "timePickerProps" | "disabled" | "value" | "maxEntries" | "daysOfPeriods" | "countedFromPeriods"> & {
27
28
  forwardedRef?: ((instance: any) => void) | import("react").RefObject<any> | null | undefined;
28
29
  } & import("react").RefAttributes<any>> & {
@@ -37,11 +38,13 @@ export declare const TYPES_DATA: {
37
38
  };
38
39
  WEEKLY: {
39
40
  labelTranslationKey: string;
41
+ defaultLabel: string;
40
42
  component: ({ value, onChange, onRangeClear, onRangePaste, onRangeCopy, rangeClipboard, intl, valueSelectionModes, texts, }: import("./Filters/WeeklyFilter/WeeklyFilter.types").WeeklyFilterProps) => JSX.Element;
41
43
  definition: {};
42
44
  };
43
45
  DAILY: {
44
46
  labelTranslationKey: string;
47
+ defaultLabel: string;
45
48
  component: import("react").ForwardRefExoticComponent<Pick<import("./Filters/DailyFilter/DailyFilter").Props, "onChange" | "onRangeCopy" | "onRangePaste" | "onRangeClear" | "valueSelectionModes" | "texts" | "disabled" | "value"> & {
46
49
  forwardedRef?: ((instance: any) => void) | import("react").RefObject<any> | null | undefined;
47
50
  } & import("react").RefAttributes<any>> & {
@@ -50,6 +50,7 @@ export var defaultId = uuid();
50
50
  export var TYPES_DATA = {
51
51
  MONTHLY: {
52
52
  labelTranslationKey: 'DS.DATE-RANGE-PICKER.MONTHLY',
53
+ defaultLabel: 'Monthly',
53
54
  component: MonthlyFilter,
54
55
  definition: [{
55
56
  period: DAYS_OF_PERIOD_ENUM.DAY_OF_MONTH,
@@ -60,11 +61,13 @@ export var TYPES_DATA = {
60
61
  },
61
62
  WEEKLY: {
62
63
  labelTranslationKey: 'DS.DATE-RANGE-PICKER.WEEKLY',
64
+ defaultLabel: 'Weekly',
63
65
  component: WeeklyFilter,
64
66
  definition: {}
65
67
  },
66
68
  DAILY: {
67
69
  labelTranslationKey: 'DS.DATE-RANGE-PICKER.DAILY',
70
+ defaultLabel: 'Daily',
68
71
  component: DailyFilter,
69
72
  definition: {
70
73
  start: DEFAULT_RANGE_START,
@@ -26,7 +26,7 @@ export declare class RawDateRangePicker extends React.PureComponent<DateRangePic
26
26
  getAddons: () => AddonType[];
27
27
  render(): JSX.Element;
28
28
  }
29
- declare const _default: React.ForwardRefExoticComponent<Pick<DateRangePickerProps, "readOnly" | "texts" | "valueFormatOptions" | "format" | "value" | "onVisibleChange" | "rangeUnits" | "containerClass" | "disableDefaultTexts" | "disabledDate" | "forceAdjacentMonths" | "forceAbsolute" | "footerProps" | "onValueChange" | "onApply" | "onFilterSave" | "popoverProps" | "popoverTrigger" | "ranges" | "relativeFuture" | "relativePast" | "relativeModes" | "savedFilters" | "showRelativePicker" | "showFilter" | "showTime" | "showCustomRange" | "validate" | "valueTransformer" | "arrowColor" | "disableAbsoluteTimepickerInRelative" | "rangePickerInputProps" | "renderPopoverTrigger"> & {
29
+ declare const _default: React.ForwardRefExoticComponent<Pick<DateRangePickerProps, "readOnly" | "texts" | "valueFormatOptions" | "format" | "value" | "onVisibleChange" | "rangeUnits" | "containerClass" | "disableDefaultTexts" | "disabledDate" | "forceAdjacentMonths" | "forceAbsolute" | "footerProps" | "onValueChange" | "onApply" | "onFilterSave" | "popoverProps" | "popoverTrigger" | "ranges" | "relativeFuture" | "relativePast" | "relativeModes" | "savedFilters" | "showRelativePicker" | "showFilter" | "showTime" | "showCustomRange" | "validate" | "valueTransformer" | "arrowColor" | "disableAbsoluteTimepickerInRelative" | "rangePickerInputProps" | "allowedFilterTypes" | "renderPopoverTrigger"> & {
30
30
  forwardedRef?: ((instance: any) => void) | React.RefObject<any> | null | undefined;
31
31
  } & React.RefAttributes<any>> & {
32
32
  WrappedComponent: React.ComponentType<DateRangePickerProps>;
@@ -302,6 +302,7 @@ export var RawDateRangePicker = /*#__PURE__*/function (_React$PureComponent) {
302
302
  _this$props4$containe = _this$props4.containerClass,
303
303
  containerClass = _this$props4$containe === void 0 ? 'ds-date-range-picker' : _this$props4$containe,
304
304
  footerProps = _this$props4.footerProps,
305
+ allowedFilterTypes = _this$props4.allowedFilterTypes,
305
306
  _this$props4$disableA = _this$props4.disableAbsoluteTimepickerInRelative,
306
307
  disableAbsoluteTimepickerInRelative = _this$props4$disableA === void 0 ? false : _this$props4$disableA;
307
308
  var _this$state3 = this.state,
@@ -326,6 +327,7 @@ export var RawDateRangePicker = /*#__PURE__*/function (_React$PureComponent) {
326
327
  onCancel: this.handleFilterCancel,
327
328
  onApply: this.handleFilterApply,
328
329
  savedFilters: savedFilters,
330
+ allowedFilterTypes: allowedFilterTypes,
329
331
  onFilterSave: onFilterSave
330
332
  }));
331
333
  var validator = validate ? validate(value) : {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@synerise/ds-date-range-picker",
3
- "version": "0.20.3",
3
+ "version": "0.20.4",
4
4
  "description": "Date-Range-Picker UI Component for the Synerise Design System",
5
5
  "license": "ISC",
6
6
  "repository": "Synerise/synerise-design",
@@ -36,7 +36,7 @@
36
36
  "@synerise/ds-button": "^0.17.12",
37
37
  "@synerise/ds-date-picker": "^0.9.3",
38
38
  "@synerise/ds-icon": "^0.54.0",
39
- "@synerise/ds-manageable-list": "^0.24.10",
39
+ "@synerise/ds-manageable-list": "^0.24.11",
40
40
  "@synerise/ds-time-picker": "^0.7.2",
41
41
  "@synerise/ds-tooltip": "^0.13.0",
42
42
  "@synerise/ds-utils": "^0.19.0",
@@ -54,5 +54,5 @@
54
54
  "devDependencies": {
55
55
  "@types/ramda": "^0.27.14"
56
56
  },
57
- "gitHead": "f6617e99a823599ee63f3d094b81cdbec3a979ea"
57
+ "gitHead": "68778b33000a395c36159c186b5e2a6392a1b375"
58
58
  }