UNPKG

test-nut-ui

Version:

<p align="center"> <img alt="logo" src="https://img11.360buyimg.com/imagetools/jfs/t1/211965/25/7152/22022/61b16785E433119bb/aa41d7a9f7e823f3.png" width="150" style="margin-bottom: 10px;"> </p>

738 lines (737 loc) 32.2 kB
import _slicedToArray from "@babel/runtime/helpers/slicedToArray"; import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray"; import _defineProperty from "@babel/runtime/helpers/defineProperty"; function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); 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 = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), true).forEach(function(key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function(key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } import React__default, { useState, useRef, useEffect } from "react"; import classNames from "classnames"; import { C as ComponentDefaults } from "./typings.js"; import { U as Utils, g as getPreMonthDates, a as getDaysStatus, b as getCurrMonthData } from "./date.js"; import { r as requestAniFrame } from "./raf.js"; import { u as useConfig } from "./configprovider2.js"; import { u as usePropsValue } from "./use-props-value.js"; import { y as yr, j as jr, R as Rr } from "./index.js"; import Picker from "./Picker.js"; var splitDate = function splitDate2(date) { var split = date.indexOf("-") !== -1 ? "-" : "/"; return date.split(split); }; var isMultiple = function isMultiple2(day, days) { if (days.length > 0) { return days.some(function(item) { return Utils.isEqual(item, day); }); } return false; }; var isCurrDay = function isCurrDay2(month, day) { var date = "".concat(month.curData[0], "/").concat(month.curData[1], "/").concat(day); return Utils.isEqual(date, Utils.date2Str(/* @__PURE__ */ new Date(), "/")); }; var getCurrDate = function getCurrDate2(day, month) { return "".concat(month.curData[0], "/").concat(month.curData[1], "/").concat(Utils.getNumTwoBit(+day.day)); }; var isStart = function isStart2(day, days) { return Utils.isEqual(days[0], day); }; var isEnd = function isEnd2(day, days) { return Utils.isEqual(days[1], day); }; var isStartAndEnd = function isStartAndEnd2(days) { return days.length >= 2 && Utils.isEqual(days[0], days[1]); }; var defaultProps = _objectSpread(_objectSpread({}, ComponentDefaults), {}, { type: "single", autoBackfill: false, popup: true, title: "", startDate: Utils.getDay(0), endDate: Utils.getDay(365), showToday: true, startText: "", endText: "", confirmText: "", showTitle: true, showSubTitle: true, scrollAnimation: true, firstDayOfWeek: 0, isSwitch: false, isQuick: false, firstClickAsFirstDay: false, disableDate: function disableDate(date) { return false; }, renderHeaderButtons: void 0, renderDay: void 0, renderDayTop: void 0, renderDayBottom: void 0, onConfirm: function onConfirm(data) { }, onUpdate: function onUpdate() { }, onDayClick: function onDayClick(data) { }, onPageChange: function onPageChange(data) { } }); var CalendarItem = React__default.forwardRef(function(props, ref) { var _classNames2; var _useConfig = useConfig(), locale = _useConfig.locale; var _defaultProps$props = _objectSpread(_objectSpread({}, defaultProps), props), style = _defaultProps$props.style, className = _defaultProps$props.className, popup = _defaultProps$props.popup, type = _defaultProps$props.type, autoBackfill = _defaultProps$props.autoBackfill, title = _defaultProps$props.title, defaultValue = _defaultProps$props.defaultValue, startDate = _defaultProps$props.startDate, endDate = _defaultProps$props.endDate, showToday = _defaultProps$props.showToday, startText = _defaultProps$props.startText, endText = _defaultProps$props.endText, confirmText = _defaultProps$props.confirmText, showTitle = _defaultProps$props.showTitle, showSubTitle = _defaultProps$props.showSubTitle, scrollAnimation = _defaultProps$props.scrollAnimation, firstDayOfWeek = _defaultProps$props.firstDayOfWeek, isSwitch = _defaultProps$props.isSwitch, isQuick = _defaultProps$props.isQuick, firstClickAsFirstDay = _defaultProps$props.firstClickAsFirstDay, disableDate2 = _defaultProps$props.disableDate, renderHeaderButtons = _defaultProps$props.renderHeaderButtons, renderDay = _defaultProps$props.renderDay, renderDayTop = _defaultProps$props.renderDayTop, renderDayBottom = _defaultProps$props.renderDayBottom, onConfirm2 = _defaultProps$props.onConfirm, onUpdate2 = _defaultProps$props.onUpdate, onDayClick2 = _defaultProps$props.onDayClick, onPageChange2 = _defaultProps$props.onPageChange; var weekdays = locale.calendaritem.weekdays; var weeks = [].concat(_toConsumableArray(weekdays.slice(firstDayOfWeek, 7)), _toConsumableArray(weekdays.slice(0, firstDayOfWeek))); var monthTitle = locale.calendaritem.monthTitle; var _useState = useState(""), _useState2 = _slicedToArray(_useState, 2), yearMonthTitle = _useState2[0], setYearMonthTitle = _useState2[1]; var _useState3 = useState([]), _useState4 = _slicedToArray(_useState3, 2), monthsData = _useState4[0], setMonthsData = _useState4[1]; var _useState5 = useState(0), _useState6 = _slicedToArray(_useState5, 2), monthsNum = _useState6[0], setMonthsNum = _useState6[1]; var _useState7 = useState(0), _useState8 = _slicedToArray(_useState7, 2), translateY = _useState8[0], setTranslateY = _useState8[1]; var _useState9 = useState([]), _useState10 = _slicedToArray(_useState9, 2), monthDefaultRange = _useState10[0], setMonthDefaultRange = _useState10[1]; var _useState11 = useState(0), _useState12 = _slicedToArray(_useState11, 2), currentIndex = _useState12[0], setCurrentIndex = _useState12[1]; var propStartDate = startDate || Utils.getDay(0); var propEndDate = endDate || Utils.getDay(365); var startDates = splitDate(propStartDate); var endDates = splitDate(propEndDate); var _useState13 = useState({ currDateArray: [] }), _useState14 = _slicedToArray(_useState13, 1), state = _useState14[0]; var resetDefaultValue = function resetDefaultValue2() { if (defaultValue || Array.isArray(defaultValue) && defaultValue.length > 0) { return type !== "single" ? _toConsumableArray(defaultValue) : defaultValue; } return void 0; }; var _usePropsValue = usePropsValue({ value: props.value, defaultValue: resetDefaultValue(), finalValue: [], onChange: function onChange(val) { } }), _usePropsValue2 = _slicedToArray(_usePropsValue, 2), currentDate = _usePropsValue2[0], setCurrentDate = _usePropsValue2[1]; var weeksPanel = useRef(null); var monthsRef = useRef(null); var monthsPanel = useRef(null); var viewAreaRef = useRef(null); var _useState15 = useState(0), _useState16 = _slicedToArray(_useState15, 2), avgHeight = _useState16[0], setAvgHeight = _useState16[1]; var viewHeight = 0; var classPrefix = "nut-calendar"; var dayPrefix = "nut-calendar-day"; var _useState17 = useState([]), _useState18 = _slicedToArray(_useState17, 2), pickerOptions = _useState18[0], setPickerOptions = _useState18[1]; var _useState19 = useState([]), _useState20 = _slicedToArray(_useState19, 2), pickerValues = _useState20[0], setPickerValues = _useState20[1]; var getMonthData = function getMonthData2(curData, monthNum, type2) { var i = 0; var date = curData; var monthData = monthsData; var pickerOption = pickerOptions; do { var y = parseInt(date[0], 10); var m = parseInt(date[1], 10); var days = [].concat(_toConsumableArray(getPreMonthDates("prev", y, m, firstDayOfWeek)), _toConsumableArray(getDaysStatus("active", y, m))); var cssHeight = 39 + (days.length > 35 ? 384 : 320); var scrollTop = 0; if (monthData.length > 0) { var monthEle = monthData[monthData.length - 1]; scrollTop = monthEle.scrollTop + monthEle.cssHeight; } var monthInfo = { curData: date, title: monthTitle(y, m), monthData: days, cssHeight, scrollTop }; if (type2 === "next") { if (!endDates || !Utils.compareDate("".concat(endDates[0], "/").concat(endDates[1], "/").concat(Utils.getMonthDays(endDates[0], endDates[1])), "".concat(curData[0], "/").concat(curData[1], "/").concat(curData[2]))) { monthData.push(monthInfo); } } else if (!startDates || !Utils.compareDate("".concat(curData[0], "/").concat(curData[1], "/").concat(curData[2]), "".concat(startDates[0], "/").concat(startDates[1], "/01"))) { monthData.unshift(monthInfo); } var findex = pickerOption.findIndex(function(item) { return item.text == +date[0] + "年"; }); if (findex === -1) { pickerOption.push({ text: +date[0] + "年", value: pickerOption.length + 1, children: [{ text: +date[1] + "月", value: monthData.length }] }); } else { var pickerChildren = pickerOption[findex].children; var childIndex = pickerChildren.findIndex(function(item) { return item.text == +date[1] + "月"; }); childIndex === -1 && pickerChildren.push({ text: +date[1] + "月", value: monthData.length }); } date = getCurrMonthData("next", y, m); } while (i++ < monthNum); setPickerOptions(pickerOptions); setMonthsData(monthData); }; var setReachedYearMonthInfo = function setReachedYearMonthInfo2(current) { var currentMonthsData = monthsData[current]; var _currentMonthsData$cu = _slicedToArray(currentMonthsData.curData, 2), year = _currentMonthsData$cu[0], month = _currentMonthsData$cu[1]; if (currentMonthsData.title === yearMonthTitle) return; onPageChange2 && onPageChange2([year, month, "".concat(year, "-").concat(month)]); setYearMonthTitle(currentMonthsData.title); }; var setDefaultRange = function setDefaultRange2(monthNum, current) { setCurrentIndex(current); var start = 0; var end = 0; if (monthNum >= 3) { if (current > 0 && current < monthNum) { start = current - 1; end = current + 3; } else if (current === 0) { start = current; end = current + 4; } else if (current === monthNum) { start = current - 2; end = current + 2; } } else { start = 0; end = monthNum + 2; } if (!isSwitch) { setMonthDefaultRange([start, end]); setTranslateY(monthsData[start].scrollTop); } else { var monthData = monthsData[current]; var yearIndex = pickerOptions.findIndex(function(item) { return item.text === +monthData.curData[0] + "年"; }); if (yearIndex !== -1) { var monthIndex = pickerOptions[yearIndex].children.findIndex(function(item) { return item.text === +monthData.curData[1] + "月"; }); setPickerValues([pickerOptions[yearIndex].value, pickerOptions[yearIndex].children[monthIndex].value]); } else { setPickerValues([1, 1]); } setMonthDefaultRange([current, current + 1]); } setReachedYearMonthInfo(current); }; var getMonthNum = function getMonthNum2() { var monthNum = Number(endDates[1]) - Number(startDates[1]); var yearNum = Number(endDates[0]) - Number(startDates[0]); if (yearNum > 0) { monthNum += 12 * yearNum; } if (monthNum <= 0) { monthNum = 1; } setMonthsNum(monthNum); return monthNum; }; var setDefaultDate = function setDefaultDate2() { var defaultData = []; if (type === "range" && Array.isArray(currentDate)) { if (currentDate.length > 0) { if (propStartDate && Utils.compareDate(currentDate[0], propStartDate)) { currentDate.splice(0, 1, propStartDate); } if (propEndDate && Utils.compareDate(propEndDate, currentDate[1])) { currentDate.splice(1, 1, propEndDate); } defaultData = [].concat(_toConsumableArray(splitDate(currentDate[0])), _toConsumableArray(splitDate(currentDate[1]))); } } else if (type === "multiple" && Array.isArray(currentDate)) { if (currentDate.length > 0) { var defaultArr = []; var obj = {}; currentDate.forEach(function(item) { if (propStartDate && !Utils.compareDate(item, propStartDate) && propEndDate && !Utils.compareDate(propEndDate, item)) { if (!Object.hasOwnProperty.call(obj, item)) { defaultArr.push(item); obj[item] = item; } } }); currentDate.splice(0) && currentDate.push.apply(currentDate, defaultArr); defaultData = _toConsumableArray(splitDate(defaultArr[0])); } } else if (type === "week" && Array.isArray(currentDate)) { if (currentDate.length > 0) { var _splitDate = splitDate(currentDate[0]), _splitDate2 = _slicedToArray(_splitDate, 3), y = _splitDate2[0], m = _splitDate2[1], d = _splitDate2[2]; var weekArr = Utils.getWeekDate(y, m, d, firstDayOfWeek); currentDate.splice(0) && currentDate.push.apply(currentDate, _toConsumableArray(weekArr)); if (propStartDate && Utils.compareDate(currentDate[0], propStartDate)) { currentDate.splice(0, 1, propStartDate); } if (propEndDate && Utils.compareDate(propEndDate, currentDate[1])) { currentDate.splice(1, 1, propEndDate); } defaultData = [].concat(_toConsumableArray(splitDate(currentDate[0])), _toConsumableArray(splitDate(currentDate[1]))); } } else if (currentDate) { if (currentDate.length > 0) { if (propStartDate && Utils.compareDate(currentDate, propStartDate)) { defaultData = _toConsumableArray(splitDate(propStartDate)); } else if (propEndDate && !Utils.compareDate(currentDate, propEndDate)) { defaultData = _toConsumableArray(splitDate(propEndDate)); } else { defaultData = _toConsumableArray(splitDate(currentDate)); } } else { defaultData = []; } } return defaultData; }; var getCurrentIndex = function getCurrentIndex2(defaultData) { var current = 0; var lastCurrent = 0; if (defaultData.length > 0) { monthsData.forEach(function(item, index2) { if (item.title === monthTitle(defaultData[0], defaultData[1])) { current = index2; } if (type === "range" || type === "week") { if (item.title === monthTitle(defaultData[3], defaultData[4])) { lastCurrent = index2; } } }); } else { var date = /* @__PURE__ */ new Date(); var year = date.getFullYear(); var month = date.getMonth() + 1; var index = monthsData.findIndex(function(item) { return +item.curData[0] === year && +item.curData[1] === month; }); if (index > -1) { current = index; } } return { current, lastCurrent }; }; var renderCurrentDate = function renderCurrentDate2() { var defaultData = setDefaultDate(); var current = getCurrentIndex(defaultData); if (defaultData.length > 0) { if (type === "range") { chooseDay({ day: defaultData[2], type: "active" }, monthsData[current.current], true); chooseDay({ day: defaultData[5], type: "active" }, monthsData[current.lastCurrent], true); } else if (props.type === "week") { chooseDay({ day: defaultData[2], type: "curr" }, monthsData[current.current], true); } else if (type === "multiple") { _toConsumableArray(currentDate).forEach(function(item) { var dateArr = splitDate(item); var currentIndex2 = current.current; monthsData.forEach(function(item2, index) { if (item2.title === monthTitle(dateArr[0], dateArr[1])) { currentIndex2 = index; } }); chooseDay({ day: dateArr[2], type: "active" }, monthsData[currentIndex2], true); }); } else { chooseDay({ day: defaultData[2], type: "active" }, monthsData[current.current], true); } } return current.current; }; var requestAniFrameFunc = function requestAniFrameFunc2(current, monthNum) { if (isSwitch) return; var lastItem = monthsData[monthsData.length - 1]; var containerHeight = lastItem.cssHeight + lastItem.scrollTop; requestAniFrame(function() { if (monthsRef && monthsPanel && viewAreaRef) { viewHeight = monthsRef.current.clientHeight; monthsPanel.current.style.height = "".concat(containerHeight, "px"); if (!monthsData[current]) return; monthsRef.current.scrollTop = monthsData[current].scrollTop + (current === 0 ? 0 : 44); } }); setAvgHeight(Math.floor(containerHeight / (monthNum + 1))); }; var initData = function initData2() { var monthNum = getMonthNum(); getMonthData(startDates, monthNum, "next"); var defaultData = setDefaultDate(); var current = getCurrentIndex(defaultData); setDefaultRange(monthNum, current.current); requestAniFrameFunc(current.current, monthNum); }; useEffect(function() { initData(); }, []); useEffect(function() { renderCurrentDate(); }, [currentDate]); var resetRender = function resetRender2() { state.currDateArray.splice(0); monthsData.splice(0); initData(); }; useEffect(function() { setCurrentDate(resetDefaultValue() || []); popup && resetRender(); }, [defaultValue]); var scrollToDate = function scrollToDate2(date) { if (Utils.compareDate(date, propStartDate)) { date = propStartDate; } else if (!Utils.compareDate(date, propEndDate)) { date = propEndDate; } var dateArr = splitDate(date); monthsData.forEach(function(item, index) { if (item.title === monthTitle(dateArr[0], dateArr[1])) { var currTop = monthsData[index].scrollTop; if (monthsRef.current) { var distance = currTop - monthsRef.current.scrollTop; if (scrollAnimation) { var flag = 0; var interval = setInterval(function() { flag++; if (monthsRef.current) { var offset = distance / 10; monthsRef.current.scrollTop += offset + 48; } if (flag >= 10) { clearInterval(interval); if (monthsRef.current) { monthsRef.current.scrollTop = currTop + 48; } } }, 40); } else { monthsRef.current.scrollTop = currTop + 48; } } } }); }; var monthsViewScroll = function monthsViewScroll2(e) { if (monthsData.length <= 1) { return; } var scrollTop = e.target.scrollTop; var current = Math.floor(scrollTop / avgHeight); var nextTop = monthsData[current + 1].scrollTop + 50; var nextHeight = monthsData[current + 1].cssHeight; if (current === 0) { if (scrollTop >= nextTop) { current += 1; } } else if (current > 0 && current < monthsNum - 1) { if (scrollTop >= nextTop) { current += 1; } if (scrollTop < monthsData[current].scrollTop) { current -= 1; } } else { var viewPosition = Math.round(scrollTop + viewHeight); if (current + 1 <= monthsNum && viewPosition >= nextTop + nextHeight) { current += 1; } if (current >= 1 && scrollTop < monthsData[current - 1].scrollTop) { current -= 1; } } if (current < 0) return; setDefaultRange(monthsNum, current); }; React__default.useImperativeHandle(ref, function() { return { scrollToDate }; }); var getClasses = function getClasses2(day, month) { var dateStr = getCurrDate(day, month); if (day.type === "active") { if (propStartDate && Utils.compareDate(dateStr, propStartDate) || propEndDate && Utils.compareDate(propEndDate, dateStr)) { return "".concat(dayPrefix, "-disabled"); } if (type === "range" || type === "week") { if (isStart(dateStr, currentDate) || isEnd(dateStr, currentDate)) { return "".concat(dayPrefix, "-active ").concat(isStart(dateStr, currentDate) ? "active-start" : "", " ").concat(isEnd(dateStr, currentDate) ? "active-end" : ""); } if (Array.isArray(currentDate) && Object.values(currentDate).length === 2 && Utils.compareDate(currentDate[0], dateStr) && Utils.compareDate(dateStr, currentDate[1])) { if (disableDate2(day)) { return "".concat(dayPrefix, "-choose-disabled"); } return "".concat(dayPrefix, "-choose"); } } else if (type === "multiple" && isMultiple(dateStr, currentDate) || !Array.isArray(currentDate) && Utils.isEqual(currentDate, dateStr)) { return "".concat(dayPrefix, "-active"); } if (disableDate2(day)) { return "".concat(dayPrefix, "-disabled"); } return null; } return "".concat(dayPrefix, "-disabled"); }; var chooseDay = function chooseDay2(day, month, isFirst) { if (getClasses(day, month) === "".concat(dayPrefix, "-disabled")) { return; } var days = _toConsumableArray(month.curData); var _month$curData = _slicedToArray(month.curData, 2), y = _month$curData[0], m = _month$curData[1]; days[2] = typeof day.day === "number" ? Utils.getNumTwoBit(day.day) : day.day; days[3] = "".concat(days[0], "/").concat(days[1], "/").concat(days[2]); days[4] = Utils.getWhatDay(+days[0], +days[1], +days[2]); if (type === "multiple") { if (currentDate.length > 0) { var hasIndex = ""; currentDate.forEach(function(item, index) { if (item === days[3]) { hasIndex = index; } }); if (isFirst) { state.currDateArray.push(_toConsumableArray(days)); } else if (hasIndex !== "") { currentDate.splice(hasIndex, 1); state.currDateArray.splice(hasIndex, 1); } else { currentDate.push(days[3]); state.currDateArray.push(_toConsumableArray(days)); } } else { currentDate.push(days[3]); state.currDateArray = [_toConsumableArray(days)]; } } else if (type === "range") { var curDataLength = Object.values(currentDate).length; if (curDataLength === 2 || curDataLength === 0) { Array.isArray(currentDate) && currentDate.splice(0) && currentDate.push(days[3]); state.currDateArray = [_toConsumableArray(days)]; } else if (Utils.compareDate(currentDate[0], days[3])) { Array.isArray(currentDate) && currentDate.push(days[3]); state.currDateArray = [].concat(_toConsumableArray(state.currDateArray), [_toConsumableArray(days)]); } else { Array.isArray(currentDate) && currentDate.unshift(days[3]); state.currDateArray = [_toConsumableArray(days)].concat(_toConsumableArray(state.currDateArray)); } } else if (type === "week") { var newFirstDayOfWeek = firstDayOfWeek; if (firstClickAsFirstDay) { newFirstDayOfWeek = /* @__PURE__ */ new Date("".concat(y, "/").concat(m, "/").concat(day.day)).getDay(); } var weekArr = Utils.getWeekDate(y, m, "".concat(day.day), newFirstDayOfWeek); if (propStartDate && Utils.compareDate(weekArr[0], propStartDate)) { weekArr.splice(0, 1, propStartDate); } if (propEndDate && Utils.compareDate(propEndDate, weekArr[1])) { weekArr.splice(1, 1, propEndDate); } Array.isArray(currentDate) && currentDate.splice(0) && currentDate.push.apply(currentDate, _toConsumableArray(weekArr)); state.currDateArray = [Utils.formatResultDate(weekArr[0]), Utils.formatResultDate(weekArr[1])]; } else { setCurrentDate(days[3]); state.currDateArray = _toConsumableArray(days); } if (!isFirst) { onDayClick2 && onDayClick2(state.currDateArray); if (autoBackfill || !popup) { confirm(); } } setMonthsData(monthsData.slice()); }; var _useState21 = useState(locale.calendaritem.rangeTextStart), _useState22 = _slicedToArray(_useState21, 2), rangeConfirmText = _useState22[0], setRangeConfirmText = _useState22[1]; useEffect(function() { if (type !== "range") return; if (state.currDateArray.length === 0) { setRangeConfirmText(locale.calendaritem.rangeTextStart); } else if (state.currDateArray.length === 1) { setRangeConfirmText(locale.calendaritem.rangeTextEnd); } else { setRangeConfirmText(locale.calendaritem.confirm); } }, [state.currDateArray]); var confirm = function confirm2() { if (type === "range" && state.currDateArray.length === 2 || type !== "range") { var chooseData = state.currDateArray.slice(0); onConfirm2 && onConfirm2(chooseData); if (popup) { onUpdate2 && onUpdate2(); } } }; var classes = classNames(_defineProperty({}, "".concat(classPrefix, "-nofooter"), !!autoBackfill), className, classPrefix); var headerClasses = classNames((_classNames2 = {}, _defineProperty(_classNames2, "".concat(classPrefix, "-header"), true), _defineProperty(_classNames2, "".concat(classPrefix, "-header-title"), !popup), _classNames2)); var isStartTip = function isStartTip2(day, month) { return (type === "range" || type === "week") && day.type === "active" && isStart(getCurrDate(day, month), currentDate); }; var isEndTip = function isEndTip2(day, month) { return currentDate.length >= 2 && (type === "range" || type === "week") && day.type === "active" && isEnd(getCurrDate(day, month), currentDate); }; var onPrev = function onPrev2() { if (currentIndex - 1 >= 0) { setDefaultRange(monthsNum, currentIndex - 1); } }; var onNext = function onNext2() { if (currentIndex + 1 <= monthsNum) { setDefaultRange(monthsNum, currentIndex + 1); } }; var _useState23 = useState(false), _useState24 = _slicedToArray(_useState23, 2), showPciker = _useState24[0], setShowPicker = _useState24[1]; var onPcikerConfirm = function onPcikerConfirm2(options, values) { setPickerValues(values); setDefaultRange(monthsNum, values[1] - 1); }; var renderHeader = function renderHeader2() { return React__default.createElement("div", { className: headerClasses }, showTitle && React__default.createElement("div", { className: "".concat(classPrefix, "-title") }, title || locale.calendaritem.title), renderHeaderButtons && React__default.createElement("div", { className: "".concat(classPrefix, "-header-buttons") }, renderHeaderButtons()), React__default.createElement("div", { className: "".concat(classPrefix, "-weeks"), ref: weeksPanel }, weeks.map(function(item) { return React__default.createElement("div", { className: "".concat(classPrefix, "-week-item"), key: item }, item); })), showSubTitle && React__default.createElement("div", { className: "".concat(classPrefix, "-sub-title") }, isSwitch ? React__default.createElement(React__default.Fragment, null, React__default.createElement(yr, { color: "#8c8c8c", style: { visibility: currentIndex === 0 ? "hidden" : "visible" }, onClick: onPrev }), React__default.createElement("span", { onClick: function onClick() { return isQuick && setShowPicker(true); } }, yearMonthTitle, " ", isQuick ? React__default.createElement(jr, null) : ""), React__default.createElement(Rr, { color: "#8c8c8c", style: { visibility: currentIndex + 1 > monthsNum ? "hidden" : "visible" }, onClick: onNext })) : yearMonthTitle)); }; var renderContent = function renderContent2() { return React__default.createElement("div", { className: "".concat(classPrefix, "-content"), onScroll: monthsViewScroll, ref: monthsRef }, React__default.createElement("div", { className: "".concat(classPrefix, "-pannel"), ref: monthsPanel }, React__default.createElement("div", { className: "viewArea", ref: viewAreaRef, style: { transform: "translateY(".concat(translateY, "px)") } }, monthsData.slice(monthDefaultRange[0], monthDefaultRange[1]).map(function(month, key) { return React__default.createElement("div", { className: "".concat(classPrefix, "-month"), key }, isSwitch || currentIndex === 0 && key === 0 ? React__default.createElement(React__default.Fragment, null) : React__default.createElement("div", { className: "".concat(classPrefix, "-month-title") }, month.title), React__default.createElement("div", { className: "".concat(classPrefix, "-days ").concat(classPrefix, "-days-month").concat(+month.curData[1]) }, month.monthData.map(function(day, i) { return React__default.createElement("div", { className: ["".concat(classPrefix, "-day"), getClasses(day, month)].join(" "), onClick: function onClick() { chooseDay(day, month); }, key: i }, React__default.createElement("div", { className: "".concat(classPrefix, "-day-day") }, renderDay ? renderDay(day) : day.day), !isStartTip(day, month) && renderDayTop && React__default.createElement("div", { className: "".concat(classPrefix, "-day-info-top") }, renderDayTop(day)), !isStartTip(day, month) && !isEndTip(day, month) && renderDayBottom && React__default.createElement("div", { className: "".concat(classPrefix, "-day-info-bottom") }, renderDayBottom(day)), !isStartTip(day, month) && !isEndTip(day, month) && !renderDayBottom && showToday && isCurrDay(month, day.day) && React__default.createElement("div", { className: "".concat(classPrefix, "-day-info-curr") }, locale.calendaritem.today), isStartTip(day, month) && React__default.createElement("div", { className: "".concat(classPrefix, "-day-info ").concat(isStartAndEnd(currentDate) ? "".concat(classPrefix, "-day-info-top") : "") }, startText || locale.calendaritem.start), isEndTip(day, month) && React__default.createElement("div", { className: "".concat(classPrefix, "-day-info") }, endText || locale.calendaritem.end)); }))); })))); }; var renderFooter = function renderFooter2() { return React__default.createElement("div", { className: "nut-calendar-footer" }, React__default.createElement("div", { className: "calendar-confirm-btn ".concat(type === "range" && rangeConfirmText !== locale.calendaritem.confirm ? "calendar-confirm-btn-disabled" : ""), onClick: confirm }, type === "range" ? rangeConfirmText : confirmText || locale.calendaritem.confirm)); }; return React__default.createElement(React__default.Fragment, null, React__default.createElement("div", { className: classes, style }, renderHeader(), renderContent(), popup && !autoBackfill ? renderFooter() : ""), pickerValues.length > 1 ? React__default.createElement(Picker, { title: "选择年月", visible: showPciker, value: pickerValues, options: pickerOptions, threeDimensional: false, onClose: function onClose() { return setShowPicker(false); }, onConfirm: function onConfirm3(list, values) { return onPcikerConfirm(list, values); } }) : React__default.createElement(React__default.Fragment, null)); }); CalendarItem.defaultProps = defaultProps; CalendarItem.displayName = "NutCalendarItem"; export { CalendarItem as default };