UNPKG

doiforms

Version:

A generalized tool for building formatted forms on multiple platforms

44 lines 1.98 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var __1 = require(".."); var containsFieldState_1 = require("./containsFieldState"); var matchFieldState_1 = require("./matchFieldState"); function FormUpdate(prevFieldStates, newFieldStates) { if (prevFieldStates.length === 0) { return {}; } return { FieldStates: (prevFieldStates.map(function (fieldState) { var field = fieldState.Field; if (containsFieldState_1.containsFieldState(field.Id, newFieldStates)) { var fieldStateValue = matchFieldState_1.matchFieldState(field.Id, newFieldStates).Value; var isRequiredError = field.Required ? ((null === fieldStateValue) || (undefined === fieldStateValue) || ("" === fieldStateValue)) : false; var validationResults = field.Validation ? field.Validation(fieldStateValue) : { IsError: isRequiredError, Message: isRequiredError ? (field.DisplayName + " is required") : undefined }; var status_1 = validationResults.IsError ? __1.EnumFieldStatus.Error : __1.EnumFieldStatus.Modified; if (field.Required && isRequiredError) { status_1 = __1.EnumFieldStatus.Empty; } return { ErrorMessage: validationResults.Message, Field: fieldState.Field, Status: status_1, Value: fieldStateValue }; } else { return { ErrorMessage: fieldState.ErrorMessage, Field: fieldState.Field, Status: fieldState.Status, Value: fieldState.Value }; } })) }; } exports.FormUpdate = FormUpdate; //# sourceMappingURL=FormUpdate.js.map