UNPKG

react-application-core

Version:

A react-based application core for the business applications.

115 lines 4.38 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.FieldUtils = exports.buildMultiItemEntity = exports.asOrderedMultiFieldEntities = exports.asMultiFieldEntitiesLength = exports.dynamicFieldName = void 0; var R = require("ramda"); var definition_1 = require("../definition"); var array_1 = require("./array"); var cond_1 = require("./cond"); var filter_1 = require("./filter"); var multi_field_1 = require("./multi-field"); var type_1 = require("./type"); /** * @stable [14.10.2020] * @param config */ var asActualFieldValue = function (config) { var emptyValue = config.emptyValue, keepChanges = config.keepChanges, originalValue = config.originalValue, value = config.value; var isOriginalValueDefined = type_1.TypeUtils.isDef(originalValue); var originalOrEmptyValue = isOriginalValueDefined ? originalValue : emptyValue; return type_1.TypeUtils.isDef(originalOrEmptyValue) && R.equals(value, originalOrEmptyValue) ? (isOriginalValueDefined ? definition_1.FieldConstants.VALUE_TO_CLEAR_DIRTY_CHANGES : (keepChanges ? value : definition_1.FieldConstants.VALUE_TO_CLEAR_DIRTY_CHANGES)) : value; }; /** * @stable [27.08.2019] * @param {EntityIdT} key * @returns {string} */ exports.dynamicFieldName = function (key) { return "$$dynamicField-" + key; }; /** * @stable [29.06.2020] * @param object * @param key */ var dynamicFieldValue = function (object, key) { return object[exports.dynamicFieldName(key)]; }; /** * @stable [27.10.2020] * @param array * @param keyAccessor * @param valueAccessor */ var asDynamicObject = function (array, keyAccessor, valueAccessor) { return R.mergeAll(array.map(function (itm) { var _a; return (_a = {}, _a[exports.dynamicFieldName(keyAccessor(itm))] = valueAccessor(itm), _a); })); }; /** * @stable [28.10.2020] * @param array * @param valueAccessor */ var asDynamicObjectFromIds = function (array, valueAccessor) { return asDynamicObject(array, function (itm) { return itm; }, valueAccessor); }; /** * @stable [14.10.2019] * @param {MultiFieldValueOrEntityIdT} value * @returns {number} */ exports.asMultiFieldEntitiesLength = function (value) { return cond_1.ConditionUtils.ifNotNilThanValue(value, function () { return (multi_field_1.MultiFieldUtils.isNotMultiEntity(value) ? multi_field_1.MultiFieldUtils.notMultiFieldValueAsEntities(value) : multi_field_1.MultiFieldUtils.multiFieldValueAsEntities(value)).length; }, 0); }; /** * @stable [14.10.2019] * @param {MultiFieldValueT<TEntity extends IEntity>} value * @param {number} entitiesCountLimit * @returns {TEntity[]} */ exports.asOrderedMultiFieldEntities = function (value, entitiesCountLimit) { var result = array_1.ArrayUtils.makeArray(entitiesCountLimit); var multiFieldEntities = multi_field_1.MultiFieldUtils.multiFieldValueAsEntities(value); if (Array.isArray(multiFieldEntities)) { var cursor_1 = 0; result.forEach(function (_, index) { var entity = multiFieldEntities[index]; if (!R.isNil(entity)) { if (entity.newEntity) { result[entity.index] = entity; } else { result[cursor_1++] = entity; } } }); } return result; }; // TODO Deprecated /** * @deprecated */ exports.buildMultiItemEntity = function (name, value, rawData, newEntity) { return filter_1.defValuesFilter({ id: rawData.id, value: value, name: name, rawData: rawData, newEntity: newEntity }); }; /** * @stable [16.05.2020] */ var FieldUtils = /** @class */ (function () { function FieldUtils() { } FieldUtils.asActualFieldValue = asActualFieldValue; /* @stable [16.05.2020] */ FieldUtils.asDynamicObject = asDynamicObject; /* @stable [27.10.2020] */ FieldUtils.asDynamicObjectFromIds = asDynamicObjectFromIds; /* @stable [28.10.2020] */ FieldUtils.dynamicFieldName = exports.dynamicFieldName; /* @stable [29.06.2020] */ FieldUtils.dynamicFieldValue = dynamicFieldValue; /* @stable [29.06.2020] */ return FieldUtils; }()); exports.FieldUtils = FieldUtils; //# sourceMappingURL=field.js.map