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,473 @@
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 _dtableUtils = require("dtable-utils");
13
+ var _toggleSetting = _interopRequireDefault(require("../public-setting/toggle-setting"));
14
+ var _pieSettings = _interopRequireDefault(require("./pie-settings"));
15
+ var _scatterSettings = _interopRequireDefault(require("./scatter-settings"));
16
+ var _barSettings = _interopRequireDefault(require("./bar-settings"));
17
+ var _advanceBarChartSettings = _interopRequireDefault(require("./advance-bar-chart-settings"));
18
+ var _horizontalBarSettings = _interopRequireDefault(require("./horizontal-bar-settings"));
19
+ var _horizontalGroupChartSettings = _interopRequireDefault(require("./horizontal-group-chart-settings"));
20
+ var _timeComparisonSettings = _interopRequireDefault(require("./time-comparison-settings"));
21
+ var _completenessChartSettings = _interopRequireDefault(require("./completeness-chart-settings"));
22
+ var _pivotTableSettings = _interopRequireDefault(require("./pivot-table-settings"));
23
+ var _customBarSettings = _interopRequireDefault(require("./custom-bar-settings"));
24
+ var _constants = require("../../../constants");
25
+ const DATE_GRANULARITY_LIST = [_constants.DATE_GRANULARITY.DAY, _constants.DATE_GRANULARITY.WEEK, _constants.DATE_GRANULARITY.MONTH, _constants.DATE_GRANULARITY.QUARTER, _constants.DATE_GRANULARITY.YEAR];
26
+ const GEOLOCATION_GRANULARITY_LIST = [_constants.GEOLOCATION_GRANULARITY.PROVINCE, _constants.GEOLOCATION_GRANULARITY.CITY, _constants.GEOLOCATION_GRANULARITY.DISTRICT];
27
+ class BasicChartSettings extends _react.Component {
28
+ constructor(props) {
29
+ super(props);
30
+ this.setData = selectedTable => {
31
+ this.availableColumns = this.getAvailableColumns(selectedTable.columns);
32
+ this.columnsOptions = this.getColumnsOptions(this.availableColumns);
33
+ this.generalColumnsOptions = this.getGeneralColumnsOptions(this.columnsOptions);
34
+ this.columnGroupbyColumnsOptions = this.getColumnGroupbyColumnsOptions(this.columnsOptions);
35
+ const numericColumns = this.getNumericColumns(this.availableColumns);
36
+ this.numericColumnsOptions = this.getColumnsOptions(numericColumns);
37
+ this.pivotTableSummaryColumnOptions = this.getPivotTableSummaryColumnOptions(this.availableColumns);
38
+ };
39
+ this.renderIncludeEmpty = () => {
40
+ const {
41
+ statItem
42
+ } = this.props;
43
+ const {
44
+ type,
45
+ groupby_include_empty_cells,
46
+ x_axis_include_empty,
47
+ vertical_axis_include_empty
48
+ } = statItem || {};
49
+ let includeEmptyCells;
50
+ if (type === _constants.STAT_TYPE.PIE || type === _constants.STAT_TYPE.RING || type === _constants.STAT_TYPE.TREEMAP || type === _constants.STAT_TYPE.PIVOT_TABLE) {
51
+ includeEmptyCells = groupby_include_empty_cells;
52
+ } else if (type === _constants.STAT_TYPE.HORIZONTAL_BAR || type === _constants.STAT_TYPE.HORIZONTAL_GROUP_BAR || type === _constants.STAT_TYPE.STACKED_HORIZONTAL_BAR) {
53
+ includeEmptyCells = vertical_axis_include_empty;
54
+ } else {
55
+ includeEmptyCells = x_axis_include_empty;
56
+ }
57
+ return /*#__PURE__*/_react.default.createElement("div", {
58
+ className: "mt-1"
59
+ }, /*#__PURE__*/_react.default.createElement(_toggleSetting.default, {
60
+ isChecked: includeEmptyCells || false,
61
+ handleToggleChange: this.onToggleIncludeEmpty,
62
+ label: _reactIntlUniversal.default.get('Including_empty_cell')
63
+ }));
64
+ };
65
+ this.getAvailableColumns = columns => {
66
+ if (!columns || !Array.isArray(columns)) return [];
67
+ return columns.filter(column => _constants.BASIC_CHART_COLUMN_LIST.includes(column.type));
68
+ };
69
+ this.getPivotTableSummaryColumnOptions = columns => {
70
+ const summaryColumns = columns.filter(column => {
71
+ return column && ((0, _dtableUtils.isNumericColumn)(column) || _constants.TIME_COLUMN_LIST.includes(column.type));
72
+ });
73
+ return this.getColumnsOptions(summaryColumns);
74
+ };
75
+ this.getColumnsOptions = columns => {
76
+ if (!Array.isArray(columns)) return [];
77
+ return columns.map(column => {
78
+ let option = _dtableUtils.COLUMN_OPTIONS.find(o => o.type === column.type) || {};
79
+ const {
80
+ name,
81
+ key,
82
+ type
83
+ } = column;
84
+ return {
85
+ label: /*#__PURE__*/_react.default.createElement(_react.Fragment, null, /*#__PURE__*/_react.default.createElement("span", {
86
+ className: "header-icon"
87
+ }, /*#__PURE__*/_react.default.createElement("i", {
88
+ className: option.iconClass
89
+ })), /*#__PURE__*/_react.default.createElement("span", {
90
+ className: "select-option-name"
91
+ }, name)),
92
+ value: {
93
+ name,
94
+ key,
95
+ type
96
+ }
97
+ };
98
+ });
99
+ };
100
+ this.getGeneralColumnsOptions = columnsOptions => {
101
+ const {
102
+ statItem
103
+ } = this.props;
104
+ const list = [...columnsOptions];
105
+ if (statItem.type === _constants.STAT_TYPE.PIVOT_TABLE) {
106
+ list.unshift({
107
+ label: /*#__PURE__*/_react.default.createElement(_react.Fragment, null, /*#__PURE__*/_react.default.createElement("span", {
108
+ className: "header-icon"
109
+ }), /*#__PURE__*/_react.default.createElement("span", {
110
+ style: {
111
+ color: '#999999'
112
+ },
113
+ className: "select-option-name"
114
+ }, _reactIntlUniversal.default.get('Not_used'))),
115
+ value: {
116
+ key: null
117
+ }
118
+ });
119
+ }
120
+ return list;
121
+ };
122
+ this.getColumnGroupbyColumnsOptions = columnsOptions => {
123
+ let statItem = this.props.statItem || {};
124
+ let availableOptions = columnsOptions.filter(o => o.value.key !== statItem.x_axis_column_key);
125
+ return availableOptions;
126
+ };
127
+ this.getNumericColumns = columns => {
128
+ if (!columns) return [];
129
+ return columns.filter(column => column && (0, _dtableUtils.isNumericColumn)(column));
130
+ };
131
+ this.getSelectedColumnOption = (key, columnsOptions) => {
132
+ if (!key || !Array.isArray(columnsOptions) || columnsOptions.length === 0) {
133
+ return null;
134
+ }
135
+ return columnsOptions.find(o => o.value.key === key) || columnsOptions[0];
136
+ };
137
+ this.getGranularityOptions = options => {
138
+ return options.map(g => {
139
+ return {
140
+ value: g,
141
+ label: /*#__PURE__*/_react.default.createElement("span", {
142
+ className: 'select-module select-module-name'
143
+ }, _reactIntlUniversal.default.get(_constants.STATISTICS_COUNT_SHOW[g]))
144
+ };
145
+ });
146
+ };
147
+ this.getSettingsByType = () => {
148
+ const {
149
+ statItem,
150
+ labelColorConfigs,
151
+ eventBus,
152
+ getTableById,
153
+ getTables,
154
+ getViews
155
+ } = this.props;
156
+ const {
157
+ selectedTable,
158
+ settingType
159
+ } = this.state;
160
+ const type = statItem.type;
161
+ switch (statItem.type) {
162
+ case _constants.STAT_TYPE.BAR:
163
+ case _constants.STAT_TYPE.LINE:
164
+ case _constants.STAT_TYPE.AREA_CHART:
165
+ {
166
+ return /*#__PURE__*/_react.default.createElement(_barSettings.default, {
167
+ settingType: settingType,
168
+ statItem: statItem,
169
+ labelColorConfigs: labelColorConfigs,
170
+ eventBus: eventBus,
171
+ getTables: getTables,
172
+ getViews: getViews,
173
+ getTableById: getTableById,
174
+ selectedTable: selectedTable,
175
+ generalColumnsOptions: this.generalColumnsOptions,
176
+ columnGroupbyColumnsOptions: this.columnGroupbyColumnsOptions,
177
+ numericColumnsOptions: this.numericColumnsOptions,
178
+ dateGranularityOptions: this.dateGranularityOptions,
179
+ geolocationGranularityOptions: this.geolocationGranularityOptions,
180
+ getSelectedColumnOption: this.getSelectedColumnOption,
181
+ getConvertedChart: this.props.getConvertedChart,
182
+ updateStatItem: this.props.updateStatItem,
183
+ renderIncludeEmpty: this.renderIncludeEmpty
184
+ });
185
+ }
186
+ case _constants.STAT_TYPE.COMPARE_BAR:
187
+ {
188
+ return /*#__PURE__*/_react.default.createElement(_timeComparisonSettings.default, {
189
+ settingType: settingType,
190
+ statItem: statItem,
191
+ labelColorConfigs: labelColorConfigs,
192
+ eventBus: eventBus,
193
+ getTables: getTables,
194
+ getViews: getViews,
195
+ getTableById: getTableById,
196
+ selectedTable: selectedTable,
197
+ generalColumnsOptions: this.generalColumnsOptions,
198
+ numericColumnsOptions: this.numericColumnsOptions,
199
+ dateGranularityOptions: this.dateGranularityOptions,
200
+ getSelectedColumnOption: this.getSelectedColumnOption,
201
+ getConvertedChart: this.props.getConvertedChart,
202
+ updateStatItem: this.props.updateStatItem
203
+ });
204
+ }
205
+ case _constants.STAT_TYPE.BAR_GROUP:
206
+ case _constants.STAT_TYPE.BAR_STACK:
207
+ case _constants.STAT_TYPE.GROUP_LINE:
208
+ case _constants.STAT_TYPE.AREA_GROUP_CHART:
209
+ {
210
+ return /*#__PURE__*/_react.default.createElement(_advanceBarChartSettings.default, {
211
+ chartType: type,
212
+ settingType: settingType,
213
+ statItem: statItem,
214
+ labelColorConfigs: labelColorConfigs,
215
+ eventBus: eventBus,
216
+ getTables: getTables,
217
+ getViews: getViews,
218
+ getTableById: getTableById,
219
+ selectedTable: selectedTable,
220
+ generalColumnsOptions: this.generalColumnsOptions,
221
+ columnGroupbyColumnsOptions: this.columnGroupbyColumnsOptions,
222
+ numericColumnsOptions: this.numericColumnsOptions,
223
+ dateGranularityOptions: this.dateGranularityOptions,
224
+ geolocationGranularityOptions: this.geolocationGranularityOptions,
225
+ getSelectedColumnOption: this.getSelectedColumnOption,
226
+ getConvertedChart: this.props.getConvertedChart,
227
+ updateStatItem: this.props.updateStatItem,
228
+ renderIncludeEmpty: this.renderIncludeEmpty
229
+ });
230
+ }
231
+ case _constants.STAT_TYPE.CUSTOM_BAR:
232
+ {
233
+ return /*#__PURE__*/_react.default.createElement(_customBarSettings.default, {
234
+ chartType: type,
235
+ settingType: settingType,
236
+ statItem: statItem,
237
+ labelColorConfigs: labelColorConfigs,
238
+ eventBus: eventBus,
239
+ getTables: getTables,
240
+ getViews: getViews,
241
+ getTableById: getTableById,
242
+ selectedTable: selectedTable,
243
+ generalColumnsOptions: this.generalColumnsOptions,
244
+ numericColumnsOptions: this.numericColumnsOptions,
245
+ dateGranularityOptions: this.dateGranularityOptions,
246
+ geolocationGranularityOptions: this.geolocationGranularityOptions,
247
+ getSelectedColumnOption: this.getSelectedColumnOption,
248
+ getConvertedChart: this.props.getConvertedChart,
249
+ updateStatItem: this.props.updateStatItem,
250
+ renderIncludeEmpty: this.renderIncludeEmpty
251
+ });
252
+ }
253
+ case _constants.STAT_TYPE.PIE:
254
+ case _constants.STAT_TYPE.RING:
255
+ case _constants.STAT_TYPE.TREEMAP:
256
+ {
257
+ return /*#__PURE__*/_react.default.createElement(_pieSettings.default, {
258
+ settingType: settingType,
259
+ statItem: statItem,
260
+ labelColorConfigs: labelColorConfigs,
261
+ eventBus: eventBus,
262
+ getTables: getTables,
263
+ getViews: getViews,
264
+ getTableById: getTableById,
265
+ selectedTable: selectedTable,
266
+ getConvertedChart: this.props.getConvertedChart,
267
+ columnsOptions: this.generalColumnsOptions,
268
+ numericColumnsOptions: this.numericColumnsOptions,
269
+ dateGranularityOptions: this.dateGranularityOptions,
270
+ geolocationGranularityOptions: this.geolocationGranularityOptions,
271
+ getSelectedColumnOption: this.getSelectedColumnOption,
272
+ updateStatisticsSettings: this.props.updateStatItem,
273
+ renderIncludeEmpty: this.renderIncludeEmpty
274
+ });
275
+ }
276
+ case _constants.STAT_TYPE.SCATTER:
277
+ {
278
+ return /*#__PURE__*/_react.default.createElement(_scatterSettings.default, {
279
+ settingType: settingType,
280
+ statItem: statItem,
281
+ labelColorConfigs: labelColorConfigs,
282
+ eventBus: eventBus,
283
+ getTables: getTables,
284
+ getViews: getViews,
285
+ getTableById: getTableById,
286
+ getConvertedChart: this.props.getConvertedChart,
287
+ numericColumnsOptions: this.numericColumnsOptions,
288
+ generalColumnsOptions: this.generalColumnsOptions,
289
+ columnGroupbyColumnsOptions: this.columnGroupbyColumnsOptions,
290
+ getSelectedColumnOption: this.getSelectedColumnOption,
291
+ updateStatItem: this.props.updateStatItem
292
+ });
293
+ }
294
+ case _constants.STAT_TYPE.HORIZONTAL_BAR:
295
+ {
296
+ return /*#__PURE__*/_react.default.createElement(_horizontalBarSettings.default, {
297
+ settingType: settingType,
298
+ statItem: statItem,
299
+ labelColorConfigs: labelColorConfigs,
300
+ eventBus: eventBus,
301
+ getTables: getTables,
302
+ getViews: getViews,
303
+ getTableById: getTableById,
304
+ selectedTable: selectedTable,
305
+ getConvertedChart: this.props.getConvertedChart,
306
+ generalColumnsOptions: this.generalColumnsOptions,
307
+ columnGroupbyColumnsOptions: this.columnGroupbyColumnsOptions,
308
+ numericColumnsOptions: this.numericColumnsOptions,
309
+ dateGranularityOptions: this.dateGranularityOptions,
310
+ geolocationGranularityOptions: this.geolocationGranularityOptions,
311
+ getSelectedColumnOption: this.getSelectedColumnOption,
312
+ updateStatItem: this.props.updateStatItem,
313
+ renderIncludeEmpty: this.renderIncludeEmpty
314
+ });
315
+ }
316
+ case _constants.STAT_TYPE.HORIZONTAL_GROUP_BAR:
317
+ case _constants.STAT_TYPE.STACKED_HORIZONTAL_BAR:
318
+ {
319
+ return /*#__PURE__*/_react.default.createElement(_horizontalGroupChartSettings.default, {
320
+ settingType: settingType,
321
+ statItem: statItem,
322
+ labelColorConfigs: labelColorConfigs,
323
+ eventBus: eventBus,
324
+ getTables: getTables,
325
+ getViews: getViews,
326
+ getTableById: getTableById,
327
+ selectedTable: selectedTable,
328
+ generalColumnsOptions: this.generalColumnsOptions,
329
+ columnGroupbyColumnsOptions: this.columnGroupbyColumnsOptions,
330
+ numericColumnsOptions: this.numericColumnsOptions,
331
+ dateGranularityOptions: this.dateGranularityOptions,
332
+ geolocationGranularityOptions: this.geolocationGranularityOptions,
333
+ getSelectedColumnOption: this.getSelectedColumnOption,
334
+ updateStatItem: this.props.updateStatItem,
335
+ getConvertedChart: this.props.getConvertedChart,
336
+ renderIncludeEmpty: this.renderIncludeEmpty
337
+ });
338
+ }
339
+ case _constants.STAT_TYPE.COMPLETENESS_CHART:
340
+ case _constants.STAT_TYPE.GROUP_COMPLETENESS_CHART:
341
+ {
342
+ return /*#__PURE__*/_react.default.createElement(_completenessChartSettings.default, {
343
+ settingType: settingType,
344
+ statItem: statItem,
345
+ labelColorConfigs: labelColorConfigs,
346
+ eventBus: eventBus,
347
+ getTables: getTables,
348
+ getViews: getViews,
349
+ getTableById: getTableById,
350
+ getConvertedChart: this.props.getConvertedChart,
351
+ selectedTable: selectedTable,
352
+ generalColumnsOptions: this.generalColumnsOptions,
353
+ numericColumnsOptions: this.numericColumnsOptions,
354
+ updateStatItem: this.props.updateStatItem,
355
+ getSelectedColumnOption: this.getSelectedColumnOption,
356
+ columnGroupbyColumnsOptions: this.columnGroupbyColumnsOptions,
357
+ geolocationGranularityOptions: this.geolocationGranularityOptions,
358
+ dateGranularityOptions: this.dateGranularityOptions
359
+ });
360
+ }
361
+ case _constants.STAT_TYPE.PIVOT_TABLE:
362
+ {
363
+ return /*#__PURE__*/_react.default.createElement(_pivotTableSettings.default, {
364
+ settingType: settingType,
365
+ statItem: statItem,
366
+ labelColorConfigs: labelColorConfigs,
367
+ eventBus: eventBus,
368
+ getTables: getTables,
369
+ getViews: getViews,
370
+ getTableById: getTableById,
371
+ getConvertedChart: this.props.getConvertedChart,
372
+ selectedTable: selectedTable,
373
+ generalColumnsOptions: this.generalColumnsOptions,
374
+ pivotTableSummaryColumnOptions: this.pivotTableSummaryColumnOptions,
375
+ updateStatItem: this.props.updateStatItem,
376
+ getSelectedColumnOption: this.getSelectedColumnOption,
377
+ columnGroupbyColumnsOptions: this.columnGroupbyColumnsOptions,
378
+ geolocationGranularityOptions: this.geolocationGranularityOptions,
379
+ dateGranularityOptions: this.dateGranularityOptions,
380
+ renderIncludeEmpty: this.renderIncludeEmpty
381
+ });
382
+ }
383
+ default:
384
+ {
385
+ return null;
386
+ }
387
+ }
388
+ };
389
+ this.onToggleIncludeEmpty = () => {
390
+ let {
391
+ statItem
392
+ } = this.props;
393
+ let {
394
+ type,
395
+ groupby_include_empty_cells,
396
+ x_axis_include_empty,
397
+ vertical_axis_include_empty
398
+ } = statItem || {};
399
+ let updated;
400
+ if (type === _constants.STAT_TYPE.PIE || type === _constants.STAT_TYPE.RING || type === _constants.STAT_TYPE.TREEMAP || type === _constants.STAT_TYPE.PIVOT_TABLE) {
401
+ updated = {
402
+ groupby_include_empty_cells: !groupby_include_empty_cells
403
+ };
404
+ } else if (type === _constants.STAT_TYPE.HORIZONTAL_BAR || type === _constants.STAT_TYPE.HORIZONTAL_GROUP_BAR || type === _constants.STAT_TYPE.STACKED_HORIZONTAL_BAR) {
405
+ updated = {
406
+ vertical_axis_include_empty: !vertical_axis_include_empty
407
+ };
408
+ } else {
409
+ updated = {
410
+ x_axis_include_empty: !x_axis_include_empty
411
+ };
412
+ }
413
+ this.props.updateStatItem(Object.assign({}, statItem, updated));
414
+ };
415
+ this.selectEditType = type => {
416
+ this.setState({
417
+ settingType: type
418
+ });
419
+ };
420
+ const {
421
+ getTableById: _getTableById,
422
+ statItem: _statItem
423
+ } = props;
424
+ let _selectedTable = _getTableById(_statItem.table_id);
425
+ this.state = {
426
+ selectedTable: _selectedTable,
427
+ settingType: 'data'
428
+ };
429
+ this.setData(_selectedTable);
430
+ this.dateGranularityOptions = this.getGranularityOptions(DATE_GRANULARITY_LIST);
431
+ this.geolocationGranularityOptions = this.getGranularityOptions(GEOLOCATION_GRANULARITY_LIST);
432
+ }
433
+ UNSAFE_componentWillReceiveProps(nextProps) {
434
+ const {
435
+ getTableById
436
+ } = this.props;
437
+ if (nextProps.statItem.table_id !== this.props.statItem.table_id) {
438
+ const {
439
+ statItem
440
+ } = nextProps;
441
+ const selectedTable = getTableById(statItem.table_id);
442
+ this.setState({
443
+ selectedTable
444
+ });
445
+ this.setData(selectedTable);
446
+ }
447
+ }
448
+ render() {
449
+ const {
450
+ settingType
451
+ } = this.state;
452
+ return /*#__PURE__*/_react.default.createElement("div", {
453
+ className: "statistic-chart-settings"
454
+ }, /*#__PURE__*/_react.default.createElement("div", {
455
+ className: "statistic-chart-settings-type"
456
+ }, /*#__PURE__*/_react.default.createElement("div", {
457
+ onClick: () => this.selectEditType('data'),
458
+ className: (0, _classnames.default)('statistic-type-item', {
459
+ 'selected-statistic-type-item': settingType === 'data'
460
+ })
461
+ }, _reactIntlUniversal.default.get('Data_settings')), /*#__PURE__*/_react.default.createElement("div", {
462
+ onClick: () => this.selectEditType('style'),
463
+ className: (0, _classnames.default)('statistic-type-item', {
464
+ 'selected-statistic-type-item': settingType === 'style'
465
+ })
466
+ }, _reactIntlUniversal.default.get('Style_settings'))), /*#__PURE__*/_react.default.createElement("div", {
467
+ className: "statistic-chart-settings-container"
468
+ }, /*#__PURE__*/_react.default.createElement("div", {
469
+ className: "statistic-chart-settings-parameter-list pt-4"
470
+ }, this.getSettingsByType())));
471
+ }
472
+ }
473
+ var _default = exports.default = BasicChartSettings;
@@ -0,0 +1,182 @@
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 _baseSettings = _interopRequireDefault(require("../public-setting/base-settings"));
12
+ var _groupbySettings = _interopRequireDefault(require("./groupby-settings"));
13
+ var _summarySettings = _interopRequireDefault(require("./summary-settings"));
14
+ var _pieChartStyleSettings = _interopRequireDefault(require("./style-setting/pie-chart-style-settings"));
15
+ var _dataSortSetting = _interopRequireDefault(require("../public-setting/data-sort-setting"));
16
+ var _constants = require("../../../constants");
17
+ const GROUPBY_TYPE = {
18
+ ROW: 'row',
19
+ COLUMN: 'column'
20
+ };
21
+ class PieSettings extends _react.Component {
22
+ constructor() {
23
+ super(...arguments);
24
+ this.onSelectGroupbyColumn = (type, groupbyColumnKey, groupbyDateGranularity, groupbyGeolocationGranularity) => {
25
+ let updated;
26
+ if (type === GROUPBY_TYPE.ROW) {
27
+ updated = {
28
+ groupby_column_key: groupbyColumnKey,
29
+ groupby_date_granularity: groupbyDateGranularity,
30
+ groupby_geolocation_granularity: groupbyGeolocationGranularity
31
+ };
32
+ } else {
33
+ updated = {
34
+ column_groupby_column_key: groupbyColumnKey,
35
+ column_groupby_date_granularity: groupbyDateGranularity,
36
+ column_groupby_geolocation_granularity: groupbyGeolocationGranularity
37
+ };
38
+ }
39
+ this.props.updateStatisticsSettings(Object.assign({}, this.props.statItem, updated));
40
+ };
41
+ this.onSelectGroupbyDateGranularity = (type, dateGranularity) => {
42
+ let updated;
43
+ if (type === GROUPBY_TYPE.ROW) {
44
+ updated = {
45
+ groupby_date_granularity: dateGranularity
46
+ };
47
+ } else {
48
+ updated = {
49
+ column_groupby_date_granularity: dateGranularity
50
+ };
51
+ }
52
+ this.props.updateStatisticsSettings(Object.assign({}, this.props.statItem, updated));
53
+ };
54
+ this.onSelectGroupbyGeolocationGranularity = (type, geolocationGranularity) => {
55
+ let updated;
56
+ if (type === GROUPBY_TYPE.ROW) {
57
+ updated = {
58
+ groupby_geolocation_granularity: geolocationGranularity
59
+ };
60
+ } else {
61
+ updated = {
62
+ column_groupby_geolocation_granularity: geolocationGranularity
63
+ };
64
+ }
65
+ this.props.updateStatisticsSettings(Object.assign({}, this.props.statItem, updated));
66
+ };
67
+ this.onToggleShowLegend = () => {
68
+ let {
69
+ statItem
70
+ } = this.props;
71
+ let show_legend = !statItem.show_legend;
72
+ this.props.updateStatisticsSettings(Object.assign({}, statItem, {
73
+ show_legend
74
+ }));
75
+ };
76
+ this.onToggleShowPercent = () => {
77
+ let {
78
+ statItem
79
+ } = this.props;
80
+ let show_percent = !statItem.show_percent;
81
+ this.props.updateStatisticsSettings(Object.assign({}, statItem, {
82
+ show_percent
83
+ }));
84
+ };
85
+ this.updatedSummaryType = (summaryType, summaryColumnKey, summaryMethod) => {
86
+ let updated = Object.assign({}, this.props.statItem, {
87
+ summary_type: summaryType,
88
+ summary_column_key: summaryColumnKey,
89
+ summary_method: summaryMethod
90
+ });
91
+ this.props.updateStatisticsSettings(updated);
92
+ };
93
+ this.onSelectNumericColumn = summaryColumnKey => {
94
+ this.props.updateStatisticsSettings(Object.assign({}, this.props.statItem, {
95
+ summary_column_key: summaryColumnKey
96
+ }));
97
+ };
98
+ this.updateSummaryMethod = summaryMethod => {
99
+ this.props.updateStatisticsSettings(Object.assign({}, this.props.statItem, {
100
+ summary_method: summaryMethod
101
+ }));
102
+ };
103
+ }
104
+ render() {
105
+ const {
106
+ getTableById,
107
+ statItem,
108
+ selectedTable,
109
+ columnsOptions,
110
+ numericColumnsOptions,
111
+ dateGranularityOptions,
112
+ geolocationGranularityOptions,
113
+ renderIncludeEmpty,
114
+ settingType
115
+ } = this.props;
116
+ const {
117
+ table_id: selectedTableId,
118
+ view_id: selectedViewId,
119
+ groupby_column_key,
120
+ groupby_date_granularity,
121
+ groupby_geolocation_granularity,
122
+ summary_type,
123
+ summary_column_key,
124
+ summary_method
125
+ } = statItem || {};
126
+ if (settingType === 'style') {
127
+ if (statItem.type === _constants.STAT_TYPE.TREEMAP) {
128
+ return null;
129
+ }
130
+ return /*#__PURE__*/_react.default.createElement(_pieChartStyleSettings.default, {
131
+ statItem: statItem,
132
+ getTableById: getTableById,
133
+ updateStatisticsSettings: this.props.updateStatisticsSettings
134
+ });
135
+ }
136
+ return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, /*#__PURE__*/_react.default.createElement(_baseSettings.default, {
137
+ selectedTableId: selectedTableId,
138
+ selectedViewId: selectedViewId,
139
+ statItem: statItem,
140
+ getTables: this.props.getTables,
141
+ getViews: this.props.getViews,
142
+ getTableById: this.props.getTableById,
143
+ getConvertedChart: this.props.getConvertedChart,
144
+ updateStatItem: this.props.updateStatisticsSettings
145
+ }), /*#__PURE__*/_react.default.createElement("div", {
146
+ className: "statistic-chart-parameter-divider"
147
+ }), /*#__PURE__*/_react.default.createElement(_groupbySettings.default, {
148
+ selectedTable: selectedTable,
149
+ columnsOptions: columnsOptions,
150
+ dateGranularityOptions: dateGranularityOptions,
151
+ geolocationGranularityOptions: geolocationGranularityOptions,
152
+ label: _reactIntlUniversal.default.get('Group_by'),
153
+ groupbyColumnKey: groupby_column_key,
154
+ groupbyDateGranularity: groupby_date_granularity,
155
+ groupbyGeolocationGranularity: groupby_geolocation_granularity,
156
+ getSelectedColumnOption: this.props.getSelectedColumnOption,
157
+ onSelectGroupbyColumn: this.onSelectGroupbyColumn.bind(this, GROUPBY_TYPE.ROW),
158
+ onSelectGroupbyDateGranularity: this.onSelectGroupbyDateGranularity.bind(this, GROUPBY_TYPE.ROW),
159
+ onSelectGroupbyGeolocationGranularity: this.onSelectGroupbyGeolocationGranularity.bind(this, GROUPBY_TYPE.ROW),
160
+ renderIncludeEmpty: renderIncludeEmpty
161
+ }), /*#__PURE__*/_react.default.createElement("div", {
162
+ className: "statistic-chart-parameter-divider"
163
+ }), /*#__PURE__*/_react.default.createElement(_summarySettings.default, {
164
+ statItem: statItem,
165
+ label: _reactIntlUniversal.default.get('Summary_method'),
166
+ numericColumnsOptions: numericColumnsOptions,
167
+ summaryType: summary_type,
168
+ summaryColumnKey: summary_column_key,
169
+ summaryMethod: summary_method,
170
+ getSelectedColumnOption: this.props.getSelectedColumnOption,
171
+ onChangeSummaryType: this.updatedSummaryType,
172
+ onSelectNumericColumn: this.onSelectNumericColumn,
173
+ onSelectSummaryMethod: this.updateSummaryMethod
174
+ }), /*#__PURE__*/_react.default.createElement("div", {
175
+ className: "statistic-chart-parameter-divider"
176
+ }), /*#__PURE__*/_react.default.createElement(_dataSortSetting.default, {
177
+ statItem: statItem,
178
+ updateStatItem: this.props.updateStatisticsSettings
179
+ }));
180
+ }
181
+ }
182
+ var _default = exports.default = PieSettings;