mirror of
https://github.com/codex-team/editor.js
synced 2026-03-17 08:05:47 +01:00
split blocks update
This commit is contained in:
parent
4f8d089a52
commit
1a9167f48d
4 changed files with 47 additions and 35 deletions
|
|
@ -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
|
|
@ -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);
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue