@microsoft/windows-admin-center-sdk
Version:
Microsoft - Windows Admin Center Shell
75 lines (74 loc) • 2.76 kB
TypeScript
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<any>;
/**
* 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;
}