2016-01-15 00:01:56 +01:00

3 lines
5.9 KiB
JavaScript

!function e(t,n,r){function a(i,s){if(!n[i]){if(!t[i]){var u="function"==typeof require&&require;if(!s&&u)return u(i,!0);if(o)return o(i,!0);var c=new Error("Cannot find module '"+i+"'");throw c.code="MODULE_NOT_FOUND",c}var l=n[i]={exports:{}};t[i][0].call(l.exports,function(e){var n=t[i][1][e];return a(n?n:e)},l,l.exports,e,t,n,r)}return n[i].exports}for(var o="function"==typeof require&&require,i=0;i<r.length;i++)a(r[i]);return a}({1:[function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e){var t=function(){function t(n,a,o,i){var s=this;r(this,t),this._model=a.id,this.os=n,this.map=e.utils.copyObject(a.map),this.contents=o,this.opContents=i,this.eventHandler=new e.utils.EventHandler(function(t){var n=[];for(var r in t){var a,o=t[r],i="Delete"===o.struct?o.key:o.parentSub;if(null!=s.opContents[i]?!function(){var e=s.opContents[i];a=function(){return new Promise(function(t){s.os.requestTransaction(regeneratorRuntime.mark(function n(){var r;return regeneratorRuntime.wrap(function(n){for(;;)switch(n.prev=n.next){case 0:return n.delegateYield(this.getType(e),"t0",1);case 1:r=n.t0,t(r);case 3:case"end":return n.stop()}},n,this)}))})}}():a=s.contents[i],"Insert"===o.struct){if(null===o.left){null!=o.opContent?(delete s.contents[i],o.deleted?delete s.opContents[i]:s.opContents[i]=o.opContent):(delete s.opContents[i],o.deleted?delete s.contents[i]:s.contents[i]=o.content),s.map[i]=o.id;var u;u=void 0===a?{name:i,object:s,type:"add"}:{name:i,object:s,oldValue:a,type:"update"},n.push(u)}}else{if("Delete"!==o.struct)throw new Error("Unexpected Operation!");if(e.utils.compareIds(s.map[i],o.target)){delete s.opContents[i],delete s.contents[i];var c={name:i,object:s,oldValue:a,type:"delete"};n.push(c)}}}n.length>0&&s.eventHandler.callEventListeners(n)})}return o(t,[{key:"get",value:function(e){var t=this;if(null==e)throw new Error("You must specify key!");return null==this.opContents[e]?this.contents[e]:new Promise(function(n){var r=t.opContents[e];t.os.requestTransaction(regeneratorRuntime.mark(function a(){var e;return regeneratorRuntime.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return t.delegateYield(this.getType(r),"t0",1);case 1:e=t.t0,n(e);case 3:case"end":return t.stop()}},a,this)}))})}},{key:"getPrimitive",value:function(t){return null==t?e.utils.copyObject(this.contents):this.contents[t]}},{key:"delete",value:function(t){var n=this.map[t];if(null!=n){var r={target:n,struct:"Delete"},a=this.eventHandler,o=e.utils.copyObject(r);o.key=t,a.awaitAndPrematurelyCall([o]),this.os.requestTransaction(regeneratorRuntime.mark(function i(){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.delegateYield(this.applyCreatedOperations([r]),"t0",1);case 1:a.awaitedDeletes(1);case 2:case"end":return e.stop()}},i,this)}))}}},{key:"set",value:function(t,n){var r=this,a=this.map[t]||null,o={left:null,right:a,origin:null,parent:this._model,parentSub:t,struct:"Insert"};return new Promise(function(t){if(n instanceof e.utils.CustomType)r.os.requestTransaction(regeneratorRuntime.mark(function i(){var e;return regeneratorRuntime.wrap(function(r){for(;;)switch(r.prev=r.next){case 0:return r.delegateYield(this.createType(n),"t0",1);case 1:return e=r.t0,o.opContent=e._model,o.id=this.store.getNextOpId(),r.delegateYield(this.applyCreatedOperations([o]),"t1",5);case 5:t(e);case 6:case"end":return r.stop()}},i,this)}));else{o.content=n,o.id=r.os.getNextOpId();var a=r.eventHandler;a.awaitAndPrematurelyCall([o]),r.os.requestTransaction(regeneratorRuntime.mark(function s(){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.delegateYield(this.applyCreatedOperations([o]),"t0",1);case 1:a.awaitedInserts(1);case 2:case"end":return e.stop()}},s,this)})),t(n)}})}},{key:"observe",value:function(e){this.eventHandler.addEventListener(e)}},{key:"unobserve",value:function(e){this.eventHandler.removeEventListener(e)}},{key:"observePath",value:function(t,n){function r(e){for(var t=0;t<e.length;t++){var r=e[t];if(r.name===o){var i=a.get(o);i instanceof Promise?i.then(n):n(i)}}}var a=this;if(t.length<1)throw new Error("Path must contain at least one element!");if(1===t.length){var o=t[0],i=a.get(o);return i instanceof Promise?i.then(n):n(i),this.observe(r),Promise.resolve(function(){a.unobserve(n)})}var s,u=function(){var r=a.get(t[0]);return!r instanceof Promise&&(r=a.set(t[0],e.Map)),r.then(function(e){return e.observePath(t.slice(1),n)}).then(function(e){return s=e,Promise.resolve()})},c=function(e){for(var n in e){var r=e[n];r.name===t[0]&&(null!=s&&s(),("add"===r.type||"update"===r.type)&&u())}};return a.observe(c),u().then(new Promise.resolve(function(){null!=s&&s(),a.unobserve(c)}))}},{key:"_changed",value:regeneratorRuntime.mark(function n(e,t){var r;return regeneratorRuntime.wrap(function(n){for(;;)switch(n.prev=n.next){case 0:if("Delete"!==t.struct){n.next=4;break}return n.delegateYield(e.getOperation(t.target),"t0",2);case 2:r=n.t0,t.key=r.parentSub;case 4:this.eventHandler.receivedOp(t);case 5:case"end":return n.stop()}},n,this)})}]),t}();e.extend("Map",new e.utils.CustomType({name:"Map","class":t,struct:"Map",initType:regeneratorRuntime.mark(function n(e,r){var a,o,i,s,u;return regeneratorRuntime.wrap(function(n){for(;;)switch(n.prev=n.next){case 0:a={},o={},i=r.map,n.t0=regeneratorRuntime.keys(i);case 4:if((n.t1=n.t0()).done){n.next=11;break}return s=n.t1.value,n.delegateYield(this.getOperation(i[s]),"t2",7);case 7:u=n.t2,null!=u.opContent?o[s]=u.opContent:a[s]=u.content,n.next=4;break;case 11:return n.abrupt("return",new t(e,r,a,o));case 12:case"end":return n.stop()}},n,this)})}))}var o=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();t.exports=a,"undefined"!=typeof Y&&a(Y)},{}]},{},[1]);
//# sourceMappingURL=y-map.js.map