open-grid 1.1.1 → 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 (64) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/README.md +30 -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 +174 -260
  11. package/dist/types/core/CellEditManager.d.ts +75 -0
  12. package/dist/types/core/CellEventHandler.d.ts +99 -2
  13. package/dist/types/core/ChartManager.d.ts +53 -3
  14. package/dist/types/core/ContextMenu.d.ts +48 -3
  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 +108 -15
  18. package/dist/types/core/ExportManager.d.ts +73 -1
  19. package/dist/types/core/ExtensionPointRegistry.d.ts +160 -14
  20. package/dist/types/core/FilterPanel.d.ts +21 -3
  21. package/dist/types/core/FilterSelect.d.ts +41 -14
  22. package/dist/types/core/FindBarManager.d.ts +32 -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 +141 -10
  26. package/dist/types/core/GridComposer.d.ts +57 -4
  27. package/dist/types/core/GridRenderer.d.ts +3 -0
  28. package/dist/types/core/GridShuttle.d.ts +44 -4
  29. package/dist/types/core/GroupTreeManager.d.ts +86 -2
  30. package/dist/types/core/IconRegistry.d.ts +56 -9
  31. package/dist/types/core/KeyboardManager.d.ts +90 -4
  32. package/dist/types/core/MaskingEngine.d.ts +10 -9
  33. package/dist/types/core/MutationService.d.ts +115 -10
  34. package/dist/types/core/OpenGrid.d.ts +393 -34
  35. package/dist/types/core/OrgChart.d.ts +56 -1
  36. package/dist/types/core/OverrideKernel.d.ts +59 -15
  37. package/dist/types/core/Pagination.d.ts +44 -5
  38. package/dist/types/core/RangeSelectionManager.d.ts +123 -7
  39. package/dist/types/core/RenderController.d.ts +56 -0
  40. package/dist/types/core/RowManager.d.ts +55 -0
  41. package/dist/types/core/SkinRegistry.d.ts +51 -15
  42. package/dist/types/core/SortFilterManager.d.ts +82 -1
  43. package/dist/types/core/TriggerManager.d.ts +46 -0
  44. package/dist/types/core/WorksheetManager.d.ts +65 -3
  45. package/dist/types/core/XmlConverter.d.ts +56 -23
  46. package/dist/types/core/chart/types.d.ts +107 -10
  47. package/dist/types/core/detail/DetailGlyph.d.ts +3 -1
  48. package/dist/types/core/editors/CellEditor.d.ts +29 -2
  49. package/dist/types/core/formula/types.d.ts +71 -8
  50. package/dist/types/core/i18n/LocaleRegistry.d.ts +0 -0
  51. package/dist/types/core/i18n/interpolate.d.ts +5 -0
  52. package/dist/types/core/i18n/locales/en.d.ts +166 -0
  53. package/dist/types/core/i18n/locales/ko.d.ts +166 -0
  54. package/dist/types/core/i18n/types.d.ts +249 -0
  55. package/dist/types/core/range/RangeQuery.d.ts +24 -2
  56. package/dist/types/core/renderers/CellRenderer.d.ts +105 -8
  57. package/dist/types/core/types.d.ts +352 -96
  58. package/dist/types/index.d.ts +22 -0
  59. package/dist/xlsx.min-BQ1o3sB6.cjs +11793 -0
  60. package/dist/{xlsx.min-Wavxcamn.js → xlsx.min-Bbz2ZypC.js} +453 -566
  61. package/package.json +4 -1
  62. package/dist/OpenGrid-LcZ5iixx.cjs +0 -97
  63. package/dist/OpenGrid-yg4mw6Ge.js +0 -9505
  64. package/dist/xlsx.min-Bx-LxWOf.cjs +0 -138
@@ -1,12 +1,29 @@
1
1
  import { ColumnDef, RendererDef } from '../types.js';
