dtable-statistic 4.4.24-alpha.9 → 5.0.0

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.
Files changed (198) hide show
  1. package/es/assets/css/color-picker.css +53 -0
  2. package/es/assets/css/color-rules-popover.css +144 -0
  3. package/es/assets/css/dashboard.css +0 -1
  4. package/es/assets/css/dialog.css +0 -30
  5. package/es/assets/css/slider.css +77 -0
  6. package/es/assets/css/statistic-chart.module.css +11 -0
  7. package/es/assets/css/statistic-custom-title.module.css +3 -0
  8. package/es/assets/css/statistic-custom.module.css +4 -0
  9. package/es/assets/css/statistic-numeric-column-item.module.css +43 -0
  10. package/es/assets/css/statistic-time-picker.module.css +21 -0
  11. package/es/calculator/base-calculator.js +80 -0
  12. package/es/calculator/basic-chart-calculator.js +349 -0
  13. package/es/calculator/combination-calculator.js +246 -0
  14. package/es/calculator/compare-bar-calculator.js +197 -0
  15. package/es/calculator/completeness-calculator.js +215 -0
  16. package/es/calculator/copy-value.js +53 -0
  17. package/es/calculator/dashboard-calculator.js +70 -0
  18. package/es/calculator/heat-map-calculator.js +148 -0
  19. package/es/calculator/horizontal-bar-calculator.js +67 -0
  20. package/es/calculator/index.js +81 -0
  21. package/es/calculator/map-calculator.js +103 -0
  22. package/es/calculator/mirror-calculator.js +146 -0
  23. package/es/calculator/number-card-calculator.js +60 -0
  24. package/es/calculator/pivot-table-calculator.js +821 -0
  25. package/es/calculator/scatter-calculator.js +75 -0
  26. package/es/calculator/thread-manager.js +57 -0
  27. package/es/calculator/trend-calculator.js +113 -0
  28. package/es/calculator/workers/basic-chart-calculator-worker.js +495 -0
  29. package/es/calculator/workers/calculator.worker.js +44 -0
  30. package/es/calculator/workers/card-calculator-worker.js +40 -0
  31. package/es/calculator/workers/combination-calculator-worker.js +276 -0
  32. package/es/calculator/workers/compare-bar-chart-calculator-worker.js +150 -0
  33. package/es/calculator/workers/completeness-calculator-worker.js +208 -0
  34. package/es/calculator/workers/dashboard-calculator-worker.js +68 -0
  35. package/es/calculator/workers/mirror-calculator-worker.js +152 -0
  36. package/es/calculator/workers/pivot-table-calculator-worker.js +718 -0
  37. package/es/calculator/workers/scatter-calculator-worker.js +80 -0
  38. package/es/calculator/workers/trend-calculator-worker.js +108 -0
  39. package/es/calculator/world-map-calculator.js +124 -0
  40. package/es/components/dialog/chart-addition-edit-dialog.js +90 -0
  41. package/es/components/dialog/chart-addition-widgets/chart-selector.js +259 -0
  42. package/es/components/dialog/chart-addition-widgets/statistic-chart-selector.module.css +83 -0
  43. package/es/components/dialog/enlarged-chart-dialog.js +13 -8
  44. package/es/components/dialog/statistic-record-dialog/index.js +34 -25
  45. package/es/components/dialog/statistic-types-dialog/index.css +14 -0
  46. package/es/components/dialog/statistic-types-dialog/index.js +62 -0
  47. package/es/components/dropdown-menu/statistic-dropdown-menu.js +2 -2
  48. package/es/components/popover/color-rules/color-rule.js +183 -0
  49. package/es/components/popover/color-rules/index.js +87 -0
  50. package/es/components/popover/color-rules/rule-filters/filter.js +221 -0
  51. package/es/components/popover/color-rules/rule-filters/index.css +210 -0
  52. package/es/components/popover/color-rules/rule-filters/index.js +97 -0
  53. package/es/components/popover/color-rules/rule-filters/number-input.js +78 -0
  54. package/es/components/popover/color-rules-popover.js +218 -0
  55. package/es/components/popover/color-selector-popover.js +83 -0
  56. package/es/constants/index.js +2 -1
  57. package/es/custom-g2.js +644 -0
  58. package/es/dashboard.js +31 -9
  59. package/es/desktop-dashboard.js +32 -51
  60. package/es/mobile-dashboard.js +16 -8
  61. package/es/model/bar-group.js +58 -0
  62. package/es/model/bar.js +47 -0
  63. package/es/model/base-model.js +18 -0
  64. package/es/model/basic-number-card.js +25 -0
  65. package/es/model/combination.js +48 -0
  66. package/es/model/compare-bar.js +56 -0
  67. package/es/model/completeness-group.js +31 -0
  68. package/es/model/completeness.js +25 -0
  69. package/es/model/custom-bar.js +25 -0
  70. package/es/model/dashboard.js +20 -0
  71. package/es/model/generic-model.js +222 -0
  72. package/es/model/heat-map.js +33 -0
  73. package/es/model/horizontal-bar-group.js +55 -0
  74. package/es/model/horizontal-bar.js +47 -0
  75. package/es/model/index.js +187 -0
  76. package/es/model/map.js +38 -0
  77. package/es/model/mirror.js +33 -0
  78. package/es/model/pie.js +38 -0
  79. package/es/model/ring.js +40 -0
  80. package/es/model/scatter.js +22 -0
  81. package/es/model/table.js +32 -0
  82. package/es/model/trend.js +32 -0
  83. package/es/model/world-map.js +34 -0
  84. package/es/service/chart-service.js +15 -8
  85. package/es/service/dashboard-service.js +29 -25
  86. package/es/stat-editor/chart-name-editor.js +68 -0
  87. package/es/stat-editor/index.js +75 -0
  88. package/es/stat-editor/stat-settings/advance-chart-settings/basic-number-card-settings.js +153 -0
  89. package/es/stat-editor/stat-settings/advance-chart-settings/combination-settings.js +422 -0
  90. package/es/stat-editor/stat-settings/advance-chart-settings/dashboard-chart-settings.js +203 -0
  91. package/es/stat-editor/stat-settings/advance-chart-settings/geo-granularity-settings.js +23 -0
  92. package/es/stat-editor/stat-settings/advance-chart-settings/heat-map-settings.js +104 -0
  93. package/es/stat-editor/stat-settings/advance-chart-settings/index.js +334 -0
  94. package/es/stat-editor/stat-settings/advance-chart-settings/map-settings.js +119 -0
  95. package/es/stat-editor/stat-settings/advance-chart-settings/mirror-settings.js +132 -0
  96. package/es/stat-editor/stat-settings/advance-chart-settings/style-setting/combination-style-setting.js +240 -0
  97. package/es/stat-editor/stat-settings/advance-chart-settings/style-setting/heat-map-settings.js +89 -0
  98. package/es/stat-editor/stat-settings/advance-chart-settings/style-setting/map-setting.js +138 -0
  99. package/es/stat-editor/stat-settings/advance-chart-settings/summary-settings.js +331 -0
  100. package/es/stat-editor/stat-settings/advance-chart-settings/trend-chart-settings.js +143 -0
  101. package/es/stat-editor/stat-settings/advance-chart-settings/world-map-settings.js +109 -0
  102. package/es/stat-editor/stat-settings/basic-chart-settings/advance-bar-chart-settings.js +153 -0
  103. package/es/stat-editor/stat-settings/basic-chart-settings/bar-settings.js +144 -0
  104. package/es/stat-editor/stat-settings/basic-chart-settings/completeness-chart-settings.js +214 -0
  105. package/es/stat-editor/stat-settings/basic-chart-settings/custom-bar-settings.js +121 -0
  106. package/es/stat-editor/stat-settings/basic-chart-settings/groupby-settings.js +172 -0
  107. package/es/stat-editor/stat-settings/basic-chart-settings/horizontal-axis-group-settings.js +366 -0
  108. package/es/stat-editor/stat-settings/basic-chart-settings/horizontal-bar-settings.js +142 -0
  109. package/es/stat-editor/stat-settings/basic-chart-settings/horizontal-group-chart-settings.js +150 -0
  110. package/es/stat-editor/stat-settings/basic-chart-settings/index.js +473 -0
  111. package/es/stat-editor/stat-settings/basic-chart-settings/pie-settings.js +182 -0
  112. package/es/stat-editor/stat-settings/basic-chart-settings/pivot-table-settings.js +564 -0
  113. package/es/stat-editor/stat-settings/basic-chart-settings/scatter-settings.js +112 -0
  114. package/es/stat-editor/stat-settings/basic-chart-settings/stack-item-settings.js +87 -0
  115. package/es/stat-editor/stat-settings/basic-chart-settings/stacks-settings.js +187 -0
  116. package/es/stat-editor/stat-settings/basic-chart-settings/style-setting/bar-chart-style-setting.js +300 -0
  117. package/es/stat-editor/stat-settings/basic-chart-settings/style-setting/completeness-style.js +113 -0
  118. package/es/stat-editor/stat-settings/basic-chart-settings/style-setting/horizontal-bar-chart-style.js +289 -0
  119. package/es/stat-editor/stat-settings/basic-chart-settings/style-setting/label-font-size-editor.js +58 -0
  120. package/es/stat-editor/stat-settings/basic-chart-settings/style-setting/pie-chart-style-settings.js +359 -0
  121. package/es/stat-editor/stat-settings/basic-chart-settings/style-setting/time-compare-style.js +48 -0
  122. package/es/stat-editor/stat-settings/basic-chart-settings/summary-method-setting.js +121 -0
  123. package/es/stat-editor/stat-settings/basic-chart-settings/summary-settings.js +143 -0
  124. package/es/stat-editor/stat-settings/basic-chart-settings/time-comparison-settings.js +269 -0
  125. package/es/stat-editor/stat-settings/basic-chart-settings/timer-picker.js +104 -0
  126. package/es/stat-editor/stat-settings/basic-chart-settings/y-axis-group-settings.js +366 -0
  127. package/es/stat-editor/stat-settings/color-setting/color-group-selector.js +55 -0
  128. package/es/stat-editor/stat-settings/color-setting/color-picker.js +130 -0
  129. package/es/stat-editor/stat-settings/color-setting/color-use-type-selector.js +374 -0
  130. package/es/stat-editor/stat-settings/map/map-level.js +72 -0
  131. package/es/stat-editor/stat-settings/map/map-province-city.js +151 -0
  132. package/es/stat-editor/stat-settings/public-setting/axis-label-position-setting.js +108 -0
  133. package/es/stat-editor/stat-settings/public-setting/base-settings.js +154 -0
  134. package/es/stat-editor/stat-settings/public-setting/calender.js +125 -0
  135. package/es/stat-editor/stat-settings/public-setting/column-settings.js +24 -0
  136. package/es/stat-editor/stat-settings/public-setting/custom-title-setting.js +62 -0
  137. package/es/stat-editor/stat-settings/public-setting/data-sort-setting.js +61 -0
  138. package/es/stat-editor/stat-settings/public-setting/ind-toggle-setting.js +35 -0
  139. package/es/stat-editor/stat-settings/public-setting/min-max-setting.js +60 -0
  140. package/es/stat-editor/stat-settings/public-setting/numeric-summary-item.js +123 -0
  141. package/es/stat-editor/stat-settings/public-setting/toggle-setting.js +33 -0
  142. package/es/stat-editor/stat-settings/public-setting/type-settings/index.css +29 -0
  143. package/es/stat-editor/stat-settings/public-setting/type-settings/index.js +82 -0
  144. package/es/stat-list/chart-preview.js +20 -19
  145. package/es/stat-list/index.js +21 -15
  146. package/es/stat-view/area-chart.js +551 -0
  147. package/es/stat-view/bar-chart.js +582 -0
  148. package/es/stat-view/base-chart.js +132 -0
  149. package/es/stat-view/basic-number-card.js +201 -0
  150. package/es/stat-view/combination-chart.js +546 -0
  151. package/es/stat-view/compare-chart.js +483 -0
  152. package/es/stat-view/completeness-chart.js +390 -0
  153. package/es/stat-view/custom-bar.js +418 -0
  154. package/es/stat-view/dashboard-chart.js +266 -0
  155. package/es/stat-view/heat-map.js +463 -0
  156. package/es/stat-view/horizontal-bar-chart.js +562 -0
  157. package/es/stat-view/index.js +156 -47
  158. package/es/stat-view/line-chart.js +518 -0
  159. package/es/stat-view/map.js +448 -0
  160. package/es/stat-view/mirror.js +275 -0
  161. package/es/stat-view/pie-chart.js +290 -0
  162. package/es/stat-view/pivot-table/index.js +196 -0
  163. package/es/stat-view/pivot-table/one-dimension-table-no-numeric-columns.js +156 -0
  164. package/es/stat-view/pivot-table/one-dimension-table-with-numeric-columns.js +176 -0
  165. package/es/stat-view/pivot-table/pivot-table-display-name.js +215 -0
  166. package/es/stat-view/pivot-table/statistic-pivot-table.module.css +132 -0
  167. package/es/stat-view/pivot-table/two-dimension-table.js +384 -0
  168. package/es/stat-view/ring-chart.js +392 -0
  169. package/es/stat-view/scatter-chart.js +306 -0
  170. package/es/stat-view/treemap-chart.js +253 -0
  171. package/es/stat-view/trend-chart.js +249 -0
  172. package/es/stat-view/world-map.js +431 -0
  173. package/es/tabs/tab.js +2 -2
  174. package/es/utils/basic-chart-utils.js +29 -0
  175. package/es/utils/cell-format.js +115 -0
  176. package/es/utils/collaborator.js +50 -0
  177. package/es/utils/color-utils.js +134 -0
  178. package/es/utils/column-utils.js +110 -0
  179. package/es/utils/column.js +20 -0
  180. package/es/utils/common-utils.js +352 -2
  181. package/es/utils/date-format.js +71 -0
  182. package/es/utils/export-table-utils.js +69 -0
  183. package/es/utils/index.js +89 -12
  184. package/es/utils/map.js +114 -0
  185. package/es/utils/model.js +19 -0
  186. package/es/utils/row-utils.js +134 -0
  187. package/es/utils/search.js +73 -0
  188. package/es/utils/sql-utils.js +359 -0
  189. package/es/utils/stat-utils.js +351 -0
  190. package/es/utils/trend-utils.js +135 -0
  191. package/package.json +8 -6
  192. package/es/components/dialog/chart-edit-dialog.js +0 -93
  193. package/es/components/dtable-popover.js +0 -97
  194. package/es/components/dtable-search-input.js +0 -135
  195. package/es/components/index.js +0 -41
  196. package/es/components/loading.js +0 -15
  197. package/es/components/modal-portal.js +0 -26
  198. package/es/model/conver-statItem.js +0 -124
