UNPKG

azure-devops-ui

Version:

React components for building web UI in Azure DevOps

1 lines 2.69 kB
import{__extends,__spreadArray}from"tslib";import{Observable,ObservableLike}from"../Core/Observable";var AggregateItemProvider=function(a){function e(){var e=null!==a&&a.apply(this,arguments)||this;return e.internalCollections=[],e.items=[],e}return __extends(e,a),Object.defineProperty(e.prototype,"length",{get:function(){return this.items.length},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"value",{get:function(){return this.items},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"collections",{get:function(){return this.internalCollections},enumerable:!1,configurable:!0}),e.prototype.push=function(e){var t,r;ObservableLike.isObservable(e)?(r=e,t=this.getSubscriber(this.internalCollections.length),r={items:r.value,provider:r,subscriber:t},this.subscriberCount&&ObservableLike.subscribe(r.provider,t)):e.value?r={items:e.value,provider:e}:e.length&&(r={items:e}),r&&(this.internalCollections.push(r),r.items.length)&&((t=this.items).push.apply(t,r.items),this.subscriberCount)&&this.notify({addedItems:r.items,index:this.items.length-r.items.length},"push")},e.prototype.getItem=function(e){for(var t=0;t<this.internalCollections.length&&0+(this.internalCollections[t].provider||this.internalCollections[t].items).length<e;)t++;if(t<this.internalCollections.length)return this.internalCollections[t].provider&&this.internalCollections[t].provider.getItem?this.internalCollections[t].provider.getItem(e):this.internalCollections[t].items[e]},e.prototype.subscribe=function(e,t){e=a.prototype.subscribe.call(this,e,t);if(1===this.subscriberCount){for(var r=0,i=this.internalCollections;r<i.length;r++)(l=i[r]).subscriber&&l.provider&&l.provider.subscribe&&l.provider.subscribe(l.subscriber);for(var s=[],n=0,o=this.internalCollections;n<o.length;n++){var l=o[n];s.push.apply(s,l.items)}(t=this.items).splice.apply(t,__spreadArray([0,this.items.length],s,!1))}return e},e.prototype.unsubscribe=function(e,t){if(a.prototype.unsubscribe.call(this,e,t),0===this.subscriberCount)for(var r=0,i=this.internalCollections;r<i.length;r++){var s=i[r];s.subscriber&&s.provider&&s.provider.unsubscribe&&s.provider.unsubscribe(s.subscriber)}},e.prototype.getSubscriber=function(n){var o=this;return function(e){for(var t,r,i=e.index,s=0;s<n;s++)i+=o.internalCollections[s].items.length;e.changedItems?((r=o.items).splice.apply(r,__spreadArray([i,e.changedItems.length],e.changedItems,!1)),o.notify({changedItems:e.changedItems,index:i},"change")):(r=e.removedItems||[],e=e.addedItems||[],(t=o.items).splice.apply(t,__spreadArray([i,r.length],e,!1)),o.notify({removedItems:r,addedItems:e,index:i},"splice"))}},e}(Observable);export{AggregateItemProvider};