SchedulerBase

A thin base class for Scheduler. Does not include any features by default, allowing smaller custom-built bundles if used in place of Scheduler.

NOTE: In most scenarios you do probably want to use Scheduler instead of SchedulerBase.

Configs

263

Common

keyMap: Object<String, KeyMapConfig>

See Keyboard shortcuts for details

mode: horizontal | verticalAlso a property

Scheduler mode. Supported values: horizontal, vertical

rowHeight: Number= 60

The height in pixels of Scheduler rows.

columnsGridBase
dataGridBase
emptyTextGridBase
endDateTimelineBase
featuresGridBase
listenersEvents
maxDateTimelineBase
minDateTimelineBase
presetsTimelineViewPresets
startDateTimelineBase
storeGridBase
viewPresetTimelineViewPresets
visibleDateTimelineBase

Calendar integration

The date to display when used as a component of a Calendar.

This is required by the Calendar Mode Interface.

Range used to set the length of the time axis when used as a component of a Calendar. Suitable units are 'month', 'week' and 'day'.

This may also be specified as a duration with a magnitude part and a unit part. For example '1m' would mean one month, and '4w' would mean four weeks. See parseDuration for details of syntax.

When using a range of weeks or months, then when this widget's date is synced with its owning Calendar's date property, this widget's startDate is snapped to the closest start point of the range which encompasses that date.

So if using range : '1w', then setting the date to Thursday, 28th October 2021 Would mean that the startDate snaps to Sunday 24th October 2021 (assuming the locale uses Sunday as the week start day).

This property is for use when the Scheduler is used as a Calendar view - a mode. it will have no effect on a Scheduler which is not inside a Calendar.
The time range to move by when next or previous is called.

If not specified, this view moves by its duration in days as derived from its range.

Valid values are:

  • day
  • week
  • month
  • year
  • decade

This may also be specified as a duration with a magnitude part and a unit part. For example '1m' would mean one month, and '4w' would mean four weeks. See parseDuration for details of syntax.

When using a range of weeks, months, years or decades, then when this widget's date is synced with its owning Calendar's date, this widget's startDate is snapped to the closest start point of the range which encompasses that date.

So if using range : '1w', then setting the date to Thursday, 28th October 2021 Would mean that the startDate snaps to Sunday 24th October 2021 (assuming the locale uses Sunday as the week start day).

If configured to use a range of days, no snapping is done. There's no defined start point so the startDate is set to the incoming Calendar date.

Data

Inline assignments, will be loaded into an internally created AssignmentStore.

The optional AssignmentStore, holding assignments between resources and events. Required for multi assignments.

Inline dependencies, will be loaded into an internally created DependencyStore.

Inline events, will be loaded into an internally created EventStore.

The EventStore holding the events to be rendered into the scheduler (required).

Inline resources, will be loaded into an internally created ResourceStore.

The ResourceStore holding the resources to be rendered into the scheduler (required).

crudManagerSchedulerStores
crudManagerClassSchedulerStores
destroyStoresProjectConsumer
endParamNameSchedulerStores
projectProjectConsumer
resourceTimeRangesSchedulerStores
resourceTimeRangeStoreSchedulerStores
startParamNameSchedulerStores
timeRangesSchedulerStores
timeRangeStoreSchedulerStores

Layout

getRowHeight: function

Scheduler overrides Grid's default implementation of getRowHeight to pre-calculate row heights based on events in the rows.

The amount of rows that are pre-calculated is limited for performance reasons. The limit is configurable by specifying the preCalculateHeightLimit config.

The results of the calculation are cached internally.

Apps are not currently intended to override this logic, instead they can control height of individual rows using a cell renderer. See the snippet below for an example.

new Scheduler({
    columns : [
        {
            text  : 'Name',
            field : 'name',
            width : 130,
            renderer({ value, record, size }) {
                // Set your desired height here
                size.height = record.parentIndex % 2 === 0 ? 100 : 40;

                return value;
            }
        }
    ]
});

Also note that the height set is used as the base height for the event layout used, for example if stacking two events in a stack layout, the row will be twice as heigh (+ any margins).

ParameterTypeDescription
getRowHeight.recordResourceModel

Resource record to determine row height for

Returns: Number -

Desired row height

Maximum number of resources for which height is pre-calculated. If you have many events per resource you might want to lower this number to gain some initial rendering performance.

Specify a falsy value to opt out of row height pre-calculation.

alignSelfWidget
autoHeightGridBase
dockWidget
flexWidget
heightWidget
hiddenWidget
hideWhenEmptyContainer
layoutContainer
layoutStyleContainer
marginWidget
maxHeightWidget
maxWidthWidget
minHeightGridBase
minWidthWidget
textAlignWidget
weightWidget
widthWidget

Masking

By default, when the EventStore (and similar stores) is lazy loading, a loading indicator will be displayed just below the timeline headers. Set this to false to prevent this indicator being shown.

loadMaskLoadMaskable
loadMaskDefaultsLoadMaskable
loadMaskErrorLoadMaskable
syncMaskLoadMaskable

Misc

readOnly: Boolean= falseAlso a property

Configure as true to make the scheduler read-only, by disabling any UIs for modifying data.

Note that checks MUST always also be applied at the server side.

responsiveLevels: Object<String, (Number|String|SchedulerResponsiveLevelConfig)>

"Break points" for which responsive config to use.

Each level can be specified as:

  • A number representing the width threshold (e.g., 400)
  • The string '*' to match all sizes above other thresholds
  • A SchedulerResponsiveLevelConfig object with levelWidth and scheduler properties

See the responsive guide for details and examples.

showEventColorPickers: Boolean= false

If set to true this will show a color field in the EventEdit editor and also a picker in the EventMenu. Both enables the user to choose a color which will be applied to the event bar's background. See EventModel's eventColor config. config.

By default, scrolling the schedule will update the timelineContext to reflect the new currently hovered context. When displaying a large number of events on screen at the same time, this will have a slight impact on scrolling performance. In such scenarios, opt out of this behavior by setting this config to false.

