@synerise/ds-date-range-picker 0.26.9 → 0.26.10

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,17 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [0.26.10](https://github.com/Synerise/synerise-design/compare/@synerise/ds-date-range-picker@0.26.9...@synerise/ds-date-range-picker@0.26.10) (2024-02-19)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * **date-range-picker:** set body timezone request ([35755ee](https://github.com/Synerise/synerise-design/commit/35755ee22bd740621577f65278e8919b71d53813))
12
+
13
+
14
+
15
+
16
+
6
17
  ## [0.26.9](https://github.com/Synerise/synerise-design/compare/@synerise/ds-date-range-picker@0.26.8...@synerise/ds-date-range-picker@0.26.9) (2024-02-19)
7
18
 
8
19
  **Note:** Version bump only for package @synerise/ds-date-range-picker
@@ -21,6 +21,7 @@ import fnsFormat from '../dateUtils/format';
21
21
  import getDateFromString from '../dateUtils/getDateFromString';
22
22
  import * as CONST from '../constants';
23
23
  import { isLifetime } from '../RelativeRangePicker/Elements/RangeDropdown/RangeDropdown';
24
+ import { toIsoStringWithoutZone } from "../utils";
24
25
 
25
26
  var Footer = function Footer(_ref) {
26
27
  var canApply = _ref.canApply,
@@ -49,7 +50,8 @@ var Footer = function Footer(_ref) {
49
50
  return fnsFormat(getDateFromString(date), footerFormat, intl.locale);
50
51
  }
51
52
 
52
- return formatValue(date, _objectSpread({}, getDefaultDataTimeOptions(showTime), {}, valueFormatOptions));
53
+ var parseDate = new Date(toIsoStringWithoutZone(date));
54
+ return formatValue(parseDate, _objectSpread({}, getDefaultDataTimeOptions(showTime), {}, valueFormatOptions));
53
55
  }, [footerFormat, format, formatValue, intl.locale, valueFormatOptions, showTime]);
