UNPKG

react-form-with-constraints

Version:
46 lines (45 loc) 1.68 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Field = void 0; const clearArray_1 = require("./clearArray"); const FieldFeedbackType_1 = require("./FieldFeedbackType"); class Field { constructor(name) { this.name = name; this.validations = []; } addOrReplaceValidation(validation) { const i = this.validations.findIndex(_validation => _validation.key === validation.key); if (i > -1) this.validations[i] = validation; else this.validations.push(validation); } clearValidations() { (0, clearArray_1.clearArray)(this.validations); } hasFeedbacksOfType(type, fieldFeedbacksKey) { return this.validations.some(fieldFeedback => (fieldFeedbacksKey === undefined || fieldFeedback.key.startsWith(`${fieldFeedbacksKey}.`)) && fieldFeedback.type === type && fieldFeedback.show === true); } hasErrors(fieldFeedbacksKey) { return this.hasFeedbacksOfType(FieldFeedbackType_1.FieldFeedbackType.Error, fieldFeedbacksKey); } hasWarnings(fieldFeedbacksKey) { return this.hasFeedbacksOfType(FieldFeedbackType_1.FieldFeedbackType.Warning, fieldFeedbacksKey); } hasInfos(fieldFeedbacksKey) { return this.hasFeedbacksOfType(FieldFeedbackType_1.FieldFeedbackType.Info, fieldFeedbacksKey); } hasFeedbacks(fieldFeedbacksKey) { return (this.hasErrors(fieldFeedbacksKey) || this.hasWarnings(fieldFeedbacksKey) || this.hasInfos(fieldFeedbacksKey)); } isValid() { return !this.hasErrors(); } } exports.Field = Field;