sea-chart 0.0.1 → 0.0.3

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 +92 -101
  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
package/README.md CHANGED
@@ -1,4 +1,120 @@
1
- # seatable-statistic
1
+ # sea-chart
2
+ > The seatable chart displays the data in the seatable in the form of a chart.
2
3
 
4
+ # 本地调试
5
+ 1. 下载源码并进入文件夹
6
+ ```
7
+ git clone https://gitlab.seafile.top/seatable-extends/sea-chart/
8
+ cd sea-chart
9
+ ```
10
+ 2. 安装依赖
11
+ ```
12
+ npm install
13
+ ```
14
+ 3. 配置以及测试用例
15
+ > 可以将自定义页面中关于统计元素的配置拿过来
3
16
 
17
+ 3.1 配置图标
18
+ > /example/body/charts.js
19
+ ```
20
+ const CHARTS = [
21
+ {
22
+ 'id': '73c8',
23
+ 'type': 'statistic',
24
+ 'style_config': {
25
+ 'border': {
26
+ 'is_show_border': false,
27
+ 'is_show_shadow': false,
28
+ 'width': 0,
29
+ 'radius': 0,
30
+ 'color': '#EFEFEF'
31
+ },
32
+ 'title': {
33
+ 'text': 'table',
34
+ 'font_size': 24,
35
+ 'font_weight': 700,
36
+ 'horizontal_align': 'left'
37
+ }
38
+ },
39
+ 'config': {
40
+ 'type': 'table',
41
+ 'table_id': '0000',
42
+ 'filters': [],
43
+ 'filter_conjunction': 'And',
44
+ 'groupby_column_key': '_ctime',
45
+ 'groupby_date_granularity': 'month',
46
+ 'groupby_geolocation_granularity': null,
47
+ 'groupby_include_empty_cells': false,
48
+ 'summary_column_key': null,
49
+ 'summary_method': 'Sum',
50
+ 'summary_type': 'count',
51
+ 'column_groupby_multiple_numeric_column': null,
52
+ 'summary_columns': [],
53
+ 'column_groupby_column_key': null,
54
+ 'column_groupby_date_granularity': null,
55
+ 'column_groupby_geolocation_granularity': null
56
+ }
57
+ }
58
+ ];
59
+
60
+ export default CHARTS;
61
+
62
+ ```
63
+ 3.2
64
+ ```
65
+ {
66
+ APIToken: '0268604f535ad4fa88a2c499455a82711b6e23a4',
67
+ server: 'https://dev.seatable.cn',
68
+ fileName: '全类型数据',
69
+ workspaceID: '24',
70
+ dtableUuid: 'f7288f72-03ff-4a69-85e3-3e8a86dbfa20',
71
+ lang: 'zh-cn',
72
+ mediaUrl: '/media/',
73
+ permission: 'rw',
74
+ accessToken: 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE3MDQ0NDk1NzksImR0YWJsZV91dWlkIjoiZjcyODhmNzItMDNmZi00YTY5LTg1ZTMtM2U4YTg2ZGJmYTIwIiwidXNlcm5hbWUiOiJndW94dWFuLnlhbmdAc2VhZmlsZS5jb20iLCJpZF9pbl9vcmciOiJXLTAwMDE3IiwidXNlcl9kZXBhcnRtZW50X2lkc19tYXAiOnsiY3VycmVudF91c2VyX2RlcGFydG1lbnRfaWRzIjpbMTRdLCJjdXJyZW50X3VzZXJfZGVwYXJ0bWVudF9hbmRfc3ViX2lkcyI6WzE0XX0sInBlcm1pc3Npb24iOiJydyJ9.6AEwL9jIbX6vfV2SVEpxZsvtwSgLAXN-E_jlu780HSc',
75
+ dtableDb: 'https://dtable-db-proxy-dev.seatable.cn/',
76
+ }
77
+ ```
78
+ 4. 启动
79
+ ```
80
+ npm start
81
+ ```
82
+
83
+ # 增加新类型
84
+ 1. 定义类型
85
+ > 为 CHART_TYPE 追加新类型
86
+
87
+ 2. 定义配置模型及设置UI
88
+ 2.1 为新类型增加模型,便于字段的统一管理 同时写入数据类型文档中
89
+ 2.2 为新类型增加设置字段的UI,以更改配置
90
+
91
+ 3. 定义查询数据的SQL
92
+ > 构造恰当的 SQL 语句来获取数据
93
+
94
+ 4. 定义渲染机制
95
+ > 未新类型增加渲染机制
96
+
97
+ 5. 追加渲染机制到 View 组件中
98
+ > View 组件将根据类型自动渲染该类型
99
+
100
+ # 使用
101
+ 1. 安装 sea-chart
102
+ ```
103
+ npm install sea-chart
104
+ ```
105
+
106
+ 2. 渲染
107
+ ```
108
+ import React from 'react';
109
+ import View from 'sea-chart';
110
+
111
+ const ComponentName = ({ chart }) => {
112
+ return (
113
+ <View chart={chart} ... />
114
+ )
115
+ };
116
+
117
+ export default ComponentName;
118
+
119
+ ```
4
120
 
