@freegridjs/react 0.1.0 → 0.7.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/LICENSE CHANGED
@@ -1,21 +1,72 @@
1
- MIT License
2
-
3
- Copyright (c) 2026 FreeGrid contributors
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
1
+ FreeGrid License
2
+ Version 1.0, 2026-10-15
3
+
4
+ Copyright (c) 2026 2nd Korea (세컨드코리아). All rights reserved.
5
+ Contact: help@2nd-korea.com · https://freegrid.app/pricing/
6
+
7
+ This license covers the FreeGrid software, including the packages @freegridjs/core,
8
+ @freegridjs/react and @freegridjs/vue, their source code and the files built from them
9
+ (the "Software").
10
+
11
+ 1. Personal use is free
12
+
13
+ An individual may use, copy and modify the Software free of charge for personal,
14
+ educational, research or other non-commercial purposes, including personal websites,
15
+ open-source projects that are not run by a company, and learning or evaluation.
16
+
17
+ 2. Company use needs a domain license
18
+
19
+ Any use by or for a company, organization, public body or other business ("Company"),
20
+ whether the product is sold, used internally or offered to customers, requires a paid
21
+ Company License. A Company may evaluate the Software for up to 30 days without a license.
22
+
23
+ - A Company License is issued for one domain (for example example.com) and covers that
24
+ domain and its subdomains. Applications without a domain (desktop apps, intranets
25
+ reached by address) count as one domain per installation site.
26
+ - The fee is KRW 200,000 per domain per year. The license is valid for one year from the
27
+ date it is issued and may be renewed.
28
+ - A license key is provided with each Company License. Setting the key removes the
29
+ console notice described in section 5.
30
+
31
+ 3. Conditions for all users
32
+
33
+ - Keep this license and the copyright notice in copies of the Software.
34
+ - Do not sell, rent or sublicense the Software itself, or offer it as a standalone grid
35
+ component or library, with or without changes.
36
+ - Do not remove or work around the license check, or share license keys outside the
37
+ licensed domain.
38
+
39
+ 4. No warranty
40
+
41
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
42
+ INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
43
+ PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
44
+ FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY ARISING FROM THE SOFTWARE OR ITS USE.
45
+
46
+ 5. Usage report
47
+
48
+ When the Software runs on a public domain (not localhost or a private network address),
49
+ it sends the domain name, the page address without query string, the Software version
50
+ and whether a license key is set to freegrid.app once a day. No data shown in the grid
51
+ and no information about end users is sent. Without a license key on such a domain it
52
+ also prints a notice in the browser developer console.
53
+
54
+ ---------------------------------------------------------------------------------------
55
+
56
+ FreeGrid 라이선스 (요약, 한국어)
57
+
58
+ - 개인: 개인적·교육·연구 등 비상업적 용도로 무료로 사용, 복제, 수정할 수 있습니다.
59
+ - 회사: 회사, 단체, 공공기관 등 업무용으로 쓰려면 판매용·내부용·고객 제공용 모두 유료
60
+ 회사 라이선스가 필요합니다. 30일 동안은 평가 목적으로 라이선스 없이 써 볼 수 있습니다.
61
+ - 도메인 1개(하위 도메인 포함) 기준 연 200,000원이며, 발급일로부터 1년간 유효하고
62
+ 갱신할 수 있습니다.
63
+ - 라이선스마다 키를 발급하며, 키를 설정하면 콘솔 안내가 사라집니다.
64
+ - 모든 사용자: 저작권과 이 라이선스 문구를 유지해야 하며, 소프트웨어 자체를 판매하거나
65
+ 별도 그리드 라이브러리로 재배포할 수 없고, 라이선스 확인을 제거하거나 키를 다른
66
+ 도메인에 공유할 수 없습니다.
67
+ - 보증 없음: 소프트웨어는 있는 그대로 제공됩니다.
68
+ - 사용 보고: 공개 도메인에서 실행되면 하루 한 번 도메인 이름, 쿼리 문자열을 뺀 페이지
69
+ 주소, 버전, 라이선스 키 설정 여부를 freegrid.app으로 보냅니다. 그리드의 데이터나 최종
70
+ 사용자 정보는 보내지 않습니다.
71
+
72
+ 문의: help@2nd-korea.com · 대표번호 070-7768-1326
package/README.md CHANGED
@@ -21,4 +21,14 @@ import '@freegridjs/core/styles.css';
21
21
 
