<commit_before># picker.js
A picker for dates, date ranges, (and hopefully times) for multiple frameworks including Bootstrap 3, Bootstrap 4, and Material Design for Bootstrap 4

## Usage

## Bootstrap 3

See [test-bs3.html](sandbox/test-bs3.html) for a sample.
```javascript
$('input').datepicker({preset: 'bs3'})
```
## Bootstrap 4

See [test-bs4.html](sandbox/test-bs4.html) for a sample.
```javascript
$('input').datepicker({preset: 'bs4'})
```
## Bootstrap Material Design 4

See [test-bmd4.html](sandbox/test-bmd4.html) for a sample.
```javascript
$('input').datepicker({preset: 'bmd4'})
```  
## Options
The datepicker is _very_ configurable, including buttons, disabled dates or days of week, and much much more.  Framework templates may override the `Default` configuration to achieve specific behaviors, for example the [BMD4Template](js/templates/bmd4Template.js#L5) uses `CANCEL | OK` buttons, disables/skips the months view, and disables keyboard navigation so that all keypresses go directly to the input field.

With all of the options available, it's best to look [directly at the `Default` configuration](js/datepicker.js#L19) for notes on how it works. You can also take a look at any of the [tests in the `config` directory](tree/master/test/datepicker/config).

### Date formats/parsing
_Every single bit of date functionality_ is handled by the fantastic [moment.js](http://momentjs.com/).  See the [moment.js documentation on formats](http://momentjs.com/docs/#/displaying/format/) for more information. A simple way to change the format is to pass in `{format: 'valid momentjs format'}` to the constructor.  See the [format test](test/datepicker/config/format.js) for more.

### Popper placement
_Every single bit of UI placement functionality_ is handled by the fantastic [popper.js](http://popper.js.org/).  See the [popper.js documentation](http://popper.js.org/documentation.html)   

## Goal 

1. An ES2015 base classes for use in multiple renderings for different frameworks 
2. Variations of `datepicker`:
    - Bootstrap 3 - completed
    - Bootstrap 4 - works but could use some styling help
    - [bootstrap-material-design](https://github.com/FezVrasta/bootstrap-material-design/tree/v4-dev) 4 picker that meets the [Material Design specification](https://www.google.com/design/spec/components/pickers.html#) - works - needs help on the animated reveal/hide
3. (future) add time pickers - starting with material design    

## Why?
The bootsrap-datepicker project had 415 open issue and 64 open pull requests.  One reason for this is it bit off a big chunk, including all date functionality and rendering/placement functionality.
<commit_msg>code paths incorrect<commit_after># picker.js
A picker for dates, date ranges, (and hopefully times) for multiple frameworks including Bootstrap 3, Bootstrap 4, and Material Design for Bootstrap 4

## Usage

## Bootstrap 3

See [test-bs3.html](sandbox/test-bs3.html) for a sample.
```javascript
$('input').datepicker({preset: 'bs3'})
```
## Bootstrap 4

See [test-bs4.html](sandbox/test-bs4.html) for a sample.
```javascript
$('input').datepicker({preset: 'bs4'})
```
## Bootstrap Material Design 4

See [test-bmd4.html](sandbox/test-bmd4.html) for a sample.
```javascript
$('input').datepicker({preset: 'bmd4'})
```  
## Options
The datepicker is _very_ configurable, including buttons, disabled dates or days of week, and much much more.  Framework templates may override the `Default` configuration to achieve specific behaviors, for example the [BMD4Template](js/templates/bmd4Template.js#L5) uses `CANCEL | OK` buttons, disables/skips the months view, and disables keyboard navigation so that all keypresses go directly to the input field.

With all of the options available, it's best to look [directly at the `Default` configuration](js/datepicker.js#L19) for notes on how it works. You can also take a look at any of the [tests in the `config` directory](test/datepicker/config).

### Date formats/parsing
_Every single bit of date functionality_ is handled by the fantastic [moment.js](http://momentjs.com/).  See the [moment.js documentation on formats](http://momentjs.com/docs/#/displaying/format/) for more information. A simple way to change the format is to pass in `{format: 'valid momentjs format'}` to the constructor.  See the [format test](test/datepicker/config/format.js) for more.

### Popper placement
_Every single bit of UI placement functionality_ is handled by the fantastic [popper.js](http://popper.js.org/).  See the [popper.js documentation](http://popper.js.org/documentation.html)   

## Goal 

1. An ES2015 base classes for use in multiple renderings for different frameworks 
2. Variations of `datepicker`:
    - Bootstrap 3 - completed
    - Bootstrap 4 - works but could use some styling help
    - [bootstrap-material-design](https://github.com/FezVrasta/bootstrap-material-design/tree/v4-dev) 4 picker that meets the [Material Design specification](https://www.google.com/design/spec/components/pickers.html#) - works - needs help on the animated reveal/hide
3. (future) add time pickers - starting with material design    

## Why?
The bootsrap-datepicker project had 415 open issue and 64 open pull requests.  One reason for this is it bit off a big chunk, including all date functionality and rendering/placement functionality.

{'fraction_non_alphanumeric': 0.10697587432204975, 'fraction_numerical': 0.01346549466990836, 'mean_word_length': 4.671261930010605, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 4, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6754026', 'n_tokens_mistral': 1583, 'n_tokens_neox': 1476, 'n_words': 604}