UNPKG

react-application-core

Version:

A react-based application core for the business applications.

118 lines 3.9 kB
"use strict"; 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