UNPKG

@wordpress/components

Version:
114 lines (98 loc) 4.74 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "DatePicker", { enumerable: true, get: function () { return _date.default; } }); Object.defineProperty(exports, "TimePicker", { enumerable: true, get: function () { return _time.default; } }); exports.default = void 0; var _element = require("@wordpress/element"); require("react-dates/initialize"); var _lodash = require("lodash"); var _i18n = require("@wordpress/i18n"); var _button = _interopRequireDefault(require("../button")); var _date = _interopRequireDefault(require("./date")); var _time = _interopRequireDefault(require("./time")); /** * External dependencies */ // Needed to initialise the default datepicker styles. // See: https://github.com/airbnb/react-dates#initialize /** * WordPress dependencies */ /** * Internal dependencies */ function DateTimePicker({ currentDate, is12Hour, isInvalidDate, onMonthPreviewed = _lodash.noop, onChange, events }, ref) { const [calendarHelpIsVisible, setCalendarHelpIsVisible] = (0, _element.useState)(false); function onClickDescriptionToggle() { setCalendarHelpIsVisible(!calendarHelpIsVisible); } return (0, _element.createElement)("div", { ref: ref, className: "components-datetime" }, !calendarHelpIsVisible && (0, _element.createElement)(_element.Fragment, null, (0, _element.createElement)(_time.default, { currentTime: currentDate, onChange: onChange, is12Hour: is12Hour }), (0, _element.createElement)(_date.default, { currentDate: currentDate, onChange: onChange, isInvalidDate: isInvalidDate, events: events, onMonthPreviewed: onMonthPreviewed })), calendarHelpIsVisible && (0, _element.createElement)(_element.Fragment, null, (0, _element.createElement)("div", { className: "components-datetime__calendar-help" }, (0, _element.createElement)("h4", null, (0, _i18n.__)('Click to Select')), (0, _element.createElement)("ul", null, (0, _element.createElement)("li", null, (0, _i18n.__)('Click the right or left arrows to select other months in the past or the future.')), (0, _element.createElement)("li", null, (0, _i18n.__)('Click the desired day to select it.'))), (0, _element.createElement)("h4", null, (0, _i18n.__)('Navigating with a keyboard')), (0, _element.createElement)("ul", null, (0, _element.createElement)("li", null, (0, _element.createElement)("abbr", { "aria-label": (0, _i18n._x)('Enter', 'keyboard button') }, "\u21B5"), ' ' /* JSX removes whitespace, but a space is required for screen readers. */ , (0, _element.createElement)("span", null, (0, _i18n.__)('Select the date in focus.'))), (0, _element.createElement)("li", null, (0, _element.createElement)("abbr", { "aria-label": (0, _i18n.__)('Left and Right Arrows') }, "\u2190/\u2192"), ' ' /* JSX removes whitespace, but a space is required for screen readers. */ , (0, _i18n.__)('Move backward (left) or forward (right) by one day.')), (0, _element.createElement)("li", null, (0, _element.createElement)("abbr", { "aria-label": (0, _i18n.__)('Up and Down Arrows') }, "\u2191/\u2193"), ' ' /* JSX removes whitespace, but a space is required for screen readers. */ , (0, _i18n.__)('Move backward (up) or forward (down) by one week.')), (0, _element.createElement)("li", null, (0, _element.createElement)("abbr", { "aria-label": (0, _i18n.__)('Page Up and Page Down') }, (0, _i18n.__)('PgUp/PgDn')), ' ' /* JSX removes whitespace, but a space is required for screen readers. */ , (0, _i18n.__)('Move backward (PgUp) or forward (PgDn) by one month.')), (0, _element.createElement)("li", null, (0, _element.createElement)("abbr", { "aria-label": (0, _i18n.__)('Home and End') }, (0, _i18n.__)('Home/End')), ' ' /* JSX removes whitespace, but a space is required for screen readers. */ , (0, _i18n.__)('Go to the first (home) or last (end) day of a week.'))))), (0, _element.createElement)("div", { className: "components-datetime__buttons" }, !calendarHelpIsVisible && currentDate && (0, _element.createElement)(_button.default, { className: "components-datetime__date-reset-button", isLink: true, onClick: () => onChange(null) }, (0, _i18n.__)('Reset')), (0, _element.createElement)(_button.default, { className: "components-datetime__date-help-toggle", isLink: true, onClick: onClickDescriptionToggle }, calendarHelpIsVisible ? (0, _i18n.__)('Close') : (0, _i18n.__)('Calendar Help')))); } var _default = (0, _element.forwardRef)(DateTimePicker); exports.default = _default; //# sourceMappingURL=index.js.map