devextreme-planit-treegrid-react 1.1.2 → 1.1.4
Sign up to get free protection for your applications and to get access to all the features.
- package/README.md +3 -1
- package/dist/DxPlanitTreeGrid.js +192 -341
- package/dist/index.d.ts +38 -23
- package/package.json +8 -2
- 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/dist/type.js +0 -5
- 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,139 +1,43 @@
|
|
1
|
-
|
1
|
+
"use strict";
|
2
2
|
|
3
|
-
function _typeof(obj) {
|
4
|
-
|
5
|
-
|
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,
|
3
|
+
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
5
|
+
value: true
|
19
6
|
});
|
20
7
|
exports.default = void 0;
|
21
|
-
var _react = require(
|
22
|
-
var _loadPanel = require(
|
23
|
-
var _pivotGrid = _interopRequireWildcard(require(
|
24
|
-
var _dataGrid = require(
|
25
|
-
var _excel_exporter = require(
|
26
|
-
var _exceljs = require(
|
27
|
-
var _fileSaver = _interopRequireDefault(require(
|
28
|
-
function _interopRequireDefault(obj) {
|
29
|
-
|
30
|
-
}
|
31
|
-
function
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
}
|
39
|
-
function
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
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
|
-
}
|
8
|
+
var _react = require("react");
|
9
|
+
var _loadPanel = require("devextreme-react/load-panel");
|
10
|
+
var _pivotGrid = _interopRequireWildcard(require("devextreme-react/pivot-grid"));
|
11
|
+
var _dataGrid = require("devextreme-react/data-grid");
|
12
|
+
var _excel_exporter = require("devextreme/excel_exporter");
|
13
|
+
var _exceljs = require("exceljs");
|
14
|
+
var _fileSaver = _interopRequireDefault(require("file-saver"));
|
15
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
16
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
17
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
18
|
+
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
19
|
+
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
20
|
+
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
21
|
+
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
22
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
23
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
24
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
25
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
26
|
+
function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0) { ; } } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
|
27
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
28
|
+
/**
|
29
|
+
* devextreme pivotgrid Configrations 중 사용 불가 항목 : id, width, height, showColumnGrandTotals, showColumnTotals, showRowGrandTotals, FieldChooser
|
30
|
+
* devextreme pivotgrid Configrations 중 사용 방법 변경 항목 : stateStoring, Export
|
31
|
+
* onExported, onFileSaving 이벤트 사용하지 않음.
|
32
|
+
*/
|
33
|
+
/**
|
34
|
+
* todoList:
|
35
|
+
* 2) columIndex 초기화 기능이 있어야 함(column 개수 변할 때)
|
36
|
+
* 3) 헤더에 테이블 삽입되면서 그리드 크기가 늘어남. height에 그리드 크기 늘어난 만큼 반영되어야 함.
|
37
|
+
*/
|
38
|
+
|
135
39
|
var grandTotalCssNm = 'data-grand-total';
|
136
|
-
var DxPlanitTreeGrid = /*#__PURE__*/
|
40
|
+
var DxPlanitTreeGrid = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
137
41
|
var _props$id = props.id,
|
138
42
|
id = _props$id === void 0 ? 'dx-planit-vera-pivotgrid-id' : _props$id,
|
139
43
|
groupField = props.groupField,
|
@@ -208,49 +112,39 @@ var DxPlanitTreeGrid = /*#__PURE__*/ (0, _react.forwardRef)(function (props, ref
|
|
208
112
|
var excelBorder = {
|
209
113
|
style: 'thin',
|
210
114
|
color: {
|
211
|
-
argb: 'FF7E7E7E'
|
212
|
-
}
|
115
|
+
argb: 'FF7E7E7E'
|
116
|
+
}
|
213
117
|
};
|
214
118
|
(0, _react.useImperativeHandle)(ref, function () {
|
215
119
|
return {
|
216
|
-
exportToExcel: exportToExcel
|
120
|
+
exportToExcel: exportToExcel
|
217
121
|
};
|
218
122
|
});
|
219
123
|
|
220
|
-
/**
|
221
|
-
* 그리드 사이즈 재조정
|
222
|
-
* @returns 그리드 사이즈
|
124
|
+
/**
|
125
|
+
* 그리드 사이즈 재조정
|
126
|
+
* @returns 그리드 사이즈
|
223
127
|
*/
|
224
128
|
var getGridSize = function getGridSize() {
|
225
129
|
var _wrapper$clientWidth;
|
226
130
|
var wrapper = document.querySelector('.diag-table-wrapper');
|
227
131
|
var gap = 10;
|
228
|
-
setWidth(
|
229
|
-
(_wrapper$clientWidth = wrapper === null || wrapper === void 0 ? void 0 : wrapper.clientWidth) !== null &&
|
230
|
-
_wrapper$clientWidth !== void 0
|
231
|
-
? _wrapper$clientWidth
|
232
|
-
: 0
|
233
|
-
);
|
132
|
+
setWidth((_wrapper$clientWidth = wrapper === null || wrapper === void 0 ? void 0 : wrapper.clientWidth) !== null && _wrapper$clientWidth !== void 0 ? _wrapper$clientWidth : 0);
|
234
133
|
setHeight(wrapper ? wrapper.clientHeight - gap : 0);
|
235
134
|
window.addEventListener('resize', function () {
|
236
135
|
var _wrapper$clientWidth2;
|
237
|
-
setWidth(
|
238
|
-
(_wrapper$clientWidth2 = wrapper === null || wrapper === void 0 ? void 0 : wrapper.clientWidth) !== null &&
|
239
|
-
_wrapper$clientWidth2 !== void 0
|
240
|
-
? _wrapper$clientWidth2
|
241
|
-
: 0
|
242
|
-
);
|
136
|
+
setWidth((_wrapper$clientWidth2 = wrapper === null || wrapper === void 0 ? void 0 : wrapper.clientWidth) !== null && _wrapper$clientWidth2 !== void 0 ? _wrapper$clientWidth2 : 0);
|
243
137
|
setHeight(wrapper ? wrapper.clientHeight - gap : 0);
|
244
138
|
});
|
245
139
|
return {
|
246
140
|
width: width,
|
247
|
-
height: height
|
141
|
+
height: height
|
248
142
|
};
|
249
143
|
};
|
250
144
|
|
251
|
-
/**
|
252
|
-
* 'Total' 을 한글로 변경
|
253
|
-
* @param e devextreme CellPreparedEvent
|
145
|
+
/**
|
146
|
+
* 'Total' 을 한글로 변경
|
147
|
+
* @param e devextreme CellPreparedEvent
|
254
148
|
*/
|
255
149
|
var changeTotalText = function changeTotalText(e) {
|
256
150
|
var _e$cell;
|
@@ -260,13 +154,13 @@ var DxPlanitTreeGrid = /*#__PURE__*/ (0, _react.forwardRef)(function (props, ref
|
|
260
154
|
if (((_e$cell = e.cell) === null || _e$cell === void 0 ? void 0 : _e$cell.type) === 'T') {
|
261
155
|
var _e$cell$text;
|
262
156
|
var text = (_e$cell$text = e.cell.text) === null || _e$cell$text === void 0 ? void 0 : _e$cell$text.replace('Total', '합계');
|
263
|
-
e.cellElement.innerHTML =
|
157
|
+
e.cellElement.innerHTML = "<span>".concat(text, "</span>");
|
264
158
|
}
|
265
159
|
};
|
266
160
|
|
267
|
-
/**
|
268
|
-
* null값을 하이픈으로 모두 변경
|
269
|
-
* @param e devextreme CellPreparedEvent
|
161
|
+
/**
|
162
|
+
* null값을 하이픈으로 모두 변경
|
163
|
+
* @param e devextreme CellPreparedEvent
|
270
164
|
*/
|
271
165
|
var changeNullToHipen = function changeNullToHipen(e) {
|
272
166
|
var _e$cell2;
|
@@ -278,30 +172,24 @@ var DxPlanitTreeGrid = /*#__PURE__*/ (0, _react.forwardRef)(function (props, ref
|
|
278
172
|
}
|
279
173
|
};
|
280
174
|
|
281
|
-
/**
|
282
|
-
* '0', '0.0%' 를 하이픈으로 모두 변경
|
283
|
-
* @param e devextreme CellPreparedEvent
|
175
|
+
/**
|
176
|
+
* '0', '0.0%' 를 하이픈으로 모두 변경
|
177
|
+
* @param e devextreme CellPreparedEvent
|
284
178
|
*/
|
285
179
|
var changeZeroToHipen = function changeZeroToHipen(e) {
|
286
180
|
var _e$cell3, _e$cell4, _e$cell5;
|
287
181
|
if (!convertZeroToHipen) {
|
288
182
|
return;
|
289
183
|
}
|
290
|
-
if (
|
291
|
-
e.area === 'data' &&
|
292
|
-
(((_e$cell3 = e.cell) === null || _e$cell3 === void 0 ? void 0 : _e$cell3.text) === '0' ||
|
293
|
-
((_e$cell4 = e.cell) === null || _e$cell4 === void 0 ? void 0 : _e$cell4.text) === '0.0%' ||
|
294
|
-
((_e$cell5 = e.cell) === null || _e$cell5 === void 0 ? void 0 : _e$cell5.text) === '') &&
|
295
|
-
e.cellElement
|
296
|
-
) {
|
184
|
+
if (e.area === 'data' && (((_e$cell3 = e.cell) === null || _e$cell3 === void 0 ? void 0 : _e$cell3.text) === '0' || ((_e$cell4 = e.cell) === null || _e$cell4 === void 0 ? void 0 : _e$cell4.text) === '0.0%' || ((_e$cell5 = e.cell) === null || _e$cell5 === void 0 ? void 0 : _e$cell5.text) === '') && e.cellElement) {
|
297
185
|
e.cellElement.innerHTML = '<span class="text-color">-</span>';
|
298
186
|
}
|
299
187
|
};
|
300
188
|
|
301
|
-
/**
|
302
|
-
* 테이블 헤더에 colspan, rowspan 한 HTMLElement 정보 반환
|
303
|
-
* @param groupField 사용자가 작성한 그룹 정보
|
304
|
-
* @return
|
189
|
+
/**
|
190
|
+
* 테이블 헤더에 colspan, rowspan 한 HTMLElement 정보 반환
|
191
|
+
* @param groupField 사용자가 작성한 그룹 정보
|
192
|
+
* @return
|
305
193
|
*/
|
306
194
|
var makeColspan = function makeColspan(group, index, isLast) {
|
307
195
|
var _group$html;
|
@@ -316,33 +204,31 @@ var DxPlanitTreeGrid = /*#__PURE__*/ (0, _react.forwardRef)(function (props, ref
|
|
316
204
|
} else if (!isLast && index === 0) {
|
317
205
|
td.setAttribute('style', 'border-bottom: 0');
|
318
206
|
}
|
319
|
-
td.innerHTML =
|
207
|
+
td.innerHTML = "<span>".concat(text, "</span>");
|
320
208
|
return td;
|
321
209
|
};
|
322
210
|
|
323
|
-
/**
|
324
|
-
* 그룹 필드 데이터 유효성 검증용 데이터 생성
|
325
|
-
* @param groupField
|
326
|
-
* @returns
|
211
|
+
/**
|
212
|
+
* 그룹 필드 데이터 유효성 검증용 데이터 생성
|
213
|
+
* @param groupField
|
214
|
+
* @returns
|
327
215
|
*/
|
328
216
|
var makeCheckGroupData = function makeCheckGroupData(groupField) {
|
329
217
|
var data = {};
|
330
|
-
groupField === null || groupField === void 0
|
331
|
-
|
332
|
-
|
333
|
-
|
334
|
-
|
335
|
-
|
336
|
-
|
337
|
-
}
|
338
|
-
});
|
218
|
+
groupField === null || groupField === void 0 ? void 0 : groupField.forEach(function (group) {
|
219
|
+
if (data[group.depth]) {
|
220
|
+
data[group.depth] += group.colspan;
|
221
|
+
} else {
|
222
|
+
data[group.depth] = group.colspan;
|
223
|
+
}
|
224
|
+
});
|
339
225
|
return data;
|
340
226
|
};
|
341
227
|
|
342
|
-
/**
|
343
|
-
* GroupField 데이터 검증
|
344
|
-
* @param 사용자가 설정한 그룹 필드 정보
|
345
|
-
* @returns 데이터 검증 결과
|
228
|
+
/**
|
229
|
+
* GroupField 데이터 검증
|
230
|
+
* @param 사용자가 설정한 그룹 필드 정보
|
231
|
+
* @returns 데이터 검증 결과
|
346
232
|
*/
|
347
233
|
var isCheckGroupField = function isCheckGroupField(groupField) {
|
348
234
|
var map = makeCheckGroupData(groupField);
|
@@ -355,25 +241,21 @@ var DxPlanitTreeGrid = /*#__PURE__*/ (0, _react.forwardRef)(function (props, ref
|
|
355
241
|
return true;
|
356
242
|
};
|
357
243
|
|
358
|
-
/**
|
359
|
-
* Grand Total 셀 정보 저장
|
360
|
-
* @param e
|
244
|
+
/**
|
245
|
+
* Grand Total 셀 정보 저장
|
246
|
+
* @param e
|
361
247
|
*/
|
362
248
|
var setTotalElementInfo = function setTotalElementInfo(e) {
|
363
249
|
var _e$cell6, _e$cell7, _e$cellElement;
|
364
|
-
if (
|
365
|
-
!(groupField !== null && groupField !== void 0 && groupField.length) ||
|
366
|
-
((_e$cell6 = e.cell) === null || _e$cell6 === void 0 ? void 0 : _e$cell6.type) !== 'GT' ||
|
367
|
-
((_e$cell7 = e.cell) === null || _e$cell7 === void 0 ? void 0 : _e$cell7.text) !== 'Grand Total'
|
368
|
-
) {
|
250
|
+
if (!(groupField !== null && groupField !== void 0 && groupField.length) || ((_e$cell6 = e.cell) === null || _e$cell6 === void 0 ? void 0 : _e$cell6.type) !== 'GT' || ((_e$cell7 = e.cell) === null || _e$cell7 === void 0 ? void 0 : _e$cell7.text) !== 'Grand Total') {
|
369
251
|
return;
|
370
252
|
}
|
371
253
|
(_e$cellElement = e.cellElement) === null || _e$cellElement === void 0 ? void 0 : _e$cellElement.classList.add(grandTotalCssNm);
|
372
254
|
};
|
373
255
|
|
374
|
-
/**
|
375
|
-
* cell의 columnIndex 최대값 저장
|
376
|
-
* @param e
|
256
|
+
/**
|
257
|
+
* cell의 columnIndex 최대값 저장
|
258
|
+
* @param e
|
377
259
|
*/
|
378
260
|
var setMaxColumIndex = function setMaxColumIndex(e) {
|
379
261
|
if (!e.columnIndex) {
|
@@ -384,19 +266,17 @@ var DxPlanitTreeGrid = /*#__PURE__*/ (0, _react.forwardRef)(function (props, ref
|
|
384
266
|
}
|
385
267
|
};
|
386
268
|
|
387
|
-
/**
|
388
|
-
* groupField depth의 유니크한 배열 구하기
|
389
|
-
* @param group
|
390
|
-
* @param arr
|
391
|
-
* @returns
|
269
|
+
/**
|
270
|
+
* groupField depth의 유니크한 배열 구하기
|
271
|
+
* @param group
|
272
|
+
* @param arr
|
273
|
+
* @returns
|
392
274
|
*/
|
393
275
|
var getGroupDepth = function getGroupDepth(group, arr) {
|
394
276
|
var groupData = group.slice();
|
395
|
-
var set = new Set(
|
396
|
-
|
397
|
-
|
398
|
-
})
|
399
|
-
);
|
277
|
+
var set = new Set(groupData.map(function (group) {
|
278
|
+
return group.depth;
|
279
|
+
}));
|
400
280
|
return Array.from(set).sort(function compare(a, b) {
|
401
281
|
if (a > b) {
|
402
282
|
return arr === 'asc' ? -1 : 1;
|
@@ -408,11 +288,11 @@ var DxPlanitTreeGrid = /*#__PURE__*/ (0, _react.forwardRef)(function (props, ref
|
|
408
288
|
});
|
409
289
|
};
|
410
290
|
|
411
|
-
/**
|
412
|
-
* 현재 depth에 맞는 그룹 필드 정보 반환
|
413
|
-
* @param group
|
414
|
-
* @param depth
|
415
|
-
* @returns
|
291
|
+
/**
|
292
|
+
* 현재 depth에 맞는 그룹 필드 정보 반환
|
293
|
+
* @param group
|
294
|
+
* @param depth
|
295
|
+
* @returns
|
416
296
|
*/
|
417
297
|
var getCurrentGroup = function getCurrentGroup(group, depth) {
|
418
298
|
return group.filter(function (gr) {
|
@@ -420,8 +300,8 @@ var DxPlanitTreeGrid = /*#__PURE__*/ (0, _react.forwardRef)(function (props, ref
|
|
420
300
|
});
|
421
301
|
};
|
422
302
|
|
423
|
-
/**
|
424
|
-
* 테이블 헤더(DOM)에 colspan 적용된 테이블 삽입
|
303
|
+
/**
|
304
|
+
* 테이블 헤더(DOM)에 colspan 적용된 테이블 삽입
|
425
305
|
*/
|
426
306
|
var insertRowHeaderGroup = function insertRowHeaderGroup() {
|
427
307
|
var _thead$previousSiblin;
|
@@ -441,10 +321,7 @@ var DxPlanitTreeGrid = /*#__PURE__*/ (0, _react.forwardRef)(function (props, ref
|
|
441
321
|
}
|
442
322
|
totalElement.innerHTML = '';
|
443
323
|
totalElement.setAttribute('style', 'padding: 0; border: 0');
|
444
|
-
var colgroup =
|
445
|
-
(_thead$previousSiblin = thead.previousSibling) === null || _thead$previousSiblin === void 0
|
446
|
-
? void 0
|
447
|
-
: _thead$previousSiblin.cloneNode(true);
|
324
|
+
var colgroup = (_thead$previousSiblin = thead.previousSibling) === null || _thead$previousSiblin === void 0 ? void 0 : _thead$previousSiblin.cloneNode(true);
|
448
325
|
var groupData = groupField.slice();
|
449
326
|
var depth = getGroupDepth(groupData, 'asc');
|
450
327
|
var table = document.createElement('table');
|
@@ -461,10 +338,10 @@ var DxPlanitTreeGrid = /*#__PURE__*/ (0, _react.forwardRef)(function (props, ref
|
|
461
338
|
totalElement.appendChild(table);
|
462
339
|
};
|
463
340
|
|
464
|
-
/**
|
465
|
-
* Devextreme의 dateController columnInfo에 그룹 정보 삽입
|
466
|
-
* @param group
|
467
|
-
* @returns
|
341
|
+
/**
|
342
|
+
* Devextreme의 dateController columnInfo에 그룹 정보 삽입
|
343
|
+
* @param group
|
344
|
+
* @returns
|
468
345
|
*/
|
469
346
|
var makeDataControllerColumnGroup = function makeDataControllerColumnGroup(group) {
|
470
347
|
var groupData = group.slice();
|
@@ -475,21 +352,21 @@ var DxPlanitTreeGrid = /*#__PURE__*/ (0, _react.forwardRef)(function (props, ref
|
|
475
352
|
return {
|
476
353
|
colspan: group.colspan,
|
477
354
|
text: group.groupCaption,
|
478
|
-
type: 'GT'
|
355
|
+
type: 'GT'
|
479
356
|
};
|
480
357
|
});
|
481
358
|
});
|
482
359
|
};
|
483
360
|
|
484
|
-
/**
|
485
|
-
* 사용자가 입력한 컬러 조건을 { standard: string; condition: string } 형식으로 변경 반환
|
486
|
-
* @param condition 사용자 입력 컬러 조건식 ex) '>= 100'
|
487
|
-
* @returns
|
361
|
+
/**
|
362
|
+
* 사용자가 입력한 컬러 조건을 { standard: string; condition: string } 형식으로 변경 반환
|
363
|
+
* @param condition 사용자 입력 컬러 조건식 ex) '>= 100'
|
364
|
+
* @returns
|
488
365
|
*/
|
489
366
|
var makeSplitCondtion = function makeSplitCondtion(condition) {
|
490
367
|
var newCondition = {
|
491
368
|
standard: '',
|
492
|
-
condition: ''
|
369
|
+
condition: ''
|
493
370
|
};
|
494
371
|
_toConsumableArray(condition).forEach(function (cond) {
|
495
372
|
if (Number.isNaN(parseFloat(cond))) {
|
@@ -501,10 +378,10 @@ var DxPlanitTreeGrid = /*#__PURE__*/ (0, _react.forwardRef)(function (props, ref
|
|
501
378
|
return newCondition;
|
502
379
|
};
|
503
380
|
|
504
|
-
/**
|
505
|
-
* 데이터에 색상 적용
|
506
|
-
* @param e onCellPrepared 이벤트
|
507
|
-
* @returns
|
381
|
+
/**
|
382
|
+
* 데이터에 색상 적용
|
383
|
+
* @param e onCellPrepared 이벤트
|
384
|
+
* @returns
|
508
385
|
*/
|
509
386
|
var makeColorAtPercent = function makeColorAtPercent(e) {
|
510
387
|
if (!dataColor || !e.cellElement) {
|
@@ -515,14 +392,7 @@ var DxPlanitTreeGrid = /*#__PURE__*/ (0, _react.forwardRef)(function (props, ref
|
|
515
392
|
if (e.cell.value === null) {
|
516
393
|
return;
|
517
394
|
}
|
518
|
-
if (
|
519
|
-
((_e$cell8 = e.cell) === null || _e$cell8 === void 0
|
520
|
-
? void 0
|
521
|
-
: (_e$cell8$format = _e$cell8.format) === null || _e$cell8$format === void 0
|
522
|
-
? void 0
|
523
|
-
: _e$cell8$format.type) === color.format &&
|
524
|
-
!Number.isNaN(e.cell.value)
|
525
|
-
) {
|
395
|
+
if (((_e$cell8 = e.cell) === null || _e$cell8 === void 0 ? void 0 : (_e$cell8$format = _e$cell8.format) === null || _e$cell8$format === void 0 ? void 0 : _e$cell8$format.type) === color.format && !Number.isNaN(e.cell.value)) {
|
526
396
|
var standardData = makeSplitCondtion(color.condition.replace(/(\s*)/g, ''));
|
527
397
|
var rate = color.format === 'percent' ? 0.01 : 1;
|
528
398
|
var condition = false;
|
@@ -547,9 +417,9 @@ var DxPlanitTreeGrid = /*#__PURE__*/ (0, _react.forwardRef)(function (props, ref
|
|
547
417
|
});
|
548
418
|
};
|
549
419
|
|
550
|
-
/**
|
551
|
-
* 그리드 데이터 정합성 체크. 데이터 잘못되어 있으면 에러 발생
|
552
|
-
* @param dataSource
|
420
|
+
/**
|
421
|
+
* 그리드 데이터 정합성 체크. 데이터 잘못되어 있으면 에러 발생
|
422
|
+
* @param dataSource
|
553
423
|
*/
|
554
424
|
var checkDataSource = function checkDataSource(dataSource) {
|
555
425
|
var isColumns = dataSource._fields.findIndex(function (field) {
|
@@ -569,31 +439,28 @@ var DxPlanitTreeGrid = /*#__PURE__*/ (0, _react.forwardRef)(function (props, ref
|
|
569
439
|
}
|
570
440
|
};
|
571
441
|
|
572
|
-
/**
|
573
|
-
* 그리드 펼침 정보 세션스토리지 리셋
|
442
|
+
/**
|
443
|
+
* 그리드 펼침 정보 세션스토리지 리셋
|
574
444
|
*/
|
575
445
|
var resetSession = function resetSession() {
|
576
446
|
sessionStorage.removeItem('dx-vera-pivotgrid-storing');
|
577
447
|
};
|
578
448
|
|
579
|
-
/**
|
580
|
-
* 엑셀 export 명령
|
581
|
-
* @param fileName 저장하고자 하는 엑셀파일명
|
449
|
+
/**
|
450
|
+
* 엑셀 export 명령
|
451
|
+
* @param fileName 저장하고자 하는 엑셀파일명
|
582
452
|
*/
|
583
453
|
var exportToExcel = function exportToExcel(fileName) {
|
584
454
|
setTimeout(function () {
|
585
455
|
var _$tableRef$current;
|
586
|
-
return exportToExcelAction(
|
587
|
-
(_$tableRef$current = $tableRef.current) === null || _$tableRef$current === void 0 ? void 0 : _$tableRef$current.instance,
|
588
|
-
fileName
|
589
|
-
);
|
456
|
+
return exportToExcelAction((_$tableRef$current = $tableRef.current) === null || _$tableRef$current === void 0 ? void 0 : _$tableRef$current.instance, fileName);
|
590
457
|
});
|
591
458
|
};
|
592
459
|
|
593
|
-
/**
|
594
|
-
* devextreme component 정보의 dataController의 columnInfo에 사용자가 설정한 groupFIled 정보 병합
|
595
|
-
* @param component devextreme component
|
596
|
-
* @returns devextreme component
|
460
|
+
/**
|
461
|
+
* devextreme component 정보의 dataController의 columnInfo에 사용자가 설정한 groupFIled 정보 병합
|
462
|
+
* @param component devextreme component
|
463
|
+
* @returns devextreme component
|
597
464
|
*/
|
598
465
|
var convertDataControllerColumnsInfo = function convertDataControllerColumnsInfo(component) {
|
599
466
|
var arr = [];
|
@@ -609,9 +476,9 @@ var DxPlanitTreeGrid = /*#__PURE__*/ (0, _react.forwardRef)(function (props, ref
|
|
609
476
|
return component;
|
610
477
|
};
|
611
478
|
|
612
|
-
/**
|
613
|
-
* 엑셀 export
|
614
|
-
* @param e
|
479
|
+
/**
|
480
|
+
* 엑셀 export
|
481
|
+
* @param e
|
615
482
|
*/
|
616
483
|
var exportToExcelAction = function exportToExcelAction(e, fileName) {
|
617
484
|
var newComponent = convertDataControllerColumnsInfo(e);
|
@@ -627,25 +494,22 @@ var DxPlanitTreeGrid = /*#__PURE__*/ (0, _react.forwardRef)(function (props, ref
|
|
627
494
|
bottom: borderStyle,
|
628
495
|
left: borderStyle,
|
629
496
|
right: borderStyle,
|
630
|
-
top: borderStyle
|
497
|
+
top: borderStyle
|
631
498
|
};
|
632
|
-
}
|
499
|
+
}
|
633
500
|
}).then(function () {
|
634
501
|
workbook.xlsx.writeBuffer().then(function (buffer) {
|
635
|
-
(0, _fileSaver.default)(
|
636
|
-
|
637
|
-
|
638
|
-
}),
|
639
|
-
fileName + '.xlsx'
|
640
|
-
);
|
502
|
+
(0, _fileSaver.default)(new Blob([buffer], {
|
503
|
+
type: 'application/octet-stream'
|
504
|
+
}), fileName + '.xlsx');
|
641
505
|
});
|
642
506
|
});
|
643
507
|
e.cancel = true;
|
644
508
|
};
|
645
509
|
|
646
|
-
/**
|
647
|
-
* devextreme CellPreparedEvent 이벤트 실행
|
648
|
-
* @param e
|
510
|
+
/**
|
511
|
+
* devextreme CellPreparedEvent 이벤트 실행
|
512
|
+
* @param e
|
649
513
|
*/
|
650
514
|
var onCellPreparedChild = function onCellPreparedChild(e) {
|
651
515
|
makeColorAtPercent(e);
|
@@ -657,8 +521,8 @@ var DxPlanitTreeGrid = /*#__PURE__*/ (0, _react.forwardRef)(function (props, ref
|
|
657
521
|
return onCellPrepared ? onCellPrepared(e) : undefined;
|
658
522
|
};
|
659
523
|
|
660
|
-
/**
|
661
|
-
* devextreme Raise Event
|
524
|
+
/**
|
525
|
+
* devextreme Raise Event
|
662
526
|
*/
|
663
527
|
var onContentReadyChild = function onContentReadyChild(e) {
|
664
528
|
setTimeout(function () {
|
@@ -685,70 +549,57 @@ var DxPlanitTreeGrid = /*#__PURE__*/ (0, _react.forwardRef)(function (props, ref
|
|
685
549
|
var onOptionChangedChild = function onOptionChangedChild(e) {
|
686
550
|
return onOptionChanged ? onOptionChanged(e) : undefined;
|
687
551
|
};
|
688
|
-
(0, _react.useEffect)(
|
689
|
-
|
690
|
-
|
691
|
-
|
692
|
-
|
693
|
-
|
694
|
-
|
695
|
-
|
696
|
-
|
697
|
-
|
698
|
-
|
699
|
-
|
700
|
-
|
701
|
-
|
702
|
-
|
703
|
-
|
704
|
-
|
705
|
-
|
706
|
-
|
707
|
-
|
708
|
-
|
709
|
-
|
710
|
-
|
711
|
-
|
712
|
-
|
713
|
-
|
714
|
-
|
715
|
-
|
716
|
-
|
717
|
-
|
718
|
-
|
719
|
-
|
720
|
-
|
721
|
-
|
722
|
-
|
723
|
-
|
724
|
-
|
725
|
-
|
726
|
-
|
727
|
-
|
728
|
-
|
729
|
-
|
730
|
-
|
731
|
-
|
732
|
-
|
733
|
-
|
734
|
-
|
735
|
-
|
736
|
-
|
737
|
-
|
738
|
-
|
739
|
-
onInitialized: onInitializedChild,
|
740
|
-
onOptionChanged: onOptionChangedChild,
|
741
|
-
},
|
742
|
-
/*#__PURE__*/ _react.createElement(_dataGrid.StateStoring, {
|
743
|
-
enabled: stateStoringKey === null || stateStoringKey === void 0 ? void 0 : stateStoringKey.length,
|
744
|
-
type: 'sessionStorage',
|
745
|
-
storageKey: stateStoringKey,
|
746
|
-
}),
|
747
|
-
/*#__PURE__*/ _react.createElement(_pivotGrid.FieldChooser, {
|
748
|
-
enabled: false,
|
749
|
-
})
|
750
|
-
)
|
751
|
-
);
|
552
|
+
(0, _react.useEffect)(function () {
|
553
|
+
setGridDataSource(dataSource);
|
554
|
+
checkDataSource(dataSource);
|
555
|
+
resetSession();
|
556
|
+
}, [dataSource]);
|
557
|
+
return /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(_loadPanel.LoadPanel, {
|
558
|
+
position: {
|
559
|
+
of: id
|
560
|
+
}
|
561
|
+
}), /*#__PURE__*/React.createElement(_pivotGrid.default, {
|
562
|
+
id: id,
|
563
|
+
ref: $tableRef,
|
564
|
+
dataSource: gridDataSource,
|
565
|
+
showColumnTotals: false,
|
566
|
+
showColumnGrandTotals: true,
|
567
|
+
showRowGrandTotals: false,
|
568
|
+
width: width,
|
569
|
+
height: height,
|
570
|
+
allowExpandAll: allowExpandAll,
|
571
|
+
allowFiltering: allowFiltering,
|
572
|
+
allowSorting: allowSorting,
|
573
|
+
allowSortingBySummary: allowSortingBySummary,
|
574
|
+
dataFieldArea: dataFieldArea,
|
575
|
+
disabled: disabled,
|
576
|
+
elementAttr: elementAttr,
|
577
|
+
encodeHtml: encodeHtml,
|
578
|
+
hideEmptySummaryCells: hideEmptySummaryCells,
|
579
|
+
hint: hint,
|
580
|
+
rowHeaderLayout: rowHeaderLayout,
|
581
|
+
rtlEnabled: rtlEnabled,
|
582
|
+
showBorders: showBorders,
|
583
|
+
showRowTotals: showRowTotals,
|
584
|
+
showTotalsPrior: showTotalsPrior,
|
585
|
+
tabIndex: tabIndex,
|
586
|
+
visible: visible,
|
587
|
+
wordWrapEnabled: wordWrapEnabled,
|
588
|
+
onCellClick: onCellClickChild,
|
589
|
+
onContentReady: onContentReadyChild,
|
590
|
+
onCellPrepared: onCellPreparedChild,
|
591
|
+
onContextMenuPreparing: onContextMenuPreparingChild,
|
592
|
+
onDisposing: onDisposingChild,
|
593
|
+
onExporting: onExportingChild,
|
594
|
+
onInitialized: onInitializedChild,
|
595
|
+
onOptionChanged: onOptionChangedChild
|
596
|
+
}, /*#__PURE__*/React.createElement(_dataGrid.StateStoring, {
|
597
|
+
enabled: stateStoringKey === null || stateStoringKey === void 0 ? void 0 : stateStoringKey.length,
|
598
|
+
type: "sessionStorage",
|
599
|
+
storageKey: stateStoringKey
|
600
|
+
}), /*#__PURE__*/React.createElement(_pivotGrid.FieldChooser, {
|
601
|
+
enabled: false
|
602
|
+
})));
|
752
603
|
});
|
753
604
|
var _default = DxPlanitTreeGrid;
|
754
|
-
exports.default = _default;
|
605
|
+
exports.default = _default;
|
package/dist/index.d.ts
CHANGED
@@ -1,23 +1,38 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
export declare
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
1
|
+
import DevExpress from 'devextreme';
|
2
|
+
import { Format } from 'devextreme/localization';
|
3
|
+
|
4
|
+
export declare const DxPlanitTreeGrid;
|
5
|
+
export default DxPlanitTreeGrid;
|
6
|
+
|
7
|
+
export declare module TypeDxPlanit {
|
8
|
+
export interface IGroupField {
|
9
|
+
groupCaption: string;
|
10
|
+
groupName?: string;
|
11
|
+
html?: string;
|
12
|
+
depth: number;
|
13
|
+
colspan: number;
|
14
|
+
}
|
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
|
+
|
28
|
+
export interface Props extends DevExpress.ui.dxPivotGrid.Properties {
|
29
|
+
id?: string;
|
30
|
+
dataSource?: any;
|
31
|
+
groupField?: IGroupField[];
|
32
|
+
dataColor?: IColorInfo[];
|
33
|
+
convertNullToHipen?: boolean;
|
34
|
+
convertZeroToHipen?: boolean;
|
35
|
+
stateStoringKey?: string;
|
36
|
+
customExcelButton?: boolean;
|
37
|
+
}
|
38
|
+
}
|
package/package.json
CHANGED
@@ -1,9 +1,15 @@
|
|
1
1
|
{
|
2
2
|
"name": "devextreme-planit-treegrid-react",
|
3
|
-
"version": "1.1.
|
3
|
+
"version": "1.1.4",
|
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/DxPlanitTreeGrid.js",
|
9
|
+
"dist/index.d.ts",
|
10
|
+
"dist/index.js",
|
11
|
+
"README.md"
|
12
|
+
],
|
7
13
|
"repository": "https://github.com/hsquare-analytics/ui-tree-grid.git",
|
8
14
|
"author": "bcahn <antonio1926@gmail.com>",
|
9
15
|
"license": "MIT",
|
@@ -36,7 +42,7 @@
|
|
36
42
|
],
|
37
43
|
"dependencies": {
|
38
44
|
"devextreme": "^22.1.6",
|
39
|
-
"devextreme-planit-treegrid-react": "^1.1.
|
45
|
+
"devextreme-planit-treegrid-react": "^1.1.0",
|
40
46
|
"devextreme-react": "^22.1.6",
|
41
47
|
"exceljs": "^4.3.0",
|
42
48
|
"file-saver": "^2.0.5",
|
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/dist/type.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
|
-
};
|