reimplement persistence approach
This commit is contained in:
@@ -1,10 +1,7 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
</head>
|
||||
<!-- jquery is not required for y-xml. It is just here for convenience, and to test batch operations. -->
|
||||
<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
|
||||
<script src="../yjs-dist.js"></script>
|
||||
<script src="./canvasjs.min.js"></script>
|
||||
<script src="./index.js"></script>
|
||||
</head>
|
||||
<body contenteditable="true">
|
||||
|
||||
@@ -1,67 +1,10 @@
|
||||
/* global Y, HTMLElement, customElements, CanvasJS */
|
||||
/* global Y */
|
||||
|
||||
window.onload = function () {
|
||||
window.yXmlType.bindToDom(document.body)
|
||||
let mt = document.createElement('magic-table')
|
||||
mt.innerHTML = '<table><tr><th>Amount</th></tr><tr><td>1</td></tr><tr><td>1</td></tr></table>'
|
||||
document.body.append(mt)
|
||||
}
|
||||
|
||||
class MagicTable extends HTMLElement {
|
||||
constructor () {
|
||||
super()
|
||||
this.createShadowRoot()
|
||||
}
|
||||
get _yjsHook () {
|
||||
return 'magic-table'
|
||||
}
|
||||
showTable () {
|
||||
this.shadowRoot.innerHTML = ''
|
||||
this.shadowRoot.append(document.createElement('content'))
|
||||
}
|
||||
showDiagram () {
|
||||
let dataPoints = []
|
||||
this.querySelectorAll('td').forEach(td => {
|
||||
let number = Number(td.textContent)
|
||||
dataPoints.push({
|
||||
x: (dataPoints.length + 1) * 10,
|
||||
y: number,
|
||||
label: '<magic-table> content'
|
||||
})
|
||||
})
|
||||
this.shadowRoot.innerHTML = ''
|
||||
var chart = new CanvasJS.Chart(this.shadowRoot,
|
||||
{
|
||||
title: {
|
||||
text: 'Bar chart'
|
||||
},
|
||||
data: [
|
||||
{
|
||||
type: 'bar',
|
||||
|
||||
dataPoints: dataPoints
|
||||
}
|
||||
]
|
||||
})
|
||||
|
||||
chart.render()
|
||||
|
||||
// this.shadowRoot.innerHTML = '<p>dtrn</p>'
|
||||
}
|
||||
}
|
||||
customElements.define('magic-table', MagicTable)
|
||||
|
||||
Y.XmlHook.addHook('magic-table', {
|
||||
fillType: function (dom, type) {
|
||||
type.set('table', new Y.XmlElement(dom.querySelector('table')))
|
||||
},
|
||||
createDom: function (type) {
|
||||
const table = type.get('table').getDom()
|
||||
const dom = document.createElement('magic-table')
|
||||
dom.insertBefore(table, null)
|
||||
return dom
|
||||
}
|
||||
})
|
||||
let persistence = new Y.IndexedDBPersistence()
|
||||
|
||||
// initialize a shared object. This function call returns a promise!
|
||||
let y = new Y({
|
||||
@@ -71,7 +14,7 @@ let y = new Y({
|
||||
room: 'html-editor-example6'
|
||||
// maxBufferLength: 100
|
||||
}
|
||||
})
|
||||
}, persistence)
|
||||
window.yXml = y
|
||||
window.yXmlType = y.define('xml', Y.XmlFragment)
|
||||
window.undoManager = new Y.utils.UndoManager(window.yXmlType, {
|
||||
|
||||
663
examples/package-lock.json
generated
663
examples/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@@ -9,12 +9,15 @@
|
||||
"author": "Kevin Jahns",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"monaco-editor": "^0.8.3"
|
||||
"monaco-editor": "^0.8.3",
|
||||
"rollup": "^0.52.3"
|
||||
},
|
||||
"devDependencies": {
|
||||
"standard": "^10.0.2"
|
||||
},
|
||||
"standard": {
|
||||
"ignore": ["bower_components"]
|
||||
"ignore": [
|
||||
"bower_components"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,7 +4,7 @@ import commonjs from 'rollup-plugin-commonjs'
|
||||
var pkg = require('./package.json')
|
||||
|
||||
export default {
|
||||
input: 'yjs-dist.esm',
|
||||
input: 'yjs-dist.mjs',
|
||||
name: 'Y',
|
||||
output: {
|
||||
file: 'yjs-dist.js',
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
|
||||
import Y from '../src/Y.js'
|
||||
import yWebsocketsClient from '../../y-websockets-client/src/y-websockets-client.js'
|
||||
import IndexedDBPersistence from '../../y-indexeddb/src/y-indexeddb.js'
|
||||
|
||||
Y.extend(yWebsocketsClient)
|
||||
Y.IndexedDBPersistence = IndexedDBPersistence
|
||||
|
||||
export default Y
|
||||
Reference in New Issue
Block a user