react-dyn-tabs
Version:
React dynamic tabs with full API
83 lines (82 loc) • 2.85 kB
JavaScript
exports.__esModule = true;
exports["default"] = void 0;
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;
}
};
var _default = exports["default"] = helper;
;