2
+ /** i18n: 렌더 컨텍스트 로케일 해석기(주입 없으면 전역 t). 인스턴스 로케일이 전역보다 우선.
3
+ * / i18n: render-context locale resolver (global t when not injected). Instance locale wins over global. */
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
+ */
2
10
  export interface RenderContext<T = any> {
11
+ /** 셀 원시 값. / Raw cell value. */
3
12
  value: any;
13
+ /** 행 데이터. / Row data. */
4
14
  row: T;
15
+ /** flat 행 인덱스. / Flat row index. */
5
16
  rowIndex: number;
17
+ /** 컬럼 정의. / Column definition. */
6
18
  column: ColumnDef<T>;
19
+ /** 컬럼 인덱스. / Column index. */
7
20
  colIndex: number;
21
+ /** 선택 여부. / Whether selected. */
8
22
  isSelected: boolean;
23
+ /** 행 변경 상태. / Row mutation state. */
9
24
  rowState: 'none' | 'added' | 'edited' | 'removed';
25
+ /** i18n: 인스턴스 로케일 해석기(GridRenderer/CellEditManager 가 주입, 미주입 시 전역 t 폴백). / i18n: instance locale resolver (injected; global-t fallback). */
26
+ t?: (key: string, params?: Record<string, string | number>) => string;
10
27
  displayValue?: string | null;
11
28
  /** R1b: per-instance displayFormatter 전략(값·필드·행 → 표시문자열|null). Number/Date 렌더러가
12
29
  * ctx.value 위에 적용한다(모듈전역 없이 멀티그리드 격리). null 반환/미설정 시 기본 포맷 폴백.
@@ -16,7 +33,9 @@ export interface RenderContext<T = any> {
16
33
  /** C7(15_cross_contracts.md/F3-R14): 이 셀에 F3 셀 수식이 있으면 true — ColumnDef.formula 재평가를 skip. */
17
34
  hasCellFormula?: boolean;
18
35
  }
36
+ /** 셀 렌더러 인터페이스 — ctx 로 셀 엘리먼트를 만든다. / Cell renderer interface — builds a cell element from ctx. */
19
37
  export interface CellRenderer {
38
+ /** 셀 엘리먼트를 렌더한다. / Render the cell element. */
20
39
  render(ctx: RenderContext): HTMLElement;
21
40
  }
22
41
  /**
@@ -29,13 +48,25 @@ export interface CellRenderer {
29
48
  * formatNumber/formatDate 는 전역 상태 0 의 순수 포맷 함수로 환원했다(출력 동일, 회귀 0).
30
49
  */
31
50
  /**
32
- * 컬럼에 formula가 있으면 OGDecimal로 평가해 표시값(string)을 반환.
33
- * 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
34
56
  */
35
57
  export declare function resolveFormula(ctx: RenderContext): string | null;
36
58
  /**
37
- * 숫자 포맷.
38
- * 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:
39
70
  * '#,##0' 천단위 콤마, 정수
40
71
  * '#,##0.00' 천단위 콤마, 소수 2자리
41
72
  * '₩#,##0' 통화 접두 (₩1,234)
@@ -45,10 +76,21 @@ export declare function resolveFormula(ctx: RenderContext): string | null;
45
76
  * currency: ISO 통화코드('KRW'|'USD'|'EUR'…) 지정 시 Intl.NumberFormat 로케일 통화 포맷 우선.
46
77
  */
47
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
+ */
48
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). */
49
90
  export declare class TextRenderer implements CellRenderer {
50
91
  render(ctx: RenderContext): HTMLElement;
51
92
  }
93
+ /** 셀렉트 값→라벨 매핑 렌더러(옵션 배열 또는 행별 옵션 함수). / Select value→label renderer (option array or per-row options function). */
52
94
  export declare class SelectRenderer implements CellRenderer {
53
95
  private _opts;
54
96
  private _fn;
@@ -63,106 +105,145 @@ export declare class SelectRenderer implements CellRenderer {
63
105
  }>);
64
106
  render(ctx: RenderContext): HTMLElement;
65
107
  }
108
+ /** 숫자 렌더러(formula/displayFormatter/통화·포맷 처리, 우측 정렬). / Number renderer (formula/displayFormatter/currency·format, right-aligned). */
66
109
  export declare class NumberRenderer implements CellRenderer {
67
110
  render(ctx: RenderContext): HTMLElement;
68
111
  }
112
+ /** 날짜 렌더러(displayFormatter 우선, 없으면 formatDate). / Date renderer (displayFormatter first, else formatDate). */
69
113
  export declare class DateRenderer implements CellRenderer {
70
114
  render(ctx: RenderContext): HTMLElement;
71
115
  }
116
+ /** 체크박스 렌더러(표시 전용, 클릭은 셀 이벤트가 처리). / Checkbox renderer (display-only; clicks handled by cell events). */
72
117
  export declare class CheckboxRenderer implements CellRenderer {
73
118
  render(ctx: RenderContext): HTMLElement;
74
119
  }
