UNPKG

react-bootstrap-table-next

Version:
122 lines (95 loc) 2.63 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _underscore = require('underscore'); var _underscore2 = _interopRequireDefault(_underscore); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function splitNested(str) { return [str].join('.').replace(/\[/g, '.').replace(/\]/g, '').split('.'); } /* eslint no-empty: 0 */ /* eslint no-param-reassign: 0 */ /* eslint prefer-rest-params: 0 */ function contains(list, value) { if (_underscore2.default.includes) { return _underscore2.default.includes(list, value); } return list.indexOf(value) > -1; } function get(target, field) { var directGet = target[field]; if (directGet !== undefined && directGet !== null) { return directGet; } var pathArray = splitNested(field); var result = void 0; try { result = pathArray.reduce(function (curr, path) { return curr[path]; }, target); } catch (e) {} return result; } function set(target, field, value) { var safe = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; var pathArray = splitNested(field); var level = 0; pathArray.reduce(function (a, b) { level += 1; if (typeof a[b] === 'undefined') { if (!safe) throw new Error(a + '.' + b + ' is undefined'); a[b] = {}; return a[b]; } if (level === pathArray.length) { a[b] = value; return value; } return a[b]; }, target); } function isEmptyObject(obj) { if (!_underscore2.default.isObject(obj)) return false; var hasOwnProperty = Object.prototype.hasOwnProperty; var keys = Object.keys(obj); for (var i = 0; i < keys.length; i += 1) { if (hasOwnProperty.call(obj, keys[i])) return false; } return true; } function isDefined(value) { return typeof value !== 'undefined' && value !== null; } function sleep(fn, ms) { return setTimeout(function () { return fn(); }, ms); } function debounce(func, wait, immediate) { var _this = this, _arguments = arguments; var timeout = void 0; return function () { var later = function later() { timeout = null; if (!immediate) { func.apply(_this, _arguments); } }; var callNow = immediate && !timeout; clearTimeout(timeout); timeout = setTimeout(later, wait || 0); if (callNow) { func.apply(_this, _arguments); } }; } exports.default = Object.assign(_underscore2.default, { get: get, set: set, isDefined: isDefined, isEmptyObject: isEmptyObject, sleep: sleep, debounce: debounce, contains: contains });