{"version":3,"sources":["jsdelivr-header.js","/npm/@fullcalendar/timegrid@6.1.15/internal.js","/npm/@fullcalendar/timegrid@6.1.15/index.js"],"names":[],"mappings":"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","file":"/npm/@fullcalendar/timegrid@6.1.15/index.js/+esm","sourceRoot":"","sourcesContent":["/**\n * Bundled by jsDelivr using Rollup v4.62.2 and esbuild v0.28.1.\n * Original file: /npm/@fullcalendar/timegrid@6.1.15/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","import { Splitter, hasBgRendering, createFormatter, ViewContextType, ContentContainer, BaseComponent, DateComponent, diffDays, buildNavLinkAttrs, WeekNumberContainer, getStickyHeaderDates, ViewContainer, SimpleScrollGrid, getStickyFooterScrollbar, NowTimer, NowIndicatorContainer, renderScrollShim, rangeContainsMarker, startOfDay, asRoughMs, createDuration, RefMap, PositionCache, MoreLinkContainer, SegHierarchy, groupIntersectingEntries, binarySearch, getEntrySpanEnd, buildEntryKey, StandardEvent, memoize, sortEventSegs, DayCellContainer, hasCustomDayCellContent, getSegMeta, buildIsoString, computeEarliestSegStart, buildEventRangeKey, BgEvent, renderFill, addDurations, multiplyDuration, wholeDivideDurations, Slicer, intersectRanges, formatIsoTimeString, DayHeader, DaySeriesModel, DayTableModel, injectStyles } from '@fullcalendar/core/internal.js';\nimport { createElement, createRef, Fragment } from '@fullcalendar/core/preact.js';\nimport { DayTable } from '@fullcalendar/daygrid/internal.js';\n\nclass AllDaySplitter extends Splitter {\n    getKeyInfo() {\n        return {\n            allDay: {},\n            timed: {},\n        };\n    }\n    getKeysForDateSpan(dateSpan) {\n        if (dateSpan.allDay) {\n            return ['allDay'];\n        }\n        return ['timed'];\n    }\n    getKeysForEventDef(eventDef) {\n        if (!eventDef.allDay) {\n            return ['timed'];\n        }\n        if (hasBgRendering(eventDef)) {\n            return ['timed', 'allDay'];\n        }\n        return ['allDay'];\n    }\n}\n\nconst DEFAULT_SLAT_LABEL_FORMAT = createFormatter({\n    hour: 'numeric',\n    minute: '2-digit',\n    omitZeroMinute: true,\n    meridiem: 'short',\n});\nfunction TimeColsAxisCell(props) {\n    let classNames = [\n        'fc-timegrid-slot',\n        'fc-timegrid-slot-label',\n        props.isLabeled ? 'fc-scrollgrid-shrink' : 'fc-timegrid-slot-minor',\n    ];\n    return (createElement(ViewContextType.Consumer, null, (context) => {\n        if (!props.isLabeled) {\n            return (createElement(\"td\", { className: classNames.join(' '), \"data-time\": props.isoTimeStr }));\n        }\n        let { dateEnv, options, viewApi } = context;\n        let labelFormat = // TODO: fully pre-parse\n         options.slotLabelFormat == null ? DEFAULT_SLAT_LABEL_FORMAT :\n            Array.isArray(options.slotLabelFormat) ? createFormatter(options.slotLabelFormat[0]) :\n                createFormatter(options.slotLabelFormat);\n        let renderProps = {\n            level: 0,\n            time: props.time,\n            date: dateEnv.toDate(props.date),\n            view: viewApi,\n            text: dateEnv.format(props.date, labelFormat),\n        };\n        return (createElement(ContentContainer, { elTag: \"td\", elClasses: classNames, elAttrs: {\n                'data-time': props.isoTimeStr,\n            }, renderProps: renderProps, generatorName: \"slotLabelContent\", customGenerator: options.slotLabelContent, defaultGenerator: renderInnerContent, classNameGenerator: options.slotLabelClassNames, didMount: options.slotLabelDidMount, willUnmount: options.slotLabelWillUnmount }, (InnerContent) => (createElement(\"div\", { className: \"fc-timegrid-slot-label-frame fc-scrollgrid-shrink-frame\" },\n            createElement(InnerContent, { elTag: \"div\", elClasses: [\n                    'fc-timegrid-slot-label-cushion',\n                    'fc-scrollgrid-shrink-cushion',\n                ] })))));\n    }));\n}\nfunction renderInnerContent(props) {\n    return props.text;\n}\n\nclass TimeBodyAxis extends BaseComponent {\n    render() {\n        return this.props.slatMetas.map((slatMeta) => (createElement(\"tr\", { key: slatMeta.key },\n            createElement(TimeColsAxisCell, Object.assign({}, slatMeta)))));\n    }\n}\n\nconst DEFAULT_WEEK_NUM_FORMAT = createFormatter({ week: 'short' });\nconst AUTO_ALL_DAY_MAX_EVENT_ROWS = 5;\nclass TimeColsView extends DateComponent {\n    constructor() {\n        super(...arguments);\n        this.allDaySplitter = new AllDaySplitter(); // for use by subclasses\n        this.headerElRef = createRef();\n        this.rootElRef = createRef();\n        this.scrollerElRef = createRef();\n        this.state = {\n            slatCoords: null,\n        };\n        this.handleScrollTopRequest = (scrollTop) => {\n            let scrollerEl = this.scrollerElRef.current;\n            if (scrollerEl) { // TODO: not sure how this could ever be null. weirdness with the reducer\n                scrollerEl.scrollTop = scrollTop;\n            }\n        };\n        /* Header Render Methods\n        ------------------------------------------------------------------------------------------------------------------*/\n        this.renderHeadAxis = (rowKey, frameHeight = '') => {\n            let { options } = this.context;\n            let { dateProfile } = this.props;\n            let range = dateProfile.renderRange;\n            let dayCnt = diffDays(range.start, range.end);\n            // only do in day views (to avoid doing in week views that dont need it)\n            let navLinkAttrs = (dayCnt === 1)\n                ? buildNavLinkAttrs(this.context, range.start, 'week')\n                : {};\n            if (options.weekNumbers && rowKey === 'day') {\n                return (createElement(WeekNumberContainer, { elTag: \"th\", elClasses: [\n                        'fc-timegrid-axis',\n                        'fc-scrollgrid-shrink',\n                    ], elAttrs: {\n                        'aria-hidden': true,\n                    }, date: range.start, defaultFormat: DEFAULT_WEEK_NUM_FORMAT }, (InnerContent) => (createElement(\"div\", { className: [\n                        'fc-timegrid-axis-frame',\n                        'fc-scrollgrid-shrink-frame',\n                        'fc-timegrid-axis-frame-liquid',\n                    ].join(' '), style: { height: frameHeight } },\n                    createElement(InnerContent, { elTag: \"a\", elClasses: [\n                            'fc-timegrid-axis-cushion',\n                            'fc-scrollgrid-shrink-cushion',\n                            'fc-scrollgrid-sync-inner',\n                        ], elAttrs: navLinkAttrs })))));\n            }\n            return (createElement(\"th\", { \"aria-hidden\": true, className: \"fc-timegrid-axis\" },\n                createElement(\"div\", { className: \"fc-timegrid-axis-frame\", style: { height: frameHeight } })));\n        };\n        /* Table Component Render Methods\n        ------------------------------------------------------------------------------------------------------------------*/\n        // only a one-way height sync. we don't send the axis inner-content height to the DayGrid,\n        // but DayGrid still needs to have classNames on inner elements in order to measure.\n        this.renderTableRowAxis = (rowHeight) => {\n            let { options, viewApi } = this.context;\n            let renderProps = {\n                text: options.allDayText,\n                view: viewApi,\n            };\n            return (\n            // TODO: make reusable hook. used in list view too\n            createElement(ContentContainer, { elTag: \"td\", elClasses: [\n                    'fc-timegrid-axis',\n                    'fc-scrollgrid-shrink',\n                ], elAttrs: {\n                    'aria-hidden': true,\n                }, renderProps: renderProps, generatorName: \"allDayContent\", customGenerator: options.allDayContent, defaultGenerator: renderAllDayInner, classNameGenerator: options.allDayClassNames, didMount: options.allDayDidMount, willUnmount: options.allDayWillUnmount }, (InnerContent) => (createElement(\"div\", { className: [\n                    'fc-timegrid-axis-frame',\n                    'fc-scrollgrid-shrink-frame',\n                    rowHeight == null ? ' fc-timegrid-axis-frame-liquid' : '',\n                ].join(' '), style: { height: rowHeight } },\n                createElement(InnerContent, { elTag: \"span\", elClasses: [\n                        'fc-timegrid-axis-cushion',\n                        'fc-scrollgrid-shrink-cushion',\n                        'fc-scrollgrid-sync-inner',\n                    ] })))));\n        };\n        this.handleSlatCoords = (slatCoords) => {\n            this.setState({ slatCoords });\n        };\n    }\n    // rendering\n    // ----------------------------------------------------------------------------------------------------\n    renderSimpleLayout(headerRowContent, allDayContent, timeContent) {\n        let { context, props } = this;\n        let sections = [];\n        let stickyHeaderDates = getStickyHeaderDates(context.options);\n        if (headerRowContent) {\n            sections.push({\n                type: 'header',\n                key: 'header',\n                isSticky: stickyHeaderDates,\n                chunk: {\n                    elRef: this.headerElRef,\n                    tableClassName: 'fc-col-header',\n                    rowContent: headerRowContent,\n                },\n            });\n        }\n        if (allDayContent) {\n            sections.push({\n                type: 'body',\n                key: 'all-day',\n                chunk: { content: allDayContent },\n            });\n            sections.push({\n                type: 'body',\n                key: 'all-day-divider',\n                outerContent: ( // TODO: rename to cellContent so don't need to define <tr>?\n                createElement(\"tr\", { role: \"presentation\", className: \"fc-scrollgrid-section\" },\n                    createElement(\"td\", { className: 'fc-timegrid-divider ' + context.theme.getClass('tableCellShaded') }))),\n            });\n        }\n        sections.push({\n            type: 'body',\n            key: 'body',\n            liquid: true,\n            expandRows: Boolean(context.options.expandRows),\n            chunk: {\n                scrollerElRef: this.scrollerElRef,\n                content: timeContent,\n            },\n        });\n        return (createElement(ViewContainer, { elRef: this.rootElRef, elClasses: ['fc-timegrid'], viewSpec: context.viewSpec },\n            createElement(SimpleScrollGrid, { liquid: !props.isHeightAuto && !props.forPrint, collapsibleWidth: props.forPrint, cols: [{ width: 'shrink' }], sections: sections })));\n    }\n    renderHScrollLayout(headerRowContent, allDayContent, timeContent, colCnt, dayMinWidth, slatMetas, slatCoords) {\n        let ScrollGrid = this.context.pluginHooks.scrollGridImpl;\n        if (!ScrollGrid) {\n            throw new Error('No ScrollGrid implementation');\n        }\n        let { context, props } = this;\n        let stickyHeaderDates = !props.forPrint && getStickyHeaderDates(context.options);\n        let stickyFooterScrollbar = !props.forPrint && getStickyFooterScrollbar(context.options);\n        let sections = [];\n        if (headerRowContent) {\n            sections.push({\n                type: 'header',\n                key: 'header',\n                isSticky: stickyHeaderDates,\n                syncRowHeights: true,\n                chunks: [\n                    {\n                        key: 'axis',\n                        rowContent: (arg) => (createElement(\"tr\", { role: \"presentation\" }, this.renderHeadAxis('day', arg.rowSyncHeights[0]))),\n                    },\n                    {\n                        key: 'cols',\n                        elRef: this.headerElRef,\n                        tableClassName: 'fc-col-header',\n                        rowContent: headerRowContent,\n                    },\n                ],\n            });\n        }\n        if (allDayContent) {\n            sections.push({\n                type: 'body',\n                key: 'all-day',\n                syncRowHeights: true,\n                chunks: [\n                    {\n                        key: 'axis',\n                        rowContent: (contentArg) => (createElement(\"tr\", { role: \"presentation\" }, this.renderTableRowAxis(contentArg.rowSyncHeights[0]))),\n                    },\n                    {\n                        key: 'cols',\n                        content: allDayContent,\n                    },\n                ],\n            });\n            sections.push({\n                key: 'all-day-divider',\n                type: 'body',\n                outerContent: ( // TODO: rename to cellContent so don't need to define <tr>?\n                createElement(\"tr\", { role: \"presentation\", className: \"fc-scrollgrid-section\" },\n                    createElement(\"td\", { colSpan: 2, className: 'fc-timegrid-divider ' + context.theme.getClass('tableCellShaded') }))),\n            });\n        }\n        let isNowIndicator = context.options.nowIndicator;\n        sections.push({\n            type: 'body',\n            key: 'body',\n            liquid: true,\n            expandRows: Boolean(context.options.expandRows),\n            chunks: [\n                {\n                    key: 'axis',\n                    content: (arg) => (\n                    // TODO: make this now-indicator arrow more DRY with TimeColsContent\n                    createElement(\"div\", { className: \"fc-timegrid-axis-chunk\" },\n                        createElement(\"table\", { \"aria-hidden\": true, style: { height: arg.expandRows ? arg.clientHeight : '' } },\n                            arg.tableColGroupNode,\n                            createElement(\"tbody\", null,\n                                createElement(TimeBodyAxis, { slatMetas: slatMetas }))),\n                        createElement(\"div\", { className: \"fc-timegrid-now-indicator-container\" },\n                            createElement(NowTimer, { unit: isNowIndicator ? 'minute' : 'day' /* hacky */ }, (nowDate) => {\n                                let nowIndicatorTop = isNowIndicator &&\n                                    slatCoords &&\n                                    slatCoords.safeComputeTop(nowDate); // might return void\n                                if (typeof nowIndicatorTop === 'number') {\n                                    return (createElement(NowIndicatorContainer, { elClasses: ['fc-timegrid-now-indicator-arrow'], elStyle: { top: nowIndicatorTop }, isAxis: true, date: nowDate }));\n                                }\n                                return null;\n                            })))),\n                },\n                {\n                    key: 'cols',\n                    scrollerElRef: this.scrollerElRef,\n                    content: timeContent,\n                },\n            ],\n        });\n        if (stickyFooterScrollbar) {\n            sections.push({\n                key: 'footer',\n                type: 'footer',\n                isSticky: true,\n                chunks: [\n                    {\n                        key: 'axis',\n                        content: renderScrollShim,\n                    },\n                    {\n                        key: 'cols',\n                        content: renderScrollShim,\n                    },\n                ],\n            });\n        }\n        return (createElement(ViewContainer, { elRef: this.rootElRef, elClasses: ['fc-timegrid'], viewSpec: context.viewSpec },\n            createElement(ScrollGrid, { liquid: !props.isHeightAuto && !props.forPrint, forPrint: props.forPrint, collapsibleWidth: false, colGroups: [\n                    { width: 'shrink', cols: [{ width: 'shrink' }] },\n                    { cols: [{ span: colCnt, minWidth: dayMinWidth }] },\n                ], sections: sections })));\n    }\n    /* Dimensions\n    ------------------------------------------------------------------------------------------------------------------*/\n    getAllDayMaxEventProps() {\n        let { dayMaxEvents, dayMaxEventRows } = this.context.options;\n        if (dayMaxEvents === true || dayMaxEventRows === true) { // is auto?\n            dayMaxEvents = undefined;\n            dayMaxEventRows = AUTO_ALL_DAY_MAX_EVENT_ROWS; // make sure \"auto\" goes to a real number\n        }\n        return { dayMaxEvents, dayMaxEventRows };\n    }\n}\nfunction renderAllDayInner(renderProps) {\n    return renderProps.text;\n}\n\nclass TimeColsSlatsCoords {\n    constructor(positions, dateProfile, slotDuration) {\n        this.positions = positions;\n        this.dateProfile = dateProfile;\n        this.slotDuration = slotDuration;\n    }\n    safeComputeTop(date) {\n        let { dateProfile } = this;\n        if (rangeContainsMarker(dateProfile.currentRange, date)) {\n            let startOfDayDate = startOfDay(date);\n            let timeMs = date.valueOf() - startOfDayDate.valueOf();\n            if (timeMs >= asRoughMs(dateProfile.slotMinTime) &&\n                timeMs < asRoughMs(dateProfile.slotMaxTime)) {\n                return this.computeTimeTop(createDuration(timeMs));\n            }\n        }\n        return null;\n    }\n    // Computes the top coordinate, relative to the bounds of the grid, of the given date.\n    // A `startOfDayDate` must be given for avoiding ambiguity over how to treat midnight.\n    computeDateTop(when, startOfDayDate) {\n        if (!startOfDayDate) {\n            startOfDayDate = startOfDay(when);\n        }\n        return this.computeTimeTop(createDuration(when.valueOf() - startOfDayDate.valueOf()));\n    }\n    // Computes the top coordinate, relative to the bounds of the grid, of the given time (a Duration).\n    // This is a makeshify way to compute the time-top. Assumes all slatMetas dates are uniform.\n    // Eventually allow computation with arbirary slat dates.\n    computeTimeTop(duration) {\n        let { positions, dateProfile } = this;\n        let len = positions.els.length;\n        // floating-point value of # of slots covered\n        let slatCoverage = (duration.milliseconds - asRoughMs(dateProfile.slotMinTime)) / asRoughMs(this.slotDuration);\n        let slatIndex;\n        let slatRemainder;\n        // compute a floating-point number for how many slats should be progressed through.\n        // from 0 to number of slats (inclusive)\n        // constrained because slotMinTime/slotMaxTime might be customized.\n        slatCoverage = Math.max(0, slatCoverage);\n        slatCoverage = Math.min(len, slatCoverage);\n        // an integer index of the furthest whole slat\n        // from 0 to number slats (*exclusive*, so len-1)\n        slatIndex = Math.floor(slatCoverage);\n        slatIndex = Math.min(slatIndex, len - 1);\n        // how much further through the slatIndex slat (from 0.0-1.0) must be covered in addition.\n        // could be 1.0 if slatCoverage is covering *all* the slots\n        slatRemainder = slatCoverage - slatIndex;\n        return positions.tops[slatIndex] +\n            positions.getHeight(slatIndex) * slatRemainder;\n    }\n}\n\nclass TimeColsSlatsBody extends BaseComponent {\n    render() {\n        let { props, context } = this;\n        let { options } = context;\n        let { slatElRefs } = props;\n        return (createElement(\"tbody\", null, props.slatMetas.map((slatMeta, i) => {\n            let renderProps = {\n                time: slatMeta.time,\n                date: context.dateEnv.toDate(slatMeta.date),\n                view: context.viewApi,\n            };\n            return (createElement(\"tr\", { key: slatMeta.key, ref: slatElRefs.createRef(slatMeta.key) },\n                props.axis && (createElement(TimeColsAxisCell, Object.assign({}, slatMeta))),\n                createElement(ContentContainer, { elTag: \"td\", elClasses: [\n                        'fc-timegrid-slot',\n                        'fc-timegrid-slot-lane',\n                        !slatMeta.isLabeled && 'fc-timegrid-slot-minor',\n                    ], elAttrs: {\n                        'data-time': slatMeta.isoTimeStr,\n                    }, renderProps: renderProps, generatorName: \"slotLaneContent\", customGenerator: options.slotLaneContent, classNameGenerator: options.slotLaneClassNames, didMount: options.slotLaneDidMount, willUnmount: options.slotLaneWillUnmount })));\n        })));\n    }\n}\n\n/*\nfor the horizontal \"slats\" that run width-wise. Has a time axis on a side. Depends on RTL.\n*/\nclass TimeColsSlats extends BaseComponent {\n    constructor() {\n        super(...arguments);\n        this.rootElRef = createRef();\n        this.slatElRefs = new RefMap();\n    }\n    render() {\n        let { props, context } = this;\n        return (createElement(\"div\", { ref: this.rootElRef, className: \"fc-timegrid-slots\" },\n            createElement(\"table\", { \"aria-hidden\": true, className: context.theme.getClass('table'), style: {\n                    minWidth: props.tableMinWidth,\n                    width: props.clientWidth,\n                    height: props.minHeight,\n                } },\n                props.tableColGroupNode /* relies on there only being a single <col> for the axis */,\n                createElement(TimeColsSlatsBody, { slatElRefs: this.slatElRefs, axis: props.axis, slatMetas: props.slatMetas }))));\n    }\n    componentDidMount() {\n        this.updateSizing();\n    }\n    componentDidUpdate() {\n        this.updateSizing();\n    }\n    componentWillUnmount() {\n        if (this.props.onCoords) {\n            this.props.onCoords(null);\n        }\n    }\n    updateSizing() {\n        let { context, props } = this;\n        if (props.onCoords &&\n            props.clientWidth !== null // means sizing has stabilized\n        ) {\n            let rootEl = this.rootElRef.current;\n            if (rootEl.offsetHeight) { // not hidden by css\n                props.onCoords(new TimeColsSlatsCoords(new PositionCache(this.rootElRef.current, collectSlatEls(this.slatElRefs.currentMap, props.slatMetas), false, true), this.props.dateProfile, context.options.slotDuration));\n            }\n        }\n    }\n}\nfunction collectSlatEls(elMap, slatMetas) {\n    return slatMetas.map((slatMeta) => elMap[slatMeta.key]);\n}\n\nfunction splitSegsByCol(segs, colCnt) {\n    let segsByCol = [];\n    let i;\n    for (i = 0; i < colCnt; i += 1) {\n        segsByCol.push([]);\n    }\n    if (segs) {\n        for (i = 0; i < segs.length; i += 1) {\n            segsByCol[segs[i].col].push(segs[i]);\n        }\n    }\n    return segsByCol;\n}\nfunction splitInteractionByCol(ui, colCnt) {\n    let byRow = [];\n    if (!ui) {\n        for (let i = 0; i < colCnt; i += 1) {\n            byRow[i] = null;\n        }\n    }\n    else {\n        for (let i = 0; i < colCnt; i += 1) {\n            byRow[i] = {\n                affectedInstances: ui.affectedInstances,\n                isEvent: ui.isEvent,\n                segs: [],\n            };\n        }\n        for (let seg of ui.segs) {\n            byRow[seg.col].segs.push(seg);\n        }\n    }\n    return byRow;\n}\n\nclass TimeColMoreLink extends BaseComponent {\n    render() {\n        let { props } = this;\n        return (createElement(MoreLinkContainer, { elClasses: ['fc-timegrid-more-link'], elStyle: {\n                top: props.top,\n                bottom: props.bottom,\n            }, allDayDate: null, moreCnt: props.hiddenSegs.length, allSegs: props.hiddenSegs, hiddenSegs: props.hiddenSegs, extraDateSpan: props.extraDateSpan, dateProfile: props.dateProfile, todayRange: props.todayRange, popoverContent: () => renderPlainFgSegs(props.hiddenSegs, props), defaultGenerator: renderMoreLinkInner, forceTimed: true }, (InnerContent) => (createElement(InnerContent, { elTag: \"div\", elClasses: ['fc-timegrid-more-link-inner', 'fc-sticky'] }))));\n    }\n}\nfunction renderMoreLinkInner(props) {\n    return props.shortText;\n}\n\n// segInputs assumed sorted\nfunction buildPositioning(segInputs, strictOrder, maxStackCnt) {\n    let hierarchy = new SegHierarchy();\n    if (strictOrder != null) {\n        hierarchy.strictOrder = strictOrder;\n    }\n    if (maxStackCnt != null) {\n        hierarchy.maxStackCnt = maxStackCnt;\n    }\n    let hiddenEntries = hierarchy.addSegs(segInputs);\n    let hiddenGroups = groupIntersectingEntries(hiddenEntries);\n    let web = buildWeb(hierarchy);\n    web = stretchWeb(web, 1); // all levelCoords/thickness will have 0.0-1.0\n    let segRects = webToRects(web);\n    return { segRects, hiddenGroups };\n}\nfunction buildWeb(hierarchy) {\n    const { entriesByLevel } = hierarchy;\n    const buildNode = cacheable((level, lateral) => level + ':' + lateral, (level, lateral) => {\n        let siblingRange = findNextLevelSegs(hierarchy, level, lateral);\n        let nextLevelRes = buildNodes(siblingRange, buildNode);\n        let entry = entriesByLevel[level][lateral];\n        return [\n            Object.assign(Object.assign({}, entry), { nextLevelNodes: nextLevelRes[0] }),\n            entry.thickness + nextLevelRes[1], // the pressure builds\n        ];\n    });\n    return buildNodes(entriesByLevel.length\n        ? { level: 0, lateralStart: 0, lateralEnd: entriesByLevel[0].length }\n        : null, buildNode)[0];\n}\nfunction buildNodes(siblingRange, buildNode) {\n    if (!siblingRange) {\n        return [[], 0];\n    }\n    let { level, lateralStart, lateralEnd } = siblingRange;\n    let lateral = lateralStart;\n    let pairs = [];\n    while (lateral < lateralEnd) {\n        pairs.push(buildNode(level, lateral));\n        lateral += 1;\n    }\n    pairs.sort(cmpDescPressures);\n    return [\n        pairs.map(extractNode),\n        pairs[0][1], // first item's pressure\n    ];\n}\nfunction cmpDescPressures(a, b) {\n    return b[1] - a[1];\n}\nfunction extractNode(a) {\n    return a[0];\n}\nfunction findNextLevelSegs(hierarchy, subjectLevel, subjectLateral) {\n    let { levelCoords, entriesByLevel } = hierarchy;\n    let subjectEntry = entriesByLevel[subjectLevel][subjectLateral];\n    let afterSubject = levelCoords[subjectLevel] + subjectEntry.thickness;\n    let levelCnt = levelCoords.length;\n    let level = subjectLevel;\n    // skip past levels that are too high up\n    for (; level < levelCnt && levelCoords[level] < afterSubject; level += 1)\n        ; // do nothing\n    for (; level < levelCnt; level += 1) {\n        let entries = entriesByLevel[level];\n        let entry;\n        let searchIndex = binarySearch(entries, subjectEntry.span.start, getEntrySpanEnd);\n        let lateralStart = searchIndex[0] + searchIndex[1]; // if exact match (which doesn't collide), go to next one\n        let lateralEnd = lateralStart;\n        while ( // loop through entries that horizontally intersect\n        (entry = entries[lateralEnd]) && // but not past the whole seg list\n            entry.span.start < subjectEntry.span.end) {\n            lateralEnd += 1;\n        }\n        if (lateralStart < lateralEnd) {\n            return { level, lateralStart, lateralEnd };\n        }\n    }\n    return null;\n}\nfunction stretchWeb(topLevelNodes, totalThickness) {\n    const stretchNode = cacheable((node, startCoord, prevThickness) => buildEntryKey(node), (node, startCoord, prevThickness) => {\n        let { nextLevelNodes, thickness } = node;\n        let allThickness = thickness + prevThickness;\n        let thicknessFraction = thickness / allThickness;\n        let endCoord;\n        let newChildren = [];\n        if (!nextLevelNodes.length) {\n            endCoord = totalThickness;\n        }\n        else {\n            for (let childNode of nextLevelNodes) {\n                if (endCoord === undefined) {\n                    let res = stretchNode(childNode, startCoord, allThickness);\n                    endCoord = res[0];\n                    newChildren.push(res[1]);\n                }\n                else {\n                    let res = stretchNode(childNode, endCoord, 0);\n                    newChildren.push(res[1]);\n                }\n            }\n        }\n        let newThickness = (endCoord - startCoord) * thicknessFraction;\n        return [endCoord - newThickness, Object.assign(Object.assign({}, node), { thickness: newThickness, nextLevelNodes: newChildren })];\n    });\n    return topLevelNodes.map((node) => stretchNode(node, 0, 0)[1]);\n}\n// not sorted in any particular order\nfunction webToRects(topLevelNodes) {\n    let rects = [];\n    const processNode = cacheable((node, levelCoord, stackDepth) => buildEntryKey(node), (node, levelCoord, stackDepth) => {\n        let rect = Object.assign(Object.assign({}, node), { levelCoord,\n            stackDepth, stackForward: 0 });\n        rects.push(rect);\n        return (rect.stackForward = processNodes(node.nextLevelNodes, levelCoord + node.thickness, stackDepth + 1) + 1);\n    });\n    function processNodes(nodes, levelCoord, stackDepth) {\n        let stackForward = 0;\n        for (let node of nodes) {\n            stackForward = Math.max(processNode(node, levelCoord, stackDepth), stackForward);\n        }\n        return stackForward;\n    }\n    processNodes(topLevelNodes, 0, 0);\n    return rects; // TODO: sort rects by levelCoord to be consistent with toRects?\n}\n// TODO: move to general util\nfunction cacheable(keyFunc, workFunc) {\n    const cache = {};\n    return (...args) => {\n        let key = keyFunc(...args);\n        return (key in cache)\n            ? cache[key]\n            : (cache[key] = workFunc(...args));\n    };\n}\n\nfunction computeSegVCoords(segs, colDate, slatCoords = null, eventMinHeight = 0) {\n    let vcoords = [];\n    if (slatCoords) {\n        for (let i = 0; i < segs.length; i += 1) {\n            let seg = segs[i];\n            let spanStart = slatCoords.computeDateTop(seg.start, colDate);\n            let spanEnd = Math.max(spanStart + (eventMinHeight || 0), // :(\n            slatCoords.computeDateTop(seg.end, colDate));\n            vcoords.push({\n                start: Math.round(spanStart),\n                end: Math.round(spanEnd), //\n            });\n        }\n    }\n    return vcoords;\n}\nfunction computeFgSegPlacements(segs, segVCoords, // might not have for every seg\neventOrderStrict, eventMaxStack) {\n    let segInputs = [];\n    let dumbSegs = []; // segs without coords\n    for (let i = 0; i < segs.length; i += 1) {\n        let vcoords = segVCoords[i];\n        if (vcoords) {\n            segInputs.push({\n                index: i,\n                thickness: 1,\n                span: vcoords,\n            });\n        }\n        else {\n            dumbSegs.push(segs[i]);\n        }\n    }\n    let { segRects, hiddenGroups } = buildPositioning(segInputs, eventOrderStrict, eventMaxStack);\n    let segPlacements = [];\n    for (let segRect of segRects) {\n        segPlacements.push({\n            seg: segs[segRect.index],\n            rect: segRect,\n        });\n    }\n    for (let dumbSeg of dumbSegs) {\n        segPlacements.push({ seg: dumbSeg, rect: null });\n    }\n    return { segPlacements, hiddenGroups };\n}\n\nconst DEFAULT_TIME_FORMAT = createFormatter({\n    hour: 'numeric',\n    minute: '2-digit',\n    meridiem: false,\n});\nclass TimeColEvent extends BaseComponent {\n    render() {\n        return (createElement(StandardEvent, Object.assign({}, this.props, { elClasses: [\n                'fc-timegrid-event',\n                'fc-v-event',\n                this.props.isShort && 'fc-timegrid-event-short',\n            ], defaultTimeFormat: DEFAULT_TIME_FORMAT })));\n    }\n}\n\nclass TimeCol extends BaseComponent {\n    constructor() {\n        super(...arguments);\n        this.sortEventSegs = memoize(sortEventSegs);\n    }\n    // TODO: memoize event-placement?\n    render() {\n        let { props, context } = this;\n        let { options } = context;\n        let isSelectMirror = options.selectMirror;\n        let mirrorSegs = // yuck\n         (props.eventDrag && props.eventDrag.segs) ||\n            (props.eventResize && props.eventResize.segs) ||\n            (isSelectMirror && props.dateSelectionSegs) ||\n            [];\n        let interactionAffectedInstances = // TODO: messy way to compute this\n         (props.eventDrag && props.eventDrag.affectedInstances) ||\n            (props.eventResize && props.eventResize.affectedInstances) ||\n            {};\n        let sortedFgSegs = this.sortEventSegs(props.fgEventSegs, options.eventOrder);\n        return (createElement(DayCellContainer, { elTag: \"td\", elRef: props.elRef, elClasses: [\n                'fc-timegrid-col',\n                ...(props.extraClassNames || []),\n            ], elAttrs: Object.assign({ role: 'gridcell' }, props.extraDataAttrs), date: props.date, dateProfile: props.dateProfile, todayRange: props.todayRange, extraRenderProps: props.extraRenderProps }, (InnerContent) => (createElement(\"div\", { className: \"fc-timegrid-col-frame\" },\n            createElement(\"div\", { className: \"fc-timegrid-col-bg\" },\n                this.renderFillSegs(props.businessHourSegs, 'non-business'),\n                this.renderFillSegs(props.bgEventSegs, 'bg-event'),\n                this.renderFillSegs(props.dateSelectionSegs, 'highlight')),\n            createElement(\"div\", { className: \"fc-timegrid-col-events\" }, this.renderFgSegs(sortedFgSegs, interactionAffectedInstances, false, false, false)),\n            createElement(\"div\", { className: \"fc-timegrid-col-events\" }, this.renderFgSegs(mirrorSegs, {}, Boolean(props.eventDrag), Boolean(props.eventResize), Boolean(isSelectMirror), 'mirror')),\n            createElement(\"div\", { className: \"fc-timegrid-now-indicator-container\" }, this.renderNowIndicator(props.nowIndicatorSegs)),\n            hasCustomDayCellContent(options) && (createElement(InnerContent, { elTag: \"div\", elClasses: ['fc-timegrid-col-misc'] }))))));\n    }\n    renderFgSegs(sortedFgSegs, segIsInvisible, isDragging, isResizing, isDateSelecting, forcedKey) {\n        let { props } = this;\n        if (props.forPrint) {\n            return renderPlainFgSegs(sortedFgSegs, props);\n        }\n        return this.renderPositionedFgSegs(sortedFgSegs, segIsInvisible, isDragging, isResizing, isDateSelecting, forcedKey);\n    }\n    renderPositionedFgSegs(segs, // if not mirror, needs to be sorted\n    segIsInvisible, isDragging, isResizing, isDateSelecting, forcedKey) {\n        let { eventMaxStack, eventShortHeight, eventOrderStrict, eventMinHeight } = this.context.options;\n        let { date, slatCoords, eventSelection, todayRange, nowDate } = this.props;\n        let isMirror = isDragging || isResizing || isDateSelecting;\n        let segVCoords = computeSegVCoords(segs, date, slatCoords, eventMinHeight);\n        let { segPlacements, hiddenGroups } = computeFgSegPlacements(segs, segVCoords, eventOrderStrict, eventMaxStack);\n        return (createElement(Fragment, null,\n            this.renderHiddenGroups(hiddenGroups, segs),\n            segPlacements.map((segPlacement) => {\n                let { seg, rect } = segPlacement;\n                let instanceId = seg.eventRange.instance.instanceId;\n                let isVisible = isMirror || Boolean(!segIsInvisible[instanceId] && rect);\n                let vStyle = computeSegVStyle(rect && rect.span);\n                let hStyle = (!isMirror && rect) ? this.computeSegHStyle(rect) : { left: 0, right: 0 };\n                let isInset = Boolean(rect) && rect.stackForward > 0;\n                let isShort = Boolean(rect) && (rect.span.end - rect.span.start) < eventShortHeight; // look at other places for this problem\n                return (createElement(\"div\", { className: 'fc-timegrid-event-harness' +\n                        (isInset ? ' fc-timegrid-event-harness-inset' : ''), key: forcedKey || instanceId, style: Object.assign(Object.assign({ visibility: isVisible ? '' : 'hidden' }, vStyle), hStyle) },\n                    createElement(TimeColEvent, Object.assign({ seg: seg, isDragging: isDragging, isResizing: isResizing, isDateSelecting: isDateSelecting, isSelected: instanceId === eventSelection, isShort: isShort }, getSegMeta(seg, todayRange, nowDate)))));\n            })));\n    }\n    // will already have eventMinHeight applied because segInputs already had it\n    renderHiddenGroups(hiddenGroups, segs) {\n        let { extraDateSpan, dateProfile, todayRange, nowDate, eventSelection, eventDrag, eventResize } = this.props;\n        return (createElement(Fragment, null, hiddenGroups.map((hiddenGroup) => {\n            let positionCss = computeSegVStyle(hiddenGroup.span);\n            let hiddenSegs = compileSegsFromEntries(hiddenGroup.entries, segs);\n            return (createElement(TimeColMoreLink, { key: buildIsoString(computeEarliestSegStart(hiddenSegs)), hiddenSegs: hiddenSegs, top: positionCss.top, bottom: positionCss.bottom, extraDateSpan: extraDateSpan, dateProfile: dateProfile, todayRange: todayRange, nowDate: nowDate, eventSelection: eventSelection, eventDrag: eventDrag, eventResize: eventResize }));\n        })));\n    }\n    renderFillSegs(segs, fillType) {\n        let { props, context } = this;\n        let segVCoords = computeSegVCoords(segs, props.date, props.slatCoords, context.options.eventMinHeight); // don't assume all populated\n        let children = segVCoords.map((vcoords, i) => {\n            let seg = segs[i];\n            return (createElement(\"div\", { key: buildEventRangeKey(seg.eventRange), className: \"fc-timegrid-bg-harness\", style: computeSegVStyle(vcoords) }, fillType === 'bg-event' ?\n                createElement(BgEvent, Object.assign({ seg: seg }, getSegMeta(seg, props.todayRange, props.nowDate))) :\n                renderFill(fillType)));\n        });\n        return createElement(Fragment, null, children);\n    }\n    renderNowIndicator(segs) {\n        let { slatCoords, date } = this.props;\n        if (!slatCoords) {\n            return null;\n        }\n        return segs.map((seg, i) => (createElement(NowIndicatorContainer\n        // key doesn't matter. will only ever be one\n        , { \n            // key doesn't matter. will only ever be one\n            key: i, elClasses: ['fc-timegrid-now-indicator-line'], elStyle: {\n                top: slatCoords.computeDateTop(seg.start, date),\n            }, isAxis: false, date: date })));\n    }\n    computeSegHStyle(segHCoords) {\n        let { isRtl, options } = this.context;\n        let shouldOverlap = options.slotEventOverlap;\n        let nearCoord = segHCoords.levelCoord; // the left side if LTR. the right side if RTL. floating-point\n        let farCoord = segHCoords.levelCoord + segHCoords.thickness; // the right side if LTR. the left side if RTL. floating-point\n        let left; // amount of space from left edge, a fraction of the total width\n        let right; // amount of space from right edge, a fraction of the total width\n        if (shouldOverlap) {\n            // double the width, but don't go beyond the maximum forward coordinate (1.0)\n            farCoord = Math.min(1, nearCoord + (farCoord - nearCoord) * 2);\n        }\n        if (isRtl) {\n            left = 1 - farCoord;\n            right = nearCoord;\n        }\n        else {\n            left = nearCoord;\n            right = 1 - farCoord;\n        }\n        let props = {\n            zIndex: segHCoords.stackDepth + 1,\n            left: left * 100 + '%',\n            right: right * 100 + '%',\n        };\n        if (shouldOverlap && !segHCoords.stackForward) {\n            // add padding to the edge so that forward stacked events don't cover the resizer's icon\n            props[isRtl ? 'marginLeft' : 'marginRight'] = 10 * 2; // 10 is a guesstimate of the icon's width\n        }\n        return props;\n    }\n}\nfunction renderPlainFgSegs(sortedFgSegs, { todayRange, nowDate, eventSelection, eventDrag, eventResize }) {\n    let hiddenInstances = (eventDrag ? eventDrag.affectedInstances : null) ||\n        (eventResize ? eventResize.affectedInstances : null) ||\n        {};\n    return (createElement(Fragment, null, sortedFgSegs.map((seg) => {\n        let instanceId = seg.eventRange.instance.instanceId;\n        return (createElement(\"div\", { key: instanceId, style: { visibility: hiddenInstances[instanceId] ? 'hidden' : '' } },\n            createElement(TimeColEvent, Object.assign({ seg: seg, isDragging: false, isResizing: false, isDateSelecting: false, isSelected: instanceId === eventSelection, isShort: false }, getSegMeta(seg, todayRange, nowDate)))));\n    })));\n}\nfunction computeSegVStyle(segVCoords) {\n    if (!segVCoords) {\n        return { top: '', bottom: '' };\n    }\n    return {\n        top: segVCoords.start,\n        bottom: -segVCoords.end,\n    };\n}\nfunction compileSegsFromEntries(segEntries, allSegs) {\n    return segEntries.map((segEntry) => allSegs[segEntry.index]);\n}\n\nclass TimeColsContent extends BaseComponent {\n    constructor() {\n        super(...arguments);\n        this.splitFgEventSegs = memoize(splitSegsByCol);\n        this.splitBgEventSegs = memoize(splitSegsByCol);\n        this.splitBusinessHourSegs = memoize(splitSegsByCol);\n        this.splitNowIndicatorSegs = memoize(splitSegsByCol);\n        this.splitDateSelectionSegs = memoize(splitSegsByCol);\n        this.splitEventDrag = memoize(splitInteractionByCol);\n        this.splitEventResize = memoize(splitInteractionByCol);\n        this.rootElRef = createRef();\n        this.cellElRefs = new RefMap();\n    }\n    render() {\n        let { props, context } = this;\n        let nowIndicatorTop = context.options.nowIndicator &&\n            props.slatCoords &&\n            props.slatCoords.safeComputeTop(props.nowDate); // might return void\n        let colCnt = props.cells.length;\n        let fgEventSegsByRow = this.splitFgEventSegs(props.fgEventSegs, colCnt);\n        let bgEventSegsByRow = this.splitBgEventSegs(props.bgEventSegs, colCnt);\n        let businessHourSegsByRow = this.splitBusinessHourSegs(props.businessHourSegs, colCnt);\n        let nowIndicatorSegsByRow = this.splitNowIndicatorSegs(props.nowIndicatorSegs, colCnt);\n        let dateSelectionSegsByRow = this.splitDateSelectionSegs(props.dateSelectionSegs, colCnt);\n        let eventDragByRow = this.splitEventDrag(props.eventDrag, colCnt);\n        let eventResizeByRow = this.splitEventResize(props.eventResize, colCnt);\n        return (createElement(\"div\", { className: \"fc-timegrid-cols\", ref: this.rootElRef },\n            createElement(\"table\", { role: \"presentation\", style: {\n                    minWidth: props.tableMinWidth,\n                    width: props.clientWidth,\n                } },\n                props.tableColGroupNode,\n                createElement(\"tbody\", { role: \"presentation\" },\n                    createElement(\"tr\", { role: \"row\" },\n                        props.axis && (createElement(\"td\", { \"aria-hidden\": true, className: \"fc-timegrid-col fc-timegrid-axis\" },\n                            createElement(\"div\", { className: \"fc-timegrid-col-frame\" },\n                                createElement(\"div\", { className: \"fc-timegrid-now-indicator-container\" }, typeof nowIndicatorTop === 'number' && (createElement(NowIndicatorContainer, { elClasses: ['fc-timegrid-now-indicator-arrow'], elStyle: { top: nowIndicatorTop }, isAxis: true, date: props.nowDate })))))),\n                        props.cells.map((cell, i) => (createElement(TimeCol, { key: cell.key, elRef: this.cellElRefs.createRef(cell.key), dateProfile: props.dateProfile, date: cell.date, nowDate: props.nowDate, todayRange: props.todayRange, extraRenderProps: cell.extraRenderProps, extraDataAttrs: cell.extraDataAttrs, extraClassNames: cell.extraClassNames, extraDateSpan: cell.extraDateSpan, fgEventSegs: fgEventSegsByRow[i], bgEventSegs: bgEventSegsByRow[i], businessHourSegs: businessHourSegsByRow[i], nowIndicatorSegs: nowIndicatorSegsByRow[i], dateSelectionSegs: dateSelectionSegsByRow[i], eventDrag: eventDragByRow[i], eventResize: eventResizeByRow[i], slatCoords: props.slatCoords, eventSelection: props.eventSelection, forPrint: props.forPrint }))))))));\n    }\n    componentDidMount() {\n        this.updateCoords();\n    }\n    componentDidUpdate() {\n        this.updateCoords();\n    }\n    updateCoords() {\n        let { props } = this;\n        if (props.onColCoords &&\n            props.clientWidth !== null // means sizing has stabilized\n        ) {\n            props.onColCoords(new PositionCache(this.rootElRef.current, collectCellEls(this.cellElRefs.currentMap, props.cells), true, // horizontal\n            false));\n        }\n    }\n}\nfunction collectCellEls(elMap, cells) {\n    return cells.map((cell) => elMap[cell.key]);\n}\n\n/* A component that renders one or more columns of vertical time slots\n----------------------------------------------------------------------------------------------------------------------*/\nclass TimeCols extends DateComponent {\n    constructor() {\n        super(...arguments);\n        this.processSlotOptions = memoize(processSlotOptions);\n        this.state = {\n            slatCoords: null,\n        };\n        this.handleRootEl = (el) => {\n            if (el) {\n                this.context.registerInteractiveComponent(this, {\n                    el,\n                    isHitComboAllowed: this.props.isHitComboAllowed,\n                });\n            }\n            else {\n                this.context.unregisterInteractiveComponent(this);\n            }\n        };\n        this.handleScrollRequest = (request) => {\n            let { onScrollTopRequest } = this.props;\n            let { slatCoords } = this.state;\n            if (onScrollTopRequest && slatCoords) {\n                if (request.time) {\n                    let top = slatCoords.computeTimeTop(request.time);\n                    top = Math.ceil(top); // zoom can give weird floating-point values. rather scroll a little bit further\n                    if (top) {\n                        top += 1; // to overcome top border that slots beyond the first have. looks better\n                    }\n                    onScrollTopRequest(top);\n                }\n                return true;\n            }\n            return false;\n        };\n        this.handleColCoords = (colCoords) => {\n            this.colCoords = colCoords;\n        };\n        this.handleSlatCoords = (slatCoords) => {\n            this.setState({ slatCoords });\n            if (this.props.onSlatCoords) {\n                this.props.onSlatCoords(slatCoords);\n            }\n        };\n    }\n    render() {\n        let { props, state } = this;\n        return (createElement(\"div\", { className: \"fc-timegrid-body\", ref: this.handleRootEl, style: {\n                // these props are important to give this wrapper correct dimensions for interactions\n                // TODO: if we set it here, can we avoid giving to inner tables?\n                width: props.clientWidth,\n                minWidth: props.tableMinWidth,\n            } },\n            createElement(TimeColsSlats, { axis: props.axis, dateProfile: props.dateProfile, slatMetas: props.slatMetas, clientWidth: props.clientWidth, minHeight: props.expandRows ? props.clientHeight : '', tableMinWidth: props.tableMinWidth, tableColGroupNode: props.axis ? props.tableColGroupNode : null /* axis depends on the colgroup's shrinking */, onCoords: this.handleSlatCoords }),\n            createElement(TimeColsContent, { cells: props.cells, axis: props.axis, dateProfile: props.dateProfile, businessHourSegs: props.businessHourSegs, bgEventSegs: props.bgEventSegs, fgEventSegs: props.fgEventSegs, dateSelectionSegs: props.dateSelectionSegs, eventSelection: props.eventSelection, eventDrag: props.eventDrag, eventResize: props.eventResize, todayRange: props.todayRange, nowDate: props.nowDate, nowIndicatorSegs: props.nowIndicatorSegs, clientWidth: props.clientWidth, tableMinWidth: props.tableMinWidth, tableColGroupNode: props.tableColGroupNode, slatCoords: state.slatCoords, onColCoords: this.handleColCoords, forPrint: props.forPrint })));\n    }\n    componentDidMount() {\n        this.scrollResponder = this.context.createScrollResponder(this.handleScrollRequest);\n    }\n    componentDidUpdate(prevProps) {\n        this.scrollResponder.update(prevProps.dateProfile !== this.props.dateProfile);\n    }\n    componentWillUnmount() {\n        this.scrollResponder.detach();\n    }\n    queryHit(positionLeft, positionTop) {\n        let { dateEnv, options } = this.context;\n        let { colCoords } = this;\n        let { dateProfile } = this.props;\n        let { slatCoords } = this.state;\n        let { snapDuration, snapsPerSlot } = this.processSlotOptions(this.props.slotDuration, options.snapDuration);\n        let colIndex = colCoords.leftToIndex(positionLeft);\n        let slatIndex = slatCoords.positions.topToIndex(positionTop);\n        if (colIndex != null && slatIndex != null) {\n            let cell = this.props.cells[colIndex];\n            let slatTop = slatCoords.positions.tops[slatIndex];\n            let slatHeight = slatCoords.positions.getHeight(slatIndex);\n            let partial = (positionTop - slatTop) / slatHeight; // floating point number between 0 and 1\n            let localSnapIndex = Math.floor(partial * snapsPerSlot); // the snap # relative to start of slat\n            let snapIndex = slatIndex * snapsPerSlot + localSnapIndex;\n            let dayDate = this.props.cells[colIndex].date;\n            let time = addDurations(dateProfile.slotMinTime, multiplyDuration(snapDuration, snapIndex));\n            let start = dateEnv.add(dayDate, time);\n            let end = dateEnv.add(start, snapDuration);\n            return {\n                dateProfile,\n                dateSpan: Object.assign({ range: { start, end }, allDay: false }, cell.extraDateSpan),\n                dayEl: colCoords.els[colIndex],\n                rect: {\n                    left: colCoords.lefts[colIndex],\n                    right: colCoords.rights[colIndex],\n                    top: slatTop,\n                    bottom: slatTop + slatHeight,\n                },\n                layer: 0,\n            };\n        }\n        return null;\n    }\n}\nfunction processSlotOptions(slotDuration, snapDurationOverride) {\n    let snapDuration = snapDurationOverride || slotDuration;\n    let snapsPerSlot = wholeDivideDurations(slotDuration, snapDuration);\n    if (snapsPerSlot === null) {\n        snapDuration = slotDuration;\n        snapsPerSlot = 1;\n        // TODO: say warning?\n    }\n    return { snapDuration, snapsPerSlot };\n}\n\nclass DayTimeColsSlicer extends Slicer {\n    sliceRange(range, dayRanges) {\n        let segs = [];\n        for (let col = 0; col < dayRanges.length; col += 1) {\n            let segRange = intersectRanges(range, dayRanges[col]);\n            if (segRange) {\n                segs.push({\n                    start: segRange.start,\n                    end: segRange.end,\n                    isStart: segRange.start.valueOf() === range.start.valueOf(),\n                    isEnd: segRange.end.valueOf() === range.end.valueOf(),\n                    col,\n                });\n            }\n        }\n        return segs;\n    }\n}\n\nclass DayTimeCols extends DateComponent {\n    constructor() {\n        super(...arguments);\n        this.buildDayRanges = memoize(buildDayRanges);\n        this.slicer = new DayTimeColsSlicer();\n        this.timeColsRef = createRef();\n    }\n    render() {\n        let { props, context } = this;\n        let { dateProfile, dayTableModel } = props;\n        let { nowIndicator, nextDayThreshold } = context.options;\n        let dayRanges = this.buildDayRanges(dayTableModel, dateProfile, context.dateEnv);\n        // give it the first row of cells\n        // TODO: would move this further down hierarchy, but sliceNowDate needs it\n        return (createElement(NowTimer, { unit: nowIndicator ? 'minute' : 'day' }, (nowDate, todayRange) => (createElement(TimeCols, Object.assign({ ref: this.timeColsRef }, this.slicer.sliceProps(props, dateProfile, null, context, dayRanges), { forPrint: props.forPrint, axis: props.axis, dateProfile: dateProfile, slatMetas: props.slatMetas, slotDuration: props.slotDuration, cells: dayTableModel.cells[0], tableColGroupNode: props.tableColGroupNode, tableMinWidth: props.tableMinWidth, clientWidth: props.clientWidth, clientHeight: props.clientHeight, expandRows: props.expandRows, nowDate: nowDate, nowIndicatorSegs: nowIndicator && this.slicer.sliceNowDate(nowDate, dateProfile, nextDayThreshold, context, dayRanges), todayRange: todayRange, onScrollTopRequest: props.onScrollTopRequest, onSlatCoords: props.onSlatCoords })))));\n    }\n}\nfunction buildDayRanges(dayTableModel, dateProfile, dateEnv) {\n    let ranges = [];\n    for (let date of dayTableModel.headerDates) {\n        ranges.push({\n            start: dateEnv.add(date, dateProfile.slotMinTime),\n            end: dateEnv.add(date, dateProfile.slotMaxTime),\n        });\n    }\n    return ranges;\n}\n\n// potential nice values for the slot-duration and interval-duration\n// from largest to smallest\nconst STOCK_SUB_DURATIONS = [\n    { hours: 1 },\n    { minutes: 30 },\n    { minutes: 15 },\n    { seconds: 30 },\n    { seconds: 15 },\n];\nfunction buildSlatMetas(slotMinTime, slotMaxTime, explicitLabelInterval, slotDuration, dateEnv) {\n    let dayStart = new Date(0);\n    let slatTime = slotMinTime;\n    let slatIterator = createDuration(0);\n    let labelInterval = explicitLabelInterval || computeLabelInterval(slotDuration);\n    let metas = [];\n    while (asRoughMs(slatTime) < asRoughMs(slotMaxTime)) {\n        let date = dateEnv.add(dayStart, slatTime);\n        let isLabeled = wholeDivideDurations(slatIterator, labelInterval) !== null;\n        metas.push({\n            date,\n            time: slatTime,\n            key: date.toISOString(),\n            isoTimeStr: formatIsoTimeString(date),\n            isLabeled,\n        });\n        slatTime = addDurations(slatTime, slotDuration);\n        slatIterator = addDurations(slatIterator, slotDuration);\n    }\n    return metas;\n}\n// Computes an automatic value for slotLabelInterval\nfunction computeLabelInterval(slotDuration) {\n    let i;\n    let labelInterval;\n    let slotsPerLabel;\n    // find the smallest stock label interval that results in more than one slots-per-label\n    for (i = STOCK_SUB_DURATIONS.length - 1; i >= 0; i -= 1) {\n        labelInterval = createDuration(STOCK_SUB_DURATIONS[i]);\n        slotsPerLabel = wholeDivideDurations(labelInterval, slotDuration);\n        if (slotsPerLabel !== null && slotsPerLabel > 1) {\n            return labelInterval;\n        }\n    }\n    return slotDuration; // fall back\n}\n\nclass DayTimeColsView extends TimeColsView {\n    constructor() {\n        super(...arguments);\n        this.buildTimeColsModel = memoize(buildTimeColsModel);\n        this.buildSlatMetas = memoize(buildSlatMetas);\n    }\n    render() {\n        let { options, dateEnv, dateProfileGenerator } = this.context;\n        let { props } = this;\n        let { dateProfile } = props;\n        let dayTableModel = this.buildTimeColsModel(dateProfile, dateProfileGenerator);\n        let splitProps = this.allDaySplitter.splitProps(props);\n        let slatMetas = this.buildSlatMetas(dateProfile.slotMinTime, dateProfile.slotMaxTime, options.slotLabelInterval, options.slotDuration, dateEnv);\n        let { dayMinWidth } = options;\n        let hasAttachedAxis = !dayMinWidth;\n        let hasDetachedAxis = dayMinWidth;\n        let headerContent = options.dayHeaders && (createElement(DayHeader, { dates: dayTableModel.headerDates, dateProfile: dateProfile, datesRepDistinctDays: true, renderIntro: hasAttachedAxis ? this.renderHeadAxis : null }));\n        let allDayContent = (options.allDaySlot !== false) && ((contentArg) => (createElement(DayTable, Object.assign({}, splitProps.allDay, { dateProfile: dateProfile, dayTableModel: dayTableModel, nextDayThreshold: options.nextDayThreshold, tableMinWidth: contentArg.tableMinWidth, colGroupNode: contentArg.tableColGroupNode, renderRowIntro: hasAttachedAxis ? this.renderTableRowAxis : null, showWeekNumbers: false, expandRows: false, headerAlignElRef: this.headerElRef, clientWidth: contentArg.clientWidth, clientHeight: contentArg.clientHeight, forPrint: props.forPrint }, this.getAllDayMaxEventProps()))));\n        let timeGridContent = (contentArg) => (createElement(DayTimeCols, Object.assign({}, splitProps.timed, { dayTableModel: dayTableModel, dateProfile: dateProfile, axis: hasAttachedAxis, slotDuration: options.slotDuration, slatMetas: slatMetas, forPrint: props.forPrint, tableColGroupNode: contentArg.tableColGroupNode, tableMinWidth: contentArg.tableMinWidth, clientWidth: contentArg.clientWidth, clientHeight: contentArg.clientHeight, onSlatCoords: this.handleSlatCoords, expandRows: contentArg.expandRows, onScrollTopRequest: this.handleScrollTopRequest })));\n        return hasDetachedAxis\n            ? this.renderHScrollLayout(headerContent, allDayContent, timeGridContent, dayTableModel.colCnt, dayMinWidth, slatMetas, this.state.slatCoords)\n            : this.renderSimpleLayout(headerContent, allDayContent, timeGridContent);\n    }\n}\nfunction buildTimeColsModel(dateProfile, dateProfileGenerator) {\n    let daySeries = new DaySeriesModel(dateProfile.renderRange, dateProfileGenerator);\n    return new DayTableModel(daySeries, false);\n}\n\nvar css_248z = \".fc-v-event{background-color:var(--fc-event-bg-color);border:1px solid var(--fc-event-border-color);display:block}.fc-v-event .fc-event-main{color:var(--fc-event-text-color);height:100%}.fc-v-event .fc-event-main-frame{display:flex;flex-direction:column;height:100%}.fc-v-event .fc-event-time{flex-grow:0;flex-shrink:0;max-height:100%;overflow:hidden}.fc-v-event .fc-event-title-container{flex-grow:1;flex-shrink:1;min-height:0}.fc-v-event .fc-event-title{bottom:0;max-height:100%;overflow:hidden;top:0}.fc-v-event:not(.fc-event-start){border-top-left-radius:0;border-top-right-radius:0;border-top-width:0}.fc-v-event:not(.fc-event-end){border-bottom-left-radius:0;border-bottom-right-radius:0;border-bottom-width:0}.fc-v-event.fc-event-selected:before{left:-10px;right:-10px}.fc-v-event .fc-event-resizer-start{cursor:n-resize}.fc-v-event .fc-event-resizer-end{cursor:s-resize}.fc-v-event:not(.fc-event-selected) .fc-event-resizer{height:var(--fc-event-resizer-thickness);left:0;right:0}.fc-v-event:not(.fc-event-selected) .fc-event-resizer-start{top:calc(var(--fc-event-resizer-thickness)/-2)}.fc-v-event:not(.fc-event-selected) .fc-event-resizer-end{bottom:calc(var(--fc-event-resizer-thickness)/-2)}.fc-v-event.fc-event-selected .fc-event-resizer{left:50%;margin-left:calc(var(--fc-event-resizer-dot-total-width)/-2)}.fc-v-event.fc-event-selected .fc-event-resizer-start{top:calc(var(--fc-event-resizer-dot-total-width)/-2)}.fc-v-event.fc-event-selected .fc-event-resizer-end{bottom:calc(var(--fc-event-resizer-dot-total-width)/-2)}.fc .fc-timegrid .fc-daygrid-body{z-index:2}.fc .fc-timegrid-divider{padding:0 0 2px}.fc .fc-timegrid-body{min-height:100%;position:relative;z-index:1}.fc .fc-timegrid-axis-chunk{position:relative}.fc .fc-timegrid-axis-chunk>table,.fc .fc-timegrid-slots{position:relative;z-index:1}.fc .fc-timegrid-slot{border-bottom:0;height:1.5em}.fc .fc-timegrid-slot:empty:before{content:\\\"\\\\00a0\\\"}.fc .fc-timegrid-slot-minor{border-top-style:dotted}.fc .fc-timegrid-slot-label-cushion{display:inline-block;white-space:nowrap}.fc .fc-timegrid-slot-label{vertical-align:middle}.fc .fc-timegrid-axis-cushion,.fc .fc-timegrid-slot-label-cushion{padding:0 4px}.fc .fc-timegrid-axis-frame-liquid{height:100%}.fc .fc-timegrid-axis-frame{align-items:center;display:flex;justify-content:flex-end;overflow:hidden}.fc .fc-timegrid-axis-cushion{flex-shrink:0;max-width:60px}.fc-direction-ltr .fc-timegrid-slot-label-frame{text-align:right}.fc-direction-rtl .fc-timegrid-slot-label-frame{text-align:left}.fc-liquid-hack .fc-timegrid-axis-frame-liquid{bottom:0;height:auto;left:0;position:absolute;right:0;top:0}.fc .fc-timegrid-col.fc-day-today{background-color:var(--fc-today-bg-color)}.fc .fc-timegrid-col-frame{min-height:100%;position:relative}.fc-media-screen.fc-liquid-hack .fc-timegrid-col-frame{bottom:0;height:auto;left:0;position:absolute;right:0;top:0}.fc-media-screen .fc-timegrid-cols{bottom:0;left:0;position:absolute;right:0;top:0}.fc-media-screen .fc-timegrid-cols>table{height:100%}.fc-media-screen .fc-timegrid-col-bg,.fc-media-screen .fc-timegrid-col-events,.fc-media-screen .fc-timegrid-now-indicator-container{left:0;position:absolute;right:0;top:0}.fc .fc-timegrid-col-bg{z-index:2}.fc .fc-timegrid-col-bg .fc-non-business{z-index:1}.fc .fc-timegrid-col-bg .fc-bg-event{z-index:2}.fc .fc-timegrid-col-bg .fc-highlight{z-index:3}.fc .fc-timegrid-bg-harness{left:0;position:absolute;right:0}.fc .fc-timegrid-col-events{z-index:3}.fc .fc-timegrid-now-indicator-container{bottom:0;overflow:hidden}.fc-direction-ltr .fc-timegrid-col-events{margin:0 2.5% 0 2px}.fc-direction-rtl .fc-timegrid-col-events{margin:0 2px 0 2.5%}.fc-timegrid-event-harness{position:absolute}.fc-timegrid-event-harness>.fc-timegrid-event{bottom:0;left:0;position:absolute;right:0;top:0}.fc-timegrid-event-harness-inset .fc-timegrid-event,.fc-timegrid-event.fc-event-mirror,.fc-timegrid-more-link{box-shadow:0 0 0 1px var(--fc-page-bg-color)}.fc-timegrid-event,.fc-timegrid-more-link{border-radius:3px;font-size:var(--fc-small-font-size)}.fc-timegrid-event{margin-bottom:1px}.fc-timegrid-event .fc-event-main{padding:1px 1px 0}.fc-timegrid-event .fc-event-time{font-size:var(--fc-small-font-size);margin-bottom:1px;white-space:nowrap}.fc-timegrid-event-short .fc-event-main-frame{flex-direction:row;overflow:hidden}.fc-timegrid-event-short .fc-event-time:after{content:\\\"\\\\00a0-\\\\00a0\\\"}.fc-timegrid-event-short .fc-event-title{font-size:var(--fc-small-font-size)}.fc-timegrid-more-link{background:var(--fc-more-link-bg-color);color:var(--fc-more-link-text-color);cursor:pointer;margin-bottom:1px;position:absolute;z-index:9999}.fc-timegrid-more-link-inner{padding:3px 2px;top:0}.fc-direction-ltr .fc-timegrid-more-link{right:0}.fc-direction-rtl .fc-timegrid-more-link{left:0}.fc .fc-timegrid-now-indicator-arrow,.fc .fc-timegrid-now-indicator-line{pointer-events:none}.fc .fc-timegrid-now-indicator-line{border-color:var(--fc-now-indicator-color);border-style:solid;border-width:1px 0 0;left:0;position:absolute;right:0;z-index:4}.fc .fc-timegrid-now-indicator-arrow{border-color:var(--fc-now-indicator-color);border-style:solid;margin-top:-5px;position:absolute;z-index:4}.fc-direction-ltr .fc-timegrid-now-indicator-arrow{border-bottom-color:transparent;border-top-color:transparent;border-width:5px 0 5px 6px;left:0}.fc-direction-rtl .fc-timegrid-now-indicator-arrow{border-bottom-color:transparent;border-top-color:transparent;border-width:5px 6px 5px 0;right:0}\";\ninjectStyles(css_248z);\n\nexport { DayTimeCols, DayTimeColsSlicer, DayTimeColsView, TimeCols, TimeColsSlatsCoords, TimeColsView, buildDayRanges, buildSlatMetas, buildTimeColsModel };\n","import { createPlugin } from '@fullcalendar/core/index.js';\nimport { DayTimeColsView } from './internal.js';\nimport '@fullcalendar/core/internal.js';\nimport '@fullcalendar/core/preact.js';\nimport '@fullcalendar/daygrid/internal.js';\n\nconst OPTION_REFINERS = {\n    allDaySlot: Boolean,\n};\n\nvar index = createPlugin({\n    name: '@fullcalendar/timegrid',\n    initialView: 'timeGridWeek',\n    optionRefiners: OPTION_REFINERS,\n    views: {\n        timeGrid: {\n            component: DayTimeColsView,\n            usesMinMaxTime: true,\n            allDaySlot: true,\n            slotDuration: '00:30:00',\n            slotEventOverlap: true, // a bad name. confused with overlap/constraint system\n        },\n        timeGridDay: {\n            type: 'timeGrid',\n            duration: { days: 1 },\n        },\n        timeGridWeek: {\n            type: 'timeGrid',\n            duration: { weeks: 1 },\n        },\n    },\n});\n\nexport { index as default };\n"]}