open-grid 1.2.0 → 1.2.1
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/CHANGELOG.md +12 -0
- package/README.md +1 -1
- package/dist/OpenGrid-0r_543Kj.cjs +7192 -0
- package/dist/OpenGrid-HmhGVC2V.js +7203 -0
- package/dist/open-grid-react.cjs +27 -1
- package/dist/open-grid-react.js +22 -82
- package/dist/open-grid-vue.cjs +31 -1
- package/dist/open-grid-vue.js +29 -79
- package/dist/open-grid.cjs +272 -6
- package/dist/open-grid.js +177 -266
- package/dist/types/core/CellEditManager.d.ts +73 -0
- package/dist/types/core/CellEventHandler.d.ts +99 -2
- package/dist/types/core/ChartManager.d.ts +51 -3
- package/dist/types/core/ContextMenu.d.ts +43 -2
- package/dist/types/core/CrossGridController.d.ts +86 -15
- package/dist/types/core/CrossGridRegistry.d.ts +36 -2
- package/dist/types/core/DetailManager.d.ts +106 -15
- package/dist/types/core/ExportManager.d.ts +66 -1
- package/dist/types/core/ExtensionPointRegistry.d.ts +160 -14
- package/dist/types/core/FilterPanel.d.ts +17 -2
- package/dist/types/core/FilterSelect.d.ts +37 -13
- package/dist/types/core/FindBarManager.d.ts +26 -0
- package/dist/types/core/FlatRowModel.d.ts +54 -11
- package/dist/types/core/FooterManager.d.ts +53 -1
- package/dist/types/core/FormulaController.d.ts +139 -10
- package/dist/types/core/GridComposer.d.ts +54 -6
- package/dist/types/core/GridShuttle.d.ts +44 -4
- package/dist/types/core/GroupTreeManager.d.ts +86 -2
- package/dist/types/core/IconRegistry.d.ts +56 -9
- package/dist/types/core/KeyboardManager.d.ts +88 -4
- package/dist/types/core/MaskingEngine.d.ts +10 -9
- package/dist/types/core/MutationService.d.ts +113 -10
- package/dist/types/core/OrgChart.d.ts +56 -1
- package/dist/types/core/OverrideKernel.d.ts +59 -15
- package/dist/types/core/Pagination.d.ts +38 -4
- package/dist/types/core/RangeSelectionManager.d.ts +121 -7
- package/dist/types/core/RenderController.d.ts +56 -0
- package/dist/types/core/RowManager.d.ts +55 -0
- package/dist/types/core/SkinRegistry.d.ts +51 -15
- package/dist/types/core/SortFilterManager.d.ts +80 -1
- package/dist/types/core/TriggerManager.d.ts +46 -0
- package/dist/types/core/WorksheetManager.d.ts +61 -2
- package/dist/types/core/XmlConverter.d.ts +56 -23
- package/dist/types/core/chart/types.d.ts +107 -10
- package/dist/types/core/editors/CellEditor.d.ts +29 -2
- package/dist/types/core/formula/types.d.ts +71 -8
- package/dist/types/core/range/RangeQuery.d.ts +24 -2
- package/dist/types/core/renderers/CellRenderer.d.ts +100 -8
- package/dist/xlsx.min-BQ1o3sB6.cjs +11793 -0
- package/dist/{xlsx.min-Wavxcamn.js → xlsx.min-Bbz2ZypC.js} +453 -566
- package/package.json +2 -1
- package/dist/OpenGrid-B0Spm0rU.js +0 -10404
- package/dist/OpenGrid-CuXj0isp.cjs +0 -97
- package/dist/xlsx.min-Bx-LxWOf.cjs +0 -138
|
@@ -1,9 +1,55 @@
|
|
|
1
1
|
import { TriggerContext, TriggerHandler, TriggerEvent } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* before/after 트리거 훅 레지스트리. / Registry for before/after trigger hooks.
|
|
4
|
+
*
|
|
5
|
+
* 그리드 연산(`operation`) 앞뒤로 사용자 핸들러를 실행한다. `before:*` 훅은
|
|
6
|
+
* 컨텍스트를 `cancel()` 하여 연산을 취소할 수 있고, `after:*` 훅 뒤에는 `complete`
|
|
7
|
+
* 훅이 추가로 실행된다.
|
|
8
|
+
* / Runs user handlers around grid operations. A `before:*` hook may cancel the
|
|
9
|
+
* operation via `ctx.cancel()`; after any `after:*` hook, registered `complete`
|
|
10
|
+
* hooks also fire.
|
|
11
|
+
*/
|
|
2
12
|
export declare class TriggerManager {
|
|
3
13
|
private _triggers;
|
|
14
|
+
/**
|
|
15
|
+
* 트리거 이벤트에 핸들러를 등록한다. / Register a handler for a trigger event.
|
|
16
|
+
*
|
|
17
|
+
* @param event - 트리거 이벤트명(예: `before:setValue`) / Trigger event name (e.g. `before:setValue`)
|
|
18
|
+
* @param handler - 실행할 핸들러 / Handler to run
|
|
19
|
+
*/
|
|
4
20
|
add(event: TriggerEvent | string, handler: TriggerHandler): void;
|
|
21
|
+
/**
|
|
22
|
+
* 등록된 핸들러를 제거한다. / Remove a previously registered handler.
|
|
23
|
+
*
|
|
24
|
+
* @param event - 트리거 이벤트명 / Trigger event name
|
|
25
|
+
* @param handler - 제거할 핸들러(등록 시와 동일 참조) / Handler to remove (same reference used at registration)
|
|
26
|
+
*/
|
|
5
27
|
remove(event: TriggerEvent | string, handler: TriggerHandler): void;
|
|
28
|
+
/**
|
|
29
|
+
* 특정 이벤트 또는 전체 트리거를 해제한다. / Clear one event's triggers, or all of them.
|
|
30
|
+
*
|
|
31
|
+
* @param event - 지우려는 이벤트명. 생략하면 전체 삭제 / Event to clear; omit to clear everything
|
|
32
|
+
*/
|
|
6
33
|
clear(event?: TriggerEvent | string): void;
|
|
34
|
+
/**
|
|
35
|
+
* 트리거 실행용 컨텍스트 객체를 생성한다. / Build a context object for trigger execution.
|
|
36
|
+
*
|
|
37
|
+
* @param operation - 연산 이름 / Operation name
|
|
38
|
+
* @param args - 연산 인자 배열 / Operation argument array
|
|
39
|
+
* @returns `cancel()` 로 취소 가능한 트리거 컨텍스트 / A trigger context cancellable via `cancel()`
|
|
40
|
+
*/
|
|
7
41
|
mkCtx(operation: string, args: any[]): TriggerContext;
|
|
42
|
+
/**
|
|
43
|
+
* 이벤트에 등록된 핸들러를 순차 실행한다. / Run handlers registered for an event, in order.
|
|
44
|
+
*
|
|
45
|
+
* `before:*` 훅 중 하나라도 `ctx.cancel()` 을 호출하면 즉시 중단하고 `false` 를
|
|
46
|
+
* 반환한다. `after:*` 이벤트는 완료 후 `complete` 훅도 실행한다.
|
|
47
|
+
* / If any `before:*` hook calls `ctx.cancel()`, execution stops immediately and
|
|
48
|
+
* returns `false`. For `after:*` events, `complete` hooks also run afterward.
|
|
49
|
+
*
|
|
50
|
+
* @param event - 실행할 이벤트명 / Event name to run
|
|
51
|
+
* @param ctx - 트리거 컨텍스트 / Trigger context
|
|
52
|
+
* @returns 취소되지 않았으면 `true` / `true` unless the operation was cancelled
|
|
53
|
+
*/
|
|
8
54
|
exec(event: string, ctx: TriggerContext): boolean;
|
|
9
55
|
}
|
|
@@ -1,7 +1,18 @@
|
|
|
1
1
|
import { ColumnDef, WorksheetState } from './types.js';
|
|
2
|
+
/** 시트 전환 시 호출되는 콜백. / Callback invoked when the active sheet switches. */
|
|
2
3
|
export type SwitchCallback<T> = (name: string, state: WorksheetState<T>) => void;
|
|
3
4
|
/** i18n: 탭 UI aria 해석기(주입 없으면 전역 t). / i18n: tab-UI aria resolver (global t when not injected). */
|
|
4
5
|
export type WorksheetT = (key: string, params?: Record<string, string | number>) => string;
|
|
6
|
+
/**
|
|
7
|
+
* 그리드 다중 워크시트(탭) 관리자. / Manages the grid's multiple worksheets (tabs).
|
|
8
|
+
*
|
|
9
|
+
* 시트별로 독립적인 `columns`/`data` 를 `Map` 으로 보유하고, 탭 클릭 시
|
|
10
|
+
* `onSwitch` 콜백을 통해 `OpenGrid.setData`/`applyColumns` 로 화면을 전환시킨다.
|
|
11
|
+
* 탭 UI는 그리드 컨테이너 하단에 `.og-sheet-tabs` 영역으로 삽입된다.
|
|
12
|
+
* / Holds independent `columns`/`data` per sheet in a `Map`; a tab click drives the
|
|
13
|
+
* `onSwitch` callback, which the caller uses to run `OpenGrid.setData`/`applyColumns`.
|
|
14
|
+
* The tab UI is inserted as a `.og-sheet-tabs` region at the bottom of the grid container.
|
|
15
|
+
*/
|
|
5
16
|
export declare class WorksheetManager<T extends Record<string, any> = any> {
|
|
6
17
|
private _sheets;
|
|
7
18
|
private _active;
|
|
@@ -9,18 +20,66 @@ export declare class WorksheetManager<T extends Record<string, any> = any> {
|
|
|
9
20
|
private _onSwitch;
|
|
10
21
|
private _t;
|
|
11
22
|
constructor(container: HTMLElement, onSwitch: SwitchCallback<T>, t?: WorksheetT);
|
|
23
|
+
/**
|
|
24
|
+
* 새 시트를 추가한다. / Add a new sheet.
|
|
25
|
+
*
|
|
26
|
+
* 첫 번째로 추가되는 시트는 자동으로 활성화된다. / The first sheet ever added is auto-activated.
|
|
27
|
+
*
|
|
28
|
+
* @param name - 시트 이름(고유해야 함) / Sheet name (must be unique)
|
|
29
|
+
* @param columns - 시트 컬럼 정의(기본 빈 배열) / Sheet column definitions (default empty array)
|
|
30
|
+
* @param data - 시트 초기 데이터(기본 빈 배열) / Initial sheet data (default empty array)
|
|
31
|
+
*/
|
|
12
32
|
add(name: string, columns?: ColumnDef<T>[], data?: T[]): void;
|
|
33
|
+
/**
|
|
34
|
+
* 시트를 제거한다. / Remove a sheet.
|
|
35
|
+
*
|
|
36
|
+
* 마지막 남은 시트는 제거할 수 없다(예외 발생). 활성 시트를 제거하면 남은 시트 중
|
|
37
|
+
* 첫 번째로 자동 전환한다. / The last remaining sheet cannot be removed (throws).
|
|
38
|
+
* Removing the active sheet auto-switches to the first remaining sheet.
|
|
39
|
+
*
|
|
40
|
+
* @param name - 제거할 시트 이름 / Name of the sheet to remove
|
|
41
|
+
*/
|
|
13
42
|
remove(name: string): void;
|
|
43
|
+
/**
|
|
44
|
+
* 시트 이름을 변경한다. / Rename a sheet.
|
|
45
|
+
*
|
|
46
|
+
* 삽입 순서(`Map` 순회 순서) 유지를 위해 내부적으로 시트 맵을 재구성한다.
|
|
47
|
+
* / Internally rebuilds the sheet map to preserve insertion order (`Map` iteration order).
|
|
48
|
+
*
|
|
49
|
+
* @param oldName - 기존 시트 이름 / Current sheet name
|
|
50
|
+
* @param newName - 새 시트 이름(고유해야 함) / New sheet name (must be unique)
|
|
51
|
+
*/
|
|
14
52
|
rename(oldName: string, newName: string): void;
|
|
53
|
+
/**
|
|
54
|
+
* 지정 시트를 활성화하고 `onSwitch` 콜백을 실행한다. / Activate the given sheet and invoke the `onSwitch` callback.
|
|
55
|
+
*
|
|
56
|
+
* @param name - 활성화할 시트 이름 / Name of the sheet to activate
|
|
57
|
+
*/
|
|
15
58
|
switch(name: string): void;
|
|
59
|
+
/**
|
|
60
|
+
* 시트 상태를 조회한다. / Look up a sheet's state.
|
|
61
|
+
*
|
|
62
|
+
* @param name - 조회할 시트 이름 / Name of the sheet to look up
|
|
63
|
+
* @returns 시트 상태, 없으면 `undefined` / The sheet state, or `undefined`
|
|
64
|
+
*/
|
|
16
65
|
get(name: string): WorksheetState<T> | undefined;
|
|
66
|
+
/** 등록된 모든 시트 이름 목록(삽입 순서). / Names of all registered sheets, in insertion order. */
|
|
17
67
|
getNames(): string[];
|
|
68
|
+
/** 현재 활성 시트 이름. / Name of the currently active sheet. */
|
|
18
69
|
getActive(): string;
|
|
19
|
-
/**
|
|
70
|
+
/**
|
|
71
|
+
* 지정 시트의 데이터를 갱신한다(그리드 편집 동기화용). / Update a sheet's data (for syncing grid edits back).
|
|
72
|
+
*
|
|
73
|
+
* @param name - 갱신할 시트 이름 / Name of the sheet to update
|
|
74
|
+
* @param data - 새 데이터 배열 / New data array
|
|
75
|
+
*/
|
|
20
76
|
syncData(name: string, data: T[]): void;
|
|
77
|
+
/** 탭 바 DOM 을 제거한다. / Remove the tab-bar DOM. */
|
|
21
78
|
destroy(): void;
|
|
79
|
+
/** @internal 탭 바 컨테이너를 생성해 그리드 컨테이너에 삽입한다. / Creates the tab-bar container and appends it to the grid container. */
|
|
22
80
|
private _buildTabBar;
|
|
81
|
+
/** @internal 탭 바를 전체 재렌더한다(시트 목록 + '+' 버튼). / Fully re-renders the tab bar (sheet list + '+' button). */
|
|
23
82
|
private _renderTabs;
|
|
24
|
-
/** 탭 더블클릭 → input으로 전환해 이름
|
|
83
|
+
/** @internal 탭 더블클릭 → input으로 전환해 이름 변경. / Double-click on a tab switches it to an input for inline rename. */
|
|
25
84
|
private _startRename;
|
|
26
85
|
}
|
|
@@ -1,74 +1,104 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* XmlConverter — XML ↔ 그리드 데이터 양방향 변환 유틸리티.
|
|
3
|
+
* / XmlConverter — bidirectional XML ↔ grid-data conversion utility.
|
|
3
4
|
*
|
|
4
|
-
* 지원
|
|
5
|
+
* 지원 포맷 / Supported formats:
|
|
5
6
|
* A. Element 방식 <row><name>홍길동</name></row>
|
|
6
7
|
* B. Attribute 방식 <row name="홍길동" />
|
|
7
8
|
* C. SAP BAPI XML 응답 <RETURN><TYPE>S</TYPE><BELNR>...</BELNR></RETURN>
|
|
8
9
|
* D. SAP IDoc XML <IDOC><E1HEADER SEGMENT="1"><BUKRS>1000</BUKRS></IDOC>
|
|
9
10
|
*
|
|
10
11
|
* 외부 의존성 없음 — 브라우저 내장 DOMParser 사용.
|
|
12
|
+
* / No external dependency — uses the browser's built-in DOMParser.
|
|
11
13
|
*/
|
|
14
|
+
/** XML → 데이터 파싱 옵션. / Options for parsing XML into data. */
|
|
12
15
|
export interface XmlParseOptions {
|
|
13
|
-
/** 루트 엘리먼트
|
|
16
|
+
/** 루트 엘리먼트 태그명. 생략 시 문서 루트 자동 사용. / Root element tag name; falls back to the document root when omitted. */
|
|
14
17
|
rootTag?: string;
|
|
15
|
-
/** 행 엘리먼트
|
|
18
|
+
/** 행 엘리먼트 태그명. 생략 시 루트의 첫 번째 자식 자동 감지. / Row element tag name; auto-detected from the root's first child when omitted. */
|
|
16
19
|
rowTag?: string;
|
|
17
|
-
/** 값 추출 방식: 'element' | 'attribute' | 'auto'(기본) */
|
|
20
|
+
/** 값 추출 방식: 'element' | 'attribute' | 'auto'(기본). / Value extraction mode: 'element' | 'attribute' | 'auto' (default). @defaultValue 'auto' */
|
|
18
21
|
mode?: 'element' | 'attribute' | 'auto';
|
|
19
|
-
/** XML 태그명 → 그리드 field명
|
|
22
|
+
/** XML 태그명 → 그리드 field명 매핑. 생략 시 태그명 그대로 사용. / XML tag name → grid field name map; tag names are used as-is when omitted. */
|
|
20
23
|
fieldMap?: Record<string, string>;
|
|
21
|
-
/** 텍스트 값 앞뒤 공백
|
|
24
|
+
/** 텍스트 값 앞뒤 공백 제거. 기본 true. / Trim whitespace around text values. Default true. @defaultValue true */
|
|
22
25
|
trim?: boolean;
|
|
23
26
|
}
|
|
27
|
+
/** 데이터 → XML 직렬화 옵션. / Options for serializing data into XML. */
|
|
24
28
|
export interface XmlStringifyOptions {
|
|
25
|
-
/** 루트
|
|
29
|
+
/** 루트 태그명. 기본 'rows'. / Root tag name. Default 'rows'. @defaultValue 'rows' */
|
|
26
30
|
rootTag?: string;
|
|
27
|
-
/** 행
|
|
31
|
+
/** 행 태그명. 기본 'row'. / Row tag name. Default 'row'. @defaultValue 'row' */
|
|
28
32
|
rowTag?: string;
|
|
29
|
-
/** 출력 방식: 'element'(기본) | 'attribute' */
|
|
33
|
+
/** 출력 방식: 'element'(기본) | 'attribute'. / Output mode: 'element' (default) | 'attribute'. @defaultValue 'element' */
|
|
30
34
|
mode?: 'element' | 'attribute';
|
|
31
|
-
/** 그리드 field명 → XML 태그명
|
|
35
|
+
/** 그리드 field명 → XML 태그명 매핑. / Grid field name → XML tag name map. */
|
|
32
36
|
fieldMap?: Record<string, string>;
|
|
33
|
-
/** XML 선언부 포함
|
|
37
|
+
/** XML 선언부 포함 여부. 기본 true. / Whether to include the XML declaration. Default true. @defaultValue true */
|
|
34
38
|
declaration?: boolean;
|
|
35
|
-
/** 들여쓰기 공백
|
|
39
|
+
/** 들여쓰기 공백 수. 기본 2. / Indentation space count. Default 2. @defaultValue 2 */
|
|
36
40
|
indent?: number;
|
|
37
|
-
/** null/undefined 처리
|
|
41
|
+
/** null/undefined 처리 문자열. 기본 ''. / String used for null/undefined values. Default ''. @defaultValue '' */
|
|
38
42
|
nullAs?: string;
|
|
39
|
-
/** 출력에서 제외할 필드
|
|
43
|
+
/** 출력에서 제외할 필드 목록. / Field names to exclude from the output. */
|
|
40
44
|
excludeFields?: string[];
|
|
41
45
|
}
|
|
46
|
+
/** SAP XML 파싱 결과 구조. / Result structure of SAP XML parsing. */
|
|
42
47
|
export interface SapParseResult {
|
|
48
|
+
/** 문서 헤더(DOCUMENTHEADER) 필드 맵. / Document header (DOCUMENTHEADER) field map. */
|
|
43
49
|
header: Record<string, string>;
|
|
50
|
+
/** 라인 아이템 행 배열. / Line-item row array. */
|
|
44
51
|
items: Record<string, string>[];
|
|
52
|
+
/** RETURN 메시지 행 배열(복수). / RETURN message rows (may be multiple). */
|
|
45
53
|
returns: Record<string, string>[];
|
|
54
|
+
/** 파싱에 사용한 원본 Document(선택). / The source Document used for parsing (optional). */
|
|
46
55
|
raw?: Document;
|
|
47
56
|
}
|
|
57
|
+
/**
|
|
58
|
+
* XML ↔ 그리드 데이터 변환기(정적 메서드 모음). / XML ↔ grid-data converter (static methods).
|
|
59
|
+
*
|
|
60
|
+
* @example
|
|
61
|
+
* const rows = XmlConverter.parse('<rows><row><name>Kim</name></row></rows>');
|
|
62
|
+
* const xml = XmlConverter.stringify(rows);
|
|
63
|
+
*/
|
|
48
64
|
export declare class XmlConverter {
|
|
49
65
|
/**
|
|
50
|
-
* XML 문자열을 파싱하여 그리드 데이터 배열로 변환.
|
|
51
|
-
*
|
|
66
|
+
* XML 문자열을 파싱하여 그리드 데이터 배열로 변환. Element / Attribute 방식 자동 감지.
|
|
67
|
+
* / Parse an XML string into a grid-data array. Auto-detects element vs. attribute style.
|
|
52
68
|
*
|
|
53
|
-
* @
|
|
69
|
+
* @param xml - 파싱할 XML 문자열 / XML string to parse
|
|
70
|
+
* @param options - 파싱 옵션 / Parse options
|
|
71
|
+
* @returns 행 객체 배열 / Array of row objects
|
|
72
|
+
* @throws XML 파싱 오류 시 Error 발생 / Throws an Error on XML parse failure
|
|
54
73
|
*/
|
|
55
74
|
static parse(xml: string, options?: XmlParseOptions): Record<string, any>[];
|
|
56
75
|
/**
|
|
57
|
-
* 그리드 데이터 배열을 XML 문자열로 직렬화.
|
|
76
|
+
* 그리드 데이터 배열을 XML 문자열로 직렬화. / Serialize a grid-data array into an XML string.
|
|
77
|
+
*
|
|
78
|
+
* @param data - 직렬화할 행 배열 / Row array to serialize
|
|
79
|
+
* @param options - 직렬화 옵션 / Serialize options
|
|
80
|
+
* @returns XML 문자열 / XML string
|
|
58
81
|
*/
|
|
59
82
|
static stringify(data: Record<string, any>[], options?: XmlStringifyOptions): string;
|
|
60
83
|
/**
|
|
61
84
|
* SAP BAPI XML 응답을 파싱하여 { header, items, returns } 구조로 반환.
|
|
85
|
+
* / Parse a SAP BAPI XML response into a { header, items, returns } structure.
|
|
62
86
|
*
|
|
63
|
-
* 지원
|
|
87
|
+
* 지원 패턴 / Supported patterns:
|
|
64
88
|
* <DOCUMENTHEADER>...</DOCUMENTHEADER>
|
|
65
89
|
* <ACCOUNTGL><ITEM>...</ITEM></ACCOUNTGL>
|
|
66
90
|
* <RETURN><TYPE>S</TYPE><MESSAGE>...</MESSAGE></RETURN>
|
|
91
|
+
*
|
|
92
|
+
* @param xml - SAP BAPI XML 응답 문자열 / SAP BAPI XML response string
|
|
93
|
+
* @returns 파싱 결과 구조 / Parsed result structure
|
|
67
94
|
*/
|
|
68
95
|
static parseSap(xml: string): SapParseResult;
|
|
69
96
|
/**
|
|
70
|
-
* BAPI 페이로드 객체를 SAP XML 형식으로 직렬화.
|
|
71
|
-
* sapGenPayload()
|
|
97
|
+
* BAPI 페이로드 객체를 SAP XML 형식으로 직렬화. sapGenPayload() 결과 또는 단일 document 객체를 받음.
|
|
98
|
+
* / Serialize a BAPI payload object into SAP XML. Accepts a sapGenPayload() result or a single document object.
|
|
99
|
+
*
|
|
100
|
+
* @param payload - BAPI 페이로드 객체 / BAPI payload object
|
|
101
|
+
* @returns SAP XML 문자열 / SAP XML string
|
|
72
102
|
*/
|
|
73
103
|
static stringifySap(payload: {
|
|
74
104
|
BAPI_FUNCTION?: string;
|
|
@@ -77,8 +107,11 @@ export declare class XmlConverter {
|
|
|
77
107
|
[key: string]: any;
|
|
78
108
|
}): string;
|
|
79
109
|
/**
|
|
80
|
-
* sapGenPayload()의 { totalDocuments, documents[] } 결과를
|
|
81
|
-
*
|
|
110
|
+
* sapGenPayload() 의 { totalDocuments, documents[] } 결과를 다건 BAPI XML 로 직렬화.
|
|
111
|
+
* / Serialize a sapGenPayload() { totalDocuments, documents[] } result into a multi-document BAPI XML.
|
|
112
|
+
*
|
|
113
|
+
* @param payload - documents 배열을 담은 페이로드 / Payload holding the documents array
|
|
114
|
+
* @returns 다건 BAPI XML 문자열 / Multi-document BAPI XML string
|
|
82
115
|
*/
|
|
83
116
|
static stringifySapBatch(payload: {
|
|
84
117
|
documents: any[];
|
|
@@ -7,13 +7,20 @@ import { CellRange } from '../types.js';
|
|
|
7
7
|
* 폴백 렌더된다(CanvasAdapter._computeGeometry). 하위호환을 위해 타입 자체는 유지한다.
|
|
8
8
|
*/
|
|
9
9
|
export type ChartType = 'bar' | 'line' | 'area' | 'pie' | 'doughnut' | 'bar-stacked' | 'bar-grouped';
|
|
10
|
+
/** 시리즈(컬럼) 명세. / Series (column) spec. */
|
|
10
11
|
export interface ChartSeriesSpec {
|
|
12
|
+
/** 값 컬럼 field 명. / Value column field name. */
|
|
11
13
|
field: string;
|
|
14
|
+
/** 범례 라벨(기본 = 컬럼 header/field). / Legend label (default = column header/field). */
|
|
12
15
|
name?: string;
|
|
16
|
+
/** 시리즈 색. / Series color. */
|
|
13
17
|
color?: string;
|
|
18
|
+
/** 색 외 구분 패턴. / Non-color distinction pattern. */
|
|
14
19
|
pattern?: ChartSeries['pattern'];
|
|
20
|
+
/** 시리즈별 렌더 타입(혼합 차트). / Per-series render type (mixed charts). */
|
|
15
21
|
type?: 'bar' | 'line' | 'area';
|
|
16
22
|
}
|
|
23
|
+
/** 차트 데이터 소스(범위/선택/체크/전체/컬럼 지정). / Chart data source (range/selection/checked/all/explicit columns). */
|
|
17
24
|
export type ChartSource = {
|
|
18
25
|
kind: 'range';
|
|
19
26
|
range?: CellRange;
|
|
@@ -28,61 +35,92 @@ export type ChartSource = {
|
|
|
28
35
|
category?: string;
|
|
29
36
|
series: Array<string | ChartSeriesSpec>;
|
|
30
37
|
};
|
|
38
|
+
/** 카테고리 집계 연산. / Category aggregation operation. */
|
|
31
39
|
export type ChartAggregateOp = 'sum' | 'avg' | 'count' | 'min' | 'max';
|
|
40
|
+
/** 집계 연산 또는 커스텀 리듀서. / An aggregation op or a custom reducer. */
|
|
32
41
|
export type ChartAggregate = ChartAggregateOp | ((values: number[], category: string) => number);
|
|
42
|
+
/** 접근성(SR) 테이블 모델 — 스크린리더 폴백. / Accessibility (SR) table model — screen-reader fallback. */
|
|
33
43
|
export interface A11yTableModel {
|
|
34
|
-
/** aria-label 요약
|
|
44
|
+
/** aria-label 요약 캡션. / aria-label summary caption. */
|
|
35
45
|
caption: string;
|
|
36
46
|
/** ['category', ...series names] */
|
|
37
47
|
colHeaders: string[];
|
|
38
|
-
/** [category, v1, v2, ...] — locale 포맷
|
|
48
|
+
/** [category, v1, v2, ...] — locale 포맷 문자열. / [category, v1, v2, ...] — locale-formatted strings. */
|
|
39
49
|
rows: string[][];
|
|
40
50
|
}
|
|
51
|
+
/** 차트 시리즈(정규화된 값 배열). / Chart series (normalized value array). */
|
|
41
52
|
export interface ChartSeries {
|
|
42
|
-
/** 범례 라벨(기본값 = 원본 컬럼 header/field) */
|
|
53
|
+
/** 범례 라벨(기본값 = 원본 컬럼 header/field). / Legend label (default = source column header/field). */
|
|
43
54
|
name: string;
|
|
44
|
-
/** categories 와 동일 순서로 정렬. 결측=null */
|
|
55
|
+
/** categories 와 동일 순서로 정렬. 결측=null. / Aligned to categories order; missing = null. */
|
|
45
56
|
data: Array<number | null>;
|
|
57
|
+
/** 시리즈 색. / Series color. */
|
|
46
58
|
color?: string;
|
|
47
|
-
/** 색 외 구분(HANMS-19) */
|
|
59
|
+
/** 색 외 구분(HANMS-19). / Non-color distinction (HANMS-19). */
|
|
48
60
|
pattern?: 'solid' | 'hatch' | 'dot' | 'cross';
|
|
49
61
|
}
|
|
62
|
+
/** 차트 데이터 모델 메타(출처·샘플링·집계 배지 정보). / Chart data model meta (source, sampling, aggregation badge info). */
|
|
50
63
|
export interface ChartDataModelMeta {
|
|
64
|
+
/** 소스 종류. / Source kind. */
|
|
51
65
|
sourceKind: ChartSource['kind'];
|
|
52
|
-
/** 원본 포인트(행)
|
|
66
|
+
/** 원본 포인트(행) 수. / Original point (row) count. */
|
|
53
67
|
total: number;
|
|
54
|
-
/** LTTB 다운샘플 또는 category 집계로 축약됐는가 → 배지(§C) */
|
|
68
|
+
/** LTTB 다운샘플 또는 category 집계로 축약됐는가 → 배지(§C). / Whether reduced by LTTB downsample or category aggregation → badge (§C). */
|
|
55
69
|
sampled: boolean;
|
|
70
|
+
/** 다운샘플 전 포인트 수. / Point count before downsampling. */
|
|
56
71
|
sampledFrom?: number;
|
|
72
|
+
/** 다운샘플 후 포인트 수. / Point count after downsampling. */
|
|
57
73
|
sampledTo?: number;
|
|
74
|
+
/** 적용된 집계 연산. / Applied aggregation op. */
|
|
58
75
|
aggregatedOp?: 'sum' | 'avg' | 'count' | 'min' | 'max' | 'custom';
|
|
76
|
+
/** pie 에서 첫 시리즈만 사용됐는가. / Whether pie used only the first series. */
|
|
59
77
|
pieReducedToFirst?: boolean;
|
|
78
|
+
/** pie 에서 음수를 절댓값 처리했는가. / Whether pie used absolute values for negatives. */
|
|
60
79
|
negativesAbsInPie?: boolean;
|
|
61
|
-
/** SR 폴백 — extractor 가 렌더러와 무관하게 항상 채운다(§B 하드 게이트) */
|
|
80
|
+
/** SR 폴백 — extractor 가 렌더러와 무관하게 항상 채운다(§B 하드 게이트). / SR fallback — always filled by the extractor regardless of renderer (§B hard gate). */
|
|
62
81
|
a11yTable: A11yTableModel;
|
|
63
82
|
}
|
|
83
|
+
/** 헤드리스 차트 데이터 모델(추출 산출물). / Headless chart data model (extraction output). */
|
|
64
84
|
export interface ChartDataModel {
|
|
85
|
+
/** 카테고리(x축) 라벨. / Category (x-axis) labels. */
|
|
65
86
|
categories: string[];
|
|
87
|
+
/** 시리즈 배열. / Series array. */
|
|
66
88
|
series: ChartSeries[];
|
|
89
|
+
/** 모델 메타. / Model meta. */
|
|
67
90
|
meta: ChartDataModelMeta;
|
|
68
91
|
}
|
|
92
|
+
/** 차트 테마(색·글꼴·팔레트). / Chart theme (colors, fonts, palette). */
|
|
69
93
|
export interface ChartTheme {
|
|
94
|
+
/** 주 색. / Primary color. */
|
|
70
95
|
primary: string;
|
|
96
|
+
/** 축·테두리 색. / Axis/border color. */
|
|
71
97
|
border: string;
|
|
98
|
+
/** 텍스트 색. / Text color. */
|
|
72
99
|
text: string;
|
|
100
|
+
/** 배경 색. / Background color. */
|
|
73
101
|
bg: string;
|
|
102
|
+
/** 그리드 선 색. / Grid line color. */
|
|
74
103
|
gridLine: string;
|
|
104
|
+
/** 글꼴 패밀리. / Font family. */
|
|
75
105
|
fontFamily: string;
|
|
106
|
+
/** 기본 글꼴 크기(px). / Base font size in px. */
|
|
76
107
|
fontSize: number;
|
|
108
|
+
/** 시리즈 순환 팔레트. / Series-cycling palette. */
|
|
77
109
|
palette: string[];
|
|
78
110
|
}
|
|
111
|
+
/** 렌더 스펙(어댑터에 전달되는 스냅샷). / Render spec (snapshot passed to adapters). */
|
|
79
112
|
export interface ChartRenderSpec {
|
|
113
|
+
/** 차트 타입. / Chart type. */
|
|
80
114
|
type: ChartType;
|
|
115
|
+
/** 차트 제목. / Chart title. */
|
|
81
116
|
title?: string;
|
|
117
|
+
/** 범례 표시/위치. / Legend visibility/position. */
|
|
82
118
|
legend?: boolean | {
|
|
83
119
|
position: 'top' | 'bottom' | 'left' | 'right';
|
|
84
120
|
};
|
|
121
|
+
/** 툴팁 사용 여부. / Whether tooltips are enabled. */
|
|
85
122
|
tooltip?: boolean;
|
|
123
|
+
/** 축 설정(라벨·min/max·스택). / Axis config (labels, min/max, stacked). */
|
|
86
124
|
axis?: {
|
|
87
125
|
xLabel?: string;
|
|
88
126
|
yLabel?: string;
|
|
@@ -90,33 +128,56 @@ export interface ChartRenderSpec {
|
|
|
90
128
|
yMax?: number;
|
|
91
129
|
stacked?: boolean;
|
|
92
130
|
};
|
|
131
|
+
/** 시리즈 팔레트(테마 팔레트 오버라이드). / Series palette (overrides theme palette). */
|
|
93
132
|
palette?: string[];
|
|
133
|
+
/** 렌더 테마. / Render theme. */
|
|
94
134
|
theme: ChartTheme;
|
|
135
|
+
/** 숫자 포맷터(축/툴팁/범례 컨텍스트). / Number formatter (axis/tooltip/legend context). */
|
|
95
136
|
numberFormat?: (v: number, ctx: {
|
|
96
137
|
axis: 'x' | 'y' | 'tooltip' | 'legend';
|
|
97
138
|
field?: string;
|
|
98
139
|
}) => string;
|
|
140
|
+
/** 접근성 테이블 모델. / Accessibility table model. */
|
|
99
141
|
a11y: A11yTableModel;
|
|
100
142
|
}
|
|
143
|
+
/** 차트 포인트(히트테스트/클릭 대상). / Chart point (hit-test/click target). */
|
|
101
144
|
export interface ChartPoint {
|
|
145
|
+
/** 시리즈 이름. / Series name. */
|
|
102
146
|
seriesName: string;
|
|
147
|
+
/** 카테고리 라벨. / Category label. */
|
|
103
148
|
category: string;
|
|
149
|
+
/** 값(결측 null). / Value (null if missing). */
|
|
104
150
|
value: number | null;
|
|
151
|
+
/** 카테고리 인덱스. / Category index. */
|
|
105
152
|
index: number;
|
|
153
|
+
/** 원본 행 stable id(있으면). / Source row stable id (if any). */
|
|
106
154
|
rowId?: string;
|
|
107
155
|
}
|
|
156
|
+
/**
|
|
157
|
+
* 차트 렌더 어댑터(교체 seam) — 내장 canvas / 외부 lib 백엔드를 통일된 인터페이스로 감싼다.
|
|
158
|
+
* / Chart render adapter (swap seam) — wraps the built-in canvas / external-lib backends behind one interface.
|
|
159
|
+
*/
|
|
108
160
|
export interface ChartAdapter {
|
|
161
|
+
/** 어댑터 식별자. / Adapter identifier. */
|
|
109
162
|
readonly id: string;
|
|
163
|
+
/** 호스트에 초기화. / Initialize into the host. */
|
|
110
164
|
init(host: HTMLElement, spec: ChartRenderSpec): Promise<void>;
|
|
165
|
+
/** 모델을 렌더. / Render the model. */
|
|
111
166
|
render(model: ChartDataModel, spec: ChartRenderSpec): void;
|
|
167
|
+
/** 렌더 영역 크기 변경. / Resize the render area. */
|
|
112
168
|
resize(width: number, height: number): void;
|
|
169
|
+
/** 현재 렌더를 이미지 Blob 으로(선택). / Export current render as an image Blob (optional). */
|
|
113
170
|
toBlob?(mime?: string): Promise<Blob | null>;
|
|
171
|
+
/** 포인트 클릭 콜백 등록(선택). / Register a point-click callback (optional). */
|
|
114
172
|
onPointClick?(cb: (p: ChartPoint) => void): void;
|
|
173
|
+
/** 어댑터 정리. / Tear down the adapter. */
|
|
115
174
|
destroy(): void;
|
|
116
175
|
}
|
|
117
|
-
/** createChart 반환 핸들(§6). 구현은 ChartManager. */
|
|
176
|
+
/** createChart 반환 핸들(§6). 구현은 ChartManager. / Handle returned by createChart (§6); implemented by ChartManager. */
|
|
118
177
|
export interface ChartInstance {
|
|
178
|
+
/** 차트 인스턴스 id. / Chart instance id. */
|
|
119
179
|
readonly id: string;
|
|
180
|
+
/** 설정 패치 후 갱신. / Patch config and update. */
|
|
120
181
|
update(patch?: Partial<ChartConfig>): void;
|
|
121
182
|
/**
|
|
122
183
|
* 모델을 재추출하고 렌더 스펙(테마 포함)을 재스냅샷해 재렌더한다(§5.3). 그리드는 테마 변경
|
|
@@ -124,56 +185,92 @@ export interface ChartInstance {
|
|
|
124
185
|
* 변화 없는 순수 테마 전환 후에는, 열려 있는 각 차트에 대해 이 메서드를 호출해야 새 테마
|
|
125
186
|
* (색·글꼴·팔레트)가 재적용된다. `update()`/`setType()`도 내부적으로 동일 경로를 탄다.
|
|
126
187
|
*/
|
|
188
|
+
/** 모델을 재추출하고 렌더 스펙(테마 포함)을 재스냅샷해 재렌더. / Re-extract the model and re-snapshot the render spec (incl. theme), then re-render. */
|
|
127
189
|
refresh(): void;
|
|
190
|
+
/** 차트 타입 변경. / Change the chart type. */
|
|
128
191
|
setType(type: ChartType): void;
|
|
192
|
+
/** 차트 인스턴스 파기. / Destroy the chart instance. */
|
|
129
193
|
destroy(): void;
|
|
194
|
+
/** 현재 렌더를 이미지 Blob 으로. / Export current render as an image Blob. */
|
|
130
195
|
toBlob(mime?: string): Promise<Blob | null>;
|
|
196
|
+
/** 현재 데이터 모델 반환. / Return the current data model. */
|
|
131
197
|
getModel(): ChartDataModel;
|
|
198
|
+
/** 차트 이벤트 리스너 등록. / Register a chart event listener. */
|
|
132
199
|
on(ev: 'chartRender' | 'chartPointClick', cb: (...a: any[]) => void): void;
|
|
133
200
|
}
|
|
134
|
-
/** GridOptions.chart 로 중첩되는 전역 옵션(C5.1, 최상위 flat 키 금지). */
|
|
201
|
+
/** GridOptions.chart 로 중첩되는 전역 옵션(C5.1, 최상위 flat 키 금지). / Global options nested under GridOptions.chart (C5.1; no top-level flat keys). */
|
|
135
202
|
export interface ChartGlobalOptions {
|
|
203
|
+
/** 차트 기능 활성화. / Enable the chart feature. */
|
|
136
204
|
enabled?: boolean;
|
|
205
|
+
/** 기본 렌더 엔진. / Default render engine. */
|
|
137
206
|
defaultEngine?: 'builtin' | 'chartjs' | 'echarts';
|
|
207
|
+
/** 기본 차트 타입. / Default chart type. */
|
|
138
208
|
defaultType?: ChartType;
|
|
209
|
+
/** 기본 배치 방식. / Default placement. */
|
|
139
210
|
placement?: 'docked' | 'modal' | 'inline' | 'floating';
|
|
211
|
+
/** 렌더 포인트 상한(초과 시 다운샘플). / Max render points (downsample above this). */
|
|
140
212
|
maxPoints?: number;
|
|
213
|
+
/** live 갱신 디바운스(ms). / Debounce for live updates (ms). */
|
|
141
214
|
debounceMs?: number;
|
|
215
|
+
/** 기본 팔레트. / Default palette. */
|
|
142
216
|
palette?: string[];
|
|
217
|
+
/** 기본 숫자 포맷터. / Default number formatter. */
|
|
143
218
|
numberFormat?: (v: number, ctx: {
|
|
144
219
|
axis: 'x' | 'y' | 'tooltip' | 'legend';
|
|
145
220
|
field?: string;
|
|
146
221
|
}) => string;
|
|
222
|
+
/** 차트 생성 콜백. / Chart-create callback. */
|
|
147
223
|
onChartCreate?: (i: ChartInstance) => void;
|
|
224
|
+
/** 차트 렌더 콜백. / Chart-render callback. */
|
|
148
225
|
onChartRender?: (e: {
|
|
149
226
|
id: string;
|
|
150
227
|
model: ChartDataModel;
|
|
151
228
|
}) => void;
|
|
229
|
+
/** 포인트 클릭 콜백. / Point-click callback. */
|
|
152
230
|
onChartPointClick?: (e: {
|
|
153
231
|
id: string;
|
|
154
232
|
point: ChartPoint;
|
|
155
233
|
}) => void;
|
|
234
|
+
/** 차트 파기 콜백. / Chart-destroy callback. */
|
|
156
235
|
onChartDestroy?: (e: {
|
|
157
236
|
id: string;
|
|
158
237
|
}) => void;
|
|
159
238
|
}
|
|
239
|
+
/** createChart() 공개 설정(§6). / Public config for createChart() (§6). */
|
|
160
240
|
export interface ChartConfig {
|
|
241
|
+
/** 데이터 소스. / Data source. */
|
|
161
242
|
source: ChartSource;
|
|
243
|
+
/** 차트 타입. / Chart type. */
|
|
162
244
|
type: ChartType;
|
|
245
|
+
/** 렌더 엔진 또는 커스텀 어댑터. / Render engine or custom adapter. */
|
|
163
246
|
engine?: 'builtin' | 'chartjs' | 'echarts' | ChartAdapter;
|
|
247
|
+
/** 배치 방식. / Placement. */
|
|
164
248
|
placement?: 'docked' | 'modal' | 'inline' | 'floating';
|
|
249
|
+
/** inline/floating 시 마운트 대상. / Mount target for inline/floating. */
|
|
165
250
|
mount?: HTMLElement;
|
|
251
|
+
/** 카테고리(x축) 컬럼 field. / Category (x-axis) column field. */
|
|
166
252
|
category?: string;
|
|
253
|
+
/** 시리즈 명세 목록. / Series specs. */
|
|
167
254
|
series?: Array<string | ChartSeriesSpec>;
|
|
255
|
+
/** 카테고리 집계 연산. / Category aggregation op. */
|
|
168
256
|
aggregate?: ChartAggregate;
|
|
257
|
+
/** 렌더 포인트 상한. / Max render points. */
|
|
169
258
|
maxPoints?: number;
|
|
259
|
+
/** 데이터 변경 시 자동 갱신. / Auto-refresh on data changes. */
|
|
170
260
|
live?: boolean;
|
|
261
|
+
/** 차트 제목. / Chart title. */
|
|
171
262
|
title?: string;
|
|
263
|
+
/** 범례 설정. / Legend config. */
|
|
172
264
|
legend?: ChartRenderSpec['legend'];
|
|
265
|
+
/** 툴팁 사용 여부. / Whether tooltips are enabled. */
|
|
173
266
|
tooltip?: boolean;
|
|
267
|
+
/** 축 설정. / Axis config. */
|
|
174
268
|
axis?: ChartRenderSpec['axis'];
|
|
269
|
+
/** 시리즈 팔레트. / Series palette. */
|
|
175
270
|
palette?: string[];
|
|
271
|
+
/** 숫자 포맷터. / Number formatter. */
|
|
176
272
|
numberFormat?: ChartRenderSpec['numberFormat'];
|
|
273
|
+
/** 렌더 크기(px). / Render size (px). */
|
|
177
274
|
size?: {
|
|
178
275
|
width: number;
|
|
179
276
|
height: number;
|
|
@@ -2,16 +2,25 @@ import { ColumnDef, EditorDef } from '../types.js';
|
|
|
2
2
|
import { RenderContext } from '../renderers/CellRenderer.js';
|
|
3
3
|
export { DateEditor } from './DateEditor.js';
|
|
4
4
|
export { SelectEditor } from './SelectEditor.js';
|
|
5
|
+
/** 편집 결과(커밋 여부 + 값). / Edit result (whether committed + value). */
|
|
5
6
|
export interface EditorResult {
|
|
7
|
+
/** 커밋(확정) 여부. / Whether committed. */
|
|
6
8
|
committed: boolean;
|
|
9
|
+
/** 편집된 값. / Edited value. */
|
|
7
10
|
value: any;
|
|
8
11
|
}
|
|
12
|
+
/** 셀 에디터 인터페이스 — 편집 위젯 수명 관리. / Cell editor interface — manages the edit widget lifecycle. */
|
|
9
13
|
export interface CellEditor {
|
|
14
|
+
/** 컨테이너에 편집 위젯을 마운트한다. / Mount the edit widget into the container. */
|
|
10
15
|
mount(container: HTMLElement, ctx: RenderContext, onCommit: (value: any) => void, onCancel: () => void): void;
|
|
16
|
+
/** 현재 편집 값을 반환한다. / Return the current edit value. */
|
|
11
17
|
getValue(): any;
|
|
18
|
+
/** 편집 위젯에 포커스한다. / Focus the edit widget. */
|
|
12
19
|
focus(): void;
|
|
20
|
+
/** 편집 위젯을 정리한다. / Tear down the edit widget. */
|
|
13
21
|
destroy(): void;
|
|
14
22
|
}
|
|
23
|
+
/** 텍스트 입력 에디터. / Text input editor. */
|
|
15
24
|
export declare class TextEditor implements CellEditor {
|
|
16
25
|
private input;
|
|
17
26
|
private _onCommit;
|
|
@@ -23,6 +32,7 @@ export declare class TextEditor implements CellEditor {
|
|
|
23
32
|
focus(): void;
|
|
24
33
|
destroy(): void;
|
|
25
34
|
}
|
|
35
|
+
/** 숫자 입력 에디터(min/max/step 지원). / Number input editor (supports min/max/step). */
|
|
26
36
|
export declare class NumberEditor implements CellEditor {
|
|
27
37
|
private input;
|
|
28
38
|
private _onCommit;
|
|
@@ -43,6 +53,7 @@ export declare class NumberEditor implements CellEditor {
|
|
|
43
53
|
focus(): void;
|
|
44
54
|
destroy(): void;
|
|
45
55
|
}
|
|
56
|
+
/** 체크박스 에디터(change 즉시 커밋). / Checkbox editor (commits immediately on change). */
|
|
46
57
|
export declare class CheckboxEditor implements CellEditor {
|
|
47
58
|
private chk;
|
|
48
59
|
private _onCommit;
|
|
@@ -62,9 +73,25 @@ export declare class CheckboxEditor implements CellEditor {
|
|
|
62
73
|
* - number 는 def 가 있으면 min/max/step 을 옵션으로, 없으면 기본 NumberEditor.
|
|
63
74
|
* - select 는 def 가 있으면 def.options, 없으면 col.options 를 쓴다(원 switch 와 동일).
|
|
64
75
|
*/
|
|
76
|
+
/** 셀 에디터 팩토리 시그니처 `(col, def?) => CellEditor`. / Cell-editor factory signature `(col, def?) => CellEditor`. */
|
|
65
77
|
export type EditorFactory = (col: ColumnDef, def?: EditorDef) => CellEditor;
|
|
66
|
-
/**
|
|
78
|
+
/**
|
|
79
|
+
* 커스텀 셀 에디터 타입을 코어 편집 없이 등록(OCP). 프로세스 전역.
|
|
80
|
+
* / Register a custom cell-editor type without editing core (OCP). Process-global.
|
|
81
|
+
*
|
|
82
|
+
* @param typeName - 에디터 타입 이름(예: 'color') / Editor type name (e.g. 'color')
|
|
83
|
+
* @param factory - 에디터 팩토리 / Editor factory
|
|
84
|
+
* @example
|
|
85
|
+
* registerEditor('color', () => new TextEditor());
|
|
86
|
+
*/
|
|
67
87
|
export declare function registerEditor(typeName: string, factory: EditorFactory): void;
|
|
68
|
-
/** 등록 여부 조회(내부/테스트용). */
|
|
88
|
+
/** 에디터 타입 등록 여부 조회(내부/테스트용). / Whether an editor type is registered (internal/test use). */
|
|
69
89
|
export declare function hasEditor(typeName: string): boolean;
|
|
90
|
+
/**
|
|
91
|
+
* 컬럼 정의로부터 셀 에디터를 생성한다(레지스트리 해석, 미등록 시 TextEditor 폴백).
|
|
92
|
+
* / Create a cell editor from a column definition (registry resolution; falls back to TextEditor when unregistered).
|
|
93
|
+
*
|
|
94
|
+
* @param col - 컬럼 정의 / Column definition
|
|
95
|
+
* @returns 셀 에디터 / A cell editor
|
|
96
|
+
*/
|
|
70
97
|
export declare function createEditor(col: ColumnDef): CellEditor;
|