filestack-adaptive
Version:
HTML5 picture elements powered by Filestack
90 lines (88 loc) • 8.67 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var utils = {
/**
* Creates a new list out of the two supplied by creating each possible pair from the lists.
* It works similar to https://ramdajs.com/docs/#xprod
* @param arr - An array to be processed
*/
cartesian: function (arr) {
return arr.reduce(function (a, b) {
return a.map(function (x) {
return b.map(function (y) {
return x.concat([y]);
});
}).reduce(function (a, b) { return a.concat(b); }, []);
}, [[]]);
},
/**
* Split an array into many arrays with a provided chunk factor
* @param array - An original array to be splitted
* @param chunk - A number of elements which new arrays will contain
*/
arrToChunks: function (array, chunk) {
if (chunk === void 0) { chunk = 1; }
var tempArray = [];
for (var i = 0; i < array.length; i += chunk) {
tempArray.push(array.slice(i, i + chunk));
}
return tempArray;
},
/**
* Remove falsey values from object.
* @param obj - An object to be filtered
*/
removeEmpty: function (obj) {
var newObj = {};
for (var key in obj) {
if (obj.hasOwnProperty(key) && obj[key]) {
newObj[key] = obj[key];
}
}
return newObj;
},
/**
* Utility to get numbers from ambiguous types.
* @param value - A value to be checked
*/
getNumber: function (value) {
if (typeof value === 'number') {
return value;
}
else {
return parseInt(value, 10);
}
},
/**
* Utility to get unit of width or resolution
* @param value - A value from which a unit will be extracted
*/
getUnit: function (value) {
return value.replace ? value.replace(/\d*(\D+)$/gi, '$1') : 'px';
},
/**
* Flat elements in array to provided depthness
* @param arr - The array to flatten
* @param depth - A maximum recursion depth
*/
flat: function (arr, depth) {
var len = arr.length >>> 0;
var flattened = [];
var i = 0;
while (i < len) {
if (i in arr) {
var el = arr[i];
if (Array.isArray(el) && depth > 0) {
flattened = flattened.concat(utils.flat(el, depth - 1));
}
else {
flattened.push(el);
}
}
i++;
}
return flattened;
},
};
exports.default = utils;
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLElBQU0sS0FBSyxHQUFHO0lBQ1o7Ozs7T0FJRztJQUNILFNBQVMsRUFBRSxVQUFDLEdBQVU7UUFDcEIsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBTSxFQUFFLENBQU07WUFDeEMsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBTTtnQkFDM0IsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBTTtvQkFDM0IsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDdkIsQ0FBQyxDQUFDLENBQUM7WUFDTCxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFNLEVBQUUsQ0FBTSxJQUFJLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNuRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxXQUFXLEVBQUUsVUFBQyxLQUFZLEVBQUUsS0FBUztRQUFULHNCQUFBLEVBQUEsU0FBUztRQUNuQyxJQUFJLFNBQVMsR0FBRyxFQUFFLENBQUM7UUFDbkIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLEtBQUssRUFBRTtZQUM1QyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1NBQzFDO1FBQ0QsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVEOzs7T0FHRztJQUNILFdBQVcsRUFBRSxVQUFDLEdBQVE7UUFDcEIsSUFBTSxNQUFNLEdBQVEsRUFBRSxDQUFDO1FBQ3ZCLEtBQUssSUFBSSxHQUFHLElBQUksR0FBRyxFQUFFO1lBQ25CLElBQUksR0FBRyxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ3ZDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDeEI7U0FDRjtRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxTQUFTLEVBQUUsVUFBQyxLQUFVO1FBQ3BCLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFO1lBQzdCLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7YUFBTTtZQUNMLE9BQU8sUUFBUSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztTQUM1QjtJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSCxPQUFPLEVBQUUsVUFBQyxLQUFVO1FBQ2xCLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUNuRSxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILElBQUksRUFBRSxVQUFDLEdBQVUsRUFBRSxLQUFhO1FBQzlCLElBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDO1FBQzNCLElBQUksU0FBUyxHQUFRLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDVixPQUFPLENBQUMsR0FBRyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsSUFBSSxHQUFHLEVBQUU7Z0JBQ1osSUFBSSxFQUFFLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNoQixJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxHQUFHLENBQUMsRUFBRTtvQkFDbEMsU0FBUyxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7aUJBQ3pEO3FCQUFNO29CQUNMLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7aUJBQ3BCO2FBQ0Y7WUFDRCxDQUFDLEVBQUUsQ0FBQztTQUNMO1FBQ0QsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztDQUNGLENBQUM7QUFFRixrQkFBZSxLQUFLLENBQUMiLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCB1dGlscyA9IHtcbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgbGlzdCBvdXQgb2YgdGhlIHR3byBzdXBwbGllZCBieSBjcmVhdGluZyBlYWNoIHBvc3NpYmxlIHBhaXIgZnJvbSB0aGUgbGlzdHMuXG4gICAqIEl0IHdvcmtzIHNpbWlsYXIgdG8gaHR0cHM6Ly9yYW1kYWpzLmNvbS9kb2NzLyN4cHJvZFxuICAgKiBAcGFyYW0gYXJyIC0gQW4gYXJyYXkgdG8gYmUgcHJvY2Vzc2VkXG4gICAqL1xuICBjYXJ0ZXNpYW46IChhcnI6IGFueVtdKSA9PiB7XG4gICAgcmV0dXJuIGFyci5yZWR1Y2UoZnVuY3Rpb24gKGE6IGFueSwgYjogYW55KSB7XG4gICAgICByZXR1cm4gYS5tYXAoZnVuY3Rpb24gKHg6IGFueSkge1xuICAgICAgICByZXR1cm4gYi5tYXAoZnVuY3Rpb24gKHk6IGFueSkge1xuICAgICAgICAgIHJldHVybiB4LmNvbmNhdChbeV0pO1xuICAgICAgICB9KTtcbiAgICAgIH0pLnJlZHVjZShmdW5jdGlvbiAoYTogYW55LCBiOiBhbnkpIHsgcmV0dXJuIGEuY29uY2F0KGIpOyB9LCBbXSk7XG4gICAgfSwgW1tdXSk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIFNwbGl0IGFuIGFycmF5IGludG8gbWFueSBhcnJheXMgd2l0aCBhIHByb3ZpZGVkIGNodW5rIGZhY3RvclxuICAgKiBAcGFyYW0gYXJyYXkgLSBBbiBvcmlnaW5hbCBhcnJheSB0byBiZSBzcGxpdHRlZFxuICAgKiBAcGFyYW0gY2h1bmsgLSBBIG51bWJlciBvZiBlbGVtZW50cyB3aGljaCBuZXcgYXJyYXlzIHdpbGwgY29udGFpblxuICAgKi9cbiAgYXJyVG9DaHVua3M6IChhcnJheTogYW55W10sIGNodW5rID0gMSkgPT4ge1xuICAgIGxldCB0ZW1wQXJyYXkgPSBbXTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFycmF5Lmxlbmd0aDsgaSArPSBjaHVuaykge1xuICAgICAgdGVtcEFycmF5LnB1c2goYXJyYXkuc2xpY2UoaSxpICsgY2h1bmspKTtcbiAgICB9XG4gICAgcmV0dXJuIHRlbXBBcnJheTtcbiAgfSxcblxuICAvKipcbiAgICogUmVtb3ZlIGZhbHNleSB2YWx1ZXMgZnJvbSBvYmplY3QuXG4gICAqIEBwYXJhbSBvYmogLSBBbiBvYmplY3QgdG8gYmUgZmlsdGVyZWRcbiAgICovXG4gIHJlbW92ZUVtcHR5OiAob2JqOiBhbnkpID0+IHtcbiAgICBjb25zdCBuZXdPYmo6IGFueSA9IHt9O1xuICAgIGZvciAobGV0IGtleSBpbiBvYmopIHtcbiAgICAgIGlmIChvYmouaGFzT3duUHJvcGVydHkoa2V5KSAmJiBvYmpba2V5XSkge1xuICAgICAgICBuZXdPYmpba2V5XSA9IG9ialtrZXldO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbmV3T2JqO1xuICB9LFxuXG4gIC8qKlxuICAgKiBVdGlsaXR5IHRvIGdldCBudW1iZXJzIGZyb20gYW1iaWd1b3VzIHR5cGVzLlxuICAgKiBAcGFyYW0gdmFsdWUgLSBBIHZhbHVlIHRvIGJlIGNoZWNrZWRcbiAgICovXG4gIGdldE51bWJlcjogKHZhbHVlOiBhbnkpOiBudW1iZXIgPT4ge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInKSB7XG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBwYXJzZUludCh2YWx1ZSwgMTApO1xuICAgIH1cbiAgfSxcblxuICAvKipcbiAgICogVXRpbGl0eSB0byBnZXQgdW5pdCBvZiB3aWR0aCBvciByZXNvbHV0aW9uXG4gICAqIEBwYXJhbSB2YWx1ZSAtIEEgdmFsdWUgZnJvbSB3aGljaCBhIHVuaXQgd2lsbCBiZSBleHRyYWN0ZWRcbiAgICovXG4gIGdldFVuaXQ6ICh2YWx1ZTogYW55KTogc3RyaW5nID0+IHtcbiAgICByZXR1cm4gdmFsdWUucmVwbGFjZSA/IHZhbHVlLnJlcGxhY2UoL1xcZCooXFxEKykkL2dpLCAnJDEnKSA6ICdweCc7XG4gIH0sXG5cbiAgLyoqXG4gICAqIEZsYXQgZWxlbWVudHMgaW4gYXJyYXkgdG8gcHJvdmlkZWQgZGVwdGhuZXNzXG4gICAqIEBwYXJhbSBhcnIgLSBUaGUgYXJyYXkgdG8gZmxhdHRlblxuICAgKiBAcGFyYW0gZGVwdGggLSBBIG1heGltdW0gcmVjdXJzaW9uIGRlcHRoXG4gICAqL1xuICBmbGF0OiAoYXJyOiBhbnlbXSwgZGVwdGg6IG51bWJlcik6IFtdID0+IHtcbiAgICBsZXQgbGVuID0gYXJyLmxlbmd0aCA+Pj4gMDtcbiAgICBsZXQgZmxhdHRlbmVkOiBhbnkgPSBbXTtcbiAgICBsZXQgaSA9IDA7XG4gICAgd2hpbGUgKGkgPCBsZW4pIHtcbiAgICAgIGlmIChpIGluIGFycikge1xuICAgICAgICBsZXQgZWwgPSBhcnJbaV07XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KGVsKSAmJiBkZXB0aCA+IDApIHtcbiAgICAgICAgICBmbGF0dGVuZWQgPSBmbGF0dGVuZWQuY29uY2F0KHV0aWxzLmZsYXQoZWwsIGRlcHRoIC0gMSkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGZsYXR0ZW5lZC5wdXNoKGVsKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaSsrO1xuICAgIH1cbiAgICByZXR1cm4gZmxhdHRlbmVkO1xuICB9LFxufTtcblxuZXhwb3J0IGRlZmF1bHQgdXRpbHM7XG4iXX0=