1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | exports.Field = void 0;
|
4 | const clearArray_1 = require("./clearArray");
|
5 | const FieldFeedbackType_1 = require("./FieldFeedbackType");
|
6 | class Field {
|
7 | constructor(name) {
|
8 | this.name = name;
|
9 | this.validations = [];
|
10 | }
|
11 | addOrReplaceValidation(validation) {
|
12 | const i = this.validations.findIndex(_validation => _validation.key === validation.key);
|
13 | if (i > -1)
|
14 | this.validations[i] = validation;
|
15 | else
|
16 | this.validations.push(validation);
|
17 | }
|
18 | clearValidations() {
|
19 | (0, clearArray_1.clearArray)(this.validations);
|
20 | }
|
21 | hasFeedbacksOfType(type, fieldFeedbacksKey) {
|
22 | return this.validations.some(fieldFeedback => (fieldFeedbacksKey === undefined ||
|
23 | fieldFeedback.key.startsWith(`${fieldFeedbacksKey}.`)) &&
|
24 | fieldFeedback.type === type &&
|
25 | fieldFeedback.show === true);
|
26 | }
|
27 | hasErrors(fieldFeedbacksKey) {
|
28 | return this.hasFeedbacksOfType(FieldFeedbackType_1.FieldFeedbackType.Error, fieldFeedbacksKey);
|
29 | }
|
30 | hasWarnings(fieldFeedbacksKey) {
|
31 | return this.hasFeedbacksOfType(FieldFeedbackType_1.FieldFeedbackType.Warning, fieldFeedbacksKey);
|
32 | }
|
33 | hasInfos(fieldFeedbacksKey) {
|
34 | return this.hasFeedbacksOfType(FieldFeedbackType_1.FieldFeedbackType.Info, fieldFeedbacksKey);
|
35 | }
|
36 | hasFeedbacks(fieldFeedbacksKey) {
|
37 | return (this.hasErrors(fieldFeedbacksKey) ||
|
38 | this.hasWarnings(fieldFeedbacksKey) ||
|
39 | this.hasInfos(fieldFeedbacksKey));
|
40 | }
|
41 | isValid() {
|
42 | return !this.hasErrors();
|
43 | }
|
44 | }
|
45 | exports.Field = Field;
|