@atlaskit/datetime-picker 15.4.3 → 15.5.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 +25 -0
- package/dist/cjs/components/date-picker-class.js +11 -3
- package/dist/cjs/components/date-picker-fc.js +11 -3
- package/dist/cjs/components/date-time-picker-class.js +439 -0
- package/dist/cjs/components/date-time-picker-fc.js +398 -0
- package/dist/cjs/components/date-time-picker.js +7 -430
- package/dist/cjs/components/time-picker.js +9 -3
- package/dist/cjs/internal/date-time-picker-container.js +21 -20
- package/dist/cjs/internal/indicators-container.js +31 -0
- package/dist/es2019/components/date-picker-class.js +9 -1
- package/dist/es2019/components/date-picker-fc.js +9 -1
- package/dist/es2019/components/date-time-picker-class.js +400 -0
- package/dist/es2019/components/date-time-picker-fc.js +363 -0
- package/dist/es2019/components/date-time-picker.js +4 -397
- package/dist/es2019/components/time-picker.js +8 -3
- package/dist/es2019/internal/date-time-picker-container.js +8 -7
- package/dist/es2019/internal/indicators-container.js +22 -0
- package/dist/esm/components/date-picker-class.js +11 -3
- package/dist/esm/components/date-picker-fc.js +11 -3
- package/dist/esm/components/date-time-picker-class.js +437 -0
- package/dist/esm/components/date-time-picker-fc.js +391 -0
- package/dist/esm/components/date-time-picker.js +6 -434
- package/dist/esm/components/time-picker.js +9 -3
- package/dist/esm/internal/date-time-picker-container.js +8 -7
- package/dist/esm/internal/indicators-container.js +25 -0
- package/dist/types/components/date-picker-class.d.ts +2 -2
- package/dist/types/components/date-picker-fc.d.ts +1 -1
- package/dist/types/components/date-picker.d.ts +3 -3
- package/dist/types/components/date-time-picker-class.d.ts +56 -0
- package/dist/types/components/date-time-picker-fc.d.ts +19 -0
- package/dist/types/components/date-time-picker.d.ts +2 -55
- package/dist/types/components/time-picker.d.ts +1 -1
- package/dist/types/internal/date-time-picker-container.d.ts +10 -12
- package/dist/types/internal/indicators-container.d.ts +9 -0
- package/dist/types/types.d.ts +4 -0
- package/dist/types-ts4.5/components/date-picker-class.d.ts +2 -2
- package/dist/types-ts4.5/components/date-picker-fc.d.ts +1 -1
- package/dist/types-ts4.5/components/date-picker.d.ts +3 -3
- package/dist/types-ts4.5/components/date-time-picker-class.d.ts +56 -0
- package/dist/types-ts4.5/components/date-time-picker-fc.d.ts +19 -0
- package/dist/types-ts4.5/components/date-time-picker.d.ts +2 -55
- package/dist/types-ts4.5/components/time-picker.d.ts +1 -1
- package/dist/types-ts4.5/internal/date-time-picker-container.d.ts +10 -12
- package/dist/types-ts4.5/internal/indicators-container.d.ts +9 -0
- package/dist/types-ts4.5/types.d.ts +4 -0
- package/package.json +8 -5
|
@@ -0,0 +1,398 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.timePickerDefaultAriaLabel = exports.default = exports.datePickerDefaultAriaLabel = void 0;
|
|
9
|
+
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
10
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
11
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
12
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
13
|
+
var _react2 = require("@emotion/react");
|
|
14
|
+
var _dateFns = require("date-fns");
|
|
15
|
+
var _analyticsNext = require("@atlaskit/analytics-next");
|
|
16
|
+
var _selectClear = _interopRequireDefault(require("@atlaskit/icon/glyph/select-clear"));
|
|
17
|
+
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
18
|
+
var _select = require("@atlaskit/select");
|
|
19
|
+
var _colors = require("@atlaskit/theme/colors");
|
|
20
|
+
var _internal = require("../internal");
|
|
21
|
+
var _dateTimePickerContainer = require("../internal/date-time-picker-container");
|
|
22
|
+
var _ffComponent = require("../internal/ff-component");
|
|
23
|
+
var _parseTokens = require("../internal/parse-tokens");
|
|
24
|
+
var _datePickerClass = _interopRequireDefault(require("./date-picker-class"));
|
|
25
|
+
var _datePickerFc = _interopRequireDefault(require("./date-picker-fc"));
|
|
26
|
+
var _timePicker = _interopRequireDefault(require("./time-picker"));
|
|
27
|
+
var _excluded = ["selectProps"],
|
|
28
|
+
_excluded2 = ["selectProps"];
|
|
29
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
30
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
31
|
+
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; }
|
|
32
|
+
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; } /**
|
|
33
|
+
* @jsxRuntime classic
|
|
34
|
+
* @jsx jsx
|
|
35
|
+
*/ // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
|
|
36
|
+
var DatePicker = (0, _ffComponent.componentWithCondition)(function () {
|
|
37
|
+
return (0, _platformFeatureFlags.fg)('dst-date-picker-use-functional-component');
|
|
38
|
+
}, _datePickerFc.default, _datePickerClass.default);
|
|
39
|
+
var packageName = "@atlaskit/datetime-picker";
|
|
40
|
+
var packageVersion = "15.5.1";
|
|
41
|
+
var analyticsAttributes = {
|
|
42
|
+
componentName: 'dateTimePicker',
|
|
43
|
+
packageName: packageName,
|
|
44
|
+
packageVersion: packageVersion
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
// Make DatePicker 50% the width of DateTimePicker
|
|
48
|
+
// If rendering an icon container, shrink the TimePicker
|
|
49
|
+
var datePickerContainerStyles = (0, _react2.css)({
|
|
50
|
+
flexBasis: '50%',
|
|
51
|
+
flexGrow: 1,
|
|
52
|
+
flexShrink: 0
|
|
53
|
+
});
|
|
54
|
+
var timePickerContainerStyles = (0, _react2.css)({
|
|
55
|
+
flexBasis: '50%',
|
|
56
|
+
flexGrow: 1
|
|
57
|
+
});
|
|
58
|
+
var iconContainerStyles = (0, _react2.css)({
|
|
59
|
+
display: 'flex',
|
|
60
|
+
margin: "var(--ds-border-width, 1px)",
|
|
61
|
+
alignItems: 'center',
|
|
62
|
+
flexBasis: 'inherit',
|
|
63
|
+
backgroundColor: 'inherit',
|
|
64
|
+
border: 'none',
|
|
65
|
+
color: "var(--ds-text-subtlest, ".concat(_colors.N70, ")"),
|
|
66
|
+
paddingBlockEnd: "var(--ds-space-075, 6px)",
|
|
67
|
+
paddingBlockStart: "var(--ds-space-075, 6px)",
|
|
68
|
+
paddingInlineEnd: "var(--ds-space-100, 8px)",
|
|
69
|
+
paddingInlineStart: "var(--ds-space-050, 4px)",
|
|
70
|
+
transition: "color 150ms",
|
|
71
|
+
'&:hover': {
|
|
72
|
+
color: "var(--ds-text-subtle, ".concat(_colors.N500, ")")
|
|
73
|
+
}
|
|
74
|
+
});
|
|
75
|
+
|
|
76
|
+
// react-select overrides (via @atlaskit/select).
|
|
77
|
+
var styles = {
|
|
78
|
+
control: function control(style) {
|
|
79
|
+
return _objectSpread(_objectSpread({}, style), {}, {
|
|
80
|
+
backgroundColor: 'transparent',
|
|
81
|
+
border: 2,
|
|
82
|
+
borderRadius: 0,
|
|
83
|
+
paddingLeft: 0,
|
|
84
|
+
':hover': {
|
|
85
|
+
backgroundColor: 'transparent',
|
|
86
|
+
cursor: 'inherit'
|
|
87
|
+
}
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
};
|
|
91
|
+
var datePickerDefaultAriaLabel = exports.datePickerDefaultAriaLabel = 'Date';
|
|
92
|
+
var timePickerDefaultAriaLabel = exports.timePickerDefaultAriaLabel = 'Time';
|
|
93
|
+
|
|
94
|
+
/**
|
|
95
|
+
* __Date time picker__
|
|
96
|
+
*
|
|
97
|
+
* A date time picker allows the user to select an associated date and time.
|
|
98
|
+
*
|
|
99
|
+
* - [Examples](https://atlassian.design/components/datetime-picker/examples)
|
|
100
|
+
* - [Code](https://atlassian.design/components/datetime-picker/code)
|
|
101
|
+
* - [Usage](https://atlassian.design/components/datetime-picker/usage)
|
|
102
|
+
*/
|
|
103
|
+
var DateTimePicker = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
|
|
104
|
+
var ariaDescribedBy = _ref['aria-describedby'],
|
|
105
|
+
_ref$appearance = _ref.appearance,
|
|
106
|
+
appearance = _ref$appearance === void 0 ? 'default' : _ref$appearance,
|
|
107
|
+
_ref$autoFocus = _ref.autoFocus,
|
|
108
|
+
autoFocus = _ref$autoFocus === void 0 ? false : _ref$autoFocus,
|
|
109
|
+
_ref$clearControlLabe = _ref.clearControlLabel,
|
|
110
|
+
clearControlLabel = _ref$clearControlLabe === void 0 ? 'clear' : _ref$clearControlLabe,
|
|
111
|
+
_ref$datePickerProps = _ref.datePickerProps,
|
|
112
|
+
datePickerPropsWithSelectProps = _ref$datePickerProps === void 0 ? {} : _ref$datePickerProps,
|
|
113
|
+
_ref$defaultValue = _ref.defaultValue,
|
|
114
|
+
defaultValue = _ref$defaultValue === void 0 ? '' : _ref$defaultValue,
|
|
115
|
+
_ref$id = _ref.id,
|
|
116
|
+
id = _ref$id === void 0 ? '' : _ref$id,
|
|
117
|
+
_ref$innerProps = _ref.innerProps,
|
|
118
|
+
innerProps = _ref$innerProps === void 0 ? {} : _ref$innerProps,
|
|
119
|
+
_ref$isDisabled = _ref.isDisabled,
|
|
120
|
+
isDisabled = _ref$isDisabled === void 0 ? false : _ref$isDisabled,
|
|
121
|
+
_ref$isInvalid = _ref.isInvalid,
|
|
122
|
+
isInvalid = _ref$isInvalid === void 0 ? false : _ref$isInvalid,
|
|
123
|
+
_ref$isRequired = _ref.isRequired,
|
|
124
|
+
isRequired = _ref$isRequired === void 0 ? false : _ref$isRequired,
|
|
125
|
+
_ref$name = _ref.name,
|
|
126
|
+
name = _ref$name === void 0 ? '' : _ref$name,
|
|
127
|
+
_ref$onBlur = _ref.onBlur,
|
|
128
|
+
onBlur = _ref$onBlur === void 0 ? function (_event) {} : _ref$onBlur,
|
|
129
|
+
_ref$onChange = _ref.onChange,
|
|
130
|
+
onChangeProp = _ref$onChange === void 0 ? function (_value) {} : _ref$onChange,
|
|
131
|
+
_ref$onFocus = _ref.onFocus,
|
|
132
|
+
onFocus = _ref$onFocus === void 0 ? function (_event) {} : _ref$onFocus,
|
|
133
|
+
providedParseValue = _ref.parseValue,
|
|
134
|
+
_ref$spacing = _ref.spacing,
|
|
135
|
+
spacing = _ref$spacing === void 0 ? 'default' : _ref$spacing,
|
|
136
|
+
_ref$locale = _ref.locale,
|
|
137
|
+
locale = _ref$locale === void 0 ? 'en-US' : _ref$locale,
|
|
138
|
+
testId = _ref.testId,
|
|
139
|
+
_ref$timePickerProps = _ref.timePickerProps,
|
|
140
|
+
timePickerPropsWithSelectProps = _ref$timePickerProps === void 0 ? {} : _ref$timePickerProps,
|
|
141
|
+
providedValue = _ref.value;
|
|
142
|
+
var _useState = (0, _react.useState)((datePickerPropsWithSelectProps === null || datePickerPropsWithSelectProps === void 0 ? void 0 : datePickerPropsWithSelectProps.defaultValue) || ''),
|
|
143
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
144
|
+
dateValue = _useState2[0],
|
|
145
|
+
setDateValue = _useState2[1];
|
|
146
|
+
var _useState3 = (0, _react.useState)(false),
|
|
147
|
+
_useState4 = (0, _slicedToArray2.default)(_useState3, 2),
|
|
148
|
+
isFocused = _useState4[0],
|
|
149
|
+
setIsFocused = _useState4[1];
|
|
150
|
+
var _useState5 = (0, _react.useState)((timePickerPropsWithSelectProps === null || timePickerPropsWithSelectProps === void 0 ? void 0 : timePickerPropsWithSelectProps.defaultValue) || ''),
|
|
151
|
+
_useState6 = (0, _slicedToArray2.default)(_useState5, 2),
|
|
152
|
+
timeValue = _useState6[0],
|
|
153
|
+
setTimeValue = _useState6[1];
|
|
154
|
+
var _useState7 = (0, _react.useState)(defaultValue || ''),
|
|
155
|
+
_useState8 = (0, _slicedToArray2.default)(_useState7, 2),
|
|
156
|
+
value = _useState8[0],
|
|
157
|
+
setValue = _useState8[1];
|
|
158
|
+
var _useState9 = (0, _react.useState)(''),
|
|
159
|
+
_useState10 = (0, _slicedToArray2.default)(_useState9, 2),
|
|
160
|
+
zoneValue = _useState10[0],
|
|
161
|
+
setZoneValue = _useState10[1];
|
|
162
|
+
(0, _react.useEffect)(function () {
|
|
163
|
+
if (providedValue) {
|
|
164
|
+
setValue(providedValue);
|
|
165
|
+
}
|
|
166
|
+
}, [providedValue]);
|
|
167
|
+
var parseValue = (0, _react.useCallback)(function (value, providedDateValue, providedTimeValue, providedZoneValue) {
|
|
168
|
+
if (providedParseValue) {
|
|
169
|
+
var parsedFromFn = providedParseValue(value, providedDateValue, providedTimeValue, providedZoneValue);
|
|
170
|
+
// This handles cases found in Jira where the parse function actually does
|
|
171
|
+
// nothing and returns undefined. The previous `getSafeState` function
|
|
172
|
+
// just spread the values over the state, but if it returned `undefined`,
|
|
173
|
+
// it would just rely on the previous state values. Considering this is
|
|
174
|
+
// what is input to this function anyway, this is a safe way to handle
|
|
175
|
+
// this, colocate the behavior, and not rely on `getSafeState`.
|
|
176
|
+
return parsedFromFn || {
|
|
177
|
+
dateValue: providedDateValue,
|
|
178
|
+
timeValue: providedTimeValue,
|
|
179
|
+
zoneValue: providedZoneValue
|
|
180
|
+
};
|
|
181
|
+
}
|
|
182
|
+
var parsed = (0, _dateFns.parseISO)(value);
|
|
183
|
+
return (0, _dateFns.isValid)(parsed) ? {
|
|
184
|
+
dateValue: (0, _dateFns.format)(parsed, (0, _parseTokens.convertTokens)('YYYY-MM-DD')),
|
|
185
|
+
timeValue: (0, _dateFns.format)(parsed, (0, _parseTokens.convertTokens)('HH:mm')),
|
|
186
|
+
zoneValue: (0, _dateFns.format)(parsed, (0, _parseTokens.convertTokens)('ZZ'))
|
|
187
|
+
} : {
|
|
188
|
+
dateValue: dateValue,
|
|
189
|
+
timeValue: timeValue,
|
|
190
|
+
zoneValue: zoneValue
|
|
191
|
+
};
|
|
192
|
+
}, [providedParseValue, dateValue, timeValue, zoneValue]);
|
|
193
|
+
(0, _react.useEffect)(function () {
|
|
194
|
+
var parsedValues = parseValue(value, dateValue, timeValue, zoneValue);
|
|
195
|
+
setDateValue(parsedValues.dateValue);
|
|
196
|
+
setTimeValue(parsedValues.timeValue);
|
|
197
|
+
setZoneValue(parsedValues.zoneValue);
|
|
198
|
+
}, [value, dateValue, timeValue, zoneValue, parseValue]);
|
|
199
|
+
var onDateBlur = function onDateBlur(event) {
|
|
200
|
+
setIsFocused(false);
|
|
201
|
+
onBlur(event);
|
|
202
|
+
if (datePickerPropsWithSelectProps !== null && datePickerPropsWithSelectProps !== void 0 && datePickerPropsWithSelectProps.onBlur) {
|
|
203
|
+
datePickerPropsWithSelectProps.onBlur(event);
|
|
204
|
+
}
|
|
205
|
+
};
|
|
206
|
+
var onTimeBlur = function onTimeBlur(event) {
|
|
207
|
+
setIsFocused(false);
|
|
208
|
+
onBlur(event);
|
|
209
|
+
if (timePickerPropsWithSelectProps !== null && timePickerPropsWithSelectProps !== void 0 && timePickerPropsWithSelectProps.onBlur) {
|
|
210
|
+
timePickerPropsWithSelectProps.onBlur(event);
|
|
211
|
+
}
|
|
212
|
+
};
|
|
213
|
+
var onDateFocus = function onDateFocus(event) {
|
|
214
|
+
setIsFocused(false);
|
|
215
|
+
onFocus(event);
|
|
216
|
+
if (datePickerPropsWithSelectProps !== null && datePickerPropsWithSelectProps !== void 0 && datePickerPropsWithSelectProps.onFocus) {
|
|
217
|
+
datePickerPropsWithSelectProps.onFocus(event);
|
|
218
|
+
}
|
|
219
|
+
};
|
|
220
|
+
var onTimeFocus = function onTimeFocus(event) {
|
|
221
|
+
setIsFocused(false);
|
|
222
|
+
onFocus(event);
|
|
223
|
+
if (timePickerPropsWithSelectProps !== null && timePickerPropsWithSelectProps !== void 0 && timePickerPropsWithSelectProps.onFocus) {
|
|
224
|
+
timePickerPropsWithSelectProps.onFocus(event);
|
|
225
|
+
}
|
|
226
|
+
};
|
|
227
|
+
var onDateChange = function onDateChange(dateValue) {
|
|
228
|
+
var parsedValues = parseValue(value, dateValue, timeValue, zoneValue);
|
|
229
|
+
onValueChange({
|
|
230
|
+
providedDateValue: dateValue,
|
|
231
|
+
providedTimeValue: parsedValues.timeValue,
|
|
232
|
+
providedZoneValue: parsedValues.zoneValue
|
|
233
|
+
});
|
|
234
|
+
if (datePickerPropsWithSelectProps !== null && datePickerPropsWithSelectProps !== void 0 && datePickerPropsWithSelectProps.onChange) {
|
|
235
|
+
datePickerPropsWithSelectProps.onChange(dateValue);
|
|
236
|
+
}
|
|
237
|
+
};
|
|
238
|
+
var onTimeChange = function onTimeChange(timeValue) {
|
|
239
|
+
var parsedValues = parseValue(value, dateValue, timeValue, zoneValue);
|
|
240
|
+
onValueChange({
|
|
241
|
+
providedDateValue: parsedValues.dateValue,
|
|
242
|
+
providedTimeValue: timeValue,
|
|
243
|
+
providedZoneValue: parsedValues.zoneValue
|
|
244
|
+
});
|
|
245
|
+
if (timePickerPropsWithSelectProps !== null && timePickerPropsWithSelectProps !== void 0 && timePickerPropsWithSelectProps.onChange) {
|
|
246
|
+
timePickerPropsWithSelectProps.onChange(timeValue);
|
|
247
|
+
}
|
|
248
|
+
};
|
|
249
|
+
var onClear = function onClear() {
|
|
250
|
+
var parsedValues = parseValue(value, dateValue, timeValue, zoneValue);
|
|
251
|
+
onValueChange({
|
|
252
|
+
providedDateValue: '',
|
|
253
|
+
providedTimeValue: '',
|
|
254
|
+
providedZoneValue: parsedValues.zoneValue
|
|
255
|
+
});
|
|
256
|
+
if (datePickerPropsWithSelectProps !== null && datePickerPropsWithSelectProps !== void 0 && datePickerPropsWithSelectProps.onChange) {
|
|
257
|
+
datePickerPropsWithSelectProps.onChange('');
|
|
258
|
+
}
|
|
259
|
+
if (timePickerPropsWithSelectProps !== null && timePickerPropsWithSelectProps !== void 0 && timePickerPropsWithSelectProps.onChange) {
|
|
260
|
+
timePickerPropsWithSelectProps.onChange('');
|
|
261
|
+
}
|
|
262
|
+
};
|
|
263
|
+
var onChangePropWithAnalytics = (0, _analyticsNext.usePlatformLeafEventHandler)(_objectSpread({
|
|
264
|
+
fn: onChangeProp,
|
|
265
|
+
action: 'selectedDate',
|
|
266
|
+
actionSubject: 'datePicker'
|
|
267
|
+
}, analyticsAttributes));
|
|
268
|
+
var onValueChange = function onValueChange(_ref2) {
|
|
269
|
+
var providedDateValue = _ref2.providedDateValue,
|
|
270
|
+
providedTimeValue = _ref2.providedTimeValue,
|
|
271
|
+
providedZoneValue = _ref2.providedZoneValue;
|
|
272
|
+
setDateValue(providedDateValue);
|
|
273
|
+
setTimeValue(providedTimeValue);
|
|
274
|
+
setZoneValue(providedZoneValue);
|
|
275
|
+
if (providedDateValue && providedTimeValue) {
|
|
276
|
+
var _value2 = (0, _internal.formatDateTimeZoneIntoIso)(providedDateValue, providedTimeValue, providedZoneValue);
|
|
277
|
+
var _parseValue = parseValue(_value2, providedDateValue, providedTimeValue, providedZoneValue),
|
|
278
|
+
parsedZone = _parseValue.zoneValue;
|
|
279
|
+
var valueWithValidZone = (0, _internal.formatDateTimeZoneIntoIso)(providedDateValue, providedTimeValue, parsedZone);
|
|
280
|
+
setValue(valueWithValidZone);
|
|
281
|
+
onChangePropWithAnalytics(valueWithValidZone);
|
|
282
|
+
// If the date or time value was cleared when there is an existing datetime value, then clear the value.
|
|
283
|
+
} else if (value) {
|
|
284
|
+
setValue('');
|
|
285
|
+
onChangePropWithAnalytics('');
|
|
286
|
+
}
|
|
287
|
+
};
|
|
288
|
+
var datePickerSelectProps = datePickerPropsWithSelectProps.selectProps,
|
|
289
|
+
datePickerProps = (0, _objectWithoutProperties2.default)(datePickerPropsWithSelectProps, _excluded);
|
|
290
|
+
var datePickerAriaDescribedBy = datePickerProps['aria-describedby'] || ariaDescribedBy;
|
|
291
|
+
var datePickerLabel = datePickerProps.label || datePickerDefaultAriaLabel;
|
|
292
|
+
var mergedDatePickerSelectProps = _objectSpread(_objectSpread({}, datePickerSelectProps), {}, {
|
|
293
|
+
styles: (0, _select.mergeStyles)(styles, datePickerSelectProps === null || datePickerSelectProps === void 0 ? void 0 : datePickerSelectProps.styles)
|
|
294
|
+
});
|
|
295
|
+
var timePickerSelectProps = timePickerPropsWithSelectProps.selectProps,
|
|
296
|
+
timePickerProps = (0, _objectWithoutProperties2.default)(timePickerPropsWithSelectProps, _excluded2);
|
|
297
|
+
var timePickerAriaDescribedBy = timePickerProps['aria-describedby'] || ariaDescribedBy;
|
|
298
|
+
var timePickerLabel = timePickerProps.label || timePickerDefaultAriaLabel;
|
|
299
|
+
var mergedTimePickerSelectProps = _objectSpread(_objectSpread({}, timePickerSelectProps), {}, {
|
|
300
|
+
styles: (0, _select.mergeStyles)(styles, timePickerSelectProps === null || timePickerSelectProps === void 0 ? void 0 : timePickerSelectProps.styles)
|
|
301
|
+
});
|
|
302
|
+
|
|
303
|
+
// Render DateTimePicker's IconContainer when a value has been filled
|
|
304
|
+
// Don't use Date or TimePicker's because they can't be customised
|
|
305
|
+
var isClearable = Boolean(dateValue || timeValue);
|
|
306
|
+
return (0, _react2.jsx)(_dateTimePickerContainer.DateTimePickerContainer, {
|
|
307
|
+
appearance: appearance,
|
|
308
|
+
isDisabled: isDisabled,
|
|
309
|
+
isFocused: isFocused,
|
|
310
|
+
isInvalid: isInvalid,
|
|
311
|
+
testId: testId,
|
|
312
|
+
innerProps: innerProps
|
|
313
|
+
}, (0, _react2.jsx)("input", {
|
|
314
|
+
name: name,
|
|
315
|
+
type: "hidden",
|
|
316
|
+
value: value,
|
|
317
|
+
"data-testid": testId && "".concat(testId, "--input")
|
|
318
|
+
}), (0, _react2.jsx)("div", {
|
|
319
|
+
css: datePickerContainerStyles
|
|
320
|
+
}, (0, _react2.jsx)(DatePicker, {
|
|
321
|
+
appearance: appearance,
|
|
322
|
+
"aria-describedby": datePickerAriaDescribedBy,
|
|
323
|
+
autoFocus: datePickerProps.autoFocus || autoFocus,
|
|
324
|
+
dateFormat: datePickerProps.dateFormat,
|
|
325
|
+
defaultIsOpen: datePickerProps.defaultIsOpen,
|
|
326
|
+
defaultValue: datePickerProps.defaultValue,
|
|
327
|
+
disabled: datePickerProps.disabled,
|
|
328
|
+
disabledDateFilter: datePickerProps.disabledDateFilter,
|
|
329
|
+
formatDisplayLabel: datePickerProps.formatDisplayLabel,
|
|
330
|
+
hideIcon: datePickerProps.hideIcon || true,
|
|
331
|
+
icon: datePickerProps.icon,
|
|
332
|
+
id: datePickerProps.id || id,
|
|
333
|
+
innerProps: datePickerProps.innerProps,
|
|
334
|
+
isDisabled: datePickerProps.isDisabled || isDisabled,
|
|
335
|
+
isInvalid: datePickerProps.isInvalid || isInvalid,
|
|
336
|
+
isOpen: datePickerProps.isOpen,
|
|
337
|
+
isRequired: datePickerProps.isRequired || isRequired,
|
|
338
|
+
label: datePickerLabel,
|
|
339
|
+
locale: datePickerProps.locale || locale,
|
|
340
|
+
maxDate: datePickerProps.maxDate,
|
|
341
|
+
minDate: datePickerProps.minDate,
|
|
342
|
+
name: datePickerProps.name,
|
|
343
|
+
nextMonthLabel: datePickerProps.nextMonthLabel,
|
|
344
|
+
onBlur: onDateBlur,
|
|
345
|
+
onChange: onDateChange,
|
|
346
|
+
onFocus: onDateFocus,
|
|
347
|
+
parseInputValue: datePickerProps.parseInputValue,
|
|
348
|
+
placeholder: datePickerProps.placeholder,
|
|
349
|
+
previousMonthLabel: datePickerProps.previousMonthLabel,
|
|
350
|
+
selectProps: mergedDatePickerSelectProps,
|
|
351
|
+
spacing: datePickerProps.spacing || spacing,
|
|
352
|
+
testId: testId && "".concat(testId, "--datepicker") || datePickerProps.testId,
|
|
353
|
+
value: dateValue,
|
|
354
|
+
weekStartDay: datePickerProps.weekStartDay
|
|
355
|
+
})), (0, _react2.jsx)("div", {
|
|
356
|
+
css: timePickerContainerStyles
|
|
357
|
+
}, (0, _react2.jsx)(_timePicker.default, {
|
|
358
|
+
appearance: timePickerProps.appearance || appearance,
|
|
359
|
+
"aria-describedby": timePickerAriaDescribedBy,
|
|
360
|
+
autoFocus: timePickerProps.autoFocus,
|
|
361
|
+
defaultIsOpen: timePickerProps.defaultIsOpen,
|
|
362
|
+
defaultValue: timePickerProps.defaultValue,
|
|
363
|
+
formatDisplayLabel: timePickerProps.formatDisplayLabel,
|
|
364
|
+
hideIcon: timePickerProps.hideIcon || true,
|
|
365
|
+
id: timePickerProps.id,
|
|
366
|
+
innerProps: timePickerProps.innerProps,
|
|
367
|
+
isDisabled: timePickerProps.isDisabled || isDisabled,
|
|
368
|
+
isInvalid: timePickerProps.isInvalid || isInvalid,
|
|
369
|
+
isOpen: timePickerProps.isOpen,
|
|
370
|
+
isRequired: timePickerProps.isRequired || isRequired,
|
|
371
|
+
label: timePickerLabel,
|
|
372
|
+
locale: timePickerProps.locale || locale,
|
|
373
|
+
name: timePickerProps.name,
|
|
374
|
+
onBlur: onTimeBlur,
|
|
375
|
+
onChange: onTimeChange,
|
|
376
|
+
onFocus: onTimeFocus,
|
|
377
|
+
parseInputValue: timePickerProps.parseInputValue,
|
|
378
|
+
placeholder: timePickerProps.placeholder,
|
|
379
|
+
selectProps: mergedTimePickerSelectProps,
|
|
380
|
+
spacing: timePickerProps.spacing || spacing,
|
|
381
|
+
testId: timePickerProps.testId || testId && "".concat(testId, "--timepicker"),
|
|
382
|
+
timeFormat: timePickerProps.timeFormat,
|
|
383
|
+
timeIsEditable: timePickerProps.timeIsEditable,
|
|
384
|
+
times: timePickerProps.times,
|
|
385
|
+
value: timeValue
|
|
386
|
+
})), isClearable && !isDisabled ? (0, _react2.jsx)("button", {
|
|
387
|
+
css: iconContainerStyles,
|
|
388
|
+
onClick: onClear,
|
|
389
|
+
"data-testid": testId && "".concat(testId, "--icon--container"),
|
|
390
|
+
tabIndex: -1,
|
|
391
|
+
type: "button"
|
|
392
|
+
}, (0, _react2.jsx)(_selectClear.default, {
|
|
393
|
+
size: "small",
|
|
394
|
+
primaryColor: "inherit",
|
|
395
|
+
label: clearControlLabel
|
|
396
|
+
})) : null);
|
|
397
|
+
});
|
|
398
|
+
var _default = exports.default = DateTimePicker;
|