Compare commits

..

1 Commits

Author SHA1 Message Date
Kevin Jahns
70e8ed37e4 v13.0.0-52 -- distribution files 2018-02-18 19:20:34 +01:00
10 changed files with 39 additions and 61 deletions

2
package-lock.json generated
View File

@@ -1,6 +1,6 @@
{
"name": "yjs",
"version": "13.0.0-55",
"version": "13.0.0-52",
"lockfileVersion": 1,
"requires": true,
"dependencies": {

View File

@@ -1,6 +1,6 @@
{
"name": "yjs",
"version": "13.0.0-55",
"version": "13.0.0-52",
"description": "A framework for real-time p2p shared editing on any data",
"main": "./y.node.js",
"browser": "./y.js",

View File

@@ -4,10 +4,8 @@ import { readDeleteSet, writeDeleteSet } from './deleteSet.js'
import BinaryEncoder from '../Binary/Encoder.js'
export function fromBinary (y, decoder) {
y.transact(function () {
integrateRemoteStructs(y, decoder)
readDeleteSet(y, decoder)
})
integrateRemoteStructs(y, decoder)
readDeleteSet(y, decoder)
}
export function toBinary (y) {

View File

@@ -77,19 +77,18 @@ export default class Item {
if (parent._redone !== null) {
parent = parent._redone
// find next cloned items
while (left !== null) {
if (left._redone !== null && left._redone._parent === parent) {
left = left._redone
break
}
while (left !== null && left._redone === null) {
left = left._left
}
while (right !== null) {
if (right._redone !== null && right._redone._parent === parent) {
right = right._redone
}
if (left !== null) {
left = left._redone
}
while (right !== null && right._redone === null) {
right = right._right
}
if (right !== null) {
right = right._redone
}
}
struct._origin = left
struct._left = left

View File

@@ -8,9 +8,6 @@ export default class YXmlElement extends YXmlFragment {
super()
this.nodeName = null
this._scrollElement = null
if (typeof arg2 === 'function') {
this._domFilter = arg2
}
if (typeof arg1 === 'string') {
this.nodeName = arg1.toUpperCase()
} else if (arg1 != null && arg1.nodeType != null && arg1.nodeType === arg1.ELEMENT_NODE) {
@@ -19,6 +16,9 @@ export default class YXmlElement extends YXmlFragment {
} else {
this.nodeName = 'UNDEFINED'
}
if (typeof arg2 === 'function') {
this._domFilter = arg2
}
}
_copy () {
let struct = super._copy()
@@ -39,7 +39,7 @@ export default class YXmlElement extends YXmlFragment {
// get attribute via getAttribute for custom element support (some write something different in attr.value)
attributes.set(attr.name, dom.getAttribute(attr.name))
}
attributes = this._domFilter(dom.nodeName, attributes)
attributes = this._domFilter(dom, attributes)
attributes.forEach((value, name) => {
this.setAttribute(name, value)
})

View File

@@ -73,7 +73,6 @@ export default class UndoManager {
this._scope = scope
this._undoing = false
this._redoing = false
this._lastTransactionWasUndo = false
const y = scope._y
this.y = y
y.on('afterTransaction', (y, transaction, remote) => {
@@ -81,12 +80,7 @@ export default class UndoManager {
let reverseOperation = new ReverseOperation(y, transaction)
if (!this._undoing) {
let lastUndoOp = this._undoBuffer.length > 0 ? this._undoBuffer[this._undoBuffer.length - 1] : null
if (
this._redoing === false &&
this._lastTransactionWasUndo === false &&
lastUndoOp !== null &&
reverseOperation.created - lastUndoOp.created <= options.captureTimeout
) {
if (lastUndoOp !== null && reverseOperation.created - lastUndoOp.created <= options.captureTimeout) {
lastUndoOp.created = reverseOperation.created
if (reverseOperation.toState !== null) {
lastUndoOp.toState = reverseOperation.toState
@@ -96,14 +90,12 @@ export default class UndoManager {
}
reverseOperation.deletedStructs.forEach(lastUndoOp.deletedStructs.add, lastUndoOp.deletedStructs)
} else {
this._lastTransactionWasUndo = false
this._undoBuffer.push(reverseOperation)
}
if (!this._redoing) {
this._redoBuffer = []
}
} else {
this._lastTransactionWasUndo = true
this._redoBuffer.push(reverseOperation)
}
}

8
y.js

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1,7 +1,7 @@
/**
* yjs - A framework for real-time p2p shared editing on any data
* @version v13.0.0-55
* @version v13.0.0-52
* @license MIT
*/
@@ -1366,19 +1366,18 @@ class Item {
if (parent._redone !== null) {
parent = parent._redone;
// find next cloned items
while (left !== null) {
if (left._redone !== null && left._redone._parent === parent) {
left = left._redone;
break
}
while (left !== null && left._redone === null) {
left = left._left;
}
while (right !== null) {
if (right._redone !== null && right._redone._parent === parent) {
right = right._redone;
}
if (left !== null) {
left = left._redone;
}
while (right !== null && right._redone === null) {
right = right._right;
}
if (right !== null) {
right = right._redone;
}
}
struct._origin = left;
struct._left = left;
@@ -3126,9 +3125,6 @@ class YXmlElement extends YXmlFragment {
super();
this.nodeName = null;
this._scrollElement = null;
if (typeof arg2 === 'function') {
this._domFilter = arg2;
}
if (typeof arg1 === 'string') {
this.nodeName = arg1.toUpperCase();
} else if (arg1 != null && arg1.nodeType != null && arg1.nodeType === arg1.ELEMENT_NODE) {
@@ -3137,6 +3133,9 @@ class YXmlElement extends YXmlFragment {
} else {
this.nodeName = 'UNDEFINED';
}
if (typeof arg2 === 'function') {
this._domFilter = arg2;
}
}
_copy () {
let struct = super._copy();
@@ -3157,7 +3156,7 @@ class YXmlElement extends YXmlFragment {
// get attribute via getAttribute for custom element support (some write something different in attr.value)
attributes.set(attr.name, dom.getAttribute(attr.name));
}
attributes = this._domFilter(dom.nodeName, attributes);
attributes = this._domFilter(dom, attributes);
attributes.forEach((value, name) => {
this.setAttribute(name, value);
});
@@ -3746,7 +3745,6 @@ class UndoManager {
this._scope = scope;
this._undoing = false;
this._redoing = false;
this._lastTransactionWasUndo = false;
const y = scope._y;
this.y = y;
y.on('afterTransaction', (y, transaction, remote) => {
@@ -3754,12 +3752,7 @@ class UndoManager {
let reverseOperation = new ReverseOperation(y, transaction);
if (!this._undoing) {
let lastUndoOp = this._undoBuffer.length > 0 ? this._undoBuffer[this._undoBuffer.length - 1] : null;
if (
this._redoing === false &&
this._lastTransactionWasUndo === false &&
lastUndoOp !== null &&
reverseOperation.created - lastUndoOp.created <= options.captureTimeout
) {
if (lastUndoOp !== null && reverseOperation.created - lastUndoOp.created <= options.captureTimeout) {
lastUndoOp.created = reverseOperation.created;
if (reverseOperation.toState !== null) {
lastUndoOp.toState = reverseOperation.toState;
@@ -3769,14 +3762,12 @@ class UndoManager {
}
reverseOperation.deletedStructs.forEach(lastUndoOp.deletedStructs.add, lastUndoOp.deletedStructs);
} else {
this._lastTransactionWasUndo = false;
this._undoBuffer.push(reverseOperation);
}
if (!this._redoing) {
this._redoBuffer = [];
}
} else {
this._lastTransactionWasUndo = true;
this._redoBuffer.push(reverseOperation);
}
}
@@ -4650,10 +4641,8 @@ class AbstractConnector {
}
function fromBinary (y, decoder) {
y.transact(function () {
integrateRemoteStructs(y, decoder);
readDeleteSet(y, decoder);
});
integrateRemoteStructs(y, decoder);
readDeleteSet(y, decoder);
}
function toBinary (y) {

File diff suppressed because one or more lines are too long