@wordpress/components
Version:
UI components for WordPress.
114 lines (98 loc) • 4.74 kB
JavaScript
;
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