@@ -0,0 +1,101 @@
1
+ import axios from 'axios';
2
+ class SeaChartAPI {
3
+ constructor(config) {
4
+ var _this = this;
5
+ this.getDTableAccessToken = () => {
6
+ // dtable-web
7
+ const {
8
+ server,
9
+ APIToken
10
+ } = this.config;
11
+ const url = server + '/api/v2.1/dtable/app-access-token/';
12
+ const headers = {
13
+ 'Authorization': 'Token ' + APIToken
14
+ };
15
+ return axios.get(url, {
16
+ headers
17
+ });
18
+ };
19
+ this.getBaseData = () => {
20
+ const {
21
+ dtableServer,
22
+ dtableUuid,
23
+ accessToken
24
+ } = this;
25
+ const url = dtableServer + 'dtables/' + dtableUuid;
26
+ const headers = {
27
+ 'Authorization': 'Token ' + accessToken
28
+ };
29
+ return axios.get(url, {
30
+ headers
31
+ });
32
+ };
33
+ this.getBaseMetaData = () => {
34
+ const {
35
+ dtableServer,
36
+ dtableUuid,
37
+ accessToken
38
+ } = this;
39
+ const url = dtableServer + 'api/v1/dtables/' + dtableUuid + '/metadata';
40
+ const headers = {
41
+ 'Authorization': 'Token ' + accessToken
42
+ };
43
+ return axios.get(url, {
44
+ headers
45
+ });
46
+ };
47
+ this.sqlQuery = function (sql, parameters) {
48
+ let convert_keys = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
49
+ // dtable-db
50
+ const {
51
+ dtableDB,
52
+ dtableUuid,
53
+ accessToken
54
+ } = _this;
55
+ const url = dtableDB + 'api/v1/query/' + dtableUuid;
56
+ const data = {
57
+ sql,
58
+ convert_keys,
59
+ ...(parameters && {
60
+ parameters: parameters
61
+ })
62
+ };
63
+ const headers = {
64
+ 'Authorization': 'Token ' + accessToken
65
+ };
66
+ return axios.post(url, data, {
67
+ headers
68
+ });
69
+ };
70
+ this.config = config;
71
+ this.instance = null;
72
+ this.appName = '';
73
+ this.accessToken = '';
74
+ this.dtableUuid = '';
75
+ this.dtableServer = '';
76
+ this.dtableSocket = '';
77
+ }
78
+ static getInstance(config) {
79
+ if (this.instance) return this.instance;
80
+ this.instance = new SeaChartAPI(config);
81
+ return this.instance;
82
+ }
83
+ async init() {
84
+ const accessTokenRes = await this.getDTableAccessToken();
85
+ const {
86
+ app_name,
87
+ access_token,
88
+ dtable_uuid,
89
+ dtable_server,
90
+ dtable_socket,
91
+ dtable_db
92
+ } = accessTokenRes.data;
93
+ this.appName = app_name;
94
+ this.accessToken = access_token;
95
+ this.dtableUuid = dtable_uuid;
96
+ this.dtableServer = dtable_server.replace(/\/+$/, '') + '/';
97
+ this.dtableSocket = dtable_socket.replace(/\/+$/, '') + '/';
98
+ this.dtableDB = dtable_db.replace(/\/+$/, '') + '/';
99
+ }
100
+ }
101
+ export default SeaChartAPI;
@@ -1,10 +1,12 @@
1
1
  import React from 'react';
