devextreme-planit-treegrid-react 0.0.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/README.md +105 -0
- package/dist/index.tsx +3 -0
- package/package.json +79 -0
package/README.md
ADDED
@@ -0,0 +1,105 @@
|
|
1
|
+
# DevExtreme Planit Tree Grid
|
2
|
+
|
3
|
+
DevExtreme Planit Tree Grid는 Devextreme의 PivotGrid에 Colspan과 컬러 지정 기능 등의 몇 가지 추가 기능을 설정한 React Wrapper입니다.
|
4
|
+
코드는 React와 typescript로 작성되었으며, DevExtreme 22.1 버전에서 테스트 되었습니다.
|
5
|
+
|
6
|
+
## Dependecies
|
7
|
+
|
8
|
+
엑셀 다운로드 기능을 사용하기 위해서는 아래의 두 의존성을 설치해야 합니다.
|
9
|
+
|
10
|
+
```
|
11
|
+
npm install exceljs
|
12
|
+
|
13
|
+
npm install file-saver
|
14
|
+
```
|
15
|
+
|
16
|
+
## Getting Started
|
17
|
+
|
18
|
+
DevExtreme이 설치되어 있어야 합니다.
|
19
|
+
|
20
|
+
```
|
21
|
+
npm install devextreme
|
22
|
+
```
|
23
|
+
|
24
|
+
```
|
25
|
+
npm install devextreme-planit-tree-grid-react
|
26
|
+
```
|
27
|
+
|
28
|
+
사용 방법은 DevExtreme의 PivotGrid의 사용방법과 같습니다. [DevExtreme PivotGrid](https://js.devexpress.com/Documentation/ApiReference/UI_Components/dxPivotGrid/)의 기능을 그대로 사용하실 수 있습니다.
|
29
|
+
|
30
|
+
```
|
31
|
+
import DxPlanitTreeGrid from 'devextreme-planit-tree-grid-react'
|
32
|
+
|
33
|
+
<DxPlanitTreeGrid
|
34
|
+
ref={$childRef}
|
35
|
+
dataSource={dataSource}
|
36
|
+
groupField={TreeDataGroup}
|
37
|
+
dataColor={[
|
38
|
+
{ format: 'percent', color: 'rgb(26, 169, 228)', condition: '>= 110' },
|
39
|
+
{ format: 'percent', color: '#fd7e14', condition: '< 100' },
|
40
|
+
]}
|
41
|
+
convertNullToHipen={true}
|
42
|
+
convertZeroToHipen={true}
|
43
|
+
stateStoringKey={'dx-vera-pivotgrid-storing'}
|
44
|
+
allowSortingBySummary={true}
|
45
|
+
...
|
46
|
+
/>
|
47
|
+
```
|
48
|
+
|
49
|
+
DevExtreme PivotGrid에 몇몇 기능이 추가되었습니다. 추가된 기능은 아래와 같습니다.
|
50
|
+
|
51
|
+
### 1. dataColor
|
52
|
+
|
53
|
+
특정 조건 데이터의 컬러를 직접 지정하실 수 있습니다.
|
54
|
+
|
55
|
+
1. format: [DevExtreme PivotGrid Data Format](https://js.devexpress.com/Documentation/ApiReference/Common/Object_Structures/Format/) 타입을 사용하실 수 있습니다.
|
56
|
+
2. color: (string) 사용하고자 하는 컬러값을 rgba 혹은 hex 형식으로 입력합니다.
|
57
|
+
3. condition: (string) 컬러값을 사용할 조건을 입력합니다.(예: 100보다 큰 수에만 컬러를 적용하고자 하는 경우 '> 100')
|
58
|
+
|
59
|
+
### 2. convertNullToHipen
|
60
|
+
|
61
|
+
value가 null 인 데이터를 하이픈('-')으로 보여줍니다.
|
62
|
+
|
63
|
+
### 3. convertZeroToHipen
|
64
|
+
|
65
|
+
value가 0 | '0' | '0%' 인 데이터를 하이픈('-')으로 보여줍니다.
|
66
|
+
|
67
|
+
### 4. groupField
|
68
|
+
|
69
|
+
groupField는 그리드 상단에 colspan 된 새로운 column을 생성합니다.
|
70
|
+
|
71
|
+
```
|
72
|
+
export const TreeDataGroup: IGroupField[] = [
|
73
|
+
{
|
74
|
+
groupCaption: '진료 수입 (백만원)',
|
75
|
+
groupName: 'mediIncome',
|
76
|
+
depth: 1,
|
77
|
+
colspan: 7,
|
78
|
+
},
|
79
|
+
{
|
80
|
+
groupCaption: '전체',
|
81
|
+
groupName: 'mediIncomeAll',
|
82
|
+
depth: 2,
|
83
|
+
colspan: 3,
|
84
|
+
},
|
85
|
+
|
86
|
+
....
|
87
|
+
|
88
|
+
```
|
89
|
+
|
90
|
+
\*\*Note: [DevExtreme PivotGrid](https://js.devexpress.com/Documentation/ApiReference/UI_Components/dxPivotGrid/) 중 아래의 기능은 사용 불능 처리되었습니다.
|
91
|
+
|
92
|
+
> id, width, height, showColumnGrandTotals, showColumnTotals, showRowGrandTotals, FieldChooser
|
93
|
+
|
94
|
+
\*\*Note: [DevExtreme PivotGrid](https://js.devexpress.com/Documentation/ApiReference/UI_Components/dxPivotGrid/) 중 아래의 기능은 사용 방법이 변경되었습니다.
|
95
|
+
|
96
|
+
> <StateStoring enabled='true' /> 은 stateStoringKey: boolean property로 대체되었습니다.
|
97
|
+
>
|
98
|
+
> stateStoringKey가 없을 경우, <StateStoring enabled='false' /> 와 동일하게 작동합니다.
|
99
|
+
|
100
|
+
```
|
101
|
+
<DxPlanitTreeGrid
|
102
|
+
stateStoringKey={'dx-vera-pivotgrid-storing'}
|
103
|
+
...
|
104
|
+
/>
|
105
|
+
```
|
package/dist/index.tsx
ADDED
package/package.json
ADDED
@@ -0,0 +1,79 @@
|
|
1
|
+
{
|
2
|
+
"name": "devextreme-planit-treegrid-react",
|
3
|
+
"version": "0.0.1",
|
4
|
+
"description": "Devextreme의 DxPivotGrid를 Tree Grid처럼 보여주는 Wrapper입니다.",
|
5
|
+
"main": "dist/DxPlanitTreeGrid.js",
|
6
|
+
"types": "dist/type.d.ts",
|
7
|
+
"files": [
|
8
|
+
"dist/index.tsx",
|
9
|
+
"README.md"
|
10
|
+
],
|
11
|
+
"repository": "https://github.com/hsquare-analytics/ui-tree-grid.git",
|
12
|
+
"author": "bcahn <antonio1926@gmail.com>",
|
13
|
+
"license": "MIT",
|
14
|
+
"publishConfig": {
|
15
|
+
"registry": "https://registry.npmjs.org/"
|
16
|
+
},
|
17
|
+
"scripts": {
|
18
|
+
"start": "react-scripts start",
|
19
|
+
"build": "react-scripts build",
|
20
|
+
"test": "react-scripts test",
|
21
|
+
"eject": "react-scripts eject",
|
22
|
+
"clean": "rimraf dist",
|
23
|
+
"compile": "npm run clean && cross-env NODE_ENV=production babel src/lib --out-dir dist --copy-files"
|
24
|
+
},
|
25
|
+
"babel": {
|
26
|
+
"presets": [
|
27
|
+
"@babel/preset-react"
|
28
|
+
]
|
29
|
+
},
|
30
|
+
"eslintConfig": {
|
31
|
+
"extends": [
|
32
|
+
"react-app",
|
33
|
+
"react-app/jest"
|
34
|
+
]
|
35
|
+
},
|
36
|
+
"browserslist": {
|
37
|
+
"production": [
|
38
|
+
">0.2%",
|
39
|
+
"not dead",
|
40
|
+
"not op_mini all"
|
41
|
+
],
|
42
|
+
"development": [
|
43
|
+
"last 1 chrome version",
|
44
|
+
"last 1 firefox version",
|
45
|
+
"last 1 safari version"
|
46
|
+
]
|
47
|
+
},
|
48
|
+
"dependencies": {
|
49
|
+
"devextreme": "^22.1.6",
|
50
|
+
"devextreme-planit-tree-grid-react": "^0.0.2",
|
51
|
+
"devextreme-react": "^22.1.6",
|
52
|
+
"exceljs": "^4.3.0",
|
53
|
+
"file-saver": "^2.0.5",
|
54
|
+
"typescript": "^4.9.3",
|
55
|
+
"uuid": "^9.0.0",
|
56
|
+
"web-vitals": "^2.1.4"
|
57
|
+
},
|
58
|
+
"peerDependencies": {
|
59
|
+
"react": "^18.2.0",
|
60
|
+
"react-dom": "^18.2.0",
|
61
|
+
"react-router-dom": "^6.4.3",
|
62
|
+
"react-scripts": "^5.0.1"
|
63
|
+
},
|
64
|
+
"devDependencies": {
|
65
|
+
"@babel/cli": "^7.19.3",
|
66
|
+
"@babel/preset-env": "^7.20.2",
|
67
|
+
"@babel/preset-react": "^7.18.6",
|
68
|
+
"@testing-library/jest-dom": "^5.16.5",
|
69
|
+
"@testing-library/react": "^13.4.0",
|
70
|
+
"@testing-library/user-event": "^13.5.0",
|
71
|
+
"@types/file-saver": "^2.0.5",
|
72
|
+
"@types/react": "^18.0.25",
|
73
|
+
"@types/react-dom": "^18.0.9",
|
74
|
+
"@types/uuid": "^8.3.4",
|
75
|
+
"cross-env": "^7.0.3",
|
76
|
+
"eslint": "^8.27.0",
|
77
|
+
"prettier": "^2.7.1"
|
78
|
+
}
|
79
|
+
}
|