sea-chart 0.0.1 → 0.0.2

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 (330) hide show
  1. package/README.md +117 -1
  2. package/dist/api/index.js +101 -0
  3. package/{lib → dist}/components/collaborator/index.js +8 -6
  4. package/{lib → dist}/components/icon/index.css +1 -1
  5. package/{lib → dist}/components/icon/index.js +7 -5
  6. package/dist/components/index.js +8 -0
  7. package/{lib → dist}/components/loading/index.js +4 -2
  8. package/dist/components/number-input/index.js +31 -0
  9. package/{lib → dist}/components/pixel-editor/index.css +4 -4
  10. package/{lib → dist}/components/pixel-editor/index.js +11 -15
  11. package/{lib → dist}/components/select-group/index.css +10 -10
  12. package/dist/components/select-group/index.js +52 -0
  13. package/dist/components/types-dialog/index.css +97 -0
  14. package/dist/components/types-dialog/index.js +117 -0
  15. package/{lib → dist}/constants/geolocation.js +3 -3
  16. package/dist/constants/index.js +184 -0
  17. package/{lib → dist}/constants/model.js +25 -5
  18. package/dist/constants/style.js +15 -0
  19. package/dist/constants/type-image.js +59 -0
  20. package/dist/constants/type.js +124 -0
  21. package/dist/context.js +83 -0
  22. package/dist/editor/index.js +41 -0
  23. package/dist/index.js +9 -0
  24. package/dist/intl.js +37 -0
  25. package/dist/locale/index.js +18 -0
  26. package/{lib → dist}/locale/lang/de.js +1 -1
  27. package/{lib → dist}/locale/lang/en.js +1 -1
  28. package/{lib → dist}/locale/lang/es.js +1 -1
  29. package/{lib → dist}/locale/lang/fr.js +1 -1
  30. package/{lib → dist}/locale/lang/pt.js +1 -1
  31. package/{lib → dist}/locale/lang/ru.js +1 -1
  32. package/{lib → dist}/locale/lang/zh_CN.js +1 -1
  33. package/dist/model/area-group.js +41 -0
  34. package/dist/model/area.js +32 -0
  35. package/dist/model/bar-group.js +44 -0
  36. package/dist/model/bar-stack.js +41 -0
  37. package/dist/model/bar.js +38 -0
  38. package/dist/model/base-model.js +9 -0
  39. package/dist/model/basic-number-card.js +22 -0
  40. package/dist/model/chart.js +23 -0
  41. package/dist/model/combination.js +38 -0
  42. package/dist/model/compare-bar.js +39 -0
  43. package/dist/model/completeness-group.js +24 -0
  44. package/dist/model/completeness.js +18 -0
  45. package/dist/model/dashboard.js +16 -0
  46. package/dist/model/generic-model.js +224 -0
  47. package/dist/model/heat-map.js +23 -0
  48. package/dist/model/horizontal-bar.js +38 -0
  49. package/dist/model/horizontal-group-bar.js +43 -0
  50. package/dist/model/index.js +63 -0
  51. package/dist/model/line-group.js +44 -0
  52. package/dist/model/line.js +38 -0
  53. package/dist/model/map-bubble.js +27 -0
  54. package/dist/model/map.js +27 -0
  55. package/dist/model/mirror.js +26 -0
  56. package/dist/model/pie.js +26 -0
  57. package/dist/model/ring.js +26 -0
  58. package/dist/model/scatter.js +19 -0
  59. package/dist/model/stacked-horizontal-bar.js +32 -0
  60. package/dist/model/table.js +23 -0
  61. package/dist/model/tree-map.js +20 -0
  62. package/dist/model/trend.js +24 -0
  63. package/dist/model/user.js +15 -0
  64. package/dist/model/world-map-bubble.js +26 -0
  65. package/dist/model/world-map.js +26 -0
  66. package/{lib/components → dist}/settings/advance-bar-settings/data-settings.js +68 -45
  67. package/dist/settings/advance-bar-settings/style-settings.js +161 -0
  68. package/{lib/components → dist}/settings/bar-settings/data-settings.js +76 -51
  69. package/dist/settings/bar-settings/style-settings.js +179 -0
  70. package/dist/settings/basic-number-card/data-settings.js +126 -0
  71. package/dist/settings/basic-number-card/style-settings.js +42 -0
  72. package/dist/settings/combination-settings/data-settings.js +279 -0
  73. package/dist/settings/combination-settings/style-settings.js +174 -0
  74. package/dist/settings/dashboard-settings/data-settings.js +179 -0
  75. package/{lib/components → dist}/settings/data-settings.js +28 -22
  76. package/dist/settings/horizontal-bar-settings/data-settings.js +55 -0
  77. package/dist/settings/horizontal-bar-settings/style-settings.js +46 -0
  78. package/dist/settings/index.css +85 -0
  79. package/dist/settings/index.js +76 -0
  80. package/{lib/components → dist}/settings/pie-settings/data-settings.js +67 -44
  81. package/{lib/components → dist}/settings/pie-settings/style-settings.js +67 -49
  82. package/dist/settings/style-settings.js +118 -0
  83. package/{lib/components → dist}/settings/table-settings/data-settings.js +269 -208
  84. package/{lib/components → dist}/settings/time-comparison-settings/data-settings.js +82 -67
  85. package/dist/settings/time-comparison-settings/style-settings.js +213 -0
  86. package/dist/settings/widgets/basic-summary/index.css +12 -0
  87. package/dist/settings/widgets/basic-summary/index.js +176 -0
  88. package/{lib/components/settings/widgets/statistic-type → dist/settings/widgets/chart-type}/index.css +5 -5
  89. package/dist/settings/widgets/chart-type/index.js +59 -0
  90. package/{lib/components → dist}/settings/widgets/common-data-settings.js +24 -18
  91. package/dist/settings/widgets/data-filter/index.css +17 -0
  92. package/{lib/components → dist}/settings/widgets/data-filter/index.js +51 -37
  93. package/dist/settings/widgets/data-sort.js +44 -0
  94. package/dist/settings/widgets/date-summary-item.js +111 -0
  95. package/dist/settings/widgets/display-values-settings/index.css +13 -0
  96. package/{lib/components → dist}/settings/widgets/display-values-settings/index.js +19 -14
  97. package/{lib/components → dist}/settings/widgets/divider/index.css +1 -1
  98. package/dist/settings/widgets/divider/index.js +12 -0
  99. package/{lib/components → dist}/settings/widgets/font-settings/font-size-settings.js +14 -12
  100. package/{lib/components → dist}/settings/widgets/font-settings/font-weight-settings.js +14 -16
  101. package/dist/settings/widgets/group-by.js +160 -0
  102. package/{lib/components → dist}/settings/widgets/label-color.js +10 -10
  103. package/dist/settings/widgets/min-max-setting.js +52 -0
  104. package/dist/settings/widgets/mininum-slice-percent.js +63 -0
  105. package/dist/settings/widgets/numeric-summary-item.js +90 -0
  106. package/dist/settings/widgets/select-table/index.js +38 -0
  107. package/dist/settings/widgets/stack.js +50 -0
  108. package/dist/settings/widgets/summary-method-setting.js +66 -0
  109. package/dist/settings/widgets/summary-settings.js +411 -0
  110. package/dist/settings/widgets/switch/index.css +37 -0
  111. package/{lib/components → dist}/settings/widgets/switch/index.js +11 -8
  112. package/{lib/components → dist}/settings/widgets/text-horizontal-settings.js +12 -10
  113. package/dist/settings/widgets/time-picker.js +174 -0
  114. package/{lib/components → dist}/settings/widgets/title-settings/index.js +15 -13
  115. package/dist/settings/widgets/title-settings/title-text.js +25 -0
  116. package/dist/settings/widgets/x-axios.js +0 -0
  117. package/dist/settings/widgets/y-axis-group-settings.js +438 -0
  118. package/dist/utils/cell-format-utils.js +42 -0
  119. package/dist/utils/chart-data-sql.js +606 -0
  120. package/dist/utils/chart-utils.js +1803 -0
  121. package/dist/utils/chart.js +6 -0
  122. package/dist/utils/collaborator-manager.js +24 -0
  123. package/dist/utils/collaborator-utils.js +40 -0
  124. package/dist/utils/column-2-sql-column.js +551 -0
  125. package/dist/utils/column-utils.js +208 -0
  126. package/{lib → dist}/utils/custom-g2.js +11 -11
  127. package/{lib → dist}/utils/date-translate.js +11 -11
  128. package/dist/utils/index.js +48 -0
  129. package/dist/utils/key-generator.js +13 -0
  130. package/dist/utils/object-utils.js +45 -0
  131. package/{lib → dist}/utils/options-utils.js +17 -18
  132. package/dist/view/index.css +53 -0
  133. package/dist/view/index.js +169 -0
  134. package/{lib/layout → dist/view}/title/index.css +1 -1
  135. package/dist/view/title/index.js +46 -0
  136. package/dist/view/wrapper/area.js +150 -0
  137. package/dist/view/wrapper/bar-group.js +148 -0
  138. package/dist/view/wrapper/bar.js +138 -0
  139. package/dist/view/wrapper/basic-number-card.js +127 -0
  140. package/dist/view/wrapper/chart-component.js +261 -0
  141. package/dist/view/wrapper/combination.js +399 -0
  142. package/dist/view/wrapper/dashboard.js +164 -0
  143. package/dist/view/wrapper/horizontal-bar-group.js +149 -0
  144. package/dist/view/wrapper/horizontal-bar.js +140 -0
  145. package/dist/view/wrapper/horizontal-component.js +78 -0
  146. package/{lib/components/formatter → dist/view/wrapper}/index.js +90 -71
  147. package/dist/view/wrapper/line-group.js +145 -0
  148. package/dist/view/wrapper/line.js +157 -0
  149. package/dist/view/wrapper/pie.js +185 -0
  150. package/dist/view/wrapper/ring.js +264 -0
  151. package/{lib/components/formatter → dist/view/wrapper}/table/index.css +18 -18
  152. package/dist/view/wrapper/table/index.js +31 -0
  153. package/dist/view/wrapper/table/one-dimension-table-no-numeric-columns.js +144 -0
  154. package/dist/view/wrapper/table/one-dimension-table-with-numeric-columns.js +198 -0
  155. package/dist/view/wrapper/table/pivot-table-display-name.js +248 -0
  156. package/dist/view/wrapper/table/two-dimension-table.js +249 -0
  157. package/dist/view/wrapper/treemap.js +186 -0
  158. package/package.json +91 -100
  159. package/lib/components/formatter/area.js +0 -162
  160. package/lib/components/formatter/bar-group.js +0 -160
  161. package/lib/components/formatter/bar.js +0 -150
  162. package/lib/components/formatter/basic-number-card.js +0 -138
  163. package/lib/components/formatter/chart-component.js +0 -266
  164. package/lib/components/formatter/combination.js +0 -407
  165. package/lib/components/formatter/dashboard.js +0 -182
  166. package/lib/components/formatter/horizontal-bar-group.js +0 -161
  167. package/lib/components/formatter/horizontal-bar.js +0 -152
  168. package/lib/components/formatter/horizontal-component.js +0 -91
  169. package/lib/components/formatter/line-group.js +0 -157
  170. package/lib/components/formatter/line.js +0 -170
  171. package/lib/components/formatter/pie.js +0 -201
  172. package/lib/components/formatter/ring.js +0 -277
  173. package/lib/components/formatter/table/index.js +0 -42
  174. package/lib/components/formatter/table/one-dimension-table-no-numeric-columns.js +0 -145
  175. package/lib/components/formatter/table/one-dimension-table-with-numeric-columns.js +0 -193
  176. package/lib/components/formatter/table/pivot-table-display-name.js +0 -249
  177. package/lib/components/formatter/table/two-dimension-table.js +0 -241
  178. package/lib/components/formatter/treemap.js +0 -213
  179. package/lib/components/index.js +0 -5
  180. package/lib/components/number-input/index.js +0 -31
  181. package/lib/components/select-group/index.js +0 -63
  182. package/lib/components/settings/advance-bar-settings/style-settings.js +0 -149
  183. package/lib/components/settings/bar-settings/style-settings.js +0 -163
  184. package/lib/components/settings/basic-number-card/data-settings.js +0 -121
  185. package/lib/components/settings/basic-number-card/style-settings.js +0 -42
  186. package/lib/components/settings/combination-settings/data-settings.js +0 -256
  187. package/lib/components/settings/combination-settings/style-settings.js +0 -183
  188. package/lib/components/settings/dashboard-settings/data-settings.js +0 -167
  189. package/lib/components/settings/horizontal-bar-settings/data-settings.js +0 -45
  190. package/lib/components/settings/horizontal-bar-settings/style-settings.js +0 -38
  191. package/lib/components/settings/index.css +0 -73
  192. package/lib/components/settings/index.js +0 -74
  193. package/lib/components/settings/style-settings.js +0 -100
  194. package/lib/components/settings/time-comparison-settings/style-settings.js +0 -191
  195. package/lib/components/settings/widgets/basic-summary/index.css +0 -12
  196. package/lib/components/settings/widgets/basic-summary/index.js +0 -173
  197. package/lib/components/settings/widgets/data-filter/index.css +0 -17
  198. package/lib/components/settings/widgets/data-sort.js +0 -38
  199. package/lib/components/settings/widgets/date-summary-item.js +0 -126
  200. package/lib/components/settings/widgets/display-values-settings/index.css +0 -13
  201. package/lib/components/settings/widgets/divider/index.js +0 -10
  202. package/lib/components/settings/widgets/group-by.js +0 -168
  203. package/lib/components/settings/widgets/min-max-setting.js +0 -64
  204. package/lib/components/settings/widgets/mininum-slice-percent.js +0 -72
  205. package/lib/components/settings/widgets/numeric-summary-item.js +0 -109
  206. package/lib/components/settings/widgets/select-table/index.js +0 -49
  207. package/lib/components/settings/widgets/stack.js +0 -58
  208. package/lib/components/settings/widgets/statistic-type/index.js +0 -54
  209. package/lib/components/settings/widgets/summary-method-setting.js +0 -80
  210. package/lib/components/settings/widgets/summary-settings.js +0 -394
  211. package/lib/components/settings/widgets/switch/index.css +0 -37
  212. package/lib/components/settings/widgets/time-picker.js +0 -182
  213. package/lib/components/settings/widgets/title-settings/title-text.js +0 -31
  214. package/lib/components/settings/widgets/y-axis-group-settings.js +0 -399
  215. package/lib/components/types-dialog/index.css +0 -97
  216. package/lib/components/types-dialog/index.js +0 -127
  217. package/lib/constants/index.js +0 -164
  218. package/lib/constants/style.js +0 -13
  219. package/lib/constants/type-image.js +0 -32
  220. package/lib/constants/type.js +0 -97
  221. package/lib/context.js +0 -49
  222. package/lib/index.js +0 -6
  223. package/lib/intl.js +0 -37
  224. package/lib/layout/index.js +0 -4
  225. package/lib/layout/statistic/index.css +0 -53
  226. package/lib/layout/statistic/index.js +0 -190
  227. package/lib/layout/title/index.js +0 -41
  228. package/lib/locale/index.js +0 -11
  229. package/lib/model/area-group.js +0 -51
  230. package/lib/model/area.js +0 -42
  231. package/lib/model/bar-group.js +0 -54
  232. package/lib/model/bar-stack.js +0 -51
  233. package/lib/model/bar.js +0 -48
  234. package/lib/model/base-model.js +0 -11
  235. package/lib/model/basic-number-card.js +0 -32
  236. package/lib/model/combination.js +0 -48
  237. package/lib/model/compare-bar.js +0 -49
  238. package/lib/model/completeness-group.js +0 -34
  239. package/lib/model/completeness.js +0 -28
  240. package/lib/model/dashboard.js +0 -26
  241. package/lib/model/generic-model.js +0 -235
  242. package/lib/model/heat-map.js +0 -33
  243. package/lib/model/horizontal-bar.js +0 -48
  244. package/lib/model/horizontal-group-bar.js +0 -53
  245. package/lib/model/index.js +0 -36
  246. package/lib/model/line-group.js +0 -54
  247. package/lib/model/line.js +0 -48
  248. package/lib/model/map-bubble.js +0 -37
  249. package/lib/model/map.js +0 -37
  250. package/lib/model/mirror.js +0 -36
  251. package/lib/model/pie.js +0 -36
  252. package/lib/model/ring.js +0 -36
  253. package/lib/model/scatter.js +0 -29
  254. package/lib/model/stacked-horizontal-bar.js +0 -42
  255. package/lib/model/statistic.js +0 -22
  256. package/lib/model/table.js +0 -33
  257. package/lib/model/tree-map.js +0 -30
  258. package/lib/model/trend.js +0 -34
  259. package/lib/model/user.js +0 -22
  260. package/lib/model/world-map-bubble.js +0 -36
  261. package/lib/model/world-map.js +0 -36
  262. package/lib/utils/cell-format-utils.js +0 -41
  263. package/lib/utils/chart.js +0 -6
  264. package/lib/utils/collaborator-utils.js +0 -40
  265. package/lib/utils/column-utils.js +0 -247
  266. package/lib/utils/data-filter/filter-item-utils.js +0 -80
  267. package/lib/utils/data-filter/filters-utils.js +0 -406
  268. package/lib/utils/data-filter/index.js +0 -3
  269. package/lib/utils/index.js +0 -50
  270. package/lib/utils/key-generator.js +0 -13
  271. package/lib/utils/object-utils.js +0 -61
  272. package/lib/utils/statistic-column-2-sql-column-utils.js +0 -499
  273. package/lib/utils/statistic-utils.js +0 -1685
  274. /package/{lib → dist}/assets/icons/area-chart.svg +0 -0
  275. /package/{lib → dist}/assets/icons/bar-chart.svg +0 -0
  276. /package/{lib → dist}/assets/icons/card.svg +0 -0
  277. /package/{lib → dist}/assets/icons/combination-chart.svg +0 -0
  278. /package/{lib → dist}/assets/icons/dtable-logo.svg +0 -0
  279. /package/{lib → dist}/assets/icons/facet-chart.svg +0 -0
  280. /package/{lib → dist}/assets/icons/gauge.svg +0 -0
  281. /package/{lib → dist}/assets/icons/heat-map.svg +0 -0
  282. /package/{lib → dist}/assets/icons/histogram.svg +0 -0
  283. /package/{lib → dist}/assets/icons/line-chart.svg +0 -0
  284. /package/{lib → dist}/assets/icons/map.svg +0 -0
  285. /package/{lib → dist}/assets/icons/pie-chart.svg +0 -0
  286. /package/{lib → dist}/assets/icons/rectangular-tree-diagram.svg +0 -0
  287. /package/{lib → dist}/assets/icons/scatter-chart.svg +0 -0
  288. /package/{lib → dist}/assets/icons/type-change.svg +0 -0
  289. /package/{lib → dist}/assets/img/area-chart.png +0 -0
  290. /package/{lib → dist}/assets/img/area-group-chart.png +0 -0
  291. /package/{lib → dist}/assets/img/bar-group.png +0 -0
  292. /package/{lib → dist}/assets/img/bar-stack.png +0 -0
  293. /package/{lib → dist}/assets/img/bar.png +0 -0
  294. /package/{lib → dist}/assets/img/combination-chart.png +0 -0
  295. /package/{lib → dist}/assets/img/compared-chart.png +0 -0
  296. /package/{lib → dist}/assets/img/completeness-chart.png +0 -0
  297. /package/{lib → dist}/assets/img/custom-bar.png +0 -0
  298. /package/{lib → dist}/assets/img/dashboard-chart.png +0 -0
  299. /package/{lib → dist}/assets/img/group-completeness-chart.png +0 -0
  300. /package/{lib → dist}/assets/img/group_line.png +0 -0
  301. /package/{lib → dist}/assets/img/heat-map.png +0 -0
  302. /package/{lib → dist}/assets/img/horizontal-bar.png +0 -0
  303. /package/{lib → dist}/assets/img/horizontal-group-bar.png +0 -0
  304. /package/{lib → dist}/assets/img/line.png +0 -0
  305. /package/{lib → dist}/assets/img/map-bubble.png +0 -0
  306. /package/{lib → dist}/assets/img/map.png +0 -0
  307. /package/{lib → dist}/assets/img/mirror.png +0 -0
  308. /package/{lib → dist}/assets/img/number-card.png +0 -0
  309. /package/{lib → dist}/assets/img/pie.png +0 -0
  310. /package/{lib → dist}/assets/img/pivot-table.png +0 -0
  311. /package/{lib → dist}/assets/img/ring.png +0 -0
  312. /package/{lib → dist}/assets/img/scatter.png +0 -0
  313. /package/{lib → dist}/assets/img/stacked-horizontal-bar.png +0 -0
  314. /package/{lib → dist}/assets/img/treemap.png +0 -0
  315. /package/{lib → dist}/assets/img/trend-chart.png +0 -0
  316. /package/{lib → dist}/assets/img/world-map-bubble.png +0 -0
  317. /package/{lib → dist}/assets/img/world-map.png +0 -0
  318. /package/{lib → dist}/components/loading/index.css +0 -0
  319. /package/{lib/components/settings/widgets/select-table → dist/editor}/index.css +0 -0
  320. /package/{lib/components → dist}/settings/advance-bar-settings/index.js +0 -0
  321. /package/{lib/components → dist}/settings/bar-settings/index.js +0 -0
  322. /package/{lib/components → dist}/settings/basic-number-card/index.js +0 -0
  323. /package/{lib/components → dist}/settings/combination-settings/index.js +0 -0
  324. /package/{lib/components → dist}/settings/dashboard-settings/index.js +0 -0
  325. /package/{lib/components → dist}/settings/horizontal-bar-settings/index.js +0 -0
  326. /package/{lib/components → dist}/settings/pie-settings/index.js +0 -0
  327. /package/{lib/components → dist}/settings/table-settings/index.js +0 -0
  328. /package/{lib/components → dist}/settings/time-comparison-settings/index.js +0 -0
  329. /package/{lib/components → dist}/settings/widgets/font-settings/index.js +0 -0
  330. /package/{lib/components/settings/widgets/x-axios.js → dist/settings/widgets/select-table/index.css} +0 -0
