box-ui-elements 15.0.0-beta.21 → 15.0.0-beta.25
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/dist/explorer.css +1 -1
- package/dist/explorer.js +12 -12
- package/dist/openwith.js +7 -7
- package/dist/picker.js +7 -7
- package/dist/preview.css +1 -1
- package/dist/preview.js +11 -11
- package/dist/sharing.css +1 -1
- package/dist/sharing.js +15 -15
- package/dist/sidebar.css +1 -1
- package/dist/sidebar.js +11 -11
- package/dist/uploader.js +6 -6
- package/es/components/date-picker/AccessiblePikaday.js +8 -0
- package/es/components/date-picker/AccessiblePikaday.js.map +1 -1
- package/es/components/date-picker/DatePicker.js +54 -26
- package/es/components/date-picker/DatePicker.js.map +1 -1
- package/es/components/date-picker/DatePicker.scss +12 -16
- package/es/components/date-picker/_pikaday.scss +8 -1
- package/es/components/flyout/Flyout.js +1 -1
- package/es/components/flyout/Flyout.js.flow +1 -1
- package/es/components/flyout/Flyout.js.map +1 -1
- package/es/components/media-query/constants.js +26 -0
- package/es/components/media-query/constants.js.flow +31 -0
- package/es/components/media-query/constants.js.map +1 -0
- package/es/components/media-query/index.js +3 -0
- package/es/components/media-query/index.js.flow +4 -0
- package/es/components/media-query/index.js.map +1 -0
- package/es/components/media-query/stories/MediaQuery.stories.js +37 -0
- package/es/components/media-query/stories/MediaQuery.stories.js.flow +80 -0
- package/es/components/media-query/stories/MediaQuery.stories.js.map +1 -0
- package/es/components/media-query/types.js +2 -0
- package/es/components/media-query/types.js.flow +29 -0
- package/es/components/media-query/types.js.map +1 -0
- package/es/components/media-query/useMediaQuery.js +91 -0
- package/es/components/media-query/useMediaQuery.js.flow +97 -0
- package/es/components/media-query/useMediaQuery.js.map +1 -0
- package/es/components/media-query/withMediaQuery.js +21 -0
- package/es/components/media-query/withMediaQuery.js.flow +23 -0
- package/es/components/media-query/withMediaQuery.js.map +1 -0
- package/es/features/classification/constants.js +2 -1
- package/es/features/classification/constants.js.flow +2 -0
- package/es/features/classification/constants.js.map +1 -1
- package/es/features/classification/flowTypes.js.flow +5 -0
- package/es/features/classification/flowTypes.js.map +1 -1
- package/es/features/classification/security-controls/SecurityControls.js +1 -2
- package/es/features/classification/security-controls/SecurityControls.js.flow +1 -2
- package/es/features/classification/security-controls/SecurityControls.js.map +1 -1
- package/es/features/classification/security-controls/messages.js +8 -0
- package/es/features/classification/security-controls/messages.js.flow +10 -0
- package/es/features/classification/security-controls/messages.js.map +1 -1
- package/es/features/classification/security-controls/utils.js +45 -35
- package/es/features/classification/security-controls/utils.js.flow +32 -27
- package/es/features/classification/security-controls/utils.js.map +1 -1
- package/i18n/bn-IN.js +2 -0
- package/i18n/da-DK.js +2 -0
- package/i18n/de-DE.js +2 -0
- package/i18n/en-AU.js +2 -0
- package/i18n/en-CA.js +2 -0
- package/i18n/en-GB.js +2 -0
- package/i18n/en-US.js +2 -0
- package/i18n/en-US.properties +4 -0
- package/i18n/en-x-pseudo.js +2 -0
- package/i18n/es-419.js +2 -0
- package/i18n/es-ES.js +2 -0
- package/i18n/fi-FI.js +2 -0
- package/i18n/fr-CA.js +2 -0
- package/i18n/fr-FR.js +2 -0
- package/i18n/hi-IN.js +2 -0
- package/i18n/it-IT.js +2 -0
- package/i18n/ja-JP.js +2 -0
- package/i18n/ko-KR.js +2 -0
- package/i18n/nb-NO.js +2 -0
- package/i18n/nl-NL.js +2 -0
- package/i18n/pl-PL.js +2 -0
- package/i18n/pt-BR.js +2 -0
- package/i18n/ru-RU.js +2 -0
- package/i18n/sv-SE.js +2 -0
- package/i18n/tr-TR.js +2 -0
- package/i18n/zh-CN.js +2 -0
- package/i18n/zh-TW.js +2 -0
- package/package.json +3 -1
- package/src/__mocks__/pikaday.js +1 -0
- package/src/components/date-picker/AccessiblePikaday.ts +6 -0
- package/src/components/date-picker/DatePicker.scss +12 -16
- package/src/components/date-picker/DatePicker.tsx +46 -24
- package/src/components/date-picker/__tests__/DatePicker.test.tsx +41 -0
- package/src/components/date-picker/_pikaday.scss +8 -1
- package/src/components/flyout/Flyout.js +1 -1
- package/src/components/media-query/__tests__/useMediaQuery.test.js +48 -0
- package/src/components/media-query/__tests__/withMediaQuery.test.js +29 -0
- package/src/components/media-query/constants.js +31 -0
- package/src/components/media-query/index.js +4 -0
- package/src/components/media-query/stories/MediaQuery.stories.js +80 -0
- package/src/components/media-query/stories/MediaQuery.stories.md +29 -0
- package/src/components/media-query/types.js +29 -0
- package/src/components/media-query/useMediaQuery.js +97 -0
- package/src/components/media-query/withMediaQuery.js +23 -0
- package/src/features/classification/constants.js +2 -0
- package/src/features/classification/flowTypes.js +5 -0
- package/src/features/classification/security-controls/SecurityControls.js +1 -2
- package/src/features/classification/security-controls/__tests__/utils.test.js +33 -18
- package/src/features/classification/security-controls/messages.js +10 -0
- package/src/features/classification/security-controls/utils.js +32 -27
|
@@ -48,6 +48,12 @@ function (_Pikaday) {
|
|
|
48
48
|
|
|
49
49
|
if (_this.isVisible() && !_this.el.contains(event.target)) {
|
|
50
50
|
_this.hide();
|
|
51
|
+
|
|
52
|
+
var currentFocusEl = document.activeElement;
|
|
53
|
+
|
|
54
|
+
if (_this.accessibleFieldEl && currentFocusEl && currentFocusEl.tabIndex < 0) {
|
|
55
|
+
_this.accessibleFieldEl.focus();
|
|
56
|
+
}
|
|
51
57
|
}
|
|
52
58
|
});
|
|
53
59
|
|
|
@@ -57,6 +63,8 @@ function (_Pikaday) {
|
|
|
57
63
|
// https://github.com/Pikaday/Pikaday/blob/master/pikaday.js#L695-L703
|
|
58
64
|
|
|
59
65
|
if (_this.accessibleFieldEl) {
|
|
66
|
+
_this.el.classList.add('is-bound');
|
|
67
|
+
|
|
60
68
|
document.body.appendChild(_this.el);
|
|
61
69
|
|
|
62
70
|
_this.accessibleFieldEl.addEventListener('blur', _this.handleBlur);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/date-picker/AccessiblePikaday.ts"],"names":["Pikaday","AccessiblePikaday","options","hide","event","isVisible","datePickerButtonEl","contains","target","el","
|
|
1
|
+
{"version":3,"sources":["../../../src/components/date-picker/AccessiblePikaday.ts"],"names":["Pikaday","AccessiblePikaday","options","hide","event","isVisible","datePickerButtonEl","contains","target","el","currentFocusEl","document","activeElement","accessibleFieldEl","tabIndex","focus","classList","add","body","appendChild","addEventListener","handleBlur","handleClickOutside","adjustPosition","removeEventListener"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAOA,OAAP,MAAwC,SAAxC;;AAOA;IACMC,iB;;;;;AAKF,6BAAYC,OAAZ,EAA+C;AAAA;;AAAA;;AAC3C,2FAAMA,OAAN;;AAD2C,iEAkBlC,YAAM;AACf,YAAKC,IAAL;AACH,KApB8C;;AAAA,yEAsB1B,UAACC,KAAD,EAAuB;AACxC,UACI,MAAKC,SAAL,MACA,MAAKC,kBADL,IAEA,MAAKA,kBAAL,CAAwBC,QAAxB,CAAiCH,KAAK,CAACI,MAAvC,CAHJ,EAIE;AACE;AACH;;AAED,UAAI,MAAKH,SAAL,MAAoB,CAAC,MAAKI,EAAL,CAAQF,QAAR,CAAiBH,KAAK,CAACI,MAAvB,CAAzB,EAAwE;AACpE,cAAKL,IAAL;;AAEA,YAAMO,cAAc,GAAGC,QAAQ,CAACC,aAAhC;;AACA,YAAI,MAAKC,iBAAL,IAA0BH,cAA1B,IAA4CA,cAAc,CAACI,QAAf,GAA0B,CAA1E,EAA6E;AACzE,gBAAKD,iBAAL,CAAuBE,KAAvB;AACH;AACJ;AACJ,KAvC8C;;AAE3C,UAAKF,iBAAL,GAAyBX,OAAO,CAACW,iBAAjC;AACA,UAAKP,kBAAL,GAA0BJ,OAAO,CAACI,kBAAlC,CAH2C,CAK3C;AACA;AACA;;AACA,QAAI,MAAKO,iBAAT,EAA4B;AACxB,YAAKJ,EAAL,CAAQO,SAAR,CAAkBC,GAAlB,CAAsB,UAAtB;;AACAN,MAAAA,QAAQ,CAACO,IAAT,CAAcC,WAAd,CAA0B,MAAKV,EAA/B;;AAEA,YAAKI,iBAAL,CAAuBO,gBAAvB,CAAwC,MAAxC,EAAgD,MAAKC,UAArD;;AAEA,YAAKlB,IAAL;AACH;;AAf0C;AAgB9C;;;;2BAyBM;AACH;;AACA,UAAI,KAAKU,iBAAT,EAA4B;AACxBF,QAAAA,QAAQ,CAACS,gBAAT,CAA0B,OAA1B,EAAmC,KAAKE,kBAAxC,EAA4D,IAA5D;AACA,aAAKC,cAAL;AACH;AACJ;;;2BAEM;AACH;;AACA,UAAI,KAAKV,iBAAT,EAA4B;AACxBF,QAAAA,QAAQ,CAACa,mBAAT,CAA6B,OAA7B,EAAsC,KAAKF,kBAA3C;AACH;AACJ;;;8BAES;AACN;;AACA,UAAI,KAAKT,iBAAT,EAA4B;AACxB,aAAKA,iBAAL,CAAuBW,mBAAvB,CAA2C,MAA3C,EAAmD,KAAKH,UAAxD;AACAV,QAAAA,QAAQ,CAACa,mBAAT,CAA6B,OAA7B,EAAsC,KAAKF,kBAA3C;AACH;AACJ;;;;EAnE2BtB,O;;AAsEhC,eAAeC,iBAAf","sourcesContent":["import Pikaday, { PikadayOptions } from 'pikaday';\n\nexport interface AccessiblePikadayOptions extends PikadayOptions {\n accessibleFieldEl?: HTMLElement | null | undefined;\n datePickerButtonEl?: HTMLElement | null | undefined;\n}\n\n// An extended version of Pikaday to work when `isAccessible` prop is `true`\nclass AccessiblePikaday extends Pikaday {\n accessibleFieldEl: HTMLElement | null | undefined;\n\n datePickerButtonEl: HTMLElement | null | undefined;\n\n constructor(options: AccessiblePikadayOptions) {\n super(options);\n this.accessibleFieldEl = options.accessibleFieldEl;\n this.datePickerButtonEl = options.datePickerButtonEl;\n\n // Override behavior as if `options.field` and `options.bound` were set.\n // See https://github.com/Pikaday/Pikaday/blob/master/pikaday.js#L671\n // https://github.com/Pikaday/Pikaday/blob/master/pikaday.js#L695-L703\n if (this.accessibleFieldEl) {\n this.el.classList.add('is-bound');\n document.body.appendChild(this.el);\n\n this.accessibleFieldEl.addEventListener('blur', this.handleBlur);\n\n this.hide();\n }\n }\n\n handleBlur = () => {\n this.hide();\n };\n\n handleClickOutside = (event: MouseEvent) => {\n if (\n this.isVisible() &&\n this.datePickerButtonEl &&\n this.datePickerButtonEl.contains(event.target as HTMLElement)\n ) {\n return;\n }\n\n if (this.isVisible() && !this.el.contains(event.target as HTMLElement)) {\n this.hide();\n\n const currentFocusEl = document.activeElement as HTMLElement;\n if (this.accessibleFieldEl && currentFocusEl && currentFocusEl.tabIndex < 0) {\n this.accessibleFieldEl.focus();\n }\n }\n };\n\n show() {\n super.show();\n if (this.accessibleFieldEl) {\n document.addEventListener('click', this.handleClickOutside, true);\n this.adjustPosition();\n }\n }\n\n hide() {\n super.hide();\n if (this.accessibleFieldEl) {\n document.removeEventListener('click', this.handleClickOutside);\n }\n }\n\n destroy() {\n super.destroy();\n if (this.accessibleFieldEl) {\n this.accessibleFieldEl.removeEventListener('blur', this.handleBlur);\n document.removeEventListener('click', this.handleClickOutside);\n }\n }\n}\n\nexport default AccessiblePikaday;\n"],"file":"AccessiblePikaday.js"}
|
|
@@ -34,9 +34,7 @@ import uniqueId from 'lodash/uniqueId'; // @ts-ignore flow import
|
|
|
34
34
|
import { RESIN_TAG_TARGET } from '../../common/variables';
|
|
35
35
|
import Alert16 from '../../icon/fill/Alert16';
|
|
36
36
|
import Calendar16 from '../../icon/fill/Calendar16';
|
|
37
|
-
import ClearBadge16 from '../../icon/fill/ClearBadge16';
|
|
38
|
-
|
|
39
|
-
import Browser from '../../utils/Browser';
|
|
37
|
+
import ClearBadge16 from '../../icon/fill/ClearBadge16';
|
|
40
38
|
import AccessiblePikaday from './AccessiblePikaday';
|
|
41
39
|
import { ButtonType } from '../button';
|
|
42
40
|
import Label from '../label';
|
|
@@ -168,6 +166,7 @@ function (_React$Component) {
|
|
|
168
166
|
var _this$props = _this.props,
|
|
169
167
|
onChange = _this$props.onChange,
|
|
170
168
|
isAccessible = _this$props.isAccessible;
|
|
169
|
+
var isDateInputInvalid = _this.state.isDateInputInvalid;
|
|
171
170
|
|
|
172
171
|
if (onChange) {
|
|
173
172
|
var formattedDate = _this.formatValue(date);
|
|
@@ -184,8 +183,17 @@ function (_React$Component) {
|
|
|
184
183
|
|
|
185
184
|
if (_this.datePicker && _this.datePicker.isVisible()) {
|
|
186
185
|
_this.datePicker.hide();
|
|
186
|
+
|
|
187
|
+
_this.focusDatePicker();
|
|
187
188
|
}
|
|
188
189
|
}
|
|
190
|
+
|
|
191
|
+
if (isDateInputInvalid) {
|
|
192
|
+
_this.setState({
|
|
193
|
+
isDateInputInvalid: false,
|
|
194
|
+
showDateInputError: false
|
|
195
|
+
});
|
|
196
|
+
}
|
|
189
197
|
});
|
|
190
198
|
|
|
191
199
|
_defineProperty(_assertThisInitialized(_this), "datePicker", null);
|
|
@@ -195,7 +203,7 @@ function (_React$Component) {
|
|
|
195
203
|
_defineProperty(_assertThisInitialized(_this), "shouldStayClosed", false);
|
|
196
204
|
|
|
197
205
|
_defineProperty(_assertThisInitialized(_this), "focusDatePicker", function () {
|
|
198
|
-
//
|
|
206
|
+
// This also opens the date picker when isAccessible is disabled
|
|
199
207
|
if (_this.dateInputEl) {
|
|
200
208
|
_this.dateInputEl.focus();
|
|
201
209
|
}
|
|
@@ -288,7 +296,7 @@ function (_React$Component) {
|
|
|
288
296
|
|
|
289
297
|
if (parsedDate) {
|
|
290
298
|
if (minDate && parsedDate < minDate || maxDate && parsedDate > maxDate) {
|
|
291
|
-
_this.datePicker.setDate(null
|
|
299
|
+
_this.datePicker.setDate(null);
|
|
292
300
|
|
|
293
301
|
_this.setState({
|
|
294
302
|
isDateInputInvalid: true
|
|
@@ -343,7 +351,7 @@ function (_React$Component) {
|
|
|
343
351
|
|
|
344
352
|
if (onBlur) {
|
|
345
353
|
onBlur(event);
|
|
346
|
-
} // Since we
|
|
354
|
+
} // Since we fire parent onChange event if isTextInputAllowed,
|
|
347
355
|
// fire it on blur if the user typed a correct date format
|
|
348
356
|
|
|
349
357
|
|
|
@@ -382,6 +390,8 @@ function (_React$Component) {
|
|
|
382
390
|
|
|
383
391
|
if (_this.datePicker.isVisible()) {
|
|
384
392
|
_this.datePicker.hide();
|
|
393
|
+
|
|
394
|
+
_this.focusDatePicker();
|
|
385
395
|
} else {
|
|
386
396
|
_this.datePicker.show();
|
|
387
397
|
}
|
|
@@ -435,13 +445,19 @@ function (_React$Component) {
|
|
|
435
445
|
});
|
|
436
446
|
|
|
437
447
|
_defineProperty(_assertThisInitialized(_this), "clearDate", function (event) {
|
|
438
|
-
|
|
448
|
+
// Prevents the date picker from opening after clearing
|
|
449
|
+
event.preventDefault();
|
|
450
|
+
var isAccessible = _this.props.isAccessible;
|
|
439
451
|
|
|
440
452
|
if (_this.datePicker) {
|
|
441
453
|
_this.datePicker.setDate(null);
|
|
442
454
|
}
|
|
443
455
|
|
|
444
456
|
_this.onSelectHandler(null);
|
|
457
|
+
|
|
458
|
+
if (isAccessible) {
|
|
459
|
+
_this.focusDatePicker();
|
|
460
|
+
}
|
|
445
461
|
});
|
|
446
462
|
|
|
447
463
|
_defineProperty(_assertThisInitialized(_this), "shouldUseAccessibleFallback", function () {
|
|
@@ -472,7 +488,7 @@ function (_React$Component) {
|
|
|
472
488
|
|
|
473
489
|
var accessibleAttrs = isAccessible ? {
|
|
474
490
|
'aria-hidden': true,
|
|
475
|
-
|
|
491
|
+
tabIndex: -1
|
|
476
492
|
} : {};
|
|
477
493
|
return React.createElement(PlainButton, _extends({
|
|
478
494
|
"aria-label": formatMessage(messages.chooseDate),
|
|
@@ -670,6 +686,8 @@ function (_React$Component) {
|
|
|
670
686
|
isRequired = _this$props11.isRequired,
|
|
671
687
|
isTextInputAllowed = _this$props11.isTextInputAllowed,
|
|
672
688
|
label = _this$props11.label,
|
|
689
|
+
maxDate = _this$props11.maxDate,
|
|
690
|
+
minDate = _this$props11.minDate,
|
|
673
691
|
name = _this$props11.name,
|
|
674
692
|
onFocus = _this$props11.onFocus,
|
|
675
693
|
placeholder = _this$props11.placeholder,
|
|
@@ -678,10 +696,10 @@ function (_React$Component) {
|
|
|
678
696
|
var isDateInputInvalid = this.state.isDateInputInvalid;
|
|
679
697
|
var formatMessage = intl.formatMessage;
|
|
680
698
|
var errorMessage = error || this.getDateInputError();
|
|
681
|
-
var hasError = !!errorMessage;
|
|
699
|
+
var hasError = !!errorMessage || isDateInputInvalid;
|
|
700
|
+
var hasValue = !!value || isDateInputInvalid;
|
|
682
701
|
var classes = classNames(className, 'date-picker-wrapper', {
|
|
683
|
-
'
|
|
684
|
-
'show-clear-btn': !!value,
|
|
702
|
+
'show-clear-btn': isClearable && hasValue && !isDisabled,
|
|
685
703
|
'show-error': hasError
|
|
686
704
|
});
|
|
687
705
|
var ariaAttrs = {
|
|
@@ -716,20 +734,32 @@ function (_React$Component) {
|
|
|
716
734
|
} else if (isTextInputAllowed || isAccessible && !this.canUseDateInputType) {
|
|
717
735
|
onChangeAttr = {};
|
|
718
736
|
} else {
|
|
737
|
+
// Fixes prop type error about read-only field
|
|
738
|
+
// Not adding readOnly so constraint validation works
|
|
719
739
|
onChangeAttr = {
|
|
720
740
|
onChange: noop
|
|
721
741
|
};
|
|
722
|
-
}
|
|
723
|
-
// "title" prop is shown during constraint validation as a description of the pattern
|
|
724
|
-
// See https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/pattern#usability
|
|
742
|
+
}
|
|
725
743
|
|
|
744
|
+
var additionalAttrs;
|
|
726
745
|
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
746
|
+
if (isAccessible && this.canUseDateInputType) {
|
|
747
|
+
additionalAttrs = {
|
|
748
|
+
max: this.formatDisplayDateType(maxDate) || '9999-12-31',
|
|
749
|
+
min: this.formatDisplayDateType(minDate) || '0001-01-01'
|
|
750
|
+
};
|
|
751
|
+
} else if (isAccessible && !this.canUseDateInputType) {
|
|
752
|
+
// "name" prop is required for pattern validation to be surfaced on form submit. See components/form-elements/form/Form.js
|
|
753
|
+
// "title" prop is shown during constraint validation as a description of the pattern
|
|
754
|
+
// See https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/pattern#usability
|
|
755
|
+
additionalAttrs = {
|
|
756
|
+
name: name,
|
|
757
|
+
pattern: ISO_DATE_FORMAT_PATTERN.source,
|
|
758
|
+
title: 'YYYY-MM-DD'
|
|
759
|
+
};
|
|
760
|
+
} else {
|
|
761
|
+
additionalAttrs = {};
|
|
762
|
+
}
|
|
733
763
|
|
|
734
764
|
return React.createElement("div", {
|
|
735
765
|
className: classes
|
|
@@ -744,7 +774,7 @@ function (_React$Component) {
|
|
|
744
774
|
className: "date-picker-description"
|
|
745
775
|
}, description), React.createElement(Tooltip, {
|
|
746
776
|
className: "date-picker-error-tooltip",
|
|
747
|
-
isShown:
|
|
777
|
+
isShown: !!errorMessage,
|
|
748
778
|
position: errorTooltipPosition,
|
|
749
779
|
text: errorMessage || '',
|
|
750
780
|
theme: TooltipTheme.ERROR
|
|
@@ -772,14 +802,12 @@ function (_React$Component) {
|
|
|
772
802
|
id: this.errorMessageID,
|
|
773
803
|
className: "accessibility-hidden",
|
|
774
804
|
role: "alert"
|
|
775
|
-
}, errorMessage))), isClearable &&
|
|
805
|
+
}, errorMessage))), isClearable && hasValue && !isDisabled ? React.createElement(PlainButton, {
|
|
776
806
|
"aria-label": formatMessage(messages.dateClearButton),
|
|
777
|
-
className:
|
|
778
|
-
'is-hidden': isAccessible && Browser.isFirefox()
|
|
779
|
-
}),
|
|
807
|
+
className: "date-picker-clear-btn",
|
|
780
808
|
onClick: this.clearDate,
|
|
781
809
|
type: ButtonType.BUTTON
|
|
782
|
-
}, React.createElement(ClearBadge16, null)) : null,
|
|
810
|
+
}, React.createElement(ClearBadge16, null)) : null, hasError ? React.createElement(Alert16, {
|
|
783
811
|
className: "date-picker-icon-alert",
|
|
784
812
|
title: React.createElement(FormattedMessage, messages.iconAlertText)
|
|
785
813
|
}) : null, this.renderCalendarButton(), React.createElement("input", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/date-picker/DatePicker.tsx"],"names":["React","defineMessages","injectIntl","FormattedMessage","classNames","noop","range","uniqueId","RESIN_TAG_TARGET","Alert16","Calendar16","ClearBadge16","Browser","AccessiblePikaday","ButtonType","Label","PlainButton","Tooltip","TooltipPosition","TooltipTheme","convertDateToUnixMidnightTime","messages","previousMonth","nextMonth","iconAlertText","dateClearButton","chooseDate","dateInputRangeError","dateInputMaxError","dateInputMinError","TOGGLE_DELAY_MS","ENTER_KEY","ESCAPE_KEY","TAB_KEY","ISO_DATE_FORMAT_PATTERN","DateFormat","convertUTCToLocal","date","dateString","toUTCString","dateStringWithoutTimeZone","slice","Date","getFormattedDate","format","utcDate","ISO_STRING_DATE_FORMAT","toISOString","LOCALE_DATE_STRING_DATE_FORMAT","toLocaleDateString","UTC_TIME_DATE_FORMAT","UTC_ISO_STRING_DATE_FORMAT","getTime","localesWhereWeekStartsOnSunday","DatePicker","isDateInputInvalid","showDateInputError","props","onChange","isAccessible","formattedDate","formatValue","dateInputEl","datePicker","value","toString","isVisible","hide","focus","intl","maxDate","minDate","state","formatMessage","dateInputError","maxLocaleDate","minLocaleDate","event","isKeyboardInputAllowed","isTextInputAllowed","stopPropagation","key","preventDefault","canUseDateInputType","target","parsedDate","parseDisplayDateType","setDate","setState","onBlur","nextActiveElement","relatedTarget","document","activeElement","datePickerButtonEl","shouldStayClosed","setTimeout","inputDate","dateInputElVal","getDate","onSelectHandler","isDisabled","show","focusDatePicker","displayFormat","formatDate","test","dateFormat","createElement","type","e","isAlwaysVisible","accessibleAttrs","tabindex","ref","handleButtonClick","BUTTON","customInput","yearRange","defaultValue","shouldUseAccessibleFallback","year","getFullYear","i18n","months","map","month","weekdays","weekday","weekdaysShort","datePickerConfig","bound","blurFieldOnSelect","setDefaultDate","defaultDate","undefined","field","firstDay","includes","locale","position","showDaysInNextAndPreviousMonths","onSelect","formatDisplay","trigger","accessibleFieldEl","parse","formatDisplayDateType","keyboardInput","updateDateInputValue","nextProps","nextValue","nextMinDate","nextMaxDate","selectedDate","setMinDate","gotoDate","setMaxDate","destroy","className","description","error","errorTooltipPosition","hideLabel","hideOptionalLabel","inputProps","isClearable","isRequired","label","name","onFocus","placeholder","resinTarget","errorMessage","getDateInputError","hasError","classes","ariaAttrs","errorMessageID","descriptionID","resinTargetAttr","valueAttr","onChangeAttr","handleOnChange","additionalAttrs","pattern","source","title","ERROR","cloneElement","disabled","required","handleInputBlur","handleOnClick","handleInputKeyDown","isFirefox","clearDate","renderCalendarButton","Component","UNIX_TIME_DATE_FORMAT","BOTTOM_LEFT","DatePickerBase"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { defineMessages, injectIntl, FormattedMessage, WrappedComponentProps } from 'react-intl';\n\nimport classNames from 'classnames';\nimport noop from 'lodash/noop';\nimport range from 'lodash/range';\nimport uniqueId from 'lodash/uniqueId';\n\n// @ts-ignore flow import\nimport { RESIN_TAG_TARGET } from '../../common/variables';\nimport Alert16 from '../../icon/fill/Alert16';\nimport Calendar16 from '../../icon/fill/Calendar16';\nimport ClearBadge16 from '../../icon/fill/ClearBadge16';\n// @ts-ignore flow import\nimport Browser from '../../utils/Browser';\n\nimport AccessiblePikaday, { AccessiblePikadayOptions } from './AccessiblePikaday';\nimport { ButtonType } from '../button';\nimport Label from '../label';\nimport PlainButton from '../plain-button';\nimport Tooltip, { TooltipPosition, TooltipTheme } from '../tooltip';\n\n// @ts-ignore flow import\nimport { convertDateToUnixMidnightTime } from '../../utils/datetime';\n\nimport './DatePicker.scss';\n\nconst messages = defineMessages({\n previousMonth: {\n defaultMessage: 'Previous Month',\n description: 'Previous month button for a date picker calendar',\n id: 'boxui.base.previousMonth',\n },\n nextMonth: {\n defaultMessage: 'Next Month',\n description: 'Next month button for a date picker calendar',\n id: 'boxui.base.nextMonth',\n },\n iconAlertText: {\n defaultMessage: 'Invalid Date',\n description: 'Date entered is invalid',\n id: 'boxui.datePicker.iconAlertText',\n },\n dateClearButton: {\n defaultMessage: 'Clear Date',\n description: 'Button for clearing date picker',\n id: 'boxui.datePicker.dateClearButton',\n },\n chooseDate: {\n defaultMessage: 'Choose Date',\n description: 'Button for opening date picker',\n id: 'boxui.datePicker.chooseDate',\n },\n dateInputRangeError: {\n defaultMessage: 'Please enter a date between {minLocaleDate} and {maxLocaleDate}',\n description: 'Error message when date is out of the minimum and maximum range',\n id: 'boxui.datePicker.dateInputRangeError',\n },\n dateInputMaxError: {\n defaultMessage: 'Please enter a date before {maxLocaleDate}',\n description: 'Error message when date is later than the maximum date',\n id: 'boxui.datePicker.dateInputMaxError',\n },\n dateInputMinError: {\n defaultMessage: 'Please enter a date after {minLocaleDate}',\n description: 'Error message when date is earlier than the minimum date',\n id: 'boxui.datePicker.dateInputMinError',\n },\n});\n\nconst TOGGLE_DELAY_MS = 300;\nconst ENTER_KEY = 'Enter';\nconst ESCAPE_KEY = 'Escape';\nconst TAB_KEY = 'Tab';\n\nconst ISO_DATE_FORMAT_PATTERN = /^\\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$/;\n\nexport enum DateFormat {\n ISO_STRING_DATE_FORMAT = 'isoString',\n LOCALE_DATE_STRING_DATE_FORMAT = 'localeDateString',\n UTC_TIME_DATE_FORMAT = 'utcTime',\n UNIX_TIME_DATE_FORMAT = 'unixTime',\n UTC_ISO_STRING_DATE_FORMAT = 'utcISOString',\n}\n\n/**\n * Converts date from being relative to GMT, to being relative to browser\n * timezone. E.g., Thu Jun 29 2017 00:00:00 GMT =>\n * Thu Jun 29 2017 00:00:00 GMT-0700 (PDT)\n * @param {Date} date UTC date\n * @returns {Date} date Local date\n */\nfunction convertUTCToLocal(date: Date) {\n const dateString = date.toUTCString();\n // Remove ` GMT` from the timestamp string\n const dateStringWithoutTimeZone = dateString.slice(0, -4);\n return new Date(dateStringWithoutTimeZone);\n}\n\nfunction getFormattedDate(date: Date | null, format: DateFormat) {\n if (!date) {\n return '';\n }\n\n let utcDate;\n\n switch (format) {\n case DateFormat.ISO_STRING_DATE_FORMAT:\n return date.toISOString();\n case DateFormat.LOCALE_DATE_STRING_DATE_FORMAT:\n return date.toLocaleDateString();\n case DateFormat.UTC_TIME_DATE_FORMAT:\n return convertDateToUnixMidnightTime(date);\n case DateFormat.UTC_ISO_STRING_DATE_FORMAT:\n utcDate = new Date(convertDateToUnixMidnightTime(date));\n return utcDate.toISOString();\n default:\n return date.getTime();\n }\n}\n\nconst localesWhereWeekStartsOnSunday = ['en-US', 'en-CA', 'jp-JP'];\n\nexport interface DatePickerProps extends WrappedComponentProps {\n /** Add a css class to the component */\n className?: string;\n /** Custom input field */\n customInput?: React.ReactElement;\n /** The format of the date value for form submit */\n dateFormat?: DateFormat;\n /** Some optional description */\n description?: React.ReactNode;\n /**\n * The format of the date displayed in the input field\n * @deprecated, will no longer be supported with accessible mode enabled (isAccessible = true)\n */\n displayFormat?: Object;\n /** Error message */\n error?: React.ReactNode;\n /** Position of error message tooltip */\n errorTooltipPosition?: TooltipPosition;\n /** Whether to show or hide the field's label */\n hideLabel?: boolean;\n /** Whether show or hide the 'Optional' label */\n hideOptionalLabel?: boolean;\n /** Props that will be applied on the input element */\n inputProps?: Object;\n /** Does the date input meet accessibility standards */\n isAccessible?: boolean;\n /** Is the calendar always visible */\n isAlwaysVisible?: boolean;\n /** Is input clearable */\n isClearable?: boolean;\n /** Is input disabled */\n isDisabled?: boolean;\n /** Is input required */\n isRequired?: boolean;\n /** Enables pikaday's default keyboard input support */\n isKeyboardInputAllowed?: boolean;\n /** Is user allowed to manually input a value (WARNING: this doesn't work with internationalization) */\n isTextInputAllowed?: boolean;\n /** Label displayed for the text input */\n label: React.ReactNode;\n /** The maximum date allowed to be selected */\n maxDate?: Date;\n /** The minimum date allowed to be selected */\n minDate?: Date;\n /** Name of the text input */\n name?: string;\n /** Called when input loses focus */\n onBlur?: ((event: React.FocusEvent<HTMLInputElement>) => void) | undefined;\n /** Called when input is changed, passed the selected Date */\n onChange?: Function;\n /** Called when input receives focus */\n onFocus?: ((event: React.FocusEvent<HTMLInputElement>) => void) | undefined;\n /** Placeholder for the text input */\n placeholder?: string;\n /** Resin tag */\n resinTarget?: string;\n /** Date to set the input */\n value?: Date | null;\n /** Number of years, or an array containing an upper and lower range */\n yearRange?: number | Array<number>;\n}\n\ninterface DatePickerState {\n /** Is the date input invalid */\n isDateInputInvalid: boolean;\n /** Shows error message tooltip for invalid date input */\n showDateInputError: boolean;\n}\n\nclass DatePicker extends React.Component<DatePickerProps, DatePickerState> {\n static defaultProps = {\n className: '',\n dateFormat: DateFormat.UNIX_TIME_DATE_FORMAT,\n displayFormat: {},\n error: '',\n errorTooltipPosition: TooltipPosition.BOTTOM_LEFT,\n inputProps: {},\n isClearable: true,\n isKeyboardInputAllowed: false,\n isTextInputAllowed: false,\n yearRange: 10,\n };\n\n state = {\n isDateInputInvalid: false,\n showDateInputError: false,\n };\n\n errorMessageID = uniqueId('errorMessage');\n\n descriptionID = uniqueId('description');\n\n componentDidMount() {\n const {\n customInput,\n dateFormat,\n intl,\n isAccessible,\n isAlwaysVisible,\n isTextInputAllowed,\n maxDate,\n minDate,\n onChange,\n value,\n yearRange,\n } = this.props;\n const { formatDate, formatMessage } = intl;\n const { nextMonth, previousMonth } = messages;\n let defaultValue = value;\n\n if (isAccessible && this.shouldUseAccessibleFallback()) {\n this.canUseDateInputType = false;\n }\n\n // When date format is utcTime, initial date needs to be converted from being relative to GMT to being\n // relative to browser timezone\n if (dateFormat === DateFormat.UTC_TIME_DATE_FORMAT && value) {\n defaultValue = convertUTCToLocal(value);\n\n if (onChange) {\n const formattedDate = this.formatValue(defaultValue);\n onChange(defaultValue, formattedDate);\n }\n }\n // Make sure the DST detection algorithm in browsers is up-to-date\n const year = new Date().getFullYear();\n\n const i18n = {\n previousMonth: formatMessage(previousMonth),\n nextMonth: formatMessage(nextMonth),\n months: range(12).map(month => formatDate(new Date(year, month, 15), { month: 'long' })),\n // weekdays must start with Sunday, so array of dates below is May 1st-8th, 2016\n weekdays: range(1, 8).map(date => formatDate(new Date(2016, 4, date), { weekday: 'long' })),\n weekdaysShort: range(1, 8).map(date => formatDate(new Date(2016, 4, date), { weekday: 'narrow' })),\n };\n\n // If \"bound\" is true (default), the DatePicker will be appended at the end of the document, with absolute positioning\n // If \"bound\" is false, the DatePicker will be appended to the DOM right after the input, with relative positioning\n const datePickerConfig: AccessiblePikadayOptions = {\n bound: !customInput,\n blurFieldOnSelect: false, // Available in pikaday > 1.5.1\n setDefaultDate: true,\n defaultDate: defaultValue === null ? undefined : defaultValue,\n field: this.dateInputEl,\n firstDay: localesWhereWeekStartsOnSunday.includes(intl.locale) ? 0 : 1,\n maxDate,\n minDate,\n position: 'bottom left',\n i18n,\n showDaysInNextAndPreviousMonths: true,\n onSelect: this.onSelectHandler,\n yearRange,\n toString: this.formatDisplay,\n };\n\n if (isAccessible) {\n if (this.canUseDateInputType) {\n delete datePickerConfig.field;\n datePickerConfig.trigger = this.dateInputEl;\n datePickerConfig.accessibleFieldEl = this.dateInputEl;\n datePickerConfig.datePickerButtonEl = this.datePickerButtonEl;\n }\n\n datePickerConfig.parse = this.parseDisplayDateType;\n datePickerConfig.toString = this.formatDisplayDateType;\n datePickerConfig.keyboardInput = false;\n }\n\n this.datePicker = new AccessiblePikaday(datePickerConfig);\n\n if (isTextInputAllowed) {\n this.updateDateInputValue(this.formatDisplay(defaultValue));\n }\n\n if (isAlwaysVisible) {\n this.datePicker.show();\n this.datePicker.hide = noop;\n }\n }\n\n // eslint-disable-next-line camelcase\n UNSAFE_componentWillReceiveProps(nextProps: DatePickerProps) {\n if (!this.datePicker) return;\n\n const { value: nextValue = null, minDate: nextMinDate = null, maxDate: nextMaxDate = null } = nextProps;\n const { value, minDate, maxDate, isTextInputAllowed } = this.props;\n const selectedDate = this.datePicker && this.datePicker.getDate();\n\n // only set date when props change\n if (\n (nextValue && !value) ||\n (!nextValue && value) ||\n (nextValue && value && nextValue.getTime() !== value.getTime())\n ) {\n this.datePicker.setDate(nextValue);\n }\n // If text input is allowed the dateInputEl will act as an uncontrolled input and\n // we need to set formatted value manually.\n if (isTextInputAllowed) {\n this.updateDateInputValue(this.formatDisplay(nextValue));\n }\n if (\n (nextMinDate && !minDate) ||\n (nextMinDate && minDate) ||\n (nextMinDate && minDate && nextMinDate.getTime() !== minDate.getTime())\n ) {\n this.datePicker.setMinDate(nextMinDate);\n\n if (selectedDate && selectedDate < nextMinDate) {\n this.datePicker.gotoDate(nextMinDate);\n }\n }\n if (\n (nextMaxDate && !maxDate) ||\n (!nextMaxDate && maxDate) ||\n (nextMaxDate && maxDate && nextMaxDate.getTime() !== maxDate.getTime())\n ) {\n this.datePicker.setMaxDate(nextMaxDate);\n\n if (selectedDate && nextMaxDate && selectedDate > nextMaxDate) {\n this.datePicker.gotoDate(nextMaxDate);\n }\n }\n }\n\n componentWillUnmount() {\n if (this.datePicker) {\n this.datePicker.destroy();\n }\n }\n\n onSelectHandler = (date: Date | null = null) => {\n const { onChange, isAccessible } = this.props;\n if (onChange) {\n const formattedDate = this.formatValue(date);\n onChange(date, formattedDate);\n }\n\n if (isAccessible) {\n if (this.dateInputEl && this.datePicker) {\n // Required because Pikaday instance is unbound\n // See https://github.com/Pikaday/Pikaday#usage\n this.dateInputEl.value = this.datePicker.toString();\n }\n if (this.datePicker && this.datePicker.isVisible()) {\n this.datePicker.hide();\n }\n }\n };\n\n updateDateInputValue(value: string) {\n if (this.dateInputEl) {\n this.dateInputEl.value = value;\n }\n }\n\n dateInputEl: HTMLInputElement | null | undefined;\n\n datePicker: Pikaday | null = null;\n\n datePickerButtonEl: HTMLButtonElement | HTMLDivElement | null | undefined;\n\n // Used to detect when a fallback is necessary when isAccessible is enabled\n canUseDateInputType = true;\n\n // Used to prevent bad sequences of hide/show when toggling the datepicker button\n shouldStayClosed = false;\n\n focusDatePicker = () => {\n // By default, this will open the datepicker too\n if (this.dateInputEl) {\n this.dateInputEl.focus();\n }\n };\n\n getDateInputError = () => {\n const { intl, maxDate = null, minDate = null } = this.props;\n const { showDateInputError } = this.state;\n const { formatMessage } = intl;\n\n if (!showDateInputError) return '';\n\n let dateInputError = '';\n const maxLocaleDate = getFormattedDate(maxDate, DateFormat.LOCALE_DATE_STRING_DATE_FORMAT);\n const minLocaleDate = getFormattedDate(minDate, DateFormat.LOCALE_DATE_STRING_DATE_FORMAT);\n\n if (maxLocaleDate && minLocaleDate) {\n dateInputError = formatMessage(messages.dateInputRangeError, { maxLocaleDate, minLocaleDate });\n } else if (maxLocaleDate) {\n dateInputError = formatMessage(messages.dateInputMaxError, { maxLocaleDate });\n } else if (minLocaleDate) {\n dateInputError = formatMessage(messages.dateInputMinError, { minLocaleDate });\n }\n\n return dateInputError;\n };\n\n handleInputKeyDown = (event: React.KeyboardEvent<HTMLInputElement>) => {\n const { isKeyboardInputAllowed, isTextInputAllowed, isAccessible } = this.props;\n\n if (!isKeyboardInputAllowed && this.datePicker && this.datePicker.isVisible()) {\n event.stopPropagation();\n }\n\n // Stops up/down arrow & spacebar from moving page scroll position since pikaday does not preventDefault correctly\n if (!(isTextInputAllowed || isAccessible) && event.key !== TAB_KEY) {\n event.preventDefault();\n }\n\n if ((isTextInputAllowed || (isAccessible && !this.canUseDateInputType)) && event.key === ENTER_KEY) {\n event.preventDefault();\n }\n\n // Stops enter & spacebar from opening up the browser's default date picker\n if (isAccessible && (event.key === ENTER_KEY || event.key === ' ')) {\n event.preventDefault();\n }\n\n if (event.key === ENTER_KEY || event.key === ESCAPE_KEY || event.key === ' ') {\n // Since pikaday auto-selects when you move the select box, enter/space don't do anything but close the date picker\n if (this.datePicker && this.datePicker.isVisible()) {\n this.datePicker.hide();\n }\n }\n };\n\n handleOnChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const { isAccessible, maxDate, minDate, onChange } = this.props;\n const { isDateInputInvalid } = this.state;\n\n if (!isAccessible || !this.canUseDateInputType) {\n return;\n }\n\n if (this.datePicker && this.datePicker.isVisible()) {\n event.stopPropagation();\n }\n\n const { value } = event.target;\n if (this.datePicker && value) {\n const parsedDate = this.parseDisplayDateType(value);\n\n if (parsedDate) {\n if ((minDate && parsedDate < minDate) || (maxDate && parsedDate > maxDate)) {\n this.datePicker.setDate(null, true);\n this.setState({ isDateInputInvalid: true });\n return;\n }\n // Reset the error styling on valid date input\n if (isDateInputInvalid) {\n this.setState({ isDateInputInvalid: false, showDateInputError: false });\n }\n } else {\n this.setState({ isDateInputInvalid: true });\n }\n\n // Set date so Pikaday date picker value stays in sync with input\n this.datePicker.setDate(parsedDate, true);\n\n if (onChange) {\n const formattedDate = this.formatValue(parsedDate);\n onChange(parsedDate, formattedDate);\n }\n } else if (isDateInputInvalid) {\n this.setState({ isDateInputInvalid: false, showDateInputError: false });\n }\n };\n\n handleInputBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n const { isAccessible, isTextInputAllowed, onBlur } = this.props;\n const { isDateInputInvalid } = this.state;\n const nextActiveElement = event.relatedTarget || document.activeElement;\n\n // This is mostly here to cancel out the pikaday hide() on blur\n if (\n this.datePicker &&\n this.datePicker.isVisible() &&\n nextActiveElement &&\n nextActiveElement === this.datePickerButtonEl\n ) {\n this.shouldStayClosed = true;\n setTimeout(() => {\n this.shouldStayClosed = false;\n }, TOGGLE_DELAY_MS);\n }\n\n if (onBlur) {\n onBlur(event);\n }\n\n // Since we Fire parent onChange event if isTextInputAllowed\n // fire it on blur if the user typed a correct date format\n let inputDate: Date | null | undefined = null;\n\n if (this.dateInputEl) {\n let dateInputElVal = null;\n if (isAccessible && !this.canUseDateInputType) {\n dateInputElVal = this.parseDisplayDateType(this.dateInputEl.value);\n }\n inputDate = new Date(dateInputElVal || this.dateInputEl.value);\n }\n\n if ((isTextInputAllowed || (isAccessible && !this.canUseDateInputType)) && inputDate && inputDate.getDate()) {\n this.onSelectHandler(inputDate);\n }\n\n if (isAccessible && isDateInputInvalid) this.setState({ showDateInputError: true });\n };\n\n handleButtonClick = (event: React.SyntheticEvent<HTMLButtonElement>) => {\n event.preventDefault();\n event.stopPropagation();\n const { isAccessible, isDisabled } = this.props;\n\n if (isAccessible) {\n if (isDisabled || !this.datePicker) {\n return;\n }\n\n if (this.datePicker.isVisible()) {\n this.datePicker.hide();\n } else {\n this.datePicker.show();\n }\n return;\n }\n\n if (!this.shouldStayClosed) {\n this.focusDatePicker();\n }\n };\n\n handleOnClick = (event: React.SyntheticEvent<HTMLInputElement>) => {\n const { isAccessible } = this.props;\n\n if (isAccessible) {\n // Suppress Firefox default behavior: clicking on input type \"date\"\n // opens the browser date picker.\n event.preventDefault();\n event.stopPropagation();\n }\n };\n\n formatDisplay = (date?: Date | null): string => {\n const { displayFormat, intl } = this.props;\n return date ? intl.formatDate(date, displayFormat) : '';\n };\n\n formatDisplayDateType = (date?: Date | null): string => {\n // Input type \"date\" only accepts the format YYYY-MM-DD\n return date ? getFormattedDate(date, DateFormat.UTC_ISO_STRING_DATE_FORMAT).slice(0, 10) : '';\n };\n\n parseDisplayDateType = (dateString?: string | null): Date | null => {\n if (dateString && ISO_DATE_FORMAT_PATTERN.test(dateString)) {\n // Calling new Date('YYYY-MM-DD') without 'T00:00:00' yields undesired results:\n // E.g. new Date('2017-06-01') => May 31 2017\n // E.g. new Date('2017-06-01T00:00:00') => June 01 2017\n // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/Date#parameters\n return new Date(`${dateString}T00:00:00`);\n }\n return null;\n };\n\n formatValue = (date: Date | null): string | number => {\n const { dateFormat } = this.props;\n return dateFormat ? getFormattedDate(date, dateFormat) : '';\n };\n\n clearDate = (event: React.SyntheticEvent<HTMLButtonElement>) => {\n event.preventDefault(); // so datepicker doesn't open after clearing\n if (this.datePicker) {\n this.datePicker.setDate(null);\n }\n this.onSelectHandler(null);\n };\n\n /** Determines whether a new date input falls back to a text input or not */\n shouldUseAccessibleFallback = (): boolean => {\n const test = document.createElement('input');\n\n try {\n test.type = 'date';\n } catch (e) {\n // no-op\n }\n\n // If date input falls back to text input, show the fallback\n return test.type === 'text';\n };\n\n renderCalendarButton = () => {\n const { intl, isAccessible, isAlwaysVisible, isDisabled } = this.props;\n const { formatMessage } = intl;\n\n if (isAlwaysVisible) {\n return null;\n }\n\n // De-emphasizing the Pikaday date picker because it does not meet accessibility standards\n // Screenreaders & navigating via keyboard will no longer pick up on this element\n const accessibleAttrs = isAccessible ? { 'aria-hidden': true, tabindex: -1 } : {};\n\n return (\n <PlainButton\n aria-label={formatMessage(messages.chooseDate)}\n className=\"date-picker-open-btn\"\n getDOMRef={ref => {\n this.datePickerButtonEl = ref;\n }}\n isDisabled={isDisabled}\n onClick={this.handleButtonClick}\n type={ButtonType.BUTTON}\n {...accessibleAttrs}\n >\n <Calendar16 />\n </PlainButton>\n );\n };\n\n render() {\n const {\n className,\n customInput,\n description,\n error,\n errorTooltipPosition,\n hideLabel,\n hideOptionalLabel,\n inputProps,\n intl,\n isAccessible,\n isClearable,\n isDisabled,\n isRequired,\n isTextInputAllowed,\n label,\n name,\n onFocus,\n placeholder,\n resinTarget,\n value,\n } = this.props;\n const { isDateInputInvalid } = this.state;\n const { formatMessage } = intl;\n\n const errorMessage = error || this.getDateInputError();\n const hasError = !!errorMessage;\n\n const classes = classNames(className, 'date-picker-wrapper', {\n 'is-accessible': isAccessible,\n 'show-clear-btn': !!value,\n 'show-error': hasError,\n });\n\n const ariaAttrs = {\n 'aria-invalid': hasError,\n 'aria-required': isRequired,\n 'aria-errormessage': this.errorMessageID,\n 'aria-describedby': description ? this.descriptionID : undefined,\n };\n\n const resinTargetAttr = resinTarget ? { [RESIN_TAG_TARGET]: resinTarget } : {};\n\n let valueAttr;\n if (isAccessible) {\n valueAttr = { defaultValue: this.formatDisplayDateType(value) };\n } else if (isTextInputAllowed) {\n valueAttr = { defaultValue: this.formatDisplay(value) };\n } else {\n valueAttr = { value: this.formatDisplay(value) };\n }\n let onChangeAttr;\n if (isAccessible && this.canUseDateInputType) {\n onChangeAttr = { onChange: this.handleOnChange };\n } else if (isTextInputAllowed || (isAccessible && !this.canUseDateInputType)) {\n onChangeAttr = {};\n } else {\n onChangeAttr = { onChange: noop };\n }\n\n // \"name\" prop is required for pattern validation to be surfaced on form submit. See components/form-elements/form/Form.js\n // \"title\" prop is shown during constraint validation as a description of the pattern\n // See https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/pattern#usability\n const additionalAttrs =\n isAccessible && !this.canUseDateInputType\n ? { name, pattern: ISO_DATE_FORMAT_PATTERN.source, title: 'YYYY-MM-DD' }\n : {};\n\n /* fixes proptype error about readonly field (not adding readonly so constraint validation works) */\n return (\n <div className={classes}>\n <span className=\"date-picker-icon-holder\">\n <Label hideLabel={hideLabel} showOptionalText={!hideOptionalLabel && !isRequired} text={label}>\n <>\n {!!description && (\n <div id={this.descriptionID} className=\"date-picker-description\">\n {description}\n </div>\n )}\n <Tooltip\n className=\"date-picker-error-tooltip\"\n isShown={hasError}\n position={errorTooltipPosition}\n text={errorMessage || ''}\n theme={TooltipTheme.ERROR}\n >\n {customInput ? (\n React.cloneElement(customInput, {\n disabled: isDisabled,\n ref: (ref: HTMLInputElement) => {\n this.dateInputEl = ref;\n },\n required: isRequired,\n ...resinTargetAttr,\n ...ariaAttrs,\n })\n ) : (\n <input\n ref={ref => {\n this.dateInputEl = ref;\n }}\n className=\"date-picker-input\"\n disabled={isDisabled}\n onBlur={this.handleInputBlur}\n onClick={this.handleOnClick}\n placeholder={placeholder || formatMessage(messages.chooseDate)}\n required={isRequired}\n type={isAccessible && this.canUseDateInputType ? 'date' : 'text'}\n {...onChangeAttr}\n onFocus={onFocus}\n onKeyDown={this.handleInputKeyDown}\n {...resinTargetAttr}\n {...ariaAttrs}\n {...inputProps}\n {...valueAttr}\n {...additionalAttrs}\n />\n )}\n </Tooltip>\n <span id={this.errorMessageID} className=\"accessibility-hidden\" role=\"alert\">\n {errorMessage}\n </span>\n </>\n </Label>\n {isClearable && !!value && !isDisabled ? (\n <PlainButton\n aria-label={formatMessage(messages.dateClearButton)}\n className={classNames('date-picker-clear-btn', {\n 'is-hidden': isAccessible && Browser.isFirefox(),\n })}\n onClick={this.clearDate}\n type={ButtonType.BUTTON}\n >\n <ClearBadge16 />\n </PlainButton>\n ) : null}\n {errorMessage || isDateInputInvalid ? (\n <Alert16\n className=\"date-picker-icon-alert\"\n title={<FormattedMessage {...messages.iconAlertText} />}\n />\n ) : null}\n {this.renderCalendarButton()}\n <input\n className=\"date-picker-unix-time-input\"\n name={name}\n readOnly\n type=\"hidden\"\n value={value ? this.formatValue(value) : ''}\n />\n </span>\n </div>\n );\n }\n}\n\nexport { DatePicker as DatePickerBase };\nexport default injectIntl(DatePicker);\n"],"file":"DatePicker.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/components/date-picker/DatePicker.tsx"],"names":["React","defineMessages","injectIntl","FormattedMessage","classNames","noop","range","uniqueId","RESIN_TAG_TARGET","Alert16","Calendar16","ClearBadge16","AccessiblePikaday","ButtonType","Label","PlainButton","Tooltip","TooltipPosition","TooltipTheme","convertDateToUnixMidnightTime","messages","previousMonth","nextMonth","iconAlertText","dateClearButton","chooseDate","dateInputRangeError","dateInputMaxError","dateInputMinError","TOGGLE_DELAY_MS","ENTER_KEY","ESCAPE_KEY","TAB_KEY","ISO_DATE_FORMAT_PATTERN","DateFormat","convertUTCToLocal","date","dateString","toUTCString","dateStringWithoutTimeZone","slice","Date","getFormattedDate","format","utcDate","ISO_STRING_DATE_FORMAT","toISOString","LOCALE_DATE_STRING_DATE_FORMAT","toLocaleDateString","UTC_TIME_DATE_FORMAT","UTC_ISO_STRING_DATE_FORMAT","getTime","localesWhereWeekStartsOnSunday","DatePicker","isDateInputInvalid","showDateInputError","props","onChange","isAccessible","state","formattedDate","formatValue","dateInputEl","datePicker","value","toString","isVisible","hide","focusDatePicker","setState","focus","intl","maxDate","minDate","formatMessage","dateInputError","maxLocaleDate","minLocaleDate","event","isKeyboardInputAllowed","isTextInputAllowed","stopPropagation","key","preventDefault","canUseDateInputType","target","parsedDate","parseDisplayDateType","setDate","onBlur","nextActiveElement","relatedTarget","document","activeElement","datePickerButtonEl","shouldStayClosed","setTimeout","inputDate","dateInputElVal","getDate","onSelectHandler","isDisabled","show","displayFormat","formatDate","test","dateFormat","createElement","type","e","isAlwaysVisible","accessibleAttrs","tabIndex","ref","handleButtonClick","BUTTON","customInput","yearRange","defaultValue","shouldUseAccessibleFallback","year","getFullYear","i18n","months","map","month","weekdays","weekday","weekdaysShort","datePickerConfig","bound","blurFieldOnSelect","setDefaultDate","defaultDate","undefined","field","firstDay","includes","locale","position","showDaysInNextAndPreviousMonths","onSelect","formatDisplay","trigger","accessibleFieldEl","parse","formatDisplayDateType","keyboardInput","updateDateInputValue","nextProps","nextValue","nextMinDate","nextMaxDate","selectedDate","setMinDate","gotoDate","setMaxDate","destroy","className","description","error","errorTooltipPosition","hideLabel","hideOptionalLabel","inputProps","isClearable","isRequired","label","name","onFocus","placeholder","resinTarget","errorMessage","getDateInputError","hasError","hasValue","classes","ariaAttrs","errorMessageID","descriptionID","resinTargetAttr","valueAttr","onChangeAttr","handleOnChange","additionalAttrs","max","min","pattern","source","title","ERROR","cloneElement","disabled","required","handleInputBlur","handleOnClick","handleInputKeyDown","clearDate","renderCalendarButton","Component","UNIX_TIME_DATE_FORMAT","BOTTOM_LEFT","DatePickerBase"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { defineMessages, injectIntl, FormattedMessage, WrappedComponentProps } from 'react-intl';\n\nimport classNames from 'classnames';\nimport noop from 'lodash/noop';\nimport range from 'lodash/range';\nimport uniqueId from 'lodash/uniqueId';\n\n// @ts-ignore flow import\nimport { RESIN_TAG_TARGET } from '../../common/variables';\nimport Alert16 from '../../icon/fill/Alert16';\nimport Calendar16 from '../../icon/fill/Calendar16';\nimport ClearBadge16 from '../../icon/fill/ClearBadge16';\n\nimport AccessiblePikaday, { AccessiblePikadayOptions } from './AccessiblePikaday';\nimport { ButtonType } from '../button';\nimport Label from '../label';\nimport PlainButton from '../plain-button';\nimport Tooltip, { TooltipPosition, TooltipTheme } from '../tooltip';\n\n// @ts-ignore flow import\nimport { convertDateToUnixMidnightTime } from '../../utils/datetime';\n\nimport './DatePicker.scss';\n\nconst messages = defineMessages({\n previousMonth: {\n defaultMessage: 'Previous Month',\n description: 'Previous month button for a date picker calendar',\n id: 'boxui.base.previousMonth',\n },\n nextMonth: {\n defaultMessage: 'Next Month',\n description: 'Next month button for a date picker calendar',\n id: 'boxui.base.nextMonth',\n },\n iconAlertText: {\n defaultMessage: 'Invalid Date',\n description: 'Date entered is invalid',\n id: 'boxui.datePicker.iconAlertText',\n },\n dateClearButton: {\n defaultMessage: 'Clear Date',\n description: 'Button for clearing date picker',\n id: 'boxui.datePicker.dateClearButton',\n },\n chooseDate: {\n defaultMessage: 'Choose Date',\n description: 'Button for opening date picker',\n id: 'boxui.datePicker.chooseDate',\n },\n dateInputRangeError: {\n defaultMessage: 'Please enter a date between {minLocaleDate} and {maxLocaleDate}',\n description: 'Error message when date is out of the minimum and maximum range',\n id: 'boxui.datePicker.dateInputRangeError',\n },\n dateInputMaxError: {\n defaultMessage: 'Please enter a date before {maxLocaleDate}',\n description: 'Error message when date is later than the maximum date',\n id: 'boxui.datePicker.dateInputMaxError',\n },\n dateInputMinError: {\n defaultMessage: 'Please enter a date after {minLocaleDate}',\n description: 'Error message when date is earlier than the minimum date',\n id: 'boxui.datePicker.dateInputMinError',\n },\n});\n\nconst TOGGLE_DELAY_MS = 300;\nconst ENTER_KEY = 'Enter';\nconst ESCAPE_KEY = 'Escape';\nconst TAB_KEY = 'Tab';\n\nconst ISO_DATE_FORMAT_PATTERN = /^\\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$/;\n\nexport enum DateFormat {\n ISO_STRING_DATE_FORMAT = 'isoString',\n LOCALE_DATE_STRING_DATE_FORMAT = 'localeDateString',\n UTC_TIME_DATE_FORMAT = 'utcTime',\n UNIX_TIME_DATE_FORMAT = 'unixTime',\n UTC_ISO_STRING_DATE_FORMAT = 'utcISOString',\n}\n\n/**\n * Converts date from being relative to GMT, to being relative to browser\n * timezone. E.g., Thu Jun 29 2017 00:00:00 GMT =>\n * Thu Jun 29 2017 00:00:00 GMT-0700 (PDT)\n * @param {Date} date UTC date\n * @returns {Date} date Local date\n */\nfunction convertUTCToLocal(date: Date) {\n const dateString = date.toUTCString();\n // Remove ` GMT` from the timestamp string\n const dateStringWithoutTimeZone = dateString.slice(0, -4);\n return new Date(dateStringWithoutTimeZone);\n}\n\nfunction getFormattedDate(date: Date | null, format: DateFormat) {\n if (!date) {\n return '';\n }\n\n let utcDate;\n\n switch (format) {\n case DateFormat.ISO_STRING_DATE_FORMAT:\n return date.toISOString();\n case DateFormat.LOCALE_DATE_STRING_DATE_FORMAT:\n return date.toLocaleDateString();\n case DateFormat.UTC_TIME_DATE_FORMAT:\n return convertDateToUnixMidnightTime(date);\n case DateFormat.UTC_ISO_STRING_DATE_FORMAT:\n utcDate = new Date(convertDateToUnixMidnightTime(date));\n return utcDate.toISOString();\n default:\n return date.getTime();\n }\n}\n\nconst localesWhereWeekStartsOnSunday = ['en-US', 'en-CA', 'jp-JP'];\n\nexport interface DatePickerProps extends WrappedComponentProps {\n /** Add a css class to the component */\n className?: string;\n /** Custom input field */\n customInput?: React.ReactElement;\n /** The format of the date value for form submit */\n dateFormat?: DateFormat;\n /** Some optional description */\n description?: React.ReactNode;\n /**\n * The format of the date displayed in the input field\n * @deprecated, will no longer be supported with accessible mode enabled (isAccessible = true)\n */\n displayFormat?: Object;\n /** Error message */\n error?: React.ReactNode;\n /** Position of error message tooltip */\n errorTooltipPosition?: TooltipPosition;\n /** Whether to show or hide the field's label */\n hideLabel?: boolean;\n /** Whether show or hide the 'Optional' label */\n hideOptionalLabel?: boolean;\n /** Props that will be applied on the input element */\n inputProps?: Object;\n /** Does the date input meet accessibility standards */\n isAccessible?: boolean;\n /** Is the calendar always visible */\n isAlwaysVisible?: boolean;\n /** Is input clearable */\n isClearable?: boolean;\n /** Is input disabled */\n isDisabled?: boolean;\n /** Is input required */\n isRequired?: boolean;\n /** Enables pikaday's default keyboard input support */\n isKeyboardInputAllowed?: boolean;\n /** Is user allowed to manually input a value (WARNING: this doesn't work with internationalization) */\n isTextInputAllowed?: boolean;\n /** Label displayed for the text input */\n label: React.ReactNode;\n /** The maximum date allowed to be selected */\n maxDate?: Date;\n /** The minimum date allowed to be selected */\n minDate?: Date;\n /** Name of the text input */\n name?: string;\n /** Called when input loses focus */\n onBlur?: ((event: React.FocusEvent<HTMLInputElement>) => void) | undefined;\n /** Called when input is changed, passed the selected Date */\n onChange?: Function;\n /** Called when input receives focus */\n onFocus?: ((event: React.FocusEvent<HTMLInputElement>) => void) | undefined;\n /** Placeholder for the text input */\n placeholder?: string;\n /** Resin tag */\n resinTarget?: string;\n /** Date to set the input */\n value?: Date | null;\n /** Number of years, or an array containing an upper and lower range */\n yearRange?: number | Array<number>;\n}\n\ninterface DatePickerState {\n /** Is the date input invalid */\n isDateInputInvalid: boolean;\n /** Shows error message tooltip for invalid date input */\n showDateInputError: boolean;\n}\n\nclass DatePicker extends React.Component<DatePickerProps, DatePickerState> {\n static defaultProps = {\n className: '',\n dateFormat: DateFormat.UNIX_TIME_DATE_FORMAT,\n displayFormat: {},\n error: '',\n errorTooltipPosition: TooltipPosition.BOTTOM_LEFT,\n inputProps: {},\n isClearable: true,\n isKeyboardInputAllowed: false,\n isTextInputAllowed: false,\n yearRange: 10,\n };\n\n state = {\n isDateInputInvalid: false,\n showDateInputError: false,\n };\n\n errorMessageID = uniqueId('errorMessage');\n\n descriptionID = uniqueId('description');\n\n componentDidMount() {\n const {\n customInput,\n dateFormat,\n intl,\n isAccessible,\n isAlwaysVisible,\n isTextInputAllowed,\n maxDate,\n minDate,\n onChange,\n value,\n yearRange,\n } = this.props;\n const { formatDate, formatMessage } = intl;\n const { nextMonth, previousMonth } = messages;\n let defaultValue = value;\n\n if (isAccessible && this.shouldUseAccessibleFallback()) {\n this.canUseDateInputType = false;\n }\n\n // When date format is utcTime, initial date needs to be converted from being relative to GMT to being\n // relative to browser timezone\n if (dateFormat === DateFormat.UTC_TIME_DATE_FORMAT && value) {\n defaultValue = convertUTCToLocal(value);\n\n if (onChange) {\n const formattedDate = this.formatValue(defaultValue);\n onChange(defaultValue, formattedDate);\n }\n }\n // Make sure the DST detection algorithm in browsers is up-to-date\n const year = new Date().getFullYear();\n\n const i18n = {\n previousMonth: formatMessage(previousMonth),\n nextMonth: formatMessage(nextMonth),\n months: range(12).map(month => formatDate(new Date(year, month, 15), { month: 'long' })),\n // weekdays must start with Sunday, so array of dates below is May 1st-8th, 2016\n weekdays: range(1, 8).map(date => formatDate(new Date(2016, 4, date), { weekday: 'long' })),\n weekdaysShort: range(1, 8).map(date => formatDate(new Date(2016, 4, date), { weekday: 'narrow' })),\n };\n\n // If \"bound\" is true (default), the DatePicker will be appended at the end of the document, with absolute positioning\n // If \"bound\" is false, the DatePicker will be appended to the DOM right after the input, with relative positioning\n const datePickerConfig: AccessiblePikadayOptions = {\n bound: !customInput,\n blurFieldOnSelect: false, // Available in pikaday > 1.5.1\n setDefaultDate: true,\n defaultDate: defaultValue === null ? undefined : defaultValue,\n field: this.dateInputEl,\n firstDay: localesWhereWeekStartsOnSunday.includes(intl.locale) ? 0 : 1,\n maxDate,\n minDate,\n position: 'bottom left',\n i18n,\n showDaysInNextAndPreviousMonths: true,\n onSelect: this.onSelectHandler,\n yearRange,\n toString: this.formatDisplay,\n };\n\n if (isAccessible) {\n if (this.canUseDateInputType) {\n delete datePickerConfig.field;\n datePickerConfig.trigger = this.dateInputEl;\n datePickerConfig.accessibleFieldEl = this.dateInputEl;\n datePickerConfig.datePickerButtonEl = this.datePickerButtonEl;\n }\n\n datePickerConfig.parse = this.parseDisplayDateType;\n datePickerConfig.toString = this.formatDisplayDateType;\n datePickerConfig.keyboardInput = false;\n }\n\n this.datePicker = new AccessiblePikaday(datePickerConfig);\n\n if (isTextInputAllowed) {\n this.updateDateInputValue(this.formatDisplay(defaultValue));\n }\n\n if (isAlwaysVisible) {\n this.datePicker.show();\n this.datePicker.hide = noop;\n }\n }\n\n // eslint-disable-next-line camelcase\n UNSAFE_componentWillReceiveProps(nextProps: DatePickerProps) {\n if (!this.datePicker) return;\n\n const { value: nextValue = null, minDate: nextMinDate = null, maxDate: nextMaxDate = null } = nextProps;\n const { value, minDate, maxDate, isTextInputAllowed } = this.props;\n const selectedDate = this.datePicker && this.datePicker.getDate();\n\n // only set date when props change\n if (\n (nextValue && !value) ||\n (!nextValue && value) ||\n (nextValue && value && nextValue.getTime() !== value.getTime())\n ) {\n this.datePicker.setDate(nextValue);\n }\n // If text input is allowed the dateInputEl will act as an uncontrolled input and\n // we need to set formatted value manually.\n if (isTextInputAllowed) {\n this.updateDateInputValue(this.formatDisplay(nextValue));\n }\n if (\n (nextMinDate && !minDate) ||\n (nextMinDate && minDate) ||\n (nextMinDate && minDate && nextMinDate.getTime() !== minDate.getTime())\n ) {\n this.datePicker.setMinDate(nextMinDate);\n\n if (selectedDate && selectedDate < nextMinDate) {\n this.datePicker.gotoDate(nextMinDate);\n }\n }\n if (\n (nextMaxDate && !maxDate) ||\n (!nextMaxDate && maxDate) ||\n (nextMaxDate && maxDate && nextMaxDate.getTime() !== maxDate.getTime())\n ) {\n this.datePicker.setMaxDate(nextMaxDate);\n\n if (selectedDate && nextMaxDate && selectedDate > nextMaxDate) {\n this.datePicker.gotoDate(nextMaxDate);\n }\n }\n }\n\n componentWillUnmount() {\n if (this.datePicker) {\n this.datePicker.destroy();\n }\n }\n\n onSelectHandler = (date: Date | null = null) => {\n const { onChange, isAccessible } = this.props;\n const { isDateInputInvalid } = this.state;\n\n if (onChange) {\n const formattedDate = this.formatValue(date);\n onChange(date, formattedDate);\n }\n\n if (isAccessible) {\n if (this.dateInputEl && this.datePicker) {\n // Required because Pikaday instance is unbound\n // See https://github.com/Pikaday/Pikaday#usage\n this.dateInputEl.value = this.datePicker.toString();\n }\n if (this.datePicker && this.datePicker.isVisible()) {\n this.datePicker.hide();\n this.focusDatePicker();\n }\n }\n\n if (isDateInputInvalid) {\n this.setState({ isDateInputInvalid: false, showDateInputError: false });\n }\n };\n\n updateDateInputValue(value: string) {\n if (this.dateInputEl) {\n this.dateInputEl.value = value;\n }\n }\n\n dateInputEl: HTMLInputElement | null | undefined;\n\n datePicker: Pikaday | null = null;\n\n datePickerButtonEl: HTMLButtonElement | HTMLDivElement | null | undefined;\n\n // Used to detect when a fallback is necessary when isAccessible is enabled\n canUseDateInputType = true;\n\n // Used to prevent bad sequences of hide/show when toggling the datepicker button\n shouldStayClosed = false;\n\n focusDatePicker = () => {\n // This also opens the date picker when isAccessible is disabled\n if (this.dateInputEl) {\n this.dateInputEl.focus();\n }\n };\n\n getDateInputError = () => {\n const { intl, maxDate = null, minDate = null } = this.props;\n const { showDateInputError } = this.state;\n const { formatMessage } = intl;\n\n if (!showDateInputError) return '';\n\n let dateInputError = '';\n const maxLocaleDate = getFormattedDate(maxDate, DateFormat.LOCALE_DATE_STRING_DATE_FORMAT);\n const minLocaleDate = getFormattedDate(minDate, DateFormat.LOCALE_DATE_STRING_DATE_FORMAT);\n\n if (maxLocaleDate && minLocaleDate) {\n dateInputError = formatMessage(messages.dateInputRangeError, { maxLocaleDate, minLocaleDate });\n } else if (maxLocaleDate) {\n dateInputError = formatMessage(messages.dateInputMaxError, { maxLocaleDate });\n } else if (minLocaleDate) {\n dateInputError = formatMessage(messages.dateInputMinError, { minLocaleDate });\n }\n\n return dateInputError;\n };\n\n handleInputKeyDown = (event: React.KeyboardEvent<HTMLInputElement>) => {\n const { isKeyboardInputAllowed, isTextInputAllowed, isAccessible } = this.props;\n\n if (!isKeyboardInputAllowed && this.datePicker && this.datePicker.isVisible()) {\n event.stopPropagation();\n }\n\n // Stops up/down arrow & spacebar from moving page scroll position since pikaday does not preventDefault correctly\n if (!(isTextInputAllowed || isAccessible) && event.key !== TAB_KEY) {\n event.preventDefault();\n }\n\n if ((isTextInputAllowed || (isAccessible && !this.canUseDateInputType)) && event.key === ENTER_KEY) {\n event.preventDefault();\n }\n\n // Stops enter & spacebar from opening up the browser's default date picker\n if (isAccessible && (event.key === ENTER_KEY || event.key === ' ')) {\n event.preventDefault();\n }\n\n if (event.key === ENTER_KEY || event.key === ESCAPE_KEY || event.key === ' ') {\n // Since pikaday auto-selects when you move the select box, enter/space don't do anything but close the date picker\n if (this.datePicker && this.datePicker.isVisible()) {\n this.datePicker.hide();\n }\n }\n };\n\n handleOnChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const { isAccessible, maxDate, minDate, onChange } = this.props;\n const { isDateInputInvalid } = this.state;\n\n if (!isAccessible || !this.canUseDateInputType) {\n return;\n }\n\n if (this.datePicker && this.datePicker.isVisible()) {\n event.stopPropagation();\n }\n\n const { value } = event.target;\n if (this.datePicker && value) {\n const parsedDate = this.parseDisplayDateType(value);\n\n if (parsedDate) {\n if ((minDate && parsedDate < minDate) || (maxDate && parsedDate > maxDate)) {\n this.datePicker.setDate(null);\n this.setState({ isDateInputInvalid: true });\n return;\n }\n // Reset the error styling on valid date input\n if (isDateInputInvalid) {\n this.setState({ isDateInputInvalid: false, showDateInputError: false });\n }\n } else {\n this.setState({ isDateInputInvalid: true });\n }\n\n // Set date so Pikaday date picker value stays in sync with input\n this.datePicker.setDate(parsedDate, true);\n\n if (onChange) {\n const formattedDate = this.formatValue(parsedDate);\n onChange(parsedDate, formattedDate);\n }\n } else if (isDateInputInvalid) {\n this.setState({ isDateInputInvalid: false, showDateInputError: false });\n }\n };\n\n handleInputBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n const { isAccessible, isTextInputAllowed, onBlur } = this.props;\n const { isDateInputInvalid } = this.state;\n const nextActiveElement = event.relatedTarget || document.activeElement;\n\n // This is mostly here to cancel out the pikaday hide() on blur\n if (\n this.datePicker &&\n this.datePicker.isVisible() &&\n nextActiveElement &&\n nextActiveElement === this.datePickerButtonEl\n ) {\n this.shouldStayClosed = true;\n setTimeout(() => {\n this.shouldStayClosed = false;\n }, TOGGLE_DELAY_MS);\n }\n\n if (onBlur) {\n onBlur(event);\n }\n\n // Since we fire parent onChange event if isTextInputAllowed,\n // fire it on blur if the user typed a correct date format\n let inputDate: Date | null | undefined = null;\n\n if (this.dateInputEl) {\n let dateInputElVal = null;\n if (isAccessible && !this.canUseDateInputType) {\n dateInputElVal = this.parseDisplayDateType(this.dateInputEl.value);\n }\n inputDate = new Date(dateInputElVal || this.dateInputEl.value);\n }\n\n if ((isTextInputAllowed || (isAccessible && !this.canUseDateInputType)) && inputDate && inputDate.getDate()) {\n this.onSelectHandler(inputDate);\n }\n\n if (isAccessible && isDateInputInvalid) this.setState({ showDateInputError: true });\n };\n\n handleButtonClick = (event: React.SyntheticEvent<HTMLButtonElement>) => {\n event.preventDefault();\n event.stopPropagation();\n const { isAccessible, isDisabled } = this.props;\n\n if (isAccessible) {\n if (isDisabled || !this.datePicker) {\n return;\n }\n\n if (this.datePicker.isVisible()) {\n this.datePicker.hide();\n this.focusDatePicker();\n } else {\n this.datePicker.show();\n }\n return;\n }\n\n if (!this.shouldStayClosed) {\n this.focusDatePicker();\n }\n };\n\n handleOnClick = (event: React.SyntheticEvent<HTMLInputElement>) => {\n const { isAccessible } = this.props;\n\n if (isAccessible) {\n // Suppress Firefox default behavior: clicking on input type \"date\"\n // opens the browser date picker.\n event.preventDefault();\n event.stopPropagation();\n }\n };\n\n formatDisplay = (date?: Date | null): string => {\n const { displayFormat, intl } = this.props;\n return date ? intl.formatDate(date, displayFormat) : '';\n };\n\n formatDisplayDateType = (date?: Date | null): string => {\n // Input type \"date\" only accepts the format YYYY-MM-DD\n return date ? getFormattedDate(date, DateFormat.UTC_ISO_STRING_DATE_FORMAT).slice(0, 10) : '';\n };\n\n parseDisplayDateType = (dateString?: string | null): Date | null => {\n if (dateString && ISO_DATE_FORMAT_PATTERN.test(dateString)) {\n // Calling new Date('YYYY-MM-DD') without 'T00:00:00' yields undesired results:\n // E.g. new Date('2017-06-01') => May 31 2017\n // E.g. new Date('2017-06-01T00:00:00') => June 01 2017\n // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/Date#parameters\n return new Date(`${dateString}T00:00:00`);\n }\n return null;\n };\n\n formatValue = (date: Date | null): string | number => {\n const { dateFormat } = this.props;\n return dateFormat ? getFormattedDate(date, dateFormat) : '';\n };\n\n clearDate = (event: React.SyntheticEvent<HTMLButtonElement>) => {\n // Prevents the date picker from opening after clearing\n event.preventDefault();\n const { isAccessible } = this.props;\n\n if (this.datePicker) {\n this.datePicker.setDate(null);\n }\n this.onSelectHandler(null);\n\n if (isAccessible) {\n this.focusDatePicker();\n }\n };\n\n /** Determines whether a new date input falls back to a text input or not */\n shouldUseAccessibleFallback = (): boolean => {\n const test = document.createElement('input');\n\n try {\n test.type = 'date';\n } catch (e) {\n // no-op\n }\n\n // If date input falls back to text input, show the fallback\n return test.type === 'text';\n };\n\n renderCalendarButton = () => {\n const { intl, isAccessible, isAlwaysVisible, isDisabled } = this.props;\n const { formatMessage } = intl;\n\n if (isAlwaysVisible) {\n return null;\n }\n\n // De-emphasizing the Pikaday date picker because it does not meet accessibility standards\n // Screenreaders & navigating via keyboard will no longer pick up on this element\n const accessibleAttrs = isAccessible ? { 'aria-hidden': true, tabIndex: -1 } : {};\n\n return (\n <PlainButton\n aria-label={formatMessage(messages.chooseDate)}\n className=\"date-picker-open-btn\"\n getDOMRef={ref => {\n this.datePickerButtonEl = ref;\n }}\n isDisabled={isDisabled}\n onClick={this.handleButtonClick}\n type={ButtonType.BUTTON}\n {...accessibleAttrs}\n >\n <Calendar16 />\n </PlainButton>\n );\n };\n\n render() {\n const {\n className,\n customInput,\n description,\n error,\n errorTooltipPosition,\n hideLabel,\n hideOptionalLabel,\n inputProps,\n intl,\n isAccessible,\n isClearable,\n isDisabled,\n isRequired,\n isTextInputAllowed,\n label,\n maxDate,\n minDate,\n name,\n onFocus,\n placeholder,\n resinTarget,\n value,\n } = this.props;\n const { isDateInputInvalid } = this.state;\n const { formatMessage } = intl;\n\n const errorMessage = error || this.getDateInputError();\n const hasError = !!errorMessage || isDateInputInvalid;\n const hasValue = !!value || isDateInputInvalid;\n\n const classes = classNames(className, 'date-picker-wrapper', {\n 'show-clear-btn': isClearable && hasValue && !isDisabled,\n 'show-error': hasError,\n });\n\n const ariaAttrs = {\n 'aria-invalid': hasError,\n 'aria-required': isRequired,\n 'aria-errormessage': this.errorMessageID,\n 'aria-describedby': description ? this.descriptionID : undefined,\n };\n\n const resinTargetAttr = resinTarget ? { [RESIN_TAG_TARGET]: resinTarget } : {};\n\n let valueAttr;\n if (isAccessible) {\n valueAttr = { defaultValue: this.formatDisplayDateType(value) };\n } else if (isTextInputAllowed) {\n valueAttr = { defaultValue: this.formatDisplay(value) };\n } else {\n valueAttr = { value: this.formatDisplay(value) };\n }\n\n let onChangeAttr;\n if (isAccessible && this.canUseDateInputType) {\n onChangeAttr = { onChange: this.handleOnChange };\n } else if (isTextInputAllowed || (isAccessible && !this.canUseDateInputType)) {\n onChangeAttr = {};\n } else {\n // Fixes prop type error about read-only field\n // Not adding readOnly so constraint validation works\n onChangeAttr = { onChange: noop };\n }\n\n let additionalAttrs;\n if (isAccessible && this.canUseDateInputType) {\n additionalAttrs = {\n max: this.formatDisplayDateType(maxDate) || '9999-12-31',\n min: this.formatDisplayDateType(minDate) || '0001-01-01',\n };\n } else if (isAccessible && !this.canUseDateInputType) {\n // \"name\" prop is required for pattern validation to be surfaced on form submit. See components/form-elements/form/Form.js\n // \"title\" prop is shown during constraint validation as a description of the pattern\n // See https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/pattern#usability\n additionalAttrs = { name, pattern: ISO_DATE_FORMAT_PATTERN.source, title: 'YYYY-MM-DD' };\n } else {\n additionalAttrs = {};\n }\n\n return (\n <div className={classes}>\n <span className=\"date-picker-icon-holder\">\n <Label hideLabel={hideLabel} showOptionalText={!hideOptionalLabel && !isRequired} text={label}>\n <>\n {!!description && (\n <div id={this.descriptionID} className=\"date-picker-description\">\n {description}\n </div>\n )}\n <Tooltip\n className=\"date-picker-error-tooltip\"\n isShown={!!errorMessage}\n position={errorTooltipPosition}\n text={errorMessage || ''}\n theme={TooltipTheme.ERROR}\n >\n {customInput ? (\n React.cloneElement(customInput, {\n disabled: isDisabled,\n ref: (ref: HTMLInputElement) => {\n this.dateInputEl = ref;\n },\n required: isRequired,\n ...resinTargetAttr,\n ...ariaAttrs,\n })\n ) : (\n <input\n ref={ref => {\n this.dateInputEl = ref;\n }}\n className=\"date-picker-input\"\n disabled={isDisabled}\n onBlur={this.handleInputBlur}\n onClick={this.handleOnClick}\n placeholder={placeholder || formatMessage(messages.chooseDate)}\n required={isRequired}\n type={isAccessible && this.canUseDateInputType ? 'date' : 'text'}\n {...onChangeAttr}\n onFocus={onFocus}\n onKeyDown={this.handleInputKeyDown}\n {...resinTargetAttr}\n {...ariaAttrs}\n {...inputProps}\n {...valueAttr}\n {...additionalAttrs}\n />\n )}\n </Tooltip>\n <span id={this.errorMessageID} className=\"accessibility-hidden\" role=\"alert\">\n {errorMessage}\n </span>\n </>\n </Label>\n {isClearable && hasValue && !isDisabled ? (\n <PlainButton\n aria-label={formatMessage(messages.dateClearButton)}\n className=\"date-picker-clear-btn\"\n onClick={this.clearDate}\n type={ButtonType.BUTTON}\n >\n <ClearBadge16 />\n </PlainButton>\n ) : null}\n {hasError ? (\n <Alert16\n className=\"date-picker-icon-alert\"\n title={<FormattedMessage {...messages.iconAlertText} />}\n />\n ) : null}\n {this.renderCalendarButton()}\n <input\n className=\"date-picker-unix-time-input\"\n name={name}\n readOnly\n type=\"hidden\"\n value={value ? this.formatValue(value) : ''}\n />\n </span>\n </div>\n );\n }\n}\n\nexport { DatePicker as DatePickerBase };\nexport default injectIntl(DatePicker);\n"],"file":"DatePicker.js"}
|
|
@@ -23,10 +23,11 @@
|
|
|
23
23
|
}
|
|
24
24
|
|
|
25
25
|
.date-picker-input {
|
|
26
|
+
min-width: 160px;
|
|
26
27
|
height: 32px;
|
|
27
28
|
margin-top: 5px;
|
|
28
29
|
margin-bottom: 0;
|
|
29
|
-
padding-right:
|
|
30
|
+
padding-right: 6px;
|
|
30
31
|
text-overflow: ellipsis;
|
|
31
32
|
|
|
32
33
|
&::-webkit-calendar-picker-indicator {
|
|
@@ -45,6 +46,7 @@
|
|
|
45
46
|
right: 7px;
|
|
46
47
|
bottom: 8px;
|
|
47
48
|
display: inline-flex;
|
|
49
|
+
background-color: $white;
|
|
48
50
|
}
|
|
49
51
|
|
|
50
52
|
.date-picker-open-btn:hover {
|
|
@@ -68,10 +70,6 @@
|
|
|
68
70
|
transition: fill linear .1s;
|
|
69
71
|
fill: $bdl-gray-50;
|
|
70
72
|
}
|
|
71
|
-
|
|
72
|
-
&.is-hidden {
|
|
73
|
-
opacity: 0;
|
|
74
|
-
}
|
|
75
73
|
}
|
|
76
74
|
|
|
77
75
|
> .date-picker-clear-btn:hover,
|
|
@@ -105,21 +103,19 @@
|
|
|
105
103
|
}
|
|
106
104
|
}
|
|
107
105
|
|
|
108
|
-
&.show-
|
|
109
|
-
.date-picker-clear-btn,
|
|
110
|
-
.date-picker-clear-btn:hover,
|
|
111
|
-
.date-picker-clear-btn:active {
|
|
112
|
-
right: 25px;
|
|
113
|
-
}
|
|
114
|
-
|
|
106
|
+
&.show-error {
|
|
115
107
|
.date-picker-input {
|
|
116
|
-
|
|
108
|
+
border-color: $bdl-watermelon-red;
|
|
117
109
|
}
|
|
118
110
|
}
|
|
119
111
|
|
|
120
|
-
&.
|
|
121
|
-
.date-picker-
|
|
122
|
-
|
|
112
|
+
&.show-clear-btn.show-error {
|
|
113
|
+
.date-picker-clear-btn {
|
|
114
|
+
right: 25px;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
.date-picker-icon-alert {
|
|
118
|
+
right: 42px;
|
|
123
119
|
}
|
|
124
120
|
}
|
|
125
121
|
}
|
|
@@ -337,7 +337,7 @@ function (_React$Component) {
|
|
|
337
337
|
onMouseEnter: this.handleButtonHover,
|
|
338
338
|
onMouseLeave: this.handleButtonHoverLeave,
|
|
339
339
|
role: 'button',
|
|
340
|
-
|
|
340
|
+
tabIndex: '0',
|
|
341
341
|
'aria-haspopup': 'true',
|
|
342
342
|
'aria-expanded': isVisible ? 'true' : 'false'
|
|
343
343
|
};
|
|
@@ -389,7 +389,7 @@ class Flyout extends React.Component<Props, State> {
|
|
|
389
389
|
onMouseEnter: this.handleButtonHover,
|
|
390
390
|
onMouseLeave: this.handleButtonHoverLeave,
|
|
391
391
|
role: 'button',
|
|
392
|
-
|
|
392
|
+
tabIndex: '0',
|
|
393
393
|
'aria-haspopup': 'true',
|
|
394
394
|
'aria-expanded': isVisible ? 'true' : 'false',
|
|
395
395
|
};
|