@instructure/ui-date-time-input 8.56.0 → 8.56.2-pr-snapshot-1721749364069
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,22 @@
|
|
|
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
|
+
## [8.56.2-pr-snapshot-1721749364069](https://github.com/instructure/instructure-ui/compare/v8.56.1...v8.56.2-pr-snapshot-1721749364069) (2024-07-23)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @instructure/ui-date-time-input
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
## [8.56.1](https://github.com/instructure/instructure-ui/compare/v8.56.0...v8.56.1) (2024-06-13)
|
|
15
|
+
|
|
16
|
+
**Note:** Version bump only for package @instructure/ui-date-time-input
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
6
22
|
# [8.56.0](https://github.com/instructure/instructure-ui/compare/v8.55.1...v8.56.0) (2024-05-06)
|
|
7
23
|
|
|
8
24
|
**Note:** Version bump only for package @instructure/ui-date-time-input
|
|
@@ -6,8 +6,7 @@ var _react2 = require("@testing-library/react");
|
|
|
6
6
|
var _userEvent = _interopRequireDefault(require("@testing-library/user-event"));
|
|
7
7
|
require("@testing-library/jest-dom");
|
|
8
8
|
var _index = require("../index");
|
|
9
|
-
var
|
|
10
|
-
var _DateTime = require("@instructure/ui-i18n/lib/DateTime.js");
|
|
9
|
+
var _uiI18n = require("@instructure/ui-i18n");
|
|
11
10
|
var _DateTimeInput, _DateTimeInput2, _DateTimeInput3;
|
|
12
11
|
/*
|
|
13
12
|
* The MIT License (MIT)
|
|
@@ -44,7 +43,7 @@ describe('<DateTimeInput />', () => {
|
|
|
44
43
|
it('should use the default value', () => {
|
|
45
44
|
const locale = 'en-US';
|
|
46
45
|
const timezone = 'US/Eastern';
|
|
47
|
-
const dateTime =
|
|
46
|
+
const dateTime = _uiI18n.DateTime.parse('2017-05-01T17:30Z', locale, timezone);
|
|
48
47
|
(0, _react2.render)( /*#__PURE__*/_react.default.createElement(_index.DateTimeInput, {
|
|
49
48
|
description: "date_time",
|
|
50
49
|
prevMonthLabel: "Previous month",
|
|
@@ -65,7 +64,7 @@ describe('<DateTimeInput />', () => {
|
|
|
65
64
|
const onChange = jest.fn();
|
|
66
65
|
const locale = 'en-US';
|
|
67
66
|
const timezone = 'US/Eastern';
|
|
68
|
-
const dateTime =
|
|
67
|
+
const dateTime = _uiI18n.DateTime.parse('2017-05-01T23:30Z', locale, timezone);
|
|
69
68
|
(0, _react2.render)( /*#__PURE__*/_react.default.createElement(_index.DateTimeInput, {
|
|
70
69
|
description: "date_time",
|
|
71
70
|
prevMonthLabel: "Previous month",
|
|
@@ -86,8 +85,8 @@ describe('<DateTimeInput />', () => {
|
|
|
86
85
|
it('should prefer value to defaultValue', () => {
|
|
87
86
|
const locale = 'en-US';
|
|
88
87
|
const timezone = 'US/Eastern';
|
|
89
|
-
const value =
|
|
90
|
-
const defaultValue =
|
|
88
|
+
const value = _uiI18n.DateTime.parse('2017-05-01T17:30Z', locale, timezone);
|
|
89
|
+
const defaultValue = _uiI18n.DateTime.parse('2016-04-01T17:00Z', locale, timezone);
|
|
91
90
|
const onChange = jest.fn();
|
|
92
91
|
(0, _react2.render)( /*#__PURE__*/_react.default.createElement(_index.DateTimeInput, {
|
|
93
92
|
description: "date_time",
|
|
@@ -110,7 +109,7 @@ describe('<DateTimeInput />', () => {
|
|
|
110
109
|
it('should set time to local midnight when only date is set', () => {
|
|
111
110
|
const locale = 'en-US';
|
|
112
111
|
const timezone = 'US/Eastern';
|
|
113
|
-
const dateObj =
|
|
112
|
+
const dateObj = _uiI18n.DateTime.parse('2017-04-01T18:30Z', locale, timezone);
|
|
114
113
|
const date = dateObj.toISOString().split('T')[0];
|
|
115
114
|
(0, _react2.render)( /*#__PURE__*/_react.default.createElement(_index.DateTimeInput, {
|
|
116
115
|
description: "date_time",
|
|
@@ -174,7 +173,7 @@ describe('<DateTimeInput />', () => {
|
|
|
174
173
|
const onChange = jest.fn();
|
|
175
174
|
const locale = 'en-US';
|
|
176
175
|
const timezone = 'US/Eastern';
|
|
177
|
-
const defaultValue =
|
|
176
|
+
const defaultValue = _uiI18n.DateTime.parse('2017-05-01T17:00', locale, timezone);
|
|
178
177
|
(0, _react2.render)( /*#__PURE__*/_react.default.createElement(_index.DateTimeInput, {
|
|
179
178
|
description: "date_time",
|
|
180
179
|
dateRenderLabel: "date-input",
|
|
@@ -232,7 +231,7 @@ describe('<DateTimeInput />', () => {
|
|
|
232
231
|
it('should show the formatted date-time message', () => {
|
|
233
232
|
const locale = 'en-US';
|
|
234
233
|
const timezone = 'US/Eastern';
|
|
235
|
-
const defaultValue =
|
|
234
|
+
const defaultValue = _uiI18n.DateTime.parse('2017-05-01T17:30Z', locale, timezone);
|
|
236
235
|
const _render3 = (0, _react2.render)( /*#__PURE__*/_react.default.createElement(_index.DateTimeInput, {
|
|
237
236
|
description: "date_time",
|
|
238
237
|
dateRenderLabel: "date-input",
|
|
@@ -250,7 +249,7 @@ describe('<DateTimeInput />', () => {
|
|
|
250
249
|
it('should show the formatted date-time message in the proper locale', () => {
|
|
251
250
|
const timezone = 'US/Eastern';
|
|
252
251
|
const locale = 'fr';
|
|
253
|
-
const defaultValue =
|
|
252
|
+
const defaultValue = _uiI18n.DateTime.parse('2017-05-01T17:30Z', locale, timezone);
|
|
254
253
|
const _render4 = (0, _react2.render)( /*#__PURE__*/_react.default.createElement(_index.DateTimeInput, {
|
|
255
254
|
description: "date_time",
|
|
256
255
|
dateRenderLabel: "date-input",
|
|
@@ -293,7 +292,7 @@ describe('<DateTimeInput />', () => {
|
|
|
293
292
|
const onChange = jest.fn();
|
|
294
293
|
const locale = 'en-US';
|
|
295
294
|
const timezone = 'US/Eastern';
|
|
296
|
-
const dateTime =
|
|
295
|
+
const dateTime = _uiI18n.DateTime.parse('2017-05-01T17:30Z', locale, timezone);
|
|
297
296
|
const props = {
|
|
298
297
|
description: 'date_time',
|
|
299
298
|
prevMonthLabel: 'Previous month',
|
|
@@ -319,7 +318,7 @@ describe('<DateTimeInput />', () => {
|
|
|
319
318
|
const onChange = jest.fn();
|
|
320
319
|
const locale = 'en-US';
|
|
321
320
|
const timezone = 'US/Eastern';
|
|
322
|
-
const dateTime =
|
|
321
|
+
const dateTime = _uiI18n.DateTime.parse('2017-05-01T17:30Z', locale, timezone);
|
|
323
322
|
const props = {
|
|
324
323
|
description: 'date_time',
|
|
325
324
|
dateRenderLabel: 'date-input',
|
|
@@ -345,7 +344,7 @@ describe('<DateTimeInput />', () => {
|
|
|
345
344
|
const onChange = jest.fn();
|
|
346
345
|
const locale = 'en-US';
|
|
347
346
|
const timezone = 'US/Eastern';
|
|
348
|
-
const dateTime =
|
|
347
|
+
const dateTime = _uiI18n.DateTime.parse('2017-05-01T17:30Z', locale, timezone);
|
|
349
348
|
const props = {
|
|
350
349
|
description: 'date_time',
|
|
351
350
|
dateRenderLabel: 'date-input',
|
|
@@ -404,7 +403,7 @@ describe('<DateTimeInput />', () => {
|
|
|
404
403
|
it('should update error message when value is invalid', async () => {
|
|
405
404
|
const locale = 'en-US';
|
|
406
405
|
const timezone = 'US/Eastern';
|
|
407
|
-
const dateTime =
|
|
406
|
+
const dateTime = _uiI18n.DateTime.parse('2017-05-01T17:30Z', locale, timezone);
|
|
408
407
|
const props = {
|
|
409
408
|
description: 'date_time',
|
|
410
409
|
dateRenderLabel: 'date-input',
|
|
@@ -432,7 +431,7 @@ describe('<DateTimeInput />', () => {
|
|
|
432
431
|
it('should show supplied message', async () => {
|
|
433
432
|
const locale = 'en-US';
|
|
434
433
|
const timezone = 'US/Eastern';
|
|
435
|
-
const dateTime =
|
|
434
|
+
const dateTime = _uiI18n.DateTime.parse('2017-05-01T17:30Z', locale, timezone);
|
|
436
435
|
const props = {
|
|
437
436
|
description: 'date_time',
|
|
438
437
|
dateRenderLabel: 'date-input',
|
|
@@ -464,7 +463,7 @@ describe('<DateTimeInput />', () => {
|
|
|
464
463
|
it('should not show built in message when `showMessages` is false', async () => {
|
|
465
464
|
const locale = 'en-US';
|
|
466
465
|
const timezone = 'US/Eastern';
|
|
467
|
-
const dateTime =
|
|
466
|
+
const dateTime = _uiI18n.DateTime.parse('2017-05-01T17:30Z', locale, timezone);
|
|
468
467
|
const props = {
|
|
469
468
|
description: 'date_time',
|
|
470
469
|
dateRenderLabel: 'date-input',
|
|
@@ -510,11 +509,11 @@ describe('<DateTimeInput />', () => {
|
|
|
510
509
|
});
|
|
511
510
|
it('should read locale and timezone from context', () => {
|
|
512
511
|
const onChange = jest.fn();
|
|
513
|
-
const dateTime =
|
|
512
|
+
const dateTime = _uiI18n.DateTime.parse('2017-05-01T17:30Z', 'en-US', 'GMT');
|
|
514
513
|
const _render13 = (0, _react2.render)(
|
|
515
514
|
/*#__PURE__*/
|
|
516
515
|
// Africa/Nairobi is GMT +3
|
|
517
|
-
_react.default.createElement(
|
|
516
|
+
_react.default.createElement(_uiI18n.ApplyLocale, {
|
|
518
517
|
locale: "fr",
|
|
519
518
|
timezone: "Africa/Nairobi"
|
|
520
519
|
}, /*#__PURE__*/_react.default.createElement(_index.DateTimeInput, {
|
|
@@ -532,7 +531,7 @@ describe('<DateTimeInput />', () => {
|
|
|
532
531
|
});
|
|
533
532
|
it('should format date according to dateFormat', async () => {
|
|
534
533
|
const onChange = jest.fn();
|
|
535
|
-
const dateTime =
|
|
534
|
+
const dateTime = _uiI18n.DateTime.parse('2017-05-01T17:30Z', 'en-US', 'GMT');
|
|
536
535
|
const props = {
|
|
537
536
|
description: 'date_time',
|
|
538
537
|
dateRenderLabel: 'date-input',
|
|
@@ -559,7 +558,7 @@ describe('<DateTimeInput />', () => {
|
|
|
559
558
|
});
|
|
560
559
|
it('should format bottom message according to messageFormat', async () => {
|
|
561
560
|
const onChange = jest.fn();
|
|
562
|
-
const dateTime =
|
|
561
|
+
const dateTime = _uiI18n.DateTime.parse('2017-05-01T17:30Z', 'en-US', 'GMT');
|
|
563
562
|
const props = {
|
|
564
563
|
description: 'date_time',
|
|
565
564
|
dateRenderLabel: 'date-input',
|
|
@@ -587,7 +586,7 @@ describe('<DateTimeInput />', () => {
|
|
|
587
586
|
it('should update Date and Time inputs when value prop changes', async () => {
|
|
588
587
|
const locale = 'en-US';
|
|
589
588
|
const timezone = 'US/Eastern';
|
|
590
|
-
const dateTime =
|
|
589
|
+
const dateTime = _uiI18n.DateTime.parse('2017-05-01T17:30Z', locale, timezone);
|
|
591
590
|
const props = {
|
|
592
591
|
description: 'date_time',
|
|
593
592
|
dateRenderLabel: 'date-input',
|
|
@@ -604,7 +603,7 @@ describe('<DateTimeInput />', () => {
|
|
|
604
603
|
rerender = _render16.rerender;
|
|
605
604
|
expect(container).toHaveTextContent('May 1, 2017 1:30 PM');
|
|
606
605
|
const newDateStr = '2022-03-29T19:00Z';
|
|
607
|
-
const newDateTime =
|
|
606
|
+
const newDateTime = _uiI18n.DateTime.parse(newDateStr, locale, timezone);
|
|
608
607
|
rerender( /*#__PURE__*/_react.default.createElement(_index.DateTimeInput, Object.assign({}, props, {
|
|
609
608
|
value: newDateStr
|
|
610
609
|
})));
|
|
@@ -6,18 +6,15 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
});
|
|
7
7
|
exports.default = exports.DateTimeInput = void 0;
|
|
8
8
|
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
-
var
|
|
10
|
-
var
|
|
11
|
-
var
|
|
12
|
-
var
|
|
13
|
-
var
|
|
14
|
-
var
|
|
15
|
-
var
|
|
16
|
-
var
|
|
17
|
-
var
|
|
18
|
-
var _IconButton = require("@instructure/ui-buttons/lib/IconButton");
|
|
19
|
-
var _IconArrowOpenEndSolid = require("@instructure/ui-icons/lib/IconArrowOpenEndSolid.js");
|
|
20
|
-
var _IconArrowOpenStartSolid = require("@instructure/ui-icons/lib/IconArrowOpenStartSolid.js");
|
|
9
|
+
var _uiI18n = require("@instructure/ui-i18n");
|
|
10
|
+
var _uiFormField = require("@instructure/ui-form-field");
|
|
11
|
+
var _uiDateInput = require("@instructure/ui-date-input");
|
|
12
|
+
var _uiTimeSelect = require("@instructure/ui-time-select");
|
|
13
|
+
var _uiCalendar = require("@instructure/ui-calendar");
|
|
14
|
+
var _uiTestable = require("@instructure/ui-testable");
|
|
15
|
+
var _uiA11yContent = require("@instructure/ui-a11y-content");
|
|
16
|
+
var _uiButtons = require("@instructure/ui-buttons");
|
|
17
|
+
var _uiIcons = require("@instructure/ui-icons");
|
|
21
18
|
var _props = require("./props");
|
|
22
19
|
var _console = require("@instructure/console");
|
|
23
20
|
var _dec, _class, _class2, _IconArrowOpenStartSo, _IconArrowOpenEndSoli;
|
|
@@ -49,7 +46,7 @@ var _dec, _class, _class2, _IconArrowOpenStartSo, _IconArrowOpenEndSoli;
|
|
|
49
46
|
category: components
|
|
50
47
|
---
|
|
51
48
|
**/
|
|
52
|
-
let DateTimeInput = exports.DateTimeInput = (_dec = (0,
|
|
49
|
+
let DateTimeInput = exports.DateTimeInput = (_dec = (0, _uiTestable.testable)(), _dec(_class = (_class2 = class DateTimeInput extends _react.Component {
|
|
53
50
|
constructor(props) {
|
|
54
51
|
super(props);
|
|
55
52
|
// State needs to be calculated because render could be called before
|
|
@@ -67,14 +64,14 @@ let DateTimeInput = exports.DateTimeInput = (_dec = (0, _testable.testable)(), _
|
|
|
67
64
|
dateInputText: date.value,
|
|
68
65
|
dateInputTextChanged: true,
|
|
69
66
|
calendarSelectedDate: dateParsed ? dateParsed : void 0,
|
|
70
|
-
renderedDate: dateParsed ? dateParsed.clone() :
|
|
67
|
+
renderedDate: dateParsed ? dateParsed.clone() : _uiI18n.DateTime.now(this.locale(), this.timezone())
|
|
71
68
|
});
|
|
72
69
|
};
|
|
73
70
|
// date is returned es a ISO string, like 2021-09-14T22:00:00.000Z
|
|
74
71
|
this.handleDayClick = (event, {
|
|
75
72
|
date
|
|
76
73
|
}) => {
|
|
77
|
-
const dateParsed =
|
|
74
|
+
const dateParsed = _uiI18n.DateTime.parse(date, this.locale(), this.timezone());
|
|
78
75
|
this.updateStateBasedOnDateInput(dateParsed, event);
|
|
79
76
|
};
|
|
80
77
|
this.handleHideCalendar = event => {
|
|
@@ -154,7 +151,7 @@ let DateTimeInput = exports.DateTimeInput = (_dec = (0, _testable.testable)(), _
|
|
|
154
151
|
} else if (this.state.iso) {
|
|
155
152
|
toAlter = this.state.iso.clone();
|
|
156
153
|
} else {
|
|
157
|
-
toAlter =
|
|
154
|
+
toAlter = _uiI18n.DateTime.now(this.locale(), this.timezone());
|
|
158
155
|
}
|
|
159
156
|
toAlter.add({
|
|
160
157
|
days: 1
|
|
@@ -171,7 +168,7 @@ let DateTimeInput = exports.DateTimeInput = (_dec = (0, _testable.testable)(), _
|
|
|
171
168
|
} else if (this.state.iso) {
|
|
172
169
|
toAlter = this.state.iso.clone();
|
|
173
170
|
} else {
|
|
174
|
-
toAlter =
|
|
171
|
+
toAlter = _uiI18n.DateTime.now(this.locale(), this.timezone());
|
|
175
172
|
}
|
|
176
173
|
toAlter.subtract({
|
|
177
174
|
days: 1
|
|
@@ -219,12 +216,12 @@ let DateTimeInput = exports.DateTimeInput = (_dec = (0, _testable.testable)(), _
|
|
|
219
216
|
recalculateState(dateStr, doNotChangeDate = false, doNotChangeTime = false) {
|
|
220
217
|
let errorMsg;
|
|
221
218
|
if (dateStr) {
|
|
222
|
-
const parsed =
|
|
219
|
+
const parsed = _uiI18n.DateTime.parse(dateStr, this.locale(), this.timezone());
|
|
223
220
|
if (parsed.isValid()) {
|
|
224
221
|
var _this$state;
|
|
225
222
|
if (doNotChangeTime && this.state.timeSelectValue) {
|
|
226
223
|
// There is a selected time, adjust the parsed date to its value
|
|
227
|
-
const timeParsed =
|
|
224
|
+
const timeParsed = _uiI18n.DateTime.parse(this.state.timeSelectValue, this.locale(), this.timezone());
|
|
228
225
|
parsed.hour(timeParsed.hour()).minute(timeParsed.minute());
|
|
229
226
|
}
|
|
230
227
|
if (doNotChangeDate && this.state.iso) {
|
|
@@ -284,7 +281,7 @@ let DateTimeInput = exports.DateTimeInput = (_dec = (0, _testable.testable)(), _
|
|
|
284
281
|
iso: void 0,
|
|
285
282
|
calendarSelectedDate: void 0,
|
|
286
283
|
dateInputText: dateStr ? dateStr : '',
|
|
287
|
-
renderedDate:
|
|
284
|
+
renderedDate: _uiI18n.DateTime.now(this.locale(), this.timezone()),
|
|
288
285
|
dateInputTextChanged: false,
|
|
289
286
|
...clearTimeSelect
|
|
290
287
|
};
|
|
@@ -295,7 +292,7 @@ let DateTimeInput = exports.DateTimeInput = (_dec = (0, _testable.testable)(), _
|
|
|
295
292
|
} else if (this.context && this.context.locale) {
|
|
296
293
|
return this.context.locale;
|
|
297
294
|
}
|
|
298
|
-
return
|
|
295
|
+
return _uiI18n.Locale.browserLocale();
|
|
299
296
|
}
|
|
300
297
|
timezone() {
|
|
301
298
|
if (this.props.timezone) {
|
|
@@ -303,7 +300,7 @@ let DateTimeInput = exports.DateTimeInput = (_dec = (0, _testable.testable)(), _
|
|
|
303
300
|
} else if (this.context && this.context.timezone) {
|
|
304
301
|
return this.context.timezone;
|
|
305
302
|
}
|
|
306
|
-
return
|
|
303
|
+
return _uiI18n.DateTime.browserTimeZone();
|
|
307
304
|
}
|
|
308
305
|
get dateFormat() {
|
|
309
306
|
return this.props.dateFormat;
|
|
@@ -324,14 +321,14 @@ let DateTimeInput = exports.DateTimeInput = (_dec = (0, _testable.testable)(), _
|
|
|
324
321
|
return disabledDates(date.toISOString());
|
|
325
322
|
}
|
|
326
323
|
tryParseDate(val) {
|
|
327
|
-
const parsed =
|
|
324
|
+
const parsed = _uiI18n.DateTime.parse(val, this.locale(), this.timezone());
|
|
328
325
|
return parsed.isValid() ? parsed : null;
|
|
329
326
|
}
|
|
330
327
|
updateStateBasedOnDateInput(dateParsed, event) {
|
|
331
328
|
let newState;
|
|
332
329
|
if (dateParsed && this.state.timeSelectValue && (!this.state.dateInputText || this.state.dateInputText == '')) {
|
|
333
330
|
// There is already a selected time, but no date. Adjust the time too
|
|
334
|
-
const timeParsed =
|
|
331
|
+
const timeParsed = _uiI18n.DateTime.parse(this.state.timeSelectValue, this.locale(), this.timezone());
|
|
335
332
|
const dateParsedAdjusted = dateParsed.set({
|
|
336
333
|
hour: timeParsed.hour(),
|
|
337
334
|
minute: timeParsed.minute()
|
|
@@ -350,9 +347,9 @@ let DateTimeInput = exports.DateTimeInput = (_dec = (0, _testable.testable)(), _
|
|
|
350
347
|
// Sets it to the first local day of the week counting back from the start of the month.
|
|
351
348
|
// Note that first day depends on the locale, e.g. it's Sunday in the US and
|
|
352
349
|
// Monday in most of the EU.
|
|
353
|
-
const currDate =
|
|
350
|
+
const currDate = _uiI18n.DateTime.getFirstDayOfWeek(renderedDate.startOf('month'));
|
|
354
351
|
const arr = [];
|
|
355
|
-
for (let i = 0; i <
|
|
352
|
+
for (let i = 0; i < _uiCalendar.Calendar.DAY_COUNT; i++) {
|
|
356
353
|
arr.push(currDate.clone());
|
|
357
354
|
currDate.add({
|
|
358
355
|
days: 1
|
|
@@ -360,11 +357,11 @@ let DateTimeInput = exports.DateTimeInput = (_dec = (0, _testable.testable)(), _
|
|
|
360
357
|
}
|
|
361
358
|
return arr.map(date => {
|
|
362
359
|
const dateStr = date.toISOString();
|
|
363
|
-
return /*#__PURE__*/_react.default.createElement(
|
|
360
|
+
return /*#__PURE__*/_react.default.createElement(_uiDateInput.DateInput.Day, {
|
|
364
361
|
key: dateStr,
|
|
365
362
|
date: dateStr,
|
|
366
363
|
isSelected: this.state.calendarSelectedDate ? date.isSame(this.state.calendarSelectedDate, 'day') : false,
|
|
367
|
-
isToday: date.isSame(
|
|
364
|
+
isToday: date.isSame(_uiI18n.DateTime.now(this.locale(), this.timezone()), 'day'),
|
|
368
365
|
isOutsideMonth: !date.isSame(renderedDate, 'month'),
|
|
369
366
|
label: date.format('D MMMM YYYY') // used by screen readers
|
|
370
367
|
,
|
|
@@ -380,27 +377,27 @@ let DateTimeInput = exports.DateTimeInput = (_dec = (0, _testable.testable)(), _
|
|
|
380
377
|
// this is an expensive function, only execute if the calendar is open
|
|
381
378
|
return [];
|
|
382
379
|
}
|
|
383
|
-
const shortDayNames =
|
|
384
|
-
const longDayNames =
|
|
385
|
-
return [/*#__PURE__*/_react.default.createElement(
|
|
380
|
+
const shortDayNames = _uiI18n.DateTime.getLocalDayNamesOfTheWeek(this.locale(), 'short');
|
|
381
|
+
const longDayNames = _uiI18n.DateTime.getLocalDayNamesOfTheWeek(this.locale(), 'long');
|
|
382
|
+
return [/*#__PURE__*/_react.default.createElement(_uiA11yContent.AccessibleContent, {
|
|
386
383
|
key: 1,
|
|
387
384
|
alt: longDayNames[0]
|
|
388
|
-
}, shortDayNames[0]), /*#__PURE__*/_react.default.createElement(
|
|
385
|
+
}, shortDayNames[0]), /*#__PURE__*/_react.default.createElement(_uiA11yContent.AccessibleContent, {
|
|
389
386
|
key: 2,
|
|
390
387
|
alt: longDayNames[1]
|
|
391
|
-
}, shortDayNames[1]), /*#__PURE__*/_react.default.createElement(
|
|
388
|
+
}, shortDayNames[1]), /*#__PURE__*/_react.default.createElement(_uiA11yContent.AccessibleContent, {
|
|
392
389
|
key: 3,
|
|
393
390
|
alt: longDayNames[2]
|
|
394
|
-
}, shortDayNames[2]), /*#__PURE__*/_react.default.createElement(
|
|
391
|
+
}, shortDayNames[2]), /*#__PURE__*/_react.default.createElement(_uiA11yContent.AccessibleContent, {
|
|
395
392
|
key: 4,
|
|
396
393
|
alt: longDayNames[3]
|
|
397
|
-
}, shortDayNames[3]), /*#__PURE__*/_react.default.createElement(
|
|
394
|
+
}, shortDayNames[3]), /*#__PURE__*/_react.default.createElement(_uiA11yContent.AccessibleContent, {
|
|
398
395
|
key: 5,
|
|
399
396
|
alt: longDayNames[4]
|
|
400
|
-
}, shortDayNames[4]), /*#__PURE__*/_react.default.createElement(
|
|
397
|
+
}, shortDayNames[4]), /*#__PURE__*/_react.default.createElement(_uiA11yContent.AccessibleContent, {
|
|
401
398
|
key: 6,
|
|
402
399
|
alt: longDayNames[5]
|
|
403
|
-
}, shortDayNames[5]), /*#__PURE__*/_react.default.createElement(
|
|
400
|
+
}, shortDayNames[5]), /*#__PURE__*/_react.default.createElement(_uiA11yContent.AccessibleContent, {
|
|
404
401
|
key: 7,
|
|
405
402
|
alt: longDayNames[6]
|
|
406
403
|
}, shortDayNames[6])];
|
|
@@ -409,13 +406,13 @@ let DateTimeInput = exports.DateTimeInput = (_dec = (0, _testable.testable)(), _
|
|
|
409
406
|
if (!this.state.isShowingCalendar) {
|
|
410
407
|
return;
|
|
411
408
|
}
|
|
412
|
-
return /*#__PURE__*/_react.default.createElement(
|
|
409
|
+
return /*#__PURE__*/_react.default.createElement(_uiButtons.IconButton, {
|
|
413
410
|
size: "small",
|
|
414
411
|
withBackground: false,
|
|
415
412
|
withBorder: false,
|
|
416
|
-
renderIcon: type === 'prev' ? _IconArrowOpenStartSo || (_IconArrowOpenStartSo = /*#__PURE__*/_react.default.createElement(
|
|
413
|
+
renderIcon: type === 'prev' ? _IconArrowOpenStartSo || (_IconArrowOpenStartSo = /*#__PURE__*/_react.default.createElement(_uiIcons.IconArrowOpenStartSolid, {
|
|
417
414
|
color: "primary"
|
|
418
|
-
})) : _IconArrowOpenEndSoli || (_IconArrowOpenEndSoli = /*#__PURE__*/_react.default.createElement(
|
|
415
|
+
})) : _IconArrowOpenEndSoli || (_IconArrowOpenEndSoli = /*#__PURE__*/_react.default.createElement(_uiIcons.IconArrowOpenEndSolid, {
|
|
419
416
|
color: "primary"
|
|
420
417
|
})),
|
|
421
418
|
screenReaderLabel: type === 'prev' ? this.props.prevMonthLabel : this.props.nextMonthLabel
|
|
@@ -443,7 +440,7 @@ let DateTimeInput = exports.DateTimeInput = (_dec = (0, _testable.testable)(), _
|
|
|
443
440
|
interaction = _this$props4.interaction,
|
|
444
441
|
renderWeekdayLabels = _this$props4.renderWeekdayLabels,
|
|
445
442
|
allowNonStepInput = _this$props4.allowNonStepInput;
|
|
446
|
-
return /*#__PURE__*/_react.default.createElement(
|
|
443
|
+
return /*#__PURE__*/_react.default.createElement(_uiFormField.FormFieldGroup, {
|
|
447
444
|
description: description,
|
|
448
445
|
layout: layout,
|
|
449
446
|
rowSpacing: rowSpacing,
|
|
@@ -451,7 +448,7 @@ let DateTimeInput = exports.DateTimeInput = (_dec = (0, _testable.testable)(), _
|
|
|
451
448
|
vAlign: "top",
|
|
452
449
|
elementRef: this.handleRef,
|
|
453
450
|
messages: [...(showMessages && this.state.message ? [this.state.message] : []), ...(messages || [])]
|
|
454
|
-
}, /*#__PURE__*/_react.default.createElement(
|
|
451
|
+
}, /*#__PURE__*/_react.default.createElement(_uiDateInput.DateInput, {
|
|
455
452
|
display: "block",
|
|
456
453
|
value: this.state.dateInputText,
|
|
457
454
|
onChange: this.handleDateTextChange,
|
|
@@ -472,7 +469,7 @@ let DateTimeInput = exports.DateTimeInput = (_dec = (0, _testable.testable)(), _
|
|
|
472
469
|
isRequired: isRequired,
|
|
473
470
|
interaction: interaction,
|
|
474
471
|
renderNavigationLabel: /*#__PURE__*/_react.default.createElement("span", null, /*#__PURE__*/_react.default.createElement("div", null, this.state.renderedDate.format('MMMM')), /*#__PURE__*/_react.default.createElement("div", null, this.state.renderedDate.format('y')))
|
|
475
|
-
}, this.renderDays()), /*#__PURE__*/_react.default.createElement(
|
|
472
|
+
}, this.renderDays()), /*#__PURE__*/_react.default.createElement(_uiTimeSelect.TimeSelect, {
|
|
476
473
|
value: this.state.timeSelectValue,
|
|
477
474
|
onChange: this.updateStateBasedOnTimeSelect,
|
|
478
475
|
placeholder: timePlaceholder,
|
|
@@ -498,5 +495,5 @@ let DateTimeInput = exports.DateTimeInput = (_dec = (0, _testable.testable)(), _
|
|
|
498
495
|
dateFormat: 'LL',
|
|
499
496
|
// Localized date with full month, e.g. "August 6, 2014"
|
|
500
497
|
allowNonStepInput: false
|
|
501
|
-
}, _class2.contextType =
|
|
498
|
+
}, _class2.contextType = _uiI18n.ApplyLocaleContext, _class2)) || _class);
|
|
502
499
|
var _default = exports.default = DateTimeInput;
|
|
@@ -5,10 +5,10 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports.propTypes = exports.allowedProps = void 0;
|
|
8
|
-
var
|
|
9
|
-
var
|
|
8
|
+
var _uiFormField = require("@instructure/ui-form-field");
|
|
9
|
+
var _uiI18n = require("@instructure/ui-i18n");
|
|
10
10
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
11
|
-
var
|
|
11
|
+
var _uiPropTypes = require("@instructure/ui-prop-types");
|
|
12
12
|
/*
|
|
13
13
|
* The MIT License (MIT)
|
|
14
14
|
*
|
|
@@ -58,13 +58,13 @@ const propTypes = exports.propTypes = {
|
|
|
58
58
|
timezone: _propTypes.default.string,
|
|
59
59
|
invalidDateTimeMessage: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.func]).isRequired,
|
|
60
60
|
showMessages: _propTypes.default.bool,
|
|
61
|
-
messages: _propTypes.default.arrayOf(
|
|
61
|
+
messages: _propTypes.default.arrayOf(_uiFormField.FormPropTypes.message),
|
|
62
62
|
messageFormat: _propTypes.default.string,
|
|
63
63
|
layout: _propTypes.default.oneOf(['stacked', 'columns', 'inline']),
|
|
64
64
|
rowSpacing: _propTypes.default.oneOf(['none', 'small', 'medium', 'large']),
|
|
65
65
|
colSpacing: _propTypes.default.oneOf(['none', 'small', 'medium', 'large']),
|
|
66
|
-
value: (0,
|
|
67
|
-
defaultValue:
|
|
66
|
+
value: (0, _uiPropTypes.controllable)(_uiI18n.I18nPropTypes.iso8601, 'onChange'),
|
|
67
|
+
defaultValue: _uiI18n.I18nPropTypes.iso8601,
|
|
68
68
|
renderWeekdayLabels: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.node])),
|
|
69
69
|
isRequired: _propTypes.default.bool,
|
|
70
70
|
onChange: _propTypes.default.func,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@instructure/ui-date-time-input",
|
|
3
|
-
"version": "8.56.
|
|
3
|
+
"version": "8.56.2-pr-snapshot-1721749364069",
|
|
4
4
|
"description": "A UI component that allows to select date and time.",
|
|
5
5
|
"author": "Instructure, Inc. Engineering and Product Design",
|
|
6
6
|
"module": "./es/index.js",
|
|
@@ -23,29 +23,29 @@
|
|
|
23
23
|
},
|
|
24
24
|
"license": "MIT",
|
|
25
25
|
"devDependencies": {
|
|
26
|
-
"@instructure/ui-babel-preset": "8.56.
|
|
27
|
-
"@instructure/ui-test-utils": "8.56.
|
|
26
|
+
"@instructure/ui-babel-preset": "8.56.2-pr-snapshot-1721749364069",
|
|
27
|
+
"@instructure/ui-test-utils": "8.56.2-pr-snapshot-1721749364069",
|
|
28
28
|
"@testing-library/jest-dom": "^6.1.4",
|
|
29
29
|
"@testing-library/react": "^14.1.2",
|
|
30
30
|
"@testing-library/user-event": "^14.5.1"
|
|
31
31
|
},
|
|
32
32
|
"dependencies": {
|
|
33
33
|
"@babel/runtime": "^7.23.2",
|
|
34
|
-
"@instructure/console": "8.56.
|
|
35
|
-
"@instructure/debounce": "8.56.
|
|
36
|
-
"@instructure/emotion": "8.56.
|
|
37
|
-
"@instructure/ui-a11y-content": "8.56.
|
|
38
|
-
"@instructure/ui-buttons": "8.56.
|
|
39
|
-
"@instructure/ui-calendar": "8.56.
|
|
40
|
-
"@instructure/ui-date-input": "8.56.
|
|
41
|
-
"@instructure/ui-form-field": "8.56.
|
|
42
|
-
"@instructure/ui-i18n": "8.56.
|
|
43
|
-
"@instructure/ui-icons": "8.56.
|
|
44
|
-
"@instructure/ui-prop-types": "8.56.
|
|
45
|
-
"@instructure/ui-react-utils": "8.56.
|
|
46
|
-
"@instructure/ui-testable": "8.56.
|
|
47
|
-
"@instructure/ui-time-select": "8.56.
|
|
48
|
-
"@instructure/ui-utils": "8.56.
|
|
34
|
+
"@instructure/console": "8.56.2-pr-snapshot-1721749364069",
|
|
35
|
+
"@instructure/debounce": "8.56.2-pr-snapshot-1721749364069",
|
|
36
|
+
"@instructure/emotion": "8.56.2-pr-snapshot-1721749364069",
|
|
37
|
+
"@instructure/ui-a11y-content": "8.56.2-pr-snapshot-1721749364069",
|
|
38
|
+
"@instructure/ui-buttons": "8.56.2-pr-snapshot-1721749364069",
|
|
39
|
+
"@instructure/ui-calendar": "8.56.2-pr-snapshot-1721749364069",
|
|
40
|
+
"@instructure/ui-date-input": "8.56.2-pr-snapshot-1721749364069",
|
|
41
|
+
"@instructure/ui-form-field": "8.56.2-pr-snapshot-1721749364069",
|
|
42
|
+
"@instructure/ui-i18n": "8.56.2-pr-snapshot-1721749364069",
|
|
43
|
+
"@instructure/ui-icons": "8.56.2-pr-snapshot-1721749364069",
|
|
44
|
+
"@instructure/ui-prop-types": "8.56.2-pr-snapshot-1721749364069",
|
|
45
|
+
"@instructure/ui-react-utils": "8.56.2-pr-snapshot-1721749364069",
|
|
46
|
+
"@instructure/ui-testable": "8.56.2-pr-snapshot-1721749364069",
|
|
47
|
+
"@instructure/ui-time-select": "8.56.2-pr-snapshot-1721749364069",
|
|
48
|
+
"@instructure/ui-utils": "8.56.2-pr-snapshot-1721749364069",
|
|
49
49
|
"prop-types": "^15.8.1"
|
|
50
50
|
},
|
|
51
51
|
"peerDependencies": {
|