@devexpress/dx-react-scheduler
Version:
Composable plugin-based scheduler component for React
1 lines • 217 kB
Source Map (JSON)
{"version":3,"file":"dx-react-scheduler.umd.cjs","sources":["../src/plugins/scheduler-core.tsx","../src/scheduler.tsx","../src/plugins/basic-view.tsx","../src/plugins/vertical-view.tsx","../src/plugins/day-view.tsx","../src/plugins/week-view.tsx","../src/plugins/month-view.tsx","../src/plugins/toolbar.tsx","../src/plugins/date-navigator.tsx","../src/plugins/view-switcher.tsx","../src/plugins/appointments.tsx","../src/plugins/all-day-panel.tsx","../src/plugins/view-state.tsx","../src/plugins/editing-state.tsx","../src/plugins/appointment-tooltip.tsx","../src/plugins/appointment-form.tsx","../src/plugins/drag-drop-provider.tsx","../src/plugins/today-button.tsx","../src/plugins/edit-recurrence-menu.tsx","../src/plugins/integrated-editing.tsx","../src/plugins/resources.tsx","../src/plugins/confirmation-dialog.tsx","../src/plugins/grouping-state.tsx","../src/plugins/grouping-panel.tsx","../src/plugins/current-time-indicator.tsx","../src/plugins/integrated-grouping.tsx"],"sourcesContent":["import * as React from 'react';\nimport {\n Plugin, Getter, Template, TemplatePlaceholder,\n} from '@devexpress/dx-react-core';\nimport { appointments, formatDateTimeGetter } from '@devexpress/dx-scheduler-core';\nimport { SchedulerProps } from '../types';\nimport { memoize } from '@devexpress/dx-core';\n\nclass SchedulerCoreBase extends React.PureComponent<SchedulerProps> {\n formatDateTimeGetter = memoize(locale => formatDateTimeGetter(locale));\n\n render() {\n const {\n data,\n rootComponent: Root,\n locale,\n height,\n firstDayOfWeek,\n } = this.props;\n\n return (\n <Plugin\n name=\"SchedulerCore\"\n >\n <Getter name=\"appointments\" value={appointments(data)} />\n <Getter name=\"formatDate\" value={this.formatDateTimeGetter(locale)} />\n <Getter name=\"firstDayOfWeek\" value={firstDayOfWeek} />\n <Getter name=\"locale\" value={locale} />\n <Template name=\"root\">\n <Root height={height}>\n <TemplatePlaceholder name=\"schedulerRoot\" />\n <TemplatePlaceholder name=\"header\" />\n <TemplatePlaceholder name=\"body\" />\n <TemplatePlaceholder name=\"footer\" />\n </Root>\n </Template>\n </Plugin>\n );\n }\n}\n\n/***\n * The Scheduler is a root container component designed to process\n * and display the specified data. The Scheduler's functionality\n * (data visualization and processing) is implemented in several plugins\n * specified as child components.\n * */\nexport const SchedulerCore: React.ComponentType<SchedulerProps> = SchedulerCoreBase;\n","import * as React from 'react';\nimport { PluginHost } from '@devexpress/dx-react-core';\nimport { SchedulerCore } from './plugins/scheduler-core';\nimport { SchedulerProps } from './types';\n\nconst SchedulerBase: React.FunctionComponent<SchedulerProps> = ({\n data,\n rootComponent,\n children,\n locale,\n height,\n firstDayOfWeek,\n}) => (\n <PluginHost>\n <SchedulerCore\n data={data}\n rootComponent={rootComponent}\n locale={locale}\n height={height}\n firstDayOfWeek={firstDayOfWeek}\n />\n {children}\n </PluginHost>\n);\n\nSchedulerBase.defaultProps = {\n data: [],\n locale: 'en-US',\n height: 'auto',\n firstDayOfWeek: 0,\n};\n\n// tslint:disable: max-line-length\n/***\n * The Scheduler is a root container component designed to process\n * and display the specified data. The Scheduler’s functionality\n * (data visualization and processing) is implemented in several plugins specified as child components.\n * */\nexport const Scheduler: React.ComponentType<SchedulerProps> = SchedulerBase;\n","import * as React from 'react';\nimport {\n Template,\n Plugin,\n Getter,\n TemplateConnector,\n TemplatePlaceholder,\n ComputedFn,\n} from '@devexpress/dx-react-core';\nimport {\n computed,\n startViewDate as startViewDateCore,\n endViewDate as endViewDateCore,\n availableViews as availableViewsCore,\n HORIZONTAL_GROUP_ORIENTATION,\n VERTICAL_GROUP_ORIENTATION,\n} from '@devexpress/dx-scheduler-core';\nimport { memoize } from '@devexpress/dx-core';\nimport { BasicViewProps, BasicViewState, ScrollingStrategy } from '../types';\n\nconst CellPlaceholder = params => <TemplatePlaceholder name=\"cell\" params={params} />;\nconst TimeTableAppointmentLayer = () => <TemplatePlaceholder name=\"timeTableAppointmentLayer\" />;\n\nconst startViewDateBaseComputed = ({ viewCellsData }) => startViewDateCore(viewCellsData);\nconst endViewDateBaseComputed = ({ viewCellsData }) => endViewDateCore(viewCellsData);\n\nconst TimeTablePlaceholder = () => <TemplatePlaceholder name=\"timeTable\" />;\nconst DayScalePlaceholder = () => <TemplatePlaceholder name=\"dayScale\" />;\nconst DayScaleEmptyCellPlaceholder = () => <TemplatePlaceholder name=\"dayScaleEmptyCell\" />;\n\nconst GroupingPanelPlaceholder = () => <TemplatePlaceholder name=\"groupingPanel\" />;\n\nclass BasicViewBase extends React.PureComponent<BasicViewProps, BasicViewState> {\n state = {\n timeTableElementsMeta: {},\n scrollingStrategy: {\n topBoundary: 0,\n bottomBoundary: 0,\n leftBoundary: 0,\n rightBoundary: 0,\n changeVerticalScroll: () => undefined,\n changeHorizontalScroll: () => undefined,\n },\n previousTimeTableCell: null,\n // The key has to be generated every time the TimeTableCell is updated to rerender TimeTable\n // and, consequently, update timeTableElementsMeta\n timeTableLayoutKey: 0,\n };\n\n static getDerivedStateFromProps(\n props: BasicViewProps, state: BasicViewState,\n ): BasicViewState | null {\n\n if (props.timeTableCellComponent !== state.previousTimeTableCell) {\n return {\n ...state,\n previousTimeTableCell: props.timeTableCellComponent,\n timeTableLayoutKey: Math.random(),\n };\n }\n return null;\n }\n\n scrollingStrategyComputed = memoize((viewName, scrollingStrategy) => getters =>\n computed(getters, viewName!, () => scrollingStrategy, getters.scrollingStrategy));\n\n timeTableElementsMetaComputed = memoize((viewName, timeTableElementsMeta) => getters =>\n computed(getters, viewName!, () => timeTableElementsMeta, getters.timeTableElementsMeta));\n\n intervalCountComputed = memoize((viewName, intervalCount) => getters =>\n computed(getters, viewName!, () => intervalCount, getters.intervalCount));\n\n cellDurationComputed = memoize((viewName, cellDuration) => getters =>\n computed(getters, viewName, () => cellDuration, getters.cellDuration));\n\n excludedDaysComputed = memoize((viewName, excludedDays) => getters => computed(\n getters, viewName!, () => excludedDays, getters.excludedDays,\n ));\n\n availableViewsComputed = memoize((viewName, viewDisplayName) => ({ availableViews }) =>\n availableViewsCore(availableViews, viewName!, viewDisplayName));\n\n currentViewComputed = memoize((viewName, viewDisplayName, type) => ({ currentView }) => (\n currentView && currentView.name !== viewName\n ? currentView\n : { name: viewName, type, displayName: viewDisplayName }\n ));\n\n endViewDateComputed: ComputedFn = (getters) => {\n const { name: viewName } = this.props;\n return computed(\n getters, viewName!, endViewDateBaseComputed, getters.endViewDate,\n );\n }\n\n startViewDateComputed: ComputedFn = (getters) => {\n const { name: viewName } = this.props;\n return computed(\n getters, viewName!, startViewDateBaseComputed, getters.startViewDate,\n );\n }\n\n viewCellsDataComputed = memoize((\n viewName, cellDuration, startDayHour, endDayHour, viewCellsDataBaseComputed,\n ) => getters => computed(\n getters,\n viewName,\n viewCellsDataBaseComputed(cellDuration, startDayHour, endDayHour),\n getters.viewCellsData,\n ));\n\n timeTableAppointmentsComputed = memoize((\n viewName, cellDuration, calculateAppointmentsIntervals,\n ) => getters => computed(\n getters,\n viewName,\n calculateAppointmentsIntervals(cellDuration),\n getters.timeTableAppointments,\n ));\n\n updateCellElementsMeta = memoize((cellElementsMeta) => {\n this.setState({ timeTableElementsMeta: cellElementsMeta });\n });\n\n setScrollingStrategy = (scrollingStrategy: ScrollingStrategy) => {\n this.setState({ scrollingStrategy });\n }\n\n render() {\n const {\n name: viewName,\n intervalCount,\n displayName,\n type,\n excludedDays,\n cellDuration,\n startDayHour,\n endDayHour,\n viewCellsDataComputed,\n calculateAppointmentsIntervals,\n dayScaleCellComponent,\n dayScaleRowComponent,\n dayScaleLayoutComponent: DayScale,\n timeTableCellComponent: TimeTableCell,\n timeTableLayoutComponent: TimeTableLayout,\n timeTableRowComponent,\n appointmentLayerComponent: AppointmentLayer,\n dayScaleEmptyCellComponent: DayScaleEmptyCell,\n layoutProps,\n layoutComponent: Layout,\n } = this.props;\n const { timeTableElementsMeta, scrollingStrategy, timeTableLayoutKey } = this.state;\n const viewDisplayName = displayName || viewName;\n\n return (\n <Plugin name=\"basicView\">\n <Getter\n name=\"availableViews\"\n computed={this.availableViewsComputed(viewName, viewDisplayName)}\n />\n <Getter\n name=\"currentView\"\n computed={this.currentViewComputed(viewName, viewDisplayName, type)}\n />\n <Getter\n name=\"intervalCount\"\n computed={this.intervalCountComputed(viewName, intervalCount)}\n />\n <Getter name=\"excludedDays\" computed={this.excludedDaysComputed(viewName, excludedDays)} />\n <Getter\n name=\"viewCellsData\"\n computed={this.viewCellsDataComputed(\n viewName, cellDuration, startDayHour, endDayHour, viewCellsDataComputed,\n )}\n />\n <Getter name=\"startViewDate\" computed={this.startViewDateComputed} />\n <Getter name=\"endViewDate\" computed={this.endViewDateComputed} />\n <Getter\n name=\"cellDuration\"\n computed={this.cellDurationComputed(viewName, cellDuration)}\n />\n\n <Getter\n name=\"timeTableElementsMeta\"\n computed={this.timeTableElementsMetaComputed(viewName, timeTableElementsMeta)}\n />\n <Getter\n name=\"scrollingStrategy\"\n computed={this.scrollingStrategyComputed(viewName, scrollingStrategy)}\n />\n\n <Getter\n name=\"timeTableAppointments\"\n computed={this.timeTableAppointmentsComputed(\n viewName, cellDuration, calculateAppointmentsIntervals,\n )}\n />\n\n <Template name=\"body\">\n { (params: any) =>\n <TemplateConnector>\n {({ currentView, groupOrientation, groups }) => {\n if (currentView.name !== viewName) return <TemplatePlaceholder />;\n const isVerticalGrouping = groupOrientation?.(viewName)\n === VERTICAL_GROUP_ORIENTATION;\n return (\n <Layout\n forwardedRef={params?.forwardedRef}\n dayScaleComponent={DayScalePlaceholder}\n timeTableComponent={TimeTablePlaceholder}\n setScrollingStrategy={this.setScrollingStrategy}\n groupingPanelComponent={\n isVerticalGrouping ? GroupingPanelPlaceholder : undefined\n }\n groupingPanelSize={isVerticalGrouping ? groups?.length : 0}\n dayScaleEmptyCellComponent={DayScaleEmptyCellPlaceholder}\n {...layoutProps}\n />\n );\n }}\n </TemplateConnector>\n }\n </Template>\n\n <Template name=\"dayScale\">\n <TemplateConnector>\n {({ currentView, viewCellsData, formatDate, groupByDate, groupOrientation }) => {\n if (currentView.name !== viewName) return <TemplatePlaceholder />;\n const groupByDateEnabled = groupByDate?.(viewName);\n const isHorizontalGrouping = groupOrientation?.(viewName)\n === HORIZONTAL_GROUP_ORIENTATION;\n return (\n <DayScale\n cellComponent={dayScaleCellComponent}\n rowComponent={dayScaleRowComponent}\n groupingPanelComponent={\n isHorizontalGrouping ? GroupingPanelPlaceholder : undefined\n }\n cellsData={viewCellsData}\n formatDate={formatDate}\n groupedByDate={groupByDateEnabled}\n />\n );\n }}\n </TemplateConnector>\n </Template>\n\n <Template name=\"cell\">\n {params => (\n <TemplateConnector>\n {({ currentView }) => {\n if (currentView.name !== viewName) return <TemplatePlaceholder params={params} />;\n return (\n <TimeTableCell {...params} />\n );\n }}\n </TemplateConnector>\n )}\n </Template>\n\n <Template name=\"timeTable\">\n {(params: any) => (\n <TemplateConnector>\n {({ formatDate, currentView, viewCellsData }) => {\n if (currentView.name !== viewName) return <TemplatePlaceholder />;\n return (\n <>\n <TimeTableLayout\n cellsData={viewCellsData}\n rowComponent={timeTableRowComponent}\n cellComponent={CellPlaceholder}\n formatDate={formatDate}\n setCellElementsMeta={this.updateCellElementsMeta}\n key={timeTableLayoutKey}\n {...params}\n />\n <AppointmentLayer>\n <TimeTableAppointmentLayer />\n </AppointmentLayer>\n </>\n );\n }}\n </TemplateConnector>\n )}\n </Template>\n\n <Template name=\"dayScaleEmptyCell\">\n <TemplateConnector>\n {({ currentView }) => {\n if (currentView.name !== viewName || !DayScaleEmptyCell) {\n return <TemplatePlaceholder />;\n }\n return (\n <DayScaleEmptyCell />\n );\n }}\n </TemplateConnector>\n </Template>\n </Plugin>\n );\n }\n}\nexport const BasicView: React.ComponentType<BasicViewProps> = BasicViewBase;\n","import * as React from 'react';\nimport {\n Template,\n Plugin,\n TemplateConnector,\n TemplatePlaceholder,\n Getter,\n} from '@devexpress/dx-react-core';\nimport {\n calculateWeekDateIntervals,\n getTimeTableHeight,\n timeCellsData as timeCellsDataCore,\n computed,\n} from '@devexpress/dx-scheduler-core';\nimport { BasicView } from './basic-view';\nimport { CommonVerticalViewProps } from '../types';\nimport { memoize } from '@devexpress/dx-core';\n\nconst calculateAppointmentsIntervalsBaseComputed = cellDuration => ({\n appointments, startViewDate, endViewDate, excludedDays,\n}) => calculateWeekDateIntervals(\n appointments, startViewDate, endViewDate, excludedDays, cellDuration,\n);\nconst timeCellsDataComputed = (startDayHour, endDayHour) => ({\n viewCellsData, cellDuration,\n}) => timeCellsDataCore(viewCellsData, startDayHour, endDayHour, cellDuration, Date.now());\n\nconst TimeScalePlaceholder = () => <TemplatePlaceholder name=\"timeScale\" />;\n\nclass VericalViewBase extends React.PureComponent<CommonVerticalViewProps> {\n timeCellsDataComputed = memoize((viewName, startDayHour, endDayHour) => getters => computed(\n getters,\n viewName,\n timeCellsDataComputed(startDayHour, endDayHour),\n getters.timeCellsData,\n ));\n\n render() {\n const {\n layoutComponent,\n dayScaleEmptyCellComponent,\n timeScaleLayoutComponent: TimeScale,\n timeScaleLabelComponent: TimeScaleLabel,\n timeScaleTickCellComponent,\n timeScaleTicksRowComponent,\n dayScaleLayoutComponent,\n dayScaleCellComponent,\n dayScaleRowComponent,\n timeTableLayoutComponent,\n timeTableRowComponent,\n timeTableCellComponent,\n cellDuration,\n excludedDays,\n name: viewName,\n appointmentLayerComponent,\n intervalCount,\n displayName,\n startDayHour,\n endDayHour,\n viewCellsDataComputed,\n type,\n } = this.props;\n\n return (\n <Plugin\n name=\"WeekView\"\n >\n <BasicView\n viewCellsDataComputed={viewCellsDataComputed}\n type={type}\n cellDuration={cellDuration}\n name={viewName}\n intervalCount={intervalCount}\n displayName={displayName}\n startDayHour={startDayHour}\n endDayHour={endDayHour}\n excludedDays={excludedDays}\n calculateAppointmentsIntervals={calculateAppointmentsIntervalsBaseComputed}\n dayScaleEmptyCellComponent={dayScaleEmptyCellComponent}\n dayScaleLayoutComponent={dayScaleLayoutComponent}\n dayScaleCellComponent={dayScaleCellComponent}\n dayScaleRowComponent={dayScaleRowComponent}\n timeTableCellComponent={timeTableCellComponent}\n timeTableLayoutComponent={timeTableLayoutComponent}\n timeTableRowComponent={timeTableRowComponent}\n appointmentLayerComponent={appointmentLayerComponent}\n layoutComponent={layoutComponent}\n layoutProps={{\n timeScaleComponent: TimeScalePlaceholder,\n }}\n />\n\n <Getter\n name=\"timeCellsData\"\n computed={this.timeCellsDataComputed(viewName, startDayHour, endDayHour)}\n />\n\n <Template name=\"timeScale\">\n {(params: any) => (\n <TemplateConnector>\n {({\n currentView, timeCellsData, groups, formatDate,\n groupOrientation: getGroupOrientation,\n timeTableElementsMeta,\n }) => {\n if (currentView.name !== viewName) return <TemplatePlaceholder />;\n const groupOrientation = getGroupOrientation?.(viewName);\n\n return (\n <TimeScale\n labelComponent={TimeScaleLabel}\n tickCellComponent={timeScaleTickCellComponent}\n rowComponent={timeScaleTicksRowComponent}\n cellsData={timeCellsData}\n formatDate={formatDate}\n groups={groups}\n groupOrientation={groupOrientation}\n height={getTimeTableHeight(timeTableElementsMeta)}\n {...params}\n />\n );\n }}\n </TemplateConnector>\n )}\n </Template>\n </Plugin>\n );\n }\n}\n\nexport const VerticalView: React.ComponentType<CommonVerticalViewProps> = VericalViewBase;\n","import * as React from 'react';\nimport {\n Plugin,\n PluginComponents,\n} from '@devexpress/dx-react-core';\nimport {\n viewCellsData as viewCellsDataCore,\n VIEW_TYPES,\n} from '@devexpress/dx-scheduler-core';\nimport { VerticalViewProps } from '../types';\nimport { VerticalView } from './vertical-view';\n\nconst viewCellsDataBaseComputed = (\n cellDuration, startDayHour, endDayHour,\n) => ({ currentDate, intervalCount }) => {\n return viewCellsDataCore(\n currentDate, undefined,\n intervalCount, [],\n startDayHour!, endDayHour!, cellDuration!,\n Date.now(),\n );\n};\n\nclass DayViewBase extends React.PureComponent<VerticalViewProps> {\n static defaultProps: Partial<VerticalViewProps> = {\n name: 'Day',\n startDayHour: 0,\n endDayHour: 24,\n cellDuration: 30,\n intervalCount: 1,\n };\n\n static components: PluginComponents = {\n layoutComponent: 'Layout',\n layoutContainer: 'LayoutContainer',\n appointmentLayerComponent: 'AppointmentLayer',\n dayScaleEmptyCellComponent: 'DayScaleEmptyCell',\n timeScaleLayoutComponent: 'TimeScaleLayout',\n timeScaleLabelComponent: 'TimeScaleLabel',\n timeScaleTickCellComponent: 'TimeScaleTickCell',\n timeScaleTicksRowComponent: 'TimeScaleTicksRow',\n dayScaleLayoutComponent: 'DayScaleLayout',\n dayScaleCellComponent: 'DayScaleCell',\n dayScaleRowComponent: 'DayScaleRow',\n timeTableContainerComponent: 'TimeTableContainer',\n timeTableLayoutComponent: 'TimeTableLayout',\n timeTableCellComponent: 'TimeTableCell',\n timeTableRowComponent: 'TimeTableRow',\n };\n\n render() {\n const {\n layoutComponent,\n dayScaleEmptyCellComponent: DayScaleEmptyCell,\n timeScaleLayoutComponent,\n timeScaleLabelComponent,\n timeScaleTickCellComponent,\n timeScaleTicksRowComponent,\n dayScaleLayoutComponent,\n dayScaleCellComponent,\n dayScaleRowComponent,\n timeTableLayoutComponent,\n timeTableRowComponent,\n timeTableCellComponent,\n appointmentLayerComponent,\n cellDuration,\n name: viewName,\n intervalCount,\n displayName,\n startDayHour,\n endDayHour,\n } = this.props;\n\n return (\n <Plugin\n name=\"DayView\"\n >\n <VerticalView\n viewCellsDataComputed={viewCellsDataBaseComputed}\n type={VIEW_TYPES.DAY}\n cellDuration={cellDuration}\n name={viewName}\n intervalCount={intervalCount}\n displayName={displayName}\n startDayHour={startDayHour}\n endDayHour={endDayHour}\n dayScaleEmptyCellComponent={DayScaleEmptyCell}\n dayScaleLayoutComponent={dayScaleLayoutComponent}\n dayScaleCellComponent={dayScaleCellComponent}\n dayScaleRowComponent={dayScaleRowComponent}\n timeTableCellComponent={timeTableCellComponent}\n timeTableLayoutComponent={timeTableLayoutComponent}\n timeTableRowComponent={timeTableRowComponent}\n appointmentLayerComponent={appointmentLayerComponent}\n layoutComponent={layoutComponent}\n timeScaleLayoutComponent={timeScaleLayoutComponent}\n timeScaleLabelComponent={timeScaleLabelComponent}\n timeScaleTickCellComponent={timeScaleTickCellComponent}\n timeScaleTicksRowComponent={timeScaleTicksRowComponent}\n />\n </Plugin >\n );\n }\n}\n\n// tslint:disable-next-line: max-line-length\n/*** A plugin that renders Scheduler data for a day. This plugin arranges appointments from top to bottom.\n * If their time intervals overlap, their width is decreased and they are placed next to each other.\n * */\nexport const DayView: React.ComponentType<VerticalViewProps> = DayViewBase;\n","import * as React from 'react';\nimport {\n Plugin,\n PluginComponents,\n} from '@devexpress/dx-react-core';\nimport {\n viewCellsData as viewCellsDataCore,\n VIEW_TYPES,\n} from '@devexpress/dx-scheduler-core';\nimport { WeekViewProps } from '../types';\nimport { VerticalView } from './vertical-view';\n\nconst DAYS_IN_WEEK = 7;\nconst viewCellsDataBaseComputed = (\n cellDuration, startDayHour, endDayHour,\n) => ({ firstDayOfWeek, intervalCount, excludedDays, currentDate }) => {\n return viewCellsDataCore(\n currentDate, firstDayOfWeek,\n intervalCount! * DAYS_IN_WEEK, excludedDays!,\n startDayHour!, endDayHour!, cellDuration!,\n Date.now(),\n );\n};\n\nclass WeekViewBase extends React.PureComponent<WeekViewProps> {\n static defaultProps: Partial<WeekViewProps> = {\n startDayHour: 0,\n endDayHour: 24,\n cellDuration: 30,\n intervalCount: 1,\n excludedDays: [],\n name: 'Week',\n };\n\n static components: PluginComponents = {\n layoutComponent: 'Layout',\n layoutContainerComponent: 'LayoutContainer',\n appointmentLayerComponent: 'AppointmentLayer',\n dayScaleEmptyCellComponent: 'DayScaleEmptyCell',\n timeScaleLayoutComponent: 'TimeScaleLayout',\n timeScaleLabelComponent: 'TimeScaleLabel',\n timeScaleTickCellComponent: 'TimeScaleTickCell',\n timeScaleTicksRowComponent: 'TimeScaleTicksRow',\n dayScaleLayoutComponent: 'DayScaleLayout',\n dayScaleCellComponent: 'DayScaleCell',\n dayScaleRowComponent: 'DayScaleRow',\n timeTableContainerComponent: 'TimeTableContainer',\n timeTableLayoutComponent: 'TimeTableLayout',\n timeTableCellComponent: 'TimeTableCell',\n timeTableRowComponent: 'TimeTableRow',\n };\n\n render() {\n const {\n layoutComponent,\n dayScaleEmptyCellComponent,\n timeScaleLayoutComponent,\n timeScaleLabelComponent,\n timeScaleTickCellComponent,\n timeScaleTicksRowComponent,\n dayScaleLayoutComponent,\n dayScaleCellComponent,\n dayScaleRowComponent,\n timeTableLayoutComponent,\n timeTableRowComponent,\n timeTableCellComponent,\n cellDuration,\n excludedDays,\n name: viewName,\n appointmentLayerComponent,\n intervalCount,\n displayName,\n startDayHour,\n endDayHour,\n } = this.props;\n\n return (\n <Plugin\n name=\"WeekView\"\n >\n <VerticalView\n viewCellsDataComputed={viewCellsDataBaseComputed}\n type={VIEW_TYPES.WEEK}\n cellDuration={cellDuration}\n name={viewName}\n intervalCount={intervalCount}\n displayName={displayName}\n startDayHour={startDayHour}\n endDayHour={endDayHour}\n excludedDays={excludedDays}\n dayScaleEmptyCellComponent={dayScaleEmptyCellComponent}\n dayScaleLayoutComponent={dayScaleLayoutComponent}\n dayScaleCellComponent={dayScaleCellComponent}\n dayScaleRowComponent={dayScaleRowComponent}\n timeTableCellComponent={timeTableCellComponent}\n timeTableLayoutComponent={timeTableLayoutComponent}\n timeTableRowComponent={timeTableRowComponent}\n appointmentLayerComponent={appointmentLayerComponent}\n layoutComponent={layoutComponent}\n timeScaleLayoutComponent={timeScaleLayoutComponent}\n timeScaleLabelComponent={timeScaleLabelComponent}\n timeScaleTickCellComponent={timeScaleTickCellComponent}\n timeScaleTicksRowComponent={timeScaleTicksRowComponent}\n />\n </Plugin>\n );\n }\n}\n\n// tslint:disable: max-line-length\n/***\n * A plugin that renders the Scheduler's week view. This plugin arranges appointments from top to bottom.\n * If their time intervals overlap, their width is decreased and they are placed next to each other.\n * */\nexport const WeekView: React.ComponentType<WeekViewProps> = WeekViewBase;\n","import * as React from 'react';\nimport { Plugin, PluginComponents } from '@devexpress/dx-react-core';\nimport { monthCellsData, calculateMonthDateIntervals, VIEW_TYPES } from '@devexpress/dx-scheduler-core';\nimport { BasicView } from './basic-view';\nimport { MonthViewProps } from '../types';\n\nconst viewCellsDataBaseComputed = (\n cellDuration, startDayHour, endDayHour,\n) => ({ currentDate, firstDayOfWeek, intervalCount }) => monthCellsData(\n currentDate, firstDayOfWeek, intervalCount!, Date.now(),\n);\nconst calculateAppointmentsIntervalsBaseComputed = cellDuration => ({\n appointments, startViewDate, endViewDate, excludedDays,\n}) => calculateMonthDateIntervals(\n appointments, startViewDate, endViewDate,\n);\n\nclass MonthViewBase extends React.PureComponent<MonthViewProps> {\n static defaultProps: Partial<MonthViewProps> = {\n intervalCount: 1,\n name: 'Month',\n };\n\n static components: PluginComponents = {\n layoutComponent: 'Layout',\n appointmentLayerComponent: 'AppointmentLayer',\n dayScaleEmptyCellComponent: 'DayScaleEmptyCell',\n dayScaleLayoutComponent: 'DayScaleLayout',\n dayScaleCellComponent: 'DayScaleCell',\n dayScaleRowComponent: 'DayScaleRow',\n timeTableContainerComponent: 'TimeTableContainer',\n timeTableLayoutComponent: 'TimeTableLayout',\n timeTableCellComponent: 'TimeTableCell',\n timeTableRowComponent: 'TimeTableRow',\n };\n\n render() {\n const {\n layoutComponent,\n dayScaleEmptyCellComponent,\n dayScaleLayoutComponent,\n dayScaleCellComponent,\n dayScaleRowComponent,\n timeTableLayoutComponent,\n timeTableRowComponent,\n timeTableCellComponent,\n appointmentLayerComponent,\n name: viewName,\n intervalCount,\n displayName,\n } = this.props;\n\n return (\n <Plugin\n name=\"MonthView\"\n >\n <BasicView\n viewCellsDataComputed={viewCellsDataBaseComputed}\n type={VIEW_TYPES.MONTH}\n name={viewName}\n intervalCount={intervalCount}\n displayName={displayName}\n calculateAppointmentsIntervals={calculateAppointmentsIntervalsBaseComputed}\n dayScaleEmptyCellComponent={dayScaleEmptyCellComponent}\n dayScaleLayoutComponent={dayScaleLayoutComponent}\n dayScaleCellComponent={dayScaleCellComponent}\n dayScaleRowComponent={dayScaleRowComponent}\n timeTableCellComponent={timeTableCellComponent}\n timeTableLayoutComponent={timeTableLayoutComponent}\n timeTableRowComponent={timeTableRowComponent}\n appointmentLayerComponent={appointmentLayerComponent}\n layoutComponent={layoutComponent}\n />\n </Plugin>\n );\n }\n}\n\n// tslint:disable: max-line-length\n/***\n * A plugin that renders Scheduler data for a month. This plugin arranges appointments from left to right.\n * An appointment's size depends on its duration in days.\n * However, it occupies the entire day cell if an appointment lasts only for several hours or minutes.\n * The time scale and all-day panel are not available in this view.\n * */\nexport const MonthView: React.ComponentType<MonthViewProps> = MonthViewBase;\n","import * as React from 'react';\nimport {\n Template,\n Plugin,\n TemplatePlaceholder,\n PluginComponents,\n} from '@devexpress/dx-react-core';\nimport { ToolbarProps } from '../types';\n\nclass ToolbarBase extends React.PureComponent<ToolbarProps> {\n static components: PluginComponents = {\n rootComponent: 'Root',\n flexibleSpaceComponent: 'FlexibleSpace',\n };\n render() {\n const {\n rootComponent: Root,\n flexibleSpaceComponent: FlexibleSpaceComponent,\n } = this.props;\n return (\n <Plugin\n name=\"Toolbar\"\n >\n <Template name=\"header\">\n <Root>\n <TemplatePlaceholder name=\"toolbarContent\" />\n </Root>\n <TemplatePlaceholder />\n </Template>\n <Template name=\"toolbarContent\">\n <FlexibleSpaceComponent />\n </Template>\n </Plugin>\n );\n }\n}\n\n/** A plugin that renders the Scheduler's toolbar. */\nexport const Toolbar: React.ComponentType<ToolbarProps> = ToolbarBase;\n","import * as React from 'react';\nimport {\n Plugin,\n Template,\n TemplatePlaceholder,\n TemplateConnector,\n PluginComponents,\n} from '@devexpress/dx-react-core';\nimport {\n monthCellsData,\n viewBoundText,\n} from '@devexpress/dx-scheduler-core';\nimport { memoize } from '@devexpress/dx-core';\n\nimport { DateNavigatorProps, DateNavigatorState } from '../types';\n\nconst pluginDependencies = [\n { name: 'Toolbar' },\n { name: 'ViewState' },\n];\n\nconst navigate = (action, currentView, intervalCount) => (direction, nextDate) => action({\n direction,\n nextDate,\n amount: intervalCount,\n step: currentView.type,\n});\n\nclass DateNavigatorBase extends React.PureComponent<DateNavigatorProps, DateNavigatorState> {\n target!: React.ReactInstance;\n\n state = {\n visible: false,\n };\n static components: PluginComponents = {\n rootComponent: 'Root',\n overlayComponent: 'Overlay',\n openButtonComponent: 'OpenButton',\n navigationButtonComponent: 'NavigationButton',\n calendarComponent: 'Calendar',\n calendarRowComponent: 'CalendarRow',\n calendarCellComponent: 'CalendarCell',\n calendarHeaderRowComponent: 'CalendarHeaderRow',\n calendarHeaderCellComponent: 'CalendarHeaderCell',\n calendarTextComponent: 'CalendarText',\n calendarNavigatorComponent: 'CalendarNavigator',\n calendarNavigationButtonComponent: 'CalendarNavigationButton',\n };\n\n setRootRef = (target: React.ReactInstance) => {\n this.target = target;\n }\n\n handleVisibilityToggle = () => {\n this.setState(prevState => ({ visible: !prevState.visible }));\n }\n\n handleHide = () => {\n this.setState({ visible: false });\n }\n\n navigateAction = memoize((changeCurrentDate, currentView, intervalCount, navigateAction) =>\n navigateAction(changeCurrentDate, currentView, intervalCount));\n\n render() {\n const {\n rootComponent: Root,\n overlayComponent: Overlay,\n openButtonComponent: OpenButton,\n navigationButtonComponent: NavigationButton,\n calendarComponent: Calendar,\n calendarRowComponent: CalendarRow,\n calendarCellComponent: CalendarCell,\n calendarHeaderRowComponent: CalendarHeaderRow,\n calendarHeaderCellComponent: CalendarHeaderCell,\n calendarTextComponent: CalendarText,\n calendarNavigationButtonComponent: CalendarNavigationButton,\n calendarNavigatorComponent: CalendarNavigator,\n } = this.props;\n\n const { visible } = this.state;\n return (\n <Plugin\n name=\"DateNavigator\"\n dependencies={pluginDependencies}\n >\n <Template name=\"toolbarContent\">\n <TemplateConnector>\n {({\n currentDate,\n startViewDate,\n endViewDate,\n firstDayOfWeek,\n currentView,\n intervalCount,\n formatDate,\n }, {\n changeCurrentDate,\n }) => {\n const navigateAction = this.navigateAction(\n changeCurrentDate, currentView, intervalCount, navigate,\n );\n const calendarDateChanged = (nextDate) => {\n navigateAction(undefined, nextDate);\n this.handleHide();\n };\n const navigatorText = viewBoundText(\n startViewDate,\n endViewDate,\n currentView.type,\n currentDate,\n intervalCount,\n formatDate,\n );\n return (\n <React.Fragment>\n <Root\n navigationButtonComponent={NavigationButton}\n openButtonComponent={OpenButton}\n navigatorText={navigatorText}\n rootRef={this.setRootRef}\n onVisibilityToggle={this.handleVisibilityToggle}\n onNavigate={navigateAction}\n />\n <Overlay\n visible={visible}\n target={this.target}\n onHide={this.handleHide}\n >\n <Calendar\n selectedDate={currentDate}\n firstDayOfWeek={firstDayOfWeek}\n getCells={monthCellsData}\n textComponent={CalendarText}\n navigationButtonComponent={CalendarNavigationButton}\n rowComponent={CalendarRow}\n cellComponent={CalendarCell}\n headerRowComponent={CalendarHeaderRow}\n headerCellComponent={CalendarHeaderCell}\n navigatorComponent={CalendarNavigator}\n onSelectedDateChange={calendarDateChanged}\n formatDate={formatDate}\n />\n </Overlay>\n </React.Fragment>\n );\n }}\n </TemplateConnector>\n <TemplatePlaceholder />\n </Template>\n </Plugin>\n );\n }\n}\n\n/** A plugin that renders the Scheduler’s date navigator. */\nexport const DateNavigator: React.ComponentType<DateNavigatorProps> = DateNavigatorBase;\n","import * as React from 'react';\nimport {\n Plugin,\n Template,\n TemplatePlaceholder,\n TemplateConnector,\n PluginComponents,\n} from '@devexpress/dx-react-core';\nimport { ViewSwitcherProps } from '../types/view-switcher';\n\nconst pluginDependencies = [\n { name: 'Toolbar' },\n { name: 'ViewState' },\n];\n\nclass ViewSwitcherBase extends React.PureComponent<ViewSwitcherProps> {\n static components: PluginComponents = {\n switcherComponent: 'Switcher',\n };\n\n render() {\n const { switcherComponent: Switcher } = this.props;\n\n return (\n <Plugin\n name=\"ViewSwitcher\"\n dependencies={pluginDependencies}\n >\n <Template name=\"toolbarContent\">\n <TemplatePlaceholder />\n <TemplateConnector>\n {({\n currentView,\n availableViews,\n }, {\n setCurrentViewName,\n }) => (\n <Switcher\n currentView={currentView}\n availableViews={availableViews}\n onChange={setCurrentViewName}\n />\n )}\n </TemplateConnector>\n </Template>\n </Plugin>\n );\n }\n}\n\n/** A plugin that renders the Scheduler's view switcher. */\nexport const ViewSwitcher: React.ComponentType<ViewSwitcherProps> = ViewSwitcherBase;\n","import * as React from 'react';\nimport {\n Plugin, Template, TemplatePlaceholder, TemplateConnector, PluginComponents,\n} from '@devexpress/dx-react-core';\nimport { createClickHandlers, memoize } from '@devexpress/dx-core';\nimport {\n POSITION_START, POSITION_END, VERTICAL_TYPE,\n getVerticalRectByAppointmentData, calculateRectByDateAndGroupIntervals,\n getAppointmentStyle, HORIZONTAL_TYPE, getHorizontalRectByAppointmentData,\n isAllDayElementsMetaActual, isTimeTableElementsMetaActual,\n HORIZONTAL_GROUP_ORIENTATION, VIEW_TYPES, getGroupsLastRow, Rect,\n} from '@devexpress/dx-scheduler-core';\n\nimport { AppointmentsProps } from '../types';\n\nconst AppointmentPlaceholder = params => <TemplatePlaceholder name=\"appointment\" params={params} />;\n\nconst renderAppointments = rects => rects.map(({\n dataItem, type: rectType, fromPrev, toNext,\n durationType, resources, key, ...geometry\n}) => (\n <AppointmentPlaceholder\n key={key}\n type={rectType}\n data={dataItem}\n fromPrev={fromPrev}\n toNext={toNext}\n durationType={durationType}\n resources={resources}\n style={getAppointmentStyle(geometry as Rect)}\n />\n));\n\nconst pluginDependencies = [\n { name: 'DayView', optional: true },\n { name: 'WeekView', optional: true },\n { name: 'MonthView', optional: true },\n];\n\nclass AppointmentsBase extends React.PureComponent<AppointmentsProps> {\n static components: PluginComponents = {\n splitIndicatorComponent: 'SplitIndicator',\n containerComponent: 'Container',\n appointmentComponent: 'Appointment',\n appointmentContentComponent: 'AppointmentContent',\n recurringIconComponent: 'RecurringIcon',\n };\n static defaultProps: Partial<AppointmentsProps> = {\n placeAppointmentsNextToEachOther: false,\n };\n\n updateTimeTableAppointments = memoize((\n timeTableAppointments, viewCellsData, timeTableElementsMeta, currentView,\n startViewDate, endViewDate, cellDuration, groups, getGroupOrientation, groupByDate,\n placeAppointmentsNextToEachOther,\n ) => {\n if (!isTimeTableElementsMetaActual(viewCellsData, timeTableElementsMeta)) return null;\n\n const groupOrientation = getGroupOrientation\n ? getGroupOrientation(currentView?.name)\n : HORIZONTAL_GROUP_ORIENTATION;\n const groupCount = groups ? getGroupsLastRow(groups).length : 1;\n\n let appointmentType = { growDirection: VERTICAL_TYPE, multiline: false };\n let getRects = getVerticalRectByAppointmentData as any;\n if (currentView.type === VIEW_TYPES.MONTH) {\n appointmentType = { growDirection: HORIZONTAL_TYPE, multiline: true };\n getRects = getHorizontalRectByAppointmentData;\n }\n\n return renderAppointments(calculateRectByDateAndGroupIntervals(\n appointmentType, timeTableAppointments, getRects,\n {\n startViewDate, endViewDate, cellDuration,\n viewCellsData, cellElementsMeta: timeTableElementsMeta,\n placeAppointmentsNextToEachOther,\n },\n {\n groupOrientation,\n groupedByDate: groupByDate?.(currentView?.name),\n groupCount,\n },\n ));\n });\n\n updateAllDayAppointments = memoize((\n allDayAppointments, viewCellsData, allDayElementsMeta, currentView,\n startViewDate, endViewDate, groups, getGroupOrientation, groupByDate,\n ) => {\n const groupOrientation = getGroupOrientation\n ? getGroupOrientation(currentView?.name)\n : HORIZONTAL_GROUP_ORIENTATION;\n const groupCount = groups ? getGroupsLastRow(groups).length : 1;\n\n if (!isAllDayElementsMetaActual(\n viewCellsData, allDayElementsMeta, groupOrientation, groupCount,\n )) {\n return null;\n }\n\n return renderAppointments(calculateRectByDateAndGroupIntervals(\n { growDirection: HORIZONTAL_TYPE, multiline: false },\n allDayAppointments,\n getHorizontalRectByAppointmentData,\n {\n startViewDate, endViewDate,\n viewCellsData, cellElementsMeta: allDayElementsMeta,\n },\n {\n groupOrientation,\n groupedByDate: groupByDate?.(currentView?.name),\n groupCount,\n },\n ));\n });\n\n render() {\n const {\n splitIndicatorComponent: SplitIndicator,\n appointmentComponent: Appointment,\n appointmentContentComponent: AppointmentContent,\n containerComponent: Container,\n recurringIconComponent,\n placeAppointmentsNextToEachOther,\n } = this.props;\n\n return (\n <Plugin\n name=\"Appointments\"\n dependencies={pluginDependencies}\n >\n <Template\n name=\"timeTableAppointmentLayer\"\n >\n <TemplateConnector>\n {({\n timeTableAppointments, viewCellsData, timeTableElementsMeta, currentView,\n startViewDate, endViewDate, cellDuration, groupOrientation, groups, groupByDate,\n }) => this.updateTimeTableAppointments(\n timeTableAppointments, viewCellsData, timeTableElementsMeta, currentView,\n startViewDate, endViewDate, cellDuration, groups, groupOrientation, groupByDate,\n placeAppointmentsNextToEachOther,\n )}\n </TemplateConnector>\n </Template>\n <Template\n name=\"allDayAppointmentLayer\"\n >\n <TemplateConnector>\n {({\n allDayAppointments, viewCellsData, allDayElementsMeta,\n startViewDate, endViewDate, groupOrientation, currentView, groups, groupByDate,\n }) => this.updateAllDayAppointments(\n allDayAppointments, viewCellsData, allDayElementsMeta, currentView,\n startViewDate, endViewDate, groups, groupOrientation, groupByDate,\n )}\n </TemplateConnector>\n </Template>\n <Template\n name=\"appointment\"\n >\n {({ style, ...params }: any) => (\n <TemplateConnector>\n {({ formatDate }) => (\n <Container style={style}>\n <TemplatePlaceholder\n name=\"appointmentTop\"\n params={{ data: params.data, type: params.type, slice: params.fromPrev }}\n />\n <TemplatePlaceholder\n name=\"appointmentContent\"\n params={{ ...params, formatDate }}\n />\n <TemplatePlaceholder\n name=\"appointmentBottom\"\n params={{ data: params.data, type: params.type, slice: params.toNext }}\n />\n </Container>\n )}\n </TemplateConnector>\n )}\n </Template>\n\n <Template name=\"appointmentContent\">\n {({\n onClick, onDoubleClick, formatDate,\n data, type, fromPrev, toNext,\n durationType, resources, forwardedRef,\n ...restParams\n }: any) => (\n <Appointment\n forwardedRef={forwardedRef}\n data={data}\n resources={resources}\n {...createClickHandlers(onClick, onDoubleClick)}\n {...restParams}\n >\n {fromPrev && <SplitIndicator position={POSITION_START} appointmentType={type} />}\n <AppointmentContent\n data={data}\n type={type}\n durationType={durationType}\n recurringIconComponent={recurringIconComponent}\n formatDate={formatDate}\n resources={resources}\n />\n {toNext && <SplitIndicator position={POSITION_END} appointmentType={type} />}\n </Appointment>\n )}\n </Template>\n </Plugin>\n );\n }\n}\n\n/** A plugin that renders appointments. */\nexport const Appointments: React.ComponentType<AppointmentsProps> = AppointmentsBase;\n","import * as React from 'react';\nimport { getMessagesFormatter, memoize } from '@devexpress/dx-core';\nimport {\n Getter,\n Plugin,\n Template,\n TemplatePlaceholder,\n TemplateConnector,\n PluginComponents,\n} from '@devexpress/dx-react-core';\nimport {\n allDayCells, calculateAllDayDateIntervals,\n VERTICAL_GROUP_ORIENTATION, VIEW_TYPES,\n} from '@devexpress/dx-scheduler-core';\nimport moment from 'moment';\n\nimport { AllDayPanelProps, AllDayPanelState } from '../types';\n\nconst isMonthView = currentView => currentView.type === VIEW_TYPES.MONTH;\nconst isVerticalGrouping = (\n currentView, groupOrientation,\n) => groupOrientation?.(currentView.name) === VERTICAL_GROUP_ORIENTATION;\n\nconst pluginDependencies = [\n { name: 'DayView', optional: true },\n { name: 'WeekView', optional: true },\n];\nconst defaultMessages = {\n allDay: 'All Day',\n};\nconst AllDayAppointmentLayerPlaceholder = () =>\n <TemplatePlaceholder name=\"allDayAppointmentLayer\" />;\nconst AllDayPanelPlaceholder = params => <TemplatePlaceholder name=\"allDayPanel\" params={params} />;\nconst CellPlaceholder = params => <TemplatePlaceholder name=\"allDayPanelCell\" params={params} />;\nconst AllDayTitlePlaceholder = params => <TemplatePlaceholder name=\"allDayTitle\" params={params} />;\n\nclass AllDayPanelBase extends React.PureComponent<AllDayPanelProps, AllDayPanelState> {\n state: AllDayPanelState = {\n elementsMeta: {},\n previousCell: null,\n // The key has to be generated every time the Cell component is updated to rerender the Layout\n // and, consequently, update allDayElementsMeta\n layoutKey: 0,\n };\n static defaultProps: Partial<AllDayPanelProps> = {\n messages: {},\n };\n static components: PluginComponents = {\n appointmentLayerComponent: 'AppointmentLayer',\n layoutComponent: 'Layout',\n layoutContainerComponent: 'LayoutContainer',\n cellComponent: 'Cell',\n rowComponent: 'Row',\n titleCellComponent: 'TitleCell',\n containerComponent: 'Container',\n };\n\n static getDerivedStateFromProps(\n props: AllDayPanelProps, state: AllDayPanelState,\n ): AllDayPanelState | null {\n if (props.cellComponent !== state.previousCell) {\n return {\n ...state,\n previousCell: props.cellComponent,\n layoutKey: Math.random(),\n };\n }\n return null;\n }\n\n allDayCellsDataComputed = memoize(({ viewCellsData }) => allDayCells(viewCellsData));\n\n updateCellElementsMeta = memoize((cellElementsMeta) => {\n this.setState({ elementsMeta: cellElementsMeta });\n });\n\n allDayAppointmentsComputed = memoize(({\n appointments, startViewDate, endViewDate, excludedDays,\n }) => {\n const allDayLeftBound = moment(startViewDate).hours(0).minutes(0).toDate();\n const allDayRightBound = moment(endViewDate).hours(23).minutes(59).toDate();\n return calculateAllDayDateIntervals(\n appointments, allDayLeftBound, allDayRightBound, excludedDays,\n );\n });\n\n allDayPanelExistsComputed = memoize(({\n currentView,\n }) => !isMonthView(currentView));\n\n getMessageFormatter = memoize((messages, allDayPanelDefaultMessages) =>\n getMessagesFormatter({ ...allDayPanelDefaultMessages, ...messages }));\n\n render() {\n const {\n appointmentLayerComponent: AppointmentLayer,\n layoutComponent: Layout,\n cellComponent: Cell,\n rowComponent,\n titleCellComponent: TitleCell,\n containerComponent: Container,\n messages,\n } = this.props;\n const { elementsMeta, layoutKey } = this.state;\n const getMessage = this.getMessageFormatter(messages, defaultMessages);\n\n return (\n <Plugin\n name=\"AllDayPanel\"\n dependencies={pluginDependencies}\n >\n <Getter name=\"allDayElementsMeta\" value={elementsMeta} />\n <Getter name=\"allDayCellsData\" computed={this.allDayCellsDataComputed} />\n <Getter name=\"allDayPanelExists\" computed={this.allDayPanelExistsComputed} />\n <Getter\n name=\"allDayAppointments\"\n computed={this.allDayAppointmentsComputed}\n />\n\n <Template name=\"timeTable\">\n {(params: any) => (\n <TemplateConnector>\n {({ currentView, groupOrientation, allDayCellsData }) => {\n if (isMonthView(currentView)\n || !isVerticalGrouping(currentView, groupOrientation)) {\n return <TemplatePlaceholder params={...params} />;\n }\n return (\n <>\n <TemplatePlaceholder\n params={{\n ...params,\n allDayCellComponent: CellPlaceholder,\n allDayRowComponent: rowComponent,\n allDayCellsData,\n }}\n />\n <AppointmentLayer>\n <AllDayAppointmentLayerPlaceholder />\n </AppointmentLayer>\n </>\n );\n }}\n </TemplateConnector>\n )}\n </Template>\n\n <Template name=\"dayScaleEmptyCell\">\n <TemplateConnector>\n {({ currentView, groupOrientation }) => {\n if (isMonthView(currentView) || isVerticalGrouping(currentView, groupOrientation)) {\n return <TemplatePlaceholder />;\n }\n\n return (\n <AllDayTitlePlaceholder />\n );\n }}\n </TemplateConnector>\n </Template>\n\n <Template name=\"timeScale\">\n {(params: any) => (\n <TemplateConnector>\n {({ currentView, groupOrientation }) => {\n if (isMonthView(currentView)\n || !isVerticalGrouping(currentView, groupOrientation)) {\n return <TemplatePlaceholder params={...params} />;\n }\n\n return (\n <TemplatePlaceholder\n params={{\n ...params,\n allDayTitleComponent: AllDayTitlePlaceholder,\n showAllDayTitle: true,\n }}\n />\n );\n }}\n </TemplateConnector>\n )}\n </Template>\n\n <Template name=\"dayScale\">\n <TemplatePlaceholder />\n <TemplateConnector>\n {({ currentView, groupOrientation }) => {\n if (isMonthView(currentView) || isVerticalGrouping(currentView, groupOrientation)) {\n return null;\n }\n\n return (\n <Container>\n <AllDayPanelPlaceholder />\n </Container>\n );\n }}\n </TemplateConnector>\n </Template>\n\n <Template name=\"allDayPanel\">\n <TemplatePlaceholder />\n <TemplateConnector>\n {({\n currentView, formatDate, allDayCellsData,\n }) => {\n if (currentView.type === VIEW_TYPES.MONTH) return null;\n\n return (\n <React.Fragment>\n <Layout\n cellComponent={CellPlaceholder}\n rowComponent={rowComponent}\n cellsData={allDayCellsData[0]}\n setCellElementsMeta={this.updateCellElementsMeta}\n formatDate={formatDate}\n key={layoutKey}\n />\n <AppointmentLayer>\n <AllDayAppointmentLayerPlaceholder />\n </AppointmentLayer>\n </React.Fragment>\n );\n }}\n </TemplateConnector>\n </Template>\n\n <Template name=\"allDayTitle\">\n {(params: any) => <TitleCell getMessage={getMessage} {...params}/>}\n </Template>\n <Template name=\"allDayPanelCell\">\n {(params: any) => <Cell {...params} />}\n </Template>\n </Plugin>\n );\n }\n}\n\n/** A plugin that renders the All Day Panel. */\nexport const AllDayPanel: React.ComponentType<AllDayPanelProps> = AllDayPanelBase;\n","import * as React from 'react';\nimport {\n Getter,\n Action,\n Plugin,\n createStateHelper,\n StateHelper,\n ActionFn,\n} from '@devexpress/dx-react-core';\nimport {\n changeCurrentDate,\n setCurrentViewName,\n ChangeCurrentDatePayload,\n} from '@devexpress/dx-scheduler-core';\nimport { ViewStateProps, ViewStateState } from '../types';\nimport { memoize } from '@devexpress/dx-core';\n\nclass ViewStateBase extends React.PureComponent<ViewStateProps, ViewStateState> {\n changeCurrentDate: ActionFn<ChangeCurrentDatePayload>;\n setCurrentViewName: ActionFn<string>;\n\n static defaultProps: Partial<ViewStateProps> = {\n defaultCurrentDate: new Date(),\n };\n\n constructor(props) {\n super(props);\n\n this.state = {\n currentDate: props.currentDate || props.defaultCurrentDate,\n currentViewName: props.currentViewName || props.defaultCurrentViewName,\n };\n\n const stateHelper: StateHelper = createStateHelper(\n this,\n {\n currentDate: () => {\n const { onCurrentDateChange } = this.props;\n return onCurrentDateChange;\n },\n currentViewName: () => {\n const { onCurrentViewNameChange } = this.props;\n return onCurrentViewNameChange;\n },\n },\n );\n\n this.changeCurrentDate = stateHelper.applyFieldReducer\n .bind(stateHelper, 'currentDate', changeCurrentDate);\n this.setCurrentViewName = stateHelper.applyFieldReducer\n .bind(stateHelper, 'currentViewName', setCurrentViewName);\n }\n\n static getDerivedStateFromProps(nextProps, prevState) {\n const {\n currentDate = prevState.currentDate,\n currentViewName = prevState.currentViewName,\n } = nextProps;\n\n return {\n currentDate,\n currentViewName,\n };\n }\n\n getCurrentViewComputed = memoize(currentViewName => () => (\n currentViewName\n ? { name: currentViewName }\n : undefined\n ));\n\n render() {\n const { currentDate, currentViewName: stateCurrentViewName } = this.state;\n return (\n <Plugin\n name=\"ViewState\"\n >\n <Getter name=\"currentDate\" value={currentDate} />\n <Getter name=\"currentView\" computed={this.getCurrentViewComputed(stateCurrentViewName)} />\n <Action name=\"changeCurrentDate\" action={this.changeCurrentDate} />\n <Action name=\"setCurrentViewName\" action={this.setCurrentViewName} />\n </Plugin>\n );\n }\n}\n\n/** A plugin that manages the view state. It specifies the current date and the displayed view. */\nexport const ViewState: React.ComponentType<ViewStateProps> = ViewStateBase;\n","import * as React from 'react';\nimport {\n Action, Plugin, Getter, createStateHelper, StateHelper, ComputedFn, ActionFn,\n} from '@devexpress/dx-react-core';\nimport {\n addAppointment,\n cancelAddedAppointment,\n startEditAppointment,\n stopEditAppointment,\n changeAppointment,\n cancelChanges,\n changedAppointmentById,\n RECURRENCE_EDIT_SCOPE,\n preCommitChanges as preCommitChangesBase,\n} from '@devexpress/dx-scheduler-core';\nimport { EditingStateProps, EditingStateState } from '../types';\n\nclass EditingStateBase extends React.PureComponent<EditingStateProps, EditingStateState> {\n startEditAppointment: ComputedFn;\n stopEditAppointment: (payload?: any) => void;\n changeAppointment: ComputedFn;\n cancelChangedAppointment: (payload?: any) => void;\n commitChangedAppointment: ActionFn<any>;\n addAppointment: ComputedFn;\n changeAddedAppointment: ComputedFn;\n cancelAddedAppointment: (payload?: any) => void;\n commitAddedAppointment: ComputedFn;\n commitDeletedAppointment: ActionFn<any>;\n\n static defaultProps: Partial<EditingStateProps> = {\n defaultEditingAppointment: undefined,\n defaultAppointmentChanges: {},\n defaultAddedAppointment: {},\n preCommitChanges: preCommitChangesBase,\n };\n\n constructor(props) {\n super(props);\n\n this.state = {\n editingAppointment: props.editingAppointment || props.defaultEditingAppointment,\n addedAppointment: props.addedAppointment || props.defaultAddedAppointment,\n appointmentChanges: props.appointmentChanges || props.defaultAppointmentChanges,\n };\n\n const stateHelper: StateHelper = createStateHelper(\n this,\n {\n editingAppointment: () => {\n const { onEditingAppointmentChange } = this.props;\n return onEditingAppointmentChange;\n },\n addedAppointment: () => {\n const { onAddedAppointmentChange } = this.props;\n return onAddedAppointmentChange;\n },\n appointmentChanges: () => {\n const { onAppointmentChangesChange } = this.props;\n return onAppointmentChangesChange;\n },\n },\n );\n\n this.addAppointment = stateHelper.applyFieldReducer\n .bind(stateHelper, 'addedAppointment', addAppointment);\n this.changeAddedAppointment = stateHelper.applyFieldReducer\n .bind(stateHelper, 'addedAppointment', changeAppointment);\n this.cancelAddedAppointment = stateHelper.applyFieldReducer\n .bind(stateHelper, 'addedAppointment', cancelAddedAppointment);\n\n this.startEditAppointment = stateHelper.applyFieldReducer\n .bind(stateHelper, 'editingAppointment', startEditAppointment);\n this.stopEditAppointment = stateHelper.applyFieldReducer\n .bind(stateHelper, 'editingAppointment', stopEditAppointment);\n\n this.changeAppointment = stateHelper.applyFieldReducer\n .bind(stateHelper, 'appointmentChanges', changeAppointment);\n this.cancelChangedAppointment = stateHelper.applyFieldReducer\n .bind(stateHelper, 'appointmentChanges', cancelChanges);\n\n this.commitChangedAppointment = (type = RECURRENCE_EDIT_SCOPE.CURRENT) => {\n const { appointmentChanges, editingAppointment } = this.state;\n const { onCommitChanges, preCommitChanges } = this.props;\n if (!editingAppointment) {\n return;\n }\n const changes = !editingAppointment.rRule\n ? { changed: changedAppointmentById(appointmentChanges, editingAppointment.id!) }\n : preCommitChanges!(appointmentChanges, editingAppointment, type);\n\n onCommitChanges(changes);\n this.cancelChangedAppointment();\n this.stopEditAppointment();\n };\n\n this.commitAddedAppointment = () => {\n const { onCommitChanges } = this.props;\n const { addedAppointment: stateAddedAppointment } = this.state;\n onCommitChanges({\n added: stateAddedAppointment,\n });\n };\n\n this.commitDeletedAppointment = ({ deletedAppointmentData, type = 'current' }) => {\n const { onCommitChanges, preCommitChanges } = this.props;\n\n const changes = deletedAppointmentData.rRule\n ? preCommitChanges!(null, deletedAppointmentData, type)\n : { deleted: deletedAppointmentData.id };\n onCommitChanges(changes);\n };\n }\n\n static getDerivedStateFromProps(nextProps, prevState) {\n const {\n editingAppointment = prevState.editingAppointment,\n appointmentChanges = prevState.appointmentChanges,\n addedAppointment = prevState.addedAppointment,\n } = nextProps;\n\n return {\n editingAppointment,\n appointmentChanges,\n addedAppointment,\n };\n }\n\n render() {\n const { addedAppointment, editingAppointment, appointmentChanges } = this.state;\n\n return (\n <Plugin\n name=\"EditingState\"\n >\n <Getter name=\"editingAppointment\" value={editingAppointment} />\n <Action name=\"startEditAppointment\" action={this.startEditAppointment} />\n <Action name=\"stopEditAppointment\" action={this.stopEditAppointment} />\n\n <Getter name=\"appointmentChanges\" value={appointmentChanges} />\n <Action name=\"changeAppointment\" action={this.changeAppointment} />\n <Action name=\"cancelChangedAppointment\" action={this.cancelChangedAppointment} />\n <Action name=\"commitChangedAppointment\" action={this.commitChangedAppointment} />\n\n <Getter name=\"addedAppointment\" value={addedAppointment} />\n <Action name=\"addAppointment\" action={this.addAppointment} />\n <Action name=\"changeAddedAppointment\" action={this.changeAddedAppointment} />\n <Action name=\"cancelAddedAppointment\" action={this.cancelAddedAppointment} />\n <Action name=\"commitAddedAppointment\" action={this.commitAddedAppointment} />\n\n <Action name=\"commitDeletedAppointment\" action={this.commitDeletedAppointment} />\n </Plugin>\n );\n }\n}\n\n/** A plugin that manages the scheduler appointment editing state. */\nexport const EditingState: React.ComponentType<EditingStateProps> = EditingStateBase;\n","import * as React from 'react';\nimport {\n Plugin,\n Template,\n TemplatePlaceholder,\n TemplateConnector,\n createStateHelper,\n StateHelper,\n PluginComponents,\n Action,\n} from '@devexpress/dx-react-core';\nimport {\n OPEN_COMMAND_BUTTON,\n CLOSE_COMMAND_BUTTON,\n DELETE_COMMAND_BUTTON,\n setAppointmentMeta,\n AppointmentMeta,\n TOGGLE_APPOINTMENT_TOOLTIP_VISIBILITY,\n getAppointmentResources,\n} from '@devexpress/dx-scheduler-core';\n\nimport { AppointmentTooltipProps, AppointmentTooltipState, Appointments } from '../types';\n\nconst pluginDependencies = [\n { name: 'Appointments' },\n { name: 'EditingState', optional: true },\n { name: 'EditRecurrenceMenu', optional: true },\n { name: 'IntegratedEditing', optional: true },\n];\n\nconst commandButtonIds = {\n open: OPEN_COMMAND_BUTTON,\n close: CLOSE_COMMAND_BUTTON,\n delete: DELETE_COMMAND_BUTTON,\n};\n\nclass AppointmentTooltipBase extends React.PureComponent<\n AppointmentTooltipProps, AppointmentTooltipState\n> {\n toggleVisibility: (payload?: any) => void;\n setAppointmentMeta: (appointmentMeta: AppointmentMeta) => void;\n onAppointmentClick: (appointmentMeta: AppointmentMeta) => void;\n\n static defaultProps: Partial<AppointmentTooltipProps> = {\n showOpenButton: false,\n showDeleteButton: false,\n showCloseButton: false,\n };\n static components: PluginComponents = {\n layoutComponent: 'Layout',\n headerComponent: 'Header',\n contentComponent: 'Content',\n commandButtonComponent: 'CommandButton',\n recurringIconComponent: 'RecurringIcon',\n };\n\n constructor(props) {\n super(props);\n\n this.state = {\n visible: props.visible,\n appointmentMeta: props.appointmentMeta,\n };\n\n const stateHelper: StateHelper = createStateHelper(\n this,\n {\n visible: () => {\n const { onVisibilityChange } = this.props;\n return onVisibilityChange;\n },\n appointmentMeta: () => {\n const { onAppointmentMetaChange } = this.props;\n return onAppointmentMetaChange;\n },\n },\n );\n\n const toggleVisibility = () => {\n const { visible: isOpen } = this.state;\n return !isOpen;\n };\n this.toggleVisibility = stateHelper.applyFieldReducer\n .bind(stateHelper, 'visible', toggleVisibility);\n this.setAppointmentMeta = stateHelper.applyFieldReducer\n .bind(stateHelper, 'appointmentMeta', setAppointmentMeta);\n this.onAppointmentClick = ({ target, data }) => {\n this.setAppointmentMeta({ target, data });\n this.toggleVisibility();\n };\n }\n\n static getDerivedStateFromProps(nextProps, prevState) {\n const {\n visible = prevState.visible,\n appointmentMeta = prevState.appointmentMeta,\n } = nextProps;\n return {\n appointmentMeta,\n visible,\n };\n }\n\n render() {\n const {\n showOpenButton,\n showDeleteButton,\n showCloseButton,\n layoutComponent: Layout,\n headerComponent,\n contentComponent,\n commandButtonComponent,\n recurringIconComponent,\n } = this.props;\n const { visible, appointmentMeta } = this.state;\n\n return (\n <Plugin\n name=\"AppointmentTooltip\"\n dependencies={pluginDependencies}\n >\n <Action name={TOGGLE_APPOINTMENT_TOOLTIP_VISIBILITY} action={this.toggleVisibility} />\n\n <Template name=\"timeTable\">\n <TemplatePlaceholder />\n <TemplateConnector>\n {({\n formatDate, resources, plainResources,\n }, {\n finishDeleteAppointment, openDeleteConfirmationDialog,\n }) => {\n const onDeleteButtonClick = () => {\n if (!finishDeleteAppointment) {\n return;\n }\n if (openDeleteConfirmationDialog) {\n openDeleteConfirmationDialog({\n hideActionName: TOGGLE_APPOINTMENT_TOOLTIP_VISIBILITY,\n appointmentData: appointmentMeta.data,\n });\n } else {\n this.toggleVisibility();\n finishDeleteAppointment(appointmentMeta.data);\n }\n };\n return (\n <TemplatePlaceholder\n name=\"tooltip\"\n params={{\n commandButtonComponent,\n recurringIconComponent,\n showOpenButton,\n showDeleteButton,\n showCloseButton,\n headerComponent,\n contentComponent,\n appointmentMeta,\n appointmentResources: appointmentMeta ? getAppointmentResources(\n appointmentMeta.data as any, resources, plainResources,\n ) : [],\n visible,\n onHide: this.toggleVisibility,\n commandButtonIds,\n onDeleteButtonClick,\n formatDate,\n }}\n />\n );\n }}\n </TemplateConnector>\n </Template>\n\n <Template name=\"tooltip\">\n {(params: any) => <Layout {...params} />}\n </Template>\n\n <Template name=\"appointment\">\n {(params: Appointments.AppointmentProps) => (\n <TemplatePlaceholder\n params={{\n ...params,\n onClick: ({ target, data }) =>\n this.onAppointmentClick({ target, data }),\n }}\n />\n )}\n </Template>\n </Plugin>\n );\n }\n}\n\n// tslint:disable: max-line-length\n/** The AppointmentTooltip plugin allows you to display information about an appointment in a tooltip. */\nexport const AppointmentTooltip: React.ComponentType<AppointmentTooltipProps> = AppointmentTooltipBase;\n","import * as React from 'react';\nimport { getMessagesFormatter, memoize } from '@devexpress/dx-core';\nimport {\n Plugin,\n Template,\n createStateHelper,\n StateHelper,\n TemplateConnector,\n TemplatePlaceholder,\n PluginComponents,\n Action,\n} from '@devexpress/dx-react-core';\nimport {\n setAppointmentData,\n isAllDayCell,\n callActionIfExists,\n AppointmentModel,\n TOGGLE_APPOINTMENT_FORM_VISIBILITY,\n getAppointmentResources,\n ValidResourceInstance,\n checkMultipleResourceFields,\n} from '@devexpress/dx-scheduler-core';\n\nimport {\n AppointmentFormProps, AppointmentFormState, AppointmentTooltip, Appointments,\n} from '../types';\n\nconst addDoubleClickToCell = (\n title, startDate, endDate, groupingInfo, resources,\n allDay, openFormHandler, addAppointment, params,\n) => {\n const resourceFields = !!groupingInfo\n ? groupingInfo.reduce((acc, currentGroup) => (\n { ...acc, [currentGroup.fieldName]: currentGroup.id }\n ), {}) : {};\n const validResourceFields = resources\n ? checkMultipleResourceFields(resourceFields, resources)\n : resourceFields;\n\n const newAppointmentData = {\n title,\n startDate,\n endDate,\n allDay,\n ...validResourceFields,\n };\n\n return (\n <TemplatePlaceholder\n params={{\n ...params,\n onDoubleClick: () => {\n openFormHandler(newAppointmentData);\n callActionIfExists(addAppointment,\n { appointmentData: newAppointmentData });\n },\n }}\n />\n );\n};\n\nconst defaultMessages = {\n allDayLabel: 'All Day',\n titleLabel: 'Title',\n commitCommand: 'Save',\n detailsLabel: 'Details',\n moreInformationLabel: 'More Information',\n repeatLabel: 'Repeat',\n notesLabel: 'Notes',\n never: 'Never',\n daily: 'Daily',\n weekly: 'Weekly',\n monthly: 'Monthly',\n yearly: 'Yearly',\n repeatEveryLabel: 'Repeat every',\n daysLabel: 'day(s)',\n endRepeatLabel: 'End repeat',\n onLabel: 'On',\n afterLabel: 'After',\n occurrencesLabel: 'occurrence(s)',\n weeksOnLabel: 'week(s) on:',\n monthsLabel: 'month(s)',\n ofEveryMonthLabel: 'of every month',\n theLabel: 'The',\n firstLabel: 'First',\n secondLabel: 'Second',\n thirdLabel: 'Third',\n fourthLabel: 'Fourth',\n lastLabel: 'Last',\n yearsLabel: 'year(s)',\n ofLabel: 'of ',\n everyLabel: 'Every',\n};\n\nconst CommandLayoutPlaceholder = () => <TemplatePlaceholder name=\"commandLayout\" />;\nconst BasicLayoutPlaceholder = () => <TemplatePlaceholder name=\"basicLayout\" />;\nconst RecurrenceLayoutPlaceholder = () => <TemplatePlaceholder name=\"recurrenceLayout\" />;\n\nconst pluginDependencies = [\n { name: 'EditingState', optional: true },\n { name: 'Appointments', optional: true },\n { name: 'AppointmentTooltip', optional: true },\n { name: 'EditRecurrenceMenu', optional: true },\n { name: 'IntegratedEditing', optional: true },\n];\n\nconst prepareChanges = (\n appointmentData, editingAppointment,\n addedAppointment, appointmentChanges,\n resources, plainResources,\n) => {\n const isNew = !editingAppointment;\n const changedAppointment = {\n ...appointmentData,\n ...appointmentChanges,\n ...isNew && addedAppointment,\n };\n const appointmentResources = getAppointmentResources(\n changedAppointment, resources, plainResources,\n );\n const isFormEdited = isNew || Object.getOwnPropertyNames(appointmentChanges).length !== 0;\n return { changedAppointment, appointmentResources, isNew, isFormEdited };\n};\n\nconst isFormFullSize = (\n isFormVisible, changedAppointmentRRule, previousAppointmentRRule,\n) => !!changedAppointmentRRule || (!isFormVisible && !!previousAppointmentRRule);\n\nclass AppointmentFormBase extends React.PureComponent<AppointmentFormProps, AppointmentFormState> {\n toggleVisibility: (payload?: any) => void;\n setAppointmentData: (payload: any) => void;\n openFormHandler: (payload: AppointmentModel) => void;\n container = React.createRef();\n\n static defaultProps: Partial<AppointmentFormProps> = {\n messages: {},\n readOnly: false,\n onVisibilityChange: () => undefined,\n onAppointmentDataChange: () => undefined,\n };\n static components: PluginComponents = {\n overlayComponent: 'Overlay',\n layoutComponent: 'Layout',\n commandLayoutComponent: 'CommandLayout',\n commandButtonComponent: 'CommandButton',\n basicLayoutComponent: 'BasicLayout',\n textEditorComponent: 'TextEditor',\n labelComponent: 'Label',\n dateEditorComponent: 'DateEditor',\n booleanEditorComponent: 'BooleanEditor',\n selectComponent: 'Select',\n recurrenceLayoutComponent: 'RecurrenceLayout',\n radioGroupComponent: 'RadioGroup',\n weeklyRecurrenceSelectorComponent: 'WeeklyRecurrenceSelector',\n resourceEditorComponent: 'ResourceEditor',\n containerComponent: 'Container',\n };\n\n constructor(props) {\n super(props);\n\n this.state = {\n visible: props.visible,\n appointmentData: props.appointmentData || {},\n previousAppointment: props.appointmentData || {},\n };\n\n const stateHelper: StateHelper = createStateHelper(\n this,\n {\n visible: () => {\n const { onVisibilityChange } = this.props;\n return onVisibilityChange;\n },\n appointmentData: () => {\n const { onAppointmentDataChange } = this.props;\n return onAppointmentDataChange;\n },\n },\n );\n\n const toggleVisibility = () => {\n const { visible: isOpen } = this.state;\n return !isOpen;\n };\n this.toggleVisibility = stateHelper.applyFieldReducer\n .bind(stateHelper, 'visible', toggleVisibility);\n this.setAppointmentData = stateHelper.applyFieldReducer\n .bind(stateHelper, 'appointmentData', setAppointmentData);\n\n this.openFormHandler = (appointmentData) => {\n this.setAppointmentData({ appointmentData });\n this.toggleVisibility();\n };\n }\n\n static getDerivedStateFromProps(nextProps, prevState) {\n const {\n visible = prevState.visible,\n appointmentData = prevState.appointmentData,\n } = nextProps;\n return {\n appointmentData,\n visible,\n };\n }\n\n commitChanges = memoize((\n finishCommitAppointment, commitAddedAppointment, isNew, changedAppointment,\n ) => () => {\n this.toggleVisibility();\n if (isNew) {\n callActionIfExists(commitAddedAppointment, changedAppointment);\n } else if (finishCommitAppointment) {\n finishCommitAppointment();\n }\n this.setState({ previousAppointment: changedAppointment });\n });\n\n cancelChanges = memoize((\n openCancelConfirmationDialog, isNew, stopEditAppointment, appointmentChanges,\n changedAppointment, cancelAddedAppointment, cancelChangedAppointment,\n ) => () => {\n if (openCancelConfirmationDialog && Object.keys(appointmentChanges).length !== 0) {\n openCancelConfirmationDialog(TOGGLE_APPOINTMENT_FORM_VISIBILITY);\n } else {\n if (isNew) {\n callActionIfExists(cancelAddedAppointment, appointmentChanges);\n } else {\n callActionIfExists(stopEditAppointment, appointmentChanges);\n callActionIfExists(cancelChangedAppointment, appointmentChanges);\n }\n this.toggleVisibility();\n }\n this.setState({ previousAppointment: changedAppointment });\n });\n\n deleteAppointment = memoize((\n finishDeleteAppointment, appointmentData, openDeleteConfirmationDialog,\n changedAppointment, cancelAddedAppointment, cancelChangedAppointment,\n stopEditAppointment, isNew,\n ) => () => {\n if (openDeleteConfirmationDialog) {\n openDeleteConfirmationDialog({\n hideActionName: TOGGLE_APPOINTMENT_FORM_VISIBILITY, appointmentData: changedAppointment,\n });\n } else {\n callActionIfExists(finishDeleteAppointment, appointmentData);\n if (isNew) {\n callActionIfExists(cancelAddedAppointment, appointmentData);\n } else {\n callActionIfExists(cancelChangedAppointment, appointmentData);\n callActionIfExists(stopEditAppointment, appointmentData);\n }\n this.toggleVisibility();\n }\n this.setState({ previousAppointment: changedAppointment });\n });\n\n changeAppointmentField = memoize((isNew, changeAddedAppointment, changeAppointment) =>\n (change) => {\n if (change && change.rRule) {\n this.setState({ previousAppointment: {\n ...this.state.previousAppointment, rRule: change.rRule,\n }});\n }\n if (isNew) {\n callActionIfExists(changeAddedAppointment, { change });\n } else {\n callActionIfExists(changeAppointment, { change });\n }\n },\n );\n\n getMessage = memoize((menuMessages, messages) =>\n getMessagesFormatter({ ...menuMessages, ...messages }));\n\n render() {\n const {\n containerComponent: Container,\n overlayComponent: Overlay,\n layoutComponent: Layout,\n commandLayoutComponent: CommandLayout,\n basicLayoutComponent: BasicLayout,\n recurrenceLayoutComponent: RecurrenceLayout,\n commandButtonComponent,\n textEditorComponent,\n labelComponent,\n dateEditorComponent,\n booleanEditorComponent,\n selectComponent,\n radioGroupComponent,\n weeklyRecurrenceSelectorComponent,\n resourceEditorComponent,\n readOnly,\n messages,\n } = this.props;\n const { visible, appointmentData, previousAppointment } = this.state;\n const getMessage = this.getMessage(defaultMessages, messages);\n return (\n <Plugin\n name=\"AppointmentForm\"\n dependencies={pluginDependencies}\n >\n <Action name={TOGGLE_APPOINTMENT_FORM_VISIBILITY} action={this.toggleVisibility} />\n\n <Template name=\"schedulerRoot\">\n <TemplateConnector>\n {({\n editingAppointment,\n addedAppointment,\n appointmentChanges,\n\n resources,\n plainResources,\n }, {\n openCancelConfirmationDialog,\n\n stopEditAppointment,\n cancelAddedAppointment,\n cancelChangedAppointment,\n }) => {\n const { changedAppointment, isNew } = prepareChanges(\n appointmentData, editingAppointment,\n addedAppointment, appointmentChanges,\n resources, plainResources,\n );\n const fullSize = isFormFullSize(\n visible, changedAppointment.rRule, previousAppointment.rRule,\n );\n const onHideAction = () => visible && this.cancelChanges(\n openCancelConfirmationDialog, isNew, stopEditAppointment,\n { ...appointmentChanges, ...addedAppointment }, changedAppointment,\n cancelAddedAppointment, cancelChangedAppointment,\n )();\n\n return (\n <React.Fragment>\n <Container ref={this.container} />\n <Overlay\n visible={visible}\n onHide={onHideAction}\n fullSize={fullSize}\n target={this.container}\n >\n <Layout\n basicLayoutComponent={BasicLayoutPlaceholder}\n commandLayoutComponent={CommandLayoutPlaceholder}\n recurrenceLayoutComponent={RecurrenceLayoutPlaceholder}\n isRecurrence={fullSize}\n />\n </Overlay>\n <TemplatePlaceholder />\n </React.Fragment>);\n }}\n </TemplateConnector>\n </Template>\n <Template name=\"commandLayout\">\n <TemplateConnector>\n {({\n editingAppointment,\n addedAppointment,\n appointmentChanges,\n\n resources,\n plainResources,\n }, {\n commitAddedAppointment,\n finishCommitAppointment,\n finishDeleteAppointment,\n\n stopEditAppointment,\n cancelAddedAppointment,\n cancelChangedAppointment,\n\n openCancelConfirmationDialog,\n openDeleteConfirmationDialog,\n }) => {\n const { isNew, changedAppointment, isFormEdited } = prepareChanges(\n appointmentData, editingAppointment,\n addedAppointment, appointmentChanges,\n resources, plainResources,\n );\n const isRecurrence = isFormFullSize(\n visible, changedAppointment.rRule, previousAppointment.rRule,\n );\n return (\n <CommandLayout\n commandButtonComponent={commandButtonComponent}\n onCommitButtonClick={this.commitChanges(\n finishCommitAppointment, commitAddedAppointment, isNew, changedAppointment,\n )}\n onCancelButtonClick={this.cancelChanges(\n openCancelConfirmationDialog, isNew, stopEditAppointment,\n { ...appointmentChanges, ...addedAppointment }, changedAppointment,\n cancelAddedAppointment, cancelChangedAppointment,\n )}\n onDeleteButtonClick={this.deleteAppointment(\n finishDeleteAppointment, appointmentData, openDeleteConfirmationDialog,\n changedAppointment, cancelAddedAppointment, cancelChangedAppointment,\n stopEditAppointment, isNew,\n )}\n getMessage={getMessage}\n readOnly={readOnly}\n fullSize={isRecurrence}\n disableSaveButton={!isFormEdited}\n hideDeleteButton={isNew}\n />\n );\n }}\n </TemplateConnector>\n </Template>\n <Template name=\"basicLayout\">\n <TemplateConnector>\n {({\n editingAppointment,\n addedAppointment,\n appointmentChanges,\n locale,\n\n resources,\n plainResources,\n }, {\n changeAppointment,\n changeAddedAppointment,\n }) => {\n const { isNew, changedAppointment, appointmentResources } = prepareChanges(\n appointmentData, editingAppointment,\n addedAppointment, appointmentChanges,\n resources, plainResources,\n );\n return (\n <BasicLayout\n locale={locale}\n appointmentData={visible ? changedAppointment : previousAppointment}\n onFieldChange={this.changeAppointmentField(\n isNew, changeAddedAppointment, changeAppointment,\n )}\n getMessage={getMessage}\n readOnly={readOnly}\n textEditorComponent={textEditorComponent}\n dateEditorComponent={dateEditorComponent}\n booleanEditorComponent={booleanEditorComponent}\n selectComponent={selectComponent}\n labelComponent={labelComponent}\n resourceEditorComponent={resourceEditorComponent}\n fullSize={!changedAppointment.rRule}\n resources={resources}\n appointmentResources={appointmentResources as Array<ValidResourceInstance>}\n />\n );\n }}\n </TemplateConnector>\n </Template>\n\n <Template name=\"recurrenceLayout\">\n <TemplateConnector>\n {({\n editingAppointment,\n addedAppointment,\n appointmentChanges,\n formatDate,\n locale,\n firstDayOfWeek,\n }, {\n changeAddedAppointment,\n changeAppointment,\n }) => {\n const { isNew, changedAppointment } = prepareChanges(\n appointmentData, editingAppointment,\n addedAppointment, appointmentChanges,\n undefined, undefined,\n );\n const isRecurrenceLayoutVisible = isFormFullSize(\n visible, changedAppointment.rRule, previousAppointment.rRule,\n );\n const correctedAppointment = !changedAppointment.rRule\n ? { ...changedAppointment, rRule: previousAppointment.rRule } : changedAppointment;\n\n return (\n <RecurrenceLayout\n locale={locale}\n appointmentData={visible ? correctedAppointment : previousAppointment}\n onFieldChange={this.changeAppointmentField(\n isNew, changeAddedAppointment, changeAppointment,\n )}\n getMessage={getMessage}\n readOnly={readOnly}\n formatDate={formatDate}\n textEditorComponent={textEditorComponent}\n dateEditorComponent={dateEditorComponent}\n radioGroupComponent={radioGroupComponent}\n weeklyRecurrenceSelectorComponent={weeklyRecurrenceSelectorComponent}\n labelComponent={labelComponent}\n selectComponent={selectComponent}\n visible={isRecurrenceLayoutVisible}\n firstDayOfWeek={firstDayOfWeek}\n />\n );\n }}\n </TemplateConnector>\n </Template>\n\n <Template name=\"tooltip\">\n {(params: AppointmentTooltip.LayoutProps) => (\n <TemplateConnector>\n {(getters, { startEditAppointment }) => (\n <TemplatePlaceholder\n params={{\n ...params,\n onOpenButtonClick: () => {\n this.openFormHandler(params.appointmentMeta!.data);\n callActionIfExists(startEditAppointment, params.appointmentMeta!.data);\n },\n }}\n />\n )}\n </TemplateConnector>\n )}\n </Template>\n\n <Template name=\"appointment\">\n {(params: Appointments.AppointmentProps) => (\n <TemplateConnector>\n {(getters, { startEditAppointment }) => (\n <TemplatePlaceholder\n params={{\n ...params,\n onDoubleClick: () => {\n this.openFormHandler(params.data);\n callActionIfExists(startEditAppointment, params.data);\n },\n }}\n />\n )}\n </TemplateConnector>\n )}\n </Template>\n\n <Template name=\"cell\">\n {(params: any) => (\n <TemplateConnector>\n {({ resources }, { addAppointment }) => addDoubleClickToCell(\n undefined, params.startDate, params.endDate, params.groupingInfo, resources,\n isAllDayCell(params.startDate, params.endDate),\n this.openFormHandler, addAppointment, params,\n )}\n </TemplateConnector>\n )}\n </Template>\n\n <Template name=\"allDayPanelCell\">\n {(params: any) => (\n <TemplateConnector>\n {({ resources }, { addAppointment }) => addDoubleClickToCell(\n undefined, params.startDate, params.endDate, params.groupingInfo, resources,\n true, this.openFormHandler, addAppointment, params,\n )}\n </TemplateConnector>\n )}\n </Template>\n </Plugin >\n );\n }\n}\n\n// tslint:disable-next-line: max-line-length\n/** The AppointmentForm plugin renders a form that visualizes appointment’s data and allows a user to modify this data. */\nexport const AppointmentForm: React.ComponentType<AppointmentFormProps> = AppointmentFormBase;\n","import * as React from 'react';\nimport {\n Plugin, Template, TemplatePlaceholder,\n TemplateConnector, DropTarget, DragSource,\n DragDropProvider as DragDropProviderCore,\n PluginComponents, PlaceholderWithRef,\n} from '@devexpress/dx-react-core';\nimport {\n cellIndex, cellData, cellType, getAppointmentStyle, intervalDuration, autoScroll,\n calculateAppointmentTimeBoundaries, calculateInsidePart, RESIZE_TOP, RESIZE_BOTTOM,\n POSITION_START, POSITION_END, getAppointmentResources, calculateAppointmentGroups,\n appointmentDragged, calculateDraftAppointments,\n HORIZONTAL_GROUP_ORIENTATION, VERTICAL_GROUP_ORIENTATION, SCROLL_SPEED_PX,\n} from '@devexpress/dx-scheduler-core';\nimport { DragDropProviderProps, DragDropProviderState } from '../types';\n\nconst renderAppointmentItems = (items, Wrapper, draftData) => (\n items.length > 0 ? (\n <Wrapper>\n {items.map((draftAppointment, index) => (\n <TemplatePlaceholder\n name=\"draftAppointment\"\n key={index.toString()}\n params={{ data: draftData, draftAppointment }}\n />\n ))}\n </Wrapper>\n ) : (\n null\n )\n);\n\nconst pluginDependencies = [\n { name: 'EditingState' },\n { name: 'Appointments' },\n { name: 'EditRecurrenceMenu', optional: true },\n { name: 'IntegratedEditing', optional: true },\n { name: 'DayView', optional: true },\n { name: 'WeekView', optional: true },\n { name: 'MonthView', optional: true },\n { name: 'AllDayPanel', optional: true },\n];\n\nclass DragDropProviderBase extends React.PureComponent<\n DragDropProviderProps, DragDropProviderState\n> {\n timeTableDraftAppointments: any = [];\n allDayDraftAppointments: any = [];\n offsetTimeTop: number | null = null;\n appointmentStartTime: any = null;\n appointmentEndTime: any = null;\n appointmentGroupingInfo: any = {};\n\n state: DragDropProviderState = {\n startTime: null,\n endTime: null,\n appointmentGroupingInfo: null,\n payload: null,\n isOutside: false,\n allowDrag: () => true,\n allowResize: () => true,\n appointmentContentTemplateKey: 0,\n appointmentTopTemplateKey: 0,\n appointmentBottomTemplateKey: 0,\n };\n static components: PluginComponents = {\n containerComponent: 'Container',\n draftAppointmentComponent: 'DraftAppointment',\n sourceAppointmentComponent: 'SourceAppointment',\n resizeComponent: 'Resize',\n };\n static defaultProps: Partial<DragDropProviderProps> = {\n allowDrag: () => true,\n allowResize: () => true,\n scrollSpeed: SCROLL_SPEED_PX,\n };\n static getDerivedStateFromProps(\n props: DragDropProviderProps, state: DragDropProviderState,\n ): DragDropProviderState | null {\n const isAllowDragSame = props.allowDrag === state.allowDrag;\n const isAllowResizeSame = props.allowResize === state.allowResize;\n\n if (isAllowDragSame && isAllowResizeSame) {\n return null;\n }\n\n return {\n ...state,\n appointmentContentTemplateKey:\n isAllowDragSame ? state.appointmentContentTemplateKey : Math.random(),\n appointmentTopTemplateKey:\n isAllowResizeSame ? state.appointmentTopTemplateKey : Math.random(),\n appointmentBottomTemplateKey:\n isAllowResizeSame ? state.appointmentBottomTemplateKey : Math.random(),\n allowDrag: props.allowDrag,\n allowResize: props.allowResize,\n };\n\n }\n\n onPayloadChange(actions) {\n return args => this.handlePayloadChange(args, actions);\n }\n\n calculateNextBoundaries(getters, actions, scrollSpeed) {\n return args => this.calculateBoundaries(args, getters, actions, scrollSpeed);\n }\n\n resetCache() {\n this.timeTableDraftAppointments = [];\n this.allDayDraftAppointments = [];\n this.offsetTimeTop = null;\n this.appointmentStartTime = null;\n this.appointmentEndTime = null;\n this.appointmentGroupingInfo = {};\n\n this.setState({\n payload: null,\n startTime: null,\n endTime: null,\n isOutside: false,\n });\n }\n\n applyChanges(\n startTime, endTime, payload, startEditAppointment, changeAppointment, appointmentGroupingInfo,\n ) {\n startEditAppointment(payload);\n changeAppointment({\n change: {\n startDate: startTime,\n endDate: endTime,\n ...payload.allDay && { allDay: undefined },\n ...this.appointmentGroupingInfo,\n },\n });\n this.setState({ startTime, endTime, payload, isOutside: false, appointmentGroupingInfo });\n }\n\n handlePayloadChange({ payload }, { finishCommitAppointment }) {\n const { isOutside } = this.state;\n if (payload || !isOutside) return;\n\n finishCommitAppointment();\n this.resetCache();\n }\n\n calculateBoundaries(\n { payload, clientOffset },\n {\n viewCellsData, allDayCellsData, startViewDate, endViewDate, excludedDays, currentView,\n timeTableElementsMeta, allDayElementsMeta, scrollingStrategy,\n grouping, resources, groups, groupOrientation: getGroupOrientation, groupByDate,\n },\n { changeAppointment, startEditAppointment },\n scrollSpeed,\n ) {\n if (clientOffset) {\n autoScroll(clientOffset, scrollingStrategy, scrollSpeed);\n }\n\n const tableCellElementsMeta = timeTableElementsMeta;\n const groupOrientation = getGroupOrientation\n ? getGroupOrientation(currentView?.name)\n : HORIZONTAL_GROUP_ORIENTATION;\n\n // AllDayPanel doesn't always exist\n const allDayCellsElementsMeta = allDayElementsMeta && allDayElementsMeta.getCellRects\n ? allDayElementsMeta\n : { getCellRects: [] };\n const timeTableIndex = cellIndex(tableCellElementsMeta.getCellRects, clientOffset);\n const allDayIndex = cellIndex(allDayCellsElementsMeta.getCellRects, clientOffset);\n\n if (allDayIndex === -1 && timeTableIndex === -1) return;\n\n const targetData = cellData(\n timeTableIndex, allDayIndex, viewCellsData, allDayCellsData,\n );\n const targetType = cellType(targetData);\n const insidePart = calculateInsidePart(\n clientOffset.y, tableCellElementsMeta.getCellRects, timeTableIndex,\n );\n const cellDurationMinutes = intervalDuration(targetData, 'minutes');\n\n const {\n appointmentStartTime, appointmentEndTime, offsetTimeTop,\n } = calculateAppointmentTimeBoundaries(\n payload, targetData, targetType, cellDurationMinutes,\n insidePart, this.offsetTimeTop!,\n );\n\n const appointmentGroups = calculateAppointmentGroups(\n targetData.groupingInfo, resources, payload,\n );\n\n this.appointmentStartTime = appointmentStartTime || this.appointmentStartTime;\n this.appointmentEndTime = appointmentEndTime || this.appointmentEndTime;\n this.appointmentGroupingInfo = appointmentGroups || this.appointmentGroupingInfo;\n this.offsetTimeTop = offsetTimeTop!;\n\n const { startTime, endTime, appointmentGroupingInfo } = this.state;\n if (!appointmentDragged(\n this.appointmentStartTime, startTime!,\n this.appointmentEndTime, endTime!,\n this.appointmentGroupingInfo, appointmentGroupingInfo,\n )) {\n return;\n }\n\n const draftAppointments = [{\n dataItem: {\n ...payload,\n startDate: this.appointmentStartTime,\n endDate: this.appointmentEndTime,\n ...this.appointmentGroupingInfo,\n },\n start: this.appointmentStartTime,\n end: this.appointmentEndTime,\n }];\n\n const {\n allDayDraftAppointments,\n timeTableDraftAppointments,\n } = calculateDraftAppointments(\n allDayIndex, draftAppointments, startViewDate,\n endViewDate, excludedDays, viewCellsData, allDayCellsElementsMeta,\n targetType, cellDurationMinutes, tableCellElementsMeta, grouping, resources, groups,\n groupOrientation, groupByDate?.(currentView?.name),\n );\n\n this.allDayDraftAppointments = allDayDraftAppointments;\n this.timeTableDraftAppointments = timeTableDraftAppointments;\n\n this.applyChanges(\n this.appointmentStartTime, this.appointmentEndTime,\n payload, startEditAppointment, changeAppointment,\n this.appointmentGroupingInfo,\n );\n }\n\n handleDrop = ({ finishCommitAppointment }) => () => {\n finishCommitAppointment();\n this.resetCache();\n }\n\n handleLeave = () => {\n this.setState({ isOutside: true });\n }\n\n render() {\n const {\n payload, appointmentContentTemplateKey,\n appointmentBottomTemplateKey, appointmentTopTemplateKey,\n } = this.state;\n const {\n containerComponent: Container,\n draftAppointmentComponent: DraftAppointment,\n sourceAppointmentComponent: SourceAppointment,\n resizeComponent: Resize,\n allowDrag,\n allowResize,\n scrollSpeed,\n } = this.props;\n\n const draftData = {\n ...payload, startDate: this.appointmentStartTime, endDate: this.appointmentEndTime,\n };\n\n return (\n <Plugin\n name=\"DragDropProvider\"\n dependencies={pluginDependencies}\n >\n <Template name=\"body\">\n <TemplateConnector>\n {({\n viewCellsData, allDayCellsData, startViewDate, endViewDate, excludedDays,\n timeTableElementsMeta, allDayElementsMeta, scrollingStrategy,\n grouping, resources, groups, currentView, groupByDate, groupOrientation,\n }, {\n changeAppointment, startEditAppointment, finishCommitAppointment,\n }) => {\n const calculateBoundariesByMove = this.calculateNextBoundaries({\n viewCellsData, allDayCellsData, currentView,\n startViewDate, endViewDate, excludedDays,\n timeTableElementsMeta, allDayElementsMeta, scrollingStrategy,\n resources, grouping, groups, groupByDate, groupOrientation,\n }, { changeAppointment, startEditAppointment }, scrollSpeed);\n return (\n <DragDropProviderCore\n onChange={this.onPayloadChange({ finishCommitAppointment })}\n >\n <DropTarget\n onOver={calculateBoundariesByMove}\n onEnter={calculateBoundariesByMove}\n onDrop={this.handleDrop({ finishCommitAppointment })}\n onLeave={this.handleLeave}\n >\n <PlaceholderWithRef />\n </DropTarget>\n </DragDropProviderCore>\n );\n }}\n </TemplateConnector>\n </Template>\n\n <Template\n name=\"appointmentContent\"\n predicate={({ data }: any) => allowDrag!(data)}\n key={appointmentContentTemplateKey}\n >\n {({ styles, ...params }: any) => (\n <DragSource\n payload={{ ...params.data, type: params.type }}\n >\n {payload && params.data.id === payload.id ? (\n <SourceAppointment {...params} />\n ) : (\n <PlaceholderWithRef params={{ ...params, draggable: true }} />\n )}\n </DragSource>\n )}\n </Template>\n\n <Template\n name=\"appointmentTop\"\n predicate={(params: any) => !params.slice && allowResize!(params.data)}\n key={appointmentTopTemplateKey}\n >\n {({ data, type }: any) => (\n <DragSource\n payload={{ ...data, type: RESIZE_TOP, appointmentType: type }}\n >\n <Resize position={POSITION_START} appointmentType={type} />\n </DragSource>\n )}\n </Template>\n\n <Template\n name=\"appointmentBottom\"\n predicate={(params: any) => !params.slice && allowResize!(params.data)}\n key={appointmentBottomTemplateKey}\n >\n {({ data, type }: any) => (\n <DragSource\n payload={{ ...data, type: RESIZE_BOTTOM, appointmentType: type }}\n >\n <Resize position={POSITION_END} appointmentType={type} />\n </DragSource>\n )}\n </Template>\n\n <Template name=\"allDayPanel\">\n <TemplateConnector>\n {({ currentView, groupOrientation }) => (\n <>\n <TemplatePlaceholder />\n {groupOrientation?.(currentView.name) !== VERTICAL_GROUP_ORIENTATION\n ? renderAppointmentItems(this.allDayDraftAppointments, Container, draftData)\n : null}\n </>\n )}\n </TemplateConnector>\n </Template>\n\n <Template name=\"timeTable\">\n <TemplateConnector>\n {({ currentView, groupOrientation }) => (\n <>\n <TemplatePlaceholder />\n {renderAppointmentItems(this.timeTableDraftAppointments, Container, draftData)}\n {groupOrientation?.(currentView.name) === VERTICAL_GROUP_ORIENTATION\n ? renderAppointmentItems(this.allDayDraftAppointments, Container, draftData)\n : null}\n </>\n )}\n </TemplateConnector>\n </Template>\n\n <Template name=\"draftAppointment\">\n {({ data, draftAppointment, ...restParams }: any) => (\n <TemplateConnector>\n {({ formatDate, resources, plainResources }) => {\n const {\n dataItem, type, fromPrev, toNext, durationType, ...geometry\n } = draftAppointment;\n return (\n <DraftAppointment\n data={data}\n resources={getAppointmentResources(dataItem, resources, plainResources)}\n durationType={durationType}\n style={getAppointmentStyle(geometry)}\n type={type}\n fromPrev={fromPrev}\n toNext={toNext}\n formatDate={formatDate}\n {...restParams}\n />\n );\n }}\n </TemplateConnector>\n )}\n </Template>\n </Plugin>\n );\n }\n}\n\n/** A plugin that enables users to edit appointments via drag-and-drop. */\nexport const DragDropProvider: React.ComponentType<DragDropProviderProps> = DragDropProviderBase;\n","import * as React from 'react';\nimport { getMessagesFormatter } from '@devexpress/dx-core';\nimport {\n Plugin,\n Template,\n TemplatePlaceholder,\n TemplateConnector,\n PluginComponents,\n} from '@devexpress/dx-react-core';\nimport { TodayButtonProps } from '../types';\n\nconst pluginDependencies = [\n { name: 'Toolbar' },\n { name: 'ViewState' },\n];\n\nconst defaultMessages = {\n today: 'Today',\n};\n\nclass TodayButtonBase extends React.PureComponent<TodayButtonProps> {\n static components: PluginComponents = {\n buttonComponent: 'Button',\n };\n render() {\n const {\n buttonComponent: Button,\n messages,\n } = this.props;\n const getMessage = getMessagesFormatter({ ...defaultMessages, ...messages });\n\n return (\n <Plugin\n name=\"TodayButton\"\n dependencies={pluginDependencies}\n >\n <Template name=\"toolbarContent\">\n <TemplateConnector>\n {(getters, {\n changeCurrentDate,\n }) => {\n const setCurrentDate = nextDate => changeCurrentDate({\n nextDate,\n });\n return (\n <Button\n getMessage={getMessage}\n setCurrentDate={setCurrentDate}\n />\n );\n }}\n </TemplateConnector>\n <TemplatePlaceholder />\n </Template>\n </Plugin>\n );\n }\n}\n\n/** A plugin that renders the Scheduler's button which sets the current date to today's date. */\nexport const TodayButton: React.ComponentType<TodayButtonProps> = TodayButtonBase;\n","import * as React from 'react';\nimport { memoize, getMessagesFormatter } from '@devexpress/dx-core';\nimport {\n Plugin, Template, TemplatePlaceholder, TemplateConnector, Action, Getters, Actions,\n} from '@devexpress/dx-react-core';\nimport { RECURRENCE_EDIT_SCOPE } from '@devexpress/dx-scheduler-core';\nimport { EditRecurrenceMenuProps, EditRecurrenceMenuState } from '../types';\n\nconst pluginDependencies = [\n { name: 'EditingState' },\n];\n\nconst defaultAvailableOperations = [\n { value: RECURRENCE_EDIT_SCOPE.CURRENT },\n { value: RECURRENCE_EDIT_SCOPE.CURRENT_AND_FOLLOWING },\n { value: RECURRENCE_EDIT_SCOPE.ALL },\n];\n\nconst defaultMessages = {\n [RECURRENCE_EDIT_SCOPE.CURRENT]: 'This appointment',\n [RECURRENCE_EDIT_SCOPE.CURRENT_AND_FOLLOWING]: 'This and following appointments',\n [RECURRENCE_EDIT_SCOPE.ALL]: 'All appointments',\n menuEditingTitle: 'Edit recurring appointment',\n menuDeletingTitle: 'Delete recurring appointment',\n cancelButton: 'Cancel',\n commitButton: 'OK',\n};\n\nclass EditRecurrenceMenuBase extends React.PureComponent<\n EditRecurrenceMenuProps, EditRecurrenceMenuState\n> {\n static components = {\n layoutComponent: 'Layout',\n overlayComponent: 'Overlay',\n buttonComponent: 'Button',\n containerComponent: 'Container',\n };\n\n modalContainer = React.createRef();\n\n state = {\n isOpen: false,\n deletedAppointmentData: null,\n };\n\n finishCommitAppointment = (\n payload,\n { editingAppointment }: Getters,\n { commitChangedAppointment }: Actions,\n ) => {\n if (editingAppointment && !editingAppointment.rRule) {\n commitChangedAppointment();\n } else {\n this.setState({\n isOpen: true, deletedAppointmentData: null,\n });\n }\n }\n\n finishDeleteAppointment = (\n payload,\n getters,\n { commitDeletedAppointment }: Actions,\n ) => {\n if (payload && !payload.rRule) {\n commitDeletedAppointment({ deletedAppointmentData: payload });\n } else {\n this.setState({\n isOpen: true, deletedAppointmentData: payload,\n });\n }\n }\n\n commit = memoize((editAction, deleteAction, payload) => (type) => {\n if (payload) {\n deleteAction({ deletedAppointmentData: payload, type });\n } else {\n editAction(type);\n }\n this.closeMenu();\n });\n\n closeMenu = () => {\n this.setState({ isOpen: false, deletedAppointmentData: null });\n }\n\n cancelEditing = memoize((cancelAction, stopEditAction) => () => {\n stopEditAction();\n cancelAction();\n this.closeMenu();\n });\n\n availableOperations = memoize((getMessage, menuAvailableOperations) =>\n menuAvailableOperations.map(({ value }) => ({\n value,\n title: getMessage([value]),\n })));\n\n getMessage = memoize((messages, menuMessages) =>\n getMessagesFormatter({ ...menuMessages, ...messages }));\n\n render() {\n const { isOpen, deletedAppointmentData } = this.state;\n const {\n layoutComponent: Layout,\n overlayComponent: Overlay,\n containerComponent: Container,\n buttonComponent,\n messages,\n } = this.props;\n\n const getMessage = this.getMessage(messages, defaultMessages);\n const availableOperations = this.availableOperations(getMessage, defaultAvailableOperations);\n\n return (\n <Plugin\n name=\"EditRecurrenceMenu\"\n dependencies={pluginDependencies}\n >\n <Action name=\"finishCommitAppointment\" action={this.finishCommitAppointment} />\n <Action name=\"finishDeleteAppointment\" action={this.finishDeleteAppointment} />\n\n <Template name=\"schedulerRoot\">\n <TemplatePlaceholder />\n <Container ref={this.modalContainer} />\n <TemplatePlaceholder name=\"overlay\" />\n </Template>\n\n <Template name=\"overlay\">\n <TemplateConnector>\n {(getters, {\n commitChangedAppointment, commitDeletedAppointment,\n cancelChangedAppointment, stopEditAppointment,\n }) => {\n const commit = this.commit(\n commitChangedAppointment, commitDeletedAppointment, deletedAppointmentData,\n );\n const cancelEditing = this.cancelEditing(\n cancelChangedAppointment, stopEditAppointment,\n );\n\n return (\n <Overlay\n target={this.modalContainer}\n visible={isOpen}\n onHide={this.closeMenu}\n >\n <Layout\n isDeleting={!!deletedAppointmentData}\n buttonComponent={buttonComponent}\n handleClose={cancelEditing}\n commit={commit}\n availableOperations={availableOperations}\n getMessage={getMessage}\n />\n </Overlay>\n );\n }}\n </TemplateConnector>\n </Template>\n </Plugin>\n );\n }\n}\n\n/**\n * A plugin that renders the Scheduler's edit menu.\n * Should not be used with the `IntegratedEditing` plugin.\n */\nexport const EditRecurrenceMenu: React.ComponentType<\n EditRecurrenceMenuProps\n> = EditRecurrenceMenuBase;\n","import * as React from 'react';\nimport { Action, Plugin, Actions } from '@devexpress/dx-react-core';\nimport { IntegratedEditingProps } from '../types';\n\nconst pluginDependencies = [\n { name: 'EditingState' },\n];\n\nclass IntegratedEditingBase extends React.PureComponent<IntegratedEditingProps> {\n static defaultProps = {\n totalCount: 0,\n };\n\n finishCommitAppointment = (payload, getters, { commitChangedAppointment }: Actions) => {\n commitChangedAppointment();\n }\n\n finishDeleteAppointment = (payload, getters, { commitDeletedAppointment }: Actions) => {\n commitDeletedAppointment({ deletedAppointmentData: payload });\n }\n\n render() {\n return (\n <Plugin\n name=\"IntegratedEditing\"\n dependencies={pluginDependencies}\n >\n <Action name=\"finishCommitAppointment\" action={this.finishCommitAppointment} />\n <Action name=\"finishDeleteAppointment\" action={this.finishDeleteAppointment} />\n </Plugin>\n );\n }\n}\n\n/** A plugin that allows implementing a editing calculation logic. */\nexport const IntegratedEditing: React.ComponentType<IntegratedEditingProps> = IntegratedEditingBase;\n","import * as React from 'react';\nimport { Plugin, Getter, Getters } from '@devexpress/dx-react-core';\nimport {\n convertResourcesToPlain, validateResources, addResourcesToAppointments,\n} from '@devexpress/dx-scheduler-core';\nimport { ResourcesProps } from '../types/resources/resources.types';\n\nconst pluginDependencies = [\n { name: 'Appointments' },\n];\n\nconst addResourcesToTimeTableAppointments = ({\n timeTableAppointments, resources, plainResources,\n}: Getters) => timeTableAppointments\n && addResourcesToAppointments(timeTableAppointments[0], resources, plainResources);\nconst addResourcesToAllDayAppointments = ({\n allDayAppointments, resources, plainResources,\n }: Getters) => allDayAppointments\n && addResourcesToAppointments(allDayAppointments[0], resources, plainResources);\n\nconst ResourcesBase: React.FunctionComponent<ResourcesProps> = React.memo(({\n data, mainResourceName, palette,\n}) => {\n const convertResources = ({ resources }: Getters) =>\n convertResourcesToPlain(resources);\n\n return (\n <Plugin\n name=\"Resources\"\n dependencies={pluginDependencies}\n >\n <Getter name=\"resources\" value={validateResources(data, mainResourceName, palette)} />\n <Getter name=\"plainResources\" computed={convertResources} />\n <Getter name=\"timeTableAppointments\" computed={addResourcesToTimeTableAppointments} />\n <Getter name=\"allDayAppointments\" computed={addResourcesToAllDayAppointments} />\n </Plugin>\n );\n});\n\n/** A plugin that manages schedule's resources. */\nexport const Resources: React.ComponentType<ResourcesProps> = ResourcesBase;\n","import * as React from 'react';\nimport { getMessagesFormatter } from '@devexpress/dx-core';\nimport {\n Plugin,\n Template,\n TemplatePlaceholder,\n TemplateConnector,\n Action,\n} from '@devexpress/dx-react-core';\nimport { ConfirmationDialogProps } from '../types/editing/confirmation-dialog.types';\nimport { AppointmentModel } from '@devexpress/dx-scheduler-core';\n\nconst defaultMessages = {\n discardButton: 'Discard',\n deleteButton: 'Delete',\n cancelButton: 'Cancel',\n confirmDeleteMessage: 'Are you sure you want to delete this appointment?',\n confirmCancelMessage: 'Discard unsaved changes?',\n};\n\nconst pluginDependencies = [\n { name: 'EditingState' },\n { name: 'EditRecurrenceMenu', optional: true },\n { name: 'IntegratedEditing', optional: true },\n];\n\nconst ACTION_TYPES = {\n CANCEL: 'cancel',\n DELETE: 'delete',\n};\n\nconst ConfirmationDialogBase: React.FunctionComponent<ConfirmationDialogProps> & {components: {\n overlayComponent: string, containerComponent: string,\n layoutComponent: string, buttonComponent: string,\n}} = ({\n messages, overlayComponent: Overlay, layoutComponent: Layout, containerComponent: Container,\n buttonComponent, ignoreDelete, ignoreCancel,\n}) => {\n const getMessage = getMessagesFormatter({ ...defaultMessages, ...messages });\n const modalContainer = React.useRef();\n\n const [visible, setVisible] = React.useState(false);\n const [actionType, setActionType] = React.useState('');\n const [hideActionName, setHideActionName] = React.useState('');\n const [appointmentData, setAppointmentData] = React.useState({});\n\n const toggleVisibility = React.useCallback(() => {\n setVisible(!visible);\n }, [visible, setVisible]);\n\n const confirmCancelChanges = React.useCallback((hideAction) => {\n toggleVisibility();\n setHideActionName(hideAction);\n setActionType(ACTION_TYPES.CANCEL);\n }, [toggleVisibility, setHideActionName, setActionType]);\n\n const confirmDelete = React.useCallback(({\n hideActionName: hideAction, appointmentData: changedAppointment,\n }) => {\n toggleVisibility();\n setHideActionName(hideAction);\n setActionType(ACTION_TYPES.DELETE);\n setAppointmentData(changedAppointment);\n }, [toggleVisibility, setHideActionName, setActionType, setAppointmentData]);\n\n const confirmAction = React.useCallback((\n isNewAppointment, hideEditor, stopEditAppointment, finishDeleteAppointment,\n cancelAddedAppointment, cancelChangedAppointment,\n ) => () => {\n hideEditor();\n toggleVisibility();\n if (isNewAppointment) {\n cancelAddedAppointment();\n } else {\n stopEditAppointment();\n cancelChangedAppointment();\n }\n if (actionType === ACTION_TYPES.DELETE) {\n finishDeleteAppointment(appointmentData);\n }\n }, [toggleVisibility, actionType, appointmentData]);\n\n return (\n <Plugin\n name=\"ConfirmationDialog\"\n dependencies={pluginDependencies}\n >\n {!ignoreCancel &&\n <Action name=\"openCancelConfirmationDialog\" action={confirmCancelChanges} />\n }\n {!ignoreDelete &&\n <Action name=\"openDeleteConfirmationDialog\" action={confirmDelete} />\n }\n\n <Template name=\"schedulerRoot\">\n <TemplatePlaceholder />\n <Container ref={modalContainer} />\n <TemplatePlaceholder name=\"confirmationDialogOverlay\" />\n </Template>\n\n <Template name=\"confirmationDialogOverlay\">\n <TemplateConnector>\n {({\n editingAppointment,\n }, actions) => {\n const handleConfirm = confirmAction(\n !editingAppointment, actions[hideActionName], actions.stopEditAppointment,\n actions.finishDeleteAppointment, actions.cancelAddedAppointment,\n actions.cancelChangedAppointment,\n );\n\n return (\n <Overlay\n target={modalContainer}\n visible={visible}\n onHide={toggleVisibility}\n >\n <Layout\n buttonComponent={buttonComponent}\n handleCancel={toggleVisibility}\n handleConfirm={handleConfirm}\n getMessage={getMessage}\n isDeleting={actionType === ACTION_TYPES.DELETE}\n appointmentData={appointmentData as AppointmentModel}\n />\n </Overlay>\n );\n }}\n </TemplateConnector>\n </Template>\n </Plugin>\n );\n};\n\nConfirmationDialogBase.components = {\n overlayComponent: 'Overlay',\n containerComponent: 'Container',\n layoutComponent: 'Layout',\n buttonComponent: 'Button',\n};\n\nConfirmationDialogBase.defaultProps = {\n ignoreCancel: false,\n ignoreDelete: false,\n};\n\n// tslint:disable-next-line: max-line-length\n/** A plugin that renders the dialog which allows users to confirm or to discard delete and cancel appointment actions. */\nexport const ConfirmationDialog: React.ComponentType<\n ConfirmationDialogProps\n> = ConfirmationDialogBase;\n","import * as React from 'react';\nimport {\n Action, Plugin, Getter, StateHelper, ActionFn, createStateHelper,\n} from '@devexpress/dx-react-core';\nimport {\n ToggleGroupPayload, toggleExpandedGroups, HORIZONTAL_GROUP_ORIENTATION,\n} from '@devexpress/dx-scheduler-core';\nimport { GroupingStateProps, GroupingStateState } from '../types';\n\nclass GroupingStateBase extends React.PureComponent<GroupingStateProps, GroupingStateState> {\n static defaultProps = {\n defaultExpandedGroups: [],\n groupByDate: () => false,\n groupOrientation: () => HORIZONTAL_GROUP_ORIENTATION,\n };\n stateHelper: StateHelper;\n toggleGroupExpanded: ActionFn<ToggleGroupPayload>;\n\n constructor(props) {\n super(props);\n\n this.state = {\n grouping: props.grouping,\n expandedGroups: props.expandedGroups || props.defaultExpandedGroups,\n };\n this.stateHelper = createStateHelper(\n this,\n {\n expandedGroups: () => {\n const { onExpandedGroupsChange } = this.props;\n return onExpandedGroupsChange;\n },\n },\n );\n this.toggleGroupExpanded = this.stateHelper.applyReducer\n .bind(this.stateHelper, toggleExpandedGroups);\n }\n\n static getDerivedStateFromProps(nextProps, prevState) {\n const {\n grouping = prevState.grouping,\n expandedGroups = prevState.expandedGroups,\n } = nextProps;\n\n return { grouping, expandedGroups };\n }\n\n render() {\n const { grouping, expandedGroups } = this.state;\n const { groupByDate, groupOrientation } = this.props;\n\n return (\n <Plugin name=\"GroupingState\">\n <Getter name=\"grouping\" value={grouping} />\n <Getter name=\"groupByDate\" value={groupByDate} />\n <Getter name=\"groupOrientation\" value={groupOrientation} />\n\n <Getter name=\"expandedGroups\" value={expandedGroups} />\n <Action name=\"toggleGroupExpanded\" action={this.toggleGroupExpanded} />\n </Plugin>\n );\n }\n}\n\n/** A plugin that manages the grouping state. */\nexport const GroupingState: React.ComponentType<GroupingStateProps> = GroupingStateBase;\n","import * as React from 'react';\nimport {\n Plugin,\n Template,\n TemplateConnector,\n PluginComponents,\n} from '@devexpress/dx-react-core';\nimport { GroupingPanelProps } from '../types';\nimport {\n VERTICAL_VIEW_LEFT_OFFSET, HORIZONTAL_VIEW_LEFT_OFFSET,\n HORIZONTAL_GROUP_ORIENTATION, VIEW_TYPES,\n} from '@devexpress/dx-scheduler-core';\n\nconst pluginDependencies = [\n { name: 'GroupingState' },\n { name: 'IntegratedGrouping' },\n { name: 'DayView', optional: true },\n { name: 'MonthView', optional: true },\n { name: 'WeekView', optional: true },\n { name: 'ViewState', optional: true },\n];\n\nclass GroupingPanelBase extends React.PureComponent<GroupingPanelProps> {\n static components: PluginComponents = {\n horizontalLayoutComponent: 'HorizontalLayout',\n verticalLayoutComponent: 'VerticalLayout',\n rowComponent: 'Row',\n cellComponent: 'Cell',\n };\n\n render() {\n const {\n horizontalLayoutComponent: HorizontalLayout,\n verticalLayoutComponent: VerticalLayout,\n rowComponent,\n cellComponent,\n } = this.props;\n\n return (\n <Plugin\n name=\"GroupingPanel\"\n dependencies={pluginDependencies}\n >\n <Template name=\"groupingPanel\">\n <TemplateConnector>\n {({\n viewCellsData, currentView, scrollingStrategy, allDayPanelExists,\n groupByDate, groupOrientation: getGroupOrientation, groups,\n }) => {\n const groupOrientation = getGroupOrientation(currentView?.name);\n return groupOrientation === HORIZONTAL_GROUP_ORIENTATION ? (\n <HorizontalLayout\n rowComponent={rowComponent}\n cellComponent={cellComponent}\n groups={groups}\n colSpan={viewCellsData[0].length}\n cellStyle={{\n left: scrollingStrategy.fixedLeftWidth ? scrollingStrategy.fixedLeftWidth\n : currentView?.type === VIEW_TYPES.MONTH\n ? HORIZONTAL_VIEW_LEFT_OFFSET\n : VERTICAL_VIEW_LEFT_OFFSET,\n }}\n showHeaderForEveryDate={groupByDate?.(currentView && currentView.name)}\n />\n ) : (\n <VerticalLayout\n rowComponent={rowComponent}\n cellComponent={cellComponent}\n groups={groups}\n rowSpan={viewCellsData.length}\n viewType={currentView?.type}\n cellTextTopOffset={scrollingStrategy?.fixedTopHeight}\n alignWithAllDayRow={allDayPanelExists}\n />\n );\n }}\n </TemplateConnector>\n </Template>\n </Plugin>\n );\n }\n}\n\n/** A plugin that renders the grouping panel used to display group names. */\nexport const GroupingPanel: React.ComponentType<GroupingPanelProps> = GroupingPanelBase;\n","import * as React from 'react';\nimport {\n Plugin,\n Template,\n TemplatePlaceholder,\n} from '@devexpress/dx-react-core';\nimport {\n isMonthCell, isShadedAppointment,\n isCellShaded, getCurrentTimeIndicatorTop,\n} from '@devexpress/dx-scheduler-core';\nimport { CurrentTimeIndicatorProps, Appointments } from '../types';\n\nconst pluginDependencies = [\n { name: 'DayView', optional: true },\n { name: 'WeekView', optional: true },\n { name: 'MonthView', optional: true },\n { name: 'DragDropProvider', optional: true },\n { name: 'Appointments', optional: true },\n];\n\nconst CurrentTimeIndicatorBase: React.FunctionComponent<CurrentTimeIndicatorProps> & {components: {\n indicatorComponent: string,\n}} = ({\n indicatorComponent, shadePreviousAppointments, shadePreviousCells, updateInterval,\n}) => {\n const [currentTime, setCurrentTime] = React.useState(Date.now);\n\n React.useEffect(() => {\n const tick = () => setCurrentTime(Date.now());\n const intervalId = (updateInterval\n ? window.setInterval(tick, updateInterval)\n : undefined\n );\n return () => window.clearInterval(intervalId);\n }, [updateInterval]);\n\n return (\n <Plugin\n name=\"CurrentTimeIndicator\"\n dependencies={pluginDependencies}\n >\n <Template\n name=\"cell\"\n predicate={({ otherMonth }: any) => !isMonthCell(otherMonth)}\n >\n {(params: any) => (\n <TemplatePlaceholder\n params={{\n ...params,\n currentTimeIndicatorPosition: getCurrentTimeIndicatorTop(params, currentTime),\n currentTimeIndicatorComponent: indicatorComponent,\n }}\n />\n )}\n </Template>\n <Template\n name=\"cell\"\n >\n {(params: any) => (\n <TemplatePlaceholder\n params={{\n ...params,\n isShaded: isCellShaded(params, currentTime, shadePreviousCells),\n }}\n />\n )}\n </Template>\n <Template\n name=\"appointmentContent\"\n >\n {(params: Appointments.AppointmentProps) => (\n <TemplatePlaceholder\n params={{\n ...params,\n isShaded: isShadedAppointment(\n params, currentTime, shadePreviousAppointments,\n ),\n }}\n />\n )}\n </Template>\n <Template\n name=\"draftAppointment\"\n >\n {(params: Appointments.AppointmentProps) => (\n <TemplatePlaceholder\n params={{\n ...params,\n isShaded: isShadedAppointment(\n params, currentTime, shadePreviousAppointments,\n ),\n }}\n />\n )}\n </Template>\n </Plugin>\n );\n};\n\nCurrentTimeIndicatorBase.defaultProps = {\n updateInterval: 60000,\n shadePreviousCells: false,\n shadePreviousAppointments: false,\n};\n\nCurrentTimeIndicatorBase.components = {\n indicatorComponent: 'Indicator',\n};\n\n// tslint:disable-next-line: max-line-length\n/** A plugin that renders the current time indicator and the shading that covers appointments and timetable cells up to the current time. */\nexport const CurrentTimeIndicator: React.ComponentType<\n CurrentTimeIndicatorProps\n> = CurrentTimeIndicatorBase;\n","import * as React from 'react';\nimport { Plugin, Getter, Getters } from '@devexpress/dx-react-core';\nimport {\n getGroupsFromResources, expandViewCellsDataWithGroups,\n sortFilteredResources, filterResourcesByGrouping, updateGroupingWithMainResource,\n expandGroups, VERTICAL_GROUP_ORIENTATION, VIEW_TYPES,\n updateTimeTableCellElementsMeta, updateAllDayCellElementsMeta, updateTimeCellsData,\n} from '@devexpress/dx-scheduler-core';\nimport { IntegratedGroupingProps } from '../types';\n\nconst pluginDependencies = [\n { name: 'Resources' },\n { name: 'GroupingState' },\n { name: 'DayView', optional: true },\n { name: 'MonthView', optional: true },\n { name: 'WeekView', optional: true },\n];\n\nconst getViewCellsDataComputed = ({\n viewCellsData, groups, resourcesToGroupBy, groupByDate, currentView, groupOrientation,\n}: Getters) => expandViewCellsDataWithGroups(\n viewCellsData, groups, resourcesToGroupBy,\n groupByDate(currentView.name), groupOrientation(currentView.name),\n);\nconst getAllDayCellsDataComputed = ({\n allDayCellsData, groups, resourcesToGroupBy, groupByDate, currentView, groupOrientation,\n}: Getters) => allDayCellsData && expandViewCellsDataWithGroups(\n allDayCellsData, groups, resourcesToGroupBy,\n groupByDate(currentView.name), groupOrientation(currentView.name),\n);\n\nconst getGroupsComputed = (\n { resourcesToGroupBy }: Getters,\n) => getGroupsFromResources(resourcesToGroupBy);\n\nconst getResourcesToGroupByComputed = (\n { resources, grouping }: Getters,\n) => sortFilteredResources(filterResourcesByGrouping(resources, grouping), grouping);\n\nconst getGroupingComputed = (\n { grouping, resources }: Getters,\n) => updateGroupingWithMainResource(grouping, resources);\n\nconst getTimeTableAppointmentsComputed = ({\n timeTableAppointments, grouping, resourcesToGroupBy,\n groups, groupByDate, currentView, excludedDays,\n}: Getters) => timeTableAppointments\n && expandGroups(\n timeTableAppointments, grouping, resourcesToGroupBy, groups,\n excludedDays, groupByDate(currentView?.name) && currentView?.type === VIEW_TYPES.MONTH,\n );\n\nconst getAllDayAppointmentsComputed = ({\n allDayAppointments, grouping, resourcesToGroupBy,\n groups, groupByDate, currentView, excludedDays,\n }: Getters) => allDayAppointments &&\n expandGroups(\n allDayAppointments, grouping, resourcesToGroupBy,\n groups, excludedDays, groupByDate(currentView?.name),\n );\n\nconst getGroupByDateComputed = ({\n currentView, groupByDate, groupOrientation,\n}: Getters) => groupOrientation(currentView?.name) === VERTICAL_GROUP_ORIENTATION\n ? () => false : groupByDate;\n\nconst getTimeTableElementsMetaComputed = ({\n timeTableElementsMeta, groupOrientation, groups, allDayPanelExists, viewCellsData, currentView,\n}: Getters) => updateTimeTableCellElementsMeta(\n timeTableElementsMeta, groupOrientation, groups, allDayPanelExists, viewCellsData, currentView,\n);\n\nconst getAllDayElementsMetaComputed = ({\n allDayElementsMeta, timeTableElementsMeta, groupOrientation, groups,\n allDayPanelExists, viewCellsData, currentView,\n}: Getters) => updateAllDayCellElementsMeta(\n allDayElementsMeta, timeTableElementsMeta, groupOrientation, groups,\n allDayPanelExists, viewCellsData, currentView,\n);\n\nconst getTimeCellsDataComputed = ({\n viewCellsData, timeCellsData, currentView,\n groups, resourcesToGroupBy, groupOrientation,\n}: Getters) => timeCellsData\n && updateTimeCellsData(\n viewCellsData,\n timeCellsData,\n groups,\n resourcesToGroupBy,\n groupOrientation(currentView.name),\n );\n\nconst IntegratedGroupingBase: React.FunctionComponent<IntegratedGroupingProps> = React.memo(() => (\n <Plugin\n name=\"IntegratedGrouping\"\n dependencies={pluginDependencies}\n >\n <Getter name=\"groupByDate\" computed={getGroupByDateComputed} />\n <Getter name=\"grouping\" computed={getGroupingComputed} />\n <Getter name=\"resourcesToGroupBy\" computed={getResourcesToGroupByComputed} />\n <Getter name=\"groups\" computed={getGroupsComputed} />\n\n <Getter name=\"viewCellsData\" computed={getViewCellsDataComputed} />\n <Getter name=\"allDayCellsData\" computed={getAllDayCellsDataComputed} />\n <Getter name=\"timeCellsData\" computed={getTimeCellsDataComputed} />\n\n <Getter name=\"timeTableAppointments\" computed={getTimeTableAppointmentsComputed} />\n <Getter name=\"allDayAppointments\" computed={getAllDayAppointmentsComputed} />\n\n <Getter name=\"allDayElementsMeta\" computed={getAllDayElementsMetaComputed} />\n <Getter name=\"timeTableElementsMeta\" computed={getTimeTableElementsMetaComputed} />\n </Plugin>\n));\n\n/** A plugin that implements grouping. */\nexport const IntegratedGrouping: React.ComponentType<\n IntegratedGroupingProps\n> = IntegratedGroupingBase;\n"],"names":["memoize","formatDateTimeGetter","React.createElement","Plugin","Getter","appointments","Template","TemplatePlaceholder","React.PureComponent","PluginHost","startViewDateCore","endViewDateCore","computed","availableViewsCore","TemplateConnector","VERTICAL_GROUP_ORIENTATION","HORIZONTAL_GROUP_ORIENTATION","calculateWeekDateIntervals","timeCellsDataCore","getTimeTableHeight","viewCellsDataCore","VIEW_TYPES","viewCellsDataBaseComputed","monthCellsData","calculateAppointmentsIntervalsBaseComputed","calculateMonthDateIntervals","viewBoundText","React.Fragment","pluginDependencies","getAppointmentStyle","isTimeTableElementsMetaActual","getGroupsLastRow","VERTICAL_TYPE","getVerticalRectByAppointmentData","HORIZONTAL_TYPE","getHorizontalRectByAppointmentData","calculateRectByDateAndGroupIntervals","isAllDayElementsMetaActual","createClickHandlers","POSITION_START","POSITION_END","CellPlaceholder","allDayCells","calculateAllDayDateIntervals","getMessagesFormatter","createStateHelper","changeCurrentDate","setCurrentViewName","Action","addAppointment","changeAppointment","cancelAddedAppointment","startEditAppointment","stopEditAppointment","cancelChanges","RECURRENCE_EDIT_SCOPE","changedAppointmentById","preCommitChangesBase","OPEN_COMMAND_BUTTON","CLOSE_COMMAND_BUTTON","DELETE_COMMAND_BUTTON","setAppointmentMeta","TOGGLE_APPOINTMENT_TOOLTIP_VISIBILITY","getAppointmentResources","checkMultipleResourceFields","callActionIfExists","defaultMessages","React.createRef","TOGGLE_APPOINTMENT_FORM_VISIBILITY","setAppointmentData","isAllDayCell","autoScroll","cellIndex","cellData","cellType","calculateInsidePart","intervalDuration","calculateAppointmentTimeBoundaries","calculateAppointmentGroups","appointmentDragged","calculateDraftAppointments","DragDropProviderCore","DropTarget","PlaceholderWithRef","DragSource","RESIZE_TOP","RESIZE_BOTTOM","SCROLL_SPEED_PX","addResourcesToAppointments","React.memo","convertResourcesToPlain","validateResources","React.useRef","React.useState","React.useCallback","toggleExpandedGroups","HORIZONTAL_VIEW_LEFT_OFFSET","VERTICAL_VIEW_LEFT_OFFSET","React.useEffect","isMonthCell","getCurrentTimeIndicatorTop","isCellShaded","isShadedAppointment","expandViewCellsDataWithGroups","getGroupsFromResources","sortFilteredResources","filterResourcesByGrouping","updateGroupingWithMainResource","expandGroups","updateTimeTableCellElementsMeta","updateAllDayCellElementsMeta","updateTimeCellsData"],"mappings":"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"}