update
This commit is contained in:
65
modules/advancedpopupcreator/lib/CodeMirror/addon/scroll/scrollpastend.js
vendored
Normal file
65
modules/advancedpopupcreator/lib/CodeMirror/addon/scroll/scrollpastend.js
vendored
Normal file
@@ -0,0 +1,65 @@
|
||||
/*
|
||||
* NOTICE OF LICENSE
|
||||
*
|
||||
* This product is licensed for one customer to use on one installation (test stores and multishop included).
|
||||
* Site developer has the right to modify this module to suit their needs, but can not redistribute the module in
|
||||
* whole or in part. Any other use of this module constitutes a violation of the user agreement.
|
||||
*
|
||||
* DISCLAIMER
|
||||
*
|
||||
* NO WARRANTIES OF DATA SAFETY OR MODULE SECURITY
|
||||
* ARE EXPRESSED OR IMPLIED. USE THIS MODULE IN ACCORDANCE
|
||||
* WITH YOUR MERCHANT AGREEMENT, KNOWING THAT VIOLATIONS OF
|
||||
* PCI COMPLIANCY OR A DATA BREACH CAN COST THOUSANDS OF DOLLARS
|
||||
* IN FINES AND DAMAGE A STORES REPUTATION. USE AT YOUR OWN RISK.
|
||||
*
|
||||
* @author idnovate.com <info@idnovate.com>
|
||||
* @copyright 2022 idnovate.com
|
||||
* @license See above
|
||||
*/
|
||||
|
||||
(function(mod) {
|
||||
if (typeof exports == "object" && typeof module == "object") // CommonJS
|
||||
mod(require("../../lib/codemirror"));
|
||||
else if (typeof define == "function" && define.amd) // AMD
|
||||
define(["../../lib/codemirror"], mod);
|
||||
else // Plain browser env
|
||||
mod(CodeMirror);
|
||||
})(function(CodeMirror) {
|
||||
"use strict";
|
||||
|
||||
CodeMirror.defineOption("scrollPastEnd", false, function(cm, val, old) {
|
||||
if (old && old != CodeMirror.Init) {
|
||||
cm.off("change", onChange);
|
||||
cm.off("refresh", updateBottomMargin);
|
||||
cm.display.lineSpace.parentNode.style.paddingBottom = "";
|
||||
cm.state.scrollPastEndPadding = null;
|
||||
}
|
||||
if (val) {
|
||||
cm.on("change", onChange);
|
||||
cm.on("refresh", updateBottomMargin);
|
||||
updateBottomMargin(cm);
|
||||
}
|
||||
});
|
||||
|
||||
function onChange(cm, change) {
|
||||
if (CodeMirror.changeEnd(change).line == cm.lastLine())
|
||||
updateBottomMargin(cm);
|
||||
}
|
||||
|
||||
function updateBottomMargin(cm) {
|
||||
var padding = "";
|
||||
if (cm.lineCount() > 1) {
|
||||
var totalH = cm.display.scroller.clientHeight - 30,
|
||||
lastLineH = cm.getLineHandle(cm.lastLine()).height;
|
||||
padding = (totalH - lastLineH) + "px";
|
||||
}
|
||||
if (cm.state.scrollPastEndPadding != padding) {
|
||||
cm.state.scrollPastEndPadding = padding;
|
||||
cm.display.lineSpace.parentNode.style.paddingBottom = padding;
|
||||
cm.off("refresh", updateBottomMargin);
|
||||
cm.setSize();
|
||||
cm.on("refresh", updateBottomMargin);
|
||||
}
|
||||
}
|
||||
});
|
||||
Reference in New Issue
Block a user