@mwater/visualization 5.1.0 → 5.3.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 (305) hide show
  1. package/lib/ColorComponent.d.ts +10 -11
  2. package/lib/ColorComponent.js +78 -29
  3. package/lib/ColorSchemeFactory.d.ts +13 -2
  4. package/lib/ColorSchemeFactory.js +7 -5
  5. package/lib/CustomColorsContext.d.ts +6 -0
  6. package/lib/CustomColorsContext.js +6 -0
  7. package/lib/FiltersDesignerComponent.d.ts +1 -4
  8. package/lib/FiltersDesignerComponent.js +2 -3
  9. package/lib/GlobalFilter.d.ts +13 -0
  10. package/lib/GlobalFilter.js +2 -0
  11. package/lib/LocaleContextInjector.d.ts +5 -11
  12. package/lib/LocaleContextInjector.js +4 -12
  13. package/lib/MWaterAddRelatedFormComponent.js +3 -3
  14. package/lib/MWaterAddRelatedIndicatorComponent.d.ts +1 -4
  15. package/lib/MWaterAddRelatedIndicatorComponent.js +6 -6
  16. package/lib/MWaterCompleteTableSelectComponent.d.ts +7 -25
  17. package/lib/MWaterCompleteTableSelectComponent.js +36 -36
  18. package/lib/MWaterContextComponent.d.ts +19 -9
  19. package/lib/MWaterContextComponent.js +38 -22
  20. package/lib/MWaterCustomTablesetListComponent.js +9 -3
  21. package/lib/MWaterGlobalFiltersComponent.d.ts +6 -5
  22. package/lib/MWaterGlobalFiltersComponent.js +4 -4
  23. package/lib/MWaterLoaderComponent.d.ts +15 -3
  24. package/lib/MWaterLoaderComponent.js +11 -2
  25. package/lib/MWaterTableSelectComponent.d.ts +1 -4
  26. package/lib/MWaterTableSelectComponent.js +10 -12
  27. package/lib/UIComponents.d.ts +2 -2
  28. package/lib/UIComponents.js +4 -12
  29. package/lib/axes/Axis.d.ts +20 -25
  30. package/lib/axes/AxisBuilder.d.ts +7 -4
  31. package/lib/axes/AxisBuilder.js +12 -8
  32. package/lib/axes/AxisComponent.d.ts +6 -9
  33. package/lib/axes/AxisComponent.js +1 -2
  34. package/lib/axes/ColorPaletteCollectionComponent.d.ts +5 -12
  35. package/lib/axes/ColorPaletteCollectionComponent.js +67 -36
  36. package/lib/dashboards/DashboardComponent.d.ts +4 -17
  37. package/lib/dashboards/DashboardComponent.js +20 -67
  38. package/lib/dashboards/DashboardDesign.d.ts +5 -20
  39. package/lib/dashboards/DashboardUpgrader.js +36 -1
  40. package/lib/dashboards/DashboardViewComponent.d.ts +5 -34
  41. package/lib/dashboards/DashboardViewComponent.js +112 -136
  42. package/lib/dashboards/FontStyleEditor.d.ts +8 -0
  43. package/lib/dashboards/FontStyleEditor.js +130 -0
  44. package/lib/dashboards/LayoutOptionsComponent.d.ts +0 -1
  45. package/lib/dashboards/LayoutOptionsComponent.js +209 -39
  46. package/lib/dashboards/ServerDashboardDataSource.d.ts +1 -2
  47. package/lib/dashboards/ServerDashboardDataSource.js +52 -33
  48. package/lib/dashboards/SettingsModalComponent.d.ts +4 -15
  49. package/lib/dashboards/SettingsModalComponent.js +24 -38
  50. package/lib/dashboards/WidgetComponent.d.ts +3 -3
  51. package/lib/dashboards/WidgetComponent.js +3 -6
  52. package/lib/dashboards/WidgetDataSourcePrioritizer.d.ts +20 -0
  53. package/lib/dashboards/WidgetDataSourcePrioritizer.js +72 -0
  54. package/lib/dashboards/layoutOptions.d.ts +83 -0
  55. package/lib/dashboards/layoutOptions.js +436 -10
  56. package/lib/datagrids/DatagridComponent.d.ts +2 -9
  57. package/lib/datagrids/DatagridDataSource.d.ts +3 -3
  58. package/lib/datagrids/DatagridDataSource.js +0 -14
  59. package/lib/datagrids/DatagridDesign.d.ts +7 -6
  60. package/lib/datagrids/DatagridDesignerComponent.d.ts +2 -93
  61. package/lib/datagrids/DatagridDesignerComponent.js +8 -6
  62. package/lib/datagrids/DatagridViewComponent.js +1 -1
  63. package/lib/datagrids/FindReplaceModalComponent.d.ts +4 -20
  64. package/lib/datagrids/FindReplaceModalComponent.js +27 -13
  65. package/lib/datagrids/ServerDatagridDataSource.d.ts +8 -7
  66. package/lib/datagrids/ServerDatagridDataSource.js +88 -36
  67. package/lib/demo.js +4 -4
  68. package/lib/index.css +5 -0
  69. package/lib/index.d.ts +2 -1
  70. package/lib/index.js +0 -1
  71. package/lib/layouts/LayoutManager.d.ts +33 -29
  72. package/lib/layouts/LayoutManager.js +2 -8
  73. package/lib/layouts/blocks/BlocksDisplayComponent.d.ts +26 -56
  74. package/lib/layouts/blocks/BlocksDisplayComponent.js +122 -205
  75. package/lib/layouts/blocks/BlocksLayoutManager.d.ts +6 -22
  76. package/lib/layouts/blocks/BlocksLayoutManager.js +5 -14
  77. package/lib/layouts/blocks/HorizontalBlockComponent.d.ts +5 -4
  78. package/lib/layouts/blocks/HorizontalBlockComponent.js +5 -5
  79. package/lib/layouts/grid/GridLayoutManager.d.ts +2 -1
  80. package/lib/mWaterLoader.d.ts +2 -0
  81. package/lib/mWaterLoader.js +2 -1
  82. package/lib/maps/AddLayerComponent.d.ts +6 -8
  83. package/lib/maps/AddLayerComponent.js +6 -6
  84. package/lib/maps/BingLayer.js +10 -20
  85. package/lib/maps/BufferLayer.js +5 -2
  86. package/lib/maps/ChoroplethLayer.js +2 -1
  87. package/lib/maps/ClusterLayer.js +3 -1
  88. package/lib/maps/DirectMapDataSource.d.ts +5 -2
  89. package/lib/maps/DirectMapDataSource.js +2 -1
  90. package/lib/maps/EditPopupComponent.js +2 -1
  91. package/lib/maps/GridLayer.js +5 -3
  92. package/lib/maps/GridLayerDesigner.js +0 -1
  93. package/lib/maps/LayerSwitcherComponent.js +1 -1
  94. package/lib/maps/MapComponent.d.ts +3 -11
  95. package/lib/maps/MapComponent.js +3 -3
  96. package/lib/maps/MapDesign.d.ts +2 -13
  97. package/lib/maps/MapFiltersDesignerComponent.d.ts +0 -4
  98. package/lib/maps/MapFiltersDesignerComponent.js +4 -5
  99. package/lib/maps/MarkersLayer.js +30 -25
  100. package/lib/maps/RasterMapViewComponent.d.ts +3 -13
  101. package/lib/maps/RasterMapViewComponent.js +3 -3
  102. package/lib/maps/RegionSelectComponent.d.ts +2 -1
  103. package/lib/maps/ServerMapDataSource.d.ts +3 -4
  104. package/lib/maps/ServerMapDataSource.js +5 -5
  105. package/lib/maps/VectorMapViewComponent.js +2 -1
  106. package/lib/maps/mapSymbols.js +2 -0
  107. package/lib/maps/symbols/font-awesome/cloud-rain.png +0 -0
  108. package/lib/maps/vectorMaps.d.ts +1 -0
  109. package/lib/maps/vectorMaps.js +70 -56
  110. package/lib/quickfilter/QuickfilterCompiler.d.ts +1 -1
  111. package/lib/quickfilter/QuickfiltersComponent.d.ts +1 -4
  112. package/lib/quickfilter/QuickfiltersComponent.js +3 -3
  113. package/lib/richtext/DropdownPaletteItem.d.ts +32 -0
  114. package/lib/richtext/DropdownPaletteItem.js +82 -0
  115. package/lib/richtext/FontColorPaletteItem.d.ts +1 -5
  116. package/lib/richtext/FontColorPaletteItem.js +32 -27
  117. package/lib/richtext/ItemsHtmlConverter.js +12 -3
  118. package/lib/richtext/RichTextComponent.d.ts +26 -52
  119. package/lib/richtext/RichTextComponent.js +166 -128
  120. package/lib/valueFormatter.js +6 -1
  121. package/lib/wellknown.d.ts +5 -0
  122. package/lib/wellknown.js +288 -0
  123. package/lib/widgets/DropdownWidgetComponent.d.ts +8 -25
  124. package/lib/widgets/DropdownWidgetComponent.js +48 -25
  125. package/lib/widgets/IFrameWidgetComponent.d.ts +3 -11
  126. package/lib/widgets/ImageWidgetComponent.d.ts +8 -27
  127. package/lib/widgets/MapWidget.d.ts +4 -7
  128. package/lib/widgets/MapWidget.js +2 -1
  129. package/lib/widgets/MarkdownWidget.d.ts +2 -7
  130. package/lib/widgets/TOCWidget.d.ts +2 -9
  131. package/lib/widgets/TOCWidget.js +2 -1
  132. package/lib/widgets/Widget.d.ts +2 -0
  133. package/lib/widgets/WidgetDataSource.d.ts +3 -1
  134. package/lib/widgets/charts/Chart.d.ts +0 -1
  135. package/lib/widgets/charts/ChartViewComponent.d.ts +4 -0
  136. package/lib/widgets/charts/ChartViewComponent.js +11 -3
  137. package/lib/widgets/charts/ChartWidget.d.ts +1 -74
  138. package/lib/widgets/charts/ChartWidget.js +4 -183
  139. package/lib/widgets/charts/ChartWidgetComponent.d.ts +51 -0
  140. package/lib/widgets/charts/ChartWidgetComponent.js +167 -0
  141. package/lib/widgets/charts/calendar/CalendarChartViewComponent.d.ts +1 -4
  142. package/lib/widgets/charts/calendar/CalendarChartViewComponent.js +4 -4
  143. package/lib/widgets/charts/imagemosaic/ImagePopupComponent.d.ts +2 -7
  144. package/lib/widgets/charts/layered/LayeredChart.d.ts +5 -10
  145. package/lib/widgets/charts/layered/LayeredChart.js +6 -7
  146. package/lib/widgets/charts/layered/LayeredChartCompiler.d.ts +4 -2
  147. package/lib/widgets/charts/layered/LayeredChartCompiler.js +46 -32
  148. package/lib/widgets/charts/layered/LayeredChartDesign.d.ts +4 -0
  149. package/lib/widgets/charts/layered/LayeredChartDesignerComponent.d.ts +5 -31
  150. package/lib/widgets/charts/layered/LayeredChartDesignerComponent.js +21 -3
  151. package/lib/widgets/charts/layered/LayeredChartLayerDesignerComponent.d.ts +1 -7
  152. package/lib/widgets/charts/layered/LayeredChartLayerDesignerComponent.js +2 -1
  153. package/lib/widgets/charts/layered/LayeredChartViewComponent.d.ts +1 -4
  154. package/lib/widgets/charts/layered/LayeredChartViewComponent.js +89 -38
  155. package/lib/widgets/charts/pivot/IntersectionDesignerComponent.d.ts +5 -105
  156. package/lib/widgets/charts/pivot/IntersectionDesignerComponent.js +122 -166
  157. package/lib/widgets/charts/pivot/PivotChart.d.ts +6 -0
  158. package/lib/widgets/charts/pivot/PivotChart.js +47 -17
  159. package/lib/widgets/charts/pivot/PivotChartDesign.d.ts +11 -0
  160. package/lib/widgets/charts/pivot/PivotChartDesignerComponent.d.ts +11 -7
  161. package/lib/widgets/charts/pivot/PivotChartDesignerComponent.js +1 -1
  162. package/lib/widgets/charts/pivot/PivotChartLayoutBuilder.d.ts +2 -2
  163. package/lib/widgets/charts/pivot/PivotChartLayoutBuilder.js +20 -36
  164. package/lib/widgets/charts/pivot/PivotChartLayoutComponent.js +0 -1
  165. package/lib/widgets/charts/pivot/PivotChartQueryBuilder.d.ts +23 -2
  166. package/lib/widgets/charts/pivot/PivotChartQueryBuilder.js +215 -181
  167. package/lib/widgets/charts/pivot/PivotChartUtils.d.ts +2 -2
  168. package/lib/widgets/charts/pivot/PivotChartViewComponent.d.ts +9 -47
  169. package/lib/widgets/charts/pivot/PivotChartViewComponent.js +20 -60
  170. package/lib/widgets/charts/pivot/SegmentDesignerComponent.d.ts +55 -58
  171. package/lib/widgets/charts/table/TableChart.js +8 -4
  172. package/lib/widgets/charts/table/TableChartDesignerComponent.js +3 -3
  173. package/lib/widgets/charts/table/TableChartViewComponent.js +30 -16
  174. package/lib/widgets/text/ExprInsertModalComponent.d.ts +2 -13
  175. package/lib/widgets/text/ExprUpdateModalComponent.d.ts +2 -13
  176. package/lib/widgets/text/TextComponent.d.ts +5 -12
  177. package/lib/widgets/text/TextComponent.js +19 -39
  178. package/lib/widgets/text/TextWidget.d.ts +2 -1
  179. package/lib/widgets/text/TextWidget.js +5 -1
  180. package/lib/widgets/text/TextWidgetComponent.d.ts +15 -3
  181. package/lib/widgets/text/TextWidgetComponent.js +76 -19
  182. package/lib/widgets/text/TextWidgetDesign.d.ts +16 -2
  183. package/lib/widgets/text/TextWidgetDesign.js +6 -0
  184. package/package.json +4 -4
  185. package/src/ColorComponent.tsx +177 -0
  186. package/src/ColorSchemeFactory.ts +12 -6
  187. package/src/CustomColorsContext.tsx +8 -0
  188. package/src/FiltersDesignerComponent.ts +3 -4
  189. package/src/GlobalFilter.ts +17 -0
  190. package/src/LocaleContextInjector.tsx +14 -13
  191. package/src/MWaterAddRelatedFormComponent.ts +3 -3
  192. package/src/MWaterAddRelatedIndicatorComponent.ts +6 -6
  193. package/src/MWaterCompleteTableSelectComponent.tsx +36 -36
  194. package/src/MWaterContextComponent.tsx +42 -33
  195. package/src/MWaterCustomTablesetListComponent.tsx +21 -3
  196. package/src/MWaterGlobalFiltersComponent.ts +8 -8
  197. package/src/MWaterLoaderComponent.ts +14 -4
  198. package/src/MWaterTableSelectComponent.tsx +11 -12
  199. package/src/{UIComponents.ts → UIComponents.tsx} +7 -15
  200. package/src/axes/Axis.ts +24 -25
  201. package/src/axes/AxisBuilder.ts +16 -13
  202. package/src/axes/AxisComponent.ts +3 -4
  203. package/src/axes/{ColorPaletteCollectionComponent.ts → ColorPaletteCollectionComponent.tsx} +87 -61
  204. package/src/dashboards/DashboardComponent.tsx +73 -147
  205. package/src/dashboards/DashboardDesign.ts +5 -25
  206. package/src/dashboards/DashboardUpgrader.ts +41 -1
  207. package/src/dashboards/DashboardViewComponent.tsx +313 -0
  208. package/src/dashboards/FontStyleEditor.tsx +166 -0
  209. package/src/dashboards/LayoutOptionsComponent.tsx +377 -71
  210. package/src/dashboards/ServerDashboardDataSource.ts +52 -33
  211. package/src/dashboards/SettingsModalComponent.tsx +170 -0
  212. package/src/dashboards/WidgetComponent.tsx +6 -12
  213. package/src/dashboards/WidgetDataSourcePrioritizer.ts +82 -0
  214. package/src/dashboards/layoutOptions.tsx +581 -0
  215. package/src/datagrids/DatagridDataSource.ts +6 -12
  216. package/src/datagrids/DatagridDesign.ts +8 -3
  217. package/src/datagrids/DatagridDesignerComponent.tsx +22 -18
  218. package/src/datagrids/DatagridViewComponent.ts +3 -3
  219. package/src/datagrids/ExprCellComponent.ts +0 -1
  220. package/src/datagrids/FindReplaceModalComponent.ts +39 -22
  221. package/src/datagrids/ServerDatagridDataSource.ts +107 -45
  222. package/src/demo.ts +4 -4
  223. package/src/index.css +5 -0
  224. package/src/index.ts +2 -1
  225. package/src/layouts/LayoutManager.ts +44 -42
  226. package/src/layouts/blocks/BlocksDisplayComponent.tsx +498 -0
  227. package/src/layouts/blocks/BlocksLayoutManager.ts +6 -15
  228. package/src/layouts/blocks/HorizontalBlockComponent.ts +9 -8
  229. package/src/mWaterLoader.ts +4 -1
  230. package/src/maps/AddLayerComponent.ts +9 -9
  231. package/src/maps/BingLayer.ts +16 -26
  232. package/src/maps/BufferLayer.ts +5 -2
  233. package/src/maps/ChoroplethLayer.ts +2 -1
  234. package/src/maps/ClusterLayer.ts +3 -1
  235. package/src/maps/DirectMapDataSource.ts +12 -3
  236. package/src/maps/EditPopupComponent.ts +2 -1
  237. package/src/maps/GridLayer.ts +5 -3
  238. package/src/maps/GridLayerDesigner.tsx +0 -1
  239. package/src/maps/LayerSwitcherComponent.tsx +1 -1
  240. package/src/maps/MapComponent.ts +3 -3
  241. package/src/maps/MapDesign.ts +2 -17
  242. package/src/maps/{MapFiltersDesignerComponent.ts → MapFiltersDesignerComponent.tsx} +25 -25
  243. package/src/maps/MarkersLayer.ts +38 -41
  244. package/src/maps/RasterMapViewComponent.ts +3 -3
  245. package/src/maps/ServerMapDataSource.ts +8 -8
  246. package/src/maps/VectorMapViewComponent.tsx +2 -2
  247. package/src/maps/mapSymbols.ts +2 -0
  248. package/src/maps/symbols/font-awesome/cloud-rain.png +0 -0
  249. package/src/maps/vectorMaps.tsx +88 -74
  250. package/src/quickfilter/QuickfilterCompiler.ts +1 -1
  251. package/src/quickfilter/QuickfiltersComponent.ts +3 -3
  252. package/src/richtext/DropdownPaletteItem.tsx +144 -0
  253. package/src/richtext/FontColorPaletteItem.tsx +160 -0
  254. package/src/richtext/ItemsHtmlConverter.ts +15 -5
  255. package/src/richtext/RichTextComponent.tsx +274 -232
  256. package/src/valueFormatter.ts +5 -1
  257. package/src/wellknown.ts +286 -0
  258. package/src/widgets/DropdownWidgetComponent.tsx +75 -0
  259. package/src/widgets/MapWidget.ts +5 -2
  260. package/src/widgets/TOCWidget.ts +2 -1
  261. package/src/widgets/Widget.ts +3 -0
  262. package/src/widgets/WidgetDataSource.ts +3 -1
  263. package/src/widgets/charts/Chart.ts +1 -1
  264. package/src/widgets/charts/ChartViewComponent.ts +16 -3
  265. package/src/widgets/charts/ChartWidget.ts +3 -275
  266. package/src/widgets/charts/ChartWidgetComponent.tsx +281 -0
  267. package/src/widgets/charts/calendar/CalendarChartViewComponent.tsx +4 -4
  268. package/src/widgets/charts/layered/LayeredChart.ts +4 -6
  269. package/src/widgets/charts/layered/LayeredChartCompiler.ts +80 -63
  270. package/src/widgets/charts/layered/LayeredChartDesign.ts +7 -1
  271. package/src/widgets/charts/layered/LayeredChartDesignerComponent.tsx +43 -10
  272. package/src/widgets/charts/layered/LayeredChartLayerDesignerComponent.tsx +6 -6
  273. package/src/widgets/charts/layered/LayeredChartViewComponent.ts +140 -88
  274. package/src/widgets/charts/pivot/IntersectionDesignerComponent.tsx +305 -221
  275. package/src/widgets/charts/pivot/PivotChart.ts +56 -18
  276. package/src/widgets/charts/pivot/PivotChartDesign.ts +12 -0
  277. package/src/widgets/charts/pivot/PivotChartDesignerComponent.tsx +4 -3
  278. package/src/widgets/charts/pivot/PivotChartLayoutBuilder.ts +39 -76
  279. package/src/widgets/charts/pivot/PivotChartLayoutComponent.tsx +0 -1
  280. package/src/widgets/charts/pivot/PivotChartQueryBuilder.ts +230 -189
  281. package/src/widgets/charts/pivot/PivotChartUtils.ts +4 -4
  282. package/src/widgets/charts/pivot/{PivotChartViewComponent.ts → PivotChartViewComponent.tsx} +86 -89
  283. package/src/widgets/charts/table/TableChart.ts +8 -4
  284. package/src/widgets/charts/table/TableChartDesignerComponent.ts +4 -4
  285. package/src/widgets/charts/table/TableChartViewComponent.ts +32 -19
  286. package/src/widgets/text/TextComponent.tsx +47 -49
  287. package/src/widgets/text/TextWidget.ts +8 -3
  288. package/src/widgets/text/TextWidgetComponent.tsx +249 -0
  289. package/src/widgets/text/TextWidgetDesign.ts +26 -2
  290. package/src/ColorComponent.ts +0 -117
  291. package/src/dashboards/DashboardViewComponent.ts +0 -304
  292. package/src/dashboards/SettingsModalComponent.ts +0 -169
  293. package/src/dashboards/layoutOptions.ts +0 -40
  294. package/src/layout-styles.css +0 -263
  295. package/src/layouts/blocks/BlocksDisplayComponent.ts +0 -461
  296. package/src/layouts/grid/GridLayoutComponent.ts +0 -67
  297. package/src/layouts/grid/GridLayoutManager.ts +0 -185
  298. package/src/layouts/grid/LegoLayoutEngine.ts +0 -142
  299. package/src/layouts/grid/PaletteItemComponent.ts +0 -28
  300. package/src/layouts/grid/README.md +0 -14
  301. package/src/layouts/grid/WidgetContainerComponent.ts +0 -420
  302. package/src/richtext/FontColorPaletteItem.ts +0 -172
  303. package/src/richtext/FontSizePaletteItem.ts +0 -110
  304. package/src/widgets/DropdownWidgetComponent.ts +0 -78
  305. package/src/widgets/text/TextWidgetComponent.ts +0 -120
