@kne/react-calendar 1.1.0 → 1.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.css +111 -3
- package/dist/index.css.map +1 -1
- package/dist/index.js +232 -261
- package/dist/index.js.map +1 -1
- package/dist/index.modern.js +38 -34
- package/dist/index.modern.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/locale/zh-CN.js","../src/locale/en-US.js","../src/withLocale.js","../src/constants.js","../src/useStackedPanelLayout.js","../src/utils.js","../src/rules.js","../src/events.js","../src/formatCalendarLabels.js","../src/components/Header/NavIcon.js","../src/components/Header/constants.js","../src/components/Header/YearPickerPanel.js","../src/components/Header/MonthPickerPanel.js","../src/components/Header/index.js","../src/useStackedLayout.js","../src/components/DateCell/index.js","../src/components/EventItem/getEventTagLabel.js","../src/components/EventItem/index.js","../src/components/Panel/PanelTitle.js","../src/components/Panel/PanelScrollShadow.js","../src/components/Panel/usePanelScrollShadow.js","../src/components/Panel/ViewPanel.js","../src/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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"}
|
|
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 <Form\n {...formProps}\n {...(isMobile ? { size: 'large' } : null)}\n className={classNames(style['form-popover-form'], formProps?.className)}\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 <div className={style['form-popover-body']}>\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 {formInner || <DefaultFormInner />}\n </div>\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","defaultValue","onChange","props","useControlValue","getRuleDisabled","result","defaultReason","disabled","reason","checkRule","slot","mode","disabledDate","disabledDateTime","availableDateTime","toDate","disabledResult","normalizeEvent","isAfter","add","groupEventsByDate","reduce","normalized","startOfDay","endOfDay","isBefore","isSame","push","getOverlappingEvents","slotStart","slotEnd","sortedEvents","matched","generateTimeSlots","timeUnit","dayStart","dayEnd","selectedDate","startAt","endAt","normalizedEvents","slots","matchedEvents","baseSlot","ruleResult","status","length","disabledReason","toDay","getMonthName","formatMessage","monthIndex","getPanelDateLabel","d","month","year","monthName","getHeaderMonthLabel","getMonthPickerItemLabel","HeaderNavIcon","direction","className","_jsx","style","viewBox","focusable","children","fill","stroke","strokeWidth","strokeLinecap","strokeLinejoin","YEAR_PAGE_SIZE","getYearPageStart","floor","PickerPanelNav","label","onClick","type","YearPickerPanel","pageStart","onPageStartChange","onSelect","useIntl","years","useMemo","Array","from","_","index","_jsxs","MonthPickerPanel","months","HeaderNavButton","Header","showTodayButton","onCurrentChange","onSelectToday","yearOpen","setYearOpen","monthOpen","setMonthOpen","yearPageStart","setYearPageStart","currentYear","yearText","monthText","useEffect","handleYearSelect","source","handleMonthSelect","Popover","open","onOpenChange","trigger","placement","rootClassName","content","Space","size","Button","subtract","readWidth","width","useStackedLayout","ref","stackAt","setStacked","DateCell","dayEvents","selected","currentMonth","badgeMaxCount","renderDateCell","count","customCell","Badge","getEventTagLabel","raw","EventItem","renderEventItem","onEventClick","clickable","handleClick","tagLabel","List","Item","role","tabIndex","onKeyDown","eventKey","preventDefault","Tag","color","PanelTitle","subtitle","dateText","countText","PanelScrollShadow","visible","usePanelScrollShadow","resetKey","scrollRef","scrolled","setScrolled","scrollTop","onScroll","useCallback","currentTarget","ViewPanel","loading","renderPanelHeader","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","resolvedDuration","resolvedStep","windowStart","resizeTimeWindow","minDuration","maxDuration","rangeStartMs","rangeEndMs","next","toWindowValue","getViewport","visibleSpanMinutes","spanMs","centerMs","wheelDeltaToPx","delta","deltaMode","trackWidth","consumeWheelSteps","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","clientX","rectLeft","rectWidth","grabOffsetMs","ratio","formatTimeWindowParts","startDate","endDate","formats","startText","endFormat","endAtMidnight","formatTimeWindow","separator","parts","LABEL_INTERVALS","pickLabelEvery","pxPerHour","minLabelPx","find","every","TICK_MINUTES","MIN_TICK_GAP_PX","pickTickMinutes","labelEvery","fit","minutes","buildScaleTicks","viewStart","viewEnd","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","Form","data","onSubmit","_temp","Promise","resolve","reject","getTime","Alert","showIcon","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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"}
|