react-application-core
Version:
A react-based application core for the business applications.
115 lines • 4.38 kB
JavaScript
;
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