timepoint-selection
Version: 
Key controlled time input duration selection
67 lines (47 loc) • 2.07 kB
Markdown
[](https://www.npmjs.com/package/timepoint-selection)
**Enhance input elements with easy key entry and validation for time durations**. Library is in pure javascript, no framework is needed. Event handlers are added directly to the input and the package includes a destroy method to remove all added events.
* Input numbers directly or increment and decrement with up and down arrow keys.
* Left and right arrow keys navigate through the input selecting the next important character for entry.
* Rollover is automatically handled.
* Tabbing into an element automatically selects the first character in the input for easier entry.
* Non-valid characters are prevented from input.


  `npm install timepoint-selection`
```javascript
var selection = require('timepoint-selection');
var timepoint = selection(document.getElementById("input"), {
    'durationFormat': 'hh:mm:ss',
    'max': 3600 * 24,               // point of rollover in seconds.
    'value': 0,                     // initial value of input in seconds.
    'useAbbr': true,                // configure the separator to not be ':'
    'abbr': {                       // pass in custom separator (with trailing space if desired)
      'dd': 'days ',
      'hh': 'h ',
      'mm': 'm ',
      'ss': 's'
    }
});
//returns the current value of the input in seconds.
timepoint.getValue();
//sets the current value of the input in seconds.
timepoint.setValue(seconds);
//remove all the event listeners from the input.
timepoint.destroy();
```
Accepted duration formats:
- 'dd:hh:mm:ss'
- 'dd:hh:mm'
- 'hh:mm:ss'
- 'hh:mm'
- 'mm:ss'
d = days, h = hours, m = minutes, s = seconds
[](http://naomiaro.github.io/timepoint-selection/)
  `npm run start` runs the webpack dev server.
[](http://doge.mit-license.org)