yjs/dest/browser/Connectors/IwcConnector.js
2014-08-04 23:35:50 +02:00

132 lines
13 KiB
JavaScript

(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);throw new Error("Cannot find module '"+o+"'")}var f=n[o]={exports:{}};t[o][0].call(f.exports,function(e){var n=t[o][1][e];return s(n?n:e)},f,f.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
var createIwcConnector;
createIwcConnector = function(callback) {
var IwcConnector, duiClient, get_root_intent, init, iwcHandler, received_HB, root_element;
iwcHandler = {};
duiClient = new DUIClient();
duiClient.connect((function(_this) {
return function(intent) {
var _ref;
console.log("intent received iwc: " + (JSON.stringify(intent)));
console.log("" + (JSON.stringify(_this.iwcHandler)));
return (_ref = iwcHandler[intent.action]) != null ? _ref.map(function(f) {
return setTimeout(function() {
return f(intent);
}, 0);
}) : void 0;
};
})(this));
duiClient.initOK();
root_element = null;
received_HB = null;
IwcConnector = (function() {
function IwcConnector(engine, HB, execution_listener, yatta) {
var receive_, sendRootElement, send_;
this.engine = engine;
this.HB = HB;
this.execution_listener = execution_listener;
this.yatta = yatta;
this.duiClient = duiClient;
this.iwcHandler = iwcHandler;
send_ = (function(_this) {
return function(o) {
return _this.send(o);
};
})(this);
this.execution_listener.push(send_);
receive_ = (function(_this) {
return function(intent) {
var o;
o = intent.extras;
return _this.receive(o);
};
})(this);
this.iwcHandler["Yatta_new_operation"] = [receive_];
if (root_element != null) {
this.engine.applyOps(received_HB);
}
sendRootElement = (function(_this) {
return function() {
var json;
json = {
root_element: _this.yatta.getRootElement(),
HB: _this.yatta.getHistoryBuffer()._encode()
};
return _this.sendIwcIntent("Yatta_push_root_element", json);
};
})(this);
this.iwcHandler["Yatta_get_root_element"] = [sendRootElement];
}
IwcConnector.prototype.getRootElement = function() {
return root_element;
};
IwcConnector.prototype.send = function(o) {
if (o.uid.creator === this.HB.getUserId() && (typeof o.uid.op_number !== "string")) {
return this.sendIwcIntent("Yatta_new_operation", o);
}
};
IwcConnector.prototype.receive = function(o) {
if (o.uid.creator !== this.HB.getUserId()) {
return this.engine.applyOp(o);
}
};
IwcConnector.prototype.sendIwcIntent = function(action_name, content) {
var intent;
intent = {
action: action_name,
component: "",
data: "",
dataType: "",
extras: content
};
return this.duiClient.publishToUser(intent);
};
IwcConnector.prototype.sync = function() {
throw new Error("Can't use this a.t.m.");
};
return IwcConnector;
})();
get_root_intent = {
action: "Yatta_get_root_element",
component: "",
data: "",
dataType: "",
extras: {}
};
init = function() {
var is_initialized, receiveRootElement;
duiClient.publishToUser(get_root_intent);
is_initialized = false;
receiveRootElement = function(json) {
root_element = json != null ? json.extras.root_element : void 0;
received_HB = json != null ? json.extras.HB : void 0;
if (!is_initialized) {
is_initialized = true;
return callback(IwcConnector);
}
};
iwcHandler["Yatta_push_root_element"] = [receiveRootElement];
return setTimeout(receiveRootElement, 3000);
};
setTimeout(init, 10);
return void 0;
};
module.exports = createIwcConnector;
if (typeof window !== "undefined" && window !== null) {
window.createConnector = createIwcConnector;
}
},{}]},{},[1])
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL2Rtb25hZC9Ecm9wYm94L1lhdHRhIS9ub2RlX21vZHVsZXMvYnJvd3NlcmlmeS9ub2RlX21vZHVsZXMvYnJvd3Nlci1wYWNrL19wcmVsdWRlLmpzIiwiL2hvbWUvZG1vbmFkL0Ryb3Bib3gvWWF0dGEhL2xpYi9Db25uZWN0b3JzL0l3Y0Nvbm5lY3Rvci5jb2ZmZWUiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUNDQSxJQUFBLGtCQUFBOztBQUFBLGtCQUFBLEdBQXFCLFNBQUMsUUFBRCxHQUFBO0FBQ25CLE1BQUEscUZBQUE7QUFBQSxFQUFBLFVBQUEsR0FBYSxFQUFiLENBQUE7QUFBQSxFQUNBLFNBQUEsR0FBZ0IsSUFBQSxTQUFBLENBQUEsQ0FEaEIsQ0FBQTtBQUFBLEVBR0EsU0FBUyxDQUFDLE9BQVYsQ0FBa0IsQ0FBQSxTQUFBLEtBQUEsR0FBQTtXQUFBLFNBQUMsTUFBRCxHQUFBO0FBQ2hCLFVBQUEsSUFBQTtBQUFBLE1BQUEsT0FBTyxDQUFDLEdBQVIsQ0FBYSx1QkFBQSxHQUFzQixDQUFBLElBQUksQ0FBQyxTQUFMLENBQWUsTUFBZixDQUFBLENBQW5DLENBQUEsQ0FBQTtBQUFBLE1BQ0EsT0FBTyxDQUFDLEdBQVIsQ0FBWSxFQUFBLEdBQUUsQ0FBQSxJQUFJLENBQUMsU0FBTCxDQUFlLEtBQUMsQ0FBQSxVQUFoQixDQUFBLENBQWQsQ0FEQSxDQUFBOzhEQUV5QixDQUFFLEdBQTNCLENBQStCLFNBQUMsQ0FBRCxHQUFBO2VBQzdCLFVBQUEsQ0FBVyxTQUFBLEdBQUE7aUJBQ1AsQ0FBQSxDQUFFLE1BQUYsRUFETztRQUFBLENBQVgsRUFFSSxDQUZKLEVBRDZCO01BQUEsQ0FBL0IsV0FIZ0I7SUFBQSxFQUFBO0VBQUEsQ0FBQSxDQUFBLENBQUEsSUFBQSxDQUFsQixDQUhBLENBQUE7QUFBQSxFQVdBLFNBQVMsQ0FBQyxNQUFWLENBQUEsQ0FYQSxDQUFBO0FBQUEsRUFhQSxZQUFBLEdBQWUsSUFiZixDQUFBO0FBQUEsRUFjQSxX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O0lBQUEsQ0FIckIsQ0FBQTtBQUFBLElBU0EsVUFBVyxDQUFBLHlCQUFBLENBQVgsR0FBd0MsQ0FBQyxrQkFBRCxDQVR4QyxDQUFBO1dBVUEsVUFBQSxDQUFXLGtCQUFYLEVBQStCLElBQS9CLEVBWEs7RUFBQSxDQTdFUCxDQUFBO0FBQUEsRUEwRkEsVUFBQSxDQUFXLElBQVgsRUFBaUIsRUFBakIsQ0ExRkEsQ0FBQTtTQTRGQSxPQTdGbUI7QUFBQSxDQUFyQixDQUFBOztBQUFBLE1BOEZNLENBQUMsT0FBUCxHQUFpQixrQkE5RmpCLENBQUE7OztFQStGQSxNQUFNLENBQUUsZUFBUixHQUEwQjtDQS9GMUIiLCJmaWxlIjoiZ2VuZXJhdGVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbiBlKHQsbixyKXtmdW5jdGlvbiBzKG8sdSl7aWYoIW5bb10pe2lmKCF0W29dKXt2YXIgYT10eXBlb2YgcmVxdWlyZT09XCJmdW5jdGlvblwiJiZyZXF1aXJlO2lmKCF1JiZhKXJldHVybiBhKG8sITApO2lmKGkpcmV0dXJuIGkobywhMCk7dGhyb3cgbmV3IEVycm9yKFwiQ2Fubm90IGZpbmQgbW9kdWxlICdcIitvK1wiJ1wiKX12YXIgZj1uW29dPXtleHBvcnRzOnt9fTt0W29dWzBdLmNhbGwoZi5leHBvcnRzLGZ1bmN0aW9uKGUpe3ZhciBuPXRbb11bMV1bZV07cmV0dXJuIHMobj9uOmUpfSxmLGYuZXhwb3J0cyxlLHQsbixyKX1yZXR1cm4gbltvXS5leHBvcnRzfXZhciBpPXR5cGVvZiByZXF1aXJlPT1cImZ1bmN0aW9uXCImJnJlcXVpcmU7Zm9yKHZhciBvPTA7bzxyLmxlbmd0aDtvKyspcyhyW29dKTtyZXR1cm4gc30pIiwiXG5jcmVhdGVJd2NDb25uZWN0b3IgPSAoY2FsbGJhY2spLT5cbiAgaXdjSGFuZGxlciA9IHt9XG4gIGR1aUNsaWVudCA9IG5ldyBEVUlDbGllbnQoKVxuICAjQGR1aUNsaWVudCA9IG5ldyBpd2MuQ2xpZW50KClcbiAgZHVpQ2xpZW50LmNvbm5lY3QgKGludGVudCk9PlxuICAgIGNvbnNvbGUubG9nIFwiaW50ZW50IHJlY2VpdmVkIGl3YzogI3tKU09OLnN0cmluZ2lmeShpbnRlbnQpfVwiXG4gICAgY29uc29sZS5sb2cgXCIje0pTT04uc3RyaW5naWZ5KEBpd2NIYW5kbGVyKX1cIlxuICAgIGl3Y0hhbmRsZXJbaW50ZW50LmFjdGlvbl0/Lm1hcCAoZiktPlxuICAgICAgc2V0VGltZW91dCAoKS0+XG4gICAgICAgICAgZiBpbnRlbnRcbiAgICAgICAgLCAwXG5cbiAgZHVpQ2xpZW50LmluaXRPSygpXG5cbiAgcm9vdF9lbGVtZW50ID0gbnVsbFxuICByZWNlaXZlZF9IQiA9IG51bGxcblxuICAjXG4gICMgVGhlIEl3YyBDb25uZWN0b3IgYWRkcyBzdXBwb3J0IGZvciB0aGUgSW50ZXItV2lkZ2V0LUNvbW11bmljYXRpb24gcHJvdG9jb2wgdGhhdCBpcyB1c2VkIGluIHRoZSBSb2xlLVNESy5cbiAgIyBAc2VlIGh0dHA6Ly9kYmlzLnJ3dGgtYWFjaGVuLmRlL2Ntcy9wcm9qZWN0cy90aGUteG1wcC1leHBlcmllbmNlI2ludGVyd2lkZ2V0LWNvbW11bmljYXRpb25cbiAgIyBAc2VlIGh0dHA6Ly9kYmlzLnJ3dGgtYWFjaGVuLmRlL2Ntcy9wcm9qZWN0cy9ST0xFXG4gICNcbiAgY2xhc3MgSXdjQ29ubmVjdG9yXG4gICAgY29uc3RydWN0b3I6IChAZW5naW5lLCBASEIsIEBleGVjdXRpb25fbGlzdGVuZXIsIEB5YXR0YSktPlxuICAgICAgQGR1aUNsaWVudCA9IGR1aUNsaWVudFxuICAgICAgQGl3Y0hhbmRsZXIgPSBpd2NIYW5kbGVyXG5cbiAgICAgIHNlbmRfID0gKG8pPT5cbiAgICAgICAgQHNlbmQgb1xuICAgICAgQGV4ZWN1dGlvbl9saXN0ZW5lci5wdXNoIHNlbmRfXG5cbiAgICAgIHJlY2VpdmVfID0gKGludGVudCk9PlxuICAgICAgICBvID0gaW50ZW50LmV4dHJhc1xuICAgICAgICBAcmVjZWl2ZSBvXG4gICAgICBAaXdjSGFuZGxlcltcIllhdHRhX25ld19vcGVyYXRpb25cIl0gPSBbcmVjZWl2ZV9dXG5cbiAgICAgIGlmIHJvb3RfZWxlbWVudD9cbiAgICAgICAgQGVuZ2luZS5hcHBseU9wcyByZWNlaXZlZF9IQlxuXG4gICAgICBzZW5kUm9vdEVsZW1lbnQgPSAoKT0+XG4gICAgICAgIGpzb24gPSB7XG4gICAgICAgICAgICByb290X2VsZW1lbnQgOiBAeWF0dGEuZ2V0Um9vdEVsZW1lbnQoKVxuICAgICAgICAgICAgSEIgOiBAeWF0dGEuZ2V0SGlzdG9yeUJ1ZmZlcigpLl9lbmNvZGUoKVxuICAgICAgICAgIH1cbiAgICAgICAgQHNlbmRJd2NJbnRlbnQgXCJZYXR0YV9wdXNoX3Jvb3RfZWxlbWVudFwiLCBqc29uXG4gICAgICBAaXdjSGFuZGxlcltcIllhdHRhX2dldF9yb290X2VsZW1lbnRcIl0gPSBbc2VuZFJvb3RFbGVtZW50XVxuXG4gICAgZ2V0Um9vdEVsZW1lbnQ6ICgpLT5cbiAgICAgIHJvb3RfZWxlbWVudFxuXG4gICAgc2VuZDogKG8pLT5cbiAgICAgIGlmIG8udWlkLmNyZWF0b3IgaXMgQEhCLmdldFVzZXJJZCgpIGFuZCAodHlwZW9mIG8udWlkLm9wX251bWJlciBpc250IFwic3RyaW5nXCIpXG4gICAgICAgIEBzZW5kSXdjSW50ZW50IFwiWWF0dGFfbmV3X29wZXJhdGlvblwiLCBvXG5cbiAgICByZWNlaXZlOiAobyktPlxuICAgICAgaWYgby51aWQuY3JlYXRvciBpc250IEBIQi5nZXRVc2VySWQoKVxuICAgICAgICBAZW5naW5lLmFwcGx5T3Agb1xuXG4gICAgc2VuZEl3Y0ludGVudDogKGFjdGlvbl9uYW1lLCBjb250ZW50KS0+XG4gICAgICBpbnRlbnQgPVxuICAgICAgICBhY3Rpb246IGFjdGlvbl9uYW1lXG4gICAgICAgIGNvbXBvbmVudDogXCJcIlxuICAgICAgICBkYXRhOiBcIlwiXG4gICAgICAgIGRhdGFUeXBlOiBcIlwiXG4gICAgICAgIGV4dHJhczogY29udGVudFxuXG4gICAgICBAZHVpQ2xpZW50LnB1Ymxpc2hUb1VzZXIoaW50ZW50KVxuXG4gICAgc3luYzogKCktPlxuICAgICAgdGhyb3cgbmV3IEVycm9yIFwiQ2FuJ3QgdXNlIHRoaXMgYS50Lm0uXCJcblxuICBnZXRfcm9vdF9pbnRlbnQgPVxuICAgIGFjdGlvbjogXCJZYXR0YV9nZXRfcm9vdF9lbGVtZW50XCJcbiAgICBjb21wb25lbnQ6IFwiXCJcbiAgICBkYXRhOiBcIlwiXG4gICAgZGF0YVR5cGU6IFwiXCJcbiAgICBleHRyYXM6IHt9XG5cbiAgaW5pdCA9ICgpLT5cbiAgICBkdWlDbGllbnQucHVibGlzaFRvVXNlcihnZXRfcm9vdF9pbnRlbnQpXG5cbiAgICBpc19pbml0aWFsaXplZCA9IGZhbHNlXG4gICAgcmVjZWl2ZVJvb3RFbGVtZW50ID0gKGpzb24pLT5cbiAgICAgIHJvb3RfZWxlbWVudCA9IGpzb24/LmV4dHJhcy5yb290X2VsZW1lbnRcbiAgICAgIHJlY2VpdmVkX0hCID0ganNvbj8uZXh0cmFzLkhCXG4gICAgICBpZiBub3QgaXNfaW5pdGlhbGl6ZWRcbiAgICAgICAgaXNfaW5pdGlhbGl6ZWQgPSB0cnVlXG4gICAgICAgIGNhbGxiYWNrIEl3Y0Nvbm5lY3RvclxuICAgIGl3Y0hhbmRsZXJbXCJZYXR0YV9wdXNoX3Jvb3RfZWxlbWVudFwiXSA9IFtyZWNlaXZlUm9vdEVsZW1lbnRdXG4gICAgc2V0VGltZW91dCByZWNlaXZlUm9vdEVsZW1lbnQsIDMwMDBcblxuICBzZXRUaW1lb3V0IGluaXQsIDEwXG5cbiAgdW5kZWZpbmVkXG5tb2R1bGUuZXhwb3J0cyA9IGNyZWF0ZUl3Y0Nvbm5lY3Rvclxud2luZG93Py5jcmVhdGVDb25uZWN0b3IgPSBjcmVhdGVJd2NDb25uZWN0b3JcblxuIl19