PNG  IHDR;IDATxܻn0K )(pA 7LeG{ §㻢|ذaÆ 6lذaÆ 6lذaÆ 6lom$^yذag5bÆ 6lذaÆ 6lذa{ 6lذaÆ `}HFkm,mӪôô! x|'ܢ˟;E:9&ᶒ}{v]n&6 h_tڠ͵-ҫZ;Z$.Pkž)!o>}leQfJTu іچ\X=8Rن4`Vwl>nG^is"ms$ui?wbs[m6K4O.4%/bC%t Mז -lG6mrz2s%9s@-k9=)kB5\+͂Zsٲ Rn~GRC wIcIn7jJhۛNCS|j08yiHKֶۛkɈ+;SzL/F*\Ԕ#"5m2[S=gnaPeғL lذaÆ 6l^ḵaÆ 6lذaÆ 6lذa; _ذaÆ 6lذaÆ 6lذaÆ RIENDB` 'use strict'; const { isArray, isObject } = require('../helpers/is'); module.exports = function flatten(depth) { let flattenDepth = depth || Infinity; let fullyFlattened = false; let collection = []; const flat = function flat(items) { collection = []; if (isArray(items)) { items.forEach((item) => { if (isArray(item)) { collection = collection.concat(item); } else if (isObject(item)) { Object.keys(item).forEach((property) => { collection = collection.concat(item[property]); }); } else { collection.push(item); } }); } else { Object.keys(items).forEach((property) => { if (isArray(items[property])) { collection = collection.concat(items[property]); } else if (isObject(items[property])) { Object.keys(items[property]).forEach((prop) => { collection = collection.concat(items[property][prop]); }); } else { collection.push(items[property]); } }); } fullyFlattened = collection.filter(item => isObject(item)); fullyFlattened = fullyFlattened.length === 0; flattenDepth -= 1; }; flat(this.items); while (!fullyFlattened && flattenDepth > 0) { flat(collection); } return new this.constructor(collection); };