/// /** 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 { }