Files
plastic-hub-dev-node-saturn 538369cff7 latest
2021-05-12 18:35:18 +02:00

6 lines
1.6 KiB
JavaScript

//>>built
define("dojo/store/Observable",["../_base/kernel","../_base/lang","../when","../_base/array"],function(d,h,p,u){d=function(b){function d(a,f){var c=b[a];c&&(b[a]=function(b){if(q)return c.apply(this,arguments);q=!0;try{var a=c.apply(this,arguments);p(a,function(a){f("object"==typeof a&&a||b)});return a}finally{q=!1}})}var m=[],v=0;b=h.delegate(b);b.notify=function(a,b){v++;for(var c=m.slice(),f=0,l=c.length;f<l;f++)c[f](a,b)};var w=b.query;b.query=function(a,f){f=f||{};var c=w.apply(this,arguments);
if(c&&c.forEach){var d=h.mixin({},f);delete d.start;delete d.count;var l=b.queryEngine&&b.queryEngine(a,d),q=v,r=[],t;c.observe=function(a,d){1==r.push(a)&&m.push(t=function(a,h){p(c,function(e){var c=e.length!=f.count,g,m;if(++q!=v)throw Error("Query is out of date, you must observe() the query prior to any data modifications");var p,n=-1,k=-1;if(void 0!==h)for(g=0,m=e.length;g<m;g++){var t=e[g];if(b.getIdentity(t)==h){p=t;n=g;!l&&a||e.splice(g,1);break}}l?a&&(l.matches?l.matches(a):l([a]).length)&&
(g=-1<n?n:e.length,e.splice(g,0,a),k=u.indexOf(l(e),a),e.splice(g,1),f.start&&0==k||!c&&k==e.length?k=-1:e.splice(k,0,a)):a&&(void 0!==h?k=n:f.start||(k=b.defaultIndex||0,e.splice(k,0,a)));if((-1<n||-1<k)&&(d||!l||n!=k))for(c=r.slice(),g=0;e=c[g];g++)e(a||p,n,k)})});var h={};h.remove=h.cancel=function(){var b=u.indexOf(r,a);-1<b&&(r.splice(b,1),r.length||m.splice(u.indexOf(m,t),1))};return h}}return c};var q;d("put",function(a){b.notify(a,b.getIdentity(a))});d("add",function(a){b.notify(a)});d("remove",
function(a){b.notify(void 0,a)});return b};h.setObject("dojo.store.Observable",d);return d});
//# sourceMappingURL=Observable.js.map