@@ -0,0 +1,59 @@
1
+ import React, { useCallback, useState } from 'react';
2
+ import { Label, FormGroup } from 'reactstrap';
3
+ import { CHART_TYPE_SHOW } from '../../../constants';
4
+ import { eventStopPropagation } from '../../../utils';
5
+ import intl from '../../../intl';
6
+ import { Icon, TypesDialog } from '../../../components';
7
+ import './index.css';
8
+ const ChartType = _ref => {
9
+ let {
10
+ chart,
11
+ generateChartConfig,
12
+ onChange
13
+ } = _ref;
14
+ const [isDialogShow, setDialogShow] = useState(false);
15
+ const openTypesDialog = useCallback(event => {
16
+ eventStopPropagation(event);
17
+ setDialogShow(true);
18
+ }, []);
19
+ const closeTypesDialog = useCallback(() => {
20
+ setDialogShow(false);
21
+ }, []);
22
+ const onTypeChange = useCallback(type => {
23
+ const {
24
+ config
25
+ } = chart;
26
+ const {
27
+ type: oldType
28
+ } = config;
29
+ if (type === oldType) return;
30
+ const convertedChart = generateChartConfig({
31
+ ...config,
32
+ type
33
+ });
34
+ onChange && onChange(convertedChart);
35
+ }, [chart, generateChartConfig, onChange]);
36
+ const {
37
+ config
38
+ } = chart;
39
+ const {
40
+ type
41
+ } = config;
42
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(FormGroup, {
43
+ className: "sea-chart-parameter-item",
44
+ id: "sea-chart-type-container"
45
+ }, /*#__PURE__*/React.createElement(Label, null, intl.get('Chart_type')), /*#__PURE__*/React.createElement("div", {
46
+ className: "sea-chart-selected-type-container d-flex align-items-center"
47
+ }, /*#__PURE__*/React.createElement("span", null, intl.get(CHART_TYPE_SHOW[type])), /*#__PURE__*/React.createElement("div", {
48
+ className: "sea-chart-type-icon-container",
49
+ onClick: openTypesDialog
50
+ }, /*#__PURE__*/React.createElement(Icon, {
51
+ symbol: "type-change",
52
+ className: "sea-chart-type-icon"
53
+ })))), isDialogShow && /*#__PURE__*/React.createElement(TypesDialog, {
54
+ type: type,
55
+ onToggle: closeTypesDialog,
56
+ onChange: onTypeChange
57
+ }));
58
+ };
59
+ export default ChartType;
@@ -1,31 +1,38 @@
1
1
  import React, { useCallback } from 'react';
