@mwater/visualization 5.4.5 → 5.6.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 (310) hide show
  1. package/lib/MWaterContextComponent.d.ts +1 -1
  2. package/lib/MWaterContextComponent.js +1 -1
  3. package/lib/MWaterGlobalFiltersComponent.d.ts +2 -2
  4. package/lib/MWaterGlobalFiltersComponent.js +11 -20
  5. package/lib/MWaterLoaderComponent.d.ts +5 -14
  6. package/lib/MWaterLoaderComponent.js +2 -11
  7. package/lib/UndoStack.d.ts +2 -1
  8. package/lib/UndoStack.js +12 -6
  9. package/lib/dashboards/DashboardComponent.js +7 -5
  10. package/lib/dashboards/DashboardDesign.d.ts +1 -1
  11. package/lib/dashboards/LayoutOptionsComponent.js +18 -11
  12. package/lib/dashboards/ServerDashboardDataSource.d.ts +10 -1
  13. package/lib/dashboards/ServerDashboardDataSource.js +29 -10
  14. package/lib/dashboards/SettingsModalComponent.js +1 -1
  15. package/lib/dashboards/layoutOptions.d.ts +5 -1
  16. package/lib/datagrids/DatagridComponent.js +23 -3
  17. package/lib/datagrids/DatagridDesignerComponent.d.ts +2 -3
  18. package/lib/datagrids/DatagridDesignerComponent.js +108 -120
  19. package/lib/datagrids/DatagridViewComponent.js +3 -2
  20. package/lib/datagrids/ExprCellComponent.d.ts +1 -0
  21. package/lib/datagrids/ExprCellComponent.js +22 -20
  22. package/lib/datagrids/OrderBysDesignerComponent.d.ts +7 -7
  23. package/lib/datagrids/OrderBysDesignerComponent.js +19 -28
  24. package/lib/index.css +45 -2
  25. package/lib/index.d.ts +5 -5
  26. package/lib/index.js +2 -3
  27. package/lib/layouts/blocks/BlocksDisplayComponent.d.ts +8 -1
  28. package/lib/layouts/blocks/BlocksDisplayComponent.js +46 -4
  29. package/lib/maps/BufferLayer.d.ts +18 -0
  30. package/lib/maps/BufferLayer.js +36 -14
  31. package/lib/maps/BufferLayerDesign.d.ts +1 -1
  32. package/lib/maps/BufferLayerDesignerComponent.js +2 -2
  33. package/lib/maps/ChoroplethLayer.d.ts +18 -0
  34. package/lib/maps/ChoroplethLayer.js +46 -25
  35. package/lib/maps/ChoroplethLayerDesign.d.ts +7 -3
  36. package/lib/maps/ChoroplethLayerDesigner.d.ts +10 -22
  37. package/lib/maps/ChoroplethLayerDesigner.js +58 -89
  38. package/lib/maps/DirectMapDataSource.js +17 -10
  39. package/lib/maps/EditHoverOver.d.ts +4 -3
  40. package/lib/maps/EditHoverOver.js +64 -35
  41. package/lib/maps/HoverContent.d.ts +10 -5
  42. package/lib/maps/HoverContent.js +7 -36
  43. package/lib/maps/Layer.d.ts +37 -0
  44. package/lib/maps/Layer.js +30 -4
  45. package/lib/maps/LeafletMapComponent.js +10 -19
  46. package/lib/maps/MWaterServerLayer.d.ts +2 -2
  47. package/lib/maps/MWaterServerLayer.js +6 -6
  48. package/lib/maps/MapComponent.js +0 -1
  49. package/lib/maps/MapLayerDataSource.d.ts +9 -0
  50. package/lib/maps/MapUtils.d.ts +19 -1
  51. package/lib/maps/MapUtils.js +80 -1
  52. package/lib/maps/MarkersLayer.d.ts +18 -0
  53. package/lib/maps/MarkersLayer.js +42 -26
  54. package/lib/maps/MarkersLayerDesign.d.ts +1 -1
  55. package/lib/maps/MarkersLayerDesignerComponent.d.ts +12 -28
  56. package/lib/maps/MarkersLayerDesignerComponent.js +81 -111
  57. package/lib/maps/RasterMapViewComponent.js +1 -1
  58. package/lib/maps/ServerMapDataSource.d.ts +9 -0
  59. package/lib/maps/ServerMapDataSource.js +29 -10
  60. package/lib/maps/VectorMapViewComponent.js +7 -15
  61. package/lib/maps/maps.d.ts +4 -2
  62. package/lib/maps/symbols/font-awesome/asterisk.png +0 -0
  63. package/lib/maps/symbols/font-awesome/ban.png +0 -0
  64. package/lib/maps/symbols/font-awesome/beer.png +0 -0
  65. package/lib/maps/symbols/font-awesome/bell.png +0 -0
  66. package/lib/maps/symbols/font-awesome/bolt.png +0 -0
  67. package/lib/maps/symbols/font-awesome/building.png +0 -0
  68. package/lib/maps/symbols/font-awesome/bullseye.png +0 -0
  69. package/lib/maps/symbols/font-awesome/bus.png +0 -0
  70. package/lib/maps/symbols/font-awesome/caret-up.png +0 -0
  71. package/lib/maps/symbols/font-awesome/certificate.png +0 -0
  72. package/lib/maps/symbols/font-awesome/check-circle.png +0 -0
  73. package/lib/maps/symbols/font-awesome/check.png +0 -0
  74. package/lib/maps/symbols/font-awesome/chevron-circle-down.png +0 -0
  75. package/lib/maps/symbols/font-awesome/chevron-circle-up.png +0 -0
  76. package/lib/maps/symbols/font-awesome/cloud-rain.png +0 -0
  77. package/lib/maps/symbols/font-awesome/cloud.png +0 -0
  78. package/lib/maps/symbols/font-awesome/comment.png +0 -0
  79. package/lib/maps/symbols/font-awesome/crosshairs.png +0 -0
  80. package/lib/maps/symbols/font-awesome/dot-circle-o.png +0 -0
  81. package/lib/maps/symbols/font-awesome/exclamation-circle.png +0 -0
  82. package/lib/maps/symbols/font-awesome/exclamation-triangle.png +0 -0
  83. package/lib/maps/symbols/font-awesome/female.png +0 -0
  84. package/lib/maps/symbols/font-awesome/file.png +0 -0
  85. package/lib/maps/symbols/font-awesome/flag.png +0 -0
  86. package/lib/maps/symbols/font-awesome/flask.png +0 -0
  87. package/lib/maps/symbols/font-awesome/h-square.png +0 -0
  88. package/lib/maps/symbols/font-awesome/home.png +0 -0
  89. package/lib/maps/symbols/font-awesome/info-circle.png +0 -0
  90. package/lib/maps/symbols/font-awesome/male.png +0 -0
  91. package/lib/maps/symbols/font-awesome/medkit.png +0 -0
  92. package/lib/maps/symbols/font-awesome/mobile.png +0 -0
  93. package/lib/maps/symbols/font-awesome/plus-circle.png +0 -0
  94. package/lib/maps/symbols/font-awesome/plus-square.png +0 -0
  95. package/lib/maps/symbols/font-awesome/plus.png +0 -0
  96. package/lib/maps/symbols/font-awesome/square.png +0 -0
  97. package/lib/maps/symbols/font-awesome/star.png +0 -0
  98. package/lib/maps/symbols/font-awesome/thumbs-down.png +0 -0
  99. package/lib/maps/symbols/font-awesome/thumbs-up.png +0 -0
  100. package/lib/maps/symbols/font-awesome/ticket.png +0 -0
  101. package/lib/maps/symbols/font-awesome/times-circle.png +0 -0
  102. package/lib/maps/symbols/font-awesome/times.png +0 -0
  103. package/lib/maps/symbols/font-awesome/tint.png +0 -0
  104. package/lib/maps/symbols/font-awesome/tree.png +0 -0
  105. package/lib/maps/symbols/font-awesome/university.png +0 -0
  106. package/lib/maps/symbols/font-awesome/usd.png +0 -0
  107. package/lib/maps/symbols/font-awesome/user.png +0 -0
  108. package/lib/maps/symbols/font-awesome/users.png +0 -0
  109. package/lib/maps/symbols/font-awesome/wheelchair.png +0 -0
  110. package/lib/maps/symbols/sdf-ize.sh +93 -0
  111. package/lib/maps/vectorMaps.d.ts +1 -0
  112. package/lib/maps/vectorMaps.js +20 -36
  113. package/lib/mwater_table_selection/FormsListComponent.d.ts +33 -0
  114. package/lib/mwater_table_selection/FormsListComponent.js +141 -0
  115. package/lib/mwater_table_selection/IndicatorsListComponent.d.ts +49 -0
  116. package/lib/mwater_table_selection/IndicatorsListComponent.js +251 -0
  117. package/lib/mwater_table_selection/IssuesListComponent.d.ts +29 -0
  118. package/lib/mwater_table_selection/IssuesListComponent.js +123 -0
  119. package/lib/mwater_table_selection/MWaterAccountingSystemListComponent.d.ts +20 -0
  120. package/lib/mwater_table_selection/MWaterAccountingSystemListComponent.js +157 -0
  121. package/lib/mwater_table_selection/MWaterAssetSystemsListComponent.d.ts +17 -0
  122. package/lib/mwater_table_selection/MWaterAssetSystemsListComponent.js +79 -0
  123. package/lib/mwater_table_selection/MWaterCalculatedDataSourcesListComponent.d.ts +18 -0
  124. package/lib/mwater_table_selection/MWaterCalculatedDataSourcesListComponent.js +80 -0
  125. package/lib/mwater_table_selection/MWaterCompleteTableSelectComponent.d.ts +63 -0
  126. package/lib/mwater_table_selection/MWaterCompleteTableSelectComponent.js +461 -0
  127. package/lib/mwater_table_selection/MWaterCustomTablesetListComponent.d.ts +17 -0
  128. package/lib/mwater_table_selection/MWaterCustomTablesetListComponent.js +94 -0
  129. package/lib/mwater_table_selection/MWaterMetricsTableListComponent.d.ts +17 -0
  130. package/lib/mwater_table_selection/MWaterMetricsTableListComponent.js +80 -0
  131. package/lib/mwater_table_selection/MWaterTableSelectComponent.d.ts +32 -0
  132. package/lib/mwater_table_selection/MWaterTableSelectComponent.js +163 -0
  133. package/lib/mwater_table_selection/MWaterWorkflowsSelectComponent.d.ts +19 -0
  134. package/lib/mwater_table_selection/MWaterWorkflowsSelectComponent.js +111 -0
  135. package/lib/quickfilter/QuickfiltersComponent.d.ts +3 -102
  136. package/lib/quickfilter/QuickfiltersComponent.js +53 -110
  137. package/lib/quickfilter/TextLiteralComponent.d.ts +23 -47
  138. package/lib/quickfilter/TextLiteralComponent.js +85 -82
  139. package/lib/widgets/MapWidget.js +4 -2
  140. package/lib/widgets/charts/Chart.d.ts +11 -0
  141. package/lib/widgets/charts/Chart.js +15 -0
  142. package/lib/widgets/charts/ChartWidgetComponent.d.ts +1 -0
  143. package/lib/widgets/charts/ChartWidgetComponent.js +27 -1
  144. package/lib/widgets/charts/layered/LayeredChartDesign.d.ts +1 -1
  145. package/lib/widgets/charts/layered/LayeredChartDesignerComponent.d.ts +1 -1
  146. package/lib/widgets/charts/layered/LayeredChartDesignerComponent.js +5 -12
  147. package/lib/widgets/charts/layered/LayeredChartLayerDesignerComponent.d.ts +43 -57
  148. package/lib/widgets/charts/layered/LayeredChartLayerDesignerComponent.js +113 -110
  149. package/lib/widgets/charts/layered/LayeredChartUtils.d.ts +2 -1
  150. package/lib/widgets/charts/layered/LayeredChartUtils.js +0 -2
  151. package/lib/widgets/charts/pivot/PivotChart.d.ts +2 -0
  152. package/lib/widgets/charts/pivot/PivotChart.js +156 -0
  153. package/lib/widgets/charts/pivot/PivotChartDesignerComponent.d.ts +5 -20
  154. package/lib/widgets/charts/pivot/PivotChartDesignerComponent.js +31 -61
  155. package/lib/widgets/charts/pivot/PivotChartLayoutBuilder.d.ts +4 -0
  156. package/lib/widgets/charts/pivot/PivotChartLayoutBuilder.js +4 -2
  157. package/lib/widgets/charts/pivot/PivotChartLayoutComponent.d.ts +5 -44
  158. package/lib/widgets/charts/pivot/PivotChartLayoutComponent.js +38 -63
  159. package/lib/widgets/charts/pivot/SegmentDesignerComponent.d.ts +7 -68
  160. package/lib/widgets/charts/pivot/SegmentDesignerComponent.js +58 -106
  161. package/lib/widgets/charts/table/TableChart.d.ts +2 -0
  162. package/lib/widgets/charts/table/TableChart.js +172 -1
  163. package/lib/widgets/charts/table/TableChartDesignerComponent.d.ts +7 -17
  164. package/lib/widgets/charts/table/TableChartDesignerComponent.js +79 -95
  165. package/lib/widgets/charts/table/TableChartViewComponent.d.ts +1 -7
  166. package/lib/widgets/charts/table/TableChartViewComponent.js +19 -27
  167. package/lib/widgets/text/ExprItemEditorComponent.d.ts +3 -8
  168. package/lib/widgets/text/ExprItemEditorComponent.js +36 -33
  169. package/lib/widgets/text/ExprUpdateModalComponent.d.ts +1 -0
  170. package/package.json +4 -10
  171. package/src/MWaterContextComponent.tsx +2 -2
  172. package/src/{MWaterGlobalFiltersComponent.ts → MWaterGlobalFiltersComponent.tsx} +32 -33
  173. package/src/{MWaterLoaderComponent.ts → MWaterLoaderComponent.tsx} +18 -19
  174. package/src/UndoStack.ts +14 -6
  175. package/src/dashboards/DashboardComponent.tsx +7 -5
  176. package/src/dashboards/DashboardDesign.ts +1 -1
  177. package/src/dashboards/LayoutOptionsComponent.tsx +22 -10
  178. package/src/dashboards/ServerDashboardDataSource.ts +36 -13
  179. package/src/dashboards/SettingsModalComponent.tsx +1 -1
  180. package/src/dashboards/layoutOptions.tsx +5 -1
  181. package/src/datagrids/DatagridComponent.tsx +31 -3
  182. package/src/datagrids/DatagridDesignerComponent.tsx +241 -229
  183. package/src/datagrids/DatagridViewComponent.tsx +3 -2
  184. package/src/datagrids/ExprCellComponent.tsx +23 -20
  185. package/src/datagrids/OrderBysDesignerComponent.tsx +61 -70
  186. package/src/index.css +45 -2
  187. package/src/index.ts +5 -11
  188. package/src/layouts/blocks/BlocksDisplayComponent.tsx +60 -5
  189. package/src/maps/BufferLayer.ts +48 -20
  190. package/src/maps/BufferLayerDesign.ts +1 -1
  191. package/src/maps/BufferLayerDesignerComponent.tsx +2 -1
  192. package/src/maps/ChoroplethLayer.ts +70 -39
  193. package/src/maps/ChoroplethLayerDesign.ts +6 -2
  194. package/src/maps/ChoroplethLayerDesigner.tsx +171 -167
  195. package/src/maps/DirectMapDataSource.ts +21 -13
  196. package/src/maps/EditHoverOver.tsx +98 -54
  197. package/src/maps/HoverContent.tsx +17 -48
  198. package/src/maps/Layer.ts +42 -4
  199. package/src/maps/LeafletMapComponent.tsx +10 -19
  200. package/src/maps/MWaterServerLayer.ts +6 -6
  201. package/src/maps/MapComponent.ts +0 -1
  202. package/src/maps/MapLayerDataSource.ts +8 -0
  203. package/src/maps/MapUtils.ts +82 -3
  204. package/src/maps/MarkersLayer.ts +54 -27
  205. package/src/maps/MarkersLayerDesign.ts +1 -1
  206. package/src/maps/MarkersLayerDesignerComponent.tsx +360 -0
  207. package/src/maps/RasterMapViewComponent.ts +1 -1
  208. package/src/maps/ServerMapDataSource.ts +35 -12
  209. package/src/maps/VectorMapViewComponent.tsx +8 -19
  210. package/src/maps/maps.ts +4 -2
  211. package/src/maps/symbols/font-awesome/asterisk.png +0 -0
  212. package/src/maps/symbols/font-awesome/ban.png +0 -0
  213. package/src/maps/symbols/font-awesome/beer.png +0 -0
  214. package/src/maps/symbols/font-awesome/bell.png +0 -0
  215. package/src/maps/symbols/font-awesome/bolt.png +0 -0
  216. package/src/maps/symbols/font-awesome/building.png +0 -0
  217. package/src/maps/symbols/font-awesome/bullseye.png +0 -0
  218. package/src/maps/symbols/font-awesome/bus.png +0 -0
  219. package/src/maps/symbols/font-awesome/caret-up.png +0 -0
  220. package/src/maps/symbols/font-awesome/certificate.png +0 -0
  221. package/src/maps/symbols/font-awesome/check-circle.png +0 -0
  222. package/src/maps/symbols/font-awesome/check.png +0 -0
  223. package/src/maps/symbols/font-awesome/chevron-circle-down.png +0 -0
  224. package/src/maps/symbols/font-awesome/chevron-circle-up.png +0 -0
  225. package/src/maps/symbols/font-awesome/cloud-rain.png +0 -0
  226. package/src/maps/symbols/font-awesome/cloud.png +0 -0
  227. package/src/maps/symbols/font-awesome/comment.png +0 -0
  228. package/src/maps/symbols/font-awesome/crosshairs.png +0 -0
  229. package/src/maps/symbols/font-awesome/dot-circle-o.png +0 -0
  230. package/src/maps/symbols/font-awesome/exclamation-circle.png +0 -0
  231. package/src/maps/symbols/font-awesome/exclamation-triangle.png +0 -0
  232. package/src/maps/symbols/font-awesome/female.png +0 -0
  233. package/src/maps/symbols/font-awesome/file.png +0 -0
  234. package/src/maps/symbols/font-awesome/flag.png +0 -0
  235. package/src/maps/symbols/font-awesome/flask.png +0 -0
  236. package/src/maps/symbols/font-awesome/h-square.png +0 -0
  237. package/src/maps/symbols/font-awesome/home.png +0 -0
  238. package/src/maps/symbols/font-awesome/info-circle.png +0 -0
  239. package/src/maps/symbols/font-awesome/male.png +0 -0
  240. package/src/maps/symbols/font-awesome/medkit.png +0 -0
  241. package/src/maps/symbols/font-awesome/mobile.png +0 -0
  242. package/src/maps/symbols/font-awesome/plus-circle.png +0 -0
  243. package/src/maps/symbols/font-awesome/plus-square.png +0 -0
  244. package/src/maps/symbols/font-awesome/plus.png +0 -0
  245. package/src/maps/symbols/font-awesome/square.png +0 -0
  246. package/src/maps/symbols/font-awesome/star.png +0 -0
  247. package/src/maps/symbols/font-awesome/thumbs-down.png +0 -0
  248. package/src/maps/symbols/font-awesome/thumbs-up.png +0 -0
  249. package/src/maps/symbols/font-awesome/ticket.png +0 -0
  250. package/src/maps/symbols/font-awesome/times-circle.png +0 -0
  251. package/src/maps/symbols/font-awesome/times.png +0 -0
  252. package/src/maps/symbols/font-awesome/tint.png +0 -0
  253. package/src/maps/symbols/font-awesome/tree.png +0 -0
  254. package/src/maps/symbols/font-awesome/university.png +0 -0
  255. package/src/maps/symbols/font-awesome/usd.png +0 -0
  256. package/src/maps/symbols/font-awesome/user.png +0 -0
  257. package/src/maps/symbols/font-awesome/users.png +0 -0
  258. package/src/maps/symbols/font-awesome/wheelchair.png +0 -0
  259. package/src/maps/symbols/sdf-ize.sh +93 -0
  260. package/src/maps/vectorMaps.tsx +20 -44
  261. package/src/mwater_table_selection/FormsListComponent.tsx +188 -0
  262. package/src/mwater_table_selection/IndicatorsListComponent.tsx +411 -0
  263. package/src/mwater_table_selection/IssuesListComponent.tsx +167 -0
  264. package/src/mwater_table_selection/MWaterAccountingSystemListComponent.tsx +225 -0
  265. package/src/{MWaterAssetSystemsListComponent.tsx → mwater_table_selection/MWaterAssetSystemsListComponent.tsx} +2 -2
  266. package/src/mwater_table_selection/MWaterCalculatedDataSourcesListComponent.tsx +111 -0
  267. package/src/mwater_table_selection/MWaterCompleteTableSelectComponent.tsx +713 -0
  268. package/src/{MWaterCustomTablesetListComponent.tsx → mwater_table_selection/MWaterCustomTablesetListComponent.tsx} +1 -1
  269. package/src/{MWaterMetricsTableListComponent.tsx → mwater_table_selection/MWaterMetricsTableListComponent.tsx} +1 -1
  270. package/src/{MWaterTableSelectComponent.tsx → mwater_table_selection/MWaterTableSelectComponent.tsx} +91 -90
  271. package/src/mwater_table_selection/MWaterWorkflowsSelectComponent.tsx +159 -0
  272. package/src/quickfilter/{QuickfiltersComponent.ts → QuickfiltersComponent.tsx} +165 -158
  273. package/src/quickfilter/TextLiteralComponent.tsx +197 -0
  274. package/src/widgets/MapWidget.tsx +9 -1
  275. package/src/widgets/charts/Chart.ts +17 -0
  276. package/src/widgets/charts/ChartWidgetComponent.tsx +36 -1
  277. package/src/widgets/charts/layered/LayeredChartDesign.ts +1 -1
  278. package/src/widgets/charts/layered/LayeredChartDesignerComponent.tsx +23 -24
  279. package/src/widgets/charts/layered/LayeredChartLayerDesignerComponent.tsx +260 -211
  280. package/src/widgets/charts/layered/LayeredChartUtils.ts +7 -7
  281. package/src/widgets/charts/pivot/PivotChart.ts +191 -0
  282. package/src/widgets/charts/pivot/PivotChartDesignerComponent.tsx +124 -129
  283. package/src/widgets/charts/pivot/PivotChartLayoutBuilder.ts +4 -2
  284. package/src/widgets/charts/pivot/PivotChartLayoutComponent.tsx +120 -149
  285. package/src/widgets/charts/pivot/SegmentDesignerComponent.tsx +178 -198
  286. package/src/widgets/charts/table/TableChart.ts +177 -1
  287. package/src/widgets/charts/table/TableChartDesignerComponent.tsx +422 -0
  288. package/src/widgets/charts/table/{TableChartViewComponent.ts → TableChartViewComponent.tsx} +65 -60
  289. package/src/widgets/text/ExprItemEditorComponent.tsx +83 -77
  290. package/src/widgets/text/ExprUpdateModalComponent.tsx +1 -0
  291. package/test/UndoStackTests.ts +52 -1
  292. package/.storybook/config.js +0 -7
  293. package/.storybook/head.html +0 -4
  294. package/.storybook/webpack.config.js +0 -15
  295. package/src/MWaterCompleteTableSelectComponent.tsx +0 -975
  296. package/src/maps/BingLayer.ts +0 -146
  297. package/src/maps/MarkersLayerDesignerComponent.ts +0 -374
  298. package/src/quickfilter/TextLiteralComponent.ts +0 -165
  299. package/src/widgets/charts/table/TableChartDesignerComponent.ts +0 -441
  300. package/stories/UpdateableComponent.js +0 -29
  301. package/stories/consoles.js +0 -202
  302. package/stories/dashboards.js +0 -217
  303. package/stories/datagridDesign.js +0 -114
  304. package/stories/datagrids.js +0 -69
  305. package/stories/dates.js +0 -80
  306. package/stories/exprcomponent.js +0 -43
  307. package/stories/index.js +0 -18
  308. package/stories/leaflet.js +0 -59
  309. package/stories/maps.js +0 -24
  310. package/stories/pivotChart.js +0 -235