120
+ /** 버튼 렌더러 설정. / Button renderer definition. */
75
121
  export interface ButtonRendererDef {
76
122
  type: 'button';
123
+ /** 버튼 라벨(문자열 또는 (값,행)→문자열). / Button label (string or (value,row)→string). */
77
124
  label?: string | ((value: any, row: any) => string);
78
- /** R12c: 라벨과 함께 표시할 아이콘 role/key(renderIcon). 미지정 시 라벨만(기존과 동일). */
125
+ /** R12c: 라벨과 함께 표시할 아이콘 role/key(renderIcon). 미지정 시 라벨만. / Icon role/key shown with the label (renderIcon); label-only when unset. */
79
126
  icon?: string;
80
- /** 아이콘 위치(기본 'left'). */
127
+ /** 아이콘 위치. 기본 'left'. / Icon position. Default 'left'. @defaultValue 'left' */
81
128
  iconPos?: 'left' | 'right';
129
+ /** 버튼에 추가할 CSS 클래스. / Extra CSS class for the button. */
82
130
  buttonClass?: string;
131
+ /** 인라인 스타일. / Inline style. */
83
132
  style?: string;
84
133
  }
134
+ /** 버튼 렌더러(라벨±아이콘). / Button renderer (label ± icon). */
85
135
  export declare class ButtonRenderer implements CellRenderer {
86
136
  private def?;
87
137
  constructor(def?: ButtonRendererDef | undefined);
88
138
  render(ctx: RenderContext): HTMLElement;
89
139
  }
140
+ /** 배지 렌더러(상태/태그 색상 표시). / Badge renderer (colored status/tag pill). */
90
141
  export declare class BadgeRenderer implements CellRenderer {
91
142
  private colorMap?;
92
143
  private labelMap?;
93
144
  constructor(colorMap?: Record<string, string> | undefined, labelMap?: Record<string, string> | undefined);
94
145
  render(ctx: RenderContext): HTMLElement;
95
146
  }
147
+ /** 링크(a) 렌더러(hrefFn·target 지원). / Link (a) renderer (supports hrefFn·target). */
96
148
  export declare class LinkRenderer implements CellRenderer {
97
149
  private hrefFn?;
98
150
  private target?;
99
151
  constructor(hrefFn?: ((value: any, row: any) => string) | undefined, target?: string | undefined);
100
152
  render(ctx: RenderContext): HTMLElement;
101
153
  }
154
+ /** 템플릿 렌더러(사용자 함수가 HTML 문자열 생성). / Template renderer (user function produces an HTML string). */
102
155
  export declare class TemplateRenderer implements CellRenderer {
103
156
  private templateFn;
104
157
  constructor(templateFn: (value: any, row: any, rowIndex: number) => string);
105
158
  render(ctx: RenderContext): HTMLElement;
106
159
  }
160
+ /** 이미지 렌더러 설정. / Image renderer definition. */
107
161
  export interface ImageRendererDef {
108
162
  type: 'image';
163
+ /** 너비(px). 기본 28. / Width in px. Default 28. @defaultValue 28 */
109
164
  width?: number;
165
+ /** 높이(px). 기본 28. / Height in px. Default 28. @defaultValue 28 */
110
166
  height?: number;
167
+ /** 모서리 반경(px). 기본 4. / Corner radius in px. Default 4. @defaultValue 4 */
111
168
  radius?: number;
169
+ /** 값→src URL 함수. / Value→src URL function. */
112
170
  srcFn?: (value: any, row: any) => string;
171
+ /** alt 텍스트 또는 함수. / alt text or function. */
113
172
  alt?: string | ((value: any, row: any) => string);
114
173
  }
174
+ /** 이미지(썸네일) 렌더러. / Image (thumbnail) renderer. */
115
175
  export declare class ImageRenderer implements CellRenderer {
116
176
  private def?;
117
177
  constructor(def?: ImageRendererDef | undefined);
118
178
  render(ctx: RenderContext): HTMLElement;
119
179
  }
180
+ /** 진행바 렌더러 설정. / Progress-bar renderer definition. */
120
181
  export interface ProgressRendererDef {
121
182
  type: 'progress';
183
+ /** 최댓값. 기본 100. / Max value. Default 100. @defaultValue 100 */
122
184
  max?: number;
185
+ /** 채움 색. / Fill color. */
123
186
  color?: string;
187
+ /** 퍼센트 라벨 표시(기본 true). / Show percent label (default true). @defaultValue true */
124
188
  showLabel?: boolean;
189
+ /** 값→색 함수(color 오버라이드). / Value→color function (overrides color). */
125
190
  colorFn?: (value: number) => string;
126
191
  }
192
+ /** 진행바 렌더러. / Progress-bar renderer. */
127
193
  export declare class ProgressRenderer implements CellRenderer {
128
194
  private def?;
129
195
  constructor(def?: ProgressRendererDef | undefined);
130
196
  render(ctx: RenderContext): HTMLElement;
131
197
  }