22
22
  Every grid option is a prop, every event an `on…` prop, and the ref is the grid API. Docs: https://freegrid.app/docs/#react
23
23
 
24
- MIT License
24
+ ## License
25
+
26
+ Free for personal use. Company use needs a domain license: KRW 200,000 per domain per year
27
+ (subdomains included). See https://freegrid.app/pricing/ and the LICENSE file.
28
+
29
+ 개인은 무료, 회사는 도메인당 연 20만 원입니다. 자세한 내용은 https://freegrid.app/pricing/
30
+
31
+ ```js
32
+ import { setLicenseKey } from '@freegridjs/core';
33
+ setLicenseKey('FG1....'); // or createGrid(el, { licenseKey: 'FG1....', ... })
34
+ ```
package/dist/index.d.ts CHANGED
@@ -18,6 +18,22 @@ interface FreeGridProps extends Omit<GridOptions, 'columns' | 'data'> {
18
18
  onColumnMove?: Handler<'columnMove'>;
19
19
  onFocusChange?: Handler<'focusChange'>;
20
20
  onColumnVisible?: Handler<'columnVisible'>;
21
+ onRangeChange?: Handler<'rangeChange'>;
22
+ onCellValueChanged?: Handler<'cellValueChanged'>;
23
+ onPaste?: Handler<'paste'>;
24
+ onEditStart?: Handler<'editStart'>;
25
+ onEditStop?: Handler<'editStop'>;
26
+ onValidationFailed?: Handler<'validationFailed'>;
27
+ onRowsAdded?: Handler<'rowsAdded'>;
28
+ onRowsRemoved?: Handler<'rowsRemoved'>;
29
+ onGroupChange?: Handler<'groupChange'>;
30
+ onGroupToggle?: Handler<'groupToggle'>;
31
+ onDetailToggle?: Handler<'detailToggle'>;
32
+ onRowDragEnd?: Handler<'rowDragEnd'>;
33
+ onPageChange?: Handler<'pageChange'>;
34
+ onRowsLoaded?: Handler<'rowsLoaded'>;
35
+ onRowsLoadFailed?: Handler<'rowsLoadFailed'>;
36
+ onPivotChange?: Handler<'pivotChange'>;
21
37
  }
22
38
  declare const FreeGrid: react.ForwardRefExoticComponent<FreeGridProps & react.RefAttributes<GridApi | null>>;
23
39
 
package/dist/index.js CHANGED
@@ -11,7 +11,23 @@ var EVENT_PROPS = {
11
11
  columnResize: "onColumnResize",
12
12
  columnMove: "onColumnMove",
13
13
  focusChange: "onFocusChange",
14
- columnVisible: "onColumnVisible"
14
+ columnVisible: "onColumnVisible",
15
+ rangeChange: "onRangeChange",
16
+ cellValueChanged: "onCellValueChanged",
17
+ paste: "onPaste",
18
+ editStart: "onEditStart",
19
+ editStop: "onEditStop",
20
+ validationFailed: "onValidationFailed",
21
+ rowsAdded: "onRowsAdded",
22
+ rowsRemoved: "onRowsRemoved",
23
+ groupChange: "onGroupChange",
24
+ groupToggle: "onGroupToggle",
25
+ detailToggle: "onDetailToggle",
26
+ rowDragEnd: "onRowDragEnd",
27
+ pageChange: "onPageChange",
28
+ rowsLoaded: "onRowsLoaded",
29
+ rowsLoadFailed: "onRowsLoadFailed",
30
+ pivotChange: "onPivotChange"
15
31
  };
