@mwater/visualization 5.5.0 → 5.6.1

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 (275) hide show
  1. package/lib/ColorComponent.js +2 -2
  2. package/lib/MWaterContextComponent.d.ts +1 -1
  3. package/lib/MWaterGlobalFiltersComponent.d.ts +2 -2
  4. package/lib/MWaterGlobalFiltersComponent.js +11 -20
  5. package/lib/MWaterLoaderComponent.d.ts +4 -13
  6. package/lib/MWaterLoaderComponent.js +2 -11
  7. package/lib/TranslationsTabComponent.d.ts +34 -0
  8. package/lib/TranslationsTabComponent.js +256 -0
  9. package/lib/UndoStack.d.ts +2 -1
  10. package/lib/UndoStack.js +12 -6
  11. package/lib/dashboards/DashboardComponent.js +6 -5
  12. package/lib/dashboards/DashboardDesign.d.ts +1 -1
  13. package/lib/dashboards/ServerDashboardDataSource.d.ts +0 -1
  14. package/lib/dashboards/ServerDashboardDataSource.js +0 -25
  15. package/lib/dashboards/SettingsModalComponent.js +9 -233
  16. package/lib/datagrids/DatagridComponent.js +27 -2
  17. package/lib/datagrids/DatagridDesignerComponent.d.ts +2 -3
  18. package/lib/datagrids/DatagridDesignerComponent.js +108 -120
  19. package/lib/datagrids/DatagridViewComponent.js +33 -6
  20. package/lib/datagrids/OrderBysDesignerComponent.d.ts +7 -7
  21. package/lib/datagrids/OrderBysDesignerComponent.js +19 -28
  22. package/lib/index.css +45 -2
  23. package/lib/index.d.ts +5 -5
  24. package/lib/index.js +2 -3
  25. package/lib/layouts/blocks/BlocksDisplayComponent.d.ts +8 -1
  26. package/lib/layouts/blocks/BlocksDisplayComponent.js +46 -4
  27. package/lib/maps/BufferLayer.d.ts +0 -13
  28. package/lib/maps/BufferLayer.js +24 -237
  29. package/lib/maps/BufferLayerDesign.d.ts +1 -1
  30. package/lib/maps/BufferLayerDesignerComponent.d.ts +1 -1
  31. package/lib/maps/BufferLayerDesignerComponent.js +2 -7
  32. package/lib/maps/ChoroplethLayer.d.ts +1 -16
  33. package/lib/maps/ChoroplethLayer.js +25 -358
  34. package/lib/maps/ChoroplethLayerDesign.d.ts +5 -2
  35. package/lib/maps/ChoroplethLayerDesigner.d.ts +10 -32
  36. package/lib/maps/ChoroplethLayerDesigner.js +58 -89
  37. package/lib/maps/ClusterLayer.d.ts +0 -9
  38. package/lib/maps/ClusterLayer.js +0 -250
  39. package/lib/maps/DirectMapDataSource.js +1 -48
  40. package/lib/maps/EditHoverOver.d.ts +4 -3
  41. package/lib/maps/EditHoverOver.js +3 -3
  42. package/lib/maps/GridLayer.d.ts +0 -15
  43. package/lib/maps/GridLayer.js +0 -212
  44. package/lib/maps/HoverContent.js +1 -1
  45. package/lib/maps/Layer.d.ts +1 -26
  46. package/lib/maps/Layer.js +0 -13
  47. package/lib/maps/LeafletMapComponent.js +10 -19
  48. package/lib/maps/MapComponent.d.ts +19 -35
  49. package/lib/maps/MapComponent.js +135 -77
  50. package/lib/maps/MapControlComponent.d.ts +4 -5
  51. package/lib/maps/MapControlComponent.js +5 -12
  52. package/lib/maps/MapDesign.d.ts +8 -0
  53. package/lib/maps/MapDesignerComponent.d.ts +2 -0
  54. package/lib/maps/MapDesignerComponent.js +7 -2
  55. package/lib/maps/MapLayerDataSource.d.ts +0 -4
  56. package/lib/maps/MapLayerViewDesignerComponent.d.ts +3 -1
  57. package/lib/maps/MapLayerViewDesignerComponent.js +5 -1
  58. package/lib/maps/MapLayersDesignerComponent.d.ts +2 -0
  59. package/lib/maps/MapLayersDesignerComponent.js +2 -1
  60. package/lib/maps/MapTranslationsTab.d.ts +15 -0
  61. package/lib/maps/MapTranslationsTab.js +47 -0
  62. package/lib/maps/MapUtils.d.ts +11 -0
  63. package/lib/maps/MapUtils.js +57 -1
  64. package/lib/maps/MapViewComponent.d.ts +1 -1
  65. package/lib/maps/MapViewComponent.js +1 -8
  66. package/lib/maps/MarkersLayer.d.ts +1 -14
  67. package/lib/maps/MarkersLayer.js +89 -254
  68. package/lib/maps/MarkersLayerDesign.d.ts +5 -1
  69. package/lib/maps/MarkersLayerDesignerComponent.d.ts +32 -57
  70. package/lib/maps/MarkersLayerDesignerComponent.js +158 -134
  71. package/lib/maps/ServerMapDataSource.d.ts +0 -1
  72. package/lib/maps/ServerMapDataSource.js +0 -25
  73. package/lib/maps/SwitchableTileUrlLayer.d.ts +0 -2
  74. package/lib/maps/SwitchableTileUrlLayer.js +0 -9
  75. package/lib/maps/TileUrlLayer.d.ts +0 -1
  76. package/lib/maps/TileUrlLayer.js +0 -5
  77. package/lib/maps/VectorMapViewComponent.js +13 -10
  78. package/lib/maps/symbols/font-awesome/asterisk.png +0 -0
  79. package/lib/maps/symbols/font-awesome/ban.png +0 -0
  80. package/lib/maps/symbols/font-awesome/beer.png +0 -0
  81. package/lib/maps/symbols/font-awesome/bell.png +0 -0
  82. package/lib/maps/symbols/font-awesome/bolt.png +0 -0
  83. package/lib/maps/symbols/font-awesome/building.png +0 -0
  84. package/lib/maps/symbols/font-awesome/bullseye.png +0 -0
  85. package/lib/maps/symbols/font-awesome/bus.png +0 -0
  86. package/lib/maps/symbols/font-awesome/caret-up.png +0 -0
  87. package/lib/maps/symbols/font-awesome/certificate.png +0 -0
  88. package/lib/maps/symbols/font-awesome/check-circle.png +0 -0
  89. package/lib/maps/symbols/font-awesome/check.png +0 -0
  90. package/lib/maps/symbols/font-awesome/chevron-circle-down.png +0 -0
  91. package/lib/maps/symbols/font-awesome/chevron-circle-up.png +0 -0
  92. package/lib/maps/symbols/font-awesome/cloud-rain.png +0 -0
  93. package/lib/maps/symbols/font-awesome/cloud.png +0 -0
  94. package/lib/maps/symbols/font-awesome/comment.png +0 -0
  95. package/lib/maps/symbols/font-awesome/crosshairs.png +0 -0
  96. package/lib/maps/symbols/font-awesome/dot-circle-o.png +0 -0
  97. package/lib/maps/symbols/font-awesome/exclamation-circle.png +0 -0
  98. package/lib/maps/symbols/font-awesome/exclamation-triangle.png +0 -0
  99. package/lib/maps/symbols/font-awesome/female.png +0 -0
  100. package/lib/maps/symbols/font-awesome/file.png +0 -0
  101. package/lib/maps/symbols/font-awesome/flag.png +0 -0
  102. package/lib/maps/symbols/font-awesome/flask.png +0 -0
  103. package/lib/maps/symbols/font-awesome/h-square.png +0 -0
  104. package/lib/maps/symbols/font-awesome/home.png +0 -0
  105. package/lib/maps/symbols/font-awesome/info-circle.png +0 -0
  106. package/lib/maps/symbols/font-awesome/male.png +0 -0
  107. package/lib/maps/symbols/font-awesome/medkit.png +0 -0
  108. package/lib/maps/symbols/font-awesome/mobile.png +0 -0
  109. package/lib/maps/symbols/font-awesome/plus-circle.png +0 -0
  110. package/lib/maps/symbols/font-awesome/plus-square.png +0 -0
  111. package/lib/maps/symbols/font-awesome/plus.png +0 -0
  112. package/lib/maps/symbols/font-awesome/square.png +0 -0
  113. package/lib/maps/symbols/font-awesome/star.png +0 -0
  114. package/lib/maps/symbols/font-awesome/thumbs-down.png +0 -0
  115. package/lib/maps/symbols/font-awesome/thumbs-up.png +0 -0
  116. package/lib/maps/symbols/font-awesome/ticket.png +0 -0
  117. package/lib/maps/symbols/font-awesome/times-circle.png +0 -0
  118. package/lib/maps/symbols/font-awesome/times.png +0 -0
  119. package/lib/maps/symbols/font-awesome/tint.png +0 -0
  120. package/lib/maps/symbols/font-awesome/tree.png +0 -0
  121. package/lib/maps/symbols/font-awesome/university.png +0 -0
  122. package/lib/maps/symbols/font-awesome/usd.png +0 -0
  123. package/lib/maps/symbols/font-awesome/user.png +0 -0
  124. package/lib/maps/symbols/font-awesome/users.png +0 -0
  125. package/lib/maps/symbols/font-awesome/wheelchair.png +0 -0
  126. package/lib/maps/symbols/sdf-ize.sh +93 -0
  127. package/lib/maps/vectorMaps.d.ts +6 -6
  128. package/lib/maps/vectorMaps.js +33 -45
  129. package/lib/mwater_table_selection/IndicatorsListComponent.d.ts +4 -2
  130. package/lib/mwater_table_selection/IndicatorsListComponent.js +103 -34
  131. package/lib/mwater_table_selection/MWaterCalculatedDataSourcesListComponent.d.ts +18 -0
  132. package/lib/mwater_table_selection/MWaterCalculatedDataSourcesListComponent.js +80 -0
  133. package/lib/mwater_table_selection/MWaterCompleteTableSelectComponent.d.ts +26 -0
  134. package/lib/mwater_table_selection/MWaterCompleteTableSelectComponent.js +237 -51
  135. package/lib/mwater_table_selection/MWaterTableSelectComponent.d.ts +2 -2
  136. package/lib/mwater_table_selection/MWaterTableSelectComponent.js +9 -4
  137. package/lib/mwater_table_selection/MWaterWorkflowsSelectComponent.d.ts +19 -0
  138. package/lib/mwater_table_selection/MWaterWorkflowsSelectComponent.js +111 -0
  139. package/lib/quickfilter/QuickfiltersComponent.d.ts +3 -102
  140. package/lib/quickfilter/QuickfiltersComponent.js +53 -110
  141. package/lib/quickfilter/TextLiteralComponent.d.ts +23 -47
  142. package/lib/quickfilter/TextLiteralComponent.js +85 -82
  143. package/lib/widgets/MapWidget.js +6 -3
  144. package/lib/widgets/text/ExprItemEditorComponent.d.ts +3 -8
  145. package/lib/widgets/text/ExprItemEditorComponent.js +36 -33
  146. package/lib/widgets/text/ExprUpdateModalComponent.d.ts +1 -0
  147. package/package.json +3 -4
  148. package/src/ColorComponent.tsx +2 -2
  149. package/src/MWaterContextComponent.tsx +1 -1
  150. package/src/{MWaterGlobalFiltersComponent.ts → MWaterGlobalFiltersComponent.tsx} +32 -33
  151. package/src/{MWaterLoaderComponent.ts → MWaterLoaderComponent.tsx} +17 -18
  152. package/src/TranslationsTabComponent.tsx +429 -0
  153. package/src/UndoStack.ts +14 -6
  154. package/src/dashboards/DashboardComponent.tsx +6 -5
  155. package/src/dashboards/DashboardDesign.ts +1 -1
  156. package/src/dashboards/ServerDashboardDataSource.ts +0 -31
  157. package/src/dashboards/SettingsModalComponent.tsx +27 -383
  158. package/src/datagrids/DatagridComponent.tsx +36 -2
  159. package/src/datagrids/DatagridDesignerComponent.tsx +241 -229
  160. package/src/datagrids/DatagridViewComponent.tsx +44 -7
  161. package/src/datagrids/OrderBysDesignerComponent.tsx +61 -70
  162. package/src/index.css +45 -2
  163. package/src/index.ts +5 -11
  164. package/src/layouts/blocks/BlocksDisplayComponent.tsx +60 -5
  165. package/src/maps/BufferLayer.ts +30 -263
  166. package/src/maps/BufferLayerDesign.ts +1 -1
  167. package/src/maps/BufferLayerDesignerComponent.tsx +2 -7
  168. package/src/maps/ChoroplethLayer.ts +30 -394
  169. package/src/maps/ChoroplethLayerDesign.ts +5 -2
  170. package/src/maps/ChoroplethLayerDesigner.tsx +169 -165
  171. package/src/maps/ClusterLayer.ts +0 -274
  172. package/src/maps/DirectMapDataSource.ts +2 -61
  173. package/src/maps/EditHoverOver.tsx +9 -5
  174. package/src/maps/GridLayer.ts +0 -224
  175. package/src/maps/HoverContent.tsx +1 -1
  176. package/src/maps/Layer.ts +1 -35
  177. package/src/maps/LeafletMapComponent.tsx +10 -19
  178. package/src/maps/MapComponent.tsx +448 -0
  179. package/src/maps/MapControlComponent.tsx +41 -0
  180. package/src/maps/MapDesign.ts +6 -0
  181. package/src/maps/MapDesignerComponent.tsx +18 -1
  182. package/src/maps/MapLayerDataSource.ts +0 -5
  183. package/src/maps/MapLayerViewDesignerComponent.ts +9 -2
  184. package/src/maps/MapLayersDesignerComponent.ts +4 -1
  185. package/src/maps/MapTranslationsTab.tsx +53 -0
  186. package/src/maps/MapUtils.ts +61 -1
  187. package/src/maps/MapViewComponent.tsx +2 -8
  188. package/src/maps/MarkersLayer.ts +101 -275
  189. package/src/maps/MarkersLayerDesign.ts +7 -1
  190. package/src/maps/MarkersLayerDesignerComponent.tsx +436 -0
  191. package/src/maps/ServerMapDataSource.ts +0 -31
  192. package/src/maps/SwitchableTileUrlLayer.tsx +0 -11
  193. package/src/maps/TileUrlLayer.tsx +0 -6
  194. package/src/maps/VectorMapViewComponent.tsx +15 -15
  195. package/src/maps/symbols/font-awesome/asterisk.png +0 -0
  196. package/src/maps/symbols/font-awesome/ban.png +0 -0
  197. package/src/maps/symbols/font-awesome/beer.png +0 -0
  198. package/src/maps/symbols/font-awesome/bell.png +0 -0
  199. package/src/maps/symbols/font-awesome/bolt.png +0 -0
  200. package/src/maps/symbols/font-awesome/building.png +0 -0
  201. package/src/maps/symbols/font-awesome/bullseye.png +0 -0
  202. package/src/maps/symbols/font-awesome/bus.png +0 -0
  203. package/src/maps/symbols/font-awesome/caret-up.png +0 -0
  204. package/src/maps/symbols/font-awesome/certificate.png +0 -0
  205. package/src/maps/symbols/font-awesome/check-circle.png +0 -0
  206. package/src/maps/symbols/font-awesome/check.png +0 -0
  207. package/src/maps/symbols/font-awesome/chevron-circle-down.png +0 -0
  208. package/src/maps/symbols/font-awesome/chevron-circle-up.png +0 -0
  209. package/src/maps/symbols/font-awesome/cloud-rain.png +0 -0
  210. package/src/maps/symbols/font-awesome/cloud.png +0 -0
  211. package/src/maps/symbols/font-awesome/comment.png +0 -0
  212. package/src/maps/symbols/font-awesome/crosshairs.png +0 -0
  213. package/src/maps/symbols/font-awesome/dot-circle-o.png +0 -0
  214. package/src/maps/symbols/font-awesome/exclamation-circle.png +0 -0
  215. package/src/maps/symbols/font-awesome/exclamation-triangle.png +0 -0
  216. package/src/maps/symbols/font-awesome/female.png +0 -0
  217. package/src/maps/symbols/font-awesome/file.png +0 -0
  218. package/src/maps/symbols/font-awesome/flag.png +0 -0
  219. package/src/maps/symbols/font-awesome/flask.png +0 -0
  220. package/src/maps/symbols/font-awesome/h-square.png +0 -0
  221. package/src/maps/symbols/font-awesome/home.png +0 -0
  222. package/src/maps/symbols/font-awesome/info-circle.png +0 -0
  223. package/src/maps/symbols/font-awesome/male.png +0 -0
  224. package/src/maps/symbols/font-awesome/medkit.png +0 -0
  225. package/src/maps/symbols/font-awesome/mobile.png +0 -0
  226. package/src/maps/symbols/font-awesome/plus-circle.png +0 -0
  227. package/src/maps/symbols/font-awesome/plus-square.png +0 -0
  228. package/src/maps/symbols/font-awesome/plus.png +0 -0
  229. package/src/maps/symbols/font-awesome/square.png +0 -0
  230. package/src/maps/symbols/font-awesome/star.png +0 -0
  231. package/src/maps/symbols/font-awesome/thumbs-down.png +0 -0
  232. package/src/maps/symbols/font-awesome/thumbs-up.png +0 -0
  233. package/src/maps/symbols/font-awesome/ticket.png +0 -0
  234. package/src/maps/symbols/font-awesome/times-circle.png +0 -0
  235. package/src/maps/symbols/font-awesome/times.png +0 -0
  236. package/src/maps/symbols/font-awesome/tint.png +0 -0
  237. package/src/maps/symbols/font-awesome/tree.png +0 -0
  238. package/src/maps/symbols/font-awesome/university.png +0 -0
  239. package/src/maps/symbols/font-awesome/usd.png +0 -0
  240. package/src/maps/symbols/font-awesome/user.png +0 -0
  241. package/src/maps/symbols/font-awesome/users.png +0 -0
  242. package/src/maps/symbols/font-awesome/wheelchair.png +0 -0
  243. package/src/maps/symbols/sdf-ize.sh +93 -0
  244. package/src/maps/vectorMaps.tsx +32 -53
  245. package/src/mwater_table_selection/IndicatorsListComponent.tsx +165 -37
  246. package/src/mwater_table_selection/MWaterCalculatedDataSourcesListComponent.tsx +111 -0
  247. package/src/mwater_table_selection/MWaterCompleteTableSelectComponent.tsx +373 -37
  248. package/src/mwater_table_selection/MWaterTableSelectComponent.tsx +12 -8
  249. package/src/mwater_table_selection/MWaterWorkflowsSelectComponent.tsx +159 -0
  250. package/src/quickfilter/{QuickfiltersComponent.ts → QuickfiltersComponent.tsx} +165 -158
  251. package/src/quickfilter/TextLiteralComponent.tsx +197 -0
  252. package/src/widgets/MapWidget.tsx +11 -1
  253. package/src/widgets/text/ExprItemEditorComponent.tsx +83 -77
  254. package/src/widgets/text/ExprUpdateModalComponent.tsx +1 -0
  255. package/test/UndoStackTests.ts +52 -1
  256. package/.storybook/config.js +0 -7
  257. package/.storybook/head.html +0 -3
  258. package/.storybook/webpack.config.js +0 -15
  259. package/src/maps/BingLayer.ts +0 -146
  260. package/src/maps/MapComponent.ts +0 -312
  261. package/src/maps/MapControlComponent.ts +0 -46
  262. package/src/maps/MarkersLayerDesignerComponent.ts +0 -374
  263. package/src/maps/RasterMapViewComponent.ts +0 -345
  264. package/src/quickfilter/TextLiteralComponent.ts +0 -165
  265. package/stories/UpdateableComponent.js +0 -29
  266. package/stories/consoles.js +0 -202
  267. package/stories/dashboards.js +0 -217
  268. package/stories/datagridDesign.js +0 -114
  269. package/stories/datagrids.js +0 -69
  270. package/stories/dates.js +0 -80
  271. package/stories/exprcomponent.js +0 -43
  272. package/stories/index.js +0 -18
  273. package/stories/leaflet.js +0 -59
  274. package/stories/maps.js +0 -24
  275. package/stories/pivotChart.js +0 -235