@@ -0,0 +1,83 @@
1
+ .statistic-types-container {
2
+ position: relative;
3
+ }
4
+
5
+ .statistic-type-image-container {
6
+ padding: 0 12px;
7
+ }
8
+
9
+ .statistic-type {
10
+ position: relative;
11
+ padding: 0 16px 16px 16px;
12
+ }
13
+
14
+ .statistic-type::before {
15
+ content: '';
16
+ display: block;
17
+ width: 100%;
18
+ height: 20px;
19
+ }
20
+
21
+ .statistic-type-demo-chart-image {
22
+ width: 100%;
23
+ height: 125px;
24
+ }
25
+
26
+ .statistic-type-title {
27
+ font-weight: 600;
28
+ font-size: 18px;
29
+ color: #212529;
30
+ }
31
+
32
+ .chart-categories-nav {
33
+ border-bottom: 1px solid #e9ecef;
34
+ background-color: #f9f9f9;
35
+ height: 50px;
36
+ box-sizing: border-box;
37
+ margin: 0;
38
+ }
39
+
40
+ .chart-cat-nav-item {
41
+ font-size: 14px;
42
+ color: #666;
43
+ }
44
+
45
+ .statistic-type-item {
46
+ height: 172px;
47
+ width: 250px;
48
+ cursor: pointer;
49
+ border: 1px solid #dcdade;
50
+ border-radius: 4px;
51
+ box-shadow: 0 0 2px 0 rgba(0,0,0,.1);
52
+ margin: 20px 17px 0 0;
53
+ }
54
+
55
+ .statistic-type-item:hover {
56
+ border-color: #FFBF7F;
57
+ }
58
+
59
+ .statistic-type-item-selected,
60
+ .statistic-type-item-selected:hover {
61
+ border-color: #FF8000;
62
+ }
63
+
64
+ .statistic-type-description {
65
+ font-weight: 500;
66
+ font-size: 14px;
67
+ margin-top: 14px;
68
+ padding: 0 15px;
69
+ margin-bottom: 10px;
70
+ }
71
+
72
+ .chart-icon {
73
+ cursor: pointer;
74
+ color: #666666;
75
+ }
76
+
77
+ .chart-icon:not(.icon-highlight):hover {
78
+ color: #212529;
79
+ }
80
+
81
+ .icon-highlight {
82
+ color: #ff8000;
83
+ }
@@ -10,8 +10,8 @@ var _react = _interopRequireWildcard(require("react"));
10
10
  var _reactDom = _interopRequireDefault(require("react-dom"));
