@mwater/visualization 5.4.1 → 5.4.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (273) hide show
  1. package/lib/ColorComponent.js +2 -1
  2. package/lib/IdSelection.d.ts +16 -0
  3. package/lib/IdSelection.js +59 -0
  4. package/lib/MWaterAddRelatedIndicatorComponent.js +2 -2
  5. package/lib/MWaterCompleteTableSelectComponent.d.ts +3 -8
  6. package/lib/MWaterCompleteTableSelectComponent.js +36 -42
  7. package/lib/MWaterLoaderComponent.d.ts +11 -10
  8. package/lib/MWaterLoaderComponent.js +1 -1
  9. package/lib/MWaterResponsesFilterComponent.js +1 -1
  10. package/lib/MWaterTableSelectComponent.d.ts +0 -1
  11. package/lib/MWaterTableSelectComponent.js +4 -6
  12. package/lib/autotranslate.d.ts +20 -0
  13. package/lib/autotranslate.js +122 -0
  14. package/lib/axes/AxisBuilder.js +3 -3
  15. package/lib/axes/AxisColorEditorComponent.js +4 -0
  16. package/lib/axes/AxisComponent.d.ts +8 -12
  17. package/lib/axes/AxisComponent.js +32 -80
  18. package/lib/axes/CategoryMapComponent.js +4 -4
  19. package/lib/axes/RangesComponent.js +2 -2
  20. package/lib/dashboards/DashboardComponent.d.ts +12 -20
  21. package/lib/dashboards/DashboardComponent.js +109 -69
  22. package/lib/dashboards/DashboardDesign.d.ts +11 -2
  23. package/lib/dashboards/DashboardUtils.d.ts +5 -0
  24. package/lib/dashboards/DashboardUtils.js +30 -0
  25. package/lib/dashboards/DashboardViewComponent.d.ts +2 -0
  26. package/lib/dashboards/DashboardViewComponent.js +16 -3
  27. package/lib/dashboards/ServerDashboardDataSource.js +2 -1
  28. package/lib/dashboards/SettingsModalComponent.d.ts +1 -1
  29. package/lib/dashboards/SettingsModalComponent.js +256 -19
  30. package/lib/dashboards/WidgetComponent.d.ts +6 -3
  31. package/lib/dashboards/WidgetComponent.js +3 -1
  32. package/lib/datagrids/CellEditor.d.ts +19 -0
  33. package/lib/datagrids/CellEditor.js +223 -0
  34. package/lib/datagrids/DatagridComponent.d.ts +18 -87
  35. package/lib/datagrids/DatagridComponent.js +304 -222
  36. package/lib/datagrids/DatagridViewComponent.d.ts +15 -53
  37. package/lib/datagrids/DatagridViewComponent.js +256 -257
  38. package/lib/datagrids/DirectDatagridDataSource.js +2 -3
  39. package/lib/datagrids/ExprCellComponent.d.ts +8 -15
  40. package/lib/datagrids/ExprCellComponent.js +11 -15
  41. package/lib/datagrids/FindReplaceModalComponent.d.ts +4 -6
  42. package/lib/datagrids/FindReplaceModalComponent.js +38 -75
  43. package/lib/index.css +1 -1
  44. package/lib/index.d.ts +0 -1
  45. package/lib/index.js +0 -1
  46. package/lib/languages.js +6 -1
  47. package/lib/layouts/blocks/HorizontalBlockComponent.js +2 -2
  48. package/lib/mWaterLoader.d.ts +1 -1
  49. package/lib/maps/BufferLayer.d.ts +7 -5
  50. package/lib/maps/BufferLayer.js +69 -48
  51. package/lib/maps/BufferLayerDesign.d.ts +21 -14
  52. package/lib/maps/BufferLayerDesignerComponent.d.ts +16 -31
  53. package/lib/maps/BufferLayerDesignerComponent.js +68 -102
  54. package/lib/maps/ChoroplethLayer.d.ts +5 -4
  55. package/lib/maps/ChoroplethLayer.js +32 -9
  56. package/lib/maps/ChoroplethLayerDesign.d.ts +6 -2
  57. package/lib/maps/ChoroplethLayerDesigner.js +4 -2
  58. package/lib/maps/ClusterLayer.d.ts +3 -4
  59. package/lib/maps/ClusterLayer.js +2 -1
  60. package/lib/maps/DetailLevelSelectComponent.js +1 -1
  61. package/lib/maps/DirectMapDataSource.js +2 -1
  62. package/lib/maps/EditPopupComponent.js +5 -3
  63. package/lib/maps/GridLayer.d.ts +3 -4
  64. package/lib/maps/GridLayer.js +2 -1
  65. package/lib/maps/GridLayerDesigner.js +5 -3
  66. package/lib/maps/HoverContent.d.ts +11 -3
  67. package/lib/maps/HoverContent.js +25 -9
  68. package/lib/maps/Layer.d.ts +24 -3
  69. package/lib/maps/Layer.js +5 -1
  70. package/lib/maps/LayerFactory.js +0 -8
  71. package/lib/maps/LayerLegendComponent.js +0 -1
  72. package/lib/maps/LayerSwitcherComponent.d.ts +1 -0
  73. package/lib/maps/LayerSwitcherComponent.js +1 -1
  74. package/lib/maps/LeafletMapComponent.js +3 -1
  75. package/lib/maps/LegendComponent.d.ts +1 -0
  76. package/lib/maps/LegendComponent.js +9 -1
  77. package/lib/maps/MWaterServerLayer.d.ts +2 -2
  78. package/lib/maps/MWaterServerLayer.js +2 -2
  79. package/lib/maps/MapComponent.js +3 -3
  80. package/lib/maps/MapDesign.d.ts +2 -0
  81. package/lib/maps/MapDesignerComponent.d.ts +4 -3
  82. package/lib/maps/MapDesignerComponent.js +68 -74
  83. package/lib/maps/MapLayerViewDesignerComponent.js +2 -2
  84. package/lib/maps/MapUtils.d.ts +4 -0
  85. package/lib/maps/MapUtils.js +19 -0
  86. package/lib/maps/MapViewComponent.d.ts +8 -3
  87. package/lib/maps/MarkersLayer.d.ts +5 -4
  88. package/lib/maps/MarkersLayer.js +33 -7
  89. package/lib/maps/MarkersLayerDesign.d.ts +19 -16
  90. package/lib/maps/PopupFilterJoinsUtils.d.ts +6 -3
  91. package/lib/maps/PopupFilterJoinsUtils.js +0 -6
  92. package/lib/maps/RasterMapViewComponent.d.ts +3 -31
  93. package/lib/maps/RasterMapViewComponent.js +7 -2
  94. package/lib/maps/ServerMapDataSource.js +2 -1
  95. package/lib/maps/SwitchableTileUrlLayer.d.ts +3 -3
  96. package/lib/maps/SwitchableTileUrlLayer.js +2 -1
  97. package/lib/maps/TileUrlLayer.d.ts +4 -5
  98. package/lib/maps/TileUrlLayer.js +2 -1
  99. package/lib/maps/VectorMapViewComponent.d.ts +5 -37
  100. package/lib/maps/VectorMapViewComponent.js +19 -8
  101. package/lib/maps/maps.d.ts +3 -0
  102. package/lib/quickfilter/Quickfilter.d.ts +2 -0
  103. package/lib/quickfilter/QuickfiltersComponent.d.ts +2 -0
  104. package/lib/quickfilter/QuickfiltersComponent.js +9 -7
  105. package/lib/quickfilter/QuickfiltersDesignComponent.d.ts +5 -30
  106. package/lib/quickfilter/QuickfiltersDesignComponent.js +56 -63
  107. package/lib/richtext/ExprItemsHtmlConverter.d.ts +5 -2
  108. package/lib/richtext/ExprItemsHtmlConverter.js +4 -4
  109. package/lib/richtext/ExprItemsTranslator.d.ts +5 -0
  110. package/lib/richtext/ExprItemsTranslator.js +149 -0
  111. package/lib/richtext/ItemsHtmlConverter.d.ts +1 -1
  112. package/lib/richtext/ItemsHtmlConverter.js +31 -15
  113. package/lib/wellknown.js +12 -9
  114. package/lib/widgets/IFrameWidget.d.ts +4 -4
  115. package/lib/widgets/ImageWidget.d.ts +7 -4
  116. package/lib/widgets/ImageWidget.js +9 -1
  117. package/lib/widgets/ImageWidgetComponent.d.ts +1 -0
  118. package/lib/widgets/ImageWidgetComponent.js +1 -1
  119. package/lib/widgets/MapWidget.d.ts +5 -48
  120. package/lib/widgets/MapWidget.js +26 -63
  121. package/lib/widgets/MarkdownWidget.d.ts +3 -0
  122. package/lib/widgets/MarkdownWidget.js +3 -0
  123. package/lib/widgets/TOCWidget.d.ts +15 -27
  124. package/lib/widgets/TOCWidget.js +107 -183
  125. package/lib/widgets/Widget.d.ts +18 -7
  126. package/lib/widgets/Widget.js +4 -0
  127. package/lib/widgets/WidgetScopesViewComponent.js +1 -1
  128. package/lib/widgets/charts/Chart.d.ts +10 -1
  129. package/lib/widgets/charts/Chart.js +22 -11
  130. package/lib/widgets/charts/ChartViewComponent.d.ts +4 -0
  131. package/lib/widgets/charts/ChartViewComponent.js +6 -3
  132. package/lib/widgets/charts/ChartWidget.d.ts +2 -0
  133. package/lib/widgets/charts/ChartWidget.js +9 -1
  134. package/lib/widgets/charts/ChartWidgetComponent.d.ts +4 -0
  135. package/lib/widgets/charts/ChartWidgetComponent.js +2 -2
  136. package/lib/widgets/charts/calendar/CalendarChart.d.ts +1 -0
  137. package/lib/widgets/charts/calendar/CalendarChart.js +26 -0
  138. package/lib/widgets/charts/calendar/CalendarChartViewComponent.js +3 -1
  139. package/lib/widgets/charts/imagemosaic/ImageMosaicChart.d.ts +1 -0
  140. package/lib/widgets/charts/imagemosaic/ImageMosaicChart.js +8 -0
  141. package/lib/widgets/charts/layered/LayeredChart.d.ts +2 -0
  142. package/lib/widgets/charts/layered/LayeredChart.js +63 -3
  143. package/lib/widgets/charts/layered/LayeredChartCompiler.d.ts +1 -1
  144. package/lib/widgets/charts/layered/LayeredChartCompiler.js +1 -1
  145. package/lib/widgets/charts/layered/LayeredChartDesignerComponent.js +2 -2
  146. package/lib/widgets/charts/layered/LayeredChartViewComponent.js +8 -3
  147. package/lib/widgets/charts/pivot/PivotChart.d.ts +1 -0
  148. package/lib/widgets/charts/pivot/PivotChart.js +63 -0
  149. package/lib/widgets/charts/pivot/PivotChartLayoutComponent.js +1 -1
  150. package/lib/widgets/charts/pivot/SegmentDesignerComponent.js +7 -4
  151. package/lib/widgets/charts/table/OrderingsComponent.js +1 -1
  152. package/lib/widgets/charts/table/TableChart.d.ts +1 -0
  153. package/lib/widgets/charts/table/TableChart.js +15 -0
  154. package/lib/widgets/text/TextComponent.d.ts +11 -4
  155. package/lib/widgets/text/TextComponent.js +11 -8
  156. package/lib/widgets/text/TextWidget.d.ts +6 -3
  157. package/lib/widgets/text/TextWidget.js +7 -1
  158. package/lib/widgets/text/TextWidgetComponent.d.ts +4 -0
  159. package/lib/widgets/text/TextWidgetComponent.js +7 -1
  160. package/lib/widgets/text/TextWidgetDesign.d.ts +2 -4
  161. package/lib/widgets/text/TextWidgetDesign.js +1 -1
  162. package/package.json +7 -8
  163. package/src/ColorComponent.tsx +1 -2
  164. package/src/IdSelection.ts +62 -0
  165. package/src/MWaterAddRelatedIndicatorComponent.ts +3 -2
  166. package/src/MWaterCompleteTableSelectComponent.tsx +36 -46
  167. package/src/MWaterLoaderComponent.ts +28 -26
  168. package/src/MWaterResponsesFilterComponent.ts +5 -2
  169. package/src/MWaterTableSelectComponent.tsx +5 -9
  170. package/src/autotranslate.ts +141 -0
  171. package/src/axes/AxisBuilder.ts +3 -3
  172. package/src/axes/AxisColorEditorComponent.tsx +5 -0
  173. package/src/axes/{AxisComponent.ts → AxisComponent.tsx} +106 -106
  174. package/src/axes/CategoryMapComponent.ts +4 -4
  175. package/src/axes/RangesComponent.ts +3 -2
  176. package/src/dashboards/DashboardComponent.tsx +189 -125
  177. package/src/dashboards/DashboardDesign.ts +9 -2
  178. package/src/dashboards/DashboardUtils.ts +39 -0
  179. package/src/dashboards/DashboardViewComponent.tsx +22 -3
  180. package/src/dashboards/ServerDashboardDataSource.ts +2 -1
  181. package/src/dashboards/SettingsModalComponent.tsx +450 -35
  182. package/src/dashboards/WidgetComponent.tsx +12 -6
  183. package/src/datagrids/CellEditor.tsx +354 -0
  184. package/src/datagrids/DatagridComponent.tsx +646 -0
  185. package/src/datagrids/DatagridViewComponent.tsx +539 -0
  186. package/src/datagrids/DirectDatagridDataSource.ts +2 -3
  187. package/src/datagrids/{ExprCellComponent.ts → ExprCellComponent.tsx} +28 -23
  188. package/src/datagrids/{FindReplaceModalComponent.ts → FindReplaceModalComponent.tsx} +109 -122
  189. package/src/index.css +1 -1
  190. package/src/index.ts +0 -1
  191. package/src/languages.ts +6 -1
  192. package/src/layouts/blocks/HorizontalBlockComponent.ts +2 -2
  193. package/src/mWaterLoader.ts +1 -1
  194. package/src/maps/BufferLayer.ts +83 -60
  195. package/src/maps/BufferLayerDesign.ts +20 -14
  196. package/src/maps/BufferLayerDesignerComponent.tsx +309 -0
  197. package/src/maps/ChoroplethLayer.ts +40 -19
  198. package/src/maps/ChoroplethLayerDesign.ts +4 -2
  199. package/src/maps/ChoroplethLayerDesigner.tsx +4 -2
  200. package/src/maps/ClusterLayer.ts +4 -10
  201. package/src/maps/DetailLevelSelectComponent.ts +1 -1
  202. package/src/maps/DirectMapDataSource.ts +2 -1
  203. package/src/maps/EditPopupComponent.ts +7 -3
  204. package/src/maps/GridLayer.ts +4 -10
  205. package/src/maps/GridLayerDesigner.tsx +5 -3
  206. package/src/maps/HoverContent.tsx +40 -16
  207. package/src/maps/Layer.ts +28 -10
  208. package/src/maps/LayerFactory.ts +0 -8
  209. package/src/maps/LayerLegendComponent.ts +2 -4
  210. package/src/maps/LayerSwitcherComponent.tsx +6 -2
  211. package/src/maps/LeafletMapComponent.tsx +3 -1
  212. package/src/maps/LegendComponent.tsx +10 -1
  213. package/src/maps/MWaterServerLayer.ts +3 -3
  214. package/src/maps/MapComponent.ts +3 -3
  215. package/src/maps/MapDesign.ts +3 -0
  216. package/src/maps/MapDesignerComponent.tsx +165 -162
  217. package/src/maps/MapLayerViewDesignerComponent.ts +2 -2
  218. package/src/maps/MapUtils.ts +24 -0
  219. package/src/maps/MapViewComponent.tsx +11 -3
  220. package/src/maps/MarkersLayer.ts +44 -18
  221. package/src/maps/MarkersLayerDesign.ts +19 -16
  222. package/src/maps/PopupFilterJoinsUtils.ts +6 -2
  223. package/src/maps/RasterMapViewComponent.ts +9 -45
  224. package/src/maps/ServerMapDataSource.ts +2 -2
  225. package/src/maps/SwitchableTileUrlLayer.tsx +4 -10
  226. package/src/maps/TileUrlLayer.tsx +4 -10
  227. package/src/maps/VectorMapViewComponent.tsx +28 -55
  228. package/src/maps/maps.ts +3 -0
  229. package/src/quickfilter/Quickfilter.ts +3 -0
  230. package/src/quickfilter/QuickfiltersComponent.ts +13 -7
  231. package/src/quickfilter/QuickfiltersDesignComponent.tsx +127 -128
  232. package/src/richtext/ExprItemsHtmlConverter.ts +9 -5
  233. package/src/richtext/ExprItemsTranslator.ts +176 -0
  234. package/src/richtext/ItemsHtmlConverter.ts +33 -18
  235. package/src/wellknown.ts +33 -30
  236. package/src/widgets/ImageWidget.ts +10 -1
  237. package/src/widgets/ImageWidgetComponent.ts +3 -2
  238. package/src/widgets/{MapWidget.ts → MapWidget.tsx} +90 -101
  239. package/src/widgets/MarkdownWidget.ts +3 -0
  240. package/src/widgets/TOCWidget.tsx +281 -0
  241. package/src/widgets/Widget.ts +25 -5
  242. package/src/widgets/WidgetScopesViewComponent.ts +2 -1
  243. package/src/widgets/charts/Chart.ts +31 -12
  244. package/src/widgets/charts/ChartViewComponent.ts +13 -3
  245. package/src/widgets/charts/ChartWidget.ts +11 -1
  246. package/src/widgets/charts/ChartWidgetComponent.tsx +9 -1
  247. package/src/widgets/charts/calendar/CalendarChart.ts +29 -0
  248. package/src/widgets/charts/calendar/CalendarChartViewComponent.tsx +3 -1
  249. package/src/widgets/charts/imagemosaic/ImageMosaicChart.ts +9 -0
  250. package/src/widgets/charts/layered/LayeredChart.ts +71 -3
  251. package/src/widgets/charts/layered/LayeredChartCompiler.ts +2 -2
  252. package/src/widgets/charts/layered/LayeredChartDesignerComponent.tsx +4 -2
  253. package/src/widgets/charts/layered/LayeredChartViewComponent.ts +10 -4
  254. package/src/widgets/charts/pivot/PivotChart.ts +73 -0
  255. package/src/widgets/charts/pivot/PivotChartLayoutComponent.tsx +1 -1
  256. package/src/widgets/charts/pivot/SegmentDesignerComponent.tsx +6 -4
  257. package/src/widgets/charts/table/OrderingsComponent.tsx +2 -1
  258. package/src/widgets/charts/table/TableChart.ts +17 -0
  259. package/src/widgets/text/TextComponent.tsx +22 -12
  260. package/src/widgets/text/TextWidget.ts +9 -2
  261. package/src/widgets/text/TextWidgetComponent.tsx +16 -1
  262. package/src/widgets/text/TextWidgetDesign.ts +4 -7
  263. package/test/IdSelectionTests.ts +54 -0
  264. package/test/LayeredChartCompilerTests.ts +0 -2
  265. package/test/richtext/ExprItemsTranslatorTests.ts +144 -0
  266. package/test/wellknownTests.ts +144 -0
  267. package/src/datagrids/DatagridComponent.ts +0 -478
  268. package/src/datagrids/DatagridViewComponent.ts +0 -464
  269. package/src/datagrids/EditExprCellComponent.tsx +0 -305
  270. package/src/datagrids/README.md +0 -3
  271. package/src/maps/BufferLayerDesignerComponent.ts +0 -311
  272. package/src/widgets/TOCWidget.ts +0 -326
  273. package/test/LegoLayoutEngineTests.ts +0 -69