@@ -1,10 +1,9 @@
1
1
  import _ from "lodash"
2
2
  import React from "react"
3
- const R = React.createElement
4
3
  import { produce } from "immer"
5
4
 
6
5
  import { ExprComponent, FilterExprComponent } from "@mwater/expressions-ui"
7
- import { ExprCompiler, Schema, DataSource, Expr, OpExpr } from "@mwater/expressions"
6
+ import { ExprCompiler, Schema, DataSource, Expr, OpExpr, ExprUtils } from "@mwater/expressions"
8
7
  import AxisComponent from "./../axes/AxisComponent"
9
8
  import { TableSelectComponent } from "@mwater/expressions-ui"
10
9
  import ColorComponent from "../ColorComponent"
@@ -18,7 +17,7 @@ import { Axis } from "../axes/Axis"
18
17
 
19
18
  import AdminScopeAndDetailLevelComponent from "./AdminScopeAndDetailLevelComponent"
20
19
  import ScopeAndDetailLevelComponent from "./ScopeAndDetailLevelComponent"
21
- import EditHoverOver from "./EditHoverOver"
20
+ import { EditHoverOver } from "./EditHoverOver"
22
21
 
23
22
  // Designer for a choropleth layer
24
23
  export default class ChoroplethLayerDesigner extends React.Component<{
@@ -188,9 +187,10 @@ export default class ChoroplethLayerDesigner extends React.Component<{
188
187
  }
189
188
 
190
189
  renderRegionsTable() {
190
+ // Regions tables are either "regions." or "regions_<name>" with a shape column
191
191
  let options = _.map(
192
- _.filter(this.props.schema.getTables(), table => table.id.startsWith("regions.")),
193
- table => ({ value: table.id, label: table.name.en })
192
+ _.filter(this.props.schema.getTables(), table => table.id.startsWith("regions.") || (table.id.startsWith("regions_") && this.props.schema.getColumn(table.id, "shape") != null)),
193
+ table => ({ value: table.id, label: ExprUtils.localizeString(table.name) })
194
194
  )
195
195
 
196
196
  const regionsTable = this.props.design.regionsTable || "admin_regions"
@@ -253,34 +253,34 @@ export default class ChoroplethLayerDesigner extends React.Component<{
253
253
  const regionsTable = this.props.design.regionsTable || "admin_regions"
254
254
 
255
255
  if (regionsTable === "admin_regions") {
256
- return R(AdminScopeAndDetailLevelComponent, {
257
- schema: this.props.schema,
258
- dataSource: this.props.dataSource,
259
- scope: this.props.design.scope as number | undefined,
260
- scopeLevel: this.props.design.scopeLevel || 0,
261
- detailLevel: this.props.design.detailLevel,
262
- onScopeAndDetailLevelChange: this.handleScopeAndDetailLevelChange
263
- })
256
+ return <AdminScopeAndDetailLevelComponent
257
+ schema={this.props.schema}
258
+ dataSource={this.props.dataSource}
259
+ scope={this.props.design.scope as number | undefined}
260
+ scopeLevel={this.props.design.scopeLevel || 0}
261
+ detailLevel={this.props.design.detailLevel}
262
+ onScopeAndDetailLevelChange={this.handleScopeAndDetailLevelChange}
263
+ />
264
264
  } else {
265
- return R(ScopeAndDetailLevelComponent, {
266
- schema: this.props.schema,
267
- dataSource: this.props.dataSource,
268
- scope: this.props.design.scope as string | undefined,
269
- scopeLevel: this.props.design.scopeLevel,
270
- detailLevel: this.props.design.detailLevel,
271
- onScopeAndDetailLevelChange: this.handleScopeAndDetailLevelChange,
272
- regionsTable
273
- })
265
+ return <ScopeAndDetailLevelComponent
266
+ schema={this.props.schema}
267
+ dataSource={this.props.dataSource}
268
+ scope={this.props.design.scope as string | undefined}
269
+ scopeLevel={this.props.design.scopeLevel}
270
+ detailLevel={this.props.design.detailLevel}
271
+ onScopeAndDetailLevelChange={this.handleScopeAndDetailLevelChange}
272
+ regionsTable={regionsTable}
273
+ />
274
274
  }
275
275
  }
276
276
 
277
277
  renderDisplayNames() {
278
- return R(
279
- "div",
280
- { className: "mb-3" },
281
- <ui.Checkbox value={this.props.design.displayNames} onChange={value => this.handleDisplayNamesChange(value)}>
282
- {T`Display Region Names`}
283
- </ui.Checkbox>
278
+ return (
279
+ <div className="mb-3">
280
+ <ui.Checkbox value={this.props.design.displayNames} onChange={value => this.handleDisplayNamesChange(value)}>
281
+ {T`Display Region Names`}
282
+ </ui.Checkbox>
283
+ </div>
284
284
  )
285
285
  }
286
286
 
@@ -290,19 +290,20 @@ export default class ChoroplethLayerDesigner extends React.Component<{
290
290
  return null
291
291
  }
292
292
 
293
- return R(
294
- "div",
295
- { className: "mb-3" },
296
- R("label", { className: "text-muted" }, R("span", { className: "fas fa-tint" }), T`Fill Color`),
297
-
298
- R(
299
- "div",
300
- null,
301
- R(ColorComponent, {
302
- color: this.props.design.color,
303
- onChange: this.handleColorChange
304
- })
305
- )
293
+ return (
294
+ <div className="mb-3">
295
+ <label className="text-muted">
296
+ <span className="fas fa-tint" />
297
+ {T`Fill Color`}
298
+ </label>
299
+
300
+ <div>
301
+ <ColorComponent
302
+ color={this.props.design.color}
303
+ onChange={this.handleColorChange}
304
+ />
305
+ </div>
306
+ </div>
306
307
  )
307
308
  }
308
309
 
@@ -328,28 +329,29 @@ export default class ChoroplethLayerDesigner extends React.Component<{
328
329
 
329
330
  const table = this.props.design.table
330
331
 
331
- return R(
332
- "div",
333
- null,
334
- R(
335
- "div",
336
- { className: "mb-3" },
337
- R("label", { className: "text-muted" }, R("span", { className: "fas fa-tint" }), T`Color By Data`),
338
-
339
- R(AxisComponent, {
340
- schema: this.props.schema,
341
- dataSource: this.props.dataSource,
342
- table: this.props.design.table,
343
- types: ["text", "enum", "boolean", "date"],
344
- aggrNeed: "required",
345
- value: this.props.design.axes.color,
346
- defaultColor: this.props.design.color,
347
- showColorMap: true,
348
- onChange: this.handleColorAxisChange,
349
- allowExcludedValues: true,
350
- filters: filters
351
- })
352
- )
332
+ return (
333
+ <div>
334
+ <div className="mb-3">
335
+ <label className="text-muted">
336
+ <span className="fas fa-tint" />
337
+ {T`Color By Data`}
338
+ </label>
339
+
340
+ <AxisComponent
341
+ schema={this.props.schema}
342
+ dataSource={this.props.dataSource}
343
+ table={this.props.design.table}
344
+ types={["text", "enum", "boolean", "date"]}
345
+ aggrNeed="required"
346
+ value={this.props.design.axes.color}
347
+ defaultColor={this.props.design.color}
348
+ showColorMap={true}
349
+ onChange={this.handleColorAxisChange}
350
+ allowExcludedValues={true}
351
+ filters={filters}
352
+ />
353
+ </div>
354
+ </div>
353
355
  )
354
356
  } else {
355
357
  // direct mode
@@ -380,28 +382,29 @@ export default class ChoroplethLayerDesigner extends React.Component<{
380
382
  })
381
383
  }
382
384
 
383
- return R(
384
- "div",
385
- null,
386
- R(
387
- "div",
388
- { className: "mb-3" },
389
- R("label", { className: "text-muted" }, R("span", { className: "fas fa-tint" }), T`Color By Data`),
390
-
391
- R(AxisComponent, {
392
- schema: this.props.schema,
393
- dataSource: this.props.dataSource,
394
- table: regionsTable,
395
- types: ["text", "enum", "boolean", "date"],
396
- aggrNeed: "none",
397
- value: this.props.design.axes.color,
398
- defaultColor: this.props.design.color,
399
- showColorMap: true,
400
- onChange: this.handleColorAxisChange,
401
- allowExcludedValues: true,
402
- filters: filters
403
- })
404
- )
385
+ return (
386
+ <div>
387
+ <div className="mb-3">
388
+ <label className="text-muted">
389
+ <span className="fas fa-tint" />
390
+ {T`Color By Data`}
391
+ </label>
392
+
393
+ <AxisComponent
394
+ schema={this.props.schema}
395
+ dataSource={this.props.dataSource}
396
+ table={regionsTable}
397
+ types={["text", "enum", "boolean", "date"]}
398
+ aggrNeed="none"
399
+ value={this.props.design.axes.color}
400
+ defaultColor={this.props.design.color}
401
+ showColorMap={true}
402
+ onChange={this.handleColorAxisChange}
403
+ allowExcludedValues={true}
404
+ filters={filters}
405
+ />
406
+ </div>
407
+ </div>
405
408
  )
406
409
  }
407
410
  }
@@ -428,40 +431,39 @@ export default class ChoroplethLayerDesigner extends React.Component<{
428
431
  // onChange: @handleColorAxisChange)
429
432
 
430
433
  renderFillOpacity() {
431
- return R(
432
- "div",
433
- { className: "mb-3" },
434
- R(
435
- "label",
436
- { className: "text-muted" },
437
- T`Fill Opacity: ${(this.props.design.fillOpacity * this.props.design.fillOpacity * 100).toFixed(0)}%`
438
- ),
439
- ": ",
440
- R(Rcslider, {
441
- min: 0,
442
- max: 100,
443
- step: 1,
444
- tipTransitionName: "rc-slider-tooltip-zoom-down",
445
- value: Math.round(this.props.design.fillOpacity * this.props.design.fillOpacity * 100),
446
- onChange: (val: number) => this.handleFillOpacityChange(Math.sqrt(val / 100))
447
- })
434
+ return (
435
+ <div className="mb-3">
436
+ <label className="text-muted">
437
+ {T`Fill Opacity: ${(this.props.design.fillOpacity * this.props.design.fillOpacity * 100).toFixed(0)}%`}
438
+ </label>
439
+ {": "}
440
+ <Rcslider
441
+ min={0}
442
+ max={100}
443
+ step={1}
444
+ tipTransitionName="rc-slider-tooltip-zoom-down"
445
+ value={Math.round(this.props.design.fillOpacity * this.props.design.fillOpacity * 100)}
446
+ onChange={(val: number) => this.handleFillOpacityChange(Math.sqrt(val / 100))}
447
+ />
448
+ </div>
448
449
  )
449
450
  }
450
451
 
451
452
  renderBorderColor() {
452
- return R(
453
- "div",
454
- { className: "mb-3" },
455
- R("label", { className: "text-muted" }, R("span", { className: "fas fa-tint" }), T`Border Color`),
456
-
457
- R(
458
- "div",
459
- null,
460
- R(ColorComponent, {
461
- color: this.props.design.borderColor || "#000",
462
- onChange: this.handleBorderColorChange
463
- })
464
- )
453
+ return (
454
+ <div className="mb-3">
455
+ <label className="text-muted">
456
+ <span className="fas fa-tint" />
457
+ {T`Border Color`}
458
+ </label>
459
+
460
+ <div>
461
+ <ColorComponent
462
+ color={this.props.design.borderColor || "#000"}
463
+ onChange={this.handleBorderColorChange}
464
+ />
465
+ </div>
466
+ </div>
465
467
  )
466
468
  }
467
469
 
@@ -471,21 +473,22 @@ export default class ChoroplethLayerDesigner extends React.Component<{
471
473
  return null
472
474
  }
473
475
 
474
- return R(
475
- "div",
476
- { className: "mb-3" },
477
- R("label", { className: "text-muted" }, R("span", { className: "fas fa-filter" }), T`Filters`),
478
- R(
479
- "div",
480
- { style: { marginLeft: 8 } },
481
- R(FilterExprComponent, {
482
- schema: this.props.schema,
483
- dataSource: this.props.dataSource,
484
- onChange: this.handleFilterChange,
485
- table: this.props.design.table,
486
- value: this.props.design.filter
487
- })
488
- )
476
+ return (
477
+ <div className="mb-3">
478
+ <label className="text-muted">
479
+ <span className="fas fa-filter" />
480
+ {T`Filters`}
481
+ </label>
482
+ <div style={{ marginLeft: 8 }}>
483
+ <FilterExprComponent
484
+ schema={this.props.schema}
485
+ dataSource={this.props.dataSource}
486
+ onChange={this.handleFilterChange}
487
+ table={this.props.design.table}
488
+ value={this.props.design.filter}
489
+ />
490
+ </div>
491
+ </div>
489
492
  )
490
493
  }
491
494
 
@@ -502,15 +505,15 @@ export default class ChoroplethLayerDesigner extends React.Component<{
502
505
  defaultPopupFilterJoins[this.props.design.table] = this.props.design.adminRegionExpr
503
506
  }
504
507
 
505
- return R(EditPopupComponent, {
506
- design: this.props.design,
507
- onDesignChange: this.props.onDesignChange,
508
- schema: this.props.schema,
509
- dataSource: this.props.dataSource,
510
- table: this.props.design.table,
511
- idTable: regionsTable,
512
- defaultPopupFilterJoins
513
- })
508
+ return <EditPopupComponent
509
+ design={this.props.design}
510
+ onDesignChange={this.props.onDesignChange}
511
+ schema={this.props.schema}
512
+ dataSource={this.props.dataSource}
513
+ table={this.props.design.table}
514
+ idTable={regionsTable}
515
+ defaultPopupFilterJoins={defaultPopupFilterJoins}
516
+ />
514
517
  }
515
518
 
516
519
  renderHoverOver() {
@@ -526,35 +529,36 @@ export default class ChoroplethLayerDesigner extends React.Component<{
526
529
  defaultPopupFilterJoins[this.props.design.table] = this.props.design.adminRegionExpr
527
530
  }
528
531
 
529
- return R(EditHoverOver, {
530
- design: this.props.design,
531
- onDesignChange: this.props.onDesignChange,
532
- schema: this.props.schema,
533
- dataSource: this.props.dataSource,
534
- table: this.props.design.table,
535
- idTable: regionsTable,
536
- defaultPopupFilterJoins
537
- })
532
+ return <EditHoverOver
533
+ design={this.props.design}
534
+ onDesignChange={this.props.onDesignChange}
535
+ schema={this.props.schema}
536
+ dataSource={this.props.dataSource}
537
+ table={this.props.design.table}
538
+ idTable={regionsTable}
539
+ defaultPopupFilterJoins={defaultPopupFilterJoins}
540
+ aggrStatuses={["individual", "aggregate", "literal"]}
541
+ />
538
542
  }
539
543
 
540
544
  render() {
541
- return R(
542
- "div",
543
- null,
544
- this.renderRegionMode(),
545
- this.renderRegionsTable(),
546
- this.renderTable(),
547
- this.renderAdminRegionExpr(),
548
- this.renderScopeAndDetailLevel(),
549
- this.renderDisplayNames(),
550
- this.renderColor(),
551
- this.renderColorAxis(),
552
- this.renderFillOpacity(),
553
- this.renderBorderColor(),
554
- this.renderFilter(),
555
- this.renderPopup(),
556
- this.renderHoverOver(),
557
- R(ZoomLevelsComponent, { design: this.props.design, onDesignChange: this.props.onDesignChange })
545
+ return (
546
+ <div>
547
+ {this.renderRegionMode()}
548
+ {this.renderRegionsTable()}
549
+ {this.renderTable()}
550
+ {this.renderAdminRegionExpr()}
551
+ {this.renderScopeAndDetailLevel()}
552
+ {this.renderDisplayNames()}
553
+ {this.renderColor()}
554
+ {this.renderColorAxis()}
555
+ {this.renderFillOpacity()}
556
+ {this.renderBorderColor()}
557
+ {this.renderFilter()}
558
+ {this.renderPopup()}
559
+ {this.renderHoverOver()}
560
+ <ZoomLevelsComponent design={this.props.design} onDesignChange={this.props.onDesignChange} />
561
+ </div>
558
562
  )
559
563
  }
560
564
  }