cellEllipsisGridBase
columnLinesGridBase
dataFieldWidget
defaultRegionTimelineBase
destroyStoreGridBase
disabledWidget
enableDeleteKeyEventNavigation
enableStickyGridBase
enableUndoRedoKeysGridElementEvents
hideFootersGridBase
hideHeadersGridBase
hideRowHoverTimelineBase
hoverClsGridElementEvents
iconPanel
initialAnimationDurationSchedulerEventRendering
localeClassLocalizable
localizableLocalizable
longPressTimeGridElementEvents
maskDefaultsGridBase
maskedWidget
overlappingEventSorterSchedulerEventRendering
ownerWidget
pluginsPluggable
refWidget
rippleWidget
rowLinesGridBase
showDirtyGridBase
tabWidget
timeZoneTimelineBase
titlePanel
tooltipWidget
useInitialAnimationSchedulerEventRendering

Other

Set to true for child nodes in a tree store to inherit their parent´s eventColor

This property is for use when the Scheduler is used as a Calendar view - a mode.

A Menu configuration block which configures the range choosing menu provided which by default selects one of the following:

  • day
  • week
  • month
  • year
  • decade

This menu is added to the TimeAxisHeaderMenu when the Scheduler is used as a Calendar view.

This may be used to either reconfigure that menu, or, by configuring it as null, could remove the menu entirely if the date range of this view is controlled by other means.

The individual range menu items are under the items property and have the following property names:

  • listRangeDayItem
  • listRangeWeekItem
  • listRangeMonthItem
  • listRangeYearItem
  • listRangeDecadeItem

These may be reconfigured:

calendar = new Calendar({
    ...
    modes : {
        timeline : {
            type          : 'scheduler',
            range         : 'month',
            listRangeMenu : {
                items : {
                    // We don't want the decade range option
                    listRangeDecadeItem : null
                }
            }
        }
    }
});

Configure UI transitions for various actions in the grid.

ParameterTypeDescription
insertRecordBoolean

Transition record insertions

removeRecordBoolean

Transition record removals

toggleColumnBoolean

Transition column visibility changes

expandCollapseColumnBoolean

Transition parent/group column expand/collapse

toggleRegionBoolean

Transition region expand/collapse

toggleTreeNodeBoolean

Transition tree node expand/collapse

toggleGroupBoolean

Transition group expand/collapse

filterRemovalBoolean

Transition row removals caused by filtering (under specific conditions)

removeEventBoolean

Transition event removals

changeEventBoolean

Transition event changes

columnWidget
dateFormatDescribable
dateSeparatorDescribable
defaultFocusContainer
drawerPanel
enableTransactionalFeaturesTransactionalFeatureMixin
eventReleaseThresholdSchedulerEventRendering
labelPositionContainer
minPackSizeSchedulerEventRendering
passStartEndParametersSchedulerStores
renditionContainer
rtlRTL
spanWidget
stateSettingsGridState

Scheduled events

Set to false if you don't want to allow events overlapping times for any one resource (defaults to true).

Note that toggling this at runtime won't affect already overlapping events.
autoCreate: Boolean | String | ObjectAlso a property

If this config is set, then its gesture property (which defaults to dblclick) creates a new event at the mouse or touch event's time point.

When set to true, the gesture is dblclick, and the new event will have a duration of 1 time axis tick.

This may be specified as the string DOM event name to listen for, such as 'click', 'dblclick' and the new event will have a duration of 1 time axis tick.

The duration of the new event can be set by specifying the duration property as a DurationConfig.

If that is not set, then setting the useEventModelDefaults property will cause the duration to be specified by the default values of the duration and durationUnit fields

Example:

new Scheduler({
    autoCreate : {
        gesture  : 'click',
        duration : '2 hours',
        newName  : 'New appointment'
    }
});
ParameterTypeDescription
autoCreate.gestureclick | dblclick

The gesture to trigger auto creation of an event. Defaults to dblclick.

autoCreate.useEventModelDefaultsBoolean

Set to true to set default duration based on the defaults specified by the duration and durationUnit fields.

autoCreate.snapTyperound | ceil | floor

The type of snapping to apply to the event start date. If omitted, the date will be floored to the time axis resolution.

autoCreate.stepDurationConfig | String

The increment to snap the event start date to.

autoCreate.durationDurationConfig | String

The duration of the event to create. Defaults to 1 time axis tick.

autoCreate.nameString

The name of the event to create. Defaults to the Object.newEvent property from the locale.

A method allowing you to define date boundaries that will constrain resize, create and drag drop operations. The method will be called with the Resource record, and the Event record.

 new Scheduler({
     getDateConstraints(resourceRecord, eventRecord) {
         // Assuming you have added these extra fields to your own EventModel subclass
         const { minStartDate, maxEndDate } = eventRecord;

         return {
             start : minStartDate,
             end   : maxEndDate
         };
     }
 });
ParameterTypeDescription
resourceRecordResourceModel

The resource record

eventRecordEventModel

The event record

Returns: DateConstraint -

Constraining Object containing start and end constraints. Omitting either will mean that end is not constrained. So you can prevent a resize or move from moving before a certain time while not constraining the end date.

barMarginSchedulerEventRendering
displayDateFormatTimelineViewPresets
enableRecurringEventsRecurringEvents
eventBarTextFieldSchedulerEventRendering
eventColorTimelineEventRendering
eventLayoutSchedulerEventRendering
eventRendererSchedulerEventRendering
eventRendererThisObjSchedulerEventRendering
eventStyleTimelineEventRendering
fillTicksTimelineEventRendering
managedEventSizingTimelineEventRendering
narrowEventWidthSchedulerEventRendering
snapTimelineDateMapper
tickSizeTimelineEventRendering

Time axis

The time axis column config for vertical mode.

Object with VerticalTimeAxisColumn configuration.

This object will be used to configure the vertical time axis column instance.

The config allows configuring the VerticalTimeAxisColumn instance used in vertical mode with any Column options that apply to it.

Example:

new Scheduler({
    mode     : 'vertical',
    features : {
        filterBar : true
    },
    verticalTimeAxisColumn : {
        text  : 'Filter by event name',
        width : 180,
        filterable : {
            // add a filter field to the vertical column access header
            filterField : {
                type        : 'text',
                placeholder : 'Type to search',
                onChange    : ({ value }) => {
                    // filter event by name converting to lowerCase to be equal comparison
                    scheduler.eventStore.filter({
                        filters : event => event.name.toLowerCase().includes(value.toLowerCase()),
                        replace : true
                    });
                }
            }
        }
    },
    ...
});
autoAdjustTimeAxisTimelineBase
forceFitTimelineBase
partnerTimelineBase
stickyHeadersTimelineBase
suppressFitTimelineBase
timeAxisTimelineBase
weekStartDayTimelineBase
workingTimeTimelineBase

