🔔 Alert..!! Get 2 Month Free Cloud Hosting With $200 Bonus From Digital Ocean ACTIVATE DEAL

A take on the material design date picker modal, built for the web.Works well with Materialize, or standalone.

Calendar Core Java Script

Documentation

Material Datetime Picker

A Material Design date/time picker modal, built for the web. Works well with Materialize, or standalone.

https://ripjar.github.io/material-datetime-picker/

Status Package

Time Time

Installation

npm install material-datetime-picker 

Dependencies

The picker depends on Google's Material Design icons (packaged with Materialize), or included in the head of the document;

<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">

For best results also include Google's Material Font Roboto;

<link href='https://fonts.googleapis.com/css?family=Roboto' rel='stylesheet' type='text/css'>

If you want to use this project as a standalone <script>, you can use dist/material-datetime-picker.js. You'll need to include moment.js and rome.js as well:

<script src="https://cdnjs.cloudflare.com/ajax/libs/rome/2.1.22/rome.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.17.1/moment.js"></script> <script src="material-datetime-picker.js" charset="utf-8"></script>

Usage

Manual (recommended)

The picker can be instantiated and interacted with manally;

import MaterialDateTimePicker from 'material-datetime-picker';  const picker = new MaterialDateTimePicker()     .on('submit', (val) => console.log(`data: ${val}`))     .on('open', () => console.log('opened'))     .on('close', () => console.log('closed'));  document.querySelector('.c-datepicker-btn')     .on('click', () => picker.open());        

As form input

The picker is decoupled from any single form element for simplicity. However, it should be simple to link the picker to a form input or button. For instance, given the input element <input class="c-datepicker-input" />, the following could be written;

import MaterialDateTimePicker from 'material-datetime-picker';  const input = document.querySelector('.c-datepicker-input'); const picker = new MaterialDateTimePicker()     .on('submit', (val) => {       input.value = val.format("DD/MM/YYYY");     });  input.addEventListener('focus', () => picker.open());      

Options

All options are optional, including the el.

{     // DOM Element to attach the datepicker. This element will receive      // events when the data changes. If an input element, will be      // populated with formatted date and time chosen.     // `el` must be a DOM Element object. Selectpr strings or wrappers     // like a jQuery selection are not supported.     el: document.querySelector('.c-datepicker-btn'),     // if `el` is set, the format used to display the datetime in the input,      format: 'DD/MM/YY',      //  the default value of the picker     default: moment(),     // the container to append the picker. If you change this, you need to make     // sure your element has a z-index > 0 so that it displays in front of the scrim.     container: document.body,         // cosmetic classes that can be overriden     // mostly used for styling the calendar     styles: {         scrim: 'c-scrim',         back: 'c-datepicker__back',         container: 'c-datepicker__calendar',         date: 'c-datepicker__date',         dayBody: 'c-datepicker__days-body',         dayBodyElem: 'c-datepicker__day-body',         dayConcealed: 'c-datepicker__day--concealed',         dayDisabled: 'c-datepicker__day--disabled',         dayHead: 'c-datepicker__days-head',         dayHeadElem: 'c-datepicker__day-head',         dayRow: 'c-datepicker__days-row',         dayTable: 'c-datepicker__days',         month: 'c-datepicker__month',         next: 'c-datepicker__next',         positioned: 'c-datepicker--fixed',         selectedDay: 'c-datepicker__day--selected',         selectedTime: 'c-datepicker__time--selected',         time: 'c-datepicker__time',         timeList: 'c-datepicker__time-list',         timeOption: 'c-datepicker__time-option',         clockNum: 'c-datepicker__clock__num'     },     // date range to allow (see rome validator factories)     dateValidator: null        }

License

MIT


You May Also Like