// Input with calendar hint based on Calendar and Picker
// (c) Vitaliy Filippov 2021+
// Repository: http://yourcmc.ru/git/vitalif-js/calendar
// Version: 2021-10-17
// License: Dual-license MPL 2.0+ or GNU LGPL 3.0+
import React from 'react';
import PropTypes from 'prop-types';
import Calendar from './calendar-react.js';
import Picker from './Picker.js';
export function allowDate(ev)
{
if (ev && ev.key && ev.key.length == 1 && !/[\d\-\.]/.exec(ev.key))
{
ev.preventDefault();
}
}
export default class CalendarInput extends Picker
{
static propTypes = {
value: PropTypes.oneOfType([ PropTypes.string, PropTypes.instanceOf(Date) ]),
onChange: PropTypes.func.isRequired,
className: PropTypes.string,
placeholder: PropTypes.string,
closeLabel: PropTypes.string,
monthNames: PropTypes.arrayOf(PropTypes.string),
weekdays: PropTypes.arrayOf(PropTypes.string),
weekdayIds: PropTypes.arrayOf(PropTypes.string),
sunday: PropTypes.number,
minDate: PropTypes.oneOfType([ PropTypes.oneOf(['today']), PropTypes.instanceOf(Date) ]),
maxDate: PropTypes.oneOfType([ PropTypes.oneOf(['today']), PropTypes.instanceOf(Date) ]),
format: PropTypes.oneOf([ 'dmy', 'ymd' ]),
withTime: PropTypes.bool,
startMode: PropTypes.oneOf([ 'days', 'months', 'years' ]),
style: PropTypes.object,
}
setText = (ev) => this.props.onChange(ev.target.value)
renderInput = (props) => ()
renderPicker = (props) => ()
render()
{
return ();
}
}