Abstracted DateInput and added Key handlers

Supported keys:
- ArrowUp: increase date type (year/month/day)
- ArrowDown: decrease date type (year/month/day)
- Enter: close date-picker
why is the ''{" not on the previous line?