@progress/kendo-react-dateinputs
Version:
KendoReact Date Inputs package
172 lines (171 loc) • 5.27 kB
TypeScript
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;
}