UNPKG

react-application-core

Version:

A react-based application core for the business applications.

187 lines 7.25 kB
"use strict"; 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