@bimatrix-aud-platform/aud_mcp_server 1.1.14 → 1.1.16

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.
@@ -0,0 +1,503 @@
1
+ /**
2
+ * MX-GRID WorkBook (.json2) 파일 구조 인터페이스
3
+ * .json2 파일은 MX-GRID 엑셀 기반 스프레드시트 워크북을 정의합니다.
4
+ *
5
+ * 참조: WorkBook.java - CreateWorkBookByJson()
6
+ */
7
+
8
+ // ============================================
9
+ // 루트 인터페이스
10
+ // ============================================
11
+
12
+ /**
13
+ * .json2 파일 최상위 구조
14
+ */
15
+ export interface IJson2Document {
16
+ /** 기본 폰트명 (예: '맑은 고딕') */
17
+ FontName?: string;
18
+ /** 기본 폰트 크기 (기본값: 11) */
19
+ FontSize?: number;
20
+ /** 워크북 버전 */
21
+ Version?: number;
22
+ /** 열 너비 픽셀 비율 */
23
+ ColumnWidthPixelRate?: number;
24
+ /** 스타일 정의 배열 */
25
+ Styles?: IStyle[];
26
+ /** 워크시트 배열 (필수, 최소 1개) */
27
+ WorkSheets: IWorkSheet[];
28
+ /** 시트 이름 목록 (시트 순서 재배치용) */
29
+ SheetNames?: string[];
30
+ /** 이름 정의(Named Range) 배열 */
31
+ Names?: INameDef[];
32
+ /** 데이터 바인딩 정의 배열 */
33
+ DataBinding?: IDataBinding[];
34
+ }
35
+
36
+ // ============================================
37
+ // 스타일
38
+ // ============================================
39
+
40
+ /**
41
+ * 셀 스타일 정의
42
+ */
43
+ export interface IStyle {
44
+ /** 스타일 식별자 (예: 'S0', 'S1') */
45
+ Name: string;
46
+ /** CSS-like 폰트 문자열 (예: 'font-family:맑은 고딕;font-size:10;font-weight:bold;font-color:#000000;') */
47
+ Font?: string;
48
+ /** CSS-like 테두리 문자열 (예: 'border-left:Thin,#000000;border-top:Thin,#000000;') */
49
+ Border?: string;
50
+ /** 배경색 (예: '#dce6f2' 또는 'solid,#FFEBF1DE') */
51
+ Fill?: string;
52
+ /** 숫자/날짜 포맷 (예: '#,##0.00', 'yyyy-MM-dd') */
53
+ Format?: string;
54
+ /** 가로 정렬 */
55
+ Horizontal?: "center" | "left" | "right" | "general" | "fill" | "justify" | "distributed";
56
+ /** 세로 정렬 */
57
+ Vertical?: "center" | "top" | "bottom" | "justify" | "distributed";
58
+ /** 텍스트 줄바꿈 */
59
+ WrapText?: boolean;
60
+ /** 들여쓰기 수준 */
61
+ IndentLevel?: number;
62
+ /** 셀에 맞추기 */
63
+ ShrinkToFit?: boolean;
64
+ /** 텍스트 회전 각도 */
65
+ RotationAngle?: number;
66
+ /** 셀 잠금 여부 */
67
+ IsLocked?: boolean;
68
+ }
69
+
70
+ // ============================================
71
+ // 워크시트
72
+ // ============================================
73
+
74
+ /**
75
+ * 워크시트 정의
76
+ */
77
+ export interface IWorkSheet {
78
+ /** 시트 이름 */
79
+ Name: string;
80
+ /** 기본 행 높이 */
81
+ DefaultRowHeight?: number;
82
+ /** 기본 행 높이 (픽셀) */
83
+ DefaultRowHeightPixel?: number;
84
+ /** 기본 열 너비 (픽셀) */
85
+ DefaultColumnWidthPixel?: number;
86
+ /** CRUD 활성화 여부 */
87
+ CRUD?: boolean;
88
+ /** 뷰 타입 */
89
+ ViewType?: string;
90
+ /** 확대/축소 비율 (기본값: 100) */
91
+ Zoom?: number;
92
+ /** 활성 시트 여부 */
93
+ Active?: boolean;
94
+ /** 시트 표시 여부 (기본값: true) */
95
+ Visible?: boolean;
96
+ /** 눈금선 표시 여부 */
97
+ DisplayGridlines?: boolean;
98
+ /** 시트 보호 설정 */
99
+ Protection?: IProtection;
100
+ /** 수평 페이지 나누기 위치 */
101
+ HPageBreaks?: number[];
102
+ /** 수직 페이지 나누기 위치 */
103
+ VPageBreaks?: number[];
104
+ /** 틀 고정 설정 */
105
+ FreezePanes?: IFreezePanes;
106
+ /** 페이지 설정 */
107
+ PageSetup?: IPageSetup;
108
+ /** 열 정의 배열 */
109
+ Columns?: IColumn[];
110
+ /** 행 정의 배열 */
111
+ Rows?: IRow[];
112
+ /** 셀 데이터 배열 */
113
+ Ranges?: ICellRange[];
114
+ /** 내장 컨트롤 배열 (차트, 이미지, 데이터그리드 등) */
115
+ Controls?: IControl[];
116
+ /** 도형/이미지 배열 */
117
+ Shapes?: IShape[];
118
+ /** 조건부 서식 배열 */
119
+ FormatConditions?: IFormatCondition[];
120
+ /** 데이터 유효성 검사 배열 */
121
+ Validators?: IValidator[];
122
+ /** 스파크라인 그룹 배열 */
123
+ SparkLineGroups?: object[];
124
+ /** 내장 차트 배열 */
125
+ xlCharts?: IXlChart[];
126
+ }
127
+
128
+ // ============================================
129
+ // 열/행 정의
130
+ // ============================================
131
+
132
+ /**
133
+ * 열 정의
134
+ */
135
+ export interface IColumn {
136
+ /** 열 인덱스 (1부터 시작) */
137
+ Index: number;
138
+ /** 열 너비 (Excel 단위) */
139
+ Width?: number;
140
+ /** 열 너비 (픽셀) */
141
+ PixelWidth?: number;
142
+ }
143
+
144
+ /**
145
+ * 행 정의
146
+ */
147
+ export interface IRow {
148
+ /** 행 인덱스 (1부터 시작) */
149
+ Index: number;
150
+ /** 행 높이 (Excel 단위) */
151
+ Height?: number;
152
+ /** 행 높이 (픽셀) */
153
+ PixelHeight?: number;
154
+ }
155
+
156
+ // ============================================
157
+ // 셀 데이터
158
+ // ============================================
159
+
160
+ /**
161
+ * 셀 타입 코드
162
+ */
163
+ export type TCellType = 0 | 1 | 2 | 3 | 4 | 5 | -1;
164
+ // 0=String, 1=Number, 2=Date, 3=Boolean, 4=Empty, 5=Error, -1=Null
165
+
166
+ /**
167
+ * 셀 데이터 정의
168
+ */
169
+ export interface ICellRange {
170
+ /** 셀 주소 (예: 'A1' 또는 'B2:C3') */
171
+ Range: string;
172
+ /** 셀 값 (문자열, 숫자, 불리언, null 등) */
173
+ Value?: any;
174
+ /** 표시 텍스트 */
175
+ Text?: string;
176
+ /** 셀 수식 (예: '=SUM(A1:A10)') */
177
+ Formula?: string;
178
+ /** 셀 타입 */
179
+ Type?: TCellType;
180
+ /** 열 병합 수 */
181
+ ColSpan?: number;
182
+ /** 행 병합 수 */
183
+ RowSpan?: number;
184
+ /** 스타일 이름(문자열) 또는 인라인 스타일 객체 */
185
+ Style?: string | object;
186
+ /** 셀 포맷 (예: '#,##0') */
187
+ Format?: string;
188
+ /** 배열 수식 인덱스 */
189
+ ArrayIndex?: number;
190
+ /** 배열 수식 범위 */
191
+ ArrayRange?: object;
192
+ /** 리치 텍스트 폰트 설정 */
193
+ FontSettings?: IFontSetting[];
194
+ /** 사용자 정의 속성 */
195
+ Properties?: object;
196
+ /** 편집 가능 여부 */
197
+ Editable?: boolean;
198
+ /** 수정 여부 */
199
+ IsModified?: boolean;
200
+ /** 유효성 검사 인덱스 */
201
+ Validator?: number;
202
+ /** 마스크 포맷 */
203
+ MaskFormat?: string;
204
+ }
205
+
206
+ /**
207
+ * 리치 텍스트 폰트 설정
208
+ */
209
+ export interface IFontSetting {
210
+ /** 텍스트 내용 */
211
+ Text?: string;
212
+ /** 수식 */
213
+ Formula?: string;
214
+ /** 폰트 색상 (hex) */
215
+ FontColor?: string;
216
+ /** 폰트명 */
217
+ FontName?: string;
218
+ /** 폰트 크기 */
219
+ FontSize?: number;
220
+ /** 폰트 포인트 크기 */
221
+ FontPoint?: number;
222
+ /** 굵게 */
223
+ Bold?: boolean;
224
+ /** 기울임 */
225
+ Italic?: boolean;
226
+ /** 밑줄 (UnderLine) */
227
+ UnderLine?: boolean;
228
+ /** 밑줄 (Underline) */
229
+ Underline?: boolean;
230
+ }
231
+
232
+ // ============================================
233
+ // 컨트롤/도형/차트
234
+ // ============================================
235
+
236
+ /**
237
+ * 내장 컨트롤 (차트, 이미지, 데이터그리드 등)
238
+ * Type: 15=Image, 16=TableLayout, 18=PivotGrid, 19=DataGrid,
239
+ * 20=TreeGrid, 21=Chart, 22=Pie, 25=Scatter, 26=Polygon,
240
+ * 27=iGrid, 28=GroupGrid
241
+ */
242
+ export interface IControl {
243
+ /** 컨트롤 이름 */
244
+ Name: string;
245
+ /** 컨트롤 타입 코드 */
246
+ Type: number;
247
+ /** 표시 영역 */
248
+ Range: string;
249
+ /** 이미지 파일명 */
250
+ FileName?: string;
251
+ /** Base64 인코딩 데이터 */
252
+ Value?: string;
253
+ /** 너비 (픽셀) */
254
+ Width?: number;
255
+ /** 높이 (픽셀) */
256
+ Height?: number;
257
+ [key: string]: any;
258
+ }
259
+
260
+ /**
261
+ * 도형/이미지 객체
262
+ */
263
+ export interface IShape {
264
+ /** 도형 이름 */
265
+ Name: string;
266
+ /** Z 순서 */
267
+ ZIndex?: number;
268
+ /** 왼쪽 위치 */
269
+ Left?: number;
270
+ /** 위쪽 위치 */
271
+ Top?: number;
272
+ /** 너비 */
273
+ Width?: number;
274
+ /** 높이 */
275
+ Height?: number;
276
+ /** 위치 고정 여부 */
277
+ FixPos?: boolean;
278
+ /** 아래쪽 여백 */
279
+ MarginBottom?: number;
280
+ /** 위쪽 여백 */
281
+ MarginTop?: number;
282
+ /** 왼쪽 여백 */
283
+ MarginLeft?: number;
284
+ /** 오른쪽 여백 */
285
+ MarginRight?: number;
286
+ /** 왼쪽 상단 셀 주소 */
287
+ TopLeftCell?: string;
288
+ /** 오른쪽 하단 셀 주소 */
289
+ BottomRightCell?: string;
290
+ /** Base64 인코딩 이미지 */
291
+ BASE64?: string;
292
+ /** 텍스트 내용 */
293
+ Text?: string;
294
+ /** 수식 */
295
+ Formula?: string;
296
+ /** 스타일 참조 */
297
+ Style?: string;
298
+ /** 도형 타입 */
299
+ Type?: number;
300
+ [key: string]: any;
301
+ }
302
+
303
+ /**
304
+ * 내장 차트 객체
305
+ */
306
+ export interface IXlChart {
307
+ /** 차트 이름 */
308
+ Name?: string;
309
+ /** 차트 유형 코드 */
310
+ ChartType?: number;
311
+ /** 카테고리 역순 */
312
+ CategoryReverse?: boolean;
313
+ /** 역순 조건 */
314
+ Reverse?: string;
315
+ /** 차트 위치 */
316
+ Range?: string;
317
+ /** 데이터 시리즈 배열 */
318
+ DataRange?: IDataRangeSeries[];
319
+ /** 차트 설정 JSON 문자열 */
320
+ Json?: string;
321
+ [key: string]: any;
322
+ }
323
+
324
+ /**
325
+ * 차트 데이터 시리즈
326
+ */
327
+ export interface IDataRangeSeries {
328
+ /** 시리즈 이름 */
329
+ Name?: string;
330
+ /** 라벨 */
331
+ Label?: string;
332
+ /** 데이터 범위 참조 */
333
+ Data?: string;
334
+ /** 값 배열 */
335
+ Values?: any[];
336
+ [key: string]: any;
337
+ }
338
+
339
+ // ============================================
340
+ // 조건부 서식 / 유효성 검사
341
+ // ============================================
342
+
343
+ /**
344
+ * 조건부 서식 규칙
345
+ */
346
+ export interface IFormatCondition {
347
+ /** 조건 유형 */
348
+ Type?: number;
349
+ /** 우선순위 */
350
+ Priority?: number;
351
+ /** 적용 범위 */
352
+ Ranges?: string;
353
+ /** 스타일 */
354
+ Style?: string;
355
+ /** 조건 수식 1 */
356
+ Formula1?: string;
357
+ /** 조건 수식 2 */
358
+ Formula2?: string;
359
+ /** 연산자 */
360
+ Operator?: number;
361
+ /** 조건 충족 시 중지 */
362
+ StopIfTrue?: boolean;
363
+ /** 값 표시 여부 */
364
+ ShowValue?: boolean;
365
+ /** 테두리 */
366
+ Border?: string;
367
+ /** 색상 */
368
+ Color?: string;
369
+ /** 방향 */
370
+ Direction?: number;
371
+ [key: string]: any;
372
+ }
373
+
374
+ /**
375
+ * 데이터 유효성 검사 규칙
376
+ */
377
+ export interface IValidator {
378
+ /** 유효성 검사 유형 */
379
+ Type?: number;
380
+ /** 검증 수식 1 */
381
+ Formula1?: string;
382
+ /** 연산자 */
383
+ Operator?: number;
384
+ /** 빈 값 무시 */
385
+ IgnoreBlank?: boolean;
386
+ /** 셀 내 드롭다운 표시 */
387
+ InCellDropDown?: boolean;
388
+ /** 입력 메시지 표시 */
389
+ ShowInput?: boolean;
390
+ /** 오류 메시지 표시 */
391
+ ShowError?: boolean;
392
+ /** 입력 메시지 제목 */
393
+ InputTitle?: string;
394
+ /** 입력 메시지 */
395
+ InputMessage?: string;
396
+ /** 오류 메시지 제목 */
397
+ ErrorTitle?: string;
398
+ /** 오류 메시지 */
399
+ ErrorMessage?: string;
400
+ /** 적용 범위 */
401
+ Ranges?: string;
402
+ [key: string]: any;
403
+ }
404
+
405
+ // ============================================
406
+ // 페이지/보호 설정
407
+ // ============================================
408
+
409
+ /**
410
+ * 틀 고정 설정
411
+ */
412
+ export interface IFreezePanes {
413
+ /** 고정 행 (0부터) */
414
+ Row?: number;
415
+ /** 고정 열 (0부터) */
416
+ Column?: number;
417
+ }
418
+
419
+ /**
420
+ * 페이지 설정
421
+ */
422
+ export interface IPageSetup {
423
+ LeftMargin?: number;
424
+ RightMargin?: number;
425
+ TopMargin?: number;
426
+ BottomMargin?: number;
427
+ HeaderMargin?: number;
428
+ FooterMargin?: number;
429
+ Orientation?: "portrait" | "landscape";
430
+ PaperSize?: number;
431
+ Zoom?: number;
432
+ FitToWidth?: number;
433
+ FitToHeight?: number;
434
+ IsPercentScale?: boolean;
435
+ CenterHorizontally?: boolean;
436
+ CenterVertically?: boolean;
437
+ PrintArea?: string;
438
+ LeftHeader?: string;
439
+ CenterHeader?: string;
440
+ RightHeader?: string;
441
+ LeftFooter?: string;
442
+ CenterFooter?: string;
443
+ RightFooter?: string;
444
+ }
445
+
446
+ /**
447
+ * 시트 보호 설정
448
+ */
449
+ export interface IProtection {
450
+ /** 잠긴 셀 선택 허용 */
451
+ AllowSelectingLockedCell?: boolean;
452
+ /** 잠기지 않은 셀 선택 허용 */
453
+ AllowSelectingUnlockedCell?: boolean;
454
+ /** 보호 활성화 */
455
+ IsProtected?: boolean;
456
+ /** 보호 비밀번호 */
457
+ Password?: string;
458
+ [key: string]: any;
459
+ }
460
+
461
+ // ============================================
462
+ // 이름 정의 / 데이터 바인딩
463
+ // ============================================
464
+
465
+ /**
466
+ * 이름 정의 (Named Range)
467
+ */
468
+ export interface INameDef {
469
+ /** 이름 (예: '_VIEW_AREA_', '_D_DATA', 'CRUD_TABLE1') */
470
+ Name: string;
471
+ /** 참조 수식 (예: "='V1'!$A$1:$B$3") */
472
+ RefersTo: string;
473
+ /** 수식 여부 */
474
+ IsFormula?: boolean;
475
+ /** 숨김 여부 */
476
+ Hidden?: boolean;
477
+ /** 대상 시트명 */
478
+ SheetName?: string;
479
+ /** 참조 범위 배열 */
480
+ Ranges?: { SheetName?: string; Range?: string }[];
481
+ }
482
+
483
+ /**
484
+ * 데이터 바인딩 정의
485
+ */
486
+ export interface IDataBinding {
487
+ /** 바인딩 코드 */
488
+ Code: string;
489
+ /** 바인딩 이름 */
490
+ Name: string;
491
+ /** 대상 시트명 */
492
+ Sheet: string;
493
+ /** 컬럼 헤더 출력 여부 */
494
+ WriteColumns?: boolean;
495
+ /** 상단 행 인덱스 */
496
+ Top?: number;
497
+ /** 좌측 열 인덱스 */
498
+ Left?: number;
499
+ /** 하단 행 인덱스 */
500
+ Bottom?: number;
501
+ /** 우측 열 인덱스 */
502
+ Right?: number;
503
+ }