import { Type } from '@angular/core'; import { SchemaPrimitiveType, SchemaProperty } from './schema-models'; /** * Schema Form Data Type Store * It maintains the data type registrations per form instance. */ export declare class SchemaDataTypeStore { /** * It's used to store the data type registrations submitted from the form field components. */ static dataTypeRegistrationsFromClass: { [type: string]: DataTypeRegistration; }; private dataTypeMap; /** * It registers the data type registration. */ static registerDataType(dataTypeRegistration: DataTypeRegistration): void; constructor(); /** * It returns the names of all the data type registrations. */ getAllRegistrations(): DataTypeRegistration[]; /** * It gets the data type registration by type. */ getDataTypeRegistration(type: SchemaPrimitiveType, format?: string): DataTypeRegistration; /** * It registers the data type registration. */ registerDataType(dataTypeRegistration: DataTypeRegistration): void; } /** * It describes all the necessary information for a schema form field. */ export interface DataTypeRegistration { /** * It defines the primitive type of the data type. */ type: SchemaPrimitiveType; /** * It defines the description of the data type. The description will be used in the editor which a data type is chosen * to help explain how the chosen data type works. */ description: string; /** * It defines the format of the data type. Format maps to a specific UI control for the data type. */ format: string; /** * It defines how the angular template html should be generated for the schema property. */ loaderComponent?: Type; /** * It defines how the object type schema should look like for the object type schema. */ predefinedObjectProperties?: SchemaProperty[]; /** * It defines the schema of the option property. * Example: for drop down list field, the option properties would be an array for key value pairs to provide drop down options. */ optionProperties?: SchemaProperty[]; /** * Here is the place to append any additional information for the data type. * E.g. Json object data type has a tag says "form-editor" to indicate that data type is only used for form editor, it's not available * for normal forms. */ tags?: string[]; /** * It defines whether the format of this data type is the default format of that type. */ isDefaultFormat?: boolean; defaultDataHandler?: (schema: SchemaProperty) => any; }