11
11
  var _html2canvas = _interopRequireDefault(require("html2canvas"));
12
12
  var _reactstrap = require("reactstrap");
13
- var _seaChart = require("sea-chart");
14
13
  var _statView = _interopRequireDefault(require("../../stat-view"));
14
+ var _constants = require("../../constants");
15
15
  class EnlargeChartDialog extends _react.Component {
16
16
  constructor() {
17
17
  super(...arguments);
@@ -25,18 +25,23 @@ class EnlargeChartDialog extends _react.Component {
25
25
  this.renderStatisticView = () => {
26
26
  const {
27
27
  colorThemeName,
28
+ dtableChangedTime,
28
29
  statItem,
30
+ eventBus,
31
+ chartCalculator,
29
32
  getTableById,
30
- toggleStatisticRecordsDialog,
31
- api,
32
- value
33
+ toggleStatisticRecordsDialog
33
34
  } = this.props;
34
35
  const viewProps = {
36
+ isEnlarge: true,
37
+ isPreview: true,
38
+ dtableChangedTime,
35
39
  colorThemeName,
36
40
  statItem,
37
- api,
38
- value,
41
+ eventBus,
42
+ chartCalculator,
39
43
  getTableById,
44
+ queryMapJson: this.props.queryMapJson,
40
45
  toggleStatisticRecordsDialog
41
46
  };
42
47
  return /*#__PURE__*/_react.default.createElement("div", {
@@ -68,7 +73,7 @@ class EnlargeChartDialog extends _react.Component {
68
73
  }).then(canvas => {
69
74
  let eleA = document.createElement('a');
70
75
  eleA.href = canvas.toDataURL('image/png');
71
- eleA.download = "".concat(this.props.statItem.style_config.title.text || 'image', ".png");
76
+ eleA.download = "".concat(this.props.statItem.name || 'image', ".png");
72
77
  eleA.click();
73
78
  document.body.removeChild(exportContainer);
74
79
  });
@@ -100,7 +105,7 @@ class EnlargeChartDialog extends _react.Component {
100
105
  }, /*#__PURE__*/_react.default.createElement("i", {
101
106
  className: "item-icon dtable-font dtable-icon-x"
102
107
  })))
103
- }, /*#__PURE__*/_react.default.createElement("span", null, statItem.config.type === _seaChart.CHART_TYPE.BASIC_NUMBER_CARD ? '' : this.props.statItem.style_config.title.text)), /*#__PURE__*/_react.default.createElement(_reactstrap.ModalBody, {
108
+ }, /*#__PURE__*/_react.default.createElement("span", null, statItem.type === _constants.STAT_TYPE.BASIC_NUMBER_CARD ? '' : statItem.name)), /*#__PURE__*/_react.default.createElement(_reactstrap.ModalBody, {
104
109
  className: 'statistic-body-container statistic-microscope-content'
105
110
  }, this.renderStatisticView()));
