Icard/angular-clarity-master(work.../node_modules/angular-gridster2/esm2022/lib/gridsterScroll.service.mjs

134 lines
16 KiB
JavaScript
Raw Permalink Normal View History

2024-07-16 14:55:36 +00:00
let scrollSensitivity;
let scrollSpeed;
const intervalDuration = 50;
let gridsterElement;
let resizeEvent;
let resizeEventType;
let intervalE;
let intervalW;
let intervalN;
let intervalS;
export function scroll(gridster, left, top, width, height, event, lastMouse, calculateItemPosition, resize, resizeEventScrollType) {
scrollSensitivity = gridster.$options.scrollSensitivity;
scrollSpeed = gridster.$options.scrollSpeed;
gridsterElement = gridster.el;
resizeEvent = resize;
resizeEventType = resizeEventScrollType;
const offsetWidth = gridsterElement.offsetWidth;
const offsetHeight = gridsterElement.offsetHeight;
const offsetLeft = gridsterElement.scrollLeft;
const offsetTop = gridsterElement.scrollTop;
const elemTopOffset = top - offsetTop;
const elemBottomOffset = offsetHeight + offsetTop - top - height;
const { clientX, clientY } = event;
if (!gridster.$options.disableScrollVertical) {
if (lastMouse.clientY < clientY && elemBottomOffset < scrollSensitivity) {
cancelN();
if ((resizeEvent && resizeEventType && !resizeEventType.south) ||
intervalS) {
return;
}
intervalS = startVertical(1, calculateItemPosition, lastMouse);
}
else if (lastMouse.clientY > clientY &&
offsetTop > 0 &&
elemTopOffset < scrollSensitivity) {
cancelS();
if ((resizeEvent && resizeEventType && !resizeEventType.north) ||
intervalN) {
return;
}
intervalN = startVertical(-1, calculateItemPosition, lastMouse);
}
else if (lastMouse.clientY !== clientY) {
cancelVertical();
}
}
const elemRightOffset = offsetLeft + offsetWidth - left - width;
const elemLeftOffset = left - offsetLeft;
if (!gridster.$options.disableScrollHorizontal) {
if (lastMouse.clientX < clientX && elemRightOffset <= scrollSensitivity) {
cancelW();
if ((resizeEvent && resizeEventType && !resizeEventType.east) ||
intervalE) {
return;
}
intervalE = startHorizontal(1, calculateItemPosition, lastMouse);
}
else if (lastMouse.clientX > clientX &&
offsetLeft > 0 &&
elemLeftOffset < scrollSensitivity) {
cancelE();
if ((resizeEvent && resizeEventType && !resizeEventType.west) ||
intervalW) {
return;
}
intervalW = startHorizontal(-1, calculateItemPosition, lastMouse);
}
else if (lastMouse.clientX !== clientX) {
cancelHorizontal();
}
}
}
function startVertical(sign, calculateItemPosition, lastMouse) {
let clientY = lastMouse.clientY;
return window.setInterval(() => {
if (!gridsterElement ||
(sign === -1 && gridsterElement.scrollTop - scrollSpeed < 0)) {
cancelVertical();
}
gridsterElement.scrollTop += sign * scrollSpeed;
clientY += sign * scrollSpeed;
calculateItemPosition({ clientX: lastMouse.clientX, clientY });
}, intervalDuration);
}
function startHorizontal(sign, calculateItemPosition, lastMouse) {
let clientX = lastMouse.clientX;
return window.setInterval(() => {
if (!gridsterElement ||
(sign === -1 && gridsterElement.scrollLeft - scrollSpeed < 0)) {
cancelHorizontal();
}
gridsterElement.scrollLeft += sign * scrollSpeed;
clientX += sign * scrollSpeed;
calculateItemPosition({ clientX, clientY: lastMouse.clientY });
}, intervalDuration);
}
export function cancelScroll() {
cancelHorizontal();
cancelVertical();
gridsterElement = null;
}
function cancelHorizontal() {
cancelE();
cancelW();
}
function cancelVertical() {
cancelN();
cancelS();
}
function cancelE() {
if (intervalE) {
clearInterval(intervalE);
intervalE = 0;
}
}
function cancelW() {
if (intervalW) {
clearInterval(intervalW);
intervalW = 0;
}
}
function cancelS() {
if (intervalS) {
clearInterval(intervalS);
intervalS = 0;
}
}
function cancelN() {
if (intervalN) {
clearInterval(intervalN);
intervalN = 0;
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZHN0ZXJTY3JvbGwuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItZ3JpZHN0ZXIyL3NyYy9saWIvZ3JpZHN0ZXJTY3JvbGwuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxJQUFJLGlCQUF5QixDQUFDO0FBQzlCLElBQUksV0FBbUIsQ0FBQztBQUN4QixNQUFNLGdCQUFnQixHQUFHLEVBQUUsQ0FBQztBQUM1QixJQUFJLGVBQW1DLENBQUM7QUFDeEMsSUFBSSxXQUFnQyxDQUFDO0FBQ3JDLElBQUksZUFBb0QsQ0FBQztBQUN6RCxJQUFJLFNBQWlCLENBQUM7QUFDdEIsSUFBSSxTQUFpQixDQUFDO0FBQ3RCLElBQUksU0FBaUIsQ0FBQztBQUN0QixJQUFJLFNBQWlCLENBQUM7QUFNdEIsTUFBTSxVQUFVLE1BQU0sQ0FDcEIsUUFBb0MsRUFDcEMsSUFBWSxFQUNaLEdBQVcsRUFDWCxLQUFhLEVBQ2IsTUFBYyxFQUNkLEtBQWlCLEVBQ2pCLFNBQW1CLEVBQ25CLHFCQUF3QyxFQUN4QyxNQUFnQixFQUNoQixxQkFBK0M7SUFFL0MsaUJBQWlCLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQztJQUN4RCxXQUFXLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUM7SUFDNUMsZUFBZSxHQUFHLFFBQVEsQ0FBQyxFQUFFLENBQUM7SUFDOUIsV0FBVyxHQUFHLE1BQU0sQ0FBQztJQUNyQixlQUFlLEdBQUcscUJBQXFCLENBQUM7SUFFeEMsTUFBTSxXQUFXLEdBQUcsZUFBZSxDQUFDLFdBQVcsQ0FBQztJQUNoRCxNQUFNLFlBQVksR0FBRyxlQUFlLENBQUMsWUFBWSxDQUFDO0lBQ2xELE1BQU0sVUFBVSxHQUFHLGVBQWUsQ0FBQyxVQUFVLENBQUM7SUFDOUMsTUFBTSxTQUFTLEdBQUcsZUFBZSxDQUFDLFNBQVMsQ0FBQztJQUM1QyxNQUFN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