react-application-core
Version:
A react-based application core for the business applications.
187 lines • 7.25 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.FormUtils = exports.isFormResettable = exports.isFormSubmittable = exports.isFormFieldDisabled = exports.isFormDirty = exports.getFormFieldValue = void 0;
var R = require("ramda");
var definitions_interface_1 = require("../definitions.interface");
var cond_1 = require("./cond");
var wrapper_1 = require("./wrapper");
var type_1 = require("./type");
var tab_1 = require("./tab");
var select_1 = require("./select");
var object_1 = require("./object");
/**
* @stable [22.09.2020]
* @param holderFormEntity
* @param tabEntity
*/
var isFormHolderEntityTabActive = function (holderFormEntity, tabEntity) {
return tab_1.TabUtils.isActive(select_1.Selectors.form(holderFormEntity), tabEntity);
};
/**
* @stable [02.08.2020]
* @param entity
*/
var isFormHolderEntityTouched = function (entity) {
return wrapper_1.WrapperUtils.isTouched(select_1.Selectors.form(entity));
};
/**
* @stable [02.08.2020]
* @param entity
*/
var isFormHolderEntityInProgress = function (entity) {
return wrapper_1.WrapperUtils.inProgress(select_1.Selectors.form(entity));
};
/**
* @stable [02.08.2020]
* @param entity
*/
var isFormHolderEntityChanged = function (entity) {
return object_1.ObjectUtils.isObjectNotEmpty(select_1.Selectors.formHolderEntityChanges(entity));
};
/**
* @stable [02.08.2020]
* @param entity
*/
var isFormHolderEntityValid = function (entity) {
return wrapper_1.WrapperUtils.isValid(select_1.Selectors.form(entity));
};
/**
* @stable [02.08.2020]
* @param entity
*/
var isGenericFormEntityValid = function (entity) {
return wrapper_1.WrapperUtils.isValid(entity) && isFormHolderEntityValid(entity);
};
/**
* @stable [27.08.2020]
* @param entity
*/
var isGenericFormEntityDisabled = function (entity) {
return wrapper_1.WrapperUtils.isDisabled(entity) || isFormHolderEntityInProgress(entity);
};
/**
* @stable [27.08.2020]
* @param formProps
*/
var isGenericFormEntityReady = function (formProps) {
return isGenericFormEntityValid(formProps) && !isGenericFormEntityDisabled(formProps);
};
/**
* @stable [10.09.2020]
* @param extendedFormEntity
* @param fieldName
*/
var getFieldValueByName = function (extendedFormEntity, fieldName) {
return cond_1.ConditionUtils.ifNotEmptyThanValue(fieldName, function () { return (cond_1.ConditionUtils.ifNotNilThanValue((R.isNil(extendedFormEntity.entity)
? select_1.Selectors.formHolderEntityChanges(extendedFormEntity)
: extendedFormEntity.entity), function (data) { return data[fieldName]; }, definitions_interface_1.UNDEF_SYMBOL)); }, definitions_interface_1.UNDEF_SYMBOL);
};
/**
* @stable [06.05.2020]
* @param {IExtendedFormEntity<TEntity>} wrapper
* @param {IGenericFieldEntity} fieldProps
* @returns {AnyT}
*/
exports.getFormFieldValue = function (wrapper, fieldProps) {
return type_1.TypeUtils.isDef(fieldProps.value)
? fieldProps.value
: getFieldValueByName(wrapper, fieldProps.name);
};
/**
* @stable [11.05.2020]
* @param {IExtendedFormEntity<TEntity>} formEntity
* @param {IFieldProps} fieldProps
* @param {IFieldProps} defaultFieldProps
* @returns {AnyT}
*/
var getFormFieldDisplayValue = function (formEntity, fieldProps, defaultFieldProps) {
return type_1.TypeUtils.isDef(fieldProps.displayValue)
? fieldProps.displayValue
: (getFieldValueByName(formEntity, fieldProps.displayName || cond_1.ConditionUtils.ifNotNilThanValue(defaultFieldProps, function () { return defaultFieldProps.displayName; })));
};
/**
* @stable [10.09.2020]
* @param entity
* @param fieldProps
*/
var getFormFieldOriginalValue = function (entity, fieldProps) {
return type_1.TypeUtils.isDef(fieldProps.originalValue)
? fieldProps.originalValue
: (cond_1.ConditionUtils.ifNotNilThanValue(entity.originalEntity, function (originalEntity) { return cond_1.ConditionUtils.ifNotEmptyThanValue(fieldProps.name, function (fieldName) { return originalEntity[fieldName]; }, definitions_interface_1.UNDEF_SYMBOL); }, definitions_interface_1.UNDEF_SYMBOL));
};
/**
* @stable [23.04.2020]
* @param {IFormProps<TEntity>} entity
* @returns {boolean}
*/
exports.isFormDirty = function (entity) {
return cond_1.ifNotNilThanValue(entity, function () { return (entity.alwaysDirty || cond_1.ifNotNilThanValue(select_1.Selectors.form(entity), function (form) { return wrapper_1.WrapperUtils.isDirty(form); }, false)); }, false);
};
/**
* @stable [21.08.2020]
* @param formEntity
* @param fieldEntity
*/
var isFormFieldReadOnly = function (formEntity, fieldEntity) {
return R.isNil(fieldEntity.readOnly)
? wrapper_1.WrapperUtils.isReadOnly(formEntity)
: wrapper_1.WrapperUtils.isReadOnly(fieldEntity);
};
/**
* @stable [22.08.2020]
* @param formEntity
* @param fieldEntity
*/
var isFormFieldChangeable = function (formEntity, fieldEntity) {
return R.isNil(fieldEntity.changeable)
? wrapper_1.WrapperUtils.isChangeable(formEntity)
: wrapper_1.WrapperUtils.isChangeable(fieldEntity);
};
/**
* @stable [23.03.2020]
* @param {IFormProps} formProps
* @param {IGenericFieldEntity} fieldProps
* @returns {boolean}
*/
exports.isFormFieldDisabled = function (formProps, fieldProps) {
return R.isNil(fieldProps.disabled) ? isGenericFormEntityDisabled(formProps) : wrapper_1.isDisabled(fieldProps);
};
/**
* @stable [03.02.2020]
* @param {IFormProps<TEntity extends IEntity>} formProps
* @returns {boolean}
*/
exports.isFormSubmittable = function (formProps) {
return isGenericFormEntityReady(formProps) && exports.isFormDirty(formProps);
};
/**
* @stable [23.03.2020]
* @param {IFormProps<TEntity extends IEntity>} formProps
* @returns {boolean}
*/
exports.isFormResettable = function (formProps) {
return wrapper_1.isAlwaysResettable(formProps)
|| (exports.isFormDirty(formProps)
&& !isGenericFormEntityDisabled(formProps));
};
/**
* @stable [11.05.2020]
*/
var FormUtils = /** @class */ (function () {
function FormUtils() {
}
FormUtils.fieldDisplayValue = getFormFieldDisplayValue; /* @stable [11.05.2020] */
FormUtils.fieldOriginalValue = getFormFieldOriginalValue; /* @stable [11.05.2020] */
FormUtils.inProgress = isFormHolderEntityInProgress; /* @stable [02.08.2020] */
FormUtils.isChanged = isFormHolderEntityChanged; /* @stable [02.08.2020] */
FormUtils.isDisabled = isGenericFormEntityDisabled; /* @stable [27.08.2020] */
FormUtils.isFieldChangeable = isFormFieldChangeable; /* @stable [05.06.2020] */
FormUtils.isFieldReadOnly = isFormFieldReadOnly; /* @stable [21.08.2020] */
FormUtils.isReady = isGenericFormEntityReady; /* @stable [27.08.2020] */
FormUtils.isTabActive = isFormHolderEntityTabActive; /* @stable [15.06.2020] */
FormUtils.isTouched = isFormHolderEntityTouched; /* @stable [02.08.2020] */
FormUtils.isValid = isGenericFormEntityValid; /* @stable [02.08.2020] */
return FormUtils;
}());
exports.FormUtils = FormUtils;
//# sourceMappingURL=form.js.map