File size: 1,695 Bytes
c1384fc |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
define([
'jquery',
'base/js/namespace',
], function (
$,
Jupyter
) {
'use strict';
var params = {
scrollDownIsEnabled: false
};
var initialize = function () {
$.extend(true, params, Jupyter.notebook.config.data);
setButtonColor();
};
function toggleScrollDown() {
params.scrollDownIsEnabled = !params.scrollDownIsEnabled;
Jupyter.notebook.config.update(params);
setButtonColor();
}
function setButtonColor() {
$("#toggle_scroll_down").toggleClass('active', params.scrollDownIsEnabled);
}
function load_extension() {
$(Jupyter.toolbar.add_buttons_group([
Jupyter.keyboard_manager.actions.register({
help : 'toggle automatic scrolling down',
icon : 'fa-angle-double-down ',
handler: toggleScrollDown
}, 'toggle-auto-scroll-down', 'scroll_down')
])).find('.btn').attr('id', 'toggle_scroll_down');
console.log("[ScrollDown] is loaded");
// the event was renamed from 'resize' to 'resizeOutput' in
// https://github.com/jupyter/notebook/commit/b4928d481abd9f7cd996fd4b24078a55880d21e6
$(document).on("resize resizeOutput", ".output", function () {
if (!params.scrollDownIsEnabled) return;
var output = $(this);
setTimeout(function () {
output.scrollTop(output.prop("scrollHeight"));
}, 0);
});
return Jupyter.notebook.config.loaded.then(initialize);
}
return {
load_jupyter_extension: load_extension,
load_ipython_extension: load_extension
};
});
|