UNPKG

devextreme-react

Version:

DevExtreme React UI and Visualization Components

358 lines (356 loc) • 16.5 kB
/*! * devextreme-react * Version: 24.2.6 * Build date: Mon Mar 17 2025 * * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED * * This software may be modified and distributed under the terms * of the MIT license. See the LICENSE file in the root of the project for details. * * https://github.com/DevExpress/devextreme-react */ import * as React from "react"; import { Ref, ReactElement } from "react"; import dxScheduler, { Properties } from "devextreme/ui/scheduler"; import { IHtmlOptions, NestedComponentMeta } from "./core/component"; import type { ViewType, AppointmentAddedEvent, AppointmentAddingEvent, AppointmentClickEvent, AppointmentContextMenuEvent, AppointmentDblClickEvent, AppointmentDeletedEvent, AppointmentDeletingEvent, AppointmentFormOpeningEvent, AppointmentRenderedEvent, AppointmentTooltipShowingEvent, AppointmentUpdatedEvent, AppointmentUpdatingEvent, CellClickEvent, CellContextMenuEvent, ContentReadyEvent, DisposingEvent, InitializedEvent, AllDayPanelMode, AppointmentTemplateData, AppointmentTooltipTemplateData, CellAppointmentsLimit, dxSchedulerScrolling } from "devextreme/ui/scheduler"; import type { event } from "devextreme/events/events.types"; import type { DataSourceOptions } from "devextreme/data/data_source"; import type { Store } from "devextreme/data/store"; import type { ScrollMode, template, FirstDayOfWeek, Orientation } from "devextreme/common"; import type dxSortable from "devextreme/ui/sortable"; import type dxDraggable from "devextreme/ui/draggable"; import type DataSource from "devextreme/data/data_source"; type ReplaceFieldTypes<TSource, TReplacement> = { [P in keyof TSource]: P extends keyof TReplacement ? TReplacement[P] : TSource[P]; }; type ISchedulerOptionsNarrowedEvents = { onAppointmentAdded?: ((e: AppointmentAddedEvent) => void); onAppointmentAdding?: ((e: AppointmentAddingEvent) => void); onAppointmentClick?: ((e: AppointmentClickEvent) => void); onAppointmentContextMenu?: ((e: AppointmentContextMenuEvent) => void); onAppointmentDblClick?: ((e: AppointmentDblClickEvent) => void); onAppointmentDeleted?: ((e: AppointmentDeletedEvent) => void); onAppointmentDeleting?: ((e: AppointmentDeletingEvent) => void); onAppointmentFormOpening?: ((e: AppointmentFormOpeningEvent) => void); onAppointmentRendered?: ((e: AppointmentRenderedEvent) => void); onAppointmentTooltipShowing?: ((e: AppointmentTooltipShowingEvent) => void); onAppointmentUpdated?: ((e: AppointmentUpdatedEvent) => void); onAppointmentUpdating?: ((e: AppointmentUpdatingEvent) => void); onCellClick?: ((e: CellClickEvent) => void); onCellContextMenu?: ((e: CellContextMenuEvent) => void); onContentReady?: ((e: ContentReadyEvent) => void); onDisposing?: ((e: DisposingEvent) => void); onInitialized?: ((e: InitializedEvent) => void); }; type ISchedulerOptions = React.PropsWithChildren<ReplaceFieldTypes<Properties, ISchedulerOptionsNarrowedEvents> & IHtmlOptions & { appointmentCollectorRender?: (...params: any) => React.ReactNode; appointmentCollectorComponent?: React.ComponentType<any>; appointmentRender?: (...params: any) => React.ReactNode; appointmentComponent?: React.ComponentType<any>; appointmentTooltipRender?: (...params: any) => React.ReactNode; appointmentTooltipComponent?: React.ComponentType<any>; dataCellRender?: (...params: any) => React.ReactNode; dataCellComponent?: React.ComponentType<any>; dateCellRender?: (...params: any) => React.ReactNode; dateCellComponent?: React.ComponentType<any>; dropDownAppointmentRender?: (...params: any) => React.ReactNode; dropDownAppointmentComponent?: React.ComponentType<any>; resourceCellRender?: (...params: any) => React.ReactNode; resourceCellComponent?: React.ComponentType<any>; timeCellRender?: (...params: any) => React.ReactNode; timeCellComponent?: React.ComponentType<any>; defaultCurrentDate?: Date | number | string; defaultCurrentView?: string | ViewType; onCurrentDateChange?: (value: Date | number | string) => void; onCurrentViewChange?: (value: string | ViewType) => void; }>; interface SchedulerRef { instance: () => dxScheduler; } declare const Scheduler: (props: React.PropsWithChildren<ISchedulerOptions> & { ref?: Ref<SchedulerRef>; }) => ReactElement | null; type IAppointmentDraggingProps = React.PropsWithChildren<{ autoScroll?: boolean; data?: any | undefined; group?: string | undefined; onAdd?: ((e: { component: dxScheduler; event: event; fromComponent: dxSortable | dxDraggable; fromData: any; itemData: any; itemElement: any; toComponent: dxSortable | dxDraggable; toData: any; }) => void); onDragEnd?: ((e: { cancel: boolean; component: dxScheduler; event: event; fromComponent: dxSortable | dxDraggable; fromData: any; itemData: any; itemElement: any; toComponent: dxSortable | dxDraggable; toData: any; toItemData: any; }) => void); onDragMove?: ((e: { cancel: boolean; component: dxScheduler; event: event; fromComponent: dxSortable | dxDraggable; fromData: any; itemData: any; itemElement: any; toComponent: dxSortable | dxDraggable; toData: any; }) => void); onDragStart?: ((e: { cancel: boolean; component: dxScheduler; event: event; fromData: any; itemData: any; itemElement: any; }) => void); onRemove?: ((e: { component: dxScheduler; event: event; fromComponent: dxSortable | dxDraggable; fromData: any; itemData: any; itemElement: any; toComponent: dxSortable | dxDraggable; }) => void); scrollSensitivity?: number; scrollSpeed?: number; }>; declare const AppointmentDragging: ((props: IAppointmentDraggingProps) => React.FunctionComponentElement<React.PropsWithChildren<{ autoScroll?: boolean | undefined; data?: any | undefined; group?: string | undefined; onAdd?: ((e: { component: dxScheduler; event: event; fromComponent: dxSortable | dxDraggable; fromData: any; itemData: any; itemElement: any; toComponent: dxSortable | dxDraggable; toData: any; }) => void) | undefined; onDragEnd?: ((e: { cancel: boolean; component: dxScheduler; event: event; fromComponent: dxSortable | dxDraggable; fromData: any; itemData: any; itemElement: any; toComponent: dxSortable | dxDraggable; toData: any; toItemData: any; }) => void) | undefined; onDragMove?: ((e: { cancel: boolean; component: dxScheduler; event: event; fromComponent: dxSortable | dxDraggable; fromData: any; itemData: any; itemElement: any; toComponent: dxSortable | dxDraggable; toData: any; }) => void) | undefined; onDragStart?: ((e: { cancel: boolean; component: dxScheduler; event: event; fromData: any; itemData: any; itemElement: any; }) => void) | undefined; onRemove?: ((e: { component: dxScheduler; event: event; fromComponent: dxSortable | dxDraggable; fromData: any; itemData: any; itemElement: any; toComponent: dxSortable | dxDraggable; }) => void) | undefined; scrollSensitivity?: number | undefined; scrollSpeed?: number | undefined; } & { children?: React.ReactNode; } & { elementDescriptor: import("./core/configuration/react/element").IElementDescriptor; }>>) & NestedComponentMeta; type IEditingProps = React.PropsWithChildren<{ allowAdding?: boolean; allowDeleting?: boolean; allowDragging?: boolean; allowResizing?: boolean; allowTimeZoneEditing?: boolean; allowUpdating?: boolean; }>; declare const Editing: ((props: IEditingProps) => React.FunctionComponentElement<React.PropsWithChildren<{ allowAdding?: boolean | undefined; allowDeleting?: boolean | undefined; allowDragging?: boolean | undefined; allowResizing?: boolean | undefined; allowTimeZoneEditing?: boolean | undefined; allowUpdating?: boolean | undefined; } & { children?: React.ReactNode; } & { elementDescriptor: import("./core/configuration/react/element").IElementDescriptor; }>>) & NestedComponentMeta; type IResourceProps = React.PropsWithChildren<{ allowMultiple?: boolean; colorExpr?: string; dataSource?: Array<any> | DataSource | DataSourceOptions | null | Store | string; displayExpr?: ((resource: any) => string) | string; fieldExpr?: string; label?: string; useColorAsDefault?: boolean; valueExpr?: (() => void) | string; }>; declare const Resource: ((props: IResourceProps) => React.FunctionComponentElement<React.PropsWithChildren<{ allowMultiple?: boolean | undefined; colorExpr?: string | undefined; dataSource?: string | any[] | DataSource<any, any> | DataSourceOptions<any, any, any, any> | Store<any, any> | null | undefined; displayExpr?: string | ((resource: any) => string) | undefined; fieldExpr?: string | undefined; label?: string | undefined; useColorAsDefault?: boolean | undefined; valueExpr?: string | (() => void) | undefined; } & { children?: React.ReactNode; } & { elementDescriptor: import("./core/configuration/react/element").IElementDescriptor; }>>) & NestedComponentMeta; type IScrollingProps = React.PropsWithChildren<{ mode?: ScrollMode; }>; declare const Scrolling: ((props: IScrollingProps) => React.FunctionComponentElement<React.PropsWithChildren<{ mode?: ScrollMode | undefined; } & { children?: React.ReactNode; } & { elementDescriptor: import("./core/configuration/react/element").IElementDescriptor; }>>) & NestedComponentMeta; type IViewProps = React.PropsWithChildren<{ agendaDuration?: number; allDayPanelMode?: AllDayPanelMode; appointmentCollectorTemplate?: ((data: { appointmentCount: number; isCompact: boolean; }, collectorElement: any) => string | any) | template; appointmentTemplate?: ((model: AppointmentTemplateData | { appointmentData: Record<string, any>; targetedAppointmentData: Record<string, any>; }, itemIndex: number, contentElement: any) => string | any) | template; appointmentTooltipTemplate?: ((model: AppointmentTooltipTemplateData | { appointmentData: Record<string, any>; targetedAppointmentData: Record<string, any>; }, itemIndex: number, contentElement: any) => string | any) | template; cellDuration?: number; dataCellTemplate?: ((itemData: any, itemIndex: number, itemElement: any) => string | any) | template; dateCellTemplate?: ((itemData: any, itemIndex: number, itemElement: any) => string | any) | template; dropDownAppointmentTemplate?: ((itemData: any, itemIndex: number, contentElement: any) => string | any) | template; endDayHour?: number; firstDayOfWeek?: FirstDayOfWeek | undefined; groupByDate?: boolean; groupOrientation?: Orientation; groups?: Array<string>; intervalCount?: number; maxAppointmentsPerCell?: CellAppointmentsLimit | number; name?: string | undefined; offset?: number; resourceCellTemplate?: ((itemData: any, itemIndex: number, itemElement: any) => string | any) | template; scrolling?: dxSchedulerScrolling; startDate?: Date | number | string | undefined; startDayHour?: number; timeCellTemplate?: ((itemData: any, itemIndex: number, itemElement: any) => string | any) | template; type?: undefined | ViewType; appointmentCollectorRender?: (...params: any) => React.ReactNode; appointmentCollectorComponent?: React.ComponentType<any>; appointmentRender?: (...params: any) => React.ReactNode; appointmentComponent?: React.ComponentType<any>; appointmentTooltipRender?: (...params: any) => React.ReactNode; appointmentTooltipComponent?: React.ComponentType<any>; dataCellRender?: (...params: any) => React.ReactNode; dataCellComponent?: React.ComponentType<any>; dateCellRender?: (...params: any) => React.ReactNode; dateCellComponent?: React.ComponentType<any>; dropDownAppointmentRender?: (...params: any) => React.ReactNode; dropDownAppointmentComponent?: React.ComponentType<any>; resourceCellRender?: (...params: any) => React.ReactNode; resourceCellComponent?: React.ComponentType<any>; timeCellRender?: (...params: any) => React.ReactNode; timeCellComponent?: React.ComponentType<any>; }>; declare const View: ((props: IViewProps) => React.FunctionComponentElement<React.PropsWithChildren<{ agendaDuration?: number | undefined; allDayPanelMode?: AllDayPanelMode | undefined; appointmentCollectorTemplate?: template | ((data: { appointmentCount: number; isCompact: boolean; }, collectorElement: any) => string | any) | undefined; appointmentTemplate?: template | ((model: AppointmentTemplateData | { appointmentData: Record<string, any>; targetedAppointmentData: Record<string, any>; }, itemIndex: number, contentElement: any) => string | any) | undefined; appointmentTooltipTemplate?: template | ((model: AppointmentTooltipTemplateData | { appointmentData: Record<string, any>; targetedAppointmentData: Record<string, any>; }, itemIndex: number, contentElement: any) => string | any) | undefined; cellDuration?: number | undefined; dataCellTemplate?: template | ((itemData: any, itemIndex: number, itemElement: any) => string | any) | undefined; dateCellTemplate?: template | ((itemData: any, itemIndex: number, itemElement: any) => string | any) | undefined; dropDownAppointmentTemplate?: template | ((itemData: any, itemIndex: number, contentElement: any) => string | any) | undefined; endDayHour?: number | undefined; firstDayOfWeek?: FirstDayOfWeek | undefined; groupByDate?: boolean | undefined; groupOrientation?: Orientation | undefined; groups?: string[] | undefined; intervalCount?: number | undefined; maxAppointmentsPerCell?: number | CellAppointmentsLimit | undefined; name?: string | undefined; offset?: number | undefined; resourceCellTemplate?: template | ((itemData: any, itemIndex: number, itemElement: any) => string | any) | undefined; scrolling?: dxSchedulerScrolling | undefined; startDate?: Date | number | string | undefined; startDayHour?: number | undefined; timeCellTemplate?: template | ((itemData: any, itemIndex: number, itemElement: any) => string | any) | undefined; type?: undefined | ViewType; appointmentCollectorRender?: ((...params: any) => React.ReactNode) | undefined; appointmentCollectorComponent?: React.ComponentType<any> | undefined; appointmentRender?: ((...params: any) => React.ReactNode) | undefined; appointmentComponent?: React.ComponentType<any> | undefined; appointmentTooltipRender?: ((...params: any) => React.ReactNode) | undefined; appointmentTooltipComponent?: React.ComponentType<any> | undefined; dataCellRender?: ((...params: any) => React.ReactNode) | undefined; dataCellComponent?: React.ComponentType<any> | undefined; dateCellRender?: ((...params: any) => React.ReactNode) | undefined; dateCellComponent?: React.ComponentType<any> | undefined; dropDownAppointmentRender?: ((...params: any) => React.ReactNode) | undefined; dropDownAppointmentComponent?: React.ComponentType<any> | undefined; resourceCellRender?: ((...params: any) => React.ReactNode) | undefined; resourceCellComponent?: React.ComponentType<any> | undefined; timeCellRender?: ((...params: any) => React.ReactNode) | undefined; timeCellComponent?: React.ComponentType<any> | undefined; } & { children?: React.ReactNode; } & { elementDescriptor: import("./core/configuration/react/element").IElementDescriptor; }>>) & NestedComponentMeta; export default Scheduler; export { Scheduler, ISchedulerOptions, SchedulerRef, AppointmentDragging, IAppointmentDraggingProps, Editing, IEditingProps, Resource, IResourceProps, Scrolling, IScrollingProps, View, IViewProps }; import type * as SchedulerTypes from 'devextreme/ui/scheduler_types'; export { SchedulerTypes };