106
111
  }
@@ -9,13 +9,14 @@ exports.default = void 0;
9
9
  var _react = _interopRequireWildcard(require("react"));
10
10
  var _reactIntlUniversal = _interopRequireDefault(require("react-intl-universal"));
11
11
  var _reactstrap = require("reactstrap");
12
+ var _DTableSearchInput = _interopRequireDefault(require("dtable-ui-component/lib/DTableSearchInput"));
13
+ var _Loading = _interopRequireDefault(require("dtable-ui-component/lib/Loading"));
12
14
  var _dtableUtils = require("dtable-utils");
13
15
  var _dtableDbApi = _interopRequireDefault(require("../../../api/dtable-db-api"));
14
- var _index = require("../../index");
16
+ var _utils = require("../../../utils");
17
+ var _sqlUtils = require("../../../utils/sql-utils");
15
18
  var _constants = require("../../../constants");
16
19
  require("./index.css");
17
- // import { searchRows } from '../../../utils';
18
- // import { getSqlString } from '../../../utils/sql-utils';
19
20
  class StatisticRecordDialog extends _react.default.Component {
20
21
  constructor(props) {
21
22
  super(props);
@@ -46,16 +47,29 @@ class StatisticRecordDialog extends _react.default.Component {
46
47
  this.isArchiveView = (0, _dtableUtils.isArchiveView)(this.view);
47
48
  this.unShowColumnKeyList = this.getUnShowColumnKeyList(this.view);
48
49
  this.renderedColumns = this.getRenderedColumns(this.table);
49
- // if (this.isArchiveView || !records) {
50
- // const { username, userId, userDepartmentIdsMap } = window.dtable || {};
51
- // const sqlString = getSqlString(chart, statisticRecord, { isColumn, isCurrentView, isRow, getTableById, username, userId, userDepartmentIdsMap });
52
- // dtableDbAPI.sqlQuery(sqlString).then(res => {
53
- // const { results: rows } = res.data;
54
- // this.processDrilledRows(rows);
55
- // });
56
- // return;
57
- // }
58
-
50
+ if (this.isArchiveView || !records) {
51
+ const {
52
+ username,
53
+ userId,
54
+ userDepartmentIdsMap
55
+ } = window.dtable || {};
56
+ const sqlString = (0, _sqlUtils.getSqlString)(chart, statisticRecord, {
57
+ isColumn,
58
+ isCurrentView,
59
+ isRow,
60
+ getTableById,
61
+ username,
62
+ userId,
63
+ userDepartmentIdsMap
64
+ });
65
+ _dtableDbApi.default.sqlQuery(sqlString).then(res => {
66
+ const {
67
+ results: rows
68
+ } = res.data;
69
+ this.processDrilledRows(rows);
70
+ });
71
+ return;
72
+ }
59
73
  this.processDrilledRows(records);
60
74
  };
61
75
  this.processDrilledRows = drilledRows => {
@@ -125,16 +139,11 @@ class StatisticRecordDialog extends _react.default.Component {
125
139
  };
126
140
  this.getSearchedRows = (rows, searchVal) => {
127
141
  if (!Array.isArray(rows) || rows.length === 0) return [];
128
- // if (searchVal) {
129
- // return searchRows(
130
- // rows,
131
- // getViewShownColumns(this.view, this.table.columns),
132
- // searchVal,
133
- // (row) => {
134
- // return row;
135
- // },
136
- // ).map((row) => row._id);
137
- // }
142
+ if (searchVal) {
143
+ return (0, _utils.searchRows)(rows, (0, _dtableUtils.getViewShownColumns)(this.view, this.table.columns), searchVal, row => {
144
+ return row;
145
+ }).map(row => row._id);
146
+ }
138
147
  return rows.map(row => row._id);
139
148
  };
140
149
  this.getRowsByIds = rowsIds => {
@@ -314,7 +323,7 @@ class StatisticRecordDialog extends _react.default.Component {
314
323
  className: "search-input-container"
315
324
  }, /*#__PURE__*/_react.default.createElement("i", {
316
325
  className: "header-search-icon dtable-font dtable-icon-search"
317
- }), /*#__PURE__*/_react.default.createElement(_index.DtableSearchInput, {
326
+ }), /*#__PURE__*/_react.default.createElement(_DTableSearchInput.default, {
318
327
  autoFocus: true,
319
328
  isClearable: true,
320
329
  className: "search-tables-input",
@@ -337,7 +346,7 @@ class StatisticRecordDialog extends _react.default.Component {
337
346
  className: "statistic-records-container"
338
347
  }, loading ? /*#__PURE__*/_react.default.createElement("div", {
339
348
  className: "d-flex py-8"
340
- }, /*#__PURE__*/_react.default.createElement(_index.Loading, null)) : this.renderRowsCards())));
349
+ }, /*#__PURE__*/_react.default.createElement(_Loading.default, null)) : this.renderRowsCards())));
341
350
  }
