second commit
This commit is contained in:
210
node_modules/flowbite-datepicker/js/DateRangePicker.js
generated
vendored
Normal file
210
node_modules/flowbite-datepicker/js/DateRangePicker.js
generated
vendored
Normal file
@ -0,0 +1,210 @@
|
||||
import {registerListeners, unregisterListeners} from './lib/event.js';
|
||||
import {formatDate} from './lib/date-format.js';
|
||||
import Datepicker from './Datepicker.js';
|
||||
|
||||
// filter out the config options inapproprite to pass to Datepicker
|
||||
function filterOptions(options) {
|
||||
const newOpts = Object.assign({}, options);
|
||||
|
||||
delete newOpts.inputs;
|
||||
delete newOpts.allowOneSidedRange;
|
||||
delete newOpts.maxNumberOfDates; // to ensure each datepicker handles a single date
|
||||
|
||||
return newOpts;
|
||||
}
|
||||
|
||||
function setupDatepicker(rangepicker, changeDateListener, el, options) {
|
||||
registerListeners(rangepicker, [
|
||||
[el, 'changeDate', changeDateListener],
|
||||
]);
|
||||
new Datepicker(el, options, rangepicker);
|
||||
}
|
||||
|
||||
function onChangeDate(rangepicker, ev) {
|
||||
// to prevent both datepickers trigger the other side's update each other
|
||||
if (rangepicker._updating) {
|
||||
return;
|
||||
}
|
||||
rangepicker._updating = true;
|
||||
|
||||
const target = ev.target;
|
||||
if (target.datepicker === undefined) {
|
||||
return;
|
||||
}
|
||||
|
||||
const datepickers = rangepicker.datepickers;
|
||||
const setDateOptions = {render: false};
|
||||
const changedSide = rangepicker.inputs.indexOf(target);
|
||||
const otherSide = changedSide === 0 ? 1 : 0;
|
||||
const changedDate = datepickers[changedSide].dates[0];
|
||||
const otherDate = datepickers[otherSide].dates[0];
|
||||
|
||||
if (changedDate !== undefined && otherDate !== undefined) {
|
||||
// if the start of the range > the end, swap them
|
||||
if (changedSide === 0 && changedDate > otherDate) {
|
||||
datepickers[0].setDate(otherDate, setDateOptions);
|
||||
datepickers[1].setDate(changedDate, setDateOptions);
|
||||
} else if (changedSide === 1 && changedDate < otherDate) {
|
||||
datepickers[0].setDate(changedDate, setDateOptions);
|
||||
datepickers[1].setDate(otherDate, setDateOptions);
|
||||
}
|
||||
} else if (!rangepicker.allowOneSidedRange) {
|
||||
// to prevent the range from becoming one-sided, copy changed side's
|
||||
// selection (no matter if it's empty) to the other side
|
||||
if (changedDate !== undefined || otherDate !== undefined) {
|
||||
setDateOptions.clear = true;
|
||||
datepickers[otherSide].setDate(datepickers[changedSide].dates, setDateOptions);
|
||||
}
|
||||
}
|
||||
datepickers[0].picker.update().render();
|
||||
datepickers[1].picker.update().render();
|
||||
delete rangepicker._updating;
|
||||
}
|
||||
|
||||
/**
|
||||
* Class representing a date range picker
|
||||
*/
|
||||
export default class DateRangePicker {
|
||||
/**
|
||||
* Create a date range picker
|
||||
* @param {Element} element - element to bind a date range picker
|
||||
* @param {Object} [options] - config options
|
||||
*/
|
||||
constructor(element, options = {}) {
|
||||
const inputs = Array.isArray(options.inputs)
|
||||
? options.inputs
|
||||
: Array.from(element.querySelectorAll('input'));
|
||||
if (inputs.length < 2) {
|
||||
return;
|
||||
}
|
||||
|
||||
element.rangepicker = this;
|
||||
this.element = element;
|
||||
this.inputs = inputs.slice(0, 2);
|
||||
this.allowOneSidedRange = !!options.allowOneSidedRange;
|
||||
|
||||
const changeDateListener = onChangeDate.bind(null, this);
|
||||
const cleanOptions = filterOptions(options);
|
||||
// in order for initial date setup to work right when pcicLvel > 0,
|
||||
// let Datepicker constructor add the instance to the rangepicker
|
||||
const datepickers = [];
|
||||
Object.defineProperty(this, 'datepickers', {
|
||||
get() {
|
||||
return datepickers;
|
||||
},
|
||||
});
|
||||
setupDatepicker(this, changeDateListener, this.inputs[0], cleanOptions);
|
||||
setupDatepicker(this, changeDateListener, this.inputs[1], cleanOptions);
|
||||
Object.freeze(datepickers);
|
||||
// normalize the range if inital dates are given
|
||||
if (datepickers[0].dates.length > 0) {
|
||||
onChangeDate(this, {target: this.inputs[0]});
|
||||
} else if (datepickers[1].dates.length > 0) {
|
||||
onChangeDate(this, {target: this.inputs[1]});
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @type {Array} - selected date of the linked date pickers
|
||||
*/
|
||||
get dates() {
|
||||
return this.datepickers.length === 2
|
||||
? [
|
||||
this.datepickers[0].dates[0],
|
||||
this.datepickers[1].dates[0],
|
||||
]
|
||||
: undefined;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set new values to the config options
|
||||
* @param {Object} options - config options to update
|
||||
*/
|
||||
setOptions(options) {
|
||||
this.allowOneSidedRange = !!options.allowOneSidedRange;
|
||||
|
||||
const cleanOptions = filterOptions(options);
|
||||
this.datepickers[0].setOptions(cleanOptions);
|
||||
this.datepickers[1].setOptions(cleanOptions);
|
||||
}
|
||||
|
||||
/**
|
||||
* Destroy the DateRangePicker instance
|
||||
* @return {DateRangePicker} - the instance destroyed
|
||||
*/
|
||||
destroy() {
|
||||
this.datepickers[0].destroy();
|
||||
this.datepickers[1].destroy();
|
||||
unregisterListeners(this);
|
||||
delete this.element.rangepicker;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the start and end dates of the date range
|
||||
*
|
||||
* The method returns Date objects by default. If format string is passed,
|
||||
* it returns date strings formatted in given format.
|
||||
* The result array always contains 2 items (start date/end date) and
|
||||
* undefined is used for unselected side. (e.g. If none is selected,
|
||||
* the result will be [undefined, undefined]. If only the end date is set
|
||||
* when allowOneSidedRange config option is true, [undefined, endDate] will
|
||||
* be returned.)
|
||||
*
|
||||
* @param {String} [format] - Format string to stringify the dates
|
||||
* @return {Array} - Start and end dates
|
||||
*/
|
||||
getDates(format = undefined) {
|
||||
const callback = format
|
||||
? date => formatDate(date, format, this.datepickers[0].config.locale)
|
||||
: date => new Date(date);
|
||||
|
||||
return this.dates.map(date => date === undefined ? date : callback(date));
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the start and end dates of the date range
|
||||
*
|
||||
* The method calls datepicker.setDate() internally using each of the
|
||||
* arguments in start→end order.
|
||||
*
|
||||
* When a clear: true option object is passed instead of a date, the method
|
||||
* clears the date.
|
||||
*
|
||||
* If an invalid date, the same date as the current one or an option object
|
||||
* without clear: true is passed, the method considers that argument as an
|
||||
* "ineffective" argument because calling datepicker.setDate() with those
|
||||
* values makes no changes to the date selection.
|
||||
*
|
||||
* When the allowOneSidedRange config option is false, passing {clear: true}
|
||||
* to clear the range works only when it is done to the last effective
|
||||
* argument (in other words, passed to rangeEnd or to rangeStart along with
|
||||
* ineffective rangeEnd). This is because when the date range is changed,
|
||||
* it gets normalized based on the last change at the end of the changing
|
||||
* process.
|
||||
*
|
||||
* @param {Date|Number|String|Object} rangeStart - Start date of the range
|
||||
* or {clear: true} to clear the date
|
||||
* @param {Date|Number|String|Object} rangeEnd - End date of the range
|
||||
* or {clear: true} to clear the date
|
||||
*/
|
||||
setDates(rangeStart, rangeEnd) {
|
||||
const [datepicker0, datepicker1] = this.datepickers;
|
||||
const origDates = this.dates;
|
||||
|
||||
// If range normalization runs on every change, we can't set a new range
|
||||
// that starts after the end of the current range correctly because the
|
||||
// normalization process swaps start↔︎end right after setting the new start
|
||||
// date. To prevent this, the normalization process needs to run once after
|
||||
// both of the new dates are set.
|
||||
this._updating = true;
|
||||
datepicker0.setDate(rangeStart);
|
||||
datepicker1.setDate(rangeEnd);
|
||||
delete this._updating;
|
||||
|
||||
if (datepicker1.dates[0] !== origDates[1]) {
|
||||
onChangeDate(this, {target: this.inputs[1]});
|
||||
} else if (datepicker0.dates[0] !== origDates[0]) {
|
||||
onChangeDate(this, {target: this.inputs[0]});
|
||||
}
|
||||
}
|
||||
}
|
487
node_modules/flowbite-datepicker/js/Datepicker.js
generated
vendored
Normal file
487
node_modules/flowbite-datepicker/js/Datepicker.js
generated
vendored
Normal file
@ -0,0 +1,487 @@
|
||||
import {lastItemOf, stringToArray, isInRange} from './lib/utils.js';
|
||||
import {today} from './lib/date.js';
|
||||
import {parseDate, formatDate} from './lib/date-format.js';
|
||||
import {registerListeners, unregisterListeners} from './lib/event.js';
|
||||
import {locales} from './i18n/base-locales.js';
|
||||
import defaultOptions from './options/defaultOptions.js';
|
||||
import processOptions from './options/processOptions.js';
|
||||
import Picker from './picker/Picker.js';
|
||||
import {triggerDatepickerEvent} from './events/functions.js';
|
||||
import {onKeydown, onFocus, onMousedown, onClickInput, onPaste} from './events/inputFieldListeners.js';
|
||||
import {onClickOutside} from './events/otherListeners.js';
|
||||
|
||||
function stringifyDates(dates, config) {
|
||||
return dates
|
||||
.map(dt => formatDate(dt, config.format, config.locale))
|
||||
.join(config.dateDelimiter);
|
||||
}
|
||||
|
||||
// parse input dates and create an array of time values for selection
|
||||
// returns undefined if there are no valid dates in inputDates
|
||||
// when origDates (current selection) is passed, the function works to mix
|
||||
// the input dates into the current selection
|
||||
function processInputDates(datepicker, inputDates, clear = false) {
|
||||
const {config, dates: origDates, rangepicker} = datepicker;
|
||||
if (inputDates.length === 0) {
|
||||
// empty input is considered valid unless origiDates is passed
|
||||
return clear ? [] : undefined;
|
||||
}
|
||||
|
||||
const rangeEnd = rangepicker && datepicker === rangepicker.datepickers[1];
|
||||
let newDates = inputDates.reduce((dates, dt) => {
|
||||
let date = parseDate(dt, config.format, config.locale);
|
||||
if (date === undefined) {
|
||||
return dates;
|
||||
}
|
||||
if (config.pickLevel > 0) {
|
||||
// adjust to 1st of the month/Jan 1st of the year
|
||||
// or to the last day of the monh/Dec 31st of the year if the datepicker
|
||||
// is the range-end picker of a rangepicker
|
||||
const dt = new Date(date);
|
||||
if (config.pickLevel === 1) {
|
||||
date = rangeEnd
|
||||
? dt.setMonth(dt.getMonth() + 1, 0)
|
||||
: dt.setDate(1);
|
||||
} else {
|
||||
date = rangeEnd
|
||||
? dt.setFullYear(dt.getFullYear() + 1, 0, 0)
|
||||
: dt.setMonth(0, 1);
|
||||
}
|
||||
}
|
||||
if (
|
||||
isInRange(date, config.minDate, config.maxDate)
|
||||
&& !dates.includes(date)
|
||||
&& !config.datesDisabled.includes(date)
|
||||
&& !config.daysOfWeekDisabled.includes(new Date(date).getDay())
|
||||
) {
|
||||
dates.push(date);
|
||||
}
|
||||
return dates;
|
||||
}, []);
|
||||
if (newDates.length === 0) {
|
||||
return;
|
||||
}
|
||||
if (config.multidate && !clear) {
|
||||
// get the synmetric difference between origDates and newDates
|
||||
newDates = newDates.reduce((dates, date) => {
|
||||
if (!origDates.includes(date)) {
|
||||
dates.push(date);
|
||||
}
|
||||
return dates;
|
||||
}, origDates.filter(date => !newDates.includes(date)));
|
||||
}
|
||||
// do length check always because user can input multiple dates regardless of the mode
|
||||
return config.maxNumberOfDates && newDates.length > config.maxNumberOfDates
|
||||
? newDates.slice(config.maxNumberOfDates * -1)
|
||||
: newDates;
|
||||
}
|
||||
|
||||
// refresh the UI elements
|
||||
// modes: 1: input only, 2, picker only, 3 both
|
||||
function refreshUI(datepicker, mode = 3, quickRender = true) {
|
||||
const {config, picker, inputField} = datepicker;
|
||||
if (mode & 2) {
|
||||
const newView = picker.active ? config.pickLevel : config.startView;
|
||||
picker.update().changeView(newView).render(quickRender);
|
||||
}
|
||||
if (mode & 1 && inputField) {
|
||||
inputField.value = stringifyDates(datepicker.dates, config);
|
||||
}
|
||||
}
|
||||
|
||||
function setDate(datepicker, inputDates, options) {
|
||||
let {clear, render, autohide} = options;
|
||||
if (render === undefined) {
|
||||
render = true;
|
||||
}
|
||||
if (!render) {
|
||||
autohide = false;
|
||||
} else if (autohide === undefined) {
|
||||
autohide = datepicker.config.autohide;
|
||||
}
|
||||
|
||||
const newDates = processInputDates(datepicker, inputDates, clear);
|
||||
if (!newDates) {
|
||||
return;
|
||||
}
|
||||
if (newDates.toString() !== datepicker.dates.toString()) {
|
||||
datepicker.dates = newDates;
|
||||
refreshUI(datepicker, render ? 3 : 1);
|
||||
triggerDatepickerEvent(datepicker, 'changeDate');
|
||||
} else {
|
||||
refreshUI(datepicker, 1);
|
||||
}
|
||||
if (autohide) {
|
||||
datepicker.hide();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Class representing a date picker
|
||||
*/
|
||||
export default class Datepicker {
|
||||
/**
|
||||
* Create a date picker
|
||||
* @param {Element} element - element to bind a date picker
|
||||
* @param {Object} [options] - config options
|
||||
* @param {DateRangePicker} [rangepicker] - DateRangePicker instance the
|
||||
* date picker belongs to. Use this only when creating date picker as a part
|
||||
* of date range picker
|
||||
*/
|
||||
constructor(element, options = {}, rangepicker = undefined) {
|
||||
element.datepicker = this;
|
||||
this.element = element;
|
||||
|
||||
// set up config
|
||||
const config = this.config = Object.assign({
|
||||
buttonClass: (options.buttonClass && String(options.buttonClass)) || 'button',
|
||||
container: document.body,
|
||||
defaultViewDate: today(),
|
||||
maxDate: undefined,
|
||||
minDate: undefined,
|
||||
}, processOptions(defaultOptions, this));
|
||||
this._options = options;
|
||||
Object.assign(config, processOptions(options, this));
|
||||
|
||||
// configure by type
|
||||
const inline = this.inline = element.tagName !== 'INPUT';
|
||||
let inputField;
|
||||
let initialDates;
|
||||
|
||||
if (inline) {
|
||||
config.container = element;
|
||||
initialDates = stringToArray(element.dataset.date, config.dateDelimiter);
|
||||
delete element.dataset.date;
|
||||
} else {
|
||||
const container = options.container ? document.querySelector(options.container) : null;
|
||||
if (container) {
|
||||
config.container = container;
|
||||
}
|
||||
inputField = this.inputField = element;
|
||||
inputField.classList.add('datepicker-input');
|
||||
initialDates = stringToArray(inputField.value, config.dateDelimiter);
|
||||
}
|
||||
if (rangepicker) {
|
||||
// check validiry
|
||||
const index = rangepicker.inputs.indexOf(inputField);
|
||||
const datepickers = rangepicker.datepickers;
|
||||
if (index < 0 || index > 1 || !Array.isArray(datepickers)) {
|
||||
throw Error('Invalid rangepicker object.');
|
||||
}
|
||||
// attach itaelf to the rangepicker here so that processInputDates() can
|
||||
// determine if this is the range-end picker of the rangepicker while
|
||||
// setting inital values when pickLevel > 0
|
||||
datepickers[index] = this;
|
||||
// add getter for rangepicker
|
||||
Object.defineProperty(this, 'rangepicker', {
|
||||
get() {
|
||||
return rangepicker;
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
// set initial dates
|
||||
this.dates = [];
|
||||
// process initial value
|
||||
const inputDateValues = processInputDates(this, initialDates);
|
||||
if (inputDateValues && inputDateValues.length > 0) {
|
||||
this.dates = inputDateValues;
|
||||
}
|
||||
if (inputField) {
|
||||
inputField.value = stringifyDates(this.dates, config);
|
||||
}
|
||||
|
||||
const picker = this.picker = new Picker(this);
|
||||
|
||||
if (inline) {
|
||||
this.show();
|
||||
} else {
|
||||
// set up event listeners in other modes
|
||||
const onMousedownDocument = onClickOutside.bind(null, this);
|
||||
const listeners = [
|
||||
[inputField, 'keydown', onKeydown.bind(null, this)],
|
||||
[inputField, 'focus', onFocus.bind(null, this)],
|
||||
[inputField, 'mousedown', onMousedown.bind(null, this)],
|
||||
[inputField, 'click', onClickInput.bind(null, this)],
|
||||
[inputField, 'paste', onPaste.bind(null, this)],
|
||||
[document, 'mousedown', onMousedownDocument],
|
||||
[document, 'touchstart', onMousedownDocument],
|
||||
[window, 'resize', picker.place.bind(picker)]
|
||||
];
|
||||
registerListeners(this, listeners);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Format Date object or time value in given format and language
|
||||
* @param {Date|Number} date - date or time value to format
|
||||
* @param {String|Object} format - format string or object that contains
|
||||
* toDisplay() custom formatter, whose signature is
|
||||
* - args:
|
||||
* - date: {Date} - Date instance of the date passed to the method
|
||||
* - format: {Object} - the format object passed to the method
|
||||
* - locale: {Object} - locale for the language specified by `lang`
|
||||
* - return:
|
||||
* {String} formatted date
|
||||
* @param {String} [lang=en] - language code for the locale to use
|
||||
* @return {String} formatted date
|
||||
*/
|
||||
static formatDate(date, format, lang) {
|
||||
return formatDate(date, format, lang && locales[lang] || locales.en);
|
||||
}
|
||||
|
||||
/**
|
||||
* Parse date string
|
||||
* @param {String|Date|Number} dateStr - date string, Date object or time
|
||||
* value to parse
|
||||
* @param {String|Object} format - format string or object that contains
|
||||
* toValue() custom parser, whose signature is
|
||||
* - args:
|
||||
* - dateStr: {String|Date|Number} - the dateStr passed to the method
|
||||
* - format: {Object} - the format object passed to the method
|
||||
* - locale: {Object} - locale for the language specified by `lang`
|
||||
* - return:
|
||||
* {Date|Number} parsed date or its time value
|
||||
* @param {String} [lang=en] - language code for the locale to use
|
||||
* @return {Number} time value of parsed date
|
||||
*/
|
||||
static parseDate(dateStr, format, lang) {
|
||||
return parseDate(dateStr, format, lang && locales[lang] || locales.en);
|
||||
}
|
||||
|
||||
/**
|
||||
* @type {Object} - Installed locales in `[languageCode]: localeObject` format
|
||||
* en`:_English (US)_ is pre-installed.
|
||||
*/
|
||||
static get locales() {
|
||||
return locales;
|
||||
}
|
||||
|
||||
/**
|
||||
* @type {Boolean} - Whether the picker element is shown. `true` whne shown
|
||||
*/
|
||||
get active() {
|
||||
return !!(this.picker && this.picker.active);
|
||||
}
|
||||
|
||||
/**
|
||||
* @type {HTMLDivElement} - DOM object of picker element
|
||||
*/
|
||||
get pickerElement() {
|
||||
return this.picker ? this.picker.element : undefined;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set new values to the config options
|
||||
* @param {Object} options - config options to update
|
||||
*/
|
||||
setOptions(options) {
|
||||
const picker = this.picker;
|
||||
const newOptions = processOptions(options, this);
|
||||
Object.assign(this._options, options);
|
||||
Object.assign(this.config, newOptions);
|
||||
picker.setOptions(newOptions);
|
||||
|
||||
refreshUI(this, 3);
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the picker element
|
||||
*/
|
||||
show() {
|
||||
if (this.inputField) {
|
||||
if (this.inputField.disabled) {
|
||||
return;
|
||||
}
|
||||
if (this.inputField !== document.activeElement) {
|
||||
this._showing = true;
|
||||
this.inputField.focus();
|
||||
delete this._showing;
|
||||
}
|
||||
}
|
||||
this.picker.show();
|
||||
}
|
||||
|
||||
/**
|
||||
* Hide the picker element
|
||||
* Not available on inline picker
|
||||
*/
|
||||
hide() {
|
||||
if (this.inline) {
|
||||
return;
|
||||
}
|
||||
this.picker.hide();
|
||||
this.picker.update().changeView(this.config.startView).render();
|
||||
}
|
||||
|
||||
/**
|
||||
* Destroy the Datepicker instance
|
||||
* @return {Detepicker} - the instance destroyed
|
||||
*/
|
||||
destroy() {
|
||||
this.hide();
|
||||
unregisterListeners(this);
|
||||
this.picker.detach();
|
||||
if (!this.inline) {
|
||||
this.inputField.classList.remove('datepicker-input');
|
||||
}
|
||||
delete this.element.datepicker;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the selected date(s)
|
||||
*
|
||||
* The method returns a Date object of selected date by default, and returns
|
||||
* an array of selected dates in multidate mode. If format string is passed,
|
||||
* it returns date string(s) formatted in given format.
|
||||
*
|
||||
* @param {String} [format] - Format string to stringify the date(s)
|
||||
* @return {Date|String|Date[]|String[]} - selected date(s), or if none is
|
||||
* selected, empty array in multidate mode and untitled in sigledate mode
|
||||
*/
|
||||
getDate(format = undefined) {
|
||||
const callback = format
|
||||
? date => formatDate(date, format, this.config.locale)
|
||||
: date => new Date(date);
|
||||
|
||||
if (this.config.multidate) {
|
||||
return this.dates.map(callback);
|
||||
}
|
||||
if (this.dates.length > 0) {
|
||||
return callback(this.dates[0]);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Set selected date(s)
|
||||
*
|
||||
* In multidate mode, you can pass multiple dates as a series of arguments
|
||||
* or an array. (Since each date is parsed individually, the type of the
|
||||
* dates doesn't have to be the same.)
|
||||
* The given dates are used to toggle the select status of each date. The
|
||||
* number of selected dates is kept from exceeding the length set to
|
||||
* maxNumberOfDates.
|
||||
*
|
||||
* With clear: true option, the method can be used to clear the selection
|
||||
* and to replace the selection instead of toggling in multidate mode.
|
||||
* If the option is passed with no date arguments or an empty dates array,
|
||||
* it works as "clear" (clear the selection then set nothing), and if the
|
||||
* option is passed with new dates to select, it works as "replace" (clear
|
||||
* the selection then set the given dates)
|
||||
*
|
||||
* When render: false option is used, the method omits re-rendering the
|
||||
* picker element. In this case, you need to call refresh() method later in
|
||||
* order for the picker element to reflect the changes. The input field is
|
||||
* refreshed always regardless of this option.
|
||||
*
|
||||
* When invalid (unparsable, repeated, disabled or out-of-range) dates are
|
||||
* passed, the method ignores them and applies only valid ones. In the case
|
||||
* that all the given dates are invalid, which is distinguished from passing
|
||||
* no dates, the method considers it as an error and leaves the selection
|
||||
* untouched.
|
||||
*
|
||||
* @param {...(Date|Number|String)|Array} [dates] - Date strings, Date
|
||||
* objects, time values or mix of those for new selection
|
||||
* @param {Object} [options] - function options
|
||||
* - clear: {boolean} - Whether to clear the existing selection
|
||||
* defualt: false
|
||||
* - render: {boolean} - Whether to re-render the picker element
|
||||
* default: true
|
||||
* - autohide: {boolean} - Whether to hide the picker element after re-render
|
||||
* Ignored when used with render: false
|
||||
* default: config.autohide
|
||||
*/
|
||||
setDate(...args) {
|
||||
const dates = [...args];
|
||||
const opts = {};
|
||||
const lastArg = lastItemOf(args);
|
||||
if (
|
||||
typeof lastArg === 'object'
|
||||
&& !Array.isArray(lastArg)
|
||||
&& !(lastArg instanceof Date)
|
||||
&& lastArg
|
||||
) {
|
||||
Object.assign(opts, dates.pop());
|
||||
}
|
||||
|
||||
const inputDates = Array.isArray(dates[0]) ? dates[0] : dates;
|
||||
setDate(this, inputDates, opts);
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the selected date(s) with input field's value
|
||||
* Not available on inline picker
|
||||
*
|
||||
* The input field will be refreshed with properly formatted date string.
|
||||
*
|
||||
* @param {Object} [options] - function options
|
||||
* - autohide: {boolean} - whether to hide the picker element after refresh
|
||||
* default: false
|
||||
*/
|
||||
update(options = undefined) {
|
||||
if (this.inline) {
|
||||
return;
|
||||
}
|
||||
|
||||
const opts = {clear: true, autohide: !!(options && options.autohide)};
|
||||
const inputDates = stringToArray(this.inputField.value, this.config.dateDelimiter);
|
||||
setDate(this, inputDates, opts);
|
||||
}
|
||||
|
||||
/**
|
||||
* Refresh the picker element and the associated input field
|
||||
* @param {String} [target] - target item when refreshing one item only
|
||||
* 'picker' or 'input'
|
||||
* @param {Boolean} [forceRender] - whether to re-render the picker element
|
||||
* regardless of its state instead of optimized refresh
|
||||
*/
|
||||
refresh(target = undefined, forceRender = false) {
|
||||
if (target && typeof target !== 'string') {
|
||||
forceRender = target;
|
||||
target = undefined;
|
||||
}
|
||||
|
||||
let mode;
|
||||
if (target === 'picker') {
|
||||
mode = 2;
|
||||
} else if (target === 'input') {
|
||||
mode = 1;
|
||||
} else {
|
||||
mode = 3;
|
||||
}
|
||||
refreshUI(this, mode, !forceRender);
|
||||
}
|
||||
|
||||
/**
|
||||
* Enter edit mode
|
||||
* Not available on inline picker or when the picker element is hidden
|
||||
*/
|
||||
enterEditMode() {
|
||||
if (this.inline || !this.picker.active || this.editMode) {
|
||||
return;
|
||||
}
|
||||
this.editMode = true;
|
||||
this.inputField.classList.add('in-edit', 'border-blue-700', '!border-primary-700');
|
||||
}
|
||||
|
||||
/**
|
||||
* Exit from edit mode
|
||||
* Not available on inline picker
|
||||
* @param {Object} [options] - function options
|
||||
* - update: {boolean} - whether to call update() after exiting
|
||||
* If false, input field is revert to the existing selection
|
||||
* default: false
|
||||
*/
|
||||
exitEditMode(options = undefined) {
|
||||
if (this.inline || !this.editMode) {
|
||||
return;
|
||||
}
|
||||
const opts = Object.assign({update: false}, options);
|
||||
delete this.editMode;
|
||||
this.inputField.classList.remove('in-edit', 'border-blue-700', '!border-primary-700');
|
||||
if (opts.update) {
|
||||
this.update(opts);
|
||||
}
|
||||
}
|
||||
}
|
5
node_modules/flowbite-datepicker/js/datepicker-full.js
generated
vendored
Normal file
5
node_modules/flowbite-datepicker/js/datepicker-full.js
generated
vendored
Normal file
@ -0,0 +1,5 @@
|
||||
import Datepicker from './Datepicker.js';
|
||||
import DateRangePicker from './DateRangePicker.js';
|
||||
|
||||
window.Datepicker = Datepicker;
|
||||
window.DateRangePicker = DateRangePicker;
|
48
node_modules/flowbite-datepicker/js/events/functions.js
generated
vendored
Normal file
48
node_modules/flowbite-datepicker/js/events/functions.js
generated
vendored
Normal file
@ -0,0 +1,48 @@
|
||||
import {limitToRange} from '../lib/utils.js';
|
||||
import {addMonths, addYears} from '../lib/date.js';
|
||||
|
||||
export function triggerDatepickerEvent(datepicker, type) {
|
||||
const detail = {
|
||||
date: datepicker.getDate(),
|
||||
viewDate: new Date(datepicker.picker.viewDate),
|
||||
viewId: datepicker.picker.currentView.id,
|
||||
datepicker,
|
||||
};
|
||||
datepicker.element.dispatchEvent(new CustomEvent(type, {detail}));
|
||||
}
|
||||
|
||||
// direction: -1 (to previous), 1 (to next)
|
||||
export function goToPrevOrNext(datepicker, direction) {
|
||||
const {minDate, maxDate} = datepicker.config;
|
||||
const {currentView, viewDate} = datepicker.picker;
|
||||
let newViewDate;
|
||||
switch (currentView.id) {
|
||||
case 0:
|
||||
newViewDate = addMonths(viewDate, direction);
|
||||
break;
|
||||
case 1:
|
||||
newViewDate = addYears(viewDate, direction);
|
||||
break;
|
||||
default:
|
||||
newViewDate = addYears(viewDate, direction * currentView.navStep);
|
||||
}
|
||||
newViewDate = limitToRange(newViewDate, minDate, maxDate);
|
||||
datepicker.picker.changeFocus(newViewDate).render();
|
||||
}
|
||||
|
||||
export function switchView(datepicker) {
|
||||
const viewId = datepicker.picker.currentView.id;
|
||||
if (viewId === datepicker.config.maxView) {
|
||||
return;
|
||||
}
|
||||
datepicker.picker.changeView(viewId + 1).render();
|
||||
}
|
||||
|
||||
export function unfocus(datepicker) {
|
||||
if (datepicker.config.updateOnBlur) {
|
||||
datepicker.update({autohide: true});
|
||||
} else {
|
||||
datepicker.refresh('input');
|
||||
datepicker.hide();
|
||||
}
|
||||
}
|
206
node_modules/flowbite-datepicker/js/events/inputFieldListeners.js
generated
vendored
Normal file
206
node_modules/flowbite-datepicker/js/events/inputFieldListeners.js
generated
vendored
Normal file
@ -0,0 +1,206 @@
|
||||
import {isInRange} from '../lib/utils.js';
|
||||
import {addDays, addMonths, addYears, startOfYearPeriod} from '../lib/date.js';
|
||||
import {goToPrevOrNext, switchView, unfocus} from './functions.js';
|
||||
|
||||
// Find the closest date that doesn't meet the condition for unavailable date
|
||||
// Returns undefined if no available date is found
|
||||
// addFn: function to calculate the next date
|
||||
// - args: time value, amount
|
||||
// increase: amount to pass to addFn
|
||||
// testFn: function to test the unavailablity of the date
|
||||
// - args: time value; retun: true if unavailable
|
||||
function findNextAvailableOne(date, addFn, increase, testFn, min, max) {
|
||||
if (!isInRange(date, min, max)) {
|
||||
return;
|
||||
}
|
||||
if (testFn(date)) {
|
||||
const newDate = addFn(date, increase);
|
||||
return findNextAvailableOne(newDate, addFn, increase, testFn, min, max);
|
||||
}
|
||||
return date;
|
||||
}
|
||||
|
||||
// direction: -1 (left/up), 1 (right/down)
|
||||
// vertical: true for up/down, false for left/right
|
||||
function moveByArrowKey(datepicker, ev, direction, vertical) {
|
||||
const picker = datepicker.picker;
|
||||
const currentView = picker.currentView;
|
||||
const step = currentView.step || 1;
|
||||
let viewDate = picker.viewDate;
|
||||
let addFn;
|
||||
let testFn;
|
||||
switch (currentView.id) {
|
||||
case 0:
|
||||
if (vertical) {
|
||||
viewDate = addDays(viewDate, direction * 7);
|
||||
} else if (ev.ctrlKey || ev.metaKey) {
|
||||
viewDate = addYears(viewDate, direction);
|
||||
} else {
|
||||
viewDate = addDays(viewDate, direction);
|
||||
}
|
||||
addFn = addDays;
|
||||
testFn = (date) => currentView.disabled.includes(date);
|
||||
break;
|
||||
case 1:
|
||||
viewDate = addMonths(viewDate, vertical ? direction * 4 : direction);
|
||||
addFn = addMonths;
|
||||
testFn = (date) => {
|
||||
const dt = new Date(date);
|
||||
const {year, disabled} = currentView;
|
||||
return dt.getFullYear() === year && disabled.includes(dt.getMonth());
|
||||
};
|
||||
break;
|
||||
default:
|
||||
viewDate = addYears(viewDate, direction * (vertical ? 4 : 1) * step);
|
||||
addFn = addYears;
|
||||
testFn = date => currentView.disabled.includes(startOfYearPeriod(date, step));
|
||||
}
|
||||
viewDate = findNextAvailableOne(
|
||||
viewDate,
|
||||
addFn,
|
||||
direction < 0 ? -step : step,
|
||||
testFn,
|
||||
currentView.minDate,
|
||||
currentView.maxDate
|
||||
);
|
||||
if (viewDate !== undefined) {
|
||||
picker.changeFocus(viewDate).render();
|
||||
}
|
||||
}
|
||||
|
||||
export function onKeydown(datepicker, ev) {
|
||||
if (ev.key === 'Tab') {
|
||||
unfocus(datepicker);
|
||||
return;
|
||||
}
|
||||
|
||||
const picker = datepicker.picker;
|
||||
const {id, isMinView} = picker.currentView;
|
||||
if (!picker.active) {
|
||||
switch (ev.key) {
|
||||
case 'ArrowDown':
|
||||
case 'Escape':
|
||||
picker.show();
|
||||
break;
|
||||
case 'Enter':
|
||||
datepicker.update();
|
||||
break;
|
||||
default:
|
||||
return;
|
||||
}
|
||||
} else if (datepicker.editMode) {
|
||||
switch (ev.key) {
|
||||
case 'Escape':
|
||||
picker.hide();
|
||||
break;
|
||||
case 'Enter':
|
||||
datepicker.exitEditMode({update: true, autohide: datepicker.config.autohide});
|
||||
break;
|
||||
default:
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
switch (ev.key) {
|
||||
case 'Escape':
|
||||
picker.hide();
|
||||
break;
|
||||
case 'ArrowLeft':
|
||||
if (ev.ctrlKey || ev.metaKey) {
|
||||
goToPrevOrNext(datepicker, -1);
|
||||
} else if (ev.shiftKey) {
|
||||
datepicker.enterEditMode();
|
||||
return;
|
||||
} else {
|
||||
moveByArrowKey(datepicker, ev, -1, false);
|
||||
}
|
||||
break;
|
||||
case 'ArrowRight':
|
||||
if (ev.ctrlKey || ev.metaKey) {
|
||||
goToPrevOrNext(datepicker, 1);
|
||||
} else if (ev.shiftKey) {
|
||||
datepicker.enterEditMode();
|
||||
return;
|
||||
} else {
|
||||
moveByArrowKey(datepicker, ev, 1, false);
|
||||
}
|
||||
break;
|
||||
case 'ArrowUp':
|
||||
if (ev.ctrlKey || ev.metaKey) {
|
||||
switchView(datepicker);
|
||||
} else if (ev.shiftKey) {
|
||||
datepicker.enterEditMode();
|
||||
return;
|
||||
} else {
|
||||
moveByArrowKey(datepicker, ev, -1, true);
|
||||
}
|
||||
break;
|
||||
case 'ArrowDown':
|
||||
if (ev.shiftKey && !ev.ctrlKey && !ev.metaKey) {
|
||||
datepicker.enterEditMode();
|
||||
return;
|
||||
}
|
||||
moveByArrowKey(datepicker, ev, 1, true);
|
||||
break;
|
||||
case 'Enter':
|
||||
if (isMinView) {
|
||||
datepicker.setDate(picker.viewDate);
|
||||
} else {
|
||||
picker.changeView(id - 1).render();
|
||||
}
|
||||
break;
|
||||
case 'Backspace':
|
||||
case 'Delete':
|
||||
datepicker.enterEditMode();
|
||||
return;
|
||||
default:
|
||||
if (ev.key.length === 1 && !ev.ctrlKey && !ev.metaKey) {
|
||||
datepicker.enterEditMode();
|
||||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
ev.preventDefault();
|
||||
ev.stopPropagation();
|
||||
}
|
||||
|
||||
export function onFocus(datepicker) {
|
||||
if (datepicker.config.showOnFocus && !datepicker._showing) {
|
||||
datepicker.show();
|
||||
}
|
||||
}
|
||||
|
||||
// for the prevention for entering edit mode while getting focus on click
|
||||
export function onMousedown(datepicker, ev) {
|
||||
const el = ev.target;
|
||||
if (datepicker.picker.active || datepicker.config.showOnClick) {
|
||||
el._active = el === document.activeElement;
|
||||
el._clicking = setTimeout(() => {
|
||||
delete el._active;
|
||||
delete el._clicking;
|
||||
}, 2000);
|
||||
}
|
||||
}
|
||||
|
||||
export function onClickInput(datepicker, ev) {
|
||||
const el = ev.target;
|
||||
if (!el._clicking) {
|
||||
return;
|
||||
}
|
||||
clearTimeout(el._clicking);
|
||||
delete el._clicking;
|
||||
|
||||
if (el._active) {
|
||||
datepicker.enterEditMode();
|
||||
}
|
||||
delete el._active;
|
||||
|
||||
if (datepicker.config.showOnClick) {
|
||||
datepicker.show();
|
||||
}
|
||||
}
|
||||
|
||||
export function onPaste(datepicker, ev) {
|
||||
if (ev.clipboardData.types.includes('text/plain')) {
|
||||
datepicker.enterEditMode();
|
||||
}
|
||||
}
|
15
node_modules/flowbite-datepicker/js/events/otherListeners.js
generated
vendored
Normal file
15
node_modules/flowbite-datepicker/js/events/otherListeners.js
generated
vendored
Normal file
@ -0,0 +1,15 @@
|
||||
import {findElementInEventPath} from '../lib/event.js';
|
||||
import {unfocus} from './functions.js';
|
||||
|
||||
// for the `document` to delegate the events from outside the picker/input field
|
||||
export function onClickOutside(datepicker, ev) {
|
||||
const element = datepicker.element;
|
||||
if (element !== document.activeElement) {
|
||||
return;
|
||||
}
|
||||
const pickerElem = datepicker.picker.element;
|
||||
if (findElementInEventPath(ev, el => el === element || el === pickerElem)) {
|
||||
return;
|
||||
}
|
||||
unfocus(datepicker);
|
||||
}
|
70
node_modules/flowbite-datepicker/js/events/pickerListeners.js
generated
vendored
Normal file
70
node_modules/flowbite-datepicker/js/events/pickerListeners.js
generated
vendored
Normal file
@ -0,0 +1,70 @@
|
||||
import {today, addMonths, addYears} from '../lib/date.js';
|
||||
import {findElementInEventPath} from '../lib/event.js';
|
||||
import {goToPrevOrNext, switchView} from './functions.js';
|
||||
|
||||
function goToSelectedMonthOrYear(datepicker, selection) {
|
||||
const picker = datepicker.picker;
|
||||
const viewDate = new Date(picker.viewDate);
|
||||
const viewId = picker.currentView.id;
|
||||
const newDate = viewId === 1
|
||||
? addMonths(viewDate, selection - viewDate.getMonth())
|
||||
: addYears(viewDate, selection - viewDate.getFullYear());
|
||||
|
||||
picker.changeFocus(newDate).changeView(viewId - 1).render();
|
||||
}
|
||||
|
||||
export function onClickTodayBtn(datepicker) {
|
||||
const picker = datepicker.picker;
|
||||
const currentDate = today();
|
||||
if (datepicker.config.todayBtnMode === 1) {
|
||||
if (datepicker.config.autohide) {
|
||||
datepicker.setDate(currentDate);
|
||||
return;
|
||||
}
|
||||
datepicker.setDate(currentDate, {render: false});
|
||||
picker.update();
|
||||
}
|
||||
if (picker.viewDate !== currentDate) {
|
||||
picker.changeFocus(currentDate);
|
||||
}
|
||||
picker.changeView(0).render();
|
||||
}
|
||||
|
||||
export function onClickClearBtn(datepicker) {
|
||||
datepicker.setDate({clear: true});
|
||||
}
|
||||
|
||||
export function onClickViewSwitch(datepicker) {
|
||||
switchView(datepicker);
|
||||
}
|
||||
|
||||
export function onClickPrevBtn(datepicker) {
|
||||
goToPrevOrNext(datepicker, -1);
|
||||
}
|
||||
|
||||
export function onClickNextBtn(datepicker) {
|
||||
goToPrevOrNext(datepicker, 1);
|
||||
}
|
||||
|
||||
// For the picker's main block to delegete the events from `datepicker-cell`s
|
||||
export function onClickView(datepicker, ev) {
|
||||
const target = findElementInEventPath(ev, '.datepicker-cell');
|
||||
if (!target || target.classList.contains('disabled')) {
|
||||
return;
|
||||
}
|
||||
|
||||
const {id, isMinView} = datepicker.picker.currentView;
|
||||
if (isMinView) {
|
||||
datepicker.setDate(Number(target.dataset.date));
|
||||
} else if (id === 1) {
|
||||
goToSelectedMonthOrYear(datepicker, Number(target.dataset.month));
|
||||
} else {
|
||||
goToSelectedMonthOrYear(datepicker, Number(target.dataset.year));
|
||||
}
|
||||
}
|
||||
|
||||
export function onClickPicker(datepicker) {
|
||||
if (!datepicker.inline && !datepicker.config.disableTouchKeyboard) {
|
||||
datepicker.inputField.focus();
|
||||
}
|
||||
}
|
13
node_modules/flowbite-datepicker/js/i18n/base-locales.js
generated
vendored
Normal file
13
node_modules/flowbite-datepicker/js/i18n/base-locales.js
generated
vendored
Normal file
@ -0,0 +1,13 @@
|
||||
// default locales
|
||||
export const locales = {
|
||||
en: {
|
||||
days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
|
||||
daysShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
|
||||
daysMin: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"],
|
||||
months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
|
||||
monthsShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
|
||||
today: "Today",
|
||||
clear: "Clear",
|
||||
titleFormat: "MM y"
|
||||
}
|
||||
};
|
15
node_modules/flowbite-datepicker/js/i18n/locales/ar-tn.js
generated
vendored
Normal file
15
node_modules/flowbite-datepicker/js/i18n/locales/ar-tn.js
generated
vendored
Normal file
@ -0,0 +1,15 @@
|
||||
/**
|
||||
* Arabic-Tunisia translation for bootstrap-datepicker
|
||||
* Souhaieb Besbes <besbes.souhaieb@gmail.com>
|
||||
*/
|
||||
export default {
|
||||
'ar-tn': {
|
||||
days: ["الأحد", "الاثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت", "الأحد"],
|
||||
daysShort: ["أحد", "اثنين", "ثلاثاء", "أربعاء", "خميس", "جمعة", "سبت", "أحد"],
|
||||
daysMin: ["ح", "ن", "ث", "ع", "خ", "ج", "س", "ح"],
|
||||
months: ["جانفي","فيفري","مارس","أفريل","ماي","جوان","جويليه","أوت","سبتمبر","أكتوبر","نوفمبر","ديسمبر"],
|
||||
monthsShort: ["جانفي","فيفري","مارس","أفريل","ماي","جوان","جويليه","أوت","سبتمبر","أكتوبر","نوفمبر","ديسمبر"],
|
||||
today: "هذا اليوم",
|
||||
rtl: true
|
||||
}
|
||||
};
|
15
node_modules/flowbite-datepicker/js/i18n/locales/ar.js
generated
vendored
Normal file
15
node_modules/flowbite-datepicker/js/i18n/locales/ar.js
generated
vendored
Normal file
@ -0,0 +1,15 @@
|
||||
/**
|
||||
* Arabic translation for bootstrap-datepicker
|
||||
* Mohammed Alshehri <alshehri866@gmail.com>
|
||||
*/
|
||||
export default {
|
||||
ar: {
|
||||
days: ["الأحد", "الاثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت", "الأحد"],
|
||||
daysShort: ["أحد", "اثنين", "ثلاثاء", "أربعاء", "خميس", "جمعة", "سبت", "أحد"],
|
||||
daysMin: ["ح", "ن", "ث", "ع", "خ", "ج", "س", "ح"],
|
||||
months: ["يناير", "فبراير", "مارس", "أبريل", "مايو", "يونيو", "يوليو", "أغسطس", "سبتمبر", "أكتوبر", "نوفمبر", "ديسمبر"],
|
||||
monthsShort: ["يناير", "فبراير", "مارس", "أبريل", "مايو", "يونيو", "يوليو", "أغسطس", "سبتمبر", "أكتوبر", "نوفمبر", "ديسمبر"],
|
||||
today: "هذا اليوم",
|
||||
rtl: true
|
||||
}
|
||||
};
|
14
node_modules/flowbite-datepicker/js/i18n/locales/az.js
generated
vendored
Normal file
14
node_modules/flowbite-datepicker/js/i18n/locales/az.js
generated
vendored
Normal file
@ -0,0 +1,14 @@
|
||||
// Azerbaijani
|
||||
export default {
|
||||
az: {
|
||||
days: ["Bazar", "Bazar ertəsi", "Çərşənbə axşamı", "Çərşənbə", "Cümə axşamı", "Cümə", "Şənbə"],
|
||||
daysShort: ["B.", "B.e", "Ç.a", "Ç.", "C.a", "C.", "Ş."],
|
||||
daysMin: ["B.", "B.e", "Ç.a", "Ç.", "C.a", "C.", "Ş."],
|
||||
months: ["Yanvar", "Fevral", "Mart", "Aprel", "May", "İyun", "İyul", "Avqust", "Sentyabr", "Oktyabr", "Noyabr", "Dekabr"],
|
||||
monthsShort: ["Yan", "Fev", "Mar", "Apr", "May", "İyun", "İyul", "Avq", "Sen", "Okt", "Noy", "Dek"],
|
||||
today: "Bu gün",
|
||||
weekStart: 1,
|
||||
clear: "Təmizlə",
|
||||
monthsTitle: 'Aylar'
|
||||
}
|
||||
};
|
14
node_modules/flowbite-datepicker/js/i18n/locales/bg.js
generated
vendored
Normal file
14
node_modules/flowbite-datepicker/js/i18n/locales/bg.js
generated
vendored
Normal file
@ -0,0 +1,14 @@
|
||||
/**
|
||||
* Bulgarian translation for bootstrap-datepicker
|
||||
* Apostol Apostolov <apostol.s.apostolov@gmail.com>
|
||||
*/
|
||||
export default {
|
||||
bg: {
|
||||
days: ["Неделя", "Понеделник", "Вторник", "Сряда", "Четвъртък", "Петък", "Събота"],
|
||||
daysShort: ["Нед", "Пон", "Вто", "Сря", "Чет", "Пет", "Съб"],
|
||||
daysMin: ["Н", "П", "В", "С", "Ч", "П", "С"],
|
||||
months: ["Януари", "Февруари", "Март", "Април", "Май", "Юни", "Юли", "Август", "Септември", "Октомври", "Ноември", "Декември"],
|
||||
monthsShort: ["Ян", "Фев", "Мар", "Апр", "Май", "Юни", "Юли", "Авг", "Сеп", "Окт", "Ное", "Дек"],
|
||||
today: "днес"
|
||||
}
|
||||
};
|
18
node_modules/flowbite-datepicker/js/i18n/locales/bm.js
generated
vendored
Normal file
18
node_modules/flowbite-datepicker/js/i18n/locales/bm.js
generated
vendored
Normal file
@ -0,0 +1,18 @@
|
||||
/**
|
||||
* Bamanankan (bm) translation for bootstrap-datepicker
|
||||
* Fatou Fall <fatou@medicmobile.org>
|
||||
*/
|
||||
export default {
|
||||
bm: {
|
||||
days: ["Kari","Ntɛnɛn","Tarata","Araba","Alamisa","Juma","Sibiri"],
|
||||
daysShort: ["Kar","Ntɛ","Tar","Ara","Ala","Jum","Sib"],
|
||||
daysMin: ["Ka","Nt","Ta","Ar","Al","Ju","Si"],
|
||||
months: ["Zanwuyekalo","Fewuruyekalo","Marisikalo","Awirilikalo","Mɛkalo","Zuwɛnkalo","Zuluyekalo","Utikalo","Sɛtanburukalo","ɔkutɔburukalo","Nowanburukalo","Desanburukalo"],
|
||||
monthsShort: ["Zan","Few","Mar","Awi","Mɛ","Zuw","Zul","Uti","Sɛt","ɔku","Now","Des"],
|
||||
today: "Bi",
|
||||
monthsTitle: "Kalo",
|
||||
clear: "Ka jɔsi",
|
||||
weekStart: 1,
|
||||
format: "dd/mm/yyyy"
|
||||
}
|
||||
};
|
19
node_modules/flowbite-datepicker/js/i18n/locales/bn.js
generated
vendored
Normal file
19
node_modules/flowbite-datepicker/js/i18n/locales/bn.js
generated
vendored
Normal file
@ -0,0 +1,19 @@
|
||||
/**
|
||||
* Bengali (Bangla) translation for bootstrap-datepicker
|
||||
* Karim Khan <kkhancse91@gmail.com>
|
||||
* Orif N. Jr. <orif.zade@gmail.com>
|
||||
*/
|
||||
export default {
|
||||
bn: {
|
||||
days: ["রবিবার","সোমবার","মঙ্গলবার","বুধবার","বৃহস্পতিবার","শুক্রবার","শনিবার"],
|
||||
daysShort: ["রবিবার","সোমবার","মঙ্গলবার","বুধবার","বৃহস্পতিবার","শুক্রবার","শনিবার"],
|
||||
daysMin: ["রবি","সোম","মঙ্গল","বুধ","বৃহস্পতি","শুক্র","শনি"],
|
||||
months: ["জানুয়ারী","ফেব্রুয়ারি","মার্চ","এপ্রিল","মে","জুন","জুলাই","অগাস্ট","সেপ্টেম্বর","অক্টোবর","নভেম্বর","ডিসেম্বর"],
|
||||
monthsShort: ["জানুয়ারী","ফেব্রুয়ারি","মার্চ","এপ্রিল","মে","জুন","জুলাই","অগাস্ট","সেপ্টেম্বর","অক্টোবর","নভেম্বর","ডিসেম্বর"],
|
||||
today: "আজ",
|
||||
monthsTitle: "মাস",
|
||||
clear: "পরিষ্কার",
|
||||
weekStart: 0,
|
||||
format: "mm/dd/yyyy"
|
||||
}
|
||||
};
|
18
node_modules/flowbite-datepicker/js/i18n/locales/br.js
generated
vendored
Normal file
18
node_modules/flowbite-datepicker/js/i18n/locales/br.js
generated
vendored
Normal file
@ -0,0 +1,18 @@
|
||||
/**
|
||||
* Breton translation for bootstrap-datepicker
|
||||
* Gwenn Meynier <tornoz@laposte.net>
|
||||
*/
|
||||
export default {
|
||||
br: {
|
||||
days: ["Sul", "Lun", "Meurzh", "Merc'her", "Yaou", "Gwener", "Sadorn"],
|
||||
daysShort: ["Sul", "Lun", "Meu.", "Mer.", "Yao.", "Gwe.", "Sad."],
|
||||
daysMin: ["Su", "L", "Meu", "Mer", "Y", "G", "Sa"],
|
||||
months: ["Genver", "C'hwevrer", "Meurzh", "Ebrel", "Mae", "Mezheven", "Gouere", "Eost", "Gwengolo", "Here", "Du", "Kerzu"],
|
||||
monthsShort: ["Genv.", "C'hw.", "Meur.", "Ebre.", "Mae", "Mezh.", "Goue.", "Eost", "Gwen.", "Here", "Du", "Kerz."],
|
||||
today: "Hiziv",
|
||||
monthsTitle: "Miz",
|
||||
clear: "Dilemel",
|
||||
weekStart: 1,
|
||||
format: "dd/mm/yyyy"
|
||||
}
|
||||
};
|
15
node_modules/flowbite-datepicker/js/i18n/locales/bs.js
generated
vendored
Normal file
15
node_modules/flowbite-datepicker/js/i18n/locales/bs.js
generated
vendored
Normal file
@ -0,0 +1,15 @@
|
||||
/**
|
||||
* Bosnian translation for bootstrap-datepicker
|
||||
*/
|
||||
export default {
|
||||
bs: {
|
||||
days: ["Nedjelja","Ponedjeljak", "Utorak", "Srijeda", "Četvrtak", "Petak", "Subota"],
|
||||
daysShort: ["Ned", "Pon", "Uto", "Sri", "Čet", "Pet", "Sub"],
|
||||
daysMin: ["N", "Po", "U", "Sr", "Č", "Pe", "Su"],
|
||||
months: ["Januar", "Februar", "Mart", "April", "Maj", "Juni", "Juli", "August", "Septembar", "Oktobar", "Novembar", "Decembar"],
|
||||
monthsShort: ["Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dec"],
|
||||
today: "Danas",
|
||||
weekStart: 1,
|
||||
format: "dd.mm.yyyy"
|
||||
}
|
||||
};
|
18
node_modules/flowbite-datepicker/js/i18n/locales/ca.js
generated
vendored
Normal file
18
node_modules/flowbite-datepicker/js/i18n/locales/ca.js
generated
vendored
Normal file
@ -0,0 +1,18 @@
|
||||
/**
|
||||
* Catalan translation for bootstrap-datepicker
|
||||
* J. Garcia <jogaco.en@gmail.com>
|
||||
*/
|
||||
export default {
|
||||
ca: {
|
||||
days: ["Diumenge", "Dilluns", "Dimarts", "Dimecres", "Dijous", "Divendres", "Dissabte"],
|
||||
daysShort: ["Diu", "Dil", "Dmt", "Dmc", "Dij", "Div", "Dis"],
|
||||
daysMin: ["dg", "dl", "dt", "dc", "dj", "dv", "ds"],
|
||||
months: ["Gener", "Febrer", "Març", "Abril", "Maig", "Juny", "Juliol", "Agost", "Setembre", "Octubre", "Novembre", "Desembre"],
|
||||
monthsShort: ["Gen", "Feb", "Mar", "Abr", "Mai", "Jun", "Jul", "Ago", "Set", "Oct", "Nov", "Des"],
|
||||
today: "Avui",
|
||||
monthsTitle: "Mesos",
|
||||
clear: "Esborrar",
|
||||
weekStart: 1,
|
||||
format: "dd/mm/yyyy"
|
||||
}
|
||||
};
|
19
node_modules/flowbite-datepicker/js/i18n/locales/cs.js
generated
vendored
Normal file
19
node_modules/flowbite-datepicker/js/i18n/locales/cs.js
generated
vendored
Normal file
@ -0,0 +1,19 @@
|
||||
/**
|
||||
* Czech translation for bootstrap-datepicker
|
||||
* Matěj Koubík <matej@koubik.name>
|
||||
* Fixes by Michal Remiš <michal.remis@gmail.com>
|
||||
*/
|
||||
export default {
|
||||
cs: {
|
||||
days: ["Neděle", "Pondělí", "Úterý", "Středa", "Čtvrtek", "Pátek", "Sobota"],
|
||||
daysShort: ["Ned", "Pon", "Úte", "Stř", "Čtv", "Pát", "Sob"],
|
||||
daysMin: ["Ne", "Po", "Út", "St", "Čt", "Pá", "So"],
|
||||
months: ["Leden", "Únor", "Březen", "Duben", "Květen", "Červen", "Červenec", "Srpen", "Září", "Říjen", "Listopad", "Prosinec"],
|
||||
monthsShort: ["Led", "Úno", "Bře", "Dub", "Kvě", "Čer", "Čnc", "Srp", "Zář", "Říj", "Lis", "Pro"],
|
||||
today: "Dnes",
|
||||
clear: "Vymazat",
|
||||
monthsTitle: "Měsíc",
|
||||
weekStart: 1,
|
||||
format: "dd.mm.yyyy"
|
||||
}
|
||||
};
|
14
node_modules/flowbite-datepicker/js/i18n/locales/cy.js
generated
vendored
Normal file
14
node_modules/flowbite-datepicker/js/i18n/locales/cy.js
generated
vendored
Normal file
@ -0,0 +1,14 @@
|
||||
/**
|
||||
* Welsh translation for bootstrap-datepicker
|
||||
* S. Morris <s.morris@bangor.ac.uk>
|
||||
*/
|
||||
export default {
|
||||
cy: {
|
||||
days: ["Sul", "Llun", "Mawrth", "Mercher", "Iau", "Gwener", "Sadwrn"],
|
||||
daysShort: ["Sul", "Llu", "Maw", "Mer", "Iau", "Gwe", "Sad"],
|
||||
daysMin: ["Su", "Ll", "Ma", "Me", "Ia", "Gwe", "Sa"],
|
||||
months: ["Ionawr", "Chewfror", "Mawrth", "Ebrill", "Mai", "Mehefin", "Gorfennaf", "Awst", "Medi", "Hydref", "Tachwedd", "Rhagfyr"],
|
||||
monthsShort: ["Ion", "Chw", "Maw", "Ebr", "Mai", "Meh", "Gor", "Aws", "Med", "Hyd", "Tach", "Rha"],
|
||||
today: "Heddiw"
|
||||
}
|
||||
};
|
19
node_modules/flowbite-datepicker/js/i18n/locales/da.js
generated
vendored
Normal file
19
node_modules/flowbite-datepicker/js/i18n/locales/da.js
generated
vendored
Normal file
@ -0,0 +1,19 @@
|
||||
/**
|
||||
* Danish translation for bootstrap-datepicker
|
||||
* Christian Pedersen <https: //github.com/chripede>
|
||||
* Ivan Mylyanyk <https: //github.com/imylyanyk>
|
||||
*/
|
||||
export default {
|
||||
da: {
|
||||
days: ["Søndag", "Mandag", "Tirsdag", "Onsdag", "Torsdag", "Fredag", "Lørdag"],
|
||||
daysShort: ["Søn", "Man", "Tir", "Ons", "Tor", "Fre", "Lør"],
|
||||
daysMin: ["Sø", "Ma", "Ti", "On", "To", "Fr", "Lø"],
|
||||
months: ["Januar", "Februar", "Marts", "April", "Maj", "Juni", "Juli", "August", "September", "Oktober", "November", "December"],
|
||||
monthsShort: ["Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dec"],
|
||||
today: "I Dag",
|
||||
weekStart: 1,
|
||||
clear: "Nulstil",
|
||||
format: "dd/mm/yyyy",
|
||||
monthsTitle: "Måneder"
|
||||
}
|
||||
};
|
18
node_modules/flowbite-datepicker/js/i18n/locales/de.js
generated
vendored
Normal file
18
node_modules/flowbite-datepicker/js/i18n/locales/de.js
generated
vendored
Normal file
@ -0,0 +1,18 @@
|
||||
/**
|
||||
* German translation for bootstrap-datepicker
|
||||
* Sam Zurcher <sam@orelias.ch>
|
||||
*/
|
||||
export default {
|
||||
de: {
|
||||
days: ["Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"],
|
||||
daysShort: ["So", "Mo", "Di", "Mi", "Do", "Fr", "Sa"],
|
||||
daysMin: ["So", "Mo", "Di", "Mi", "Do", "Fr", "Sa"],
|
||||
months: ["Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"],
|
||||
monthsShort: ["Jan", "Feb", "Mär", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez"],
|
||||
today: "Heute",
|
||||
monthsTitle: "Monate",
|
||||
clear: "Löschen",
|
||||
weekStart: 1,
|
||||
format: "dd.mm.yyyy"
|
||||
}
|
||||
};
|
16
node_modules/flowbite-datepicker/js/i18n/locales/el.js
generated
vendored
Normal file
16
node_modules/flowbite-datepicker/js/i18n/locales/el.js
generated
vendored
Normal file
@ -0,0 +1,16 @@
|
||||
/**
|
||||
* Greek translation for bootstrap-datepicker
|
||||
*/
|
||||
export default {
|
||||
el: {
|
||||
days: ["Κυριακή", "Δευτέρα", "Τρίτη", "Τετάρτη", "Πέμπτη", "Παρασκευή", "Σάββατο"],
|
||||
daysShort: ["Κυρ", "Δευ", "Τρι", "Τετ", "Πεμ", "Παρ", "Σαβ"],
|
||||
daysMin: ["Κυ", "Δε", "Τρ", "Τε", "Πε", "Πα", "Σα"],
|
||||
months: ["Ιανουάριος", "Φεβρουάριος", "Μάρτιος", "Απρίλιος", "Μάιος", "Ιούνιος", "Ιούλιος", "Αύγουστος", "Σεπτέμβριος", "Οκτώβριος", "Νοέμβριος", "Δεκέμβριος"],
|
||||
monthsShort: ["Ιαν", "Φεβ", "Μαρ", "Απρ", "Μάι", "Ιουν", "Ιουλ", "Αυγ", "Σεπ", "Οκτ", "Νοε", "Δεκ"],
|
||||
today: "Σήμερα",
|
||||
clear: "Καθαρισμός",
|
||||
weekStart: 1,
|
||||
format: "d/m/yyyy"
|
||||
}
|
||||
};
|
18
node_modules/flowbite-datepicker/js/i18n/locales/en-AU.js
generated
vendored
Normal file
18
node_modules/flowbite-datepicker/js/i18n/locales/en-AU.js
generated
vendored
Normal file
@ -0,0 +1,18 @@
|
||||
/**
|
||||
* Australian English translation for bootstrap-datepicker
|
||||
* Steve Chapman <steven.p.chapman@gmail.com>
|
||||
*/
|
||||
export default {
|
||||
'en-AU': {
|
||||
days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
|
||||
daysShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
|
||||
daysMin: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"],
|
||||
months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
|
||||
monthsShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
|
||||
today: "Today",
|
||||
monthsTitle: "Months",
|
||||
clear: "Clear",
|
||||
weekStart: 1,
|
||||
format: "d/mm/yyyy"
|
||||
}
|
||||
};
|
18
node_modules/flowbite-datepicker/js/i18n/locales/en-CA.js
generated
vendored
Normal file
18
node_modules/flowbite-datepicker/js/i18n/locales/en-CA.js
generated
vendored
Normal file
@ -0,0 +1,18 @@
|
||||
/**
|
||||
* Canadian English translation for bootstrap-datepicker
|
||||
* Mike Nacey <mnacey@gmail.com>
|
||||
*/
|
||||
export default {
|
||||
'en-CA': {
|
||||
days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
|
||||
daysShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
|
||||
daysMin: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"],
|
||||
months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
|
||||
monthsShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
|
||||
today: "Today",
|
||||
monthsTitle: "Months",
|
||||
clear: "Clear",
|
||||
weekStart: 0,
|
||||
format: "yyyy-mm-dd"
|
||||
}
|
||||
};
|
18
node_modules/flowbite-datepicker/js/i18n/locales/en-GB.js
generated
vendored
Normal file
18
node_modules/flowbite-datepicker/js/i18n/locales/en-GB.js
generated
vendored
Normal file
@ -0,0 +1,18 @@
|
||||
/**
|
||||
* British English translation for bootstrap-datepicker
|
||||
* Xavier Dutreilh <xavier@dutreilh.com>
|
||||
*/
|
||||
export default {
|
||||
'en-GB': {
|
||||
days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
|
||||
daysShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
|
||||
daysMin: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"],
|
||||
months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
|
||||
monthsShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
|
||||
today: "Today",
|
||||
monthsTitle: "Months",
|
||||
clear: "Clear",
|
||||
weekStart: 1,
|
||||
format: "dd/mm/yyyy"
|
||||
}
|
||||
};
|
17
node_modules/flowbite-datepicker/js/i18n/locales/en-IE.js
generated
vendored
Normal file
17
node_modules/flowbite-datepicker/js/i18n/locales/en-IE.js
generated
vendored
Normal file
@ -0,0 +1,17 @@
|
||||
/**
|
||||
* Irish English translation for bootstrap-datepicker
|
||||
*/
|
||||
export default {
|
||||
'en-IE': {
|
||||
days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
|
||||
daysShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
|
||||
daysMin: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"],
|
||||
months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
|
||||
monthsShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
|
||||
today: "Today",
|
||||
monthsTitle: "Months",
|
||||
clear: "Clear",
|
||||
weekStart: 1,
|
||||
format: "dd/mm/yyyy"
|
||||
}
|
||||
};
|
17
node_modules/flowbite-datepicker/js/i18n/locales/en-NZ.js
generated
vendored
Normal file
17
node_modules/flowbite-datepicker/js/i18n/locales/en-NZ.js
generated
vendored
Normal file
@ -0,0 +1,17 @@
|
||||
/**
|
||||
* New Zealand English translation for bootstrap-datepicker
|
||||
*/
|
||||
export default {
|
||||
'en-NZ': {
|
||||
days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
|
||||
daysShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
|
||||
daysMin: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"],
|
||||
months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
|
||||
monthsShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
|
||||
today: "Today",
|
||||
monthsTitle: "Months",
|
||||
clear: "Clear",
|
||||
weekStart: 1,
|
||||
format: "d/mm/yyyy"
|
||||
}
|
||||
};
|
17
node_modules/flowbite-datepicker/js/i18n/locales/en-ZA.js
generated
vendored
Normal file
17
node_modules/flowbite-datepicker/js/i18n/locales/en-ZA.js
generated
vendored
Normal file
@ -0,0 +1,17 @@
|
||||
/**
|
||||
* South African English translation for bootstrap-datepicker
|
||||
*/
|
||||
export default {
|
||||
'en-ZA': {
|
||||
days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
|
||||
daysShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
|
||||
daysMin: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"],
|
||||
months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
|
||||
monthsShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
|
||||
today: "Today",
|
||||
monthsTitle: "Months",
|
||||
clear: "Clear",
|
||||
weekStart: 1,
|
||||
format: "yyyy/mm/d"
|
||||
}
|
||||
};
|
17
node_modules/flowbite-datepicker/js/i18n/locales/eo.js
generated
vendored
Normal file
17
node_modules/flowbite-datepicker/js/i18n/locales/eo.js
generated
vendored
Normal file
@ -0,0 +1,17 @@
|
||||
/**
|
||||
* Esperanto translation for bootstrap-datepicker
|
||||
* Emmanuel Debanne <https: //github.com/debanne>
|
||||
*/
|
||||
export default {
|
||||
eo: {
|
||||
days: ["dimanĉo", "lundo", "mardo", "merkredo", "ĵaŭdo", "vendredo", "sabato"],
|
||||
daysShort: ["dim.", "lun.", "mar.", "mer.", "ĵaŭ.", "ven.", "sam."],
|
||||
daysMin: ["d", "l", "ma", "me", "ĵ", "v", "s"],
|
||||
months: ["januaro", "februaro", "marto", "aprilo", "majo", "junio", "julio", "aŭgusto", "septembro", "oktobro", "novembro", "decembro"],
|
||||
monthsShort: ["jan.", "feb.", "mar.", "apr.", "majo", "jun.", "jul.", "aŭg.", "sep.", "okt.", "nov.", "dec."],
|
||||
today: "Hodiaŭ",
|
||||
clear: "Nuligi",
|
||||
weekStart: 1,
|
||||
format: "yyyy-mm-dd"
|
||||
}
|
||||
};
|
18
node_modules/flowbite-datepicker/js/i18n/locales/es.js
generated
vendored
Normal file
18
node_modules/flowbite-datepicker/js/i18n/locales/es.js
generated
vendored
Normal file
@ -0,0 +1,18 @@
|
||||
/**
|
||||
* Spanish translation for bootstrap-datepicker
|
||||
* Bruno Bonamin <bruno.bonamin@gmail.com>
|
||||
*/
|
||||
export default {
|
||||
es: {
|
||||
days: ["Domingo", "Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado"],
|
||||
daysShort: ["Dom", "Lun", "Mar", "Mié", "Jue", "Vie", "Sáb"],
|
||||
daysMin: ["Do", "Lu", "Ma", "Mi", "Ju", "Vi", "Sa"],
|
||||
months: ["Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"],
|
||||
monthsShort: ["Ene", "Feb", "Mar", "Abr", "May", "Jun", "Jul", "Ago", "Sep", "Oct", "Nov", "Dic"],
|
||||
today: "Hoy",
|
||||
monthsTitle: "Meses",
|
||||
clear: "Borrar",
|
||||
weekStart: 1,
|
||||
format: "dd/mm/yyyy"
|
||||
}
|
||||
};
|
18
node_modules/flowbite-datepicker/js/i18n/locales/et.js
generated
vendored
Normal file
18
node_modules/flowbite-datepicker/js/i18n/locales/et.js
generated
vendored
Normal file
@ -0,0 +1,18 @@
|
||||
/**
|
||||
* Estonian translation for bootstrap-datepicker
|
||||
* Ando Roots <https: //github.com/anroots>
|
||||
* Fixes by Illimar Tambek <<https: //github.com/ragulka>
|
||||
*/
|
||||
export default {
|
||||
et: {
|
||||
days: ["Pühapäev", "Esmaspäev", "Teisipäev", "Kolmapäev", "Neljapäev", "Reede", "Laupäev"],
|
||||
daysShort: ["Pühap", "Esmasp", "Teisip", "Kolmap", "Neljap", "Reede", "Laup"],
|
||||
daysMin: ["P", "E", "T", "K", "N", "R", "L"],
|
||||
months: ["Jaanuar", "Veebruar", "Märts", "Aprill", "Mai", "Juuni", "Juuli", "August", "September", "Oktoober", "November", "Detsember"],
|
||||
monthsShort: ["Jaan", "Veebr", "Märts", "Apr", "Mai", "Juuni", "Juuli", "Aug", "Sept", "Okt", "Nov", "Dets"],
|
||||
today: "Täna",
|
||||
clear: "Tühjenda",
|
||||
weekStart: 1,
|
||||
format: "dd.mm.yyyy"
|
||||
}
|
||||
};
|
18
node_modules/flowbite-datepicker/js/i18n/locales/eu.js
generated
vendored
Normal file
18
node_modules/flowbite-datepicker/js/i18n/locales/eu.js
generated
vendored
Normal file
@ -0,0 +1,18 @@
|
||||
/**
|
||||
* Basque translation for bootstrap-datepicker
|
||||
* Arkaitz Etxeberria <kondi80@gmail.com>
|
||||
*/
|
||||
export default {
|
||||
eu: {
|
||||
days: ['Igandea', 'Astelehena', 'Asteartea', 'Asteazkena', 'Osteguna', 'Ostirala', 'Larunbata'],
|
||||
daysShort: ['Ig', 'Al', 'Ar', 'Az', 'Og', 'Ol', 'Lr'],
|
||||
daysMin: ['Ig', 'Al', 'Ar', 'Az', 'Og', 'Ol', 'Lr'],
|
||||
months: ['Urtarrila', 'Otsaila', 'Martxoa', 'Apirila', 'Maiatza', 'Ekaina', 'Uztaila', 'Abuztua', 'Iraila', 'Urria', 'Azaroa', 'Abendua'],
|
||||
monthsShort: ['Urt', 'Ots', 'Mar', 'Api', 'Mai', 'Eka', 'Uzt', 'Abu', 'Ira', 'Urr', 'Aza', 'Abe'],
|
||||
today: "Gaur",
|
||||
monthsTitle: "Hilabeteak",
|
||||
clear: "Ezabatu",
|
||||
weekStart: 1,
|
||||
format: "yyyy/mm/dd"
|
||||
}
|
||||
};
|
17
node_modules/flowbite-datepicker/js/i18n/locales/fa.js
generated
vendored
Normal file
17
node_modules/flowbite-datepicker/js/i18n/locales/fa.js
generated
vendored
Normal file
@ -0,0 +1,17 @@
|
||||
/**
|
||||
* Persian translation for bootstrap-datepicker
|
||||
* Mostafa Rokooie <mostafa.rokooie@gmail.com>
|
||||
*/
|
||||
export default {
|
||||
fa: {
|
||||
days: ["یکشنبه", "دوشنبه", "سهشنبه", "چهارشنبه", "پنجشنبه", "جمعه", "شنبه", "یکشنبه"],
|
||||
daysShort: ["یک", "دو", "سه", "چهار", "پنج", "جمعه", "شنبه", "یک"],
|
||||
daysMin: ["ی", "د", "س", "چ", "پ", "ج", "ش", "ی"],
|
||||
months: ["ژانویه", "فوریه", "مارس", "آوریل", "مه", "ژوئن", "ژوئیه", "اوت", "سپتامبر", "اکتبر", "نوامبر", "دسامبر"],
|
||||
monthsShort: ["ژان", "فور", "مار", "آور", "مه", "ژون", "ژوی", "اوت", "سپت", "اکت", "نوا", "دسا"],
|
||||
today: "امروز",
|
||||
clear: "پاک کن",
|
||||
weekStart: 1,
|
||||
format: "yyyy/mm/dd"
|
||||
}
|
||||
};
|
17
node_modules/flowbite-datepicker/js/i18n/locales/fi.js
generated
vendored
Normal file
17
node_modules/flowbite-datepicker/js/i18n/locales/fi.js
generated
vendored
Normal file
@ -0,0 +1,17 @@
|
||||
/**
|
||||
* Finnish translation for bootstrap-datepicker
|
||||
* Jaakko Salonen <https: //github.com/jsalonen>
|
||||
*/
|
||||
export default {
|
||||
fi: {
|
||||
days: ["sunnuntai", "maanantai", "tiistai", "keskiviikko", "torstai", "perjantai", "lauantai"],
|
||||
daysShort: ["sun", "maa", "tii", "kes", "tor", "per", "lau"],
|
||||
daysMin: ["su", "ma", "ti", "ke", "to", "pe", "la"],
|
||||
months: ["tammikuu", "helmikuu", "maaliskuu", "huhtikuu", "toukokuu", "kesäkuu", "heinäkuu", "elokuu", "syyskuu", "lokakuu", "marraskuu", "joulukuu"],
|
||||
monthsShort: ["tam", "hel", "maa", "huh", "tou", "kes", "hei", "elo", "syy", "lok", "mar", "jou"],
|
||||
today: "tänään",
|
||||
clear: "Tyhjennä",
|
||||
weekStart: 1,
|
||||
format: "d.m.yyyy"
|
||||
}
|
||||
};
|
15
node_modules/flowbite-datepicker/js/i18n/locales/fo.js
generated
vendored
Normal file
15
node_modules/flowbite-datepicker/js/i18n/locales/fo.js
generated
vendored
Normal file
@ -0,0 +1,15 @@
|
||||
/**
|
||||
* Faroese translation for bootstrap-datepicker
|
||||
* Theodor Johannesen <https: //github.com/theodorjohannesen>
|
||||
*/
|
||||
export default {
|
||||
fo: {
|
||||
days: ["Sunnudagur", "Mánadagur", "Týsdagur", "Mikudagur", "Hósdagur", "Fríggjadagur", "Leygardagur"],
|
||||
daysShort: ["Sun", "Mán", "Týs", "Mik", "Hós", "Frí", "Ley"],
|
||||
daysMin: ["Su", "Má", "Tý", "Mi", "Hó", "Fr", "Le"],
|
||||
months: ["Januar", "Februar", "Marts", "Apríl", "Mei", "Juni", "Juli", "August", "Septembur", "Oktobur", "Novembur", "Desembur"],
|
||||
monthsShort: ["Jan", "Feb", "Mar", "Apr", "Mei", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Des"],
|
||||
today: "Í Dag",
|
||||
clear: "Reinsa"
|
||||
}
|
||||
};
|
21
node_modules/flowbite-datepicker/js/i18n/locales/fr-CH.js
generated
vendored
Normal file
21
node_modules/flowbite-datepicker/js/i18n/locales/fr-CH.js
generated
vendored
Normal file
@ -0,0 +1,21 @@
|
||||
/**
|
||||
* French (Switzerland) translation for bootstrap-datepicker
|
||||
* Christoph Jossi <c.jossi@ascami.ch>
|
||||
* Based on
|
||||
* French translation for bootstrap-datepicker
|
||||
* Nico Mollet <nico.mollet@gmail.com>
|
||||
*/
|
||||
export default {
|
||||
'fr-CH': {
|
||||
days: ["Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi"],
|
||||
daysShort: ["Dim", "Lun", "Mar", "Mer", "Jeu", "Ven", "Sam"],
|
||||
daysMin: ["D", "L", "Ma", "Me", "J", "V", "S"],
|
||||
months: ["Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre"],
|
||||
monthsShort: ["Jan", "Fév", "Mar", "Avr", "Mai", "Jui", "Jul", "Aou", "Sep", "Oct", "Nov", "Déc"],
|
||||
today: "Aujourd'hui",
|
||||
monthsTitle: "Mois",
|
||||
clear: "Effacer",
|
||||
weekStart: 1,
|
||||
format: "dd.mm.yyyy"
|
||||
}
|
||||
};
|
18
node_modules/flowbite-datepicker/js/i18n/locales/fr.js
generated
vendored
Normal file
18
node_modules/flowbite-datepicker/js/i18n/locales/fr.js
generated
vendored
Normal file
@ -0,0 +1,18 @@
|
||||
/**
|
||||
* French translation for bootstrap-datepicker
|
||||
* Nico Mollet <nico.mollet@gmail.com>
|
||||
*/
|
||||
export default {
|
||||
fr: {
|
||||
days: ["dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi"],
|
||||
daysShort: ["dim.", "lun.", "mar.", "mer.", "jeu.", "ven.", "sam."],
|
||||
daysMin: ["d", "l", "ma", "me", "j", "v", "s"],
|
||||
months: ["janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", "novembre", "décembre"],
|
||||
monthsShort: ["janv.", "févr.", "mars", "avril", "mai", "juin", "juil.", "août", "sept.", "oct.", "nov.", "déc."],
|
||||
today: "Aujourd'hui",
|
||||
monthsTitle: "Mois",
|
||||
clear: "Effacer",
|
||||
weekStart: 1,
|
||||
format: "dd/mm/yyyy"
|
||||
}
|
||||
};
|
16
node_modules/flowbite-datepicker/js/i18n/locales/gl.js
generated
vendored
Normal file
16
node_modules/flowbite-datepicker/js/i18n/locales/gl.js
generated
vendored
Normal file
@ -0,0 +1,16 @@
|
||||
/**
|
||||
* Galician translation
|
||||
*/
|
||||
export default {
|
||||
gl: {
|
||||
days: ["Domingo", "Luns", "Martes", "Mércores", "Xoves", "Venres", "Sábado"],
|
||||
daysShort: ["Dom", "Lun", "Mar", "Mér", "Xov", "Ven", "Sáb"],
|
||||
daysMin: ["Do", "Lu", "Ma", "Me", "Xo", "Ve", "Sa"],
|
||||
months: ["Xaneiro", "Febreiro", "Marzo", "Abril", "Maio", "Xuño", "Xullo", "Agosto", "Setembro", "Outubro", "Novembro", "Decembro"],
|
||||
monthsShort: ["Xan", "Feb", "Mar", "Abr", "Mai", "Xun", "Xul", "Ago", "Sep", "Out", "Nov", "Dec"],
|
||||
today: "Hoxe",
|
||||
clear: "Limpar",
|
||||
weekStart: 1,
|
||||
format: "dd/mm/yyyy"
|
||||
}
|
||||
};
|
15
node_modules/flowbite-datepicker/js/i18n/locales/he.js
generated
vendored
Normal file
15
node_modules/flowbite-datepicker/js/i18n/locales/he.js
generated
vendored
Normal file
@ -0,0 +1,15 @@
|
||||
/**
|
||||
* Hebrew translation for bootstrap-datepicker
|
||||
* Sagie Maoz <sagie@maoz.info>
|
||||
*/
|
||||
export default {
|
||||
he: {
|
||||
days: ["ראשון", "שני", "שלישי", "רביעי", "חמישי", "שישי", "שבת", "ראשון"],
|
||||
daysShort: ["א", "ב", "ג", "ד", "ה", "ו", "ש", "א"],
|
||||
daysMin: ["א", "ב", "ג", "ד", "ה", "ו", "ש", "א"],
|
||||
months: ["ינואר", "פברואר", "מרץ", "אפריל", "מאי", "יוני", "יולי", "אוגוסט", "ספטמבר", "אוקטובר", "נובמבר", "דצמבר"],
|
||||
monthsShort: ["ינו", "פבר", "מרץ", "אפר", "מאי", "יונ", "יול", "אוג", "ספט", "אוק", "נוב", "דצמ"],
|
||||
today: "היום",
|
||||
rtl: true
|
||||
}
|
||||
};
|
18
node_modules/flowbite-datepicker/js/i18n/locales/hi.js
generated
vendored
Normal file
18
node_modules/flowbite-datepicker/js/i18n/locales/hi.js
generated
vendored
Normal file
@ -0,0 +1,18 @@
|
||||
/**
|
||||
* Hindi translation for bootstrap-datepicker
|
||||
* Visar Uruqi <visar.uruqi@gmail.com>
|
||||
*/
|
||||
export default {
|
||||
hi: {
|
||||
days: ["रविवार", "सोमवार", "मंगलवार", "बुधवार", "गुरुवार", "शुक्रवार", "शनिवार"],
|
||||
daysShort: ["सूर्य", "सोम", "मंगल", "बुध", "गुरु", "शुक्र", "शनि"],
|
||||
daysMin: ["र", "सो", "मं", "बु", "गु", "शु", "श"],
|
||||
months: ["जनवरी", "फ़रवरी", "मार्च", "अप्रैल", "मई", "जून", "जुलाई", "अगस्त", "सितम्बर", "अक्टूबर", "नवंबर", "दिसम्बर"],
|
||||
monthsShort: ["जन", "फ़रवरी", "मार्च", "अप्रैल", "मई", "जून", "जुलाई", "अगस्त", "सितं", "अक्टूबर", "नवं", "दिसम्बर"],
|
||||
today: "आज",
|
||||
monthsTitle: "महीने",
|
||||
clear: "साफ",
|
||||
weekStart: 1,
|
||||
format: "dd / mm / yyyy"
|
||||
}
|
||||
};
|
13
node_modules/flowbite-datepicker/js/i18n/locales/hr.js
generated
vendored
Normal file
13
node_modules/flowbite-datepicker/js/i18n/locales/hr.js
generated
vendored
Normal file
@ -0,0 +1,13 @@
|
||||
/**
|
||||
* Croatian localisation
|
||||
*/
|
||||
export default {
|
||||
hr: {
|
||||
days: ["Nedjelja", "Ponedjeljak", "Utorak", "Srijeda", "Četvrtak", "Petak", "Subota"],
|
||||
daysShort: ["Ned", "Pon", "Uto", "Sri", "Čet", "Pet", "Sub"],
|
||||
daysMin: ["Ne", "Po", "Ut", "Sr", "Če", "Pe", "Su"],
|
||||
months: ["Siječanj", "Veljača", "Ožujak", "Travanj", "Svibanj", "Lipanj", "Srpanj", "Kolovoz", "Rujan", "Listopad", "Studeni", "Prosinac"],
|
||||
monthsShort: ["Sij", "Velj", "Ožu", "Tra", "Svi", "Lip", "Srp", "Kol", "Ruj", "Lis", "Stu", "Pro"],
|
||||
today: "Danas"
|
||||
}
|
||||
};
|
18
node_modules/flowbite-datepicker/js/i18n/locales/hu.js
generated
vendored
Normal file
18
node_modules/flowbite-datepicker/js/i18n/locales/hu.js
generated
vendored
Normal file
@ -0,0 +1,18 @@
|
||||
/**
|
||||
* Hungarian translation for bootstrap-datepicker
|
||||
* Sotus László <lacisan@gmail.com>
|
||||
*/
|
||||
export default {
|
||||
hu: {
|
||||
days: ["vasárnap", "hétfő", "kedd", "szerda", "csütörtök", "péntek", "szombat"],
|
||||
daysShort: ["vas", "hét", "ked", "sze", "csü", "pén", "szo"],
|
||||
daysMin: ["V", "H", "K", "Sze", "Cs", "P", "Szo"],
|
||||
months: ["január", "február", "március", "április", "május", "június", "július", "augusztus", "szeptember", "október", "november", "december"],
|
||||
monthsShort: ["jan", "feb", "már", "ápr", "máj", "jún", "júl", "aug", "sze", "okt", "nov", "dec"],
|
||||
today: "ma",
|
||||
weekStart: 1,
|
||||
clear: "töröl",
|
||||
titleFormat: "y. MM",
|
||||
format: "yyyy.mm.dd"
|
||||
}
|
||||
};
|
18
node_modules/flowbite-datepicker/js/i18n/locales/hy.js
generated
vendored
Normal file
18
node_modules/flowbite-datepicker/js/i18n/locales/hy.js
generated
vendored
Normal file
@ -0,0 +1,18 @@
|
||||
/**
|
||||
* Armenian translation for bootstrap-datepicker
|
||||
* Hayk Chamyan <hamshen@gmail.com>
|
||||
*/
|
||||
export default {
|
||||
hy: {
|
||||
days: ["Կիրակի", "Երկուշաբթի", "Երեքշաբթի", "Չորեքշաբթի", "Հինգշաբթի", "Ուրբաթ", "Շաբաթ"],
|
||||
daysShort: ["Կիր", "Երկ", "Երե", "Չոր", "Հին", "Ուրբ", "Շաբ"],
|
||||
daysMin: ["Կի", "Եկ", "Եք", "Չո", "Հի", "Ու", "Շա"],
|
||||
months: ["Հունվար", "Փետրվար", "Մարտ", "Ապրիլ", "Մայիս", "Հունիս", "Հուլիս", "Օգոստոս", "Սեպտեմբեր", "Հոկտեմբեր", "Նոյեմբեր", "Դեկտեմբեր"],
|
||||
monthsShort: ["Հնվ", "Փետ", "Մար", "Ապր", "Մայ", "Հուն", "Հուլ", "Օգս", "Սեպ", "Հոկ", "Նոյ", "Դեկ"],
|
||||
today: "Այսօր",
|
||||
clear: "Ջնջել",
|
||||
format: "dd.mm.yyyy",
|
||||
weekStart: 1,
|
||||
monthsTitle: 'Ամիսնէր'
|
||||
}
|
||||
};
|
15
node_modules/flowbite-datepicker/js/i18n/locales/id.js
generated
vendored
Normal file
15
node_modules/flowbite-datepicker/js/i18n/locales/id.js
generated
vendored
Normal file
@ -0,0 +1,15 @@
|
||||
/**
|
||||
* Bahasa translation for bootstrap-datepicker
|
||||
* Azwar Akbar <azwar.akbar@gmail.com>
|
||||
*/
|
||||
export default {
|
||||
id: {
|
||||
days: ["Minggu", "Senin", "Selasa", "Rabu", "Kamis", "Jumat", "Sabtu"],
|
||||
daysShort: ["Mgu", "Sen", "Sel", "Rab", "Kam", "Jum", "Sab"],
|
||||
daysMin: ["Mg", "Sn", "Sl", "Ra", "Ka", "Ju", "Sa"],
|
||||
months: ["Januari", "Februari", "Maret", "April", "Mei", "Juni", "Juli", "Agustus", "September", "Oktober", "November", "Desember"],
|
||||
monthsShort: ["Jan", "Feb", "Mar", "Apr", "Mei", "Jun", "Jul", "Ags", "Sep", "Okt", "Nov", "Des"],
|
||||
today: "Hari Ini",
|
||||
clear: "Kosongkan"
|
||||
}
|
||||
};
|
14
node_modules/flowbite-datepicker/js/i18n/locales/is.js
generated
vendored
Normal file
14
node_modules/flowbite-datepicker/js/i18n/locales/is.js
generated
vendored
Normal file
@ -0,0 +1,14 @@
|
||||
/**
|
||||
* Icelandic translation for bootstrap-datepicker
|
||||
* Hinrik Örn Sigurðsson <hinrik.sig@gmail.com>
|
||||
*/
|
||||
export default {
|
||||
is: {
|
||||
days: ["Sunnudagur", "Mánudagur", "Þriðjudagur", "Miðvikudagur", "Fimmtudagur", "Föstudagur", "Laugardagur"],
|
||||
daysShort: ["Sun", "Mán", "Þri", "Mið", "Fim", "Fös", "Lau"],
|
||||
daysMin: ["Su", "Má", "Þr", "Mi", "Fi", "Fö", "La"],
|
||||
months: ["Janúar", "Febrúar", "Mars", "Apríl", "Maí", "Júní", "Júlí", "Ágúst", "September", "Október", "Nóvember", "Desember"],
|
||||
monthsShort: ["Jan", "Feb", "Mar", "Apr", "Maí", "Jún", "Júl", "Ágú", "Sep", "Okt", "Nóv", "Des"],
|
||||
today: "Í Dag"
|
||||
}
|
||||
};
|
20
node_modules/flowbite-datepicker/js/i18n/locales/it-CH.js
generated
vendored
Normal file
20
node_modules/flowbite-datepicker/js/i18n/locales/it-CH.js
generated
vendored
Normal file
@ -0,0 +1,20 @@
|
||||
/**
|
||||
* Italian (Switzerland) translation for bootstrap-datepicker
|
||||
* Christoph Jossi <c.jossi@ascami.ch>
|
||||
* Based on
|
||||
* Italian translation for bootstrap-datepicker
|
||||
* Enrico Rubboli <rubboli@gmail.com>
|
||||
*/
|
||||
export default {
|
||||
'it-CH': {
|
||||
days: ["Domenica", "Lunedì", "Martedì", "Mercoledì", "Giovedì", "Venerdì", "Sabato"],
|
||||
daysShort: ["Dom", "Lun", "Mar", "Mer", "Gio", "Ven", "Sab"],
|
||||
daysMin: ["Do", "Lu", "Ma", "Me", "Gi", "Ve", "Sa"],
|
||||
months: ["Gennaio", "Febbraio", "Marzo", "Aprile", "Maggio", "Giugno", "Luglio", "Agosto", "Settembre", "Ottobre", "Novembre", "Dicembre"],
|
||||
monthsShort: ["Gen", "Feb", "Mar", "Apr", "Mag", "Giu", "Lug", "Ago", "Set", "Ott", "Nov", "Dic"],
|
||||
today: "Oggi",
|
||||
clear: "Cancella",
|
||||
weekStart: 1,
|
||||
format: "dd.mm.yyyy"
|
||||
}
|
||||
};
|
18
node_modules/flowbite-datepicker/js/i18n/locales/it.js
generated
vendored
Normal file
18
node_modules/flowbite-datepicker/js/i18n/locales/it.js
generated
vendored
Normal file
@ -0,0 +1,18 @@
|
||||
/**
|
||||
* Italian translation for bootstrap-datepicker
|
||||
* Enrico Rubboli <rubboli@gmail.com>
|
||||
*/
|
||||
export default {
|
||||
it: {
|
||||
days: ["Domenica", "Lunedì", "Martedì", "Mercoledì", "Giovedì", "Venerdì", "Sabato"],
|
||||
daysShort: ["Dom", "Lun", "Mar", "Mer", "Gio", "Ven", "Sab"],
|
||||
daysMin: ["Do", "Lu", "Ma", "Me", "Gi", "Ve", "Sa"],
|
||||
months: ["Gennaio", "Febbraio", "Marzo", "Aprile", "Maggio", "Giugno", "Luglio", "Agosto", "Settembre", "Ottobre", "Novembre", "Dicembre"],
|
||||
monthsShort: ["Gen", "Feb", "Mar", "Apr", "Mag", "Giu", "Lug", "Ago", "Set", "Ott", "Nov", "Dic"],
|
||||
today: "Oggi",
|
||||
monthsTitle: "Mesi",
|
||||
clear: "Cancella",
|
||||
weekStart: 1,
|
||||
format: "dd/mm/yyyy"
|
||||
}
|
||||
};
|
17
node_modules/flowbite-datepicker/js/i18n/locales/ja.js
generated
vendored
Normal file
17
node_modules/flowbite-datepicker/js/i18n/locales/ja.js
generated
vendored
Normal file
@ -0,0 +1,17 @@
|
||||
/**
|
||||
* Japanese translation for bootstrap-datepicker
|
||||
* Norio Suzuki <https: //github.com/suzuki/>
|
||||
*/
|
||||
export default {
|
||||
ja: {
|
||||
days: ["日曜", "月曜", "火曜", "水曜", "木曜", "金曜", "土曜"],
|
||||
daysShort: ["日", "月", "火", "水", "木", "金", "土"],
|
||||
daysMin: ["日", "月", "火", "水", "木", "金", "土"],
|
||||
months: ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"],
|
||||
monthsShort: ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"],
|
||||
today: "今日",
|
||||
format: "yyyy/mm/dd",
|
||||
titleFormat: "y年mm月",
|
||||
clear: "クリア"
|
||||
}
|
||||
};
|
17
node_modules/flowbite-datepicker/js/i18n/locales/ka.js
generated
vendored
Normal file
17
node_modules/flowbite-datepicker/js/i18n/locales/ka.js
generated
vendored
Normal file
@ -0,0 +1,17 @@
|
||||
/**
|
||||
* Georgian translation for bootstrap-datepicker
|
||||
* Levan Melikishvili <levani0101@yahoo.com>
|
||||
*/
|
||||
export default {
|
||||
ka: {
|
||||
days: ["კვირა", "ორშაბათი", "სამშაბათი", "ოთხშაბათი", "ხუთშაბათი", "პარასკევი", "შაბათი"],
|
||||
daysShort: ["კვი", "ორშ", "სამ", "ოთხ", "ხუთ", "პარ", "შაბ"],
|
||||
daysMin: ["კვ", "ორ", "სა", "ოთ", "ხუ", "პა", "შა"],
|
||||
months: ["იანვარი", "თებერვალი", "მარტი", "აპრილი", "მაისი", "ივნისი", "ივლისი", "აგვისტო", "სექტემბერი", "ოქტომბერი", "ნოემბერი", "დეკემბერი"],
|
||||
monthsShort: ["იან", "თებ", "მარ", "აპრ", "მაი", "ივნ", "ივლ", "აგვ", "სექ", "ოქტ", "ნოე", "დეკ"],
|
||||
today: "დღეს",
|
||||
clear: "გასუფთავება",
|
||||
weekStart: 1,
|
||||
format: "dd.mm.yyyy"
|
||||
}
|
||||
};
|
15
node_modules/flowbite-datepicker/js/i18n/locales/kk.js
generated
vendored
Normal file
15
node_modules/flowbite-datepicker/js/i18n/locales/kk.js
generated
vendored
Normal file
@ -0,0 +1,15 @@
|
||||
/**
|
||||
* Kazakh translation for bootstrap-datepicker
|
||||
* Yerzhan Tolekov <era.tolekov@gmail.com>
|
||||
*/
|
||||
export default {
|
||||
kk: {
|
||||
days: ["Жексенбі", "Дүйсенбі", "Сейсенбі", "Сәрсенбі", "Бейсенбі", "Жұма", "Сенбі"],
|
||||
daysShort: ["Жек", "Дүй", "Сей", "Сәр", "Бей", "Жұм", "Сен"],
|
||||
daysMin: ["Жк", "Дс", "Сс", "Ср", "Бс", "Жм", "Сн"],
|
||||
months: ["Қаңтар", "Ақпан", "Наурыз", "Сәуір", "Мамыр", "Маусым", "Шілде", "Тамыз", "Қыркүйек", "Қазан", "Қараша", "Желтоқсан"],
|
||||
monthsShort: ["Қаң", "Ақп", "Нау", "Сәу", "Мам", "Мау", "Шіл", "Там", "Қыр", "Қаз", "Қар", "Жел"],
|
||||
today: "Бүгін",
|
||||
weekStart: 1
|
||||
}
|
||||
};
|
15
node_modules/flowbite-datepicker/js/i18n/locales/km.js
generated
vendored
Normal file
15
node_modules/flowbite-datepicker/js/i18n/locales/km.js
generated
vendored
Normal file
@ -0,0 +1,15 @@
|
||||
/**
|
||||
* Khmer translation for bootstrap-datepicker
|
||||
* This is the Updated Version of: https: //github.com/uxsolutions/bootstrap-datepicker/blob/71308d42cce9524284c50c6fac50422d1790ac0f/js/locales/bootstrap-datepicker.kh.js
|
||||
*/
|
||||
export default {
|
||||
km: {
|
||||
days: ["អាទិត្យ", "ចន្ទ", "អង្គារ", "ពុធ", "ព្រហស្បតិ៍", "សុក្រ", "សៅរ៍"],
|
||||
daysShort: ["អា.ទិ", "ចន្ទ", "អង្គារ", "ពុធ", "ព្រ.ហ", "សុក្រ", "សៅរ៍"],
|
||||
daysMin: ["អា.ទិ", "ចន្ទ", "អង្គារ", "ពុធ", "ព្រ.ហ", "សុក្រ", "សៅរ៍"],
|
||||
months: ["មករា", "កុម្ភះ", "មិនា", "មេសា", "ឧសភា", "មិថុនា", "កក្កដា", "សីហា", "កញ្ញា", "តុលា", "វិច្ឆិកា", "ធ្នូ"],
|
||||
monthsShort: ["មករា", "កុម្ភះ", "មិនា", "មេសា", "ឧសភា", "មិថុនា", "កក្កដា", "សីហា", "កញ្ញា", "តុលា", "វិច្ឆិកា", "ធ្នូ"],
|
||||
today: "ថ្ងៃនេះ",
|
||||
clear: "សំអាត"
|
||||
}
|
||||
};
|
18
node_modules/flowbite-datepicker/js/i18n/locales/ko.js
generated
vendored
Normal file
18
node_modules/flowbite-datepicker/js/i18n/locales/ko.js
generated
vendored
Normal file
@ -0,0 +1,18 @@
|
||||
/**
|
||||
* Korean translation for bootstrap-datepicker
|
||||
* This is a port from https: //github.com/moment/moment/blob/develop/src/locale/ko.js
|
||||
*/
|
||||
export default {
|
||||
ko: {
|
||||
days: ["일요일", "월요일", "화요일", "수요일", "목요일", "금요일", "토요일"],
|
||||
daysShort: ["일", "월", "화", "수", "목", "금", "토"],
|
||||
daysMin: ["일", "월", "화", "수", "목", "금", "토"],
|
||||
months: ["1월", "2월", "3월", "4월", "5월", "6월", "7월", "8월", "9월", "10월", "11월", "12월"],
|
||||
monthsShort: ["1월", "2월", "3월", "4월", "5월", "6월", "7월", "8월", "9월", "10월", "11월", "12월"],
|
||||
today: "오늘",
|
||||
clear: "삭제",
|
||||
format: "yyyy-mm-dd",
|
||||
titleFormat: "y년mm월",
|
||||
weekStart: 0
|
||||
}
|
||||
};
|
19
node_modules/flowbite-datepicker/js/i18n/locales/lt.js
generated
vendored
Normal file
19
node_modules/flowbite-datepicker/js/i18n/locales/lt.js
generated
vendored
Normal file
@ -0,0 +1,19 @@
|
||||
/**
|
||||
* Lithuanian translation for bootstrap-datepicker
|
||||
* Šarūnas Gliebus <ssharunas@yahoo.co.uk>
|
||||
*/
|
||||
|
||||
export default {
|
||||
lt: {
|
||||
days: ["Sekmadienis", "Pirmadienis", "Antradienis", "Trečiadienis", "Ketvirtadienis", "Penktadienis", "Šeštadienis"],
|
||||
daysShort: ["S", "Pr", "A", "T", "K", "Pn", "Š"],
|
||||
daysMin: ["Sk", "Pr", "An", "Tr", "Ke", "Pn", "Št"],
|
||||
months: ["Sausis", "Vasaris", "Kovas", "Balandis", "Gegužė", "Birželis", "Liepa", "Rugpjūtis", "Rugsėjis", "Spalis", "Lapkritis", "Gruodis"],
|
||||
monthsShort: ["Sau", "Vas", "Kov", "Bal", "Geg", "Bir", "Lie", "Rugp", "Rugs", "Spa", "Lap", "Gru"],
|
||||
today: "Šiandien",
|
||||
monthsTitle: "Mėnesiai",
|
||||
clear: "Išvalyti",
|
||||
weekStart: 1,
|
||||
format: "yyyy-mm-dd"
|
||||
}
|
||||
};
|
18
node_modules/flowbite-datepicker/js/i18n/locales/lv.js
generated
vendored
Normal file
18
node_modules/flowbite-datepicker/js/i18n/locales/lv.js
generated
vendored
Normal file
@ -0,0 +1,18 @@
|
||||
/**
|
||||
* Latvian translation for bootstrap-datepicker
|
||||
* Artis Avotins <artis@apit.lv>
|
||||
*/
|
||||
|
||||
export default {
|
||||
lv: {
|
||||
days: ["Svētdiena", "Pirmdiena", "Otrdiena", "Trešdiena", "Ceturtdiena", "Piektdiena", "Sestdiena"],
|
||||
daysShort: ["Sv", "P", "O", "T", "C", "Pk", "S"],
|
||||
daysMin: ["Sv", "Pr", "Ot", "Tr", "Ce", "Pk", "Se"],
|
||||
months: ["Janvāris", "Februāris", "Marts", "Aprīlis", "Maijs", "Jūnijs", "Jūlijs", "Augusts", "Septembris", "Oktobris", "Novembris", "Decembris"],
|
||||
monthsShort: ["Jan", "Feb", "Mar", "Apr", "Mai", "Jūn", "Jūl", "Aug", "Sep", "Okt", "Nov", "Dec"],
|
||||
monthsTitle: "Mēneši",
|
||||
today: "Šodien",
|
||||
clear: "Nodzēst",
|
||||
weekStart: 1
|
||||
}
|
||||
};
|
17
node_modules/flowbite-datepicker/js/i18n/locales/me.js
generated
vendored
Normal file
17
node_modules/flowbite-datepicker/js/i18n/locales/me.js
generated
vendored
Normal file
@ -0,0 +1,17 @@
|
||||
/**
|
||||
* Montenegrin translation for bootstrap-datepicker
|
||||
* Miodrag Nikač <miodrag@restartit.me>
|
||||
*/
|
||||
export default {
|
||||
me: {
|
||||
days: ["Nedjelja","Ponedjeljak", "Utorak", "Srijeda", "Četvrtak", "Petak", "Subota"],
|
||||
daysShort: ["Ned", "Pon", "Uto", "Sri", "Čet", "Pet", "Sub"],
|
||||
daysMin: ["Ne", "Po", "Ut", "Sr", "Če", "Pe", "Su"],
|
||||
months: ["Januar", "Februar", "Mart", "April", "Maj", "Jun", "Jul", "Avgust", "Septembar", "Oktobar", "Novembar", "Decembar"],
|
||||
monthsShort: ["Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Avg", "Sep", "Okt", "Nov", "Dec"],
|
||||
today: "Danas",
|
||||
weekStart: 1,
|
||||
clear: "Izbriši",
|
||||
format: "dd.mm.yyyy"
|
||||
}
|
||||
};
|
15
node_modules/flowbite-datepicker/js/i18n/locales/mk.js
generated
vendored
Normal file
15
node_modules/flowbite-datepicker/js/i18n/locales/mk.js
generated
vendored
Normal file
@ -0,0 +1,15 @@
|
||||
/**
|
||||
* Macedonian translation for bootstrap-datepicker
|
||||
* Marko Aleksic <psybaron@gmail.com>
|
||||
*/
|
||||
export default {
|
||||
mk: {
|
||||
days: ["Недела", "Понеделник", "Вторник", "Среда", "Четврток", "Петок", "Сабота"],
|
||||
daysShort: ["Нед", "Пон", "Вто", "Сре", "Чет", "Пет", "Саб"],
|
||||
daysMin: ["Не", "По", "Вт", "Ср", "Че", "Пе", "Са"],
|
||||
months: ["Јануари", "Февруари", "Март", "Април", "Мај", "Јуни", "Јули", "Август", "Септември", "Октомври", "Ноември", "Декември"],
|
||||
monthsShort: ["Јан", "Фев", "Мар", "Апр", "Мај", "Јун", "Јул", "Авг", "Сеп", "Окт", "Ное", "Дек"],
|
||||
today: "Денес",
|
||||
format: "dd.mm.yyyy"
|
||||
}
|
||||
};
|
17
node_modules/flowbite-datepicker/js/i18n/locales/mn.js
generated
vendored
Normal file
17
node_modules/flowbite-datepicker/js/i18n/locales/mn.js
generated
vendored
Normal file
@ -0,0 +1,17 @@
|
||||
/**
|
||||
* Mongolian translation for bootstrap-datepicker
|
||||
* Andrey Torsunov <andrey.torsunov@gmail.com>
|
||||
*/
|
||||
export default {
|
||||
mn: {
|
||||
days: ["Ням", "Даваа", "Мягмар", "Лхагва", "Пүрэв", "Баасан", "Бямба"],
|
||||
daysShort: ["Ням", "Дав", "Мяг", "Лха", "Пүр", "Баа", "Бям"],
|
||||
daysMin: ["Ня", "Да", "Мя", "Лх", "Пү", "Ба", "Бя"],
|
||||
months: ["Хулгана", "Үхэр", "Бар", "Туулай", "Луу", "Могой", "Морь", "Хонь", "Бич", "Тахиа", "Нохой", "Гахай"],
|
||||
monthsShort: ["Хул", "Үхэ", "Бар", "Туу", "Луу", "Мог", "Мор", "Хон", "Бич", "Тах", "Нох", "Гах"],
|
||||
today: "Өнөөдөр",
|
||||
clear: "Тодорхой",
|
||||
format: "yyyy.mm.dd",
|
||||
weekStart: 1
|
||||
}
|
||||
};
|
18
node_modules/flowbite-datepicker/js/i18n/locales/mr.js
generated
vendored
Normal file
18
node_modules/flowbite-datepicker/js/i18n/locales/mr.js
generated
vendored
Normal file
@ -0,0 +1,18 @@
|
||||
/**
|
||||
* Marathi translation for bootstrap-datepicker
|
||||
* Sushant Pimple <pimplesushant@gmail.com>
|
||||
*/
|
||||
export default {
|
||||
mr: {
|
||||
days: ["रविवार", "सोमवार", "मंगळवार", "बुधवार", "गुरुवार", "शुक्रवार", "शनिवार"],
|
||||
daysShort: ["रवि", "सोम", "मंगळ", "बुध", "गुरु", "शुक्र", "शनि"],
|
||||
daysMin: ["र", "सो", "मं", "बु", "गु", "शु", "श"],
|
||||
months: ["जानेवारी", "फेब्रुवारी", "मार्च", "एप्रिल", "मे", "जून", "जुलै", "ऑगस्ट", "सप्टेंबर", "ऑक्टोबर", "नोव्हेंबर", "डिसेंबर"],
|
||||
monthsShort: ["जाने.", "फेब्रु.", "मार्च", "एप्रिल", "मे", "जून", "जुलै", "ऑगस्ट", "सप्टें.", "ऑक्टो.", "नोव्हें.", "डिसें."],
|
||||
today: "आज",
|
||||
monthsTitle: "महीने",
|
||||
clear: "हटवा",
|
||||
weekStart: 1,
|
||||
format: "dd / mm / yyyy"
|
||||
}
|
||||
};
|
15
node_modules/flowbite-datepicker/js/i18n/locales/ms.js
generated
vendored
Normal file
15
node_modules/flowbite-datepicker/js/i18n/locales/ms.js
generated
vendored
Normal file
@ -0,0 +1,15 @@
|
||||
/**
|
||||
* Malay translation for bootstrap-datepicker
|
||||
* Ateman Faiz <noorulfaiz@gmail.com>
|
||||
*/
|
||||
export default {
|
||||
ms: {
|
||||
days: ["Ahad", "Isnin", "Selasa", "Rabu", "Khamis", "Jumaat", "Sabtu"],
|
||||
daysShort: ["Aha", "Isn", "Sel", "Rab", "Kha", "Jum", "Sab"],
|
||||
daysMin: ["Ah", "Is", "Se", "Ra", "Kh", "Ju", "Sa"],
|
||||
months: ["Januari", "Februari", "Mac", "April", "Mei", "Jun", "Julai", "Ogos", "September", "Oktober", "November", "Disember"],
|
||||
monthsShort: ["Jan", "Feb", "Mar", "Apr", "Mei", "Jun", "Jul", "Ogo", "Sep", "Okt", "Nov", "Dis"],
|
||||
today: "Hari Ini",
|
||||
clear: "Bersihkan"
|
||||
}
|
||||
};
|
18
node_modules/flowbite-datepicker/js/i18n/locales/nl-BE.js
generated
vendored
Normal file
18
node_modules/flowbite-datepicker/js/i18n/locales/nl-BE.js
generated
vendored
Normal file
@ -0,0 +1,18 @@
|
||||
/**
|
||||
* Belgium-Dutch translation for bootstrap-datepicker
|
||||
* Julien Poulin <poulin_julien@hotmail.com>
|
||||
*/
|
||||
export default {
|
||||
'nl-BE': {
|
||||
days: ["zondag", "maandag", "dinsdag", "woensdag", "donderdag", "vrijdag", "zaterdag"],
|
||||
daysShort: ["zo", "ma", "di", "wo", "do", "vr", "za"],
|
||||
daysMin: ["zo", "ma", "di", "wo", "do", "vr", "za"],
|
||||
months: ["januari", "februari", "maart", "april", "mei", "juni", "juli", "augustus", "september", "oktober", "november", "december"],
|
||||
monthsShort: ["jan", "feb", "mrt", "apr", "mei", "jun", "jul", "aug", "sep", "okt", "nov", "dec"],
|
||||
today: "Vandaag",
|
||||
monthsTitle: "Maanden",
|
||||
clear: "Leegmaken",
|
||||
weekStart: 1,
|
||||
format: "dd/mm/yyyy"
|
||||
}
|
||||
};
|
18
node_modules/flowbite-datepicker/js/i18n/locales/nl.js
generated
vendored
Normal file
18
node_modules/flowbite-datepicker/js/i18n/locales/nl.js
generated
vendored
Normal file
@ -0,0 +1,18 @@
|
||||
/**
|
||||
* Dutch translation for bootstrap-datepicker
|
||||
* Reinier Goltstein <mrgoltstein@gmail.com>
|
||||
*/
|
||||
export default {
|
||||
nl: {
|
||||
days: ["zondag", "maandag", "dinsdag", "woensdag", "donderdag", "vrijdag", "zaterdag"],
|
||||
daysShort: ["zo", "ma", "di", "wo", "do", "vr", "za"],
|
||||
daysMin: ["zo", "ma", "di", "wo", "do", "vr", "za"],
|
||||
months: ["januari", "februari", "maart", "april", "mei", "juni", "juli", "augustus", "september", "oktober", "november", "december"],
|
||||
monthsShort: ["jan", "feb", "mrt", "apr", "mei", "jun", "jul", "aug", "sep", "okt", "nov", "dec"],
|
||||
today: "Vandaag",
|
||||
monthsTitle: "Maanden",
|
||||
clear: "Wissen",
|
||||
weekStart: 1,
|
||||
format: "dd-mm-yyyy"
|
||||
}
|
||||
};
|
18
node_modules/flowbite-datepicker/js/i18n/locales/no.js
generated
vendored
Normal file
18
node_modules/flowbite-datepicker/js/i18n/locales/no.js
generated
vendored
Normal file
@ -0,0 +1,18 @@
|
||||
/**
|
||||
* Norwegian translation for bootstrap-datepicker
|
||||
* George Gooding <george@nettsentrisk.no>
|
||||
*/
|
||||
export default {
|
||||
no: {
|
||||
days: ['søndag', 'mandag', 'tirsdag', 'onsdag', 'torsdag', 'fredag', 'lørdag'],
|
||||
daysShort: ['søn', 'man', 'tir', 'ons', 'tor', 'fre', 'lør'],
|
||||
daysMin: ['sø', 'ma', 'ti', 'on', 'to', 'fr', 'lø'],
|
||||
months: ['januar', 'februar', 'mars', 'april', 'mai', 'juni', 'juli', 'august', 'september', 'oktober', 'november', 'desember'],
|
||||
monthsShort: ['jan', 'feb', 'mar', 'apr', 'mai', 'jun', 'jul', 'aug', 'sep', 'okt', 'nov', 'des'],
|
||||
today: 'i dag',
|
||||
monthsTitle: 'Måneder',
|
||||
clear: 'Nullstill',
|
||||
weekStart: 1,
|
||||
format: 'dd.mm.yyyy'
|
||||
}
|
||||
};
|
17
node_modules/flowbite-datepicker/js/i18n/locales/oc.js
generated
vendored
Normal file
17
node_modules/flowbite-datepicker/js/i18n/locales/oc.js
generated
vendored
Normal file
@ -0,0 +1,17 @@
|
||||
/**
|
||||
* Occitan translation for bootstrap-datepicker
|
||||
*/
|
||||
export default {
|
||||
oc: {
|
||||
days: ["Dimenge", "Diluns", "Dimars", "Dimècres", "Dijòus", "Divendres", "Dissabte"],
|
||||
daysShort: ["Dim", "Dil", "Dmr", "Dmc", "Dij", "Div", "Dis"],
|
||||
daysMin: ["dg", "dl", "dr", "dc", "dj", "dv", "ds"],
|
||||
months: ["Genièr", "Febrièr", "Març", "Abrial", "Mai", "Junh", "Julhet", "Agost", "Setembre", "Octobre", "Novembre", "Decembre"],
|
||||
monthsShort: ["Gen", "Feb", "Mar", "Abr", "Mai", "Jun", "Jul", "Ago", "Set", "Oct", "Nov", "Dec"],
|
||||
today: "Uèi",
|
||||
monthsTitle: "Meses",
|
||||
clear: "Escafar",
|
||||
weekStart: 1,
|
||||
format: "dd/mm/yyyy"
|
||||
}
|
||||
};
|
17
node_modules/flowbite-datepicker/js/i18n/locales/pl.js
generated
vendored
Normal file
17
node_modules/flowbite-datepicker/js/i18n/locales/pl.js
generated
vendored
Normal file
@ -0,0 +1,17 @@
|
||||
/**
|
||||
* Polish translation for bootstrap-datepicker
|
||||
* Robert <rtpm@gazeta.pl>
|
||||
*/
|
||||
export default {
|
||||
pl: {
|
||||
days: ["Niedziela", "Poniedziałek", "Wtorek", "Środa", "Czwartek", "Piątek", "Sobota"],
|
||||
daysShort: ["Niedz.", "Pon.", "Wt.", "Śr.", "Czw.", "Piąt.", "Sob."],
|
||||
daysMin: ["Ndz.", "Pn.", "Wt.", "Śr.", "Czw.", "Pt.", "Sob."],
|
||||
months: ["Styczeń", "Luty", "Marzec", "Kwiecień", "Maj", "Czerwiec", "Lipiec", "Sierpień", "Wrzesień", "Październik", "Listopad", "Grudzień"],
|
||||
monthsShort: ["Sty.", "Lut.", "Mar.", "Kwi.", "Maj", "Cze.", "Lip.", "Sie.", "Wrz.", "Paź.", "Lis.", "Gru."],
|
||||
today: "Dzisiaj",
|
||||
weekStart: 1,
|
||||
clear: "Wyczyść",
|
||||
format: "dd.mm.yyyy"
|
||||
}
|
||||
};
|
17
node_modules/flowbite-datepicker/js/i18n/locales/pt-BR.js
generated
vendored
Normal file
17
node_modules/flowbite-datepicker/js/i18n/locales/pt-BR.js
generated
vendored
Normal file
@ -0,0 +1,17 @@
|
||||
/**
|
||||
* Brazilian translation for bootstrap-datepicker
|
||||
* Cauan Cabral <cauan@radig.com.br>
|
||||
*/
|
||||
export default {
|
||||
'pt-BR': {
|
||||
days: ["Domingo", "Segunda", "Terça", "Quarta", "Quinta", "Sexta", "Sábado"],
|
||||
daysShort: ["Dom", "Seg", "Ter", "Qua", "Qui", "Sex", "Sáb"],
|
||||
daysMin: ["Do", "Se", "Te", "Qu", "Qu", "Se", "Sa"],
|
||||
months: ["Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro"],
|
||||
monthsShort: ["Jan", "Fev", "Mar", "Abr", "Mai", "Jun", "Jul", "Ago", "Set", "Out", "Nov", "Dez"],
|
||||
today: "Hoje",
|
||||
monthsTitle: "Meses",
|
||||
clear: "Limpar",
|
||||
format: "dd/mm/yyyy"
|
||||
}
|
||||
};
|
18
node_modules/flowbite-datepicker/js/i18n/locales/pt.js
generated
vendored
Normal file
18
node_modules/flowbite-datepicker/js/i18n/locales/pt.js
generated
vendored
Normal file
@ -0,0 +1,18 @@
|
||||
/**
|
||||
* Portuguese translation for bootstrap-datepicker
|
||||
* Original code: Cauan Cabral <cauan@radig.com.br>
|
||||
* Tiago Melo <tiago.blackcode@gmail.com>
|
||||
*/
|
||||
export default {
|
||||
pt: {
|
||||
days: ["Domingo", "Segunda", "Terça", "Quarta", "Quinta", "Sexta", "Sábado"],
|
||||
daysShort: ["Dom", "Seg", "Ter", "Qua", "Qui", "Sex", "Sáb"],
|
||||
daysMin: ["Do", "Se", "Te", "Qu", "Qu", "Se", "Sa"],
|
||||
months: ["Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro"],
|
||||
monthsShort: ["Jan", "Fev", "Mar", "Abr", "Mai", "Jun", "Jul", "Ago", "Set", "Out", "Nov", "Dez"],
|
||||
today: "Hoje",
|
||||
monthsTitle: "Meses",
|
||||
clear: "Limpar",
|
||||
format: "dd/mm/yyyy"
|
||||
}
|
||||
};
|
17
node_modules/flowbite-datepicker/js/i18n/locales/ro.js
generated
vendored
Normal file
17
node_modules/flowbite-datepicker/js/i18n/locales/ro.js
generated
vendored
Normal file
@ -0,0 +1,17 @@
|
||||
/**
|
||||
* Romanian translation for bootstrap-datepicker
|
||||
* Cristian Vasile <cristi.mie@gmail.com>
|
||||
*/
|
||||
export default {
|
||||
ro: {
|
||||
days: ["Duminică", "Luni", "Marţi", "Miercuri", "Joi", "Vineri", "Sâmbătă"],
|
||||
daysShort: ["Dum", "Lun", "Mar", "Mie", "Joi", "Vin", "Sâm"],
|
||||
daysMin: ["Du", "Lu", "Ma", "Mi", "Jo", "Vi", "Sâ"],
|
||||
months: ["Ianuarie", "Februarie", "Martie", "Aprilie", "Mai", "Iunie", "Iulie", "August", "Septembrie", "Octombrie", "Noiembrie", "Decembrie"],
|
||||
monthsShort: ["Ian", "Feb", "Mar", "Apr", "Mai", "Iun", "Iul", "Aug", "Sep", "Oct", "Nov", "Dec"],
|
||||
today: "Astăzi",
|
||||
clear: "Șterge",
|
||||
weekStart: 1,
|
||||
format: "dd/mm/yyyy"
|
||||
}
|
||||
};
|
18
node_modules/flowbite-datepicker/js/i18n/locales/ru.js
generated
vendored
Normal file
18
node_modules/flowbite-datepicker/js/i18n/locales/ru.js
generated
vendored
Normal file
@ -0,0 +1,18 @@
|
||||
/**
|
||||
* Russian translation for bootstrap-datepicker
|
||||
* Victor Taranenko <darwin@snowdale.com>
|
||||
*/
|
||||
export default {
|
||||
ru: {
|
||||
days: ["Воскресенье", "Понедельник", "Вторник", "Среда", "Четверг", "Пятница", "Суббота"],
|
||||
daysShort: ["Вск", "Пнд", "Втр", "Срд", "Чтв", "Птн", "Суб"],
|
||||
daysMin: ["Вс", "Пн", "Вт", "Ср", "Чт", "Пт", "Сб"],
|
||||
months: ["Январь", "Февраль", "Март", "Апрель", "Май", "Июнь", "Июль", "Август", "Сентябрь", "Октябрь", "Ноябрь", "Декабрь"],
|
||||
monthsShort: ["Янв", "Фев", "Мар", "Апр", "Май", "Июн", "Июл", "Авг", "Сен", "Окт", "Ноя", "Дек"],
|
||||
today: "Сегодня",
|
||||
clear: "Очистить",
|
||||
format: "dd.mm.yyyy",
|
||||
weekStart: 1,
|
||||
monthsTitle: 'Месяцы'
|
||||
}
|
||||
};
|
18
node_modules/flowbite-datepicker/js/i18n/locales/si.js
generated
vendored
Normal file
18
node_modules/flowbite-datepicker/js/i18n/locales/si.js
generated
vendored
Normal file
@ -0,0 +1,18 @@
|
||||
/**
|
||||
* Sinhala translation for bootstrap-datepicker
|
||||
* Chanaka Fernando <chanaka.fernando@hotmail.com>
|
||||
*/
|
||||
export default {
|
||||
si: {
|
||||
days: ["ඉරිදා", "සඳුදා", "අඟහරුවාදා", "බදාදා", "බ්රහස්පතින්දා", "සිකුරාදා", "සෙනසුරාදා"],
|
||||
daysShort: ["ඉරි", "සඳු", "අඟ", "බදා", "බ්රහ", "සිකු", "සෙන"],
|
||||
daysMin: ["ඉ", "ස", "අ", "බ", "බ්ර", "සි", "සෙ"],
|
||||
months: ["ජනවාරි", "පෙබරවාරි", "මාර්තු", "අප්රේල්", "මැයි", "ජුනි", "ජූලි", "අගෝස්තු", "සැප්තැම්බර්", "ඔක්තෝබර්", "නොවැම්බර්", "දෙසැම්බර්"],
|
||||
monthsShort: ["ජන", "පෙබ", "මාර්", "අප්රේ", "මැයි", "ජුනි", "ජූලි", "අගෝ", "සැප්", "ඔක්", "නොවැ", "දෙසැ"],
|
||||
today: "අද",
|
||||
monthsTitle: "මාස",
|
||||
clear: "මකන්න",
|
||||
weekStart: 0,
|
||||
format: "yyyy-mm-dd"
|
||||
}
|
||||
};
|
18
node_modules/flowbite-datepicker/js/i18n/locales/sk.js
generated
vendored
Normal file
18
node_modules/flowbite-datepicker/js/i18n/locales/sk.js
generated
vendored
Normal file
@ -0,0 +1,18 @@
|
||||
/**
|
||||
* Slovak translation for bootstrap-datepicker
|
||||
* Marek Lichtner <marek@licht.sk>
|
||||
* Fixes by Michal Remiš <michal.remis@gmail.com>
|
||||
*/
|
||||
export default {
|
||||
sk: {
|
||||
days: ["Nedeľa", "Pondelok", "Utorok", "Streda", "Štvrtok", "Piatok", "Sobota"],
|
||||
daysShort: ["Ned", "Pon", "Uto", "Str", "Štv", "Pia", "Sob"],
|
||||
daysMin: ["Ne", "Po", "Ut", "St", "Št", "Pia", "So"],
|
||||
months: ["Január", "Február", "Marec", "Apríl", "Máj", "Jún", "Júl", "August", "September", "Október", "November", "December"],
|
||||
monthsShort: ["Jan", "Feb", "Mar", "Apr", "Máj", "Jún", "Júl", "Aug", "Sep", "Okt", "Nov", "Dec"],
|
||||
today: "Dnes",
|
||||
clear: "Vymazať",
|
||||
weekStart: 1,
|
||||
format: "d.m.yyyy"
|
||||
}
|
||||
};
|
15
node_modules/flowbite-datepicker/js/i18n/locales/sl.js
generated
vendored
Normal file
15
node_modules/flowbite-datepicker/js/i18n/locales/sl.js
generated
vendored
Normal file
@ -0,0 +1,15 @@
|
||||
/**
|
||||
* Slovene translation for bootstrap-datepicker
|
||||
* Gregor Rudolf <gregor.rudolf@gmail.com>
|
||||
*/
|
||||
export default {
|
||||
sl: {
|
||||
days: ["Nedelja", "Ponedeljek", "Torek", "Sreda", "Četrtek", "Petek", "Sobota"],
|
||||
daysShort: ["Ned", "Pon", "Tor", "Sre", "Čet", "Pet", "Sob"],
|
||||
daysMin: ["Ne", "Po", "To", "Sr", "Če", "Pe", "So"],
|
||||
months: ["Januar", "Februar", "Marec", "April", "Maj", "Junij", "Julij", "Avgust", "September", "Oktober", "November", "December"],
|
||||
monthsShort: ["Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Avg", "Sep", "Okt", "Nov", "Dec"],
|
||||
today: "Danes",
|
||||
weekStart: 1
|
||||
}
|
||||
};
|
18
node_modules/flowbite-datepicker/js/i18n/locales/sq.js
generated
vendored
Normal file
18
node_modules/flowbite-datepicker/js/i18n/locales/sq.js
generated
vendored
Normal file
@ -0,0 +1,18 @@
|
||||
/**
|
||||
* Albanian translation for bootstrap-datepicker
|
||||
* Tomor Pupovci <https: //www.github.com/ttomor>
|
||||
*/
|
||||
export default {
|
||||
sq: {
|
||||
days: ["E Diel", "E Hënë", "E Martē", "E Mërkurë", "E Enjte", "E Premte", "E Shtunë"],
|
||||
daysShort: ["Die", "Hën", "Mar", "Mër", "Enj", "Pre", "Shtu"],
|
||||
daysMin: ["Di", "Hë", "Ma", "Më", "En", "Pr", "Sht"],
|
||||
months: ["Janar", "Shkurt", "Mars", "Prill", "Maj", "Qershor", "Korrik", "Gusht", "Shtator", "Tetor", "Nëntor", "Dhjetor"],
|
||||
monthsShort: ["Jan", "Shk", "Mar", "Pri", "Maj", "Qer", "Korr", "Gu", "Sht", "Tet", "Nën", "Dhjet"],
|
||||
monthsTitle: "Muaj",
|
||||
today: "Sot",
|
||||
weekStart: 1,
|
||||
format: "dd/mm/yyyy",
|
||||
clear: "Pastro"
|
||||
}
|
||||
};
|
16
node_modules/flowbite-datepicker/js/i18n/locales/sr-latn.js
generated
vendored
Normal file
16
node_modules/flowbite-datepicker/js/i18n/locales/sr-latn.js
generated
vendored
Normal file
@ -0,0 +1,16 @@
|
||||
/**
|
||||
* Serbian latin translation for bootstrap-datepicker
|
||||
* Bojan Milosavlević <milboj@gmail.com>
|
||||
*/
|
||||
export default {
|
||||
'sr-latn': {
|
||||
days: ["Nedelja","Ponedeljak", "Utorak", "Sreda", "Četvrtak", "Petak", "Subota"],
|
||||
daysShort: ["Ned", "Pon", "Uto", "Sre", "Čet", "Pet", "Sub"],
|
||||
daysMin: ["N", "Po", "U", "Sr", "Č", "Pe", "Su"],
|
||||
months: ["Januar", "Februar", "Mart", "April", "Maj", "Jun", "Jul", "Avgust", "Septembar", "Oktobar", "Novembar", "Decembar"],
|
||||
monthsShort: ["Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Avg", "Sep", "Okt", "Nov", "Dec"],
|
||||
today: "Danas",
|
||||
weekStart: 1,
|
||||
format: "dd.mm.yyyy"
|
||||
}
|
||||
};
|
16
node_modules/flowbite-datepicker/js/i18n/locales/sr.js
generated
vendored
Normal file
16
node_modules/flowbite-datepicker/js/i18n/locales/sr.js
generated
vendored
Normal file
@ -0,0 +1,16 @@
|
||||
/**
|
||||
* Serbian cyrillic translation for bootstrap-datepicker
|
||||
* Bojan Milosavlević <milboj@gmail.com>
|
||||
*/
|
||||
export default {
|
||||
sr: {
|
||||
days: ["Недеља","Понедељак", "Уторак", "Среда", "Четвртак", "Петак", "Субота"],
|
||||
daysShort: ["Нед", "Пон", "Уто", "Сре", "Чет", "Пет", "Суб"],
|
||||
daysMin: ["Н", "По", "У", "Ср", "Ч", "Пе", "Су"],
|
||||
months: ["Јануар", "Фебруар", "Март", "Април", "Мај", "Јун", "Јул", "Август", "Септембар", "Октобар", "Новембар", "Децембар"],
|
||||
monthsShort: ["Јан", "Феб", "Мар", "Апр", "Мај", "Јун", "Јул", "Авг", "Сеп", "Окт", "Нов", "Дец"],
|
||||
today: "Данас",
|
||||
weekStart: 1,
|
||||
format: "dd.mm.yyyy"
|
||||
}
|
||||
};
|
17
node_modules/flowbite-datepicker/js/i18n/locales/sv.js
generated
vendored
Normal file
17
node_modules/flowbite-datepicker/js/i18n/locales/sv.js
generated
vendored
Normal file
@ -0,0 +1,17 @@
|
||||
/**
|
||||
* Swedish translation for bootstrap-datepicker
|
||||
* Patrik Ragnarsson <patrik@starkast.net>
|
||||
*/
|
||||
export default {
|
||||
sv: {
|
||||
days: ["söndag", "måndag", "tisdag", "onsdag", "torsdag", "fredag", "lördag"],
|
||||
daysShort: ["sön", "mån", "tis", "ons", "tor", "fre", "lör"],
|
||||
daysMin: ["sö", "må", "ti", "on", "to", "fr", "lö"],
|
||||
months: ["januari", "februari", "mars", "april", "maj", "juni", "juli", "augusti", "september", "oktober", "november", "december"],
|
||||
monthsShort: ["jan", "feb", "mar", "apr", "maj", "jun", "jul", "aug", "sep", "okt", "nov", "dec"],
|
||||
today: "Idag",
|
||||
format: "yyyy-mm-dd",
|
||||
weekStart: 1,
|
||||
clear: "Rensa"
|
||||
}
|
||||
};
|
15
node_modules/flowbite-datepicker/js/i18n/locales/sw.js
generated
vendored
Normal file
15
node_modules/flowbite-datepicker/js/i18n/locales/sw.js
generated
vendored
Normal file
@ -0,0 +1,15 @@
|
||||
/**
|
||||
* Swahili translation for bootstrap-datepicker
|
||||
* Edwin Mugendi <https: //github.com/edwinmugendi>
|
||||
* Source: http: //scriptsource.org/cms/scripts/page.php?item_id=entry_detail&uid=xnfaqyzcku
|
||||
*/
|
||||
export default {
|
||||
sw: {
|
||||
days: ["Jumapili", "Jumatatu", "Jumanne", "Jumatano", "Alhamisi", "Ijumaa", "Jumamosi"],
|
||||
daysShort: ["J2", "J3", "J4", "J5", "Alh", "Ij", "J1"],
|
||||
daysMin: ["2", "3", "4", "5", "A", "I", "1"],
|
||||
months: ["Januari", "Februari", "Machi", "Aprili", "Mei", "Juni", "Julai", "Agosti", "Septemba", "Oktoba", "Novemba", "Desemba"],
|
||||
monthsShort: ["Jan", "Feb", "Mac", "Apr", "Mei", "Jun", "Jul", "Ago", "Sep", "Okt", "Nov", "Des"],
|
||||
today: "Leo"
|
||||
}
|
||||
};
|
18
node_modules/flowbite-datepicker/js/i18n/locales/ta.js
generated
vendored
Normal file
18
node_modules/flowbite-datepicker/js/i18n/locales/ta.js
generated
vendored
Normal file
@ -0,0 +1,18 @@
|
||||
/**
|
||||
* Tamil translation for bootstrap-datepicker
|
||||
* Abubacker Siddik A <abuabdul86@hotmail.com>
|
||||
*/
|
||||
export default {
|
||||
ta: {
|
||||
days: ["ஞாயிறு", "திங்கள்", "செவ்வாய்", "புதன்", "வியாழன்", "வெள்ளி", "சனி"],
|
||||
daysShort: ["ஞாயி", "திங்", "செவ்", "புத", "வியா", "வெள்", "சனி"],
|
||||
daysMin: ["ஞா", "தி", "செ", "பு", "வி", "வெ", "ச"],
|
||||
months: ["ஜனவரி", "பிப்ரவரி", "மார்ச்", "ஏப்ரல்", "மே", "ஜூன்", "ஜூலை", "ஆகஸ்டு", "செப்டம்பர்", "அக்டோபர்", "நவம்பர்", "டிசம்பர்"],
|
||||
monthsShort: ["ஜன", "பிப்", "மார்", "ஏப்", "மே", "ஜூன்", "ஜூலை", "ஆக", "செப்", "அக்", "நவ", "டிச"],
|
||||
today: "இன்று",
|
||||
monthsTitle: "மாதங்கள்",
|
||||
clear: "நீக்கு",
|
||||
weekStart: 1,
|
||||
format: "dd/mm/yyyy"
|
||||
}
|
||||
};
|
19
node_modules/flowbite-datepicker/js/i18n/locales/tg.js
generated
vendored
Normal file
19
node_modules/flowbite-datepicker/js/i18n/locales/tg.js
generated
vendored
Normal file
@ -0,0 +1,19 @@
|
||||
/**
|
||||
* Tajik (cyrillic) translation for bootstrap-datepicker
|
||||
* Bakhtiyor Bahritidinov <i@bakhtiyor.tj>
|
||||
* Orif N. Jr. <orif.zade@gmail.com>
|
||||
*/
|
||||
export default {
|
||||
tg: {
|
||||
days: ["Якшанбе", "Душанбе", "Сешанбе", "Чоршанбе", "Панҷшанбе", "Ҷумъа", "Шанбе"],
|
||||
daysShort: ["Яшб", "Дшб", "Сшб", "Чшб", "Пшб", "Ҷум", "Шнб"],
|
||||
daysMin: ["Яш", "Дш", "Сш", "Чш", "Пш", "Ҷм", "Шб"],
|
||||
months: ["Январ", "Феврал", "Март", "Апрел", "Май", "Июн", "Июл", "Август", "Сентябр", "Октябр", "Ноябр", "Декабр"],
|
||||
monthsShort: ["Янв", "Фев", "Мар", "Апр", "Май", "Июн", "Июл", "Авг", "Сен", "Окт", "Ноя", "Дек"],
|
||||
today: "Имрӯз",
|
||||
monthsTitle: "Моҳҳо",
|
||||
clear: "Тоза намудан",
|
||||
weekStart: 1,
|
||||
format: "dd.mm.yyyy"
|
||||
}
|
||||
};
|
14
node_modules/flowbite-datepicker/js/i18n/locales/th.js
generated
vendored
Normal file
14
node_modules/flowbite-datepicker/js/i18n/locales/th.js
generated
vendored
Normal file
@ -0,0 +1,14 @@
|
||||
/**
|
||||
* Thai translation for bootstrap-datepicker
|
||||
* Suchau Jiraprapot <seroz24@gmail.com>
|
||||
*/
|
||||
export default {
|
||||
th: {
|
||||
days: ["อาทิตย์", "จันทร์", "อังคาร", "พุธ", "พฤหัส", "ศุกร์", "เสาร์", "อาทิตย์"],
|
||||
daysShort: ["อา", "จ", "อ", "พ", "พฤ", "ศ", "ส", "อา"],
|
||||
daysMin: ["อา", "จ", "อ", "พ", "พฤ", "ศ", "ส", "อา"],
|
||||
months: ["มกราคม", "กุมภาพันธ์", "มีนาคม", "เมษายน", "พฤษภาคม", "มิถุนายน", "กรกฎาคม", "สิงหาคม", "กันยายน", "ตุลาคม", "พฤศจิกายน", "ธันวาคม"],
|
||||
monthsShort: ["ม.ค.", "ก.พ.", "มี.ค.", "เม.ย.", "พ.ค.", "มิ.ย.", "ก.ค.", "ส.ค.", "ก.ย.", "ต.ค.", "พ.ย.", "ธ.ค."],
|
||||
today: "วันนี้"
|
||||
}
|
||||
};
|
18
node_modules/flowbite-datepicker/js/i18n/locales/tk.js
generated
vendored
Normal file
18
node_modules/flowbite-datepicker/js/i18n/locales/tk.js
generated
vendored
Normal file
@ -0,0 +1,18 @@
|
||||
/**
|
||||
* Turkmen translation for bootstrap-datepicker
|
||||
* N'Bayramberdiyev <nbayramberdiyev@outlook.com>
|
||||
*/
|
||||
export default {
|
||||
tk: {
|
||||
days: ["Ýekşenbe", "Duşenbe", "Sişenbe", "Çarşenbe", "Penşenbe", "Anna", "Şenbe"],
|
||||
daysShort: ["Ýek", "Duş", "Siş", "Çar", "Pen", "Ann", "Şen"],
|
||||
daysMin: ["Ýe", "Du", "Si", "Ça", "Pe", "An", "Şe"],
|
||||
months: ["Ýanwar", "Fewral", "Mart", "Aprel", "Maý", "Iýun", "Iýul", "Awgust", "Sentýabr", "Oktýabr", "Noýabr", "Dekabr"],
|
||||
monthsShort: ["Ýan", "Few", "Mar", "Apr", "Maý", "Iýn", "Iýl", "Awg", "Sen", "Okt", "Noý", "Dek"],
|
||||
today: "Bu gün",
|
||||
monthsTitle: "Aýlar",
|
||||
clear: "Aýyr",
|
||||
weekStart: 1,
|
||||
format: "dd.mm.yyyy"
|
||||
}
|
||||
};
|
17
node_modules/flowbite-datepicker/js/i18n/locales/tr.js
generated
vendored
Normal file
17
node_modules/flowbite-datepicker/js/i18n/locales/tr.js
generated
vendored
Normal file
@ -0,0 +1,17 @@
|
||||
/**
|
||||
* Turkish translation for bootstrap-datepicker
|
||||
* Serkan Algur <kaisercrazy_2@hotmail.com>
|
||||
*/
|
||||
export default {
|
||||
tr: {
|
||||
days: ["Pazar", "Pazartesi", "Salı", "Çarşamba", "Perşembe", "Cuma", "Cumartesi"],
|
||||
daysShort: ["Pz", "Pzt", "Sal", "Çrş", "Prş", "Cu", "Cts"],
|
||||
daysMin: ["Pz", "Pzt", "Sa", "Çr", "Pr", "Cu", "Ct"],
|
||||
months: ["Ocak", "Şubat", "Mart", "Nisan", "Mayıs", "Haziran", "Temmuz", "Ağustos", "Eylül", "Ekim", "Kasım", "Aralık"],
|
||||
monthsShort: ["Oca", "Şub", "Mar", "Nis", "May", "Haz", "Tem", "Ağu", "Eyl", "Eki", "Kas", "Ara"],
|
||||
today: "Bugün",
|
||||
clear: "Temizle",
|
||||
weekStart: 1,
|
||||
format: "dd.mm.yyyy"
|
||||
}
|
||||
};
|
17
node_modules/flowbite-datepicker/js/i18n/locales/uk.js
generated
vendored
Normal file
17
node_modules/flowbite-datepicker/js/i18n/locales/uk.js
generated
vendored
Normal file
@ -0,0 +1,17 @@
|
||||
/**
|
||||
* Ukrainian translation for bootstrap-datepicker
|
||||
* Igor Polynets
|
||||
*/
|
||||
export default {
|
||||
uk: {
|
||||
days: ["Неділя", "Понеділок", "Вівторок", "Середа", "Четвер", "П'ятниця", "Субота"],
|
||||
daysShort: ["Нед", "Пнд", "Втр", "Срд", "Чтв", "Птн", "Суб"],
|
||||
daysMin: ["Нд", "Пн", "Вт", "Ср", "Чт", "Пт", "Сб"],
|
||||
months: ["Cічень", "Лютий", "Березень", "Квітень", "Травень", "Червень", "Липень", "Серпень", "Вересень", "Жовтень", "Листопад", "Грудень"],
|
||||
monthsShort: ["Січ", "Лют", "Бер", "Кві", "Тра", "Чер", "Лип", "Сер", "Вер", "Жов", "Лис", "Гру"],
|
||||
today: "Сьогодні",
|
||||
clear: "Очистити",
|
||||
format: "dd.mm.yyyy",
|
||||
weekStart: 1
|
||||
}
|
||||
};
|
18
node_modules/flowbite-datepicker/js/i18n/locales/uz-cyrl.js
generated
vendored
Normal file
18
node_modules/flowbite-datepicker/js/i18n/locales/uz-cyrl.js
generated
vendored
Normal file
@ -0,0 +1,18 @@
|
||||
/**
|
||||
* Uzbek cyrillic translation for bootstrap-datepicker
|
||||
* Kakhramonov Javlonbek <kakjavlon@gmail.com>
|
||||
*/
|
||||
export default {
|
||||
'uz-cyrl': {
|
||||
days: ["Якшанба", "Душанба", "Сешанба", "Чоршанба", "Пайшанба", "Жума", "Шанба"],
|
||||
daysShort: ["Якш", "Ду", "Се", "Чор", "Пай", "Жу", "Ша"],
|
||||
daysMin: ["Як", "Ду", "Се", "Чо", "Па", "Жу", "Ша"],
|
||||
months: ["Январь","Февраль","Март","Апрель","Май","Июнь","Июль","Август","Сентябрь","Октябрь","Ноябрь","Декабрь"],
|
||||
monthsShort: ["Янв","Фев","Мар","Апр","Май","Июн","Июл","Авг","Сен","Окт","Ноя","Дек"],
|
||||
today: "Бугун",
|
||||
clear: "Ўчириш",
|
||||
format: "dd.mm.yyyy",
|
||||
weekStart: 1,
|
||||
monthsTitle: 'Ойлар'
|
||||
}
|
||||
};
|
18
node_modules/flowbite-datepicker/js/i18n/locales/uz-latn.js
generated
vendored
Normal file
18
node_modules/flowbite-datepicker/js/i18n/locales/uz-latn.js
generated
vendored
Normal file
@ -0,0 +1,18 @@
|
||||
/**
|
||||
* Uzbek latin translation for bootstrap-datepicker
|
||||
* Kakhramonov Javlonbek <kakjavlon@gmail.com>
|
||||
*/
|
||||
export default {
|
||||
'uz-latn': {
|
||||
days: ["Yakshanba", "Dushanba", "Seshanba", "Chorshanba", "Payshanba", "Juma", "Shanba"],
|
||||
daysShort: ["Yak", "Du", "Se", "Chor", "Pay", "Ju", "Sha"],
|
||||
daysMin: ["Ya", "Du", "Se", "Cho", "Pa", "Ju", "Sha"],
|
||||
months: ["Yanvar", "Fevral", "Mart", "Aprel", "May", "Iyun", "Iyul", "Avgust", "Sentabr", "Oktabr", "Noyabr", "Dekabr"],
|
||||
monthsShort: ["Yan", "Fev", "Mar", "Apr", "May", "Iyn", "Iyl", "Avg", "Sen", "Okt", "Noy", "Dek"],
|
||||
today: "Bugun",
|
||||
clear: "O'chirish",
|
||||
format: "dd.mm.yyyy",
|
||||
weekStart: 1,
|
||||
monthsTitle: 'Oylar'
|
||||
}
|
||||
};
|
16
node_modules/flowbite-datepicker/js/i18n/locales/vi.js
generated
vendored
Normal file
16
node_modules/flowbite-datepicker/js/i18n/locales/vi.js
generated
vendored
Normal file
@ -0,0 +1,16 @@
|
||||
/**
|
||||
* Vietnamese translation for bootstrap-datepicker
|
||||
* An Vo <https: //github.com/anvoz/>
|
||||
*/
|
||||
export default {
|
||||
vi: {
|
||||
days: ["Chủ nhật", "Thứ hai", "Thứ ba", "Thứ tư", "Thứ năm", "Thứ sáu", "Thứ bảy"],
|
||||
daysShort: ["CN", "Thứ 2", "Thứ 3", "Thứ 4", "Thứ 5", "Thứ 6", "Thứ 7"],
|
||||
daysMin: ["CN", "T2", "T3", "T4", "T5", "T6", "T7"],
|
||||
months: ["Tháng 1", "Tháng 2", "Tháng 3", "Tháng 4", "Tháng 5", "Tháng 6", "Tháng 7", "Tháng 8", "Tháng 9", "Tháng 10", "Tháng 11", "Tháng 12"],
|
||||
monthsShort: ["Th1", "Th2", "Th3", "Th4", "Th5", "Th6", "Th7", "Th8", "Th9", "Th10", "Th11", "Th12"],
|
||||
today: "Hôm nay",
|
||||
clear: "Xóa",
|
||||
format: "dd/mm/yyyy"
|
||||
}
|
||||
};
|
19
node_modules/flowbite-datepicker/js/i18n/locales/zh-CN.js
generated
vendored
Normal file
19
node_modules/flowbite-datepicker/js/i18n/locales/zh-CN.js
generated
vendored
Normal file
@ -0,0 +1,19 @@
|
||||
/**
|
||||
* Simplified Chinese translation for bootstrap-datepicker
|
||||
* Yuan Cheung <advanimal@gmail.com>
|
||||
*/
|
||||
export default {
|
||||
'zh-CN': {
|
||||
days: ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"],
|
||||
daysShort: ["周日", "周一", "周二", "周三", "周四", "周五", "周六"],
|
||||
daysMin: ["日", "一", "二", "三", "四", "五", "六"],
|
||||
months: ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"],
|
||||
monthsShort: ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"],
|
||||
today: "今天",
|
||||
monthsTitle: "选择月份",
|
||||
clear: "清除",
|
||||
format: "yyyy-mm-dd",
|
||||
titleFormat: "y年mm月",
|
||||
weekStart: 1
|
||||
}
|
||||
};
|
18
node_modules/flowbite-datepicker/js/i18n/locales/zh-TW.js
generated
vendored
Normal file
18
node_modules/flowbite-datepicker/js/i18n/locales/zh-TW.js
generated
vendored
Normal file
@ -0,0 +1,18 @@
|
||||
/**
|
||||
* Traditional Chinese translation for bootstrap-datepicker
|
||||
* Rung-Sheng Jang <daniel@i-trend.co.cc>
|
||||
* FrankWu <frankwu100@gmail.com> Fix more appropriate use of Traditional Chinese habit
|
||||
*/
|
||||
export default {
|
||||
'zh-TW': {
|
||||
days: ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"],
|
||||
daysShort: ["週日", "週一", "週二", "週三", "週四", "週五", "週六"],
|
||||
daysMin: ["日", "一", "二", "三", "四", "五", "六"],
|
||||
months: ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"],
|
||||
monthsShort: ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"],
|
||||
today: "今天",
|
||||
format: "yyyy年mm月dd日",
|
||||
weekStart: 1,
|
||||
clear: "清除"
|
||||
}
|
||||
};
|
185
node_modules/flowbite-datepicker/js/lib/date-format.js
generated
vendored
Normal file
185
node_modules/flowbite-datepicker/js/lib/date-format.js
generated
vendored
Normal file
@ -0,0 +1,185 @@
|
||||
import {stripTime, today} from './date.js';
|
||||
import {lastItemOf} from './utils.js';
|
||||
|
||||
// pattern for format parts
|
||||
export const reFormatTokens = /dd?|DD?|mm?|MM?|yy?(?:yy)?/;
|
||||
// pattern for non date parts
|
||||
export const reNonDateParts = /[\s!-/:-@[-`{-~年月日]+/;
|
||||
// cache for persed formats
|
||||
let knownFormats = {};
|
||||
// parse funtions for date parts
|
||||
const parseFns = {
|
||||
y(date, year) {
|
||||
return new Date(date).setFullYear(parseInt(year, 10));
|
||||
},
|
||||
m(date, month, locale) {
|
||||
const newDate = new Date(date);
|
||||
let monthIndex = parseInt(month, 10) - 1;
|
||||
|
||||
if (isNaN(monthIndex)) {
|
||||
if (!month) {
|
||||
return NaN;
|
||||
}
|
||||
|
||||
const monthName = month.toLowerCase();
|
||||
const compareNames = name => name.toLowerCase().startsWith(monthName);
|
||||
// compare with both short and full names because some locales have periods
|
||||
// in the short names (not equal to the first X letters of the full names)
|
||||
monthIndex = locale.monthsShort.findIndex(compareNames);
|
||||
if (monthIndex < 0) {
|
||||
monthIndex = locale.months.findIndex(compareNames);
|
||||
}
|
||||
if (monthIndex < 0) {
|
||||
return NaN;
|
||||
}
|
||||
}
|
||||
|
||||
newDate.setMonth(monthIndex);
|
||||
return newDate.getMonth() !== normalizeMonth(monthIndex)
|
||||
? newDate.setDate(0)
|
||||
: newDate.getTime();
|
||||
},
|
||||
d(date, day) {
|
||||
return new Date(date).setDate(parseInt(day, 10));
|
||||
},
|
||||
};
|
||||
// format functions for date parts
|
||||
const formatFns = {
|
||||
d(date) {
|
||||
return date.getDate();
|
||||
},
|
||||
dd(date) {
|
||||
return padZero(date.getDate(), 2);
|
||||
},
|
||||
D(date, locale) {
|
||||
return locale.daysShort[date.getDay()];
|
||||
},
|
||||
DD(date, locale) {
|
||||
return locale.days[date.getDay()];
|
||||
},
|
||||
m(date) {
|
||||
return date.getMonth() + 1;
|
||||
},
|
||||
mm(date) {
|
||||
return padZero(date.getMonth() + 1, 2);
|
||||
},
|
||||
M(date, locale) {
|
||||
return locale.monthsShort[date.getMonth()];
|
||||
},
|
||||
MM(date, locale) {
|
||||
return locale.months[date.getMonth()];
|
||||
},
|
||||
y(date) {
|
||||
return date.getFullYear();
|
||||
},
|
||||
yy(date) {
|
||||
return padZero(date.getFullYear(), 2).slice(-2);
|
||||
},
|
||||
yyyy(date) {
|
||||
return padZero(date.getFullYear(), 4);
|
||||
},
|
||||
};
|
||||
|
||||
// get month index in normal range (0 - 11) from any number
|
||||
function normalizeMonth(monthIndex) {
|
||||
return monthIndex > -1 ? monthIndex % 12 : normalizeMonth(monthIndex + 12);
|
||||
}
|
||||
|
||||
function padZero(num, length) {
|
||||
return num.toString().padStart(length, '0');
|
||||
}
|
||||
|
||||
function parseFormatString(format) {
|
||||
if (typeof format !== 'string') {
|
||||
throw new Error("Invalid date format.");
|
||||
}
|
||||
if (format in knownFormats) {
|
||||
return knownFormats[format];
|
||||
}
|
||||
|
||||
// sprit the format string into parts and seprators
|
||||
const separators = format.split(reFormatTokens);
|
||||
const parts = format.match(new RegExp(reFormatTokens, 'g'));
|
||||
if (separators.length === 0 || !parts) {
|
||||
throw new Error("Invalid date format.");
|
||||
}
|
||||
|
||||
// collect format functions used in the format
|
||||
const partFormatters = parts.map(token => formatFns[token]);
|
||||
|
||||
// collect parse function keys used in the format
|
||||
// iterate over parseFns' keys in order to keep the order of the keys.
|
||||
const partParserKeys = Object.keys(parseFns).reduce((keys, key) => {
|
||||
const token = parts.find(part => part[0] !== 'D' && part[0].toLowerCase() === key);
|
||||
if (token) {
|
||||
keys.push(key);
|
||||
}
|
||||
return keys;
|
||||
}, []);
|
||||
|
||||
return knownFormats[format] = {
|
||||
parser(dateStr, locale) {
|
||||
const dateParts = dateStr.split(reNonDateParts).reduce((dtParts, part, index) => {
|
||||
if (part.length > 0 && parts[index]) {
|
||||
const token = parts[index][0];
|
||||
if (token === 'M') {
|
||||
dtParts.m = part;
|
||||
} else if (token !== 'D') {
|
||||
dtParts[token] = part;
|
||||
}
|
||||
}
|
||||
return dtParts;
|
||||
}, {});
|
||||
|
||||
// iterate over partParserkeys so that the parsing is made in the oder
|
||||
// of year, month and day to prevent the day parser from correcting last
|
||||
// day of month wrongly
|
||||
return partParserKeys.reduce((origDate, key) => {
|
||||
const newDate = parseFns[key](origDate, dateParts[key], locale);
|
||||
// ingnore the part failed to parse
|
||||
return isNaN(newDate) ? origDate : newDate;
|
||||
}, today());
|
||||
},
|
||||
formatter(date, locale) {
|
||||
let dateStr = partFormatters.reduce((str, fn, index) => {
|
||||
return str += `${separators[index]}${fn(date, locale)}`;
|
||||
}, '');
|
||||
// separators' length is always parts' length + 1,
|
||||
return dateStr += lastItemOf(separators);
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
export function parseDate(dateStr, format, locale) {
|
||||
if (dateStr instanceof Date || typeof dateStr === 'number') {
|
||||
const date = stripTime(dateStr);
|
||||
return isNaN(date) ? undefined : date;
|
||||
}
|
||||
if (!dateStr) {
|
||||
return undefined;
|
||||
}
|
||||
if (dateStr === 'today') {
|
||||
return today();
|
||||
}
|
||||
|
||||
if (format && format.toValue) {
|
||||
const date = format.toValue(dateStr, format, locale);
|
||||
return isNaN(date) ? undefined : stripTime(date);
|
||||
}
|
||||
|
||||
return parseFormatString(format).parser(dateStr, locale);
|
||||
}
|
||||
|
||||
export function formatDate(date, format, locale) {
|
||||
if (isNaN(date) || (!date && date !== 0)) {
|
||||
return '';
|
||||
}
|
||||
|
||||
const dateObj = typeof date === 'number' ? new Date(date) : date;
|
||||
|
||||
if (format.toDisplay) {
|
||||
return format.toDisplay(dateObj, format, locale);
|
||||
}
|
||||
|
||||
return parseFormatString(format).formatter(dateObj, locale);
|
||||
}
|
82
node_modules/flowbite-datepicker/js/lib/date.js
generated
vendored
Normal file
82
node_modules/flowbite-datepicker/js/lib/date.js
generated
vendored
Normal file
@ -0,0 +1,82 @@
|
||||
export function stripTime(timeValue) {
|
||||
return new Date(timeValue).setHours(0, 0, 0, 0);
|
||||
}
|
||||
|
||||
export function today() {
|
||||
return new Date().setHours(0, 0, 0, 0);
|
||||
}
|
||||
|
||||
// Get the time value of the start of given date or year, month and day
|
||||
export function dateValue(...args) {
|
||||
switch (args.length) {
|
||||
case 0:
|
||||
return today();
|
||||
case 1:
|
||||
return stripTime(args[0]);
|
||||
}
|
||||
|
||||
// use setFullYear() to keep 2-digit year from being mapped to 1900-1999
|
||||
const newDate = new Date(0);
|
||||
newDate.setFullYear(...args);
|
||||
return newDate.setHours(0, 0, 0, 0);
|
||||
}
|
||||
|
||||
export function addDays(date, amount) {
|
||||
const newDate = new Date(date);
|
||||
return newDate.setDate(newDate.getDate() + amount);
|
||||
}
|
||||
|
||||
export function addWeeks(date, amount) {
|
||||
return addDays(date, amount * 7);
|
||||
}
|
||||
|
||||
export function addMonths(date, amount) {
|
||||
// If the day of the date is not in the new month, the last day of the new
|
||||
// month will be returned. e.g. Jan 31 + 1 month → Feb 28 (not Mar 03)
|
||||
const newDate = new Date(date);
|
||||
const monthsToSet = newDate.getMonth() + amount;
|
||||
let expectedMonth = monthsToSet % 12;
|
||||
if (expectedMonth < 0) {
|
||||
expectedMonth += 12;
|
||||
}
|
||||
|
||||
const time = newDate.setMonth(monthsToSet);
|
||||
return newDate.getMonth() !== expectedMonth ? newDate.setDate(0) : time;
|
||||
}
|
||||
|
||||
export function addYears(date, amount) {
|
||||
// If the date is Feb 29 and the new year is not a leap year, Feb 28 of the
|
||||
// new year will be returned.
|
||||
const newDate = new Date(date);
|
||||
const expectedMonth = newDate.getMonth();
|
||||
const time = newDate.setFullYear(newDate.getFullYear() + amount);
|
||||
return expectedMonth === 1 && newDate.getMonth() === 2 ? newDate.setDate(0) : time;
|
||||
}
|
||||
|
||||
// Calculate the distance bettwen 2 days of the week
|
||||
function dayDiff(day, from) {
|
||||
return (day - from + 7) % 7;
|
||||
}
|
||||
|
||||
// Get the date of the specified day of the week of given base date
|
||||
export function dayOfTheWeekOf(baseDate, dayOfWeek, weekStart = 0) {
|
||||
const baseDay = new Date(baseDate).getDay();
|
||||
return addDays(baseDate, dayDiff(dayOfWeek, weekStart) - dayDiff(baseDay, weekStart));
|
||||
}
|
||||
|
||||
// Get the ISO week of a date
|
||||
export function getWeek(date) {
|
||||
// start of ISO week is Monday
|
||||
const thuOfTheWeek = dayOfTheWeekOf(date, 4, 1);
|
||||
// 1st week == the week where the 4th of January is in
|
||||
const firstThu = dayOfTheWeekOf(new Date(thuOfTheWeek).setMonth(0, 4), 4, 1);
|
||||
return Math.round((thuOfTheWeek - firstThu) / 604800000) + 1;
|
||||
}
|
||||
|
||||
// Get the start year of the period of years that includes given date
|
||||
// years: length of the year period
|
||||
export function startOfYearPeriod(date, years) {
|
||||
/* @see https://en.wikipedia.org/wiki/Year_zero#ISO_8601 */
|
||||
const year = new Date(date).getFullYear();
|
||||
return Math.floor(year / years) * years;
|
||||
}
|
55
node_modules/flowbite-datepicker/js/lib/dom.js
generated
vendored
Normal file
55
node_modules/flowbite-datepicker/js/lib/dom.js
generated
vendored
Normal file
@ -0,0 +1,55 @@
|
||||
let range = null;
|
||||
|
||||
export function parseHTML(html) {
|
||||
if (range == null) { range = document.createRange() }
|
||||
return range.createContextualFragment(html);
|
||||
}
|
||||
|
||||
// equivalent to jQuery's :visble
|
||||
export function isVisible(el) {
|
||||
return !!(el.offsetWidth || el.offsetHeight || el.getClientRects().length);
|
||||
}
|
||||
|
||||
export function hideElement(el) {
|
||||
if (el.style.display === 'none') {
|
||||
return;
|
||||
}
|
||||
// back up the existing display setting in data-style-display
|
||||
if (el.style.display) {
|
||||
el.dataset.styleDisplay = el.style.display;
|
||||
}
|
||||
el.style.display = 'none';
|
||||
}
|
||||
|
||||
export function showElement(el) {
|
||||
if (el.style.display !== 'none') {
|
||||
return;
|
||||
}
|
||||
if (el.dataset.styleDisplay) {
|
||||
// restore backed-up dispay property
|
||||
el.style.display = el.dataset.styleDisplay;
|
||||
delete el.dataset.styleDisplay;
|
||||
} else {
|
||||
el.style.display = '';
|
||||
}
|
||||
}
|
||||
|
||||
export function emptyChildNodes(el) {
|
||||
if (el.firstChild) {
|
||||
el.removeChild(el.firstChild);
|
||||
emptyChildNodes(el);
|
||||
}
|
||||
}
|
||||
|
||||
export function replaceChildNodes(el, newChildNodes) {
|
||||
emptyChildNodes(el);
|
||||
if (newChildNodes instanceof DocumentFragment) {
|
||||
el.appendChild(newChildNodes);
|
||||
} else if (typeof newChildNodes === 'string') {
|
||||
el.appendChild(parseHTML(newChildNodes));
|
||||
} else if (typeof newChildNodes.forEach === 'function') {
|
||||
newChildNodes.forEach((node) => {
|
||||
el.appendChild(node);
|
||||
});
|
||||
}
|
||||
}
|
68
node_modules/flowbite-datepicker/js/lib/event.js
generated
vendored
Normal file
68
node_modules/flowbite-datepicker/js/lib/event.js
generated
vendored
Normal file
@ -0,0 +1,68 @@
|
||||
const listenerRegistry = new WeakMap();
|
||||
const {addEventListener, removeEventListener} = EventTarget.prototype;
|
||||
|
||||
// Register event listeners to a key object
|
||||
// listeners: array of listener definitions;
|
||||
// - each definition must be a flat array of event target and the arguments
|
||||
// used to call addEventListener() on the target
|
||||
export function registerListeners(keyObj, listeners) {
|
||||
let registered = listenerRegistry.get(keyObj);
|
||||
if (!registered) {
|
||||
registered = [];
|
||||
listenerRegistry.set(keyObj, registered);
|
||||
}
|
||||
listeners.forEach((listener) => {
|
||||
addEventListener.call(...listener);
|
||||
registered.push(listener);
|
||||
});
|
||||
}
|
||||
|
||||
export function unregisterListeners(keyObj) {
|
||||
let listeners = listenerRegistry.get(keyObj);
|
||||
if (!listeners) {
|
||||
return;
|
||||
}
|
||||
listeners.forEach((listener) => {
|
||||
removeEventListener.call(...listener);
|
||||
});
|
||||
listenerRegistry.delete(keyObj);
|
||||
}
|
||||
|
||||
// Event.composedPath() polyfill for Edge
|
||||
// based on https://gist.github.com/kleinfreund/e9787d73776c0e3750dcfcdc89f100ec
|
||||
if (!Event.prototype.composedPath) {
|
||||
const getComposedPath = (node, path = []) => {
|
||||
path.push(node);
|
||||
|
||||
let parent;
|
||||
if (node.parentNode) {
|
||||
parent = node.parentNode;
|
||||
} else if (node.host) { // ShadowRoot
|
||||
parent = node.host;
|
||||
} else if (node.defaultView) { // Document
|
||||
parent = node.defaultView;
|
||||
}
|
||||
return parent ? getComposedPath(parent, path) : path;
|
||||
};
|
||||
|
||||
Event.prototype.composedPath = function () {
|
||||
return getComposedPath(this.target);
|
||||
};
|
||||
}
|
||||
|
||||
function findFromPath(path, criteria, currentTarget, index = 0) {
|
||||
const el = path[index];
|
||||
if (criteria(el)) {
|
||||
return el;
|
||||
} else if (el === currentTarget || !el.parentElement) {
|
||||
// stop when reaching currentTarget or <html>
|
||||
return;
|
||||
}
|
||||
return findFromPath(path, criteria, currentTarget, index + 1);
|
||||
}
|
||||
|
||||
// Search for the actual target of a delegated event
|
||||
export function findElementInEventPath(ev, selector) {
|
||||
const criteria = typeof selector === 'function' ? selector : el => el.matches(selector);
|
||||
return findFromPath(ev.composedPath(), criteria, ev.currentTarget);
|
||||
}
|
61
node_modules/flowbite-datepicker/js/lib/utils.js
generated
vendored
Normal file
61
node_modules/flowbite-datepicker/js/lib/utils.js
generated
vendored
Normal file
@ -0,0 +1,61 @@
|
||||
export function hasProperty(obj, prop) {
|
||||
return Object.prototype.hasOwnProperty.call(obj, prop);
|
||||
}
|
||||
|
||||
export function lastItemOf(arr) {
|
||||
return arr[arr.length - 1];
|
||||
}
|
||||
|
||||
// push only the items not included in the array
|
||||
export function pushUnique(arr, ...items) {
|
||||
items.forEach((item) => {
|
||||
if (arr.includes(item)) {
|
||||
return;
|
||||
}
|
||||
arr.push(item);
|
||||
});
|
||||
return arr;
|
||||
}
|
||||
|
||||
export function stringToArray(str, separator) {
|
||||
// convert empty string to an empty array
|
||||
return str ? str.split(separator) : [];
|
||||
}
|
||||
|
||||
export function isInRange(testVal, min, max) {
|
||||
const minOK = min === undefined || testVal >= min;
|
||||
const maxOK = max === undefined || testVal <= max;
|
||||
return minOK && maxOK;
|
||||
}
|
||||
|
||||
export function limitToRange(val, min, max) {
|
||||
if (val < min) {
|
||||
return min;
|
||||
}
|
||||
if (val > max) {
|
||||
return max;
|
||||
}
|
||||
return val;
|
||||
}
|
||||
|
||||
export function createTagRepeat(tagName, repeat, attributes = {}, index = 0, html = '') {
|
||||
const openTagSrc = Object.keys(attributes).reduce((src, attr) => {
|
||||
let val = attributes[attr];
|
||||
if (typeof val === 'function') {
|
||||
val = val(index);
|
||||
}
|
||||
return `${src} ${attr}="${val}"`;
|
||||
}, tagName);
|
||||
html += `<${openTagSrc}></${tagName}>`;
|
||||
|
||||
const next = index + 1;
|
||||
return next < repeat
|
||||
? createTagRepeat(tagName, repeat, attributes, next, html)
|
||||
: html;
|
||||
}
|
||||
|
||||
// Remove the spacing surrounding tags for HTML parser not to create text nodes
|
||||
// before/after elements
|
||||
export function optimizeTemplateHTML(html) {
|
||||
return html.replace(/>\s+/g, '>').replace(/\s+</, '<');
|
||||
}
|
4
node_modules/flowbite-datepicker/js/main.js
generated
vendored
Normal file
4
node_modules/flowbite-datepicker/js/main.js
generated
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
import Datepicker from './Datepicker.js';
|
||||
import DateRangePicker from './DateRangePicker.js';
|
||||
|
||||
export {Datepicker, DateRangePicker};
|
38
node_modules/flowbite-datepicker/js/options/defaultOptions.js
generated
vendored
Normal file
38
node_modules/flowbite-datepicker/js/options/defaultOptions.js
generated
vendored
Normal file
@ -0,0 +1,38 @@
|
||||
// config options updatable by setOptions() and their default values
|
||||
const defaultOptions = {
|
||||
autohide: false,
|
||||
beforeShowDay: null,
|
||||
beforeShowDecade: null,
|
||||
beforeShowMonth: null,
|
||||
beforeShowYear: null,
|
||||
calendarWeeks: false,
|
||||
clearBtn: false,
|
||||
dateDelimiter: ',',
|
||||
datesDisabled: [],
|
||||
daysOfWeekDisabled: [],
|
||||
daysOfWeekHighlighted: [],
|
||||
defaultViewDate: undefined, // placeholder, defaults to today() by the program
|
||||
disableTouchKeyboard: false,
|
||||
format: 'mm/dd/yyyy',
|
||||
language: 'en',
|
||||
maxDate: null,
|
||||
maxNumberOfDates: 1,
|
||||
maxView: 3,
|
||||
minDate: null,
|
||||
nextArrow: '<svg class="w-4 h-4 rtl:rotate-180 text-gray-800 dark:text-white" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 14 10"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M1 5h12m0 0L9 1m4 4L9 9"/></svg>',
|
||||
orientation: 'auto',
|
||||
pickLevel: 0,
|
||||
prevArrow: '<svg class="w-4 h-4 rtl:rotate-180 text-gray-800 dark:text-white" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 14 10"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 5H1m0 0 4 4M1 5l4-4"/></svg>',
|
||||
showDaysOfWeek: true,
|
||||
showOnClick: true,
|
||||
showOnFocus: true,
|
||||
startView: 0,
|
||||
title: '',
|
||||
todayBtn: false,
|
||||
todayBtnMode: 0,
|
||||
todayHighlight: false,
|
||||
updateOnBlur: true,
|
||||
weekStart: 0,
|
||||
};
|
||||
|
||||
export default defaultOptions;
|
263
node_modules/flowbite-datepicker/js/options/processOptions.js
generated
vendored
Normal file
263
node_modules/flowbite-datepicker/js/options/processOptions.js
generated
vendored
Normal file
@ -0,0 +1,263 @@
|
||||
import {hasProperty, pushUnique} from '../lib/utils.js';
|
||||
import {dateValue} from '../lib/date.js';
|
||||
import {reFormatTokens, parseDate} from '../lib/date-format.js';
|
||||
import {parseHTML} from '../lib/dom.js';
|
||||
import defaultOptions from './defaultOptions.js';
|
||||
|
||||
const {
|
||||
language: defaultLang,
|
||||
format: defaultFormat,
|
||||
weekStart: defaultWeekStart,
|
||||
} = defaultOptions;
|
||||
|
||||
// Reducer function to filter out invalid day-of-week from the input
|
||||
function sanitizeDOW(dow, day) {
|
||||
return dow.length < 6 && day >= 0 && day < 7
|
||||
? pushUnique(dow, day)
|
||||
: dow;
|
||||
}
|
||||
|
||||
function calcEndOfWeek(startOfWeek) {
|
||||
return (startOfWeek + 6) % 7;
|
||||
}
|
||||
|
||||
// validate input date. if invalid, fallback to the original value
|
||||
function validateDate(value, format, locale, origValue) {
|
||||
const date = parseDate(value, format, locale);
|
||||
return date !== undefined ? date : origValue;
|
||||
}
|
||||
|
||||
// Validate viewId. if invalid, fallback to the original value
|
||||
function validateViewId(value, origValue, max = 3) {
|
||||
const viewId = parseInt(value, 10);
|
||||
return viewId >= 0 && viewId <= max ? viewId : origValue;
|
||||
}
|
||||
|
||||
// Create Datepicker configuration to set
|
||||
export default function processOptions(options, datepicker) {
|
||||
const inOpts = Object.assign({}, options);
|
||||
const config = {};
|
||||
const locales = datepicker.constructor.locales;
|
||||
let {
|
||||
format,
|
||||
language,
|
||||
locale,
|
||||
maxDate,
|
||||
maxView,
|
||||
minDate,
|
||||
pickLevel,
|
||||
startView,
|
||||
weekStart,
|
||||
} = datepicker.config || {};
|
||||
|
||||
if (inOpts.language) {
|
||||
let lang;
|
||||
if (inOpts.language !== language) {
|
||||
if (locales[inOpts.language]) {
|
||||
lang = inOpts.language;
|
||||
} else {
|
||||
// Check if langauge + region tag can fallback to the one without
|
||||
// region (e.g. fr-CA → fr)
|
||||
lang = inOpts.language.split('-')[0];
|
||||
if (locales[lang] === undefined) {
|
||||
lang = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
delete inOpts.language;
|
||||
if (lang) {
|
||||
language = config.language = lang;
|
||||
|
||||
// update locale as well when updating language
|
||||
const origLocale = locale || locales[defaultLang];
|
||||
// use default language's properties for the fallback
|
||||
locale = Object.assign({
|
||||
format: defaultFormat,
|
||||
weekStart: defaultWeekStart
|
||||
}, locales[defaultLang]);
|
||||
if (language !== defaultLang) {
|
||||
Object.assign(locale, locales[language]);
|
||||
}
|
||||
config.locale = locale;
|
||||
// if format and/or weekStart are the same as old locale's defaults,
|
||||
// update them to new locale's defaults
|
||||
if (format === origLocale.format) {
|
||||
format = config.format = locale.format;
|
||||
}
|
||||
if (weekStart === origLocale.weekStart) {
|
||||
weekStart = config.weekStart = locale.weekStart;
|
||||
config.weekEnd = calcEndOfWeek(locale.weekStart);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (inOpts.format) {
|
||||
const hasToDisplay = typeof inOpts.format.toDisplay === 'function';
|
||||
const hasToValue = typeof inOpts.format.toValue === 'function';
|
||||
const validFormatString = reFormatTokens.test(inOpts.format);
|
||||
if ((hasToDisplay && hasToValue) || validFormatString) {
|
||||
format = config.format = inOpts.format;
|
||||
}
|
||||
delete inOpts.format;
|
||||
}
|
||||
|
||||
//*** dates ***//
|
||||
// while min and maxDate for "no limit" in the options are better to be null
|
||||
// (especially when updating), the ones in the config have to be undefined
|
||||
// because null is treated as 0 (= unix epoch) when comparing with time value
|
||||
let minDt = minDate;
|
||||
let maxDt = maxDate;
|
||||
if (inOpts.minDate !== undefined) {
|
||||
minDt = inOpts.minDate === null
|
||||
? dateValue(0, 0, 1) // set 0000-01-01 to prevent negative values for year
|
||||
: validateDate(inOpts.minDate, format, locale, minDt);
|
||||
delete inOpts.minDate;
|
||||
}
|
||||
if (inOpts.maxDate !== undefined) {
|
||||
maxDt = inOpts.maxDate === null
|
||||
? undefined
|
||||
: validateDate(inOpts.maxDate, format, locale, maxDt);
|
||||
delete inOpts.maxDate;
|
||||
}
|
||||
if (maxDt < minDt) {
|
||||
minDate = config.minDate = maxDt;
|
||||
maxDate = config.maxDate = minDt;
|
||||
} else {
|
||||
if (minDate !== minDt) {
|
||||
minDate = config.minDate = minDt;
|
||||
}
|
||||
if (maxDate !== maxDt) {
|
||||
maxDate = config.maxDate = maxDt;
|
||||
}
|
||||
}
|
||||
|
||||
if (inOpts.datesDisabled) {
|
||||
config.datesDisabled = inOpts.datesDisabled.reduce((dates, dt) => {
|
||||
const date = parseDate(dt, format, locale);
|
||||
return date !== undefined ? pushUnique(dates, date) : dates;
|
||||
}, []);
|
||||
delete inOpts.datesDisabled;
|
||||
}
|
||||
if (inOpts.defaultViewDate !== undefined) {
|
||||
const viewDate = parseDate(inOpts.defaultViewDate, format, locale);
|
||||
if (viewDate !== undefined) {
|
||||
config.defaultViewDate = viewDate;
|
||||
}
|
||||
delete inOpts.defaultViewDate;
|
||||
}
|
||||
|
||||
//*** days of week ***//
|
||||
if (inOpts.weekStart !== undefined) {
|
||||
const wkStart = Number(inOpts.weekStart) % 7;
|
||||
if (!isNaN(wkStart)) {
|
||||
weekStart = config.weekStart = wkStart;
|
||||
config.weekEnd = calcEndOfWeek(wkStart);
|
||||
}
|
||||
delete inOpts.weekStart;
|
||||
}
|
||||
if (inOpts.daysOfWeekDisabled) {
|
||||
config.daysOfWeekDisabled = inOpts.daysOfWeekDisabled.reduce(sanitizeDOW, []);
|
||||
delete inOpts.daysOfWeekDisabled;
|
||||
}
|
||||
if (inOpts.daysOfWeekHighlighted) {
|
||||
config.daysOfWeekHighlighted = inOpts.daysOfWeekHighlighted.reduce(sanitizeDOW, []);
|
||||
delete inOpts.daysOfWeekHighlighted;
|
||||
}
|
||||
|
||||
//*** multi date ***//
|
||||
if (inOpts.maxNumberOfDates !== undefined) {
|
||||
const maxNumberOfDates = parseInt(inOpts.maxNumberOfDates, 10);
|
||||
if (maxNumberOfDates >= 0) {
|
||||
config.maxNumberOfDates = maxNumberOfDates;
|
||||
config.multidate = maxNumberOfDates !== 1;
|
||||
}
|
||||
delete inOpts.maxNumberOfDates;
|
||||
}
|
||||
if (inOpts.dateDelimiter) {
|
||||
config.dateDelimiter = String(inOpts.dateDelimiter);
|
||||
delete inOpts.dateDelimiter;
|
||||
}
|
||||
|
||||
//*** pick level & view ***//
|
||||
let newPickLevel = pickLevel;
|
||||
if (inOpts.pickLevel !== undefined) {
|
||||
newPickLevel = validateViewId(inOpts.pickLevel, 2);
|
||||
delete inOpts.pickLevel;
|
||||
}
|
||||
if (newPickLevel !== pickLevel) {
|
||||
pickLevel = config.pickLevel = newPickLevel;
|
||||
}
|
||||
|
||||
let newMaxView = maxView;
|
||||
if (inOpts.maxView !== undefined) {
|
||||
newMaxView = validateViewId(inOpts.maxView, maxView);
|
||||
delete inOpts.maxView;
|
||||
}
|
||||
// ensure max view >= pick level
|
||||
newMaxView = pickLevel > newMaxView ? pickLevel : newMaxView;
|
||||
if (newMaxView !== maxView) {
|
||||
maxView = config.maxView = newMaxView;
|
||||
}
|
||||
|
||||
let newStartView = startView;
|
||||
if (inOpts.startView !== undefined) {
|
||||
newStartView = validateViewId(inOpts.startView, newStartView);
|
||||
delete inOpts.startView;
|
||||
}
|
||||
// ensure pick level <= start view <= max view
|
||||
if (newStartView < pickLevel) {
|
||||
newStartView = pickLevel;
|
||||
} else if (newStartView > maxView) {
|
||||
newStartView = maxView;
|
||||
}
|
||||
if (newStartView !== startView) {
|
||||
config.startView = newStartView;
|
||||
}
|
||||
|
||||
//*** template ***//
|
||||
if (inOpts.prevArrow) {
|
||||
const prevArrow = parseHTML(inOpts.prevArrow);
|
||||
if (prevArrow.childNodes.length > 0) {
|
||||
config.prevArrow = prevArrow.childNodes;
|
||||
}
|
||||
delete inOpts.prevArrow;
|
||||
}
|
||||
if (inOpts.nextArrow) {
|
||||
const nextArrow = parseHTML(inOpts.nextArrow);
|
||||
if (nextArrow.childNodes.length > 0) {
|
||||
config.nextArrow = nextArrow.childNodes;
|
||||
}
|
||||
delete inOpts.nextArrow;
|
||||
}
|
||||
|
||||
//*** misc ***//
|
||||
if (inOpts.disableTouchKeyboard !== undefined) {
|
||||
config.disableTouchKeyboard = 'ontouchstart' in document && !!inOpts.disableTouchKeyboard;
|
||||
delete inOpts.disableTouchKeyboard;
|
||||
}
|
||||
if (inOpts.orientation) {
|
||||
const orientation = inOpts.orientation.toLowerCase().split(/\s+/g);
|
||||
config.orientation = {
|
||||
x: orientation.find(x => (x === 'left' || x === 'right')) || 'auto',
|
||||
y: orientation.find(y => (y === 'top' || y === 'bottom')) || 'auto',
|
||||
};
|
||||
delete inOpts.orientation;
|
||||
}
|
||||
if (inOpts.todayBtnMode !== undefined) {
|
||||
switch(inOpts.todayBtnMode) {
|
||||
case 0:
|
||||
case 1:
|
||||
config.todayBtnMode = inOpts.todayBtnMode;
|
||||
}
|
||||
delete inOpts.todayBtnMode;
|
||||
}
|
||||
|
||||
//*** copy the rest ***//
|
||||
Object.keys(inOpts).forEach((key) => {
|
||||
if (inOpts[key] !== undefined && hasProperty(defaultOptions, key)) {
|
||||
config[key] = inOpts[key];
|
||||
}
|
||||
});
|
||||
|
||||
return config;
|
||||
}
|
334
node_modules/flowbite-datepicker/js/picker/Picker.js
generated
vendored
Normal file
334
node_modules/flowbite-datepicker/js/picker/Picker.js
generated
vendored
Normal file
@ -0,0 +1,334 @@
|
||||
import {hasProperty, lastItemOf, isInRange, limitToRange} from '../lib/utils.js';
|
||||
import {today} from '../lib/date.js';
|
||||
import {parseHTML, showElement, hideElement, emptyChildNodes} from '../lib/dom.js';
|
||||
import {registerListeners} from '../lib/event.js';
|
||||
import pickerTemplate from './templates/pickerTemplate.js';
|
||||
import DaysView from './views/DaysView.js';
|
||||
import MonthsView from './views/MonthsView.js';
|
||||
import YearsView from './views/YearsView.js';
|
||||
import {triggerDatepickerEvent} from '../events/functions.js';
|
||||
import {
|
||||
onClickTodayBtn,
|
||||
onClickClearBtn,
|
||||
onClickViewSwitch,
|
||||
onClickPrevBtn,
|
||||
onClickNextBtn,
|
||||
onClickView,
|
||||
onClickPicker,
|
||||
} from '../events/pickerListeners.js';
|
||||
|
||||
function processPickerOptions(picker, options) {
|
||||
if (options.title !== undefined) {
|
||||
if (options.title) {
|
||||
picker.controls.title.textContent = options.title;
|
||||
showElement(picker.controls.title);
|
||||
} else {
|
||||
picker.controls.title.textContent = '';
|
||||
hideElement(picker.controls.title);
|
||||
}
|
||||
}
|
||||
if (options.prevArrow) {
|
||||
const prevBtn = picker.controls.prevBtn;
|
||||
emptyChildNodes(prevBtn);
|
||||
options.prevArrow.forEach((node) => {
|
||||
prevBtn.appendChild(node.cloneNode(true));
|
||||
});
|
||||
}
|
||||
if (options.nextArrow) {
|
||||
const nextBtn = picker.controls.nextBtn;
|
||||
emptyChildNodes(nextBtn);
|
||||
options.nextArrow.forEach((node) => {
|
||||
nextBtn.appendChild(node.cloneNode(true));
|
||||
});
|
||||
}
|
||||
if (options.locale) {
|
||||
picker.controls.todayBtn.textContent = options.locale.today;
|
||||
picker.controls.clearBtn.textContent = options.locale.clear;
|
||||
}
|
||||
if (options.todayBtn !== undefined) {
|
||||
if (options.todayBtn) {
|
||||
showElement(picker.controls.todayBtn);
|
||||
} else {
|
||||
hideElement(picker.controls.todayBtn);
|
||||
}
|
||||
}
|
||||
if (hasProperty(options, 'minDate') || hasProperty(options, 'maxDate')) {
|
||||
const {minDate, maxDate} = picker.datepicker.config;
|
||||
picker.controls.todayBtn.disabled = !isInRange(today(), minDate, maxDate);
|
||||
}
|
||||
if (options.clearBtn !== undefined) {
|
||||
if (options.clearBtn) {
|
||||
showElement(picker.controls.clearBtn);
|
||||
} else {
|
||||
hideElement(picker.controls.clearBtn);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Compute view date to reset, which will be...
|
||||
// - the last item of the selected dates or defaultViewDate if no selection
|
||||
// - limitted to minDate or maxDate if it exceeds the range
|
||||
function computeResetViewDate(datepicker) {
|
||||
const {dates, config} = datepicker;
|
||||
const viewDate = dates.length > 0 ? lastItemOf(dates) : config.defaultViewDate;
|
||||
return limitToRange(viewDate, config.minDate, config.maxDate);
|
||||
}
|
||||
|
||||
// Change current view's view date
|
||||
function setViewDate(picker, newDate) {
|
||||
const oldViewDate = new Date(picker.viewDate);
|
||||
const newViewDate = new Date(newDate);
|
||||
const {id, year, first, last} = picker.currentView;
|
||||
const viewYear = newViewDate.getFullYear();
|
||||
|
||||
picker.viewDate = newDate;
|
||||
if (viewYear !== oldViewDate.getFullYear()) {
|
||||
triggerDatepickerEvent(picker.datepicker, 'changeYear');
|
||||
}
|
||||
if (newViewDate.getMonth() !== oldViewDate.getMonth()) {
|
||||
triggerDatepickerEvent(picker.datepicker, 'changeMonth');
|
||||
}
|
||||
|
||||
// return whether the new date is in different period on time from the one
|
||||
// displayed in the current view
|
||||
// when true, the view needs to be re-rendered on the next UI refresh.
|
||||
switch (id) {
|
||||
case 0:
|
||||
return newDate < first || newDate > last;
|
||||
case 1:
|
||||
return viewYear !== year;
|
||||
default:
|
||||
return viewYear < first || viewYear > last;
|
||||
}
|
||||
}
|
||||
|
||||
function getTextDirection(el) {
|
||||
return window.getComputedStyle(el).direction;
|
||||
}
|
||||
|
||||
// Class representing the picker UI
|
||||
export default class Picker {
|
||||
constructor(datepicker) {
|
||||
this.datepicker = datepicker;
|
||||
|
||||
const template = pickerTemplate.replace(/%buttonClass%/g, datepicker.config.buttonClass);
|
||||
const element = this.element = parseHTML(template).firstChild;
|
||||
const [header, main, footer] = element.firstChild.children;
|
||||
const title = header.firstElementChild;
|
||||
const [prevBtn, viewSwitch, nextBtn] = header.lastElementChild.children;
|
||||
const [todayBtn, clearBtn] = footer.firstChild.children;
|
||||
const controls = {
|
||||
title,
|
||||
prevBtn,
|
||||
viewSwitch,
|
||||
nextBtn,
|
||||
todayBtn,
|
||||
clearBtn,
|
||||
};
|
||||
this.main = main;
|
||||
this.controls = controls;
|
||||
|
||||
const elementClass = datepicker.inline ? 'inline' : 'dropdown';
|
||||
element.classList.add(`datepicker-${elementClass}`);
|
||||
elementClass === 'dropdown' ? element.classList.add('dropdown', 'absolute', 'top-0', 'left-0', 'z-50', 'pt-2') : null;
|
||||
|
||||
processPickerOptions(this, datepicker.config);
|
||||
this.viewDate = computeResetViewDate(datepicker);
|
||||
|
||||
// set up event listeners
|
||||
registerListeners(datepicker, [
|
||||
[element, 'click', onClickPicker.bind(null, datepicker), {capture: true}],
|
||||
[main, 'click', onClickView.bind(null, datepicker)],
|
||||
[controls.viewSwitch, 'click', onClickViewSwitch.bind(null, datepicker)],
|
||||
[controls.prevBtn, 'click', onClickPrevBtn.bind(null, datepicker)],
|
||||
[controls.nextBtn, 'click', onClickNextBtn.bind(null, datepicker)],
|
||||
[controls.todayBtn, 'click', onClickTodayBtn.bind(null, datepicker)],
|
||||
[controls.clearBtn, 'click', onClickClearBtn.bind(null, datepicker)],
|
||||
]);
|
||||
|
||||
// set up views
|
||||
this.views = [
|
||||
new DaysView(this),
|
||||
new MonthsView(this),
|
||||
new YearsView(this, {id: 2, name: 'years', cellClass: 'year', step: 1}),
|
||||
new YearsView(this, {id: 3, name: 'decades', cellClass: 'decade', step: 10}),
|
||||
];
|
||||
this.currentView = this.views[datepicker.config.startView];
|
||||
|
||||
this.currentView.render();
|
||||
this.main.appendChild(this.currentView.element);
|
||||
datepicker.config.container.appendChild(this.element);
|
||||
}
|
||||
|
||||
setOptions(options) {
|
||||
processPickerOptions(this, options);
|
||||
this.views.forEach((view) => {
|
||||
view.init(options, false);
|
||||
});
|
||||
this.currentView.render();
|
||||
}
|
||||
|
||||
detach() {
|
||||
this.datepicker.config.container.removeChild(this.element);
|
||||
}
|
||||
|
||||
show() {
|
||||
if (this.active) {
|
||||
return;
|
||||
}
|
||||
this.element.classList.add('active', 'block');
|
||||
this.element.classList.remove('hidden');
|
||||
this.active = true;
|
||||
|
||||
const datepicker = this.datepicker;
|
||||
if (!datepicker.inline) {
|
||||
// ensure picker's direction matches input's
|
||||
const inputDirection = getTextDirection(datepicker.inputField);
|
||||
if (inputDirection !== getTextDirection(datepicker.config.container)) {
|
||||
this.element.dir = inputDirection;
|
||||
} else if (this.element.dir) {
|
||||
this.element.removeAttribute('dir');
|
||||
}
|
||||
|
||||
this.place();
|
||||
if (datepicker.config.disableTouchKeyboard) {
|
||||
datepicker.inputField.blur();
|
||||
}
|
||||
}
|
||||
triggerDatepickerEvent(datepicker, 'show');
|
||||
}
|
||||
|
||||
hide() {
|
||||
if (!this.active) {
|
||||
return;
|
||||
}
|
||||
this.datepicker.exitEditMode();
|
||||
this.element.classList.remove('active', 'block');
|
||||
this.element.classList.add('active', 'block', 'hidden');
|
||||
this.active = false;
|
||||
triggerDatepickerEvent(this.datepicker, 'hide');
|
||||
}
|
||||
|
||||
place() {
|
||||
const {classList, style} = this.element;
|
||||
const {config, inputField} = this.datepicker;
|
||||
const container = config.container;
|
||||
const {
|
||||
width: calendarWidth,
|
||||
height: calendarHeight,
|
||||
} = this.element.getBoundingClientRect();
|
||||
const {
|
||||
left: containerLeft,
|
||||
top: containerTop,
|
||||
width: containerWidth,
|
||||
} = container.getBoundingClientRect();
|
||||
const {
|
||||
left: inputLeft,
|
||||
top: inputTop,
|
||||
width: inputWidth,
|
||||
height: inputHeight
|
||||
} = inputField.getBoundingClientRect();
|
||||
let {x: orientX, y: orientY} = config.orientation;
|
||||
let scrollTop;
|
||||
let left;
|
||||
let top;
|
||||
|
||||
if (container === document.body) {
|
||||
scrollTop = window.scrollY;
|
||||
left = inputLeft + window.scrollX;
|
||||
top = inputTop + scrollTop;
|
||||
} else {
|
||||
scrollTop = container.scrollTop;
|
||||
left = inputLeft - containerLeft;
|
||||
top = inputTop - containerTop + scrollTop;
|
||||
}
|
||||
|
||||
if (orientX === 'auto') {
|
||||
if (left < 0) {
|
||||
// align to the left and move into visible area if input's left edge < window's
|
||||
orientX = 'left';
|
||||
left = 10;
|
||||
} else if (left + calendarWidth > containerWidth) {
|
||||
// align to the right if canlendar's right edge > container's
|
||||
orientX = 'right';
|
||||
} else {
|
||||
orientX = getTextDirection(inputField) === 'rtl' ? 'right' : 'left';
|
||||
}
|
||||
}
|
||||
if (orientX === 'right') {
|
||||
left -= calendarWidth - inputWidth;
|
||||
}
|
||||
|
||||
if (orientY === 'auto') {
|
||||
orientY = top - calendarHeight < scrollTop ? 'bottom' : 'top';
|
||||
}
|
||||
if (orientY === 'top') {
|
||||
top -= calendarHeight;
|
||||
} else {
|
||||
top += inputHeight;
|
||||
}
|
||||
|
||||
classList.remove(
|
||||
'datepicker-orient-top',
|
||||
'datepicker-orient-bottom',
|
||||
'datepicker-orient-right',
|
||||
'datepicker-orient-left'
|
||||
);
|
||||
classList.add(`datepicker-orient-${orientY}`, `datepicker-orient-${orientX}`);
|
||||
|
||||
style.top = top ? `${top}px` : top;
|
||||
style.left = left ? `${left}px` : left;
|
||||
}
|
||||
|
||||
setViewSwitchLabel(labelText) {
|
||||
this.controls.viewSwitch.textContent = labelText;
|
||||
}
|
||||
|
||||
setPrevBtnDisabled(disabled) {
|
||||
this.controls.prevBtn.disabled = disabled;
|
||||
}
|
||||
|
||||
setNextBtnDisabled(disabled) {
|
||||
this.controls.nextBtn.disabled = disabled;
|
||||
}
|
||||
|
||||
changeView(viewId) {
|
||||
const oldView = this.currentView;
|
||||
const newView = this.views[viewId];
|
||||
if (newView.id !== oldView.id) {
|
||||
this.currentView = newView;
|
||||
this._renderMethod = 'render';
|
||||
triggerDatepickerEvent(this.datepicker, 'changeView');
|
||||
this.main.replaceChild(newView.element, oldView.element);
|
||||
}
|
||||
return this;
|
||||
}
|
||||
|
||||
// Change the focused date (view date)
|
||||
changeFocus(newViewDate) {
|
||||
this._renderMethod = setViewDate(this, newViewDate) ? 'render' : 'refreshFocus';
|
||||
this.views.forEach((view) => {
|
||||
view.updateFocus();
|
||||
});
|
||||
return this;
|
||||
}
|
||||
|
||||
// Apply the change of the selected dates
|
||||
update() {
|
||||
const newViewDate = computeResetViewDate(this.datepicker);
|
||||
this._renderMethod = setViewDate(this, newViewDate) ? 'render' : 'refresh';
|
||||
this.views.forEach((view) => {
|
||||
view.updateFocus();
|
||||
view.updateSelection();
|
||||
});
|
||||
return this;
|
||||
}
|
||||
|
||||
// Refresh the picker UI
|
||||
render(quickRender = true) {
|
||||
const renderMethod = (quickRender && this._renderMethod) || 'render';
|
||||
delete this._renderMethod;
|
||||
|
||||
this.currentView[renderMethod]();
|
||||
}
|
||||
}
|
8
node_modules/flowbite-datepicker/js/picker/templates/calendarWeeksTemplate.js
generated
vendored
Normal file
8
node_modules/flowbite-datepicker/js/picker/templates/calendarWeeksTemplate.js
generated
vendored
Normal file
@ -0,0 +1,8 @@
|
||||
import {createTagRepeat, optimizeTemplateHTML} from '../../lib/utils.js';
|
||||
|
||||
const calendarWeeksTemplate = optimizeTemplateHTML(`<div class="calendar-weeks">
|
||||
<div class="days-of-week flex"><span class="dow h-6 leading-6 text-sm font-medium text-gray-500 dark:text-gray-400"></span></div>
|
||||
<div class="weeks">${createTagRepeat('span', 6, {class: 'week block flex-1 leading-9 border-0 rounded-lg cursor-default text-center text-gray-900 font-semibold text-sm'})}</div>
|
||||
</div>`);
|
||||
|
||||
export default calendarWeeksTemplate;
|
8
node_modules/flowbite-datepicker/js/picker/templates/daysTemplate.js
generated
vendored
Normal file
8
node_modules/flowbite-datepicker/js/picker/templates/daysTemplate.js
generated
vendored
Normal file
@ -0,0 +1,8 @@
|
||||
import {createTagRepeat, optimizeTemplateHTML} from '../../lib/utils.js';
|
||||
|
||||
const daysTemplate = optimizeTemplateHTML(`<div class="days">
|
||||
<div class="days-of-week grid grid-cols-7 mb-1">${createTagRepeat('span', 7, {class: 'dow block flex-1 leading-9 border-0 rounded-lg cursor-default text-center text-gray-900 font-semibold text-sm'})}</div>
|
||||
<div class="datepicker-grid w-64 grid grid-cols-7">${createTagRepeat('span', 42 , {class: 'block flex-1 leading-9 border-0 rounded-lg cursor-default text-center text-gray-900 font-semibold text-sm h-6 leading-6 text-sm font-medium text-gray-500 dark:text-gray-400'})}</div>
|
||||
</div>`);
|
||||
|
||||
export default daysTemplate;
|
23
node_modules/flowbite-datepicker/js/picker/templates/pickerTemplate.js
generated
vendored
Normal file
23
node_modules/flowbite-datepicker/js/picker/templates/pickerTemplate.js
generated
vendored
Normal file
@ -0,0 +1,23 @@
|
||||
import {optimizeTemplateHTML} from '../../lib/utils.js';
|
||||
|
||||
const pickerTemplate = optimizeTemplateHTML(`<div class="datepicker hidden">
|
||||
<div class="datepicker-picker inline-block rounded-lg bg-white dark:bg-gray-700 shadow-lg p-4">
|
||||
<div class="datepicker-header">
|
||||
<div class="datepicker-title bg-white dark:bg-gray-700 dark:text-white px-2 py-3 text-center font-semibold"></div>
|
||||
<div class="datepicker-controls flex justify-between mb-2">
|
||||
<button type="button" class="bg-white dark:bg-gray-700 rounded-lg text-gray-500 dark:text-white hover:bg-gray-100 dark:hover:bg-gray-600 hover:text-gray-900 dark:hover:text-white text-lg p-2.5 focus:outline-none focus:ring-2 focus:ring-gray-200 prev-btn"></button>
|
||||
<button type="button" class="text-sm rounded-lg text-gray-900 dark:text-white bg-white dark:bg-gray-700 font-semibold py-2.5 px-5 hover:bg-gray-100 dark:hover:bg-gray-600 focus:outline-none focus:ring-2 focus:ring-gray-200 view-switch"></button>
|
||||
<button type="button" class="bg-white dark:bg-gray-700 rounded-lg text-gray-500 dark:text-white hover:bg-gray-100 dark:hover:bg-gray-600 hover:text-gray-900 dark:hover:text-white text-lg p-2.5 focus:outline-none focus:ring-2 focus:ring-gray-200 next-btn"></button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="datepicker-main p-1"></div>
|
||||
<div class="datepicker-footer">
|
||||
<div class="datepicker-controls flex space-x-2 rtl:space-x-reverse mt-2">
|
||||
<button type="button" class="%buttonClass% today-btn text-white bg-blue-700 !bg-primary-700 dark:bg-blue-600 dark:!bg-primary-600 hover:bg-blue-800 hover:!bg-primary-800 dark:hover:bg-blue-700 dark:hover:!bg-primary-700 focus:ring-4 focus:ring-blue-300 focus:!ring-primary-300 font-medium rounded-lg text-sm px-5 py-2 text-center w-1/2"></button>
|
||||
<button type="button" class="%buttonClass% clear-btn text-gray-900 dark:text-white bg-white dark:bg-gray-700 border border-gray-300 dark:border-gray-600 hover:bg-gray-100 dark:hover:bg-gray-600 focus:ring-4 focus:ring-blue-300 focus:!ring-primary-300 font-medium rounded-lg text-sm px-5 py-2 text-center w-1/2"></button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>`);
|
||||
|
||||
export default pickerTemplate;
|
250
node_modules/flowbite-datepicker/js/picker/views/DaysView.js
generated
vendored
Normal file
250
node_modules/flowbite-datepicker/js/picker/views/DaysView.js
generated
vendored
Normal file
@ -0,0 +1,250 @@
|
||||
import {hasProperty, pushUnique} from '../../lib/utils.js';
|
||||
import {today, dateValue, addDays, addWeeks, dayOfTheWeekOf, getWeek} from '../../lib/date.js';
|
||||
import {formatDate} from '../../lib/date-format.js';
|
||||
import {parseHTML, showElement, hideElement} from '../../lib/dom.js';
|
||||
import daysTemplate from '../templates/daysTemplate.js';
|
||||
import calendarWeeksTemplate from '../templates/calendarWeeksTemplate.js';
|
||||
import View from './View.js';
|
||||
|
||||
export default class DaysView extends View {
|
||||
constructor(picker) {
|
||||
super(picker, {
|
||||
id: 0,
|
||||
name: 'days',
|
||||
cellClass: 'day',
|
||||
});
|
||||
}
|
||||
|
||||
init(options, onConstruction = true) {
|
||||
if (onConstruction) {
|
||||
const inner = parseHTML(daysTemplate).firstChild;
|
||||
this.dow = inner.firstChild;
|
||||
this.grid = inner.lastChild;
|
||||
this.element.appendChild(inner);
|
||||
}
|
||||
super.init(options);
|
||||
}
|
||||
|
||||
setOptions(options) {
|
||||
let updateDOW;
|
||||
|
||||
if (hasProperty(options, 'minDate')) {
|
||||
this.minDate = options.minDate;
|
||||
}
|
||||
if (hasProperty(options, 'maxDate')) {
|
||||
this.maxDate = options.maxDate;
|
||||
}
|
||||
if (options.datesDisabled) {
|
||||
this.datesDisabled = options.datesDisabled;
|
||||
}
|
||||
if (options.daysOfWeekDisabled) {
|
||||
this.daysOfWeekDisabled = options.daysOfWeekDisabled;
|
||||
updateDOW = true;
|
||||
}
|
||||
if (options.daysOfWeekHighlighted) {
|
||||
this.daysOfWeekHighlighted = options.daysOfWeekHighlighted;
|
||||
}
|
||||
if (options.todayHighlight !== undefined) {
|
||||
this.todayHighlight = options.todayHighlight;
|
||||
}
|
||||
if (options.weekStart !== undefined) {
|
||||
this.weekStart = options.weekStart;
|
||||
this.weekEnd = options.weekEnd;
|
||||
updateDOW = true;
|
||||
}
|
||||
if (options.locale) {
|
||||
const locale = this.locale = options.locale;
|
||||
this.dayNames = locale.daysMin;
|
||||
this.switchLabelFormat = locale.titleFormat;
|
||||
updateDOW = true;
|
||||
}
|
||||
if (options.beforeShowDay !== undefined) {
|
||||
this.beforeShow = typeof options.beforeShowDay === 'function'
|
||||
? options.beforeShowDay
|
||||
: undefined;
|
||||
}
|
||||
|
||||
if (options.calendarWeeks !== undefined) {
|
||||
if (options.calendarWeeks && !this.calendarWeeks) {
|
||||
const weeksElem = parseHTML(calendarWeeksTemplate).firstChild;
|
||||
this.calendarWeeks = {
|
||||
element: weeksElem,
|
||||
dow: weeksElem.firstChild,
|
||||
weeks: weeksElem.lastChild,
|
||||
};
|
||||
this.element.insertBefore(weeksElem, this.element.firstChild);
|
||||
} else if (this.calendarWeeks && !options.calendarWeeks) {
|
||||
this.element.removeChild(this.calendarWeeks.element);
|
||||
this.calendarWeeks = null;
|
||||
}
|
||||
}
|
||||
if (options.showDaysOfWeek !== undefined) {
|
||||
if (options.showDaysOfWeek) {
|
||||
showElement(this.dow);
|
||||
if (this.calendarWeeks) {
|
||||
showElement(this.calendarWeeks.dow);
|
||||
}
|
||||
} else {
|
||||
hideElement(this.dow);
|
||||
if (this.calendarWeeks) {
|
||||
hideElement(this.calendarWeeks.dow);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// update days-of-week when locale, daysOfweekDisabled or weekStart is changed
|
||||
if (updateDOW) {
|
||||
Array.from(this.dow.children).forEach((el, index) => {
|
||||
const dow = (this.weekStart + index) % 7;
|
||||
el.textContent = this.dayNames[dow];
|
||||
el.className = this.daysOfWeekDisabled.includes(dow) ? 'dow disabled text-center h-6 leading-6 text-sm font-medium text-gray-500 dark:text-gray-400 cursor-not-allowed' : 'dow text-center h-6 leading-6 text-sm font-medium text-gray-500 dark:text-gray-400';
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
// Apply update on the focused date to view's settings
|
||||
updateFocus() {
|
||||
const viewDate = new Date(this.picker.viewDate);
|
||||
const viewYear = viewDate.getFullYear();
|
||||
const viewMonth = viewDate.getMonth();
|
||||
const firstOfMonth = dateValue(viewYear, viewMonth, 1);
|
||||
const start = dayOfTheWeekOf(firstOfMonth, this.weekStart, this.weekStart);
|
||||
|
||||
this.first = firstOfMonth;
|
||||
this.last = dateValue(viewYear, viewMonth + 1, 0);
|
||||
this.start = start;
|
||||
this.focused = this.picker.viewDate;
|
||||
}
|
||||
|
||||
// Apply update on the selected dates to view's settings
|
||||
updateSelection() {
|
||||
const {dates, rangepicker} = this.picker.datepicker;
|
||||
this.selected = dates;
|
||||
if (rangepicker) {
|
||||
this.range = rangepicker.dates;
|
||||
}
|
||||
}
|
||||
|
||||
// Update the entire view UI
|
||||
render() {
|
||||
// update today marker on ever render
|
||||
this.today = this.todayHighlight ? today() : undefined;
|
||||
// refresh disabled dates on every render in order to clear the ones added
|
||||
// by beforeShow hook at previous render
|
||||
this.disabled = [...this.datesDisabled];
|
||||
|
||||
const switchLabel = formatDate(this.focused, this.switchLabelFormat, this.locale);
|
||||
this.picker.setViewSwitchLabel(switchLabel);
|
||||
this.picker.setPrevBtnDisabled(this.first <= this.minDate);
|
||||
this.picker.setNextBtnDisabled(this.last >= this.maxDate);
|
||||
|
||||
if (this.calendarWeeks) {
|
||||
// start of the UTC week (Monday) of the 1st of the month
|
||||
const startOfWeek = dayOfTheWeekOf(this.first, 1, 1);
|
||||
Array.from(this.calendarWeeks.weeks.children).forEach((el, index) => {
|
||||
el.textContent = getWeek(addWeeks(startOfWeek, index));
|
||||
});
|
||||
}
|
||||
Array.from(this.grid.children).forEach((el, index) => {
|
||||
const classList = el.classList;
|
||||
const current = addDays(this.start, index);
|
||||
const date = new Date(current);
|
||||
const day = date.getDay();
|
||||
|
||||
el.className = `datepicker-cell hover:bg-gray-100 dark:hover:bg-gray-600 block flex-1 leading-9 border-0 rounded-lg cursor-pointer text-center text-gray-900 dark:text-white font-semibold text-sm ${this.cellClass}`;
|
||||
el.dataset.date = current;
|
||||
el.textContent = date.getDate();
|
||||
|
||||
if (current < this.first) {
|
||||
classList.add('prev', 'text-gray-500', 'dark:text-white');
|
||||
} else if (current > this.last) {
|
||||
classList.add('next', 'text-gray-500', 'dark:text-white');
|
||||
}
|
||||
if (this.today === current) {
|
||||
classList.add('today', 'bg-gray-100', 'dark:bg-gray-600');
|
||||
}
|
||||
if (current < this.minDate || current > this.maxDate || this.disabled.includes(current)) {
|
||||
classList.add('disabled', 'cursor-not-allowed', 'text-gray-400', 'dark:text-gray-500');
|
||||
classList.remove('hover:bg-gray-100', 'dark:hover:bg-gray-600', 'text-gray-900', 'dark:text-white', 'cursor-pointer');
|
||||
}
|
||||
if (this.daysOfWeekDisabled.includes(day)) {
|
||||
classList.add('disabled', 'cursor-not-allowed', 'text-gray-400', 'dark:text-gray-500');
|
||||
classList.remove('hover:bg-gray-100', 'dark:hover:bg-gray-600', 'text-gray-900', 'dark:text-white', 'cursor-pointer');
|
||||
pushUnique(this.disabled, current);
|
||||
}
|
||||
if (this.daysOfWeekHighlighted.includes(day)) {
|
||||
classList.add('highlighted');
|
||||
}
|
||||
if (this.range) {
|
||||
const [rangeStart, rangeEnd] = this.range;
|
||||
if (current > rangeStart && current < rangeEnd) {
|
||||
classList.add('range', 'bg-gray-200', 'dark:bg-gray-600');
|
||||
classList.remove('rounded-lg', 'rounded-l-lg', 'rounded-r-lg')
|
||||
}
|
||||
if (current === rangeStart) {
|
||||
classList.add('range-start', 'bg-gray-100', 'dark:bg-gray-600', 'rounded-l-lg');
|
||||
classList.remove('rounded-lg', 'rounded-r-lg');
|
||||
}
|
||||
if (current === rangeEnd) {
|
||||
classList.add('range-end', 'bg-gray-100', 'dark:bg-gray-600', 'rounded-r-lg');
|
||||
classList.remove('rounded-lg', 'rounded-l-lg');
|
||||
}
|
||||
}
|
||||
if (this.selected.includes(current)) {
|
||||
classList.add('selected', 'bg-blue-700', '!bg-primary-700', 'text-white', 'dark:bg-blue-600', 'dark:!bg-primary-600', 'dark:text-white');
|
||||
classList.remove('text-gray-900', 'text-gray-500', 'hover:bg-gray-100', 'dark:text-white', 'dark:hover:bg-gray-600', 'dark:bg-gray-600', 'bg-gray-100', 'bg-gray-200');
|
||||
}
|
||||
if (current === this.focused) {
|
||||
classList.add('focused');
|
||||
}
|
||||
|
||||
if (this.beforeShow) {
|
||||
this.performBeforeHook(el, current, current);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// Update the view UI by applying the changes of selected and focused items
|
||||
refresh() {
|
||||
const [rangeStart, rangeEnd] = this.range || [];
|
||||
this.grid
|
||||
.querySelectorAll('.range, .range-start, .range-end, .selected, .focused')
|
||||
.forEach((el) => {
|
||||
el.classList.remove('range', 'range-start', 'range-end', 'selected', 'bg-blue-700', '!bg-primary-700', 'text-white', 'dark:bg-blue-600', 'dark:!bg-primary-600', 'dark:text-white', 'focused');
|
||||
el.classList.add('text-gray-900', 'rounded-lg', 'dark:text-white');
|
||||
});
|
||||
Array.from(this.grid.children).forEach((el) => {
|
||||
const current = Number(el.dataset.date);
|
||||
const classList = el.classList;
|
||||
classList.remove('bg-gray-200', 'dark:bg-gray-600', 'rounded-l-lg', 'rounded-r-lg')
|
||||
if (current > rangeStart && current < rangeEnd) {
|
||||
classList.add('range', 'bg-gray-200', 'dark:bg-gray-600');
|
||||
classList.remove('rounded-lg');
|
||||
}
|
||||
if (current === rangeStart) {
|
||||
classList.add('range-start', 'bg-gray-200', 'dark:bg-gray-600', 'rounded-l-lg');
|
||||
classList.remove('rounded-lg',);
|
||||
}
|
||||
if (current === rangeEnd) {
|
||||
classList.add('range-end', 'bg-gray-200', 'dark:bg-gray-600', 'rounded-r-lg');
|
||||
classList.remove('rounded-lg',);
|
||||
}
|
||||
if (this.selected.includes(current)) {
|
||||
classList.add('selected', 'bg-blue-700', '!bg-primary-700', 'text-white', 'dark:bg-blue-600', 'dark:!bg-primary-600', 'dark:text-white');
|
||||
classList.remove('text-gray-900', 'hover:bg-gray-100', 'dark:text-white', 'dark:hover:bg-gray-600', 'bg-gray-100', 'bg-gray-200', 'dark:bg-gray-600');
|
||||
}
|
||||
if (current === this.focused) {
|
||||
classList.add('focused');
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// Update the view UI by applying the change of focused item
|
||||
refreshFocus() {
|
||||
const index = Math.round((this.focused - this.start) / 86400000);
|
||||
this.grid.querySelectorAll('.focused').forEach((el) => {
|
||||
el.classList.remove('focused');
|
||||
});
|
||||
this.grid.children[index].classList.add('focused');
|
||||
}
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user