Created
October 9, 2016 16:23
-
-
Save studentIvan/dc436526291c7922f6d2e5e23c92376e to your computer and use it in GitHub Desktop.
Datepicker ES6 PickMeUp component example with flat mode
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import pickmeup from 'pickmeup' | |
import moment from 'moment' | |
const init = () => { | |
$(() => { | |
let today = new Date(), next3months = moment().add(3, 'months').toDate(); | |
let element = document.querySelector('.choose-date__datepickerbox'); | |
if (!element) { | |
return; | |
} | |
let $picker = pickmeup(element, { | |
min: today, | |
max: next3months, | |
select_year: false, | |
select_month: false, | |
flat: true, | |
hide_on_select: true, | |
format: 'Y.m.d' | |
}); | |
$(element).each((i, found) => { | |
pickmeup(found).hide(); | |
let $input = $(found).parent().find('input'); | |
// here I using europe date format Y.m.d | |
$input.val(today.toISOString().substr(0, 10).replace(/-/g, '.')); | |
$input.parent().click((event) => { | |
let box = $(event.target).parent().parent() | |
.find('.choose-date__datepickerbox .pickmeup').get(0); | |
box.classList.remove('pmu-hidden'); | |
}); | |
$input.keyup((event, remoteCall) => { | |
let newDate = $input.val(); | |
if (/\d{4}\.\d{2}\.\d{2}/.test(newDate)) { | |
// here I using europe date format Y.m.d | |
let dateResult; | |
$picker.set_date(new Date(newDate.replace(/\./g, '-'))); | |
setTimeout(() => { | |
dateResult = $picker.get_date(true); | |
$input.val(dateResult); | |
}, 1); | |
$picker.hide(); | |
} | |
}); | |
}); | |
element.addEventListener('pickmeup-change', (event) => { | |
pickmeup(event.target).hide(); | |
$(event.target).parent().find('input').val(event.detail.formatted_date); | |
}); | |
}); | |
} | |
export default init(); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment