UNPKG

react-dyn-tabs

Version:
79 lines 2.75 kB
var counter = 1; var helper = { checkArrIndex: function checkArrIndex(index, arrLength) { return index >= 0 && index < arrLength; }, resolve: function resolve(result) { return Promise.resolve(result); }, getCopyState: function getCopyState(state) { return { selectedTabID: state.selectedTabID, openTabIDs: (state.openTabIDs || []).slice() }; }, assingAll: function assingAll(targetObj) { for (var _len = arguments.length, sourcObjs = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { sourcObjs[_key - 1] = arguments[_key]; } // copy all enumerable and not enumerable properties into the target sourcObjs.forEach(function (sourcObj) { var enum_only = Object.keys(sourcObj); Object.getOwnPropertyNames(sourcObj).forEach(function (prop) { if (enum_only.indexOf(prop) >= 0) targetObj[prop] = sourcObj[prop];else Object.defineProperty(targetObj, prop, { value: sourcObj[prop], writable: true }); }); }); return targetObj; }, setNoneEnumProps: function setNoneEnumProps(obj, props) { var noneEnum = {}; Object.keys(props).forEach(function (prop) { noneEnum[prop] = { writable: true, value: props[prop] }; }); return Object.defineProperties(obj, noneEnum); }, getArraysDiff: function getArraysDiff(arr1, arr2) { var arr1Copy = [].concat(arr1), arr2Copy = [].concat(arr2); arr1.forEach(function (item) { if (arr2.indexOf(item) >= 0) { arr1Copy.splice(arr1Copy.indexOf(item), 1); arr2Copy.splice(arr2Copy.indexOf(item), 1); } }); return [arr1Copy, arr2Copy]; }, filterArrayUntilFirstValue: function filterArrayUntilFirstValue(arr, callback, isRightToLeft) { isRightToLeft && arr.reverse(); for (var i = 0, l = arr.length; i < l; i++) { if (callback(arr[i], i, arr)) return arr[i]; } return null; }, throwMissingParam: function throwMissingParam(FnName) { throw new Error("Missing parameter in \"" + FnName + "\" function"); }, thorwInvalidParam: function thorwInvalidParam(FnName) { throw new Error("Invalid parameter values passed to " + FnName + " function"); }, isObj: function isObj(obj) { return Object.prototype.toString.call(obj) === '[object Object]'; }, isArray: function isArray(arr) { return typeof arr === 'object' && arr.constructor === Array; }, module: function module(fn, obj, noneEnums) { return this.assingAll(fn.prototype, noneEnums ? this.setNoneEnumProps(obj, noneEnums) : obj).constructor; }, uuid: function uuid() { counter++; return "" + new Date().getTime() + Math.random() + counter; } }; export default helper;