@@ -1,7 +1,5 @@
1
1
  import _ from "lodash"
2
2
  import React from "react"
3
- const R = React.createElement
4
-
5
3
  import Color from "color"
6
4
  import * as ui from "@mwater/react-library/lib/bootstrap"
7
5
  import classNames from "classnames"
@@ -61,77 +59,71 @@ export default class PivotChartLayoutComponent extends React.Component<PivotChar
61
59
  }
62
60
 
63
61
  renderRow(row: PivotChartLayoutRow, rowIndex: number) {
64
- return R(
65
- "tr",
66
- { key: rowIndex },
67
- _.map(row.cells, (cell, columnIndex) => {
68
- return R(LayoutCellComponent, {
69
- ref: this.recordCellComp.bind(null, rowIndex, columnIndex),
70
- key: columnIndex,
71
- layout: this.props.layout,
72
- rowIndex,
73
- columnIndex,
74
- onHover: this.props.editable ? () => this.setState({ hoverSection: cell.section ?? null }) : undefined,
75
- hoverSection: this.props.editable ? this.state.hoverSection : undefined,
76
- onEditSection: this.props.onEditSection ? this.props.onEditSection.bind(null, cell.section) : undefined,
77
- onSummarizeSegment: this.props.onSummarizeSegment
62
+ return <tr key={rowIndex}>
63
+ {_.map(row.cells, (cell, columnIndex) => {
64
+ return <LayoutCellComponent
65
+ ref={this.recordCellComp.bind(null, rowIndex, columnIndex)}
66
+ key={columnIndex}
67
+ layout={this.props.layout}
68
+ rowIndex={rowIndex}
69
+ columnIndex={columnIndex}
70
+ onHover={this.props.editable ? () => this.setState({ hoverSection: cell.section ?? null }) : undefined}
71
+ hoverSection={this.props.editable ? this.state.hoverSection : undefined}
72
+ onEditSection={this.props.onEditSection ? this.props.onEditSection.bind(null, cell.section) : undefined}
73
+ onSummarizeSegment={this.props.onSummarizeSegment
78
74
  ? this.props.onSummarizeSegment.bind(null, cell.section)
79
- : undefined
80
- })
81
- })
82
- )
75
+ : undefined}
76
+ />
77
+ })}
78
+ </tr>
83
79
  }
