'use strict';
/**
* @name keta.filters.Slice
* @author Marco Lehmann <marco.lehmann@kiwigrid.com>
* @copyright Kiwigrid GmbH 2014-2015
* @module keta.filters.Slice
* @description
* <p>
* A filter to extract <code>limit</code> elements beginning at <code>offset</code>
* out of an array.
* </p>
* @example
* {{ rows | slice:0:5 }}
* @example
* angular.module('exampleApp', ['keta.filters.Slice'])
* .controller('ExampleController', function($scope) {
*
* // extract 5 elements starting at offset 0
* $scope.pagedRows = $filter('ketaSlice')($scope.rows, 0, 5);
*
* });
*/
angular.module('keta.filters.Slice', [])
.filter('ketaSlice', function() {
return function(arr, offset, limit) {
if (!angular.isDefined(arr) || !angular.isArray(arr)) {
arr = [];
}
if (!angular.isDefined(offset) || !angular.isNumber(offset)) {
offset = 0;
}
if (!angular.isDefined(limit) || !angular.isNumber(limit)) {
limit = arr.length;
}
return arr.slice(offset, offset + limit);
};
});