/
UISchema.ts
48 lines (39 loc) · 922 Bytes
/
UISchema.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
import {JSONPointer} from '../../repository';
export const OTHER_PROPERTIES = 'OTHER_PROPERTIES';
export const UNGROUPED = 'UNGROUPED';
export type AccessorType =
| 'default'
| 'boolean'
| 'number'
| 'string'
| 'array'
| 'object';
export type Order = Array<string | string[]>;
export interface UIHints {
order?: Order;
hidden?: string[];
uiGroups?: UIGroup[];
autoFocus?: JSONPointer;
}
export interface UIGroup {
name: string;
title?: string;
fields: string[];
}
export interface UIHintsOverrides {
[pointer: string]: UIHints;
}
export interface ComponentOptions {
name: string;
options?: any;
}
export interface RepoPointers {
[pointer: string]: ComponentOptions;
}
export interface RepoPointersCollection {
[name: string]: RepoPointers;
}
export interface UISchema {
hints: UIHintsOverrides;
components: RepoPointersCollection;
}