import { Ajax } from "../ajax"; import { ISelectOption } from "../../interfaces/ISelectOption"; import { ISortRowValueResolver } from "../sort-column-service"; import { EventAggregator } from 'aurelia-event-aggregator'; export declare class FormSchemaService implements IFormSchemaService { private ajax; private eventAggregator; constructor(ajax: Ajax, eventAggregator: EventAggregator); webServiceName: string; getFormSchema(): Promise; private convertToFormSchema(jsonSchema?); private getDropdownData(schema); private getDropdownCheckboxData(schema); } export interface IFormSchema { key: string; name: string; properties: Array; identifierPropertyName: string | null | undefined; } export interface IFormPropertySchema { name: string; description: string; isKey: boolean; type: string; required: boolean; sortValueResolver: ISortRowValueResolver; sortDataType: string; sortTieBreakerColumnName?: string; sortTieBreakerDataType?: string; hasValue(instance: any): boolean; dropdownTextFromValue(value: number | string): string; default: any; properties: IFormPropertySchema; enum?: Array; multipleOf?: number; allOf?: Array; anyOf?: Array; oneOf?: Array; not?: IFormPropertySchema; format?: string; dropdownConfiguration?: IDropdownConfiguration; dropdownCheckboxConfiguration?: IDropdownCheckboxConfiguration; calendarConfiguration?: ICalendarConfiguration; passwordRequirements?: IPasswordRequirements; multiLineStringConfiguration?: IMultiLineStringConfiguration; maxLength?: number; minLength?: number; matches?: RegExp; maximum?: number; exclusiveMaximum?: boolean; minimum?: number; exclusiveMinimum?: boolean; range: IRange; additionalItems?: IFormPropertySchema | boolean; items?: IFormPropertySchema | Array; maxItems?: number; minItems?: number; uniqueItems?: boolean; maxProperties?: number; minProperties?: number; additionalProperties?: IFormPropertySchema | boolean; patternProperties?: Object; } export interface IPasswordRequirements { PasswordRequiresNonAlphanumeric: boolean; PasswordRequiresDigit: boolean; PasswordRequiresUpper: boolean; MinLength?: number; MaxLength?: number; } export interface IMultiLineStringConfiguration { Rows: number; Encode: boolean; } export interface IDropdownConfiguration { ValueType: string; DataUrl: string; RefetchEventName: string; DropdownData: Array; } export interface IDropdownCheckboxConfiguration { ValueType: string; DataUrl: string; RefetchEventName: string; DropdownData: Array; NoItemsText: string; } export interface ICalendarConfiguration { ViewmodelFormat: string; DisplayFormat: string; } export interface IRange { Minimum: number; Maximum: number; } export interface IFormSchemaService { webServiceName: string; getFormSchema(): Promise; }