Accessibility

ariaLabelWidget

Content

bbarPanel
defaultsContainer
footerPanel
headerPanel
itemsContainer
lazyItemsContainer
namedItemsContainer
stripsPanel
tbarPanel
textContentContainer
toolsPanel

CSS

bodyClsPanel
borderContainer
clsWidget
colorWidget
htmlClsWidget
itemClsContainer
styleWidget
uiPanel

Dates

timeResolutionTimelineDateMapper

DOM

adoptWidget
appendToWidget
contentWidget
datasetWidget
htmlWidget
idWidget
tagWidget

Float & align

alignWidget
anchorWidget
centeredWidget
draggableWidget
floatingWidget
xWidget
yWidget

Infinite scroll

bufferCoefTimelineScroll
bufferThresholdTimelineScroll
infiniteScrollTimelineScroll

Milestones

milestoneAlignSchedulerEventRendering
milestoneCharWidthSchedulerEventRendering
milestoneLayoutModeSchedulerEventRendering
milestoneTextPositionSchedulerEventRendering

misc

tabBarItemsContainer

Record

recordContainer

Scrolling

scrollableGridBase

Selection

deselectOnClickEventSelection
highlightPredecessorsEventSelection
highlightSuccessorsEventSelection
isEventSelectableEventSelection
multiEventSelectEventSelection
selectionModeGridSelection

State

stateIdState

Tree

Zoom

maxZoomLevelTimelineZoomable
minZoomLevelTimelineZoomable
visibleZoomFactorTimelineZoomable
zoomOnMouseWheelTimelineZoomable

Properties

250

Common

mode: horizontal | verticalreadonlyAlso a config

Get mode (horizontal/vertical)

columnsGridBase
dataGridBase
emptyTextGridBase
endDateTimelineBase
featuresGridFeatures
maxDateTimelineBase
minDateTimelineBase
presetsTimelineViewPresets
rowHeightGridBase
startDateTimelineBase
storeGridBase
subGridsGridSubGrids
viewPresetTimelineViewPresets
visibleDateTimelineBase

Calendar integration

The date to display when used as a component of a Calendar.

This is required by the Calendar Mode Interface.

This property is for use when the Scheduler is used as a Calendar view - a mode. it will have no effect on a Scheduler which is not inside a Calendar.
The time range to move by when next or previous is called.

If not specified, this view moves by its duration in days as derived from its range.

Valid values are:

  • day
  • week
  • month
  • year
  • decade

This may also be specified as a duration with a magnitude part and a unit part. For example '1m' would mean one month, and '4w' would mean four weeks. See parseDuration for details of syntax.

When using a range of weeks, months, years or decades, then when this widget's date is synced with its owning Calendar's date, this widget's startDate is snapped to the closest start point of the range which encompasses that date.

So if using range : '1w', then setting the date to Thursday, 28th October 2021 Would mean that the startDate snaps to Sunday 24th October 2021 (assuming the locale uses Sunday as the week start day).

If configured to use a range of days, no snapping is done. There's no defined start point so the startDate is set to the incoming Calendar date.

Class hierarchy

isSchedulerBase: Boolean= truereadonly
Identifies an object as an instance of SchedulerBase class, or subclass thereof.
isSchedulerBase: Boolean= truereadonlystatic
Identifies an object as an instance of SchedulerBase class, or subclass thereof.
isContainerContainer
isCrudManagerViewCrudManagerView
isDelayableDelayable
isDescribableDescribable
isEventNavigationEventNavigation
isEventsEvents
isEventSelectionEventSelection
isGridGrid
isGridBaseGridBase
isGridElementEventsGridElementEvents
isGridFeaturesGridFeatures
isGridResponsiveGridResponsive
isGridSelectionGridSelection
isGridStateGridState
isGridSubGridsGridSubGrids
isKeyMapKeyMap
isLoadMaskableLoadMaskable
isLocalizableLocalizable
isPanelPanel
isPluggablePluggable
isProjectConsumerProjectConsumer
isRecurringEventsRecurringEvents
isSchedulerDomSchedulerDom
isSchedulerDomEventsSchedulerDomEvents
isSchedulerEventRenderingSchedulerEventRendering
isSchedulerRegionsSchedulerRegions
isSchedulerScrollSchedulerScroll
isSchedulerStateSchedulerState
isSchedulerStoresSchedulerStores
isStateState
isTimelineBaseTimelineBase
isTimelineDateMapperTimelineDateMapper
isTimelineDomEventsTimelineDomEvents
isTimelineEventRenderingTimelineEventRendering
isTimelineScrollTimelineScroll
isTimelineStateTimelineState
isTimelineViewPresetsTimelineViewPresets
isTimelineZoomableTimelineZoomable
isToolableToolable
isTransactionalFeatureMixinTransactionalFeatureMixin
isWidgetWidget

Data

Get/set assignments, applies to the backing project's AssignmentStore.

Get/set the event store instance of the backing project.

Get/set dependencies, applies to the backing projects DependencyStore.

Get/set the dependencies store instance of the backing project.

Get/set events, applies to the backing project's EventStore.

Get/set the event store instance of the backing project.

Get/set resources, applies to the backing project's ResourceStore.

Get/set the resource store instance of the backing project

crudManagerSchedulerStores
projectProjectConsumer
resourceTimeRangesSchedulerStores
resourceTimeRangeStoreSchedulerStores
timeRangesSchedulerStores
timeRangeStoreSchedulerStores

Masking

By default, when the EventStore (and similar stores) is lazy loading, a loading indicator will be displayed just below the timeline headers. Set this to false to prevent this indicator being shown.

Misc

Get/set the scheduler's read-only state. When set to true, any UIs for modifying data are disabled.

By default, scrolling the schedule will update the timelineContext to reflect the new currently hovered context. When displaying a large number of events on screen at the same time, this will have a slight impact on scrolling performance. In such scenarios, opt out of this behavior by setting this config to false.

