UNPKG

@roo-ui/components

Version:

105 lines (88 loc) 7.29 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _styledBase = _interopRequireDefault(require("@emotion/styled-base")); var _react = _interopRequireDefault(require("react")); var _propTypes = _interopRequireDefault(require("prop-types")); var _isEqual = _interopRequireDefault(require("lodash/isEqual")); var _ = require("../../../"); var _CalendarDay = require("../CalendarDay"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 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); } var CalendarDaysWrapper = ( /*#__PURE__*/ 0, _styledBase.default)(_.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 (0, _isEqual.default)(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.default.createElement(CalendarDaysWrapper, null, weeks.map(function (week) { return week.map(function (day, index) { if (!day) { return _react.default.createElement(_CalendarDay.CalendarEmptyDay, { key: "".concat(year).concat(month).concat(index) }) // eslint-disable-line react/no-array-index-key ; } return _react.default.createElement(_CalendarDay.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.default.number.isRequired, year: _propTypes.default.number.isRequired, weeks: _propTypes.default.arrayOf(_propTypes.default.array).isRequired, getDateProps: _propTypes.default.func.isRequired, disabledDates: _propTypes.default.arrayOf(_propTypes.default.instanceOf(Date)), interactiveDisabledDates: _propTypes.default.bool, onMouseEnterOfDay: _propTypes.default.func, isInRange: _propTypes.default.func }; var _default = CalendarDays; exports.default = _default;