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.
Files changed (54) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/README.md +1 -1
  3. package/dist/OpenGrid-0r_543Kj.cjs +7192 -0
  4. package/dist/OpenGrid-HmhGVC2V.js +7203 -0
  5. package/dist/open-grid-react.cjs +27 -1
  6. package/dist/open-grid-react.js +22 -82
  7. package/dist/open-grid-vue.cjs +31 -1
  8. package/dist/open-grid-vue.js +29 -79
  9. package/dist/open-grid.cjs +272 -6
  10. package/dist/open-grid.js +177 -266
  11. package/dist/types/core/CellEditManager.d.ts +73 -0
  12. package/dist/types/core/CellEventHandler.d.ts +99 -2
  13. package/dist/types/core/ChartManager.d.ts +51 -3
  14. package/dist/types/core/ContextMenu.d.ts +43 -2
  15. package/dist/types/core/CrossGridController.d.ts +86 -15
  16. package/dist/types/core/CrossGridRegistry.d.ts +36 -2
  17. package/dist/types/core/DetailManager.d.ts +106 -15
  18. package/dist/types/core/ExportManager.d.ts +66 -1
  19. package/dist/types/core/ExtensionPointRegistry.d.ts +160 -14
  20. package/dist/types/core/FilterPanel.d.ts +17 -2
  21. package/dist/types/core/FilterSelect.d.ts +37 -13
  22. package/dist/types/core/FindBarManager.d.ts +26 -0
  23. package/dist/types/core/FlatRowModel.d.ts +54 -11
  24. package/dist/types/core/FooterManager.d.ts +53 -1
  25. package/dist/types/core/FormulaController.d.ts +139 -10
  26. package/dist/types/core/GridComposer.d.ts +54 -6
  27. package/dist/types/core/GridShuttle.d.ts +44 -4
  28. package/dist/types/core/GroupTreeManager.d.ts +86 -2
  29. package/dist/types/core/IconRegistry.d.ts +56 -9
  30. package/dist/types/core/KeyboardManager.d.ts +88 -4
  31. package/dist/types/core/MaskingEngine.d.ts +10 -9
  32. package/dist/types/core/MutationService.d.ts +113 -10
  33. package/dist/types/core/OrgChart.d.ts +56 -1
  34. package/dist/types/core/OverrideKernel.d.ts +59 -15
  35. package/dist/types/core/Pagination.d.ts +38 -4
  36. package/dist/types/core/RangeSelectionManager.d.ts +121 -7
  37. package/dist/types/core/RenderController.d.ts +56 -0
  38. package/dist/types/core/RowManager.d.ts +55 -0
  39. package/dist/types/core/SkinRegistry.d.ts +51 -15
  40. package/dist/types/core/SortFilterManager.d.ts +80 -1
  41. package/dist/types/core/TriggerManager.d.ts +46 -0
  42. package/dist/types/core/WorksheetManager.d.ts +61 -2
  43. package/dist/types/core/XmlConverter.d.ts +56 -23
  44. package/dist/types/core/chart/types.d.ts +107 -10
  45. package/dist/types/core/editors/CellEditor.d.ts +29 -2
  46. package/dist/types/core/formula/types.d.ts +71 -8
  47. package/dist/types/core/range/RangeQuery.d.ts +24 -2
  48. package/dist/types/core/renderers/CellRenderer.d.ts +100 -8
  49. package/dist/xlsx.min-BQ1o3sB6.cjs +11793 -0
  50. package/dist/{xlsx.min-Wavxcamn.js → xlsx.min-Bbz2ZypC.js} +453 -566
  51. package/package.json +2 -1
  52. package/dist/OpenGrid-B0Spm0rU.js +0 -10404
  53. package/dist/OpenGrid-CuXj0isp.cjs +0 -97
  54. 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
- /** 값이 이미 다른 수식의 에러 결과(문자열)인지 판별 — 에러 전파(§6 EVANS/DEMARCO 규칙)용. */
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
- /** rect 값 2D 배열(FR-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
- /** 숫자 셀에 대해 OGDecimal 기반 sum/avg/count/min/max(FR-6). 숫자 셀이 없으면 null. */
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 없으면 null 반환기존 ctx.value 사용.
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
- * format 문자열:
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
- /** 아이콘 위치(기본 'left'). */
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
- /** 커스텀 셀 렌더러 타입을 코어 편집 없이 등록(OCP). 프로세스 전역. */
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;