UNPKG

@syncfusion/ej2-calendars

Version:

A complete package of date or time components with built-in features such as date formatting, inline editing, multiple (range) selection, range restriction, month and year selection, strict mode, and globalization.

393 lines (348 loc) 11.4 kB
import { EventHandler, Property, Internationalization, NotifyPropertyChanges } from '@syncfusion/ej2-base';import { KeyboardEvents, KeyboardEventArgs, Animation, AnimationModel, Browser, BaseEventArgs } from '@syncfusion/ej2-base';import { EmitType, cldrData, L10n, Component, getDefaultDateObject, rippleEffect, RippleOptions, Event } from '@syncfusion/ej2-base';import { remove, addClass, detach, removeClass, closest, append, attributes, setStyleAttribute } from '@syncfusion/ej2-base';import { isNullOrUndefined, formatUnit, getValue, extend, getUniqueID, ModuleDeclaration, ChildProperty } from '@syncfusion/ej2-base';import { Popup } from '@syncfusion/ej2-popups';import { FocusEventArgs, BlurEventArgs, ClearedEventArgs } from '../calendar/calendar';import { Input, InputObject, IInput, FloatLabelType } from '@syncfusion/ej2-inputs';import { ListBase, ListBaseOptions, createElementParams } from '@syncfusion/ej2-lists'; import {TimeFormatObject,ChangeEventArgs,PopupEventArgs,ItemEventArgs} from "./timepicker"; import {ComponentModel} from '@syncfusion/ej2-base'; /** * Interface for a class TimeMaskPlaceholder */ export interface TimeMaskPlaceholderModel { /** * Specifies the mask placeholder value for day property. * * @default 'day' */ day?: string; /** * Specifies the mask placeholder value for month property. * * @default 'month' */ month?: string; /** * Specifies the mask placeholder value for year property. * * @default 'year' */ year?: string; /** * Specifies the mask placeholder value for day of the week property. * * @default 'day of the week' */ dayOfTheWeek?: string; /** * Specifies the mask placeholder value for hour property. * * @default 'hour' */ hour?: string; /** * Specifies the mask placeholder value for minute property. * * @default 'minute' */ minute?: string; /** * Specifies the mask placeholder value for second property. * * @default 'second' */ second?: string; } /** * Interface for a class TimePicker */ export interface TimePickerModel extends ComponentModel{ /** * Gets or sets the width of the TimePicker component. The width of the popup is based on the width of the component. * * @default null */ width?: string | number; /** * Specifies the root CSS class of the TimePicker that allows to * customize the appearance by overriding the styles. * * @default null */ cssClass?: string; /** * Specifies the component to act as strict so that, it allows to enter only a valid time value within a specified range or else * resets to previous value. By default, strictMode is in false. * > For more details refer to * [`Strict Mode`](../../timepicker/strict-mode/) documentation. * * @default false */ strictMode?: boolean; /** * Customizes the key actions in TimePicker. * For example, when using German keyboard, the key actions can be customized using these shortcuts. * * <table> * <tr> * <td colSpan=1 rowSpan=1> * Key action<br/></td><td colSpan=1 rowSpan=1> * Key<br/></td></tr> * <tr> * <td colSpan=1 rowSpan=1> * enter<br/></td><td colSpan=1 rowSpan=1> * enter<br/></td></tr> * <tr> * <td colSpan=1 rowSpan=1> * escape<br/></td><td colSpan=1 rowSpan=1> * escape<br/></td></tr> * <tr> * <td colSpan=1 rowSpan=1> * end<br/></td><td colSpan=1 rowSpan=1> * end<br/></td></tr> * <tr> * <td colSpan=1 rowSpan=1> * tab<br/></td><td colSpan=1 rowSpan=1> * tab<br/></td></tr> * <tr> * <td colSpan=1 rowSpan=1> * home<br/></td><td colSpan=1 rowSpan=1> * home<br/></td></tr> * <tr> * <td colSpan=1 rowSpan=1> * down<br/></td><td colSpan=1 rowSpan=1> * downarrow<br/></td></tr> * <tr> * <td colSpan=1 rowSpan=1> * up<br/></td><td colSpan=1 rowSpan=1> * uparrow<br/></td></tr> * <tr> * <td colSpan=1 rowSpan=1> * left<br/></td><td colSpan=1 rowSpan=1> * leftarrow<br/></td></tr> * <tr> * <td colSpan=1 rowSpan=1> * right<br/></td><td colSpan=1 rowSpan=1> * rightarrow<br/></td></tr> * <tr> * <td colSpan=1 rowSpan=1> * open<br/></td><td colSpan=1 rowSpan=1> * alt+downarrow<br/></td></tr> * <tr> * <td colSpan=1 rowSpan=1> * close<br/></td><td colSpan=1 rowSpan=1> * alt+uparrow<br/></td></tr> * </table> * * {% codeBlock src='timepicker/keyConfigs/index.md' %}{% endcodeBlock %} * * @default null */ keyConfigs?: { [key: string]: string }; /** * Specifies the format of value that is to be displayed in component. By default, the format is * based on the culture. * > For more details refer to * [`Format`](../../timepicker/getting-started#setting-the-time-format) documentation. * {% codeBlock src='timepicker/format/index.md' %}{% endcodeBlock %} * * @default null * @aspType string */ format?: string | TimeFormatObject; /** * Specifies whether the component to be disabled or not. * * @default true */ enabled?: boolean; /** * Specifies the component popup display full screen in mobile devices. * * @default false */ fullScreenMode?: boolean; /** * Specifies the component in readonly state. * * @default false */ readonly?: boolean; /** * You can add the additional html attributes such as disabled, value etc., to the element. * If you configured both property and equivalent html attribute then the component considers the property value. * {% codeBlock src='timepicker/htmlAttributes/index.md' %}{% endcodeBlock %} * * @default {} */ htmlAttributes?: { [key: string]: string }; /** * Specifies the placeholder text to be floated. * Possible values are: * Never: The label will never float in the input when the placeholder is available. * Always: The floating label will always float above the input. * Auto: The floating label will float above the input after focusing or entering a value in the input. * * @default Syncfusion.EJ2.Inputs.FloatLabelType.Never * @aspType Syncfusion.EJ2.Inputs.FloatLabelType * @isEnumeration true */ floatLabelType?: FloatLabelType | string; /** * Specifies the placeholder text that is displayed in textbox. * * @default null */ placeholder?: string; /** * specifies the z-index value of the timePicker popup element. * * @default 1000 * @aspType int */ zIndex?: number; /** * Enable or disable the persisting component's state between the page reloads. If enabled, following list of states will be persisted. * 1. Value *      * @default false      */ enablePersistence?: boolean; /** * Specifies whether to show or hide the clear icon. * * @default true */ showClearButton?: boolean; /** * Specifies the time interval between the two adjacent time values in the popup list. * > For more details refer to * [`Format`](../../timepicker/getting-started#setting-the-time-format)documentation. * * @default 30 * */ step?: number; /** * Specifies the scroll bar position if there is no value is selected in the popup list or * the given value is not present in the popup list. * > For more details refer to * [`Time Duration`](https://ej2.syncfusion.com/demos/#/material/timepicker/list-formatting.html) sample. * {% codeBlock src='timepicker/scrollTo/index.md' %}{% endcodeBlock %} * * @default null */ scrollTo?: Date; /** * Gets or sets the value of the component. The value is parsed based on the culture specific time format. * * @default null * @isGenericType true */ value?: Date; /** * Gets or sets the minimum time value that can be allowed to select in TimePicker. * > For more details refer to * [`Time Range`](../../timepicker/time-range/) documentation. * * @default 00:00 */ min?: Date; /** * Gets or sets the maximum time value that can be allowed to select in TimePicker. * > For more details refer to * [`Time Range`](../../timepicker/time-range/) documentation. * * @default 00:00 */ max?: Date; /** * > Support for `allowEdit` has been provided from * [`v16.2.46`](https://ej2.syncfusion.com/angular/documentation/release-notes/16.2.46/#timepicker). * * Specifies whether the input textbox is editable or not. Here the user can select the value from the * popup and cannot edit in the input textbox. * * @default true */ allowEdit?: boolean; /** * By default, the popup opens while clicking on the timepicker icon. * If you want to open the popup while focusing the time input then specify its value as true. * * @default false */ openOnFocus?: boolean; /** * Specifies whether it is a masked timepicker or not. * By default the timepicker component render without masked input. * If you need masked timepicker input then specify it as true. * * @default false */ enableMask?: boolean; /** * Specifies the mask placeholder to be displayed on masked timepicker. * * @default {day:'day' , month:'month', year: 'year', hour:'hour',minute:'minute',second:'second',dayOfTheWeek: 'day of the week'} * @aspType TimePickerMaskPlaceholder */ maskPlaceholder?: TimeMaskPlaceholderModel; /** * By default, the time value will be processed based on system time zone. * If you want to process the initial time value using server time zone * then specify the time zone value to `serverTimezoneOffset` property. * * @default null */ serverTimezoneOffset?: number; /** * Triggers when the value is changed. * * @event change */ change?: EmitType<ChangeEventArgs>; /** * Triggers when the component is created. * * @event created */ created?: EmitType<Object>; /** * Triggers when the component is destroyed. * * @event destroyed */ destroyed?: EmitType<Object>; /** * Triggers when the popup is opened. * * @event open */ open?: EmitType<PopupEventArgs>; /** * Triggers while rendering the each popup list item. * * @event itemRender */ itemRender?: EmitType<ItemEventArgs>; /** * Triggers when the popup is closed. * * @event close */ close?: EmitType<PopupEventArgs>; /** * Triggers when timepicker value is cleared using clear button. * * @event cleared */ cleared?: EmitType<ClearedEventArgs>; /** * Triggers when the control loses the focus. * * @event blur */ blur?: EmitType<BlurEventArgs>; /** * Triggers when the control gets focused. * * @event focus */ focus?: EmitType<FocusEventArgs>; }