@kne/react-calendar 1.0.6 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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 { classNames, 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, scrollable = true }) => {\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={classNames(style['panel-card'], !scrollable && style['panel-card-expanded'])}>\n <Spin spinning={!!loading} classNames={{ root: style['panel-spin'], container: style['panel-spin-container'] }}>\n <div ref={scrollRef} className={classNames(style['panel-scroll-body'], !scrollable && style['panel-scroll-body-expanded'])} onScroll={scrollable ? onScroll : undefined}>\n {scrollable ? <PanelScrollShadow visible={scrolled} /> : null}\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 eventListScrollable = true,\n calendarProps,\n panelProps\n } = props;\n const rootRef = useRef(null);\n const calendarRef = useRef(null);\n const stacked = useStackedLayout(rootRef, stackAt);\n const eventListExpanded = mode === 'view' && !eventListScrollable;\n const stackedLayoutStyle = useStackedPanelLayout(rootRef, calendarRef, stacked && !eventListExpanded);\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\n ref={rootRef}\n className={classNames(style['schedule-calendar'], stacked && style['schedule-calendar-stacked'], eventListExpanded && style['schedule-calendar-event-list-expanded'], className)}\n data-schedule-layout={stacked ? 'stacked' : 'row'}\n style={stacked && !eventListExpanded ? stackedLayoutStyle : undefined}\n >\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} scrollable={eventListScrollable} />\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","scrollable","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","_props$eventListScrol","eventListScrollable","calendarProps","panelProps","eventListExpanded","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/timeline.js","../src/timeWindow.js","../src/components/TimeWindow/index.js","../src/components/SchedulePanel/DefaultFormInner.js","../src/components/SchedulePanel/EventDetail.js","../src/components/SchedulePanel/Timeline.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.cancel': '取消',\n 'SchedulePanel.save': '保存',\n 'SchedulePanel.newScheduleTitle': '新增日程',\n 'SchedulePanel.conflict': '与 {count} 个日程时间冲突',\n 'DefaultFormInner.title': '标题',\n 'DefaultFormInner.titlePlaceholder': '请输入日程标题',\n 'DefaultFormInner.detail': '详情',\n 'DefaultFormInner.detailPlaceholder': '请输入日程详情',\n 'TimeWindow.hours': '{count} 小时',\n 'TimeWindow.minutes': '{count} 分钟',\n 'TimeWindow.editable': '允许编辑',\n 'TimeWindow.locked': '已锁定',\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': 'Click or drag on free time',\n 'SchedulePanel.cancel': 'Cancel',\n 'SchedulePanel.save': 'Save',\n 'SchedulePanel.newScheduleTitle': 'New event',\n 'SchedulePanel.conflict': 'Overlaps {count} event(s)',\n 'DefaultFormInner.title': 'Title',\n 'DefaultFormInner.titlePlaceholder': 'Enter event title',\n 'DefaultFormInner.detail': 'Details',\n 'DefaultFormInner.detailPlaceholder': 'Enter event details',\n 'TimeWindow.hours': '{count} h',\n 'TimeWindow.minutes': '{count} min',\n 'TimeWindow.editable': 'Editable',\n 'TimeWindow.locked': 'Locked',\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 { classNames, 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, scrollable = true }) => {\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={classNames(style['panel-card'], !scrollable && style['panel-card-expanded'])}>\n <Spin spinning={!!loading} classNames={{ root: style['panel-spin'], container: style['panel-spin-container'] }}>\n <div ref={scrollRef} className={classNames(style['panel-scroll-body'], !scrollable && style['panel-scroll-body-expanded'])} onScroll={scrollable ? onScroll : undefined}>\n {scrollable ? <PanelScrollShadow visible={scrolled} /> : null}\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 dayjs from 'dayjs';\n\nexport const MINUTE_MS = 60 * 1000;\n\nconst toMs = value => {\n if (value === null || typeof value === 'undefined') {\n return NaN;\n }\n if (typeof value === 'number') {\n return value;\n }\n const date = dayjs(value);\n return date.isValid() ? date.valueOf() : NaN;\n};\n\nexport const snapToStep = (ms, { originMs, stepMs, mode = 'round' }) => {\n const fn = mode === 'floor' ? Math.floor : mode === 'ceil' ? Math.ceil : Math.round;\n return originMs + fn((ms - originMs) / stepMs) * stepMs;\n};\n\nconst clamp = (value, min, max) => Math.min(Math.max(value, min), max);\n\n/**\n * Clip events to the day window and lay overlapping ones out side by side.\n * Returns `{ event, startMs, endMs, column, columns }` sorted by start.\n */\nexport const layoutTimelineEvents = (events, { startMs, endMs }) => {\n const items = (events || [])\n .map(event => {\n const s = Math.max(toMs(event.start), startMs);\n const e = Math.min(toMs(event.end), endMs);\n return { event, startMs: s, endMs: e };\n })\n .filter(item => Number.isFinite(item.startMs) && Number.isFinite(item.endMs) && item.endMs > item.startMs)\n .sort((a, b) => a.startMs - b.startMs || b.endMs - a.endMs);\n\n let cluster = [];\n let clusterEnd = -Infinity;\n let columnEnds = [];\n const flush = () => {\n cluster.forEach(item => {\n item.columns = columnEnds.length;\n });\n cluster = [];\n columnEnds = [];\n };\n items.forEach(item => {\n if (item.startMs >= clusterEnd) {\n flush();\n clusterEnd = -Infinity;\n }\n let column = columnEnds.findIndex(end => end <= item.startMs);\n if (column === -1) {\n column = columnEnds.length;\n columnEnds.push(item.endMs);\n } else {\n columnEnds[column] = item.endMs;\n }\n item.column = column;\n cluster.push(item);\n clusterEnd = Math.max(clusterEnd, item.endMs);\n });\n flush();\n return items;\n};\n\n/** Merge consecutive disabled slots (same reason) into ranges. */\nexport const mergeDisabledSlots = slots => {\n const ranges = [];\n (slots || []).forEach(slot => {\n if (slot.status !== 'disabled') {\n return;\n }\n const startMs = toMs(slot.start);\n const endMs = toMs(slot.end);\n const last = ranges[ranges.length - 1];\n if (last && last.endMs === startMs && last.reason === slot.disabledReason) {\n last.endMs = endMs;\n return;\n }\n ranges.push({ startMs, endMs, reason: slot.disabledReason });\n });\n return ranges;\n};\n\nexport const toBlockers = ranges =>\n (ranges || [])\n .map(range => ({ startMs: toMs(range.startMs ?? range.start), endMs: toMs(range.endMs ?? range.end) }))\n .filter(range => Number.isFinite(range.startMs) && Number.isFinite(range.endMs) && range.endMs > range.startMs)\n .sort((a, b) => a.startMs - b.startMs);\n\n/**\n * The free gap around `ms` between blockers, bounded by the day window.\n * Returns null when `ms` falls inside a blocker.\n */\nexport const getFreeGap = (ms, blockers, { startMs, endMs }) => {\n let gapStart = startMs;\n let gapEnd = endMs;\n for (const blocker of blockers || []) {\n if (blocker.startMs <= ms && ms < blocker.endMs) {\n return null;\n }\n if (blocker.endMs <= ms) {\n gapStart = Math.max(gapStart, blocker.endMs);\n } else if (blocker.startMs > ms) {\n gapEnd = Math.min(gapEnd, blocker.startMs);\n }\n }\n if (ms < startMs || ms >= endMs || gapEnd <= gapStart) {\n return null;\n }\n return { startMs: gapStart, endMs: gapEnd };\n};\n\n/** Range created by pressing at `anchorMs` and dragging to `pointerMs`, kept inside `gap`. */\nexport const createSelectionRange = ({ anchorMs, pointerMs, gap, originMs, stepMs }) => {\n const anchorStart = clamp(snapToStep(anchorMs, { originMs, stepMs, mode: 'floor' }), gap.startMs, gap.endMs);\n const anchorEnd = Math.min(anchorStart + stepMs, gap.endMs);\n const pointer = clamp(pointerMs, gap.startMs, gap.endMs);\n if (pointer >= anchorStart) {\n const end = clamp(snapToStep(pointer, { originMs, stepMs, mode: 'ceil' }), anchorEnd, gap.endMs);\n return { startMs: anchorStart, endMs: end };\n }\n const start = clamp(snapToStep(pointer, { originMs, stepMs, mode: 'floor' }), gap.startMs, anchorStart);\n return { startMs: start, endMs: anchorEnd };\n};\n\n/** Default range for a single click: one `unitMs` block that contains the pointer, fitted into `gap`. */\nexport const clickSelectionRange = ({ pointerMs, gap, originMs, unitMs }) => {\n const duration = Math.min(unitMs, gap.endMs - gap.startMs);\n const start = clamp(snapToStep(pointerMs, { originMs, stepMs: unitMs, mode: 'floor' }), gap.startMs, gap.endMs - duration);\n return { startMs: start, endMs: start + duration };\n};\n\nexport const moveSelectionRange = ({ range, deltaMs, gap, originMs, stepMs }) => {\n const duration = range.endMs - range.startMs;\n const start = clamp(snapToStep(range.startMs + deltaMs, { originMs, stepMs }), gap.startMs, gap.endMs - duration);\n return { startMs: start, endMs: start + duration };\n};\n\nexport const resizeSelectionRange = ({ range, edge, pointerMs, gap, originMs, stepMs, minMs = stepMs }) => {\n const snapped = snapToStep(pointerMs, { originMs, stepMs });\n if (edge === 'start') {\n const start = clamp(snapped, gap.startMs, range.endMs - minMs);\n return { startMs: start, endMs: range.endMs };\n }\n const end = clamp(snapped, range.startMs + minMs, gap.endMs);\n return { startMs: range.startMs, endMs: end };\n};\n\nexport const findOverlappingEvents = (range, events) => {\n if (!range) {\n return [];\n }\n return (events || []).filter(event => toMs(event.start) < range.endMs && toMs(event.end) > range.startMs);\n};\n\nexport const findOverlappingSlots = (range, slots) => {\n if (!range) {\n return [];\n }\n return (slots || []).filter(slot => toMs(slot.start) < range.endMs && toMs(slot.end) > range.startMs);\n};\n","import dayjs from 'dayjs';\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\n\ndayjs.extend(customParseFormat);\n\nexport const DEFAULT_DURATION = 60;\nexport const DEFAULT_STEP = 1;\nexport const DEFAULT_DEBOUNCE_WAIT = 300;\nexport const DEFAULT_SEPARATOR = ' ~ ';\nexport const DEFAULT_FORMAT = ['YYYY-MM-DD HH:mm', 'HH:mm'];\nexport const DEFAULT_MIN_VISIBLE_SPAN = 360;\n\nconst MINUTE_MS = 60 * 1000;\nconst HOUR_MS = 60 * MINUTE_MS;\nconst PARSE_FORMATS = ['YYYY-MM-DD HH:mm:ss', 'YYYY-MM-DD HH:mm', 'YYYY-MM-DD'];\n\nexport const parseDateLike = value => {\n if (value == null || value === '') {\n return null;\n }\n if (dayjs.isDayjs(value)) {\n return value.isValid() ? value : null;\n }\n const direct = dayjs(value);\n if (direct.isValid()) {\n return direct;\n }\n if (typeof value === 'string') {\n const parsed = dayjs(value, PARSE_FORMATS, true);\n return parsed.isValid() ? parsed : null;\n }\n return null;\n};\n\nconst isEmptyBound = value => value == null || value === '';\n\nconst defaultDayRange = now => {\n const day = (parseDateLike(now) || dayjs()).startOf('day');\n return [day, day.add(1, 'day')];\n};\n\n/**\n * `null` 或 `[null, null]` 表示不限制;单侧为空表示该侧不限制;`undefined` 为当天全天。\n */\nexport const resolveRange = (range, now = dayjs()) => {\n if (range === null) {\n return [null, null];\n }\n if (!Array.isArray(range)) {\n return defaultDayRange(now);\n }\n const start = isEmptyBound(range[0]) ? null : parseDateLike(range[0]);\n const end = isEmptyBound(range[1]) ? null : parseDateLike(range[1]);\n const startInvalid = !isEmptyBound(range[0]) && !start;\n const endInvalid = !isEmptyBound(range[1]) && !end;\n if (startInvalid || endInvalid || (start && end && !end.isAfter(start))) {\n return defaultDayRange(now);\n }\n return [start, end];\n};\n\nexport const resolveDuration = (duration, rangeStart, rangeEnd) => {\n const requested = Number(duration) > 0 ? Number(duration) : DEFAULT_DURATION;\n if (!rangeStart || !rangeEnd) {\n return requested;\n }\n const rangeMinutes = rangeEnd.diff(rangeStart, 'minute');\n if (rangeMinutes > 0 && requested > rangeMinutes) {\n return rangeMinutes;\n }\n return requested;\n};\n\nexport const resolveStep = step => (Number(step) > 0 ? Number(step) : DEFAULT_STEP);\n\nexport const resolveVisibleSpan = ({ visibleSpan, duration, baseDuration = duration, rangeStart, rangeEnd }) => {\n const minimum = duration * 1.5;\n let span = Number(visibleSpan) > 0 ? Number(visibleSpan) : Math.max(baseDuration * 6, DEFAULT_MIN_VISIBLE_SPAN);\n if (rangeStart && rangeEnd && !(Number(visibleSpan) > 0)) {\n span = Math.min(span, rangeEnd.diff(rangeStart, 'minute'));\n }\n return Math.max(span, minimum);\n};\n\nconst snapMs = (ms, stepMs, mode = 'round') => {\n const anchor = dayjs(ms).startOf('day').valueOf();\n const units = (ms - anchor) / stepMs;\n const snapped = mode === 'floor' ? Math.floor(units) : mode === 'ceil' ? Math.ceil(units) : Math.round(units);\n return anchor + snapped * stepMs;\n};\n\nexport const clampWindowStart = (startInput, { rangeStart, rangeEnd, duration, step, snap = true, now }) => {\n const durationMs = duration * MINUTE_MS;\n const minMs = rangeStart ? rangeStart.valueOf() : -Infinity;\n const maxMs = rangeEnd ? rangeEnd.valueOf() - durationMs : Infinity;\n if (maxMs <= minMs) {\n return dayjs(minMs);\n }\n const fallback = rangeStart || parseDateLike(now) || dayjs();\n const start = parseDateLike(startInput) || fallback;\n const stepMs = step * MINUTE_MS;\n let target = snap ? snapMs(start.valueOf(), stepMs) : start.valueOf();\n if (target > maxMs) {\n target = snap ? snapMs(maxMs, stepMs, 'floor') : maxMs;\n }\n if (target < minMs) {\n target = snap ? snapMs(minMs, stepMs, 'ceil') : minMs;\n }\n return dayjs(Math.min(Math.max(target, minMs), maxMs));\n};\n\nexport const createTimeWindow = ({ start, duration, range, step, now, snap = true } = {}) => {\n const [rangeStart, rangeEnd] = resolveRange(range, now);\n const resolvedDuration = resolveDuration(duration, rangeStart, rangeEnd);\n const resolvedStep = resolveStep(step);\n const windowStart = clampWindowStart(start == null ? null : start, {\n rangeStart,\n rangeEnd,\n duration: resolvedDuration,\n step: resolvedStep,\n snap,\n now\n });\n return {\n start: windowStart,\n end: windowStart.add(resolvedDuration, 'minute'),\n rangeStart,\n rangeEnd,\n duration: resolvedDuration,\n step: resolvedStep\n };\n};\n\n/**\n * 拖动窗口一侧边界:另一侧保持不动,拖动侧按 step 吸附,并受最短 / 最长时长与范围约束。\n */\nexport const resizeTimeWindow = ({ edge, pointerMs, startMs, endMs, step, rangeStart, rangeEnd, minDuration, maxDuration }) => {\n const stepMs = resolveStep(step) * MINUTE_MS;\n const minMs = (Number(minDuration) > 0 ? Number(minDuration) : resolveStep(step)) * MINUTE_MS;\n const maxMs = Number(maxDuration) > 0 ? Number(maxDuration) * MINUTE_MS : Infinity;\n const rangeStartMs = rangeStart ? dayjs(rangeStart).valueOf() : -Infinity;\n const rangeEndMs = rangeEnd ? dayjs(rangeEnd).valueOf() : Infinity;\n if (edge === 'start') {\n let next = snapMs(pointerMs, stepMs);\n next = Math.min(next, endMs - minMs);\n next = Math.max(next, endMs - maxMs, rangeStartMs);\n return { startMs: next, duration: (endMs - next) / MINUTE_MS };\n }\n let next = snapMs(pointerMs, stepMs);\n next = Math.max(next, startMs + minMs);\n next = Math.min(next, startMs + maxMs, rangeEndMs);\n return { startMs, duration: (next - startMs) / MINUTE_MS };\n};\n\nexport const toWindowValue = window => [window.start.toDate(), window.end.toDate()];\n\nexport const getViewport = ({ startMs, duration }, visibleSpanMinutes) => {\n const spanMs = visibleSpanMinutes * MINUTE_MS;\n const centerMs = startMs + (duration * MINUTE_MS) / 2;\n return { startMs: centerMs - spanMs / 2, endMs: centerMs + spanMs / 2, spanMs };\n};\n\nexport const wheelDeltaToPx = ({ delta, deltaMode = 0, trackWidth }) => {\n if (deltaMode === 1) {\n return delta * 16;\n }\n if (deltaMode === 2) {\n return delta * (trackWidth > 0 ? trackWidth : 1);\n }\n return delta;\n};\n\n/**\n * 把滚轮像素累加为整步数:步数与刻度尺比例一致,单次离散滚动至少移动一步。\n */\nexport const consumeWheelSteps = ({ accumulatedPx, deltaPx, pxPerStep, discrete }) => {\n const sameDirection = accumulatedPx === 0 || Math.sign(accumulatedPx) === Math.sign(deltaPx);\n const total = (sameDirection ? accumulatedPx : 0) + deltaPx;\n const perStep = pxPerStep > 0 ? pxPerStep : 1;\n let steps = Math.trunc(total / perStep) || 0;\n let rest = total - steps * perStep;\n if (steps === 0 && discrete && deltaPx !== 0) {\n steps = Math.sign(deltaPx);\n rest = 0;\n }\n return { steps, accumulatedPx: rest };\n};\n\nexport const DEFAULT_INERTIA_TIME_CONSTANT = 325;\nconst VELOCITY_WINDOW_MS = 120;\n\n/**\n * `true` 为默认强度 1,数字为强度倍数,`false` / `0` 关闭。返回滑行衰减时间常数(ms),0 表示关闭。\n */\nexport const resolveInertia = inertia => {\n if (inertia === false || inertia == null) {\n return inertia == null ? DEFAULT_INERTIA_TIME_CONSTANT : 0;\n }\n if (inertia === true) {\n return DEFAULT_INERTIA_TIME_CONSTANT;\n }\n const strength = Number(inertia);\n return strength > 0 ? DEFAULT_INERTIA_TIME_CONSTANT * strength : 0;\n};\n\n/**\n * samples: [{ t, ms }],按时间顺序;返回最近一段内每毫秒移动的时间量。\n */\nexport const estimateVelocity = (samples, now) => {\n if (!samples || samples.length < 2) {\n return 0;\n }\n const latest = samples[samples.length - 1];\n const reference = now == null ? latest.t : now;\n if (reference - latest.t > VELOCITY_WINDOW_MS / 2) {\n return 0;\n }\n const recent = samples.filter(sample => latest.t - sample.t <= VELOCITY_WINDOW_MS);\n if (recent.length < 2) {\n return 0;\n }\n const first = recent[0];\n const elapsed = latest.t - first.t;\n return elapsed > 0 ? (latest.ms - first.ms) / elapsed : 0;\n};\n\nexport const timeAtClientX = ({ clientX, rectLeft, rectWidth, rangeStartMs, rangeEndMs, grabOffsetMs = 0 }) => {\n const span = Math.max(rangeEndMs - rangeStartMs, 1);\n const width = rectWidth > 0 ? rectWidth : 1;\n const ratio = Math.min(Math.max((clientX - rectLeft) / width, 0), 1);\n return rangeStartMs + ratio * span - grabOffsetMs;\n};\n\nexport const formatTimeWindowParts = ({ start, end, format = DEFAULT_FORMAT }) => {\n const startDate = parseDateLike(start);\n const endDate = parseDateLike(end);\n if (!startDate || !endDate || typeof format === 'function') {\n return null;\n }\n const formats = Array.isArray(format) ? format : [format, format];\n const startText = startDate.format(formats[0] || DEFAULT_FORMAT[0]);\n let endFormat = formats[1] || formats[0] || DEFAULT_FORMAT[1];\n const endAtMidnight = endDate.valueOf() === endDate.startOf('day').valueOf();\n if (format === DEFAULT_FORMAT && !endAtMidnight && !endDate.isSame(startDate, 'day')) {\n endFormat = 'MM-DD HH:mm';\n }\n return [startText, endDate.format(endFormat)];\n};\n\nexport const formatTimeWindow = ({ start, end, format = DEFAULT_FORMAT, separator = DEFAULT_SEPARATOR }) => {\n if (typeof format === 'function') {\n const startDate = parseDateLike(start);\n const endDate = parseDateLike(end);\n return startDate && endDate ? format(startDate.toDate(), endDate.toDate()) : '';\n }\n const parts = formatTimeWindowParts({ start, end, format });\n return parts ? `${parts[0]}${separator}${parts[1]}` : '';\n};\n\nconst LABEL_INTERVALS = [1, 2, 3, 4, 6, 8, 12, 24];\n\nconst pickLabelEvery = (pxPerHour, minLabelPx) => {\n if (!(pxPerHour > 0)) {\n return 3;\n }\n return LABEL_INTERVALS.find(every => pxPerHour * every >= minLabelPx) || 24;\n};\n\nconst TICK_MINUTES = [1, 2, 5, 10, 15, 30, 60];\nconst MIN_TICK_GAP_PX = 7;\n\nconst pickTickMinutes = (pxPerHour, labelEvery) => {\n const fit = TICK_MINUTES.find(minutes => (pxPerHour * minutes) / 60 >= MIN_TICK_GAP_PX);\n return fit || labelEvery * 60;\n};\n\n/**\n * 只生成当前视窗 [viewStart, viewEnd] 内的刻度;`outOfRange` 标出超出可选范围的刻度。\n */\nexport const buildScaleTicks = (viewStart, viewEnd, { trackWidth, rangeStart, rangeEnd, minLabelPx = 52 } = {}) => {\n const viewStartMs = dayjs(viewStart).valueOf();\n const viewEndMs = dayjs(viewEnd).valueOf();\n const span = viewEndMs - viewStartMs;\n if (span <= 0) {\n return [];\n }\n const pxPerHour = trackWidth > 0 ? (trackWidth * HOUR_MS) / span : 0;\n const labelEvery = trackWidth > 0 ? pickLabelEvery(pxPerHour, minLabelPx) : span / HOUR_MS <= 6 ? 1 : 3;\n const tickMinutes = trackWidth > 0 ? pickTickMinutes(pxPerHour, labelEvery) : 60;\n const tickMs = tickMinutes * MINUTE_MS;\n const rangeStartMs = rangeStart ? dayjs(rangeStart).valueOf() : -Infinity;\n const rangeEndMs = rangeEnd ? dayjs(rangeEnd).valueOf() : Infinity;\n const ticks = [];\n let cursorMs = snapMs(viewStartMs, tickMs, 'ceil');\n while (cursorMs <= viewEndMs) {\n const cursor = dayjs(cursorMs);\n const major = cursor.minute() === 0;\n const midnight = major && cursor.hour() === 0;\n const minute = cursor.minute();\n const level = midnight ? 'day' : major ? 'hour' : minute === 30 ? 'half' : minute % 15 === 0 && tickMinutes < 15 ? 'quarter' : 'minute';\n ticks.push({\n key: cursorMs,\n ratio: (cursorMs - viewStartMs) / span,\n major,\n level,\n label: midnight ? cursor.format('MM-DD') : cursor.format('HH:mm'),\n showLabel: major && cursor.hour() % labelEvery === 0,\n outOfRange: cursorMs < rangeStartMs || cursorMs > rangeEndMs\n });\n cursorMs = snapMs(cursorMs + tickMs, tickMs);\n }\n return ticks;\n};\n\nexport const formatDurationParts = minutes => {\n const total = Math.max(Math.round(minutes), 0);\n return { hours: Math.floor(total / 60), minutes: total % 60 };\n};\n","import { useEffect, useMemo, useRef, useState } from 'react';\nimport { useIntl } from '@kne/react-intl';\nimport withLocale from '../../withLocale';\nimport { classNames } from '../../utils';\nimport {\n DEFAULT_DEBOUNCE_WAIT,\n DEFAULT_DURATION,\n DEFAULT_FORMAT,\n DEFAULT_SEPARATOR,\n buildScaleTicks,\n consumeWheelSteps,\n createTimeWindow,\n estimateVelocity,\n formatDurationParts,\n formatTimeWindow,\n formatTimeWindowParts,\n getViewport,\n parseDateLike,\n resizeTimeWindow,\n resolveInertia,\n resolveVisibleSpan,\n timeAtClientX,\n toWindowValue,\n wheelDeltaToPx\n} from '../../timeWindow';\nimport style from './style.module.scss';\n\nconst GRIP_MIN_WIDTH = 28;\nconst CLICK_MOVE_TOLERANCE = 4;\nconst DISCRETE_WHEEL_DELTA = 50;\nconst VISUAL_EASE_MS = 70;\nconst WHEEL_IDLE_MS = 140;\nconst WHEEL_NOTCH_EASE_MS = 90;\nconst WHEEL_INERTIA_SCALE = 0.6;\n\nconst sameInstant = (left, right) => {\n const leftDate = parseDateLike(left);\n const rightDate = parseDateLike(right);\n if (!leftDate || !rightDate) {\n return false;\n }\n return Math.abs(leftDate.valueOf() - rightDate.valueOf()) < 1000;\n};\n\nconst readWindowStart = value => {\n if (!Array.isArray(value)) {\n return null;\n }\n return parseDateLike(value[0]);\n};\n\nconst isDiscreteWheel = (event, deltaPx) => {\n if (event.deltaMode !== 0) {\n return true;\n }\n const legacy = event.wheelDeltaY || event.wheelDeltaX;\n if (legacy && Math.abs(legacy) % 120 === 0) {\n return true;\n }\n return Math.abs(deltaPx) >= DISCRETE_WHEEL_DELTA;\n};\n\nconst useElementWidth = ref => {\n const [width, setWidth] = useState(0);\n useEffect(() => {\n const node = ref.current;\n if (!node) {\n return undefined;\n }\n setWidth(node.getBoundingClientRect().width);\n if (typeof ResizeObserver === 'undefined') {\n return undefined;\n }\n const observer = new ResizeObserver(entries => {\n const entry = entries[0];\n if (entry) {\n setWidth(entry.contentRect.width);\n }\n });\n observer.observe(node);\n return () => observer.disconnect();\n }, [ref]);\n return width;\n};\n\nconst TimeWindowInner = ({\n value,\n defaultValue,\n onChange,\n duration,\n range,\n step,\n visibleSpan,\n debounceWait = DEFAULT_DEBOUNCE_WAIT,\n format = DEFAULT_FORMAT,\n separator = DEFAULT_SEPARATOR,\n showDuration = true,\n size = 'default',\n inertia = true,\n resizable = true,\n wheelEffect = true,\n lockable = false,\n locked,\n defaultLocked = false,\n onLockedChange,\n minDuration,\n maxDuration,\n className,\n style: styleProp\n}) => {\n const { formatMessage } = useIntl();\n const isControlled = typeof value !== 'undefined';\n const [innerValue, setInnerValue] = useState(() => {\n if (Array.isArray(defaultValue) && readWindowStart(defaultValue)) {\n return defaultValue;\n }\n return toWindowValue(createTimeWindow({ duration, range, step }));\n });\n const [draftStart, setDraftStart] = useState(null);\n const [draftDuration, setDraftDuration] = useState(null);\n const [dragging, setDragging] = useState(false);\n const [innerLocked, setInnerLocked] = useState(defaultLocked);\n const lockedControlled = typeof locked === 'boolean';\n const isLocked = lockable && (lockedControlled ? locked : innerLocked);\n const [resizeView, setResizeView] = useState(null);\n const resizeRef = useRef(null);\n const resizeEdge = resizeView ? resizeView.edge : null;\n const rootRef = useRef(null);\n const trackRef = useRef(null);\n const dragRef = useRef(null);\n const wheelAccumRef = useRef(0);\n const interactingRef = useRef(false);\n const timerRef = useRef(null);\n const pendingRef = useRef(null);\n const onChangeRef = useRef(onChange);\n const onLockedChangeRef = useRef(onLockedChange);\n const isLockedRef = useRef(isLocked);\n onLockedChangeRef.current = onLockedChange;\n isLockedRef.current = isLocked;\n const trackWidth = useElementWidth(trackRef);\n\n const committedValue = isControlled ? value : innerValue;\n const committedStart = readWindowStart(committedValue);\n const committedMs = committedStart ? committedStart.valueOf() : null;\n const anchorDay = committedStart ? committedStart.startOf('day').valueOf() : undefined;\n const draftMs = draftStart ? draftStart.valueOf() : null;\n const committedEnd = Array.isArray(committedValue) ? parseDateLike(committedValue[1]) : null;\n const committedEndMs = committedEnd ? committedEnd.valueOf() : null;\n const committedDuration = committedStart && committedEnd && committedEnd.isAfter(committedStart) ? committedEnd.diff(committedStart, 'minute', true) : null;\n const activeDuration = draftDuration != null ? draftDuration : committedDuration != null ? committedDuration : duration;\n\n const initialDurationRef = useRef(committedDuration || DEFAULT_DURATION);\n const optionsRef = useRef(null);\n onChangeRef.current = onChange;\n optionsRef.current = { duration: activeDuration, range, step, now: anchorDay };\n\n const baseWindow = useMemo(() => {\n const start = draftMs == null ? committedMs : draftMs;\n return createTimeWindow({ start, duration: activeDuration, range, step, now: anchorDay });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [anchorDay, committedMs, draftMs, activeDuration, step, JSON.stringify(range === undefined ? 'default' : range)]);\n\n const visibleSpanMinutes = resolveVisibleSpan({\n visibleSpan,\n duration: baseWindow.duration,\n baseDuration: Number(duration) > 0 ? Number(duration) : initialDurationRef.current,\n rangeStart: baseWindow.rangeStart,\n rangeEnd: baseWindow.rangeEnd\n });\n const baseStartMs = baseWindow.start.valueOf();\n const rangeStartMs = baseWindow.rangeStart ? baseWindow.rangeStart.valueOf() : null;\n const rangeEndMs = baseWindow.rangeEnd ? baseWindow.rangeEnd.valueOf() : null;\n const durationMs = baseWindow.duration * 60 * 1000;\n\n const [visualMs, setVisualMs] = useState(null);\n const visualRef = useRef(null);\n const visualTargetRef = useRef(null);\n const frameRef = useRef(null);\n const lastFrameRef = useRef(0);\n const wheelActiveRef = useRef(false);\n const wheelIdleRef = useRef(null);\n const easeRef = useRef(VISUAL_EASE_MS);\n const glidingRef = useRef(false);\n const wheelBaseRef = useRef(null);\n const wheelSamplesRef = useRef([]);\n const wheelDirectionRef = useRef(0);\n const inertiaTau = resolveInertia(inertia);\n const inertiaRef = useRef(inertiaTau);\n inertiaRef.current = inertiaTau;\n\n const clampVisual = ms => {\n let next = ms;\n if (rangeEndMs != null) {\n next = Math.min(next, rangeEndMs - durationMs);\n }\n if (rangeStartMs != null) {\n next = Math.max(next, rangeStartMs);\n }\n return next;\n };\n const clampVisualRef = useRef(clampVisual);\n clampVisualRef.current = clampVisual;\n\n const runFrame = time => {\n const target = visualTargetRef.current;\n const current = visualRef.current == null ? target : visualRef.current;\n const dt = lastFrameRef.current ? Math.min(time - lastFrameRef.current, 64) : 16;\n lastFrameRef.current = time;\n const diff = target - current;\n const settled = Math.abs(diff) < 1000;\n const next = settled ? target : current + diff * (1 - Math.exp(-dt / easeRef.current));\n visualRef.current = next;\n setVisualMs(next);\n if (glidingRef.current) {\n moveToRef.current(next);\n }\n if (settled) {\n frameRef.current = null;\n lastFrameRef.current = 0;\n easeRef.current = VISUAL_EASE_MS;\n glidingRef.current = false;\n return;\n }\n frameRef.current = requestAnimationFrame(runFrame);\n };\n\n const stopGlide = () => {\n if (!glidingRef.current) {\n return false;\n }\n glidingRef.current = false;\n wheelBaseRef.current = null;\n wheelSamplesRef.current = [];\n wheelDirectionRef.current = 0;\n easeRef.current = VISUAL_EASE_MS;\n if (frameRef.current) {\n cancelAnimationFrame(frameRef.current);\n frameRef.current = null;\n lastFrameRef.current = 0;\n }\n visualTargetRef.current = visualRef.current;\n return true;\n };\n\n const glideTo = (ms, easeMs = inertiaTau) => {\n const snapped = createTimeWindow({ start: ms, ...optionsRef.current }).start.valueOf();\n glidingRef.current = true;\n easeRef.current = easeMs;\n setVisualTarget(snapped);\n };\n\n const setVisualTarget = (ms, { immediate = false } = {}) => {\n const target = clampVisualRef.current(ms);\n visualTargetRef.current = target;\n if (immediate || typeof requestAnimationFrame === 'undefined') {\n if (frameRef.current) {\n cancelAnimationFrame(frameRef.current);\n frameRef.current = null;\n lastFrameRef.current = 0;\n }\n visualRef.current = target;\n setVisualMs(target);\n return;\n }\n if (!frameRef.current) {\n frameRef.current = requestAnimationFrame(runFrame);\n }\n };\n const setVisualTargetRef = useRef(setVisualTarget);\n setVisualTargetRef.current = setVisualTarget;\n const glideToRef = useRef(glideTo);\n glideToRef.current = glideTo;\n const stopGlideRef = useRef(stopGlide);\n stopGlideRef.current = stopGlide;\n\n useEffect(\n () => () => {\n if (frameRef.current) {\n cancelAnimationFrame(frameRef.current);\n }\n clearTimeout(wheelIdleRef.current);\n },\n []\n );\n\n useEffect(() => {\n if (dragRef.current || resizeRef.current || wheelActiveRef.current || glidingRef.current) {\n return;\n }\n if (visualRef.current == null) {\n visualRef.current = baseStartMs;\n visualTargetRef.current = baseStartMs;\n return;\n }\n setVisualTargetRef.current(baseStartMs);\n }, [baseStartMs]);\n\n const displayStartMs = resizeView || visualMs == null ? baseStartMs : visualMs;\n const viewport = resizeView || getViewport({ startMs: displayStartMs, duration: baseWindow.duration }, visibleSpanMinutes);\n\n const viewRef = useRef(null);\n const baseWindowRef = useRef(baseWindow);\n baseWindowRef.current = baseWindow;\n viewRef.current = viewport;\n\n const ticks = useMemo(\n () =>\n buildScaleTicks(viewport.startMs, viewport.endMs, {\n trackWidth,\n rangeStart: rangeStartMs,\n rangeEnd: rangeEndMs\n }),\n [viewport.startMs, viewport.endMs, trackWidth, rangeStartMs, rangeEndMs]\n );\n\n const toPercent = ms => ((ms - viewport.startMs) / viewport.spanMs) * 100;\n const width = (durationMs / viewport.spanMs) * 100;\n const left = toPercent(displayStartMs);\n const windowPx = (width / 100) * trackWidth;\n const leftShade = rangeStartMs != null ? Math.min(Math.max(toPercent(rangeStartMs), 0), 100) : 0;\n const rightShade = rangeEndMs != null ? Math.min(Math.max(100 - toPercent(rangeEndMs), 0), 100) : 0;\n\n const label = useMemo(() => {\n if (typeof format === 'function') {\n return format(baseWindow.start.toDate(), baseWindow.end.toDate());\n }\n const [startText, endText] = formatTimeWindowParts({ start: baseWindow.start, end: baseWindow.end, format });\n return (\n <>\n <span>{startText}</span>\n <span className={style.separator}>{separator}</span>\n <span>{endText}</span>\n </>\n );\n }, [baseWindow.end, baseWindow.start, format, separator]);\n\n const ariaValueText = formatTimeWindow({\n start: baseWindow.start,\n end: baseWindow.end,\n format: typeof format === 'function' ? DEFAULT_FORMAT : format,\n separator: typeof separator === 'string' ? separator : DEFAULT_SEPARATOR\n });\n\n const durationText = useMemo(() => {\n const { hours, minutes } = formatDurationParts(baseWindow.duration);\n const parts = [];\n if (hours) {\n parts.push(formatMessage({ id: 'TimeWindow.hours' }, { count: hours }));\n }\n if (minutes || !hours) {\n parts.push(formatMessage({ id: 'TimeWindow.minutes' }, { count: minutes }));\n }\n return parts.join(' ');\n }, [baseWindow.duration, formatMessage]);\n\n const clearTimer = () => {\n if (timerRef.current) {\n clearTimeout(timerRef.current);\n timerRef.current = null;\n }\n };\n\n useEffect(() => clearTimer, []);\n\n useEffect(() => {\n if (interactingRef.current || draftMs == null) {\n return;\n }\n const pending = Array.isArray(pendingRef.current) ? pendingRef.current : null;\n if (pending && sameInstant(committedMs, pending[0]) && sameInstant(committedEndMs, pending[1])) {\n pendingRef.current = null;\n setDraftStart(null);\n setDraftDuration(null);\n }\n }, [committedMs, committedEndMs, draftMs]);\n\n const publish = nextWindow => {\n const nextValue = toWindowValue(nextWindow);\n baseWindowRef.current = nextWindow;\n pendingRef.current = nextValue;\n setDraftStart(nextWindow.start);\n setDraftDuration(nextWindow.duration);\n clearTimer();\n timerRef.current = setTimeout(() => {\n timerRef.current = null;\n if (!isControlled) {\n setInnerValue(nextValue);\n }\n if (onChangeRef.current) {\n onChangeRef.current(nextValue);\n }\n }, debounceWait);\n };\n\n const moveTo = startInput => {\n const current = baseWindowRef.current;\n const nextWindow = createTimeWindow({\n start: startInput,\n ...optionsRef.current\n });\n if (nextWindow.start.valueOf() === current.start.valueOf()) {\n return;\n }\n publish(nextWindow);\n };\n const moveToRef = useRef(moveTo);\n moveToRef.current = moveTo;\n\n const durationPropRef = useRef(duration);\n useEffect(() => {\n if (durationPropRef.current === duration) {\n return;\n }\n durationPropRef.current = duration;\n publish(createTimeWindow({ ...optionsRef.current, start: baseWindowRef.current.start, duration }));\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [duration]);\n\n const pointerTimeAt = (clientX, view) => {\n const rect = trackRef.current ? trackRef.current.getBoundingClientRect() : { left: 0, width: 1 };\n return timeAtClientX({\n clientX,\n rectLeft: rect.left,\n rectWidth: rect.width,\n rangeStartMs: view.startMs,\n rangeEndMs: view.endMs\n });\n };\n\n const startResize = (event, edge) => {\n const view = viewRef.current;\n const current = baseWindowRef.current;\n const edgeMs = edge === 'start' ? current.start.valueOf() : current.end.valueOf();\n resizeRef.current = {\n pointerId: event.pointerId,\n edge,\n view,\n grabOffsetMs: pointerTimeAt(event.clientX, view) - edgeMs\n };\n interactingRef.current = true;\n setResizeView({ ...view, edge });\n try {\n event.currentTarget.setPointerCapture(event.pointerId);\n } catch (error) {\n // pointer may already be released\n }\n };\n\n const moveResize = event => {\n const resize = resizeRef.current;\n const current = baseWindowRef.current;\n const next = resizeTimeWindow({\n edge: resize.edge,\n pointerMs: pointerTimeAt(event.clientX, resize.view) - resize.grabOffsetMs,\n startMs: current.start.valueOf(),\n endMs: current.end.valueOf(),\n step: current.step,\n rangeStart: current.rangeStart,\n rangeEnd: current.rangeEnd,\n minDuration,\n maxDuration\n });\n if (next.startMs === current.start.valueOf() && next.duration === current.duration) {\n return;\n }\n publish(createTimeWindow({ ...optionsRef.current, start: next.startMs, duration: next.duration }));\n };\n\n const endResize = () => {\n const resize = resizeRef.current;\n resizeRef.current = null;\n interactingRef.current = false;\n const current = baseWindowRef.current;\n const centerMs = resize.view.startMs + resize.view.spanMs / 2;\n const frozenStart = centerMs - (current.duration * 60 * 1000) / 2;\n visualRef.current = frozenStart;\n setVisualMs(frozenStart);\n setResizeView(null);\n setVisualTargetRef.current(current.start.valueOf());\n };\n\n const onPointerDown = event => {\n if (event.button != null && event.button !== 0) {\n return;\n }\n const braked = stopGlideRef.current();\n const edgeNode = resizable && event.target && event.target.closest ? event.target.closest('[data-edge]') : null;\n if (edgeNode) {\n startResize(event, edgeNode.getAttribute('data-edge'));\n return;\n }\n dragRef.current = {\n pointerId: event.pointerId,\n startX: event.clientX,\n originMs: visualRef.current == null ? baseWindowRef.current.start.valueOf() : visualRef.current,\n moved: false,\n braked,\n samples: []\n };\n interactingRef.current = true;\n try {\n event.currentTarget.setPointerCapture(event.pointerId);\n } catch (error) {\n // pointer may already be released\n }\n };\n\n const onPointerMove = event => {\n if (resizeRef.current) {\n if (resizeRef.current.pointerId === event.pointerId) {\n moveResize(event);\n }\n return;\n }\n const drag = dragRef.current;\n if (!drag || drag.pointerId !== event.pointerId) {\n return;\n }\n const dx = event.clientX - drag.startX;\n if (!drag.moved && Math.abs(dx) < CLICK_MOVE_TOLERANCE) {\n return;\n }\n if (!drag.moved) {\n drag.moved = true;\n setDragging(true);\n }\n const rect = trackRef.current ? trackRef.current.getBoundingClientRect() : { width: 1 };\n const deltaMs = (dx / (rect.width || 1)) * viewRef.current.spanMs;\n const rawMs = drag.originMs - deltaMs;\n drag.samples.push({ t: event.timeStamp, ms: rawMs });\n if (drag.samples.length > 12) {\n drag.samples.shift();\n }\n moveToRef.current(rawMs);\n setVisualTargetRef.current(rawMs, { immediate: true });\n };\n\n const endDrag = event => {\n if (resizeRef.current) {\n if (!event || resizeRef.current.pointerId === event.pointerId) {\n endResize();\n }\n return;\n }\n const drag = dragRef.current;\n if (!drag || (event && drag.pointerId !== event.pointerId)) {\n return;\n }\n dragRef.current = null;\n interactingRef.current = false;\n setDragging(false);\n if (drag.moved) {\n const velocity = inertiaRef.current && event ? estimateVelocity(drag.samples, event.timeStamp) : 0;\n const projection = velocity * inertiaRef.current;\n if (Math.abs(projection) >= baseWindowRef.current.step * 60 * 1000) {\n glideToRef.current(visualRef.current + projection);\n } else {\n setVisualTargetRef.current(baseWindowRef.current.start.valueOf());\n }\n }\n if (!drag.moved && drag.braked) {\n moveToRef.current(drag.originMs);\n setVisualTargetRef.current(baseWindowRef.current.start.valueOf());\n return;\n }\n if (!drag.moved && event && event.type === 'pointerup') {\n const rect = trackRef.current ? trackRef.current.getBoundingClientRect() : { left: 0, width: 1 };\n const view = viewRef.current;\n const clickedMs = timeAtClientX({\n clientX: event.clientX,\n rectLeft: rect.left,\n rectWidth: rect.width,\n rangeStartMs: view.startMs,\n rangeEndMs: view.endMs\n });\n const current = baseWindowRef.current;\n moveToRef.current(clickedMs - (current.duration * 60 * 1000) / 2);\n }\n };\n\n const onKeyDown = event => {\n stopGlideRef.current();\n const current = baseWindowRef.current;\n const stepMinutes = current.step;\n const moves = {\n ArrowLeft: -stepMinutes,\n ArrowDown: -stepMinutes,\n ArrowRight: stepMinutes,\n ArrowUp: stepMinutes,\n PageDown: -current.duration,\n PageUp: current.duration\n };\n if (event.key === 'Home' && current.rangeStart) {\n event.preventDefault();\n moveToRef.current(current.rangeStart);\n return;\n }\n if (event.key === 'End' && current.rangeEnd) {\n event.preventDefault();\n moveToRef.current(current.rangeEnd);\n return;\n }\n if (!(event.key in moves)) {\n return;\n }\n event.preventDefault();\n const minutes = event.shiftKey ? Math.sign(moves[event.key]) * Math.max(60, stepMinutes) : moves[event.key];\n moveToRef.current(current.start.add(minutes, 'minute'));\n };\n\n useEffect(() => {\n const node = rootRef.current;\n if (!node) {\n return undefined;\n }\n const onWheel = event => {\n if (isLockedRef.current) {\n return;\n }\n const dominant = Math.abs(event.deltaX) > Math.abs(event.deltaY) ? event.deltaX : event.deltaY;\n if (!dominant) {\n return;\n }\n event.preventDefault();\n const current = baseWindowRef.current;\n const rectWidth = trackRef.current ? trackRef.current.getBoundingClientRect().width : node.clientWidth;\n const deltaPx = wheelDeltaToPx({ delta: dominant, deltaMode: event.deltaMode, trackWidth: rectWidth });\n const stepMs = current.step * 60 * 1000;\n const pxPerStep = (rectWidth * stepMs) / viewRef.current.spanMs;\n const discrete = isDiscreteWheel(event, deltaPx);\n const { steps, accumulatedPx } = consumeWheelSteps({\n accumulatedPx: wheelAccumRef.current,\n deltaPx,\n pxPerStep,\n discrete\n });\n wheelAccumRef.current = accumulatedPx;\n wheelActiveRef.current = true;\n clearTimeout(wheelIdleRef.current);\n wheelIdleRef.current = setTimeout(() => {\n wheelActiveRef.current = false;\n wheelAccumRef.current = 0;\n wheelBaseRef.current = null;\n wheelSamplesRef.current = [];\n wheelDirectionRef.current = 0;\n if (!glidingRef.current) {\n setVisualTargetRef.current(baseWindowRef.current.start.valueOf());\n }\n }, WHEEL_IDLE_MS);\n\n if (discrete && inertiaRef.current) {\n if (!steps) {\n return;\n }\n const samples = wheelSamplesRef.current;\n if (wheelDirectionRef.current !== Math.sign(steps)) {\n samples.length = 0;\n wheelBaseRef.current = null;\n wheelDirectionRef.current = Math.sign(steps);\n }\n const from = wheelBaseRef.current == null ? current.start.valueOf() : wheelBaseRef.current;\n const base = createTimeWindow({ start: from + steps * stepMs, ...optionsRef.current }).start.valueOf();\n wheelBaseRef.current = base;\n samples.push({ t: event.timeStamp, ms: base });\n if (samples.length > 8) {\n samples.shift();\n }\n const projection = estimateVelocity(samples, event.timeStamp) * inertiaRef.current * WHEEL_INERTIA_SCALE;\n let target = base + projection;\n const lastTarget = visualTargetRef.current;\n if (samples.length > 1 && lastTarget != null && (target - lastTarget) * wheelDirectionRef.current < 0) {\n target = lastTarget;\n }\n glideToRef.current(target, projection ? inertiaRef.current : WHEEL_NOTCH_EASE_MS);\n return;\n }\n\n if (steps) {\n moveToRef.current(current.start.valueOf() + steps * stepMs);\n }\n const residualMs = pxPerStep > 0 ? (accumulatedPx / pxPerStep) * stepMs : 0;\n setVisualTargetRef.current(baseWindowRef.current.start.valueOf() + residualMs);\n };\n node.addEventListener('wheel', onWheel, { passive: false });\n return () => node.removeEventListener('wheel', onWheel);\n }, []);\n\n const toggleLocked = () => {\n const next = !isLockedRef.current;\n if (next) {\n stopGlideRef.current();\n }\n if (!lockedControlled) {\n setInnerLocked(next);\n }\n if (onLockedChangeRef.current) {\n onLockedChangeRef.current(next);\n }\n };\n\n const labelTicks = ticks.filter(tick => tick.showLabel);\n const ariaBounds = {};\n if (rangeStartMs != null) {\n ariaBounds['aria-valuemin'] = rangeStartMs;\n }\n if (rangeEndMs != null) {\n ariaBounds['aria-valuemax'] = rangeEndMs - durationMs;\n }\n\n return (\n <div\n ref={rootRef}\n className={classNames(style.root, style[`root-${size}`], className, {\n [style['root-dragging']]: dragging,\n [style['root-resizing']]: !!resizeView,\n [style['root-locked']]: isLocked\n })}\n style={styleProp}\n >\n <div className={style.header}>\n <div className={style.label}>{label}</div>\n <div className={style.actions}>\n {lockable ? (\n <button\n type=\"button\"\n role=\"switch\"\n aria-checked={!isLocked}\n aria-label={formatMessage({ id: isLocked ? 'TimeWindow.locked' : 'TimeWindow.editable' })}\n className={classNames(style.switch, { [style['switch-on']]: !isLocked })}\n onClick={toggleLocked}\n >\n <i />\n </button>\n ) : null}\n {showDuration ? <span className={style.duration}>{durationText}</span> : null}\n </div>\n </div>\n {isLocked ? null : (\n <div className={style.scale}>\n <div\n ref={trackRef}\n className={classNames(style.track, { [style['track-wheel']]: wheelEffect })}\n role=\"slider\"\n tabIndex={0}\n {...ariaBounds}\n aria-valuenow={baseWindow.start.valueOf()}\n aria-valuetext={ariaValueText}\n onKeyDown={onKeyDown}\n onPointerDown={onPointerDown}\n onPointerMove={onPointerMove}\n onPointerUp={endDrag}\n onPointerCancel={endDrag}\n >\n {leftShade > 0 ? <span className={classNames(style.shade, style['shade-start'])} style={{ width: `${leftShade}%` }} /> : null}\n {rightShade > 0 ? <span className={classNames(style.shade, style['shade-end'])} style={{ width: `${rightShade}%` }} /> : null}\n <div className={style.ticks}>\n {ticks.map(tick => (\n <span\n key={tick.key}\n className={classNames(style.tick, style[`tick-${tick.level}`], {\n [style['tick-out']]: tick.outOfRange\n })}\n style={{ left: `${tick.ratio * 100}%` }}\n />\n ))}\n </div>\n {wheelEffect ? <span className={style.cylinder} aria-hidden=\"true\" /> : null}\n <span\n className={classNames(style.window, {\n [style['window-compact']]: windowPx < GRIP_MIN_WIDTH,\n [style['window-resizable']]: resizable,\n [style['window-fixed']]: !resizable\n })}\n style={{ left: `${left}%`, width: `${width}%` }}\n >\n {resizable ? (\n <>\n <span data-edge=\"start\" aria-hidden=\"true\" className={classNames(style.edge, style['edge-start'], { [style['edge-active']]: resizeEdge === 'start' })} />\n <span data-edge=\"end\" aria-hidden=\"true\" className={classNames(style.edge, style['edge-end'], { [style['edge-active']]: resizeEdge === 'end' })} />\n </>\n ) : null}\n </span>\n </div>\n <div className={style.labels}>\n {labelTicks.map(tick => (\n <span\n key={tick.key}\n className={classNames(style['tick-label'], style[`tick-label-${tick.level}`], {\n [style['tick-out']]: tick.outOfRange\n })}\n style={{ left: `${tick.ratio * 100}%` }}\n >\n {tick.label}\n </span>\n ))}\n </div>\n </div>\n )}\n </div>\n );\n};\n\nconst TimeWindow = withLocale(TimeWindowInner);\n\nexport default TimeWindow;\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 { Tag } from 'antd';\nimport { classNames, formatRange } from '../../utils';\nimport getEventTagLabel from '../EventItem/getEventTagLabel';\nimport style from './style.module.scss';\n\nconst EventDetail = ({ event, date, onEventClick }) => {\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: 'schedule' });\n return;\n }\n onEventClick?.(event, { date, mode: 'schedule' });\n };\n const tagLabel = getEventTagLabel(event);\n return (\n <div\n className={classNames(style['event-detail'], { [style['event-detail-clickable']]: clickable, [style['event-detail-disabled']]: event.disabled })}\n style={event.color ? { '--timeline-event-color': event.color } : undefined}\n role={clickable ? 'button' : undefined}\n tabIndex={clickable ? 0 : undefined}\n onClick={clickable ? handleClick : undefined}\n onKeyDown={\n clickable\n ? keyEvent => {\n if (keyEvent.key === 'Enter' || keyEvent.key === ' ') {\n keyEvent.preventDefault();\n handleClick();\n }\n }\n : undefined\n }\n >\n <span className={style['event-detail-bar']} />\n <div className={style['event-detail-body']}>\n <div className={style['event-detail-title']}>{event.title}</div>\n <div className={style['event-detail-time']}>{formatRange(event.start, event.end)}</div>\n {event.detail ? <div className={style['event-detail-text']}>{event.detail}</div> : null}\n {tagLabel ? (\n <Tag className={style['event-detail-tag']} color={event.color}>\n {tagLabel}\n </Tag>\n ) : null}\n </div>\n </div>\n );\n};\n\nexport default EventDetail;\n","import { useEffect, useMemo, useRef, useState } from 'react';\nimport dayjs from 'dayjs';\nimport { Popover, Tooltip } from 'antd';\nimport { TIME_FORMAT } from '../../constants';\nimport { MINUTE_MS, clickSelectionRange, createSelectionRange, getFreeGap, moveSelectionRange, resizeSelectionRange, snapToStep } from '../../timeline';\nimport { classNames, formatRange } from '../../utils';\nimport EventDetail from './EventDetail';\nimport style from './style.module.scss';\n\nconst DRAG_THRESHOLD_PX = 4;\nconst TOUCH_SLOP_PX = 8;\nconst LONG_PRESS_MS = 350;\n\nconst Timeline = ({\n date,\n day,\n hourHeight,\n timeUnit,\n timeStep,\n eventItems,\n disabledRanges,\n blockers,\n conflicts,\n allowMultiSelect,\n selection,\n dragging,\n formPopover,\n popoverOpen,\n popoverPlacement,\n popoverAnchor,\n onPopoverOpenChange,\n onSelectionDrag,\n onSelectionCommit,\n onFreeSlotClick,\n onEventClick,\n renderEventBlock,\n renderOccupiedSlot,\n interactionRef,\n isMobile\n}) => {\n const gridRef = useRef(null);\n const gestureRef = useRef(null);\n const suppressClickRef = useRef(false);\n const touchCommitRef = useRef(0);\n const [hover, setHover] = useState(null);\n const [activeEventKey, setActiveEventKey] = useState(null);\n const pxPerMs = hourHeight / (60 * MINUTE_MS);\n const height = (day.endMs - day.startMs) * pxPerMs;\n const unitMs = timeUnit * MINUTE_MS;\n const stepMs = timeStep * MINUTE_MS;\n\n const latest = useRef({});\n latest.current = { day, blockers, unitMs, stepMs, allowMultiSelect, selection, onSelectionDrag, onSelectionCommit, onFreeSlotClick, pxPerMs };\n\n const toY = ms => (ms - day.startMs) * pxPerMs;\n\n const lines = useMemo(() => {\n const list = [];\n for (let ms = day.startMs; ms <= day.endMs; ms += unitMs) {\n list.push({ ms, hour: dayjs(ms).minute() === 0 });\n }\n return list;\n }, [day.endMs, day.startMs, unitMs]);\n\n const labels = useMemo(() => {\n const list = [];\n let cursor = dayjs(day.startMs);\n if (cursor.minute() !== 0) {\n list.push(day.startMs);\n cursor = cursor.add(1, 'hour').startOf('hour');\n }\n for (; cursor.valueOf() <= day.endMs; cursor = cursor.add(1, 'hour')) {\n list.push(cursor.valueOf());\n }\n if (list[list.length - 1] !== day.endMs) {\n list.push(day.endMs);\n }\n return list;\n }, [day.endMs, day.startMs]);\n\n const [now, setNow] = useState(() => Date.now());\n useEffect(() => {\n const timer = setInterval(() => setNow(Date.now()), 60 * 1000);\n return () => clearInterval(timer);\n }, []);\n const showNow = now >= day.startMs && now <= day.endMs;\n\n const msAtClientY = clientY => {\n const rect = gridRef.current.getBoundingClientRect();\n const { day: currentDay, pxPerMs: currentPx } = latest.current;\n return Math.min(Math.max(currentDay.startMs + (clientY - rect.top) / currentPx, currentDay.startMs), currentDay.endMs - 1);\n };\n\n const finishGesture = () => {\n const gesture = gestureRef.current;\n if (!gesture) {\n return;\n }\n clearTimeout(gesture.timer);\n window.removeEventListener('pointermove', gesture.onMove);\n window.removeEventListener('pointerup', gesture.onUp);\n window.removeEventListener('pointercancel', gesture.onCancel);\n gestureRef.current = null;\n };\n\n useEffect(() => finishGesture, []);\n\n useEffect(() => {\n const grid = gridRef.current;\n if (!grid) {\n return undefined;\n }\n const preventScroll = event => {\n if (gestureRef.current?.active) {\n event.preventDefault();\n }\n };\n const preventGhostClick = event => {\n if (Date.now() - touchCommitRef.current < 300) {\n event.preventDefault();\n }\n };\n grid.addEventListener('touchmove', preventScroll, { passive: false });\n grid.addEventListener('touchend', preventGhostClick, { passive: false });\n return () => {\n grid.removeEventListener('touchmove', preventScroll);\n grid.removeEventListener('touchend', preventGhostClick);\n };\n }, []);\n\n const handlePointerDown = event => {\n if (!gridRef.current?.contains(event.target)) {\n return;\n }\n if (interactionRef) {\n interactionRef.current = Date.now();\n }\n if (event.pointerType === 'mouse' && event.button !== 0) {\n return;\n }\n const { day: currentDay, blockers: currentBlockers, selection: currentSelection, allowMultiSelect: multi } = latest.current;\n const edgeNode = event.target.closest('[data-selection-edge]');\n const onSelection = event.target.closest('[data-timeline-selection]');\n const eventNode = event.target.closest('[data-timeline-event]');\n const pointerMs = msAtClientY(event.clientY);\n let gesture;\n if (edgeNode && currentSelection && multi) {\n gesture = { type: 'resize', edge: edgeNode.dataset.selectionEdge, active: true };\n } else if (onSelection && currentSelection) {\n gesture = { type: 'move', active: true };\n } else {\n const gap = getFreeGap(pointerMs, currentBlockers, currentDay);\n if (!gap) {\n return;\n }\n gesture = { type: 'create', gap, active: event.pointerType === 'mouse', onEvent: !!eventNode };\n }\n if (gesture.type !== 'create') {\n const ownGap = getFreeGap(currentSelection.startMs, currentBlockers, currentDay) || currentDay;\n gesture.gap = ownGap;\n gesture.range0 = currentSelection;\n event.preventDefault();\n }\n Object.assign(gesture, {\n pointerId: event.pointerId,\n pointerType: event.pointerType,\n startX: event.clientX,\n startY: event.clientY,\n startMs: pointerMs,\n moved: false\n });\n setHover(null);\n\n gesture.onMove = moveEvent => {\n if (moveEvent.pointerId !== gesture.pointerId) {\n return;\n }\n const dx = moveEvent.clientX - gesture.startX;\n const dy = moveEvent.clientY - gesture.startY;\n if (!gesture.active) {\n if (Math.hypot(dx, dy) > TOUCH_SLOP_PX) {\n finishGesture();\n }\n return;\n }\n if (!gesture.moved && Math.abs(dy) < DRAG_THRESHOLD_PX) {\n return;\n }\n const { stepMs: step, day: d, allowMultiSelect: canResize } = latest.current;\n const ms = msAtClientY(moveEvent.clientY);\n let next;\n if (gesture.type === 'create') {\n if (!canResize) {\n return;\n }\n next = createSelectionRange({ anchorMs: gesture.startMs, pointerMs: ms, gap: gesture.gap, originMs: d.startMs, stepMs: step });\n } else if (gesture.type === 'move') {\n next = moveSelectionRange({ range: gesture.range0, deltaMs: ms - gesture.startMs, gap: gesture.gap, originMs: d.startMs, stepMs: step });\n } else {\n next = resizeSelectionRange({ range: gesture.range0, edge: gesture.edge, pointerMs: ms, gap: gesture.gap, originMs: d.startMs, stepMs: step });\n }\n gesture.moved = true;\n gesture.range = next;\n latest.current.onSelectionDrag(next);\n };\n\n gesture.onUp = upEvent => {\n if (upEvent.pointerId !== gesture.pointerId) {\n return;\n }\n finishGesture();\n if (gesture.pointerType !== 'mouse') {\n touchCommitRef.current = Date.now();\n }\n const { unitMs: unit, day: d, onSelectionCommit: commit, onFreeSlotClick: onFreeClick } = latest.current;\n if (gesture.moved) {\n suppressClickRef.current = true;\n setTimeout(() => {\n suppressClickRef.current = false;\n }, 0);\n commit(gesture.range);\n return;\n }\n if (gesture.type !== 'create') {\n commit(gesture.range0);\n return;\n }\n if (gesture.onEvent) {\n return;\n }\n const range = clickSelectionRange({ pointerMs: gesture.startMs, gap: gesture.gap, originMs: d.startMs, unitMs: unit });\n const slotStart = snapToStep(gesture.startMs, { originMs: d.startMs, stepMs: unit, mode: 'floor' });\n onFreeClick?.({ start: new Date(slotStart), end: new Date(Math.min(slotStart + unit, d.endMs)) });\n commit(range);\n };\n\n gesture.onCancel = cancelEvent => {\n if (cancelEvent.pointerId !== gesture.pointerId) {\n return;\n }\n const wasMoved = gesture.moved;\n finishGesture();\n if (wasMoved) {\n latest.current.onSelectionCommit(gesture.range);\n }\n };\n\n if (!gesture.active) {\n gesture.timer = setTimeout(() => {\n gesture.active = true;\n navigator.vibrate?.(10);\n const { day: d, unitMs: unit } = latest.current;\n const range = clickSelectionRange({ pointerMs: gesture.startMs, gap: gesture.gap, originMs: d.startMs, unitMs: unit });\n gesture.moved = true;\n gesture.range = range;\n gesture.startMs = range.startMs;\n latest.current.onSelectionDrag(range);\n }, LONG_PRESS_MS);\n }\n\n finishGesture();\n gestureRef.current = gesture;\n window.addEventListener('pointermove', gesture.onMove);\n window.addEventListener('pointerup', gesture.onUp);\n window.addEventListener('pointercancel', gesture.onCancel);\n };\n\n const handleHover = event => {\n if (event.pointerType !== 'mouse' || gestureRef.current || !gridRef.current?.contains(event.target)) {\n return;\n }\n if (event.target.closest('[data-timeline-selection]')) {\n setHover(null);\n return;\n }\n const ms = msAtClientY(event.clientY);\n const gap = getFreeGap(ms, blockers, day);\n if (!gap) {\n setHover(null);\n return;\n }\n const range = clickSelectionRange({ pointerMs: ms, gap, originMs: day.startMs, unitMs });\n setHover(current => (current && current.startMs === range.startMs && current.endMs === range.endMs ? current : range));\n };\n\n const renderEventContent = item => {\n const { event } = item;\n if (renderEventBlock) {\n return renderEventBlock(event, { start: new Date(item.startMs), end: new Date(item.endMs) });\n }\n if (renderOccupiedSlot) {\n return renderOccupiedSlot({ start: new Date(item.startMs), end: new Date(item.endMs), status: 'occupied', events: [event] }, { events: [event] });\n }\n return (\n <>\n <div className={style['timeline-event-title']}>{event.title}</div>\n <div className={style['timeline-event-time']}>{formatRange(event.start, event.end)}</div>\n </>\n );\n };\n\n const selectionBlock = selection ? (\n <div\n data-timeline-selection=\"\"\n className={classNames(style['timeline-selection'], {\n [style['timeline-selection-dragging']]: dragging,\n [style['timeline-selection-conflict']]: conflicts.length > 0,\n [style['timeline-selection-compact']]: (selection.endMs - selection.startMs) * pxPerMs < 34\n })}\n style={{ top: toY(selection.startMs), height: Math.max((selection.endMs - selection.startMs) * pxPerMs, 6) }}\n >\n {allowMultiSelect ? <span data-selection-edge=\"start\" className={classNames(style['timeline-selection-edge'], style['timeline-selection-edge-start'])} /> : null}\n <div className={style['timeline-selection-label']}>\n <span>{formatRange(selection.startMs, selection.endMs)}</span>\n {conflicts.length ? <span className={style['timeline-selection-badge']}>{conflicts.length}</span> : null}\n </div>\n {allowMultiSelect ? <span data-selection-edge=\"end\" className={classNames(style['timeline-selection-edge'], style['timeline-selection-edge-end'])} /> : null}\n </div>\n ) : null;\n\n return (\n <div className={style['timeline']} style={{ height }}>\n <div className={style['timeline-axis']} aria-hidden>\n {labels.map(ms => (\n <span key={ms} className={style['timeline-axis-label']} style={{ top: toY(ms) }}>\n {dayjs(ms).format(TIME_FORMAT)}\n </span>\n ))}\n </div>\n <div\n ref={gridRef}\n className={classNames(style['timeline-grid'], { [style['timeline-grid-dragging']]: dragging })}\n onPointerDown={handlePointerDown}\n onPointerMove={handleHover}\n onPointerLeave={() => setHover(null)}\n onContextMenu={event => {\n if (gridRef.current?.contains(event.target)) {\n event.preventDefault();\n }\n }}\n onClickCapture={event => {\n if (suppressClickRef.current && gridRef.current?.contains(event.target)) {\n suppressClickRef.current = false;\n event.stopPropagation();\n }\n }}\n >\n {lines.map(line => (\n <span key={line.ms} className={classNames(style['timeline-line'], { [style['timeline-line-hour']]: line.hour })} style={{ top: toY(line.ms) }} />\n ))}\n {disabledRanges.map(range => {\n const block = (\n <div key={range.startMs} className={style['timeline-disabled']} style={{ top: toY(range.startMs), height: (range.endMs - range.startMs) * pxPerMs }}>\n {range.reason && (range.endMs - range.startMs) * pxPerMs >= 22 ? <span className={style['timeline-disabled-reason']}>{range.reason}</span> : null}\n </div>\n );\n return range.reason ? (\n <Tooltip key={range.startMs} title={range.reason}>\n {block}\n </Tooltip>\n ) : (\n block\n );\n })}\n {eventItems.map(item => {\n const key = `${item.event.id}-${item.startMs}`;\n const blockHeight = (item.endMs - item.startMs) * pxPerMs;\n return (\n <Popover\n key={key}\n arrow={false}\n trigger=\"click\"\n placement={isMobile ? 'bottom' : 'left'}\n rootClassName={style['schedule-popover']}\n open={activeEventKey === key}\n onOpenChange={open => setActiveEventKey(open ? key : null)}\n content={<EventDetail event={item.event} date={date} onEventClick={onEventClick} />}\n >\n <div\n data-timeline-event=\"\"\n className={classNames(style['timeline-event'], {\n [style['timeline-event-disabled']]: item.event.disabled,\n [style['timeline-event-compact']]: blockHeight < 34\n })}\n style={{\n top: toY(item.startMs),\n height: Math.max(blockHeight - 2, 4),\n left: `calc(${(item.column / item.columns) * 100}% + 2px)`,\n width: `calc(${100 / item.columns}% - 4px)`,\n ...(item.event.color ? { '--timeline-event-color': item.event.color } : null)\n }}\n >\n {renderEventContent(item)}\n </div>\n </Popover>\n );\n })}\n {hover && !selection ? (\n <div className={style['timeline-ghost']} style={{ top: toY(hover.startMs), height: (hover.endMs - hover.startMs) * pxPerMs }}>\n + {dayjs(hover.startMs).format(TIME_FORMAT)}\n </div>\n ) : null}\n {showNow ? <span className={style['timeline-now']} style={{ top: toY(now) }} /> : null}\n {selectionBlock}\n {formPopover && popoverAnchor ? (\n <Popover arrow={false} trigger=\"click\" placement={popoverPlacement} rootClassName={style['schedule-popover']} open={popoverOpen && !dragging} onOpenChange={onPopoverOpenChange} content={formPopover} destroyOnHidden>\n <span aria-hidden className={style['timeline-popover-anchor']} style={{ top: toY(popoverAnchor.startMs), height: (popoverAnchor.endMs - popoverAnchor.startMs) * pxPerMs }} />\n </Popover>\n ) : null}\n </div>\n </div>\n );\n};\n\nexport default Timeline;\n","import { useMemo, useRef, useState } from 'react';\nimport { Alert, Button, Card, Drawer, Spin } from 'antd';\nimport { Form, SubmitButton } from '@kne/form-info';\nimport { useIntl } from '@kne/react-intl';\nimport { useIsMobile } from '@kne/responsive-utils';\nimport { DATE_FORMAT } from '../../constants';\nimport { findOverlappingEvents, findOverlappingSlots, getFreeGap, layoutTimelineEvents, mergeDisabledSlots, toBlockers } from '../../timeline';\nimport { classNames, getDefaultFormValues, parseDayTime, 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 TimeWindow from '../TimeWindow';\nimport DefaultFormInner from './DefaultFormInner';\nimport Timeline from './Timeline';\nimport style from './style.module.scss';\n\nconst SchedulePanel = ({\n date,\n slots,\n events: dayEvents,\n dayStart,\n dayEnd,\n timeUnit,\n timeStep,\n hourHeight,\n allowConflict,\n loading,\n allowMultiSelect,\n onSlotRangeChange,\n onFreeSlotClick,\n onCreate,\n formInner,\n formProps,\n defaultFormValues,\n renderEventBlock,\n renderOccupiedSlot,\n renderPanelHeader,\n onEventClick\n}) => {\n const { formatMessage } = useIntl();\n const isMobile = useIsMobile();\n const scrollRef = useRef(null);\n const interactionRef = useRef(0);\n const openedAtRef = useRef(0);\n const [selection, setSelection] = useState(null);\n const [dragging, setDragging] = useState(false);\n const [popoverOpen, setPopoverOpen] = useState(false);\n const [popoverPlacement, setPopoverPlacement] = useState('left');\n const [popoverAnchor, setPopoverAnchor] = useState(null);\n\n const day = useMemo(() => ({ startMs: parseDayTime(date, dayStart).valueOf(), endMs: parseDayTime(date, dayEnd).valueOf() }), [date, dayEnd, dayStart]);\n const events = useMemo(() => sortEventsByStart(dayEvents || []), [dayEvents]);\n const eventItems = useMemo(() => layoutTimelineEvents(events, day), [day, events]);\n const disabledRanges = useMemo(() => mergeDisabledSlots(slots), [slots]);\n const blockers = useMemo(() => toBlockers(allowConflict ? disabledRanges : [...disabledRanges, ...eventItems]), [allowConflict, disabledRanges, eventItems]);\n const conflicts = useMemo(\n () =>\n findOverlappingEvents(\n selection,\n eventItems.map(item => item.event)\n ),\n [eventItems, selection]\n );\n const gap = (selection && getFreeGap(selection.startMs, blockers, day)) || day;\n const windowRange = useMemo(() => [new Date(gap.startMs), new Date(gap.endMs)], [gap.startMs, gap.endMs]);\n\n const panelHeader = renderPanelHeader?.({ date: date.toDate(), mode: 'schedule', events });\n const { scrolled, onScroll } = usePanelScrollShadow(date.format(DATE_FORMAT), scrollRef);\n\n const getFormContext = range => ({\n date: date.toDate(),\n start: range ? new Date(range.startMs) : null,\n end: range ? new Date(range.endMs) : null,\n slots: findOverlappingSlots(range, slots),\n conflicts: findOverlappingEvents(\n range,\n eventItems.map(item => item.event)\n )\n });\n\n const emitRange = range => {\n if (range) {\n onSlotRangeChange?.(findOverlappingSlots(range, slots), { action: 'select', start: new Date(range.startMs), end: new Date(range.endMs) });\n } else {\n onSlotRangeChange?.([], { action: 'clear' });\n }\n };\n\n const clearSelection = () => {\n setPopoverOpen(false);\n setPopoverAnchor(null);\n setDragging(false);\n if (selection) {\n setSelection(null);\n emitRange(null);\n }\n };\n\n const commitSelection = range => {\n setDragging(false);\n if (!range) {\n return;\n }\n if (!popoverOpen) {\n const stacked = !!scrollRef.current?.closest('[data-schedule-layout=\"stacked\"]');\n setPopoverPlacement(stacked ? 'bottom' : 'left');\n setPopoverAnchor(range);\n }\n setSelection(range);\n openedAtRef.current = Date.now();\n setPopoverOpen(true);\n emitRange(range);\n };\n\n const formContext = getFormContext(selection);\n const formPopover = selection ? (\n <div className={classNames(style['form-popover'], { [style['form-sheet-content']]: isMobile })}>\n <div className={style['form-popover-title']}>{formatMessage({ id: 'SchedulePanel.newScheduleTitle' })}</div>\n <TimeWindow\n className={style['form-time-window']}\n size={isMobile ? 'default' : 'small'}\n value={[new Date(selection.startMs), new Date(selection.endMs)]}\n range={windowRange}\n step={timeStep}\n minDuration={timeStep}\n resizable={allowMultiSelect}\n debounceWait={120}\n format=\"HH:mm\"\n separator=\" - \"\n onChange={value => {\n if (!value) {\n return;\n }\n const range = { startMs: value[0].getTime(), endMs: value[1].getTime() };\n setSelection(range);\n emitRange(range);\n }}\n />\n {conflicts.length ? (\n <Alert className={style['form-conflict']} type=\"warning\" showIcon title={`${formatMessage({ id: 'SchedulePanel.conflict' }, { count: conflicts.length })}:${conflicts.map(event => event.title).join('、')}`} />\n ) : null}\n <Form\n {...formProps}\n {...(isMobile ? { size: 'large' } : null)}\n data={getDefaultFormValues(defaultFormValues, formContext)}\n onSubmit={async values => {\n try {\n await onCreate?.(values, getFormContext(selection));\n clearSelection();\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={clearSelection}>{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={scrollRef} className={style['slots']} onScroll={onScroll}>\n <PanelScrollShadow visible={scrolled} />\n <Timeline\n date={date.toDate()}\n day={day}\n hourHeight={hourHeight}\n timeUnit={timeUnit}\n timeStep={timeStep}\n eventItems={eventItems}\n disabledRanges={disabledRanges}\n blockers={blockers}\n conflicts={conflicts}\n allowMultiSelect={allowMultiSelect}\n selection={selection}\n dragging={dragging}\n formPopover={isMobile ? null : formPopover}\n isMobile={isMobile}\n popoverOpen={popoverOpen}\n popoverPlacement={popoverPlacement}\n popoverAnchor={popoverAnchor}\n interactionRef={interactionRef}\n onPopoverOpenChange={open => {\n if (open) {\n setPopoverOpen(true);\n return;\n }\n if (Date.now() - interactionRef.current < 400) {\n return;\n }\n clearSelection();\n }}\n onSelectionDrag={range => {\n setDragging(true);\n setSelection(range);\n }}\n onSelectionCommit={commitSelection}\n onFreeSlotClick={slot => onFreeSlotClick?.({ ...slot, key: `${date.format(DATE_FORMAT)}-${slot.start.getTime()}`, date: date.format(DATE_FORMAT), status: 'free', events: [] })}\n onEventClick={onEventClick}\n renderEventBlock={renderEventBlock}\n renderOccupiedSlot={renderOccupiedSlot}\n />\n </div>\n </Spin>\n {isMobile ? (\n <Drawer\n placement=\"bottom\"\n size=\"auto\"\n closable={false}\n rootClassName={style['form-sheet']}\n open={!!selection && popoverOpen && !dragging}\n onClose={() => {\n if (Date.now() - openedAtRef.current < 500) {\n return;\n }\n clearSelection();\n }}\n destroyOnHidden\n >\n {formPopover}\n </Drawer>\n ) : null}\n </Card>\n );\n};\n\nexport default SchedulePanel;\n","import { useCallback, useMemo, useRef } 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 timeStep = 5,\n hourHeight = 56,\n allowConflict = false,\n allowMultiSelect = mode === 'schedule',\n renderDateCell,\n renderEventItem,\n renderEventBlock,\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 eventListScrollable = true,\n calendarProps,\n panelProps\n } = props;\n const rootRef = useRef(null);\n const calendarRef = useRef(null);\n const stacked = useStackedLayout(rootRef, stackAt);\n const eventListExpanded = mode === 'view' && !eventListScrollable;\n const stackedLayoutStyle = useStackedPanelLayout(rootRef, calendarRef, stacked && !eventListExpanded);\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 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 };\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\n ref={rootRef}\n className={classNames(style['schedule-calendar'], stacked && style['schedule-calendar-stacked'], eventListExpanded && style['schedule-calendar-event-list-expanded'], className)}\n data-schedule-layout={stacked ? 'stacked' : 'row'}\n style={stacked && !eventListExpanded ? stackedLayoutStyle : undefined}\n >\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 key={selectedDate.format(DATE_FORMAT)}\n date={selectedDate}\n slots={slots}\n events={selectedEvents}\n dayStart={dayStart}\n dayEnd={dayEnd}\n timeUnit={timeUnit}\n timeStep={timeStep}\n hourHeight={hourHeight}\n allowConflict={allowConflict}\n loading={loading}\n allowMultiSelect={allowMultiSelect}\n onSlotRangeChange={onSlotRangeChange}\n onFreeSlotClick={onFreeSlotClick}\n onCreate={onCreate}\n formInner={formInner}\n formProps={formProps}\n defaultFormValues={defaultFormValues}\n renderEventBlock={renderEventBlock}\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} scrollable={eventListScrollable} />\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","title","detail","sortEventsByStart","events","sort","a","b","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","timeUnit","dayStart","dayEnd","selectedDate","startAt","endAt","normalizedEvents","slots","matchedEvents","baseSlot","ruleResult","status","length","disabledReason","toDay","getMonthName","formatMessage","monthIndex","getPanelDateLabel","d","month","year","monthName","getHeaderMonthLabel","getMonthPickerItemLabel","HeaderNavIcon","direction","className","_jsx","style","viewBox","focusable","children","fill","stroke","strokeWidth","strokeLinecap","strokeLinejoin","YEAR_PAGE_SIZE","getYearPageStart","floor","PickerPanelNav","label","onClick","type","YearPickerPanel","pageStart","onPageStartChange","onSelect","useIntl","years","useMemo","Array","from","_","index","_jsxs","MonthPickerPanel","months","HeaderNavButton","Header","_ref2","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","scrollable","panelHeader","useRef","Card","bordered","Spin","spinning","container","dataSource","renderItem","Empty","description","MINUTE_MS","toMs","NaN","snapToStep","ms","originMs","stepMs","fn","round","clamp","min","layoutTimelineEvents","startMs","endMs","items","s","e","Number","isFinite","cluster","clusterEnd","Infinity","columnEnds","flush","columns","column","findIndex","mergeDisabledSlots","ranges","last","toBlockers","range","getFreeGap","blockers","gapStart","gapEnd","blocker","createSelectionRange","anchorMs","pointerMs","gap","anchorStart","anchorEnd","pointer","clickSelectionRange","unitMs","duration","moveSelectionRange","deltaMs","resizeSelectionRange","edge","minMs","snapped","findOverlappingEvents","findOverlappingSlots","extend","customParseFormat","DEFAULT_DURATION","DEFAULT_STEP","DEFAULT_DEBOUNCE_WAIT","DEFAULT_SEPARATOR","DEFAULT_FORMAT","DEFAULT_MIN_VISIBLE_SPAN","HOUR_MS","PARSE_FORMATS","parseDateLike","isDayjs","direct","isEmptyBound","defaultDayRange","now","resolveRange","isArray","startInvalid","endInvalid","resolveDuration","rangeStart","rangeEnd","requested","rangeMinutes","diff","resolveStep","step","resolveVisibleSpan","visibleSpan","baseDuration","minimum","span","snapMs","anchor","units","clampWindowStart","startInput","snap","durationMs","maxMs","fallback","target","createTimeWindow","_temp","resolvedDuration","resolvedStep","windowStart","resizeTimeWindow","_ref3","minDuration","maxDuration","rangeStartMs","rangeEndMs","next","toWindowValue","getViewport","_ref4","visibleSpanMinutes","spanMs","centerMs","wheelDeltaToPx","_ref5","delta","deltaMode","trackWidth","consumeWheelSteps","_ref6","accumulatedPx","deltaPx","pxPerStep","discrete","sameDirection","sign","total","perStep","steps","trunc","rest","DEFAULT_INERTIA_TIME_CONSTANT","VELOCITY_WINDOW_MS","resolveInertia","inertia","strength","estimateVelocity","samples","latest","reference","t","recent","sample","first","elapsed","timeAtClientX","_ref7","clientX","rectLeft","rectWidth","grabOffsetMs","ratio","formatTimeWindowParts","_ref8","startDate","endDate","formats","startText","endFormat","endAtMidnight","formatTimeWindow","_ref9","separator","parts","LABEL_INTERVALS","pickLabelEvery","pxPerHour","minLabelPx","find","every","TICK_MINUTES","MIN_TICK_GAP_PX","pickTickMinutes","labelEvery","fit","minutes","buildScaleTicks","viewStart","viewEnd","_temp2","viewStartMs","viewEndMs","tickMinutes","tickMs","ticks","cursorMs","cursor","major","minute","midnight","hour","level","showLabel","outOfRange","formatDurationParts","hours","GRIP_MIN_WIDTH","CLICK_MOVE_TOLERANCE","DISCRETE_WHEEL_DELTA","VISUAL_EASE_MS","WHEEL_IDLE_MS","WHEEL_NOTCH_EASE_MS","WHEEL_INERTIA_SCALE","sameInstant","left","right","leftDate","rightDate","abs","readWindowStart","isDiscreteWheel","legacy","wheelDeltaY","wheelDeltaX","useElementWidth","setWidth","entries","entry","contentRect","TimeWindowInner","debounceWait","showDuration","resizable","wheelEffect","lockable","locked","defaultLocked","onLockedChange","styleProp","isControlled","innerValue","setInnerValue","draftStart","setDraftStart","draftDuration","setDraftDuration","dragging","setDragging","innerLocked","setInnerLocked","lockedControlled","isLocked","resizeView","setResizeView","resizeRef","resizeEdge","trackRef","dragRef","wheelAccumRef","interactingRef","timerRef","pendingRef","onChangeRef","onLockedChangeRef","isLockedRef","committedValue","committedStart","committedMs","anchorDay","draftMs","committedEnd","committedEndMs","committedDuration","activeDuration","initialDurationRef","optionsRef","baseWindow","JSON","stringify","baseStartMs","visualMs","setVisualMs","visualRef","visualTargetRef","frameRef","lastFrameRef","wheelActiveRef","wheelIdleRef","easeRef","glidingRef","wheelBaseRef","wheelSamplesRef","wheelDirectionRef","inertiaTau","inertiaRef","clampVisual","clampVisualRef","runFrame","dt","settled","exp","moveToRef","requestAnimationFrame","stopGlide","cancelAnimationFrame","glideTo","easeMs","setVisualTarget","immediate","setVisualTargetRef","glideToRef","stopGlideRef","clearTimeout","displayStartMs","viewport","viewRef","baseWindowRef","toPercent","windowPx","leftShade","rightShade","endText","_Fragment","ariaValueText","durationText","clearTimer","pending","publish","nextWindow","nextValue","setTimeout","moveTo","durationPropRef","pointerTimeAt","view","rect","startResize","edgeMs","pointerId","setPointerCapture","error","moveResize","resize","endResize","frozenStart","onPointerDown","button","braked","edgeNode","closest","getAttribute","startX","moved","onPointerMove","drag","dx","rawMs","timeStamp","shift","endDrag","velocity","projection","clickedMs","stepMinutes","moves","ArrowLeft","ArrowDown","ArrowRight","ArrowUp","PageDown","PageUp","shiftKey","onWheel","dominant","deltaX","deltaY","clientWidth","base","lastTarget","residualMs","passive","toggleLocked","labelTicks","tick","ariaBounds","header","actions","switch","scale","track","onPointerUp","onPointerCancel","shade","cylinder","labels","TimeWindow","DefaultFormInner","FormInfo","list","Input","name","rule","placeholder","block","TextArea","EventDetail","keyEvent","DRAG_THRESHOLD_PX","TOUCH_SLOP_PX","LONG_PRESS_MS","Timeline","hourHeight","timeStep","eventItems","disabledRanges","conflicts","allowMultiSelect","selection","formPopover","popoverOpen","popoverPlacement","popoverAnchor","onPopoverOpenChange","onSelectionDrag","onSelectionCommit","onFreeSlotClick","renderEventBlock","renderOccupiedSlot","interactionRef","isMobile","gridRef","gestureRef","suppressClickRef","touchCommitRef","hover","setHover","activeEventKey","setActiveEventKey","pxPerMs","toY","lines","setNow","Date","timer","setInterval","clearInterval","showNow","msAtClientY","clientY","currentDay","currentPx","top","finishGesture","gesture","onMove","onUp","onCancel","grid","preventScroll","active","preventGhostClick","handlePointerDown","contains","pointerType","currentBlockers","currentSelection","multi","onSelection","eventNode","dataset","selectionEdge","onEvent","ownGap","range0","assign","startY","moveEvent","dy","hypot","canResize","upEvent","unit","commit","onFreeClick","cancelEvent","wasMoved","navigator","vibrate","handleHover","renderEventContent","selectionBlock","onPointerLeave","onContextMenu","onClickCapture","stopPropagation","line","Tooltip","blockHeight","arrow","destroyOnHidden","_catch","body","recover","then","SchedulePanel","allowConflict","onSlotRangeChange","onCreate","formInner","formProps","useIsMobile","openedAtRef","setSelection","setPopoverOpen","setPopoverPlacement","setPopoverAnchor","windowRange","getFormContext","emitRange","action","clearSelection","commitSelection","formContext","getTime","Alert","showIcon","Form","data","onSubmit","Promise","resolve","reject","SubmitButton","panelStyle","Drawer","closable","onClose","buildMonthRuleCache","currentDate","cache","monthStart","monthEnd","endOf","ScheduleCalendarInner","onDateChange","propsStyle","eventListScrollable","calendarProps","panelProps","eventListExpanded","stackedLayoutStyle","setValue","setCurrent","defaultCurrent","eventGroup","selectedEvents","ruleContext","monthRuleCache","getDateRule","cached","get","handleSelectDate","info","nextDate","handleCurrentChange","handleGoToday","today","fullCellRender","Calendar","fullscreen","headerRender","todayDisabled","onPanelChange","ScheduleCalendar"],"mappings":"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"}