freescout/freescout-dist/public/js/flatpickr/plugins/scrollPlugin.js

59 lines
2.0 KiB
JavaScript
Raw Normal View History

2023-12-22 19:40:32 +00:00
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
typeof define === 'function' && define.amd ? define(factory) :
(global = global || self, global.scrollPlugin = factory());
}(this, function () { 'use strict';
function delta(e) {
return Math.max(-1, Math.min(1, e.wheelDelta || -e.deltaY));
}
var scroll = function (e) {
e.preventDefault();
var ev = new CustomEvent("increment", {
bubbles: true
});
ev.delta = delta(e);
e.target.dispatchEvent(ev);
};
function scrollMonth(fp) {
return function (e) {
e.preventDefault();
var mDelta = delta(e);
fp.changeMonth(mDelta);
};
}
function scrollPlugin() {
return function (fp) {
var monthScroller = scrollMonth(fp);
return {
onReady: function () {
if (fp.timeContainer) {
fp.timeContainer.addEventListener("wheel", scroll);
}
fp.yearElements.forEach(function (yearElem) {
return yearElem.addEventListener("wheel", scroll);
});
fp.monthElements.forEach(function (monthElem) {
return monthElem.addEventListener("wheel", monthScroller);
});
fp.loadedPlugins.push("scroll");
},
onDestroy: function () {
if (fp.timeContainer) {
fp.timeContainer.removeEventListener("wheel", scroll);
}
fp.yearElements.forEach(function (yearElem) {
return yearElem.removeEventListener("wheel", scroll);
});
fp.monthElements.forEach(function (monthElem) {
return monthElem.removeEventListener("wheel", monthScroller);
});
}
};
};
}
return scrollPlugin;
}));