2
- var Collaborator = function Collaborator(_ref) {
3
- var _ref$collaborator = _ref.collaborator,
4
- collaborator = _ref$collaborator === void 0 ? {} : _ref$collaborator;
5
- var _ref2 = collaborator || {},
6
- avatar_url = _ref2.avatar_url,
7
- name = _ref2.name;
2
+ const Collaborator = _ref => {
3
+ let {
4
+ collaborator = {}
5
+ } = _ref;
6
+ const {
7
+ avatar_url,
8
+ name
9
+ } = collaborator || {};
8
10
  return /*#__PURE__*/React.createElement("div", {
9
11
  className: "collaborators-formatter"
10
12
  }, /*#__PURE__*/React.createElement("div", {
@@ -1,4 +1,4 @@
1
- .seastatistic-icon {
1
+ .sea-chart-icon {
2
2
  font-size: 14px;
3
3
  fill: currentColor;
4
4
  color: #212529;
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import './index.css';
3
- var importAll = function importAll(requireContext) {
3
+ const importAll = requireContext => {
4
4
  requireContext.keys().forEach(requireContext);
5
5
  };
6
6
  try {
@@ -9,10 +9,12 @@ try {
9
9
  // eslint-disable-next-line no-console
10
10
  console.log(error);
11
11
  }
12
- var Icon = function Icon(props) {
13
- var className = props.className,
14
- symbol = props.symbol;
15
- var iconClass = "seastatistic-icon seastatistic-icon-".concat(symbol, " ").concat(className || '');
12
+ const Icon = props => {
13
+ const {
14
+ className,
15
+ symbol
16
+ } = props;
17
+ const iconClass = "sea-chart-icon sea-chart-icon-".concat(symbol, " ").concat(className || '');
16
18
  return /*#__PURE__*/React.createElement("svg", {
17
19
  className: iconClass
18
20
  }, /*#__PURE__*/React.createElement("use", {
@@ -0,0 +1,8 @@
1
+ import Collaborator from './collaborator';
2
+ import Loading from './loading';
3
+ import Icon from './icon';
4
+ import NumberInput from './number-input';
5
+ import SelectGroup from './select-group';
6
+ import TypesDialog from './types-dialog';
7
+ import PixelEditor from './pixel-editor';
8
+ export { Collaborator, Loading, Icon, NumberInput, SelectGroup, TypesDialog, PixelEditor };
@@ -1,8 +1,10 @@
1
1
  import React from 'react';
2
2
  import classnames from 'classnames';
3
3
  import './index.css';
4
- var Loading = function Loading(_ref) {
5
- var className = _ref.className;
4
+ const Loading = _ref => {
5
+ let {
6
+ className
7
+ } = _ref;
6
8
  return /*#__PURE__*/React.createElement("span", {
7
9
  className: classnames('loading-icon loading-tip', className)
8
10
  });
@@ -0,0 +1,31 @@
1
+ import React from 'react';
2
+ import { Input } from 'reactstrap';
3
+ function NumberInput(props) {
4
+ const {
5
+ value,
6
+ onChange,
7
+ min,
8
+ step,
9
+ max,
10
+ readOnly,
11
+ className,
12
+ ...otherProps
13
+ } = props;
14
+ return /*#__PURE__*/React.createElement(Input, Object.assign({
15
+ type: "number",
16
+ className: className,
17
+ value: value || '0',
18
+ min: min,
19
+ step: step,
20
+ max: max,
21
+ readOnly: readOnly,
22
+ onChange: onChange
23
+ }, otherProps));
24
+ }
25
+ NumberInput.defaultProps = {
26
+ min: 0,
27
+ step: 1,
28
+ max: Infinity,
29
+ readOnly: false
30
+ };
31
+ export default NumberInput;
@@ -1,9 +1,9 @@
1
- .seastatistic-pixel-editor-wrapper {
1
+ .sea-chart-pixel-editor-wrapper {
2
2
  display: flex;
3
3
  width: 100%;
4
4
  }
5
5
 
6
- .seastatistic-pixel-editor-wrapper .form-control {
6
+ .sea-chart-pixel-editor-wrapper .form-control {
7
7
  position: relative;
8
8
  flex: 1;
9
9
  border-top-right-radius: 0;
@@ -11,7 +11,7 @@
11
11
  z-index: 0;
12
12
  }
13
13
 
14
- .seastatistic-pixel-editor-wrapper .pixel-unit {
14
+ .sea-chart-pixel-editor-wrapper .pixel-unit {
15
15
  display: flex;
16
16
  align-items: center;
17
17
  justify-content: center;
@@ -24,6 +24,6 @@
24
24
  background-color: #fff;
25
25
  }
26
26
 
27
- .seastatistic-pixel-editor-wrapper .pixel-unit span {
27
+ .sea-chart-pixel-editor-wrapper .pixel-unit span {
28
28
  margin-top: -2px;
29
29
  }
@@ -1,38 +1,34 @@
1
- import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
2
1
  import React, { useEffect, useRef, useState } from 'react';
3
2
  import { isNumber } from 'dtable-utils';
4
3
  import NumberInput from '../number-input';
5
4
  import './index.css';
6
- var PixelEditor = function PixelEditor(props) {
7
- var pixel = props.pixel;
8
- var _useState = useState(isNumber(pixel) ? pixel : null),
9
- _useState2 = _slicedToArray(_useState, 2),
10
- currPixel = _useState2[0],
11
- setCurrPixel = _useState2[1];
12
- var mountRef = useRef(false);
13
- useEffect(function () {
5
+ const PixelEditor = props => {
6
+ const {
7
+ pixel
8
+ } = props;
9
+ const [currPixel, setCurrPixel] = useState(isNumber(pixel) ? pixel : null);
10
+ const mountRef = useRef(false);
11
+ useEffect(() => {
14
12
  if (!mountRef.current) {
15
13
  mountRef.current = true;
16
14
  } else {
17
15
  setCurrPixel(isNumber(props.pixel) ? props.pixel : null);
18
16
  }
19
17
  }, [props.pixel]);
20
- var onSavePixel = function onSavePixel() {
18
+ const onSavePixel = () => {
21
19
  props.modifyPixel(currPixel);
22
20
  };
23
- var onKeyDown = function onKeyDown(event) {
21
+ const onKeyDown = event => {
24
22
  if (event.key === 'Enter') {
25
23
  event.preventDefault();
26
24
  event.target.blur();
27
25
  }
28
26
  };
29
27
  return /*#__PURE__*/React.createElement("div", {
30
- className: "seastatistic-pixel-editor-wrapper"
28
+ className: "sea-chart-pixel-editor-wrapper"
31
29
  }, /*#__PURE__*/React.createElement(NumberInput, {
32
30
  value: currPixel,
33
- onChange: function onChange(event) {
34
- return setCurrPixel(event.target.value);
35
- },
31
+ onChange: event => setCurrPixel(event.target.value),
36
32
  onBlur: onSavePixel,
37
33
  onKeyDown: onKeyDown
38
34
  }), /*#__PURE__*/React.createElement("div", {
@@ -1,4 +1,4 @@
1
- .seastatistic-settings .select-group-container {
1
+ .sea-chart-settings .select-group-container {
2
2
  display: block;
3
3
  width: 100%;
4
4
  height: 2.375rem;
@@ -10,14 +10,14 @@
10
10
  transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
11
11
  }
12
12
 
13
- .seastatistic-settings .select-group {
13
+ .sea-chart-settings .select-group {
14
14
  height: 100%;
15
15
  display: flex;
16
16
  align-items: center;
17
17
  justify-content: center;
18
18
  }
19
19
 
20
- .seastatistic-settings .select-group-container .select-group-item {
20
+ .sea-chart-settings .select-group-container .select-group-item {
21
21
  height: 100%;
22
22
  flex: 1;
23
23
  text-align: center;
@@ -29,39 +29,39 @@
29
29
  cursor: pointer;
30
30
  }
31
31
 
32
- .seastatistic-settings .select-group-container .select-group-item.readOnly {
32
+ .sea-chart-settings .select-group-container .select-group-item.readOnly {
33
33
  cursor: default;
34
34
  opacity: .6;
35
35
  }
36
36
 
37
- .seastatistic-settings .select-group-container .select-group-item.active {
37
+ .sea-chart-settings .select-group-container .select-group-item.active {
38
38
  background-color: #FFF2E4;
39
39
  color: #ff8000;
40
40
  box-shadow: 0 0 0 1px #ff8000;
41
41
  }
42
42
 
43
- .seastatistic-settings .select-group-container .select-group-item:first-child.active {
43
+ .sea-chart-settings .select-group-container .select-group-item:first-child.active {
44
44
  border-top-left-radius: 3px;
45
45
  border-bottom-left-radius: 3px;
46
46
  }
47
47
 
48
- .seastatistic-settings .select-group-container .select-group-item:last-child.active {
48
+ .sea-chart-settings .select-group-container .select-group-item:last-child.active {
49
49
  border-top-right-radius: 3px;
50
50
  border-bottom-right-radius: 3px;
51
51
  }
52
52
 
53
- .seastatistic-settings .no-active-option .select-group-item:hover {
53
+ .sea-chart-settings .no-active-option .select-group-item:hover {
54
54
  cursor: pointer;
55
55
  background-color: #FFF2E4;
56
56
  box-shadow: 0 0 0 1px #ff8000;
57
57
  }
58
58
 
59
- .seastatistic-settings .no-active-option .select-group-item:first-child:hover {
59
+ .sea-chart-settings .no-active-option .select-group-item:first-child:hover {
60
60
  border-top-left-radius: 3px;
61
61
  border-bottom-left-radius: 3px;
62
62
  }
63
63
 
64
- .seastatistic-settings .no-active-option .select-group-item:last-child:hover {
64
+ .sea-chart-settings .no-active-option .select-group-item:last-child:hover {
65
65
  border-top-right-radius: 3px;
66
66
  border-bottom-right-radius: 3px;
67
67
  }
@@ -0,0 +1,52 @@
1
+ import React from 'react';
2
+ import intl from '../../intl';
3
+ import './index.css';
4
+ class SelectGroup extends React.Component {
5
+ constructor(props) {
6
+ super(props);
7
+ this.onSelectChanged = event => {
8
+ const {
9
+ option
10
+ } = event.target.dataset;
11
+ if (option === this.state.activeOption) return;
12
+ this.setState({
13
+ activeOption: option
14
+ });
15
+ this.props.onSelectChanged(option);
16
+ };
17
+ this.state = {
18
+ activeOption: props.activeOption
19
+ };
20
+ }
21
+ UNSAFE_componentWillReceiveProps(nextProps) {
22
+ if (nextProps.activeOption !== this.state.activeOption) {
23
+ this.setState({
24
+ activeOption: nextProps.activeOption
25
+ });
26
+ }
27
+ }
28
+ render() {
29
+ const {
30
+ options,
31
+ optionsDisplay
32
+ } = this.props;
33
+ const {
34
+ activeOption
35
+ } = this.state;
36
+ return /*#__PURE__*/React.createElement("div", {
37
+ className: "select-group-container"
38
+ }, /*#__PURE__*/React.createElement("div", {
39
+ className: "select-group"
40
+ }, options.map(option => {
41
+ const isActive = activeOption === option ? true : false;
42
+ const displayOption = optionsDisplay && optionsDisplay[option] ? intl.get(optionsDisplay[option]) : option;
43
+ return /*#__PURE__*/React.createElement("div", {
44
+ key: option,
45
+ className: "select-group-item ".concat(isActive ? 'active' : ''),
46
+ "data-option": option,
47
+ onClick: this.onSelectChanged
48
+ }, displayOption);
49
+ })));
50
+ }
51
+ }
52
+ export default SelectGroup;
@@ -0,0 +1,97 @@
1
+ .sea-chart-types-dialog {
2
+ max-width: 1102px;
3
+ width: 1102px;
4
+ height: calc(100% - 56px);
5
+ }
6
+
7
+ .sea-chart-types-dialog .modal-content {
8
+ height: 100%;
9
+ }
10
+
11
+ .sea-chart-types-dialog .sea-chart-types-body {
12
+ padding: 0;
13
+ overflow: hidden;
14
+ }
15
+
16
+ .sea-chart-types-dialog .sea-chart-chart-categories-nav {
17
+ border-bottom: 1px solid #e9ecef;
18
+ background-color: #f9f9f9;
19
+ height: 50px;
20
+ box-sizing: border-box;
21
+ margin: 0;
22
+ }
23
+
24
+ .sea-chart-types-dialog .sea-chart-chart-categories-nav .sea-chart-chart-cat-nav-item {
25
+ height: 40px;
26
+ width: 48px;
27
+ }
28
+
29
+ .sea-chart-types-dialog .sea-chart-chart-categories-nav .sea-chart-chart-cat-nav-item-container {
30
+ height: 100%;
31
+ width: 100%;
32
+ display: flex;
33
+ align-items: center;
34
+ justify-content: center;
35
+ }
36
+
37
+ .sea-chart-types-dialog .sea-chart-chart-categories-nav .sea-chart-chart-cat-nav-item-container.sea-chart-icon-highlight .chart-icon {
38
+ color: #ff8000;
39
+ }
40
+
41
+ .sea-chart-types-dialog .sea-chart-chart-categories-nav .chart-icon {
42
+ cursor: pointer;
43
+ color: #666;
44
+ }
45
+
46
+ .sea-chart-types-dialog .sea-chart-type-container {
47
+ padding: 0 16px 16px;
48
+ }
49
+
50
+ .sea-chart-types-dialog .sea-chart-type-container:before {
51
+ content: "";
52
+ display: block;
53
+ width: 100%;
54
+ height: 20px;
55
+ }
56
+
57
+ .sea-chart-types-dialog .sea-chart-type-title {
58
+ font-weight: 600;
59
+ font-size: 18px;
60
+ color: #202428;
61
+ }
62
+
63
+ .sea-chart-types-dialog .sea-chart-type-item {
64
+ height: 172px;
65
+ width: 250px;
66
+
67
+ border: 1px solid #dcdade;
68
+ border-radius: 4px;
69
+ box-shadow: 0 0 2px 0 rgb(0 0 0 / 10%);
70
+ margin: 20px 17px 0 0;
71
+ }
72
+
73
+ .sea-chart-types-dialog .sea-chart-type-item:hover {
74
+ cursor: pointer;
75
+ border-color: #FFBF7F;
76
+ }
77
+
78
+ .sea-chart-types-dialog .sea-chart-type-item.selected {
79
+ border-color: #FF8000;
80
+ }
81
+
82
+ .sea-chart-types-dialog .sea-chart-type-description {
83
+ font-weight: 500;
84
+ font-size: 14px;
85
+ margin-top: 14px;
86
+ padding: 0 15px;
87
+ margin-bottom: 10px;
88
+ }
89
+
90
+ .sea-chart-types-dialog .sea-chart-type-image-container {
91
+ padding: 0 12px;
92
+ }
93
+
94
+ .sea-chart-types-dialog .sea-chart-type-image-container .sea-chart-type-demo-image {
95
+ width: 100%;
96
+ height: 125px;
97
+ }