| 
								
							 | 
							
								var baseFlatten = require('./_baseFlatten'),
							 | 
						
						
						
							| 
								
							 | 
							
								    map = require('./map'),
							 | 
						
						
						
							| 
								
							 | 
							
								    toInteger = require('./toInteger');
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								/**
							 | 
						
						
						
							| 
								
							 | 
							
								 * This method is like `_.flatMap` except that it recursively flattens the
							 | 
						
						
						
							| 
								
							 | 
							
								 * mapped results up to `depth` times.
							 | 
						
						
						
							| 
								
							 | 
							
								 *
							 | 
						
						
						
							| 
								
							 | 
							
								 * @static
							 | 
						
						
						
							| 
								
							 | 
							
								 * @memberOf _
							 | 
						
						
						
							| 
								
							 | 
							
								 * @since 4.7.0
							 | 
						
						
						
							| 
								
							 | 
							
								 * @category Collection
							 | 
						
						
						
							| 
								
							 | 
							
								 * @param {Array|Object} collection The collection to iterate over.
							 | 
						
						
						
							| 
								
							 | 
							
								 * @param {Function} [iteratee=_.identity] The function invoked per iteration.
							 | 
						
						
						
							| 
								
							 | 
							
								 * @param {number} [depth=1] The maximum recursion depth.
							 | 
						
						
						
							| 
								
							 | 
							
								 * @returns {Array} Returns the new flattened array.
							 | 
						
						
						
							| 
								
							 | 
							
								 * @example
							 | 
						
						
						
							| 
								
							 | 
							
								 *
							 | 
						
						
						
							| 
								
							 | 
							
								 * function duplicate(n) {
							 | 
						
						
						
							| 
								
							 | 
							
								 *   return [[[n, n]]];
							 | 
						
						
						
							| 
								
							 | 
							
								 * }
							 | 
						
						
						
							| 
								
							 | 
							
								 *
							 | 
						
						
						
							| 
								
							 | 
							
								 * _.flatMapDepth([1, 2], duplicate, 2);
							 | 
						
						
						
							| 
								
							 | 
							
								 * // => [[1, 1], [2, 2]]
							 | 
						
						
						
							| 
								
							 | 
							
								 */
							 | 
						
						
						
							| 
								
							 | 
							
								function flatMapDepth(collection, iteratee, depth) {
							 | 
						
						
						
							| 
								
							 | 
							
								  depth = depth === undefined ? 1 : toInteger(depth);
							 | 
						
						
						
							| 
								
							 | 
							
								  return baseFlatten(map(collection, iteratee), depth);
							 | 
						
						
						
							| 
								
							 | 
							
								}
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								module.exports = flatMapDepth;
							 |