/** Core */ import { EventArgs } from "cmf.taura/src/base/base.mediator"; import { CoreComponent } from "cmf.core/src/core"; /** Angular2 */ import * as ng from "@angular/core"; /** External - JQuery */ import "node_modules/cmf.core.controls/assets/datetimepicker.min.js"; import moment from "moment"; export declare enum DateTimeRangePickerSpinnerType { Hour = 0, Day = 1, Week = 2, Month = 3, Year = 4 } export declare enum DateFormats { DateTime = 0, Date = 1, Hour = 2, Day = 3, DayOfWeek = 4, WeekOfMonth = 5, WeekOfMonthYear = 6, Month = 7, MonthOfYear = 8, Year = 9, Time = 10 } /** * @whatItDoes * DateTimeRangePicker base component is used to pick dateTime range. Based on the rangePickerType * property the nested component(s) can be DateTimePickers or a DateTimeSpinner. * It also accepts different date-time formats. The displayed value depends on the format property. * * @howToUse * This component is used with the inputs and outputs mentioned below. * * ### Inputs * `DateTimeRangePickerSpinnerType | string` : **spinner-type** - The spinner-type of this component (Hour | Day | Week | Month | Year) ; * `any` : **date-time-format** - The date-time-format of this component (Ex: DD/MM/YYYY HH:mm:ss) ; * `moment.Moment` : **startdatevalue** - The start date value of this component (Date | Moment | string) ; * `moment.Moment` : **enddatevalue** - The end date value of this component (Date | Moment | string). * * ### Outputs * `any` : **startdatevalueChange** - Triggered when the start date value change ; * `any` : **enddatevalueChange** - Triggered when the end date value change . * * ### Example * To use the component, assume this HTML Template as an example: * * ```HTML * * * * * * * * * * ``` * */ export declare class DateTimeRangePicker extends CoreComponent implements ng.OnInit, ng.OnChanges { /** * List item classes. The value to be used depends on the property _listSelectedItemBorderLocation * * @property {Array} List of css classes */ static MOMENT_FORMATS: string[]; /** * Spinner content classes, to be used depending on the content type. * * @property {Array} List of css classes */ static SPINNER_CONTENT_CLASSES: string[]; /** * The spinner type of the date-time-range picker * * @property {SpinnerType} spinner type. Possible values: Hour, Day, Week, Month, Year. */ private _spinnerType; /** * The Date Time Format used by Moment * * @property {string} Moment date format. Default is "DD/MM/YYYY HH:mm:ss" */ private _dateTimeMomentFormat; /** * The start date value change event, so the picker can inform the upper components that the value has changed * * @property {ng.EventEmitter} init event */ startDateValueChanged: ng.EventEmitter; /** * The end date value change event, so the picker can inform the upper components that the value has changed * * @property {ng.EventEmitter} init event */ endDateValueChanged: ng.EventEmitter; s: any; /** * The start date moment value of the date-time-range picker * * @property {Moment} picker start date time value in the given format */ _startDateValue: moment.Moment; /** * The end date moment value of the date-time-range picker * * @property {Moment} picker end date time value in the given format */ _endDateValue: moment.Moment; /** * The spinner content class * * @property {string} spinner content class. */ _spinnerContentClass: string; /** * The spinner content * * @property {string} spinner text content. */ _spinnerContent: string; /** * Property _spinnerType getter * * @return {SpinnerType} current value of property _spinnerType * @method spinnerType */ /** * Property _spinnerType setter * * @param {SpinnerType} [value] new value for property _spinnerType * @method spinnerType */ spinnerType: DateTimeRangePickerSpinnerType | string; /** * Property _startDateValue getter * * @return {moment.Moment} value of property start date value * @method startDateValue */ /** * Property _startDateValue setter * * @param {moment.Moment} [value] new value for property start date value * @method startDateValue */ startDateValue: moment.Moment; /** * Property _endDateValue getter * * @return {moment.Moment} value of property end date value * @method endDateValue */ /** * Property _endDateValue setter * * @param {moment.Moment} [value] new value for property end date value * @method endDateValue */ endDateValue: moment.Moment; /** * @method constructor */ constructor(elementRef: ng.ElementRef); /** * Based on start and end date values updates Spinner * * @method _setDates */ private _setDates; /** * Based on the current spinner type get unit of time * * @method _getUnitOfTime */ private _getUnitOfTime; /** * Based on the current dates, and the spinner type, updates dates and spinner text content * * @method _navigateSpinner */ private _navigateSpinner; /** * Gets week of month - first week is zero * * @method _getWeekOfMonth */ private _getWeekOfMonth; /** * Based on the current dates, and the spinner type, updates spinner text content * * @method _updateSpinnerContent */ private _updateSpinnerContent; /** * When spinner navigation previous is clicked - change dates and update spinner text content * * @param {Taura.EventArgs} [event] object containing event data * @method onSpinnerPreviousClick */ onSpinnerPreviousClick(event: EventArgs): void; /** * When spinner navigation next is clicked - change dates and update spinner text content * * @param {Taura.EventArgs} [event] object containing event data * @method onSpinnerNextClick */ onSpinnerNextClick(event: EventArgs): void; /** * When start date value changes - notify parent component * * @param {Event} [event] updated object * @method onStartDateValueChange */ onStartDateValueChange(value: moment.Moment): void; /** * When end date value changes - notify parent component * * @param {Event} [event] updated object * @method onEndDateValueChange */ onEndDateValueChange(value: moment.Moment): void; /** * On component initialization. */ ngOnInit(): void; /** * On changes method - update... */ ngOnChanges(changes: any): void; } export declare class DateTimeRangePickerModule { }