UNPKG

@progress/kendo-react-dateinputs

Version:
172 lines (171 loc) 5.27 kB
import * as React from 'react'; import * as PropTypes from 'prop-types'; import { IntlService } from '@progress/kendo-react-intl'; import { DateInputSettings, DateInputFormatPlaceholder } from './models'; import { FormComponent, FormComponentProps, FormComponentValidity } from '@progress/kendo-react-common'; /** * The arguments for the `change` event of the DateInput. The generic argument sets the target type of the event. Defaults to `DateInput`. */ export interface DateInputChangeEvent<T = DateInput> { nativeEvent?: any; syntheticEvent: React.SyntheticEvent<any>; value: Date | null; target: T; } /** * Represents the props of the [KendoReact DateInput component]({% slug overview_dateinput %}). The generic argument is passed to the `onChange` property and is used as a target in the [`DateInputChangeEvent`]({% slug api_dateinputs_dateinputchangeevent %}) interface. */ export interface DateInputProps<T = DateInput> extends FormComponentProps, DateInputSettings { /** * Sets a class of the DateInput DOM element. */ className?: string; /** * Specifies the value of the DateInput. */ value?: Date | null; /** * Specifies the default value of the DateInput. If `value` is not set, this value will correspond to the initial value. */ defaultValue?: Date | null; /** * Determines the event handler that will be fired when the user edits the value ([see example]({% slug dateranges_dateinput %}). */ onChange?: (event: DateInputChangeEvent<T>) => void; } export declare class DateInput extends React.Component<DateInputProps, {}> implements FormComponent { /** * @hidden */ static propTypes: { value: PropTypes.Requireable<any>; format: PropTypes.Requireable<any>; formatPlaceholder: PropTypes.Requireable<any>; width: PropTypes.Requireable<any>; tabIndex: PropTypes.Requireable<any>; title: PropTypes.Requireable<any>; steps: PropTypes.Requireable<any>; min: PropTypes.Requireable<any>; max: PropTypes.Requireable<any>; disabled: PropTypes.Requireable<any>; spinners: PropTypes.Requireable<any>; name: PropTypes.Requireable<any>; dir: PropTypes.Requireable<any>; label: PropTypes.Requireable<any>; id: PropTypes.Requireable<any>; onChange: PropTypes.Requireable<any>; validationMessage: PropTypes.Requireable<any>; required: PropTypes.Requireable<any>; validate: PropTypes.Requireable<any>; valid: PropTypes.Requireable<any>; }; /** * @hidden */ static defaultProps: { format: string; formatPlaceholder: DateInputFormatPlaceholder; defaultValue: any; spinners: boolean; disabled: boolean; max: Date; min: Date; required: boolean; validityStyles: boolean; validationMessage: string; }; private kendoDate; private currentFormat; private valueDuringOnChange; private _element; private _inputId; private _lastSelectedSymbol; /** * @hidden */ componentDidMount(): void; /** * @hidden */ componentDidUpdate(): void; /** * @hidden */ render(): any; /** * Gets the value of the DateInput. */ readonly value: Date | null; /** * Gets the `name` property of the DateInput. */ readonly name: string | undefined; protected readonly min: Date; protected readonly max: Date; /** * Represents the validity state into which the DateInput is set. */ readonly validity: FormComponentValidity; /** * Gets the element of the DateInput. * * @return - An `HTMLInputElement`. * * @example * ```jsx * class App extends React.Component { * constructor(props) { * super(props); * } * element = null; * render() { * return ( * <div> * <DateInput * ref={(dateInput) => * this.element = dateInput ? dateInput.element : null} * /> * <button onClick={() => console.log(this.element)}>console.log the element</button> * </div> * ); * } * } * * ReactDOM.render( * <App />, * document.getElementsByTagName('my-app')[0] * ); * ``` */ readonly element: HTMLInputElement | null; /** * @hidden */ protected readonly validityStyles: boolean; /** * @hidden */ protected readonly required: boolean; /** * @hidden */ intl(): IntlService; /** * @hidden */ protected setValidity: () => void; private spinnersMouseDown; private elementChange; private elementClick; private wheel; private increasePart; private decreasePart; private elementKeyDown; private readonly selection; private setSelection; private triggerChange; private selectionBySymbol; private selectionByIndex; private switchDateSegment; private modifyDateSegmentValue; }