/ | elements with colspans.\n SOLUTION: making individual \n ,\n )\n }\n\n _handleScrollerEl(scrollerEl: HTMLElement | null, key: string) {\n let section = getSectionByKey(this.props.sections, key)\n\n if (section) {\n setRef(section.chunk.scrollerElRef, scrollerEl)\n }\n }\n\n // TODO: can do a really simple print-view. dont need to join rows\n handleSizing = () => {\n this.setState({\n shrinkWidth: this.computeShrinkWidth(), // will create each chunk's \n {innerContent}\n \n {hookProps.isStartResizable &&\n }\n {hookProps.isEndResizable &&\n }\n \n )}\n \n {innerProps.timeText && (\n \n )\n}\n","import { Ref, ComponentChildren, createElement } from '../vdom'\nimport { DateMarker } from '../datelib/marker'\nimport { DateRange } from '../datelib/date-range'\nimport { getDateMeta, DateMeta } from '../component/date-rendering'\nimport { createFormatter } from '../datelib/formatting'\nimport { ContentHook } from './render-hook'\nimport { ViewApi } from '../ViewApi'\nimport { BaseComponent } from '../vdom-util'\nimport { DateProfile } from '../DateProfileGenerator'\nimport { Dictionary } from '../options'\nimport { DateEnv } from '../datelib/env'\n\nconst DAY_NUM_FORMAT = createFormatter({ day: 'numeric' })\n\nexport interface DayCellContentProps {\n date: DateMarker\n dateProfile: DateProfile\n todayRange: DateRange\n showDayNumber?: boolean // defaults to false\n extraHookProps?: Dictionary\n defaultContent?: (hookProps: DayCellContentArg) => ComponentChildren\n children: (\n innerElRef: Ref{innerProps.timeText} \n )}\n \n \n \n {innerProps.event.title || \n \n {innerContent}\n \n )}\n {props.event.title} \n )\n}\n","import { ViewContext, ViewContextType } from '../ViewContext'\nimport { DateMarker } from '../datelib/marker'\nimport { RenderHook, RenderHookPropsChildren, MountArg } from './render-hook'\nimport { createElement } from '../vdom'\nimport { DateFormatter } from '../datelib/DateFormatter'\n\nexport interface WeekNumberRootProps {\n date: DateMarker\n defaultFormat: DateFormatter\n children: RenderHookPropsChildren\n}\n\nexport interface WeekNumberContentArg {\n num: number\n text: string\n date: Date\n}\nexport type WeekNumberMountArg = MountArg\n ,\n props.parentEl,\n )\n }\n\n componentDidMount() {\n document.addEventListener('mousedown', this.handleDocumentMouseDown)\n document.addEventListener('keydown', this.handleDocumentKeyDown)\n this.updateSize()\n }\n\n componentWillUnmount() {\n document.removeEventListener('mousedown', this.handleDocumentMouseDown)\n document.removeEventListener('keydown', this.handleDocumentKeyDown)\n }\n\n handleRootEl = (el: HTMLElement | null) => {\n this.rootEl = el\n\n if (this.props.elRef) {\n setRef(this.props.elRef, el)\n }\n }\n\n // Triggered when the user clicks *anywhere* in the document, for the autoHide feature\n handleDocumentMouseDown = (ev) => {\n // only hide the popover if the click happened outside the popover\n const target = getEventTargetViaRoot(ev) as HTMLElement\n if (!this.rootEl.contains(target)) {\n this.handleCloseClick()\n }\n }\n\n handleDocumentKeyDown = (ev) => {\n if (ev.key === 'Escape') {\n this.handleCloseClick()\n }\n }\n\n handleCloseClick = () => {\n let { onClose } = this.props\n if (onClose) {\n onClose()\n }\n }\n\n private updateSize() {\n let { isRtl } = this.context\n let { alignmentEl, alignGridTop } = this.props\n let { rootEl } = this\n\n let alignmentRect = computeClippedClientRect(alignmentEl)\n if (alignmentRect) {\n let popoverDims = rootEl.getBoundingClientRect()\n\n // position relative to viewport\n let popoverTop = alignGridTop\n ? elementClosest(alignmentEl, '.fc-scrollgrid').getBoundingClientRect().top\n : alignmentRect.top\n let popoverLeft = isRtl ? alignmentRect.right - popoverDims.width : alignmentRect.left\n\n // constrain\n popoverTop = Math.max(popoverTop, PADDING_FROM_VIEWPORT)\n popoverLeft = Math.min(popoverLeft, document.documentElement.clientWidth - PADDING_FROM_VIEWPORT - popoverDims.width)\n popoverLeft = Math.max(popoverLeft, PADDING_FROM_VIEWPORT)\n\n let origin = rootEl.offsetParent.getBoundingClientRect()\n applyStyle(rootEl, {\n top: popoverTop - origin.top,\n left: popoverLeft - origin.left,\n })\n }\n }\n}\n","import { DateComponent } from '../component/DateComponent'\nimport { DateRange } from '../datelib/date-range'\nimport { DateMarker } from '../datelib/marker'\nimport { DateProfile } from '../DateProfileGenerator'\nimport { Hit } from '../interactions/hit'\nimport { Dictionary } from '../options'\nimport { createElement, ComponentChildren } from '../vdom'\nimport { DayCellContent } from './DayCellContent'\nimport { DayCellRoot } from './DayCellRoot'\nimport { Popover } from './Popover'\n\nexport interface MorePopoverProps {\n id: string\n startDate: DateMarker\n endDate: DateMarker\n dateProfile: DateProfile\n parentEl: HTMLElement\n alignmentEl: HTMLElement\n alignGridTop?: boolean\n todayRange: DateRange\n extraDateSpan: Dictionary\n children: ComponentChildren\n onClose?: () => void\n}\n\nexport class MorePopover extends DateComponent\n \n {props.title}\n \n \n \n \n {props.children}\n \n {innerContent} \n )}\n |
---|