@@ -71,7 +71,8 @@ class ColorComponent extends react_1.default.Component {
71
71
  react_1.default.createElement("div", { style: popupPosition },
72
72
  !this.props.disableReset && (react_1.default.createElement("button", { type: "button", className: "btn btn-link btn-sm", onClick: this.handleReset },
73
73
  react_1.default.createElement("i", { className: "fa fa-undo" }),
74
- T ` Reset Color`)),
74
+ " ",
75
+ T `Reset Color`)),
75
76
  react_1.default.createElement("button", { type: "button", className: "btn btn-link btn-sm", onClick: this.handleAdvanced }, this.state.advanced ? T `Basic` : T `Advanced`),
76
77
  react_1.default.createElement(CustomColors, { color: this.props.color, onChange: this.props.onChange }),
77
78
  this.state.advanced ? (react_1.default.createElement(react_color_1.SketchPicker, { color: this.props.color || undefined, disableAlpha: true, onChangeComplete: this.handleColor })) : (react_1.default.createElement(react_color_1.SwatchesPicker, { color: this.props.color || undefined, onChangeComplete: this.handleColor })))), document.body);
@@ -0,0 +1,16 @@
1
+ /** Immutable selection class for selecting ids */
2
+ export default class IdSelection {
3
+ ids: {
4
+ [id: string]: true;
5
+ };
6
+ inverted: boolean;
7
+ constructor(ids?: {}, inverted?: boolean);
8
+ isSelected(id: string): boolean;
9
+ isNone(): boolean;
10
+ all(): IdSelection;
11
+ none(): IdSelection;
12
+ invert(): IdSelection;
13
+ add(id: string): IdSelection;
14
+ remove(id: string): IdSelection;
15
+ toggle(id: string): IdSelection;
16
+ }
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ /** Immutable selection class for selecting ids */
4
+ class IdSelection {
5
+ ids;
6
+ inverted;
7
+ // ids is map of ids to true, inverted is boolean
8
+ constructor(ids = {}, inverted = false) {
9
+ this.ids = ids;
10
+ this.inverted = inverted;
11
+ }
12
+ isSelected(id) {
13
+ if (this.ids[id]) {
14
+ return !this.inverted;
15
+ }
16
+ return this.inverted;
17
+ }
18
+ isNone() {
19
+ return Object.keys(this.ids).length === 0 && !this.inverted;
20
+ }
21
+ all() {
22
+ return new IdSelection({}, true);
23
+ }
24
+ none() {
25
+ return new IdSelection({}, false);
26
+ }
27
+ invert() {
28
+ return new IdSelection(this.ids, !this.inverted);
29
+ }
30
+ add(id) {
31
+ if (this.inverted) {
32
+ const newIds = { ...this.ids };
33
+ delete newIds[id];
34
+ return new IdSelection(newIds, true);
35
+ }
36
+ else {
37
+ return new IdSelection({ ...this.ids, [id]: true }, false);
38
+ }
39
+ }
40
+ remove(id) {
41
+ if (!this.inverted) {
42
+ const newIds = { ...this.ids };
43
+ delete newIds[id];
44
+ return new IdSelection(newIds, false);
45
+ }
46
+ else {
47
+ return new IdSelection({ ...this.ids, [id]: true }, true);
48
+ }
49
+ }
50
+ toggle(id) {
51
+ if (this.isSelected(id)) {
52
+ return this.remove(id);
53
+ }
54
+ else {
55
+ return this.add(id);
56
+ }
57
+ }
58
+ }
59
+ exports.default = IdSelection;
@@ -74,8 +74,8 @@ class MWaterAddRelatedIndicatorComponent extends react_1.default.Component {
74
74
  if (this.props.filter) {
75
75
  indicators = lodash_1.default.filter(indicators, (indicator) => filterMatches(this.props.filter, expressions_1.ExprUtils.localizeString(indicator.design.name, this.context)));
76
76
  }
77
- return R("div", null, R("div", { style: { paddingLeft: 5 }, className: "text-muted" }, T `Other Available Indicators. Click to enable. `, R("i", { className: "fa fa-check-circle" }), T ` = recommended`, !this.state.indicators
78
- ? R("div", { className: "text-muted" }, R("i", { className: "fa fa-spin fa-spinner" }), T ` Loading...`)
77
+ return R("div", null, R("div", { style: { paddingLeft: 5 }, className: "text-muted" }, T `Other Available Indicators. Click to enable. `, R("i", { className: "fa fa-check-circle" }), " = ", T `recommended`, !this.state.indicators
78
+ ? R("div", { className: "text-muted" }, R("i", { className: "fa fa-spin fa-spinner" }), " ", T `Loading...`)
79
79
  : undefined, R("div", { style: { paddingLeft: 10 } }, lodash_1.default.map(indicators, (indicator) => {
80
80
  const name = expressions_1.ExprUtils.localizeString(indicator.design.name, this.context);
81
81
  const desc = expressions_1.ExprUtils.localizeString(indicator.design.desc, this.context);
@@ -19,7 +19,6 @@ interface MWaterCompleteTableSelectComponentProps {
19
19
  export default class MWaterCompleteTableSelectComponent extends React.Component<MWaterCompleteTableSelectComponentProps, {
20
20
  showLegacyAssets: boolean;
21
21
  }> {
22
- static contextType: React.Context<string>;
23
22
  constructor(props: MWaterCompleteTableSelectComponentProps);
24
23
  handleExtraTableAdd: (tableId: any) => any;
25
24
  handleExtraTableRemove: (tableId: any) => any;
@@ -53,7 +52,7 @@ export default class MWaterCompleteTableSelectComponent extends React.Component<
53
52
  extraTables: any;
54
53
  onExtraTableAdd: (tableId: any) => any;
55
54
  onExtraTableRemove: (tableId: any) => any;
56
- locale: any;
55
+ locale: string;
57
56
  }>;
58
57
  renderMetrics(): React.FunctionComponentElement<{
59
58
  schema: Schema;
@@ -64,7 +63,7 @@ export default class MWaterCompleteTableSelectComponent extends React.Component<
64
63
  extraTables: any;
65
64
  onExtraTableAdd: (tableId: any) => any;
66
65
  onExtraTableRemove: (tableId: any) => any;
67
- locale: any;
66
+ locale: string;
68
67
  }>;
69
68
  renderAssets(): React.JSX.Element;
70
69
  renderLegacyAssets(): React.FunctionComponentElement<{
@@ -76,7 +75,7 @@ export default class MWaterCompleteTableSelectComponent extends React.Component<
76
75
  extraTables: any;
77
76
  onExtraTableAdd: (tableId: any) => any;
78
77
  onExtraTableRemove: (tableId: any) => any;
79
- locale: any;
78
+ locale: string;
80
79
  }>;
81
80
  renderOther(): React.CElement<{
82
81
  items: {
@@ -114,7 +113,6 @@ interface FormsListComponentState {
114
113
  }[] | null;
115
114
  }
116
115
  declare class FormsListComponent extends React.Component<FormsListComponentProps, FormsListComponentState> {
117
- static contextType: React.Context<string>;
118
116
  constructor(props: any);
119
117
  componentDidMount(): void;
120
118
  handleTableRemove: (table: any) => any;
@@ -143,7 +141,6 @@ interface IndicatorsListComponentState {
143
141
  indicators: any[] | null;
144
142
  }
145
143
  declare class IndicatorsListComponent extends React.Component<IndicatorsListComponentProps, IndicatorsListComponentState> {
146
- static contextType: React.Context<string>;
147
144
  addIndicatorConfirmPopup: AddIndicatorConfirmPopupComponent | null;
148
145
  constructor(props: any);
149
146
  componentDidMount(): JQuery.jqXHR<any>;
@@ -165,7 +162,6 @@ interface AddIndicatorConfirmPopupComponentState {
165
162
  visible: any;
166
163
  }
167
164
  declare class AddIndicatorConfirmPopupComponent extends React.Component<AddIndicatorConfirmPopupComponentProps, AddIndicatorConfirmPopupComponentState> {
168
- static contextType: React.Context<string>;
169
165
  constructor(props: any);
170
166
  show(indicatorTable: any): void;
171
167
  renderContents(): React.DetailedReactHTMLElement<React.HTMLAttributes<HTMLElement>, HTMLElement> | React.DetailedReactHTMLElement<{
@@ -193,7 +189,6 @@ interface IssuesListComponentState {
193
189
  issueTypes: any[] | null;
194
190
  }
195
191
  declare class IssuesListComponent extends React.Component<IssuesListComponentProps, IssuesListComponentState> {
196
- static contextType: React.Context<string>;
197
192
  constructor(props: any);
198
193
  componentDidMount(): JQuery.jqXHR<any>;
199
194
  handleTableRemove: (table: any) => any;
@@ -39,7 +39,6 @@ const ModalPopupComponent_1 = __importDefault(require("@mwater/react-library/lib
39
39
  const MWaterCustomTablesetListComponent_1 = require("./MWaterCustomTablesetListComponent");
40
40
  const MWaterMetricsTableListComponent_1 = require("./MWaterMetricsTableListComponent");
41
41
  const MWaterAssetSystemsListComponent_1 = require("./MWaterAssetSystemsListComponent");
42
- const expressions_ui_1 = require("@mwater/expressions-ui");
43
42
  const sitesOrder = {
44
43
  "entities.water_point": 1,
45
44
  "entities.sanitation_facility": 2,
@@ -59,7 +58,6 @@ const assetEntities = [
59
58
  ];
60
59
  // Allows selection of a table. Is the complete list mode of tables
61
60
  class MWaterCompleteTableSelectComponent extends react_1.default.Component {
62
- static contextType = expressions_ui_1.LocaleContext;
63
61
  constructor(props) {
64
62
  super(props);
65
63
  this.state = {
@@ -98,8 +96,8 @@ class MWaterCompleteTableSelectComponent extends react_1.default.Component {
98
96
  items: lodash_1.default.compact(lodash_1.default.map(types, (tableId) => {
99
97
  table = this.props.schema.getTable(tableId);
100
98
  return {
101
- name: expressions_1.ExprUtils.localizeString(table.name, this.context),
102
- desc: expressions_1.ExprUtils.localizeString(table.desc, this.context),
99
+ name: expressions_1.ExprUtils.localizeString(table.name, T.locale),
100
+ desc: expressions_1.ExprUtils.localizeString(table.desc, T.locale),
103
101
  onClick: this.props.onChange.bind(null, table.id)
104
102
  };
105
103
  }))
@@ -147,8 +145,8 @@ class MWaterCompleteTableSelectComponent extends react_1.default.Component {
147
145
  return R(uiComponents.OptionListComponent, {
148
146
  items: lodash_1.default.map(sweetSenseTables, (table) => {
149
147
  return {
150
- name: expressions_1.ExprUtils.localizeString(table.name, this.context),
151
- desc: expressions_1.ExprUtils.localizeString(table.desc, this.context),
148
+ name: expressions_1.ExprUtils.localizeString(table.name, T.locale),
149
+ desc: expressions_1.ExprUtils.localizeString(table.desc, T.locale),
152
150
  onClick: this.props.onChange.bind(null, table.id)
153
151
  };
154
152
  })
@@ -164,7 +162,7 @@ class MWaterCompleteTableSelectComponent extends react_1.default.Component {
164
162
  extraTables: this.props.extraTables,
165
163
  onExtraTableAdd: this.handleExtraTableAdd,
166
164
  onExtraTableRemove: this.handleExtraTableRemove,
167
- locale: this.context
165
+ locale: T.locale
168
166
  });
169
167
  }
170
168
  renderMetrics() {
@@ -177,7 +175,7 @@ class MWaterCompleteTableSelectComponent extends react_1.default.Component {
177
175
  extraTables: this.props.extraTables,
178
176
  onExtraTableAdd: this.handleExtraTableAdd,
179
177
  onExtraTableRemove: this.handleExtraTableRemove,
180
- locale: this.context
178
+ locale: T.locale
181
179
  });
182
180
  }
183
181
  renderAssets() {
@@ -188,8 +186,8 @@ class MWaterCompleteTableSelectComponent extends react_1.default.Component {
188
186
  continue;
189
187
  }
190
188
  items.push({
191
- name: expressions_1.ExprUtils.localizeString(table.name, this.context),
192
- desc: expressions_1.ExprUtils.localizeString(table.desc, this.context),
189
+ name: expressions_1.ExprUtils.localizeString(table.name, T.locale),
190
+ desc: expressions_1.ExprUtils.localizeString(table.desc, T.locale),
193
191
  onClick: this.props.onChange.bind(null, table.id)
194
192
  });
195
193
  }
@@ -212,7 +210,7 @@ class MWaterCompleteTableSelectComponent extends react_1.default.Component {
212
210
  extraTables: this.props.extraTables,
213
211
  onExtraTableAdd: this.handleExtraTableAdd,
214
212
  onExtraTableRemove: this.handleExtraTableRemove,
215
- locale: this.context
213
+ locale: T.locale
216
214
  });
217
215
  }
218
216
  renderOther() {
@@ -259,8 +257,8 @@ class MWaterCompleteTableSelectComponent extends react_1.default.Component {
259
257
  return R(uiComponents.OptionListComponent, {
260
258
  items: lodash_1.default.map(otherTables, (table) => {
261
259
  return {
262
- name: expressions_1.ExprUtils.localizeString(table.name, this.context),
263
- desc: expressions_1.ExprUtils.localizeString(table.desc, this.context),
260
+ name: expressions_1.ExprUtils.localizeString(table.name, T.locale),
261
+ desc: expressions_1.ExprUtils.localizeString(table.desc, T.locale),
264
262
  onClick: this.props.onChange.bind(null, table.id)
265
263
  };
266
264
  })
@@ -280,24 +278,24 @@ class MWaterCompleteTableSelectComponent extends react_1.default.Component {
280
278
  render() {
281
279
  const sweetSenseTables = this.getSweetSenseTables();
282
280
  const tabs = [
283
- { id: "sites", label: [R("i", { className: "fa fa-map-marker" }), T ` Sites`], elem: this.renderSites() },
284
- { id: "forms", label: [R("i", { className: "fa fa-th-list" }), T ` Surveys`], elem: this.renderForms() },
281
+ { id: "sites", label: [R("i", { className: "fa fa-map-marker" }), " ", T `Sites`], elem: this.renderSites() },
282
+ { id: "forms", label: [R("i", { className: "fa fa-th-list" }), " ", T `Surveys`], elem: this.renderForms() },
285
283
  {
286
284
  id: "indicators",
287
- label: [R("i", { className: "fa fa-check-circle" }), T ` Indicators`],
285
+ label: [R("i", { className: "fa fa-check-circle" }), " ", T `Indicators`],
288
286
  elem: this.renderIndicators()
289
287
  },
290
288
  {
291
289
  id: "issues",
292
- label: [R("i", { className: "fa fa-exclamation-circle" }), T ` Issues`],
290
+ label: [R("i", { className: "fa fa-exclamation-circle" }), " ", T `Issues`],
293
291
  elem: this.renderIssues()
294
292
  },
295
- { id: "tablesets", label: [R("i", { className: "fa fa-table" }), T ` Tables`], elem: this.renderTablesets() },
296
- { id: "metrics", label: [R("i", { className: "fa fa-line-chart" }), T ` Metrics`], elem: this.renderMetrics() },
297
- { id: "assets", label: [R("i", { className: "fas fa-map-pin" }), T ` Assets`], elem: this.renderAssets() }
293
+ { id: "tablesets", label: [R("i", { className: "fa fa-table" }), " ", T `Tables`], elem: this.renderTablesets() },
294
+ { id: "metrics", label: [R("i", { className: "fa fa-line-chart" }), " ", T `Metrics`], elem: this.renderMetrics() },
295
+ { id: "assets", label: [R("i", { className: "fas fa-map-pin" }), " ", T `Assets`], elem: this.renderAssets() }
298
296
  ];
299
297
  if (sweetSenseTables.length > 0) {
300
- tabs.push({ id: "sensors", label: T ` Sensors`, elem: this.renderSweetSense() });
298
+ tabs.push({ id: "sensors", label: T `Sensors`, elem: this.renderSweetSense() });
301
299
  }
302
300
  tabs.push({ id: "other", label: T `Advanced`, elem: this.renderOther() });
303
301
  return R("div", null, R("div", { className: "text-muted" }, T `Select data from sites, surveys or an advanced category below. Indicators can be found within their associated site types.`), R(TabbedComponent_1.default, {
@@ -309,7 +307,6 @@ class MWaterCompleteTableSelectComponent extends react_1.default.Component {
309
307
  exports.default = MWaterCompleteTableSelectComponent;
310
308
  // Searchable list of forms
311
309
  class FormsListComponent extends react_1.default.Component {
312
- static contextType = expressions_ui_1.LocaleContext;
313
310
  constructor(props) {
314
311
  super(props);
315
312
  this.state = {
@@ -359,7 +356,7 @@ class FormsListComponent extends react_1.default.Component {
359
356
  });
360
357
  }
361
358
  handleTableRemove = (table) => {
362
- if (confirm(T `Remove ${expressions_1.ExprUtils.localizeString(table.name, this.context)}? Any widgets that depend on it will no longer work properly.`)) {
359
+ if (confirm(T `Remove ${expressions_1.ExprUtils.localizeString(table.name, T.locale)}? Any widgets that depend on it will no longer work properly.`)) {
363
360
  return this.props.onExtraTableRemove(table.id);
364
361
  }
365
362
  };
@@ -392,8 +389,8 @@ class FormsListComponent extends react_1.default.Component {
392
389
  ? R(uiComponents.OptionListComponent, {
393
390
  items: lodash_1.default.map(tables, (table) => {
394
391
  return {
395
- name: expressions_1.ExprUtils.localizeString(table.name, this.context),
396
- desc: expressions_1.ExprUtils.localizeString(table.desc, this.context),
392
+ name: expressions_1.ExprUtils.localizeString(table.name, T.locale),
393
+ desc: expressions_1.ExprUtils.localizeString(table.desc, T.locale),
397
394
  onClick: this.props.onChange.bind(null, table.id),
398
395
  onRemove: this.handleTableRemove.bind(null, table)
399
396
  };
@@ -424,7 +421,6 @@ class FormsListComponent extends react_1.default.Component {
424
421
  }
425
422
  // Searchable list of indicators
426
423
  class IndicatorsListComponent extends react_1.default.Component {
427
- static contextType = expressions_ui_1.LocaleContext;
428
424
  addIndicatorConfirmPopup;
429
425
  constructor(props) {
430
426
  super(props);
@@ -446,13 +442,13 @@ class IndicatorsListComponent extends react_1.default.Component {
446
442
  indicators = lodash_1.default.sortByOrder(indicators, [
447
443
  (indicator) => ((this.props.extraTables || []).includes("indicator_values:" + indicator._id) ? 0 : 1),
448
444
  (indicator) => (indicator.design.recommended ? 0 : 1),
449
- (indicator) => expressions_1.ExprUtils.localizeString(indicator.design.name, this.context)
445
+ (indicator) => expressions_1.ExprUtils.localizeString(indicator.design.name, T.locale)
450
446
  ], ["asc", "asc", "asc"]);
451
447
  return this.setState({
452
448
  indicators: lodash_1.default.map(indicators, (indicator) => ({
453
449
  id: indicator._id,
454
- name: expressions_1.ExprUtils.localizeString(indicator.design.name, this.context),
455
- desc: expressions_1.ExprUtils.localizeString(indicator.design.desc, this.context)
450
+ name: expressions_1.ExprUtils.localizeString(indicator.design.name, T.locale),
451
+ desc: expressions_1.ExprUtils.localizeString(indicator.design.desc, T.locale)
456
452
  }))
457
453
  });
458
454
  }).fail((xhr) => {
@@ -460,7 +456,7 @@ class IndicatorsListComponent extends react_1.default.Component {
460
456
  });
461
457
  }
462
458
  handleTableRemove = (table) => {
463
- if (confirm(T `Remove ${expressions_1.ExprUtils.localizeString(table.name, this.context)}? Any widgets that depend on it will no longer work properly.`)) {
459
+ if (confirm(T `Remove ${expressions_1.ExprUtils.localizeString(table.name, T.locale)}? Any widgets that depend on it will no longer work properly.`)) {
464
460
  return this.props.onExtraTableRemove(table.id);
465
461
  }
466
462
  };
@@ -507,8 +503,8 @@ class IndicatorsListComponent extends react_1.default.Component {
507
503
  ? R(uiComponents.OptionListComponent, {
508
504
  items: lodash_1.default.map(tables, (table) => {
509
505
  return {
510
- name: expressions_1.ExprUtils.localizeString(table.name, this.context),
511
- desc: expressions_1.ExprUtils.localizeString(table.desc, this.context),
506
+ name: expressions_1.ExprUtils.localizeString(table.name, T.locale),
507
+ desc: expressions_1.ExprUtils.localizeString(table.desc, T.locale),
512
508
  onClick: this.handleSelect.bind(null, table.id),
513
509
  onRemove: this.handleTableRemove.bind(null, table)
514
510
  };
@@ -538,7 +534,6 @@ class IndicatorsListComponent extends react_1.default.Component {
538
534
  }
539
535
  }
540
536
  class AddIndicatorConfirmPopupComponent extends react_1.default.Component {
541
- static contextType = expressions_ui_1.LocaleContext;
542
537
  constructor(props) {
543
538
  super(props);
544
539
  this.state = {
@@ -560,8 +555,8 @@ class AddIndicatorConfirmPopupComponent extends react_1.default.Component {
560
555
  below, then find the indicator values in the 'Related Indicators' section. Or click on 'Use Raw Indicator' if you
561
556
  are certain that you want to use the raw indicator table`), R(uiComponents.OptionListComponent, {
562
557
  items: lodash_1.default.map(entityColumns, (entityColumn) => ({
563
- name: expressions_1.ExprUtils.localizeString(entityColumn.name, this.context),
564
- desc: expressions_1.ExprUtils.localizeString(entityColumn.desc, this.context),
558
+ name: expressions_1.ExprUtils.localizeString(entityColumn.name, T.locale),
559
+ desc: expressions_1.ExprUtils.localizeString(entityColumn.desc, T.locale),
565
560
  onClick: () => {
566
561
  // Select table
567
562
  this.props.onChange(entityColumn.join.toTable);
@@ -583,7 +578,6 @@ are certain that you want to use the raw indicator table`), R(uiComponents.Optio
583
578
  }
584
579
  // Searchable list of issue types
585
580
  class IssuesListComponent extends react_1.default.Component {
586
- static contextType = expressions_ui_1.LocaleContext;
587
581
  constructor(props) {
588
582
  super(props);
589
583
  this.state = {
@@ -602,13 +596,13 @@ class IssuesListComponent extends react_1.default.Component {
602
596
  issueTypes = lodash_1.default.sortByOrder(issueTypes, [
603
597
  (issueType) => ((this.props.extraTables || []).includes("issues:" + issueType._id) ? 0 : 1),
604
598
  (issueType) => (issueType.created.by === this.props.user ? 0 : 1),
605
- (issueType) => expressions_1.ExprUtils.localizeString(issueType.name, this.context)
599
+ (issueType) => expressions_1.ExprUtils.localizeString(issueType.name, T.locale)
606
600
  ], ["asc", "asc", "asc"]);
607
601
  return this.setState({
608
602
  issueTypes: lodash_1.default.map(issueTypes, (issueType) => ({
609
603
  id: issueType._id,
610
- name: expressions_1.ExprUtils.localizeString(issueType.name, this.context),
611
- desc: expressions_1.ExprUtils.localizeString(issueType.desc, this.context)
604
+ name: expressions_1.ExprUtils.localizeString(issueType.name, T.locale),
605
+ desc: expressions_1.ExprUtils.localizeString(issueType.desc, T.locale)
612
606
  }))
613
607
  });
614
608
  }).fail((xhr) => {
@@ -616,7 +610,7 @@ class IssuesListComponent extends react_1.default.Component {
616
610
  });
617
611
  }
618
612
  handleTableRemove = (table) => {
619
- if (confirm(T `Remove ${expressions_1.ExprUtils.localizeString(table.name, this.context)}? Any widgets that depend on it will no longer work properly.`)) {
613
+ if (confirm(T `Remove ${expressions_1.ExprUtils.localizeString(table.name, T.locale)}? Any widgets that depend on it will no longer work properly.`)) {
620
614
  return this.props.onExtraTableRemove(table.id);
621
615
  }
622
616
  };
@@ -649,8 +643,8 @@ class IssuesListComponent extends react_1.default.Component {
649
643
  ? R(uiComponents.OptionListComponent, {
650
644
  items: lodash_1.default.map(tables, (table) => {
651
645
  return {
652
- name: expressions_1.ExprUtils.localizeString(table.name, this.context),
653
- desc: expressions_1.ExprUtils.localizeString(table.desc, this.context),
646
+ name: expressions_1.ExprUtils.localizeString(table.name, T.locale),
647
+ desc: expressions_1.ExprUtils.localizeString(table.desc, T.locale),
654
648
  onClick: this.props.onChange.bind(null, table.id),
655
649
  onRemove: this.handleTableRemove.bind(null, table)
656
650
  };
@@ -3,12 +3,7 @@ import { DataSource, Schema } from "@mwater/expressions";
3
3
  import AsyncLoadComponent from "@mwater/react-library/lib/AsyncLoadComponent";
4
4
  import LoadingComponent from "@mwater/react-library/lib/LoadingComponent";
5
5
  import MWaterContextComponent, { AddLayerElementFactory } from "./MWaterContextComponent";
6
- /**
7
- * Loads an mWater schema from the server and creates child with schema and dataSource
8
- * Also creates context to allow selecting of a table in an mWater-friendly way
9
- * and several other context items
10
- */
11
- export default class MWaterLoaderComponent extends AsyncLoadComponent<{
6
+ export interface MWaterLoaderComponentProps {
12
7
  apiUrl: string;
13
8
  client?: string;
14
9
  share?: string;
@@ -32,16 +27,22 @@ export default class MWaterLoaderComponent extends AsyncLoadComponent<{
32
27
  errorFormatter?: (data: any, defaultError: string) => string;
33
28
  /** Origin of usage. e.g. "dashboards:43445364..." */
34
29
  origin?: string;
35
- }, {
30
+ }
31
+ /**
32
+ * Loads an mWater schema from the server and creates child with schema and dataSource
33
+ * Also creates context to allow selecting of a table in an mWater-friendly way
34
+ * and several other context items
35
+ */
36
+ export default class MWaterLoaderComponent extends AsyncLoadComponent<MWaterLoaderComponentProps, {
36
37
  error: any;
37
38
  schema: Schema | null;
38
39
  dataSource: DataSource | null;
39
40
  loading: boolean;
40
41
  }> {
41
42
  mounted: boolean;
42
- constructor(props: any);
43
- isLoadNeeded(newProps: any, oldProps: any): boolean;
44
- load(props: any, prevProps: any, callback: any): void;
43
+ constructor(props: MWaterLoaderComponentProps);
44
+ isLoadNeeded(newProps: MWaterLoaderComponentProps, oldProps: MWaterLoaderComponentProps): boolean;
45
+ load(props: MWaterLoaderComponentProps, prevProps: MWaterLoaderComponentProps, callback: any): void;
45
46
  render(): React.ReactElement<any, string | React.JSXElementConstructor<any>> | React.CElement<import("@mwater/react-library/lib/LoadingComponent").LoadingComponentProps, LoadingComponent> | React.CElement<{
46
47
  apiUrl: string;
47
48
  client?: string;
@@ -34,7 +34,7 @@ class MWaterLoaderComponent extends AsyncLoadComponent_1.default {
34
34
  // Call callback with state changes
35
35
  load(props, prevProps, callback) {
36
36
  // Load schema and data source
37
- return (0, mWaterLoader_1.default)({
37
+ (0, mWaterLoader_1.default)({
38
38
  apiUrl: props.apiUrl,
39
39
  client: props.client,
40
40
  share: props.share,
@@ -137,7 +137,7 @@ class MWaterResponsesFilterComponent extends react_1.default.Component {
137
137
  const siteColumnId = this.getSiteValue();
138
138
  return R("div", { style: { paddingLeft: 5, paddingTop: 5 } }, R("div", { style: { paddingBottom: 5 } }, T `Data Source Options:`), R("div", { style: { paddingLeft: 5 } }, siteColumns.length > 0
139
139
  ? R("div", null, R("i", null, T `This data source contains links to monitoring sites. Would you like to:`), R("div", { style: { paddingLeft: 8 } }, R(ui.Radio, { key: "all", value: siteColumnId, radioValue: null, onChange: this.handleSiteChange }, T `Show all survey responses (even if there are more than one per site)`), lodash_1.default.map(siteColumns, (column) => {
140
- return R(ui.Radio, { key: column.id, value: siteColumnId, radioValue: column.id, onChange: this.handleSiteChange }, T `Show only the latest response for each `, R("i", null, `${expressions_1.ExprUtils.localizeString(this.props.schema.getTable(column.join.toTable)?.name)}`), T ` in the question `, R("i", null, `'${expressions_1.ExprUtils.localizeString(column.name)}'`));
140
+ return R(ui.Radio, { key: column.id, value: siteColumnId, radioValue: column.id, onChange: this.handleSiteChange }, T `Show only the latest response for each`, " ", R("i", null, `${expressions_1.ExprUtils.localizeString(this.props.schema.getTable(column.join.toTable)?.name)}`), " ", T `in the question`, " ", R("i", null, `'${expressions_1.ExprUtils.localizeString(column.name)}'`));
141
141
  })))
142
142
  : undefined, R(ui.Checkbox, { value: this.isFinal(), onChange: this.handleFinalChange }, T `Only include final responses (recommended)`)));
143
143
  }
@@ -21,7 +21,6 @@ interface MWaterTableSelectComponentState {
21
21
  pendingExtraTable: any;
22
22
  }
23
23
  export default class MWaterTableSelectComponent extends React.Component<MWaterTableSelectComponentProps, MWaterTableSelectComponentState> {
24
- static contextType: React.Context<string>;
25
24
  toggleEdit: any;
26
25
  constructor(props: MWaterTableSelectComponentProps);
27
26
  componentWillReceiveProps(nextProps: any): any;
@@ -14,7 +14,6 @@ const MWaterCompleteTableSelectComponent_1 = __importDefault(require("./MWaterCo
14
14
  const expressions_ui_1 = require("@mwater/expressions-ui");
15
15
  // Allows selection of a mwater-visualization table. Loads forms as well and calls event if modified
16
16
  class MWaterTableSelectComponent extends react_1.default.Component {
17
- static contextType = expressions_ui_1.LocaleContext;
18
17
  toggleEdit;
19
18
  constructor(props) {
20
19
  super(props);
@@ -93,7 +92,7 @@ class MWaterTableSelectComponent extends react_1.default.Component {
93
92
  },
94
93
  forceOpen: !this.props.table, // Must have table
95
94
  label: this.props.table
96
- ? expressions_1.ExprUtils.localizeString(this.props.schema.getTable(this.props.table)?.name, this.context)
95
+ ? expressions_1.ExprUtils.localizeString(this.props.schema.getTable(this.props.table)?.name, T.locale)
97
96
  : "",
98
97
  editor,
99
98
  onRemove: () => {
@@ -117,7 +116,6 @@ class MWaterTableSelectComponent extends react_1.default.Component {
117
116
  exports.default = MWaterTableSelectComponent;
118
117
  // Is the table select component when in edit mode. Toggles between complete list and simplified list
119
118
  class EditModeTableSelectComponent extends react_1.default.Component {
120
- static contextType = expressions_ui_1.LocaleContext;
121
119
  constructor(props) {
122
120
  super(props);
123
121
  this.state = {
@@ -156,7 +154,7 @@ class EditModeTableSelectComponent extends react_1.default.Component {
156
154
  }
157
155
  }
158
156
  // Sort by name
159
- tables = lodash_1.default.sortBy(tables, (tableId) => expressions_1.ExprUtils.localizeString(this.props.schema.getTable(tableId).name, this.context));
157
+ tables = lodash_1.default.sortBy(tables, (tableId) => expressions_1.ExprUtils.localizeString(this.props.schema.getTable(tableId).name, T.locale));
160
158
  return tables;
161
159
  }
162
160
  handleCompleteChange = (tableId) => {
@@ -172,8 +170,8 @@ class EditModeTableSelectComponent extends react_1.default.Component {
172
170
  react_1.default.createElement(UIComponents_1.OptionListComponent, { items: this.getTableShortlist(activeTables).map((tableId) => {
173
171
  const table = this.props.schema.getTable(tableId);
174
172
  return {
175
- name: expressions_1.ExprUtils.localizeString(table.name, this.context),
176
- desc: expressions_1.ExprUtils.localizeString(table.desc, this.context),
173
+ name: expressions_1.ExprUtils.localizeString(table.name, T.locale),
174
+ desc: expressions_1.ExprUtils.localizeString(table.desc, T.locale),
177
175
  onClick: () => this.props.onChange(table.id)
178
176
  };
179
177
  }) }),
@@ -0,0 +1,20 @@
1
+ import { LocalizedString } from "ez-localize/lib/utils";
2
+ /** Translates an array of strings from a source language to a target language using the mWater translation API.
3
+ * @param strings Array of strings to translate
4
+ * @param sourceLanguage Source language code (e.g. "en")
5
+ * @param targetLanguage Target language code to translate to
6
+ * @returns Promise that resolves to array of translated strings in same order as input
7
+ * @throws Error if translation fails
8
+ */
9
+ export declare function translateStrings(strings: string[], sourceLanguage: string, targetLanguage: string): Promise<string[]>;
10
+ /** Ensures that all LocalizedString objects have translations for all specified locales.
11
+ * Only translates missing translations, preserving existing ones and base strings.
12
+ * Each string's _base property is used as the source language for translations.
13
+ * @param strings Array of LocalizedString objects to ensure are fully translated
14
+ * @param locales Array of language codes specifying which languages to ensure exist
15
+ * @param baseLanguage Language code of the _base strings (e.g. "en", "fr", etc)
16
+ * @returns Promise that resolves to array of fully translated LocalizedString objects
17
+ */
18
+ export declare function translateLocalizedStrings(strings: LocalizedString[], locales: string[], baseLanguage: string): Promise<LocalizedString[]>;
19
+ /** Returns true if the given language code can be automatically translated. */
20
+ export declare function canAutoTranslate(languageCode: string): boolean;