@kne/react-calendar 1.0.0 → 1.0.1

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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.modern.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","list","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","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","timeUnit","dayStart","dayEnd","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","_event$changedTouches","_event$touches","changedTouches","touches","useScheduleSelectionGesture","selectedSlots","setSelectedSlots","allowMultiSelect","onSlotRangeChange","onFreeSlotClick","_selectedSlots","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","slice","showFormPopoverForSlots","slotsList","anchorSlot","startSlotSelection","showPopover","_slotsRef$current","classList","Date","now","finishSelection","fromTouch","_slotsRef$current2","remove","updateSelectionRange","handleMouseDown","handleMouseEnter","handlePopoverOpenChange","currentPopoverKey","isForm","prevKey","clearTouchState","_slotsRef$current3","handleTouchStart","Number","getAttribute","isNaN","identifier","x","y","moved","longPressed","active","setTimeout","_slotsRef$current4","touchState","handleTouchMove","find","moveX","abs","moveY","handleTouchEnd","quickTap","handleContextMenu","passive","DefaultFormInner","FormInfo","column","Input","name","rule","placeholder","block","TextArea","SlotEvents","SlotItem","formPopover","popoverOpen","onPopoverOpenChange","onContextMenu","onMouseDown","onPointerDown","onMouseEnter","onMouseUp","renderTimeSlot","renderOccupiedSlot","customNode","autoAdjustOverflow","wrapWithPopover","Tooltip","inner","SchedulePanel","onCreate","formInner","formProps","formContext","range","Form","data","onSubmit","_unused","SubmitButton","panelStyle","onMouseLeave","slotWithIndex","occupiedPopoverKey","has","extend","customParseFormat","buildMonthRuleCache","currentDate","cache","monthStart","monthEnd","endOf","cursor","ScheduleCalendarInner","onDateChange","propsStyle","calendarProps","panelProps","stackedLayoutStyle","setValue","setCurrent","defaultCurrent","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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"}
1
+ {"version":3,"file":"index.modern.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 = 400;\nconst SCROLL_CANCEL_THRESHOLD = 12;\nconst TAP_MOVE_THRESHOLD = 8;\n\nconst getPopoverKey = slot => (slot ? `form:${slot.key}` : null);\n\nconst getSlotIndexFromPoint = (container, clientX, clientY) => {\n const slotElements = container?.querySelectorAll?.('[data-slot-index]');\n if (!slotElements?.length) {\n return null;\n }\n\n let closestIndex = null;\n let closestDistance = Infinity;\n\n for (const candidate of slotElements) {\n const rect = candidate.getBoundingClientRect();\n const index = Number(candidate.getAttribute('data-slot-index'));\n if (Number.isNaN(index)) {\n continue;\n }\n\n if (clientY >= rect.top && clientY <= rect.bottom && clientX >= rect.left && clientX <= rect.right) {\n return index;\n }\n\n if (clientX < rect.left || clientX > rect.right) {\n continue;\n }\n\n const centerY = (rect.top + rect.bottom) / 2;\n const distance = Math.abs(clientY - centerY);\n if (distance < closestDistance) {\n closestDistance = distance;\n closestIndex = index;\n }\n }\n\n return closestIndex;\n};\n\nconst clearDocumentTextSelection = () => {\n const selection = document.getSelection?.();\n if (selection && !selection.isCollapsed) {\n selection.removeAllRanges();\n }\n};\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 allowMultiSelectRef = useRef(allowMultiSelect);\n const suppressTriggerUntilRef = useRef(0);\n const suppressMouseUntilRef = useRef(0);\n const scrollLockRef = useRef(null);\n const handlersRef = useRef({});\n\n slotsDataRef.current = slots;\n selectedSlotsRef.current = selectedSlots;\n allowMultiSelectRef.current = allowMultiSelect;\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 unlockContainerScroll = useCallback(() => {\n const container = slotsRef.current;\n if (!container || scrollLockRef.current == null) {\n return;\n }\n const scrollTop = scrollLockRef.current;\n container.style.overflow = '';\n container.style.touchAction = '';\n container.scrollTop = scrollTop;\n scrollLockRef.current = null;\n }, []);\n\n const lockContainerScroll = useCallback(() => {\n const container = slotsRef.current;\n if (!container || scrollLockRef.current != null) {\n return;\n }\n scrollLockRef.current = container.scrollTop;\n container.style.overflow = 'hidden';\n container.style.touchAction = 'none';\n }, []);\n\n const resetGestureState = useCallback(() => {\n clearLongPress();\n const container = slotsRef.current;\n const touchState = touchStateRef.current;\n if (container && touchState?.pointerId != null && container.hasPointerCapture?.(touchState.pointerId)) {\n try {\n container.releasePointerCapture(touchState.pointerId);\n } catch {\n // Ignore capture release errors on stale pointers.\n }\n }\n draggingRef.current = false;\n dragStartIndexRef.current = null;\n touchStateRef.current = null;\n container?.classList.remove('schedule-calendar-touch-dragging');\n unlockContainerScroll();\n setDragging(false);\n }, [clearLongPress, unlockContainerScroll]);\n\n const selectSlots = useCallback(\n nextSlots => {\n selectedSlotsRef.current = nextSlots;\n if (!nextSlots.length) {\n setActivePopoverKey(null);\n resetGestureState();\n }\n setSelectedSlots(nextSlots);\n onSlotRangeChange?.(nextSlots, { action: nextSlots.length ? 'select' : 'clear' });\n },\n [onSlotRangeChange, resetGestureState, 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, lockScroll = false } = {}) => {\n clearDocumentTextSelection();\n setActivePopoverKey(getPopoverKey(slot));\n draggingRef.current = true;\n dragStartIndexRef.current = index;\n slotsRef.current?.classList.add('schedule-calendar-touch-dragging');\n if (lockScroll) {\n lockContainerScroll();\n }\n setDragging(true);\n selectSlots([slot]);\n if (!showPopover) {\n suppressTriggerUntilRef.current = Date.now() + 700;\n setActivePopoverKey(null);\n }\n onFreeSlotClick?.(slot);\n },\n [lockContainerScroll, onFreeSlotClick, selectSlots]\n );\n\n const finishSelection = useCallback(\n ({ fromTouch = false } = {}) => {\n const hadSelection = selectedSlotsRef.current.length > 0;\n resetGestureState();\n if (hadSelection) {\n if (fromTouch) {\n suppressTriggerUntilRef.current = Date.now() + 500;\n }\n showFormPopoverForSlots(selectedSlotsRef.current);\n }\n },\n [resetGestureState, showFormPopoverForSlots]\n );\n\n const updateSelectionRange = useCallback(\n index => {\n const startIndex = dragStartIndexRef.current;\n if (startIndex === null || !allowMultiSelectRef.current) {\n return;\n }\n const nextSlots = getSelectableRange(startIndex, index);\n selectSlots(nextSlots);\n },\n [getSelectableRange, selectSlots]\n );\n\n const shouldIgnoreMouseSelectionEvent = useCallback(() => {\n return !!touchStateRef.current || Date.now() < suppressMouseUntilRef.current;\n }, []);\n\n const handleMouseDown = useCallback(\n (event, slot, index) => {\n if (shouldIgnoreMouseSelectionEvent()) {\n return;\n }\n if (slot.status !== 'free') {\n return;\n }\n event.preventDefault();\n startSlotSelection(slot, index);\n },\n [shouldIgnoreMouseSelectionEvent, startSlotSelection]\n );\n\n const handleMouseEnter = useCallback(\n index => {\n if (shouldIgnoreMouseSelectionEvent() || !draggingRef.current) {\n return;\n }\n updateSelectionRange(index);\n },\n [shouldIgnoreMouseSelectionEvent, updateSelectionRange]\n );\n\n const handleMouseUp = useCallback(() => {\n if (shouldIgnoreMouseSelectionEvent()) {\n return;\n }\n finishSelection();\n }, [finishSelection, shouldIgnoreMouseSelectionEvent]);\n\n const handleMouseLeave = useCallback(() => {\n if (shouldIgnoreMouseSelectionEvent()) {\n return;\n }\n finishSelection();\n }, [finishSelection, shouldIgnoreMouseSelectionEvent]);\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 handlersRef.current = {\n clearLongPress,\n finishSelection,\n onFreeSlotClick,\n resetGestureState,\n selectSlots,\n showFormPopoverForSlots,\n startSlotSelection,\n updateSelectionRange\n };\n\n useEffect(() => {\n const container = slotsRef.current;\n if (!container) {\n return undefined;\n }\n\n const releasePointerCapture = pointerId => {\n if (pointerId == null || !container.hasPointerCapture?.(pointerId)) {\n return;\n }\n try {\n container.releasePointerCapture(pointerId);\n } catch {\n // Ignore capture release errors on stale pointers.\n }\n };\n\n const clearPendingTouch = () => {\n handlersRef.current.clearLongPress();\n touchStateRef.current = null;\n };\n\n const isStillOnSameSlot = (touchState, clientX, clientY) => {\n const currentIndex = getSlotIndexFromPoint(container, clientX, clientY);\n return currentIndex === touchState.index;\n };\n\n const shouldCancelPendingGesture = (touchState, clientX, clientY) => {\n const moveX = Math.abs(clientX - touchState.x);\n const moveY = Math.abs(clientY - touchState.y);\n\n if (moveY > SCROLL_CANCEL_THRESHOLD) {\n return true;\n }\n\n if (!isStillOnSameSlot(touchState, clientX, clientY)) {\n return true;\n }\n\n if (!allowMultiSelectRef.current && (moveX > TAP_MOVE_THRESHOLD || moveY > TAP_MOVE_THRESHOLD)) {\n return true;\n }\n\n return false;\n };\n\n const activateLongPress = touchState => {\n if (!isStillOnSameSlot(touchState, touchState.lastX, touchState.lastY)) {\n return;\n }\n\n touchState.longPressed = true;\n touchState.active = true;\n clearDocumentTextSelection();\n\n try {\n container.setPointerCapture(touchState.pointerId);\n } catch {\n // Continue when capture is unavailable.\n }\n\n slotsRef.current?.classList.add('schedule-calendar-touch-dragging');\n handlersRef.current.startSlotSelection(touchState.slot, touchState.index, { showPopover: false, lockScroll: true });\n };\n\n const handlePointerDown = event => {\n if (event.pointerType === 'mouse' || event.isPrimary === false) {\n return;\n }\n\n const slotElement = event.target?.closest?.('[data-slot-index]');\n if (!slotElement || !container.contains(slotElement)) {\n return;\n }\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 handlersRef.current.resetGestureState();\n touchStateRef.current = {\n pointerId: event.pointerId,\n x: event.clientX,\n y: event.clientY,\n lastX: event.clientX,\n lastY: event.clientY,\n slot,\n index,\n moved: false,\n longPressed: false,\n active: false,\n selectionTriggered: false\n };\n\n if (!allowMultiSelectRef.current) {\n return;\n }\n\n longPressTimerRef.current = window.setTimeout(() => {\n const touchState = touchStateRef.current;\n if (!touchState || touchState.pointerId !== event.pointerId || touchState.moved) {\n return;\n }\n activateLongPress(touchState);\n longPressTimerRef.current = null;\n }, LONG_PRESS_DELAY);\n };\n\n const handlePointerMove = event => {\n const touchState = touchStateRef.current;\n if (!touchState || event.pointerId !== touchState.pointerId) {\n return;\n }\n\n touchState.lastX = event.clientX;\n touchState.lastY = event.clientY;\n\n if (!touchState.active) {\n if (shouldCancelPendingGesture(touchState, event.clientX, event.clientY)) {\n touchState.moved = true;\n clearPendingTouch();\n }\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n clearDocumentTextSelection();\n const index = getSlotIndexFromPoint(container, event.clientX, event.clientY);\n if (index !== null) {\n handlersRef.current.updateSelectionRange(index);\n }\n };\n\n const handlePointerUp = event => {\n const touchState = touchStateRef.current;\n if (!touchState || event.pointerId !== touchState.pointerId) {\n return;\n }\n\n releasePointerCapture(event.pointerId);\n suppressMouseUntilRef.current = Date.now() + 700;\n\n if (touchState.active) {\n event.preventDefault();\n touchState.selectionTriggered = true;\n const index = getSlotIndexFromPoint(container, event.clientX, event.clientY);\n if (index !== null) {\n handlersRef.current.updateSelectionRange(index);\n }\n suppressTriggerUntilRef.current = Date.now() + 500;\n handlersRef.current.finishSelection({ fromTouch: true });\n return;\n }\n\n handlersRef.current.clearLongPress();\n\n const quickTap =\n !touchState.moved &&\n !touchState.longPressed &&\n Math.abs(event.clientX - touchState.x) <= TAP_MOVE_THRESHOLD &&\n Math.abs(event.clientY - touchState.y) <= TAP_MOVE_THRESHOLD &&\n isStillOnSameSlot(touchState, event.clientX, event.clientY);\n\n const { slot } = touchState;\n touchStateRef.current = null;\n\n if (quickTap) {\n touchState.selectionTriggered = true;\n suppressTriggerUntilRef.current = Date.now() + 500;\n handlersRef.current.selectSlots([slot]);\n handlersRef.current.showFormPopoverForSlots([slot]);\n handlersRef.current.onFreeSlotClick?.(slot);\n return;\n }\n\n handlersRef.current.resetGestureState();\n };\n\n const handleContextMenu = event => {\n if (touchStateRef.current?.active || draggingRef.current) {\n event.preventDefault();\n }\n };\n\n const handleSelectStart = event => {\n if (!touchStateRef.current?.active && !draggingRef.current) {\n return;\n }\n event.preventDefault();\n };\n\n const handleTouchMove = event => {\n if (!draggingRef.current && !touchStateRef.current?.active) {\n return;\n }\n event.preventDefault();\n };\n\n const touchOptions = { passive: false, capture: true };\n container.addEventListener('pointerdown', handlePointerDown, { passive: true });\n container.addEventListener('pointermove', handlePointerMove, { passive: false });\n container.addEventListener('pointerup', handlePointerUp, { passive: false });\n container.addEventListener('pointercancel', handlePointerUp, { passive: false });\n container.addEventListener('touchmove', handleTouchMove, touchOptions);\n container.addEventListener('contextmenu', handleContextMenu);\n container.addEventListener('selectstart', handleSelectStart);\n\n return () => {\n releasePointerCapture(touchStateRef.current?.pointerId);\n handlersRef.current.clearLongPress();\n handlersRef.current.resetGestureState();\n longPressTimerRef.current = null;\n container.removeEventListener('touchmove', handleTouchMove, touchOptions);\n };\n }, []);\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 handleMouseUp,\n handleMouseLeave,\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} data-slot-status={slot.status} 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 slotClassName = classNames(style['slot-item'], style[`slot-${slot.status}`], {\n [style['slot-selected']]: selected\n });\n const slotChildren = (\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 </>\n );\n const slotHandlers = {\n onContextMenu,\n onMouseDown,\n onPointerDown,\n onMouseEnter,\n onMouseUp,\n onClick\n };\n\n const inner =\n slot.status === 'disabled' ? (\n <button\n type=\"button\"\n className={slotClassName}\n data-slot-index={slot.index}\n data-slot-status={slot.status}\n disabled\n onContextMenu={onContextMenu}\n onMouseDown={onMouseDown}\n onPointerDown={onPointerDown}\n onMouseEnter={onMouseEnter}\n onMouseUp={onMouseUp}\n onClick={onClick}\n >\n {slotChildren}\n </button>\n ) : (\n <div role=\"button\" tabIndex={0} className={slotClassName} data-slot-index={slot.index} data-slot-status={slot.status} {...slotHandlers}>\n {slotChildren}\n </div>\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, handleMouseDown, handleMouseEnter, handleMouseUp, handleMouseLeave, 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={handleMouseUp} onMouseLeave={handleMouseLeave}>\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={handleMouseUp}\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","list","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","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","timeUnit","dayStart","dayEnd","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","SCROLL_CANCEL_THRESHOLD","TAP_MOVE_THRESHOLD","getPopoverKey","getSlotIndexFromPoint","clientX","clientY","slotElements","querySelectorAll","closestIndex","closestDistance","Infinity","candidate","rect","Number","getAttribute","isNaN","top","bottom","left","right","centerY","distance","abs","clearDocumentTextSelection","selection","document","getSelection","isCollapsed","removeAllRanges","useScheduleSelectionGesture","selectedSlots","setSelectedSlots","allowMultiSelect","onSlotRangeChange","onFreeSlotClick","_selectedSlots","dragging","setDragging","activePopoverKey","setActivePopoverKey","slotsRef","draggingRef","dragStartIndexRef","longPressTimerRef","touchStateRef","slotsDataRef","selectedSlotsRef","allowMultiSelectRef","suppressTriggerUntilRef","suppressMouseUntilRef","scrollLockRef","handlersRef","selectedKeys","Set","selectedAnchorKey","formPopoverKey","clearLongPress","clearTimeout","unlockContainerScroll","overflow","touchAction","lockContainerScroll","resetGestureState","touchState","pointerId","hasPointerCapture","releasePointerCapture","_unused","classList","remove","selectSlots","nextSlots","action","getSelectableRange","startIndex","endIndex","min","slice","showFormPopoverForSlots","slotsList","anchorSlot","startSlotSelection","showPopover","lockScroll","_slotsRef$current","Date","now","finishSelection","fromTouch","hadSelection","updateSelectionRange","shouldIgnoreMouseSelectionEvent","handleMouseDown","handleMouseEnter","handleMouseUp","handleMouseLeave","handlePopoverOpenChange","currentPopoverKey","isForm","prevKey","_unused2","clearPendingTouch","isStillOnSameSlot","currentIndex","shouldCancelPendingGesture","moveX","x","moveY","y","activateLongPress","_slotsRef$current2","lastX","lastY","longPressed","active","setPointerCapture","_unused3","handlePointerDown","_event$target","pointerType","isPrimary","slotElement","target","closest","contains","moved","selectionTriggered","setTimeout","handlePointerMove","stopPropagation","handlePointerUp","quickTap","handleContextMenu","_touchStateRef$curren","handleSelectStart","_touchStateRef$curren2","handleTouchMove","_touchStateRef$curren3","touchOptions","passive","capture","_touchStateRef$curren4","DefaultFormInner","FormInfo","column","Input","name","rule","placeholder","block","TextArea","SlotEvents","SlotItem","formPopover","popoverOpen","onPopoverOpenChange","onContextMenu","onMouseDown","onPointerDown","onMouseEnter","onMouseUp","renderTimeSlot","renderOccupiedSlot","customNode","autoAdjustOverflow","wrapWithPopover","Tooltip","slotClassName","slotChildren","_Fragment","slotHandlers","inner","SchedulePanel","onCreate","formInner","formProps","formContext","range","Form","data","onSubmit","SubmitButton","panelStyle","onMouseLeave","slotWithIndex","occupiedPopoverKey","has","extend","customParseFormat","buildMonthRuleCache","currentDate","cache","monthStart","monthEnd","endOf","cursor","ScheduleCalendarInner","onDateChange","propsStyle","calendarProps","panelProps","stackedLayoutStyle","setValue","setCurrent","defaultCurrent","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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"}