cellEllipsisGridBase
cellInfoWidget
columnLinesGridBase
disabledWidget
enableUndoRedoKeysGridElementEvents
hideFootersGridBase
hideHeadersGridBase
hideRowHoverTimelineBase
hoveredCellGridElementEvents
initialAnimationDurationSchedulerEventRendering
isEngineReadyProjectConsumer
localeHelperLocalizable
localeManagerLocalizable
longPressTimeGridElementEvents
overlappingEventSorterSchedulerEventRendering
pluginsPluggable
refWidget
responsiveLevelGridResponsive
rowLinesGridBase
tabWidget
timeZoneTimelineBase
titlePanel
tooltipWidget
useInitialAnimationSchedulerEventRendering

Other

eventCount: Numberreadonly

Gets the count of events within a date range between current startDate and endDate.

Set to true for child nodes in a tree store to inherit their parent´s eventColor

This property is for use when the Scheduler is used as a Calendar view - a mode.

This property yields a Menu configuration block which encapsulates the range choices which this widget may be set to encapsulate:

  • day
  • week
  • month
  • year
  • decade

By default a list view adds these choices to the header context menu. An agenda view creates a floating settings button which offers this menu. The property may be used to create a custom UI for changing the range. The value yielded by the default get listRangeMenu() implementation looks like this:

{
    items : {
        listRangeDayItem    : {config for DAY range menu item },
        listRangWeekItem    : {config for WEEK range menu item },
        listRangMonthItem   : {config for MONTH range menu item },
        listRangeYearItem   : {config for YEAR range menu item },
        listRangeDecadeItem : {config for DECADE range menu item }
    }
}

A subclass can override get listRangeMenu() and mutate the object returned by the super call.

For example, it could delete properties of the items block to limit which ranges may be selected.

The time range encapsulated by the current date.

When a range is used, changing the date snaps the startDate to the closest starting date of the range. For Example if the range was configured as '1 week' then setting the date to the date of next Wednesday would mean that the startDate would be the start of next week, and an entire week would be encapsulated by this view.

Configure UI transitions for various actions in the grid.

ParameterTypeDescription
insertRecordBoolean

Transition record insertions

removeRecordBoolean

Transition record removals

toggleColumnBoolean

Transition column visibility changes

expandCollapseColumnBoolean

Transition parent/group column expand/collapse

toggleRegionBoolean

Transition region expand/collapse

toggleTreeNodeBoolean

Transition tree node expand/collapse

toggleGroupBoolean

Transition group expand/collapse

filterRemovalBoolean

Transition row removals caused by filtering (under specific conditions)

removeEventBoolean

Transition event removals

changeEventBoolean

Transition event changes

$namestaticWidget
columnWidget
dateFormatDescribable
dateSeparatorDescribable
descriptionDescribable
eventReleaseThresholdSchedulerEventRendering
firstItemContainer
hasChangesContainer
isValidContainer
itemsContainer
labelPositionContainer
lastItemContainer
minPackSizeSchedulerEventRendering
renditionContainer
rtlRTL
spanWidget
stateSettingsGridState
toolsPanel
typestaticWidget
valuesContainer

Resources

visibleResources: Objectreadonly

Returns an object defining the range of visible resources

ParameterTypeDescription
visibleResources.firstResourceModel

First visible resource

visibleResources.lastResourceModel

Last visible resource

Scheduled events

Set to false if you don't want to allow events overlapping times for any one resource (defaults to true).

Note that toggling this at runtime won't affect already overlapping events.
autoCreate: Boolean | String | ObjectAlso a config

If this config is set, then its gesture property (which defaults to dblclick) creates a new event at the mouse or touch event's time point.

When set to true, the gesture is dblclick, and the new event will have a duration of 1 time axis tick.

This may be specified as the string DOM event name to listen for, such as 'click', 'dblclick' and the new event will have a duration of 1 time axis tick.

The duration of the new event can be set by specifying the duration property as a DurationConfig.

If that is not set, then setting the useEventModelDefaults property will cause the duration to be specified by the default values of the duration and durationUnit fields

Example:

new Scheduler({
    autoCreate : {
        gesture  : 'click',
        duration : '2 hours',
        newName  : 'New appointment'
    }
});
ParameterTypeDescription
autoCreate.gestureclick | dblclick

The gesture to trigger auto creation of an event. Defaults to dblclick.

autoCreate.useEventModelDefaultsBoolean

Set to true to set default duration based on the defaults specified by the duration and durationUnit fields.

autoCreate.snapTyperound | ceil | floor

The type of snapping to apply to the event start date. If omitted, the date will be floored to the time axis resolution.

autoCreate.stepDurationConfig | String

The increment to snap the event start date to.

autoCreate.durationDurationConfig | String

The duration of the event to create. Defaults to 1 time axis tick.

autoCreate.nameString

The name of the event to create. Defaults to the Object.newEvent property from the locale.

barMarginTimelineEventRendering
displayDateFormatTimelineViewPresets
eventColorTimelineEventRendering
eventColorsstaticTimelineEventRendering
eventLayoutSchedulerEventRendering
eventStyleTimelineEventRendering
eventStylesstaticTimelineEventRendering
fillTicksTimelineEventRendering
hasVisibleEventsTimelineBase
snapTimelineDateMapper
tickSizeTimelineEventRendering

Accessibility

keyMapKeyMap

Content

bbarPanel
tbarPanel

CSS

clsWidget

Dates

timelineContextTimelineDomEvents
timeResolutionTimelineDateMapper
viewportCenterDateTimelineDateMapper
visibleDateRangeTimelineBase

DOM

appendToWidget
contentWidget
datasetWidget
elementWidget
htmlWidget
idWidget
styleWidget

Float & align

xWidget
yWidget

Infinite scroll

infiniteScrollTimelineScroll

Layout

alignSelfWidget
bodyHeightGridBase
flexWidget
footerHeightGridBase
headerHeightGridBase
heightWidget
layoutContainer
layoutStyleContainer
marginWidget
maxHeightWidget
maxWidthWidget
minHeightWidget
minWidthWidget
widthWidget

Lifecycle

configBase

Milestones

milestoneAlignSchedulerEventRendering
milestoneCharWidthSchedulerEventRendering
milestoneLayoutModeSchedulerEventRendering
milestoneTextPositionSchedulerEventRendering

