generator-nitro
Version:
Yeoman generator for the nitro frontend framework
56 lines (47 loc) • 1.45 kB
text/typescript
import flatpickr from 'flatpickr';
import { German } from 'flatpickr/dist/l10n/de';
import { French } from 'flatpickr/dist/l10n/fr';
import { Serbian } from 'flatpickr/dist/l10n/sr';
import { Russian } from 'flatpickr/dist/l10n/ru';
// import { Options as FlatpickrOptions } from 'flatpickr/dist/types/options';
// import { Instance as FlatpickrInstance } from 'flatpickr/dist/types/instance';
import 'flatpickr/dist/flatpickr.css';
const getLocale = (localeKey: string) => {
switch (localeKey.toLowerCase()) {
case 'de':
return German;
case 'fr':
return French;
case 'sr':
return Serbian;
case 'ru':
return Russian;
default:
return undefined;
}
};
const initPicker = (element) => {
const localeKey = document.documentElement.lang || '';
const getData = (data: string): string | undefined => element.dataset[data];
const options: any = {
dateFormat: getData('dateFormat') || 'd.m.Y',
defaultDate: getData('defaultDate'),
};
const locale = getLocale(localeKey.toLowerCase());
const altFormat = getData('altFormat');
if (locale) {
options.locale = locale;
}
if (altFormat) {
options.altInput = true;
options.altFormat = altFormat;
// improve accessibility
options.onReady = (a, b, fp: any) => {
if (fp.altInput) {
fp.altInput.setAttribute('aria-hidden', 'true');
}
};
}
flatpickr(element, options);
};
export default initPicker;