198
+ /** 스파크라인 렌더러 설정(값 배열 → 미니 차트). / Sparkline renderer definition (value array → mini chart). */
132
199
  export interface SparklineRendererDef {
133
200
  type: 'sparkline';
201
+ /** 캔버스 너비(px). 기본 80. / Canvas width in px. Default 80. @defaultValue 80 */
134
202
  width?: number;
203
+ /** 캔버스 높이(px). 기본 22. / Canvas height in px. Default 22. @defaultValue 22 */
135
204
  height?: number;
205
+ /** 선/바 색. / Line/bar color. */
136
206
  color?: string;
207
+ /** 미니 차트 종류(기본 'bar'). / Mini chart type (default 'bar'). @defaultValue 'bar' */
137
208
  chartType?: 'bar' | 'line' | 'area';
138
209
  }
210
+ /** 스파크라인(인라인 미니 차트) 렌더러. / Sparkline (inline mini chart) renderer. */
139
211
  export declare class SparklineRenderer implements CellRenderer {
140
212
  private def?;
141
213
  constructor(def?: SparklineRendererDef | undefined);
142
214
  render(ctx: RenderContext): HTMLElement;
143
215
  }
216
+ /** 토글 스위치 렌더러(표시 전용). / Toggle-switch renderer (display-only). */
144
217
  export declare class SwitchRenderer implements CellRenderer {
145
218
  render(ctx: RenderContext): HTMLElement;
146
219
  }
220
+ /** 별점 렌더러 설정. / Rating (stars) renderer definition. */
147
221
  export interface RatingRendererDef {
148
222
  type: 'rating';
223
+ /** 최대 별 수. 기본 5. / Max stars. Default 5. @defaultValue 5 */
149
224
  max?: number;
225
+ /** 채워진 별 색. / Filled-star color. */
150
226
  color?: string;
151
227
  }
228
+ /** 별점 렌더러. / Rating (stars) renderer. */
152
229
  export declare class RatingRenderer implements CellRenderer {
153
230
  private def?;
154
231
  constructor(def?: RatingRendererDef | undefined);
155
232
  render(ctx: RenderContext): HTMLElement;
156
233
  }
234
+ /** 라디오 렌더러(표시 전용, group 지원). / Radio renderer (display-only, supports group). */
157
235
  export declare class RadioRenderer implements CellRenderer {
158
236
  render(ctx: RenderContext): HTMLElement;
159
237
  }
238
+ /** 단순 이미지 렌더러(셀 값 = 이미지 URL). / Simple image renderer (cell value = image URL). */
160
239
  export declare class ImgRenderer implements CellRenderer {
161
240
  render(ctx: RenderContext): HTMLElement;
162
241
  }
242
+ /** HTML 렌더러(기본 sanitize; column.sanitize=false 로 해제 가능). / HTML renderer (sanitizes by default; disable via column.sanitize=false). */
163
243
  export declare class HtmlRenderer implements CellRenderer {
164
244
  render(ctx: RenderContext): HTMLElement;
165
245
  }
246
+ /** 바코드 렌더러(Code128B, SVG + 하단 텍스트). / Barcode renderer (Code128B, SVG plus caption text). */
166
247
  export declare class BarcodeRenderer implements CellRenderer {
167
248
  render(ctx: RenderContext): HTMLElement;
168
249
  }
@@ -180,9 +261,25 @@ export declare class BarcodeRenderer implements CellRenderer {
180
261
  * - image/progress/sparkline/rating/template 은 def(설정 객체) 없이는 원래 TextRenderer 로 떨어졌으므로
181
262
  * def 유무로 게이트한다(문자열 렌더러명만 준 미완성 설정 = 기존과 동일 폴백).
182
263
  */
264
+ /** 셀 렌더러 팩토리 시그니처 `(col, def?) => CellRenderer`. / Cell-renderer factory signature `(col, def?) => CellRenderer`. */
183
265
  export type RendererFactory = (col: ColumnDef, def?: RendererDef) => CellRenderer;
184
- /** 커스텀 셀 렌더러 타입을 코어 편집 없이 등록(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
+ */
185
275
  export declare function registerRenderer(typeName: string, factory: RendererFactory): void;
186
- /** 등록 여부 조회(내부/테스트용). */
276
+ /** 렌더러 타입 등록 여부 조회(내부/테스트용). / Whether a renderer type is registered (internal/test use). */
187
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
+ */
188
285
  export declare function createRenderer(col: ColumnDef): CellRenderer;