@bimatrix-aud-platform/aud_mcp_server 1.1.38 → 1.1.40
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/generators/defaults.d.ts +227 -39
- package/dist/generators/defaults.js +265 -50
- package/dist/generators/mtsd-builder.js +72 -98
- package/package.json +1 -1
- package/schemas/mtsd.interface.ts +2 -2
- package/schemas/mtsd.schema.json +7 -8
|
@@ -4,10 +4,23 @@ export declare function defaultColor(): {
|
|
|
4
4
|
B: number;
|
|
5
5
|
A: number;
|
|
6
6
|
};
|
|
7
|
-
export declare function defaultBackground(): {
|
|
7
|
+
export declare function defaultBackground(): {
|
|
8
|
+
Color: {
|
|
9
|
+
R: number;
|
|
10
|
+
G: number;
|
|
11
|
+
B: number;
|
|
12
|
+
A: number;
|
|
13
|
+
};
|
|
14
|
+
};
|
|
8
15
|
export declare function defaultBorder(): {
|
|
16
|
+
Color: {
|
|
17
|
+
R: number;
|
|
18
|
+
G: number;
|
|
19
|
+
B: number;
|
|
20
|
+
A: number;
|
|
21
|
+
};
|
|
9
22
|
CornerRadius: string;
|
|
10
|
-
LineType: "
|
|
23
|
+
LineType: "solid";
|
|
11
24
|
Thickness: string;
|
|
12
25
|
};
|
|
13
26
|
export declare function defaultFont(): {
|
|
@@ -56,12 +69,40 @@ export declare function defaultPosition(): {
|
|
|
56
69
|
export declare function defaultStyle(): {
|
|
57
70
|
Type: number;
|
|
58
71
|
BoxStyle: string;
|
|
59
|
-
Background: {
|
|
72
|
+
Background: {
|
|
73
|
+
Color: {
|
|
74
|
+
R: number;
|
|
75
|
+
G: number;
|
|
76
|
+
B: number;
|
|
77
|
+
A: number;
|
|
78
|
+
};
|
|
79
|
+
};
|
|
60
80
|
Border: {
|
|
81
|
+
Color: {
|
|
82
|
+
R: number;
|
|
83
|
+
G: number;
|
|
84
|
+
B: number;
|
|
85
|
+
A: number;
|
|
86
|
+
};
|
|
61
87
|
CornerRadius: string;
|
|
62
|
-
LineType: "
|
|
88
|
+
LineType: "solid";
|
|
63
89
|
Thickness: string;
|
|
64
90
|
};
|
|
91
|
+
Font: {
|
|
92
|
+
Color: {
|
|
93
|
+
R: number;
|
|
94
|
+
G: number;
|
|
95
|
+
B: number;
|
|
96
|
+
A: number;
|
|
97
|
+
};
|
|
98
|
+
Size: number;
|
|
99
|
+
Family: string;
|
|
100
|
+
Bold: boolean;
|
|
101
|
+
Italic: boolean;
|
|
102
|
+
UnderLine: boolean;
|
|
103
|
+
HorizontalAlignment: "left";
|
|
104
|
+
VerticalAlignment: "middle";
|
|
105
|
+
};
|
|
65
106
|
};
|
|
66
107
|
export declare function defaultValidator(): {
|
|
67
108
|
ValidateType: number;
|
|
@@ -88,26 +129,47 @@ export declare function buttonDefaults(): {
|
|
|
88
129
|
Cursor: string;
|
|
89
130
|
HasNewRadius: boolean;
|
|
90
131
|
};
|
|
91
|
-
export declare function
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
132
|
+
export declare function textBoxDefaults(): {
|
|
133
|
+
LanguageCode: string;
|
|
134
|
+
Value: string;
|
|
135
|
+
Text: string;
|
|
136
|
+
IsReadOnly: boolean;
|
|
137
|
+
MaxLength: number;
|
|
138
|
+
Formula: string;
|
|
139
|
+
MxBinding: string;
|
|
140
|
+
MxBindingUseStyle: boolean;
|
|
95
141
|
};
|
|
96
|
-
export declare function
|
|
97
|
-
|
|
142
|
+
export declare function numberBoxDefaults(): {
|
|
143
|
+
Format: string;
|
|
144
|
+
Formula: string;
|
|
145
|
+
Value: number;
|
|
146
|
+
Text: string;
|
|
147
|
+
IsReadOnly: boolean;
|
|
148
|
+
Maximum: number;
|
|
149
|
+
Minimum: number;
|
|
150
|
+
MxBinding: string;
|
|
151
|
+
MxBindingUseStyle: boolean;
|
|
98
152
|
};
|
|
99
|
-
export declare function
|
|
100
|
-
|
|
153
|
+
export declare function maskTextBoxDefaults(): {
|
|
154
|
+
Format: string;
|
|
155
|
+
Formula: string;
|
|
156
|
+
IsReadOnly: boolean;
|
|
157
|
+
Text: string;
|
|
158
|
+
Value: string;
|
|
159
|
+
MxBinding: string;
|
|
160
|
+
};
|
|
161
|
+
export declare function richTextBoxDefaults(): {
|
|
162
|
+
Formula: string;
|
|
163
|
+
IsReadOnly: boolean;
|
|
164
|
+
MaxLength: number;
|
|
165
|
+
LineSpacing: number;
|
|
166
|
+
HasLineSpacing: boolean;
|
|
167
|
+
MxBinding: string;
|
|
168
|
+
MxBindingUseStyle: boolean;
|
|
169
|
+
Value: string;
|
|
101
170
|
Text: string;
|
|
102
|
-
TextPosition: string;
|
|
103
|
-
GroupName: string;
|
|
104
|
-
CheckedValue: string;
|
|
105
|
-
UnCheckedValue: string;
|
|
106
|
-
Checked: boolean;
|
|
107
|
-
ViewType: number;
|
|
108
171
|
};
|
|
109
172
|
export declare function comboBoxDefaults(): {
|
|
110
|
-
DataSource: string;
|
|
111
173
|
Value: string;
|
|
112
174
|
Text: string;
|
|
113
175
|
InitType: number;
|
|
@@ -115,25 +177,52 @@ export declare function comboBoxDefaults(): {
|
|
|
115
177
|
IsReadOnly: boolean;
|
|
116
178
|
SortType: number;
|
|
117
179
|
AutoRefresh: boolean;
|
|
180
|
+
DoRefresh: boolean;
|
|
118
181
|
AfterRefresh: string;
|
|
119
182
|
UseAllItems: boolean;
|
|
120
183
|
UseAllItemsText: string;
|
|
121
184
|
DisplayType: number;
|
|
122
|
-
DataSourceInfo: {
|
|
123
|
-
LabelField: string;
|
|
124
|
-
ValueField: string;
|
|
125
|
-
};
|
|
126
185
|
InitValue: string;
|
|
127
186
|
};
|
|
128
|
-
export declare function
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
187
|
+
export declare function multiComboBoxDefaults(): {
|
|
188
|
+
InitType: number;
|
|
189
|
+
RefreshType: number;
|
|
190
|
+
AutoRefresh: boolean;
|
|
191
|
+
EditValue: string;
|
|
192
|
+
CaptionText: string;
|
|
193
|
+
};
|
|
194
|
+
export declare function checkBoxDefaults(): {
|
|
195
|
+
LanguageCode: string;
|
|
196
|
+
Text: string;
|
|
197
|
+
TextPosition: string;
|
|
198
|
+
GroupName: string;
|
|
199
|
+
CheckedValue: string;
|
|
200
|
+
UnCheckedValue: string;
|
|
201
|
+
Checked: boolean;
|
|
202
|
+
ViewType: number;
|
|
203
|
+
};
|
|
204
|
+
export declare function radioButtonDefaults(): {
|
|
205
|
+
LanguageCode: string;
|
|
206
|
+
Text: string;
|
|
207
|
+
TextPosition: string;
|
|
208
|
+
GroupName: string;
|
|
209
|
+
CheckedValue: string;
|
|
210
|
+
Checked: boolean;
|
|
211
|
+
};
|
|
212
|
+
export declare function pickListDefaults(): {
|
|
213
|
+
IsReadOnly: boolean;
|
|
214
|
+
};
|
|
215
|
+
export declare function calendarDefaults(): {
|
|
216
|
+
LanguageCode: string;
|
|
217
|
+
Value: string;
|
|
133
218
|
Text: string;
|
|
219
|
+
InitType: number;
|
|
134
220
|
IsReadOnly: boolean;
|
|
135
|
-
|
|
136
|
-
|
|
221
|
+
CalendarType: number;
|
|
222
|
+
UseButton: boolean;
|
|
223
|
+
AutoRefresh: boolean;
|
|
224
|
+
AfterRefresh: string;
|
|
225
|
+
DataSource: string;
|
|
137
226
|
MxBinding: string;
|
|
138
227
|
MxBindingUseStyle: boolean;
|
|
139
228
|
};
|
|
@@ -144,20 +233,119 @@ export declare function imageDefaults(): {
|
|
|
144
233
|
SaveName: string;
|
|
145
234
|
};
|
|
146
235
|
};
|
|
147
|
-
export declare function
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
HasLineSpacing: boolean;
|
|
153
|
-
MxBinding: string;
|
|
154
|
-
MxBindingUseStyle: boolean;
|
|
236
|
+
export declare function colorSelectorDefaults(): {
|
|
237
|
+
ColorValue: string;
|
|
238
|
+
ShowButton: boolean;
|
|
239
|
+
};
|
|
240
|
+
export declare function fileUploadButtonDefaults(): {
|
|
155
241
|
Value: string;
|
|
156
|
-
|
|
242
|
+
Cursor: string;
|
|
243
|
+
};
|
|
244
|
+
export declare function dataGridDefaults(): {
|
|
245
|
+
CellMargin: string;
|
|
246
|
+
Columns: any[];
|
|
247
|
+
AutoRefresh: boolean;
|
|
248
|
+
DoRefresh: boolean;
|
|
249
|
+
DoExport: boolean;
|
|
250
|
+
ColumnHeaderHeight: number;
|
|
251
|
+
RowHeight: number;
|
|
252
|
+
ShowHeader: number;
|
|
253
|
+
SelectRule: number;
|
|
254
|
+
FontFamily: string;
|
|
255
|
+
FontSize: number;
|
|
256
|
+
};
|
|
257
|
+
export declare function compactDataGridDefaults(): {
|
|
258
|
+
CellMargin: string;
|
|
259
|
+
Columns: any[];
|
|
260
|
+
AutoRefresh: boolean;
|
|
261
|
+
DoRefresh: boolean;
|
|
262
|
+
DoExport: boolean;
|
|
263
|
+
ColumnHeaderHeight: number;
|
|
264
|
+
RowHeight: number;
|
|
265
|
+
ShowHeader: number;
|
|
266
|
+
SelectRule: number;
|
|
267
|
+
FontFamily: string;
|
|
268
|
+
FontSize: number;
|
|
269
|
+
};
|
|
270
|
+
export declare function treeGridDefaults(): {
|
|
271
|
+
CellMargin: string;
|
|
272
|
+
Columns: any[];
|
|
273
|
+
AutoRefresh: boolean;
|
|
274
|
+
DoRefresh: boolean;
|
|
275
|
+
DoExport: boolean;
|
|
276
|
+
ColumnHeaderHeight: number;
|
|
277
|
+
RowHeight: number;
|
|
278
|
+
SelectRule: number;
|
|
279
|
+
FontFamily: string;
|
|
280
|
+
FontSize: number;
|
|
281
|
+
ToggleBtnSize: number;
|
|
282
|
+
};
|
|
283
|
+
export declare function iGridDefaults(): {
|
|
284
|
+
AutoRefresh: boolean;
|
|
285
|
+
DoRefresh: boolean;
|
|
286
|
+
DoExport: boolean;
|
|
287
|
+
ServerScript: string;
|
|
288
|
+
TemplateCode: string;
|
|
289
|
+
};
|
|
290
|
+
export declare function olapGridDefaults(): {
|
|
291
|
+
AutoRefresh: boolean;
|
|
292
|
+
DoRefresh: boolean;
|
|
293
|
+
DoExport: boolean;
|
|
294
|
+
iOLAPView: Record<string, any>;
|
|
295
|
+
ExtraOption: Record<string, any>;
|
|
296
|
+
};
|
|
297
|
+
export declare function chartDefaults(): {
|
|
298
|
+
AutoRefresh: boolean;
|
|
299
|
+
DoRefresh: boolean;
|
|
300
|
+
DoExport: boolean;
|
|
301
|
+
PlotOptions: {
|
|
302
|
+
Animation: number;
|
|
303
|
+
EnableMouseTracking: boolean;
|
|
304
|
+
DataLabels: {};
|
|
305
|
+
ConnectNulls: boolean;
|
|
306
|
+
AllowOverlap: boolean;
|
|
307
|
+
};
|
|
308
|
+
Axis: {
|
|
309
|
+
XAxis: {
|
|
310
|
+
Text: string;
|
|
311
|
+
Visible: boolean;
|
|
312
|
+
};
|
|
313
|
+
Y1Axis: {
|
|
314
|
+
Text: string;
|
|
315
|
+
Visible: boolean;
|
|
316
|
+
};
|
|
317
|
+
Y2Axis: {
|
|
318
|
+
Text: string;
|
|
319
|
+
Visible: boolean;
|
|
320
|
+
};
|
|
321
|
+
};
|
|
322
|
+
SeriesSet: any[];
|
|
323
|
+
};
|
|
324
|
+
export declare function emptyDefaults(): Record<string, any>;
|
|
325
|
+
export declare function groupDefaults(): {
|
|
326
|
+
ChildElements: any[];
|
|
327
|
+
};
|
|
328
|
+
export declare function tabDefaults(): {
|
|
329
|
+
Property: {
|
|
330
|
+
TabButtonPosition: number;
|
|
331
|
+
};
|
|
332
|
+
TabItems: any[];
|
|
333
|
+
DoExport: boolean;
|
|
334
|
+
};
|
|
335
|
+
export declare function tableLayoutDefaults(): {
|
|
336
|
+
Cols: any[];
|
|
337
|
+
Rows: any[];
|
|
338
|
+
MergeCellList: any[];
|
|
157
339
|
};
|
|
158
340
|
export declare function userComponentDefaults(): {
|
|
159
341
|
DoRefresh: boolean;
|
|
160
342
|
DoExport: boolean;
|
|
161
343
|
ReportInfo: {};
|
|
344
|
+
ExternalReportInfo: {};
|
|
345
|
+
};
|
|
346
|
+
export declare function webContainerDefaults(): {
|
|
347
|
+
AutoRefresh: boolean;
|
|
348
|
+
DoRefresh: boolean;
|
|
349
|
+
TargetURL: string;
|
|
162
350
|
};
|
|
163
351
|
export declare const ELEMENT_DEFAULTS_MAP: Record<string, () => Record<string, any>>;
|
|
@@ -1,22 +1,25 @@
|
|
|
1
1
|
// ---- Base structural defaults ----
|
|
2
2
|
export function defaultColor() {
|
|
3
|
-
return { R:
|
|
3
|
+
return { R: 48, G: 48, B: 49, A: 1 };
|
|
4
4
|
}
|
|
5
5
|
export function defaultBackground() {
|
|
6
|
-
return {
|
|
6
|
+
return {
|
|
7
|
+
Color: { R: 255, G: 255, B: 255, A: 1 },
|
|
8
|
+
};
|
|
7
9
|
}
|
|
8
10
|
export function defaultBorder() {
|
|
9
11
|
return {
|
|
12
|
+
Color: { R: 204, G: 204, B: 204, A: 1 },
|
|
10
13
|
CornerRadius: "0,0,0,0",
|
|
11
|
-
LineType: "
|
|
12
|
-
Thickness: "
|
|
14
|
+
LineType: "solid",
|
|
15
|
+
Thickness: "1,1,1,1",
|
|
13
16
|
};
|
|
14
17
|
}
|
|
15
18
|
export function defaultFont() {
|
|
16
19
|
return {
|
|
17
|
-
Color: { R:
|
|
20
|
+
Color: { R: 48, G: 48, B: 49, A: 1 },
|
|
18
21
|
Size: 12,
|
|
19
|
-
Family: "
|
|
22
|
+
Family: "inherit",
|
|
20
23
|
Bold: false,
|
|
21
24
|
Italic: false,
|
|
22
25
|
UnderLine: false,
|
|
@@ -53,6 +56,7 @@ export function defaultStyle() {
|
|
|
53
56
|
BoxStyle: "",
|
|
54
57
|
Background: defaultBackground(),
|
|
55
58
|
Border: defaultBorder(),
|
|
59
|
+
Font: defaultFont(),
|
|
56
60
|
};
|
|
57
61
|
}
|
|
58
62
|
export function defaultValidator() {
|
|
@@ -65,6 +69,8 @@ export function defaultValidator() {
|
|
|
65
69
|
};
|
|
66
70
|
}
|
|
67
71
|
// ---- Element 타입별 기본값 ----
|
|
72
|
+
// 실제 i-AUD Designer(all_controls_report.mtsd)의 기본값을 기준으로 설정
|
|
73
|
+
// -- 기본 컨트롤 --
|
|
68
74
|
export function labelDefaults() {
|
|
69
75
|
return {
|
|
70
76
|
LanguageCode: "",
|
|
@@ -73,8 +79,8 @@ export function labelDefaults() {
|
|
|
73
79
|
Formula: "",
|
|
74
80
|
UseTextOverflow: false,
|
|
75
81
|
UseAutoLineBreak: false,
|
|
76
|
-
LineSpacing:
|
|
77
|
-
HasLineSpacing:
|
|
82
|
+
LineSpacing: 1.2,
|
|
83
|
+
HasLineSpacing: true,
|
|
78
84
|
MxBinding: "",
|
|
79
85
|
MxBindingUseStyle: false,
|
|
80
86
|
};
|
|
@@ -84,104 +90,313 @@ export function buttonDefaults() {
|
|
|
84
90
|
LanguageCode: "",
|
|
85
91
|
Value: "",
|
|
86
92
|
Cursor: "pointer",
|
|
87
|
-
HasNewRadius:
|
|
93
|
+
HasNewRadius: true,
|
|
88
94
|
};
|
|
89
95
|
}
|
|
90
|
-
|
|
96
|
+
// -- 입력 컨트롤 --
|
|
97
|
+
export function textBoxDefaults() {
|
|
91
98
|
return {
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
99
|
+
LanguageCode: "",
|
|
100
|
+
Value: "",
|
|
101
|
+
Text: "",
|
|
102
|
+
IsReadOnly: false,
|
|
103
|
+
MaxLength: 0,
|
|
104
|
+
Formula: "",
|
|
105
|
+
MxBinding: "",
|
|
106
|
+
MxBindingUseStyle: false,
|
|
95
107
|
};
|
|
96
108
|
}
|
|
97
|
-
export function
|
|
109
|
+
export function numberBoxDefaults() {
|
|
98
110
|
return {
|
|
99
|
-
|
|
111
|
+
Format: "#,##0",
|
|
112
|
+
Formula: "",
|
|
113
|
+
Value: 0,
|
|
114
|
+
Text: "",
|
|
115
|
+
IsReadOnly: false,
|
|
116
|
+
Maximum: 999999999,
|
|
117
|
+
Minimum: -999999999,
|
|
118
|
+
MxBinding: "",
|
|
119
|
+
MxBindingUseStyle: false,
|
|
100
120
|
};
|
|
101
121
|
}
|
|
102
|
-
export function
|
|
122
|
+
export function maskTextBoxDefaults() {
|
|
103
123
|
return {
|
|
104
|
-
|
|
124
|
+
Format: "",
|
|
125
|
+
Formula: "",
|
|
126
|
+
IsReadOnly: false,
|
|
105
127
|
Text: "",
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
CheckedValue: "Y",
|
|
109
|
-
UnCheckedValue: "N",
|
|
110
|
-
Checked: false,
|
|
111
|
-
ViewType: 0,
|
|
128
|
+
Value: "",
|
|
129
|
+
MxBinding: "",
|
|
112
130
|
};
|
|
113
131
|
}
|
|
132
|
+
export function richTextBoxDefaults() {
|
|
133
|
+
return {
|
|
134
|
+
Formula: "",
|
|
135
|
+
IsReadOnly: false,
|
|
136
|
+
MaxLength: 0,
|
|
137
|
+
LineSpacing: 1.2,
|
|
138
|
+
HasLineSpacing: true,
|
|
139
|
+
MxBinding: "",
|
|
140
|
+
MxBindingUseStyle: false,
|
|
141
|
+
Value: "",
|
|
142
|
+
Text: "",
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
// -- 선택 컨트롤 --
|
|
114
146
|
export function comboBoxDefaults() {
|
|
115
147
|
return {
|
|
116
|
-
DataSource: "",
|
|
117
148
|
Value: "",
|
|
118
149
|
Text: "",
|
|
119
150
|
InitType: 0,
|
|
120
|
-
RefreshType:
|
|
151
|
+
RefreshType: 1,
|
|
121
152
|
IsReadOnly: false,
|
|
122
153
|
SortType: 0,
|
|
123
154
|
AutoRefresh: false,
|
|
155
|
+
DoRefresh: false,
|
|
124
156
|
AfterRefresh: "",
|
|
125
157
|
UseAllItems: false,
|
|
126
158
|
UseAllItemsText: "",
|
|
127
159
|
DisplayType: 0,
|
|
128
|
-
DataSourceInfo: { LabelField: "", ValueField: "" },
|
|
129
160
|
InitValue: "",
|
|
130
161
|
};
|
|
131
162
|
}
|
|
132
|
-
export function
|
|
133
|
-
return {
|
|
163
|
+
export function multiComboBoxDefaults() {
|
|
164
|
+
return {
|
|
165
|
+
InitType: 0,
|
|
166
|
+
RefreshType: 1,
|
|
167
|
+
AutoRefresh: false,
|
|
168
|
+
EditValue: "",
|
|
169
|
+
CaptionText: "",
|
|
170
|
+
};
|
|
134
171
|
}
|
|
135
|
-
export function
|
|
172
|
+
export function checkBoxDefaults() {
|
|
136
173
|
return {
|
|
137
|
-
|
|
138
|
-
Formula: "",
|
|
139
|
-
Value: 0,
|
|
174
|
+
LanguageCode: "",
|
|
140
175
|
Text: "",
|
|
176
|
+
TextPosition: "back",
|
|
177
|
+
GroupName: "",
|
|
178
|
+
CheckedValue: "Y",
|
|
179
|
+
UnCheckedValue: "N",
|
|
180
|
+
Checked: false,
|
|
181
|
+
ViewType: 0,
|
|
182
|
+
};
|
|
183
|
+
}
|
|
184
|
+
export function radioButtonDefaults() {
|
|
185
|
+
return {
|
|
186
|
+
LanguageCode: "",
|
|
187
|
+
Text: "",
|
|
188
|
+
TextPosition: "back",
|
|
189
|
+
GroupName: "",
|
|
190
|
+
CheckedValue: "",
|
|
191
|
+
Checked: false,
|
|
192
|
+
};
|
|
193
|
+
}
|
|
194
|
+
export function pickListDefaults() {
|
|
195
|
+
return {
|
|
141
196
|
IsReadOnly: false,
|
|
142
|
-
|
|
143
|
-
|
|
197
|
+
};
|
|
198
|
+
}
|
|
199
|
+
// -- 날짜 컨트롤 --
|
|
200
|
+
export function calendarDefaults() {
|
|
201
|
+
return {
|
|
202
|
+
LanguageCode: "",
|
|
203
|
+
Value: "",
|
|
204
|
+
Text: "",
|
|
205
|
+
InitType: 0,
|
|
206
|
+
IsReadOnly: false,
|
|
207
|
+
CalendarType: 0,
|
|
208
|
+
UseButton: true,
|
|
209
|
+
AutoRefresh: false,
|
|
210
|
+
AfterRefresh: "",
|
|
211
|
+
DataSource: "",
|
|
144
212
|
MxBinding: "",
|
|
145
213
|
MxBindingUseStyle: false,
|
|
146
214
|
};
|
|
147
215
|
}
|
|
216
|
+
// -- 이미지/색상/파일 --
|
|
148
217
|
export function imageDefaults() {
|
|
149
218
|
return {
|
|
150
219
|
Cursor: "default",
|
|
151
220
|
Image: { FolderCode: "", SaveName: "" },
|
|
152
221
|
};
|
|
153
222
|
}
|
|
154
|
-
export function
|
|
223
|
+
export function colorSelectorDefaults() {
|
|
224
|
+
return {
|
|
225
|
+
ColorValue: "",
|
|
226
|
+
ShowButton: true,
|
|
227
|
+
};
|
|
228
|
+
}
|
|
229
|
+
export function fileUploadButtonDefaults() {
|
|
155
230
|
return {
|
|
156
|
-
Formula: "",
|
|
157
|
-
IsReadOnly: false,
|
|
158
|
-
MaxLength: 0,
|
|
159
|
-
LineSpacing: 0,
|
|
160
|
-
HasLineSpacing: false,
|
|
161
|
-
MxBinding: "",
|
|
162
|
-
MxBindingUseStyle: false,
|
|
163
231
|
Value: "",
|
|
164
|
-
|
|
232
|
+
Cursor: "pointer",
|
|
233
|
+
};
|
|
234
|
+
}
|
|
235
|
+
// -- 그리드 컨트롤 --
|
|
236
|
+
export function dataGridDefaults() {
|
|
237
|
+
return {
|
|
238
|
+
CellMargin: "5,5,5,5",
|
|
239
|
+
Columns: [],
|
|
240
|
+
AutoRefresh: false,
|
|
241
|
+
DoRefresh: true,
|
|
242
|
+
DoExport: true,
|
|
243
|
+
ColumnHeaderHeight: 28,
|
|
244
|
+
RowHeight: 24,
|
|
245
|
+
ShowHeader: 3,
|
|
246
|
+
SelectRule: 2,
|
|
247
|
+
FontFamily: "inherit",
|
|
248
|
+
FontSize: 12,
|
|
249
|
+
};
|
|
250
|
+
}
|
|
251
|
+
export function compactDataGridDefaults() {
|
|
252
|
+
return dataGridDefaults();
|
|
253
|
+
}
|
|
254
|
+
export function treeGridDefaults() {
|
|
255
|
+
return {
|
|
256
|
+
CellMargin: "5,5,5,5",
|
|
257
|
+
Columns: [],
|
|
258
|
+
AutoRefresh: false,
|
|
259
|
+
DoRefresh: true,
|
|
260
|
+
DoExport: true,
|
|
261
|
+
ColumnHeaderHeight: 28,
|
|
262
|
+
RowHeight: 24,
|
|
263
|
+
SelectRule: 2,
|
|
264
|
+
FontFamily: "inherit",
|
|
265
|
+
FontSize: 12,
|
|
266
|
+
ToggleBtnSize: 10,
|
|
267
|
+
};
|
|
268
|
+
}
|
|
269
|
+
export function iGridDefaults() {
|
|
270
|
+
return {
|
|
271
|
+
AutoRefresh: false,
|
|
272
|
+
DoRefresh: true,
|
|
273
|
+
DoExport: true,
|
|
274
|
+
ServerScript: "",
|
|
275
|
+
TemplateCode: "",
|
|
276
|
+
};
|
|
277
|
+
}
|
|
278
|
+
export function olapGridDefaults() {
|
|
279
|
+
return {
|
|
280
|
+
AutoRefresh: false,
|
|
281
|
+
DoRefresh: true,
|
|
282
|
+
DoExport: true,
|
|
283
|
+
iOLAPView: {},
|
|
284
|
+
ExtraOption: {},
|
|
285
|
+
};
|
|
286
|
+
}
|
|
287
|
+
// -- 차트 컨트롤 --
|
|
288
|
+
function defaultChartAxis() {
|
|
289
|
+
return {
|
|
290
|
+
XAxis: { Text: "", Visible: true },
|
|
291
|
+
Y1Axis: { Text: "", Visible: true },
|
|
292
|
+
Y2Axis: { Text: "", Visible: false },
|
|
293
|
+
};
|
|
294
|
+
}
|
|
295
|
+
function defaultPlotOptions() {
|
|
296
|
+
return {
|
|
297
|
+
Animation: 1000,
|
|
298
|
+
EnableMouseTracking: true,
|
|
299
|
+
DataLabels: {},
|
|
300
|
+
ConnectNulls: false,
|
|
301
|
+
AllowOverlap: false,
|
|
302
|
+
};
|
|
303
|
+
}
|
|
304
|
+
export function chartDefaults() {
|
|
305
|
+
return {
|
|
306
|
+
AutoRefresh: false,
|
|
307
|
+
DoRefresh: true,
|
|
308
|
+
DoExport: true,
|
|
309
|
+
PlotOptions: defaultPlotOptions(),
|
|
310
|
+
Axis: defaultChartAxis(),
|
|
311
|
+
SeriesSet: [],
|
|
312
|
+
};
|
|
313
|
+
}
|
|
314
|
+
// -- 트리 컨트롤 --
|
|
315
|
+
export function emptyDefaults() {
|
|
316
|
+
return {};
|
|
317
|
+
}
|
|
318
|
+
// -- 컨테이너/레이아웃 --
|
|
319
|
+
export function groupDefaults() {
|
|
320
|
+
return {
|
|
321
|
+
ChildElements: [],
|
|
322
|
+
};
|
|
323
|
+
}
|
|
324
|
+
export function tabDefaults() {
|
|
325
|
+
return {
|
|
326
|
+
Property: { TabButtonPosition: 0 },
|
|
327
|
+
TabItems: [],
|
|
328
|
+
DoExport: true,
|
|
329
|
+
};
|
|
330
|
+
}
|
|
331
|
+
export function tableLayoutDefaults() {
|
|
332
|
+
return {
|
|
333
|
+
Cols: [],
|
|
334
|
+
Rows: [],
|
|
335
|
+
MergeCellList: [],
|
|
165
336
|
};
|
|
166
337
|
}
|
|
167
338
|
export function userComponentDefaults() {
|
|
168
339
|
return {
|
|
169
|
-
DoRefresh:
|
|
170
|
-
DoExport:
|
|
340
|
+
DoRefresh: true,
|
|
341
|
+
DoExport: true,
|
|
171
342
|
ReportInfo: {},
|
|
343
|
+
ExternalReportInfo: {},
|
|
344
|
+
};
|
|
345
|
+
}
|
|
346
|
+
export function webContainerDefaults() {
|
|
347
|
+
return {
|
|
348
|
+
AutoRefresh: true,
|
|
349
|
+
DoRefresh: true,
|
|
350
|
+
TargetURL: "",
|
|
172
351
|
};
|
|
173
352
|
}
|
|
174
353
|
// Type → defaults 팩토리 매핑
|
|
175
354
|
export const ELEMENT_DEFAULTS_MAP = {
|
|
355
|
+
// 기본 컨트롤
|
|
176
356
|
Label: labelDefaults,
|
|
177
357
|
Button: buttonDefaults,
|
|
178
|
-
|
|
179
|
-
Group: groupDefaults,
|
|
180
|
-
CheckBox: checkBoxDefaults,
|
|
181
|
-
ComboBox: comboBoxDefaults,
|
|
358
|
+
// 입력 컨트롤
|
|
182
359
|
TextBox: textBoxDefaults,
|
|
183
360
|
NumberBox: numberBoxDefaults,
|
|
184
|
-
|
|
361
|
+
MaskTextBox: maskTextBoxDefaults,
|
|
185
362
|
RichTextBox: richTextBoxDefaults,
|
|
363
|
+
// 선택 컨트롤
|
|
364
|
+
ComboBox: comboBoxDefaults,
|
|
365
|
+
MultiComboBox: multiComboBoxDefaults,
|
|
366
|
+
CheckBox: checkBoxDefaults,
|
|
367
|
+
RadioButton: radioButtonDefaults,
|
|
368
|
+
PickList: pickListDefaults,
|
|
369
|
+
// 날짜 컨트롤
|
|
370
|
+
Calendar: calendarDefaults,
|
|
371
|
+
CalendarYear: calendarDefaults,
|
|
372
|
+
CalendarYM: calendarDefaults,
|
|
373
|
+
// 이미지/색상/파일
|
|
374
|
+
Image: imageDefaults,
|
|
375
|
+
ColorSelector: colorSelectorDefaults,
|
|
376
|
+
FileUploadButton: fileUploadButtonDefaults,
|
|
377
|
+
// 그리드 컨트롤
|
|
378
|
+
DataGrid: dataGridDefaults,
|
|
379
|
+
CompactDataGrid: compactDataGridDefaults,
|
|
380
|
+
TreeGrid: treeGridDefaults,
|
|
381
|
+
iGrid: iGridDefaults,
|
|
382
|
+
OlapGrid: olapGridDefaults,
|
|
383
|
+
// 차트 컨트롤
|
|
384
|
+
Chart: chartDefaults,
|
|
385
|
+
PieChart: chartDefaults,
|
|
386
|
+
ScatterChart: chartDefaults,
|
|
387
|
+
PolygonChart: chartDefaults,
|
|
388
|
+
// 트리 컨트롤
|
|
389
|
+
Tree: emptyDefaults,
|
|
390
|
+
TreeView: emptyDefaults,
|
|
391
|
+
// 컨테이너/레이아웃
|
|
392
|
+
Group: groupDefaults,
|
|
393
|
+
Tab: tabDefaults,
|
|
394
|
+
TableLayout: tableLayoutDefaults,
|
|
186
395
|
UserComponent: userComponentDefaults,
|
|
396
|
+
WebContainer: webContainerDefaults,
|
|
397
|
+
// 기타
|
|
398
|
+
Slider: emptyDefaults,
|
|
399
|
+
DiagramControl: emptyDefaults,
|
|
400
|
+
Slicer: emptyDefaults,
|
|
401
|
+
AddIn: emptyDefaults,
|
|
187
402
|
};
|
|
@@ -8,45 +8,42 @@ import { generateId } from "../utils/uuid.js";
|
|
|
8
8
|
import { parseHexColor } from "../utils/color.js";
|
|
9
9
|
import { parseDocking } from "../utils/docking.js";
|
|
10
10
|
import { generateGridColumns } from "./grid-column.js";
|
|
11
|
+
import { ELEMENT_DEFAULTS_MAP } from "./defaults.js";
|
|
11
12
|
// ============================================================
|
|
12
13
|
// Schema-Compliant Style Helpers (internal)
|
|
13
14
|
// ============================================================
|
|
14
15
|
function emptyBg() {
|
|
15
16
|
return {
|
|
16
|
-
Color: { R:
|
|
17
|
-
ColorR: 0, ColorG: 0, ColorB: 0, ColorA: 0,
|
|
17
|
+
Color: { R: 255, G: 255, B: 255, A: 1 },
|
|
18
18
|
};
|
|
19
19
|
}
|
|
20
20
|
function fullBg(hex) {
|
|
21
21
|
const c = parseHexColor(hex);
|
|
22
22
|
return {
|
|
23
|
-
Color: { R: c.R, G: c.G, B: c.B, A: 1 },
|
|
24
|
-
ColorR: c.R, ColorG: c.G, ColorB: c.B, ColorA: 1,
|
|
23
|
+
Color: { R: c.R, G: c.G, B: c.B, A: c.A > 0 ? 1 : 0 },
|
|
25
24
|
};
|
|
26
25
|
}
|
|
27
26
|
function emptyBorder() {
|
|
28
27
|
return {
|
|
29
|
-
Color: { R:
|
|
30
|
-
ColorR: 0, ColorG: 0, ColorB: 0, ColorA: 0,
|
|
28
|
+
Color: { R: 204, G: 204, B: 204, A: 1 },
|
|
31
29
|
CornerRadius: "0,0,0,0",
|
|
32
|
-
LineType: "
|
|
33
|
-
Thickness: "
|
|
30
|
+
LineType: "solid",
|
|
31
|
+
Thickness: "1,1,1,1",
|
|
34
32
|
};
|
|
35
33
|
}
|
|
36
34
|
function fullBorder(opts = {}) {
|
|
37
|
-
const c = opts.color ? parseHexColor(opts.color) : { R:
|
|
35
|
+
const c = opts.color ? parseHexColor(opts.color) : { R: 204, G: 204, B: 204, A: 1 };
|
|
38
36
|
return {
|
|
39
|
-
Color: { R: c.R, G: c.G, B: c.B, A: 1 },
|
|
40
|
-
ColorR: c.R, ColorG: c.G, ColorB: c.B, ColorA: 1,
|
|
37
|
+
Color: { R: c.R, G: c.G, B: c.B, A: c.A > 1 ? 1 : c.A },
|
|
41
38
|
CornerRadius: opts.radius || "0,0,0,0",
|
|
42
39
|
LineType: opts.lineType || "solid",
|
|
43
40
|
Thickness: opts.thickness || "1,1,1,1",
|
|
44
41
|
};
|
|
45
42
|
}
|
|
46
43
|
function fullFont(opts = {}) {
|
|
47
|
-
const c = opts.color ? parseHexColor(opts.color) : { R:
|
|
44
|
+
const c = opts.color ? parseHexColor(opts.color) : { R: 48, G: 48, B: 49, A: 1 };
|
|
48
45
|
return {
|
|
49
|
-
Color: { R: c.R, G: c.G, B: c.B, A: 1 },
|
|
46
|
+
Color: { R: c.R, G: c.G, B: c.B, A: c.A > 1 ? 1 : c.A },
|
|
50
47
|
Size: opts.size ?? 12,
|
|
51
48
|
Family: opts.family ?? "inherit",
|
|
52
49
|
Bold: opts.bold ?? false,
|
|
@@ -143,6 +140,11 @@ const COMMON_OPTS = new Set([
|
|
|
143
140
|
"bg", "border", "font", "color", "visible", "style",
|
|
144
141
|
"dataSource",
|
|
145
142
|
]);
|
|
143
|
+
/** defaults.ts의 ELEMENT_DEFAULTS_MAP에서 타입별 기본값을 가져온다 */
|
|
144
|
+
function getTypeDefaults(type) {
|
|
145
|
+
const factory = ELEMENT_DEFAULTS_MAP[type];
|
|
146
|
+
return factory ? factory() : {};
|
|
147
|
+
}
|
|
146
148
|
// ============================================================
|
|
147
149
|
// DataGridBuilder
|
|
148
150
|
// ============================================================
|
|
@@ -190,10 +192,8 @@ class ElementContainer {
|
|
|
190
192
|
Type: "Label", Id: id, Name: name,
|
|
191
193
|
Position: buildPosition({ width: 200, height: 30, ...opts }),
|
|
192
194
|
Style: buildStyle(opts),
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
LineSpacing: 0, HasLineSpacing: false,
|
|
196
|
-
MxBinding: "", MxBindingUseStyle: false,
|
|
195
|
+
...getTypeDefaults("Label"),
|
|
196
|
+
Text: text,
|
|
197
197
|
};
|
|
198
198
|
this._applyPassThrough(element, opts);
|
|
199
199
|
this._addElement(element);
|
|
@@ -205,7 +205,8 @@ class ElementContainer {
|
|
|
205
205
|
Type: "Button", Id: id, Name: name,
|
|
206
206
|
Position: buildPosition({ width: 80, height: 30, ...opts }),
|
|
207
207
|
Style: buildStyle(opts),
|
|
208
|
-
|
|
208
|
+
...getTypeDefaults("Button"),
|
|
209
|
+
Value: text,
|
|
209
210
|
};
|
|
210
211
|
this._applyPassThrough(element, opts);
|
|
211
212
|
this._addElement(element);
|
|
@@ -217,10 +218,7 @@ class ElementContainer {
|
|
|
217
218
|
Type: "Calendar", Id: id, Name: name,
|
|
218
219
|
Position: buildPosition({ width: 130, height: 28, ...opts }),
|
|
219
220
|
Style: buildStyle(opts),
|
|
220
|
-
|
|
221
|
-
IsReadOnly: false, CalendarType: 0, UseButton: true,
|
|
222
|
-
AutoRefresh: false, AfterRefresh: "", DataSource: "",
|
|
223
|
-
MxBinding: "", MxBindingUseStyle: false,
|
|
221
|
+
...getTypeDefaults("Calendar"),
|
|
224
222
|
};
|
|
225
223
|
this._applyPassThrough(element, opts);
|
|
226
224
|
this._addElement(element);
|
|
@@ -232,9 +230,7 @@ class ElementContainer {
|
|
|
232
230
|
Type: "TextBox", Id: id, Name: name,
|
|
233
231
|
Position: buildPosition({ width: 200, height: 28, ...opts }),
|
|
234
232
|
Style: buildStyle(opts),
|
|
235
|
-
|
|
236
|
-
IsReadOnly: false, Formula: "", MaxLength: 0,
|
|
237
|
-
MxBinding: "", MxBindingUseStyle: false,
|
|
233
|
+
...getTypeDefaults("TextBox"),
|
|
238
234
|
};
|
|
239
235
|
this._applyPassThrough(element, opts);
|
|
240
236
|
this._addElement(element);
|
|
@@ -246,12 +242,11 @@ class ElementContainer {
|
|
|
246
242
|
Type: "NumberBox", Id: id, Name: name,
|
|
247
243
|
Position: buildPosition({ width: 150, height: 28, ...opts }),
|
|
248
244
|
Style: buildStyle(opts),
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
Maximum: opts.max
|
|
253
|
-
Minimum: opts.min
|
|
254
|
-
MxBinding: "", MxBindingUseStyle: false,
|
|
245
|
+
...getTypeDefaults("NumberBox"),
|
|
246
|
+
...(opts.format !== undefined ? { Format: opts.format } : {}),
|
|
247
|
+
...(opts.value !== undefined ? { Value: opts.value } : {}),
|
|
248
|
+
...(opts.max !== undefined ? { Maximum: opts.max } : {}),
|
|
249
|
+
...(opts.min !== undefined ? { Minimum: opts.min } : {}),
|
|
255
250
|
};
|
|
256
251
|
this._applyPassThrough(element, opts);
|
|
257
252
|
this._addElement(element);
|
|
@@ -263,16 +258,12 @@ class ElementContainer {
|
|
|
263
258
|
Type: "ComboBox", Id: id, Name: name,
|
|
264
259
|
Position: buildPosition({ width: 150, height: 28, ...opts }),
|
|
265
260
|
Style: buildStyle(opts),
|
|
261
|
+
...getTypeDefaults("ComboBox"),
|
|
266
262
|
DataSource: opts.dataSource || "",
|
|
267
|
-
Value: "", Text: "", InitType: 0, RefreshType: 0,
|
|
268
|
-
IsReadOnly: false, SortType: 0,
|
|
269
|
-
AutoRefresh: false, AfterRefresh: "",
|
|
270
|
-
UseAllItems: false, UseAllItemsText: "", DisplayType: 0,
|
|
271
263
|
DataSourceInfo: {
|
|
272
264
|
LabelField: opts.labelField || "",
|
|
273
265
|
ValueField: opts.valueField || "",
|
|
274
266
|
},
|
|
275
|
-
InitValue: "",
|
|
276
267
|
};
|
|
277
268
|
this._applyPassThrough(element, opts);
|
|
278
269
|
this._addElement(element);
|
|
@@ -284,12 +275,11 @@ class ElementContainer {
|
|
|
284
275
|
Type: "CheckBox", Id: id, Name: name,
|
|
285
276
|
Position: buildPosition({ width: 100, height: 25, ...opts }),
|
|
286
277
|
Style: buildStyle(opts),
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
CheckedValue: opts.checkedValue
|
|
290
|
-
UnCheckedValue: opts.uncheckedValue
|
|
291
|
-
Checked: opts.checked
|
|
292
|
-
ViewType: 0,
|
|
278
|
+
...getTypeDefaults("CheckBox"),
|
|
279
|
+
Text: text,
|
|
280
|
+
...(opts.checkedValue !== undefined ? { CheckedValue: opts.checkedValue } : {}),
|
|
281
|
+
...(opts.uncheckedValue !== undefined ? { UnCheckedValue: opts.uncheckedValue } : {}),
|
|
282
|
+
...(opts.checked !== undefined ? { Checked: opts.checked } : {}),
|
|
293
283
|
};
|
|
294
284
|
this._applyPassThrough(element, opts);
|
|
295
285
|
this._addElement(element);
|
|
@@ -301,8 +291,7 @@ class ElementContainer {
|
|
|
301
291
|
Type: "Image", Id: id, Name: name,
|
|
302
292
|
Position: buildPosition({ width: 100, height: 100, ...opts }),
|
|
303
293
|
Style: buildStyle(opts),
|
|
304
|
-
|
|
305
|
-
Image: { FolderCode: "", SaveName: "" },
|
|
294
|
+
...getTypeDefaults("Image"),
|
|
306
295
|
};
|
|
307
296
|
this._applyPassThrough(element, opts);
|
|
308
297
|
this._addElement(element);
|
|
@@ -314,9 +303,8 @@ class ElementContainer {
|
|
|
314
303
|
Type: "Chart", Id: id, Name: name,
|
|
315
304
|
Position: buildPosition({ width: 600, height: 400, ...opts }),
|
|
316
305
|
Style: buildStyle(opts),
|
|
306
|
+
...getTypeDefaults("Chart"),
|
|
317
307
|
DataSource: opts.dataSource || "",
|
|
318
|
-
AutoRefresh: false, DoRefresh: false, DoExport: false,
|
|
319
|
-
PlotOptions: {},
|
|
320
308
|
};
|
|
321
309
|
this._applyPassThrough(element, opts);
|
|
322
310
|
this._addElement(element);
|
|
@@ -328,8 +316,8 @@ class ElementContainer {
|
|
|
328
316
|
Type: "OlapGrid", Id: id, Name: name,
|
|
329
317
|
Position: buildPosition({ width: 800, height: 400, ...opts }),
|
|
330
318
|
Style: buildStyle(opts),
|
|
319
|
+
...getTypeDefaults("OlapGrid"),
|
|
331
320
|
DataSource: opts.dataSource || "",
|
|
332
|
-
AutoRefresh: false, DoRefresh: false, DoExport: false,
|
|
333
321
|
};
|
|
334
322
|
this._applyPassThrough(element, opts);
|
|
335
323
|
this._addElement(element);
|
|
@@ -342,9 +330,8 @@ class ElementContainer {
|
|
|
342
330
|
Type: "MaskTextBox", Id: id, Name: name,
|
|
343
331
|
Position: buildPosition({ width: 200, height: 28, ...opts }),
|
|
344
332
|
Style: buildStyle(opts),
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
MxBinding: "",
|
|
333
|
+
...getTypeDefaults("MaskTextBox"),
|
|
334
|
+
...(opts.format !== undefined ? { Format: opts.format } : {}),
|
|
348
335
|
};
|
|
349
336
|
this._applyPassThrough(element, opts);
|
|
350
337
|
this._addElement(element);
|
|
@@ -356,10 +343,7 @@ class ElementContainer {
|
|
|
356
343
|
Type: "RichTextBox", Id: id, Name: name,
|
|
357
344
|
Position: buildPosition({ width: 400, height: 200, ...opts }),
|
|
358
345
|
Style: buildStyle(opts),
|
|
359
|
-
|
|
360
|
-
LineSpacing: 0, HasLineSpacing: false,
|
|
361
|
-
MxBinding: "", MxBindingUseStyle: false,
|
|
362
|
-
Value: "", Text: "",
|
|
346
|
+
...getTypeDefaults("RichTextBox"),
|
|
363
347
|
};
|
|
364
348
|
this._applyPassThrough(element, opts);
|
|
365
349
|
this._addElement(element);
|
|
@@ -371,9 +355,8 @@ class ElementContainer {
|
|
|
371
355
|
Type: "MultiComboBox", Id: id, Name: name,
|
|
372
356
|
Position: buildPosition({ width: 200, height: 28, ...opts }),
|
|
373
357
|
Style: buildStyle(opts),
|
|
358
|
+
...getTypeDefaults("MultiComboBox"),
|
|
374
359
|
DataSource: opts.dataSource || "",
|
|
375
|
-
InitType: 0, RefreshType: 0, AutoRefresh: false,
|
|
376
|
-
EditValue: "", CaptionText: "",
|
|
377
360
|
DataSourceInfo: {
|
|
378
361
|
LabelField: opts.labelField || "",
|
|
379
362
|
ValueField: opts.valueField || "",
|
|
@@ -389,7 +372,7 @@ class ElementContainer {
|
|
|
389
372
|
Type: "PickList", Id: id, Name: name,
|
|
390
373
|
Position: buildPosition({ width: 200, height: 28, ...opts }),
|
|
391
374
|
Style: buildStyle(opts),
|
|
392
|
-
|
|
375
|
+
...getTypeDefaults("PickList"),
|
|
393
376
|
};
|
|
394
377
|
this._applyPassThrough(element, opts);
|
|
395
378
|
this._addElement(element);
|
|
@@ -401,10 +384,11 @@ class ElementContainer {
|
|
|
401
384
|
Type: "RadioButton", Id: id, Name: name,
|
|
402
385
|
Position: buildPosition({ width: 100, height: 25, ...opts }),
|
|
403
386
|
Style: buildStyle(opts),
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
387
|
+
...getTypeDefaults("RadioButton"),
|
|
388
|
+
Text: text,
|
|
389
|
+
...(opts.groupName !== undefined ? { GroupName: opts.groupName } : {}),
|
|
390
|
+
...(opts.checkedValue !== undefined ? { CheckedValue: opts.checkedValue } : {}),
|
|
391
|
+
...(opts.checked !== undefined ? { Checked: opts.checked } : {}),
|
|
408
392
|
};
|
|
409
393
|
this._applyPassThrough(element, opts);
|
|
410
394
|
this._addElement(element);
|
|
@@ -416,6 +400,7 @@ class ElementContainer {
|
|
|
416
400
|
Type: "Tree", Id: id, Name: name,
|
|
417
401
|
Position: buildPosition({ width: 200, height: 300, ...opts }),
|
|
418
402
|
Style: buildStyle(opts),
|
|
403
|
+
...getTypeDefaults("Tree"),
|
|
419
404
|
DataSource: opts.dataSource || "",
|
|
420
405
|
};
|
|
421
406
|
this._applyPassThrough(element, opts);
|
|
@@ -428,7 +413,7 @@ class ElementContainer {
|
|
|
428
413
|
Type: "ColorSelector", Id: id, Name: name,
|
|
429
414
|
Position: buildPosition({ width: 100, height: 28, ...opts }),
|
|
430
415
|
Style: buildStyle(opts),
|
|
431
|
-
|
|
416
|
+
...getTypeDefaults("ColorSelector"),
|
|
432
417
|
};
|
|
433
418
|
this._applyPassThrough(element, opts);
|
|
434
419
|
this._addElement(element);
|
|
@@ -440,6 +425,7 @@ class ElementContainer {
|
|
|
440
425
|
Type: "Slider", Id: id, Name: name,
|
|
441
426
|
Position: buildPosition({ width: 200, height: 30, ...opts }),
|
|
442
427
|
Style: buildStyle(opts),
|
|
428
|
+
...getTypeDefaults("Slider"),
|
|
443
429
|
DataSource: opts.dataSource || "",
|
|
444
430
|
};
|
|
445
431
|
this._applyPassThrough(element, opts);
|
|
@@ -453,10 +439,7 @@ class ElementContainer {
|
|
|
453
439
|
Type: "CalendarYear", Id: id, Name: name,
|
|
454
440
|
Position: buildPosition({ width: 100, height: 28, ...opts }),
|
|
455
441
|
Style: buildStyle(opts),
|
|
456
|
-
|
|
457
|
-
IsReadOnly: false, CalendarType: 0, UseButton: true,
|
|
458
|
-
AutoRefresh: false, AfterRefresh: "", DataSource: "",
|
|
459
|
-
MxBinding: "", MxBindingUseStyle: false,
|
|
442
|
+
...getTypeDefaults("CalendarYear"),
|
|
460
443
|
};
|
|
461
444
|
this._applyPassThrough(element, opts);
|
|
462
445
|
this._addElement(element);
|
|
@@ -468,10 +451,7 @@ class ElementContainer {
|
|
|
468
451
|
Type: "CalendarYM", Id: id, Name: name,
|
|
469
452
|
Position: buildPosition({ width: 120, height: 28, ...opts }),
|
|
470
453
|
Style: buildStyle(opts),
|
|
471
|
-
|
|
472
|
-
IsReadOnly: false, CalendarType: 0, UseButton: true,
|
|
473
|
-
AutoRefresh: false, AfterRefresh: "", DataSource: "",
|
|
474
|
-
MxBinding: "", MxBindingUseStyle: false,
|
|
454
|
+
...getTypeDefaults("CalendarYM"),
|
|
475
455
|
};
|
|
476
456
|
this._applyPassThrough(element, opts);
|
|
477
457
|
this._addElement(element);
|
|
@@ -484,7 +464,8 @@ class ElementContainer {
|
|
|
484
464
|
Type: "FileUploadButton", Id: id, Name: name,
|
|
485
465
|
Position: buildPosition({ width: 100, height: 30, ...opts }),
|
|
486
466
|
Style: buildStyle(opts),
|
|
487
|
-
|
|
467
|
+
...getTypeDefaults("FileUploadButton"),
|
|
468
|
+
Value: text,
|
|
488
469
|
};
|
|
489
470
|
if (opts.allowExt)
|
|
490
471
|
element.AllowExt = opts.allowExt;
|
|
@@ -501,10 +482,8 @@ class ElementContainer {
|
|
|
501
482
|
Type: "TreeGrid", Id: id, Name: name,
|
|
502
483
|
Position: buildPosition({ width: 800, height: 400, ...opts }),
|
|
503
484
|
Style: buildStyle(opts),
|
|
485
|
+
...getTypeDefaults("TreeGrid"),
|
|
504
486
|
DataSource: opts.dataSource || "",
|
|
505
|
-
CellMargin: "2", Columns: [],
|
|
506
|
-
AutoRefresh: false, DoRefresh: false, DoExport: false,
|
|
507
|
-
ToggleBtnSize: 10,
|
|
508
487
|
};
|
|
509
488
|
this._applyPassThrough(element, opts);
|
|
510
489
|
this._addElement(element);
|
|
@@ -518,9 +497,9 @@ class ElementContainer {
|
|
|
518
497
|
Type: "iGrid", Id: id, Name: name,
|
|
519
498
|
Position: buildPosition({ width: 800, height: 400, ...opts }),
|
|
520
499
|
Style: buildStyle(opts),
|
|
521
|
-
|
|
522
|
-
ServerScript: opts.serverScript
|
|
523
|
-
TemplateCode: opts.templateCode
|
|
500
|
+
...getTypeDefaults("iGrid"),
|
|
501
|
+
...(opts.serverScript !== undefined ? { ServerScript: opts.serverScript } : {}),
|
|
502
|
+
...(opts.templateCode !== undefined ? { TemplateCode: opts.templateCode } : {}),
|
|
524
503
|
};
|
|
525
504
|
this._applyPassThrough(element, opts);
|
|
526
505
|
this._addElement(element);
|
|
@@ -532,11 +511,8 @@ class ElementContainer {
|
|
|
532
511
|
Type: "CompactDataGrid", Id: id, Name: name,
|
|
533
512
|
Position: buildPosition({ width: 800, height: 300, ...opts }),
|
|
534
513
|
Style: buildStyle(opts),
|
|
514
|
+
...getTypeDefaults("CompactDataGrid"),
|
|
535
515
|
DataSource: opts.dataSource || "",
|
|
536
|
-
CellMargin: "2", Columns: [], UsePPTExport: false,
|
|
537
|
-
AutoRefresh: false, DoRefresh: false, DoExport: false,
|
|
538
|
-
ColumnHeaderHeight: 30, RowHeight: 26,
|
|
539
|
-
ShowHeader: 1, SelectRule: 0,
|
|
540
516
|
};
|
|
541
517
|
this._applyPassThrough(element, opts);
|
|
542
518
|
this._addElement(element);
|
|
@@ -550,6 +526,7 @@ class ElementContainer {
|
|
|
550
526
|
Type: "TreeView", Id: id, Name: name,
|
|
551
527
|
Position: buildPosition({ width: 250, height: 400, ...opts }),
|
|
552
528
|
Style: buildStyle(opts),
|
|
529
|
+
...getTypeDefaults("TreeView"),
|
|
553
530
|
DataSource: opts.dataSource || "",
|
|
554
531
|
};
|
|
555
532
|
this._applyPassThrough(element, opts);
|
|
@@ -563,9 +540,8 @@ class ElementContainer {
|
|
|
563
540
|
Type: "PieChart", Id: id, Name: name,
|
|
564
541
|
Position: buildPosition({ width: 400, height: 400, ...opts }),
|
|
565
542
|
Style: buildStyle(opts),
|
|
543
|
+
...getTypeDefaults("PieChart"),
|
|
566
544
|
DataSource: opts.dataSource || "",
|
|
567
|
-
AutoRefresh: false, DoRefresh: false, DoExport: false,
|
|
568
|
-
PlotOptions: {},
|
|
569
545
|
};
|
|
570
546
|
this._applyPassThrough(element, opts);
|
|
571
547
|
this._addElement(element);
|
|
@@ -577,9 +553,8 @@ class ElementContainer {
|
|
|
577
553
|
Type: "ScatterChart", Id: id, Name: name,
|
|
578
554
|
Position: buildPosition({ width: 600, height: 400, ...opts }),
|
|
579
555
|
Style: buildStyle(opts),
|
|
556
|
+
...getTypeDefaults("ScatterChart"),
|
|
580
557
|
DataSource: opts.dataSource || "",
|
|
581
|
-
AutoRefresh: false, DoRefresh: false, DoExport: false,
|
|
582
|
-
PlotOptions: {},
|
|
583
558
|
};
|
|
584
559
|
this._applyPassThrough(element, opts);
|
|
585
560
|
this._addElement(element);
|
|
@@ -591,9 +566,8 @@ class ElementContainer {
|
|
|
591
566
|
Type: "PolygonChart", Id: id, Name: name,
|
|
592
567
|
Position: buildPosition({ width: 400, height: 400, ...opts }),
|
|
593
568
|
Style: buildStyle(opts),
|
|
569
|
+
...getTypeDefaults("PolygonChart"),
|
|
594
570
|
DataSource: opts.dataSource || "",
|
|
595
|
-
AutoRefresh: false, DoRefresh: false, DoExport: false,
|
|
596
|
-
PlotOptions: {},
|
|
597
571
|
};
|
|
598
572
|
this._applyPassThrough(element, opts);
|
|
599
573
|
this._addElement(element);
|
|
@@ -606,7 +580,7 @@ class ElementContainer {
|
|
|
606
580
|
Type: "Tab", Id: id, Name: name,
|
|
607
581
|
Position: buildPosition({ width: 800, height: 400, ...opts }),
|
|
608
582
|
Style: buildStyle(opts),
|
|
609
|
-
|
|
583
|
+
...getTypeDefaults("Tab"),
|
|
610
584
|
};
|
|
611
585
|
this._applyPassThrough(element, opts);
|
|
612
586
|
this._addElement(element);
|
|
@@ -618,7 +592,7 @@ class ElementContainer {
|
|
|
618
592
|
Type: "TableLayout", Id: id, Name: name,
|
|
619
593
|
Position: buildPosition({ width: 800, height: 400, ...opts }),
|
|
620
594
|
Style: buildStyle(opts),
|
|
621
|
-
|
|
595
|
+
...getTypeDefaults("TableLayout"),
|
|
622
596
|
};
|
|
623
597
|
this._applyPassThrough(element, opts);
|
|
624
598
|
this._addElement(element);
|
|
@@ -631,6 +605,7 @@ class ElementContainer {
|
|
|
631
605
|
Type: "AddIn", Id: id, Name: name,
|
|
632
606
|
Position: buildPosition({ width: 400, height: 300, ...opts }),
|
|
633
607
|
Style: buildStyle(opts),
|
|
608
|
+
...getTypeDefaults("AddIn"),
|
|
634
609
|
};
|
|
635
610
|
this._applyPassThrough(element, opts);
|
|
636
611
|
this._addElement(element);
|
|
@@ -642,9 +617,8 @@ class ElementContainer {
|
|
|
642
617
|
Type: "UserComponent", Id: id, Name: name,
|
|
643
618
|
Position: buildPosition({ width: 800, height: 400, ...opts }),
|
|
644
619
|
Style: buildStyle(opts),
|
|
645
|
-
|
|
620
|
+
...getTypeDefaults("UserComponent"),
|
|
646
621
|
ReportInfo: { ReportCode: opts.reportCode || "", FolderCode: "" },
|
|
647
|
-
ExternalReportInfo: {},
|
|
648
622
|
};
|
|
649
623
|
this._applyPassThrough(element, opts);
|
|
650
624
|
this._addElement(element);
|
|
@@ -656,8 +630,8 @@ class ElementContainer {
|
|
|
656
630
|
Type: "WebContainer", Id: id, Name: name,
|
|
657
631
|
Position: buildPosition({ width: 800, height: 400, ...opts }),
|
|
658
632
|
Style: buildStyle(opts),
|
|
659
|
-
|
|
660
|
-
TargetURL: opts.url
|
|
633
|
+
...getTypeDefaults("WebContainer"),
|
|
634
|
+
...(opts.url !== undefined ? { TargetURL: opts.url } : {}),
|
|
661
635
|
};
|
|
662
636
|
this._applyPassThrough(element, opts);
|
|
663
637
|
this._addElement(element);
|
|
@@ -669,6 +643,7 @@ class ElementContainer {
|
|
|
669
643
|
Type: "DiagramControl", Id: id, Name: name,
|
|
670
644
|
Position: buildPosition({ width: 800, height: 400, ...opts }),
|
|
671
645
|
Style: buildStyle(opts),
|
|
646
|
+
...getTypeDefaults("DiagramControl"),
|
|
672
647
|
};
|
|
673
648
|
this._applyPassThrough(element, opts);
|
|
674
649
|
this._addElement(element);
|
|
@@ -680,6 +655,7 @@ class ElementContainer {
|
|
|
680
655
|
Type: "Slicer", Id: id, Name: name,
|
|
681
656
|
Position: buildPosition({ width: 200, height: 300, ...opts }),
|
|
682
657
|
Style: buildStyle(opts),
|
|
658
|
+
...getTypeDefaults("Slicer"),
|
|
683
659
|
};
|
|
684
660
|
this._applyPassThrough(element, opts);
|
|
685
661
|
this._addElement(element);
|
|
@@ -691,7 +667,7 @@ class ElementContainer {
|
|
|
691
667
|
Type: "Group", Id: id, Name: name,
|
|
692
668
|
Position: buildPosition({ width: 800, height: 50, ...opts }),
|
|
693
669
|
Style: buildStyle(opts),
|
|
694
|
-
|
|
670
|
+
...getTypeDefaults("Group"),
|
|
695
671
|
};
|
|
696
672
|
this._applyPassThrough(element, opts);
|
|
697
673
|
this._addElement(element);
|
|
@@ -703,11 +679,8 @@ class ElementContainer {
|
|
|
703
679
|
Type: "DataGrid", Id: id, Name: name,
|
|
704
680
|
Position: buildPosition({ width: 800, height: 400, ...opts }),
|
|
705
681
|
Style: buildStyle(opts),
|
|
682
|
+
...getTypeDefaults("DataGrid"),
|
|
706
683
|
DataSource: opts.dataSource || "",
|
|
707
|
-
CellMargin: "2", Columns: [], UsePPTExport: false,
|
|
708
|
-
AutoRefresh: false, DoRefresh: false, DoExport: false,
|
|
709
|
-
ColumnHeaderHeight: 30, RowHeight: 26,
|
|
710
|
-
ShowHeader: 1, SelectRule: 0,
|
|
711
684
|
};
|
|
712
685
|
this._applyPassThrough(element, opts);
|
|
713
686
|
this._addElement(element);
|
|
@@ -722,6 +695,7 @@ class ElementContainer {
|
|
|
722
695
|
Type: type, Id: id, Name: name,
|
|
723
696
|
Position: buildPosition(opts),
|
|
724
697
|
Style: buildStyle(opts),
|
|
698
|
+
...getTypeDefaults(type),
|
|
725
699
|
};
|
|
726
700
|
this._applyPassThrough(element, opts);
|
|
727
701
|
this._addElement(element);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bimatrix-aud-platform/aud_mcp_server",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.40",
|
|
4
4
|
"description": "MCP Server for i-AUD MTSD document validation, generation, schema querying, control info extraction, and database operations",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -2942,7 +2942,7 @@ export interface IChartElement extends IBaseElement {
|
|
|
2942
2942
|
/** 차트 옵션 (@see ChartOptions.ts Serialize: ChartType, 폰트, 테두리, 팔레트, 툴팁 등) */
|
|
2943
2943
|
Chart?: IChartOptions;
|
|
2944
2944
|
/** 축 설정 (@see Chart.ts Serialize: { XAxis, Y1Axis, Y2Axis }) */
|
|
2945
|
-
Axis
|
|
2945
|
+
Axis: IChartAxis;
|
|
2946
2946
|
/** 플롯 옵션 (Serialize: Animation, EnableMouseTracking, DataLabels, ConnectNulls, AllowOverlap) */
|
|
2947
2947
|
PlotOptions: IChartPlotOptions;
|
|
2948
2948
|
/** 차트 제목 설정 (@see Title.ts Serialize: Text, LanguageCode, Style?) */
|
|
@@ -2950,7 +2950,7 @@ export interface IChartElement extends IBaseElement {
|
|
|
2950
2950
|
/** 범례 설정 (@see Legend.ts Serialize: 기본값과 다른 속성만 저장) */
|
|
2951
2951
|
Legend?: IChartLegend;
|
|
2952
2952
|
/** 시리즈 배열 (@see Series.ts Serialize) */
|
|
2953
|
-
SeriesSet
|
|
2953
|
+
SeriesSet: IChartSeriesItem[];
|
|
2954
2954
|
}
|
|
2955
2955
|
|
|
2956
2956
|
// ============================================
|
package/schemas/mtsd.schema.json
CHANGED
|
@@ -379,7 +379,7 @@
|
|
|
379
379
|
"DataGridElement": {
|
|
380
380
|
"type": "object",
|
|
381
381
|
"description": "데이터 그리드 컨트롤",
|
|
382
|
-
"required": ["CellMargin", "Columns", "
|
|
382
|
+
"required": ["CellMargin", "Columns", "AutoRefresh", "DoRefresh", "DoExport", "ColumnHeaderHeight", "RowHeight", "ShowHeader", "SelectRule", "FontFamily", "FontSize"],
|
|
383
383
|
"properties": {
|
|
384
384
|
"CellMargin": { "type": "string", "description": "셀 내부 여백" },
|
|
385
385
|
"Columns": { "type": "array", "items": { "$ref": "#/$defs/GridColumn" } },
|
|
@@ -482,7 +482,7 @@
|
|
|
482
482
|
"RichTextBoxElement": {
|
|
483
483
|
"type": "object",
|
|
484
484
|
"description": "리치 텍스트 박스 컨트롤",
|
|
485
|
-
"required": ["
|
|
485
|
+
"required": ["Value", "Text"],
|
|
486
486
|
"properties": {
|
|
487
487
|
"Formula": { "type": "string", "description": "동적 수식" },
|
|
488
488
|
"IsReadOnly": { "type": "boolean", "description": "읽기 전용" },
|
|
@@ -499,7 +499,7 @@
|
|
|
499
499
|
"CheckBoxElement": {
|
|
500
500
|
"type": "object",
|
|
501
501
|
"description": "체크박스 컨트롤",
|
|
502
|
-
"required": ["
|
|
502
|
+
"required": ["Text"],
|
|
503
503
|
"properties": {
|
|
504
504
|
"LanguageCode": { "type": "string", "description": "다국어 키 코드" },
|
|
505
505
|
"Text": { "type": "string", "description": "체크박스 옆 텍스트" },
|
|
@@ -515,7 +515,7 @@
|
|
|
515
515
|
"ComboBoxElement": {
|
|
516
516
|
"type": "object",
|
|
517
517
|
"description": "콤보박스 컨트롤",
|
|
518
|
-
"required": ["
|
|
518
|
+
"required": ["AutoRefresh", "DoRefresh"],
|
|
519
519
|
"properties": {
|
|
520
520
|
"DataSource": { "type": "string", "description": "데이터소스 이름" },
|
|
521
521
|
"Value": { "type": "string", "description": "선택된 값" },
|
|
@@ -559,7 +559,6 @@
|
|
|
559
559
|
"NumberBoxElement": {
|
|
560
560
|
"type": "object",
|
|
561
561
|
"description": "숫자 입력 박스 컨트롤",
|
|
562
|
-
"required": ["Format", "Formula", "Value", "Text", "IsReadOnly", "Maximum", "Minimum", "MxBinding", "MxBindingUseStyle"],
|
|
563
562
|
"properties": {
|
|
564
563
|
"Format": { "type": "string", "description": "숫자 포맷" },
|
|
565
564
|
"Formula": { "type": "string", "description": "동적 수식" },
|
|
@@ -588,7 +587,7 @@
|
|
|
588
587
|
"OlapGridElement": {
|
|
589
588
|
"type": "object",
|
|
590
589
|
"description": "OLAP 피벗 그리드 컨트롤",
|
|
591
|
-
"required": ["AutoRefresh", "DoRefresh", "DoExport"],
|
|
590
|
+
"required": ["DataSource", "AutoRefresh", "DoRefresh", "DoExport", "iOLAPView", "ExtraOption"],
|
|
592
591
|
"properties": {
|
|
593
592
|
"DataSource": { "type": "string", "description": "바인딩할 데이터소스 이름" },
|
|
594
593
|
"ServerScript": { "type": "string", "description": "서버 스크립트 이름" },
|
|
@@ -602,7 +601,7 @@
|
|
|
602
601
|
"RadioButtonElement": {
|
|
603
602
|
"type": "object",
|
|
604
603
|
"description": "라디오 버튼 컨트롤",
|
|
605
|
-
"required": ["
|
|
604
|
+
"required": ["Text", "GroupName", "CheckedValue", "Checked"],
|
|
606
605
|
"properties": {
|
|
607
606
|
"LanguageCode": { "type": "string", "description": "다국어 키 코드" },
|
|
608
607
|
"Text": { "type": "string", "description": "라디오 버튼 옆 텍스트" },
|
|
@@ -783,7 +782,7 @@
|
|
|
783
782
|
"ChartElement": {
|
|
784
783
|
"type": "object",
|
|
785
784
|
"description": "차트 컨트롤 (Chart, PieChart, ScatterChart, PolygonChart 공통)",
|
|
786
|
-
"required": ["AutoRefresh", "DoRefresh", "DoExport", "PlotOptions"],
|
|
785
|
+
"required": ["AutoRefresh", "DoRefresh", "DoExport", "PlotOptions", "Axis", "SeriesSet"],
|
|
787
786
|
"properties": {
|
|
788
787
|
"DataSource": { "type": "string", "description": "데이터소스 코드" },
|
|
789
788
|
"AutoRefresh": { "type": "boolean", "description": "자동 새로고침 (기본값: false)" },
|