@kne/react-calendar 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../src/locale/zh-CN.js","../src/locale/en-US.js","../src/withLocale.js","../src/constants.js","../src/useStackedPanelLayout.js","../src/utils.js","../src/rules.js","../src/events.js","../src/formatCalendarLabels.js","../src/components/Header/NavIcon.js","../src/components/Header/constants.js","../src/components/Header/YearPickerPanel.js","../src/components/Header/MonthPickerPanel.js","../src/components/Header/index.js","../src/useStackedLayout.js","../src/components/DateCell/index.js","../src/components/EventItem/getEventTagLabel.js","../src/components/EventItem/index.js","../src/components/Panel/PanelTitle.js","../src/components/Panel/PanelScrollShadow.js","../src/components/Panel/usePanelScrollShadow.js","../src/components/Panel/ViewPanel.js","../src/useScheduleSelectionGesture.js","../src/components/SchedulePanel/DefaultFormInner.js","../src/components/SchedulePanel/SlotEvents.js","../src/components/SchedulePanel/SlotItem.js","../src/components/SchedulePanel/index.js","../src/ScheduleCalendar.js"],"sourcesContent":["const locale = {\n 'Header.today': '今天',\n 'Header.prevMonth': '上一月',\n 'Header.nextMonth': '下一月',\n 'Header.prevYearPage': '上一组年份',\n 'Header.nextYearPage': '下一组年份',\n 'Header.yearLabel': '{year}年',\n 'Header.monthLabel': '{monthName}',\n 'Header.monthPickerItem': '{monthName}',\n 'PanelTitle.dateLabel': '{year}年{monthName}{day}日',\n 'PanelTitle.eventCount': '共 {count} 个日程',\n 'ViewPanel.empty': '暂无日程',\n 'SchedulePanel.selectFreeSlot': '选择空闲时间段',\n 'SchedulePanel.newSchedule': '新增日程:{range}',\n 'SchedulePanel.cancel': '取消',\n 'SchedulePanel.save': '保存',\n 'SlotItem.disabled': '不可选',\n 'SlotItem.occupied': '已占用',\n 'DefaultFormInner.title': '标题',\n 'DefaultFormInner.titlePlaceholder': '请输入日程标题',\n 'DefaultFormInner.detail': '详情',\n 'DefaultFormInner.detailPlaceholder': '请输入日程详情',\n 'Calendar.month.1': '1月',\n 'Calendar.month.2': '2月',\n 'Calendar.month.3': '3月',\n 'Calendar.month.4': '4月',\n 'Calendar.month.5': '5月',\n 'Calendar.month.6': '6月',\n 'Calendar.month.7': '7月',\n 'Calendar.month.8': '8月',\n 'Calendar.month.9': '9月',\n 'Calendar.month.10': '10月',\n 'Calendar.month.11': '11月',\n 'Calendar.month.12': '12月'\n};\n\nexport default locale;\n","const locale = {\n 'Header.today': 'Today',\n 'Header.prevMonth': 'Previous month',\n 'Header.nextMonth': 'Next month',\n 'Header.prevYearPage': 'Previous years',\n 'Header.nextYearPage': 'Next years',\n 'Header.yearLabel': '{year}',\n 'Header.monthLabel': '{monthName}',\n 'Header.monthPickerItem': '{monthName}',\n 'PanelTitle.dateLabel': '{monthName} {day}, {year}',\n 'PanelTitle.eventCount': '{count} events',\n 'ViewPanel.empty': 'No events',\n 'SchedulePanel.selectFreeSlot': 'Select an available time slot',\n 'SchedulePanel.newSchedule': 'New event: {range}',\n 'SchedulePanel.cancel': 'Cancel',\n 'SchedulePanel.save': 'Save',\n 'SlotItem.disabled': 'Unavailable',\n 'SlotItem.occupied': 'Occupied',\n 'DefaultFormInner.title': 'Title',\n 'DefaultFormInner.titlePlaceholder': 'Enter event title',\n 'DefaultFormInner.detail': 'Details',\n 'DefaultFormInner.detailPlaceholder': 'Enter event details',\n 'Calendar.month.1': 'Jan',\n 'Calendar.month.2': 'Feb',\n 'Calendar.month.3': 'Mar',\n 'Calendar.month.4': 'Apr',\n 'Calendar.month.5': 'May',\n 'Calendar.month.6': 'Jun',\n 'Calendar.month.7': 'Jul',\n 'Calendar.month.8': 'Aug',\n 'Calendar.month.9': 'Sep',\n 'Calendar.month.10': 'Oct',\n 'Calendar.month.11': 'Nov',\n 'Calendar.month.12': 'Dec'\n};\n\nexport default locale;\n","import { createWithIntlProvider } from '@kne/react-intl';\nimport zhCN from './locale/zh-CN';\nimport enUS from './locale/en-US';\n\nconst withLocale = createWithIntlProvider({\n defaultLocale: 'zh-CN',\n messages: {\n 'zh-CN': zhCN,\n 'en-US': enUS\n },\n namespace: 'react-calendar'\n});\n\nexport default withLocale;\n","export const DATE_FORMAT = 'YYYY-MM-DD';\nexport const TIME_FORMAT = 'HH:mm';\n/** Stack panels vertically when container width is below this value (px). */\nexport const LAYOUT_STACK_BREAKPOINT = 560;\n/** Minimum panel viewport height in stacked layout (px), aligned with root min-height. */\nexport const LAYOUT_MIN_HEIGHT = 560;\n","import { useLayoutEffect, useState } from 'react';\nimport { LAYOUT_MIN_HEIGHT } from './constants';\n\nconst measureHeight = node => {\n if (!node) {\n return 0;\n }\n return Math.ceil(node.getBoundingClientRect().height);\n};\n\nexport const useStackedPanelLayout = (rootRef, calendarRef, stacked) => {\n const [layoutStyle, setLayoutStyle] = useState(undefined);\n\n useLayoutEffect(() => {\n if (!stacked) {\n setLayoutStyle(undefined);\n return undefined;\n }\n\n const root = rootRef.current;\n const calendar = calendarRef.current;\n if (!root || !calendar) {\n return undefined;\n }\n\n const update = () => {\n const calendarHeight = measureHeight(calendar);\n const panelViewportHeight = Math.max(calendarHeight, LAYOUT_MIN_HEIGHT);\n const totalHeight = calendarHeight + panelViewportHeight;\n setLayoutStyle({\n height: totalHeight,\n '--schedule-panel-top': `${calendarHeight}px`,\n '--schedule-panel-height': `${panelViewportHeight}px`\n });\n };\n\n update();\n\n if (typeof ResizeObserver === 'undefined') {\n window.addEventListener('resize', update);\n return () => window.removeEventListener('resize', update);\n }\n\n const observer = new ResizeObserver(update);\n observer.observe(calendar);\n observer.observe(root);\n return () => observer.disconnect();\n }, [calendarRef, rootRef, stacked]);\n\n return layoutStyle;\n};\n\nexport default useStackedPanelLayout;\n","import dayjs from 'dayjs';\nimport useControlValue from '@kne/use-control-value';\nimport { DATE_FORMAT, TIME_FORMAT } from './constants';\n\nexport const classNames = (...list) =>\n list\n .flatMap(item => {\n if (!item) {\n return [];\n }\n if (typeof item === 'string') {\n return [item];\n }\n return Object.keys(item).filter(key => item[key]);\n })\n .join(' ');\n\nexport const toDayjs = value => {\n if (!value) {\n return null;\n }\n const date = dayjs(value);\n return date.isValid() ? date : null;\n};\n\nexport const parseDayTime = (date, time) => {\n const day = toDayjs(date) || dayjs();\n const parsed = dayjs(`${day.format(DATE_FORMAT)} ${time}`, `${DATE_FORMAT} ${TIME_FORMAT}`);\n return parsed.isValid() ? parsed : day.startOf('day');\n};\n\nexport const formatRange = (start, end) => `${dayjs(start).format(TIME_FORMAT)} - ${dayjs(end).format(TIME_FORMAT)}`;\n\nexport const getDefaultFormValues = (defaultFormValues, ctx) => {\n if (typeof defaultFormValues === 'function') {\n return defaultFormValues(ctx);\n }\n return {\n title: '',\n detail: '',\n ...(defaultFormValues || {})\n };\n};\n\nexport const sortEventsByStart = events =>\n [...(events || [])].sort((a, b) => {\n const aStart = toDayjs(a.start)?.valueOf() ?? 0;\n const bStart = toDayjs(b.start)?.valueOf() ?? 0;\n return aStart - bStart;\n });\n\nexport const dedupeEventsById = events => {\n const map = new Map();\n (events || []).forEach(event => {\n map.set(event.id, event);\n });\n return [...map.values()];\n};\n\nexport const useControlledState = ({ value, defaultValue, onChange }) => {\n const props = {};\n if (typeof value !== 'undefined') {\n props.value = value;\n }\n if (typeof defaultValue !== 'undefined') {\n props.defaultValue = defaultValue;\n }\n if (onChange) {\n props.onChange = onChange;\n }\n return useControlValue(props);\n};\n","const getRuleDisabled = (result, defaultReason) => {\n if (!result) {\n return null;\n }\n if (typeof result === 'boolean') {\n return result ? { disabled: true, reason: defaultReason } : null;\n }\n if (result.disabled) {\n return { disabled: true, reason: result.reason || defaultReason };\n }\n return null;\n};\n\nexport const checkRule = ({ date, slot, mode, disabledDate, disabledDateTime, availableDateTime }) => {\n if (disabledDate?.(date.toDate())) {\n return { disabled: true };\n }\n const ctx = {\n date: date.toDate(),\n mode,\n ...(slot\n ? {\n slot: {\n start: slot.start.toDate(),\n end: slot.end.toDate()\n }\n }\n : {})\n };\n const disabledResult = getRuleDisabled(disabledDateTime?.(ctx));\n if (disabledResult) {\n return disabledResult;\n }\n if (availableDateTime && !availableDateTime(ctx)) {\n return { disabled: true };\n }\n return null;\n};\n","import dayjs from 'dayjs';\nimport { DATE_FORMAT, TIME_FORMAT } from './constants';\nimport { parseDayTime, toDayjs } from './utils';\nimport { checkRule } from './rules';\n\nexport const normalizeEvent = event => {\n const start = toDayjs(event.start || event.date);\n const end = toDayjs(event.end || event.start || event.date);\n return {\n ...event,\n start,\n end: end && start && !end.isAfter(start) ? start.add(1, 'minute') : end\n };\n};\n\nexport const groupEventsByDate = events => {\n return (events || []).reduce((result, event) => {\n const normalized = normalizeEvent(event);\n if (!normalized.start || !normalized.end) {\n return result;\n }\n const startOfDay = normalized.start.startOf('day');\n const endOfDay = normalized.end.startOf('day');\n let current = startOfDay;\n while (current.isBefore(endOfDay) || current.isSame(endOfDay, 'day')) {\n const key = current.format(DATE_FORMAT);\n result[key] = result[key] || [];\n result[key].push(normalized);\n current = current.add(1, 'day');\n }\n return result;\n }, {});\n};\n\nconst getOverlappingEvents = (slotStart, slotEnd, sortedEvents) => {\n const matched = [];\n for (const event of sortedEvents) {\n if (!event.end.isAfter(slotStart)) {\n continue;\n }\n if (!event.start.isBefore(slotEnd)) {\n break;\n }\n matched.push(event);\n }\n return matched;\n};\n\nexport const generateTimeSlots = ({ date, events, timeUnit = 30, dayStart = '09:00', dayEnd = '18:00', disabledDate, disabledDateTime, availableDateTime, mode = 'schedule' }) => {\n const selectedDate = toDayjs(date) || dayjs();\n const startAt = parseDayTime(selectedDate, dayStart);\n const endAt = parseDayTime(selectedDate, dayEnd);\n if (!startAt.isBefore(endAt)) {\n return [];\n }\n const normalizedEvents = (events || [])\n .map(normalizeEvent)\n .filter(event => event.start && event.end)\n .sort((a, b) => a.start.valueOf() - b.start.valueOf());\n const slots = [];\n let current = startAt;\n\n while (current.isBefore(endAt)) {\n const slotStart = current;\n const slotEnd = slotStart.add(timeUnit, 'minute');\n const matchedEvents = getOverlappingEvents(slotStart, slotEnd, normalizedEvents);\n const baseSlot = {\n key: `${slotStart.format(DATE_FORMAT)}-${slotStart.format(TIME_FORMAT)}`,\n date: slotStart.format(DATE_FORMAT),\n start: slotStart,\n end: slotEnd\n };\n const ruleResult = checkRule({\n date: selectedDate,\n slot: baseSlot,\n mode,\n disabledDate,\n disabledDateTime,\n availableDateTime\n });\n\n slots.push({\n ...baseSlot,\n start: slotStart.toDate(),\n end: slotEnd.toDate(),\n status: ruleResult ? 'disabled' : matchedEvents.length > 0 ? 'occupied' : 'free',\n disabledReason: ruleResult?.reason,\n events: matchedEvents\n });\n current = slotEnd;\n }\n return slots;\n};\n","import dayjs from 'dayjs';\nimport { toDayjs } from './utils';\n\nconst toDay = value => toDayjs(value) || dayjs();\n\nexport const getMonthName = (formatMessage, monthIndex) => formatMessage({ id: `Calendar.month.${monthIndex + 1}` });\n\nexport const getPanelDateLabel = (formatMessage, date) => {\n const d = toDay(date);\n const monthIndex = d.month();\n return formatMessage(\n { id: 'PanelTitle.dateLabel' },\n {\n year: d.year(),\n month: monthIndex + 1,\n day: d.date(),\n monthName: getMonthName(formatMessage, monthIndex)\n }\n );\n};\n\nexport const getHeaderMonthLabel = (formatMessage, date) => {\n const d = toDay(date);\n const monthIndex = d.month();\n return formatMessage(\n { id: 'Header.monthLabel' },\n {\n month: monthIndex + 1,\n monthName: getMonthName(formatMessage, monthIndex)\n }\n );\n};\n\nexport const getMonthPickerItemLabel = (formatMessage, value, monthIndex) =>\n formatMessage(\n { id: 'Header.monthPickerItem' },\n {\n month: monthIndex + 1,\n monthName: getMonthName(formatMessage, monthIndex)\n }\n );\n","import style from './style.module.scss';\n\nconst HeaderNavIcon = ({ direction, className }) => (\n <svg className={className || style['header-nav-icon']} viewBox=\"0 0 16 16\" aria-hidden focusable=\"false\">\n <path d={direction === 'prev' ? 'M10 4 L6 8 L10 12' : 'M6 4 L10 8 L6 12'} fill=\"none\" stroke=\"currentColor\" strokeWidth=\"1.8\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n);\n\nexport default HeaderNavIcon;\n","export const YEAR_PAGE_SIZE = 12;\n\nexport const getYearPageStart = year => Math.floor(year / YEAR_PAGE_SIZE) * YEAR_PAGE_SIZE;\n","import { useMemo } from 'react';\nimport { useIntl } from '@kne/react-intl';\nimport { classNames } from '../../utils';\nimport HeaderNavIcon from './NavIcon';\nimport { YEAR_PAGE_SIZE } from './constants';\nimport style from './style.module.scss';\n\nconst PickerPanelNav = ({ label, onClick, children }) => (\n <button type=\"button\" className={style['picker-panel-nav']} aria-label={label} onClick={onClick}>\n {children}\n </button>\n);\n\nconst YearPickerPanel = ({ value, pageStart, onPageStartChange, onSelect }) => {\n const { formatMessage } = useIntl();\n const years = useMemo(() => Array.from({ length: YEAR_PAGE_SIZE }, (_, index) => pageStart + index), [pageStart]);\n return (\n <div className={style['picker-panel']}>\n <div className={style['picker-panel-header']}>\n <PickerPanelNav label={formatMessage({ id: 'Header.prevYearPage' })} onClick={() => onPageStartChange(pageStart - YEAR_PAGE_SIZE)}>\n <HeaderNavIcon direction=\"prev\" className={style['picker-panel-nav-icon']} />\n </PickerPanelNav>\n <div className={style['picker-panel-range']}>\n {pageStart}-{pageStart + YEAR_PAGE_SIZE - 1}\n </div>\n <PickerPanelNav label={formatMessage({ id: 'Header.nextYearPage' })} onClick={() => onPageStartChange(pageStart + YEAR_PAGE_SIZE)}>\n <HeaderNavIcon direction=\"next\" className={style['picker-panel-nav-icon']} />\n </PickerPanelNav>\n </div>\n <div className={style['picker-panel-grid']}>\n {years.map(year => (\n <button key={year} type=\"button\" className={classNames(style['picker-cell'], { [style['picker-cell-active']]: year === value.year() })} onClick={() => onSelect(year)}>\n {year}\n </button>\n ))}\n </div>\n </div>\n );\n};\n\nexport default YearPickerPanel;\n","import { useMemo } from 'react';\nimport { useIntl } from '@kne/react-intl';\nimport { getMonthPickerItemLabel } from '../../formatCalendarLabels';\nimport { classNames } from '../../utils';\nimport style from './style.module.scss';\n\nconst MonthPickerPanel = ({ value, onSelect }) => {\n const { formatMessage } = useIntl();\n const months = useMemo(() => Array.from({ length: 12 }, (_, index) => index), []);\n return (\n <div className={style['picker-panel']}>\n <div className={style['picker-panel-grid']}>\n {months.map(month => (\n <button key={month} type=\"button\" className={classNames(style['picker-cell'], { [style['picker-cell-active']]: month === value.month() })} onClick={() => onSelect(month)}>\n {getMonthPickerItemLabel(formatMessage, value, month)}\n </button>\n ))}\n </div>\n </div>\n );\n};\n\nexport default MonthPickerPanel;\n","import { useEffect, useState } from 'react';\nimport dayjs from 'dayjs';\nimport { Button, Popover, Space } from 'antd';\nimport { useIntl } from '@kne/react-intl';\nimport { getHeaderMonthLabel } from '../../formatCalendarLabels';\nimport { toDayjs } from '../../utils';\nimport HeaderNavIcon from './NavIcon';\nimport YearPickerPanel from './YearPickerPanel';\nimport MonthPickerPanel from './MonthPickerPanel';\nimport { getYearPageStart } from './constants';\nimport style from './style.module.scss';\n\nconst HeaderNavButton = ({ label, onClick, children }) => (\n <button type=\"button\" className={style['header-nav']} aria-label={label} onClick={onClick}>\n {children}\n </button>\n);\n\nconst Header = ({ current, showTodayButton, onCurrentChange, onSelectToday }) => {\n const { formatMessage } = useIntl();\n const date = toDayjs(current) || dayjs();\n const [yearOpen, setYearOpen] = useState(false);\n const [monthOpen, setMonthOpen] = useState(false);\n const [yearPageStart, setYearPageStart] = useState(() => getYearPageStart(date.year()));\n const currentYear = date.year();\n const yearText = formatMessage({ id: 'Header.yearLabel' }, { year: date.year() });\n const monthText = getHeaderMonthLabel(formatMessage, date);\n\n useEffect(() => {\n if (yearOpen) {\n setYearPageStart(getYearPageStart(currentYear));\n }\n }, [yearOpen, currentYear]);\n\n const handleYearSelect = year => {\n onCurrentChange(date.year(year), { source: 'picker' });\n setYearOpen(false);\n };\n\n const handleMonthSelect = month => {\n onCurrentChange(date.month(month), { source: 'picker' });\n setMonthOpen(false);\n };\n\n return (\n <div className={style['calendar-header']}>\n <div className={style['calendar-title']}>\n <Popover\n open={yearOpen}\n onOpenChange={open => {\n setYearOpen(open);\n if (open) {\n setMonthOpen(false);\n }\n }}\n trigger=\"click\"\n placement=\"bottomLeft\"\n rootClassName={style['header-picker-popover']}\n content={<YearPickerPanel value={date} pageStart={yearPageStart} onPageStartChange={setYearPageStart} onSelect={handleYearSelect} />}\n >\n <button type=\"button\" className={style['calendar-title-part']}>\n {yearText}\n </button>\n </Popover>\n <Popover\n open={monthOpen}\n onOpenChange={open => {\n setMonthOpen(open);\n if (open) {\n setYearOpen(false);\n }\n }}\n trigger=\"click\"\n placement=\"bottomLeft\"\n rootClassName={style['header-picker-popover']}\n content={<MonthPickerPanel value={date} onSelect={handleMonthSelect} />}\n >\n <button type=\"button\" className={style['calendar-title-part']}>\n {monthText}\n </button>\n </Popover>\n </div>\n <Space size={4} className={style['header-actions']}>\n {showTodayButton ? (\n <Button className={style['header-today']} type=\"text\" size=\"small\" onClick={onSelectToday}>\n {formatMessage({ id: 'Header.today' })}\n </Button>\n ) : null}\n <HeaderNavButton label={formatMessage({ id: 'Header.prevMonth' })} onClick={() => onCurrentChange(date.subtract(1, 'month'), { source: 'prevMonth' })}>\n <HeaderNavIcon direction=\"prev\" />\n </HeaderNavButton>\n <HeaderNavButton label={formatMessage({ id: 'Header.nextMonth' })} onClick={() => onCurrentChange(date.add(1, 'month'), { source: 'nextMonth' })}>\n <HeaderNavIcon direction=\"next\" />\n </HeaderNavButton>\n </Space>\n </div>\n );\n};\n\nexport default Header;\n","import { useEffect, useLayoutEffect, useState } from 'react';\n\nconst readWidth = node => {\n if (!node) {\n return 0;\n }\n return node.getBoundingClientRect().width;\n};\n\nexport const useStackedLayout = (ref, stackAt) => {\n const [stacked, setStacked] = useState(false);\n\n useLayoutEffect(() => {\n const node = ref.current;\n if (!node) {\n return;\n }\n setStacked(readWidth(node) < stackAt);\n }, [ref, stackAt]);\n\n useEffect(() => {\n const node = ref.current;\n if (!node) {\n return undefined;\n }\n\n const update = () => {\n setStacked(readWidth(node) < stackAt);\n };\n\n update();\n\n if (typeof ResizeObserver === 'undefined') {\n window.addEventListener('resize', update);\n return () => window.removeEventListener('resize', update);\n }\n\n const observer = new ResizeObserver(() => update());\n observer.observe(node);\n return () => observer.disconnect();\n }, [ref, stackAt]);\n\n return stacked;\n};\n\nexport default useStackedLayout;\n","import { Badge } from 'antd';\nimport { classNames } from '../../utils';\nimport style from './style.module.scss';\n\nconst DateCell = ({ date, dayEvents, selected, currentMonth, disabled, badgeMaxCount, renderDateCell }) => {\n const count = dayEvents.length;\n const customCell = renderDateCell?.(date.toDate(), {\n events: dayEvents,\n selected,\n currentMonth\n });\n if (customCell) {\n return customCell;\n }\n return (\n <div\n className={classNames(style['date-cell'], {\n [style['date-selected']]: selected,\n [style['date-muted']]: !currentMonth && !selected,\n [style['date-disabled']]: disabled && !selected,\n [style['date-has-events']]: count > 0 && !selected\n })}\n >\n <div className={style['date-number']}>{date.date()}</div>\n {count ? <Badge count={count > badgeMaxCount ? `${badgeMaxCount}+` : count} size=\"small\" /> : null}\n </div>\n );\n};\n\nexport default DateCell;\n","const getEventTagLabel = event => {\n if (!event.raw || typeof event.raw !== 'object') {\n return null;\n }\n const { label, type } = event.raw;\n if (typeof label === 'string' && label) {\n return label;\n }\n if (typeof type === 'string' && type) {\n return type;\n }\n return null;\n};\n\nexport default getEventTagLabel;\n","import { List, Tag } from 'antd';\nimport { classNames, formatRange } from '../../utils';\nimport getEventTagLabel from './getEventTagLabel';\nimport style from './style.module.scss';\n\nconst EventItem = ({ event, date, mode, renderEventItem, onEventClick }) => {\n if (renderEventItem) {\n return renderEventItem(event, { date, mode, onEventClick });\n }\n const clickable = !event.disabled && (typeof event.onClick === 'function' || typeof onEventClick === 'function');\n const handleClick = () => {\n if (typeof event.onClick === 'function') {\n event.onClick(event, { date, mode });\n return;\n }\n onEventClick?.(event, { date, mode });\n };\n const tagLabel = getEventTagLabel(event);\n return (\n <List.Item className={style['event-list-item']}>\n <div\n className={classNames(style['event-item'], {\n [style['event-item-clickable']]: clickable,\n [style['event-item-disabled']]: event.disabled\n })}\n role={clickable ? 'button' : undefined}\n tabIndex={clickable ? 0 : undefined}\n onClick={clickable ? handleClick : undefined}\n onKeyDown={\n clickable\n ? eventKey => {\n if (eventKey.key === 'Enter' || eventKey.key === ' ') {\n eventKey.preventDefault();\n handleClick();\n }\n }\n : undefined\n }\n >\n <div className={style['event-item-head']}>\n <div className={style['event-item-title']}>{event.title}</div>\n {tagLabel ? (\n <Tag className={style['event-item-tag']} color={event.color}>\n {tagLabel}\n </Tag>\n ) : null}\n </div>\n <div className={style['event-item-time']}>{formatRange(event.start, event.end)}</div>\n {event.detail ? <div className={style['event-item-detail']}>{event.detail}</div> : null}\n </div>\n </List.Item>\n );\n};\n\nexport default EventItem;\n","import { useIntl } from '@kne/react-intl';\nimport { getPanelDateLabel } from '../../formatCalendarLabels';\nimport style from './style.module.scss';\n\nconst PanelTitle = ({ date, subtitle, count }) => {\n const { formatMessage } = useIntl();\n const dateText = getPanelDateLabel(formatMessage, date);\n const countText = typeof count === 'number' ? formatMessage({ id: 'PanelTitle.eventCount' }, { count }) : null;\n return (\n <div className={style['panel-title']}>\n <span>{dateText}</span>\n {subtitle || countText ? <span>{subtitle || countText}</span> : null}\n </div>\n );\n};\n\nexport default PanelTitle;\n","import { classNames } from '../../utils';\nimport style from './style.module.scss';\n\nconst PanelScrollShadow = ({ visible }) => <div className={classNames(style['panel-scroll-shadow'], { [style['panel-scroll-shadow-visible']]: visible })} aria-hidden />;\n\nexport default PanelScrollShadow;\n","import { useCallback, useEffect, useState } from 'react';\nimport { classNames } from '../../utils';\nimport style from './style.module.scss';\n\nconst usePanelScrollShadow = (resetKey, scrollRef) => {\n const [scrolled, setScrolled] = useState(false);\n\n useEffect(() => {\n if (scrollRef?.current) {\n scrollRef.current.scrollTop = 0;\n }\n setScrolled(false);\n }, [resetKey, scrollRef]);\n\n const onScroll = useCallback(event => {\n setScrolled(event.currentTarget.scrollTop > 0);\n }, []);\n\n return { scrolled, onScroll };\n};\n\nexport default usePanelScrollShadow;\n","import { useMemo, useRef } from 'react';\nimport { Card, Empty, List, Spin } from 'antd';\nimport { useIntl } from '@kne/react-intl';\nimport { DATE_FORMAT } from '../../constants';\nimport { sortEventsByStart } from '../../utils';\nimport EventItem from '../EventItem';\nimport PanelTitle from './PanelTitle';\nimport PanelScrollShadow from './PanelScrollShadow';\nimport usePanelScrollShadow from './usePanelScrollShadow';\nimport style from './style.module.scss';\n\nconst ViewPanel = ({ date, events, loading, renderEventItem, renderPanelHeader, onEventClick }) => {\n const { formatMessage } = useIntl();\n const sortedEvents = useMemo(() => sortEventsByStart(events), [events]);\n const panelHeader = renderPanelHeader?.({ date: date.toDate(), mode: 'view', events: sortedEvents });\n const scrollRef = useRef(null);\n const { scrolled, onScroll } = usePanelScrollShadow(date.format(DATE_FORMAT), scrollRef);\n return (\n <Card bordered={false} title={panelHeader || <PanelTitle date={date} count={sortedEvents.length} />} className={style['panel-card']}>\n <Spin spinning={!!loading} classNames={{ root: style['panel-spin'], container: style['panel-spin-container'] }}>\n <div ref={scrollRef} className={style['panel-scroll-body']} onScroll={onScroll}>\n <PanelScrollShadow visible={scrolled} />\n <div className={style['panel-scroll-content']}>\n {sortedEvents.length ? (\n <List dataSource={sortedEvents} renderItem={event => <EventItem event={event} date={date.toDate()} mode=\"view\" renderEventItem={renderEventItem} onEventClick={onEventClick} />} />\n ) : (\n <Empty description={formatMessage({ id: 'ViewPanel.empty' })} />\n )}\n </div>\n </div>\n </Spin>\n </Card>\n );\n};\n\nexport default ViewPanel;\n","import { useCallback, useEffect, useMemo, useRef, useState } from 'react';\n\nconst LONG_PRESS_DELAY = 360;\nconst MOVE_THRESHOLD = 18;\n\nconst getPopoverKey = slot => (slot ? `form:${slot.key}` : null);\n\nconst getSlotElementFromTouch = (container, touch) => {\n const element = document.elementFromPoint(touch.clientX, touch.clientY);\n const slotElement = element?.closest?.('[data-slot-index]');\n if (!slotElement || !container?.contains(slotElement)) {\n return null;\n }\n return slotElement;\n};\n\nconst getTouchPoint = event => event.changedTouches?.[0] || event.touches?.[0];\n\nconst useScheduleSelectionGesture = ({ slots, selectedSlots, setSelectedSlots, allowMultiSelect, onSlotRangeChange, onFreeSlotClick }) => {\n const [dragging, setDragging] = useState(false);\n const [activePopoverKey, setActivePopoverKey] = useState(null);\n const slotsRef = useRef(null);\n const draggingRef = useRef(false);\n const dragStartIndexRef = useRef(null);\n const longPressTimerRef = useRef(null);\n const touchStateRef = useRef(null);\n const slotsDataRef = useRef(slots);\n const selectedSlotsRef = useRef(selectedSlots);\n const suppressTriggerUntilRef = useRef(0);\n\n slotsDataRef.current = slots;\n selectedSlotsRef.current = selectedSlots;\n\n const selectedKeys = useMemo(() => new Set(selectedSlots.map(slot => slot.key)), [selectedSlots]);\n const selectedAnchorKey = selectedSlots[selectedSlots.length - 1]?.key;\n const formPopoverKey = selectedAnchorKey ? `form:${selectedAnchorKey}` : null;\n\n const clearLongPress = useCallback(() => {\n if (longPressTimerRef.current) {\n window.clearTimeout(longPressTimerRef.current);\n longPressTimerRef.current = null;\n }\n }, []);\n\n const selectSlots = useCallback(\n nextSlots => {\n selectedSlotsRef.current = nextSlots;\n if (!nextSlots.length) {\n setActivePopoverKey(null);\n }\n setSelectedSlots(nextSlots);\n onSlotRangeChange?.(nextSlots, { action: nextSlots.length ? 'select' : 'clear' });\n },\n [onSlotRangeChange, setSelectedSlots]\n );\n\n const getSelectableRange = useCallback((startIndex, endIndex) => {\n const [start, end] = [Math.min(startIndex, endIndex), Math.max(startIndex, endIndex)];\n return slotsDataRef.current.slice(start, end + 1).filter(slot => slot.status === 'free');\n }, []);\n\n const showFormPopoverForSlots = useCallback(slotsList => {\n const anchorSlot = slotsList[slotsList.length - 1];\n if (anchorSlot) {\n setActivePopoverKey(getPopoverKey(anchorSlot));\n }\n }, []);\n\n const startSlotSelection = useCallback(\n (slot, index, { showPopover = true } = {}) => {\n setActivePopoverKey(getPopoverKey(slot));\n draggingRef.current = true;\n dragStartIndexRef.current = index;\n slotsRef.current?.classList.add('schedule-calendar-touch-dragging');\n setDragging(true);\n selectSlots([slot]);\n if (!showPopover) {\n suppressTriggerUntilRef.current = Date.now() + 700;\n setActivePopoverKey(null);\n }\n onFreeSlotClick?.(slot);\n },\n [onFreeSlotClick, selectSlots]\n );\n\n const finishSelection = useCallback(\n ({ fromTouch = false } = {}) => {\n clearLongPress();\n draggingRef.current = false;\n dragStartIndexRef.current = null;\n slotsRef.current?.classList.remove('schedule-calendar-touch-dragging');\n setDragging(false);\n if (selectedSlotsRef.current.length) {\n if (fromTouch) {\n suppressTriggerUntilRef.current = Date.now() + 500;\n }\n showFormPopoverForSlots(selectedSlotsRef.current);\n }\n },\n [clearLongPress, showFormPopoverForSlots]\n );\n\n const updateSelectionRange = useCallback(\n index => {\n const startIndex = dragStartIndexRef.current;\n if (startIndex === null || !allowMultiSelect) {\n return;\n }\n const nextSlots = getSelectableRange(startIndex, index);\n selectSlots(nextSlots);\n },\n [allowMultiSelect, getSelectableRange, selectSlots]\n );\n\n const handleMouseDown = useCallback(\n (event, slot, index) => {\n if (slot.status !== 'free') {\n return;\n }\n event.preventDefault();\n startSlotSelection(slot, index);\n },\n [startSlotSelection]\n );\n\n const handleMouseEnter = useCallback(\n index => {\n if (!draggingRef.current) {\n return;\n }\n updateSelectionRange(index);\n },\n [updateSelectionRange]\n );\n\n const handlePopoverOpenChange = useCallback(\n (open, currentPopoverKey, { isForm = false } = {}) => {\n if (Date.now() < suppressTriggerUntilRef.current) {\n return;\n }\n if (!open && isForm) {\n selectSlots([]);\n return;\n }\n setActivePopoverKey(prevKey => {\n if (open) {\n return currentPopoverKey;\n }\n return prevKey === currentPopoverKey ? null : prevKey;\n });\n },\n [selectSlots]\n );\n\n useEffect(() => {\n const container = slotsRef.current;\n if (!container) {\n return undefined;\n }\n\n const clearTouchState = () => {\n clearLongPress();\n if (!draggingRef.current) {\n slotsRef.current?.classList.remove('schedule-calendar-touch-dragging');\n }\n touchStateRef.current = null;\n };\n\n const handleTouchStart = event => {\n if (event.touches.length !== 1) {\n return;\n }\n const touch = event.touches[0];\n const slotElement = getSlotElementFromTouch(container, touch);\n if (!slotElement) {\n return;\n }\n const index = Number(slotElement.getAttribute('data-slot-index'));\n const slot = slotsDataRef.current[index];\n if (Number.isNaN(index) || slot?.status !== 'free') {\n return;\n }\n\n clearTouchState();\n touchStateRef.current = {\n identifier: touch.identifier,\n x: touch.clientX,\n y: touch.clientY,\n slot,\n index,\n moved: false,\n longPressed: false,\n active: false\n };\n\n longPressTimerRef.current = window.setTimeout(() => {\n const touchState = touchStateRef.current;\n if (!touchState) {\n return;\n }\n touchState.longPressed = true;\n touchState.active = true;\n slotsRef.current?.classList.add('schedule-calendar-touch-dragging');\n startSlotSelection(slot, index, { showPopover: false });\n longPressTimerRef.current = null;\n }, LONG_PRESS_DELAY);\n };\n\n const handleTouchMove = event => {\n const touchState = touchStateRef.current;\n if (!touchState) {\n return;\n }\n const touch = Array.from(event.touches).find(item => item.identifier === touchState.identifier) || event.touches[0];\n if (!touch) {\n return;\n }\n\n if (!touchState.active) {\n const moveX = Math.abs(touch.clientX - touchState.x);\n const moveY = Math.abs(touch.clientY - touchState.y);\n if (moveX > MOVE_THRESHOLD || moveY > MOVE_THRESHOLD) {\n touchState.moved = true;\n clearTouchState();\n }\n return;\n }\n\n event.preventDefault();\n const slotElement = getSlotElementFromTouch(container, touch);\n if (!slotElement) {\n return;\n }\n const index = Number(slotElement.getAttribute('data-slot-index'));\n if (!Number.isNaN(index)) {\n updateSelectionRange(index);\n }\n };\n\n const handleTouchEnd = event => {\n const touchState = touchStateRef.current;\n if (!touchState) {\n return;\n }\n const touch = Array.from(event.changedTouches || []).find(item => item.identifier === touchState.identifier) || getTouchPoint(event);\n if (!touch) {\n clearTouchState();\n return;\n }\n\n if (touchState.active) {\n event.preventDefault();\n suppressTriggerUntilRef.current = Date.now() + 500;\n finishSelection({ fromTouch: true });\n touchStateRef.current = null;\n return;\n }\n\n const quickTap = !touchState.longPressed && !touchState.moved;\n clearTouchState();\n if (quickTap) {\n suppressTriggerUntilRef.current = Date.now() + 500;\n selectSlots([touchState.slot]);\n showFormPopoverForSlots([touchState.slot]);\n onFreeSlotClick?.(touchState.slot);\n }\n };\n\n const handleContextMenu = event => {\n if (touchStateRef.current || draggingRef.current) {\n event.preventDefault();\n }\n };\n\n container.addEventListener('touchstart', handleTouchStart, { passive: true });\n container.addEventListener('touchmove', handleTouchMove, { passive: false });\n container.addEventListener('touchend', handleTouchEnd, { passive: false });\n container.addEventListener('touchcancel', handleTouchEnd, { passive: false });\n container.addEventListener('contextmenu', handleContextMenu);\n\n return () => {\n clearTouchState();\n container.removeEventListener('touchstart', handleTouchStart);\n container.removeEventListener('touchmove', handleTouchMove);\n container.removeEventListener('touchend', handleTouchEnd);\n container.removeEventListener('touchcancel', handleTouchEnd);\n container.removeEventListener('contextmenu', handleContextMenu);\n };\n }, [clearLongPress, finishSelection, onFreeSlotClick, selectSlots, showFormPopoverForSlots, startSlotSelection, updateSelectionRange]);\n\n return {\n activePopoverKey,\n dragging,\n formPopoverKey,\n selectedAnchorKey,\n selectedKeys,\n setActivePopoverKey,\n selectSlots,\n slotsRef,\n finishSelection,\n handleMouseDown,\n handleMouseEnter,\n handlePopoverOpenChange\n };\n};\n\nexport default useScheduleSelectionGesture;\n","import FormInfo, { Input, TextArea } from '@kne/form-info';\nimport { useIntl } from '@kne/react-intl';\n\nconst DefaultFormInner = () => {\n const { formatMessage } = useIntl();\n return (\n <FormInfo\n column={1}\n list={[\n <Input name=\"title\" label={formatMessage({ id: 'DefaultFormInner.title' })} rule=\"REQ\" placeholder={formatMessage({ id: 'DefaultFormInner.titlePlaceholder' })} block />,\n <TextArea name=\"detail\" label={formatMessage({ id: 'DefaultFormInner.detail' })} placeholder={formatMessage({ id: 'DefaultFormInner.detailPlaceholder' })} block />\n ]}\n />\n );\n};\n\nexport default DefaultFormInner;\n","import { List } from 'antd';\nimport EventItem from '../EventItem';\nimport style from './style.module.scss';\n\nconst SlotEvents = ({ slot, date, onEventClick }) => (\n <div className={style['slot-popover-content']}>\n <List size=\"small\" dataSource={slot.events} renderItem={event => <EventItem event={event} date={date} mode=\"schedule\" onEventClick={onEventClick} />} />\n </div>\n);\n\nexport default SlotEvents;\n","import { Popover, Tag, Tooltip } from 'antd';\nimport { useIntl } from '@kne/react-intl';\nimport { classNames, formatRange } from '../../utils';\nimport SlotEvents from './SlotEvents';\nimport style from './style.module.scss';\n\nconst SlotItem = ({ slot, date, selected, formPopover, popoverOpen, onPopoverOpenChange, onContextMenu, onMouseDown, onPointerDown, onMouseEnter, onMouseUp, onClick, onEventClick, renderTimeSlot, renderOccupiedSlot }) => {\n const { formatMessage } = useIntl();\n const content = renderTimeSlot?.(slot, { selected });\n if (content) {\n const customNode = (\n <div data-slot-index={slot.index} onContextMenu={onContextMenu} onMouseDown={onMouseDown} onPointerDown={onPointerDown} onMouseEnter={onMouseEnter} onMouseUp={onMouseUp} onClick={onClick}>\n {content}\n </div>\n );\n if (formPopover) {\n return (\n <Popover rootClassName={style['schedule-popover']} open={popoverOpen} onOpenChange={onPopoverOpenChange} content={formPopover} trigger=\"click\" placement=\"bottom\" autoAdjustOverflow>\n {customNode}\n </Popover>\n );\n }\n return customNode;\n }\n\n const wrapWithPopover = node => {\n if (formPopover) {\n return (\n <Popover rootClassName={style['schedule-popover']} open={popoverOpen} onOpenChange={onPopoverOpenChange} content={formPopover} trigger=\"click\" placement=\"bottom\" autoAdjustOverflow>\n {node}\n </Popover>\n );\n }\n if (slot.status === 'occupied') {\n return (\n <Popover\n rootClassName={style['schedule-popover']}\n open={popoverOpen}\n onOpenChange={onPopoverOpenChange}\n content={<SlotEvents slot={slot} date={date} onEventClick={onEventClick} />}\n trigger=\"click\"\n placement=\"bottom\"\n autoAdjustOverflow\n >\n {node}\n </Popover>\n );\n }\n if (slot.disabledReason) {\n return <Tooltip title={slot.disabledReason}>{node}</Tooltip>;\n }\n return node;\n };\n\n const inner = (\n <button\n type=\"button\"\n className={classNames(style['slot-item'], style[`slot-${slot.status}`], {\n [style['slot-selected']]: selected\n })}\n data-slot-index={slot.index}\n disabled={slot.status === 'disabled'}\n onContextMenu={onContextMenu}\n onMouseDown={onMouseDown}\n onPointerDown={onPointerDown}\n onMouseEnter={onMouseEnter}\n onMouseUp={onMouseUp}\n onClick={onClick}\n >\n <span className={style['slot-dot']} />\n <span className={style['slot-time']}>{formatRange(slot.start, slot.end)}</span>\n {slot.status === 'disabled' ? <Tag className={style['slot-tag']}>{formatMessage({ id: 'SlotItem.disabled' })}</Tag> : null}\n {slot.status === 'occupied' ? (\n <Tag className={style['slot-tag']} color=\"red\">\n {formatMessage({ id: 'SlotItem.occupied' })}\n </Tag>\n ) : null}\n {slot.status === 'occupied' && renderOccupiedSlot ? renderOccupiedSlot(slot, { events: slot.events }) : null}\n {slot.status === 'occupied' && !renderOccupiedSlot ? <span className={style['slot-title']}>{slot.events.map(event => event.title).join('、')}</span> : null}\n </button>\n );\n\n return wrapWithPopover(inner);\n};\n\nexport default SlotItem;\n","import { useMemo } from 'react';\nimport { Button, Card, Spin } from 'antd';\nimport { Form, SubmitButton } from '@kne/form-info';\nimport { useIntl } from '@kne/react-intl';\nimport { DATE_FORMAT } from '../../constants';\nimport useScheduleSelectionGesture from '../../useScheduleSelectionGesture';\nimport { classNames, dedupeEventsById, formatRange, getDefaultFormValues, sortEventsByStart } from '../../utils';\nimport PanelTitle from '../Panel/PanelTitle';\nimport PanelScrollShadow from '../Panel/PanelScrollShadow';\nimport usePanelScrollShadow from '../Panel/usePanelScrollShadow';\nimport panelStyle from '../Panel/style.module.scss';\nimport DefaultFormInner from './DefaultFormInner';\nimport SlotItem from './SlotItem';\nimport style from './style.module.scss';\n\nconst SchedulePanel = ({\n date,\n slots,\n loading,\n allowMultiSelect,\n selectedSlots,\n setSelectedSlots,\n onSlotRangeChange,\n onFreeSlotClick,\n onCreate,\n formInner,\n formProps,\n defaultFormValues,\n renderTimeSlot,\n renderOccupiedSlot,\n renderPanelHeader,\n onEventClick\n}) => {\n const { formatMessage } = useIntl();\n const events = useMemo(() => sortEventsByStart(dedupeEventsById(slots.flatMap(slot => slot.events || []))), [slots]);\n const panelHeader = renderPanelHeader?.({ date: date.toDate(), mode: 'schedule', events });\n const { activePopoverKey, dragging, formPopoverKey, selectedAnchorKey, selectedKeys, selectSlots, slotsRef, finishSelection, handleMouseDown, handleMouseEnter, handlePopoverOpenChange } = useScheduleSelectionGesture({\n slots,\n selectedSlots,\n setSelectedSlots,\n allowMultiSelect,\n onSlotRangeChange,\n onFreeSlotClick\n });\n\n const { scrolled, onScroll } = usePanelScrollShadow(date.format(DATE_FORMAT), slotsRef);\n const formContext = {\n date: date.toDate(),\n slots: selectedSlots\n };\n const formPopover =\n selectedSlots.length && !dragging ? (\n <div className={style['form-popover']}>\n <div className={style['form-popover-title']}>{formatMessage({ id: 'SchedulePanel.newSchedule' }, { range: formatRange(selectedSlots[0].start, selectedSlots[selectedSlots.length - 1].end) })}</div>\n <Form\n {...formProps}\n data={getDefaultFormValues(defaultFormValues, formContext)}\n onSubmit={async values => {\n try {\n await onCreate?.(values, formContext);\n selectSlots([]);\n } catch {\n // Keep the form open when creation fails.\n }\n }}\n >\n {formInner || <DefaultFormInner />}\n <div className={style['form-actions']}>\n <Button onClick={() => selectSlots([])}>{formatMessage({ id: 'SchedulePanel.cancel' })}</Button>\n <SubmitButton>{formatMessage({ id: 'SchedulePanel.save' })}</SubmitButton>\n </div>\n </Form>\n </div>\n ) : null;\n\n return (\n <Card bordered={false} title={panelHeader || <PanelTitle date={date} subtitle={formatMessage({ id: 'SchedulePanel.selectFreeSlot' })} />} className={panelStyle['panel-card']}>\n <Spin spinning={!!loading} classNames={{ root: panelStyle['panel-spin'], container: panelStyle['panel-spin-container'] }}>\n <div ref={slotsRef} className={classNames(style['slots'], { [style['slots-dragging']]: dragging })} onScroll={onScroll} onMouseUp={() => finishSelection()} onMouseLeave={() => finishSelection()}>\n <PanelScrollShadow visible={scrolled} />\n <div className={style['slots-content']}>\n {slots.map((slot, index) => {\n const slotWithIndex = { ...slot, index };\n const occupiedPopoverKey = `occupied:${slot.key}`;\n const currentPopoverKey = slot.key === selectedAnchorKey && formPopover ? formPopoverKey : slot.status === 'occupied' ? occupiedPopoverKey : null;\n return (\n <SlotItem\n key={slot.key}\n slot={slotWithIndex}\n date={date.toDate()}\n selected={selectedKeys.has(slot.key)}\n formPopover={slot.key === selectedAnchorKey ? formPopover : null}\n popoverOpen={!!currentPopoverKey && activePopoverKey === currentPopoverKey}\n onPopoverOpenChange={open => handlePopoverOpenChange(open, currentPopoverKey, { isForm: currentPopoverKey === formPopoverKey })}\n renderTimeSlot={renderTimeSlot}\n renderOccupiedSlot={renderOccupiedSlot}\n onEventClick={onEventClick}\n onContextMenu={event => {\n if (slot.status === 'free') {\n event.preventDefault();\n }\n }}\n onMouseDown={event => handleMouseDown(event, slot, index)}\n onMouseEnter={() => handleMouseEnter(index)}\n onMouseUp={() => finishSelection()}\n onClick={undefined}\n />\n );\n })}\n </div>\n </div>\n </Spin>\n </Card>\n );\n};\n\nexport default SchedulePanel;\n","import { useCallback, useMemo, useRef, useState } from 'react';\nimport dayjs from 'dayjs';\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\nimport useControlValue from '@kne/use-control-value';\nimport { Calendar } from 'antd';\nimport withLocale from './withLocale';\nimport { DATE_FORMAT, LAYOUT_STACK_BREAKPOINT } from './constants';\nimport useStackedPanelLayout from './useStackedPanelLayout';\nimport { groupEventsByDate, generateTimeSlots } from './events';\nimport { checkRule } from './rules';\nimport { classNames, toDayjs, useControlledState } from './utils';\nimport Header from './components/Header';\nimport useStackedLayout from './useStackedLayout';\nimport DateCell from './components/DateCell';\nimport ViewPanel from './components/Panel/ViewPanel';\nimport SchedulePanel from './components/SchedulePanel';\nimport style from './style.module.scss';\n\ndayjs.extend(customParseFormat);\n\nconst buildMonthRuleCache = ({ currentDate, mode, disabledDate, disabledDateTime, availableDateTime }) => {\n const cache = new Map();\n const monthStart = currentDate.startOf('month');\n const monthEnd = currentDate.endOf('month');\n let cursor = monthStart;\n while (cursor.isBefore(monthEnd) || cursor.isSame(monthEnd, 'day')) {\n cache.set(\n cursor.format(DATE_FORMAT),\n checkRule({\n date: cursor,\n mode,\n disabledDate,\n disabledDateTime,\n availableDateTime\n })\n );\n cursor = cursor.add(1, 'day');\n }\n return cache;\n};\n\nconst ScheduleCalendarInner = props => {\n const {\n mode = 'view',\n events = [],\n loading,\n disabledDate,\n disabledDateTime,\n availableDateTime,\n badgeMaxCount = 9,\n timeUnit = 30,\n dayStart = '09:00',\n dayEnd = '18:00',\n allowMultiSelect = mode === 'schedule',\n renderDateCell,\n renderEventItem,\n renderTimeSlot,\n renderOccupiedSlot,\n renderPanelHeader,\n formInner,\n formProps,\n defaultFormValues,\n onDateChange,\n onEventClick,\n onFreeSlotClick,\n onSlotRangeChange,\n onCreate,\n className,\n style: propsStyle,\n stackAt = LAYOUT_STACK_BREAKPOINT,\n calendarProps,\n panelProps\n } = props;\n const rootRef = useRef(null);\n const calendarRef = useRef(null);\n const stacked = useStackedLayout(rootRef, stackAt);\n const stackedLayoutStyle = useStackedPanelLayout(rootRef, calendarRef, stacked);\n const [value, setValue] = useControlValue(props);\n const selectedDate = useMemo(() => toDayjs(value) || dayjs(), [value]);\n const [current, setCurrent] = useControlledState({\n value: props.current,\n defaultValue: props.defaultCurrent || selectedDate,\n onChange: props.onCurrentChange\n });\n const currentDate = useMemo(() => toDayjs(current) || selectedDate, [current, selectedDate]);\n const [selectedSlots, setSelectedSlots] = useState([]);\n const eventGroup = useMemo(() => groupEventsByDate(events), [events]);\n const selectedEvents = useMemo(() => eventGroup[selectedDate.format(DATE_FORMAT)] || [], [eventGroup, selectedDate]);\n const ruleContext = useMemo(\n () => ({\n mode,\n disabledDate,\n disabledDateTime,\n availableDateTime\n }),\n [availableDateTime, disabledDate, disabledDateTime, mode]\n );\n const monthRuleCache = useMemo(\n () =>\n buildMonthRuleCache({\n currentDate,\n ...ruleContext\n }),\n [currentDate, ruleContext]\n );\n const getDateRule = useCallback(\n date => {\n const cached = monthRuleCache.get(date.format(DATE_FORMAT));\n if (cached !== undefined) {\n return cached;\n }\n return checkRule({\n date,\n ...ruleContext\n });\n },\n [monthRuleCache, ruleContext]\n );\n const slots = useMemo(\n () =>\n generateTimeSlots({\n date: selectedDate,\n events: selectedEvents,\n timeUnit,\n dayStart,\n dayEnd,\n disabledDate,\n disabledDateTime,\n availableDateTime,\n mode\n }),\n [availableDateTime, dayEnd, dayStart, disabledDate, disabledDateTime, mode, selectedDate, selectedEvents, timeUnit]\n );\n\n const handleSelectDate = (date, info) => {\n const nextDate = date.startOf('day').toDate();\n setValue(nextDate, info);\n onDateChange?.(nextDate, info);\n setSelectedSlots([]);\n };\n\n const handleCurrentChange = (date, info) => {\n setCurrent(date.startOf('month').toDate(), info);\n };\n\n const handleGoToday = () => {\n const today = dayjs().startOf('day');\n if (getDateRule(today)) {\n return;\n }\n handleSelectDate(today, { source: 'today' });\n handleCurrentChange(today, { source: 'today' });\n };\n\n const fullCellRender = date => {\n const key = date.format(DATE_FORMAT);\n const dayEvents = eventGroup[key] || [];\n const disabled = !!getDateRule(date);\n return <DateCell date={date} dayEvents={dayEvents} selected={date.isSame(selectedDate, 'day')} currentMonth={date.isSame(currentDate, 'month')} disabled={disabled} badgeMaxCount={badgeMaxCount} renderDateCell={renderDateCell} />;\n };\n\n return (\n <div className={style['schedule-calendar-shell']} style={propsStyle}>\n <div ref={rootRef} className={classNames(style['schedule-calendar'], stacked && style['schedule-calendar-stacked'], className)} data-schedule-layout={stacked ? 'stacked' : 'row'} style={stacked ? stackedLayoutStyle : undefined}>\n <div ref={calendarRef} className={style['calendar-side']}>\n <Calendar\n {...calendarProps}\n fullscreen={false}\n value={currentDate}\n headerRender={() => {\n const today = dayjs().startOf('day');\n const todayDisabled = !!getDateRule(today);\n return <Header current={currentDate} showTodayButton={!todayDisabled && (!selectedDate.isSame(today, 'day') || !currentDate.isSame(today, 'month'))} onCurrentChange={handleCurrentChange} onSelectToday={handleGoToday} />;\n }}\n fullCellRender={fullCellRender}\n disabledDate={date => !!getDateRule(date)}\n onSelect={date => {\n if (getDateRule(date)) {\n return;\n }\n handleSelectDate(date, { source: 'date' });\n }}\n onPanelChange={date => handleCurrentChange(date, { source: 'picker' })}\n />\n </div>\n <div className={style['panel-side']} {...panelProps}>\n {mode === 'schedule' ? (\n <SchedulePanel\n date={selectedDate}\n slots={slots}\n loading={loading}\n allowMultiSelect={allowMultiSelect}\n selectedSlots={selectedSlots}\n setSelectedSlots={setSelectedSlots}\n onSlotRangeChange={onSlotRangeChange}\n onFreeSlotClick={onFreeSlotClick}\n onCreate={onCreate}\n formInner={formInner}\n formProps={formProps}\n defaultFormValues={defaultFormValues}\n renderTimeSlot={renderTimeSlot}\n renderOccupiedSlot={renderOccupiedSlot}\n renderPanelHeader={renderPanelHeader}\n onEventClick={onEventClick}\n />\n ) : (\n <ViewPanel date={selectedDate} events={selectedEvents} loading={loading} renderEventItem={renderEventItem} renderPanelHeader={renderPanelHeader} onEventClick={onEventClick} />\n )}\n </div>\n </div>\n </div>\n );\n};\n\nexport const ScheduleCalendar = withLocale(ScheduleCalendarInner);\n\nexport default ScheduleCalendar;\n"],"names":["locale","withLocale","createWithIntlProvider","defaultLocale","messages","zhCN","enUS","namespace","DATE_FORMAT","TIME_FORMAT","LAYOUT_STACK_BREAKPOINT","LAYOUT_MIN_HEIGHT","measureHeight","node","Math","ceil","getBoundingClientRect","height","useStackedPanelLayout","rootRef","calendarRef","stacked","layoutStyle","setLayoutStyle","useState","undefined","useLayoutEffect","root","current","calendar","update","calendarHeight","panelViewportHeight","max","totalHeight","ResizeObserver","window","addEventListener","removeEventListener","observer","observe","disconnect","classNames","slice","call","arguments","flatMap","item","Object","keys","filter","key","join","toDayjs","value","date","dayjs","isValid","parseDayTime","time","day","parsed","format","startOf","formatRange","start","end","getDefaultFormValues","defaultFormValues","ctx","_extends","title","detail","sortEventsByStart","events","sort","a","b","_toDayjs$valueOf","_toDayjs","_toDayjs$valueOf2","_toDayjs2","aStart","valueOf","bStart","dedupeEventsById","map","Map","forEach","event","set","id","values","useControlledState","_ref","defaultValue","onChange","props","useControlValue","getRuleDisabled","result","defaultReason","disabled","reason","checkRule","slot","mode","disabledDate","disabledDateTime","availableDateTime","toDate","disabledResult","normalizeEvent","isAfter","add","groupEventsByDate","reduce","normalized","startOfDay","endOfDay","isBefore","isSame","push","getOverlappingEvents","slotStart","slotEnd","sortedEvents","matched","generateTimeSlots","_ref$timeUnit","timeUnit","_ref$dayStart","dayStart","_ref$dayEnd","dayEnd","_ref$mode","selectedDate","startAt","endAt","normalizedEvents","slots","matchedEvents","baseSlot","ruleResult","status","length","disabledReason","toDay","getMonthName","formatMessage","monthIndex","getPanelDateLabel","d","month","year","monthName","getHeaderMonthLabel","getMonthPickerItemLabel","HeaderNavIcon","direction","className","_jsx","style","viewBox","focusable","children","fill","stroke","strokeWidth","strokeLinecap","strokeLinejoin","YEAR_PAGE_SIZE","getYearPageStart","floor","PickerPanelNav","label","onClick","type","YearPickerPanel","pageStart","onPageStartChange","onSelect","useIntl","years","useMemo","Array","from","_","index","_jsxs","MonthPickerPanel","months","HeaderNavButton","Header","showTodayButton","onCurrentChange","onSelectToday","yearOpen","setYearOpen","monthOpen","setMonthOpen","yearPageStart","setYearPageStart","currentYear","yearText","monthText","useEffect","handleYearSelect","source","handleMonthSelect","Popover","open","onOpenChange","trigger","placement","rootClassName","content","Space","size","Button","subtract","readWidth","width","useStackedLayout","ref","stackAt","setStacked","DateCell","dayEvents","selected","currentMonth","badgeMaxCount","renderDateCell","count","customCell","Badge","getEventTagLabel","raw","EventItem","renderEventItem","onEventClick","clickable","handleClick","tagLabel","List","Item","role","tabIndex","onKeyDown","eventKey","preventDefault","Tag","color","PanelTitle","subtitle","dateText","countText","PanelScrollShadow","visible","usePanelScrollShadow","resetKey","scrollRef","scrolled","setScrolled","scrollTop","onScroll","useCallback","currentTarget","ViewPanel","loading","renderPanelHeader","panelHeader","useRef","Card","bordered","Spin","spinning","container","dataSource","renderItem","Empty","description","LONG_PRESS_DELAY","MOVE_THRESHOLD","getPopoverKey","getSlotElementFromTouch","touch","element","document","elementFromPoint","clientX","clientY","slotElement","closest","contains","getTouchPoint","changedTouches","touches","useScheduleSelectionGesture","selectedSlots","setSelectedSlots","allowMultiSelect","onSlotRangeChange","onFreeSlotClick","dragging","setDragging","activePopoverKey","setActivePopoverKey","slotsRef","draggingRef","dragStartIndexRef","longPressTimerRef","touchStateRef","slotsDataRef","selectedSlotsRef","suppressTriggerUntilRef","selectedKeys","Set","selectedAnchorKey","formPopoverKey","clearLongPress","clearTimeout","selectSlots","nextSlots","action","getSelectableRange","startIndex","endIndex","min","showFormPopoverForSlots","slotsList","anchorSlot","startSlotSelection","showPopover","classList","Date","now","finishSelection","fromTouch","remove","updateSelectionRange","handleMouseDown","handleMouseEnter","handlePopoverOpenChange","currentPopoverKey","isForm","prevKey","clearTouchState","handleTouchStart","Number","getAttribute","isNaN","identifier","x","y","moved","longPressed","active","setTimeout","touchState","handleTouchMove","find","moveX","abs","moveY","handleTouchEnd","quickTap","handleContextMenu","passive","DefaultFormInner","FormInfo","column","list","Input","name","rule","placeholder","block","TextArea","SlotEvents","SlotItem","formPopover","popoverOpen","onPopoverOpenChange","onContextMenu","onMouseDown","onPointerDown","onMouseEnter","onMouseUp","renderTimeSlot","renderOccupiedSlot","customNode","autoAdjustOverflow","wrapWithPopover","Tooltip","inner","_catch","body","recover","e","then","SchedulePanel","onCreate","formInner","formProps","formContext","range","Form","data","onSubmit","_temp","Promise","resolve","reject","SubmitButton","panelStyle","onMouseLeave","slotWithIndex","occupiedPopoverKey","has","extend","customParseFormat","buildMonthRuleCache","currentDate","cache","monthStart","monthEnd","endOf","cursor","ScheduleCalendarInner","_props$mode","_props$events","_props$badgeMaxCount","_props$timeUnit","_props$dayStart","_props$dayEnd","_props$allowMultiSele","onDateChange","propsStyle","_props$stackAt","calendarProps","panelProps","stackedLayoutStyle","_useControlValue","setValue","_useControlledState","defaultCurrent","setCurrent","_useState","eventGroup","selectedEvents","ruleContext","monthRuleCache","getDateRule","cached","get","handleSelectDate","info","nextDate","handleCurrentChange","handleGoToday","today","fullCellRender","Calendar","fullscreen","headerRender","todayDisabled","onPanelChange","ScheduleCalendar"],"mappings":"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"}