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,48 +1,100 @@
|
|
|
1
1
|
import { OGDecimal } from '../OGDecimal.js';
|
|
2
|
+
/** 셀 키 문자열 `${rowId}:${field}`(내부 전용 포맷). / Cell key string `${rowId}:${field}` (internal format). */
|
|
2
3
|
export type CellKey = string;
|
|
4
|
+
/**
|
|
5
|
+
* rowId·field 로 셀 키를 만든다. / Build a cell key from rowId and field.
|
|
6
|
+
*
|
|
7
|
+
* @param rowId - 행 stable id / Row stable id
|
|
8
|
+
* @param field - 컬럼 field 명 / Column field name
|
|
9
|
+
* @returns `${rowId}:${field}` 형태의 키 / A `${rowId}:${field}` key
|
|
10
|
+
*/
|
|
3
11
|
export declare function cellKey(rowId: string, field: string): CellKey;
|
|
12
|
+
/**
|
|
13
|
+
* 셀 키를 rowId·field 로 분해한다. / Split a cell key back into rowId and field.
|
|
14
|
+
*
|
|
15
|
+
* @param key - 셀 키 문자열 / Cell key string
|
|
16
|
+
* @returns { rowId, field }
|
|
17
|
+
*/
|
|
4
18
|
export declare function parseCellKey(key: CellKey): {
|
|
5
19
|
rowId: string;
|
|
6
20
|
field: string;
|
|
7
21
|
};
|
|
22
|
+
/**
|
|
23
|
+
* 수식 에러 코드. / Formula error code.
|
|
24
|
+
*
|
|
25
|
+
* `#ERR`(일반), `#REF`(참조 무효), `#CYCLE`(순환), `#DIV0`(0 나눗셈), `#NAME`(미정의 이름),
|
|
26
|
+
* `#VALUE`(비수치), `#NUM`(수치 범위).
|
|
27
|
+
* / `#ERR` (general), `#REF` (invalid ref), `#CYCLE` (cyclic), `#DIV0` (divide by zero),
|
|
28
|
+
* `#NAME` (undefined name), `#VALUE` (non-numeric), `#NUM` (numeric range).
|
|
29
|
+
*/
|
|
8
30
|
export type FormulaErrorCode = '#ERR' | '#REF' | '#CYCLE' | '#DIV0' | '#NAME' | '#VALUE' | '#NUM';
|
|
31
|
+
/** 전체 에러 코드 집합(런타임 판별용). / Set of all error codes (for runtime checks). */
|
|
9
32
|
export declare const FORMULA_ERROR_CODES: ReadonlySet<string>;
|
|
10
|
-
/**
|
|
33
|
+
/**
|
|
34
|
+
* 값이 이미 다른 수식의 에러 결과(문자열)인지 판별 — 에러 전파용. / Detect whether a value is already another formula's error result (string) — for error propagation.
|
|
35
|
+
*
|
|
36
|
+
* @param v - 검사할 값 / Value to inspect
|
|
37
|
+
* @returns 에러 코드 또는 null / The error code, or null
|
|
38
|
+
*/
|
|
11
39
|
export declare function isErrorToken(v: unknown): FormulaErrorCode | null;
|
|
40
|
+
/** 수식 셀의 계산 결과 값 타입. / Computed result value type of a formula cell. */
|
|
12
41
|
export type CellValue = OGDecimal | string | boolean | null;
|
|
42
|
+
/** 참조 정규화 모드: 'stable'(rowId 앵커) | 'relative'(행 오프셋). / Reference normalization mode: 'stable' (rowId anchor) | 'relative' (row offset). */
|
|
13
43
|
export type RefMode = 'stable' | 'relative';
|
|
44
|
+
/** 정규화된 절대 참조(rowId 앵커). / Normalized absolute reference (rowId anchor). */
|
|
14
45
|
export interface CanonicalAbsRef {
|
|
15
46
|
kind: 'abs';
|
|
47
|
+
/** 앵커 행 stable id. / Anchor row stable id. */
|
|
16
48
|
rowId: string;
|
|
49
|
+
/** 컬럼 field 명. / Column field name. */
|
|
17
50
|
field: string;
|
|
51
|
+
/** 원문에 '$' 행 고정이 있었는지. / Whether the source had a '$' row lock. */
|
|
18
52
|
dollarRow: boolean;
|
|
53
|
+
/** 원문에 '$' 열 고정이 있었는지. / Whether the source had a '$' column lock. */
|
|
19
54
|
dollarCol: boolean;
|
|
20
55
|
}
|
|
56
|
+
/** 정규화된 상대 참조(행 오프셋). / Normalized relative reference (row offset). */
|
|
21
57
|
export interface CanonicalRelRef {
|
|
22
58
|
kind: 'rel';
|
|
59
|
+
/** 현재 셀 기준 행 오프셋 (refMode:'relative' 전용, §2.3). / Row offset from the current cell (refMode:'relative' only, §2.3). */
|
|
23
60
|
dRow: number;
|
|
61
|
+
/** 컬럼 field 명. / Column field name. */
|
|
24
62
|
field: string;
|
|
63
|
+
/** rel 인데 dollarRow=true 인 경우는 없음(구조상 dollarRow=true 면 abs). / Never true for rel (a '$' row lock structurally implies abs). */
|
|
25
64
|
dollarRow: boolean;
|
|
65
|
+
/** 열 고정 여부. / Whether the column is locked. */
|
|
26
66
|
dollarCol: boolean;
|
|
27
67
|
}
|
|
68
|
+
/** 정규화된 단일 참조(절대 | 상대). / Normalized single reference (absolute | relative). */
|
|
28
69
|
export type CanonicalRef = CanonicalAbsRef | CanonicalRelRef;
|
|
70
|
+
/** 정규화된 범위 참조(두 코너). / Normalized range reference (two corners). */
|
|
29
71
|
export interface CanonicalRangeRef {
|
|
72
|
+
/** 코너1 (원문 좌측/상단 그대로, 정렬은 evaluate-time §3.5). / Corner 1 (kept as source left/top; ordering happens at evaluate-time §3.5). */
|
|
30
73
|
a: CanonicalRef;
|
|
74
|
+
/** 코너2. / Corner 2. */
|
|
31
75
|
b: CanonicalRef;
|
|
32
76
|
}
|
|
77
|
+
/** 파서 원시 셀 참조 노드(정규화 전). / Raw parser cell-reference node (pre-normalization). */
|
|
33
78
|
export interface RawCellRefNode {
|
|
34
79
|
t: 'rawRef';
|
|
80
|
+
/** A1 열문자. / A1 column letters. */
|
|
35
81
|
colLetters: string;
|
|
82
|
+
/** 1-based 행 번호. / 1-based row number. */
|
|
36
83
|
row: number;
|
|
84
|
+
/** 열 '$' 고정. / Column '$' lock. */
|
|
37
85
|
dollarCol: boolean;
|
|
86
|
+
/** 행 '$' 고정. / Row '$' lock. */
|
|
38
87
|
dollarRow: boolean;
|
|
39
88
|
}
|
|
89
|
+
/** 파서 원시 범위 참조 노드(정규화 전). / Raw parser range-reference node (pre-normalization). */
|
|
40
90
|
export interface RawRangeRefNode {
|
|
41
91
|
t: 'rawRange';
|
|
42
92
|
a: RawCellRefNode;
|
|
43
93
|
b: RawCellRefNode;
|
|
44
94
|
}
|
|
95
|
+
/** 수식 이항 연산자. / Formula binary operator. */
|
|
45
96
|
export type BinOp = '+' | '-' | '*' | '/' | '%' | '^' | '&' | '=' | '<>' | '<' | '<=' | '>' | '>=';
|
|
97
|
+
/** 수식 AST 노드(원시 참조 + 정규화 후 노드 공존 유니온). / Formula AST node (union of raw refs and normalized nodes). */
|
|
46
98
|
export type AstNode = {
|
|
47
99
|
t: 'num';
|
|
48
100
|
v: string;
|
|
@@ -78,27 +130,38 @@ export type AstNode = {
|
|
|
78
130
|
left: AstNode;
|
|
79
131
|
right: AstNode;
|
|
80
132
|
};
|
|
133
|
+
/** 수식 셀 사이드카 저장 단위(§3.4/§4.1). / Formula-cell sidecar storage unit (§3.4/§4.1). */
|
|
81
134
|
export interface FormulaCell {
|
|
135
|
+
/** 원문 "=A1+B2"(편집 표시용, §4.3). / Source text "=A1+B2" (for edit display, §4.3). */
|
|
82
136
|
src: string;
|
|
137
|
+
/** 정규화된 AST. / Normalized AST. */
|
|
83
138
|
ast: AstNode;
|
|
139
|
+
/** 범위 참조 포함 여부 → applySort/applyFilter dirty 대상(§3.5 P0). / Whether a range ref is present → dirtied by applySort/applyFilter (§3.5 P0). */
|
|
84
140
|
hasRangeRef: boolean;
|
|
141
|
+
/** 캐시된 계산 결과. / Cached computed result. */
|
|
85
142
|
value: CellValue;
|
|
143
|
+
/** 에러 코드(없으면 null). / Error code (null if none). */
|
|
86
144
|
error: FormulaErrorCode | null;
|
|
145
|
+
/** 근사(SQRT 등) 포함 여부 → ≈ 표식(C11). / Whether approximation (e.g. SQRT) is involved → ≈ marker (C11). */
|
|
87
146
|
approx?: boolean;
|
|
88
147
|
}
|
|
148
|
+
/**
|
|
149
|
+
* 수식 엔진이 그리드/데이터를 보는 유일한 인터페이스(주입, 의존성 역전 C0/C0.3/C1).
|
|
150
|
+
* / The sole interface through which the formula engine views the grid/data (injected, dependency inversion C0/C0.3/C1).
|
|
151
|
+
*/
|
|
89
152
|
export interface FormulaGridAccessor {
|
|
90
|
-
/** A1 열문자 매핑 기준 — visibleLeaves(숨김 제외) 순서의 field 배열(§3.1/C1). */
|
|
153
|
+
/** A1 열문자 매핑 기준 — visibleLeaves(숨김 제외) 순서의 field 배열(§3.1/C1). / A1 column-letter basis — field array in visibleLeaves order (hidden excluded) (§3.1/C1). */
|
|
91
154
|
visibleFields(): string[];
|
|
92
|
-
/** flat index(0-based) → rowId. kind!=='data' 이거나 범위 밖이면 null(§C0.3). */
|
|
155
|
+
/** flat index(0-based) → rowId. kind!=='data' 이거나 범위 밖이면 null(§C0.3). / flat index (0-based) → rowId; null when kind!=='data' or out of range (§C0.3). */
|
|
93
156
|
rowIdAtFlat(flatIndex: number): string | null;
|
|
94
|
-
/** rowId → 현재 flat index(0-based). 없음/필터아웃/접힘이면 -1. */
|
|
157
|
+
/** rowId → 현재 flat index(0-based). 없음/필터아웃/접힘이면 -1. / rowId → current flat index (0-based); -1 when absent/filtered-out/collapsed. */
|
|
95
158
|
flatIndexOfRowId(rowId: string): number;
|
|
96
|
-
/** 현재 표시(필터 통과) 순서의 rowId 배열 — 범위 evaluate-time 멤버십 해소용(§3.5). */
|
|
159
|
+
/** 현재 표시(필터 통과) 순서의 rowId 배열 — 범위 evaluate-time 멤버십 해소용(§3.5). / rowId array in current display (filtered) order — for evaluate-time range membership (§3.5). */
|
|
97
160
|
displayedRowIds(): string[];
|
|
98
|
-
/** (rowId, field) 셀의 원시 값(비수식, 이미 계산된 값 포함) 조회. */
|
|
161
|
+
/** (rowId, field) 셀의 원시 값(비수식, 이미 계산된 값 포함) 조회. / Read the raw value at (rowId, field) (non-formula; includes already-computed values). */
|
|
99
162
|
getCellValue(rowId: string, field: string): unknown;
|
|
100
|
-
/** rowId 존재 여부(행 삭제 감지, F3-R28). */
|
|
163
|
+
/** rowId 존재 여부(행 삭제 감지, F3-R28). / Whether a rowId exists (row-deletion detection, F3-R28). */
|
|
101
164
|
hasRow(rowId: string): boolean;
|
|
102
|
-
/** field 존재 여부(열 삭제 감지, F3-R28). */
|
|
165
|
+
/** field 존재 여부(열 삭제 감지, F3-R28). / Whether a field exists (column-deletion detection, F3-R28). */
|
|
103
166
|
hasField(field: string): boolean;
|
|
104
167
|
}
|
|
@@ -1,16 +1,38 @@
|
|
|
1
1
|
import { CellRange } from './types.js';
|
|
2
|
+
/** 범위 질의 컨텍스트(그리드 접근 seam). / Range-query context (grid access seam). */
|
|
2
3
|
export interface RangeQueryContext {
|
|
4
|
+
/** 컬럼 인덱스 → field 명. / Column index → field name. */
|
|
3
5
|
fieldAt(ci: number): string | undefined;
|
|
6
|
+
/** (행 인덱스, field) 셀 값 조회. / Read the cell value at (row index, field). */
|
|
4
7
|
getCellValue(ri: number, field: string): any;
|
|
5
8
|
}
|
|
6
|
-
/**
|
|
9
|
+
/**
|
|
10
|
+
* rect 범위의 값 2D 배열을 반환(FR-6). / Return the 2D value array for a rect range (FR-6).
|
|
11
|
+
*
|
|
12
|
+
* @param rect - 대상 셀 범위 / Target cell range
|
|
13
|
+
* @param ctx - 범위 질의 컨텍스트 / Range-query context
|
|
14
|
+
* @returns 행×열 값 2D 배열 / Row×column 2D value array
|
|
15
|
+
*/
|
|
7
16
|
export declare function getRangeValues(rect: CellRange, ctx: RangeQueryContext): any[][];
|
|
17
|
+
/** 범위 통계 결과(OGDecimal 문자열). / Range statistics result (OGDecimal strings). */
|
|
8
18
|
export interface RangeStats {
|
|
19
|
+
/** 합계. / Sum. */
|
|
9
20
|
sum: string;
|
|
21
|
+
/** 평균. / Average. */
|
|
10
22
|
avg: string;
|
|
23
|
+
/** 숫자 셀 개수. / Count of numeric cells. */
|
|
11
24
|
count: number;
|
|
25
|
+
/** 최솟값. / Minimum. */
|
|
12
26
|
min: string;
|
|
27
|
+
/** 최댓값. / Maximum. */
|
|
13
28
|
max: string;
|
|
14
29
|
}
|
|
15
|
-
/**
|
|
30
|
+
/**
|
|
31
|
+
* 숫자 셀에 대해 OGDecimal 기반 sum/avg/count/min/max(FR-6). 숫자 셀이 없으면 null.
|
|
32
|
+
* / OGDecimal-based sum/avg/count/min/max over numeric cells (FR-6); null when there are no numeric cells.
|
|
33
|
+
*
|
|
34
|
+
* @param rect - 대상 셀 범위 / Target cell range
|
|
35
|
+
* @param ctx - 범위 질의 컨텍스트 / Range-query context
|
|
36
|
+
* @returns 통계 결과 또는 null / Statistics result, or null
|
|
37
|
+
*/
|
|
16
38
|
export declare function getRangeStats(rect: CellRange, ctx: RangeQueryContext): RangeStats | null;
|
|
@@ -2,13 +2,25 @@ import { ColumnDef, RendererDef } from '../types.js';
|
|
|
2
2
|
/** i18n: 렌더 컨텍스트 로케일 해석기(주입 없으면 전역 t). 인스턴스 로케일이 전역보다 우선.
|
|
3
3
|
* / i18n: render-context locale resolver (global t when not injected). Instance locale wins over global. */
|
|
4
4
|
export declare function ctxT(ctx: RenderContext, key: string, params?: Record<string, string | number>): string;
|
|
5
|
+
/**
|
|
6
|
+
* 셀 렌더러/에디터에 전달되는 렌더 컨텍스트. / Render context passed to cell renderers/editors.
|
|
7
|
+
*
|
|
8
|
+
* @typeParam T - 행 데이터 타입 / Row data type
|
|
9
|
+
*/
|
|
5
10
|
export interface RenderContext<T = any> {
|
|
11
|
+
/** 셀 원시 값. / Raw cell value. */
|
|
6
12
|
value: any;
|
|
13
|
+
/** 행 데이터. / Row data. */
|
|
7
14
|
row: T;
|
|
15
|
+
/** flat 행 인덱스. / Flat row index. */
|
|
8
16
|
rowIndex: number;
|
|
17
|
+
/** 컬럼 정의. / Column definition. */
|
|
9
18
|
column: ColumnDef<T>;
|
|
19
|
+
/** 컬럼 인덱스. / Column index. */
|
|
10
20
|
colIndex: number;
|
|
21
|
+
/** 선택 여부. / Whether selected. */
|
|
11
22
|
isSelected: boolean;
|
|
23
|
+
/** 행 변경 상태. / Row mutation state. */
|
|
12
24
|
rowState: 'none' | 'added' | 'edited' | 'removed';
|
|
13
25
|
/** i18n: 인스턴스 로케일 해석기(GridRenderer/CellEditManager 가 주입, 미주입 시 전역 t 폴백). / i18n: instance locale resolver (injected; global-t fallback). */
|
|
14
26
|
t?: (key: string, params?: Record<string, string | number>) => string;
|
|
@@ -21,7 +33,9 @@ export interface RenderContext<T = any> {
|
|
|
21
33
|
/** C7(15_cross_contracts.md/F3-R14): 이 셀에 F3 셀 수식이 있으면 true — ColumnDef.formula 재평가를 skip. */
|
|
22
34
|
hasCellFormula?: boolean;
|
|
23
35
|
}
|
|
36
|
+
/** 셀 렌더러 인터페이스 — ctx 로 셀 엘리먼트를 만든다. / Cell renderer interface — builds a cell element from ctx. */
|
|
24
37
|
export interface CellRenderer {
|
|
38
|
+
/** 셀 엘리먼트를 렌더한다. / Render the cell element. */
|
|
25
39
|
render(ctx: RenderContext): HTMLElement;
|
|
26
40
|
}
|
|
27
41
|
/**
|
|
@@ -34,13 +48,25 @@ export interface CellRenderer {
|
|
|
34
48
|
* formatNumber/formatDate 는 전역 상태 0 의 순수 포맷 함수로 환원했다(출력 동일, 회귀 0).
|
|
35
49
|
*/
|
|
36
50
|
/**
|
|
37
|
-
* 컬럼에 formula가 있으면 OGDecimal로 평가해 표시값(string)을 반환.
|
|
38
|
-
* formula
|
|
51
|
+
* 컬럼에 formula 가 있으면 OGDecimal 로 평가해 표시값(string)을 반환. 없으면 null(→ 기존 ctx.value 사용).
|
|
52
|
+
* / If the column has a formula, evaluate it via OGDecimal and return the display string; null otherwise (→ use ctx.value).
|
|
53
|
+
*
|
|
54
|
+
* @param ctx - 렌더 컨텍스트 / Render context
|
|
55
|
+
* @returns 표시 문자열, 또는 formula 없음/skip 시 null / Display string, or null when no formula / skipped
|
|
39
56
|
*/
|
|
40
57
|
export declare function resolveFormula(ctx: RenderContext): string | null;
|
|
41
58
|
/**
|
|
42
|
-
* 숫자 포맷.
|
|
43
|
-
*
|
|
59
|
+
* 숫자 포맷. / Format a number.
|
|
60
|
+
*
|
|
61
|
+
* @param value - 포맷할 값 / Value to format
|
|
62
|
+
* @param format - 포맷 문자열(아래 참조) / Format string (see below)
|
|
63
|
+
* @param precision - 소수 자리수(있으면 반올림) / Decimal precision (rounds if set)
|
|
64
|
+
* @param currency - ISO 통화코드 지정 시 Intl 로케일 통화 포맷 우선 / When an ISO currency code is set, Intl locale currency format takes priority
|
|
65
|
+
* @param field - 컬럼 field(선택) / Column field (optional)
|
|
66
|
+
* @param row - 행 데이터(선택) / Row data (optional)
|
|
67
|
+
* @returns 포맷된 문자열 / Formatted string
|
|
68
|
+
*
|
|
69
|
+
* format 문자열 / format string:
|
|
44
70
|
* '#,##0' 천단위 콤마, 정수
|
|
45
71
|
* '#,##0.00' 천단위 콤마, 소수 2자리
|
|
46
72
|
* '₩#,##0' 통화 접두 (₩1,234)
|
|
@@ -50,10 +76,21 @@ export declare function resolveFormula(ctx: RenderContext): string | null;
|
|
|
50
76
|
* currency: ISO 통화코드('KRW'|'USD'|'EUR'…) 지정 시 Intl.NumberFormat 로케일 통화 포맷 우선.
|
|
51
77
|
*/
|
|
52
78
|
export declare function formatNumber(value: any, format?: string, precision?: number, currency?: string, field?: string, row?: any): string;
|
|
79
|
+
/**
|
|
80
|
+
* 날짜 포맷(yyyy/MM/dd 토큰 치환). / Format a date (replaces yyyy/MM/dd tokens).
|
|
81
|
+
*
|
|
82
|
+
* @param value - Date 또는 파싱 가능한 값 / A Date or a parseable value
|
|
83
|
+
* @param format - 포맷 문자열(기본 'yyyy-MM-dd') / Format string (default 'yyyy-MM-dd') @defaultValue 'yyyy-MM-dd'
|
|
84
|
+
* @param field - 컬럼 field(선택) / Column field (optional)
|
|
85
|
+
* @param row - 행 데이터(선택) / Row data (optional)
|
|
86
|
+
* @returns 포맷된 문자열 / Formatted string
|
|
87
|
+
*/
|
|
53
88
|
export declare function formatDate(value: any, format?: string, field?: string, row?: any): string;
|
|
89
|
+
/** 기본 텍스트 렌더러(formula/displayValue/valueMap/마스킹 처리 포함). / Default text renderer (handles formula/displayValue/valueMap/masking). */
|
|
54
90
|
export declare class TextRenderer implements CellRenderer {
|
|
55
91
|
render(ctx: RenderContext): HTMLElement;
|
|
56
92
|
}
|
|
93
|
+
/** 셀렉트 값→라벨 매핑 렌더러(옵션 배열 또는 행별 옵션 함수). / Select value→label renderer (option array or per-row options function). */
|
|
57
94
|
export declare class SelectRenderer implements CellRenderer {
|
|
58
95
|
private _opts;
|
|
59
96
|
private _fn;
|
|
@@ -68,106 +105,145 @@ export declare class SelectRenderer implements CellRenderer {
|
|
|
68
105
|
}>);
|
|
69
106
|
render(ctx: RenderContext): HTMLElement;
|
|
70
107
|
}
|
|
108
|
+
/** 숫자 렌더러(formula/displayFormatter/통화·포맷 처리, 우측 정렬). / Number renderer (formula/displayFormatter/currency·format, right-aligned). */
|
|
71
109
|
export declare class NumberRenderer implements CellRenderer {
|
|
72
110
|
render(ctx: RenderContext): HTMLElement;
|
|
73
111
|
}
|
|
112
|
+
/** 날짜 렌더러(displayFormatter 우선, 없으면 formatDate). / Date renderer (displayFormatter first, else formatDate). */
|
|
74
113
|
export declare class DateRenderer implements CellRenderer {
|
|
75
114
|
render(ctx: RenderContext): HTMLElement;
|
|
76
115
|
}
|
|
116
|
+
/** 체크박스 렌더러(표시 전용, 클릭은 셀 이벤트가 처리). / Checkbox renderer (display-only; clicks handled by cell events). */
|
|
77
117
|
export declare class CheckboxRenderer implements CellRenderer {
|
|
78
118
|
render(ctx: RenderContext): HTMLElement;
|
|
79
119
|
}
|
|
120
|
+
/** 버튼 렌더러 설정. / Button renderer definition. */
|
|
80
121
|
export interface ButtonRendererDef {
|
|
81
122
|
type: 'button';
|
|
123
|
+
/** 버튼 라벨(문자열 또는 (값,행)→문자열). / Button label (string or (value,row)→string). */
|
|
82
124
|
label?: string | ((value: any, row: any) => string);
|
|
83
|
-
/** R12c: 라벨과 함께 표시할 아이콘 role/key(renderIcon). 미지정 시
|
|
125
|
+
/** R12c: 라벨과 함께 표시할 아이콘 role/key(renderIcon). 미지정 시 라벨만. / Icon role/key shown with the label (renderIcon); label-only when unset. */
|
|
84
126
|
icon?: string;
|
|
85
|
-
/** 아이콘
|
|
127
|
+
/** 아이콘 위치. 기본 'left'. / Icon position. Default 'left'. @defaultValue 'left' */
|
|
86
128
|
iconPos?: 'left' | 'right';
|
|
129
|
+
/** 버튼에 추가할 CSS 클래스. / Extra CSS class for the button. */
|
|
87
130
|
buttonClass?: string;
|
|
131
|
+
/** 인라인 스타일. / Inline style. */
|
|
88
132
|
style?: string;
|
|
89
133
|
}
|
|
134
|
+
/** 버튼 렌더러(라벨±아이콘). / Button renderer (label ± icon). */
|
|
90
135
|
export declare class ButtonRenderer implements CellRenderer {
|
|
91
136
|
private def?;
|
|
92
137
|
constructor(def?: ButtonRendererDef | undefined);
|
|
93
138
|
render(ctx: RenderContext): HTMLElement;
|
|
94
139
|
}
|
|
140
|
+
/** 배지 렌더러(상태/태그 색상 표시). / Badge renderer (colored status/tag pill). */
|
|
95
141
|
export declare class BadgeRenderer implements CellRenderer {
|
|
96
142
|
private colorMap?;
|
|
97
143
|
private labelMap?;
|
|
98
144
|
constructor(colorMap?: Record<string, string> | undefined, labelMap?: Record<string, string> | undefined);
|
|
99
145
|
render(ctx: RenderContext): HTMLElement;
|
|
100
146
|
}
|
|
147
|
+
/** 링크(a) 렌더러(hrefFn·target 지원). / Link (a) renderer (supports hrefFn·target). */
|
|
101
148
|
export declare class LinkRenderer implements CellRenderer {
|
|
102
149
|
private hrefFn?;
|
|
103
150
|
private target?;
|
|
104
151
|
constructor(hrefFn?: ((value: any, row: any) => string) | undefined, target?: string | undefined);
|
|
105
152
|
render(ctx: RenderContext): HTMLElement;
|
|
106
153
|
}
|
|
154
|
+
/** 템플릿 렌더러(사용자 함수가 HTML 문자열 생성). / Template renderer (user function produces an HTML string). */
|
|
107
155
|
export declare class TemplateRenderer implements CellRenderer {
|
|
108
156
|
private templateFn;
|
|
109
157
|
constructor(templateFn: (value: any, row: any, rowIndex: number) => string);
|
|
110
158
|
render(ctx: RenderContext): HTMLElement;
|
|
111
159
|
}
|
|
160
|
+
/** 이미지 렌더러 설정. / Image renderer definition. */
|
|
112
161
|
export interface ImageRendererDef {
|
|
113
162
|
type: 'image';
|
|
163
|
+
/** 너비(px). 기본 28. / Width in px. Default 28. @defaultValue 28 */
|
|
114
164
|
width?: number;
|
|
165
|
+
/** 높이(px). 기본 28. / Height in px. Default 28. @defaultValue 28 */
|
|
115
166
|
height?: number;
|
|
167
|
+
/** 모서리 반경(px). 기본 4. / Corner radius in px. Default 4. @defaultValue 4 */
|
|
116
168
|
radius?: number;
|
|
169
|
+
/** 값→src URL 함수. / Value→src URL function. */
|
|
117
170
|
srcFn?: (value: any, row: any) => string;
|
|
171
|
+
/** alt 텍스트 또는 함수. / alt text or function. */
|
|
118
172
|
alt?: string | ((value: any, row: any) => string);
|
|
119
173
|
}
|
|
174
|
+
/** 이미지(썸네일) 렌더러. / Image (thumbnail) renderer. */
|
|
120
175
|
export declare class ImageRenderer implements CellRenderer {
|
|
121
176
|
private def?;
|
|
122
177
|
constructor(def?: ImageRendererDef | undefined);
|
|
123
178
|
render(ctx: RenderContext): HTMLElement;
|
|
124
179
|
}
|
|
180
|
+
/** 진행바 렌더러 설정. / Progress-bar renderer definition. */
|
|
125
181
|
export interface ProgressRendererDef {
|
|
126
182
|
type: 'progress';
|
|
183
|
+
/** 최댓값. 기본 100. / Max value. Default 100. @defaultValue 100 */
|
|
127
184
|
max?: number;
|
|
185
|
+
/** 채움 색. / Fill color. */
|
|
128
186
|
color?: string;
|
|
187
|
+
/** 퍼센트 라벨 표시(기본 true). / Show percent label (default true). @defaultValue true */
|
|
129
188
|
showLabel?: boolean;
|
|
189
|
+
/** 값→색 함수(color 오버라이드). / Value→color function (overrides color). */
|
|
130
190
|
colorFn?: (value: number) => string;
|
|
131
191
|
}
|
|
192
|
+
/** 진행바 렌더러. / Progress-bar renderer. */
|
|
132
193
|
export declare class ProgressRenderer implements CellRenderer {
|
|
133
194
|
private def?;
|
|
134
195
|
constructor(def?: ProgressRendererDef | undefined);
|
|
135
196
|
render(ctx: RenderContext): HTMLElement;
|
|
136
197
|
}
|
|
198
|
+
/** 스파크라인 렌더러 설정(값 배열 → 미니 차트). / Sparkline renderer definition (value array → mini chart). */
|
|
137
199
|
export interface SparklineRendererDef {
|
|
138
200
|
type: 'sparkline';
|
|
201
|
+
/** 캔버스 너비(px). 기본 80. / Canvas width in px. Default 80. @defaultValue 80 */
|
|
139
202
|
width?: number;
|
|
203
|
+
/** 캔버스 높이(px). 기본 22. / Canvas height in px. Default 22. @defaultValue 22 */
|
|
140
204
|
height?: number;
|
|
205
|
+
/** 선/바 색. / Line/bar color. */
|
|
141
206
|
color?: string;
|
|
207
|
+
/** 미니 차트 종류(기본 'bar'). / Mini chart type (default 'bar'). @defaultValue 'bar' */
|
|
142
208
|
chartType?: 'bar' | 'line' | 'area';
|
|
143
209
|
}
|
|
210
|
+
/** 스파크라인(인라인 미니 차트) 렌더러. / Sparkline (inline mini chart) renderer. */
|
|
144
211
|
export declare class SparklineRenderer implements CellRenderer {
|
|
145
212
|
private def?;
|
|
146
213
|
constructor(def?: SparklineRendererDef | undefined);
|
|
147
214
|
render(ctx: RenderContext): HTMLElement;
|
|
148
215
|
}
|
|
216
|
+
/** 토글 스위치 렌더러(표시 전용). / Toggle-switch renderer (display-only). */
|
|
149
217
|
export declare class SwitchRenderer implements CellRenderer {
|
|
150
218
|
render(ctx: RenderContext): HTMLElement;
|
|
151
219
|
}
|
|
220
|
+
/** 별점 렌더러 설정. / Rating (stars) renderer definition. */
|
|
152
221
|
export interface RatingRendererDef {
|
|
153
222
|
type: 'rating';
|
|
223
|
+
/** 최대 별 수. 기본 5. / Max stars. Default 5. @defaultValue 5 */
|
|
154
224
|
max?: number;
|
|
225
|
+
/** 채워진 별 색. / Filled-star color. */
|
|
155
226
|
color?: string;
|
|
156
227
|
}
|
|
228
|
+
/** 별점 렌더러. / Rating (stars) renderer. */
|
|
157
229
|
export declare class RatingRenderer implements CellRenderer {
|
|
158
230
|
private def?;
|
|
159
231
|
constructor(def?: RatingRendererDef | undefined);
|
|
160
232
|
render(ctx: RenderContext): HTMLElement;
|
|
161
233
|
}
|
|
234
|
+
/** 라디오 렌더러(표시 전용, group 지원). / Radio renderer (display-only, supports group). */
|
|
162
235
|
export declare class RadioRenderer implements CellRenderer {
|
|
163
236
|
render(ctx: RenderContext): HTMLElement;
|
|
164
237
|
}
|
|
238
|
+
/** 단순 이미지 렌더러(셀 값 = 이미지 URL). / Simple image renderer (cell value = image URL). */
|
|
165
239
|
export declare class ImgRenderer implements CellRenderer {
|
|
166
240
|
render(ctx: RenderContext): HTMLElement;
|
|
167
241
|
}
|
|
242
|
+
/** HTML 렌더러(기본 sanitize; column.sanitize=false 로 해제 가능). / HTML renderer (sanitizes by default; disable via column.sanitize=false). */
|
|
168
243
|
export declare class HtmlRenderer implements CellRenderer {
|
|
169
244
|
render(ctx: RenderContext): HTMLElement;
|
|
170
245
|
}
|
|
246
|
+
/** 바코드 렌더러(Code128B, SVG + 하단 텍스트). / Barcode renderer (Code128B, SVG plus caption text). */
|
|
171
247
|
export declare class BarcodeRenderer implements CellRenderer {
|
|
172
248
|
render(ctx: RenderContext): HTMLElement;
|
|
173
249
|
}
|
|
@@ -185,9 +261,25 @@ export declare class BarcodeRenderer implements CellRenderer {
|
|
|
185
261
|
* - image/progress/sparkline/rating/template 은 def(설정 객체) 없이는 원래 TextRenderer 로 떨어졌으므로
|
|
186
262
|
* def 유무로 게이트한다(문자열 렌더러명만 준 미완성 설정 = 기존과 동일 폴백).
|
|
187
263
|
*/
|
|
264
|
+
/** 셀 렌더러 팩토리 시그니처 `(col, def?) => CellRenderer`. / Cell-renderer factory signature `(col, def?) => CellRenderer`. */
|
|
188
265
|
export type RendererFactory = (col: ColumnDef, def?: RendererDef) => CellRenderer;
|
|
189
|
-
/**
|
|
266
|
+
/**
|
|
267
|
+
* 커스텀 셀 렌더러 타입을 코어 편집 없이 등록(OCP). 프로세스 전역.
|
|
268
|
+
* / Register a custom cell-renderer type without editing core (OCP). Process-global.
|
|
269
|
+
*
|
|
270
|
+
* @param typeName - 렌더러 타입 이름(예: 'sparkline') / Renderer type name (e.g. 'sparkline')
|
|
271
|
+
* @param factory - 렌더러 팩토리 / Renderer factory
|
|
272
|
+
* @example
|
|
273
|
+
* registerRenderer('stars', (col, def) => new RatingRenderer(def as any));
|
|
274
|
+
*/
|
|
190
275
|
export declare function registerRenderer(typeName: string, factory: RendererFactory): void;
|
|
191
|
-
/** 등록 여부 조회(내부/테스트용). */
|
|
276
|
+
/** 렌더러 타입 등록 여부 조회(내부/테스트용). / Whether a renderer type is registered (internal/test use). */
|
|
192
277
|
export declare function hasRenderer(typeName: string): boolean;
|
|
278
|
+
/**
|
|
279
|
+
* 컬럼 정의로부터 셀 렌더러를 생성한다(레지스트리 해석, 미등록 시 TextRenderer 폴백).
|
|
280
|
+
* / Create a cell renderer from a column definition (registry resolution; falls back to TextRenderer when unregistered).
|
|
281
|
+
*
|
|
282
|
+
* @param col - 컬럼 정의 / Column definition
|
|
283
|
+
* @returns 셀 렌더러 / A cell renderer
|
|
284
|
+
*/
|
|
193
285
|
export declare function createRenderer(col: ColumnDef): CellRenderer;
|