342
351
  }
343
352
  var _default = exports.default = StatisticRecordDialog;
@@ -0,0 +1,14 @@
1
+ .statistic-types-dialog {
2
+ max-width: 1102px;
3
+ width: 1102px;
4
+ height: calc(100% - 56px);
5
+ }
6
+
7
+ .statistic-types-dialog .modal-content {
8
+ height: 100%;
9
+ }
10
+
11
+ .statistic-types-dialog .statistic-types-body {
12
+ padding: 0;
13
+ overflow: hidden;
14
+ }
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+ var _react = _interopRequireWildcard(require("react"));
10
+ var _reactIntlUniversal = _interopRequireDefault(require("react-intl-universal"));
11
+ var _reactstrap = require("reactstrap");
12
+ var _chartSelector = _interopRequireDefault(require("../chart-addition-widgets/chart-selector"));
13
+ require("./index.css");
14
+ class StatisticTypesDialog extends _react.Component {
15
+ constructor(props) {
16
+ super(props);
17
+ this.onToggle = () => {
18
+ this.props.onToggle();
19
+ };
20
+ this.onSelectStatisticType = type => {
21
+ if (type === this.state.selectedType) return;
22
+ this.setState({
23
+ selectedType: type
24
+ });
25
+ };
26
+ this.onSubmit = () => {
27
+ const {
28
+ selectedType
29
+ } = this.state;
30
+ this.props.onChange(selectedType);
31
+ this.onToggle();
32
+ };
33
+ this.state = {
34
+ selectedType: props.type
35
+ };
36
+ }
37
+ render() {
38
+ const {
39
+ selectedType
40
+ } = this.state;
41
+ return /*#__PURE__*/_react.default.createElement(_reactstrap.Modal, {
42
+ isOpen: true,
43
+ toggle: this.onToggle,
44
+ className: "statistic-types-dialog",
45
+ zIndex: 1048
46
+ }, /*#__PURE__*/_react.default.createElement(_reactstrap.ModalHeader, {
47
+ toggle: this.onToggle
48
+ }, _reactIntlUniversal.default.get('Edit_type')), /*#__PURE__*/_react.default.createElement(_reactstrap.ModalBody, {
49
+ className: "statistic-types-body"
50
+ }, /*#__PURE__*/_react.default.createElement(_chartSelector.default, {
51
+ selectedType: selectedType,
52
+ addEditingChart: this.onSelectStatisticType
53
+ })), /*#__PURE__*/_react.default.createElement(_reactstrap.ModalFooter, null, /*#__PURE__*/_react.default.createElement(_reactstrap.Button, {
54
+ color: "secondary",
55
+ onClick: this.onToggle
56
+ }, _reactIntlUniversal.default.get('Cancel')), /*#__PURE__*/_react.default.createElement(_reactstrap.Button, {
57
+ color: "primary",
58
+ onClick: this.onSubmit
59
+ }, _reactIntlUniversal.default.get('Submit'))));
60
+ }
61
+ }
62
+ var _default = exports.default = StatisticTypesDialog;
@@ -9,7 +9,7 @@ exports.default = void 0;
9
9
  var _react = _interopRequireWildcard(require("react"));