16
32
  var FreeGrid = forwardRef(function FreeGrid2(props, ref) {
17
33
  const host = useRef(null);
@@ -21,22 +37,12 @@ var FreeGrid = forwardRef(function FreeGrid2(props, ref) {
21
37
  const applied = useRef({});
22
38
  useLayoutEffect(() => {
23
39
  const p = latest.current;
24
- const grid = createGrid(host.current, {
25
- columns: p.columns,
26
- data: p.data,
27
- rowHeight: p.rowHeight,
28
- headerHeight: p.headerHeight,
29
- rowSelection: p.rowSelection,
30
- getRowId: p.getRowId,
31
- theme: p.theme,
32
- locale: p.locale,
33
- fontSize: p.fontSize,
34
- fontFamily: p.fontFamily,
35
- sideBar: p.sideBar,
36
- summary: p.summary
37
- });
40
+ const options = Object.fromEntries(
41
+ Object.entries(p).filter(([k]) => k !== "className" && k !== "style" && !/^on[A-Z]/.test(k))
42
+ );
43
+ const grid = createGrid(host.current, options);
38
44
  api.current = grid;
39
- applied.current = { data: p.data, columns: p.columns, locale: p.locale, theme: p.theme, fontSize: p.fontSize, fontFamily: p.fontFamily, summary: p.summary };
45
+ applied.current = { data: p.data, columns: p.columns, locale: p.locale, theme: p.theme, fontSize: p.fontSize, fontFamily: p.fontFamily, summary: p.summary, groupBy: p.groupBy, pivot: p.pivot };
40
46
  const offs = Object.keys(EVENT_PROPS).map(
41
47
  (type) => grid.on(type, (payload) => {
42
48
  const handler = latest.current[EVENT_PROPS[type]];
@@ -59,6 +65,8 @@ var FreeGrid = forwardRef(function FreeGrid2(props, ref) {
59
65
  if (props.locale !== void 0 && props.locale !== a.locale) grid.setLocale(a.locale = props.locale);
60
66
  if (props.theme !== void 0 && props.theme !== a.theme) grid.setTheme(a.theme = props.theme);
61
67
  if (props.summary !== a.summary) grid.setSummary((a.summary = props.summary) ?? null);
68
+ if (props.groupBy !== a.groupBy) grid.setGroupBy((a.groupBy = props.groupBy) ?? []);
69
+ if (props.pivot !== a.pivot) grid.setPivot((a.pivot = props.pivot) ?? null);
62
70
  if (props.fontSize !== a.fontSize || props.fontFamily !== a.fontFamily) {
63
71
  a.fontSize = props.fontSize;
64
72
  a.fontFamily = props.fontFamily;
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@freegridjs/react",
3
- "version": "0.1.0",
4
- "description": "React component for FreeGrid, the fast, free data grid.",
5
- "license": "MIT",
3
+ "version": "0.7.1",
4
+ "description": "React component for FreeGrid, the fast data grid (free for personal use).",
5
+ "license": "SEE LICENSE IN LICENSE",
6
6
  "type": "module",
7
7
  "main": "./dist/index.js",
8
8
  "types": "./dist/index.d.ts",
@@ -18,11 +18,11 @@
18
18
  "LICENSE"
19
19
  ],
20
20
  "peerDependencies": {
21
- "@freegridjs/core": "^0.1.0",
21
+ "@freegridjs/core": "^0.7.1",
22
22
  "react": ">=18"
23
23
  },
24
24
  "devDependencies": {
25
- "@freegridjs/core": "^0.1.0",
25
+ "@freegridjs/core": "^0.7.1",
26
26
  "@testing-library/react": "^16.3.3",
27
27
  "@types/react": "^19.3.0",
28
28
  "@types/react-dom": "^19.3.0",