open-grid 1.1.0 → 1.2.0
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 +40 -0
- package/README.md +30 -1
- package/THIRD_PARTY_LICENSES.txt +43 -0
- package/dist/OpenGrid-B0Spm0rU.js +10404 -0
- package/dist/OpenGrid-CuXj0isp.cjs +97 -0
- package/dist/open-grid-base.css +5 -5
- package/dist/open-grid-react.cjs +1 -1
- package/dist/open-grid-react.js +1 -1
- package/dist/open-grid-skins.css +111 -0
- package/dist/open-grid-vue.cjs +1 -1
- package/dist/open-grid-vue.js +1 -1
- package/dist/open-grid.cjs +5 -5
- package/dist/open-grid.js +149 -136
- package/dist/types/core/AppearanceResolver.d.ts +100 -0
- package/dist/types/core/CellEditManager.d.ts +2 -0
- package/dist/types/core/ChartManager.d.ts +2 -0
- package/dist/types/core/ContextMenu.d.ts +5 -1
- package/dist/types/core/CrossGridController.d.ts +70 -0
- package/dist/types/core/DetailManager.d.ts +2 -0
- package/dist/types/core/ExportManager.d.ts +7 -0
- package/dist/types/core/ExtensionPointRegistry.d.ts +92 -0
- package/dist/types/core/FilterPanel.d.ts +4 -1
- package/dist/types/core/FilterSelect.d.ts +4 -1
- package/dist/types/core/FindBarManager.d.ts +6 -0
- package/dist/types/core/FormulaController.d.ts +81 -0
- package/dist/types/core/GridComposer.d.ts +142 -0
- package/dist/types/core/GridRenderer.d.ts +44 -4
- package/dist/types/core/IconRegistry.d.ts +55 -0
- package/dist/types/core/KeyboardManager.d.ts +2 -0
- package/dist/types/core/MutationService.d.ts +128 -0
- package/dist/types/core/OpenGrid.d.ts +464 -68
- package/dist/types/core/OrgChart.d.ts +2 -0
- package/dist/types/core/Pagination.d.ts +6 -1
- package/dist/types/core/RangeSelectionManager.d.ts +2 -0
- package/dist/types/core/RenderController.d.ts +65 -0
- package/dist/types/core/SkinRegistry.d.ts +53 -0
- package/dist/types/core/SortFilterManager.d.ts +2 -0
- package/dist/types/core/WorksheetManager.d.ts +4 -1
- package/dist/types/core/detail/DetailGlyph.d.ts +3 -1
- package/dist/types/core/editors/CellEditor.d.ts +17 -1
- package/dist/types/core/i18n/LocaleRegistry.d.ts +0 -0
- package/dist/types/core/i18n/interpolate.d.ts +5 -0
- package/dist/types/core/i18n/locales/en.d.ts +166 -0
- package/dist/types/core/i18n/locales/ko.d.ts +166 -0
- package/dist/types/core/i18n/types.d.ts +249 -0
- package/dist/types/core/icons/bootstrap-icons.d.ts +9 -0
- package/dist/types/core/renderers/CellRenderer.d.ts +43 -2
- package/dist/types/core/types.d.ts +387 -91
- package/dist/types/index.d.ts +26 -0
- package/package.json +3 -1
- package/dist/OpenGrid-5flQwc3W.js +0 -8434
- package/dist/OpenGrid-DahxRY7C.cjs +0 -92
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,46 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to OPEN_GRID will be documented in this file.
|
|
4
4
|
|
|
5
|
+
## [1.2.0] - 2026-07-05
|
|
6
|
+
|
|
7
|
+
### Added
|
|
8
|
+
- **다국어(i18n) — 리소스 분리** / **Internationalization — separated resources.**
|
|
9
|
+
UI 문자열(라벨·aria-label·announce·툴팁·플레이스홀더)을 코어에서 분리해 로케일 카탈로그로 관리.
|
|
10
|
+
`SkinRegistry`/`IconRegistry`와 동형인 `LocaleRegistry`(전역 싱글턴 + 인스턴스별 child 체인 + never-throw 폴백).
|
|
11
|
+
- 옵션: `new OpenGrid(el, { locale: 'en', messages: { ... } })`
|
|
12
|
+
- 메서드: `grid.setLocale('en')` / `grid.getLocale()` / `grid.setMessage(key, value)` / `grid.t(key, params)`
|
|
13
|
+
- 등록: `localeRegistry.register('ja', { ... })`, `OpenGrid.defineLocale(id, messages)`
|
|
14
|
+
- 내장 로케일 `ko`(기본)·`en`. 폴백 체인 = 인스턴스 오버라이드 → 활성 로케일 → ko → 키 원문.
|
|
15
|
+
- `setLocale` 시 상주 크롬(페이지네이션·찾기 바) 재라벨 + 컨텍스트메뉴/필터패널 재구성 + `lang` 속성 갱신 + `localeChange` 이벤트.
|
|
16
|
+
- 공개 export: `LocaleRegistry`/`localeRegistry`/`t` + 타입 `LocaleMessages`/`PartialLocaleMessages`/`LocaleMessageKey`/`MessageValue`.
|
|
17
|
+
|
|
18
|
+
### Changed
|
|
19
|
+
- **하위호환 보장** — 기본 로케일 `ko` 고정. `locale`/`messages` 미지정 시 렌더 결과는 이전과 동일(byte-identical).
|
|
20
|
+
개발자 대면 오류 메시지(throw/console)와 숫자·날짜 포맷은 i18n 범위에서 제외(로그 안정성·별도 축).
|
|
21
|
+
|
|
22
|
+
### Docs
|
|
23
|
+
- **TypeDoc API 문서 파이프라인** — `npm run docs`로 공개 API 문서 생성. 공개 표면에 한·영 병행 JSDoc.
|
|
24
|
+
|
|
25
|
+
## [1.1.1] - 2026-07-04
|
|
26
|
+
|
|
27
|
+
### Added
|
|
28
|
+
- **스킨 (형태 축)** — 색 테마와 직교하는 형태 스킨 6종(sharp/rounded/stitch/flat/high-contrast/material).
|
|
29
|
+
`data-og-skin` 속성 + `grid.setSkin(name)`, `OpenGrid.defineSkin(name, delta)`(FORM 토큰만 허용), `grid.setSkinVar(k,v)`.
|
|
30
|
+
색 테마와 자유 조합(예: crimson 테마 + stitch 스킨). 접근성 위험이 있는 neumorph는 기본 카탈로그에서 제외.
|
|
31
|
+
- **아이콘 세트** — Bootstrap Icons(MIT) 기반 역할(role) 아이콘 64종. `renderIcon(role, {size})`,
|
|
32
|
+
`grid.setIcon(role, key)`(인스턴스 격리), `OpenGrid.defineIconSet(map)`(전역). 공개 export 추가:
|
|
33
|
+
`renderIcon`/`IconRegistry`/`iconRegistry`/`DEFAULT_ICON_ROLES`/`SkinRegistry`/`skinRegistry`.
|
|
34
|
+
- **버튼 렌더러 아이콘** — `renderer:{ type:'button', icon:'search', label:'…', iconPos:'left'|'right' }`로
|
|
35
|
+
버튼 라벨과 아이콘을 함께 표시.
|
|
36
|
+
|
|
37
|
+
### Changed
|
|
38
|
+
- 그리드 셀/행/헤더 보더를 `--og-border-style`/`--og-divider-style` 토큰으로 승격 — 스킨이 선(보더 스타일)을 제어한다.
|
|
39
|
+
토큰 미설정 시 `solid` 폴백(기존 렌더와 동일).
|
|
40
|
+
- 내부 코어 리팩토링(협력자 분리) — 공개 API·동작 변화 없음(행동 보존).
|
|
41
|
+
|
|
42
|
+
### Notes
|
|
43
|
+
- Bootstrap Icons(MIT) 라이선스를 `THIRD_PARTY_LICENSES.txt`에 포함.
|
|
44
|
+
|
|
5
45
|
## [1.1.0] - 2026-07-03
|
|
6
46
|
|
|
7
47
|
### Added
|
package/README.md
CHANGED
|
@@ -9,7 +9,7 @@ High-performance, framework-agnostic data grid with virtual scrolling, inline ed
|
|
|
9
9
|
|
|
10
10
|
[](LICENSE)
|
|
11
11
|
[](https://www.typescriptlang.org/)
|
|
12
|
-
[](https://www.npmjs.com/package/open-grid)
|
|
13
13
|
|
|
14
14
|
📖 **[개발 가이드](https://foxnail.kr/open-grid/demo/v2/guide/index.php)** — 설치부터 고급 API까지 단계별 가이드
|
|
15
15
|
🔗 **[데모/홈페이지](https://foxnail.kr/open-grid/demo/v2/index.php)**
|
|
@@ -28,6 +28,7 @@ High-performance, framework-agnostic data grid with virtual scrolling, inline ed
|
|
|
28
28
|
| Column Reorder (drag header, `columnReorder: true`) | ✅ |
|
|
29
29
|
| Frozen Columns | ✅ |
|
|
30
30
|
| Row/Column Groups (header merge) | ✅ |
|
|
31
|
+
| Localization / i18n (built-in `ko`·`en`, `setLocale`, custom locales) | ✅ |
|
|
31
32
|
| Grouping + Summary (SUM/AVG/MIN/MAX/COUNT) | ✅ |
|
|
32
33
|
| Tree Grid (flat → hierarchy, expand/collapse) | ✅ |
|
|
33
34
|
| OrgChart (organization chart with theme) | ✅ |
|
|
@@ -350,6 +351,34 @@ CSS 변수로 완전한 테마 커스터마이즈 가능:
|
|
|
350
351
|
}
|
|
351
352
|
```
|
|
352
353
|
|
|
354
|
+
## Localization (i18n)
|
|
355
|
+
|
|
356
|
+
All built-in UI strings — labels, `aria-label`s, live-region announcements, tooltips, placeholders —
|
|
357
|
+
are kept in swappable locale catalogs, separated from the core. Ships with **`ko` (default) and `en`**.
|
|
358
|
+
Existing apps are unaffected: without a `locale`/`messages` option, output is byte-identical to before.
|
|
359
|
+
|
|
360
|
+
```ts
|
|
361
|
+
import { OpenGrid, localeRegistry } from 'open-grid';
|
|
362
|
+
|
|
363
|
+
// 1) Pick a built-in locale per instance
|
|
364
|
+
const grid = new OpenGrid(el, { columns, locale: 'en' });
|
|
365
|
+
|
|
366
|
+
// 2) Switch at runtime (re-labels chrome, updates the `lang` attribute, emits `localeChange`)
|
|
367
|
+
grid.setLocale('ko');
|
|
368
|
+
|
|
369
|
+
// 3) Override just a few messages for one instance
|
|
370
|
+
new OpenGrid(el, { locale: 'en', messages: { contextMenu: { sortAsc: 'Sort A→Z' } } });
|
|
371
|
+
|
|
372
|
+
// 4) Register a custom locale globally (partial dictionaries are fine — missing keys fall back)
|
|
373
|
+
localeRegistry.register('ja', { contextMenu: { find: '検索' }, pagination: { rowsPerPage: '行/ページ:' } });
|
|
374
|
+
new OpenGrid(el, { locale: 'ja' });
|
|
375
|
+
```
|
|
376
|
+
|
|
377
|
+
Fallback chain: instance override → active locale → `ko` (complete catalog) → raw key.
|
|
378
|
+
Number/date formatting and developer-facing error messages are intentionally out of scope
|
|
379
|
+
(use `Intl` and keep logs grep-stable). See the
|
|
380
|
+
[Localization guide](https://foxnail.kr/open-grid/demo/v2/guide/index.php) for the full key reference.
|
|
381
|
+
|
|
353
382
|
## Changelog
|
|
354
383
|
|
|
355
384
|
### v0.1.2 (2026-05-30)
|
package/THIRD_PARTY_LICENSES.txt
CHANGED
|
@@ -227,3 +227,46 @@ The complete text of the Apache License, Version 2.0 follows.
|
|
|
227
227
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
228
228
|
See the License for the specific language governing permissions and
|
|
229
229
|
limitations under the License.
|
|
230
|
+
|
|
231
|
+
|
|
232
|
+
-----------------------------------------------------------------------
|
|
233
|
+
3. Bootstrap Icons
|
|
234
|
+
Copyright (c) 2019-2024 The Bootstrap Authors
|
|
235
|
+
Homepage: https://icons.getbootstrap.com/
|
|
236
|
+
Source: https://github.com/twbs/icons
|
|
237
|
+
Version: 1.13.1
|
|
238
|
+
License: MIT License (SPDX: MIT)
|
|
239
|
+
Bundled as: curated inline SVG glyph bodies embedded in the compiled
|
|
240
|
+
distribution (dist/*.js, from src/core/icons/bootstrap-icons.ts) — the
|
|
241
|
+
icon glyphs used by the grid UI (sorting, filtering, editing, row/column
|
|
242
|
+
ops, export, chart-type, status and general UI icons). No runtime
|
|
243
|
+
dependency is added; only the glyphs actually used are embedded.
|
|
244
|
+
-----------------------------------------------------------------------
|
|
245
|
+
|
|
246
|
+
The complete text of the MIT License, as distributed with Bootstrap Icons,
|
|
247
|
+
follows.
|
|
248
|
+
|
|
249
|
+
|
|
250
|
+
MIT License
|
|
251
|
+
|
|
252
|
+
The MIT License (MIT)
|
|
253
|
+
|
|
254
|
+
Copyright (c) 2019-2024 The Bootstrap Authors
|
|
255
|
+
|
|
256
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
257
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
258
|
+
in the Software without restriction, including without limitation the rights
|
|
259
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
260
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
261
|
+
furnished to do so, subject to the following conditions:
|
|
262
|
+
|
|
263
|
+
The above copyright notice and this permission notice shall be included in
|
|
264
|
+
all copies or substantial portions of the Software.
|
|
265
|
+
|
|
266
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
267
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
268
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
269
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
270
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
271
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
272
|
+
THE SOFTWARE.
|