Compare commits

..

3 Commits

Author SHA1 Message Date
Kevin Jahns
5e0518e1ec v13.0.0-43 -- distribution files 2017-12-21 16:06:44 +01:00
Kevin Jahns
08f37a86e3 13.0.0-43 2017-12-21 16:06:29 +01:00
Kevin Jahns
f5d17e6236 filter y-xml when domFilter is set 2017-12-21 16:05:50 +01:00
10 changed files with 925 additions and 892 deletions

2
package-lock.json generated
View File

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

View File

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

View File

@@ -3,7 +3,7 @@ import commonjs from 'rollup-plugin-commonjs'
import multiEntry from 'rollup-plugin-multi-entry'
export default {
input: 'test/*.tests.js',
input: 'test/y-xml.tests.js',
name: 'y-tests',
sourcemap: true,
output: {
@@ -11,12 +11,12 @@ export default {
format: 'umd'
},
plugins: [
multiEntry(),
nodeResolve({
main: true,
module: true,
browser: true
}),
commonjs(),
multiEntry()
commonjs()
]
}

View File

@@ -143,6 +143,23 @@ export default class YXmlFragment extends YArray {
}
setDomFilter (f) {
this._domFilter = f
let attributes = new Map()
if (this.getAttributes !== undefined) {
let attrs = this.getAttributes()
for (let key in attrs) {
attributes.set(key, attrs[key])
}
}
let result = this._domFilter(this.nodeName, new Map(attributes))
if (result === null) {
this._delete(this._y)
} else {
attributes.forEach((value, key) => {
if (!result.has(key)) {
this.removeAttribute(key)
}
})
}
this.forEach(xml => {
xml.setDomFilter(f)
})

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-42
* @version v13.0.0-43
* @license MIT
*/
@@ -3885,6 +3885,23 @@ class YXmlFragment extends YArray {
}
setDomFilter (f) {
this._domFilter = f;
let attributes = new Map();
if (this.getAttributes !== undefined) {
let attrs = this.getAttributes();
for (let key in attrs) {
attributes.set(key, attrs[key]);
}
}
let result = this._domFilter(this.nodeName, new Map(attributes));
if (result === null) {
this._delete(this._y);
} else {
attributes.forEach((value, key) => {
if (!result.has(key)) {
this.removeAttribute(key);
}
});
}
this.forEach(xml => {
xml.setDomFilter(f);
});

File diff suppressed because one or more lines are too long

1757
y.test.js

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long