@atlaskit/datetime-picker 19.4.0 → 19.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # @atlaskit/datetime-picker
2
2
 
3
+ ## 19.4.1
4
+
5
+ ### Patch Changes
6
+
7
+ - [`efaa75ad1bb94`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/efaa75ad1bb94) -
8
+ Preserve supplied ISO offsets when editing datetime values behind
9
+ `platform-dst-dtp-preserve-offset`.
10
+
3
11
  ## 19.4.0
4
12
 
5
13
  ### Minor Changes
@@ -47,7 +47,7 @@ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r
47
47
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
48
48
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
49
49
  var packageName = "@atlaskit/datetime-picker";
50
- var packageVersion = "19.3.2";
50
+ var packageVersion = "19.4.0";
51
51
  var styles = {
52
52
  pickerContainerStyle: "_kqswh2mm",
53
53
  dropdownIndicatorStyles: "_1ul91k8s _1tke1k8s _1e0c1txw _4cvr1h6o _1bah1h6o",
@@ -35,7 +35,7 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
35
35
  // for typing `process`
36
36
  // oxlint-disable-next-line @atlassian/no-restricted-imports
37
37
  var packageName = "@atlaskit/datetime-picker";
38
- var packageVersion = "19.3.2";
38
+ var packageVersion = "19.4.0";
39
39
  var analyticsAttributes = {
40
40
  componentName: 'dateTimePicker',
41
41
  packageName: packageName,
@@ -83,6 +83,36 @@ var getStyles = function getStyles(isInputMotionEnabled, roundedCorners) {
83
83
  }
84
84
  };
85
85
  };
86
+ var parseDateTimeValueWithOffset = function parseDateTimeValueWithOffset(value) {
87
+ var parsed = (0, _dateFns.parseISO)(value);
88
+ var zoneStart = value.endsWith('Z') ? value.length - 1 : Math.max(value.lastIndexOf('+'), value.lastIndexOf('-'));
89
+ if (!(0, _dateFns.isValid)(parsed) || value[10] !== 'T' || zoneStart <= 15) {
90
+ return undefined;
91
+ }
92
+ var zoneValue = value.slice(zoneStart);
93
+ if (!/^(?:Z|[+-]\d{2}(?::?\d{2})?)$/.test(zoneValue)) {
94
+ return undefined;
95
+ }
96
+ return {
97
+ dateValue: value.slice(0, 10),
98
+ timeValue: value.slice(11, 16),
99
+ zoneValue: zoneValue
100
+ };
101
+ };
102
+ var parseDateTimeValue = function parseDateTimeValue(value) {
103
+ if ((0, _fg.fg)('platform-dst-dtp-preserve-offset')) {
104
+ var hasExplicitZone = value.endsWith('Z') || Math.max(value.lastIndexOf('+'), value.lastIndexOf('-')) > 15;
105
+ if (hasExplicitZone) {
106
+ return parseDateTimeValueWithOffset(value);
107
+ }
108
+ }
109
+ var parsed = (0, _dateFns.parseISO)(value);
110
+ return (0, _dateFns.isValid)(parsed) ? {
111
+ dateValue: (0, _dateFns.format)(parsed, (0, _parseTokens.convertTokens)('YYYY-MM-DD')),
112
+ timeValue: (0, _dateFns.format)(parsed, (0, _parseTokens.convertTokens)('HH:mm')),
113
+ zoneValue: (0, _dateFns.format)(parsed, (0, _parseTokens.convertTokens)('ZZ'))
114
+ } : undefined;
115
+ };
86
116
 
87
117
  /**
88
118
  * Two action types keep the reducer focused:
@@ -187,13 +217,10 @@ var DateTimePicker = /*#__PURE__*/(0, _react.forwardRef)(function (_ref2, ref) {
187
217
  zoneValue: state.zoneValue
188
218
  };
189
219
  }