84
80
 
85
81
  renderHoverPlusIcon = (key: any, x: any, y: any, onClick: any) => {
86
82
  // Render a plus box
87
- return R(
88
- "div",
89
- {
90
- key,
91
- onClick,
92
- style: {
93
- position: "absolute",
94
- left: x - 7,
95
- top: y - 6,
96
- border: "solid 1px #337ab7",
97
- backgroundColor: "white",
98
- paddingLeft: 2,
99
- paddingRight: 2,
100
- paddingTop: 0,
101
- color: "#337ab7",
102
- fontSize: 9,
103
- cursor: "pointer",
104
- opacity: 0.8
105
- }
106
- },
107
- R(ui.Icon, { id: "fa-plus" })
108
- )
83
+ return <div
84
+ key={key}
85
+ onClick={onClick}
86
+ style={{
87
+ position: "absolute",
88
+ left: x - 7,
89
+ top: y - 6,
90
+ border: "solid 1px #337ab7",
91
+ backgroundColor: "white",
92
+ paddingLeft: 2,
93
+ paddingRight: 2,
94
+ paddingTop: 0,
95
+ color: "#337ab7",
96
+ fontSize: 9,
97
+ cursor: "pointer",
98
+ opacity: 0.8
99
+ }}
100
+ >
101
+ <ui.Icon id="fa-plus" />
102
+ </div>
109
103
  }
