Un modal de date de conception de matériau / heure, conçu pour le web. Fonctionne bien avec matérialiser ou autonome.
https://ripjar.github.io/material-datetime-picker/


npm install material-datetime-picker
Le sélecteur dépend des icônes de conception de matériaux de Google (emballés avec matérialiser), ou inclus dans la head du document;
< link href =" https://fonts.googleapis.com/icon?family=Material+Icons " rel =" stylesheet " > Pour les meilleurs résultats, incluez également Roboto de police matériel de Google;
< link href =' https://fonts.googleapis.com/css?family=Roboto ' rel =' stylesheet ' type =' text/css ' > Si vous souhaitez utiliser ce projet en tant que <script> autonome, vous pouvez utiliser dist/material-datetime-picker.js . Vous devrez également inclure moment.js et rome.js :
< 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 > Le sélecteur peut être instancié et interagir avec manalement;
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 ( ) ) ; Le sélecteur est découplé de tout élément de forme unique pour simplifier. Cependant, il devrait être simple de relier le sélecteur à une entrée ou un bouton de formulaire. Par exemple, étant donné l'élément d'entrée <input class="c-datepicker-input" /> , les éléments suivants pourraient être écrits;
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 ( ) ) ; Toutes les options sont facultatives, y compris l' 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
} Mit