UNPKG

angular2

Version:

Angular 2 - a web framework for modern web apps

51 lines 6.49 kB
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { if (typeof Reflect === "object" && typeof Reflect.decorate === "function") return Reflect.decorate(decorators, target, key, desc); switch (arguments.length) { case 2: return decorators.reduceRight(function(o, d) { return (d && d(o)) || o; }, target); case 3: return decorators.reduceRight(function(o, d) { return (d && d(target, key)), void 0; }, void 0); case 4: return decorators.reduceRight(function(o, d) { return (d && d(target, key, o)) || o; }, desc); } }; var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; var __param = (this && this.__param) || function (paramIndex, decorator) { return function (target, key) { decorator(target, key, paramIndex); } }; import { Inject, Injectable, OpaqueToken } from 'angular2/src/core/di'; import { isPresent, isBlank, CONST_EXPR } from 'angular2/src/facade/lang'; import { Map } from 'angular2/src/facade/collection'; export const APP_VIEW_POOL_CAPACITY = CONST_EXPR(new OpaqueToken('AppViewPool.viewPoolCapacity')); export let AppViewPool = class { constructor(poolCapacityPerProtoView) { /** @internal */ this._pooledViewsPerProtoView = new Map(); this._poolCapacityPerProtoView = poolCapacityPerProtoView; } getView(protoView) { var pooledViews = this._pooledViewsPerProtoView.get(protoView); if (isPresent(pooledViews) && pooledViews.length > 0) { return pooledViews.pop(); } return null; } returnView(view) { var protoView = view.proto; var pooledViews = this._pooledViewsPerProtoView.get(protoView); if (isBlank(pooledViews)) { pooledViews = []; this._pooledViewsPerProtoView.set(protoView, pooledViews); } var haveRemainingCapacity = pooledViews.length < this._poolCapacityPerProtoView; if (haveRemainingCapacity) { pooledViews.push(view); } return haveRemainingCapacity; } }; AppViewPool = __decorate([ Injectable(), __param(0, Inject(APP_VIEW_POOL_CAPACITY)), __metadata('design:paramtypes', [Object]) ], AppViewPool); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld19wb29sLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYW5ndWxhcjIvc3JjL2NvcmUvbGlua2VyL3ZpZXdfcG9vbC50cyJdLCJuYW1lcyI6WyJBcHBWaWV3UG9vbCIsIkFwcFZpZXdQb29sLmNvbnN0cnVjdG9yIiwiQXBwVmlld1Bvb2wuZ2V0VmlldyIsIkFwcFZpZXdQb29sLnJldHVyblZpZXciXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O09BQU8sRUFBQyxNQUFNLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBQyxNQUFNLHNCQUFzQjtPQUU3RCxFQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFDLE1BQU0sMEJBQTBCO09BQ2hFLEVBQWEsR0FBRyxFQUFDLE1BQU0sZ0NBQWdDO0FBSTlELGFBQWEsc0JBQXNCLEdBQUcsVUFBVSxDQUFDLElBQUksV0FBVyxDQUFDLDhCQUE4QixDQUFDLENBQUMsQ0FBQztBQUVsRztJQU9FQSxZQUE0Q0Esd0JBQXdCQTtRQUhwRUMsZ0JBQWdCQTtRQUNoQkEsNkJBQXdCQSxHQUFHQSxJQUFJQSxHQUFHQSxFQUFzREEsQ0FBQ0E7UUFHdkZBLElBQUlBLENBQUNBLHlCQUF5QkEsR0FBR0Esd0JBQXdCQSxDQUFDQTtJQUM1REEsQ0FBQ0E7SUFFREQsT0FBT0EsQ0FBQ0EsU0FBa0NBO1FBQ3hDRSxJQUFJQSxXQUFXQSxHQUFHQSxJQUFJQSxDQUFDQSx3QkFBd0JBLENBQUNBLEdBQUdBLENBQUNBLFNBQVNBLENBQUNBLENBQUNBO1FBQy9EQSxFQUFFQSxDQUFDQSxDQUFDQSxTQUFTQSxDQUFDQSxXQUFXQSxDQUFDQSxJQUFJQSxXQUFXQSxDQUFDQSxNQUFNQSxHQUFHQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtZQUNyREEsTUFBTUEsQ0FBQ0EsV0FBV0EsQ0FBQ0EsR0FBR0EsRUFBRUEsQ0FBQ0E7UUFDM0JBLENBQUNBO1FBQ0RBLE1BQU1BLENBQUNBLElBQUlBLENBQUNBO0lBQ2RBLENBQUNBO0lBRURGLFVBQVVBLENBQUNBLElBQXdCQTtRQUNqQ0csSUFBSUEsU0FBU0EsR0FBR0EsSUFBSUEsQ0FBQ0EsS0FBS0EsQ0FBQ0E7UUFDM0JBLElBQUlBLFdBQVdBLEdBQUdBLElBQUlBLENBQUNBLHdCQUF3QkEsQ0FBQ0EsR0FBR0EsQ0FBQ0EsU0FBU0EsQ0FBQ0EsQ0FBQ0E7UUFDL0RBLEVBQUVBLENBQUNBLENBQUNBLE9BQU9BLENBQUNBLFdBQVdBLENBQUNBLENBQUNBLENBQUNBLENBQUNBO1lBQ3pCQSxXQUFXQSxHQUFHQSxFQUFFQSxDQUFDQTtZQUNqQkEsSUFBSUEsQ0FBQ0Esd0JBQXdCQSxDQUFDQSxHQUFHQSxDQUFDQSxTQUFTQSxFQUFFQSxXQUFXQSxDQUFDQSxDQUFDQTtRQUM1REEsQ0FBQ0E7UUFDREEsSUFBSUEscUJBQXFCQSxHQUFHQSxXQUFXQSxDQUFDQSxNQUFNQSxHQUFHQSxJQUFJQSxDQUFDQSx5QkFBeUJBLENBQUNBO1FBQ2hGQSxFQUFFQSxDQUFDQSxDQUFDQSxxQkFBcUJBLENBQUNBLENBQUNBLENBQUNBO1lBQzFCQSxXQUFXQSxDQUFDQSxJQUFJQSxDQUFDQSxJQUFJQSxDQUFDQSxDQUFDQTtRQUN6QkEsQ0FBQ0E7UUFDREEsTUFBTUEsQ0FBQ0EscUJBQXFCQSxDQUFDQTtJQUMvQkEsQ0FBQ0E7QUFDSEgsQ0FBQ0E7QUFoQ0Q7SUFBQyxVQUFVLEVBQUU7SUFPQyxXQUFDLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxDQUFBOztnQkF5QjVDO0FBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdCwgSW5qZWN0YWJsZSwgT3BhcXVlVG9rZW59IGZyb20gJ2FuZ3VsYXIyL3NyYy9jb3JlL2RpJztcblxuaW1wb3J0IHtpc1ByZXNlbnQsIGlzQmxhbmssIENPTlNUX0VYUFJ9IGZyb20gJ2FuZ3VsYXIyL3NyYy9mYWNhZGUvbGFuZyc7XG5pbXBvcnQge01hcFdyYXBwZXIsIE1hcH0gZnJvbSAnYW5ndWxhcjIvc3JjL2ZhY2FkZS9jb2xsZWN0aW9uJztcblxuaW1wb3J0ICogYXMgdmlld01vZHVsZSBmcm9tICcuL3ZpZXcnO1xuXG5leHBvcnQgY29uc3QgQVBQX1ZJRVdfUE9PTF9DQVBBQ0lUWSA9IENPTlNUX0VYUFIobmV3IE9wYXF1ZVRva2VuKCdBcHBWaWV3UG9vbC52aWV3UG9vbENhcGFjaXR5JykpO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQXBwVmlld1Bvb2wge1xuICAvKiogQGludGVybmFsICovXG4gIF9wb29sQ2FwYWNpdHlQZXJQcm90b1ZpZXc6IG51bWJlcjtcbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBfcG9vbGVkVmlld3NQZXJQcm90b1ZpZXcgPSBuZXcgTWFwPHZpZXdNb2R1bGUuQXBwUHJvdG9WaWV3LCBBcnJheTx2aWV3TW9kdWxlLkFwcFZpZXc+PigpO1xuXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoQVBQX1ZJRVdfUE9PTF9DQVBBQ0lUWSkgcG9vbENhcGFjaXR5UGVyUHJvdG9WaWV3KSB7XG4gICAgdGhpcy5fcG9vbENhcGFjaXR5UGVyUHJvdG9WaWV3ID0gcG9vbENhcGFjaXR5UGVyUHJvdG9WaWV3O1xuICB9XG5cbiAgZ2V0Vmlldyhwcm90b1ZpZXc6IHZpZXdNb2R1bGUuQXBwUHJvdG9WaWV3KTogdmlld01vZHVsZS5BcHBWaWV3IHtcbiAgICB2YXIgcG9vbGVkVmlld3MgPSB0aGlzLl9wb29sZWRWaWV3c1BlclByb3RvVmlldy5nZXQocHJvdG9WaWV3KTtcbiAgICBpZiAoaXNQcmVzZW50KHBvb2xlZFZpZXdzKSAmJiBwb29sZWRWaWV3cy5sZW5ndGggPiAwKSB7XG4gICAgICByZXR1cm4gcG9vbGVkVmlld3MucG9wKCk7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcmV0dXJuVmlldyh2aWV3OiB2aWV3TW9kdWxlLkFwcFZpZXcpOiBib29sZWFuIHtcbiAgICB2YXIgcHJvdG9WaWV3ID0gdmlldy5wcm90bztcbiAgICB2YXIgcG9vbGVkVmlld3MgPSB0aGlzLl9wb29sZWRWaWV3c1BlclByb3RvVmlldy5nZXQocHJvdG9WaWV3KTtcbiAgICBpZiAoaXNCbGFuayhwb29sZWRWaWV3cykpIHtcbiAgICAgIHBvb2xlZFZpZXdzID0gW107XG4gICAgICB0aGlzLl9wb29sZWRWaWV3c1BlclByb3RvVmlldy5zZXQocHJvdG9WaWV3LCBwb29sZWRWaWV3cyk7XG4gICAgfVxuICAgIHZhciBoYXZlUmVtYWluaW5nQ2FwYWNpdHkgPSBwb29sZWRWaWV3cy5sZW5ndGggPCB0aGlzLl9wb29sQ2FwYWNpdHlQZXJQcm90b1ZpZXc7XG4gICAgaWYgKGhhdmVSZW1haW5pbmdDYXBhY2l0eSkge1xuICAgICAgcG9vbGVkVmlld3MucHVzaCh2aWV3KTtcbiAgICB9XG4gICAgcmV0dXJuIGhhdmVSZW1haW5pbmdDYXBhY2l0eTtcbiAgfVxufVxuIl19