190
- var parsed = (0, _dateFns.parseISO)(newValue);
191
- return (0, _dateFns.isValid)(parsed) ? {
192
- value: newValue,
193
- dateValue: (0, _dateFns.format)(parsed, (0, _parseTokens.convertTokens)('YYYY-MM-DD')),
194
- timeValue: (0, _dateFns.format)(parsed, (0, _parseTokens.convertTokens)('HH:mm')),
195
- zoneValue: (0, _dateFns.format)(parsed, (0, _parseTokens.convertTokens)('ZZ'))
196
- } : {
220
+ var parsed = parseDateTimeValue(newValue);
221
+ return parsed ? _objectSpread({
222
+ value: newValue
223
+ }, parsed) : {
197
224
  value: newValue,
198
225
  dateValue: '',
199
226
  timeValue: '',
@@ -228,13 +255,10 @@ var DateTimePicker = /*#__PURE__*/(0, _react.forwardRef)(function (_ref2, ref) {
228
255
  zoneValue: ''
229
256
  };
230
257
  }
231
- var parsed = (0, _dateFns.parseISO)(initialValue);
232
- return (0, _dateFns.isValid)(parsed) ? {
233
- value: initialValue,
234
- dateValue: (0, _dateFns.format)(parsed, (0, _parseTokens.convertTokens)('YYYY-MM-DD')),
235
- timeValue: (0, _dateFns.format)(parsed, (0, _parseTokens.convertTokens)('HH:mm')),
236
- zoneValue: (0, _dateFns.format)(parsed, (0, _parseTokens.convertTokens)('ZZ'))
237
- } : {
258
+ var parsed = parseDateTimeValue(initialValue);
259
+ return parsed ? _objectSpread({
260
+ value: initialValue
261
+ }, parsed) : {
238
262
  value: initialValue,
239
263
  dateValue: initialDate,
240
264
  timeValue: initialTime,
@@ -288,12 +312,8 @@ var DateTimePicker = /*#__PURE__*/(0, _react.forwardRef)(function (_ref2, ref) {
288
312
  zoneValue: providedZoneValue
289
313
  };
290
314
  }
291
- var parsed = (0, _dateFns.parseISO)(value);
292
- return (0, _dateFns.isValid)(parsed) ? {
293
- dateValue: (0, _dateFns.format)(parsed, (0, _parseTokens.convertTokens)('YYYY-MM-DD')),
294
- timeValue: (0, _dateFns.format)(parsed, (0, _parseTokens.convertTokens)('HH:mm')),
295
- zoneValue: (0, _dateFns.format)(parsed, (0, _parseTokens.convertTokens)('ZZ'))
296
- } : {
315
+ var parsed = parseDateTimeValue(value);
316
+ return parsed || {
297
317
  dateValue: dtState.dateValue,
298
318
  timeValue: dtState.timeValue,
299
319
  zoneValue: dtState.zoneValue
@@ -38,7 +38,7 @@ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r
38
38
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
39
39
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } // oxlint-disable-next-line @atlassian/no-restricted-imports
40
40
  var packageName = "@atlaskit/datetime-picker";
41
- var packageVersion = "19.3.2";
41
+ var packageVersion = "19.4.0";
42
42
  var defaultTimeFormat = 'h:mma';
43
43
  var menuStyles = {
44
44
  /* Need to remove default absolute positioning as that causes issues with position fixed */
@@ -32,7 +32,7 @@ import { parseDate } from '../internal/parse-date';
32
32
  import { PickerButtonContainer } from '../internal/picker-button-container';
33
33
  import { makeSingleValue } from '../internal/single-value';
34
34
  const packageName = "@atlaskit/datetime-picker";
35
- const packageVersion = "19.3.2";
35
+ const packageVersion = "19.4.0";
36
36
  const styles = {
37
37
  pickerContainerStyle: "_kqswh2mm",
38
38
  dropdownIndicatorStyles: "_1ul91k8s _1tke1k8s _1e0c1txw _4cvr1h6o _1bah1h6o",
@@ -22,7 +22,7 @@ import { convertTokens } from '../internal/parse-tokens';
22
22
  import DatePicker from './date-picker';
23
23
  import TimePicker from './time-picker';
24
24
  const packageName = "@atlaskit/datetime-picker";
25
- const packageVersion = "19.3.2";
25
+ const packageVersion = "19.4.0";
26
26
  const analyticsAttributes = {
27
27
  componentName: 'dateTimePicker',
28
28
  packageName,
@@ -70,6 +70,36 @@ const getStyles = (isInputMotionEnabled, roundedCorners) => ({
70
70
  }
71
71
  })
72
72
  });
73
+ const parseDateTimeValueWithOffset = value => {
74
+ const parsed = parseISO(value);
75
+ const zoneStart = value.endsWith('Z') ? value.length - 1 : Math.max(value.lastIndexOf('+'), value.lastIndexOf('-'));
76
+ if (!isValid(parsed) || value[10] !== 'T' || zoneStart <= 15) {
77
+ return undefined;
78
+ }
79
+ const zoneValue = value.slice(zoneStart);
80
+ if (!/^(?:Z|[+-]\d{2}(?::?\d{2})?)$/.test(zoneValue)) {
81
+ return undefined;
82
+ }
83
+ return {
84
+ dateValue: value.slice(0, 10),
85
+ timeValue: value.slice(11, 16),
86
+ zoneValue
87
+ };
88
+ };
89
+ const parseDateTimeValue = value => {
90
+ if (fg('platform-dst-dtp-preserve-offset')) {
91
+ const hasExplicitZone = value.endsWith('Z') || Math.max(value.lastIndexOf('+'), value.lastIndexOf('-')) > 15;
92
+ if (hasExplicitZone) {
93
+ return parseDateTimeValueWithOffset(value);
94
+ }
95
+ }
96
+ const parsed = parseISO(value);
97
+ return isValid(parsed) ? {
98
+ dateValue: format(parsed, convertTokens('YYYY-MM-DD')),
99
+ timeValue: format(parsed, convertTokens('HH:mm')),
100
+ zoneValue: format(parsed, convertTokens('ZZ'))
101
+ } : undefined;
102
+ };
73
103
 
74
104
  /**
75
105
  * Two action types keep the reducer focused:
@@ -160,12 +190,10 @@ const DateTimePicker = /*#__PURE__*/forwardRef(({
160
190
  zoneValue: state.zoneValue
161
191
  };
162
192
  }
163
- const parsed = parseISO(newValue);
164
- return isValid(parsed) ? {
193
+ const parsed = parseDateTimeValue(newValue);
194
+ return parsed ? {
165
195
  value: newValue,
166
- dateValue: format(parsed, convertTokens('YYYY-MM-DD')),
167
- timeValue: format(parsed, convertTokens('HH:mm')),
168
- zoneValue: format(parsed, convertTokens('ZZ'))
196
+ ...parsed
169
197
  } : {
170
198
  value: newValue,
171
199
  dateValue: '',
@@ -202,12 +230,10 @@ const DateTimePicker = /*#__PURE__*/forwardRef(({
202
230
  zoneValue: ''
203
231
  };
204
232
  }
205
- const parsed = parseISO(initialValue);
206
- return isValid(parsed) ? {
233
+ const parsed = parseDateTimeValue(initialValue);
234
+ return parsed ? {
207
235
  value: initialValue,
208
- dateValue: format(parsed, convertTokens('YYYY-MM-DD')),
209
- timeValue: format(parsed, convertTokens('HH:mm')),
210
- zoneValue: format(parsed, convertTokens('ZZ'))
236
+ ...parsed
211
237
  } : {
212
238
  value: initialValue,
213
239
  dateValue: initialDate,
@@ -259,12 +285,8 @@ const DateTimePicker = /*#__PURE__*/forwardRef(({
259
285
  zoneValue: providedZoneValue
260
286
  };
261
287
  }
262
- const parsed = parseISO(value);
263
- return isValid(parsed) ? {
264
- dateValue: format(parsed, convertTokens('YYYY-MM-DD')),
265
- timeValue: format(parsed, convertTokens('HH:mm')),
266
- zoneValue: format(parsed, convertTokens('ZZ'))
267
- } : {
288
+ const parsed = parseDateTimeValue(value);
289
+ return parsed || {
268
290
  dateValue: dtState.dateValue,
269
291
  timeValue: dtState.timeValue,
270
292
  zoneValue: dtState.zoneValue
@@ -25,7 +25,7 @@ import { PickerButtonContainer } from '../internal/picker-button-container';
25
25
  import { placeholderDatetime } from '../internal/placeholder-date-time';
26
26
  import { makeSingleValue } from '../internal/single-value';
27
27
  const packageName = "@atlaskit/datetime-picker";
28
- const packageVersion = "19.3.2";
28
+ const packageVersion = "19.4.0";
29
29
  const defaultTimeFormat = 'h:mma';
30
30
  const menuStyles = {
31
31
  /* Need to remove default absolute positioning as that causes issues with position fixed */
@@ -40,7 +40,7 @@ import { parseDate } from '../internal/parse-date';
40
40
  import { PickerButtonContainer } from '../internal/picker-button-container';
41
41
  import { makeSingleValue } from '../internal/single-value';
42
42
  var packageName = "@atlaskit/datetime-picker";
43
- var packageVersion = "19.3.2";
43
+ var packageVersion = "19.4.0";
44
44
  var styles = {
45
45
  pickerContainerStyle: "_kqswh2mm",
46
46
  dropdownIndicatorStyles: "_1ul91k8s _1tke1k8s _1e0c1txw _4cvr1h6o _1bah1h6o",
@@ -29,7 +29,7 @@ import { convertTokens } from '../internal/parse-tokens';
29
29
  import DatePicker from './date-picker';
30
30
  import TimePicker from './time-picker';
31
31
  var packageName = "@atlaskit/datetime-picker";
32
- var packageVersion = "19.3.2";
32
+ var packageVersion = "19.4.0";
33
33
  var analyticsAttributes = {
34
34
  componentName: 'dateTimePicker',
35
35
  packageName: packageName,
@@ -77,6 +77,36 @@ var getStyles = function getStyles(isInputMotionEnabled, roundedCorners) {
77
77
  }
78
78
  };
79
79
  };
80
+ var parseDateTimeValueWithOffset = function parseDateTimeValueWithOffset(value) {
81
+ var parsed = parseISO(value);
82
+ var zoneStart = value.endsWith('Z') ? value.length - 1 : Math.max(value.lastIndexOf('+'), value.lastIndexOf('-'));
83
+ if (!isValid(parsed) || value[10] !== 'T' || zoneStart <= 15) {
84
+ return undefined;
85
+ }
86
+ var zoneValue = value.slice(zoneStart);
87
+ if (!/^(?:Z|[+-]\d{2}(?::?\d{2})?)$/.test(zoneValue)) {
88
+ return undefined;
89
+ }
90
+ return {
91
+ dateValue: value.slice(0, 10),
92
+ timeValue: value.slice(11, 16),
93
+ zoneValue: zoneValue
94
+ };
95
+ };
96
+ var parseDateTimeValue = function parseDateTimeValue(value) {
97
+ if (fg('platform-dst-dtp-preserve-offset')) {
98
+ var hasExplicitZone = value.endsWith('Z') || Math.max(value.lastIndexOf('+'), value.lastIndexOf('-')) > 15;
99
+ if (hasExplicitZone) {
100
+ return parseDateTimeValueWithOffset(value);
101
+ }
102
+ }
103
+ var parsed = parseISO(value);
104
+ return isValid(parsed) ? {
105
+ dateValue: format(parsed, convertTokens('YYYY-MM-DD')),
106
+ timeValue: format(parsed, convertTokens('HH:mm')),
107
+ zoneValue: format(parsed, convertTokens('ZZ'))
108
+ } : undefined;
109
+ };
80
110
 
81
111
  /**
82
112
  * Two action types keep the reducer focused:
@@ -181,13 +211,10 @@ var DateTimePicker = /*#__PURE__*/forwardRef(function (_ref2, ref) {
181
211
  zoneValue: state.zoneValue
182
212
  };
183
213
  }
184
- var parsed = parseISO(newValue);
185
- return isValid(parsed) ? {
186
- value: newValue,
187
- dateValue: format(parsed, convertTokens('YYYY-MM-DD')),
188
- timeValue: format(parsed, convertTokens('HH:mm')),
189
- zoneValue: format(parsed, convertTokens('ZZ'))
190
- } : {
214
+ var parsed = parseDateTimeValue(newValue);
215
+ return parsed ? _objectSpread({
216
+ value: newValue
217
+ }, parsed) : {
191
218
  value: newValue,
192
219
  dateValue: '',
193
220
  timeValue: '',
@@ -222,13 +249,10 @@ var DateTimePicker = /*#__PURE__*/forwardRef(function (_ref2, ref) {
222
249
  zoneValue: ''
223
250
  };
224
251
  }
225
- var parsed = parseISO(initialValue);
226
- return isValid(parsed) ? {
227
- value: initialValue,
228
- dateValue: format(parsed, convertTokens('YYYY-MM-DD')),
229
- timeValue: format(parsed, convertTokens('HH:mm')),
230
- zoneValue: format(parsed, convertTokens('ZZ'))
231
- } : {
252
+ var parsed = parseDateTimeValue(initialValue);
253
+ return parsed ? _objectSpread({
254
+ value: initialValue
255
+ }, parsed) : {
232
256
  value: initialValue,
233
257
  dateValue: initialDate,
234
258
  timeValue: initialTime,
@@ -282,12 +306,8 @@ var DateTimePicker = /*#__PURE__*/forwardRef(function (_ref2, ref) {
282
306
  zoneValue: providedZoneValue
283
307
  };
284
308
  }
285
- var parsed = parseISO(value);
286
- return isValid(parsed) ? {
287
- dateValue: format(parsed, convertTokens('YYYY-MM-DD')),
288
- timeValue: format(parsed, convertTokens('HH:mm')),
289
- zoneValue: format(parsed, convertTokens('ZZ'))
290
- } : {
309
+ var parsed = parseDateTimeValue(value);
310
+ return parsed || {
291
311
  dateValue: dtState.dateValue,
292
312
  timeValue: dtState.timeValue,
293
313
  zoneValue: dtState.zoneValue
@@ -31,7 +31,7 @@ import { PickerButtonContainer } from '../internal/picker-button-container';
31
31
  import { placeholderDatetime } from '../internal/placeholder-date-time';
32
32
  import { makeSingleValue } from '../internal/single-value';
33
33
  var packageName = "@atlaskit/datetime-picker";
34
- var packageVersion = "19.3.2";
34
+ var packageVersion = "19.4.0";
35
35
  var defaultTimeFormat = 'h:mma';
36
36
  var menuStyles = {
37
37
  /* Need to remove default absolute positioning as that causes issues with position fixed */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/datetime-picker",
3
- "version": "19.4.0",
3
+ "version": "19.4.1",
4
4
  "description": "A date time picker allows the user to select an associated date and time.",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org/"
@@ -49,7 +49,7 @@
49
49
  "@atlaskit/react-select": "^4.12.0",
50
50
  "@atlaskit/select": "^23.1.0",
51
51
  "@atlaskit/tokens": "^20.7.0",
52
- "@atlaskit/top-layer": "^6.6.0",
52
+ "@atlaskit/top-layer": "^6.7.0",
53
53
  "@babel/runtime": "^7.0.0",
54
54
  "@compiled/react": "^1.0.2",
55
55
  "date-fns": "^2.17.0"
@@ -92,6 +92,9 @@
92
92
  "platform-dst-top-layer": {
93
93
  "type": "boolean"
94
94
  },
95
+ "platform-dst-dtp-preserve-offset": {
96
+ "type": "boolean"
97
+ },
95
98
  "platform-dst-motion-uplift-input": {
96
99
  "type": "boolean",
97
100
  "referenceOnly": true