| "use strict"; | 
| Object.defineProperty(exports, "__esModule", { value: true }); | 
| var ArgumentOutOfRangeError_1 = require("../util/ArgumentOutOfRangeError"); | 
| var filter_1 = require("./filter"); | 
| var throwIfEmpty_1 = require("./throwIfEmpty"); | 
| var defaultIfEmpty_1 = require("./defaultIfEmpty"); | 
| var take_1 = require("./take"); | 
| function elementAt(index, defaultValue) { | 
|     if (index < 0) { | 
|         throw new ArgumentOutOfRangeError_1.ArgumentOutOfRangeError(); | 
|     } | 
|     var hasDefaultValue = arguments.length >= 2; | 
|     return function (source) { return source.pipe(filter_1.filter(function (v, i) { return i === index; }), take_1.take(1), hasDefaultValue | 
|         ? defaultIfEmpty_1.defaultIfEmpty(defaultValue) | 
|         : throwIfEmpty_1.throwIfEmpty(function () { return new ArgumentOutOfRangeError_1.ArgumentOutOfRangeError(); })); }; | 
| } | 
| exports.elementAt = elementAt; | 
| //# sourceMappingURL=elementAt.js.map |