dtable-statistic 4.3.6 → 4.3.8
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/es/calculator/base-calculator.js +16 -5
- package/es/calculator/basic-chart-calculator.js +17 -31
- package/es/calculator/combination-calculator.js +20 -34
- package/es/calculator/compare-bar-calculator.js +9 -20
- package/es/calculator/completeness-calculator.js +10 -24
- package/es/calculator/dashboard-calculator.js +6 -20
- package/es/calculator/heat-map-calculator.js +6 -20
- package/es/calculator/horizontal-bar-calculator.js +2 -13
- package/es/calculator/index.js +2 -0
- package/es/calculator/map-calculator.js +7 -21
- package/es/calculator/mirror-calculator.js +8 -22
- package/es/calculator/number-card-calculator.js +4 -18
- package/es/calculator/pivot-table-calculator.js +40 -54
- package/es/calculator/scatter-calculator.js +6 -20
- package/es/calculator/thread-manager.js +41 -41
- package/es/calculator/trend-calculator.js +6 -20
- package/es/calculator/workers/basic-chart-calculator-worker.js +77 -45
- package/es/calculator/workers/calculator.worker.js +5 -2
- package/es/calculator/workers/card-calculator-worker.js +13 -9
- package/es/calculator/workers/combination-calculator-worker.js +20 -16
- package/es/calculator/workers/compare-bar-chart-calculator-worker.js +12 -8
- package/es/calculator/workers/completeness-calculator-worker.js +21 -17
- package/es/calculator/workers/dashboard-calculator-worker.js +16 -12
- package/es/calculator/workers/mirror-calculator-worker.js +14 -10
- package/es/calculator/workers/pivot-table-calculator-worker.js +53 -35
- package/es/calculator/workers/scatter-calculator-worker.js +15 -11
- package/es/calculator/workers/trend-calculator-worker.js +14 -10
- package/es/calculator/world-map-calculator.js +6 -20
- package/es/components/dialog/chart-addition-edit-dialog.js +1 -1
- package/es/components/dialog/chart-addition-widgets/chart-selector.js +1 -1
- package/es/components/dialog/statistic-record-dialog/index.js +21 -11
- package/es/components/dropdown-menu/statistic-dropdown-menu.js +1 -1
- package/es/components/popover/color-rules/rule-filters/number-input.js +5 -5
- package/es/components/popover/color-rules-popover.js +2 -2
- package/es/components/select/select.js +3 -3
- package/es/components/toast/alert.js +2 -0
- package/es/components/toast/toastManager.js +1 -0
- package/es/constants/color-rules.js +3 -3
- package/es/constants/index.js +9 -9
- package/es/dashboard.js +7 -13
- package/es/desktop-dashboard.js +1 -1
- package/es/locale/lang/de.js +10 -10
- package/es/locale/lang/en.js +8 -8
- package/es/locale/lang/fr.js +10 -10
- package/es/locale/lang/zh_CN.js +8 -8
- package/es/model/basic-number-card.js +3 -3
- package/es/model/compare-bar.js +2 -2
- package/es/model/generic-model.js +11 -11
- package/es/model/heat-map.js +2 -2
- package/es/model/horizontal-bar.js +2 -2
- package/es/model/index.js +3 -2
- package/es/model/map.js +3 -3
- package/es/model/mirror.js +2 -2
- package/es/model/trend.js +2 -2
- package/es/model/world-map.js +3 -3
- package/es/stat-editor/stat-settings/advance-chart-settings/combination-settings.js +7 -7
- package/es/stat-editor/stat-settings/advance-chart-settings/index.js +2 -2
- package/es/stat-editor/stat-settings/advance-chart-settings/style-setting/combination-style-setting.js +2 -2
- package/es/stat-editor/stat-settings/advance-chart-settings/summary-settings.js +1 -1
- package/es/stat-editor/stat-settings/basic-chart-settings/bar-settings.js +1 -1
- package/es/stat-editor/stat-settings/basic-chart-settings/completeness-chart-settings.js +7 -7
- package/es/stat-editor/stat-settings/basic-chart-settings/groupby-settings.js +6 -6
- package/es/stat-editor/stat-settings/basic-chart-settings/index.js +4 -4
- package/es/stat-editor/stat-settings/basic-chart-settings/pivot-table-settings.js +5 -5
- package/es/stat-editor/stat-settings/basic-chart-settings/style-setting/bar-chart-style-setting.js +3 -3
- package/es/stat-editor/stat-settings/basic-chart-settings/style-setting/horizontal-bar-chart-style.js +3 -3
- package/es/stat-editor/stat-settings/basic-chart-settings/style-setting/pie-chart-style-settings.js +3 -3
- package/es/stat-editor/stat-settings/basic-chart-settings/summary-method-setting.js +1 -1
- package/es/stat-editor/stat-settings/basic-chart-settings/summary-settings.js +1 -1
- package/es/stat-editor/stat-settings/basic-chart-settings/time-comparison-settings.js +4 -18
- package/es/stat-editor/stat-settings/color-setting/color-picker.js +1 -0
- package/es/stat-editor/stat-settings/public-setting/column-settings.js +1 -1
- package/es/stat-editor/stat-settings/public-setting/numeric-summary-item.js +1 -1
- package/es/stat-view/area-chart.js +4 -4
- package/es/stat-view/bar-chart.js +4 -4
- package/es/stat-view/base-chart.js +2 -2
- package/es/stat-view/basic-number-card.js +49 -49
- package/es/stat-view/combination-chart.js +69 -69
- package/es/stat-view/compare-chart.js +4 -4
- package/es/stat-view/completeness-chart.js +3 -3
- package/es/stat-view/custom-bar.js +2 -2
- package/es/stat-view/dashboard-chart.js +50 -50
- package/es/stat-view/heat-map.js +2 -2
- package/es/stat-view/horizontal-bar-chart.js +4 -4
- package/es/stat-view/line-chart.js +4 -4
- package/es/stat-view/map.js +3 -3
- package/es/stat-view/mirror.js +2 -2
- package/es/stat-view/pivot-table/index.js +6 -6
- package/es/stat-view/pivot-table/one-dimension-table-no-numeric-columns.js +5 -5
- package/es/stat-view/pivot-table/one-dimension-table-with-numeric-columns.js +3 -3
- package/es/stat-view/pivot-table/pivot-table-display-name.js +19 -19
- package/es/stat-view/pivot-table/two-dimension-table.js +7 -7
- package/es/stat-view/ring-chart.js +2 -2
- package/es/stat-view/scatter-chart.js +56 -56
- package/es/stat-view/treemap-chart.js +50 -49
- package/es/stat-view/trend-chart.js +52 -52
- package/es/stat-view/world-map.js +3 -3
- package/es/utils/cell-format.js +16 -16
- package/es/utils/cell-value.js +3 -3
- package/es/utils/color-utils.js +3 -3
- package/es/utils/column-utils.js +10 -10
- package/es/utils/column.js +2 -2
- package/es/utils/common-utils.js +10 -8
- package/es/utils/export-table-utils.js +38 -38
- package/es/utils/object.js +3 -3
- package/es/utils/pivot-table.js +3 -3
- package/es/utils/row-utils.js +17 -17
- package/es/utils/search.js +14 -14
- package/es/utils/sql-utils.js +23 -20
- package/es/utils/stat-utils.js +52 -52
- package/es/utils/trend-utils.js +1 -0
- package/package.json +6 -3
package/es/utils/stat-utils.js
CHANGED
|
@@ -4,11 +4,11 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
var
|
|
7
|
+
var _dtableUtils = require("dtable-utils");
|
|
8
8
|
var _utils = require("../utils");
|
|
9
9
|
var _collaborator = require("./collaborator");
|
|
10
10
|
var _constants = require("../constants");
|
|
11
|
-
const SUPPORT_SORT_COLUMNS = [
|
|
11
|
+
const SUPPORT_SORT_COLUMNS = [_dtableUtils.CellType.TEXT, _dtableUtils.CellType.NUMBER, _dtableUtils.CellType.DATE, _dtableUtils.CellType.SINGLE_SELECT, _dtableUtils.CellType.FORMULA, _dtableUtils.CellType.LINK_FORMULA, _dtableUtils.CellType.CTIME, _dtableUtils.CellType.MTIME, _dtableUtils.CellType.RATE];
|
|
12
12
|
class StatUtils {
|
|
13
13
|
static getGroupLabel(cellValue, formulaRow, column, dateGranularity, geoGranularity, value) {
|
|
14
14
|
let {
|
|
@@ -17,20 +17,20 @@ class StatUtils {
|
|
|
17
17
|
data
|
|
18
18
|
} = column;
|
|
19
19
|
switch (type) {
|
|
20
|
-
case
|
|
20
|
+
case _dtableUtils.CellType.TEXT:
|
|
21
21
|
{
|
|
22
22
|
return cellValue || null;
|
|
23
23
|
}
|
|
24
|
-
case
|
|
24
|
+
case _dtableUtils.CellType.NUMBER:
|
|
25
25
|
{
|
|
26
26
|
if (!cellValue && cellValue !== 0) {
|
|
27
27
|
return null;
|
|
28
28
|
}
|
|
29
|
-
const number = (0,
|
|
29
|
+
const number = (0, _dtableUtils.getPrecisionNumber)(cellValue, data);
|
|
30
30
|
let valueNumber = parseFloat(number);
|
|
31
|
-
return (0,
|
|
31
|
+
return (0, _dtableUtils.isNumber)(valueNumber) ? (0, _dtableUtils.getNumberDisplayString)(valueNumber, column.data) : valueNumber;
|
|
32
32
|
}
|
|
33
|
-
case
|
|
33
|
+
case _dtableUtils.CellType.SINGLE_SELECT:
|
|
34
34
|
{
|
|
35
35
|
let isInvalidValue = data && data.options.findIndex(opt => opt.id === cellValue) < 0;
|
|
36
36
|
if (isInvalidValue) {
|
|
@@ -38,20 +38,20 @@ class StatUtils {
|
|
|
38
38
|
}
|
|
39
39
|
return cellValue;
|
|
40
40
|
}
|
|
41
|
-
case
|
|
42
|
-
case
|
|
43
|
-
case
|
|
41
|
+
case _dtableUtils.CellType.DATE:
|
|
42
|
+
case _dtableUtils.CellType.CTIME:
|
|
43
|
+
case _dtableUtils.CellType.MTIME:
|
|
44
44
|
{
|
|
45
45
|
if (!dateGranularity) {
|
|
46
|
-
return (0,
|
|
46
|
+
return (0, _dtableUtils.getDateDisplayString)(cellValue);
|
|
47
47
|
}
|
|
48
48
|
if (dateGranularity.toUpperCase() === 'QUARTER') {
|
|
49
49
|
// TODO: fix the unknown word 'QUARTAR'
|
|
50
|
-
return
|
|
50
|
+
return _dtableUtils.DateUtils.getDateByGranularity(cellValue, 'QUARTAR');
|
|
51
51
|
}
|
|
52
|
-
return
|
|
52
|
+
return _dtableUtils.DateUtils.getDateByGranularity(cellValue, dateGranularity);
|
|
53
53
|
}
|
|
54
|
-
case
|
|
54
|
+
case _dtableUtils.CellType.MULTIPLE_SELECT:
|
|
55
55
|
{
|
|
56
56
|
let options = data && data.options;
|
|
57
57
|
if (!Array.isArray(cellValue)) {
|
|
@@ -59,45 +59,45 @@ class StatUtils {
|
|
|
59
59
|
}
|
|
60
60
|
return cellValue.filter(id => options.findIndex(o => o.id === id) > -1);
|
|
61
61
|
}
|
|
62
|
-
case
|
|
62
|
+
case _dtableUtils.CellType.COLLABORATOR:
|
|
63
63
|
{
|
|
64
64
|
if (!Array.isArray(cellValue)) return [];
|
|
65
65
|
return cellValue.filter(email => (0, _collaborator.isValidCollaboratorEmail)(email));
|
|
66
66
|
}
|
|
67
|
-
case
|
|
68
|
-
case
|
|
67
|
+
case _dtableUtils.CellType.CREATOR:
|
|
68
|
+
case _dtableUtils.CellType.LAST_MODIFIER:
|
|
69
69
|
{
|
|
70
70
|
return cellValue ? cellValue : null;
|
|
71
71
|
}
|
|
72
|
-
case
|
|
73
|
-
case
|
|
72
|
+
case _dtableUtils.CellType.LINK_FORMULA:
|
|
73
|
+
case _dtableUtils.CellType.FORMULA:
|
|
74
74
|
{
|
|
75
75
|
if (!formulaRow) return '';
|
|
76
76
|
let formulaCellValue = formulaRow[key];
|
|
77
77
|
let {
|
|
78
78
|
result_type
|
|
79
79
|
} = data || {};
|
|
80
|
-
if (result_type ===
|
|
81
|
-
return (0,
|
|
80
|
+
if (result_type === _dtableUtils.FORMULA_RESULT_TYPE.ARRAY) {
|
|
81
|
+
return (0, _dtableUtils.getFormulaDisplayString)(formulaCellValue, data, {
|
|
82
82
|
tables: value.tables
|
|
83
83
|
}) || null;
|
|
84
84
|
}
|
|
85
|
-
if (result_type ===
|
|
86
|
-
return (0,
|
|
85
|
+
if (result_type === _dtableUtils.FORMULA_RESULT_TYPE.NUMBER) {
|
|
86
|
+
return (0, _dtableUtils.getPrecisionNumber)(formulaCellValue, data);
|
|
87
87
|
}
|
|
88
88
|
return formulaCellValue ? formulaCellValue + '' : null;
|
|
89
89
|
}
|
|
90
|
-
case
|
|
90
|
+
case _dtableUtils.CellType.GEOLOCATION:
|
|
91
91
|
{
|
|
92
92
|
const {
|
|
93
93
|
geo_format
|
|
94
94
|
} = data || {};
|
|
95
95
|
if (geo_format === 'country_region' || geo_format === 'lng_lat' || !geoGranularity) {
|
|
96
|
-
return (0,
|
|
96
|
+
return (0, _dtableUtils.getGeolocationDisplayString)(cellValue, data);
|
|
97
97
|
}
|
|
98
98
|
return cellValue ? cellValue[geoGranularity] : null;
|
|
99
99
|
}
|
|
100
|
-
case
|
|
100
|
+
case _dtableUtils.CellType.LINK:
|
|
101
101
|
{
|
|
102
102
|
const linkCellValue = formulaRow && formulaRow[key];
|
|
103
103
|
if (!Array.isArray(linkCellValue)) {
|
|
@@ -105,11 +105,11 @@ class StatUtils {
|
|
|
105
105
|
}
|
|
106
106
|
return linkCellValue.map(linkVal => linkVal.display_value);
|
|
107
107
|
}
|
|
108
|
-
case
|
|
108
|
+
case _dtableUtils.CellType.CHECKBOX:
|
|
109
109
|
{
|
|
110
110
|
return String(!!cellValue);
|
|
111
111
|
}
|
|
112
|
-
case
|
|
112
|
+
case _dtableUtils.CellType.RATE:
|
|
113
113
|
{
|
|
114
114
|
if (!cellValue) return null;
|
|
115
115
|
return cellValue + '';
|
|
@@ -127,7 +127,7 @@ class StatUtils {
|
|
|
127
127
|
} = column;
|
|
128
128
|
let sortType = 'up';
|
|
129
129
|
let option_id_index_map = {};
|
|
130
|
-
if (column_type ===
|
|
130
|
+
if (column_type === _dtableUtils.CellType.SINGLE_SELECT) {
|
|
131
131
|
const {
|
|
132
132
|
options
|
|
133
133
|
} = data || {};
|
|
@@ -150,7 +150,7 @@ class StatUtils {
|
|
|
150
150
|
}
|
|
151
151
|
if (SUPPORT_SORT_COLUMNS.includes(column_type)) {
|
|
152
152
|
switch (column_type) {
|
|
153
|
-
case
|
|
153
|
+
case _dtableUtils.CellType.NUMBER:
|
|
154
154
|
{
|
|
155
155
|
if (current) {
|
|
156
156
|
current = current - 0;
|
|
@@ -158,42 +158,42 @@ class StatUtils {
|
|
|
158
158
|
if (next) {
|
|
159
159
|
next = next - 0;
|
|
160
160
|
}
|
|
161
|
-
return (0,
|
|
161
|
+
return (0, _dtableUtils.sortNumber)(current, next, sortType);
|
|
162
162
|
}
|
|
163
|
-
case
|
|
164
|
-
case
|
|
165
|
-
case
|
|
163
|
+
case _dtableUtils.CellType.DATE:
|
|
164
|
+
case _dtableUtils.CellType.CTIME:
|
|
165
|
+
case _dtableUtils.CellType.MTIME:
|
|
166
166
|
{
|
|
167
|
-
return (0,
|
|
167
|
+
return (0, _dtableUtils.sortDate)(current, next, sortType);
|
|
168
168
|
}
|
|
169
|
-
case
|
|
170
|
-
case
|
|
169
|
+
case _dtableUtils.CellType.SINGLE_SELECT:
|
|
170
|
+
case _dtableUtils.CellType.MULTIPLE_SELECT:
|
|
171
171
|
{
|
|
172
|
-
return (0,
|
|
172
|
+
return (0, _dtableUtils.sortSingleSelect)(current, next, {
|
|
173
173
|
sort_type: sortType,
|
|
174
174
|
option_id_index_map
|
|
175
175
|
});
|
|
176
176
|
}
|
|
177
|
-
case
|
|
178
|
-
case
|
|
177
|
+
case _dtableUtils.CellType.FORMULA:
|
|
178
|
+
case _dtableUtils.CellType.LINK_FORMULA:
|
|
179
179
|
{
|
|
180
180
|
let {
|
|
181
181
|
result_type
|
|
182
182
|
} = data || {};
|
|
183
|
-
if (result_type ===
|
|
183
|
+
if (result_type === _dtableUtils.FORMULA_RESULT_TYPE.NUMBER) {
|
|
184
184
|
if (current) {
|
|
185
185
|
current = current - 0;
|
|
186
186
|
}
|
|
187
187
|
if (next) {
|
|
188
188
|
next = next - 0;
|
|
189
189
|
}
|
|
190
|
-
return (0,
|
|
190
|
+
return (0, _dtableUtils.sortNumber)(current, next, sortType);
|
|
191
191
|
}
|
|
192
|
-
return (0,
|
|
192
|
+
return (0, _dtableUtils.sortText)(current, next, sortType);
|
|
193
193
|
}
|
|
194
194
|
default:
|
|
195
195
|
{
|
|
196
|
-
return (0,
|
|
196
|
+
return (0, _dtableUtils.sortText)(current, next, sortType);
|
|
197
197
|
}
|
|
198
198
|
}
|
|
199
199
|
}
|
|
@@ -235,7 +235,7 @@ class StatUtils {
|
|
|
235
235
|
let existMap = {};
|
|
236
236
|
rows.forEach(r => {
|
|
237
237
|
let num;
|
|
238
|
-
if (
|
|
238
|
+
if (_dtableUtils.FORMULA_COLUMN_TYPES_MAP[summary_column_type]) {
|
|
239
239
|
const formulaRow = formula_rows[r._id] || {};
|
|
240
240
|
num = formulaRow[summary_column_key];
|
|
241
241
|
num = Array.isArray(num) ? num[0] : num;
|
|
@@ -264,14 +264,14 @@ class StatUtils {
|
|
|
264
264
|
let validNumbersCount = 0;
|
|
265
265
|
rows.forEach(r => {
|
|
266
266
|
let num;
|
|
267
|
-
if (
|
|
267
|
+
if (_dtableUtils.FORMULA_COLUMN_TYPES_MAP[summary_column_type]) {
|
|
268
268
|
let formulaRow = formula_rows[r._id] || {};
|
|
269
269
|
num = formulaRow[summary_column_key];
|
|
270
270
|
num = Array.isArray(num) ? num[0] : num;
|
|
271
271
|
} else {
|
|
272
272
|
num = r[summary_column_key];
|
|
273
273
|
}
|
|
274
|
-
if ((0,
|
|
274
|
+
if ((0, _dtableUtils.isNumber)(num)) {
|
|
275
275
|
validNumbersCount++;
|
|
276
276
|
sum += num;
|
|
277
277
|
}
|
|
@@ -289,7 +289,7 @@ class StatUtils {
|
|
|
289
289
|
if (rowsLength > 0) {
|
|
290
290
|
let result = rows.reduce((current, next) => {
|
|
291
291
|
let currentValue, nextValue;
|
|
292
|
-
if (
|
|
292
|
+
if (_dtableUtils.FORMULA_COLUMN_TYPES_MAP[summary_column_type]) {
|
|
293
293
|
let currentFormulaRow = formula_rows[current._id];
|
|
294
294
|
let nextFormulaRow = formula_rows[next._id];
|
|
295
295
|
currentValue = currentFormulaRow && currentFormulaRow[summary_column_key];
|
|
@@ -310,7 +310,7 @@ class StatUtils {
|
|
|
310
310
|
return isNextGreater ? next : current;
|
|
311
311
|
}
|
|
312
312
|
});
|
|
313
|
-
if (
|
|
313
|
+
if (_dtableUtils.FORMULA_COLUMN_TYPES_MAP[summary_column_type]) {
|
|
314
314
|
let formulaRow = formula_rows[result._id];
|
|
315
315
|
total = formulaRow && formulaRow[summary_column_key];
|
|
316
316
|
total = Array.isArray(total) ? total[0] : total;
|
|
@@ -339,10 +339,10 @@ class StatUtils {
|
|
|
339
339
|
type,
|
|
340
340
|
data
|
|
341
341
|
} = column;
|
|
342
|
-
if ((0,
|
|
343
|
-
return (0,
|
|
342
|
+
if ((0, _dtableUtils.isNumericColumn)(column)) {
|
|
343
|
+
return (0, _dtableUtils.getNumberDisplayString)(value, data);
|
|
344
344
|
}
|
|
345
|
-
if (
|
|
345
|
+
if (_dtableUtils.FORMULA_COLUMN_TYPES_MAP[type]) {
|
|
346
346
|
return (0, _utils.getClientFormulaDisplayString)(value, data);
|
|
347
347
|
}
|
|
348
348
|
return value;
|
package/es/utils/trend-utils.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dtable-statistic",
|
|
3
|
-
"version": "4.3.
|
|
3
|
+
"version": "4.3.8",
|
|
4
4
|
"description": "statistics",
|
|
5
5
|
"main": "dist/dtable-statistic.js",
|
|
6
6
|
"author": "seafile",
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
"@seafile/seafile-calendar": "0.0.24",
|
|
13
13
|
"comlink": "^4.3.1",
|
|
14
14
|
"dayjs": "1.10.7",
|
|
15
|
-
"dtable-
|
|
15
|
+
"dtable-utils": "4.3.3",
|
|
16
16
|
"dtable-web-api": "4.3.5",
|
|
17
17
|
"glamor": "^2.20.40",
|
|
18
18
|
"html2canvas": "^1.4.1",
|
|
@@ -31,6 +31,7 @@
|
|
|
31
31
|
"devDependencies": {
|
|
32
32
|
"@babel/cli": "7.22.15",
|
|
33
33
|
"@babel/core": "^7.16.0",
|
|
34
|
+
"@babel/eslint-parser": "^7.16.3",
|
|
34
35
|
"@babel/plugin-proposal-private-property-in-object": "7.21.11",
|
|
35
36
|
"@babel/plugin-transform-runtime": "7.22.10",
|
|
36
37
|
"@babel/runtime": "7.22.11",
|
|
@@ -39,8 +40,8 @@
|
|
|
39
40
|
"@testing-library/jest-dom": "5.17.0",
|
|
40
41
|
"@testing-library/react": "^11.1.0",
|
|
41
42
|
"@testing-library/user-event": "13.5.0",
|
|
43
|
+
"@types/jest": "^29.5.10",
|
|
42
44
|
"autoprefixer": "10.4.5",
|
|
43
|
-
"babel-eslint": "10.0.1",
|
|
44
45
|
"babel-jest": "^27.4.2",
|
|
45
46
|
"babel-loader": "^8.2.3",
|
|
46
47
|
"babel-plugin-import": "^1.13.6",
|
|
@@ -51,10 +52,12 @@
|
|
|
51
52
|
"browserslist": "^4.18.1",
|
|
52
53
|
"camelcase": "^6.2.1",
|
|
53
54
|
"case-sensitive-paths-webpack-plugin": "^2.4.0",
|
|
55
|
+
"circular-dependency-plugin": "^5.2.2",
|
|
54
56
|
"css-loader": "^6.5.1",
|
|
55
57
|
"css-minimizer-webpack-plugin": "^3.2.0",
|
|
56
58
|
"dotenv": "^10.0.0",
|
|
57
59
|
"dotenv-expand": "^5.1.0",
|
|
60
|
+
"dtable-store": "4.3.6",
|
|
58
61
|
"eslint": "^8.3.0",
|
|
59
62
|
"eslint-config-react-app": "^7.0.1",
|
|
60
63
|
"eslint-webpack-plugin": "^3.1.1",
|