devextreme-planit-treegrid-react 1.1.1 → 1.1.3
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 +3 -1
- package/dist/DxPlanitTreeGrid.js +352 -181
- package/dist/index.d.ts +16 -1
- package/package.json +5 -1
- package/.idea/modules.xml +0 -8
- package/.idea/ui-tree-grid.iml +0 -9
- package/.idea/vcs.xml +0 -6
- package/.prettierrc +0 -12
- package/.vscode/settings.json +0 -3
- package/babel.config.js +0 -11
- package/public/favicon.ico +0 -0
- package/public/index.html +0 -43
- package/public/logo192.png +0 -0
- package/public/logo512.png +0 -0
- package/public/manifest.json +0 -25
- package/public/robots.txt +0 -3
- package/webpack.config.js +0 -27
package/README.md
CHANGED
|
@@ -74,7 +74,9 @@ value가 0 | '0' | '0%' 인 데이터를 하이픈('-')으로 보여줍니다.
|
|
|
74
74
|
groupField는 그리드 상단에 colspan 된 새로운 column을 생성합니다. 자세한 사용법은 github의 demo 폴더를 확인하십시오.
|
|
75
75
|
|
|
76
76
|
```
|
|
77
|
-
|
|
77
|
+
import { TypeDxPlanit } from 'devextreme-planit-treegrid-react';
|
|
78
|
+
|
|
79
|
+
export const TreeDataGroup: TypeDxPlanit.IGroupField[] = [
|
|
78
80
|
{
|
|
79
81
|
groupCaption: '진료 수입 (백만원)',
|
|
80
82
|
groupName: 'mediIncome',
|
package/dist/DxPlanitTreeGrid.js
CHANGED
|
@@ -1,32 +1,150 @@
|
|
|
1
|
-
|
|
1
|
+
'use strict';
|
|
2
2
|
|
|
3
|
-
function _typeof(obj) {
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
function _typeof(obj) {
|
|
4
|
+
'@babel/helpers - typeof';
|
|
5
|
+
return (
|
|
6
|
+
(_typeof =
|
|
7
|
+
'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator
|
|
8
|
+
? function (obj) {
|
|
9
|
+
return typeof obj;
|
|
10
|
+
}
|
|
11
|
+
: function (obj) {
|
|
12
|
+
return obj && 'function' == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? 'symbol' : typeof obj;
|
|
13
|
+
}),
|
|
14
|
+
_typeof(obj)
|
|
15
|
+
);
|
|
16
|
+
}
|
|
17
|
+
Object.defineProperty(exports, '__esModule', {
|
|
18
|
+
value: true,
|
|
6
19
|
});
|
|
7
20
|
exports.default = void 0;
|
|
8
|
-
var _react = require(
|
|
9
|
-
var _loadPanel = require(
|
|
10
|
-
var _pivotGrid = _interopRequireWildcard(require(
|
|
11
|
-
var _dataGrid = require(
|
|
12
|
-
var _excel_exporter = require(
|
|
13
|
-
var _exceljs = require(
|
|
14
|
-
var _fileSaver = _interopRequireDefault(require(
|
|
15
|
-
function _interopRequireDefault(obj) {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
function
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
function
|
|
27
|
-
|
|
21
|
+
var _react = require('react');
|
|
22
|
+
var _loadPanel = require('devextreme-react/load-panel');
|
|
23
|
+
var _pivotGrid = _interopRequireWildcard(require('devextreme-react/pivot-grid'));
|
|
24
|
+
var _dataGrid = require('devextreme-react/data-grid');
|
|
25
|
+
var _excel_exporter = require('devextreme/excel_exporter');
|
|
26
|
+
var _exceljs = require('exceljs');
|
|
27
|
+
var _fileSaver = _interopRequireDefault(require('file-saver'));
|
|
28
|
+
function _interopRequireDefault(obj) {
|
|
29
|
+
return obj && obj.__esModule ? obj : { default: obj };
|
|
30
|
+
}
|
|
31
|
+
function _getRequireWildcardCache(nodeInterop) {
|
|
32
|
+
if (typeof WeakMap !== 'function') return null;
|
|
33
|
+
var cacheBabelInterop = new WeakMap();
|
|
34
|
+
var cacheNodeInterop = new WeakMap();
|
|
35
|
+
return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) {
|
|
36
|
+
return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
|
|
37
|
+
})(nodeInterop);
|
|
38
|
+
}
|
|
39
|
+
function _interopRequireWildcard(obj, nodeInterop) {
|
|
40
|
+
if (!nodeInterop && obj && obj.__esModule) {
|
|
41
|
+
return obj;
|
|
42
|
+
}
|
|
43
|
+
if (obj === null || (_typeof(obj) !== 'object' && typeof obj !== 'function')) {
|
|
44
|
+
return { default: obj };
|
|
45
|
+
}
|
|
46
|
+
var cache = _getRequireWildcardCache(nodeInterop);
|
|
47
|
+
if (cache && cache.has(obj)) {
|
|
48
|
+
return cache.get(obj);
|
|
49
|
+
}
|
|
50
|
+
var newObj = {};
|
|
51
|
+
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
|
52
|
+
for (var key in obj) {
|
|
53
|
+
if (key !== 'default' && Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
54
|
+
var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
|
|
55
|
+
if (desc && (desc.get || desc.set)) {
|
|
56
|
+
Object.defineProperty(newObj, key, desc);
|
|
57
|
+
} else {
|
|
58
|
+
newObj[key] = obj[key];
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
newObj.default = obj;
|
|
63
|
+
if (cache) {
|
|
64
|
+
cache.set(obj, newObj);
|
|
65
|
+
}
|
|
66
|
+
return newObj;
|
|
67
|
+
}
|
|
68
|
+
function _toConsumableArray(arr) {
|
|
69
|
+
return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
|
|
70
|
+
}
|
|
71
|
+
function _nonIterableSpread() {
|
|
72
|
+
throw new TypeError(
|
|
73
|
+
'Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.'
|
|
74
|
+
);
|
|
75
|
+
}
|
|
76
|
+
function _iterableToArray(iter) {
|
|
77
|
+
if ((typeof Symbol !== 'undefined' && iter[Symbol.iterator] != null) || iter['@@iterator'] != null) return Array.from(iter);
|
|
78
|
+
}
|
|
79
|
+
function _arrayWithoutHoles(arr) {
|
|
80
|
+
if (Array.isArray(arr)) return _arrayLikeToArray(arr);
|
|
81
|
+
}
|
|
82
|
+
function _slicedToArray(arr, i) {
|
|
83
|
+
return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
|
|
84
|
+
}
|
|
85
|
+
function _nonIterableRest() {
|
|
86
|
+
throw new TypeError(
|
|
87
|
+
'Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.'
|
|
88
|
+
);
|
|
89
|
+
}
|
|
90
|
+
function _unsupportedIterableToArray(o, minLen) {
|
|
91
|
+
if (!o) return;
|
|
92
|
+
if (typeof o === 'string') return _arrayLikeToArray(o, minLen);
|
|
93
|
+
var n = Object.prototype.toString.call(o).slice(8, -1);
|
|
94
|
+
if (n === 'Object' && o.constructor) n = o.constructor.name;
|
|
95
|
+
if (n === 'Map' || n === 'Set') return Array.from(o);
|
|
96
|
+
if (n === 'Arguments' || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
|
|
97
|
+
}
|
|
98
|
+
function _arrayLikeToArray(arr, len) {
|
|
99
|
+
if (len == null || len > arr.length) len = arr.length;
|
|
100
|
+
for (var i = 0, arr2 = new Array(len); i < len; i++) {
|
|
101
|
+
arr2[i] = arr[i];
|
|
102
|
+
}
|
|
103
|
+
return arr2;
|
|
104
|
+
}
|
|
105
|
+
function _iterableToArrayLimit(arr, i) {
|
|
106
|
+
var _i = null == arr ? null : ('undefined' != typeof Symbol && arr[Symbol.iterator]) || arr['@@iterator'];
|
|
107
|
+
if (null != _i) {
|
|
108
|
+
var _s,
|
|
109
|
+
_e,
|
|
110
|
+
_x,
|
|
111
|
+
_r,
|
|
112
|
+
_arr = [],
|
|
113
|
+
_n = !0,
|
|
114
|
+
_d = !1;
|
|
115
|
+
try {
|
|
116
|
+
if (((_x = (_i = _i.call(arr)).next), 0 === i)) {
|
|
117
|
+
if (Object(_i) !== _i) return;
|
|
118
|
+
_n = !1;
|
|
119
|
+
} else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0) {}
|
|
120
|
+
} catch (err) {
|
|
121
|
+
(_d = !0), (_e = err);
|
|
122
|
+
} finally {
|
|
123
|
+
try {
|
|
124
|
+
if (!_n && null != _i.return && ((_r = _i.return()), Object(_r) !== _r)) return;
|
|
125
|
+
} finally {
|
|
126
|
+
if (_d) throw _e;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
return _arr;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
function _arrayWithHoles(arr) {
|
|
133
|
+
if (Array.isArray(arr)) return arr;
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* devextreme pivotgrid Configrations 중 사용 불가 항목 : id, width, height, showColumnGrandTotals, showColumnTotals, showRowGrandTotals, FieldChooser
|
|
137
|
+
* devextreme pivotgrid Configrations 중 사용 방법 변경 항목 : stateStoring, Export
|
|
138
|
+
* onExported, onFileSaving 이벤트 사용하지 않음.
|
|
139
|
+
*/
|
|
140
|
+
/**
|
|
141
|
+
* todoList:
|
|
142
|
+
* 2) columIndex 초기화 기능이 있어야 함(column 개수 변할 때)
|
|
143
|
+
* 3) 헤더에 테이블 삽입되면서 그리드 크기가 늘어남. height에 그리드 크기 늘어난 만큼 반영되어야 함.
|
|
144
|
+
*/
|
|
145
|
+
|
|
28
146
|
var grandTotalCssNm = 'data-grand-total';
|
|
29
|
-
var DxPlanitTreeGrid = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
147
|
+
var DxPlanitTreeGrid = /*#__PURE__*/ (0, _react.forwardRef)(function (props, ref) {
|
|
30
148
|
var _props$id = props.id,
|
|
31
149
|
id = _props$id === void 0 ? 'dx-planit-vera-pivotgrid-id' : _props$id,
|
|
32
150
|
groupField = props.groupField,
|
|
@@ -101,39 +219,49 @@ var DxPlanitTreeGrid = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref)
|
|
|
101
219
|
var excelBorder = {
|
|
102
220
|
style: 'thin',
|
|
103
221
|
color: {
|
|
104
|
-
argb: 'FF7E7E7E'
|
|
105
|
-
}
|
|
222
|
+
argb: 'FF7E7E7E',
|
|
223
|
+
},
|
|
106
224
|
};
|
|
107
225
|
(0, _react.useImperativeHandle)(ref, function () {
|
|
108
226
|
return {
|
|
109
|
-
exportToExcel: exportToExcel
|
|
227
|
+
exportToExcel: exportToExcel,
|
|
110
228
|
};
|
|
111
229
|
});
|
|
112
230
|
|
|
113
|
-
/**
|
|
114
|
-
* 그리드 사이즈 재조정
|
|
115
|
-
* @returns 그리드 사이즈
|
|
231
|
+
/**
|
|
232
|
+
* 그리드 사이즈 재조정
|
|
233
|
+
* @returns 그리드 사이즈
|
|
116
234
|
*/
|
|
117
235
|
var getGridSize = function getGridSize() {
|
|
118
236
|
var _wrapper$clientWidth;
|
|
119
237
|
var wrapper = document.querySelector('.diag-table-wrapper');
|
|
120
238
|
var gap = 10;
|
|
121
|
-
setWidth(
|
|
239
|
+
setWidth(
|
|
240
|
+
(_wrapper$clientWidth = wrapper === null || wrapper === void 0 ? void 0 : wrapper.clientWidth) !== null &&
|
|
241
|
+
_wrapper$clientWidth !== void 0
|
|
242
|
+
? _wrapper$clientWidth
|
|
243
|
+
: 0
|
|
244
|
+
);
|
|
122
245
|
setHeight(wrapper ? wrapper.clientHeight - gap : 0);
|
|
123
246
|
window.addEventListener('resize', function () {
|
|
124
247
|
var _wrapper$clientWidth2;
|
|
125
|
-
setWidth(
|
|
248
|
+
setWidth(
|
|
249
|
+
(_wrapper$clientWidth2 = wrapper === null || wrapper === void 0 ? void 0 : wrapper.clientWidth) !== null &&
|
|
250
|
+
_wrapper$clientWidth2 !== void 0
|
|
251
|
+
? _wrapper$clientWidth2
|
|
252
|
+
: 0
|
|
253
|
+
);
|
|
126
254
|
setHeight(wrapper ? wrapper.clientHeight - gap : 0);
|
|
127
255
|
});
|
|
128
256
|
return {
|
|
129
257
|
width: width,
|
|
130
|
-
height: height
|
|
258
|
+
height: height,
|
|
131
259
|
};
|
|
132
260
|
};
|
|
133
261
|
|
|
134
|
-
/**
|
|
135
|
-
* 'Total' 을 한글로 변경
|
|
136
|
-
* @param e devextreme CellPreparedEvent
|
|
262
|
+
/**
|
|
263
|
+
* 'Total' 을 한글로 변경
|
|
264
|
+
* @param e devextreme CellPreparedEvent
|
|
137
265
|
*/
|
|
138
266
|
var changeTotalText = function changeTotalText(e) {
|
|
139
267
|
var _e$cell;
|
|
@@ -143,13 +271,13 @@ var DxPlanitTreeGrid = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref)
|
|
|
143
271
|
if (((_e$cell = e.cell) === null || _e$cell === void 0 ? void 0 : _e$cell.type) === 'T') {
|
|
144
272
|
var _e$cell$text;
|
|
145
273
|
var text = (_e$cell$text = e.cell.text) === null || _e$cell$text === void 0 ? void 0 : _e$cell$text.replace('Total', '합계');
|
|
146
|
-
e.cellElement.innerHTML =
|
|
274
|
+
e.cellElement.innerHTML = '<span>'.concat(text, '</span>');
|
|
147
275
|
}
|
|
148
276
|
};
|
|
149
277
|
|
|
150
|
-
/**
|
|
151
|
-
* null값을 하이픈으로 모두 변경
|
|
152
|
-
* @param e devextreme CellPreparedEvent
|
|
278
|
+
/**
|
|
279
|
+
* null값을 하이픈으로 모두 변경
|
|
280
|
+
* @param e devextreme CellPreparedEvent
|
|
153
281
|
*/
|
|
154
282
|
var changeNullToHipen = function changeNullToHipen(e) {
|
|
155
283
|
var _e$cell2;
|
|
@@ -161,24 +289,30 @@ var DxPlanitTreeGrid = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref)
|
|
|
161
289
|
}
|
|
162
290
|
};
|
|
163
291
|
|
|
164
|
-
/**
|
|
165
|
-
* '0', '0.0%' 를 하이픈으로 모두 변경
|
|
166
|
-
* @param e devextreme CellPreparedEvent
|
|
292
|
+
/**
|
|
293
|
+
* '0', '0.0%' 를 하이픈으로 모두 변경
|
|
294
|
+
* @param e devextreme CellPreparedEvent
|
|
167
295
|
*/
|
|
168
296
|
var changeZeroToHipen = function changeZeroToHipen(e) {
|
|
169
297
|
var _e$cell3, _e$cell4, _e$cell5;
|
|
170
298
|
if (!convertZeroToHipen) {
|
|
171
299
|
return;
|
|
172
300
|
}
|
|
173
|
-
if (
|
|
301
|
+
if (
|
|
302
|
+
e.area === 'data' &&
|
|
303
|
+
(((_e$cell3 = e.cell) === null || _e$cell3 === void 0 ? void 0 : _e$cell3.text) === '0' ||
|
|
304
|
+
((_e$cell4 = e.cell) === null || _e$cell4 === void 0 ? void 0 : _e$cell4.text) === '0.0%' ||
|
|
305
|
+
((_e$cell5 = e.cell) === null || _e$cell5 === void 0 ? void 0 : _e$cell5.text) === '') &&
|
|
306
|
+
e.cellElement
|
|
307
|
+
) {
|
|
174
308
|
e.cellElement.innerHTML = '<span class="text-color">-</span>';
|
|
175
309
|
}
|
|
176
310
|
};
|
|
177
311
|
|
|
178
|
-
/**
|
|
179
|
-
* 테이블 헤더에 colspan, rowspan 한 HTMLElement 정보 반환
|
|
180
|
-
* @param groupField 사용자가 작성한 그룹 정보
|
|
181
|
-
* @return
|
|
312
|
+
/**
|
|
313
|
+
* 테이블 헤더에 colspan, rowspan 한 HTMLElement 정보 반환
|
|
314
|
+
* @param groupField 사용자가 작성한 그룹 정보
|
|
315
|
+
* @return
|
|
182
316
|
*/
|
|
183
317
|
var makeColspan = function makeColspan(group, index, isLast) {
|
|
184
318
|
var _group$html;
|
|
@@ -193,31 +327,33 @@ var DxPlanitTreeGrid = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref)
|
|
|
193
327
|
} else if (!isLast && index === 0) {
|
|
194
328
|
td.setAttribute('style', 'border-bottom: 0');
|
|
195
329
|
}
|
|
196
|
-
td.innerHTML =
|
|
330
|
+
td.innerHTML = '<span>'.concat(text, '</span>');
|
|
197
331
|
return td;
|
|
198
332
|
};
|
|
199
333
|
|
|
200
|
-
/**
|
|
201
|
-
* 그룹 필드 데이터 유효성 검증용 데이터 생성
|
|
202
|
-
* @param groupField
|
|
203
|
-
* @returns
|
|
334
|
+
/**
|
|
335
|
+
* 그룹 필드 데이터 유효성 검증용 데이터 생성
|
|
336
|
+
* @param groupField
|
|
337
|
+
* @returns
|
|
204
338
|
*/
|
|
205
339
|
var makeCheckGroupData = function makeCheckGroupData(groupField) {
|
|
206
340
|
var data = {};
|
|
207
|
-
groupField === null || groupField === void 0
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
341
|
+
groupField === null || groupField === void 0
|
|
342
|
+
? void 0
|
|
343
|
+
: groupField.forEach(function (group) {
|
|
344
|
+
if (data[group.depth]) {
|
|
345
|
+
data[group.depth] += group.colspan;
|
|
346
|
+
} else {
|
|
347
|
+
data[group.depth] = group.colspan;
|
|
348
|
+
}
|
|
349
|
+
});
|
|
214
350
|
return data;
|
|
215
351
|
};
|
|
216
352
|
|
|
217
|
-
/**
|
|
218
|
-
* GroupField 데이터 검증
|
|
219
|
-
* @param 사용자가 설정한 그룹 필드 정보
|
|
220
|
-
* @returns 데이터 검증 결과
|
|
353
|
+
/**
|
|
354
|
+
* GroupField 데이터 검증
|
|
355
|
+
* @param 사용자가 설정한 그룹 필드 정보
|
|
356
|
+
* @returns 데이터 검증 결과
|
|
221
357
|
*/
|
|
222
358
|
var isCheckGroupField = function isCheckGroupField(groupField) {
|
|
223
359
|
var map = makeCheckGroupData(groupField);
|
|
@@ -230,21 +366,25 @@ var DxPlanitTreeGrid = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref)
|
|
|
230
366
|
return true;
|
|
231
367
|
};
|
|
232
368
|
|
|
233
|
-
/**
|
|
234
|
-
* Grand Total 셀 정보 저장
|
|
235
|
-
* @param e
|
|
369
|
+
/**
|
|
370
|
+
* Grand Total 셀 정보 저장
|
|
371
|
+
* @param e
|
|
236
372
|
*/
|
|
237
373
|
var setTotalElementInfo = function setTotalElementInfo(e) {
|
|
238
374
|
var _e$cell6, _e$cell7, _e$cellElement;
|
|
239
|
-
if (
|
|
375
|
+
if (
|
|
376
|
+
!(groupField !== null && groupField !== void 0 && groupField.length) ||
|
|
377
|
+
((_e$cell6 = e.cell) === null || _e$cell6 === void 0 ? void 0 : _e$cell6.type) !== 'GT' ||
|
|
378
|
+
((_e$cell7 = e.cell) === null || _e$cell7 === void 0 ? void 0 : _e$cell7.text) !== 'Grand Total'
|
|
379
|
+
) {
|
|
240
380
|
return;
|
|
241
381
|
}
|
|
242
382
|
(_e$cellElement = e.cellElement) === null || _e$cellElement === void 0 ? void 0 : _e$cellElement.classList.add(grandTotalCssNm);
|
|
243
383
|
};
|
|
244
384
|
|
|
245
|
-
/**
|
|
246
|
-
* cell의 columnIndex 최대값 저장
|
|
247
|
-
* @param e
|
|
385
|
+
/**
|
|
386
|
+
* cell의 columnIndex 최대값 저장
|
|
387
|
+
* @param e
|
|
248
388
|
*/
|
|
249
389
|
var setMaxColumIndex = function setMaxColumIndex(e) {
|
|
250
390
|
if (!e.columnIndex) {
|
|
@@ -255,17 +395,19 @@ var DxPlanitTreeGrid = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref)
|
|
|
255
395
|
}
|
|
256
396
|
};
|
|
257
397
|
|
|
258
|
-
/**
|
|
259
|
-
* groupField depth의 유니크한 배열 구하기
|
|
260
|
-
* @param group
|
|
261
|
-
* @param arr
|
|
262
|
-
* @returns
|
|
398
|
+
/**
|
|
399
|
+
* groupField depth의 유니크한 배열 구하기
|
|
400
|
+
* @param group
|
|
401
|
+
* @param arr
|
|
402
|
+
* @returns
|
|
263
403
|
*/
|
|
264
404
|
var getGroupDepth = function getGroupDepth(group, arr) {
|
|
265
405
|
var groupData = group.slice();
|
|
266
|
-
var set = new Set(
|
|
267
|
-
|
|
268
|
-
|
|
406
|
+
var set = new Set(
|
|
407
|
+
groupData.map(function (group) {
|
|
408
|
+
return group.depth;
|
|
409
|
+
})
|
|
410
|
+
);
|
|
269
411
|
return Array.from(set).sort(function compare(a, b) {
|
|
270
412
|
if (a > b) {
|
|
271
413
|
return arr === 'asc' ? -1 : 1;
|
|
@@ -277,11 +419,11 @@ var DxPlanitTreeGrid = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref)
|
|
|
277
419
|
});
|
|
278
420
|
};
|
|
279
421
|
|
|
280
|
-
/**
|
|
281
|
-
* 현재 depth에 맞는 그룹 필드 정보 반환
|
|
282
|
-
* @param group
|
|
283
|
-
* @param depth
|
|
284
|
-
* @returns
|
|
422
|
+
/**
|
|
423
|
+
* 현재 depth에 맞는 그룹 필드 정보 반환
|
|
424
|
+
* @param group
|
|
425
|
+
* @param depth
|
|
426
|
+
* @returns
|
|
285
427
|
*/
|
|
286
428
|
var getCurrentGroup = function getCurrentGroup(group, depth) {
|
|
287
429
|
return group.filter(function (gr) {
|
|
@@ -289,8 +431,8 @@ var DxPlanitTreeGrid = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref)
|
|
|
289
431
|
});
|
|
290
432
|
};
|
|
291
433
|
|
|
292
|
-
/**
|
|
293
|
-
* 테이블 헤더(DOM)에 colspan 적용된 테이블 삽입
|
|
434
|
+
/**
|
|
435
|
+
* 테이블 헤더(DOM)에 colspan 적용된 테이블 삽입
|
|
294
436
|
*/
|
|
295
437
|
var insertRowHeaderGroup = function insertRowHeaderGroup() {
|
|
296
438
|
var _thead$previousSiblin;
|
|
@@ -310,7 +452,10 @@ var DxPlanitTreeGrid = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref)
|
|
|
310
452
|
}
|
|
311
453
|
totalElement.innerHTML = '';
|
|
312
454
|
totalElement.setAttribute('style', 'padding: 0; border: 0');
|
|
313
|
-
var colgroup =
|
|
455
|
+
var colgroup =
|
|
456
|
+
(_thead$previousSiblin = thead.previousSibling) === null || _thead$previousSiblin === void 0
|
|
457
|
+
? void 0
|
|
458
|
+
: _thead$previousSiblin.cloneNode(true);
|
|
314
459
|
var groupData = groupField.slice();
|
|
315
460
|
var depth = getGroupDepth(groupData, 'asc');
|
|
316
461
|
var table = document.createElement('table');
|
|
@@ -327,10 +472,10 @@ var DxPlanitTreeGrid = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref)
|
|
|
327
472
|
totalElement.appendChild(table);
|
|
328
473
|
};
|
|
329
474
|
|
|
330
|
-
/**
|
|
331
|
-
* Devextreme의 dateController columnInfo에 그룹 정보 삽입
|
|
332
|
-
* @param group
|
|
333
|
-
* @returns
|
|
475
|
+
/**
|
|
476
|
+
* Devextreme의 dateController columnInfo에 그룹 정보 삽입
|
|
477
|
+
* @param group
|
|
478
|
+
* @returns
|
|
334
479
|
*/
|
|
335
480
|
var makeDataControllerColumnGroup = function makeDataControllerColumnGroup(group) {
|
|
336
481
|
var groupData = group.slice();
|
|
@@ -341,21 +486,21 @@ var DxPlanitTreeGrid = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref)
|
|
|
341
486
|
return {
|
|
342
487
|
colspan: group.colspan,
|
|
343
488
|
text: group.groupCaption,
|
|
344
|
-
type: 'GT'
|
|
489
|
+
type: 'GT',
|
|
345
490
|
};
|
|
346
491
|
});
|
|
347
492
|
});
|
|
348
493
|
};
|
|
349
494
|
|
|
350
|
-
/**
|
|
351
|
-
* 사용자가 입력한 컬러 조건을 { standard: string; condition: string } 형식으로 변경 반환
|
|
352
|
-
* @param condition 사용자 입력 컬러 조건식 ex) '>= 100'
|
|
353
|
-
* @returns
|
|
495
|
+
/**
|
|
496
|
+
* 사용자가 입력한 컬러 조건을 { standard: string; condition: string } 형식으로 변경 반환
|
|
497
|
+
* @param condition 사용자 입력 컬러 조건식 ex) '>= 100'
|
|
498
|
+
* @returns
|
|
354
499
|
*/
|
|
355
500
|
var makeSplitCondtion = function makeSplitCondtion(condition) {
|
|
356
501
|
var newCondition = {
|
|
357
502
|
standard: '',
|
|
358
|
-
condition: ''
|
|
503
|
+
condition: '',
|
|
359
504
|
};
|
|
360
505
|
_toConsumableArray(condition).forEach(function (cond) {
|
|
361
506
|
if (Number.isNaN(parseFloat(cond))) {
|
|
@@ -367,10 +512,10 @@ var DxPlanitTreeGrid = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref)
|
|
|
367
512
|
return newCondition;
|
|
368
513
|
};
|
|
369
514
|
|
|
370
|
-
/**
|
|
371
|
-
* 데이터에 색상 적용
|
|
372
|
-
* @param e onCellPrepared 이벤트
|
|
373
|
-
* @returns
|
|
515
|
+
/**
|
|
516
|
+
* 데이터에 색상 적용
|
|
517
|
+
* @param e onCellPrepared 이벤트
|
|
518
|
+
* @returns
|
|
374
519
|
*/
|
|
375
520
|
var makeColorAtPercent = function makeColorAtPercent(e) {
|
|
376
521
|
if (!dataColor || !e.cellElement) {
|
|
@@ -381,7 +526,14 @@ var DxPlanitTreeGrid = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref)
|
|
|
381
526
|
if (e.cell.value === null) {
|
|
382
527
|
return;
|
|
383
528
|
}
|
|
384
|
-
if (
|
|
529
|
+
if (
|
|
530
|
+
((_e$cell8 = e.cell) === null || _e$cell8 === void 0
|
|
531
|
+
? void 0
|
|
532
|
+
: (_e$cell8$format = _e$cell8.format) === null || _e$cell8$format === void 0
|
|
533
|
+
? void 0
|
|
534
|
+
: _e$cell8$format.type) === color.format &&
|
|
535
|
+
!Number.isNaN(e.cell.value)
|
|
536
|
+
) {
|
|
385
537
|
var standardData = makeSplitCondtion(color.condition.replace(/(\s*)/g, ''));
|
|
386
538
|
var rate = color.format === 'percent' ? 0.01 : 1;
|
|
387
539
|
var condition = false;
|
|
@@ -406,9 +558,9 @@ var DxPlanitTreeGrid = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref)
|
|
|
406
558
|
});
|
|
407
559
|
};
|
|
408
560
|
|
|
409
|
-
/**
|
|
410
|
-
* 그리드 데이터 정합성 체크. 데이터 잘못되어 있으면 에러 발생
|
|
411
|
-
* @param dataSource
|
|
561
|
+
/**
|
|
562
|
+
* 그리드 데이터 정합성 체크. 데이터 잘못되어 있으면 에러 발생
|
|
563
|
+
* @param dataSource
|
|
412
564
|
*/
|
|
413
565
|
var checkDataSource = function checkDataSource(dataSource) {
|
|
414
566
|
var isColumns = dataSource._fields.findIndex(function (field) {
|
|
@@ -428,28 +580,31 @@ var DxPlanitTreeGrid = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref)
|
|
|
428
580
|
}
|
|
429
581
|
};
|
|
430
582
|
|
|
431
|
-
/**
|
|
432
|
-
* 그리드 펼침 정보 세션스토리지 리셋
|
|
583
|
+
/**
|
|
584
|
+
* 그리드 펼침 정보 세션스토리지 리셋
|
|
433
585
|
*/
|
|
434
586
|
var resetSession = function resetSession() {
|
|
435
587
|
sessionStorage.removeItem('dx-vera-pivotgrid-storing');
|
|
436
588
|
};
|
|
437
589
|
|
|
438
|
-
/**
|
|
439
|
-
* 엑셀 export 명령
|
|
440
|
-
* @param fileName 저장하고자 하는 엑셀파일명
|
|
590
|
+
/**
|
|
591
|
+
* 엑셀 export 명령
|
|
592
|
+
* @param fileName 저장하고자 하는 엑셀파일명
|
|
441
593
|
*/
|
|
442
594
|
var exportToExcel = function exportToExcel(fileName) {
|
|
443
595
|
setTimeout(function () {
|
|
444
596
|
var _$tableRef$current;
|
|
445
|
-
return exportToExcelAction(
|
|
597
|
+
return exportToExcelAction(
|
|
598
|
+
(_$tableRef$current = $tableRef.current) === null || _$tableRef$current === void 0 ? void 0 : _$tableRef$current.instance,
|
|
599
|
+
fileName
|
|
600
|
+
);
|
|
446
601
|
});
|
|
447
602
|
};
|
|
448
603
|
|
|
449
|
-
/**
|
|
450
|
-
* devextreme component 정보의 dataController의 columnInfo에 사용자가 설정한 groupFIled 정보 병합
|
|
451
|
-
* @param component devextreme component
|
|
452
|
-
* @returns devextreme component
|
|
604
|
+
/**
|
|
605
|
+
* devextreme component 정보의 dataController의 columnInfo에 사용자가 설정한 groupFIled 정보 병합
|
|
606
|
+
* @param component devextreme component
|
|
607
|
+
* @returns devextreme component
|
|
453
608
|
*/
|
|
454
609
|
var convertDataControllerColumnsInfo = function convertDataControllerColumnsInfo(component) {
|
|
455
610
|
var arr = [];
|
|
@@ -465,9 +620,9 @@ var DxPlanitTreeGrid = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref)
|
|
|
465
620
|
return component;
|
|
466
621
|
};
|
|
467
622
|
|
|
468
|
-
/**
|
|
469
|
-
* 엑셀 export
|
|
470
|
-
* @param e
|
|
623
|
+
/**
|
|
624
|
+
* 엑셀 export
|
|
625
|
+
* @param e
|
|
471
626
|
*/
|
|
472
627
|
var exportToExcelAction = function exportToExcelAction(e, fileName) {
|
|
473
628
|
var newComponent = convertDataControllerColumnsInfo(e);
|
|
@@ -483,22 +638,25 @@ var DxPlanitTreeGrid = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref)
|
|
|
483
638
|
bottom: borderStyle,
|
|
484
639
|
left: borderStyle,
|
|
485
640
|
right: borderStyle,
|
|
486
|
-
top: borderStyle
|
|
641
|
+
top: borderStyle,
|
|
487
642
|
};
|
|
488
|
-
}
|
|
643
|
+
},
|
|
489
644
|
}).then(function () {
|
|
490
645
|
workbook.xlsx.writeBuffer().then(function (buffer) {
|
|
491
|
-
(0, _fileSaver.default)(
|
|
492
|
-
|
|
493
|
-
|
|
646
|
+
(0, _fileSaver.default)(
|
|
647
|
+
new Blob([buffer], {
|
|
648
|
+
type: 'application/octet-stream',
|
|
649
|
+
}),
|
|
650
|
+
fileName + '.xlsx'
|
|
651
|
+
);
|
|
494
652
|
});
|
|
495
653
|
});
|
|
496
654
|
e.cancel = true;
|
|
497
655
|
};
|
|
498
656
|
|
|
499
|
-
/**
|
|
500
|
-
* devextreme CellPreparedEvent 이벤트 실행
|
|
501
|
-
* @param e
|
|
657
|
+
/**
|
|
658
|
+
* devextreme CellPreparedEvent 이벤트 실행
|
|
659
|
+
* @param e
|
|
502
660
|
*/
|
|
503
661
|
var onCellPreparedChild = function onCellPreparedChild(e) {
|
|
504
662
|
makeColorAtPercent(e);
|
|
@@ -510,8 +668,8 @@ var DxPlanitTreeGrid = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref)
|
|
|
510
668
|
return onCellPrepared ? onCellPrepared(e) : undefined;
|
|
511
669
|
};
|
|
512
670
|
|
|
513
|
-
/**
|
|
514
|
-
* devextreme Raise Event
|
|
671
|
+
/**
|
|
672
|
+
* devextreme Raise Event
|
|
515
673
|
*/
|
|
516
674
|
var onContentReadyChild = function onContentReadyChild(e) {
|
|
517
675
|
setTimeout(function () {
|
|
@@ -538,57 +696,70 @@ var DxPlanitTreeGrid = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref)
|
|
|
538
696
|
var onOptionChangedChild = function onOptionChangedChild(e) {
|
|
539
697
|
return onOptionChanged ? onOptionChanged(e) : undefined;
|
|
540
698
|
};
|
|
541
|
-
(0, _react.useEffect)(
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
699
|
+
(0, _react.useEffect)(
|
|
700
|
+
function () {
|
|
701
|
+
setGridDataSource(dataSource);
|
|
702
|
+
checkDataSource(dataSource);
|
|
703
|
+
resetSession();
|
|
704
|
+
},
|
|
705
|
+
[dataSource]
|
|
706
|
+
);
|
|
707
|
+
return /*#__PURE__*/ _react.createElement(
|
|
708
|
+
'div',
|
|
709
|
+
null,
|
|
710
|
+
/*#__PURE__*/ _react.createElement(_loadPanel.LoadPanel, {
|
|
711
|
+
position: {
|
|
712
|
+
of: id,
|
|
713
|
+
},
|
|
714
|
+
}),
|
|
715
|
+
/*#__PURE__*/ _react.createElement(
|
|
716
|
+
_pivotGrid.default,
|
|
717
|
+
{
|
|
718
|
+
id: id,
|
|
719
|
+
ref: $tableRef,
|
|
720
|
+
dataSource: gridDataSource,
|
|
721
|
+
showColumnTotals: false,
|
|
722
|
+
showColumnGrandTotals: true,
|
|
723
|
+
showRowGrandTotals: false,
|
|
724
|
+
width: width,
|
|
725
|
+
height: height,
|
|
726
|
+
allowExpandAll: allowExpandAll,
|
|
727
|
+
allowFiltering: allowFiltering,
|
|
728
|
+
allowSorting: allowSorting,
|
|
729
|
+
allowSortingBySummary: allowSortingBySummary,
|
|
730
|
+
dataFieldArea: dataFieldArea,
|
|
731
|
+
disabled: disabled,
|
|
732
|
+
elementAttr: elementAttr,
|
|
733
|
+
encodeHtml: encodeHtml,
|
|
734
|
+
hideEmptySummaryCells: hideEmptySummaryCells,
|
|
735
|
+
hint: hint,
|
|
736
|
+
rowHeaderLayout: rowHeaderLayout,
|
|
737
|
+
rtlEnabled: rtlEnabled,
|
|
738
|
+
showBorders: showBorders,
|
|
739
|
+
showRowTotals: showRowTotals,
|
|
740
|
+
showTotalsPrior: showTotalsPrior,
|
|
741
|
+
tabIndex: tabIndex,
|
|
742
|
+
visible: visible,
|
|
743
|
+
wordWrapEnabled: wordWrapEnabled,
|
|
744
|
+
onCellClick: onCellClickChild,
|
|
745
|
+
onContentReady: onContentReadyChild,
|
|
746
|
+
onCellPrepared: onCellPreparedChild,
|
|
747
|
+
onContextMenuPreparing: onContextMenuPreparingChild,
|
|
748
|
+
onDisposing: onDisposingChild,
|
|
749
|
+
onExporting: onExportingChild,
|
|
750
|
+
onInitialized: onInitializedChild,
|
|
751
|
+
onOptionChanged: onOptionChangedChild,
|
|
752
|
+
},
|
|
753
|
+
/*#__PURE__*/ _react.createElement(_dataGrid.StateStoring, {
|
|
754
|
+
enabled: stateStoringKey === null || stateStoringKey === void 0 ? void 0 : stateStoringKey.length,
|
|
755
|
+
type: 'sessionStorage',
|
|
756
|
+
storageKey: stateStoringKey,
|
|
757
|
+
}),
|
|
758
|
+
/*#__PURE__*/ _react.createElement(_pivotGrid.FieldChooser, {
|
|
759
|
+
enabled: false,
|
|
760
|
+
})
|
|
761
|
+
)
|
|
762
|
+
);
|
|
592
763
|
});
|
|
593
764
|
var _default = DxPlanitTreeGrid;
|
|
594
|
-
exports.default = _default;
|
|
765
|
+
exports.default = _default;
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
|
+
import DevExpress from 'devextreme';
|
|
2
|
+
import { Format } from 'devextreme/localization';
|
|
3
|
+
|
|
1
4
|
export declare const DxPlanitTreeGrid;
|
|
2
5
|
export default DxPlanitTreeGrid;
|
|
3
6
|
|
|
4
|
-
export declare module
|
|
7
|
+
export declare module TypeDxPlanit {
|
|
5
8
|
export interface IGroupField {
|
|
6
9
|
groupCaption: string;
|
|
7
10
|
groupName?: string;
|
|
@@ -10,6 +13,18 @@ export declare module DxPlanit {
|
|
|
10
13
|
colspan: number;
|
|
11
14
|
}
|
|
12
15
|
|
|
16
|
+
export interface ColumnField {
|
|
17
|
+
colspan: number;
|
|
18
|
+
text: string;
|
|
19
|
+
type: string;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export interface IColorInfo {
|
|
23
|
+
format: Format;
|
|
24
|
+
color: string;
|
|
25
|
+
condition: string;
|
|
26
|
+
}
|
|
27
|
+
|
|
13
28
|
export interface Props extends DevExpress.ui.dxPivotGrid.Properties {
|
|
14
29
|
id?: string;
|
|
15
30
|
dataSource?: any;
|
package/package.json
CHANGED
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "devextreme-planit-treegrid-react",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.3",
|
|
4
4
|
"description": "Devextreme의 DxPivotGrid를 Tree Grid처럼 보여주는 Wrapper입니다.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
7
|
+
"files": [
|
|
8
|
+
"dist",
|
|
9
|
+
"README.md"
|
|
10
|
+
],
|
|
7
11
|
"repository": "https://github.com/hsquare-analytics/ui-tree-grid.git",
|
|
8
12
|
"author": "bcahn <antonio1926@gmail.com>",
|
|
9
13
|
"license": "MIT",
|
package/.idea/modules.xml
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
-
<project version="4">
|
|
3
|
-
<component name="ProjectModuleManager">
|
|
4
|
-
<modules>
|
|
5
|
-
<module fileurl="file://$PROJECT_DIR$/.idea/ui-tree-grid.iml" filepath="$PROJECT_DIR$/.idea/ui-tree-grid.iml" />
|
|
6
|
-
</modules>
|
|
7
|
-
</component>
|
|
8
|
-
</project>
|
package/.idea/ui-tree-grid.iml
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
-
<module type="JAVA_MODULE" version="4">
|
|
3
|
-
<component name="NewModuleRootManager" inherit-compiler-output="true">
|
|
4
|
-
<exclude-output />
|
|
5
|
-
<content url="file://$MODULE_DIR$" />
|
|
6
|
-
<orderEntry type="inheritedJdk" />
|
|
7
|
-
<orderEntry type="sourceFolder" forTests="false" />
|
|
8
|
-
</component>
|
|
9
|
-
</module>
|
package/.idea/vcs.xml
DELETED
package/.prettierrc
DELETED
package/.vscode/settings.json
DELETED
package/babel.config.js
DELETED
package/public/favicon.ico
DELETED
|
Binary file
|
package/public/index.html
DELETED
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html lang="en">
|
|
3
|
-
<head>
|
|
4
|
-
<meta charset="utf-8" />
|
|
5
|
-
<link rel="icon" href="%PUBLIC_URL%/favicon.ico" />
|
|
6
|
-
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
7
|
-
<meta name="theme-color" content="#000000" />
|
|
8
|
-
<meta
|
|
9
|
-
name="description"
|
|
10
|
-
content="Web site created using create-react-app"
|
|
11
|
-
/>
|
|
12
|
-
<link rel="apple-touch-icon" href="%PUBLIC_URL%/logo192.png" />
|
|
13
|
-
<!--
|
|
14
|
-
manifest.json provides metadata used when your web app is installed on a
|
|
15
|
-
user's mobile device or desktop. See https://developers.google.com/web/fundamentals/web-app-manifest/
|
|
16
|
-
-->
|
|
17
|
-
<link rel="manifest" href="%PUBLIC_URL%/manifest.json" />
|
|
18
|
-
<!--
|
|
19
|
-
Notice the use of %PUBLIC_URL% in the tags above.
|
|
20
|
-
It will be replaced with the URL of the `public` folder during the build.
|
|
21
|
-
Only files inside the `public` folder can be referenced from the HTML.
|
|
22
|
-
|
|
23
|
-
Unlike "/favicon.ico" or "favicon.ico", "%PUBLIC_URL%/favicon.ico" will
|
|
24
|
-
work correctly both with client-side routing and a non-root public URL.
|
|
25
|
-
Learn how to configure a non-root public URL by running `npm run build`.
|
|
26
|
-
-->
|
|
27
|
-
<title>React App</title>
|
|
28
|
-
</head>
|
|
29
|
-
<body>
|
|
30
|
-
<noscript>You need to enable JavaScript to run this app.</noscript>
|
|
31
|
-
<div id="root"></div>
|
|
32
|
-
<!--
|
|
33
|
-
This HTML file is a template.
|
|
34
|
-
If you open it directly in the browser, you will see an empty page.
|
|
35
|
-
|
|
36
|
-
You can add webfonts, meta tags, or analytics to this file.
|
|
37
|
-
The build step will place the bundled scripts into the <body> tag.
|
|
38
|
-
|
|
39
|
-
To begin the development, run `npm start` or `yarn start`.
|
|
40
|
-
To create a production bundle, use `npm run build` or `yarn build`.
|
|
41
|
-
-->
|
|
42
|
-
</body>
|
|
43
|
-
</html>
|
package/public/logo192.png
DELETED
|
Binary file
|
package/public/logo512.png
DELETED
|
Binary file
|
package/public/manifest.json
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"short_name": "React App",
|
|
3
|
-
"name": "Create React App Sample",
|
|
4
|
-
"icons": [
|
|
5
|
-
{
|
|
6
|
-
"src": "favicon.ico",
|
|
7
|
-
"sizes": "64x64 32x32 24x24 16x16",
|
|
8
|
-
"type": "image/x-icon"
|
|
9
|
-
},
|
|
10
|
-
{
|
|
11
|
-
"src": "logo192.png",
|
|
12
|
-
"type": "image/png",
|
|
13
|
-
"sizes": "192x192"
|
|
14
|
-
},
|
|
15
|
-
{
|
|
16
|
-
"src": "logo512.png",
|
|
17
|
-
"type": "image/png",
|
|
18
|
-
"sizes": "512x512"
|
|
19
|
-
}
|
|
20
|
-
],
|
|
21
|
-
"start_url": ".",
|
|
22
|
-
"display": "standalone",
|
|
23
|
-
"theme_color": "#000000",
|
|
24
|
-
"background_color": "#ffffff"
|
|
25
|
-
}
|
package/public/robots.txt
DELETED
package/webpack.config.js
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
module.exports = {
|
|
2
|
-
entry: './server.js',
|
|
3
|
-
output: {
|
|
4
|
-
filename: 'compiled.js',
|
|
5
|
-
},
|
|
6
|
-
resolve: {
|
|
7
|
-
extensions: ['ts', 'tsx'],
|
|
8
|
-
},
|
|
9
|
-
module: {
|
|
10
|
-
rules: [
|
|
11
|
-
{
|
|
12
|
-
test: /\.(ts|tsx)$/,
|
|
13
|
-
exclude: /(node_modules)/,
|
|
14
|
-
use: {
|
|
15
|
-
loader: 'babel-loader',
|
|
16
|
-
},
|
|
17
|
-
query: {
|
|
18
|
-
presets: ['react'],
|
|
19
|
-
},
|
|
20
|
-
},
|
|
21
|
-
{
|
|
22
|
-
test: /\.css$/i,
|
|
23
|
-
use: ['style-loader', 'css-loader'],
|
|
24
|
-
},
|
|
25
|
-
],
|
|
26
|
-
},
|
|
27
|
-
};
|