Record

recordContainer

Rows

Scrolling

scrollLeftTimelineScroll
scrollTopTimelineScroll
scrollXTimelineScroll
timelineScrollerTimelineScroll

Selection

isEventSelectableEventSelection
selectedAssignmentsEventSelection
selectedCellGridSelection
selectedCellsGridSelection
selectedEventsEventSelection
selectedRecordGridSelection
selectedRecordsGridSelection
selectedRowsGridSelection
selectionModeGridSelection

State

stateGridState

Time axis

forceFitTimelineBase
partnersTimelineBase
suppressFitTimelineBase
timeAxisTimelineBase
timeAxisColumnTimelineBase
timeAxisSubGridTimelineBase
timeAxisViewModelTimelineBase
workingTimeTimelineBase

Tree

Visibility

hiddenWidget
isVisibleWidget

Widget hierarchy

ownerWidget
parentWidget
widgetMapContainer

Zoom

maxZoomLevelTimelineZoomable
minZoomLevelTimelineZoomable
zoomLevelTimelineZoomable

Functions

204

Calendar integration

Interface method used by an encapsulating Calendar view to implement the "next" button.

Interface method used by an encapsulating Calendar view to implement the "prev" button.

Dates

Checks if a date range is allocated or not for a given resource.

ParameterTypeDescription
startDateDate

The start date

endDateDate

The end date

excludeEventEventModel | null

An event to exclude from the check (or null)

resourceRecordResourceModel | ResourceModel[]

A resource or an array of resource records

allowOverlapBoolean

True to allow checking for availability ignoring overlapping events. Defaults to the Scheduler's allowOverlap setting.

Returns: Boolean -

True if the timespan is available for the resource(s)

getCoordinateFromDateTimelineDateMapper
getDateFromCoordinateTimelineDateMapper
getDateFromDomEventTimelineDateMapper
getDateFromXYTimelineDateMapper
getTimeSpanDistanceTimelineDateMapper

Events

Returns an array of events for the date range specified by the startDate and endDate options.

By default, for any date, this includes any event which intersects that date.

To only include events that are fully contained within the date range, pass the allowPartial option as false.

By default, any occurrences of recurring events are included in the resulting array (not applicable in Gantt). If that is not required, pass the includeOccurrences option as false.

Note that if includeOccurrences is true, the start date and end date options are mandatory. The method must know what range of occurrences needs to be generated and returned.

Example:

 visibleEvents = eventStore.getEvents({
     resourceRecord : myResource,
     startDate      : scheduler.timeAxis.startDate,
     endDate        : scheduler.timeAxis.endDate
 });
ParameterTypeDescription
optionsObject

An options object determining which events to return

options.dateDate

If only one date is required, pass this option instead of the startDate and endDate options.

options.startDateDate

The start date for the range of events to include.

options.endDateDate

The end date for the range of events to include. Defaults to a startDate + one day range if only startDate passed

options.resourceRecordResourceModel

Pass a resource to only return events assigned to this resource. Not supported when using the dateMap option (see below)

options.filterfunction

A function to filter out events which are not required.

options.ignoreFiltersBoolean

By default, store filters are honoured. Pass this as true to include filtered out events.

options.includeOccurrencesBoolean

Occurrences of recurring events are included by default.

options.allowPartialBoolean

Events which start before or after the range, but intersect the range are included by default.

options.startOnlyBoolean

Pass true to only include events which start on each date in the range.

options.silentBoolean

Pass true to not fire the loadDateRange event.

options.onlyAssignedBoolean

Pass true to only include events that are assigned to a resource

options.dateMapBoolean | Map

Populates the passed Map, or if passed as true, creates and returns a new Map. The keys are YYYY-MM-DD date strings and the entries are arrays of EventModels.

Returns: EventModel[] | Map -

Events which match the passed configuration.

Feature shortcuts

Opens an editor UI to edit the passed event, or a config object for a new event.

NOTE: Only available when the EventEdit feature is enabled.

ParameterTypeDescription
eventRecordEventModel | EventModelConfig | String | Number

Event to edit

resourceRecordResourceModel

The Resource record for the event. This parameter is needed if the event is newly created for a resource and has not been assigned, or when using multi assignment.

elementHTMLElement

Element to anchor editor to (defaults to events element)

Returns the dependency record for a DOM element

NOTE: Only available when the Dependencies feature is enabled.

ParameterTypeDescription
elementHTMLElement

The dependency line element

Returns: DependencyModel -

The dependency record

Rendering

Triggers a render of all the cells (in horizontal mode) in and event bars for the passed resource.

Since Scheduler uses virtualized resources, calling this method for a resource that is not currently rendered will not have any effect.

Manipulating resource or event records and Scheduler settings refreshes the Scheduler automatically. You should only need to call this function if you have outside data/settings unknown to the Scheduler that has changed and requires the resource to update to reflect the changes

ParameterTypeDescription
resourceRecordResourceModel

The resource that should be refreshed

Triggers a render of all the cells (in horizontal mode) and event bars for the passed resources. Leave the argument out to refresh all resources.

Since Scheduler uses virtualized resources, calling this method for resources that are not currently rendered will not have any effect.

Manipulating resource or event records and Scheduler settings refreshes the Scheduler automatically. You should only need to call this function if you have outside data/settings unknown to the Scheduler that has changed and requires some resources to update to reflect the changes

ParameterTypeDescription
resourceRecordsResourceModel[]

The resources that should be refreshed

Resumes UI refresh on store operations.

Multiple calls to suspendRefresh stack up, and will require an equal number of resumeRefresh calls to actually resume UI refresh.

Specify true as the first param to trigger a refresh if this call unblocked the refresh suspension. If the underlying project is calculating changes, the refresh will be postponed until it is done.

ParameterTypeDescription
triggerBoolean

Pass false to not trigger a refresh, if this resume unblocks suspension

refreshRowGridBase
refreshRowsGridBase
renderRowsGridBase
repaintEventsForResourceSchedulerEventRendering

Scheduled events

Creates an event on the specified date which conforms to the autoCreate setting for the specified resource. The event is then scrolled into view.

NOTE: If the scheduler is readonly, or resource type is invalid (group header), or if allowOverlap is false and slot is already occupied - no event is created.

