ng2-json-editor
Version:
Angular2 component for editing large json documents
125 lines (124 loc) • 4.38 kB
TypeScript
import { AutocompletionConfig } from './autocompletion-config';
import { LongListNavigatorConfig } from './long-list-navigator-config';
import { ViewTemplateConfig } from './view-template-config';
import { RefConfig } from './ref-config';
import { OnValueChangeFunction } from './on-value-change-function';
import { CustomValidationMessages } from './custom-validation-messages';
export interface SchemaOption {
/**
* Define the width that a field must acquire in a table.
*
* - This is only applicable when the parent field is a table.
*/
columnWidth?: number;
/**
* Flag to disable fields that should be displayed in the UI, but aren't supposed to be edited.
*/
disabled?: boolean;
/**
* Flag to disable delete button that should be displayed in the UI.
*/
isDeleteDisabled?: boolean;
/**
* Flag to hide fields in the json from the editor's UI.
*
* - When this is set to `true` then the field is hidden even if it is required.
*/
hidden?: boolean;
/**
* Array of properties of __an__ object that are going to be shown in UI, even if they aren't present in the record.
*/
alwaysShow?: Array<string>;
/**
* Properties of __any__ object that matches this, are going to be shown in UI, even if they aren't present in the record.
*
* - It is applied recursively for all oject children of the object that's is set.
*/
alwaysShowRegExp?: RegExp;
/**
* Indicator to be used for sorting all fields on the UI. Larger priority fields appears up-most/left-most on the UI.
*
* - It is `0` by default.
* - It can be negative.
*/
priority?: number;
/**
* Shortcut map for enum fields, to map shorthand values to enum values.
*
* - When a key from the the map is typed in enum field then `enter` is pressed enum field value will be set value of that key.
*/
enumShortcutMap?: {
[key: string]: string;
};
/**
* Original enum item value to its display value
*
* - This map could also configure subset of enum values, unconfigured ones will have same display as original value.
*/
enumDisplayValueMap?: {
[key: string]: string;
};
/**
* Configuration for objects properties that has `$ref` string as a property which points to another json.
*/
refFieldConfig?: RefConfig;
/**
* Function that will be called when the value of configured property is changed
*
* - Works only for primitive values
*/
onValueChange?: OnValueChangeFunction;
/**
* Configuration to enable navigator with search and paging ability for complex array properties.
*/
longListNavigatorConfig?: LongListNavigatorConfig;
/**
* The function that returns a url string which will be pointed by a small link button at the right side of input element.
*
* @param value value of the configured property
*/
linkBuilder?: (value: any) => string;
/**
* Configuration to autocomplete a field from remote or local source.
*
* - Either url and path (for remote) or source (for local) must be set.
*/
autocompletionConfig?: AutocompletionConfig;
/**
* Array of keys that indicates the order in which they should be displayed in the UI.
*/
order?: Array<string>;
/**
* Toggle color for boolean, it will be displayed as a toggle on top if this is set.
*
* - It works only for top-level properties.
* - Toggle cannot be deleted once it is added.
*/
toggleColor?: string;
/**
* Flag to enable up/down buttons for elements of array.
*
* - It is `false` by default.
*/
sortable?: boolean;
/**
* Configuration for custom templates in complex list fields.
*/
viewTemplateConfig?: ViewTemplateConfig;
/**
* Flag to enable LaTeX preview in a field.
*/
latexPreviewEnabled?: boolean;
/**
* Custom error messages for schema validation
*/
errorMessage?: string | CustomValidationMessages;
/**
* Names of templates to be put as extra custom items to title dropdown.
*/
titleDropdownItemTemplateNames?: Array<string>;
/**
* Configuration for striping whitespaces from field value
*/
omitStripWhitespace?: boolean;
}