110
104
 
111
105
  renderHoverRemoveIcon = (key: any, x: any, y: any, onClick: any) => {
112
106
  // Render a plus box
113
- return R(
114
- "div",
115
- {
116
- key,
117
- onClick,
118
- style: {
119
- position: "absolute",
120
- left: x - 7,
121
- top: y - 6,
122
- border: "solid 1px #337ab7",
123
- backgroundColor: "white",
124
- paddingLeft: 3,
125
- paddingRight: 3,
126
- paddingTop: 0,
127
- color: "#337ab7",
128
- fontSize: 9,
129
- cursor: "pointer",
130
- opacity: 0.8
131
- }
132
- },
133
- R(ui.Icon, { id: "fa-remove" })
134
- )
107
+ return <div
108
+ key={key}
109
+ onClick={onClick}
110
+ style={{
111
+ position: "absolute",
112
+ left: x - 7,
113
+ top: y - 6,
114
+ border: "solid 1px #337ab7",
115
+ backgroundColor: "white",
116
+ paddingLeft: 3,
117
+ paddingRight: 3,
118
+ paddingTop: 0,
119
+ color: "#337ab7",
120
+ fontSize: 9,
121
+ cursor: "pointer",
122
+ opacity: 0.8
123
+ }}
124
+ >
125
+ <ui.Icon id="fa-remove" />
126
+ </div>
135
127
  }
