ui-framework-jps
Version:
A simple UI framework for state management and UI components
42 lines (41 loc) • 1.96 kB
TypeScript
import { ConditionResponse, ValidationCondition, ValidationRule } from "./ValidationTypeDefs";
import { Field } from "../field/Field";
import { FieldDefinition } from "../../model/DataObjectTypeDefs";
import { FieldListener } from "../field/FieldListener";
import { ComparisonType, ViewMode } from "../../CommonTypes";
import { ViewFieldValidator } from "./ViewFieldValidator";
import { ValidatableView } from "./ValidatableView";
export declare type RuleCheck = {
ruleFailed: boolean;
message?: string;
index?: number;
};
export declare type RuleResponse = {
field: Field;
ruleFailed: boolean;
response: ConditionResponse;
message?: string;
};
declare type _Condition = {
sourceField?: Field;
comparison: ComparisonType;
values?: string[];
};
export declare class ValidationManager implements FieldListener, ViewFieldValidator {
private static _instance;
private viewRules;
private viewValidators;
private constructor();
static getInstance(): ValidationManager;
addViewValidator(validator: ViewFieldValidator): void;
getName(): string;
addRuleToView(validatableView: ValidatableView, rule: ValidationRule): void;
failedValidation(view: ValidatableView, field: FieldDefinition, currentValue: string, message: string): void;
applyRulesToTargetField(validatableView: ValidatableView, viewMode: ViewMode, field: FieldDefinition, onlyRulesOfType: ConditionResponse | null): RuleCheck;
valueChanged(view: ValidatableView, field: Field, fieldDef: FieldDefinition, newValue: string | null): void;
protected createRuleCondition(validatableView: ValidatableView, targetField: Field, rule: ValidationRule, condition: ValidationCondition): _Condition | null;
protected canCompareSourceAndTarget(validatableView: ValidatableView, rule: ValidationRule, sourceField: Field, targetField?: Field): boolean;
private executeRule;
private getRulesForFieldChange;
}
export {};