125 lines
3.9 KiB
JavaScript
125 lines
3.9 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, initial_user_id) {
|
|
var IwcConnector, duiClient, init, iwcHandler, received_HB;
|
|
iwcHandler = {};
|
|
duiClient = new DUIClient();
|
|
duiClient.connect(function(intent) {
|
|
var _ref;
|
|
return (_ref = iwcHandler[intent.action]) != null ? _ref.map(function(f) {
|
|
return setTimeout(function() {
|
|
return f(intent);
|
|
}, 0);
|
|
}) : void 0;
|
|
});
|
|
duiClient.initOK();
|
|
received_HB = null;
|
|
IwcConnector = (function() {
|
|
function IwcConnector(engine, HB, execution_listener, yatta) {
|
|
var receiveHB, receive_, sendHistoryBuffer, 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) {
|
|
if (Object.getOwnPropertyNames(_this.initialized).length !== 0) {
|
|
return _this.send(o);
|
|
}
|
|
};
|
|
})(this);
|
|
this.execution_listener.push(send_);
|
|
this.initialized = {};
|
|
receiveHB = (function(_this) {
|
|
return function(json) {
|
|
var him;
|
|
HB = json.extras.HB;
|
|
him = json.extras.user;
|
|
_this.engine.applyOpsCheckDouble(HB);
|
|
return _this.initialized[him] = true;
|
|
};
|
|
})(this);
|
|
iwcHandler["Yatta_push_HB_element"] = [receiveHB];
|
|
this.sendIwcIntent("Yatta_get_HB_element", {});
|
|
receive_ = (function(_this) {
|
|
return function(intent) {
|
|
var o;
|
|
o = intent.extras;
|
|
if (_this.initialized[o.uid.creator] != null) {
|
|
return _this.receive(o);
|
|
}
|
|
};
|
|
})(this);
|
|
this.iwcHandler["Yatta_new_operation"] = [receive_];
|
|
if (received_HB != null) {
|
|
this.engine.applyOpsCheckDouble(received_HB);
|
|
}
|
|
sendHistoryBuffer = (function(_this) {
|
|
return function() {
|
|
var json;
|
|
json = {
|
|
HB: _this.yatta.getHistoryBuffer()._encode(),
|
|
user: _this.yatta.getUserId()
|
|
};
|
|
return _this.sendIwcIntent("Yatta_push_HB_element", json);
|
|
};
|
|
})(this);
|
|
this.iwcHandler["Yatta_get_HB_element"] = [sendHistoryBuffer];
|
|
}
|
|
|
|
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: "",
|
|
flags: ["PUBLISH_GLOBAL"],
|
|
extras: content
|
|
};
|
|
return this.duiClient.sendIntent(intent);
|
|
};
|
|
|
|
return IwcConnector;
|
|
|
|
})();
|
|
init = function() {
|
|
var proposed_user_id;
|
|
proposed_user_id = null;
|
|
if (initial_user_id != null) {
|
|
proposed_user_id = initial_user_id;
|
|
} else {
|
|
proposed_user_id = Math.floor(Math.random() * 1000000);
|
|
}
|
|
return callback(IwcConnector, proposed_user_id);
|
|
};
|
|
setTimeout(init, 5000);
|
|
return void 0;
|
|
};
|
|
|
|
module.exports = createIwcConnector;
|
|
|
|
if (typeof window !== "undefined" && window !== null) {
|
|
if (window.Y == null) {
|
|
window.Y = {};
|
|
}
|
|
window.Y.createIwcConnector = createIwcConnector;
|
|
}
|
|
|
|
|
|
},{}]},{},[1]) |