136
128
 
137
129
  // Render floating hover controls
@@ -259,24 +251,20 @@ export default class PivotChartLayoutComponent extends React.Component<PivotChar
259
251
  )
260
252
  }
261
253
 
262
- return R("div", { key: "hover-controls" }, controls)
254
+ return <div key="hover-controls">{controls}</div>
263
255
  }
264
256
 
265
257
  render() {
266
- return R(
267
- "div",
268
- {
269
- style: { position: "relative" },
270
- onMouseLeave: () => this.setState({ hoverSection: null })
271
- },
272
- // Define CSS classes to keep HTML as small as possible
273
- // https://stackoverflow.com/a/19047221/876117
274
- // https://github.com/mWater/mwater-portal/issues/1183
275
- // cell borders not visible in firefox when you have a cell with position relative inside a table with collapsed borders
276
- R(
277
- "style",
278
- null,
279
- `\
258
+ return <div
259
+ style={{ position: "relative" }}
260
+ onMouseLeave={() => this.setState({ hoverSection: null })}
261
+ >
262
+ {/* Define CSS classes to keep HTML as small as possible
263
+ https://stackoverflow.com/a/19047221/876117
264
+ https://github.com/mWater/mwater-portal/issues/1183
265
+ cell borders not visible in firefox when you have a cell with position relative inside a table with collapsed borders */}
266
+ <style>
267
+ {`\
280
268
  .pivot-chart-table {
281
269
  width: 100%;
282
270
  border-spacing: 0;
@@ -304,42 +292,32 @@ vertical-align: top;
304
292
  .pivot-chart-table .br1 { border-right: solid 1px #f4f4f4 }
305
293
  .pivot-chart-table .br2 { border-right: solid 1px #ccc }
306
294
  .pivot-chart-table .br3 { border-right: solid 1px #888 }\
307
- `
308
- ),
309
- this.props.layout.tooManyRows
310
- ? R(
311
- "div",
312
- { className: "text-warning", style: { fontSize: 12 } },
313
- R("i", { className: "fa fa-exclamation-circle" }),
314
- T`Warning: Too many rows in table to display`
315
- )
316
- : undefined,
317
-
318
- this.props.layout.tooManyColumns
319
- ? R(
320
- "div",
321
- { className: "text-warning", style: { fontSize: 12 } },
322
- R("i", { className: "fa fa-exclamation-circle" }),
323
- T`Warning: Too many columns in table to display`
324
- )
325
- : undefined,
326
- R(
327
- "div",
328
- { style: { position: "relative" } },
329
- R(
330
- "table",
331
- { className: "pivot-chart-table" },
332
- R(
333
- "tbody",
334
- null,
335
- _.map(this.props.layout.rows, (row, rowIndex) => {
295
+ `}
296
+ </style>
297
+ {this.props.layout.tooManyRows ? (
298
+ <div className="text-warning" style={{ fontSize: 12 }}>
299
+ <i className="fa fa-exclamation-circle" />
300
+ {T`Warning: Too many rows in table to display`}
301
+ </div>
302
+ ) : undefined}
303
+
304
+ {this.props.layout.tooManyColumns ? (
305
+ <div className="text-warning" style={{ fontSize: 12 }}>
306
+ <i className="fa fa-exclamation-circle" />
307
+ {T`Warning: Too many columns in table to display`}
308
+ </div>
309
+ ) : undefined}
310
+ <div style={{ position: "relative" }}>
311
+ <table className="pivot-chart-table">
312
+ <tbody>
313
+ {_.map(this.props.layout.rows, (row, rowIndex) => {
336
314
  return this.renderRow(row, rowIndex)
337
- })
338
- )
339
- ),
340
- this.renderHoverControls()
341
- )
342
- )
315
+ })}
316
+ </tbody>
317
+ </table>
318
+ {this.renderHoverControls()}
319
+ </div>
320
+ </div>
343
321
  }
