@mwater/visualization 5.4.1 → 5.4.2
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.
- package/lib/ColorComponent.js +2 -1
- package/lib/IdSelection.d.ts +16 -0
- package/lib/IdSelection.js +59 -0
- package/lib/MWaterAddRelatedIndicatorComponent.js +2 -2
- package/lib/MWaterCompleteTableSelectComponent.d.ts +3 -8
- package/lib/MWaterCompleteTableSelectComponent.js +36 -42
- package/lib/MWaterLoaderComponent.d.ts +11 -10
- package/lib/MWaterLoaderComponent.js +1 -1
- package/lib/MWaterResponsesFilterComponent.js +1 -1
- package/lib/MWaterTableSelectComponent.d.ts +0 -1
- package/lib/MWaterTableSelectComponent.js +4 -6
- package/lib/autotranslate.d.ts +20 -0
- package/lib/autotranslate.js +122 -0
- package/lib/axes/AxisBuilder.js +3 -3
- package/lib/axes/AxisColorEditorComponent.js +4 -0
- package/lib/axes/AxisComponent.d.ts +8 -12
- package/lib/axes/AxisComponent.js +32 -80
- package/lib/axes/CategoryMapComponent.js +4 -4
- package/lib/axes/RangesComponent.js +2 -2
- package/lib/dashboards/DashboardComponent.d.ts +6 -0
- package/lib/dashboards/DashboardComponent.js +44 -12
- package/lib/dashboards/DashboardDesign.d.ts +11 -2
- package/lib/dashboards/DashboardUtils.d.ts +5 -0
- package/lib/dashboards/DashboardUtils.js +30 -0
- package/lib/dashboards/DashboardViewComponent.d.ts +2 -0
- package/lib/dashboards/DashboardViewComponent.js +16 -3
- package/lib/dashboards/ServerDashboardDataSource.js +2 -1
- package/lib/dashboards/SettingsModalComponent.d.ts +1 -1
- package/lib/dashboards/SettingsModalComponent.js +256 -19
- package/lib/dashboards/WidgetComponent.d.ts +6 -3
- package/lib/dashboards/WidgetComponent.js +3 -1
- package/lib/datagrids/CellEditor.d.ts +19 -0
- package/lib/datagrids/CellEditor.js +223 -0
- package/lib/datagrids/DatagridComponent.d.ts +18 -87
- package/lib/datagrids/DatagridComponent.js +304 -222
- package/lib/datagrids/DatagridViewComponent.d.ts +15 -53
- package/lib/datagrids/DatagridViewComponent.js +256 -257
- package/lib/datagrids/DirectDatagridDataSource.js +2 -3
- package/lib/datagrids/ExprCellComponent.d.ts +8 -15
- package/lib/datagrids/ExprCellComponent.js +11 -15
- package/lib/datagrids/FindReplaceModalComponent.d.ts +4 -6
- package/lib/datagrids/FindReplaceModalComponent.js +38 -75
- package/lib/index.css +1 -1
- package/lib/index.d.ts +0 -1
- package/lib/index.js +0 -1
- package/lib/layouts/blocks/HorizontalBlockComponent.js +2 -2
- package/lib/mWaterLoader.d.ts +1 -1
- package/lib/maps/BufferLayer.d.ts +7 -5
- package/lib/maps/BufferLayer.js +69 -48
- package/lib/maps/BufferLayerDesign.d.ts +21 -14
- package/lib/maps/BufferLayerDesignerComponent.d.ts +16 -31
- package/lib/maps/BufferLayerDesignerComponent.js +68 -102
- package/lib/maps/ChoroplethLayer.d.ts +5 -4
- package/lib/maps/ChoroplethLayer.js +32 -9
- package/lib/maps/ChoroplethLayerDesign.d.ts +6 -2
- package/lib/maps/ChoroplethLayerDesigner.js +4 -2
- package/lib/maps/ClusterLayer.d.ts +3 -4
- package/lib/maps/ClusterLayer.js +2 -1
- package/lib/maps/DetailLevelSelectComponent.js +1 -1
- package/lib/maps/DirectMapDataSource.js +2 -1
- package/lib/maps/EditPopupComponent.js +5 -3
- package/lib/maps/GridLayer.d.ts +3 -4
- package/lib/maps/GridLayer.js +2 -1
- package/lib/maps/GridLayerDesigner.js +5 -3
- package/lib/maps/HoverContent.d.ts +11 -3
- package/lib/maps/HoverContent.js +25 -9
- package/lib/maps/Layer.d.ts +24 -3
- package/lib/maps/Layer.js +5 -1
- package/lib/maps/LayerFactory.js +0 -8
- package/lib/maps/LayerLegendComponent.js +0 -1
- package/lib/maps/LayerSwitcherComponent.d.ts +1 -0
- package/lib/maps/LayerSwitcherComponent.js +1 -1
- package/lib/maps/LeafletMapComponent.js +3 -1
- package/lib/maps/LegendComponent.d.ts +1 -0
- package/lib/maps/LegendComponent.js +9 -1
- package/lib/maps/MWaterServerLayer.d.ts +2 -2
- package/lib/maps/MWaterServerLayer.js +2 -2
- package/lib/maps/MapComponent.js +3 -3
- package/lib/maps/MapDesign.d.ts +2 -0
- package/lib/maps/MapDesignerComponent.d.ts +4 -3
- package/lib/maps/MapDesignerComponent.js +68 -74
- package/lib/maps/MapLayerViewDesignerComponent.js +2 -2
- package/lib/maps/MapUtils.d.ts +4 -0
- package/lib/maps/MapUtils.js +19 -0
- package/lib/maps/MapViewComponent.d.ts +8 -3
- package/lib/maps/MarkersLayer.d.ts +5 -4
- package/lib/maps/MarkersLayer.js +33 -7
- package/lib/maps/MarkersLayerDesign.d.ts +19 -16
- package/lib/maps/PopupFilterJoinsUtils.d.ts +6 -3
- package/lib/maps/PopupFilterJoinsUtils.js +0 -6
- package/lib/maps/RasterMapViewComponent.d.ts +3 -31
- package/lib/maps/RasterMapViewComponent.js +7 -2
- package/lib/maps/ServerMapDataSource.js +2 -1
- package/lib/maps/SwitchableTileUrlLayer.d.ts +3 -3
- package/lib/maps/SwitchableTileUrlLayer.js +2 -1
- package/lib/maps/TileUrlLayer.d.ts +4 -5
- package/lib/maps/TileUrlLayer.js +2 -1
- package/lib/maps/VectorMapViewComponent.d.ts +5 -37
- package/lib/maps/VectorMapViewComponent.js +19 -8
- package/lib/maps/maps.d.ts +3 -0
- package/lib/quickfilter/QuickfiltersComponent.d.ts +2 -0
- package/lib/quickfilter/QuickfiltersComponent.js +9 -7
- package/lib/quickfilter/QuickfiltersDesignComponent.d.ts +1 -1
- package/lib/quickfilter/QuickfiltersDesignComponent.js +19 -35
- package/lib/richtext/ExprItemsHtmlConverter.d.ts +5 -2
- package/lib/richtext/ExprItemsHtmlConverter.js +4 -4
- package/lib/richtext/ExprItemsTranslator.d.ts +5 -0
- package/lib/richtext/ExprItemsTranslator.js +149 -0
- package/lib/richtext/ItemsHtmlConverter.d.ts +1 -1
- package/lib/richtext/ItemsHtmlConverter.js +31 -15
- package/lib/wellknown.js +12 -9
- package/lib/widgets/IFrameWidget.d.ts +4 -4
- package/lib/widgets/ImageWidget.d.ts +7 -4
- package/lib/widgets/ImageWidget.js +9 -1
- package/lib/widgets/ImageWidgetComponent.d.ts +1 -0
- package/lib/widgets/ImageWidgetComponent.js +1 -1
- package/lib/widgets/MapWidget.d.ts +5 -48
- package/lib/widgets/MapWidget.js +26 -63
- package/lib/widgets/MarkdownWidget.d.ts +3 -0
- package/lib/widgets/MarkdownWidget.js +3 -0
- package/lib/widgets/TOCWidget.d.ts +15 -27
- package/lib/widgets/TOCWidget.js +107 -183
- package/lib/widgets/Widget.d.ts +18 -7
- package/lib/widgets/Widget.js +4 -0
- package/lib/widgets/WidgetScopesViewComponent.js +1 -1
- package/lib/widgets/charts/Chart.d.ts +10 -1
- package/lib/widgets/charts/Chart.js +22 -11
- package/lib/widgets/charts/ChartViewComponent.d.ts +4 -0
- package/lib/widgets/charts/ChartViewComponent.js +6 -3
- package/lib/widgets/charts/ChartWidget.d.ts +2 -0
- package/lib/widgets/charts/ChartWidget.js +9 -1
- package/lib/widgets/charts/ChartWidgetComponent.d.ts +4 -0
- package/lib/widgets/charts/ChartWidgetComponent.js +2 -2
- package/lib/widgets/charts/calendar/CalendarChart.d.ts +1 -0
- package/lib/widgets/charts/calendar/CalendarChart.js +26 -0
- package/lib/widgets/charts/calendar/CalendarChartViewComponent.js +3 -1
- package/lib/widgets/charts/imagemosaic/ImageMosaicChart.d.ts +1 -0
- package/lib/widgets/charts/imagemosaic/ImageMosaicChart.js +8 -0
- package/lib/widgets/charts/layered/LayeredChart.d.ts +2 -0
- package/lib/widgets/charts/layered/LayeredChart.js +63 -3
- package/lib/widgets/charts/layered/LayeredChartCompiler.d.ts +1 -1
- package/lib/widgets/charts/layered/LayeredChartCompiler.js +1 -1
- package/lib/widgets/charts/layered/LayeredChartDesignerComponent.js +2 -2
- package/lib/widgets/charts/layered/LayeredChartViewComponent.js +8 -3
- package/lib/widgets/charts/pivot/PivotChart.d.ts +1 -0
- package/lib/widgets/charts/pivot/PivotChart.js +63 -0
- package/lib/widgets/charts/pivot/PivotChartLayoutComponent.js +1 -1
- package/lib/widgets/charts/pivot/SegmentDesignerComponent.js +7 -4
- package/lib/widgets/charts/table/OrderingsComponent.js +1 -1
- package/lib/widgets/charts/table/TableChart.d.ts +1 -0
- package/lib/widgets/charts/table/TableChart.js +15 -0
- package/lib/widgets/text/TextComponent.d.ts +11 -4
- package/lib/widgets/text/TextComponent.js +11 -8
- package/lib/widgets/text/TextWidget.d.ts +6 -3
- package/lib/widgets/text/TextWidget.js +7 -1
- package/lib/widgets/text/TextWidgetComponent.d.ts +4 -0
- package/lib/widgets/text/TextWidgetComponent.js +7 -1
- package/lib/widgets/text/TextWidgetDesign.d.ts +2 -4
- package/lib/widgets/text/TextWidgetDesign.js +1 -1
- package/package.json +7 -8
- package/src/ColorComponent.tsx +1 -2
- package/src/IdSelection.ts +62 -0
- package/src/MWaterAddRelatedIndicatorComponent.ts +3 -2
- package/src/MWaterCompleteTableSelectComponent.tsx +36 -46
- package/src/MWaterLoaderComponent.ts +28 -26
- package/src/MWaterResponsesFilterComponent.ts +5 -2
- package/src/MWaterTableSelectComponent.tsx +5 -9
- package/src/autotranslate.ts +141 -0
- package/src/axes/AxisBuilder.ts +3 -3
- package/src/axes/AxisColorEditorComponent.tsx +5 -0
- package/src/axes/{AxisComponent.ts → AxisComponent.tsx} +106 -106
- package/src/axes/CategoryMapComponent.ts +4 -4
- package/src/axes/RangesComponent.ts +3 -2
- package/src/dashboards/DashboardComponent.tsx +79 -14
- package/src/dashboards/DashboardDesign.ts +9 -2
- package/src/dashboards/DashboardUtils.ts +39 -0
- package/src/dashboards/DashboardViewComponent.tsx +22 -3
- package/src/dashboards/ServerDashboardDataSource.ts +2 -1
- package/src/dashboards/SettingsModalComponent.tsx +450 -35
- package/src/dashboards/WidgetComponent.tsx +12 -6
- package/src/datagrids/CellEditor.tsx +354 -0
- package/src/datagrids/DatagridComponent.tsx +646 -0
- package/src/datagrids/DatagridViewComponent.tsx +539 -0
- package/src/datagrids/DirectDatagridDataSource.ts +2 -3
- package/src/datagrids/{ExprCellComponent.ts → ExprCellComponent.tsx} +28 -23
- package/src/datagrids/{FindReplaceModalComponent.ts → FindReplaceModalComponent.tsx} +109 -122
- package/src/index.css +1 -1
- package/src/index.ts +0 -1
- package/src/layouts/blocks/HorizontalBlockComponent.ts +2 -2
- package/src/mWaterLoader.ts +1 -1
- package/src/maps/BufferLayer.ts +83 -60
- package/src/maps/BufferLayerDesign.ts +20 -14
- package/src/maps/BufferLayerDesignerComponent.tsx +309 -0
- package/src/maps/ChoroplethLayer.ts +40 -19
- package/src/maps/ChoroplethLayerDesign.ts +4 -2
- package/src/maps/ChoroplethLayerDesigner.tsx +4 -2
- package/src/maps/ClusterLayer.ts +4 -10
- package/src/maps/DetailLevelSelectComponent.ts +1 -1
- package/src/maps/DirectMapDataSource.ts +2 -1
- package/src/maps/EditPopupComponent.ts +7 -3
- package/src/maps/GridLayer.ts +4 -10
- package/src/maps/GridLayerDesigner.tsx +5 -3
- package/src/maps/HoverContent.tsx +40 -16
- package/src/maps/Layer.ts +28 -10
- package/src/maps/LayerFactory.ts +0 -8
- package/src/maps/LayerLegendComponent.ts +2 -4
- package/src/maps/LayerSwitcherComponent.tsx +6 -2
- package/src/maps/LeafletMapComponent.tsx +3 -1
- package/src/maps/LegendComponent.tsx +10 -1
- package/src/maps/MWaterServerLayer.ts +3 -3
- package/src/maps/MapComponent.ts +3 -3
- package/src/maps/MapDesign.ts +3 -0
- package/src/maps/MapDesignerComponent.tsx +165 -162
- package/src/maps/MapLayerViewDesignerComponent.ts +2 -2
- package/src/maps/MapUtils.ts +24 -0
- package/src/maps/MapViewComponent.tsx +11 -3
- package/src/maps/MarkersLayer.ts +44 -18
- package/src/maps/MarkersLayerDesign.ts +19 -16
- package/src/maps/PopupFilterJoinsUtils.ts +6 -2
- package/src/maps/RasterMapViewComponent.ts +9 -45
- package/src/maps/ServerMapDataSource.ts +2 -2
- package/src/maps/SwitchableTileUrlLayer.tsx +4 -10
- package/src/maps/TileUrlLayer.tsx +4 -10
- package/src/maps/VectorMapViewComponent.tsx +28 -55
- package/src/maps/maps.ts +3 -0
- package/src/quickfilter/QuickfiltersComponent.ts +13 -7
- package/src/quickfilter/QuickfiltersDesignComponent.tsx +56 -74
- package/src/richtext/ExprItemsHtmlConverter.ts +9 -5
- package/src/richtext/ExprItemsTranslator.ts +176 -0
- package/src/richtext/ItemsHtmlConverter.ts +33 -18
- package/src/wellknown.ts +33 -30
- package/src/widgets/ImageWidget.ts +10 -1
- package/src/widgets/ImageWidgetComponent.ts +3 -2
- package/src/widgets/{MapWidget.ts → MapWidget.tsx} +90 -101
- package/src/widgets/MarkdownWidget.ts +3 -0
- package/src/widgets/TOCWidget.tsx +281 -0
- package/src/widgets/Widget.ts +25 -5
- package/src/widgets/WidgetScopesViewComponent.ts +2 -1
- package/src/widgets/charts/Chart.ts +31 -12
- package/src/widgets/charts/ChartViewComponent.ts +13 -3
- package/src/widgets/charts/ChartWidget.ts +11 -1
- package/src/widgets/charts/ChartWidgetComponent.tsx +9 -1
- package/src/widgets/charts/calendar/CalendarChart.ts +29 -0
- package/src/widgets/charts/calendar/CalendarChartViewComponent.tsx +3 -1
- package/src/widgets/charts/imagemosaic/ImageMosaicChart.ts +9 -0
- package/src/widgets/charts/layered/LayeredChart.ts +71 -3
- package/src/widgets/charts/layered/LayeredChartCompiler.ts +2 -2
- package/src/widgets/charts/layered/LayeredChartDesignerComponent.tsx +4 -2
- package/src/widgets/charts/layered/LayeredChartViewComponent.ts +10 -4
- package/src/widgets/charts/pivot/PivotChart.ts +73 -0
- package/src/widgets/charts/pivot/PivotChartLayoutComponent.tsx +1 -1
- package/src/widgets/charts/pivot/SegmentDesignerComponent.tsx +6 -4
- package/src/widgets/charts/table/OrderingsComponent.tsx +2 -1
- package/src/widgets/charts/table/TableChart.ts +17 -0
- package/src/widgets/text/TextComponent.tsx +22 -12
- package/src/widgets/text/TextWidget.ts +9 -2
- package/src/widgets/text/TextWidgetComponent.tsx +16 -1
- package/src/widgets/text/TextWidgetDesign.ts +4 -7
- package/test/IdSelectionTests.ts +54 -0
- package/test/LayeredChartCompilerTests.ts +0 -2
- package/test/richtext/ExprItemsTranslatorTests.ts +144 -0
- package/test/wellknownTests.ts +144 -0
- package/src/datagrids/DatagridComponent.ts +0 -478
- package/src/datagrids/DatagridViewComponent.ts +0 -464
- package/src/datagrids/EditExprCellComponent.tsx +0 -305
- package/src/datagrids/README.md +0 -3
- package/src/maps/BufferLayerDesignerComponent.ts +0 -311
- package/src/widgets/TOCWidget.ts +0 -326
- package/test/LegoLayoutEngineTests.ts +0 -69
package/lib/ColorComponent.js
CHANGED
|
@@ -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
|
-
|
|
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 `
|
|
78
|
-
? R("div", { className: "text-muted" }, R("i", { className: "fa fa-spin fa-spinner" }), T `
|
|
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:
|
|
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:
|
|
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:
|
|
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,
|
|
102
|
-
desc: expressions_1.ExprUtils.localizeString(table.desc,
|
|
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,
|
|
151
|
-
desc: expressions_1.ExprUtils.localizeString(table.desc,
|
|
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:
|
|
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:
|
|
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,
|
|
192
|
-
desc: expressions_1.ExprUtils.localizeString(table.desc,
|
|
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:
|
|
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,
|
|
263
|
-
desc: expressions_1.ExprUtils.localizeString(table.desc,
|
|
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 `
|
|
284
|
-
{ id: "forms", label: [R("i", { className: "fa fa-th-list" }), T `
|
|
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 `
|
|
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 `
|
|
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 `
|
|
296
|
-
{ id: "metrics", label: [R("i", { className: "fa fa-line-chart" }), T `
|
|
297
|
-
{ id: "assets", label: [R("i", { className: "fas fa-map-pin" }), T `
|
|
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 `
|
|
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,
|
|
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,
|
|
396
|
-
desc: expressions_1.ExprUtils.localizeString(table.desc,
|
|
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,
|
|
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,
|
|
455
|
-
desc: expressions_1.ExprUtils.localizeString(indicator.design.desc,
|
|
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,
|
|
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,
|
|
511
|
-
desc: expressions_1.ExprUtils.localizeString(table.desc,
|
|
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,
|
|
564
|
-
desc: expressions_1.ExprUtils.localizeString(entityColumn.desc,
|
|
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,
|
|
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,
|
|
611
|
-
desc: expressions_1.ExprUtils.localizeString(issueType.desc,
|
|
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,
|
|
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,
|
|
653
|
-
desc: expressions_1.ExprUtils.localizeString(table.desc,
|
|
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:
|
|
43
|
-
isLoadNeeded(newProps:
|
|
44
|
-
load(props:
|
|
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
|
-
|
|
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
|
|
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,
|
|
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,
|
|
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,
|
|
176
|
-
desc: expressions_1.ExprUtils.localizeString(table.desc,
|
|
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;
|