@bimatrix-aud-platform/aud_mcp_server 1.1.15 → 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.
- package/package.json +1 -1
- package/schemas/mtsd.interface.ts +599 -17
- package/schemas/mtsd.schema.json +16 -9
package/package.json
CHANGED
|
@@ -394,24 +394,33 @@ export type ElementType =
|
|
|
394
394
|
| 'CalendarFromTo' // 기간 선택 달력 (시작~종료)
|
|
395
395
|
| 'CalendarWeeklyFromTo' // 주간 기간 선택 달력
|
|
396
396
|
| 'CalendarYM' // 년월 선택 달력
|
|
397
|
+
| 'CalendarYear' // 년도 선택 달력
|
|
397
398
|
| 'Chart' // 일반 차트
|
|
398
399
|
| 'PieChart' // 원형 차트
|
|
399
400
|
| 'ScatterChart' // 산점도 차트
|
|
401
|
+
| 'PolygonChart' // 다각형 차트 (레이더)
|
|
400
402
|
| 'TreeGrid' // 트리형 그리드
|
|
401
403
|
| 'OlapGrid' // OLAP 그리드
|
|
404
|
+
| 'iGrid' // MX-GRID (인터랙티브 그리드)
|
|
405
|
+
| 'CompactDataGrid' // 컴팩트 데이터 그리드
|
|
402
406
|
| 'Slider' // 슬라이더
|
|
403
407
|
| 'FileUpload' // 파일 업로드
|
|
404
408
|
| 'FileUploadButton' // 파일 업로드 버튼
|
|
405
409
|
| 'Browser' // 웹 브라우저 컨테이너 (iframe)
|
|
406
410
|
| 'WebContainer' // 웹 컨테이너
|
|
407
|
-
| 'ColorPicker' // 색상 선택기
|
|
411
|
+
| 'ColorPicker' // 색상 선택기 (구버전 호환)
|
|
412
|
+
| 'ColorSelector' // 색상 선택기
|
|
408
413
|
| 'MultiComboBox' // 다중선택 콤보박스
|
|
409
414
|
| 'PickList' // 픽 리스트
|
|
410
415
|
| 'Tab' // 탭 컨트롤
|
|
416
|
+
| 'TableLayout' // 테이블 레이아웃 컨테이너
|
|
411
417
|
| 'Tree' // 트리 컨트롤
|
|
418
|
+
| 'TreeView' // 트리뷰 컨트롤
|
|
412
419
|
| 'UserComponent' // 보고서 컨테이너 (ReportContainer) - 실제 저장되는 Type 값
|
|
413
420
|
| 'AddIn' // 애드인 컨트롤
|
|
414
|
-
| 'ListGrid'
|
|
421
|
+
| 'ListGrid' // 리스트 그리드
|
|
422
|
+
| 'DiagramControl' // 다이어그램 (워크플로우)
|
|
423
|
+
| 'Slicer'; // 슬라이서 (OLAP 필터)
|
|
415
424
|
|
|
416
425
|
/**
|
|
417
426
|
* 컨트롤 기본 인터페이스
|
|
@@ -542,11 +551,11 @@ export interface IDataGridElement extends IBaseElement {
|
|
|
542
551
|
DataSource?: string;
|
|
543
552
|
/** 셀 내부 여백 (예: "2,2,2,2") */
|
|
544
553
|
CellMargin: string;
|
|
545
|
-
/**
|
|
546
|
-
AutoRefresh
|
|
554
|
+
/** 보고서 로딩 시 데이터 조회 여부 */
|
|
555
|
+
AutoRefresh: boolean;
|
|
547
556
|
/** 수동 새로고침 버튼 표시 여부 */
|
|
548
|
-
DoRefresh
|
|
549
|
-
/** 내보내기
|
|
557
|
+
DoRefresh: boolean;
|
|
558
|
+
/** 파일 내보내기(다운로드) 가능 여부 */
|
|
550
559
|
DoExport?: boolean;
|
|
551
560
|
/** 헤더 표시 방식 (0: 표시, 1: 숨김 등) */
|
|
552
561
|
ShowHeader?: number;
|
|
@@ -857,6 +866,96 @@ export interface IComboBoxElement extends IBaseElement {
|
|
|
857
866
|
SelectedValue?: string;
|
|
858
867
|
/** 고정 항목 목록 (JSON 형식, 데이터소스 대신 사용) */
|
|
859
868
|
DefinedItems?: string;
|
|
869
|
+
/** 보고서 로딩 시 데이터 조회 여부 */
|
|
870
|
+
AutoRefresh: boolean;
|
|
871
|
+
/** 수동 새로고침 버튼 표시 여부 */
|
|
872
|
+
DoRefresh: boolean;
|
|
873
|
+
}
|
|
874
|
+
|
|
875
|
+
// ============================================
|
|
876
|
+
// MultiComboBox Element
|
|
877
|
+
// ============================================
|
|
878
|
+
|
|
879
|
+
/**
|
|
880
|
+
* 다중 선택 콤보박스 컨트롤 인터페이스
|
|
881
|
+
* 트리 구조 또는 플랫 목록에서 여러 항목을 선택할 수 있는 팝업 콤보박스입니다.
|
|
882
|
+
* @see src/control/combobox/MultiComboBox.ts
|
|
883
|
+
*/
|
|
884
|
+
export interface IMultiComboBoxElement extends IBaseElement {
|
|
885
|
+
Type: 'MultiComboBox';
|
|
886
|
+
/** 목록 데이터를 제공할 데이터소스 이름 */
|
|
887
|
+
DataSource?: string;
|
|
888
|
+
/** 선택된 값 (쉼표 구분) */
|
|
889
|
+
EditValue?: string;
|
|
890
|
+
/** 캡션 텍스트 (선택된 항목 요약 표시) */
|
|
891
|
+
CaptionText?: string;
|
|
892
|
+
/** 초기화 타입 (0: 없음, 1: 초기값 사용) */
|
|
893
|
+
InitType?: number;
|
|
894
|
+
/** 초기값 */
|
|
895
|
+
InitValue?: string;
|
|
896
|
+
/** 새로고침 타입 */
|
|
897
|
+
RefreshType?: number;
|
|
898
|
+
/** 읽기 전용 여부 */
|
|
899
|
+
IsReadOnly?: boolean;
|
|
900
|
+
/** 정렬 타입 */
|
|
901
|
+
SortType?: number;
|
|
902
|
+
/** 보고서 로딩 시 데이터 조회 여부 */
|
|
903
|
+
AutoRefresh: boolean;
|
|
904
|
+
/** 새로고침 후 호출할 함수명 */
|
|
905
|
+
AfterRefesh?: string;
|
|
906
|
+
/** 연동 대상 데이터 초기화 여부 */
|
|
907
|
+
ClearTargetData?: boolean;
|
|
908
|
+
/** 다중 선택 여부 */
|
|
909
|
+
IsMultiSelect?: boolean;
|
|
910
|
+
/** 자식 노드 자동 선택 여부 */
|
|
911
|
+
AutoChildSelect?: boolean;
|
|
912
|
+
/** 리프 노드만 선택 가능 여부 */
|
|
913
|
+
LeafNodeOnly?: boolean;
|
|
914
|
+
/** 체크박스 숨김 여부 */
|
|
915
|
+
HideCheckBox?: boolean;
|
|
916
|
+
/** 트리 자동 확장 레벨 (0: 확장 없음) */
|
|
917
|
+
AutoExpandLevel?: number;
|
|
918
|
+
/** 트리 들여쓰기 크기 (px) */
|
|
919
|
+
IndentSize?: number;
|
|
920
|
+
/** 빈 값 대체 텍스트 */
|
|
921
|
+
EmptyValue?: string;
|
|
922
|
+
/** 트리뷰 타입 (0: 플랫, 1: 트리) */
|
|
923
|
+
TreeViewType?: number;
|
|
924
|
+
/** 팝업 너비 (px) */
|
|
925
|
+
DialogWidth?: number;
|
|
926
|
+
/** 팝업 높이 (px) */
|
|
927
|
+
DialogHeight?: number;
|
|
928
|
+
/** 전체선택 시 쿼리 파라미터 값 사용 여부 */
|
|
929
|
+
UsedSelectAllQueryParamValue?: boolean;
|
|
930
|
+
/** 전체 체크 여부 */
|
|
931
|
+
CheckedAll?: boolean;
|
|
932
|
+
/** 값 텍스트 직접 편집 가능 여부 */
|
|
933
|
+
EditableValueText?: boolean;
|
|
934
|
+
/** '전체' 선택 텍스트 사용 여부 */
|
|
935
|
+
UseSelectedAllText?: boolean;
|
|
936
|
+
/** '전체' 선택 시 표시 텍스트 */
|
|
937
|
+
SelectedAllText?: string;
|
|
938
|
+
/** 전체 항목 사용 여부 */
|
|
939
|
+
UseAllItems?: boolean;
|
|
940
|
+
/** 전체 항목 텍스트 */
|
|
941
|
+
UseAllItemsText?: string;
|
|
942
|
+
/** 데이터소스 필드 매핑 정보 */
|
|
943
|
+
DataSourceInfo?: {
|
|
944
|
+
/** 상위 노드 필드명 (트리 구조 시) */
|
|
945
|
+
ParentField?: string;
|
|
946
|
+
/** 하위 노드 필드명 (트리 구조 시) */
|
|
947
|
+
ChildField?: string;
|
|
948
|
+
/** 표시 텍스트 필드명 */
|
|
949
|
+
CaptionField?: string;
|
|
950
|
+
/** 값 필드명 */
|
|
951
|
+
ValueField?: string;
|
|
952
|
+
/** 아이콘 필드명 */
|
|
953
|
+
ImageField?: string;
|
|
954
|
+
/** 툴팁 필드명 */
|
|
955
|
+
TooltipField?: string;
|
|
956
|
+
};
|
|
957
|
+
/** 데이터 바인딩 정보 */
|
|
958
|
+
BindingInfo?: IBindingInfo;
|
|
860
959
|
}
|
|
861
960
|
|
|
862
961
|
// ============================================
|
|
@@ -918,7 +1017,7 @@ export interface IUserComponentElement extends IBaseElement {
|
|
|
918
1017
|
// ========== 필수 속성 (항상 저장) ==========
|
|
919
1018
|
/** 수동 새로고침 버튼 표시 여부 */
|
|
920
1019
|
DoRefresh: boolean;
|
|
921
|
-
/** 내보내기
|
|
1020
|
+
/** 파일 내보내기(다운로드) 가능 여부 */
|
|
922
1021
|
DoExport: boolean;
|
|
923
1022
|
/** 포함된 보고서 정보 */
|
|
924
1023
|
ReportInfo: IContainerReportInfo;
|
|
@@ -950,20 +1049,20 @@ export interface IContainerReportInfo {
|
|
|
950
1049
|
*/
|
|
951
1050
|
export interface IOlapGridElement extends IBaseElement {
|
|
952
1051
|
Type: 'OlapGrid';
|
|
953
|
-
/** 바인딩할 데이터소스
|
|
954
|
-
DataSource
|
|
1052
|
+
/** 바인딩할 데이터소스 Id */
|
|
1053
|
+
DataSource: string;
|
|
955
1054
|
/** 서버 스크립트 이름 */
|
|
956
1055
|
ServerScript?: string;
|
|
957
|
-
/** 데이터
|
|
958
|
-
AutoRefresh
|
|
1056
|
+
/** 데이터 보고서 로딩 시 데이터 조회 여부 */
|
|
1057
|
+
AutoRefresh: boolean;
|
|
959
1058
|
/** 수동 새로고침 버튼 표시 여부 */
|
|
960
|
-
DoRefresh
|
|
961
|
-
/** 내보내기
|
|
962
|
-
DoExport
|
|
1059
|
+
DoRefresh: boolean;
|
|
1060
|
+
/** 파일 내보내기(다운로드) 가능 여부 */
|
|
1061
|
+
DoExport: boolean;
|
|
963
1062
|
/** iOLAP 뷰 모델 직렬화 데이터 */
|
|
964
|
-
iOLAPView
|
|
1063
|
+
iOLAPView: IOlapViewModel;
|
|
965
1064
|
/** OLAP 그리드 추가 옵션 (eniPivotSerializeOption 기반) */
|
|
966
|
-
ExtraOption
|
|
1065
|
+
ExtraOption: IOlapGridExtraOption;
|
|
967
1066
|
}
|
|
968
1067
|
|
|
969
1068
|
/**
|
|
@@ -1053,7 +1152,7 @@ export interface IOlapViewModel {
|
|
|
1053
1152
|
/** 사전 필터 배열 */
|
|
1054
1153
|
PreFilters?: string[];
|
|
1055
1154
|
/** OLAP 필드 배열 */
|
|
1056
|
-
Fields
|
|
1155
|
+
Fields: IOlapField[];
|
|
1057
1156
|
/** 조건부 서식 설정 */
|
|
1058
1157
|
ConditionalStyle?: string;
|
|
1059
1158
|
/** 멀티 헤더 셀 배열 (2차원 배열) */
|
|
@@ -2339,6 +2438,369 @@ export interface IWorkFlowLink {
|
|
|
2339
2438
|
FromParam: string;
|
|
2340
2439
|
}
|
|
2341
2440
|
|
|
2441
|
+
// ============================================
|
|
2442
|
+
// RadioButton Element
|
|
2443
|
+
// ============================================
|
|
2444
|
+
|
|
2445
|
+
/**
|
|
2446
|
+
* 라디오 버튼 컨트롤 인터페이스
|
|
2447
|
+
* 그룹 내에서 하나만 선택 가능한 버튼입니다.
|
|
2448
|
+
* @see src/control/checkbox/RadioButton.ts
|
|
2449
|
+
*/
|
|
2450
|
+
export interface IRadioButtonElement extends IBaseElement {
|
|
2451
|
+
Type: 'RadioButton';
|
|
2452
|
+
/** 라디오 버튼 옆에 표시될 텍스트 */
|
|
2453
|
+
Text: string;
|
|
2454
|
+
/** 텍스트 위치 ("front", "back") */
|
|
2455
|
+
TextPosition?: string;
|
|
2456
|
+
/** 라디오 버튼 그룹명 (같은 그룹명끼리 상호 배타적 선택) */
|
|
2457
|
+
GroupName: string;
|
|
2458
|
+
/** 선택 시 반환할 값 */
|
|
2459
|
+
CheckedValue: string;
|
|
2460
|
+
/** 초기 선택 상태 */
|
|
2461
|
+
Checked: boolean;
|
|
2462
|
+
/** 데이터 바인딩 정보 */
|
|
2463
|
+
BindingInfo?: IBindingInfo;
|
|
2464
|
+
}
|
|
2465
|
+
|
|
2466
|
+
// ============================================
|
|
2467
|
+
// MaskTextBox Element
|
|
2468
|
+
// ============================================
|
|
2469
|
+
|
|
2470
|
+
/**
|
|
2471
|
+
* 마스크 텍스트 입력 컨트롤 인터페이스
|
|
2472
|
+
* 입력 마스크 패턴을 사용하여 형식화된 텍스트를 입력받는 컨트롤입니다.
|
|
2473
|
+
* @see src/control/inputbox/MaskTextBox.ts
|
|
2474
|
+
*/
|
|
2475
|
+
export interface IMaskTextBoxElement extends IBaseElement {
|
|
2476
|
+
Type: 'MaskTextBox';
|
|
2477
|
+
/** 입력 마스크 패턴 */
|
|
2478
|
+
Format?: string;
|
|
2479
|
+
/** 텍스트를 동적으로 계산할 수식 */
|
|
2480
|
+
Formula?: string;
|
|
2481
|
+
/** 읽기 전용 여부 */
|
|
2482
|
+
IsReadOnly?: boolean;
|
|
2483
|
+
/** 텍스트 값 */
|
|
2484
|
+
Text?: string;
|
|
2485
|
+
/** 입력 값 */
|
|
2486
|
+
Value?: any;
|
|
2487
|
+
/** 데이터 바인딩 정보 */
|
|
2488
|
+
BindingInfo?: IBindingInfo;
|
|
2489
|
+
/** MX-Grid와의 바인딩 정보 */
|
|
2490
|
+
MxBinding?: string;
|
|
2491
|
+
}
|
|
2492
|
+
|
|
2493
|
+
// ============================================
|
|
2494
|
+
// Calendar Element (Calendar, CalendarYear, CalendarYM 공통)
|
|
2495
|
+
// ============================================
|
|
2496
|
+
|
|
2497
|
+
/**
|
|
2498
|
+
* 달력 컨트롤 인터페이스
|
|
2499
|
+
* 날짜를 선택하는 컨트롤입니다. Calendar, CalendarYear, CalendarYM 타입에서 공용으로 사용됩니다.
|
|
2500
|
+
* @see src/control/calendar/Calendar.ts
|
|
2501
|
+
*/
|
|
2502
|
+
export interface ICalendarElement extends IBaseElement {
|
|
2503
|
+
Type: 'Calendar' | 'CalendarYear' | 'CalendarYM' | 'CalendarFromTo' | 'CalendarWeeklyFromTo';
|
|
2504
|
+
/** 초기 날짜 (예: "TODAY", "TODAY-7", "TODAY-1M") */
|
|
2505
|
+
InitDate?: string;
|
|
2506
|
+
/** 데이터 포맷 (예: "yyyyMMdd", "yyyy") */
|
|
2507
|
+
DataFormat?: string;
|
|
2508
|
+
/** 표시 포맷 (예: "yyyy-MM-dd", "yyyy년 MM월") */
|
|
2509
|
+
ViewFormat?: string;
|
|
2510
|
+
/** 읽기 전용 여부 */
|
|
2511
|
+
IsReadOnly?: boolean;
|
|
2512
|
+
/** 텍스트 값 */
|
|
2513
|
+
Text?: string;
|
|
2514
|
+
/** 최소 날짜 */
|
|
2515
|
+
MinDate?: string;
|
|
2516
|
+
/** 최대 날짜 */
|
|
2517
|
+
MaxDate?: string;
|
|
2518
|
+
/** 데이터 바인딩 정보 */
|
|
2519
|
+
BindingInfo?: IBindingInfo;
|
|
2520
|
+
/** MX-Grid와의 바인딩 정보 */
|
|
2521
|
+
MxBinding?: string;
|
|
2522
|
+
}
|
|
2523
|
+
|
|
2524
|
+
// ============================================
|
|
2525
|
+
// Chart Element (Chart, PieChart, ScatterChart, PolygonChart 공통)
|
|
2526
|
+
// ============================================
|
|
2527
|
+
|
|
2528
|
+
/**
|
|
2529
|
+
* 차트 컨트롤 인터페이스
|
|
2530
|
+
* 데이터를 시각적 차트로 표시하는 컨트롤입니다.
|
|
2531
|
+
* Chart, PieChart, ScatterChart, PolygonChart 타입에서 공용으로 사용됩니다.
|
|
2532
|
+
* @see src/control/chart/ChartControl.ts
|
|
2533
|
+
*/
|
|
2534
|
+
export interface IChartElement extends IBaseElement {
|
|
2535
|
+
Type: 'Chart' | 'PieChart' | 'ScatterChart' | 'PolygonChart';
|
|
2536
|
+
/** 바인딩할 데이터소스 이름 */
|
|
2537
|
+
DataSource?: string;
|
|
2538
|
+
/** 보고서 로딩 시 데이터 조회 여부 */
|
|
2539
|
+
AutoRefresh?: boolean;
|
|
2540
|
+
/** 수동 새로고침 버튼 표시 여부 */
|
|
2541
|
+
DoRefresh?: boolean;
|
|
2542
|
+
/** 파일 내보내기(다운로드) 가능 여부 */
|
|
2543
|
+
DoExport?: boolean;
|
|
2544
|
+
/** 연결된 피벗 그리드 컨트롤 이름 */
|
|
2545
|
+
PivotGrid?: string;
|
|
2546
|
+
/** 연결된 데이터 그리드 컨트롤 이름 */
|
|
2547
|
+
DataGrid?: string;
|
|
2548
|
+
/** 차트 옵션 (ChartType, SubChartType 등) */
|
|
2549
|
+
Chart?: object;
|
|
2550
|
+
/** 축 설정 (XAxis, Y1Axis, Y2Axis) */
|
|
2551
|
+
Axis?: object;
|
|
2552
|
+
/** 플롯 옵션 */
|
|
2553
|
+
PlotOptions?: object;
|
|
2554
|
+
/** 차트 제목 설정 */
|
|
2555
|
+
Title?: object;
|
|
2556
|
+
/** 범례 설정 */
|
|
2557
|
+
Legend?: object;
|
|
2558
|
+
/** 시리즈 배열 */
|
|
2559
|
+
SeriesSet?: any[];
|
|
2560
|
+
}
|
|
2561
|
+
|
|
2562
|
+
// ============================================
|
|
2563
|
+
// TreeGrid Element
|
|
2564
|
+
// ============================================
|
|
2565
|
+
|
|
2566
|
+
/**
|
|
2567
|
+
* 트리 그리드 컨트롤 인터페이스
|
|
2568
|
+
* 트리 구조의 계층형 데이터를 그리드 형태로 표시하는 컨트롤입니다.
|
|
2569
|
+
* @see src/control/grid/TreeGrid.ts
|
|
2570
|
+
*/
|
|
2571
|
+
export interface ITreeGridElement extends IBaseElement {
|
|
2572
|
+
Type: 'TreeGrid';
|
|
2573
|
+
/** 셀 내부 여백 (예: "2,2,2,2") */
|
|
2574
|
+
CellMargin?: string;
|
|
2575
|
+
/** 그리드 컬럼 정의 배열 */
|
|
2576
|
+
Columns?: IGridColumn[];
|
|
2577
|
+
/** 바인딩할 데이터소스 이름 */
|
|
2578
|
+
DataSource?: string;
|
|
2579
|
+
/** 보고서 로딩 시 데이터 조회 여부 */
|
|
2580
|
+
AutoRefresh?: boolean;
|
|
2581
|
+
/** 수동 새로고침 버튼 표시 여부 */
|
|
2582
|
+
DoRefresh?: boolean;
|
|
2583
|
+
/** 파일 내보내기(다운로드) 가능 여부 */
|
|
2584
|
+
DoExport?: boolean;
|
|
2585
|
+
/** 트리 들여쓰기 여백 (px) */
|
|
2586
|
+
TreeMargin?: number;
|
|
2587
|
+
/** 토글 버튼 크기 (px) */
|
|
2588
|
+
ToggleBtnSize?: number;
|
|
2589
|
+
/** 트리 설정 (계층 구조 정의) */
|
|
2590
|
+
TreeInfo?: object;
|
|
2591
|
+
/** 자동 확장 레벨 */
|
|
2592
|
+
AutoExpandLevel?: number;
|
|
2593
|
+
/** 들여쓰기 폭 (px) */
|
|
2594
|
+
IndentWidth?: number;
|
|
2595
|
+
/** 최대 레벨 수 */
|
|
2596
|
+
MaxLevel?: number;
|
|
2597
|
+
/** 셀 편집 가능 여부 */
|
|
2598
|
+
Editable?: boolean;
|
|
2599
|
+
}
|
|
2600
|
+
|
|
2601
|
+
// ============================================
|
|
2602
|
+
// iGrid (MX-GRID) Element
|
|
2603
|
+
// ============================================
|
|
2604
|
+
|
|
2605
|
+
/**
|
|
2606
|
+
* MX-GRID (인터랙티브 그리드) 컨트롤 인터페이스
|
|
2607
|
+
* Excel과 유사한 스프레드시트 기능을 제공하는 고급 그리드 컨트롤입니다.
|
|
2608
|
+
*/
|
|
2609
|
+
export interface IiGridElement extends IBaseElement {
|
|
2610
|
+
Type: 'iGrid';
|
|
2611
|
+
/** 서버 스크립트 이름 */
|
|
2612
|
+
ServerScript?: string;
|
|
2613
|
+
/** 보고서 로딩 시 데이터 조회 여부 */
|
|
2614
|
+
AutoRefresh: boolean;
|
|
2615
|
+
/** 수동 새로고침 버튼 표시 여부 */
|
|
2616
|
+
DoRefresh: boolean;
|
|
2617
|
+
/** 파일 내보내기(다운로드) 가능 여부 */
|
|
2618
|
+
DoExport: boolean;
|
|
2619
|
+
/** 템플릿 코드 (.json2 파일 코드) */
|
|
2620
|
+
TemplateCode?: string;
|
|
2621
|
+
/** 활성 시트 이름 */
|
|
2622
|
+
ActiveSheet?: string;
|
|
2623
|
+
/** 다중 시트 사용 여부 */
|
|
2624
|
+
UseMultiSheet?: boolean;
|
|
2625
|
+
/** 줌 활성화 여부 */
|
|
2626
|
+
EnableZoom?: boolean;
|
|
2627
|
+
/** 고정 행 수 */
|
|
2628
|
+
FreezeRow?: number;
|
|
2629
|
+
/** 고정 열 수 */
|
|
2630
|
+
FreezeColumn?: number;
|
|
2631
|
+
/** 자식 컨트롤 배열 */
|
|
2632
|
+
Controls?: any[];
|
|
2633
|
+
}
|
|
2634
|
+
|
|
2635
|
+
// ============================================
|
|
2636
|
+
// TableLayout Element
|
|
2637
|
+
// ============================================
|
|
2638
|
+
|
|
2639
|
+
/**
|
|
2640
|
+
* 테이블 레이아웃 컨테이너 컨트롤 인터페이스
|
|
2641
|
+
* 행/열 기반 테이블 레이아웃으로 자식 컨트롤을 배치하는 컨테이너입니다.
|
|
2642
|
+
*/
|
|
2643
|
+
export interface ITableLayoutElement extends IBaseElement {
|
|
2644
|
+
Type: 'TableLayout';
|
|
2645
|
+
/** 폰트 크기 */
|
|
2646
|
+
FontSize?: number;
|
|
2647
|
+
/** 기본 여백 */
|
|
2648
|
+
BasicMargin?: any;
|
|
2649
|
+
/** 고정 레이아웃 여부 */
|
|
2650
|
+
IsFixed?: boolean;
|
|
2651
|
+
/** 테두리 표시 여부 */
|
|
2652
|
+
BorderVisible?: boolean;
|
|
2653
|
+
/** 컬럼 정의 배열 */
|
|
2654
|
+
Cols?: any[];
|
|
2655
|
+
/** 행 정의 배열 */
|
|
2656
|
+
Rows?: any[];
|
|
2657
|
+
/** 셀 병합 정의 */
|
|
2658
|
+
MergeCellList?: any[];
|
|
2659
|
+
}
|
|
2660
|
+
|
|
2661
|
+
// ============================================
|
|
2662
|
+
// Tab Element
|
|
2663
|
+
// ============================================
|
|
2664
|
+
|
|
2665
|
+
/**
|
|
2666
|
+
* 탭 컨테이너 컨트롤 인터페이스
|
|
2667
|
+
* 여러 탭 페이지로 컨트롤을 구분하여 표시하는 컨테이너입니다.
|
|
2668
|
+
*/
|
|
2669
|
+
export interface ITabElement extends IBaseElement {
|
|
2670
|
+
Type: 'Tab';
|
|
2671
|
+
/** 탭 버튼 위치 (enTabPositionType) */
|
|
2672
|
+
TabButtonPosition?: number;
|
|
2673
|
+
/** 탭 버튼 높이 (px) */
|
|
2674
|
+
TabButtonHeight?: number;
|
|
2675
|
+
/** 활성 탭 스타일 */
|
|
2676
|
+
ActiveStyle?: object;
|
|
2677
|
+
/** 비활성 탭 스타일 */
|
|
2678
|
+
InactiveStyle?: object;
|
|
2679
|
+
/** 마우스 오버 시 스타일 */
|
|
2680
|
+
MouseOverStyle?: object;
|
|
2681
|
+
/** 마우스 다운 시 스타일 */
|
|
2682
|
+
MouseDownStyle?: object;
|
|
2683
|
+
/** 파일 내보내기(다운로드) 가능 여부 */
|
|
2684
|
+
DoExport?: boolean;
|
|
2685
|
+
/** 탭 아이템 배열 (각 탭 페이지와 자식 컨트롤) */
|
|
2686
|
+
TabItems?: any[];
|
|
2687
|
+
}
|
|
2688
|
+
|
|
2689
|
+
// ============================================
|
|
2690
|
+
// Slider Element
|
|
2691
|
+
// ============================================
|
|
2692
|
+
|
|
2693
|
+
/**
|
|
2694
|
+
* 슬라이더 컨트롤 인터페이스
|
|
2695
|
+
* 범위 값을 슬라이더로 선택하는 컨트롤입니다.
|
|
2696
|
+
*/
|
|
2697
|
+
export interface ISliderElement extends IBaseElement {
|
|
2698
|
+
Type: 'Slider';
|
|
2699
|
+
/** 데이터소스 이름 */
|
|
2700
|
+
DataSource?: string;
|
|
2701
|
+
/** 슬라이더 설정 정보 */
|
|
2702
|
+
SliderInfo?: {
|
|
2703
|
+
/** 읽기 전용 여부 */
|
|
2704
|
+
IsReadOnly?: boolean;
|
|
2705
|
+
/** 그리드 간격 */
|
|
2706
|
+
Grid?: number;
|
|
2707
|
+
/** 이동 단위 */
|
|
2708
|
+
Step?: number;
|
|
2709
|
+
/** 표시 포맷 */
|
|
2710
|
+
Format?: string;
|
|
2711
|
+
/** 슬라이더 타입 */
|
|
2712
|
+
Type?: string;
|
|
2713
|
+
};
|
|
2714
|
+
/** 데이터소스 범위 정보 */
|
|
2715
|
+
DataSourceInfo?: {
|
|
2716
|
+
/** 최소값 */
|
|
2717
|
+
Min?: number;
|
|
2718
|
+
/** 최대값 */
|
|
2719
|
+
Max?: number;
|
|
2720
|
+
/** 시작값 */
|
|
2721
|
+
From?: number;
|
|
2722
|
+
/** 종료값 */
|
|
2723
|
+
To?: number;
|
|
2724
|
+
};
|
|
2725
|
+
}
|
|
2726
|
+
|
|
2727
|
+
// ============================================
|
|
2728
|
+
// ColorSelector Element
|
|
2729
|
+
// ============================================
|
|
2730
|
+
|
|
2731
|
+
/**
|
|
2732
|
+
* 색상 선택기 컨트롤 인터페이스
|
|
2733
|
+
* @see src/control/ColorSelector.ts
|
|
2734
|
+
*/
|
|
2735
|
+
export interface IColorSelectorElement extends IBaseElement {
|
|
2736
|
+
Type: 'ColorSelector';
|
|
2737
|
+
/** 색상 값 (hex) */
|
|
2738
|
+
ColorValue?: string;
|
|
2739
|
+
/** 버튼 표시 여부 */
|
|
2740
|
+
ShowButton?: boolean;
|
|
2741
|
+
}
|
|
2742
|
+
|
|
2743
|
+
// ============================================
|
|
2744
|
+
// FileUploadButton Element
|
|
2745
|
+
// ============================================
|
|
2746
|
+
|
|
2747
|
+
/**
|
|
2748
|
+
* 파일 업로드 버튼 컨트롤 인터페이스
|
|
2749
|
+
* 파일 업로드 기능을 가진 버튼 컨트롤입니다.
|
|
2750
|
+
*/
|
|
2751
|
+
export interface IFileUploadButtonElement extends IBaseElement {
|
|
2752
|
+
Type: 'FileUploadButton';
|
|
2753
|
+
/** 버튼 텍스트 */
|
|
2754
|
+
Value?: string;
|
|
2755
|
+
/** 마우스 커서 스타일 */
|
|
2756
|
+
Cursor?: string;
|
|
2757
|
+
/** 허용 파일 확장자 (예: ".xlsx,.csv") */
|
|
2758
|
+
AllowExt?: string;
|
|
2759
|
+
/** 업로드 크기 제한 (bytes) */
|
|
2760
|
+
SaveLimitSize?: number;
|
|
2761
|
+
/** 저장 폴더명 */
|
|
2762
|
+
SaveFolderName?: string;
|
|
2763
|
+
}
|
|
2764
|
+
|
|
2765
|
+
// ============================================
|
|
2766
|
+
// PickList Element
|
|
2767
|
+
// ============================================
|
|
2768
|
+
|
|
2769
|
+
/**
|
|
2770
|
+
* 픽리스트 컨트롤 인터페이스
|
|
2771
|
+
* 팝업 창에서 항목을 선택하는 컨트롤입니다.
|
|
2772
|
+
* @see src/control/combobox/PickList.ts
|
|
2773
|
+
*/
|
|
2774
|
+
export interface IPickListElement extends IBaseElement {
|
|
2775
|
+
Type: 'PickList';
|
|
2776
|
+
/** 읽기 전용 여부 */
|
|
2777
|
+
IsReadOnly?: boolean;
|
|
2778
|
+
/** 새로고침 후 호출할 함수명 */
|
|
2779
|
+
AfterRefresh?: string;
|
|
2780
|
+
/** 팝업 너비 (px) */
|
|
2781
|
+
DialogWidth?: number;
|
|
2782
|
+
/** 팝업 높이 (px) */
|
|
2783
|
+
DialogHeight?: number;
|
|
2784
|
+
}
|
|
2785
|
+
|
|
2786
|
+
// ============================================
|
|
2787
|
+
// WebContainer Element
|
|
2788
|
+
// ============================================
|
|
2789
|
+
|
|
2790
|
+
/**
|
|
2791
|
+
* 웹 컨테이너 컨트롤 인터페이스
|
|
2792
|
+
* 외부 URL을 iframe으로 표시하는 컨트롤입니다.
|
|
2793
|
+
*/
|
|
2794
|
+
export interface IWebContainerElement extends IBaseElement {
|
|
2795
|
+
Type: 'WebContainer';
|
|
2796
|
+
/** 대상 URL */
|
|
2797
|
+
TargetURL?: string;
|
|
2798
|
+
/** 보고서 로딩 시 자동 로딩 여부 */
|
|
2799
|
+
AutoRefresh?: boolean;
|
|
2800
|
+
/** 수동 새로고침 버튼 표시 여부 */
|
|
2801
|
+
DoRefresh?: boolean;
|
|
2802
|
+
}
|
|
2803
|
+
|
|
2342
2804
|
// ============================================
|
|
2343
2805
|
// Union Type for all Elements
|
|
2344
2806
|
// ============================================
|
|
@@ -2356,10 +2818,24 @@ export type IElement =
|
|
|
2356
2818
|
| IRichTextBoxElement
|
|
2357
2819
|
| ICheckBoxElement
|
|
2358
2820
|
| IComboBoxElement
|
|
2821
|
+
| IMultiComboBoxElement
|
|
2359
2822
|
| ITextBoxElement
|
|
2360
2823
|
| INumberBoxElement
|
|
2361
2824
|
| IUserComponentElement
|
|
2362
2825
|
| IOlapGridElement
|
|
2826
|
+
| IRadioButtonElement
|
|
2827
|
+
| IMaskTextBoxElement
|
|
2828
|
+
| ICalendarElement
|
|
2829
|
+
| IChartElement
|
|
2830
|
+
| ITreeGridElement
|
|
2831
|
+
| IiGridElement
|
|
2832
|
+
| ITableLayoutElement
|
|
2833
|
+
| ITabElement
|
|
2834
|
+
| ISliderElement
|
|
2835
|
+
| IColorSelectorElement
|
|
2836
|
+
| IFileUploadButtonElement
|
|
2837
|
+
| IPickListElement
|
|
2838
|
+
| IWebContainerElement
|
|
2363
2839
|
| IBaseElement;
|
|
2364
2840
|
|
|
2365
2841
|
// ============================================
|
|
@@ -2415,6 +2891,20 @@ export function isCheckBoxElement(element: IElement): element is ICheckBoxElemen
|
|
|
2415
2891
|
return element.Type === 'CheckBox';
|
|
2416
2892
|
}
|
|
2417
2893
|
|
|
2894
|
+
/**
|
|
2895
|
+
* ComboBox 타입 가드
|
|
2896
|
+
*/
|
|
2897
|
+
export function isComboBoxElement(element: IElement): element is IComboBoxElement {
|
|
2898
|
+
return element.Type === 'ComboBox';
|
|
2899
|
+
}
|
|
2900
|
+
|
|
2901
|
+
/**
|
|
2902
|
+
* MultiComboBox 타입 가드
|
|
2903
|
+
*/
|
|
2904
|
+
export function isMultiComboBoxElement(element: IElement): element is IMultiComboBoxElement {
|
|
2905
|
+
return element.Type === 'MultiComboBox';
|
|
2906
|
+
}
|
|
2907
|
+
|
|
2418
2908
|
/**
|
|
2419
2909
|
* UserComponent (ReportContainer) 타입 가드
|
|
2420
2910
|
*/
|
|
@@ -2428,3 +2918,95 @@ export function isUserComponentElement(element: IElement): element is IUserCompo
|
|
|
2428
2918
|
export function isOlapGridElement(element: IElement): element is IOlapGridElement {
|
|
2429
2919
|
return element.Type === 'OlapGrid';
|
|
2430
2920
|
}
|
|
2921
|
+
|
|
2922
|
+
/**
|
|
2923
|
+
* RadioButton 타입 가드
|
|
2924
|
+
*/
|
|
2925
|
+
export function isRadioButtonElement(element: IElement): element is IRadioButtonElement {
|
|
2926
|
+
return element.Type === 'RadioButton';
|
|
2927
|
+
}
|
|
2928
|
+
|
|
2929
|
+
/**
|
|
2930
|
+
* MaskTextBox 타입 가드
|
|
2931
|
+
*/
|
|
2932
|
+
export function isMaskTextBoxElement(element: IElement): element is IMaskTextBoxElement {
|
|
2933
|
+
return element.Type === 'MaskTextBox';
|
|
2934
|
+
}
|
|
2935
|
+
|
|
2936
|
+
/**
|
|
2937
|
+
* Calendar 타입 가드 (Calendar, CalendarYear, CalendarYM)
|
|
2938
|
+
*/
|
|
2939
|
+
export function isCalendarElement(element: IElement): element is ICalendarElement {
|
|
2940
|
+
return element.Type === 'Calendar' || element.Type === 'CalendarYear' || element.Type === 'CalendarYM'
|
|
2941
|
+
|| element.Type === 'CalendarFromTo' || element.Type === 'CalendarWeeklyFromTo';
|
|
2942
|
+
}
|
|
2943
|
+
|
|
2944
|
+
/**
|
|
2945
|
+
* Chart 타입 가드 (Chart, PieChart, ScatterChart, PolygonChart)
|
|
2946
|
+
*/
|
|
2947
|
+
export function isChartElement(element: IElement): element is IChartElement {
|
|
2948
|
+
return element.Type === 'Chart' || element.Type === 'PieChart' || element.Type === 'ScatterChart' || element.Type === 'PolygonChart';
|
|
2949
|
+
}
|
|
2950
|
+
|
|
2951
|
+
/**
|
|
2952
|
+
* TreeGrid 타입 가드
|
|
2953
|
+
*/
|
|
2954
|
+
export function isTreeGridElement(element: IElement): element is ITreeGridElement {
|
|
2955
|
+
return element.Type === 'TreeGrid';
|
|
2956
|
+
}
|
|
2957
|
+
|
|
2958
|
+
/**
|
|
2959
|
+
* iGrid (MX-GRID) 타입 가드
|
|
2960
|
+
*/
|
|
2961
|
+
export function isiGridElement(element: IElement): element is IiGridElement {
|
|
2962
|
+
return element.Type === 'iGrid';
|
|
2963
|
+
}
|
|
2964
|
+
|
|
2965
|
+
/**
|
|
2966
|
+
* TableLayout 타입 가드
|
|
2967
|
+
*/
|
|
2968
|
+
export function isTableLayoutElement(element: IElement): element is ITableLayoutElement {
|
|
2969
|
+
return element.Type === 'TableLayout';
|
|
2970
|
+
}
|
|
2971
|
+
|
|
2972
|
+
/**
|
|
2973
|
+
* Tab 타입 가드
|
|
2974
|
+
*/
|
|
2975
|
+
export function isTabElement(element: IElement): element is ITabElement {
|
|
2976
|
+
return element.Type === 'Tab';
|
|
2977
|
+
}
|
|
2978
|
+
|
|
2979
|
+
/**
|
|
2980
|
+
* Slider 타입 가드
|
|
2981
|
+
*/
|
|
2982
|
+
export function isSliderElement(element: IElement): element is ISliderElement {
|
|
2983
|
+
return element.Type === 'Slider';
|
|
2984
|
+
}
|
|
2985
|
+
|
|
2986
|
+
/**
|
|
2987
|
+
* ColorSelector 타입 가드
|
|
2988
|
+
*/
|
|
2989
|
+
export function isColorSelectorElement(element: IElement): element is IColorSelectorElement {
|
|
2990
|
+
return element.Type === 'ColorSelector';
|
|
2991
|
+
}
|
|
2992
|
+
|
|
2993
|
+
/**
|
|
2994
|
+
* FileUploadButton 타입 가드
|
|
2995
|
+
*/
|
|
2996
|
+
export function isFileUploadButtonElement(element: IElement): element is IFileUploadButtonElement {
|
|
2997
|
+
return element.Type === 'FileUploadButton';
|
|
2998
|
+
}
|
|
2999
|
+
|
|
3000
|
+
/**
|
|
3001
|
+
* PickList 타입 가드
|
|
3002
|
+
*/
|
|
3003
|
+
export function isPickListElement(element: IElement): element is IPickListElement {
|
|
3004
|
+
return element.Type === 'PickList';
|
|
3005
|
+
}
|
|
3006
|
+
|
|
3007
|
+
/**
|
|
3008
|
+
* WebContainer 타입 가드
|
|
3009
|
+
*/
|
|
3010
|
+
export function isWebContainerElement(element: IElement): element is IWebContainerElement {
|
|
3011
|
+
return element.Type === 'WebContainer';
|
|
3012
|
+
}
|
package/schemas/mtsd.schema.json
CHANGED
|
@@ -183,15 +183,14 @@
|
|
|
183
183
|
"Label", "Button", "Image",
|
|
184
184
|
"TextBox", "MaskTextBox", "NumberBox", "RichTextBox",
|
|
185
185
|
"ComboBox", "MultiComboBox", "PickList",
|
|
186
|
-
"CheckBox", "RadioButton", "Tree",
|
|
187
|
-
"ColorSelector", "Slider",
|
|
188
|
-
"Calendar", "CalendarYear", "CalendarYM",
|
|
189
|
-
"FileUploadButton",
|
|
190
|
-
"DataGrid", "TreeGrid", "OlapGrid", "iGrid", "CompactDataGrid",
|
|
191
|
-
"TreeView",
|
|
186
|
+
"CheckBox", "RadioButton", "Tree", "TreeView",
|
|
187
|
+
"ColorPicker", "ColorSelector", "Slider",
|
|
188
|
+
"Calendar", "CalendarYear", "CalendarYM", "CalendarFromTo", "CalendarWeeklyFromTo",
|
|
189
|
+
"FileUpload", "FileUploadButton",
|
|
190
|
+
"DataGrid", "TreeGrid", "OlapGrid", "iGrid", "CompactDataGrid", "ListGrid",
|
|
192
191
|
"Chart", "PieChart", "ScatterChart", "PolygonChart",
|
|
193
192
|
"Group", "Tab", "TableLayout", "AddIn", "UserComponent",
|
|
194
|
-
"WebContainer", "DiagramControl", "Slicer"
|
|
193
|
+
"Browser", "WebContainer", "DiagramControl", "Slicer"
|
|
195
194
|
],
|
|
196
195
|
"description": "컨트롤 타입"
|
|
197
196
|
},
|
|
@@ -332,6 +331,14 @@
|
|
|
332
331
|
{
|
|
333
332
|
"if": { "properties": { "Type": { "const": "PickList" } } },
|
|
334
333
|
"then": { "$ref": "#/$defs/PickListElement" }
|
|
334
|
+
},
|
|
335
|
+
{
|
|
336
|
+
"if": { "properties": { "Type": { "const": "CalendarFromTo" } } },
|
|
337
|
+
"then": { "$ref": "#/$defs/CalendarElement" }
|
|
338
|
+
},
|
|
339
|
+
{
|
|
340
|
+
"if": { "properties": { "Type": { "const": "CalendarWeeklyFromTo" } } },
|
|
341
|
+
"then": { "$ref": "#/$defs/CalendarElement" }
|
|
335
342
|
}
|
|
336
343
|
]
|
|
337
344
|
},
|
|
@@ -584,9 +591,9 @@
|
|
|
584
591
|
"properties": {
|
|
585
592
|
"DataSource": { "type": "string", "description": "바인딩할 데이터소스 이름" },
|
|
586
593
|
"ServerScript": { "type": "string", "description": "서버 스크립트 이름" },
|
|
587
|
-
"AutoRefresh": { "type": "boolean", "description": "데이터
|
|
594
|
+
"AutoRefresh": { "type": "boolean", "description": "보고서 로딩 시 데이터 조회 여부" },
|
|
588
595
|
"DoRefresh": { "type": "boolean", "description": "수동 새로고침 버튼 표시 여부" },
|
|
589
|
-
"DoExport": { "type": "boolean", "description": "내보내기
|
|
596
|
+
"DoExport": { "type": "boolean", "description": "파일 내보내기(다운로드) 가능 여부" },
|
|
590
597
|
"iOLAPView": { "$ref": "#/$defs/OlapViewModel", "description": "iOLAP 뷰 모델 직렬화 데이터" },
|
|
591
598
|
"ExtraOption": { "$ref": "#/$defs/OlapGridExtraOption", "description": "OLAP 그리드 추가 옵션" }
|
|
592
599
|
}
|