This method may be called programmatically by application code if the autoCreate setting is false, in which case the default values for autoCreate will be used.

If the EventEdit feature is active, the new event will be displayed in the event editor.

ParameterTypeDescription
dateDate

The date to add the event at.

resourceRecordResourceModel

The resource to create the event for.

Called when new event is created. Сan be overridden to supply default record values etc.

ParameterTypeDescription
eventRecordEventModel

Newly created event

Assigns and schedules an unassigned event record (+ adds it to this Scheduler's event store unless already in it).

ParameterTypeDescription
configObject

The config containing data about the event record to schedule

config.startDateDate

The start date

config.eventRecordEventModel | EventModelConfig

Event (or data for it) to assign and schedule

config.parentEventRecordEventModel

Parent event to add the event to (to nest it), only applies when using the NestedEvents feature

config.resourceRecordResourceModel

Resource to assign the event to

config.elementHTMLElement

The element if you are dragging an element from outside the scheduler

Configuration

applyDefaultsstaticBase

Data

getOccurrencesForRecurringEvents
updateProjectProjectConsumer
whenProjectReadyProjectConsumer

DOM

resolveEventRecordSchedulerDom
resolveRowRecordSchedulerDom

Float & align

alignToWidget
setXYWidget
showByWidget
toFrontWidget

Getters

getCellGridBase

Lifecycle

createstaticWidget
destroystaticBase
initClassstaticWidget

Milestones

getMilestoneLabelWidthSchedulerEventRendering

Misc

addPluginsPluggable
attachTooltipstaticWidget
fromElementstaticWidget
fromSelectorstaticWidget
getByIdstaticWidget
getPluginPluggable
hasFeatureGridFeatures
hasPluginPluggable
highlightEventsTimelineBase
isOfTypeNamestaticBase
maskBodyGridBase
mixinstaticBase
optionalLstaticLocalizable
restartInitialAnimationSchedulerEventRendering
unhighlightEventsTimelineBase
unmaskBodyGridBase

Other

addContainer
addPartnerTimelineBase
composeWidget
createOnFrameDelayable
disableWidget
enableWidget
focusWidget
formatDurationTimelineBase
getAtContainer
getResourceEventBoxSchedulerRegions
getResourceRegionSchedulerRegions
getScheduleRegionSchedulerRegions
getWidgetByIdContainer
insertContainer
isInTimeAxisEventNavigation
isPartneredWithTimelineBase
LstaticLocalizable
maskWidget
onEvents
preserveViewCenterTimelineBase
recomposeWidget
relayAllEvents
removeContainer
removeAllContainer
removePartnerTimelineBase
resetValuesContainer
setEndDateTimelineBase
setStartDateTimelineBase
setTimeSpanTimelineBase
setValuesContainer
shiftTimelineZoomable
shiftNextTimelineZoomable
shiftPreviousTimelineZoomable
triggerEvents
unEvents
unmaskWidget
zoomToFitTimelineZoomable

Rows

getRowForGridBase

Scrolling

scrollEventIntoViewSchedulerScroll
scrollHorizontallyToTimelineScroll
scrollResourceIntoViewSchedulerScroll
scrollToTimelineScroll
scrollToDateTimelineScroll
scrollToNowTimelineScroll
scrollToTopGridBase
scrollVerticallyToTimelineScroll
storeScrollGridBase

Selection

clearEventSelectionEventSelection
deselectEventSelection
deselectAllGridSelection
deselectAssignmentEventSelection
deselectAssignmentsEventSelection
deselectCellGridSelection
deselectCellsGridSelection
deselectEventEventSelection
deselectEventsEventSelection
deselectRowGridSelection
deselectRowsGridSelection
isAssignmentSelectedEventSelection
isCellSelectedGridSelection
isEventSelectedEventSelection
isSelectableGridSelection
isSelectedGridSelection
selectEventSelection
selectAllGridSelection
selectAssignmentEventSelection
selectAssignmentsEventSelection
selectCellGridSelection
selectCellRangeGridSelection
selectCellsGridSelection
selectEventEventSelection
selectEventsEventSelection
selectRangeGridSelection
selectRowGridSelection
selectRowsGridSelection

State

SubGrid

getSubGridGridSubGrids

Visibility

hideWidget
showWidget

Widget hierarchy

closestWidget
containsWidget
ownsWidget
queryWidget
queryAllWidget
upWidget

Zoom

zoomInTimelineZoomable
zoomInFullTimelineZoomable
zoomOutTimelineZoomable
zoomOutFullTimelineZoomable
zoomToTimelineZoomable
zoomToLevelTimelineZoomable
zoomToSpanTimelineZoomable

Events

93

This event fires whenever the autoCreate gesture is detected.

This event is preventable and may be used to validate autoCreate-initiated event creation.

// Adding a listener using the "on" method
schedulerBase.on('beforeAutoCreate', ({ domEvent, date, resourceRecord }) => {

});
ParameterTypeDescription
domEventEvent

The DOM event which initiated the creation.

dateDate

The starting time of the event to be created.

resourceRecordResourceModel

The resource if the UI includes a resource.

Fires before an event is added. Can be triggered by schedule double click or drag create action.

// Adding a listener using the "on" method
schedulerBase.on('beforeEventAdd', ({ source, eventRecord, resourceRecords, assignmentRecords }) => {

});
ParameterTypeDescription
sourceScheduler

The Scheduler instance

eventRecordEventModel

The record about to be added

resourceRecordsResourceModel[]

Resources that the record is assigned to

assignmentRecordsAssignmentModel[]

The assignment records

Fired when a double click or drag gesture has created a new event and added it to the event store.

// Adding a listener using the "on" method
schedulerBase.on('eventAutoCreated', ({ source, eventRecord, resourceRecord }) => {

});
ParameterTypeDescription
sourceScheduler

This Scheduler.

eventRecordEventModel

The new event record.

resourceRecordResourceModel

The resource assigned to the new event.

Triggered when a keydown event is observed if there are selected events.

// Adding a listener using the "on" method
schedulerBase.on('eventKeyDown', ({ source, eventRecords, assignmentRecords, event }) => {

});
ParameterTypeDescription
sourceScheduler

This Scheduler

eventRecordsEventModel[]

The selected event records

assignmentRecordsAssignmentModel[]

The selected assignment records

eventKeyboardEvent

Browser event

Triggered when a keyup event is observed if there are selected events.

// Adding a listener using the "on" method
schedulerBase.on('eventKeyUp', ({ source, eventRecords, assignmentRecords, event }) => {

});
ParameterTypeDescription
sourceScheduler

This Scheduler

eventRecordsEventModel[]

The selected event records

assignmentRecordsAssignmentModel[]

The selected assignment records

eventKeyboardEvent

Browser event

Fired after releasing an event, useful to cleanup of custom content added on renderEvent or in eventRenderer.

// Adding a listener using the "on" method
schedulerBase.on('releaseEvent', ({ source, eventRecord, resourceRecord, assignmentRecord, renderData, element }) => {

});
ParameterTypeDescription
sourceScheduler

This Scheduler

eventRecordEventModel

The event record

resourceRecordResourceModel

The resource record

assignmentRecordAssignmentModel

The assignment record

renderDataObject

An object containing details about the event rendering

elementHTMLElement

The event bar element

Fired after rendering an event, when its element is available in DOM.

// Adding a listener using the "on" method
schedulerBase.on('renderEvent', ({ source, eventRecord, resourceRecord, assignmentRecord, renderData, isRepaint, isReusingElement, element }) => {

});
ParameterTypeDescription
sourceScheduler

This Scheduler

eventRecordEventModel

The event record

resourceRecordResourceModel

The resource record

assignmentRecordAssignmentModel

The assignment record

renderDataObject

An object containing details about the event rendering, see eventRenderer for details

isRepaintBoolean

true if this render is a repaint of the event, updating its existing element

isReusingElementBoolean

true if this render lead to the event reusing a released events element

elementHTMLElement

The event bar element

Fired when clicking a resource header cell

// Adding a listener using the "on" method
schedulerBase.on('resourceHeaderClick', ({ source, resourceRecord, event }) => {

});
ParameterTypeDescription
sourceScheduler

This Scheduler

resourceRecordResourceModel

The resource record

eventEvent

The event

Fired when activating context menu on a resource header cell

// Adding a listener using the "on" method
schedulerBase.on('resourceHeaderContextmenu', ({ source, resourceRecord, event }) => {

});
ParameterTypeDescription
sourceScheduler

This Scheduler

resourceRecordResourceModel

The resource record

eventEvent

The event

Fired when double clicking a resource header cell

// Adding a listener using the "on" method
schedulerBase.on('resourceHeaderDblclick', ({ source, resourceRecord, event }) => {

});
ParameterTypeDescription
sourceScheduler

This Scheduler

resourceRecordResourceModel

The resource record

eventEvent

The event

Fired when the shiftIncrement of this view changes.

This event is only fired when used as a mode of a Calendar

// Adding a listener using the "on" method
schedulerBase.on('shiftIncrementChange', ({ source, old, new }) => {

});
ParameterTypeDescription
sourceTimelineBase

This Scheduler/Gantt instance.

oldObject

The shift increment if any.

newObject

The shift increment

beforeAssignmentDeleteRecurringEvents
beforeEventDeleteRecurringEvents
beforePresetChangeTimelineViewPresets
catchAllEvents
cellClickGridElementEvents
cellContextMenuGridElementEvents
cellDblClickGridElementEvents
cellMouseEnterGridElementEvents
cellMouseLeaveGridElementEvents
cellMouseOutGridElementEvents
cellMouseOverGridElementEvents
dataChangeGridBase
dateRangeChangeTimelineBase
destroyEvents
dragSelectingGridSelection
eventClickSchedulerDomEvents
eventContextMenuSchedulerDomEvents
eventDblClickSchedulerDomEvents
eventMouseDownSchedulerDomEvents
eventMouseEnterSchedulerDomEvents
eventMouseLeaveSchedulerDomEvents
eventMouseOutSchedulerDomEvents
eventMouseOverSchedulerDomEvents
eventMouseUpSchedulerDomEvents
eventSelectionChangeEventSelection
expandPanel
focusInWidget
focusOutWidget
headerClickGridElementEvents
hideWidget
mouseOutGridElementEvents
mouseOverGridElementEvents
navigateEventNavigation
noZoomChangeTimelineZoomable
paintWidget
presetChangeTimelineViewPresets
readOnlyWidget
recomposeWidget
renderRowGridBase
renderRowsGridBase
resizeWidget
responsiveGridResponsive
rowMouseEnterGridElementEvents
rowMouseLeaveGridElementEvents
scheduleClickSchedulerDomEvents
scheduleContextMenuSchedulerDomEvents
scheduleDblClickSchedulerDomEvents
scheduleMouseDownSchedulerDomEvents
scheduleMouseEnterSchedulerDomEvents
scheduleMouseLeaveSchedulerDomEvents
scheduleMouseMoveSchedulerDomEvents
scheduleMouseUpSchedulerDomEvents
scrollGridBase
selectionChangeGridSelection
selectionModeChangeGridSelection
showWidget
tickSizeChangeTimelineEventRendering
timeAxisChangeTimelineBase
timeAxisHeaderClickTimelineDomEvents
timeAxisHeaderContextMenuTimelineDomEvents
timeAxisHeaderDblClickTimelineDomEvents
timelineContextChangeTimelineDomEvents

Event handlers

93

This event called whenever the autoCreate gesture is detected.

This event is preventable and may be used to validate autoCreate-initiated event creation.

new SchedulerBase({
    onBeforeAutoCreate({ domEvent, date, resourceRecord }) {

    }
});
ParameterTypeDescription
domEventEvent

The DOM event which initiated the creation.

dateDate

The starting time of the event to be created.

resourceRecordResourceModel

The resource if the UI includes a resource.

Called before an event is added. Can be called by schedule double click or drag create action.

new SchedulerBase({
    onBeforeEventAdd({ source, eventRecord, resourceRecords, assignmentRecords }) {

    }
});
ParameterTypeDescription
sourceScheduler

The Scheduler instance

eventRecordEventModel

The record about to be added

resourceRecordsResourceModel[]

Resources that the record is assigned to

assignmentRecordsAssignmentModel[]

The assignment records

Called when a double click or drag gesture has created a new event and added it to the event store.

new SchedulerBase({
    onEventAutoCreated({ source, eventRecord, resourceRecord }) {

    }
});
ParameterTypeDescription
sourceScheduler

This Scheduler.

eventRecordEventModel

The new event record.

resourceRecordResourceModel

The resource assigned to the new event.

Called when a keydown event is observed if there are selected events.

new SchedulerBase({
    onEventKeyDown({ source, eventRecords, assignmentRecords, event }) {

    }
});
ParameterTypeDescription
sourceScheduler

This Scheduler

eventRecordsEventModel[]

The selected event records

assignmentRecordsAssignmentModel[]

The selected assignment records

eventKeyboardEvent

Browser event

Called when a keyup event is observed if there are selected events.

new SchedulerBase({
    onEventKeyUp({ source, eventRecords, assignmentRecords, event }) {

    }
});
ParameterTypeDescription
sourceScheduler

This Scheduler

eventRecordsEventModel[]

The selected event records

assignmentRecordsAssignmentModel[]

The selected assignment records

eventKeyboardEvent

Browser event

Called after releasing an event, useful to cleanup of custom content added on renderEvent or in eventRenderer.

new SchedulerBase({
    onReleaseEvent({ source, eventRecord, resourceRecord, assignmentRecord, renderData, element }) {

    }
});
ParameterTypeDescription
sourceScheduler

This Scheduler

eventRecordEventModel

The event record

resourceRecordResourceModel

The resource record

assignmentRecordAssignmentModel

The assignment record

renderDataObject

An object containing details about the event rendering

elementHTMLElement

The event bar element

Called after rendering an event, when its element is available in DOM.

new SchedulerBase({
    onRenderEvent({ source, eventRecord, resourceRecord, assignmentRecord, renderData, isRepaint, isReusingElement, element }) {

    }
});
ParameterTypeDescription
sourceScheduler

This Scheduler

eventRecordEventModel

The event record

resourceRecordResourceModel

The resource record

assignmentRecordAssignmentModel

The assignment record

renderDataObject

An object containing details about the event rendering, see eventRenderer for details

isRepaintBoolean

true if this render is a repaint of the event, updating its existing element

isReusingElementBoolean

true if this render lead to the event reusing a released events element

elementHTMLElement

The event bar element

Called when clicking a resource header cell

new SchedulerBase({
    onResourceHeaderClick({ source, resourceRecord, event }) {

    }
});
ParameterTypeDescription
sourceScheduler

This Scheduler

resourceRecordResourceModel

The resource record

eventEvent

The event

Called when activating context menu on a resource header cell

new SchedulerBase({
    onResourceHeaderContextmenu({ source, resourceRecord, event }) {

    }
});
ParameterTypeDescription
sourceScheduler

This Scheduler

resourceRecordResourceModel

The resource record

eventEvent

The event

Called when double clicking a resource header cell

new SchedulerBase({
    onResourceHeaderDblclick({ source, resourceRecord, event }) {

    }
});
ParameterTypeDescription
sourceScheduler

This Scheduler

resourceRecordResourceModel

The resource record

eventEvent

The event

Called when the shiftIncrement of this view changes.

This event is only called when used as a mode of a Calendar

new SchedulerBase({
    onShiftIncrementChange({ source, old, new }) {

    }
});
ParameterTypeDescription
sourceTimelineBase

This Scheduler/Gantt instance.

oldObject

The shift increment if any.

newObject

The shift increment

onBeforeEventDeleteRecurringEvents
onBeforePresetChangeTimelineViewPresets
onCellClickGridElementEvents
onCellContextMenuGridElementEvents
onCellDblClickGridElementEvents
onCellMouseEnterGridElementEvents
onCellMouseLeaveGridElementEvents
onCellMouseOutGridElementEvents
onCellMouseOverGridElementEvents
onDataChangeGridBase
onDateRangeChangeTimelineBase
onDestroyEvents
onDragSelectingGridSelection
onEventClickSchedulerDomEvents
onEventContextMenuSchedulerDomEvents
onEventDblClickSchedulerDomEvents
onEventMouseDownSchedulerDomEvents
onEventMouseEnterSchedulerDomEvents
onEventMouseLeaveSchedulerDomEvents
onEventMouseOutSchedulerDomEvents
onEventMouseOverSchedulerDomEvents
onEventMouseUpSchedulerDomEvents
onFocusInWidget
onHeaderClickGridElementEvents
onHideWidget
onMouseOutGridElementEvents
onMouseOverGridElementEvents
onNavigateEventNavigation
onNoZoomChangeTimelineZoomable
onPaintWidget
onPresetChangeTimelineViewPresets
onRenderRowGridBase
onRenderRowsGridBase
onResizeWidget
onResponsiveGridResponsive
onRowMouseEnterGridElementEvents
onRowMouseLeaveGridElementEvents
onScheduleClickSchedulerDomEvents
onScheduleContextMenuSchedulerDomEvents
onScheduleDblClickSchedulerDomEvents
onScheduleMouseDownSchedulerDomEvents
onScheduleMouseEnterSchedulerDomEvents
onScheduleMouseLeaveSchedulerDomEvents
onScheduleMouseMoveSchedulerDomEvents
onScheduleMouseUpSchedulerDomEvents
onScrollGridBase
onSelectionChangeGridSelection
onShowWidget
onTickSizeChangeTimelineEventRendering
onTimeAxisChangeTimelineBase
onTimeAxisHeaderClickTimelineDomEvents
onTimeAxisHeaderDblClickTimelineDomEvents
onTimelineContextChangeTimelineDomEvents

Typedefs

22

Type containing start and end constraints.

ParameterTypeDescription
startDate

Start date constraint

endDate

End date constraint

Configuration object for a responsive level. Contains a required levelWidth plus any SchedulerState properties to apply when this level is active.

ParameterTypeDescription
levelWidthNumber | String

The width threshold for this level, or '*' for all sizes above other levels

AlignSpecWidget
ChangePresetOptionsTimelineZoomable
ColorWidget
ColumnStateGridState
EventRenderDataSchedulerEventRendering
GridSelectionModeGridSelection
GridStateInfoGridState
ResponsiveLevelConfigGridResponsive
SchedulerStateInfoSchedulerState
SubGridStateGridState
TimelineStateInfoTimelineState
VisibleDateTimelineBase

CSS variables

107