You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ORPA-pyOpenRPA/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_nbextensions/nbextensions/splitcell/splitcell.js

102 lines
2.6 KiB

// Allow for split cells in jupyter notebooks
define([
'base/js/namespace',
'base/js/events'
], function (
Jupyter,
events
) {
"use strict";
//define default config parameter values
var params = {
toggle_cell_style_keybinding : 'shift-s'
};
//updates default params with any specified in the server's config
var update_params = function(){
var config = Jupyter.notebook.config;
for (var key in params){
if (config.data.hasOwnProperty(key)){
params[key] = config.data[key];
}
}
};
var setup = function (){
// update defaults
update_params();
//register actions with ActionHandler instance
var prefix = 'auto';
var name = 'toggle-cell-style';
var action = {
icon : 'fa-arrows-h',
help : 'Toggle split/centered cell style',
help_index : 'eb',
id : 'split_cells',
handler : toggle_cell_style
};
var action_full_name = Jupyter.keyboard_manager.actions.register(action, name, prefix);
//define keyboard shortucts
var command_mode_shortcuts = {};
command_mode_shortcuts[params.toggle_cell_style_keybinding] = action_full_name;
//register keyboard shortucts with keyboard_manager
Jupyter.notebook.keyboard_manager.command_shortcuts.add_shortcuts(command_mode_shortcuts);
Jupyter.toolbar.add_buttons_group([action_full_name]);
};
var toggle_cell_style = function(){
var cell = Jupyter.notebook.get_selected_cell();
if (!("cell_style" in cell.metadata)){cell.metadata.cell_style = 'split';}
else if (cell.metadata.cell_style == 'center'){cell.metadata.cell_style = 'split';}
else {cell.metadata.cell_style = 'center';}
update_cell_style_element(cell);
};
var get_cell_style_html = function(cell_style){
console.log(cell_style);
if (cell_style == "split")
{return "float:left; width:50%;";}
return "width:100%;";
};
var update_cell_style_element = function(cell){
var cell_style_html = get_cell_style_html(cell.metadata.cell_style);
cell.element.attr('style', cell_style_html);
};
function initialize () {
// On Load lets set the cell styles correctly
var cells = Jupyter.notebook.get_cells();
var ncells = Jupyter.notebook.ncells();
for (var i=0; i<ncells; i++){
var cell = cells[i];
if ("cell_style" in cell.metadata){
update_cell_style_element(cell, cell.metadata.cell_style);
}
}
}
var load_extension = function() {
Jupyter.notebook.config.loaded.then(setup);
if (Jupyter.notebook !== undefined && Jupyter.notebook._fully_loaded) {
// notebook already loaded. Update directly
initialize();
}
events.on("notebook_loaded.Notebook", initialize);
};
return {
load_ipython_extension : load_extension
};
});