2
- import StatisticType from './statistic-type';
2
+ import StatisticType from './chart-type';
3
3
  import SelectTable from './select-table';
4
4
  import DataFilter from './data-filter';
5
5
  import Divider from './divider';
6
- import { generateChartConfig } from '../../../utils';
7
- var CommonDataSettings = function CommonDataSettings(_ref) {
8
- var statistic = _ref.statistic,
9
- tables = _ref.tables,
10
- FilterSettings = _ref.FilterSettings,
11
- onChange = _ref.onChange;
12
- var onTableChange = useCallback(function (option) {
13
- var config = statistic.config;
14
- var table_id = config.table_id;
15
- var selectedTableId = option.value;
6
+ import { generateChartConfig } from '../../utils';
7
+ const CommonDataSettings = _ref => {
8
+ let {
9
+ chart,
10
+ tables,
11
+ onChange
12
+ } = _ref;
13
+ const onTableChange = useCallback(option => {
14
+ const {
15
+ config
16
+ } = chart;
17
+ const {
18
+ table_id
19
+ } = config;
20
+ const selectedTableId = option.value;
16
21
  if (selectedTableId === table_id) return;
17
22
  onChange && onChange({
18
23
  table_id: selectedTableId,
19
24
  filters: [],
20
25
  filter_conjunction: 'And'
21
26
  });
22
- }, [statistic, onChange]);
23
- var generateConfig = useCallback(function (config) {
27
+ }, [chart, onChange]);
28
+ const generateConfig = useCallback(config => {
24
29
  return generateChartConfig(config, tables);
25
30
  }, [tables]);
26
- var table_id = statistic.config.table_id;
31
+ const {
32
+ table_id
33
+ } = chart.config;
27
34
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(StatisticType, {
28
- statistic: statistic,
35
+ chart: chart,
29
36
  generateChartConfig: generateConfig,
30
37
  onChange: onChange
31
38
  }), /*#__PURE__*/React.createElement(SelectTable, {
@@ -34,9 +41,8 @@ var CommonDataSettings = function CommonDataSettings(_ref) {
34
41
  onSettingUpdate: onTableChange
35
42
  }), /*#__PURE__*/React.createElement(DataFilter, {
36
43
  tables: tables,
37
- statistic: statistic,
38
- onChange: onChange,
39
- FilterSettings: FilterSettings
44
+ chart: chart,
45
+ onChange: onChange
40
46
  }), /*#__PURE__*/React.createElement(Divider, null));
41
47
  };
42
48
  export default CommonDataSettings;
@@ -0,0 +1,17 @@
1
+ .sea-chart-settings .sea-chart-data-filter {
2
+ width: 100%;
3
+ padding: 3px 4px;
4
+ border-radius: 4px;
5
+ line-height: 22px;
6
+ }
7
+
8
+ .sea-chart-settings .sea-chart-data-filter:hover {
9
+ cursor: pointer;
10
+ background-color: #efefef;
11
+ }
12
+
13
+ .sea-chart-settings .sea-chart-data-filter .dtable-icon-filter {
14
+ font-size: 14px;
15
+ color: #666;
16
+ margin-right: 10px;
17
+ }
@@ -1,64 +1,78 @@
1
- import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
2
1
  import React, { useCallback, useMemo, useState } from 'react';
3
2
  import { Label, FormGroup } from 'reactstrap';
4
3
  import { getTableById } from 'dtable-utils';
5
- import { eventStopPropagation, generatorKey } from '../../../../utils';
6
- import intl from '../../../../intl';
4
+ import DTableFiltersPopover from "dtable-ui-component/lib/DTableFiltersPopover";
5
+ import { eventStopPropagation, generatorKey } from '../../../utils';
6
+ import intl from '../../../intl';
7
+ import context from '../../../context';
7
8
  import './index.css';
8
- var DataFilter = function DataFilter(_ref) {
9
- var statistic = _ref.statistic,
10
- tables = _ref.tables,
11
- FilterSettings = _ref.FilterSettings,
12
- onChange = _ref.onChange;
13
- var _useState = useState(false),
14
- _useState2 = _slicedToArray(_useState, 2),
15
- isFilterSetterShow = _useState2[0],
16
- setIsFilterSetterShow = _useState2[1];
17
- var toggleFilterPopover = useCallback(function (event) {
9
+ const DataFilter = _ref => {
10
+ let {
11
+ chart,
12
+ tables,
13
+ onChange
14
+ } = _ref;
15
+ const [isFilterSetterShow, setIsFilterSetterShow] = useState(false);
16
+ const toggleFilterPopover = useCallback(event => {
18
17
  eventStopPropagation(event);
19
18
  setIsFilterSetterShow(!isFilterSetterShow);
20
19
  }, [isFilterSetterShow]);
21
- var updateFilters = useCallback(function (update) {
20
+ const updateFilters = useCallback(update => {
22
21
  onChange && onChange(update);
23
22
  }, [onChange]);
24
- var id = useMemo(function () {
25
- return 'seastatistic-data-filter-' + generatorKey();
23
+ const id = useMemo(() => {
24
+ return 'sea-chart-data-filter-' + generatorKey();
26
25
  }, []);
27
- var table = useMemo(function () {
28
- var config = statistic.config;
29
- var table_id = config.table_id;
26
+ const table = useMemo(() => {
27
+ const {
28
+ config
29
+ } = chart;
30
+ const {
31
+ table_id
32
+ } = config;
30
33
  return getTableById(tables, table_id);
31
- }, [tables, statistic]);
32
- var filterMessage = useMemo(function () {
33
- var config = statistic.config;
34
- var filters = config.filters;
35
- var filterMessage = intl.get('Filter');
34
+ }, [tables, chart]);
35
+ const filterMessage = useMemo(() => {
36
+ const {
37
+ config
38
+ } = chart;
39
+ const {
40
+ filters
41
+ } = config;
42
+ let filterMessage = intl.get('Filter');
36
43
  if (filters.length === 1) {
37
44
  filterMessage = intl.get('1 Filter');
38
45
  } else if (filters.length > 1) {
39
46
  filterMessage = filters.length + ' ' + intl.get('Filters');
40
47
  }
41
48
  return filterMessage;
42
- }, [statistic]);
43
- var filterConjunction = useMemo(function () {
44
- var config = statistic.config;
45
- var filter_conjunction = config.filter_conjunction;
49
+ }, [chart]);
50
+ const filterConjunction = useMemo(() => {
51
+ const {
52
+ config
53
+ } = chart;
54
+ const {
55
+ filter_conjunction
56
+ } = config;
46
57
  return filter_conjunction || 'And';
47
- }, [statistic]);
48
- var collaborators = window.seaStatistic.context.getCollaboratorsFromCache();
49
- var config = statistic.config;
50
- var filters = config.filters;
58
+ }, [chart]);
59
+ const collaborators = context.getCollaboratorsFromCache();
60
+ const {
61
+ config
62
+ } = chart;
63
+ const {
64
+ filters
65
+ } = config;
51
66
  return /*#__PURE__*/React.createElement(FormGroup, {
52
- className: "seastatistic-parameter-item"
67
+ className: "sea-chart-parameter-item"
53
68
  }, /*#__PURE__*/React.createElement(Label, null, intl.get('Data_settings')), table ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
54
69
  id: id,
55
- className: "seastatistic-data-filter",
70
+ className: "sea-chart-data-filter",
56
71
  onClick: toggleFilterPopover
57
72
  }, /*#__PURE__*/React.createElement("i", {
58
73
  className: "dtable-font dtable-icon-filter"
59
- }), /*#__PURE__*/React.createElement("span", null, filterMessage)), isFilterSetterShow && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(FilterSettings, {
74
+ }), /*#__PURE__*/React.createElement("span", null, filterMessage)), isFilterSetterShow && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(DTableFiltersPopover, {
60
75
  isNeedSubmit: true,
61
- isPre: true,
62
76
  target: id,
63
77
  filters: filters,
64
78
  filterConjunction: filterConjunction,
@@ -68,7 +82,7 @@ var DataFilter = function DataFilter(_ref) {
68
82
  update: updateFilters
69
83
  }))) : /*#__PURE__*/React.createElement("div", {
70
84
  id: id,
71
- className: "seastatistic-data-filter disabled"
85
+ className: "sea-chart-data-filter disabled"
72
86
  }, /*#__PURE__*/React.createElement("i", {
73
87
  className: "dtable-font dtable-icon-filter"
74
88
  }), /*#__PURE__*/React.createElement("span", null, filterMessage)));
@@ -0,0 +1,44 @@
1
+ import React, { useCallback } from 'react';
2
+ import { Label, FormGroup } from 'reactstrap';
3
+ import DTableRadio from "dtable-ui-component/lib/DTableRadio";
4
+ import { eventStopPropagation } from '../../utils/';
5
+ import { CHART_DATA_SORT_TYPE, CHART_DATA_SORT_TYPES, CHART_DATA_SORT_TYPE_SHOW } from '../../constants';
6
+ import intl from '../../intl';
7
+ const DataSort = _ref => {
8
+ let {
9
+ chart,
10
+ onChange
11
+ } = _ref;
12
+ const onChangeSortType = useCallback((event, sortType) => {
13
+ eventStopPropagation(event);
14
+ const {
15
+ config
16
+ } = chart;
17
+ const {
18
+ sort_type
19
+ } = config;
20
+ const validSortType = sortType === CHART_DATA_SORT_TYPE.NOT_SORTED ? '' : sortType;
21
+ if (sort_type === validSortType) return;
22
+ onChange && onChange({
23
+ sort_type: validSortType
24
+ });
25
+ }, [chart, onChange]);
26
+ const {
27
+ sort_type: sortType
28
+ } = chart.config;
29
+ const selectedSortType = sortType || CHART_DATA_SORT_TYPE.NOT_SORTED;
30
+ return /*#__PURE__*/React.createElement(FormGroup, {
31
+ className: "sea-chart-parameter-item"
32
+ }, /*#__PURE__*/React.createElement(Label, null, intl.get('Data_sort')), CHART_DATA_SORT_TYPES.map((sortType, index) => {
33
+ const isChecked = sortType === selectedSortType;
34
+ return /*#__PURE__*/React.createElement("div", {
35
+ key: 'chart-group-item-' + index,
36
+ className: "chart-group-item"
37
+ }, /*#__PURE__*/React.createElement(DTableRadio, {
38
+ isChecked: isChecked,
39
+ onCheckedChange: event => onChangeSortType(event, sortType),
40
+ label: intl.get(CHART_DATA_SORT_TYPE_SHOW[sortType])
41
+ }));
42
+ }));
43
+ };
44
+ export default DataSort;
@@ -0,0 +1,111 @@
1
+ import React, { Component } from 'react';
2
+ import { FormGroup, Label } from 'reactstrap';
3
+ import DTableSelect from "dtable-ui-component/lib/DTableSelect";
4
+ import { getTableById } from 'dtable-utils';
5
+ import { CHART_TYPE, CHART_DATE_SUMMARY_CALCULATION_METHOD, CHART_SUMMARY_SHOW, CHART_DATE_COLUMN_LIST } from '../../constants';
6
+ import intl from '../../intl';
7
+ class DateSummaryItem extends Component {
8
+ constructor(_props) {
9
+ super(_props);
10
+ this.initSummaryMethodOptions = () => {
11
+ this.summaryMethodOptions = CHART_DATE_SUMMARY_CALCULATION_METHOD.map(item => {
12
+ return {
13
+ value: item,
14
+ label: intl.get(CHART_SUMMARY_SHOW[item])
15
+ };
16
+ });
17
+ };
18
+ this.initDateColumnOptions = props => {
19
+ const {
20
+ tables,
21
+ chart
22
+ } = props;
23
+ const {
24
+ table_id
25
+ } = chart.config;
26
+ const selectedTable = getTableById(tables, table_id);
27
+ if (!selectedTable) {
28
+ this.dateColumnOptions = [];
29
+ return;
30
+ }
31
+ const columns = selectedTable.columns;
32
+ this.dateColumnOptions = columns.filter(column => CHART_DATE_COLUMN_LIST.includes(column.type)).map(column => {
33
+ return {
34
+ value: column.key,
35
+ label: column.name
36
+ };
37
+ });
38
+ };
39
+ this.onToggleExpand = () => {
40
+ this.setState({
41
+ isExpand: !this.state.isExpand
42
+ });
43
+ };
44
+ this.state = {
45
+ isExpand: true
46
+ };
47
+ this.initDateColumnOptions(_props);
48
+ this.initSummaryMethodOptions();
49
+ }
50
+ UNSAFE_componentWillReceiveProps(nextProps) {
51
+ const {
52
+ chart
53
+ } = nextProps;
54
+ if (chart.config.table_id !== this.props.chart.config.table_id) {
55
+ this.initDateColumnOptions(nextProps);
56
+ }
57
+ }
58
+ render() {
59
+ const {
60
+ index,
61
+ chart,
62
+ value
63
+ } = this.props;
64
+ const {
65
+ type
66
+ } = chart.config;
67
+ const {
68
+ column_key,
69
+ summary_method
70
+ } = value;
71
+ const selectedColumnOption = this.dateColumnOptions.find(option => option.value === column_key);
72
+ const selectedSummaryMethodOption = this.summaryMethodOptions.find(option => option.value === summary_method);
73
+ const {
74
+ isExpand
75
+ } = this.state;
76
+ return /*#__PURE__*/React.createElement(FormGroup, {
77
+ style: {
78
+ paddingBottom: isExpand ? '14px' : '7px'
79
+ },
80
+ className: "sea-chart-parameter-item container"
81
+ }, /*#__PURE__*/React.createElement("div", {
82
+ className: "numeric-summary-item"
83
+ }, /*#__PURE__*/React.createElement("span", {
84
+ className: "title-item title-left"
85
+ }, /*#__PURE__*/React.createElement("i", {
86
+ onClick: this.onToggleExpand,
87
+ className: "icon dtable-font ".concat(isExpand ? 'dtable-icon-drop-down' : 'dtable-icon-right-slide')
88
+ }), /*#__PURE__*/React.createElement("label", null, (type === CHART_TYPE.TABLE ? intl.get('Summary_field') : intl.get('Numeric_field')) + (1 + index))), /*#__PURE__*/React.createElement("span", {
89
+ className: "title-item title-right"
90
+ }, index !== 0 && /*#__PURE__*/React.createElement("i", {
91
+ className: "dtable-font dtable-icon-fork-number close-icon",
92
+ onClick: () => this.props.onDelete(index)
93
+ }))), /*#__PURE__*/React.createElement("div", {
94
+ className: "".concat(isExpand ? 'expanded-numeric-summary-content' : 'collapsed-numeric-summary-content')
95
+ }, /*#__PURE__*/React.createElement(FormGroup, {
96
+ className: "sea-chart-parameter-item numeric-column"
97
+ }, /*#__PURE__*/React.createElement(DTableSelect, {
98
+ value: selectedColumnOption,
99
+ placeholder: intl.get('Select_a_column'),
100
+ onChange: option => this.props.onColumnOptionChange(option, index),
101
+ options: this.dateColumnOptions
102
+ })), /*#__PURE__*/React.createElement(FormGroup, {
103
+ className: "sea-chart-parameter-item summary-method"
104
+ }, /*#__PURE__*/React.createElement(Label, null, intl.get('Summary_method')), /*#__PURE__*/React.createElement(DTableSelect, {
105
+ value: selectedSummaryMethodOption,
106
+ onChange: option => this.props.onSummaryMethodChange(option, index),
107
+ options: this.summaryMethodOptions
108
+ }))));
109
+ }
110
+ }
111
+ export default DateSummaryItem;
@@ -0,0 +1,13 @@
1
+ .sea-chart-settings .display-value-settings {
2
+ margin-bottom: 12px;
3
+ }
4
+
5
+ .sea-chart-settings .display-value-settings .custom-switch {
6
+ width: 100%;
7
+ justify-content: space-between;
8
+ }
9
+
10
+ .sea-chart-settings .display-value-settings .custom-switch .custom-switch-description {
11
+ flex: 1;
12
+ white-space: unset !important;
13
+ }
@@ -1,26 +1,31 @@
1
- import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
1
  import React, { useCallback } from 'react';
3
2
  import DTableSwitch from "dtable-ui-component/lib/DTableSwitch";
4
3
  import { FormGroup } from 'reactstrap';
5
4
  import { FontSizeSettings } from '../font-settings';
6
- import { eventStopPropagation } from '../../../../utils';
7
- import intl from '../../../../intl';
5
+ import { eventStopPropagation } from '../../../utils';
6
+ import intl from '../../../intl';
8
7
  import './index.css';
9
- var DisplayValuesSettings = function DisplayValuesSettings(_ref) {
10
- var isShowValueKey = _ref.isShowValueKey,
11
- isShowValue = _ref.isShowValue,
12
- fontSizeKey = _ref.fontSizeKey,
13
- fontSize = _ref.fontSize,
14
- onChange = _ref.onChange;
15
- var onDisplayValueChange = useCallback(function (event) {
8
+ const DisplayValuesSettings = _ref => {
9
+ let {
10
+ isShowValueKey,
11
+ isShowValue,
12
+ fontSizeKey,
13
+ fontSize,
14
+ onChange
15
+ } = _ref;
16
+ const onDisplayValueChange = useCallback(event => {
16
17
  eventStopPropagation(event);
17
- onChange && onChange(_defineProperty({}, isShowValueKey, !isShowValue));
18
+ onChange && onChange({
19
+ [isShowValueKey]: !isShowValue
20
+ });
18
21
  }, [isShowValueKey, isShowValue, onChange]);
19
- var onFontSizeChange = useCallback(function (value) {
20
- onChange && onChange(_defineProperty({}, fontSizeKey, value));
22
+ const onFontSizeChange = useCallback(value => {
23
+ onChange && onChange({
24
+ [fontSizeKey]: value
25
+ });
21
26
  }, [fontSizeKey, onChange]);
22
27
  return /*#__PURE__*/React.createElement(FormGroup, {
23
- className: "seastatistic-parameter-item"
28
+ className: "sea-chart-parameter-item"
24
29
  }, /*#__PURE__*/React.createElement(DTableSwitch, {
25
30
  switchClassName: "display-value-settings",
26
31
  checked: isShowValue,
@@ -1,4 +1,4 @@
1
- .seastatistic-settings .seastatistic-divider {
1
+ .sea-chart-settings .sea-chart-divider {
2
2
  border-bottom: 1px solid #e4e4e4;
3
3
  margin-bottom: 14px;
4
4
  }
@@ -0,0 +1,12 @@
1
+ import React from 'react';
2
+ import classnames from 'classnames';
3
+ import './index.css';
4
+ const Divider = _ref => {
5
+ let {
6
+ className
7
+ } = _ref;
8
+ return /*#__PURE__*/React.createElement("div", {
9
+ className: classnames('sea-chart-divider', className)
10
+ });
11
+ };
12
+ export default Divider;
@@ -2,26 +2,28 @@ import React, { useCallback, useMemo } from 'react';
2
2
  import classnames from 'classnames';
3
3
  import { FormGroup, Label } from 'reactstrap';
4
4
  import { isNumber } from 'dtable-utils';
5
- import PixelEditor from '../../../pixel-editor';
6
- import intl from '../../../../intl';
7
- var FontSizeSettings = function FontSizeSettings(_ref) {
8
- var fontSize = _ref.fontSize,
9
- defaultFontSize = _ref.defaultFontSize,
10
- modifyFontSize = _ref.modifyFontSize,
11
- className = _ref.className,
12
- title = _ref.title;
13
- var initialFontSize = useMemo(function () {
5
+ import { PixelEditor } from '../../../components';
6
+ import intl from '../../../intl';
7
+ const FontSizeSettings = _ref => {
8
+ let {
9
+ fontSize,
10
+ defaultFontSize,
11
+ modifyFontSize,
12
+ className,
13
+ title
14
+ } = _ref;
15
+ const initialFontSize = useMemo(() => {
14
16
  if (isNumber(fontSize)) return fontSize;
15
17
  if (isNumber(defaultFontSize)) return defaultFontSize;
16
18
  return null;
17
19
  }, [fontSize, defaultFontSize]);
18
- var onChange = useCallback(function (currFontSize) {
19
- var parsedFontSize = parseInt(currFontSize);
20
+ const onChange = useCallback(currFontSize => {
21
+ const parsedFontSize = parseInt(currFontSize);
20
22
  if (!fontSize && !parsedFontSize || parsedFontSize === fontSize) return;
21
23
  modifyFontSize(parsedFontSize);
22
24
  }, [fontSize, modifyFontSize]);
23
25
  return /*#__PURE__*/React.createElement(FormGroup, {
24
- className: classnames('seastatistic-setting-item font-size-setting', className)
26
+ className: classnames('sea-chart-setting-item font-size-setting', className)
25
27
  }, /*#__PURE__*/React.createElement(Label, null, title || intl.get('Font_size')), /*#__PURE__*/React.createElement(PixelEditor, {
26
28
  pixel: initialFontSize,
27
29
  defaultPixel: defaultFontSize,
@@ -1,43 +1,41 @@
1
- import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
2
1
  import React, { useEffect, useMemo, useRef, useState } from 'react';
3
2
  import classnames from 'classnames';
4
3
  import { FormGroup, Label } from 'reactstrap';
5
4
  import DTableCustomizeSelect from "dtable-ui-component/lib/DTableCustomizeSelect";
6
- import { generatorCommonOptions } from '../../../../utils';
7
- import intl from '../../../../intl';
8
- var FontWeightSettings = function FontWeightSettings(props) {
9
- var _useState = useState(props.fontWeight),
10
- _useState2 = _slicedToArray(_useState, 2),
11
- fontWeight = _useState2[0],
12
- setFontWeight = _useState2[1];
13
- var mountRef = useRef(false);
14
- useEffect(function () {
5
+ import { generatorCommonOptions } from '../../../utils';
6
+ import intl from '../../../intl';
7
+ const FontWeightSettings = props => {
8
+ const [fontWeight, setFontWeight] = useState(props.fontWeight);
9
+ const mountRef = useRef(false);
10
+ useEffect(() => {
15
11
  if (!mountRef.current) {
16
12
  mountRef.current = true;
17
13
  } else {
18
14
  setFontWeight(props.fontWeight);
19
15
  }
20
16
  }, [props.fontWeight]);
21
- var fontWeightOptions = useMemo(function () {
17
+ const fontWeightOptions = useMemo(() => {
22
18
  return generatorCommonOptions(props.supportFontWeights, fontWeight);
23
19
  }, [props.supportFontWeights, fontWeight]);
24
- var selectedFontWeightOption = useMemo(function () {
20
+ const selectedFontWeightOption = useMemo(() => {
25
21
  return {
26
22
  label: /*#__PURE__*/React.createElement("span", {
27
23
  className: "common-selected-font"
28
24
  }, fontWeight)
29
25
  };
30
26
  }, [fontWeight]);
31
- var modifyFontWeight = function modifyFontWeight(fontWeightOption) {
32
- var nextFontWeight = fontWeightOption.value;
27
+ const modifyFontWeight = fontWeightOption => {
28
+ const {
29
+ value: nextFontWeight
30
+ } = fontWeightOption;
33
31
  if (nextFontWeight === fontWeight) return;
34
32
  setFontWeight(nextFontWeight);
35
33
  props.modifyFontWeight(nextFontWeight);
36
34
  };
37
35
  return /*#__PURE__*/React.createElement(FormGroup, {
38
- className: classnames('setting-item seastatistic-font-weight-setting')
36
+ className: classnames('setting-item sea-chart-font-weight-setting')
39
37
  }, /*#__PURE__*/React.createElement(Label, null, intl.get('Font_weight')), /*#__PURE__*/React.createElement(DTableCustomizeSelect, {
40
- className: "seastatistic-font-weight",
38
+ className: "sea-chart-font-weight",
41
39
  value: selectedFontWeightOption,
42
40
  options: fontWeightOptions,
43
41
  onSelectOption: modifyFontWeight