import { DateProfileGenerator, DateProfile, DayHeader, DaySeriesModel, DayTableModel, memoize, ChunkContentCallbackArgs, } from '@fullcalendar/core/internal' import { createElement, } from '@fullcalendar/core/preact' import { DayTable } from '@fullcalendar/daygrid/internal' import { TimeColsView } from './TimeColsView.js' import { DayTimeCols } from './DayTimeCols.js' import { buildSlatMetas } from './time-slat-meta.js' export class DayTimeColsView extends TimeColsView { private buildTimeColsModel = memoize(buildTimeColsModel) private buildSlatMetas = memoize(buildSlatMetas) render() { let { options, dateEnv, dateProfileGenerator } = this.context let { props } = this let { dateProfile } = props let dayTableModel = this.buildTimeColsModel(dateProfile, dateProfileGenerator) let splitProps = this.allDaySplitter.splitProps(props) let slatMetas = this.buildSlatMetas( dateProfile.slotMinTime, dateProfile.slotMaxTime, options.slotLabelInterval, options.slotDuration, dateEnv, ) let { dayMinWidth } = options let hasAttachedAxis = !dayMinWidth let hasDetachedAxis = dayMinWidth let headerContent = options.dayHeaders && ( ) let allDayContent = (options.allDaySlot !== false) && ((contentArg: ChunkContentCallbackArgs) => ( )) let timeGridContent = (contentArg: ChunkContentCallbackArgs) => ( ) return hasDetachedAxis ? this.renderHScrollLayout( headerContent, allDayContent, timeGridContent, dayTableModel.colCnt, dayMinWidth, slatMetas, this.state.slatCoords, ) : this.renderSimpleLayout( headerContent, allDayContent, timeGridContent, ) } } export function buildTimeColsModel(dateProfile: DateProfile, dateProfileGenerator: DateProfileGenerator) { let daySeries = new DaySeriesModel(dateProfile.renderRange, dateProfileGenerator) return new DayTableModel(daySeries, false) }