UNPKG

@nuragic/pickers

Version:

React components, that implements material design pickers for material-ui v4

122 lines (110 loc) 6.08 kB
import _defineProperty from '@babel/runtime/helpers/esm/defineProperty'; import _objectWithoutProperties from '@babel/runtime/helpers/esm/objectWithoutProperties'; import { useMemo, createElement } from 'react'; import { w as withDefaultProps, u as useUtils } from './dimensions-f39eca69.js'; import _extends from '@babel/runtime/helpers/esm/extends'; import clsx from 'clsx'; import Typography from '@material-ui/core/Typography'; import { makeStyles } from '@material-ui/core/styles'; import { P as PickerToolbar } from './ClockView-cbc47796.js'; import { n as isYearOnlyView, o as isYearAndMonthViews, g as useParsedDate, q as getFormatAndMaskByViews, r as validateDate, a as defaultMaxDate, d as defaultMinDate } from './Picker-9fd3de05.js'; import { m as makeValidationHook, b as makePickerWithStateAndWrapper, c as ResponsiveWrapper, M as MobileWrapper, d as DesktopWrapper, S as StaticWrapper } from './makePickerWithState-a4b8917f.js'; var muiPickersComponentConfig = { name: 'MuiPickersDatePickerToolbar' }; var useStyles = makeStyles({ root: {}, dateTitleLandscape: { margin: 'auto 16px auto auto' }, penIcon: { position: 'relative', top: 4 } }, muiPickersComponentConfig); var DatePickerToolbar = withDefaultProps(muiPickersComponentConfig, function (_ref) { var date = _ref.date, views = _ref.views, isLandscape = _ref.isLandscape, isMobileKeyboardViewOpen = _ref.isMobileKeyboardViewOpen, toggleMobileKeyboardView = _ref.toggleMobileKeyboardView, toolbarFormat = _ref.toolbarFormat, onChange = _ref.onChange, _ref$toolbarPlacehold = _ref.toolbarPlaceholder, toolbarPlaceholder = _ref$toolbarPlacehold === void 0 ? '––' : _ref$toolbarPlacehold, _ref$toolbarTitle = _ref.toolbarTitle, toolbarTitle = _ref$toolbarTitle === void 0 ? 'SELECT DATE' : _ref$toolbarTitle, other = _objectWithoutProperties(_ref, ["date", "views", "isLandscape", "isMobileKeyboardViewOpen", "toggleMobileKeyboardView", "toolbarFormat", "onChange", "toolbarPlaceholder", "toolbarTitle"]); var utils = useUtils(); var classes = useStyles(); var dateText = useMemo(function () { if (!date) { return toolbarPlaceholder; } if (toolbarFormat) { return utils.formatByString(date, toolbarFormat); } if (isYearOnlyView(views)) { return utils.format(date, 'year'); } if (isYearAndMonthViews(views)) { return utils.format(date, 'month'); } // Little localization hack (Google is doing the same for android native pickers): // For english localization it is convenient to include weekday into the date "Mon, Jun 1" // For other locales using strings like "June 1", without weekday return /en/.test(utils.getCurrentLocaleCode()) ? utils.format(date, 'normalDateWithWeekday') : utils.format(date, 'normalDate'); }, [date, toolbarFormat, toolbarPlaceholder, utils, views]); return /*#__PURE__*/createElement(PickerToolbar, _extends({ className: classes.root, toolbarTitle: toolbarTitle, isMobileKeyboardViewOpen: isMobileKeyboardViewOpen, toggleMobileKeyboardView: toggleMobileKeyboardView, isLandscape: isLandscape, penIconClassName: classes.penIcon }, other), /*#__PURE__*/createElement(Typography, { variant: "h4", "data-mui-test": "datepicker-toolbar-date", align: isLandscape ? 'left' : 'center', className: clsx(isLandscape && classes.dateTitleLandscape) }, dateText)); }); function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } var datePickerConfig = { useValidation: makeValidationHook(validateDate), DefaultToolbarComponent: DatePickerToolbar, useInterceptProps: function useInterceptProps(_ref) { var _ref$openTo = _ref.openTo, openTo = _ref$openTo === void 0 ? 'date' : _ref$openTo, _ref$views = _ref.views, views = _ref$views === void 0 ? ['year', 'date'] : _ref$views, _ref$minDate = _ref.minDate, __minDate = _ref$minDate === void 0 ? defaultMinDate : _ref$minDate, _ref$maxDate = _ref.maxDate, __maxDate = _ref$maxDate === void 0 ? defaultMaxDate : _ref$maxDate, other = _objectWithoutProperties(_ref, ["openTo", "views", "minDate", "maxDate"]); var utils = useUtils(); var minDate = useParsedDate(__minDate); var maxDate = useParsedDate(__maxDate); return _objectSpread(_objectSpread({ views: views, openTo: openTo, minDate: minDate, maxDate: maxDate }, getFormatAndMaskByViews(views, utils)), other); } }; var DatePicker = makePickerWithStateAndWrapper(ResponsiveWrapper, _objectSpread({ name: 'MuiDatePicker' }, datePickerConfig)); var MobileDatePicker = makePickerWithStateAndWrapper(MobileWrapper, _objectSpread({ name: 'MuiMobileDatePicker' }, datePickerConfig)); var DesktopDatePicker = makePickerWithStateAndWrapper(DesktopWrapper, _objectSpread({ name: 'MuiDesktopDatePicker' }, datePickerConfig)); var StaticDatePicker = makePickerWithStateAndWrapper(StaticWrapper, _objectSpread({ name: 'MuiStaticDatePicker' }, datePickerConfig)); export { DatePickerToolbar as D, MobileDatePicker as M, StaticDatePicker as S, DatePicker as a, DesktopDatePicker as b }; //# sourceMappingURL=DatePicker-24923e89.js.map