@@ -1,8 +1,5 @@
1
- import PropTypes from "prop-types"
2
1
  import _ from "lodash"
3
2
  import React from "react"
4
- import ReactDOM from "react-dom"
5
- const R = React.createElement
6
3
 
7
4
  import ActionCancelModalComponent from "@mwater/react-library/lib/ActionCancelModalComponent"
8
5
  import { DataSource, ExprUtils, Schema } from "@mwater/expressions"
@@ -13,7 +10,9 @@ import PivotChartLayoutBuilder from "./PivotChartLayoutBuilder"
13
10
  import SegmentDesignerComponent from "./SegmentDesignerComponent"
14
11
  import IntersectionDesignerComponent from "./IntersectionDesignerComponent"
15
12
  import { JsonQLFilter, WidgetScope } from "../../.."
16
- import { PivotChartDesign } from "./PivotChartDesign"
13
+ import { PivotChartDesign, PivotChartIntersection } from "./PivotChartDesign"
14
+
15
+ import { LocaleContext } from "@mwater/expressions-ui/lib/contexts"
17
16
 
18
17
  export interface PivotChartViewComponentProps {
19
18
  schema: Schema
@@ -38,16 +37,15 @@ export interface PivotChartViewComponentProps {
38
37
 
39
38
  interface PivotChartViewComponentState {
40
39
  editSegment: any
41
- editIntersectionId: any
42
- editIntersection: any
40
+ editIntersectionId: string | null
41
+ editIntersection: PivotChartIntersection | null
43
42
  }
44
-
45
43
  // Displays a pivot chart
46
44
  export default class PivotChartViewComponent extends React.Component<
47
45
  PivotChartViewComponentProps,
48
46
  PivotChartViewComponentState
49
47
  > {
50
- static contextTypes = { locale: PropTypes.string }
48
+ static contextType = LocaleContext
51
49
 
52
50
  constructor(props: any) {
53
51
  super(props)
@@ -106,7 +104,7 @@ export default class PivotChartViewComponent extends React.Component<
106
104
 
107
105
  handleSaveEditIntersection = () => {
108
106
  const intersections = _.clone(this.props.design.intersections)
109
- intersections[this.state.editIntersectionId] = this.state.editIntersection
107
+ intersections[this.state.editIntersectionId!] = this.state.editIntersection!
110
108
 
111
109
  const design = { ...this.props.design, intersections }
112
110
  this.props.onDesignChange!(design)
@@ -160,85 +158,87 @@ export default class PivotChartViewComponent extends React.Component<
160
158
  }
161
159
 
162
160
  renderHeader() {
163
- return R(
164
- "div",
165
- { style: { paddingLeft: 10, paddingRight: 10 } },
166
- R(TextComponent, {
167
- design: this.props.design.header,
168
- onDesignChange: this.props.onDesignChange ? this.handleHeaderChange : undefined,
169
- schema: this.props.schema,
170
- dataSource: this.props.dataSource,
171
- exprValues: this.props.data.header || {},
172
- width: this.props.width
173
- })
161
+ return (
162
+ <div style={{ paddingLeft: 10, paddingRight: 10 }}>
163
+ <TextComponent
164
+ design={this.props.design.header}
165
+ onDesignChange={this.props.onDesignChange ? this.handleHeaderChange : undefined}
166
+ schema={this.props.schema}
167
+ dataSource={this.props.dataSource}
168
+ exprValues={this.props.data.header || {}}
169
+ width={this.props.width}
170
+ />
171
+ </div>
174
172
  )
175
173
  }
176
174
 
177
175
  renderFooter() {
178
- return R(
179
- "div",
180
- { style: { paddingLeft: 10, paddingRight: 10 } },
181
- R(TextComponent, {
182
- design: this.props.design.footer,
183
- onDesignChange: this.props.onDesignChange ? this.handleFooterChange : undefined,
184
- schema: this.props.schema,
185
- dataSource: this.props.dataSource,
186
- exprValues: this.props.data.footer || {},
187
- width: this.props.width
188
- })
176
+ return (
177
+ <div style={{ paddingLeft: 10, paddingRight: 10 }}>
178
+ <TextComponent
179
+ design={this.props.design.footer}
180
+ onDesignChange={this.props.onDesignChange ? this.handleFooterChange : undefined}
181
+ schema={this.props.schema}
182
+ dataSource={this.props.dataSource}
183
+ exprValues={this.props.data.footer || {}}
184
+ width={this.props.width}
185
+ />
186
+ </div>
189
187
  )
190
188
  }
191
189
 
192
190
  renderEditSegmentModal() {
193
191
  if (!this.state.editSegment) {
194
- return
192
+ return null
195
193
  }
196
194
 
197
195
  const segmentType = PivotChartUtils.findSegment(this.props.design.rows, this.state.editSegment.id)
198
196
  ? "row"
199
197
  : "column"
200
198
 
201
- return R(
202
- ActionCancelModalComponent,
203
- {
204
- title: `Edit ${segmentType}`,
205
- onAction: this.handleSaveEditSegment,
206
- onCancel: this.handleCancelEditSegment,
207
- size: "large"
208
- },
209
- R(SegmentDesignerComponent, {
210
- segment: this.state.editSegment,
211
- table: this.props.design.table,
212
- schema: this.props.schema,
213
- dataSource: this.props.dataSource,
214
- segmentType,
215
- onChange: (segment: any) => this.setState({ editSegment: segment }),
216
- filters: this.props.filters
217
- })
199
+ return (
200
+ <ActionCancelModalComponent
201
+ title={`Edit ${segmentType}`}
202
+ onAction={this.handleSaveEditSegment}
203
+ onCancel={this.handleCancelEditSegment}
204
+ size="large"
205
+ >
206
+ <SegmentDesignerComponent
207
+ segment={this.state.editSegment}
208
+ table={this.props.design.table}
209
+ schema={this.props.schema}
210
+ dataSource={this.props.dataSource}
211
+ segmentType={segmentType}
212
+ onChange={(segment: any) => this.setState({ editSegment: segment })}
213
+ filters={this.props.filters}
214
+ />
215
+ </ActionCancelModalComponent>
218
216
  )
219
217
  }
220
218
 
221
219
  renderEditIntersectionModal() {
222
220
  if (!this.state.editIntersectionId) {
223
- return
221
+ return null
224
222
  }
225
223
 
226
- return R(
227
- ActionCancelModalComponent,
228
- {
229
- title: "Edit Value",
230
- onAction: this.handleSaveEditIntersection,
231
- onCancel: this.handleCancelEditIntersection,
232
- size: "large"
233
- },
234
- R(IntersectionDesignerComponent, {
235
- intersection: this.state.editIntersection,
236
- table: this.props.design.table,
237
- schema: this.props.schema,
238
- dataSource: this.props.dataSource,
239
- onChange: (intersection: any) => this.setState({ editIntersection: intersection }),
240
- filters: this.props.filters
241
- })
224
+ return (
225
+ <ActionCancelModalComponent
226
+ title="Edit Value"
227
+ onAction={this.handleSaveEditIntersection}
228
+ onCancel={this.handleCancelEditIntersection}
229
+ size="large"
230
+ >
231
+ <IntersectionDesignerComponent
232
+ design={this.props.design}
233
+ intersectionId={this.state.editIntersectionId}
234
+ intersection={this.state.editIntersection!}
235
+ table={this.props.design.table}
236
+ schema={this.props.schema}
237
+ dataSource={this.props.dataSource}
238
+ onChange={(intersection) => this.setState({ editIntersection: intersection })}
239
+ filters={this.props.filters}
240
+ />
241
+ </ActionCancelModalComponent>
242
242
  )
243
243
  }
244
244
 
@@ -246,31 +246,28 @@ export default class PivotChartViewComponent extends React.Component<
246
246
  const layout = new PivotChartLayoutBuilder({ schema: this.props.schema }).buildLayout(
247
247
  this.props.design,
248
248
  this.props.data,
249
- this.context.locale
249
+ this.context
250
250
  )
251
251
 
252
- return R(
253
- "div",
254
- { style: { width: this.props.width, height: this.props.height } },
255
- this.renderHeader(),
256
- this.renderEditSegmentModal(),
257
- this.renderEditIntersectionModal(),
258
- R(
259
- "div",
260
- { key: "layout", style: { margin: 5, marginTop: 12, overflowX: "auto", padding: 7 } }, // Allow table to scroll since tables have hard minimum widths, Leave room for gear menu
261
- R(PivotChartLayoutComponent, {
262
- layout,
263
- editable: this.props.onDesignChange != null,
264
- onEditSection: this.props.onDesignChange != null ? this.handleEditSection : undefined,
265
- onRemoveSegment: this.props.onDesignChange != null ? this.handleRemoveSegment : undefined,
266
- onInsertBeforeSegment: this.props.onDesignChange != null ? this.handleInsertBeforeSegment : undefined,
267
- onInsertAfterSegment: this.props.onDesignChange != null ? this.handleInsertAfterSegment : undefined,
268
- onAddChildSegment: this.props.onDesignChange != null ? this.handleAddChildSegment : undefined,
269
- onSummarizeSegment: this.props.onDesignChange != null ? this.handleSummarizeSegment : undefined
270
- })
271
- ),
272
-
273
- this.renderFooter()
252
+ return (
253
+ <div style={{ width: this.props.width, height: this.props.height }}>
254
+ {this.renderHeader()}
255
+ {this.renderEditSegmentModal()}
256
+ {this.renderEditIntersectionModal()}
257
+ <div key="layout" style={{ margin: 5, marginTop: 12, overflowX: "auto", padding: 7 }}>
258
+ <PivotChartLayoutComponent
259
+ layout={layout}
260
+ editable={this.props.onDesignChange != null}
261
+ onEditSection={this.props.onDesignChange != null ? this.handleEditSection : undefined}
262
+ onRemoveSegment={this.props.onDesignChange != null ? this.handleRemoveSegment : undefined}
263
+ onInsertBeforeSegment={this.props.onDesignChange != null ? this.handleInsertBeforeSegment : undefined}
264
+ onInsertAfterSegment={this.props.onDesignChange != null ? this.handleInsertAfterSegment : undefined}
265
+ onAddChildSegment={this.props.onDesignChange != null ? this.handleAddChildSegment : undefined}
266
+ onSummarizeSegment={this.props.onDesignChange != null ? this.handleSummarizeSegment : undefined}
267
+ />
268
+ </div>
269
+ {this.renderFooter()}
270
+ </div>
274
271
  )
275
272
  }
276
273
  }
@@ -229,10 +229,14 @@ export default class TableChart extends Chart {
229
229
  // Convert to 4326 (lat/long). Force ::geometry for null
230
230
  compiledExpr = {
231
231
  type: "op",
232
- op: "ST_AsGeoJSON",
233
- exprs: [
234
- { type: "op", op: "ST_Transform", exprs: [{ type: "op", op: "::geometry", exprs: [compiledExpr] }, 4326] }
235
- ]
232
+ op: "::jsonb",
233
+ exprs: [{
234
+ type: "op",
235
+ op: "ST_AsGeoJSON",
236
+ exprs: [
237
+ { type: "op", op: "ST_Transform", exprs: [{ type: "op", op: "::geometry", exprs: [compiledExpr] }, 4326] }
238
+ ]
239
+ }]
236
240
  }
237
241
  }
238
242
 
@@ -1,11 +1,9 @@
1
- import PropTypes from "prop-types"
2
1
  import _ from "lodash"
3
2
  import React from "react"
4
3
  const R = React.createElement
5
4
  import uuid from "uuid"
6
5
  import { DataSource, ExprUtils, Schema } from "@mwater/expressions"
7
6
  import AxisBuilder from "../../../axes/AxisBuilder"
8
- import { LinkComponent } from "@mwater/expressions-ui"
9
7
  import { ExprComponent } from "@mwater/expressions-ui"
10
8
  import { FilterExprComponent } from "@mwater/expressions-ui"
11
9
  import OrderingsComponent from "./OrderingsComponent"
@@ -18,6 +16,8 @@ import { TableChartColumn, TableChartDesign } from "./TableChart"
18
16
  import AxisComponent from "../../../axes/AxisComponent"
19
17
  import { Axis } from "../../../axes/Axis"
20
18
 
19
+ import { LocaleContext } from "@mwater/expressions-ui/lib/contexts"
20
+
21
21
  export interface TableChartDesignerComponentProps {
22
22
  design: TableChartDesign
23
23
  schema: Schema
@@ -251,7 +251,7 @@ export interface TableChartColumnDesignerComponentProps {
251
251
  }
252
252
 
253
253
  class TableChartColumnDesignerComponent extends React.Component<TableChartColumnDesignerComponentProps> {
254
- static contextTypes = { locale: PropTypes.string }
254
+ static contextType = LocaleContext
255
255
 
256
256
  // Updates column with the specified changes
257
257
  updateColumn(changes: any) {
@@ -346,7 +346,7 @@ class TableChartColumnDesignerComponent extends React.Component<TableChartColumn
346
346
  const column = this.props.design.columns[this.props.index]
347
347
 
348
348
  const axisBuilder = new AxisBuilder({ schema: this.props.schema })
349
- const placeholder = column.textAxis ? axisBuilder.summarizeAxis(column.textAxis ?? null, this.context.locale): ""
349
+ const placeholder = column.textAxis ? axisBuilder.summarizeAxis(column.textAxis ?? null, this.context): ""
350
350
 
351
351
  return R(
352
352
  "div",
@@ -1,8 +1,6 @@
1
- import PropTypes from "prop-types"
2
- import _, { sortBy } from "lodash"
1
+ import _ from "lodash"
3
2
  import React from "react"
4
3
  const R = React.createElement
5
- import moment from "moment"
6
4
  import { default as Linkify } from "react-linkify"
7
5
  import AxisBuilder from "../../../axes/AxisBuilder"
8
6
  import { DataSource, ExprUtils, Schema } from "@mwater/expressions"
@@ -10,6 +8,7 @@ import { formatValue } from "../../../valueFormatter"
10
8
  import { Image } from "@mwater/forms/lib/RotationAwareImageComponent"
11
9
  import { TableChartColumn, TableChartDesign } from "./TableChart"
12
10
  import Color from "color"
11
+ import { LocaleContext } from "@mwater/expressions-ui/lib/contexts"
13
12
 
14
13
  export interface TableChartViewComponentProps {
15
14
  /** Design of chart */
@@ -78,7 +77,7 @@ interface TableContentsComponentState {
78
77
  }
79
78
 
80
79
  class TableContentsComponent extends React.Component<TableContentsComponentProps, TableContentsComponentState> {
81
- static contextTypes = { locale: PropTypes.string }
80
+ static contextType = LocaleContext
82
81
 
83
82
  constructor(props: TableContentsComponentProps) {
84
83
  super(props)
@@ -155,7 +154,7 @@ class TableContentsComponent extends React.Component<TableContentsComponentProps
155
154
  const column = this.props.columns[index]
156
155
  //(this.state.sort?.direction === 'asc' ? "":"")
157
156
  const text =
158
- column.headerText ?? (column.textAxis ? axisBuilder.summarizeAxis(column.textAxis, this.context.locale) : "")
157
+ column.headerText ?? (column.textAxis ? axisBuilder.summarizeAxis(column.textAxis, this.context) : "")
159
158
  return R(
160
159
  "th",
161
160
  {
@@ -223,7 +222,7 @@ class TableContentsComponent extends React.Component<TableContentsComponentProps
223
222
 
224
223
  renderImage(id: any) {
225
224
  const url = this.props.dataSource.getImageUrl(id)
226
- return R("a", { href: url, key: id, target: "_blank", style: { paddingLeft: 5, paddingRight: 5 } }, "Image")
225
+ return R("a", { href: url, onClick: (e) => {e.stopPropagation()}, key: id, target: "_blank", style: { paddingLeft: 5, paddingRight: 5 } }, "Image")
227
226
  }
228
227
 
229
228
  renderCell(rowIndex: any, columnIndex: any) {
@@ -233,7 +232,7 @@ class TableContentsComponent extends React.Component<TableContentsComponentProps
233
232
  const column = this.props.columns[columnIndex]
234
233
  // Set background color
235
234
  let backgroundColor = "transparent"
236
- let textColor = "#212529"
235
+ let textColor = "inherit"
237
236
 
238
237
  const exprUtils = new ExprUtils(this.props.schema)
239
238
  if (!column.textAxis) {
@@ -244,6 +243,10 @@ class TableContentsComponent extends React.Component<TableContentsComponentProps
244
243
  // Get value
245
244
  let value = row[`c${columnIndex}`]
246
245
 
246
+ if (column.backgroundColorAxis) {
247
+ backgroundColor = axisBuilder.getValueColor(column.backgroundColorAxis, row[`bc${columnIndex}`]) ?? "#fff"
248
+ }
249
+
247
250
  if (value == null) {
248
251
  node = null
249
252
  } else {
@@ -257,14 +260,12 @@ class TableContentsComponent extends React.Component<TableContentsComponentProps
257
260
  }
258
261
  }
259
262
 
260
- if (column.backgroundColorAxis && row[`bc${columnIndex}`] != null) {
261
- backgroundColor = axisBuilder.getValueColor(column.backgroundColorAxis, row[`bc${columnIndex}`]) ?? "#fff"
262
- }
263
-
264
263
  // Convert to node based on type
265
264
  switch (exprType) {
266
265
  case "text":
267
- node = R(Linkify, { properties: { target: "_blank" } }, value)
266
+ if (_.isString(value)) {
267
+ node = R(Linkify, { properties: { target: "_blank" } }, value)
268
+ }
268
269
  break
269
270
  case "number":
270
271
  case "geometry":
@@ -272,21 +273,33 @@ class TableContentsComponent extends React.Component<TableContentsComponentProps
272
273
  break
273
274
  case "boolean":
274
275
  case "enum":
276
+ node = exprUtils.stringifyExprLiteral(column.textAxis?.expr, value, this.context)
277
+ break
275
278
  case "enumset":
276
279
  case "text[]":
277
- node = exprUtils.stringifyExprLiteral(column.textAxis?.expr, value, this.context.locale)
280
+ if (_.isArray(value)) {
281
+ node = exprUtils.stringifyExprLiteral(column.textAxis?.expr, value, this.context)
282
+ }
278
283
  break
279
284
  case "date":
280
- node = formatValue(exprType, value, column.format)
285
+ if (_.isString(value)) {
286
+ node = formatValue(exprType, value, column.format)
287
+ }
281
288
  break
282
289
  case "datetime":
283
- node = formatValue(exprType, value, column.format)
290
+ if (_.isString(value)) {
291
+ node = formatValue(exprType, value, column.format)
292
+ }
284
293
  break
285
294
  case "image":
286
- node = this.renderImage(value.id)
295
+ if (_.isObject(value) && value.id != null) {
296
+ node = this.renderImage(value.id)
297
+ }
287
298
  break
288
299
  case "imagelist":
289
- node = _.map(value, (v: Image) => this.renderImage(v.id))
300
+ if (_.isArray(value)) {
301
+ node = _.map(value, (v: Image) => this.renderImage(v.id))
302
+ }
290
303
  break
291
304
  default:
292
305
  node = "" + value
@@ -298,7 +311,7 @@ class TableContentsComponent extends React.Component<TableContentsComponentProps
298
311
  const c = Color(backgroundColor)
299
312
  // Get lightness (taking into account alpha)
300
313
  const lightness = 1 - (1 - c.luminosity()) * c.alpha()
301
- textColor = lightness < 0.3 ? "rgb(204,204,204)" : "#212529"
314
+ textColor = lightness < 0.3 ? "rgb(204,204,204)" : "inherit"
302
315
  }
303
316
 
304
317
  return R("td", { key: columnIndex, style: { backgroundColor, color: textColor } }, node)
@@ -323,7 +336,7 @@ class TableContentsComponent extends React.Component<TableContentsComponentProps
323
336
  render() {
324
337
  return R(
325
338
  "table",
326
- { className: "mwater-visualization-table", style: { fontSize: "10pt", marginBottom: 0 } },
339
+ { className: "mwater-visualization-table", style: { marginBottom: 0 } },
327
340
  this.renderHeader(),
328
341
  this.renderBody(),
329
342
  this.renderFooter()
@@ -1,6 +1,4 @@
1
- import PropTypes from "prop-types"
2
1
  import React, { CSSProperties } from "react"
3
- const R = React.createElement
4
2
  import _ from "lodash"
5
3
  import RichTextComponent from "../../richtext/RichTextComponent"
6
4
  import ExprInsertModalComponent from "./ExprInsertModalComponent"
@@ -8,6 +6,7 @@ import ExprUpdateModalComponent from "./ExprUpdateModalComponent"
8
6
  import ExprItemsHtmlConverter from "../../richtext/ExprItemsHtmlConverter"
9
7
  import { TextWidgetDesign } from "./TextWidgetDesign"
10
8
  import { DataSource, Schema } from "@mwater/expressions"
9
+ import { LocaleContext } from "@mwater/expressions-ui/lib/contexts"
11
10
 
12
11
  export interface TextComponentProps {
13
12
  design: TextWidgetDesign
@@ -29,10 +28,10 @@ export interface TextComponentProps {
29
28
  // Text component which is provided with the data it needs, rather than loading it.
30
29
  // Used by TextWidgetComponent and also by other components that embed text fields
31
30
  export default class TextComponent extends React.Component<TextComponentProps> {
32
- static contextTypes = { locale: PropTypes.string }
33
- exprInsertModal: ExprInsertModalComponent | null
34
- exprUpdateModal: ExprUpdateModalComponent | null
35
- editor: RichTextComponent | null
31
+ static contextType = LocaleContext
32
+ exprInsertModal: ExprInsertModalComponent | null = null
33
+ exprUpdateModal: ExprUpdateModalComponent | null = null
34
+ editor: RichTextComponent | null = null
36
35
 
37
36
  createItemsHtmlConverter() {
38
37
  return new ExprItemsHtmlConverter(
@@ -43,7 +42,7 @@ export default class TextComponent extends React.Component<TextComponentProps> {
43
42
  this.props.onDesignChange != null && this.props.singleRowTable != null,
44
43
  // Only replace named strings if not editing
45
44
  this.props.onDesignChange == null ? this.props.namedStrings : undefined,
46
- this.context.locale
45
+ this.context
47
46
  )
48
47
  }
49
48
 
@@ -81,41 +80,41 @@ export default class TextComponent extends React.Component<TextComponentProps> {
81
80
  })
82
81
  }
83
82
 
84
- handleAddExpr = (ev: any) => {
83
+ handleAddExpr = (ev: React.MouseEvent<HTMLDivElement>) => {
85
84
  ev.preventDefault()
86
85
  return this.exprInsertModal!.open()
87
86
  }
88
87
 
89
88
  renderExtraPaletteButtons() {
90
- return R(
91
- "div",
92
- { key: "expr", className: "mwater-visualization-text-palette-item", onMouseDown: this.handleAddExpr },
93
- R("i", { className: "fa fa-plus" }),
94
- " Field"
89
+ return (
90
+ <div key="expr" className="mwater-visualization-text-palette-item" onMouseDown={this.handleAddExpr}>
91
+ <i className="fa fa-plus" />
92
+ {" Expression"}
93
+ </div>
95
94
  )
96
95
  }
97
96
 
98
97
  renderModals() {
99
98
  return [
100
- R(ExprInsertModalComponent, {
101
- key: "exprInsertModal",
102
- ref: (c: ExprInsertModalComponent | null) => {
99
+ <ExprInsertModalComponent
100
+ key="exprInsertModal"
101
+ ref={(c: ExprInsertModalComponent | null) => {
103
102
  this.exprInsertModal = c
104
- },
105
- schema: this.props.schema,
106
- dataSource: this.props.dataSource,
107
- onInsert: this.handleInsertExpr,
108
- singleRowTable: this.props.singleRowTable
109
- }),
110
- R(ExprUpdateModalComponent, {
111
- key: "exprUpdateModal",
112
- ref: (c: ExprUpdateModalComponent | null) => {
103
+ }}
104
+ schema={this.props.schema}
105
+ dataSource={this.props.dataSource}
106
+ onInsert={this.handleInsertExpr}
107
+ singleRowTable={this.props.singleRowTable}
108
+ />,
109
+ <ExprUpdateModalComponent
110
+ key="exprUpdateModal"
111
+ ref={(c: ExprUpdateModalComponent | null) => {
113
112
  this.exprUpdateModal = c
114
- },
115
- schema: this.props.schema,
116
- dataSource: this.props.dataSource,
117
- singleRowTable: this.props.singleRowTable
118
- })
113
+ }}
114
+ schema={this.props.schema}
115
+ dataSource={this.props.dataSource}
116
+ singleRowTable={this.props.singleRowTable}
117
+ />
119
118
  ]
120
119
  }
121
120
 
@@ -125,27 +124,26 @@ export default class TextComponent extends React.Component<TextComponentProps> {
125
124
 
126
125
  render() {
127
126
  const style: CSSProperties = {
128
- position: "relative"
127
+ position: "relative",
128
+ width: this.props.width,
129
+ height: this.props.height
129
130
  }
130
131
 
131
- style.width = this.props.width
132
- style.height = this.props.height
133
-
134
- return R(
135
- "div",
136
- null,
137
- this.renderModals(),
138
- R(RichTextComponent, {
139
- ref: this.refRichTextComponent,
140
- className: `mwater-visualization-text-widget-style-${this.props.design.style || "default"}`,
141
- style,
142
- items: this.props.design.items,
143
- onItemsChange: this.props.onDesignChange ? this.handleItemsChange : undefined,
144
- onItemClick: this.handleItemClick,
145
- itemsHtmlConverter: this.createItemsHtmlConverter(),
146
- includeHeadings: this.props.design.style === "default" || !this.props.design.style,
147
- extraPaletteButtons: this.renderExtraPaletteButtons()
148
- })
132
+ return (
133
+ <div>
134
+ {this.renderModals()}
135
+ <RichTextComponent
136
+ ref={this.refRichTextComponent}
137
+ className={`mwater-visualization-text-widget-style-${this.props.design.style || "default"}`}
138
+ style={style}
139
+ items={this.props.design.items}
140
+ onItemsChange={this.props.onDesignChange ? this.handleItemsChange : undefined}
141
+ onItemClick={this.handleItemClick}
142
+ itemsHtmlConverter={this.createItemsHtmlConverter()}
143
+ includeHeadings={this.props.design.style === "default" || !this.props.design.style}
144
+ extraPaletteButtons={this.renderExtraPaletteButtons()}
145
+ />
146
+ </div>
149
147
  )
150
148
  }
151
149
  }
@@ -43,7 +43,8 @@ export default class TextWidget extends Widget {
43
43
  height: options.height,
44
44
  singleRowTable: options.singleRowTable,
45
45
  namedStrings: options.namedStrings,
46
- ref: options.widgetRef
46
+ ref: options.widgetRef,
47
+ refreshKey: options.refreshKey
47
48
  })
48
49
  }
49
50
 
@@ -160,7 +161,7 @@ export default class TextWidget extends Widget {
160
161
  }
161
162
 
162
163
  // Map of value by id
163
- const exprValues = {}
164
+ const exprValues: { [key: string]: any } = {}
164
165
 
165
166
  return async.each(
166
167
  this.getExprItems(design.items),
@@ -204,7 +205,11 @@ export default class TextWidget extends Widget {
204
205
  }
205
206
 
206
207
  // Get a list of table ids that can be filtered on
207
- getFilterableTables(design: TextWidgetDesign, schema: Schema) {
208
+ getFilterableTables(design: TextWidgetDesign | undefined, schema: Schema) {
209
+ if (!design) {
210
+ return []
211
+ }
212
+
208
213
  const exprItems = this.getExprItems(design.items)
209
214
 
210
215
  let filterableTables = _.map(exprItems, (exprItem) => (exprItem.expr as OpExpr)?.table)