10
10
  var _reactIntlUniversal = _interopRequireDefault(require("react-intl-universal"));
11
11
  var _reactstrap = require("reactstrap");
12
- var _seaChart = require("sea-chart");
12
+ var _constants = require("../../constants");
13
13
  var _icon = _interopRequireDefault(require("../icon"));
14
14
  class StatisticDropdownMenu extends _react.default.Component {
15
15
  constructor(props) {
@@ -90,7 +90,7 @@ class StatisticDropdownMenu extends _react.default.Component {
90
90
  className: "item-icon dtable-font dtable-icon-copy"
91
91
  }), /*#__PURE__*/_react.default.createElement("span", {
92
92
  className: "item-text"
93
- }, _reactIntlUniversal.default.get('Duplicate')))), chartType === _seaChart.CHART_TYPE.TABLE && !isTableReadOnly && /*#__PURE__*/_react.default.createElement(_react.Fragment, null, /*#__PURE__*/_react.default.createElement(_reactstrap.DropdownItem, {
93
+ }, _reactIntlUniversal.default.get('Duplicate')))), chartType === _constants.STAT_TYPE.PIVOT_TABLE && !isTableReadOnly && /*#__PURE__*/_react.default.createElement(_react.Fragment, null, /*#__PURE__*/_react.default.createElement(_reactstrap.DropdownItem, {
94
94
  onClick: this.props.onNewTableDialogToggle
95
95
  }, /*#__PURE__*/_react.default.createElement("i", {
96
96
  className: "item-icon dtable-font dtable-icon-export"
@@ -0,0 +1,183 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+ var _react = _interopRequireWildcard(require("react"));
10
+ var _classnames = _interopRequireDefault(require("classnames"));
11
+ var _reactIntlUniversal = _interopRequireDefault(require("react-intl-universal"));
12
+ var _DTableCommonAddTool = _interopRequireDefault(require("dtable-ui-component/lib/DTableCommonAddTool"));
13
+ var _ruleFilters = _interopRequireDefault(require("./rule-filters"));
14
+ var _colorSelectorPopover = _interopRequireDefault(require("../color-selector-popover"));
15
+ class ColorRule extends _react.Component {
16
+ constructor(props) {
17
+ super(props);
18
+ this.onColorPopoverToggle = event => {
19
+ event.stopPropagation();
20
+ event.nativeEvent.stopImmediatePropagation();
21
+ this.setState({
22
+ isColorPopoverShow: !this.state.isColorPopoverShow
23
+ });
24
+ };
25
+ this.hideColorPopover = () => {
26
+ this.setState({
27
+ isColorPopoverShow: false
28
+ });
29
+ };
30
+ this.onSelectColor = color => {
31
+ const {
32
+ rule,
33
+ ruleIndex
34
+ } = this.props;
35
+ const updatedRule = Object.assign({}, rule, {
36
+ color
37
+ });
38
+ this.props.updateRule(ruleIndex, updatedRule);
39
+ };
40
+ this.deleteRule = e => {
41
+ e.nativeEvent.stopImmediatePropagation();
42
+ e.stopPropagation();
43
+ const {
44
+ ruleIndex
45
+ } = this.props;
46
+ this.props.deleteRule(ruleIndex);
47
+ };
48
+ this.addFilter = () => {
49
+ const {
50
+ colorRuleTypes,
51
+ rule
52
+ } = this.props;
53
+ const {
54
+ filters
55
+ } = rule;
56
+ const defaultFilter = this.props.generateDefaultFilter(colorRuleTypes[0]);
57
+ if (!defaultFilter || filters.length >= 8) return;
58
+ let updatedFilters = [...filters];
59
+ updatedFilters.push(defaultFilter);
60
+ this.updateFilters(updatedFilters);
61
+ };
62
+ this.updateFilter = (filterIndex, updatedFilter) => {
63
+ const {
64
+ rule
65
+ } = this.props;
66
+ const {
67
+ filters
68
+ } = rule;
69
+ let updatedFilters = [...filters];
70
+ updatedFilters[filterIndex] = updatedFilter;
71
+ this.updateFilters(updatedFilters);
72
+ };
73
+ this.modifyFilterConjunction = filterConjunction => {
74
+ const {
75
+ rule,
76
+ ruleIndex
77
+ } = this.props;
78
+ const updatedRule = Object.assign({}, rule, {
79
+ filter_conjunction: filterConjunction
80
+ });
81
+ this.props.updateRule(ruleIndex, updatedRule);
82
+ };
83
+ this.updateFilters = filters => {
84
+ const {
85
+ rule,
86
+ ruleIndex
87
+ } = this.props;
88
+ if (filters.length === 0) {
89
+ this.props.deleteRule(ruleIndex);
90
+ } else {
91
+ const updatedRule = Object.assign({}, rule, {
92
+ filters
93
+ });
94
+ this.props.updateRule(ruleIndex, updatedRule);
95
+ }
96
+ };
97
+ this.onMouseDown = e => {
98
+ e.stopPropagation();
99
+ e.nativeEvent.stopImmediatePropagation();
100
+ };
101
+ this.state = {
102
+ isColorPopoverShow: false
103
+ };
104
+ }
105
+ render() {
106
+ const {
107
+ labelColorConfigs,
108
+ colorRuleTypes,
109
+ rule,
110
+ isEditing,
111
+ ruleIndex,
112
+ ruleName
113
+ } = this.props;
114
+ const {
115
+ color,
116
+ filter_conjunction,
117
+ filters
118
+ } = rule;
119
+ const target = "row-color-rule-".concat(ruleIndex);
120
+ const selectedColorConfig = this.props.getColorConfigByColor(color);
121
+ const ruleTitle = ruleName || _reactIntlUniversal.default.get('Define_rule');
122
+ const canAddFilter = filters.length < 8;
123
+ return /*#__PURE__*/_react.default.createElement("div", {
124
+ className: (0, _classnames.default)('statistic-color-rule-item', {
125
+ 'editing': isEditing
126
+ })
127
+ }, /*#__PURE__*/_react.default.createElement("div", {
128
+ className: "d-flex justify-content-between pr-4"
129
+ }, /*#__PURE__*/_react.default.createElement("div", {
130
+ className: "statistic-color-rule-title",
131
+ onClick: () => this.props.setEditingRuleIndex(ruleIndex)
132
+ }, /*#__PURE__*/_react.default.createElement("span", {
133
+ ref: ref => this.rowColorRule = ref,
134
+ className: "statistic-color-rule-dropdown",
135
+ style: {
136
+ backgroundColor: color
137
+ },
138
+ onMouseDown: this.onMouseDown,
139
+ onClick: this.onColorPopoverToggle,
140
+ id: target
141
+ }, /*#__PURE__*/_react.default.createElement("i", {
142
+ className: "dtable-font dtable-icon-drop-down",
143
+ style: {
144
+ color: selectedColorConfig.text_color
145
+ }
146
+ }), this.state.isColorPopoverShow && /*#__PURE__*/_react.default.createElement(_colorSelectorPopover.default, {
147
+ placement: "bottom-start",
148
+ hideArrow: false,
149
+ target: target,
150
+ selectedColor: color,
151
+ colorConfigs: labelColorConfigs,
152
+ toggle: this.hideColorPopover,
153
+ onSelectColor: this.onSelectColor
154
+ })), /*#__PURE__*/_react.default.createElement("div", {
155
+ className: (0, _classnames.default)('statistic-color-rule-name text-truncate', {
156
+ 'invalid': !!ruleName
157
+ }),
158
+ title: ruleTitle
159
+ }, ruleTitle)), /*#__PURE__*/_react.default.createElement("span", {
160
+ className: "statistic-delete-color-rule"
161
+ }, /*#__PURE__*/_react.default.createElement("i", {
162
+ className: "dtable-font dtable-icon-delete",
163
+ onClick: this.deleteRule
164
+ }))), isEditing && /*#__PURE__*/_react.default.createElement("div", {
165
+ className: "statistic-color-rule-filters-wrapper"
166
+ }, /*#__PURE__*/_react.default.createElement(_ruleFilters.default, {
167
+ filterTypes: colorRuleTypes,
168
+ filters: rule.filters,
169
+ filterConjunction: filter_conjunction,
170
+ getFilterConfigByType: this.props.getFilterConfigByType,
171
+ modifyConjunction: this.modifyFilterConjunction,
172
+ updateFilters: this.updateFilters
173
+ }), /*#__PURE__*/_react.default.createElement(_DTableCommonAddTool.default, {
174
+ className: (0, _classnames.default)('statistic-btn-add-color-rule-filter', {
175
+ 'disabled': !canAddFilter
176
+ }),
177
+ callBack: this.addFilter,
178
+ footerName: _reactIntlUniversal.default.get('Add_condition'),
179
+ addIconClassName: "popover-add-icon"
180
+ })));
181
+ }
182
+ }
183
+ var _default = exports.default = ColorRule;
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+ var _react = _interopRequireWildcard(require("react"));
10
+ var _colorRule = _interopRequireDefault(require("./color-rule"));
11
+ class ColorRules extends _react.Component {
12
+ constructor(props) {
13
+ super(props);
14
+ this.setEditingRuleIndex = editingRuleIndex => {
15
+ if (this.state.editingRuleIndex === editingRuleIndex) {
16
+ this.setState({
17
+ editingRuleIndex: -1
18
+ });
19
+ return;
20
+ }
21
+ this.setState({
22
+ editingRuleIndex
23
+ }, () => {
24
+ this.props.resetPopoverPosition();
25
+ });
26
+ };
27
+ this.updateRule = (ruleIndex, updatedRule) => {
28
+ const {
29
+ rules
30
+ } = this.props;
31
+ const isAddingFilter = updatedRule.filters.length > rules[ruleIndex].filters.length;
32
+ let updatedRules = [...rules];
33
+ updatedRules[ruleIndex] = updatedRule;
34
+ this.props.updateRules({
35
+ colorRules: updatedRules,
36
+ callback: () => {
37
+ isAddingFilter && this.props.resetPopoverPosition();
38
+ }
39
+ });
40
+ };
41
+ this.deleteRule = ruleIndex => {
42
+ const {
43
+ rules
44
+ } = this.props;
45
+ let updatedRules = [...rules];
46
+ updatedRules.splice(ruleIndex, 1);
47
+ this.props.updateRules({
48
+ colorRules: updatedRules
49
+ });
50
+ };
51
+ this.state = {
52
+ editingRuleIndex: -1
53
+ };
54
+ }
55
+ render() {
56
+ const {
57
+ rules,
58
+ labelColorConfigs,
59
+ colorRuleTypes,
60
+ rulesName
61
+ } = this.props;
62
+ const {
63
+ editingRuleIndex
64
+ } = this.state;
65
+ return /*#__PURE__*/_react.default.createElement("div", {
66
+ className: "statistic-color-rules"
67
+ }, rules.map((rule, ruleIndex) => {
68
+ const isEditing = editingRuleIndex === ruleIndex;
69
+ return /*#__PURE__*/_react.default.createElement(_colorRule.default, {
70
+ key: "statistic-color-rule-".concat(ruleIndex),
71
+ ruleIndex: ruleIndex,
72
+ rule: rule,
73
+ labelColorConfigs: labelColorConfigs,
74
+ colorRuleTypes: colorRuleTypes,
75
+ isEditing: isEditing,
76
+ ruleName: rulesName[ruleIndex],
77
+ setEditingRuleIndex: this.setEditingRuleIndex,
78
+ getColorConfigByColor: this.props.getColorConfigByColor,
79
+ getFilterConfigByType: this.props.getFilterConfigByType,
80
+ generateDefaultFilter: this.props.generateDefaultFilter,
81
+ updateRule: this.updateRule,
82
+ deleteRule: this.deleteRule
83
+ });
84
+ }));
85
+ }
86
+ }
87
+ var _default = exports.default = ColorRules;