-
Notifications
You must be signed in to change notification settings - Fork 391
/
Copy pathstyles.ts
107 lines (104 loc) · 2.15 KB
/
styles.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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
import { UISchemaElement } from '@jsonforms/core';
import { inject } from 'vue';
import merge from 'lodash/merge';
import { defaultStyles } from './defaultStyles';
const createEmptyStyles = (): Styles => ({
control: {},
verticalLayout: {},
horizontalLayout: {},
group: {},
arrayList: {},
label: {},
dialog: {},
oneOf: {},
categorization: {},
});
export interface Styles {
control: {
root?: string;
wrapper?: string;
label?: string;
description?: string;
error?: string;
input?: string;
radioGroup?: string;
radioGroupItem?: string;
radioGroupItemLabel?: string;
textarea?: string;
select?: string;
option?: string;
asterisk?: string;
required?: string;
};
dialog: {
root?: string;
title?: string;
body?: string;
actions?: string;
buttonPrimary?: string;
buttonSecondary?: string;
};
verticalLayout: {
root?: string;
item?: string;
};
horizontalLayout: {
root?: string;
item?: string;
};
group: {
root?: string;
label?: string;
item?: string;
};
arrayList: {
root?: string;
legend?: string;
addButton?: string;
label?: string;
itemWrapper?: string;
noData?: string;
item?: string;
itemToolbar?: string;
itemLabel?: string;
itemContent?: string;
itemExpanded?: string;
itemMoveUp?: string;
itemMoveDown?: string;
itemDelete?: string;
};
label: {
root?: string;
};
oneOf: {
root?: string;
};
categorization: {
root?: string;
category?: string;
selected?: string;
panel?: string;
stepper?: string;
stepperBadge?: string;
stepperLine?: string;
stepperFooter?: string;
stepperButtonBack?: string;
stepperButtonNext?: string;
};
}
export const useStyles = (element?: UISchemaElement) => {
const userStyles = inject('styles', defaultStyles);
if (!element?.options?.styles) {
return userStyles;
}
const styles = createEmptyStyles();
if (userStyles) {
merge(styles, userStyles);
} else {
merge(styles, defaultStyles);
}
if (element?.options?.styles) {
merge(styles, element.options.styles);
}
return styles;
};