344
322
  }
345
323
 
@@ -387,17 +365,13 @@ class LayoutCellComponent extends React.Component<LayoutCellComponentProps> {
387
365
  return null
388
366
  }
389
367
 
390
- return R(
391
- "span",
392
- { style: { fontSize: "90%" } },
393
- R("a", { className: "link-plain", onClick: this.props.onEditSection }, T`Edit`),
394
- cell.summarize
395
- ? [
396
- R("span", { className: "text-muted" }, ` / `),
397
- R("a", { className: "link-plain", onClick: this.props.onSummarizeSegment }, T`Summarize`)
398
- ]
399
- : undefined
400
- )
368
+ return <span style={{ fontSize: "90%" }}>
369
+ <a className="link-plain" onClick={this.props.onEditSection}>{T`Edit`}</a>
370
+ {cell.summarize ? [
371
+ <span className="text-muted"> / </span>,
372
+ <a className="link-plain" onClick={this.props.onSummarizeSegment}>{T`Summarize`}</a>
373
+ ] : undefined}
374
+ </span>
401
375
  }
402
376
 
403
377
  render() {
@@ -452,12 +426,13 @@ class LayoutCellComponent extends React.Component<LayoutCellComponentProps> {
452
426
  textColor = lightness < 0.5 ? "rgb(204,204,204)" : undefined
453
427
  }
454
428
 
455
- const style = {
456
- backgroundColor,
429
+ const style: React.CSSProperties = {
430
+ backgroundColor: backgroundColor || undefined,
457
431
  textAlign: cell.align,
458
432
  cursor: isHover && !cell.unconfigured ? "pointer" : undefined,
459
- color: textColor
433
+ color: textColor || undefined
460
434
  }
435
+
461
436
  const classes = classNames({
462
437
  cell: true,
463
438
  // List out borders in compact way to keep HTML smaller
@@ -476,32 +451,28 @@ class LayoutCellComponent extends React.Component<LayoutCellComponentProps> {
476
451
  })
477
452
 
478
453
  // Style that should not affect popup menu
479
- const innerStyle = {
454
+ const innerStyle: React.CSSProperties = {
480
455
  fontWeight: cell.bold ? "bold" : undefined,
481
456
  fontStyle: cell.italic ? "italic" : undefined,
482
457
  marginLeft: cell.indent ? cell.indent * 5 : undefined
483
458
  }
484
459
 
485
- return R(
486
- "td",
487
- {
488
- ref: (c) => {
489
- this.tdComponent = c
490
- },
491
- onMouseEnter: this.props.onHover,
492
- onClick: this.handleClick,
493
- className: classes,
494
- style,
495
- colSpan: cell.columnSpan || null,
496
- rowSpan: cell.rowSpan || null
497
- },
498
- R(
499
- "span",
500
- { style: innerStyle },
501
- cell.unconfigured && this.props.onEditSection
460
+ return <td
461
+ ref={(c) => {
462
+ this.tdComponent = c
463
+ }}
464
+ onMouseEnter={this.props.onHover}
465
+ onClick={this.handleClick}
466
+ className={classes}
467
+ style={style}
468
+ colSpan={cell.columnSpan || undefined}
469
+ rowSpan={cell.rowSpan || undefined}
470
+ >
471
+ <span style={innerStyle}>
472
+ {cell.unconfigured && this.props.onEditSection
502
473
  ? this.renderUnconfigured(cell)
503
- : cell.text || "\u00A0\u00A0\u00A0"
504
- )
505
- )
474
+ : cell.text || "\u00A0\u00A0\u00A0"}
475
+ </span>
476
+ </td>
506
477
  }
507
478
  }