/** Angular2 */
import * as ng from "@angular/core";
/** Core */
import { CoreComponent } from "cmf.core/src/core";
import { DateTimeType } from "cmf.core/src/domain/extensions/formatter";
import { OnValidate, OnValidateArgs } from "../../directives/validator/validator";
import "node_modules/cmf.core.controls/assets/datetimepicker.min.js";
/**
* @whatItDoes
* DateTimePicker basic component is used to pick date or time (or both). It 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
* `DateTimeType | string` : **picker-type** - The picker-type of this component (DateTime|Date|Time) ;
* `string` : **date-time-format** - The date-time format of the date time picker (Ex: dd/MM/yyyy hh:mm:ss) ;
* `any` : **value** - Current Value (moment) of the date-time picker (Date | Moment | string) ;
* `boolean` : **required** - Defines if the control is mandatory or not .
* `boolean` : **supportTokens** - Defines if the DateTimePicker accepts tokens as a valid value. Defaults to false.
* `boolean` : **splitDateTime** - Indicates if the date picker should be separated from the time picker. Defaults to true;
*
* ### Outputs
* `any` : **valueChange** - The value change event, so the picker can inform the upper components that the value has changed ;
* `any` : **afterDateTimePickerInit** - The date time picker component after init event .
*
* ### Example
* To use the component, assume this HTML Template as an example:
*
* ```HTML
*
*
* ```
*
*/
export declare class DateTimePicker extends CoreComponent implements ng.AfterContentInit, ng.OnDestroy, OnValidate, ng.OnChanges {
private _elementRef;
/**
* The Date Time Picker icon class
*/
private static DATE_CLASS;
/**
* The minimum date allowed in the date picker, because of the SqlDateTime.MinValue convention
*/
private static readonly MIN_SUPPORTED_DATE;
/**
* The Date Time Picker icon class
*/
private static TIME_CLASS;
/**
* Component error class
*/
private static ERROR_CLASS;
/**
* DateTimePicker Internal Value that is emited on the ValueChange event
*/
private _value;
/**
* Current Value (moment) of the date-time picker
*/
value: any;
/**
* Defines if the control is mandatory or not.
*/
private _isRequired;
/**
* The current object of the date-time picker
*/
private _dateTimePicker;
/**
* The current data of the date-time picker
*/
private _dateTimePickerData;
private _inputRef;
/**
* The value change event, so the picker can inform the upper components that the value has changed
*/
valueChange: ng.EventEmitter;
/**
* The date time picker component after init event
*/
afterDateTimePickerInit: ng.EventEmitter;
/**
* Indicates if the date picker should be separeted from the time picker.
*/
splitDateTime: boolean;
/**
* If we are in mobile mode
*/
isMobile: boolean;
/**
* The current value of the date-time picker
* Should not show seconds
*/
_dateTimePickerValue: string;
/**
* The current value of the date-time picker (mobile)
*/
dateTimePickerValueMobile: string;
/**
* The Date Time Format
*/
_dateTimeFormat: string;
/**
* The picker type of the date-time picker
*/
_pickerType: DateTimeType;
/**
* Input type
*/
inputType: string;
/**
* Browser format DateTime
*/
browserFormatDateTime: string;
/**
* If set to true, the date time picker will allow the use of special tokens such as @Today, @Now, etc.
* Defaults to false.
*/
supportTokens: boolean;
/**
* Format value into a string following the standard GUI format for dates
* @param value - value to format, of type moment
* @param pickerType - used to format the value, can be of DateTime, Date, Time
*/
static format(value: any, pickerType: DateTimeType, currentCulture: string): string;
/**
* Gets the IsRequired Property.
*/
/**
* Sets the IsRequiredProperty
*/
isRequired: boolean;
/**
* The date-time format of the date time picker
*/
/**
* Gets the date time format to be used by the dateTime picker.
*/
dateTimeFormat: string;
/**
* Property pickerType getter
*/
/**
* Property pickerType setter
*/
pickerType: DateTimeType | string;
constructor(_elementRef: ng.ElementRef);
/**
* Creates the token container html template
*/
private createTokenContainer;
/**
* Creates the new calendar with selectors
* @param widgetHTML the widget html to be featured in the widget container
*/
private createCalendarWithSelectorsContainer;
/**
* Set DateTimePicker component
*/
private setupDateTimePicker;
/**
* Destroy DateTimePicker value
*/
private destroyDateTimePicker;
/**
* Using component current value Set DateTimePicker value
*/
private setDateTimePickerFromValue;
/**
* Using date time picker current value (string) set value internal value
* @param value - Can be of type string or moment
*/
private setValueFromDateTimePicker;
/**
* Check if a given data time string value is valid
* @param value [string] - date time picker current value
*/
private isDateTimeValueValid;
/**
* Component internal validation
*/
private internalValidation;
/**
* Validation function triggered by a wizard.
*/
onValidate(context: OnValidateArgs): Promise;
/**
* Resets the styling option of the validation process
*
* @see OnValidate interface
*/
reset(): Promise;
/**
* Determines whether input blur on
* Triggered when the validation (onblur) is triggered.
* @param event
* @param value
*/
onInputBlur(event: Event, value: any): void;
/**
* On mobile input change
* @param event datePicker event
* @param value datePicker value
*/
onMobileInputChange(event: Event): void;
/**
* After component content is initiated
*/
ngAfterContentInit(): void;
/**
* On component destruction - destroy datetimepicker.
*/
ngOnDestroy(): void;
/**
* When component changes - update
*
* @param {any} [changes] Complex object that contains a set of properties that have changed
*/
ngOnChanges(changes: any): void;
}
export declare class DateTimePickerModule {
}