ferngully-aurelia-tools
Version:
Ferngully Tools for Aurelia
91 lines (90 loc) • 4.62 kB
TypeScript
import { DialogService } from "aurelia-dialog";
import { CommonDialogs } from "../dialog-service";
import { IFormSchema, IFormSchemaService } from "./form-schema-service";
import { IFormSchemaCrudService } from "./form-schema-crud-service";
import { NotificationService } from "../notification-service/notification-service";
import { ISortColumnService } from "../sort-column-service";
import { IFormSchemaRulesProvider } from "./form-schema-rules-provider";
import { IValidationService } from "../validation/validation-service";
import { IEventAggregator } from "../../interfaces/IEventAggregator";
import { ValidateResult } from "aurelia-validation";
import { I18N } from 'aurelia-i18n';
export declare class FormSchemaCollectionController<TInstance> implements IFormSchemaCollectionController<TInstance> {
private commonDialogs;
sortColumnService: ISortColumnService;
private dialogService;
private notificationService;
formSchemaService: IFormSchemaService;
formSchemaCrudService: IFormSchemaCrudService<TInstance>;
private i18n;
constructor(commonDialogs: CommonDialogs, sortColumnService: ISortColumnService, dialogService: DialogService, notificationService: NotificationService, formSchemaService: IFormSchemaService, formSchemaCrudService: IFormSchemaCrudService<TInstance>, i18n: I18N, webServiceName: string);
validationService?: IValidationService;
rulesGenerator?: IFormSchemaRulesProvider;
instances: Array<any>;
formSchema: IFormSchema;
showing: boolean;
disableNew: boolean;
disableDelete: boolean;
showKeyColumn: boolean;
private promiseToBeLoaded;
private _makingLocalChanges;
private _loaded;
insertOnNew: boolean;
makingLocalChanges: boolean;
protected clearMakingLocalChanges(delay?: number): Promise<void>;
refreshDatumOnUpdate: boolean;
private className;
private key;
load(andFetch?: boolean): Promise<any>;
private getInstances();
private getFormSchema();
preValidate(instance: any, propertyName: string, newValue: any, oldValue: any): void;
private _preValidate(instance, propertyName, newValue, oldValue);
validate(instance: any, propertyName: string, newValue: any, oldValue: any): Promise<boolean>;
registerInstances(instances: Array<any>): void;
unRegisterInstances(instances: Array<any>): void;
revalidateAll(): Promise<Array<ValidateResult>>;
handleUpdate(instance: any, propertyName: string, newValue: any, oldValue: any): Promise<boolean>;
executeUpdate(instance: any, propertyName: string, newValue: any, oldValue: any): Promise<boolean>;
handleCreate(): Promise<any>;
handleNew(instance: any): Promise<boolean>;
handleDelete(instance: any): Promise<boolean>;
fetchInstance(instance: any): Promise<any>;
private recordIdentication(instance);
}
export interface IUpdateHandleParams {
instance: any;
propertyName?: string;
newValue?: any;
oldValue?: any;
}
export interface IFormSchemaCollectionController<TInstance> {
instances: Array<any>;
formSchema: IFormSchema;
validationService?: IValidationService;
sortColumnService: ISortColumnService;
formSchemaService: IFormSchemaService;
formSchemaCrudService: IFormSchemaCrudService<TInstance>;
rulesGenerator?: IFormSchemaRulesProvider;
disableNew?: boolean;
disableDelete?: boolean;
showKeyColumn?: boolean;
refreshDatumOnUpdate?: boolean;
load(andFetch?: boolean): Promise<any>;
insertOnNew: boolean;
makingLocalChanges: boolean;
}
export interface IFormSchemaCollectionInstanceApi<TInstance> extends IFormSchemaCollectionControllerEventAggregator<TInstance> {
preValidate(instance: any, propertyName: string, newValue: any, oldValue: any): void;
revalidateAll(): Promise<Array<ValidateResult>>;
validate(instance: any, propertyName: string, newValue: any, oldValue: any): Promise<boolean>;
registerInstances(instances: Array<any>): void;
unRegisterInstances(instances: Array<any>): void;
handleDelete: (instance: any) => Promise<boolean>;
handleNew: (instance: any) => Promise<boolean>;
handleCreate: () => Promise<any>;
handleUpdate: (instance: any, propertyName: string, newValue: any, oldValue: any) => Promise<boolean>;
fetchInstance: (instance: any) => Promise<any>;
}
export declare type IFormSchemaCollectionControllerEventAggregator<TInstance> = IFormSchemaCollectionController<TInstance> & IEventAggregator;
export { ValidateResult } from "aurelia-validation";