UNPKG

@roo-ui/components

Version:

91 lines (81 loc) 6.78 kB
import _styled from "@emotion/styled-base"; 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); } import React from 'react'; import PropTypes from 'prop-types'; import isEqual from 'lodash/isEqual'; import { Flex } from '../../../'; import { CalendarDay, CalendarEmptyDay } from '../CalendarDay'; var CalendarDaysWrapper = /*#__PURE__*/ _styled(Flex, { target: "e1l80ss60", label: "CalendarDaysWrapper" })(process.env.NODE_ENV === "production" ? { name: "1fg7h64", styles: "flex-wrap:wrap;margin-bottom:2px;margin-right:2px;" } : { name: "1fg7h64", styles: "flex-wrap:wrap;margin-bottom:2px;margin-right:2px;", map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9EYXRlUGlja2VyL2NvbXBvbmVudHMvQ2FsZW5kYXJEYXlzL0NhbGVuZGFyRGF5cy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFRd0MiLCJmaWxlIjoiLi4vLi4vLi4vLi4vLi4vc3JjL0RhdGVQaWNrZXIvY29tcG9uZW50cy9DYWxlbmRhckRheXMvQ2FsZW5kYXJEYXlzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgaXNFcXVhbCBmcm9tICdsb2Rhc2gvaXNFcXVhbCc7XG5cbmltcG9ydCB7IEZsZXggfSBmcm9tICcuLi8uLi8uLi8nO1xuaW1wb3J0IHsgQ2FsZW5kYXJEYXksIENhbGVuZGFyRW1wdHlEYXkgfSBmcm9tICcuLi9DYWxlbmRhckRheSc7XG5cbmNvbnN0IENhbGVuZGFyRGF5c1dyYXBwZXIgPSBzdHlsZWQoRmxleClgXG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgbWFyZ2luLWJvdHRvbTogMnB4O1xuICBtYXJnaW4tcmlnaHQ6IDJweDtcbmA7XG5cbmNvbnN0IGdldEN1c3RvbURhdGVQcm9wcyA9IChkaXNhYmxlZERhdGVzLCBpbnRlcmFjdGl2ZURpc2FibGVkRGF0ZXMsIGlzSW5SYW5nZSwgZGF5KSA9PiB7XG4gIGNvbnN0IGlzRGlzYWJsZWQgPSBkaXNhYmxlZERhdGVzXG4gICAgLnNvbWUoZGlzYWJsZWREYXRlID0+IGlzRXF1YWwoU3RyaW5nKGRpc2FibGVkRGF0ZSksIFN0cmluZyhkYXkuZGF0ZSkpKTtcblxuICBjb25zdCBwcm9wcyA9IHtcbiAgICBzZWxlY3RlZDogZGF5LnNlbGVjdGVkIHx8IChpbnRlcmFjdGl2ZURpc2FibGVkRGF0ZXMgJiYgZGF5LnNlbGVjdGFibGUpLFxuICAgIGhpZ2hsaWdodGVkOiBpc0luUmFuZ2UoZGF5LmRhdGUpLFxuICAgIHNlbGVjdGFibGU6IGRheS5zZWxlY3RhYmxlLFxuICB9O1xuXG4gIGlmIChpc0Rpc2FibGVkKSB7XG4gICAgcHJvcHMuc2VsZWN0YWJsZSA9IGZhbHNlO1xuICAgIHByb3BzLmhpZ2hsaWdodGVkID0gZmFsc2U7XG4gICAgcHJvcHMuZGlzYWJsZWQgPSAhaW50ZXJhY3RpdmVEaXNhYmxlZERhdGVzO1xuICB9XG5cbiAgcmV0dXJuIHByb3BzO1xufTtcblxuY29uc3QgQ2FsZW5kYXJEYXlzID0gKHtcbiAgd2Vla3MsIG1vbnRoLCB5ZWFyLCBnZXREYXRlUHJvcHMsIGRpc2FibGVkRGF0ZXMsIGludGVyYWN0aXZlRGlzYWJsZWREYXRlcyxcbiAgb25Nb3VzZUVudGVyT2ZEYXksIGlzSW5SYW5nZSxcbn0pID0+IChcbiAgPENhbGVuZGFyRGF5c1dyYXBwZXI+XG4gICAge3dlZWtzLm1hcCh3ZWVrID0+XG4gICAgICAgIHdlZWsubWFwKChkYXksIGluZGV4KSA9PiB7XG4gICAgICAgICAgaWYgKCFkYXkpIHtcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgIDxDYWxlbmRhckVtcHR5RGF5IGtleT17YCR7eWVhcn0ke21vbnRofSR7aW5kZXh9YH0gLz4gLy8gZXNsaW50LWRpc2FibGUtbGluZSByZWFjdC9uby1hcnJheS1pbmRleC1rZXlcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxDYWxlbmRhckRheVxuICAgICAgICAgICAgICBrZXk9e2Ake3llYXJ9JHttb250aH0ke2luZGV4fWB9IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgcmVhY3Qvbm8tYXJyYXktaW5kZXgta2V5XG4gICAgICAgICAgICAgIHsuLi5nZXREYXRlUHJvcHMoe1xuICAgICAgICAgICAgICAgIGRhdGVPYmo6IGRheSxcbiAgICAgICAgICAgICAgICBvbk1vdXNlRW50ZXI6ICgpID0+IG9uTW91c2VFbnRlck9mRGF5KGRheSksXG4gICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgICB7Li4uZ2V0Q3VzdG9tRGF0ZVByb3BzKGRpc2FibGVkRGF0ZXMsIGludGVyYWN0aXZlRGlzYWJsZWREYXRlcywgaXNJblJhbmdlLCBkYXkpfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7ZGF5LmRhdGUuZ2V0RGF0ZSgpfVxuICAgICAgICAgICAgPC9DYWxlbmRhckRheT5cbiAgICAgICAgICApO1xuICAgICAgICB9KSl9XG4gIDwvQ2FsZW5kYXJEYXlzV3JhcHBlcj5cbik7XG5cbkNhbGVuZGFyRGF5cy5kZWZhdWx0UHJvcHMgPSB7XG4gIGRpc2FibGVkRGF0ZXM6IFtdLFxuICBpbnRlcmFjdGl2ZURpc2FibGVkRGF0ZXM6IGZhbHNlLFxuICBpc0luUmFuZ2U6ICgpID0+IHt9LFxuICBvbk1vdXNlRW50ZXJPZkRheTogKCkgPT4ge30sXG59O1xuXG5DYWxlbmRhckRheXMucHJvcFR5cGVzID0ge1xuICBtb250aDogUHJvcFR5cGVzLm51bWJlci5pc1JlcXVpcmVkLFxuICB5ZWFyOiBQcm9wVHlwZXMubnVtYmVyLmlzUmVxdWlyZWQsXG4gIHdlZWtzOiBQcm9wVHlwZXMuYXJyYXlPZihQcm9wVHlwZXMuYXJyYXkpLmlzUmVxdWlyZWQsXG4gIGdldERhdGVQcm9wczogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgZGlzYWJsZWREYXRlczogUHJvcFR5cGVzLmFycmF5T2YoUHJvcFR5cGVzLmluc3RhbmNlT2YoRGF0ZSkpLFxuICBpbnRlcmFjdGl2ZURpc2FibGVkRGF0ZXM6IFByb3BUeXBlcy5ib29sLFxuICBvbk1vdXNlRW50ZXJPZkRheTogUHJvcFR5cGVzLmZ1bmMsXG4gIGlzSW5SYW5nZTogUHJvcFR5cGVzLmZ1bmMsXG59O1xuXG5leHBvcnQgZGVmYXVsdCBDYWxlbmRhckRheXM7XG4iXX0= */" }); var getCustomDateProps = function getCustomDateProps(disabledDates, interactiveDisabledDates, isInRange, day) { var isDisabled = disabledDates.some(function (disabledDate) { return isEqual(String(disabledDate), String(day.date)); }); var props = { selected: day.selected || interactiveDisabledDates && day.selectable, highlighted: isInRange(day.date), selectable: day.selectable }; if (isDisabled) { props.selectable = false; props.highlighted = false; props.disabled = !interactiveDisabledDates; } return props; }; var CalendarDays = function CalendarDays(_ref) { var weeks = _ref.weeks, month = _ref.month, year = _ref.year, getDateProps = _ref.getDateProps, disabledDates = _ref.disabledDates, interactiveDisabledDates = _ref.interactiveDisabledDates, onMouseEnterOfDay = _ref.onMouseEnterOfDay, isInRange = _ref.isInRange; return React.createElement(CalendarDaysWrapper, null, weeks.map(function (week) { return week.map(function (day, index) { if (!day) { return React.createElement(CalendarEmptyDay, { key: "".concat(year).concat(month).concat(index) }) // eslint-disable-line react/no-array-index-key ; } return React.createElement(CalendarDay, _extends({ key: "".concat(year).concat(month).concat(index) // eslint-disable-line react/no-array-index-key }, getDateProps({ dateObj: day, onMouseEnter: function onMouseEnter() { return onMouseEnterOfDay(day); } }), getCustomDateProps(disabledDates, interactiveDisabledDates, isInRange, day)), day.date.getDate()); }); })); }; CalendarDays.defaultProps = { disabledDates: [], interactiveDisabledDates: false, isInRange: function isInRange() {}, onMouseEnterOfDay: function onMouseEnterOfDay() {} }; CalendarDays.propTypes = { month: PropTypes.number.isRequired, year: PropTypes.number.isRequired, weeks: PropTypes.arrayOf(PropTypes.array).isRequired, getDateProps: PropTypes.func.isRequired, disabledDates: PropTypes.arrayOf(PropTypes.instanceOf(Date)), interactiveDisabledDates: PropTypes.bool, onMouseEnterOfDay: PropTypes.func, isInRange: PropTypes.func }; export default CalendarDays;