///
/** Core */
import { CoreComponent } from "cmf.core/src/core";
import { DateTimeRangePicker, DateTimeRangeFilter, DateRange, DateTimeRangePickerSpinnerType as DateTimeRangeSpinnerType, DateFormats } from "cmf.core.controls/src/components/dateTimeRangeFilter/dateTimeRangeFilter";
import { DataGridColumn as ScheduleViewDataGridColumn, SelectionMode } from "cmf.core.controls/src/components/dataGrid/dataGrid";
import { CalendarEvent } from "cmf.core.controls/src/components/calendar/calendarDef";
/** Angular2 */
import * as ng from "@angular/core";
/** Kendo */
import "kendo.data";
export { DateTimeRangeSpinnerType };
export { SelectionMode };
export { DateRange };
export { DateFormats };
export { DateTimeRangePicker };
export { DateTimeRangeFilter };
export { CalendarEvent };
export { ScheduleViewDataGridColumn };
export declare enum ScheduleViewType {
Calendar = 0,
DataGrid = 1
}
export interface ViewTypeItem {
value: ScheduleViewType;
iconClass: string;
}
/**
* Allows the user to use dates and other filters to manipulate data
*
* ### Example
*
* ```
*
*
*
*
*
*
*
*
*
* ```
*/
export declare class ScheduleView extends CoreComponent implements ng.OnChanges {
/**
* Raw data that will be used to populate both the dataGrid and the Calendar
*/
data: Array;
/**
* The spinner type of the nested date-time-range picker
*
* @property {SpinnerType} spinner type. Possible values: Hour, Day, Week, Month, Year.
*/
_spinnerType: DateTimeRangeSpinnerType;
/**
* The start date of the nested date-time-range picker
*
* @property {string} picker start date time string value
*/
private _startDate;
/**
* The end date of the nested date-time-range picker
*
* @property {string} picker end date time string value
*/
private _endDate;
/**
* The view type item object array to populate the nested select(list) component
*
* @property {Array}
*/
_viewTypes: Array;
/**
* The currently selected schedule view type. Default: viewType.DataGrid
*/
_viewType: ViewTypeItem;
/**
* The selection mode used by the data grid component. Default is Multiple.
*
* @property {SelectionMode} the component selection mode. Possible values: None, Single, Multiple.
*/
_selectionMode: SelectionMode;
/**
* Calendar Selection Mode
*/
_calendarSelectionMode: SelectionMode;
/**
* The dataSource of the grid component. Must have the following structure (examples):
*
* dataSource: {
* data: products,
* schema: {
* model: {
* fields: {
* ProductName: { type: "string" },
* UnitPrice: { type: "number" },
* UnitsInStock: { type: "number" },
* Discontinued: { type: "boolean" }
* }
* }
* },
* pageSize: 20
* }
*
* dataSource: {
* type: "odata",
* transport: {
* read: "// demos.telerik.com/kendo-ui/service/Northwind.svc/Orders"
* },
* schema: {
* model: {
* fields: {
* OrderID: { type: "number" },
* Freight: { type: "number" },
* ShipName: { type: "string" },
* OrderDate: { type: "date" },
* ShipCity: { type: "string" }
* }
* }
* },
* pageSize: 20,
* serverPaging: true,
* serverFiltering: true,
* serverSorting: true
* }
*
* @property {kendo.data.DataSource} DataSource Object
*/
_dataGridDataSource: kendo.data.DataSource;
/**
* The columns definition needed by the nested grid component.
*
* ### Example
*
* ```
* this.columns = new Array();
* this.columns.push(new ScheduleViewDataGridColumn("ProductName", "Product Name", "
"));
* this.columns.push(new ScheduleViewDataGridColumn("UnitPrice", "Unit Price", ""));
* this.columns.push(new ScheduleViewDataGridColumn("UnitsInStock", "Units In Stock", ""));
* this.columns.push(new ScheduleViewDataGridColumn("Discontinued", "Unit Price", ""));
* ```
*/
_dataGridColumns: Array;
/**
* Calendar selected elements
*/
_dataGridSelected: Array;
/**
* Calendar data source
*/
_calendarDataSource: Array;
/**
* Calendar selected elements
*/
_calendarSelected: Array;
/**
* Schedule date range change event
*
* @property {ng.EventEmitter} init event
*/
dateRangeChange: ng.EventEmitter;
/**
* Schedule view type change event
*
* @property {ng.EventEmitter} init event
*/
viewTypeChange: ng.EventEmitter;
/**
* The data grid selection change event
*
* @property {ng.EventEmitter} init event
*/
selectedChange: ng.EventEmitter;
/**
* The objects associated with the currently selected rows
*
* @property {Array} array of objects
*/
selected: Array;
/**
* Schedule date range
*
* @property {DateRange} Object that contains start and end dates in moment
*/
dateRange: DateRange;
/**
* Options to be sent to the calendar event builder method.
* This can be used to change some options.
*/
calendarBuilderOptions: any;
/**
* Function used to build an event from the data given
* By default reuses the object.
*/
calendarEventBuilder: (obj: any, options: any) => CalendarEvent;
/**
* Property _dataGridColumns getter.
*/
/**
* Property _dataGridColumns setter.
*/
dataGridColumns: Array;
/**
* @method constructor
*/
constructor();
/**
* When end date changes - notify parent component
*
* @method onEndDateChange
*/
onDateRangeChange(value: DateRange): void;
/**
* When schedule view type changes - notify parent component
*
* @method onViewTypeChange
*/
onViewTypeChange(value: ViewTypeItem): void;
/**
* When selected values change - notify parent component
*
* @method onSelectedChange
*/
onDataGridSelectedChange(selected: any): void;
/**
* When calendar selected item change
* @param data
*/
onCalendarSelectedChange(selected: CalendarEvent[]): void;
/**
* On changes method
*/
ngOnChanges(changes: any): void;
}
export declare class ScheduleViewModule {
}