split blocks update

This commit is contained in:
Nikita 2018-01-05 18:03:07 +03:00
commit 1a9167f48d
4 changed files with 47 additions and 35 deletions

View file

@ -1410,24 +1410,17 @@ var BlockManager = function (_Module) {
}
/**
* Split blocks when "enter" pressed
*
* @param {String} toolName plugin name
* @param {Object} data plugin data
*/
}, {
key: 'split',
value: function split() {
value: function split(toolName, data) {
var selection = window.getSelection();
var range = new Range();
console.log(selection.focusNode);
range.setStart(selection.anchorNode, selection.getRangeAt(0).startOffset);
range.setEnd(selection.focusNode, selection.focusNode.length);
// console.log(range.extractContents());
// console.log('+');
this.insert('text', range.extractContents());
this.insert(toolName, data);
}
/**
@ -2116,16 +2109,29 @@ var Keyboard = function (_Module) {
case 8:
console.log('backspace pressed');
this.Editor.BlockManager.merge(undefined, range.extractContents());
// this.Editor.BlockManager.merge(undefined, range.extractContents());
break;
case 13:
console.log('enter pressed');
// console.log(range.extractContents());
// let op = range.extractContents;
// console.log(op);
event.preventDefault();
this.Editor.BlockManager.split();
var selection = window.getSelection();
var range = new Range();
range.setStart(selection.anchorNode, selection.getRangeAt(0).startOffset);
range.setEnd(selection.focusNode, selection.focusNode.length);
var fragm = range.extractContents();
var div = document.createElement('div');
div.appendChild(fragm.cloneNode(true));
var data = {
text: div.innerHTML
};
this.Editor.BlockManager.split('text', data);
break;
default:
break;

File diff suppressed because one or more lines are too long

View file

@ -114,21 +114,14 @@ export default class BlockManager extends Module {
}
/**
* Split blocks when "enter" pressed
*
* @param {String} toolName plugin name
* @param {Object} data plugin data
*/
split() {
split(toolName, data) {
let selection = window.getSelection();
let range = new Range();
console.log(selection.focusNode);
range.setStart(selection.anchorNode, selection.getRangeAt(0).startOffset);
range.setEnd(selection.focusNode, selection.focusNode.length);
// console.log(range.extractContents());
// console.log('+');
this.insert('text', range.extractContents());
this.insert(toolName, data);
}

View file

@ -22,16 +22,29 @@ export default class Keyboard extends Module {
case (8):
console.log('backspace pressed');
this.Editor.BlockManager.merge(undefined, range.extractContents());
// this.Editor.BlockManager.merge(undefined, range.extractContents());
break;
case (13):
console.log('enter pressed');
// console.log(range.extractContents());
// let op = range.extractContents;
// console.log(op);
event.preventDefault();
this.Editor.BlockManager.split();
let selection = window.getSelection();
let range = new Range();
range.setStart(selection.anchorNode, selection.getRangeAt(0).startOffset);
range.setEnd(selection.focusNode, selection.focusNode.length);
let fragm = range.extractContents();
let div = document.createElement('div');
div.appendChild(fragm.cloneNode(true));
let data = {
text: div.innerHTML,
};
this.Editor.BlockManager.split('text', data);
break;
default:
break;