@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
@@ -32,7 +32,6 @@ const react_1 = __importStar(require("react"));
32
32
  const react_dom_1 = __importDefault(require("react-dom"));
33
33
  const LeafletLoading_1 = __importDefault(require("./LeafletLoading"));
34
34
  const leaflet_1 = __importDefault(require("leaflet"));
35
- let BingLayer = require("./BingLayer");
36
35
  let UtfGridLayer = require("./UtfGridLayer");
37
36
  const R = react_1.default.createElement;
38
37
  const marker_icon_2x_png_1 = __importDefault(require("./marker-icon-2x.png"));
@@ -266,34 +265,26 @@ class LeafletMapComponent extends react_1.Component {
266
265
  }
267
266
  switch (this.props.baseLayerId) {
268
267
  case "bing_road":
269
- this.baseLayer = new BingLayer("Ao26dWY2IC8PjorsJKFaoR85EPXCnCohrJdisCWXIULAXFo0JAXquGauppTMQbyU", {
270
- type: "Road"
268
+ this.baseLayer = leaflet_1.default.tileLayer('https://tiles.stadiamaps.com/tiles/osm_bright/{z}/{x}/{y}{r}.png?api_key=835a418e-91f9-4eb8-9856-0883c3656c9d', {
269
+ maxZoom: 20,
270
+ attribution: '&copy; <a href="https://stadiamaps.com/" target="_blank">Stadia Maps</a> &copy; <a href="https://openmaptiles.org/" target="_blank">OpenMapTiles</a> &copy; <a href="https://www.openstreetmap.org/copyright" target="_blank">OpenStreetMap</a>',
271
271
  });
272
272
  break;
273
- // @baseLayer = L.tileLayer('https://{s}.api.mapbox.com/styles/v1/{id}/tiles/{z}/{x}/{y}?access_token={accessToken}', {
274
- // attribution: '© <a href="https://www.mapbox.com/about/maps/">Mapbox</a> © <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a> <strong><a href="https://www.mapbox.com/map-feedback/" target="_blank">Improve this map</a></strong>',
275
- // tileSize: 512,
276
- // maxZoom: 21,
277
- // maxNativeZoom: 19,
278
- // subdomains: ["a", "b"],
279
- // zoomOffset: -1,
280
- // id: 'mapbox/streets-v11',
281
- // accessToken: 'pk.eyJ1IjoiZ3Jhc3NpY2siLCJhIjoiY2ozMzU1N3ZoMDA3ZDJxbzh0aTRtOTRoeSJ9.fFWBZ88vbdezyhfw-I-fag'
282
- // })
283
273
  case "bing_aerial":
284
- this.baseLayer = new BingLayer("Ao26dWY2IC8PjorsJKFaoR85EPXCnCohrJdisCWXIULAXFo0JAXquGauppTMQbyU", {
285
- type: "AerialWithLabels"
274
+ this.baseLayer = leaflet_1.default.tileLayer('https://tiles.stadiamaps.com/tiles/alidade_satellite/{z}/{x}/{y}.jpg?api_key=835a418e-91f9-4eb8-9856-0883c3656c9d', {
275
+ maxZoom: 20,
276
+ attribution: '&copy; CNES, Distribution Airbus DS, &copy; Airbus DS, &copy; PlanetObserver (Contains Copernicus Data) | &copy; <a href="https://stadiamaps.com/" target="_blank">Stadia Maps</a> &copy; <a href="https://openmaptiles.org/" target="_blank">OpenMapTiles</a> &copy; <a href="https://www.openstreetmap.org/copyright" target="_blank">OpenStreetMap</a>',
286
277
  });
287
278
  break;
288
279
  case "cartodb_positron":
289
- this.baseLayer = leaflet_1.default.tileLayer("https://cartodb-basemaps-{s}.global.ssl.fastly.net/light_all/{z}/{x}/{y}.png", {
290
- attribution: '&copy; <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors, &copy; <a href="https://cartodb.com/attributions">CartoDB</a>',
280
+ this.baseLayer = leaflet_1.default.tileLayer("https://tiles.stadiamaps.com/tiles/alidade_smooth/{z}/{x}/{y}{r}.png?api_key=835a418e-91f9-4eb8-9856-0883c3656c9d", {
281
+ attribution: '&copy; <a href="https://stadiamaps.com/" target="_blank">Stadia Maps</a>, &copy; <a href="https://openmaptiles.org/" target="_blank">OpenMapTiles</a> &copy; <a href="https://www.openstreetmap.org/copyright" target="_blank">OpenStreetMap</a>',
291
282
  maxZoom: 21
292
283
  });
293
284
  break;
294
285
  case "cartodb_dark_matter":
295
- this.baseLayer = leaflet_1.default.tileLayer("https://cartodb-basemaps-{s}.global.ssl.fastly.net/dark_all/{z}/{x}/{y}.png", {
296
- attribution: '&copy; <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors, &copy; <a href="https://cartodb.com/attributions">CartoDB</a>',
286
+ this.baseLayer = leaflet_1.default.tileLayer("https://tiles.stadiamaps.com/tiles/alidade_smooth_dark/{z}/{x}/{y}{r}.png?api_key=835a418e-91f9-4eb8-9856-0883c3656c9d", {
287
+ attribution: '&copy; <a href="https://stadiamaps.com/" target="_blank">Stadia Maps</a>, &copy; <a href="https://openmaptiles.org/" target="_blank">OpenMapTiles</a> &copy; <a href="https://www.openstreetmap.org/copyright" target="_blank">OpenStreetMap</a>',
297
288
  maxZoom: 21
298
289
  });
299
290
  break;
@@ -24,8 +24,8 @@ interface LoadingLegendState {
24
24
  }
25
25
  declare class LoadingLegend extends React.Component<LoadingLegendProps, LoadingLegendState> {
26
26
  constructor(props: any);
27
- componentDidMount(): JQuery.jqXHR<any>;
28
- componentWillReceiveProps(nextProps: any): JQuery.jqXHR<any> | undefined;
27
+ componentDidMount(): void;
28
+ componentDidUpdate(prevProps: any): void;
29
29
  render(): React.DetailedReactHTMLElement<{
30
30
  style: {
31
31
  font: "14px/16px Arial, Helvetica, sans-serif";
@@ -81,14 +81,14 @@ class LoadingLegend extends react_1.default.Component {
81
81
  this.state = { html: T `Loading...` };
82
82
  }
83
83
  componentDidMount() {
84
- return jquery_1.default.get(this.props.url).done((data) => {
85
- return this.setState({ html: data });
84
+ jquery_1.default.get(this.props.url).done((data) => {
85
+ this.setState({ html: data });
86
86
  });
87
87
  }
88
- componentWillReceiveProps(nextProps) {
89
- if (nextProps.url !== this.props.url) {
90
- return jquery_1.default.get(nextProps.url).done((data) => {
91
- return this.setState({ html: data });
88
+ componentDidUpdate(prevProps) {
89
+ if (prevProps.url !== this.props.url) {
90
+ jquery_1.default.get(this.props.url).done((data) => {
91
+ this.setState({ html: data });
92
92
  });
93
93
  }
94
94
  }
@@ -170,7 +170,6 @@ class MapComponent extends react_1.default.Component {
170
170
  }
171
171
  render() {
172
172
  const designerVisible = !this.getDesign().hideDesignPanel;
173
- console.log("designerVisible", designerVisible);
174
173
  return R("div", {
175
174
  style: {
176
175
  width: "100%",
@@ -19,4 +19,13 @@ export interface MapLayerDataSource {
19
19
  }>;
20
20
  /** Gets widget data source for a popup widget */
21
21
  getPopupWidgetDataSource(design: any, widgetId: string): WidgetDataSource;
22
+ /** Gets hover over data for hover over items
23
+ * @param design The design of the layer
24
+ * @param data The data of the current item being hovered over. e.g. { id: 123 }
25
+ * @param filters The filters to apply to the layer does not include filters that narrow down to a specific item
26
+ * @returns A promise that resolves to the hover over data, indexed by the id of the hover over item
27
+ */
28
+ getHoverOverData(design: any, data: any, filters: JsonQLFilter[]): Promise<{
29
+ [key: string]: any;
30
+ }>;
22
31
  }
@@ -1,7 +1,8 @@
1
1
  import { JsonQLExpr } from "@mwater/jsonql";
2
- import { Schema } from "@mwater/expressions";
2
+ import { DataSource, Schema } from "@mwater/expressions";
3
3
  import { JsonQLFilter } from "../JsonQLFilter";
4
4
  import { MapDesign } from "./MapDesign";
5
+ import { HoverOverItem } from "./maps";
5
6
  export interface MapScope {
6
7
  name: string;
7
8
  filter: JsonQLFilter;
@@ -23,3 +24,20 @@ export declare function getCompiledFilters(design: MapDesign, schema: Schema, fi
23
24
  * Get a list of translatable strings in the map design
24
25
  */
25
26
  export declare function getTranslatableStrings(design: MapDesign, schema: Schema): string[];
27
+ /**
28
+ * Convenience function to get hover over data for a map given an id and a list of hover over items
29
+ */
30
+ export declare function getSimpleHoverOverData(options: {
31
+ /** Id of the item to get hover over data for. If null, will not filter by id */
32
+ id: any;
33
+ /** Table of the item to get hover over data for */
34
+ table: string;
35
+ /** Extra filters to apply to the hover over data, not including filtering down to the current item */
36
+ filters: JsonQLFilter[];
37
+ /** Schema to use */
38
+ schema: Schema;
39
+ /** Data source to use */
40
+ dataSource: DataSource;
41
+ /** Hover over items */
42
+ hoverOverItems: HoverOverItem[];
43
+ }): Promise<import("@mwater/expressions").Row>;
@@ -1,5 +1,28 @@
1
1
  "use strict";
2
2
  // General utilities for a map
3
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = { enumerable: true, get: function() { return m[k]; } };
8
+ }
9
+ Object.defineProperty(o, k2, desc);
10
+ }) : (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ o[k2] = m[k];
13
+ }));
14
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
16
+ }) : function(o, v) {
17
+ o["default"] = v;
18
+ });
19
+ var __importStar = (this && this.__importStar) || function (mod) {
20
+ if (mod && mod.__esModule) return mod;
21
+ var result = {};
22
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
23
+ __setModuleDefault(result, mod);
24
+ return result;
25
+ };
3
26
  var __importDefault = (this && this.__importDefault) || function (mod) {
4
27
  return (mod && mod.__esModule) ? mod : { "default": mod };
5
28
  };
@@ -11,7 +34,8 @@ exports.convertToMarkersMap = convertToMarkersMap;
11
34
  exports.getFilterableTables = getFilterableTables;
12
35
  exports.getCompiledFilters = getCompiledFilters;
13
36
  exports.getTranslatableStrings = getTranslatableStrings;
14
- const lodash_1 = __importDefault(require("lodash"));
37
+ exports.getSimpleHoverOverData = getSimpleHoverOverData;
38
+ const lodash_1 = __importStar(require("lodash"));
15
39
  const expressions_1 = require("@mwater/expressions");
16
40
  const LayerFactory_1 = __importDefault(require("./LayerFactory"));
17
41
  // Check if can convert to a cluster map. Only maps containing marker views can be
@@ -135,3 +159,58 @@ function getTranslatableStrings(design, schema) {
135
159
  // Remove duplicates
136
160
  return lodash_1.default.uniq(strings);
137
161
  }
162
+ /**
163
+ * Convenience function to get hover over data for a map given an id and a list of hover over items
164
+ */
165
+ async function getSimpleHoverOverData(options) {
166
+ const { id, table, filters, schema, dataSource, hoverOverItems } = options;
167
+ const exprUtils = new expressions_1.ExprUtils(schema);
168
+ const exprCompiler = new expressions_1.ExprCompiler(schema);
169
+ const query = {
170
+ type: "query",
171
+ selects: [],
172
+ from: exprCompiler.compileTable(table, "main"),
173
+ groupBy: [],
174
+ limit: 1
175
+ };
176
+ // Check if any items are aggregate
177
+ const isAggregate = hoverOverItems.some(item => exprUtils.getExprAggrStatus(item.value ?? null) === "aggregate");
178
+ for (let i = 0; i < hoverOverItems.length; i++) {
179
+ const item = hoverOverItems[i];
180
+ if (item.value) {
181
+ query.selects.push({
182
+ type: "select",
183
+ expr: exprCompiler.compileExpr({ expr: item.value, tableAlias: "main" }),
184
+ alias: item.id
185
+ });
186
+ // Group by if there are aggregate items and this is not aggregate
187
+ if (isAggregate && exprUtils.getExprAggrStatus(item.value) !== "aggregate") {
188
+ query.groupBy.push(i + 1);
189
+ }
190
+ }
191
+ }
192
+ if (filters) {
193
+ let whereClauses = filters.filter(f => f.table === table).map(f => (0, expressions_1.injectTableAlias)(f.jsonql, "main"));
194
+ // Add id filter
195
+ if (id != null) {
196
+ whereClauses.push({
197
+ type: "op",
198
+ op: "=",
199
+ exprs: [
200
+ exprCompiler.compileExpr({ expr: { type: "id", table }, tableAlias: "main" }),
201
+ { type: "literal", value: id }
202
+ ]
203
+ });
204
+ }
205
+ whereClauses = (0, lodash_1.compact)(whereClauses);
206
+ // Wrap if multiple
207
+ if (whereClauses.length > 1) {
208
+ query.where = { type: "op", op: "and", exprs: whereClauses };
209
+ }
210
+ else {
211
+ query.where = whereClauses[0];
212
+ }
213
+ }
214
+ const rows = await dataSource.performQuery(query);
215
+ return rows?.[0] ?? {};
216
+ }
@@ -48,6 +48,24 @@ export default class MarkersLayer extends Layer<MarkersLayerDesign> {
48
48
  validateDesign(design: MarkersLayerDesign, schema: Schema): string | null;
49
49
  /** Get strings to be translated */
50
50
  getTranslatableStrings(design: MarkersLayerDesign, schema: Schema): string[];
51
+ /** Gets hover over data for hover over items. This should be implemented by layers that have hover over items.
52
+ * It will be called on the server side if using a server map data source, or on the client side if using a direct
53
+ * map data source.
54
+ */
55
+ getHoverOverData(options: {
56
+ /** Design of the layer */
57
+ design: MarkersLayerDesign;
58
+ /** Data of the current item being hovered over. e.g. { id: 123 } */
59
+ data: any;
60
+ /** Filters to apply to the hover over data, not including filtering down to the current item */
61
+ filters: JsonQLFilter[];
62
+ /** Schema to use */
63
+ schema: Schema;
64
+ /** Data source to use */
65
+ dataSource: DataSource;
66
+ }): Promise<{
67
+ [key: string]: any;
68
+ }>;
51
69
  }
52
70
  /**
53
71
  * Takes a base query that has any number of selects and where conditions. It must have a geometry
@@ -40,6 +40,7 @@ const HoverContent_1 = __importDefault(require("./HoverContent"));
40
40
  const layoutOptions_1 = require("../dashboards/layoutOptions");
41
41
  const BlocksLayoutManager_1 = __importDefault(require("../layouts/blocks/BlocksLayoutManager"));
42
42
  const DashboardUtils_1 = require("../dashboards/DashboardUtils");
43
+ const MapUtils_1 = require("./MapUtils");
43
44
  class MarkersLayer extends Layer_1.default {
44
45
  /** Gets the type of layer definition */
45
46
  getLayerDefinitionType() {
@@ -120,6 +121,8 @@ class MarkersLayer extends Layer_1.default {
120
121
  });
121
122
  }
122
123
  else {
124
+ // For some reason, scales down from 20 to 14. No idea why
125
+ const iconSize = (design.markerSize || 10) / 14;
123
126
  mapLayers.push({
124
127
  id: `${sourceId}:points`,
125
128
  type: "symbol",
@@ -128,11 +131,13 @@ class MarkersLayer extends Layer_1.default {
128
131
  layout: {
129
132
  "icon-image": design.symbol,
130
133
  "icon-allow-overlap": true,
131
- "icon-size": (design.markerSize || 10) / 14 // For some reason, scales down from 20 to 14. No idea why
134
+ "icon-size": iconSize,
132
135
  },
133
136
  paint: {
134
137
  "icon-color": color,
135
- "icon-opacity": opacity
138
+ "icon-opacity": opacity,
139
+ "icon-halo-color": (0, mapboxUtils_1.compileColorToMapbox)("#FFFFFFCC", design.axes.color?.excludedValues),
140
+ "icon-halo-width": iconSize * 5,
136
141
  },
137
142
  filter: addFilter(["==", ["geometry-type"], "Point"])
138
143
  });
@@ -445,35 +450,20 @@ ${design.polygonBorderColor ? "line-color: " + design.polygonBorderColor + ";" :
445
450
  }
446
451
  // same as onGridClick but handles hover over
447
452
  onGridHoverOver(ev, hoverOptions) {
448
- if (ev.data && ev.data.id) {
449
- const { table } = hoverOptions.design;
450
- const results = {};
451
- // Popup
452
- if (hoverOptions.design.hoverOver) {
453
- const exprCompiler = new expressions_1.ExprCompiler(hoverOptions.schema);
454
- results.hoverOver = react_1.default.createElement(HoverContent_1.default, {
453
+ if (ev.data && ev.data.id && hoverOptions.design.hoverOver && hoverOptions.design.hoverOver.items.length > 0) {
454
+ const results = {
455
+ hoverOver: react_1.default.createElement(HoverContent_1.default, {
455
456
  key: ev.data.id,
456
457
  schema: hoverOptions.schema,
457
- dataSource: hoverOptions.dataSource,
458
- table,
458
+ mapLayerDataSource: hoverOptions.layerDataSource,
459
459
  items: hoverOptions.design.hoverOver.items,
460
- filters: [
461
- {
462
- table,
463
- jsonql: {
464
- type: "op",
465
- op: "=",
466
- exprs: [
467
- exprCompiler.compileExpr({ expr: { type: "id", table }, tableAlias: "{alias}" }),
468
- { type: "literal", value: ev.data.id }
469
- ]
470
- }
471
- }
472
- ],
460
+ design: hoverOptions.design,
461
+ data: ev.data,
462
+ filters: hoverOptions.filters,
473
463
  locale: hoverOptions.locale,
474
464
  translate: hoverOptions.translate
475
- });
476
- }
465
+ })
466
+ };
477
467
  return results;
478
468
  }
479
469
  else {
@@ -676,6 +666,18 @@ ${design.polygonBorderColor ? "line-color: " + design.polygonBorderColor + ";" :
676
666
  aggrNeed: "none"
677
667
  });
678
668
  draft.filter = exprCleaner.cleanExpr(design.filter || null, { table: draft.table });
669
+ // Clean hover over expressions
670
+ if (design.table && design.hoverOver && design.hoverOver.items) {
671
+ for (let i = 0; i < design.hoverOver.items.length; i++) {
672
+ const item = design.hoverOver.items[i];
673
+ if (item.value) {
674
+ draft.hoverOver.items[i].value = exprCleaner.cleanExpr(item.value || null, {
675
+ table: design.table,
676
+ aggrStatuses: ["individual", "literal"]
677
+ });
678
+ }
679
+ }
680
+ }
679
681
  });
680
682
  return design;
681
683
  }
@@ -729,6 +731,20 @@ ${design.polygonBorderColor ? "line-color: " + design.polygonBorderColor + ";" :
729
731
  // Remove duplicates
730
732
  return lodash_1.default.uniq(strings);
731
733
  }
734
+ /** Gets hover over data for hover over items. This should be implemented by layers that have hover over items.
735
+ * It will be called on the server side if using a server map data source, or on the client side if using a direct
736
+ * map data source.
737
+ */
738
+ getHoverOverData(options) {
739
+ return (0, MapUtils_1.getSimpleHoverOverData)({
740
+ id: options.data.id,
741
+ table: options.design.table,
742
+ filters: options.filters,
743
+ schema: options.schema,
744
+ dataSource: options.dataSource,
745
+ hoverOverItems: options.design.hoverOver.items,
746
+ });
747
+ }
732
748
  }
733
749
  exports.default = MarkersLayer;
734
750
  /**
@@ -33,7 +33,7 @@ export interface MarkersLayerDesign {
33
33
  items: LayoutBlock;
34
34
  };
35
35
  /** Contains items to display when hovering over the layer */
36
- hoverOver: {
36
+ hoverOver?: {
37
37
  items: HoverOverItem[];
38
38
  };
39
39
  /** Customizable filtering for popup */
@@ -1,7 +1,5 @@
1
1
  import React from "react";
2
2
  import { DataSource, Schema } from "@mwater/expressions";
3
- import EditPopupComponent from "./EditPopupComponent";
4
- import MarkerSymbolSelectComponent from "./MarkerSymbolSelectComponent";
5
3
  import { MarkersLayerDesign } from "./MarkersLayerDesign";
6
4
  export interface MarkersLayerDesignerComponentProps {
7
5
  /** Schema to use */
@@ -27,30 +25,16 @@ export default class MarkersLayerDesignerComponent extends React.Component<Marke
27
25
  handleNameChange: (e: any) => any;
28
26
  handleMarkerSizeChange: (markerSize: any) => any;
29
27
  handleLineWidthChange: (lineWidth: any) => any;
30
- renderTable(): React.DetailedReactHTMLElement<{
31
- className: string;
32
- }, HTMLElement>;
33
- renderGeometryAxis(): React.DetailedReactHTMLElement<{
34
- className: string;
35
- }, HTMLElement> | undefined;
36
- renderColor(): React.DetailedReactHTMLElement<React.HTMLAttributes<HTMLElement>, HTMLElement> | undefined;
37
- renderSymbol(): React.CElement<import("./MarkerSymbolSelectComponent").MarkerSymbolSelectComponentProps, MarkerSymbolSelectComponent> | undefined;
38
- renderMarkerSize(): React.DetailedReactHTMLElement<{
39
- className: string;
40
- }, HTMLElement> | undefined;
41
- renderLineWidth(): React.DetailedReactHTMLElement<{
42
- className: string;
43
- }, HTMLElement> | undefined;
44
- renderPolygonBorderColor(): React.DetailedReactHTMLElement<{
45
- className: string;
46
- }, HTMLElement> | undefined;
47
- renderPolygonFillOpacity(): React.DetailedReactHTMLElement<{
48
- className: string;
49
- }, HTMLElement> | undefined;
50
- renderFilter(): React.DetailedReactHTMLElement<{
51
- className: string;
52
- }, HTMLElement> | null;
53
- renderPopup(): React.CElement<any, EditPopupComponent> | null;
54
- renderHoverOver(): React.FunctionComponentElement<import("./EditHoverOver").EditHoverOverProps> | null;
55
- render(): React.DetailedReactHTMLElement<React.HTMLAttributes<HTMLElement>, HTMLElement>;
28
+ renderTable(): React.JSX.Element;
29
+ renderGeometryAxis(): React.JSX.Element | undefined;
30
+ renderColor(): React.JSX.Element | undefined;
31
+ renderSymbol(): React.JSX.Element | undefined;
32
+ renderMarkerSize(): React.JSX.Element | undefined;
33
+ renderLineWidth(): React.JSX.Element | undefined;
34
+ renderPolygonBorderColor(): React.JSX.Element | undefined;
35
+ renderPolygonFillOpacity(): React.JSX.Element | undefined;
36
+ renderFilter(): React.JSX.Element | null;
37
+ renderPopup(): React.JSX.Element | null;
38
+ renderHoverOver(): React.JSX.Element | null;
39
+ render(): React.JSX.Element;
56
40
  }