devextreme-angular
Version:
Angular UI and visualization components based on DevExtreme widgets
1,434 lines (1,198 loc) • 166 kB
JavaScript
/*!
* devextreme-angular
* 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-angular
*/
/* tslint:disable:max-line-length */
import { TransferState, Component, NgModule, ElementRef, NgZone, PLATFORM_ID, Inject, Input, Output, EventEmitter, ContentChildren, QueryList } from '@angular/core';
import DxScheduler from 'devextreme/ui/scheduler';
import { DxComponent, DxTemplateHost, DxIntegrationModule, DxTemplateModule, NestedOptionHost, IterableDifferHelper, WatcherHelper } from 'devextreme-angular/core';
import { DxoAppointmentDraggingModule } from 'devextreme-angular/ui/nested';
import { DxoEditingModule } from 'devextreme-angular/ui/nested';
import { DxiResourceModule } from 'devextreme-angular/ui/nested';
import { DxoScrollingModule } from 'devextreme-angular/ui/nested';
import { DxiViewModule } from 'devextreme-angular/ui/nested';
import { DxoSchedulerAppointmentDraggingModule } from 'devextreme-angular/ui/scheduler/nested';
import { DxoSchedulerEditingModule } from 'devextreme-angular/ui/scheduler/nested';
import { DxiSchedulerResourceModule } from 'devextreme-angular/ui/scheduler/nested';
import { DxoSchedulerScrollingModule } from 'devextreme-angular/ui/scheduler/nested';
import { DxiSchedulerViewModule } from 'devextreme-angular/ui/scheduler/nested';
import { DxiResourceComponent } from 'devextreme-angular/ui/nested';
import { DxiViewComponent } from 'devextreme-angular/ui/nested';
import { DxiSchedulerResourceComponent } from 'devextreme-angular/ui/scheduler/nested';
import { DxiSchedulerViewComponent } from 'devextreme-angular/ui/scheduler/nested';
import * as i0 from "@angular/core";
import * as i1 from "devextreme-angular/core";
/**
* The Scheduler is a UI component that represents scheduled data and allows a user to manage and edit it.
*/
export class DxSchedulerComponent extends DxComponent {
_watcherHelper;
_idh;
instance = null;
/**
* Specifies the shortcut key that sets focus on the UI component.
*/
get accessKey() {
return this._getOption('accessKey');
}
set accessKey(value) {
this._setOption('accessKey', value);
}
/**
* Specifies whether the UI component adapts to small screens.
*/
get adaptivityEnabled() {
return this._getOption('adaptivityEnabled');
}
set adaptivityEnabled(value) {
this._setOption('adaptivityEnabled', value);
}
/**
* Specifies the name of the data source item field whose value defines whether or not the corresponding appointment is an all-day appointment.
*/
get allDayExpr() {
return this._getOption('allDayExpr');
}
set allDayExpr(value) {
this._setOption('allDayExpr', value);
}
/**
* Specifies the display mode for the All day panel.
*/
get allDayPanelMode() {
return this._getOption('allDayPanelMode');
}
set allDayPanelMode(value) {
this._setOption('allDayPanelMode', value);
}
/**
* Specifies a custom template for cell overflow indicators.
*/
get appointmentCollectorTemplate() {
return this._getOption('appointmentCollectorTemplate');
}
set appointmentCollectorTemplate(value) {
this._setOption('appointmentCollectorTemplate', value);
}
/**
* Configures appointment reordering using drag and drop gestures.
*/
get appointmentDragging() {
return this._getOption('appointmentDragging');
}
set appointmentDragging(value) {
this._setOption('appointmentDragging', value);
}
/**
* Specifies a custom template for appointments.
*/
get appointmentTemplate() {
return this._getOption('appointmentTemplate');
}
set appointmentTemplate(value) {
this._setOption('appointmentTemplate', value);
}
/**
* Specifies a custom template for tooltips displayed when users click an appointment or cell overflow indicator.
*/
get appointmentTooltipTemplate() {
return this._getOption('appointmentTooltipTemplate');
}
set appointmentTooltipTemplate(value) {
this._setOption('appointmentTooltipTemplate', value);
}
/**
* Specifies cell duration in minutes. This property's value should divide the interval between startDayHour and endDayHour into even parts.
*/
get cellDuration() {
return this._getOption('cellDuration');
}
set cellDuration(value) {
this._setOption('cellDuration', value);
}
/**
* Specifies whether or not an end user can scroll the view in both directions at the same time.
*/
get crossScrollingEnabled() {
return this._getOption('crossScrollingEnabled');
}
set crossScrollingEnabled(value) {
this._setOption('crossScrollingEnabled', value);
}
/**
* Specifies the current date.
*/
get currentDate() {
return this._getOption('currentDate');
}
set currentDate(value) {
this._setOption('currentDate', value);
}
/**
* Specifies the displayed view. Accepts name or type of a view available in the views array.
*/
get currentView() {
return this._getOption('currentView');
}
set currentView(value) {
this._setOption('currentView', value);
}
/**
* Customizes the date navigator's text.
*/
get customizeDateNavigatorText() {
return this._getOption('customizeDateNavigatorText');
}
set customizeDateNavigatorText(value) {
this._setOption('customizeDateNavigatorText', value);
}
/**
* Specifies a custom template for table cells.
*/
get dataCellTemplate() {
return this._getOption('dataCellTemplate');
}
set dataCellTemplate(value) {
this._setOption('dataCellTemplate', value);
}
/**
* Binds the UI component to data.
*/
get dataSource() {
return this._getOption('dataSource');
}
set dataSource(value) {
this._setOption('dataSource', value);
}
/**
* Specifies a custom template for day scale items.
*/
get dateCellTemplate() {
return this._getOption('dateCellTemplate');
}
set dateCellTemplate(value) {
this._setOption('dateCellTemplate', value);
}
/**
* Specifies the format in which date-time values should be sent to the server.
*/
get dateSerializationFormat() {
return this._getOption('dateSerializationFormat');
}
set dateSerializationFormat(value) {
this._setOption('dateSerializationFormat', value);
}
/**
* Specifies the name of the data source item field whose value holds the description of the corresponding appointment.
*/
get descriptionExpr() {
return this._getOption('descriptionExpr');
}
set descriptionExpr(value) {
this._setOption('descriptionExpr', value);
}
/**
* Specifies whether the UI component responds to user interaction.
*/
get disabled() {
return this._getOption('disabled');
}
set disabled(value) {
this._setOption('disabled', value);
}
/**
* Specifies a custom template for tooltips displayed when users click a cell overflow indicator.
* @deprecated Use the appointmentTooltipTemplate option instead.
*/
get dropDownAppointmentTemplate() {
return this._getOption('dropDownAppointmentTemplate');
}
set dropDownAppointmentTemplate(value) {
this._setOption('dropDownAppointmentTemplate', value);
}
/**
* Specifies which editing operations a user can perform on appointments.
*/
get editing() {
return this._getOption('editing');
}
set editing(value) {
this._setOption('editing', value);
}
/**
* Specifies the global attributes to be attached to the UI component's container element.
*/
get elementAttr() {
return this._getOption('elementAttr');
}
set elementAttr(value) {
this._setOption('elementAttr', value);
}
/**
* Specifies the name of the data source item field that defines the ending of an appointment.
*/
get endDateExpr() {
return this._getOption('endDateExpr');
}
set endDateExpr(value) {
this._setOption('endDateExpr', value);
}
/**
* Specifies the name of the data source item field that defines the timezone of the appointment end date.
*/
get endDateTimeZoneExpr() {
return this._getOption('endDateTimeZoneExpr');
}
set endDateTimeZoneExpr(value) {
this._setOption('endDateTimeZoneExpr', value);
}
/**
* Specifies the last hour on the time scale. Accepts integer values from 0 to 24.
*/
get endDayHour() {
return this._getOption('endDayHour');
}
set endDayHour(value) {
this._setOption('endDayHour', value);
}
/**
* Specifies the first day of a week. Does not apply to the agenda view.
*/
get firstDayOfWeek() {
return this._getOption('firstDayOfWeek');
}
set firstDayOfWeek(value) {
this._setOption('firstDayOfWeek', value);
}
/**
* Specifies whether the UI component can be focused using keyboard navigation.
*/
get focusStateEnabled() {
return this._getOption('focusStateEnabled');
}
set focusStateEnabled(value) {
this._setOption('focusStateEnabled', value);
}
/**
* If true, appointments are grouped by date first and then by resource; opposite if false. Applies only if appointments are grouped and groupOrientation is 'horizontal'.
*/
get groupByDate() {
return this._getOption('groupByDate');
}
set groupByDate(value) {
this._setOption('groupByDate', value);
}
/**
* Specifies the resource kinds by which the scheduler's appointments are grouped in a timetable.
*/
get groups() {
return this._getOption('groups');
}
set groups(value) {
this._setOption('groups', value);
}
/**
* Specifies the UI component's height.
*/
get height() {
return this._getOption('height');
}
set height(value) {
this._setOption('height', value);
}
/**
* Specifies text for a hint that appears when a user pauses on the UI component.
*/
get hint() {
return this._getOption('hint');
}
set hint(value) {
this._setOption('hint', value);
}
/**
* Specifies the time interval between when the date-time indicator changes its position, in milliseconds.
*/
get indicatorUpdateInterval() {
return this._getOption('indicatorUpdateInterval');
}
set indicatorUpdateInterval(value) {
this._setOption('indicatorUpdateInterval', value);
}
/**
* The latest date the UI component allows you to select.
*/
get max() {
return this._getOption('max');
}
set max(value) {
this._setOption('max', value);
}
/**
* Specifies the limit of full-sized appointments displayed per cell. Applies to all views except 'agenda'.
*/
get maxAppointmentsPerCell() {
return this._getOption('maxAppointmentsPerCell');
}
set maxAppointmentsPerCell(value) {
this._setOption('maxAppointmentsPerCell', value);
}
/**
* The earliest date the UI component allows you to select.
*/
get min() {
return this._getOption('min');
}
set min(value) {
this._setOption('min', value);
}
/**
* Specifies the text or HTML markup displayed by the UI component if the item collection is empty. Available for the Agenda view only.
*/
get noDataText() {
return this._getOption('noDataText');
}
set noDataText(value) {
this._setOption('noDataText', value);
}
/**
* Specifies the minute offset within Scheduler indicating the starting point of a day.
*/
get offset() {
return this._getOption('offset');
}
set offset(value) {
this._setOption('offset', value);
}
/**
* Specifies the edit mode for recurring appointments.
*/
get recurrenceEditMode() {
return this._getOption('recurrenceEditMode');
}
set recurrenceEditMode(value) {
this._setOption('recurrenceEditMode', value);
}
/**
* Specifies the name of the data source item field that defines exceptions for the current recurring appointment.
*/
get recurrenceExceptionExpr() {
return this._getOption('recurrenceExceptionExpr');
}
set recurrenceExceptionExpr(value) {
this._setOption('recurrenceExceptionExpr', value);
}
/**
* Specifies the name of the data source item field that defines a recurrence rule for generating recurring appointments.
*/
get recurrenceRuleExpr() {
return this._getOption('recurrenceRuleExpr');
}
set recurrenceRuleExpr(value) {
this._setOption('recurrenceRuleExpr', value);
}
/**
* Specifies whether filtering is performed on the server or client side.
*/
get remoteFiltering() {
return this._getOption('remoteFiltering');
}
set remoteFiltering(value) {
this._setOption('remoteFiltering', value);
}
/**
* Specifies a custom template for resource headers.
*/
get resourceCellTemplate() {
return this._getOption('resourceCellTemplate');
}
set resourceCellTemplate(value) {
this._setOption('resourceCellTemplate', value);
}
/**
* Specifies an array of resources available in the scheduler.
*/
get resources() {
return this._getOption('resources');
}
set resources(value) {
this._setOption('resources', value);
}
/**
* Switches the UI component to a right-to-left representation.
*/
get rtlEnabled() {
return this._getOption('rtlEnabled');
}
set rtlEnabled(value) {
this._setOption('rtlEnabled', value);
}
/**
* Configures scrolling.
*/
get scrolling() {
return this._getOption('scrolling');
}
set scrolling(value) {
this._setOption('scrolling', value);
}
/**
* The data of the currently selected cells.
*/
get selectedCellData() {
return this._getOption('selectedCellData');
}
set selectedCellData(value) {
this._setOption('selectedCellData', value);
}
/**
* Specifies whether to apply shading to cover the timetable up to the current time.
*/
get shadeUntilCurrentTime() {
return this._getOption('shadeUntilCurrentTime');
}
set shadeUntilCurrentTime(value) {
this._setOption('shadeUntilCurrentTime', value);
}
/**
* Specifies the 'All-day' panel's visibility. Setting this property to false hides the panel along with the all-day appointments.
*/
get showAllDayPanel() {
return this._getOption('showAllDayPanel');
}
set showAllDayPanel(value) {
this._setOption('showAllDayPanel', value);
}
/**
* Specifies the current date-time indicator's visibility.
*/
get showCurrentTimeIndicator() {
return this._getOption('showCurrentTimeIndicator');
}
set showCurrentTimeIndicator(value) {
this._setOption('showCurrentTimeIndicator', value);
}
/**
* Specifies the name of the data source item field that defines the start of an appointment.
*/
get startDateExpr() {
return this._getOption('startDateExpr');
}
set startDateExpr(value) {
this._setOption('startDateExpr', value);
}
/**
* Specifies the name of the data source item field that defines the timezone of the appointment start date.
*/
get startDateTimeZoneExpr() {
return this._getOption('startDateTimeZoneExpr');
}
set startDateTimeZoneExpr(value) {
this._setOption('startDateTimeZoneExpr', value);
}
/**
* Specifies the first hour on the time scale. Accepts integer values from 0 to 24.
*/
get startDayHour() {
return this._getOption('startDayHour');
}
set startDayHour(value) {
this._setOption('startDayHour', value);
}
/**
* Specifies the number of the element when the Tab key is used for navigating.
*/
get tabIndex() {
return this._getOption('tabIndex');
}
set tabIndex(value) {
this._setOption('tabIndex', value);
}
/**
* Specifies the name of the data source item field that holds the subject of an appointment.
*/
get textExpr() {
return this._getOption('textExpr');
}
set textExpr(value) {
this._setOption('textExpr', value);
}
/**
* Specifies a custom template for time scale items.
*/
get timeCellTemplate() {
return this._getOption('timeCellTemplate');
}
set timeCellTemplate(value) {
this._setOption('timeCellTemplate', value);
}
/**
* Specifies the time zone for the Scheduler's grid. Accepts values from the IANA time zone database.
*/
get timeZone() {
return this._getOption('timeZone');
}
set timeZone(value) {
this._setOption('timeZone', value);
}
/**
* Specifies whether a user can switch views using tabs or a drop-down menu.
*/
get useDropDownViewSwitcher() {
return this._getOption('useDropDownViewSwitcher');
}
set useDropDownViewSwitcher(value) {
this._setOption('useDropDownViewSwitcher', value);
}
/**
* Specifies and configures the views to be available in the view switcher.
*/
get views() {
return this._getOption('views');
}
set views(value) {
this._setOption('views', value);
}
/**
* Specifies whether the UI component is visible.
*/
get visible() {
return this._getOption('visible');
}
set visible(value) {
this._setOption('visible', value);
}
/**
* Specifies the UI component's width.
*/
get width() {
return this._getOption('width');
}
set width(value) {
this._setOption('width', value);
}
/**
* A function that is executed after an appointment is added to the data source.
*/
onAppointmentAdded;
/**
* A function that is executed before an appointment is added to the data source.
*/
onAppointmentAdding;
/**
* A function that is executed when an appointment is clicked or tapped.
*/
onAppointmentClick;
/**
* A function that is executed when a user attempts to open the browser's context menu for an appointment. Allows you to replace this context menu with a custom context menu.
*/
onAppointmentContextMenu;
/**
* A function that is executed when an appointment is double-clicked or double-tapped.
*/
onAppointmentDblClick;
/**
* A function that is executed after an appointment is deleted from the data source.
*/
onAppointmentDeleted;
/**
* A function that is executed before an appointment is deleted from the data source.
*/
onAppointmentDeleting;
/**
* A function that is executed before an appointment details form appears. Use this function to customize the form.
*/
onAppointmentFormOpening;
/**
* A function that is executed when an appointment is rendered.
*/
onAppointmentRendered;
/**
* Occurs before showing an appointment's tooltip.
*/
onAppointmentTooltipShowing;
/**
* A function that is executed after an appointment is updated in the data source.
*/
onAppointmentUpdated;
/**
* A function that is executed before an appointment is updated in the data source.
*/
onAppointmentUpdating;
/**
* A function that is executed when a view cell is clicked.
*/
onCellClick;
/**
* A function that is executed when a user attempts to open the browser's context menu for a cell. Allows you to replace this context menu with a custom context menu.
*/
onCellContextMenu;
/**
* A function that is executed when the UI component is rendered and each time the component is repainted.
*/
onContentReady;
/**
* A function that is executed before the UI component is disposed of.
*/
onDisposing;
/**
* A function used in JavaScript frameworks to save the UI component instance.
*/
onInitialized;
/**
* A function that is executed after a UI component property is changed.
*/
onOptionChanged;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
accessKeyChange;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
adaptivityEnabledChange;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
allDayExprChange;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
allDayPanelModeChange;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
appointmentCollectorTemplateChange;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
appointmentDraggingChange;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
appointmentTemplateChange;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
appointmentTooltipTemplateChange;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
cellDurationChange;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
crossScrollingEnabledChange;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
currentDateChange;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
currentViewChange;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
customizeDateNavigatorTextChange;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
dataCellTemplateChange;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
dataSourceChange;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
dateCellTemplateChange;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
dateSerializationFormatChange;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
descriptionExprChange;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
disabledChange;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
dropDownAppointmentTemplateChange;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
editingChange;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
elementAttrChange;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
endDateExprChange;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
endDateTimeZoneExprChange;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
endDayHourChange;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
firstDayOfWeekChange;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
focusStateEnabledChange;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
groupByDateChange;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
groupsChange;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
heightChange;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
hintChange;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
indicatorUpdateIntervalChange;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
maxChange;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
maxAppointmentsPerCellChange;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
minChange;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
noDataTextChange;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
offsetChange;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
recurrenceEditModeChange;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
recurrenceExceptionExprChange;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
recurrenceRuleExprChange;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
remoteFilteringChange;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
resourceCellTemplateChange;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
resourcesChange;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
rtlEnabledChange;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
scrollingChange;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
selectedCellDataChange;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
shadeUntilCurrentTimeChange;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
showAllDayPanelChange;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
showCurrentTimeIndicatorChange;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
startDateExprChange;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
startDateTimeZoneExprChange;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
startDayHourChange;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
tabIndexChange;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
textExprChange;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
timeCellTemplateChange;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
timeZoneChange;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
useDropDownViewSwitcherChange;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
viewsChange;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
visibleChange;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
widthChange;
get resourcesChildren() {
return this._getOption('resources');
}
set resourcesChildren(value) {
this._setChildren('resources', value, 'DxiSchedulerResourceComponent');
}
get viewsChildren() {
return this._getOption('views');
}
set viewsChildren(value) {
this._setChildren('views', value, 'DxiSchedulerViewComponent');
}
get resourcesLegacyChildren() {
return this._getOption('resources');
}
set resourcesLegacyChildren(value) {
this._setChildren('resources', value, 'DxiResourceComponent');
}
get viewsLegacyChildren() {
return this._getOption('views');
}
set viewsLegacyChildren(value) {
this._setChildren('views', value, 'DxiViewComponent');
}
constructor(elementRef, ngZone, templateHost, _watcherHelper, _idh, optionHost, transferState, platformId) {
super(elementRef, ngZone, templateHost, _watcherHelper, transferState, platformId);
this._watcherHelper = _watcherHelper;
this._idh = _idh;
this._createEventEmitters([
{ subscribe: 'appointmentAdded', emit: 'onAppointmentAdded' },
{ subscribe: 'appointmentAdding', emit: 'onAppointmentAdding' },
{ subscribe: 'appointmentClick', emit: 'onAppointmentClick' },
{ subscribe: 'appointmentContextMenu', emit: 'onAppointmentContextMenu' },
{ subscribe: 'appointmentDblClick', emit: 'onAppointmentDblClick' },
{ subscribe: 'appointmentDeleted', emit: 'onAppointmentDeleted' },
{ subscribe: 'appointmentDeleting', emit: 'onAppointmentDeleting' },
{ subscribe: 'appointmentFormOpening', emit: 'onAppointmentFormOpening' },
{ subscribe: 'appointmentRendered', emit: 'onAppointmentRendered' },
{ subscribe: 'appointmentTooltipShowing', emit: 'onAppointmentTooltipShowing' },
{ subscribe: 'appointmentUpdated', emit: 'onAppointmentUpdated' },
{ subscribe: 'appointmentUpdating', emit: 'onAppointmentUpdating' },
{ subscribe: 'cellClick', emit: 'onCellClick' },
{ subscribe: 'cellContextMenu', emit: 'onCellContextMenu' },
{ subscribe: 'contentReady', emit: 'onContentReady' },
{ subscribe: 'disposing', emit: 'onDisposing' },
{ subscribe: 'initialized', emit: 'onInitialized' },
{ subscribe: 'optionChanged', emit: 'onOptionChanged' },
{ emit: 'accessKeyChange' },
{ emit: 'adaptivityEnabledChange' },
{ emit: 'allDayExprChange' },
{ emit: 'allDayPanelModeChange' },
{ emit: 'appointmentCollectorTemplateChange' },
{ emit: 'appointmentDraggingChange' },
{ emit: 'appointmentTemplateChange' },
{ emit: 'appointmentTooltipTemplateChange' },
{ emit: 'cellDurationChange' },
{ emit: 'crossScrollingEnabledChange' },
{ emit: 'currentDateChange' },
{ emit: 'currentViewChange' },
{ emit: 'customizeDateNavigatorTextChange' },
{ emit: 'dataCellTemplateChange' },
{ emit: 'dataSourceChange' },
{ emit: 'dateCellTemplateChange' },
{ emit: 'dateSerializationFormatChange' },
{ emit: 'descriptionExprChange' },
{ emit: 'disabledChange' },
{ emit: 'dropDownAppointmentTemplateChange' },
{ emit: 'editingChange' },
{ emit: 'elementAttrChange' },
{ emit: 'endDateExprChange' },
{ emit: 'endDateTimeZoneExprChange' },
{ emit: 'endDayHourChange' },
{ emit: 'firstDayOfWeekChange' },
{ emit: 'focusStateEnabledChange' },
{ emit: 'groupByDateChange' },
{ emit: 'groupsChange' },
{ emit: 'heightChange' },
{ emit: 'hintChange' },
{ emit: 'indicatorUpdateIntervalChange' },
{ emit: 'maxChange' },
{ emit: 'maxAppointmentsPerCellChange' },
{ emit: 'minChange' },
{ emit: 'noDataTextChange' },
{ emit: 'offsetChange' },
{ emit: 'recurrenceEditModeChange' },
{ emit: 'recurrenceExceptionExprChange' },
{ emit: 'recurrenceRuleExprChange' },
{ emit: 'remoteFilteringChange' },
{ emit: 'resourceCellTemplateChange' },
{ emit: 'resourcesChange' },
{ emit: 'rtlEnabledChange' },
{ emit: 'scrollingChange' },
{ emit: 'selectedCellDataChange' },
{ emit: 'shadeUntilCurrentTimeChange' },
{ emit: 'showAllDayPanelChange' },
{ emit: 'showCurrentTimeIndicatorChange' },
{ emit: 'startDateExprChange' },
{ emit: 'startDateTimeZoneExprChange' },
{ emit: 'startDayHourChange' },
{ emit: 'tabIndexChange' },
{ emit: 'textExprChange' },
{ emit: 'timeCellTemplateChange' },
{ emit: 'timeZoneChange' },
{ emit: 'useDropDownViewSwitcherChange' },
{ emit: 'viewsChange' },
{ emit: 'visibleChange' },
{ emit: 'widthChange' }
]);
this._idh.setHost(this);
optionHost.setHost(this);
}
_createInstance(element, options) {
return new DxScheduler(element, options);
}
ngOnDestroy() {
this._destroyWidget();
}
ngOnChanges(changes) {
super.ngOnChanges(changes);
this.setupChanges('dataSource', changes);
this.setupChanges('groups', changes);
this.setupChanges('resources', changes);
this.setupChanges('selectedCellData', changes);
this.setupChanges('views', changes);
}
setupChanges(prop, changes) {
if (!(prop in this._optionsToUpdate)) {
this._idh.setup(prop, changes);
}
}
ngDoCheck() {
this._idh.doCheck('dataSource');
this._idh.doCheck('groups');
this._idh.doCheck('resources');
this._idh.doCheck('selectedCellData');
this._idh.doCheck('views');
this._watcherHelper.checkWatchers();
super.ngDoCheck();
super.clearChangedOptions();
}
_setOption(name, value) {
let isSetup = this._idh.setupSingle(name, value);
let isChanged = this._idh.getChanges(name, value) !== null;
if (isSetup || isChanged) {
super._setOption(name, value);
}
}
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DxSchedulerComponent, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: i1.DxTemplateHost }, { token: i1.WatcherHelper }, { token: i1.IterableDifferHelper }, { token: i1.NestedOptionHost }, { token: i0.TransferState }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Component });
/** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: DxSchedulerComponent, selector: "dx-scheduler", inputs: { accessKey: "accessKey", adaptivityEnabled: "adaptivityEnabled", allDayExpr: "allDayExpr", allDayPanelMode: "allDayPanelMode", appointmentCollectorTemplate: "appointmentCollectorTemplate", appointmentDragging: "appointmentDragging", appointmentTemplate: "appointmentTemplate", appointmentTooltipTemplate: "appointmentTooltipTemplate", cellDuration: "cellDuration", crossScrollingEnabled: "crossScrollingEnabled", currentDate: "currentDate", currentView: "currentView", customizeDateNavigatorText: "customizeDateNavigatorText", dataCellTemplate: "dataCellTemplate", dataSource: "dataSource", dateCellTemplate: "dateCellTemplate", dateSerializationFormat: "dateSerializationFormat", descriptionExpr: "descriptionExpr", disabled: "disabled", dropDownAppointmentTemplate: "dropDownAppointmentTemplate", editing: "editing", elementAttr: "elementAttr", endDateExpr: "endDateExpr", endDateTimeZoneExpr: "endDateTimeZoneExpr", endDayHour: "endDayHour", firstDayOfWeek: "firstDayOfWeek", focusStateEnabled: "focusStateEnabled", groupByDate: "groupByDate", groups: "groups", height: "height", hint: "hint", indicatorUpdateInterval: "indicatorUpdateInterval", max: "max", maxAppointmentsPerCell: "maxAppointmentsPerCell", min: "min", noDataText: "noDataText", offset: "offset", recurrenceEditMode: "recurrenceEditMode", recurrenceExceptionExpr: "recurrenceExceptionExpr", recurrenceRuleExpr: "recurrenceRuleExpr", remoteFiltering: "remoteFiltering", resourceCellTemplate: "resourceCellTemplate", resources: "resources", rtlEnabled: "rtlEnabled", scrolling: "scrolling", selectedCellData: "selectedCellData", shadeUntilCurrentTime: "shadeUntilCurrentTime", showAllDayPanel: "showAllDayPanel", showCurrentTimeIndicator: "showCurrentTimeIndicator", startDateExpr: "startDateExpr", startDateTimeZoneExpr: "startDateTimeZoneExpr", startDayHour: "startDayHour", tabIndex: "tabIndex", textExpr: "textExpr", timeCellTemplate: "timeCellTemplate", timeZone: "timeZone", useDropDownViewSwitcher: "useDropDownViewSwitcher", views: "views", visible: "visible", width: "width" }, outputs: { onAppointmentAdded: "onAppointmentAdded", onAppointmentAdding: "onAppointmentAdding", onAppointmentClick: "onAppointmentClick", onAppointmentContextMenu: "onAppointmentContextMenu", onAppointmentDblClick: "onAppointmentDblClick", onAppointmentDeleted: "onAppointmentDeleted", onAppointmentDeleting: "onAppointmentDeleting", onAppointmentFormOpening: "onAppointmentFormOpening", onAppointmentRendered: "onAppointmentRendered", onAppointmentTooltipShowing: "onAppointmentTooltipShowing", onAppointmentUpdated: "onAppointmentUpdated", onAppointmentUpdating: "onAppointmentUpdating", onCellClick: "onCellClick", onCellContextMenu: "onCellContextMenu", onContentReady: "onContentReady", onDisposing: "onDisposing", onInitialized: "onInitialized", onOptionChanged: "onOptionChanged", accessKeyChange: "accessKeyChange", adaptivityEnabledChange: "adaptivityEnabledChange", allDayExprChange: "allDayExprChange", allDayPanelModeChange: "allDayPanelModeChange", appointmentCollectorTemplateChange: "appointmentCollectorTemplateChange", appointmentDraggingChange: "appointmentDraggingChange", appointmentTemplateChange: "appointmentTemplateChange", appointmentTooltipTemplateChange: "appointmentTooltipTemplateChange", cellDurationChange: "cellDurationChange", crossScrollingEnabledChange: "crossScrollingEnabledChange", currentDateChange: "currentDateChange", currentViewChange: "currentViewChange", customizeDateNavigatorTextChange: "customizeDateNavigatorTextChange", dataCellTemplateChange: "dataCellTemplateChange", dataSourceChange: "dataSourceChange", dateCellTemplateChange: "dateCellTemplateChange", dateSerializationFormatChange: "dateSerializationFormatChange", descriptionExprChange: "descriptionExprChange", disabledChange: "disabledChange", dropDownAppointmentTemplateChange: "dropDownAppointmentTemplateChange", editingChange: "editingChange", elementAttrChange: "elementAttrChange", endDateExprChange: "endDateExprChange", endDateTimeZoneExprChange: "endDateTimeZoneExprChange", endDayHourChange: "endDayHourChange", firstDayOfWeekChange: "firstDayOfWeekChange", focusStateEnabledChange: "focusStateEnabledChange", groupByDateChange: "groupByDateChange", groupsChange: "groupsChange", heightChange: "heightChange", hintChange: "hintChange", indicatorUpdateIntervalChange: "indicatorUpdateIntervalChange", maxChange: "maxChange", maxAppointmentsPerCellChange: "maxAppointmentsPerCellChange", minChange: "minChange", noDataTextChange: "noDataTextChange", offsetChange: "offsetChange", recurrenceEditModeChange: "recurrenceEditModeChange", recurrenceExceptionExprChange: "recurrenceExceptionExprChange", recurrenceRuleExprChange: "recurrenceRuleExprChange", remoteFilteringChange: "remoteFilteringChange", resourceCellTemplateChange: "resourceCellTemplateChange", resourcesChange: "resourcesChange", rtlEnabledChange: "rtlEnabledChange", scrollingChange: "scrollingChange", selectedCellDataChange: "selectedCellDataChange", shadeUntilCurrentTimeChange: "shadeUntilCurrentTimeChange", showAllDayPanelChange: "showAllDayPanelChange", showCurrentTimeIndicatorChange: "showCurrentTimeIndicatorChange", startDateExprChange: "startDateExprChange", startDateTimeZoneExprChange: "startDateTimeZoneExprChange", startDayHourChange: "startDayHourChange", tabIndexChange: "tabIndexChange", textExprChange: "textExprChange", timeCellTemplateChange: "timeCellTemplateChange", timeZoneChange: "timeZoneChange", useDropDownViewSwitcherChange: "useDropDownViewSwitcherChange", viewsChange: "viewsChange", visibleChange: "visibleChange", widthChange: "widthChange" }, host: { attributes: { "ngSkipHydration": "true" } }, providers: [
DxTemplateHost,
WatcherHelper,
NestedOptionHost,
IterableDifferHelper
], queries: [{ propertyName: "resourcesChildren", predicate: DxiSchedulerResourceComponent }, { propertyName: "viewsChildren", predicate: DxiSchedulerViewComponent }, { propertyName: "resourcesLegacyChildren", predicate: DxiResourceComponent }, { propertyName: "viewsLegacyChildren", predicate: DxiViewComponent }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: '', isInline: true });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DxSchedulerComponent, decorators: [{
type: Component,
args: [{
selector: 'dx-scheduler',
template: '',
host: { ngSkipHydration: 'true' },
providers: [
DxTemplateHost,
WatcherHelper,
NestedOptionHost,
IterableDifferHelper
]
}]
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.DxTemplateHost }, { type: i1.WatcherHelper }, { type: i1.IterableDifferHelper }, { type: i1.NestedOptionHost }, { type: i0.TransferState }, { type: undefined, decorators: [{
type: Inject,
args: [PLATFORM_ID]
}] }], propDecorators: { accessKey: [{
type: Input
}], adaptivityEnabled: [{
type: Input
}], allDayExpr: [{
type: Input
}], allDayPanelMode: [{
type: Input
}], appointmentCollectorTemplate: [{
type: Input
}], appointmentDragging: [{
type: Input
}], appointmentTemplate: [{
type: Input
}], appointmentTooltipTemplate: [{
type: Input
}], cellDuration: [{
type: Input
}], crossScrollingEnabled: [{
type: Input
}], currentDate: [{
type: Input
}], currentView: [{
type: Input
}], customizeDateNavigatorText: [{
type: Input
}], dataCellTemplate: [{
type: Input
}], dataSource: [{
type: Input
}], dateCellTemplate: [{
type: Input
}], dateSerializationFormat: [{
type: Input
}], descriptionExpr: [{
type: Input
}], disabled: [{
type: Input
}], dropDownAppointmentTemplate: [{
type: Input
}], editing: [{
type: Input
}], elementAttr: [{
type: Input
}], endDateExpr: [{
type: Input
}], endDateTimeZoneExpr: [{
type: Input
}], endDayHour: [{
type: Input
}], firstDayOfWeek: [{
type: Input
}], focusStateEnabled: [{
type: Input
}], groupByDate: [{
type: Input
}], groups: [{
type: Input
}], height: [{
type: Input
}], hint: [{
type: Input
}], indicatorUpdateInterval: [{
type: Input
}], max: [{
type: Input
}], maxAppointmentsPerCell: [{
type: Input
}], min: [{
type: Input
}], noDataText: [{
type: Input
}], offset: [{
type: Input
}], recurrenceEditMode: [{
type: Input
}], recurrenceExceptionExpr: [{
type: Input
}], recurrenceRuleExpr: [{
type: Input
}], remoteFiltering: [{
type: Input
}], resourceCellTemplate: [{
type: Input
}], resources: [{
type: Input
}], rtlEnabled: [{
type: Input
}], scrolling: [{
type: Input
}], selectedCellData: [{
type: Input
}], shadeUntilCurrentTime: [{
type: Input
}], showAllDayPanel: [{
type: Input
}], showCurrentTimeIndicator: [{
type: Input
}], startDateExpr: [{
type: Input
}], startDateTimeZoneExpr: [{
type: Input
}], startDayHour: [{
type: Input
}], tabIndex: [{
type: Input
}], textExpr: [{
type: Input
}], timeCellTemplate: [{
type: Input
}], timeZone: [{
type: Input
}], useDropDownViewSwitcher: [{
type: Input
}], views: [{
type: Input
}], visible: [{
type: Input
}], width: [{
type: Input
}], onAppointmentAdded: [{
type: Output
}], onAppointmentAdding: [{
type: Output
}], onAppointmentClick: [{
type: Output
}], onAppointmentContextMenu: [{
type: Output
}], onAppointmentDblClick: [{
type: Output
}], onAppointmentDeleted: [{
type: Output
}], onAppointmentDeleting: [{
type: Output
}