react-application-core
Version:
A react-based application core for the business applications.
118 lines • 3.9 kB
JavaScript
;
var __spreadArrays = (this && this.__spreadArrays) || function () {
for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
for (var r = Array(s), k = 0, i = 0; i < il; i++)
for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
r[k] = a[j];
return r;
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.ArrayUtils = exports.isArrayNotEmpty = void 0;
var R = require("ramda");
var cond_1 = require("./cond");
var entity_1 = require("./entity");
var filter_1 = require("./filter");
var nvl_1 = require("./nvl");
var type_1 = require("./type");
/**
* @stable [20.01.2021]
* @param length
*/
var makeArray = function (length) { return Array.apply(null, { length: length }); };
/**
* @stable [20.01.2021]
* @param array
*/
var minValue = function (array) { return R.reduce(R.min, Infinity, array); };
/**
* @stable [21.01.2021]
* @param array
*/
var nextMinNegativeValue = function (array) { return Math.min(Number(minValue(array)), 0) - 1; };
/**
* TODO
* @deprecated
*/
exports.isArrayNotEmpty = function (array) { return Array.isArray(array) && !R.isEmpty(array); };
/**
* @stable [21.01.2021]
* @param array
* @param limit
* @param start
*/
var subArray = function (array, limit, start) {
if (start === void 0) { start = 0; }
return cond_1.ConditionUtils.ifNotNilThanValue(array, function () { return array.slice(start, Math.min(array.length, nvl_1.NvlUtils.nvl(limit, array.length))); });
};
/**
* @stable [21.01.2021]
* @param array
* @param item
* @param predicate
* @param itemFactory
*/
var mergeArrayItem = function (array, item, predicate, itemFactory) {
if (predicate === void 0) { predicate = filter_1.FilterUtils.SAME_ENTITY_PREDICATE; }
var $array = array || [];
var hasEntity = doesArrayContainExistedEntity($array, item, predicate);
var hasItemFactory = type_1.TypeUtils.isFn(itemFactory);
var result = hasEntity
? $array
: __spreadArrays([hasItemFactory ? itemFactory(item) : item], $array);
if (!hasEntity) {
return result;
}
return result.map(function ($item) { return predicate($item, item)
? (hasItemFactory
? itemFactory($item) // Custom creating
: item // Replace
)
: $item; });
};
/**
* @stable [21.01.2021]
* @param data
* @param entity
* @param predicate
*/
var doesArrayContainEntity = function (data, entity, predicate) {
if (predicate === void 0) { predicate = filter_1.FilterUtils.SAME_ENTITY_PREDICATE; }
return R.any(function (item) { return predicate(item, entity); }, data || []);
};
/**
* @stable [21.01.2021]
* @param data
* @param entity
* @param predicate
*/
var doesArrayContainExistedEntity = function (data, entity, predicate) {
if (predicate === void 0) { predicate = filter_1.FilterUtils.SAME_ENTITY_PREDICATE; }
return !entity_1.EntityUtils.isNewEntity(entity) && doesArrayContainEntity(data, entity, predicate);
};
/**
* @stable [21.01.2021]
* @param data
*/
var withoutDuplicates = function () {
var data = [];
for (var _i = 0; _i < arguments.length; _i++) {
data[_i] = arguments[_i];
}
return Array.from(new Set(data));
};
/**
* @stable [21.01.2021]
*/
var ArrayUtils = /** @class */ (function () {
function ArrayUtils() {
}
ArrayUtils.doesArrayContainExistedEntity = doesArrayContainExistedEntity;
ArrayUtils.makeArray = makeArray;
ArrayUtils.mergeArrayItem = mergeArrayItem;
ArrayUtils.nextMinNegativeValue = nextMinNegativeValue;
ArrayUtils.subArray = subArray;
ArrayUtils.withoutDuplicates = withoutDuplicates;
return ArrayUtils;
}());
exports.ArrayUtils = ArrayUtils;
//# sourceMappingURL=array.js.map