@blinkk/selective-edit
Version:
Selective structured text editor.
69 lines (68 loc) • 2.6 kB
TypeScript
import { Base } from '../mixins';
import { Rules } from './validationRules';
export declare const DEFAULT_ZONE_KEY = "default";
export declare enum ValidationLevel {
Info = "info",
Warning = "warning",
Error = "error"
}
export interface ValidationComponent {
zoneToResults: Record<string, Array<ValidationResult>>;
addResult(result: ValidationResult, zoneKey?: string): void;
/**
* Filter results by level.
*
* @param level Result level to filter by.
* @param zoneKey Zone to check for results. Defaults to DEFAULT_ZONE_KEY.
*/
filterResults(level: ValidationLevel, zoneKey?: string): Array<ValidationResult>;
/**
* Retrieve results by zone and/or max level.
*
* @param zoneKey Zone to check for results. Defaults to DEFAULT_ZONE_KEY.
* @param maxLevel Max result level to retrieve.
*/
getResults(zoneKey?: string, maxLevel?: ValidationLevel): Array<ValidationResult>;
/**
* Check if a zone has any results or if any zone has results.
*
* @param zoneKey Zone to check for results. Defaults to DEFAULT_ZONE_KEY. Provide null to check all zones.
* @param level Max result level to check against.
*/
hasAnyResults(zoneKey?: string | null, maxLevel?: ValidationLevel): boolean;
/**
* Runs the validation rules against the value.
*
* @param value Value to validate.
* @param zoneKey Zone to store validation result.
*/
validate(value: any, zoneKey?: string): boolean;
}
export declare class Validation implements ValidationComponent {
zoneToResults: Record<string, Array<ValidationResult>>;
rules: Rules;
constructor(rules: Rules);
addResult(result: ValidationResult, zoneKey?: string): void;
filterResults(level: ValidationLevel, zoneKey?: string): Array<ValidationResult>;
/**
* Checks each of the rules to see if the field is required.
*/
isRequired(zoneKey?: string): boolean;
getResults(zoneKey?: string, maxLevel?: ValidationLevel): Array<ValidationResult>;
hasAnyResults(zoneKey?: string | null, maxLevel?: ValidationLevel): boolean;
validate(value: any, zoneKey?: string): boolean;
get zones(): Array<string>;
}
declare const ValidationResult_base: {
new (...args: any[]): {
_uuid?: string | undefined;
readonly uuid: string;
readonly uid: string;
};
} & typeof Base;
export declare class ValidationResult extends ValidationResult_base {
level: ValidationLevel;
message: string;
constructor(message: string, level?: ValidationLevel);
}
export {};