diff --git a/www/sheet/index.html b/www/sheet/index.html
deleted file mode 100644
index e32ca87cd..000000000
--- a/www/sheet/index.html
+++ /dev/null
@@ -1,29 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/www/sheet/inner.html b/www/sheet/inner.html
deleted file mode 100644
index 3b07cddea..000000000
--- a/www/sheet/inner.html
+++ /dev/null
@@ -1,36 +0,0 @@
-
-
-
-
-
-
-
-
- jQuery.sheet - The Ajax Spreadsheet DTS Lazy Loading
-
-
-
-
-
-
-
-
-
diff --git a/www/sheet/main.js b/www/sheet/main.js
deleted file mode 100644
index 4b6f7fcd6..000000000
--- a/www/sheet/main.js
+++ /dev/null
@@ -1,138 +0,0 @@
-define([
- '/api/config?cb=' + Math.random().toString(16).substring(2),
- '/common/messages.js',
- '/common/crypto.js',
- '/common/toolbar.js',
- '/common/chainpad.js',
- '/bower_components/jquery/dist/jquery.min.js',
- '/common/otaml.js',
- '/customize/sheet.js'
-], function (Config, Messages, Crypto, Toolbar) {
- var $ = window.jQuery;
- var ChainPad = window.ChainPad;
- var Otaml = window.Otaml;
-
- var module = { exports: {} };
-
- var sheetToJson = function (ifrWindow) {
- var xx = ifrWindow.sh[0].jS;
- var m = [];
- for (var i = 0; i < xx.spreadsheets.length; i++) {
- m[i]=[];
- var sheet = xx.spreadsheets[i];
- for (var j = 1; j < sheet.length; j++) {
- m[i][j]=[];
- var row = sheet[j];
- for (var k = 1; k < row.length; k++) {
- var col = row[k];
- m[i][j][k] = { value: col.value, formula: col.formula };
- }
- }
- }
- return m;
- };
-
- var jsonToSheet = function (ifrWindow, json) {
- var xx = ifrWindow.sh[0].jS;
- for (var i = 0; i < xx.spreadsheets.length; i++) {
- var sheet = xx.spreadsheets[i];
- for (var j = 1; j < sheet.length; j++) {
- var row = sheet[j];
- for (var k = 1; k < row.length; k++) {
- var col = row[k];
- var jcol = json[i][j][k];
- if (jcol.value === col.value && jcol.formula === col.formula) { continue; }
- col.value = jcol.value;
- col.formula = jcol.formula;
- col.displayValue();
- }
- }
- }
- };
-
- var applyChange = function(ctx, oldval, newval) {
- if (oldval === newval) {
- return;
- }
-
- var commonStart = 0;
- while (oldval.charAt(commonStart) === newval.charAt(commonStart)) {
- commonStart++;
- }
-
- var commonEnd = 0;
- while (oldval.charAt(oldval.length - 1 - commonEnd) === newval.charAt(newval.length - 1 - commonEnd) &&
- commonEnd + commonStart < oldval.length && commonEnd + commonStart < newval.length) {
- commonEnd++;
- }
-
- if (oldval.length !== commonStart + commonEnd) {
- ctx.remove(commonStart, oldval.length - commonStart - commonEnd);
- }
- if (newval.length !== commonStart + commonEnd) {
- ctx.insert(commonStart, newval.slice(commonStart, newval.length - commonEnd));
- }
- };
-
- $(function () {
-
- if (window.location.href.indexOf('#') === -1) {
- window.location.href = window.location.href + '#' + Crypto.genKey();
- }
- $(window).on('hashchange', function() {
- window.location.reload();
- });
-
- var $sheetJson = $('#sheet-json');
- var ifrw = $('iframe')[0].contentWindow;
- var sheetEvent = function (realtime) {
- var sheetJson = JSON.stringify(sheetToJson(ifrw));
- applyChange(realtime, realtime.getUserDoc(), sheetJson);
- $sheetJson.text(sheetJson);
- };
-
- var eventPending = false;
- var realtimeEvent = function (realtime) {
- if (eventPending) { return; }
- eventPending = true;
- setTimeout(function () {
- eventPending = false;
- try{
- var data = window.data = realtime.getUserDoc();
- $sheetJson.text(data);
- var json = JSON.parse(data);
- jsonToSheet(ifrw, json);
- }catch(e) { console.log(e.stack); }
- }, 0);
- };
-
- var key = Crypto.parseKey(window.location.hash.substring(1));
- var myUserName = Crypto.rand64(8);
-
- var socket = new WebSocket(Config.websocketURL);
- socket.onopen = function () {
- var realtime = ChainPad.create(
- myUserName, 'x', key.channel, '', { transformFunction: Otaml.transform });
- socket.onmessage = function (evt) {
- var message = Crypto.decrypt(evt.data, key.cryptKey);
- realtime.message(message);
- };
- realtime.onMessage(function (message) {
- message = Crypto.encrypt(message, key.cryptKey);
- try {
- socket.send(message);
- } catch (e) {
- console.log(e.stack);
- }
- });
- ifrw.sh.on('sheetCellEdited', function () { sheetEvent(realtime); });
- sheetEvent(realtime);
- realtime.onPatch(function () { realtimeEvent(realtime); });
-
- ifrw.$('.jSTitle').html('');
- Toolbar.create(ifrw.$('.jSTitle'), myUserName, realtime);
-
- realtime.start();
- };
- });
-});