| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- (function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
- typeof define === 'function' && define.amd ? define(factory) :
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.momentPlugin = factory());
- }(this, (function () { 'use strict';
- function getEventTarget(event) {
- try {
- if (typeof event.composedPath === "function") {
- var path = event.composedPath();
- return path[0];
- }
- return event.target;
- }
- catch (error) {
- return event.target;
- }
- }
- function momentPlugin(config) {
- var moment = config.moment;
- return function (fp) {
- function captureIncrement(e) {
- var event = e;
- event.stopPropagation();
- var date = moment(fp.selectedDates[0]);
- var input = getEventTarget(event);
- var unit = Array.from(input.classList)
- .filter(function (name) { return name.startsWith("flatpickr-"); })
- .map(function (name) { return name.substring(10); })[0];
- var step = parseFloat(input.getAttribute("step"));
- date.add(step * event.delta, unit);
- fp.setDate(date.toDate());
- }
- return {
- parseDate: function (datestr, format) {
- return moment(datestr, format, true).toDate();
- },
- formatDate: function (date, format) {
- // locale can also be used
- var momentDate = moment(date);
- if (typeof fp.config.locale === "string") {
- momentDate.locale(fp.config.locale);
- }
- return momentDate.format(format);
- },
- onReady: function () {
- [fp.hourElement, fp.minuteElement, fp.secondElement].forEach(function (element) {
- return element &&
- element.addEventListener("increment", captureIncrement, {
- capture: true,
- });
- });
- },
- onDestroy: function () {
- [fp.hourElement, fp.minuteElement, fp.secondElement].forEach(function (element) {
- return element &&
- element.removeEventListener("increment", captureIncrement, {
- capture: true,
- });
- });
- },
- };
- };
- }
- return momentPlugin;
- })));
|