Files
goTorrent/goTorrentWebUI/node_modules/material-ui/utils/helpers.js

90 lines
2.5 KiB
JavaScript

'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _typeof2 = require('babel-runtime/helpers/typeof');
var _typeof3 = _interopRequireDefault(_typeof2);
var _keys = require('babel-runtime/core-js/object/keys');
var _keys2 = _interopRequireDefault(_keys);
exports.capitalize = capitalize;
exports.contains = contains;
exports.findIndex = findIndex;
exports.find = find;
exports.createChainedFunction = createChainedFunction;
var _warning = require('warning');
var _warning2 = _interopRequireDefault(_warning);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function capitalize(string) {
if (process.env.NODE_ENV !== 'production' && typeof string !== 'string') {
throw new Error('Material-UI: capitalize(string) expects a string argument.');
}
return string.charAt(0).toUpperCase() + string.slice(1);
} // weak
function contains(obj, pred) {
return (0, _keys2.default)(pred).every(function (key) {
return obj.hasOwnProperty(key) && obj[key] === pred[key];
});
}
function findIndex(arr, pred) {
var predType = typeof pred === 'undefined' ? 'undefined' : (0, _typeof3.default)(pred);
for (var i = 0; i < arr.length; i += 1) {
if (predType === 'function' && !!pred(arr[i], i, arr) === true) {
return i;
}
if (predType === 'object' && contains(arr[i], pred)) {
return i;
}
if (['string', 'number', 'boolean'].indexOf(predType) !== -1) {
return arr.indexOf(pred);
}
}
return -1;
}
function find(arr, pred) {
var index = findIndex(arr, pred);
return index > -1 ? arr[index] : undefined;
}
/**
* Safe chained function
*
* Will only create a new function if needed,
* otherwise will pass back existing functions or null.
*
* @param {function} functions to chain
* @returns {function|null}
*/
function createChainedFunction() {
for (var _len = arguments.length, funcs = Array(_len), _key = 0; _key < _len; _key++) {
funcs[_key] = arguments[_key];
}
return funcs.filter(function (func) {
return func != null;
}).reduce(function (acc, func) {
process.env.NODE_ENV !== "production" ? (0, _warning2.default)(typeof func === 'function', 'Material-UI: invalid Argument Type, must only provide functions, undefined, or null.') : void 0;
return function chainedFunction() {
for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
args[_key2] = arguments[_key2];
}
acc.apply(this, args);
func.apply(this, args);
};
}, function () {});
}