54
56
  var ChosenRange = React.useMemo(function () {
55
57
  if ((value == null ? void 0 : value.key) === CONST.ALL_TIME || value && isLifetime(value)) {
@@ -5,20 +5,16 @@ 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 fnsIsValid from 'date-fns/isValid';
9
8
  import Icon, { ArrowRightS, CalendarM, Close3S } from '@synerise/ds-icon';
10
9
  import { theme } from '@synerise/ds-core';
11
10
  import Tooltip from '@synerise/ds-tooltip';
12
- import { getDefaultDataTimeOptions, useDataFormat } from '@synerise/ds-data-format'; // eslint-disable-next-line import/no-named-default
13
-
14
- import { default as fnsFormat } from '../dateUtils/format';
11
+ import { getDefaultDataTimeOptions, useDataFormat } from '@synerise/ds-data-format';
15
12
  import * as S from './RangePickerInput.styles';
16
13
  import { normalizeRange } from '../utils';
17
14
  import { isLifetime } from '../RelativeRangePicker/Elements/RangeDropdown/RangeDropdown';
18
15
 
19
16
  var RangePickerInput = function RangePickerInput(_ref) {
20
17
  var value = _ref.value,
21
- format = _ref.format,
22
18
  valueFormatOptions = _ref.valueFormatOptions,
23
19
  showTime = _ref.showTime,
24
20
  onChange = _ref.onChange,
@@ -63,16 +59,9 @@ var RangePickerInput = function RangePickerInput(_ref) {
63
59
  onClick && onClick(e);
64
60
  }, [onClick]);
65
61
  var getText = React.useCallback(function (dateToDisplay) {
66
- if (!dateToDisplay || !fnsIsValid(dateToDisplay)) return '';
67
- var dateValue = dateToDisplay;
68
-
69
- if (typeof dateToDisplay === 'string') {
70
- dateValue = new Date(dateToDisplay);
71
- return fnsFormat(dateValue, format || showTime ? 'MMM D, YYYY, HH:mm' : 'MMM D, YYYY');
72
- }
73
-
74
- return formatValue(dateToDisplay, _objectSpread({}, getDefaultDataTimeOptions(showTime), {}, valueFormatOptions));
75
- }, [format, showTime, formatValue, valueFormatOptions]);
62
+ var dateValue = new Date(dateToDisplay);
63
+ return formatValue(dateValue, _objectSpread({}, getDefaultDataTimeOptions(showTime), {}, valueFormatOptions));
64
+ }, [showTime, formatValue, valueFormatOptions]);
76
65
  var renderFromDate = React.useCallback(function () {
77
66
  var isFromDateDefined = dateRangeValue && dateRangeValue.from;
78
67
  var text = dateRangeValue && isFromDateDefined ? /*#__PURE__*/React.createElement(S.DateValue, null, getText(dateRangeValue.from)) : texts == null ? void 0 : texts.startDatePlaceholder;
@@ -24,7 +24,7 @@ import relativeToAbsolute from './dateUtils/relativeToAbsolute';
24
24
  import AddonCollapse from './AddonCollapse/AddonCollapse';
25
25
  import RelativeRangePicker from './RelativeRangePicker/RelativeRangePicker';
26
26
  import Footer from './Footer/Footer';
27
- import { getDefaultTexts, normalizeRange } from './utils';
27
+ import { getDefaultTexts, normalizeRange, toIsoString } from './utils';
28
28
  import RangeFilter from './RangeFilter/RangeFilter';
29
29
  import RangeFilterStatus from './RangeFilter/Shared/RangeFilterStatus/RangeFilterStatus';
30
30
  import { isLifetime } from './RelativeRangePicker/Elements/RangeDropdown/RangeDropdown';
@@ -162,11 +162,11 @@ export var RawDateRangePicker = /*#__PURE__*/function (_PureComponent) {
162
162
  });
163
163
 
164
164
  _defineProperty(_assertThisInitialized(_this), "handleApply", function () {
165
+ var intl = _this.props.intl;
165
166
  var value = _this.state.value;
166
167
  var _this$props3 = _this.props,
167
168
  forceAbsolute = _this$props3.forceAbsolute,
168
- onApply = _this$props3.onApply,
169
- valueTransformer = _this$props3.valueTransformer;
169
+ onApply = _this$props3.onApply;
170
170
 
171
171
  if (forceAbsolute && value.type === RELATIVE) {
172
172
  onApply && onApply(_objectSpread({}, value, {}, relativeToAbsolute(value)));
@@ -179,15 +179,13 @@ export var RawDateRangePicker = /*#__PURE__*/function (_PureComponent) {
179
179
  }
180
180
 
181
181
  if (onApply) {
182
- var _valueTransformer2;
183
-
184
182
  var valueToEmit = _objectSpread({}, value, {
185
- from: value.type === ABSOLUTE && value.from instanceof Date ? value.from.toISOString() : undefined,
186
- to: value.type === ABSOLUTE && value.to instanceof Date ? value.to.toISOString() : undefined,
183
+ from: value.type === ABSOLUTE && value.from instanceof Date ? toIsoString(value.from, intl.timeZone) : undefined,
184
+ to: value.type === ABSOLUTE && value.to instanceof Date ? toIsoString(value.to, intl.timeZone) : undefined,
187
185
  type: value.type
188
186
  });
189
187
 
190
- onApply((_valueTransformer2 = valueTransformer == null ? void 0 : valueTransformer(valueToEmit)) != null ? _valueTransformer2 : valueToEmit);
188
+ onApply(valueToEmit);
191
189
  }
192
190
  });
193
191
 
@@ -373,7 +371,7 @@ export var RawDateRangePicker = /*#__PURE__*/function (_PureComponent) {
373
371
  className: containerClass
374
372
  }, /*#__PURE__*/React.createElement(RangePicker, {
375
373
  showNowButton: showNowButton,
376
- value: value,
374
+ value: normalizeRange(value),
377
375
  onChange: this.handleRangeChange,
378
376
  mode: mode,
379
377
  disabledDate: disabledDate,
package/dist/utils.d.ts CHANGED
@@ -4,6 +4,8 @@ import START_OF from './dateUtils/startOf';
4
4
  import END_OF from './dateUtils/endOf';
5
5
  import { Texts } from './DateRangePicker.types';
6
6
  export { START_OF, END_OF };
7
+ export declare function toIsoString(date: Date, timeZone?: string | undefined): string;
8
+ export declare function toIsoStringWithoutZone(date: Date): string;
7
9
  export declare const normalizeRange: (range: DateRange) => DateRange;
8
10
  export declare const getDefaultTexts: (intl: IntlShape, disableDefault?: boolean, texts?: Partial<Texts>) => Texts;
9
11
  export declare const DEFAULT_RANGE: DateRange;
package/dist/utils.js CHANGED
@@ -6,13 +6,37 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
6
6
 
7
7
  import fnsMin from 'date-fns/min';
8
8
  import fnsMax from 'date-fns/max';
9
- import { legacyParse } from '@date-fns/upgrade/v2';
9
+ import { getTimezoneOffset } from 'date-fns-tz';
10
10
  import { omit } from 'lodash';
11
11
  import { ABSOLUTE, CUSTOM_RANGE_KEY, RELATIVE } from './constants';
12
12
  import ADD from './dateUtils/add';
13
13
  import START_OF from './dateUtils/startOf';
14
14
  import END_OF from './dateUtils/endOf';
15
15
  export { START_OF, END_OF };
16
+
17
+ var rmvTZOffset = function rmvTZOffset(dateString) {
18
+ var date = dateString.toString();
19
+ var finalDate = date.replace(/[+-]\d\d:\d\d$/, '');
20
+ return finalDate;
21
+ };
22
+
23
+ var pad = function pad(num) {
24
+ return (num < 10 ? '0' : '') + num;
25
+ };
26
+
27
+ export function toIsoString(date, timeZone) {
28
+ if (timeZone === void 0) {
29
+ timeZone = 'UTC';
30
+ }
31
+
32
+ if (!timeZone) return new Date(date).toISOString();
33
+ var timeZoneOffset = getTimezoneOffset(timeZone, date);
34
+ var dif = timeZoneOffset >= 0 ? '+' : '-';
35
+ return date.getFullYear() + "-" + pad(date.getMonth() + 1) + "-" + pad(date.getDate()) + "T" + pad(date.getHours()) + ":" + pad(date.getMinutes()) + ":" + pad(date.getSeconds()) + dif + pad(Math.floor(Math.abs(timeZoneOffset) / 60 / 60 / 1000)) + ":" + pad(Math.abs(timeZoneOffset) % 60);
36
+ }
37
+ export function toIsoStringWithoutZone(date) {
38
+ return date.getFullYear() + "-" + pad(date.getMonth() + 1) + "-" + pad(date.getDate()) + "T" + pad(date.getHours()) + ":" + pad(date.getMinutes()) + ":" + pad(date.getSeconds());
39
+ }
16
40
  export var normalizeRange = function normalizeRange(range) {
17
41
  if (!range || !range.type) {
18
42
  return {
@@ -54,14 +78,13 @@ export var normalizeRange = function normalizeRange(range) {
54
78
  }
55
79
  }
56
80
 
57
- var _from = fnsMin([left, right]);
58
-
59
- var _to = fnsMax([left, right]);
81
+ var from = fnsMin([left, right]);
82
+ var to = fnsMax([left, right]);
60
83
 
61
84
  var normalizedRange = _objectSpread({}, range, {
62
85
  type: RELATIVE,
63
- from: _from,
64
- to: _to,
86
+ from: from,
87
+ to: to,
65
88
  offset: offset,
66
89
  duration: duration,
67
90
  future: future
@@ -71,16 +94,14 @@ export var normalizeRange = function normalizeRange(range) {
71
94
  }
72
95
 
73
96
  var keys = Object.keys(range);
74
- var from = range.from ? legacyParse(range.from) : undefined;
75
- var to = range.to ? legacyParse(range.to) : undefined;
76
97
 
77
98
  var dropNonAbsolute = function dropNonAbsolute(dateRange) {
78
99
  return omit(dateRange, ['offset', 'duration', 'future']);
79
100
  };
80
101
 
81
102
  var absoluteRange = _objectSpread({}, dropNonAbsolute(range), {
82
- from: from,
83
- to: to
103
+ from: range.from ? new Date(rmvTZOffset(range == null ? void 0 : range.from)) : undefined,
104
+ to: range.to ? new Date(rmvTZOffset(range == null ? void 0 : range.to)) : undefined
84
105
  });
85
106
 
86
107
  if (!keys.includes('from') && !keys.includes('to')) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@synerise/ds-date-range-picker",
3
- "version": "0.26.9",
3
+ "version": "0.26.10",
4
4
  "description": "Date-Range-Picker UI Component for the Synerise Design System",
5
5
  "license": "ISC",
6
6
  "repository": "Synerise/synerise-design",
@@ -34,26 +34,27 @@
34
34
  "types": "dist/index.d.ts",
35
35
  "dependencies": {
36
36
  "@date-fns/upgrade": "^1.0.3",
37
- "@synerise/ds-badge": "^0.6.49",
38
- "@synerise/ds-button": "^0.19.0",
39
- "@synerise/ds-button-group": "^0.6.40",
40
- "@synerise/ds-data-format": "^0.4.7",
41
- "@synerise/ds-date-picker": "^0.10.35",
42
- "@synerise/ds-dropdown": "^0.17.96",
43
- "@synerise/ds-icon": "^0.60.0",
44
- "@synerise/ds-inline-edit": "^0.6.96",
45
- "@synerise/ds-input": "^0.19.17",
46
- "@synerise/ds-input-number": "^0.9.3",
47
- "@synerise/ds-manageable-list": "^0.26.27",
48
- "@synerise/ds-menu": "^0.18.12",
49
- "@synerise/ds-scrollbar": "^0.8.0",
50
- "@synerise/ds-select": "^0.15.35",
51
- "@synerise/ds-slider": "^0.13.14",
52
- "@synerise/ds-tags": "^0.8.30",
53
- "@synerise/ds-time-picker": "^0.9.14",
54
- "@synerise/ds-tooltip": "^0.14.17",
55
- "@synerise/ds-utils": "^0.24.24",
37
+ "@synerise/ds-badge": "^0.6.50",
38
+ "@synerise/ds-button": "^0.19.1",
39
+ "@synerise/ds-button-group": "^0.6.41",
40
+ "@synerise/ds-data-format": "^0.4.8",
41
+ "@synerise/ds-date-picker": "^0.10.36",
42
+ "@synerise/ds-dropdown": "^0.17.97",
43
+ "@synerise/ds-icon": "^0.60.1",
44
+ "@synerise/ds-inline-edit": "^0.6.97",
45
+ "@synerise/ds-input": "^0.19.18",
46
+ "@synerise/ds-input-number": "^0.9.4",
47
+ "@synerise/ds-manageable-list": "^0.26.28",
48
+ "@synerise/ds-menu": "^0.18.13",
49
+ "@synerise/ds-scrollbar": "^0.8.1",
50
+ "@synerise/ds-select": "^0.15.36",
51
+ "@synerise/ds-slider": "^0.13.15",
52
+ "@synerise/ds-tags": "^0.8.31",
53
+ "@synerise/ds-time-picker": "^0.9.15",
54
+ "@synerise/ds-tooltip": "^0.14.18",
55
+ "@synerise/ds-utils": "^0.24.25",
56
56
  "date-fns": "^2.16.1",
57
+ "date-fns-tz": "1.1.4",
57
58
  "dayjs": "^1.8.35",
58
59
  "lodash": "^4.17.20",
59
60
  "ramda": "^0.27.0",
@@ -73,5 +74,5 @@
73
74
  "@testing-library/user-event": "^10.3.1",
74
75
  "@types/ramda": "^0.28.23"
75
76
  },
76
- "gitHead": "17e3bca1d4d134a28aaa186f0e2637616ca86174"
77
+ "gitHead": "cddb99e7a7cf30926aa46cf772a17d6803ff62cf"
77
78
  }