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