///
///
import { IStrings } from './strings';
import { ISchema, IComponent, ISelectOptionItem, IDataComponent, ISchemaError, IAnyObj } from './types';
import { EventEmitter } from 'events';
import { IDataTableComponent } from '../components/datatable';
import { Color, IThemeColor } from './themeColors';
export interface ISettings {
requiredSuffix: string;
language: string;
themeColor: Color;
strings?: IStrings;
}
export interface IError {
comp: IDataComponent;
error: string;
arrayInd?: number;
}
interface IValuesDataTable {
val: any;
memval: any;
}
export declare enum EventType {
RenderComponent = "RenderComponent",
FocusComponent = "FocusComponent",
OpenModal = "OpenModal",
CloseModal = "CloseModal",
FoucsDropdown = "FoucsDropdown"
}
export declare type ITraverseCallback = (comp: IComponent, parent?: IComponent, options?: ITraverseOptions) => void;
export interface ITraverseOptions {
done?: boolean;
}
export declare const flexStyle: import("react").CSSProperties;
export interface IHighlight {
comp: IDataComponent;
arrayInd: number;
}
export declare enum IValueType {
undefined = "undefined",
null = "null",
string = "string",
number = "number",
boolean = "boolean",
date = "date",
function = "function",
array = "array",
object = "object",
component = "component"
}
export declare class SchemaManager extends EventEmitter {
Schema: ISchema;
Values: IAnyObj;
private CommitValuesDataTable;
MemValues: any;
ValuesChanged: boolean;
Settings: ISettings;
Strings: IStrings;
ThemeColors: IThemeColor;
Diffsm: SchemaManager;
DiffClassName: string;
private curCompId;
private compIds;
Errors: IError[];
highlightedFields: IHighlight[];
AllValidated: boolean;
private _AllDisabled;
get AllDisabled(): boolean;
DisableAll(disabled?: boolean): void;
constructor(settings?: Partial);
InitSettings(settings?: Partial): void;
InitSchema(schema: ISchema): void;
InitValues(values: any): void;
InitDiffHighlight(): void;
InitDiffHighlightComp(comp: IComponent, arrayInd?: number): boolean;
getDiffHighlight(comp: IComponent, arrayInd?: number): boolean;
getPropValue(comp: IComponent, prop: string): any;
hasNoValue(value: any): boolean;
getParentValues(comp: IDataComponent, values: any, arrayInd?: number): any;
getValue(field: IComponent | string | undefined, arrayInd?: number): any;
updateValue(field: IComponent | string | undefined, val: any, arrayInd?: number): void;
validate(comp: IDataComponent, value: any, arrayInd?: number): string | undefined;
validateAll(rendercomponent?: boolean): void;
private addError;
private removeErrors;
removeAllErrors(): void;
getError(comp: IDataComponent): string;
getCompByName(name: string, schema?: IComponent): IComponent | undefined;
getCompByField(field: string, schema?: IComponent): IComponent | undefined;
selectOptionsAsObjects(comp: IComponent): ISelectOptionItem[];
selectOptionsAsStrings(comp: IComponent): string[];
getCompLabel(comp: IComponent): string;
FocusComponent(comp: IComponent, arrayInd?: number): void;
RenderComponent(comp?: IComponent): void;
RenderComponentByName(name: string): void;
RenderComponentByField(field: string): void;
OpenModal(name: string): void;
CloseModal(name: string): void;
FocusDropDown(comp?: IComponent): void;
IsCompDisabled(comp: IComponent): boolean;
MakeVisible(comp: IComponent, arrayInd: number): boolean;
traverseSchema(fn: ITraverseCallback, options?: ITraverseOptions, comp?: IComponent, parentComp?: IComponent): void;
static compareArray(val1: string[], val2: string[]): boolean;
static checkValueType(val: any): IValueType;
static checkSchema(schema: ISchema, ignoreTypes?: string[], checkNameOrField?: boolean): ISchemaError[];
static printErrors: (schemaName: string, errors: ISchemaError[]) => void;
checkOptionsValueType(val: any[]): boolean;
getObjectId(comp: IComponent): string;
getValuesDataTable(comp: IDataTableComponent): IValuesDataTable;
private InitDataTableKeyField;
private InitValuesDataTable;
InsertDataTableRow(comp: IDataTableComponent, copyInd?: number): void;
EditDataTableRow(comp: IDataTableComponent, ind: number): void;
DeleteDataTableRow(comp: IDataTableComponent, ind?: number): void;
CloseDetailComponent(comp: IDataComponent): void;
getDataTableKeyField(comp: IDataComponent): string;
getParentDataTable(comp: IDataComponent): IDataTableComponent | undefined;
fieldIsInDataTable(comp: IDataComponent): boolean;
getFieldsOfDataTable(comp: IDataTableComponent): IComponent[];
CommitChangesDataTable(comp: IComponent): void;
SaveChangesDataTable(comp: IDataTableComponent): void;
RevertChangesDataTable(comp: IDataTableComponent): void;
private updateEditRowIndex;
}
export {};