react-dates
Version:
A responsive and accessible date range picker component built with React
75 lines (67 loc) • 3.38 kB
JavaScript
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
import React from 'react';
import PropTypes from 'prop-types';
import { forbidExtraProps } from 'airbnb-prop-types';
import { css, withStyles, withStylesPropTypes } from 'react-with-styles';
var propTypes = process.env.NODE_ENV !== "production" ? forbidExtraProps(_objectSpread({}, withStylesPropTypes, {
unicode: PropTypes.string.isRequired,
label: PropTypes.string.isRequired,
action: PropTypes.string.isRequired,
block: PropTypes.bool
})) : {};;
var defaultProps = {
block: false
};
function KeyboardShortcutRow(_ref) {
var unicode = _ref.unicode,
label = _ref.label,
action = _ref.action,
block = _ref.block,
styles = _ref.styles;
return React.createElement("li", css(styles.KeyboardShortcutRow, block && styles.KeyboardShortcutRow__block), React.createElement("div", css(styles.KeyboardShortcutRow_keyContainer, block && styles.KeyboardShortcutRow_keyContainer__block), React.createElement("span", _extends({}, css(styles.KeyboardShortcutRow_key), {
role: "img",
"aria-label": "".concat(label, ",") // add comma so screen readers will pause before reading action
}), unicode)), React.createElement("div", css(styles.KeyboardShortcutRow_action), action));
}
KeyboardShortcutRow.propTypes = process.env.NODE_ENV !== "production" ? propTypes : {};
KeyboardShortcutRow.defaultProps = defaultProps;
export default withStyles(function (_ref2) {
var color = _ref2.reactDates.color;
return {
KeyboardShortcutRow: {
listStyle: 'none',
margin: '6px 0'
},
KeyboardShortcutRow__block: {
marginBottom: 16
},
KeyboardShortcutRow_keyContainer: {
display: 'inline-block',
whiteSpace: 'nowrap',
textAlign: 'right',
// is not handled by isRTL
marginRight: 6 // is not handled by isRTL
},
KeyboardShortcutRow_keyContainer__block: {
textAlign: 'left',
// is not handled by isRTL
display: 'inline'
},
KeyboardShortcutRow_key: {
fontFamily: 'monospace',
fontSize: 12,
textTransform: 'uppercase',
background: color.core.grayLightest,
padding: '2px 6px'
},
KeyboardShortcutRow_action: {
display: 'inline',
wordBreak: 'break-word',
marginLeft: 8 // is not handled by isRTL
}
};
}, {
pureComponent: typeof React.PureComponent !== 'undefined'
})(KeyboardShortcutRow);